@12-apps/ui 6.55.0 → 6.56.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NATIVE.md +5 -2
- package/components-catalog.md +6 -0
- package/components-guidelines.md +18 -2
- package/components.tasks.md +3 -0
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +4 -4
- package/dist/_internal/components/data-display/Avatar/Avatar.js +4 -4
- package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
- package/dist/_internal/components/data-display/Badge/Badge.js +1 -1
- package/dist/_internal/components/data-display/Badge/Badge.styles.js +1 -1
- package/dist/_internal/components/data-display/Badge/BadgeContent.js +1 -1
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +1 -1
- package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +1 -1
- package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +1 -1
- package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
- package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
- package/dist/_internal/components/data-display/Chart/chart-context.js +1 -1
- package/dist/_internal/components/data-display/Chart/chart-internals.js +1 -1
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
- package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +48 -48
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +62 -62
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +4 -4
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +4 -4
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +8 -8
- package/dist/_internal/components/data-display/DataViews/base-card.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +4 -4
- package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +10 -10
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +14 -14
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +20 -20
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +43 -43
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +20 -20
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +17 -17
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +18 -18
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +8 -8
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +13 -13
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +7 -7
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +4 -4
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +14 -14
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +9 -9
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +16 -16
- package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +4 -4
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
- package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +3 -3
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +8 -8
- package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +1 -1
- package/dist/_internal/components/data-display/Sheet/Sheet.js +5 -5
- package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +1 -1
- package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
- package/dist/_internal/components/data-display/Table/Table.js +3 -3
- package/dist/_internal/components/data-display/index.js +53 -53
- package/dist/_internal/components/feedback/Dialog/Dialog.js +3 -3
- package/dist/_internal/components/feedback/StackedModal/StackedModal.js +6 -6
- package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +1 -1
- package/dist/_internal/components/feedback/index.js +9 -9
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +2 -2
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +8 -8
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +2 -2
- package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
- package/dist/_internal/components/form/Calendar/Calendar.hooks.js +2 -2
- package/dist/_internal/components/form/Calendar/Calendar.js +6 -6
- package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
- package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
- 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 +10 -10
- package/dist/_internal/components/form/Checkbox/Checkbox.js +2 -2
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
- package/dist/_internal/components/form/Command/Command.js +1 -1
- package/dist/_internal/components/form/Command/Command.styles.js +1 -1
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +9 -9
- package/dist/_internal/components/form/Label/Label.js +1 -1
- package/dist/_internal/components/form/Label/Label.styles.js +1 -1
- package/dist/_internal/components/form/Menubar/Menubar.item.js +1 -1
- package/dist/_internal/components/form/Menubar/Menubar.js +3 -3
- package/dist/_internal/components/form/Menubar/Menubar.styles.js +1 -1
- package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +1 -1
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
- package/dist/_internal/components/form/Switch/Switch.js +4 -4
- package/dist/_internal/components/form/Switch/Switch.parts.js +3 -3
- package/dist/_internal/components/form/Switch/Switch.styles.js +2 -2
- package/dist/_internal/components/form/index.js +33 -33
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +11 -11
- package/dist/_internal/components/form/total-form/Fields/index.js +17 -17
- package/dist/_internal/components/index.js +114 -114
- package/dist/_internal/components/layout/Box/Box.js +1 -1
- package/dist/_internal/components/layout/Screen/Screen.base.js +8 -0
- package/dist/_internal/components/layout/Screen/Screen.base.js.map +1 -0
- package/dist/_internal/components/layout/Screen/Screen.js +38 -0
- package/dist/_internal/components/layout/Screen/Screen.js.map +1 -0
- package/dist/_internal/components/layout/Screen/Screen.types.js +1 -0
- package/dist/_internal/components/layout/Screen/Screen.types.js.map +1 -0
- package/dist/_internal/components/layout/SettingCard/SettingCard.js +6 -6
- package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +4 -4
- package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +5 -5
- package/dist/_internal/components/layout/SettingCard/SettingGrid.js +5 -5
- package/dist/_internal/components/layout/SettingCard/SettingGroup.js +11 -11
- package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +10 -10
- package/dist/_internal/components/layout/SettingCard/SettingToggle.js +11 -11
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +2 -2
- package/dist/_internal/components/layout/Skeleton/Skeleton.js +2 -2
- package/dist/_internal/components/layout/Stack/Stack.js +1 -1
- package/dist/_internal/components/layout/index.js +23 -23
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +8 -8
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +1 -1
- package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +2 -2
- package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +1 -1
- package/dist/_internal/components/navigation/SectionNav/SectionNav.js +2 -2
- package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +1 -1
- package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +1 -1
- package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +1 -1
- package/dist/_internal/components/navigation/SectionNav/SectionNav.railCreate.js +1 -1
- package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +1 -1
- package/dist/_internal/components/navigation/SectionNav/__stories__/fixtures.js +1 -1
- package/dist/_internal/components/navigation/index.js +11 -11
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +1 -1
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +1 -1
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +1 -1
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +1 -1
- package/dist/_internal/components/utility/index.js +1 -1
- package/dist/_internal/icons/Icon.js +3 -3
- package/dist/_internal/icons/paths.generated.js +1 -1
- package/dist/_internal/provider/UiProvider.js +1 -1
- package/dist/_internal/provider/mui-bridge.js +1 -1
- package/dist/_internal/provider/use-ui-theme.js +1 -1
- package/dist/_internal/tokens/surfaces.js +1 -1
- package/dist/_internal/user-avatar/user-avatar.js +5 -5
- package/dist/charts.js +12 -12
- package/dist/{chunk-KZHNJ3ZS.js → chunk-2DV64INT.js} +5 -5
- package/dist/{chunk-YV3WIBIO.js → chunk-2IKWHUXG.js} +2 -2
- package/dist/{chunk-4EJBLJZK.js → chunk-2KGYTJCN.js} +50 -29
- package/dist/chunk-2KGYTJCN.js.map +1 -0
- package/dist/{chunk-EFLRNSE6.js → chunk-2W2MWEP2.js} +11 -11
- package/dist/{chunk-PLOLSGQY.js → chunk-35IEACIJ.js} +2 -2
- package/dist/{chunk-ANQRUO3L.js → chunk-3WIA25YQ.js} +10 -10
- package/dist/{chunk-KRREZNZF.js → chunk-44JLXXWQ.js} +2 -2
- package/dist/{chunk-QGH2FGDD.js → chunk-45PGSVOH.js} +16 -16
- package/dist/{chunk-EKKDZK4E.js → chunk-4JBS6NOT.js} +2 -2
- package/dist/{chunk-DQKMOGYZ.js → chunk-54PPITTH.js} +4 -4
- package/dist/{chunk-LX4GLIWE.js → chunk-573XC4HK.js} +3 -3
- package/dist/{chunk-N24K536I.js → chunk-5JWCNQSI.js} +4 -4
- package/dist/{chunk-XGNHRONE.js → chunk-5PN5MY2X.js} +4 -4
- package/dist/{chunk-WUVVJXUK.js → chunk-5XZEGI35.js} +3 -3
- package/dist/{chunk-ALREWFRX.js → chunk-6DGNMASB.js} +4 -4
- package/dist/{chunk-P6GIZZLJ.js → chunk-6E4XNOAC.js} +7 -7
- package/dist/{chunk-KEVPUBOE.js → chunk-6ZLP7BA7.js} +4 -1
- package/dist/chunk-6ZLP7BA7.js.map +1 -0
- package/dist/{chunk-5CFEXRQH.js → chunk-7M3DRP7Q.js} +8 -8
- package/dist/{chunk-CG5AWO24.js → chunk-7QTZJ2HY.js} +2 -2
- package/dist/{chunk-KRQWLYKF.js → chunk-A6EUQDRK.js} +2 -2
- package/dist/{chunk-AG3DY5TH.js → chunk-ADSA76T7.js} +2 -2
- package/dist/{chunk-T7DQ7RJU.js → chunk-AGXTIW3G.js} +2 -2
- package/dist/{chunk-HQIX7A5I.js → chunk-AL3Z24VG.js} +9 -9
- package/dist/{chunk-ZF4J3SRM.js → chunk-BQGWY577.js} +3 -3
- package/dist/{chunk-MMVAMUZY.js → chunk-C3BRCCHG.js} +4 -4
- package/dist/{chunk-DYYQSC2V.js → chunk-CLC4VIOF.js} +2 -2
- package/dist/{chunk-Y52BXZO3.js → chunk-CZV6NVCA.js} +9 -9
- package/dist/{chunk-KRLBT3IV.js → chunk-DUYPCBI2.js} +3 -3
- package/dist/{chunk-DOPD5J2Q.js → chunk-E2WNRYKA.js} +4 -4
- package/dist/{chunk-OUXJYKCL.js → chunk-ERTXRK6S.js} +7 -7
- package/dist/{chunk-N4BARJEQ.js → chunk-EW55ZS5W.js} +7 -7
- package/dist/{chunk-6PU3JYVY.js → chunk-F3AYISXT.js} +4 -4
- package/dist/{chunk-VEKTKCSB.js → chunk-FLJ3RIRP.js} +5 -5
- package/dist/{chunk-LXYV73TW.js → chunk-G5ORAVSP.js} +5 -5
- package/dist/{chunk-AKC5GRJF.js → chunk-G76BNXWE.js} +7 -7
- package/dist/{chunk-NPOQSACK.js → chunk-GDT235FP.js} +2 -2
- package/dist/{chunk-FTCCTQZB.js → chunk-GI24X7XA.js} +3 -3
- package/dist/{chunk-FQUIEXEY.js → chunk-GNBCSTXF.js} +4 -4
- package/dist/{chunk-JP32U64U.js → chunk-GWUJIO6Z.js} +2 -2
- package/dist/{chunk-NVXRV3PL.js → chunk-GYDUXL3D.js} +7 -7
- package/dist/{chunk-DKKINJHC.js → chunk-H4NS5MMP.js} +5 -5
- package/dist/{chunk-TSUXEWVX.js → chunk-HFBQCJNP.js} +2 -2
- package/dist/chunk-HG2YLNGJ.js +75 -0
- package/dist/chunk-HG2YLNGJ.js.map +1 -0
- package/dist/{chunk-4JZ6XDVA.js → chunk-I6ESCBY3.js} +2 -2
- package/dist/{chunk-CUREVLBT.js → chunk-ICSXPZXT.js} +3 -3
- package/dist/{chunk-2ZRZTGWP.js → chunk-ISW5K72V.js} +5 -5
- package/dist/{chunk-O3LX26CX.js → chunk-JC244QQF.js} +2 -2
- package/dist/{chunk-JF643Q7W.js → chunk-JF5LQOGB.js} +5 -5
- package/dist/{chunk-NT73ZLBO.js → chunk-JL77BSOL.js} +5 -5
- package/dist/{chunk-HNWNIBCU.js → chunk-JWXGZ4VM.js} +3 -3
- package/dist/{chunk-LL5KGYLG.js → chunk-KEKOPD43.js} +7 -7
- package/dist/{chunk-CFDWKQZT.js → chunk-KILA7LCC.js} +4 -4
- package/dist/{chunk-XTWOHAOT.js → chunk-KKWCAZM6.js} +5 -5
- package/dist/{chunk-VCGNH23W.js → chunk-LJKWWXZD.js} +8 -8
- package/dist/{chunk-FXZUVZON.js → chunk-LWZ2K225.js} +6 -6
- package/dist/{chunk-M24EG6JC.js → chunk-MKAA3YIJ.js} +4 -4
- package/dist/{chunk-VSKFRS32.js → chunk-MLCY7TSO.js} +2 -2
- package/dist/{chunk-AZ7YT2R4.js → chunk-MLLWGHIX.js} +2 -2
- package/dist/{chunk-J6A4ZQWD.js → chunk-N4MR4EMC.js} +5 -5
- package/dist/{chunk-TRD26PNE.js → chunk-NXMCTYBN.js} +7 -7
- package/dist/{chunk-KWF7C6IZ.js → chunk-NZZ2BTIK.js} +2 -2
- package/dist/{chunk-XDITTQIR.js → chunk-OBKUG7BW.js} +5 -5
- package/dist/{chunk-SSDYEOU4.js → chunk-OBMPE6PW.js} +5 -5
- package/dist/{chunk-XLRBJEYA.js → chunk-OGBLNORM.js} +5 -5
- package/dist/{chunk-SNFULDT7.js → chunk-PIIPEXRM.js} +2 -2
- package/dist/{chunk-M5GJYVDM.js → chunk-Q5G2EC24.js} +8 -8
- package/dist/chunk-QYCKZWBU.js +7 -0
- package/dist/chunk-QYCKZWBU.js.map +1 -0
- package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
- package/dist/{chunk-AYRMZC5F.js → chunk-RBHBJDOZ.js} +4 -4
- package/dist/{chunk-RPKUZDRY.js → chunk-SE5WHKCB.js} +6 -6
- package/dist/{chunk-YUPUJZ2X.js → chunk-SIWXMNQT.js} +4 -4
- package/dist/{chunk-U2TC4DID.js → chunk-SJTQW6JK.js} +2 -2
- package/dist/{chunk-NMXTZSDE.js → chunk-T2S7NIUG.js} +3 -3
- package/dist/{chunk-V7APSQB4.js → chunk-TWWA7QPA.js} +7 -7
- package/dist/{chunk-RHCRHZ6D.js → chunk-TZ23DNKY.js} +9 -3
- package/dist/{chunk-RHCRHZ6D.js.map → chunk-TZ23DNKY.js.map} +1 -1
- package/dist/{chunk-YXE4FISF.js → chunk-ULTQIVF3.js} +5 -5
- package/dist/{chunk-PALISWDH.js → chunk-UNJMMLO7.js} +8 -8
- package/dist/{chunk-XBXJKYUN.js → chunk-UPAFHAF4.js} +4 -4
- package/dist/{chunk-OKBEWR6L.js → chunk-WSUHTLOA.js} +6 -6
- package/dist/{chunk-GMH4TYPP.js → chunk-XM2YEXGO.js} +9 -9
- package/dist/{chunk-R53ZOW4B.js → chunk-XP522FFM.js} +3 -3
- package/dist/{chunk-NRHQJEHB.js → chunk-XTHDWW4M.js} +5 -5
- package/dist/{chunk-ZI3AJEZS.js → chunk-Y2HCYT5W.js} +2 -2
- package/dist/{chunk-5GXLWNQ7.js → chunk-Y4T33THY.js} +4 -4
- package/dist/{chunk-TK5LNXMB.js → chunk-YCYGUTQX.js} +9 -9
- package/dist/{chunk-ANVIO75O.js → chunk-YRXFJIR5.js} +4 -4
- package/dist/{chunk-5WJFCQFN.js → chunk-YXIVQFNW.js} +4 -4
- package/dist/{chunk-WC3W36AM.js → chunk-ZOUWHGV3.js} +4 -4
- package/dist/data-display/AsyncStateContainer.js +4 -4
- package/dist/data-display/Avatar.js +4 -4
- package/dist/data-display/Badge.js +1 -1
- package/dist/data-display/CardKit.js +7 -7
- package/dist/data-display/Carousel.js +3 -3
- package/dist/data-display/Chart.js +12 -12
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +80 -80
- package/dist/data-display/FleetMap.js +16 -16
- package/dist/data-display/LazyImage.js +3 -3
- package/dist/data-display/Lightbox.js +5 -5
- package/dist/data-display/LoadingState.js +3 -3
- package/dist/data-display/MapPreview.js +8 -8
- package/dist/data-display/Progress.js +2 -2
- package/dist/data-display/Sheet.js +5 -5
- package/dist/data-display/StatCard.js +3 -3
- package/dist/data-display/Table.js +3 -3
- package/dist/en-US.js +14 -14
- package/dist/feedback/Dialog.js +3 -3
- package/dist/feedback/StackedModal.js +6 -6
- package/dist/form/AddressAutocomplete.js +8 -8
- package/dist/form/Autocomplete.js +2 -2
- package/dist/form/Calendar.js +6 -6
- package/dist/form/CategorySelect.js +10 -10
- package/dist/form/Checkbox.js +2 -2
- package/dist/form/CodeEditor.js +3 -3
- package/dist/form/Command.js +1 -1
- package/dist/form/DateRangePicker.js +9 -9
- package/dist/form/Label.js +1 -1
- package/dist/form/Menubar.js +3 -3
- package/dist/form/RichTextEditor.js +2 -2
- package/dist/form/Switch.js +4 -4
- package/dist/form/total-form.js +24 -24
- package/dist/icons.js +3 -3
- package/dist/layout/Box.js +1 -1
- package/dist/layout/ContentToolbar.js +7 -7
- package/dist/layout/Screen.js +38 -0
- package/dist/layout/Screen.js.map +1 -0
- package/dist/layout/SettingCard.js +14 -14
- package/dist/layout/SettingsLayout.js +2 -2
- package/dist/layout/Skeleton.js +2 -2
- package/dist/layout/Stack.js +1 -1
- package/dist/locales.js +17 -17
- package/dist/native/chunks/chunk-AAY5TJ6W.js +27 -0
- package/dist/native/chunks/chunk-AAY5TJ6W.js.map +1 -0
- package/dist/native/chunks/{chunk-F4NDP3G5.js → chunk-AOXH3Z2S.js} +2 -21
- package/dist/native/chunks/chunk-AOXH3Z2S.js.map +1 -0
- package/dist/native/chunks/{chunk-4JAP6O2Y.js → chunk-EZO2KJF7.js} +4 -1
- package/dist/native/chunks/chunk-EZO2KJF7.js.map +1 -0
- package/dist/native/chunks/{chunk-RJOHCM2O.js → chunk-QGTZGL7P.js} +2 -2
- package/dist/native/data-display/Alert.js +1 -1
- package/dist/native/data-display/Avatar.js +1 -1
- package/dist/native/data-display/Badge.js +1 -1
- package/dist/native/data-display/Chip.js +1 -1
- package/dist/native/data-display/EmptyState.js +2 -2
- package/dist/native/data-display/ErrorState.js +1 -1
- package/dist/native/data-display/FleetMap.js +2 -2
- package/dist/native/feedback/Dialog.js +1 -1
- package/dist/native/form/Checkbox.js +1 -1
- package/dist/native/form/Select.js +1 -1
- package/dist/native/icons.js +1 -1
- package/dist/native/layout/Box.js +4 -2
- package/dist/native/layout/Screen.js +78 -0
- package/dist/native/layout/Screen.js.map +1 -0
- package/dist/native/layout/Stack.js +2 -1
- package/dist/native/layout/Stack.js.map +1 -1
- package/dist/navigation/AppHeader.js +8 -8
- package/dist/navigation/CommandPalette.js +2 -2
- package/dist/navigation/SectionNav.js +2 -2
- package/dist/provider.js +1 -1
- package/dist/pt-BR.js +5 -5
- package/dist/tokens.js +1 -1
- package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts.map +1 -1
- package/dist/types/components/layout/Screen/Screen.base.d.ts +16 -0
- package/dist/types/components/layout/Screen/Screen.base.d.ts.map +1 -0
- package/dist/types/components/layout/Screen/Screen.d.ts +7 -0
- package/dist/types/components/layout/Screen/Screen.d.ts.map +1 -0
- package/dist/types/components/layout/Screen/Screen.types.d.ts +9 -0
- package/dist/types/components/layout/Screen/Screen.types.d.ts.map +1 -0
- package/dist/types/components/layout/Screen/index.d.ts +3 -0
- package/dist/types/components/layout/Screen/index.d.ts.map +1 -0
- package/dist/types/icons/paths.generated.d.ts +3 -0
- package/dist/types/icons/paths.generated.d.ts.map +1 -1
- package/dist/types/tokens/surfaces.d.ts +4 -0
- package/dist/types/tokens/surfaces.d.ts.map +1 -1
- package/dist/types-native/components/layout/Screen/Screen.base.d.ts +16 -0
- package/dist/types-native/components/layout/Screen/Screen.base.d.ts.map +1 -0
- package/dist/types-native/components/layout/Screen/Screen.native.d.ts +7 -0
- package/dist/types-native/components/layout/Screen/Screen.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Screen/Screen.types.native.d.ts +9 -0
- package/dist/types-native/components/layout/Screen/Screen.types.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Screen/index.native.d.ts +3 -0
- package/dist/types-native/components/layout/Screen/index.native.d.ts.map +1 -0
- package/dist/types-native/icons/paths.generated.d.ts +3 -0
- package/dist/types-native/icons/paths.generated.d.ts.map +1 -1
- package/dist/user-avatar.js +5 -5
- package/dist/utility/WorkflowStep.js +1 -1
- package/package.json +16 -3
- package/src/components/feedback/StackedModal/StackedModal.md +17 -2
- package/src/components/feedback/StackedModal/StackedModal.parts.tsx +19 -3
- package/src/components/layout/Screen/NATIVE-NOTES.md +2 -0
- package/src/components/layout/Screen/Screen.base.ts +20 -0
- package/src/components/layout/Screen/Screen.md +71 -0
- package/src/components/layout/Screen/Screen.native.tsx +56 -0
- package/src/components/layout/Screen/Screen.tsx +41 -0
- package/src/components/layout/Screen/Screen.types.native.ts +13 -0
- package/src/components/layout/Screen/Screen.types.ts +10 -0
- package/src/components/layout/Screen/index.native.ts +2 -0
- package/src/components/layout/Screen/index.ts +2 -0
- package/src/components/layout/Screen/tests.md +64 -0
- package/src/components/layout/Screen/track.md +26 -0
- package/src/icons/glyphs.json +3 -0
- package/src/icons/paths.generated.ts +3 -0
- package/src/tokens/surfaces.ts +12 -2
- package/dist/chunk-4EJBLJZK.js.map +0 -1
- package/dist/chunk-KEVPUBOE.js.map +0 -1
- package/dist/native/chunks/chunk-4JAP6O2Y.js.map +0 -1
- package/dist/native/chunks/chunk-F4NDP3G5.js.map +0 -1
- /package/dist/{chunk-KZHNJ3ZS.js.map → chunk-2DV64INT.js.map} +0 -0
- /package/dist/{chunk-YV3WIBIO.js.map → chunk-2IKWHUXG.js.map} +0 -0
- /package/dist/{chunk-EFLRNSE6.js.map → chunk-2W2MWEP2.js.map} +0 -0
- /package/dist/{chunk-PLOLSGQY.js.map → chunk-35IEACIJ.js.map} +0 -0
- /package/dist/{chunk-ANQRUO3L.js.map → chunk-3WIA25YQ.js.map} +0 -0
- /package/dist/{chunk-KRREZNZF.js.map → chunk-44JLXXWQ.js.map} +0 -0
- /package/dist/{chunk-QGH2FGDD.js.map → chunk-45PGSVOH.js.map} +0 -0
- /package/dist/{chunk-EKKDZK4E.js.map → chunk-4JBS6NOT.js.map} +0 -0
- /package/dist/{chunk-DQKMOGYZ.js.map → chunk-54PPITTH.js.map} +0 -0
- /package/dist/{chunk-LX4GLIWE.js.map → chunk-573XC4HK.js.map} +0 -0
- /package/dist/{chunk-N24K536I.js.map → chunk-5JWCNQSI.js.map} +0 -0
- /package/dist/{chunk-XGNHRONE.js.map → chunk-5PN5MY2X.js.map} +0 -0
- /package/dist/{chunk-WUVVJXUK.js.map → chunk-5XZEGI35.js.map} +0 -0
- /package/dist/{chunk-ALREWFRX.js.map → chunk-6DGNMASB.js.map} +0 -0
- /package/dist/{chunk-P6GIZZLJ.js.map → chunk-6E4XNOAC.js.map} +0 -0
- /package/dist/{chunk-5CFEXRQH.js.map → chunk-7M3DRP7Q.js.map} +0 -0
- /package/dist/{chunk-CG5AWO24.js.map → chunk-7QTZJ2HY.js.map} +0 -0
- /package/dist/{chunk-KRQWLYKF.js.map → chunk-A6EUQDRK.js.map} +0 -0
- /package/dist/{chunk-AG3DY5TH.js.map → chunk-ADSA76T7.js.map} +0 -0
- /package/dist/{chunk-T7DQ7RJU.js.map → chunk-AGXTIW3G.js.map} +0 -0
- /package/dist/{chunk-HQIX7A5I.js.map → chunk-AL3Z24VG.js.map} +0 -0
- /package/dist/{chunk-ZF4J3SRM.js.map → chunk-BQGWY577.js.map} +0 -0
- /package/dist/{chunk-MMVAMUZY.js.map → chunk-C3BRCCHG.js.map} +0 -0
- /package/dist/{chunk-DYYQSC2V.js.map → chunk-CLC4VIOF.js.map} +0 -0
- /package/dist/{chunk-Y52BXZO3.js.map → chunk-CZV6NVCA.js.map} +0 -0
- /package/dist/{chunk-KRLBT3IV.js.map → chunk-DUYPCBI2.js.map} +0 -0
- /package/dist/{chunk-DOPD5J2Q.js.map → chunk-E2WNRYKA.js.map} +0 -0
- /package/dist/{chunk-OUXJYKCL.js.map → chunk-ERTXRK6S.js.map} +0 -0
- /package/dist/{chunk-N4BARJEQ.js.map → chunk-EW55ZS5W.js.map} +0 -0
- /package/dist/{chunk-6PU3JYVY.js.map → chunk-F3AYISXT.js.map} +0 -0
- /package/dist/{chunk-VEKTKCSB.js.map → chunk-FLJ3RIRP.js.map} +0 -0
- /package/dist/{chunk-LXYV73TW.js.map → chunk-G5ORAVSP.js.map} +0 -0
- /package/dist/{chunk-AKC5GRJF.js.map → chunk-G76BNXWE.js.map} +0 -0
- /package/dist/{chunk-NPOQSACK.js.map → chunk-GDT235FP.js.map} +0 -0
- /package/dist/{chunk-FTCCTQZB.js.map → chunk-GI24X7XA.js.map} +0 -0
- /package/dist/{chunk-FQUIEXEY.js.map → chunk-GNBCSTXF.js.map} +0 -0
- /package/dist/{chunk-JP32U64U.js.map → chunk-GWUJIO6Z.js.map} +0 -0
- /package/dist/{chunk-NVXRV3PL.js.map → chunk-GYDUXL3D.js.map} +0 -0
- /package/dist/{chunk-DKKINJHC.js.map → chunk-H4NS5MMP.js.map} +0 -0
- /package/dist/{chunk-TSUXEWVX.js.map → chunk-HFBQCJNP.js.map} +0 -0
- /package/dist/{chunk-4JZ6XDVA.js.map → chunk-I6ESCBY3.js.map} +0 -0
- /package/dist/{chunk-CUREVLBT.js.map → chunk-ICSXPZXT.js.map} +0 -0
- /package/dist/{chunk-2ZRZTGWP.js.map → chunk-ISW5K72V.js.map} +0 -0
- /package/dist/{chunk-O3LX26CX.js.map → chunk-JC244QQF.js.map} +0 -0
- /package/dist/{chunk-JF643Q7W.js.map → chunk-JF5LQOGB.js.map} +0 -0
- /package/dist/{chunk-NT73ZLBO.js.map → chunk-JL77BSOL.js.map} +0 -0
- /package/dist/{chunk-HNWNIBCU.js.map → chunk-JWXGZ4VM.js.map} +0 -0
- /package/dist/{chunk-LL5KGYLG.js.map → chunk-KEKOPD43.js.map} +0 -0
- /package/dist/{chunk-CFDWKQZT.js.map → chunk-KILA7LCC.js.map} +0 -0
- /package/dist/{chunk-XTWOHAOT.js.map → chunk-KKWCAZM6.js.map} +0 -0
- /package/dist/{chunk-VCGNH23W.js.map → chunk-LJKWWXZD.js.map} +0 -0
- /package/dist/{chunk-FXZUVZON.js.map → chunk-LWZ2K225.js.map} +0 -0
- /package/dist/{chunk-M24EG6JC.js.map → chunk-MKAA3YIJ.js.map} +0 -0
- /package/dist/{chunk-VSKFRS32.js.map → chunk-MLCY7TSO.js.map} +0 -0
- /package/dist/{chunk-AZ7YT2R4.js.map → chunk-MLLWGHIX.js.map} +0 -0
- /package/dist/{chunk-J6A4ZQWD.js.map → chunk-N4MR4EMC.js.map} +0 -0
- /package/dist/{chunk-TRD26PNE.js.map → chunk-NXMCTYBN.js.map} +0 -0
- /package/dist/{chunk-KWF7C6IZ.js.map → chunk-NZZ2BTIK.js.map} +0 -0
- /package/dist/{chunk-XDITTQIR.js.map → chunk-OBKUG7BW.js.map} +0 -0
- /package/dist/{chunk-SSDYEOU4.js.map → chunk-OBMPE6PW.js.map} +0 -0
- /package/dist/{chunk-XLRBJEYA.js.map → chunk-OGBLNORM.js.map} +0 -0
- /package/dist/{chunk-SNFULDT7.js.map → chunk-PIIPEXRM.js.map} +0 -0
- /package/dist/{chunk-M5GJYVDM.js.map → chunk-Q5G2EC24.js.map} +0 -0
- /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
- /package/dist/{chunk-AYRMZC5F.js.map → chunk-RBHBJDOZ.js.map} +0 -0
- /package/dist/{chunk-RPKUZDRY.js.map → chunk-SE5WHKCB.js.map} +0 -0
- /package/dist/{chunk-YUPUJZ2X.js.map → chunk-SIWXMNQT.js.map} +0 -0
- /package/dist/{chunk-U2TC4DID.js.map → chunk-SJTQW6JK.js.map} +0 -0
- /package/dist/{chunk-NMXTZSDE.js.map → chunk-T2S7NIUG.js.map} +0 -0
- /package/dist/{chunk-V7APSQB4.js.map → chunk-TWWA7QPA.js.map} +0 -0
- /package/dist/{chunk-YXE4FISF.js.map → chunk-ULTQIVF3.js.map} +0 -0
- /package/dist/{chunk-PALISWDH.js.map → chunk-UNJMMLO7.js.map} +0 -0
- /package/dist/{chunk-XBXJKYUN.js.map → chunk-UPAFHAF4.js.map} +0 -0
- /package/dist/{chunk-OKBEWR6L.js.map → chunk-WSUHTLOA.js.map} +0 -0
- /package/dist/{chunk-GMH4TYPP.js.map → chunk-XM2YEXGO.js.map} +0 -0
- /package/dist/{chunk-R53ZOW4B.js.map → chunk-XP522FFM.js.map} +0 -0
- /package/dist/{chunk-NRHQJEHB.js.map → chunk-XTHDWW4M.js.map} +0 -0
- /package/dist/{chunk-ZI3AJEZS.js.map → chunk-Y2HCYT5W.js.map} +0 -0
- /package/dist/{chunk-5GXLWNQ7.js.map → chunk-Y4T33THY.js.map} +0 -0
- /package/dist/{chunk-TK5LNXMB.js.map → chunk-YCYGUTQX.js.map} +0 -0
- /package/dist/{chunk-ANVIO75O.js.map → chunk-YRXFJIR5.js.map} +0 -0
- /package/dist/{chunk-5WJFCQFN.js.map → chunk-YXIVQFNW.js.map} +0 -0
- /package/dist/{chunk-WC3W36AM.js.map → chunk-ZOUWHGV3.js.map} +0 -0
- /package/dist/native/chunks/{chunk-RJOHCM2O.js.map → chunk-QGTZGL7P.js.map} +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Screen test status
|
|
2
|
+
|
|
3
|
+
## Passed locally
|
|
4
|
+
|
|
5
|
+
- Package build: all 147 web exports and 28 native exports, declarations and export checks (35.4 s)
|
|
6
|
+
- Package check-types: web, native source and native test programs
|
|
7
|
+
- Package lint: zero lint errors; existing ESLintEnvWarning notices in Dialog/Toast stories
|
|
8
|
+
- Native parity and icon generation: 28/147 subpaths, 625 shared stories, 46 glyphs
|
|
9
|
+
- Web unit suite: 188 files, 2,388 tests, zero skipped (121.3 s)
|
|
10
|
+
- Native unit suite: 29 files, 369 tests, zero skipped (16.3 s)
|
|
11
|
+
- Focused Screen/icon tests: 12 web and 15 native cases
|
|
12
|
+
- Full-source consumer candidate: 84 cases across 10 native suites, zero skipped,
|
|
13
|
+
including theme propagation under Android and iOS configurations; typecheck passed
|
|
14
|
+
|
|
15
|
+
## Coverage
|
|
16
|
+
|
|
17
|
+
Shared stories: Default, LongContent, TabBarOwnsBottom, ChildOwnsScroll, Empty,
|
|
18
|
+
KeyboardForm. Shared play tests: BoundedOverflow, InputRemainsInteractive,
|
|
19
|
+
EmptyScreen, ChildViewportStaysBounded.
|
|
20
|
+
|
|
21
|
+
Positive: theme spacing/color, root accessibility/ref, selected safe-area edges,
|
|
22
|
+
keyboard offsets, native scroll callbacks, existing-provider reuse and unseeded
|
|
23
|
+
provider fallback. Negative/repeated: disable scrolling/keyboard lift, zero
|
|
24
|
+
edges, repeated policy changes, avoid duplicate automatic insets, and prevent
|
|
25
|
+
native props leaking to the DOM. Browser geometry, final hosted CI are tracked on PR #736. Final-source unit/type checks and
|
|
26
|
+
`pnpm quality` passed at 0fee5e6; the keyboard-disable negative control failed
|
|
27
|
+
exactly 2 of 7 tests, and the unchanged positive source passed all 369 native tests.
|
|
28
|
+
|
|
29
|
+
Device keyboard/rotation/notch QA has not run; no device was available. Neither
|
|
30
|
+
react-native-web nor mocked platform tests constitute an observed device keyboard.
|
|
31
|
+
|
|
32
|
+
## Failures and recovery
|
|
33
|
+
|
|
34
|
+
- The default package-store path was not writable; explicit workspace paths fixed it
|
|
35
|
+
- Temporary storage filled during initial setup. Only task-generated caches were removed
|
|
36
|
+
- Two pinned-pnpm dependency resolution/download attempts ended with exit 137.
|
|
37
|
+
The environment's available pnpm 11.19.0 bootstrapped the unchanged frozen
|
|
38
|
+
lockfile in 31.3 s; verification commands use repository-pinned pnpm 10.34.5
|
|
39
|
+
- First native focused run used an unsupported Vitest spy helper; using Vitest's
|
|
40
|
+
getter spy fixed both failing platform cases
|
|
41
|
+
- Adding Screen required the intentional public-export count assertion to move
|
|
42
|
+
from 146 to 147; the full web suite then passed
|
|
43
|
+
- Aggregate complexity flagged the initial render functions; extracting small
|
|
44
|
+
style/keyboard helpers preserves behavior and brings them under the limit
|
|
45
|
+
- A first experimental consumer tarball overlaid only Screen/icons on an older
|
|
46
|
+
published build. This duplicated UiThemeContext and failed dark-theme propagation.
|
|
47
|
+
It was rejected. Rebuilding every entry together fixed the candidate and passed
|
|
48
|
+
the consumer's regression. Release artifacts must always use the full build
|
|
49
|
+
|
|
50
|
+
## Hosted verification (2026-09-30 17:30 BRT)
|
|
51
|
+
|
|
52
|
+
Run https://github.com/12-apps/shared-packages/actions/runs/36772172767 passed
|
|
53
|
+
Build, Lint, Type Check, Unit Tests, Static Gates (including knip), web Storybook,
|
|
54
|
+
Consumer Verification and Native Harness. Every dispatched job used ubuntu-latest
|
|
55
|
+
in the GitHub Actions runner group. The native Storybook lane caught four new
|
|
56
|
+
play tests querying before the unseeded safe-area provider's initial effect.
|
|
57
|
+
The tests now await the actual elements with findByTestId; no assertion is removed
|
|
58
|
+
and runtime code is unchanged. The other 630 native story cases passed (two
|
|
59
|
+
pre-existing web-only cases were skipped). Final retry and release status live at
|
|
60
|
+
https://github.com/12-apps/shared-packages/pull/736.
|
|
61
|
+
|
|
62
|
+
Local native Storybook build passed; browser execution was blocked by the
|
|
63
|
+
execution environment's Chromium Unix-socket restriction, including the supported
|
|
64
|
+
escalation attempt. Hosted browser evidence is authoritative for this lane.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Screen
|
|
2
|
+
|
|
3
|
+
A cross-platform bounded screen with safe-area edges, scrolling and keyboard lift.
|
|
4
|
+
See Screen.md for every prop and tests.md for the evidence and failures.
|
|
5
|
+
|
|
6
|
+
## Lint / Type Errors
|
|
7
|
+
Package lint and all three check-types programs pass. The guidelines mention
|
|
8
|
+
`check:component`, but that command/script is absent; current package scripts apply.
|
|
9
|
+
|
|
10
|
+
## Testing Scenarios
|
|
11
|
+
Shared play tests cover real overflow, child-owned scrolling, form interaction
|
|
12
|
+
and empty content. Unit tests cover inset ownership and repeated native policy
|
|
13
|
+
changes. Device keyboard/notch/rotation QA is not claimed.
|
|
14
|
+
|
|
15
|
+
## Current
|
|
16
|
+
2026-09-30 17:30 BRT: Source review addressed safe-area/keyboard nesting,
|
|
17
|
+
child-owned viewport sizing, Android avoidance disabling and stale initial inset
|
|
18
|
+
metrics on remount. The optional native peer does not affect web-only consumers.
|
|
19
|
+
Screen and three generated tab glyphs are additive; existing component contracts
|
|
20
|
+
are unchanged. Refreshed onto main dd971d29 after the concurrent color-role merge.
|
|
21
|
+
|
|
22
|
+
Full build, final-source package suites/types, lint, parity and aggregate quality
|
|
23
|
+
passed locally. Source/packaging review approved 0fee5e6. Hosted web/native harness
|
|
24
|
+
checks passed; native play tests now await safe-area initialization. Final hosted
|
|
25
|
+
retry and release status are recorded on PR #736. Normal
|
|
26
|
+
reviewed CI/CD publishes after merge; no manual package version or publish.
|
package/src/icons/glyphs.json
CHANGED
|
@@ -30,6 +30,9 @@ export const ICON_PATHS = {
|
|
|
30
30
|
ExpandLess: ["m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"],
|
|
31
31
|
ExpandMore: ["M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"],
|
|
32
32
|
FilterList: ["M10 18h4v-2h-4zM3 6v2h18V6zm3 7h12v-2H6z"],
|
|
33
|
+
FitnessCenter: ["M20.57 14.86 22 13.43 20.57 12 17 15.57 8.43 7 12 3.43 10.57 2 9.14 3.43 7.71 2 5.57 4.14 4.14 2.71 2.71 4.14l1.43 1.43L2 7.71l1.43 1.43L2 10.57 3.43 12 7 8.43 15.57 17 12 20.57 13.43 22l1.43-1.43L16.29 22l2.14-2.14 1.43 1.43 1.43-1.43-1.43-1.43L22 16.29z"],
|
|
34
|
+
History: ["M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9m-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8z"],
|
|
35
|
+
Home: ["M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"],
|
|
33
36
|
IndeterminateCheckBox: ["M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10H7v-2h10z"],
|
|
34
37
|
Info: ["M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"],
|
|
35
38
|
InfoOutlined: ["M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8"],
|
package/src/tokens/surfaces.ts
CHANGED
|
@@ -100,9 +100,19 @@ export function surfaces(theme: Theme): UiSurfaces {
|
|
|
100
100
|
* Opaque on purpose. A translucent `alpha(main, 0.08)` is a different colour
|
|
101
101
|
* on every surface it lands on, and its contrast with the signal's own text
|
|
102
102
|
* cannot be known in advance; a composited value is the same colour anywhere.
|
|
103
|
+
*
|
|
104
|
+
* A palette MUI accepts but cannot decompose — a named colour (`white`), a
|
|
105
|
+
* `var(--…)`, a `color(display-p3 …)` — gets the same mix from the browser,
|
|
106
|
+
* as a CSS `color-mix()`, rather than throwing at render.
|
|
103
107
|
*/
|
|
104
108
|
export function softSignal(theme: Theme, signal: SoftSignal): string {
|
|
105
109
|
const stated = theme.uiSoftSignal?.[signal];
|
|
106
|
-
if (stated) return stated;
|
|
107
|
-
|
|
110
|
+
if (stated !== undefined && stated !== '') return stated;
|
|
111
|
+
const paper = theme.palette.background.paper;
|
|
112
|
+
const main = theme.palette[signal].main;
|
|
113
|
+
try {
|
|
114
|
+
return blend(paper, main, SOFT_SIGNAL_OPACITY);
|
|
115
|
+
} catch {
|
|
116
|
+
return `color-mix(in srgb, ${main} ${SOFT_SIGNAL_OPACITY * 100}%, ${paper})`;
|
|
117
|
+
}
|
|
108
118
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/feedback/StackedModal/StackedModal.parts.tsx"],"sourcesContent":["import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport DialogActions from '@mui/material/DialogActions/index.js';\nimport DialogContent from '@mui/material/DialogContent/index.js';\nimport DialogTitle from '@mui/material/DialogTitle/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Skeleton from '@mui/material/Skeleton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled, useTheme } from '@mui/material/styles/index.js';\nimport type { FC, ReactNode } from 'react';\nimport React from 'react';\nimport { rem } from '../../../tokens/relative';\nimport { safeAreaBottom } from '../../../utils/viewport';\nimport {\n loadingOverlayStyles,\n modalContentStyles,\n titleLeftStyles,\n titleRightStyles,\n titleStyles,\n} from './StackedModal.styles';\n\nconst StyledDialogTitle = styled(DialogTitle, {\n shouldForwardProp: (prop) => prop !== 'rtl',\n})<{ rtl?: boolean }>(({ theme, rtl }) => titleStyles(theme, rtl));\n\nconst DialogTitleLeft = styled(Box)(({ theme }) => titleLeftStyles(theme));\nconst DialogTitleRight = styled(Box)(({ theme }) => titleRightStyles(theme));\nconst LoadingOverlay = styled(Box)(({ theme }) => loadingOverlayStyles(theme));\n\n/**\n * The padded content wrapper callers put inside a StackedModal. The explicit\n * `typeof DialogContent` annotation keeps its type nameable across package\n * boundaries (TS2742) now that it is re-exported from the barrel.\n */\nexport const StackedModalContent: typeof DialogContent = styled(DialogContent)(({ theme }) =>\n modalContentStyles(theme),\n) as typeof DialogContent;\n\n/** Sub-element test IDs derive from the modal's own, or stay off when it has none. */\nexport const testId = (base: string | undefined, suffix: string): string | undefined =>\n base ? `${base}-${suffix}` : undefined;\n\n/**\n * A wrapper marking the subtree that should render as modal actions — the\n * StackedModal pulls it out of `children` and places it by device.\n */\nexport const StackedModalActions: FC<{ children?: ReactNode }> = ({ children }) => <>{children}</>;\n\n/** Separates the `StackedModalActions` subtree from the rest of the content. */\nconst splitModalChildren = (children: ReactNode): { content: ReactNode; actions: ReactNode } => {\n let actions: ReactNode = null;\n\n React.Children.forEach(children, (child) => {\n if (React.isValidElement<{ children?: ReactNode }>(child) && child.type === StackedModalActions) {\n actions = child.props.children;\n }\n });\n\n const content = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === StackedModalActions),\n );\n\n return { content, actions };\n};\n\n/**\n * Works out what renders where: a `StackedModalActions` child wins over the\n * `actions` prop, and on phones those actions move out of the header into a\n * pinned bottom bar.\n */\nexport const resolveModalContent = (\n children: ReactNode,\n actions: ReactNode,\n isMobile: boolean,\n): {\n content: ReactNode;\n modalActions: ReactNode;\n headerActions: ReactNode;\n hasMobileActions: boolean;\n} => {\n const { content, actions: childActions } = splitModalChildren(children);\n const modalActions = childActions ?? actions;\n return {\n content,\n modalActions,\n headerActions: isMobile ? null : modalActions,\n hasMobileActions: Boolean(isMobile && modalActions),\n };\n};\n\n/** The panel's own ARIA ids, unless the caller wired it to its own labels. */\nexport const modalAriaIds = (\n modalId: string,\n ariaLabelledBy?: string,\n ariaDescribedBy?: string,\n): { titleId: string; descId: string } => ({\n titleId: ariaLabelledBy || `modal-title-${modalId}`,\n descId: ariaDescribedBy || `modal-desc-${modalId}`,\n});\n\nexport const ModalLoadingOverlay: FC<{ loadingText?: string; dataTestId?: string }> = ({\n loadingText,\n dataTestId,\n}) => {\n const theme = useTheme();\n return (\n <LoadingOverlay data-testid={testId(dataTestId, 'loading-overlay')}>\n <CircularProgress size={rem(theme, 40)} data-testid={testId(dataTestId, 'loading-spinner')} />\n {loadingText && (\n <Typography variant=\"body2\" sx={{ mt: 2 }} data-testid={testId(dataTestId, 'loading-text')}>\n {loadingText}\n </Typography>\n )}\n </LoadingOverlay>\n );\n};\n\ninterface ModalHeaderProps {\n titleId: string;\n navigationTitle?: ReactNode;\n /** Deeper than the first panel, so the leading button goes back instead of closing. */\n canGoBack: boolean;\n onBack: () => void;\n /** The back arrow's accessible name — it carries a glyph only. REQUIRED. */\n backLabel: string;\n onClose: () => void;\n /** Renders the bar without its ✕ — the panel's content owns the dismiss. */\n hideClose?: boolean;\n /** Header actions — desktop only; on phones they move to the footer. */\n headerActions?: ReactNode;\n rtl?: boolean;\n dataTestId?: string;\n}\n\n/**\n * The bar's leading control: back at depth ≥2, otherwise close — and nothing at\n * all when the panel's content carries its own ✕ (`hideClose`).\n */\nconst HeaderLeadingButton: FC<\n Pick<\n ModalHeaderProps,\n 'canGoBack' | 'onBack' | 'backLabel' | 'onClose' | 'hideClose' | 'rtl' | 'dataTestId'\n >\n> = ({ canGoBack, onBack, backLabel, onClose, hideClose, rtl, dataTestId }) => {\n if (canGoBack) {\n return (\n <IconButton\n edge=\"start\"\n color=\"inherit\"\n onClick={onBack}\n aria-label={backLabel}\n size=\"small\"\n sx={{ transform: rtl ? 'rotate(180deg)' : 'none' }}\n data-testid={testId(dataTestId, 'back-button')}\n >\n <ChevronLeftIcon />\n </IconButton>\n );\n }\n if (hideClose) return null;\n return (\n <IconButton\n edge=\"start\"\n color=\"inherit\"\n onClick={onClose}\n aria-label=\"close\"\n size=\"small\"\n data-testid={testId(dataTestId, 'close-button')}\n >\n <CloseIcon />\n </IconButton>\n );\n};\n\nexport const ModalHeader: FC<ModalHeaderProps> = ({\n titleId,\n navigationTitle,\n canGoBack,\n onBack,\n onClose,\n hideClose,\n backLabel,\n headerActions,\n rtl,\n dataTestId,\n}) => (\n <StyledDialogTitle id={titleId} rtl={rtl} data-testid={testId(dataTestId, 'header')}>\n <DialogTitleLeft>\n <HeaderLeadingButton\n canGoBack={canGoBack}\n onBack={onBack}\n backLabel={backLabel}\n onClose={onClose}\n hideClose={hideClose}\n rtl={rtl}\n dataTestId={dataTestId}\n />\n {navigationTitle && (\n <Typography\n variant=\"h6\"\n component=\"h2\"\n noWrap\n sx={{ ml: canGoBack || !hideClose ? 1 : 0 }}\n data-testid={testId(dataTestId, 'title')}\n >\n {navigationTitle}\n </Typography>\n )}\n </DialogTitleLeft>\n <DialogTitleRight data-testid={testId(dataTestId, 'header-actions')}>\n {headerActions}\n </DialogTitleRight>\n </StyledDialogTitle>\n);\n\nconst ContentSkeleton: FC = () => {\n const theme = useTheme();\n return (\n <Box sx={{ p: 3 }}>\n <Skeleton variant=\"text\" width=\"60%\" height={rem(theme, 32)} />\n <Skeleton variant=\"text\" width=\"100%\" />\n <Skeleton variant=\"text\" width=\"100%\" />\n <Skeleton variant=\"rectangular\" height={rem(theme, 200)} sx={{ mt: 2 }} />\n </Box>\n );\n};\n\ninterface ModalBodyProps {\n descId: string;\n showSkeleton: boolean;\n /** When there is no action bar, the body is what reaches the bottom of the panel. */\n endsPanel: boolean;\n dataTestId?: string;\n children?: ReactNode;\n}\n\nexport const ModalBody: FC<ModalBodyProps> = ({\n descId,\n showSkeleton,\n endsPanel,\n dataTestId,\n children,\n}) => (\n <Box\n id={descId}\n sx={{\n position: 'relative',\n flex: 1,\n overflow: 'auto',\n // iOS momentum scrolling, and no scroll-chaining to the page behind —\n // without `contain`, an overscroll at the end of the list rubber-bands the\n // whole panel and springs back before the last row can be tapped.\n WebkitOverflowScrolling: 'touch',\n overscrollBehavior: 'contain',\n // The content itself ends the panel when there is no action bar, so it has\n // to clear the home indicator on its own.\n ...(endsPanel ? safeAreaBottom(0) : {}),\n }}\n data-testid={testId(dataTestId, 'content')}\n >\n {showSkeleton ? <ContentSkeleton /> : children}\n </Box>\n);\n\n/** The phone-only pinned action bar; on desktop the actions live in the header. */\nexport const ModalFooter: FC<{ dataTestId?: string; children?: ReactNode }> = ({\n dataTestId,\n children,\n}) => (\n <DialogActions\n sx={{\n borderTop: (theme) => `1px solid ${theme.palette.divider}`,\n padding: 2,\n // Never let the action row sit under the iOS home indicator.\n flexShrink: 0,\n ...safeAreaBottom(16),\n }}\n data-testid={testId(dataTestId, 'footer')}\n >\n {children}\n </DialogActions>\n);\n\ninterface PanelContentsProps extends ModalHeaderProps {\n showSkeleton: boolean;\n loadingText?: string;\n descId: string;\n content: ReactNode;\n /** The resolved actions, already placed in the header or destined for the footer. */\n modalActions: ReactNode;\n hasMobileActions: boolean;\n}\n\n/** Everything inside the sliding panel: the loading veil, header, body and action bar. */\nexport const ModalPanelContents: FC<PanelContentsProps> = ({\n showSkeleton,\n loadingText,\n descId,\n content,\n modalActions,\n hasMobileActions,\n ...header\n}) => (\n <>\n {showSkeleton && (\n <ModalLoadingOverlay loadingText={loadingText} dataTestId={header.dataTestId} />\n )}\n <ModalHeader {...header} />\n <ModalBody\n descId={descId}\n showSkeleton={showSkeleton}\n endsPanel={!hasMobileActions}\n dataTestId={header.dataTestId}\n >\n {content}\n </ModalBody>\n {hasMobileActions && (\n <ModalFooter dataTestId={header.dataTestId}>{modalActions}</ModalFooter>\n )}\n </>\n);\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/icons/paths.generated.ts"],"sourcesContent":["// GENERATED by scripts/generate-icon-paths.mjs from src/icons/glyphs.json.\n// Do not edit: run `pnpm icons:generate`; `pnpm icons:check` fails CI on drift.\n//\n// Each entry is the `d` of every <path> in the matching @mui/icons-material\n// module, in a 24x24 viewBox — the SAME geometry the web renders through\n// SvgIcon, so the native Icon draws the identical glyph.\n\n/** Path data per glyph, in a 0 0 24 24 viewBox. */\nexport const ICON_PATHS = {\n Add: [\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z\"],\n ArrowBack: [\"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z\"],\n ArrowDownward: [\"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z\"],\n ArrowDropDown: [\"m7 10 5 5 5-5z\"],\n ArrowForward: [\"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"],\n ArrowUpward: [\"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z\"],\n BrokenImage: [\"M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2m-3 6.42 3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4z\"],\n Cancel: [\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z\"],\n Check: [\"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"],\n CheckBox: [\"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2m-9 14-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z\"],\n CheckBoxOutlineBlank: [\"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2\"],\n CheckCircle: [\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z\"],\n ChevronLeft: [\"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"],\n ChevronRight: [\"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"],\n Close: [\"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"],\n ContentCopy: [\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z\"],\n Delete: [\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z\"],\n Edit: [\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z\"],\n Error: [\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z\"],\n ErrorOutline: [\"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8\"],\n ExpandLess: [\"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"],\n ExpandMore: [\"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"],\n FilterList: [\"M10 18h4v-2h-4zM3 6v2h18V6zm3 7h12v-2H6z\"],\n IndeterminateCheckBox: [\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10H7v-2h10z\"],\n Info: [\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z\"],\n InfoOutlined: [\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8\"],\n KeyboardArrowDown: [\"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z\"],\n KeyboardArrowUp: [\"M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z\"],\n Menu: [\"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z\"],\n MoreHoriz: [\"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"],\n MoreVert: [\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"],\n NavigateBefore: [\"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"],\n NavigateNext: [\"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"],\n Person: [\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4\"],\n Refresh: [\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z\"],\n Remove: [\"M19 13H5v-2h14z\"],\n Save: [\"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z\"],\n Search: [\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\"],\n Settings: [\"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6\"],\n Visibility: [\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3\"],\n VisibilityOff: [\"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z\"],\n Warning: [\"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z\"],\n WarningAmber: [\"M12 5.99 19.53 19H4.47zM12 2 1 21h22z\",\"M13 16h-2v2h2zm0-6h-2v5h2z\"],\n} as const;\n\nexport type IconName = keyof typeof ICON_PATHS;\n\nexport const ICON_NAMES = Object.keys(ICON_PATHS) as readonly IconName[];\n"],"mappings":";AAQO,IAAM,aAAa;AAAA,EACxB,KAAK,CAAC,mCAAmC;AAAA,EACzC,WAAW,CAAC,2DAA2D;AAAA,EACvE,eAAe,CAAC,2DAA2D;AAAA,EAC3E,eAAe,CAAC,gBAAgB;AAAA,EAChC,cAAc,CAAC,0DAA0D;AAAA,EACzE,aAAa,CAAC,yDAAyD;AAAA,EACvE,aAAa,CAAC,qJAAqJ;AAAA,EACnK,QAAQ,CAAC,uKAAuK;AAAA,EAChL,OAAO,CAAC,mDAAmD;AAAA,EAC3D,UAAU,CAAC,8HAA8H;AAAA,EACzI,sBAAsB,CAAC,yFAAyF;AAAA,EAChH,aAAa,CAAC,gHAAgH;AAAA,EAC9H,aAAa,CAAC,+CAA+C;AAAA,EAC7D,cAAc,CAAC,gDAAgD;AAAA,EAC/D,OAAO,CAAC,uGAAuG;AAAA,EAC/G,aAAa,CAAC,2HAA2H;AAAA,EACzI,QAAQ,CAAC,0EAA0E;AAAA,EACnF,MAAM,CAAC,kIAAkI;AAAA,EACzI,OAAO,CAAC,6FAA6F;AAAA,EACrG,cAAc,CAAC,uKAAuK;AAAA,EACtL,YAAY,CAAC,+CAA+C;AAAA,EAC5D,YAAY,CAAC,8CAA8C;AAAA,EAC3D,YAAY,CAAC,0CAA0C;AAAA,EACvD,uBAAuB,CAAC,4FAA4F;AAAA,EACpH,MAAM,CAAC,6FAA6F;AAAA,EACpG,cAAc,CAAC,oJAAoJ;AAAA,EACnK,mBAAmB,CAAC,+CAA+C;AAAA,EACnE,iBAAiB,CAAC,gDAAgD;AAAA,EAClE,MAAM,CAAC,yCAAyC;AAAA,EAChD,WAAW,CAAC,kJAAkJ;AAAA,EAC9J,UAAU,CAAC,gJAAgJ;AAAA,EAC3J,gBAAgB,CAAC,+CAA+C;AAAA,EAChE,cAAc,CAAC,gDAAgD;AAAA,EAC/D,QAAQ,CAAC,6GAA6G;AAAA,EACtH,SAAS,CAAC,iMAAiM;AAAA,EAC3M,QAAQ,CAAC,iBAAiB;AAAA,EAC1B,MAAM,CAAC,wIAAwI;AAAA,EAC/I,QAAQ,CAAC,mOAAmO;AAAA,EAC5O,UAAU,CAAC,irBAAirB;AAAA,EAC5rB,YAAY,CAAC,gNAAgN;AAAA,EAC7N,eAAe,CAAC,0eAA0e;AAAA,EAC1f,SAAS,CAAC,2CAA2C;AAAA,EACrD,cAAc,CAAC,yCAAwC,4BAA4B;AACrF;AAIO,IAAM,aAAa,OAAO,KAAK,UAAU;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/icons/Icon.types.ts","../../../src/icons/paths.generated.ts","../../../src/icons/Icon.native.tsx","../../../src/icons/icon-color.ts"],"sourcesContent":["import type { IconName } from './paths.generated';\nimport type { ColorValue, SizeValue } from '../tokens/vocabulary';\n\nexport type { IconName };\n\n/**\n * The glyph sizes, in px. `md` is MUI's `SvgIcon` default (24) and `sm` its\n * `small` (20); the rest continue the house scale in 4px steps either side.\n */\nexport const ICON_SIZES: Record<SizeValue, number> = {\n xs: 16,\n sm: 20,\n md: 24,\n lg: 32,\n xl: 40,\n};\n\nexport interface IconBaseProps {\n /** Which glyph. The list is `src/icons/glyphs.json`; both renderers draw the same paths. */\n name: IconName;\n /** A step of the house scale, or an exact px size. */\n size?: SizeValue | number;\n /**\n * A house colour, `inherit` (the surrounding text's colour on the web, the\n * theme's primary text on native, which has no `currentColor`), or any CSS\n * colour string.\n */\n color?: ColorValue | 'inherit' | string;\n /**\n * The name a screen reader gives the glyph. Omit for a decorative icon: it\n * is then hidden from assistive technology on both renderers.\n */\n label?: string;\n testID?: string;\n dataTestId?: string;\n}\n\n/** The px size for either spelling of `size`. */\nexport const iconSize = (size: SizeValue | number | undefined): number =>\n typeof size === 'number' ? size : ICON_SIZES[size ?? 'md'];\n","// GENERATED by scripts/generate-icon-paths.mjs from src/icons/glyphs.json.\n// Do not edit: run `pnpm icons:generate`; `pnpm icons:check` fails CI on drift.\n//\n// Each entry is the `d` of every <path> in the matching @mui/icons-material\n// module, in a 24x24 viewBox — the SAME geometry the web renders through\n// SvgIcon, so the native Icon draws the identical glyph.\n\n/** Path data per glyph, in a 0 0 24 24 viewBox. */\nexport const ICON_PATHS = {\n Add: [\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z\"],\n ArrowBack: [\"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z\"],\n ArrowDownward: [\"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z\"],\n ArrowDropDown: [\"m7 10 5 5 5-5z\"],\n ArrowForward: [\"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"],\n ArrowUpward: [\"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z\"],\n BrokenImage: [\"M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2m-3 6.42 3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4z\"],\n Cancel: [\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z\"],\n Check: [\"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"],\n CheckBox: [\"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2m-9 14-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z\"],\n CheckBoxOutlineBlank: [\"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2\"],\n CheckCircle: [\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z\"],\n ChevronLeft: [\"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"],\n ChevronRight: [\"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"],\n Close: [\"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"],\n ContentCopy: [\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z\"],\n Delete: [\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z\"],\n Edit: [\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z\"],\n Error: [\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z\"],\n ErrorOutline: [\"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8\"],\n ExpandLess: [\"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"],\n ExpandMore: [\"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"],\n FilterList: [\"M10 18h4v-2h-4zM3 6v2h18V6zm3 7h12v-2H6z\"],\n IndeterminateCheckBox: [\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10H7v-2h10z\"],\n Info: [\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z\"],\n InfoOutlined: [\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8\"],\n KeyboardArrowDown: [\"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z\"],\n KeyboardArrowUp: [\"M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z\"],\n Menu: [\"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z\"],\n MoreHoriz: [\"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"],\n MoreVert: [\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2\"],\n NavigateBefore: [\"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"],\n NavigateNext: [\"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"],\n Person: [\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4\"],\n Refresh: [\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z\"],\n Remove: [\"M19 13H5v-2h14z\"],\n Save: [\"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z\"],\n Search: [\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\"],\n Settings: [\"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6\"],\n Visibility: [\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3\"],\n VisibilityOff: [\"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z\"],\n Warning: [\"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z\"],\n WarningAmber: [\"M12 5.99 19.53 19H4.47zM12 2 1 21h22z\",\"M13 16h-2v2h2zm0-6h-2v5h2z\"],\n} as const;\n\nexport type IconName = keyof typeof ICON_PATHS;\n\nexport const ICON_NAMES = Object.keys(ICON_PATHS) as readonly IconName[];\n","import * as React from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport Svg, { Path } from 'react-native-svg';\n\nimport { iconFill } from './icon-color';\nimport { iconSize, type IconBaseProps } from './Icon.types';\nimport { ICON_PATHS } from './paths.generated';\nimport { resolveTestId } from '../platform/test-id';\nimport { useUiTheme } from '../provider/use-ui-theme.native';\n\nexport interface IconProps extends IconBaseProps {\n style?: StyleProp<ViewStyle>;\n}\n\n/**\n * The native `Icon`: `react-native-svg` drawing the same generated path the web\n * `SvgIcon` draws, in the same 24-unit box, at the same px size.\n */\nexport function Icon({ name, size, color, label, style, ...rest }: IconProps): React.JSX.Element {\n const theme = useUiTheme();\n const px = iconSize(size);\n const fill = iconFill(theme, color, theme.palette.text.primary);\n const testId = resolveTestId(rest, `icon-${name}`);\n\n return (\n <Svg\n width={px}\n height={px}\n viewBox=\"0 0 24 24\"\n fill={fill}\n style={style}\n testID={testId}\n role=\"img\"\n aria-label={label}\n aria-hidden={!label}\n >\n {ICON_PATHS[name].map((d) => (\n <Path key={d} d={d} fill={fill} />\n ))}\n </Svg>\n );\n}\n\nIcon.displayName = 'Icon';\n","import { COLOR_VALUES, type ColorValue } from '../tokens/vocabulary';\nimport type { UiTheme } from '../tokens/theme';\n\nconst isColorValue = (color: string): color is ColorValue =>\n (COLOR_VALUES as readonly string[]).includes(color);\n\n/**\n * The fill for an icon's `color` prop, on either renderer.\n *\n * A house colour resolves to the palette slot's `main`; `inherit` is the\n * caller's problem (the web passes `currentColor`, native the text colour); any\n * other string is taken as a CSS colour and passed through.\n */\nexport function iconFill(theme: UiTheme, color: string | undefined, inherit: string): string {\n if (color === undefined || color === 'inherit') return inherit;\n if (isColorValue(color)) {\n return color === 'neutral' ? theme.palette.text.secondary : theme.palette[color].main;\n }\n return color;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/layout/Box/Box.base.ts","../../../src/components/layout/Box/box-layout.ts","../../../src/components/layout/Box/Box.native.tsx"],"sourcesContent":["import type * as React from 'react';\n\nimport type { UiPaletteKey, UiTheme } from '../../../tokens/theme';\n\n/**\n * THE LAYOUT PRIMITIVE BOTH RENDERERS SHARE.\n *\n * Half of every screen in the origin apps is `@12-apps/ui/mui/Box` with an `sx`\n * — raw MUI, which no native renderer can ever answer to. This `Box` is the\n * one a screen meant for both platforms writes instead: a fixed set of layout\n * props on the spacing scale, resolved by `box-layout.ts` into the same\n * numbers on each side. `p={2}` is 16px on the web and 16dp on native, because\n * both are `theme.spacing(2)`.\n *\n * Spacing props are in SPACING UNITS, exactly as MUI's own `Box` reads them.\n */\nexport type BoxDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\nexport type BoxAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';\nexport type BoxJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\nexport type BoxBackground = 'default' | 'paper' | 'transparent' | UiPaletteKey;\nexport type BoxRadius = keyof UiTheme['radius'];\n/** What both renderers accept as a size: px, a percentage, or `auto`. */\nexport type BoxDimension = number | 'auto' | `${number}%`;\n\nexport interface BoxSpacingProps {\n p?: number;\n px?: number;\n py?: number;\n pt?: number;\n pr?: number;\n pb?: number;\n pl?: number;\n m?: number;\n mx?: number;\n my?: number;\n mt?: number;\n mr?: number;\n mb?: number;\n ml?: number;\n /** Between children. Setting it makes the box a flex container. */\n gap?: number;\n}\n\nexport interface BoxBaseProps extends BoxSpacingProps {\n children?: React.ReactNode;\n /** Setting any of these four makes the box a flex container. */\n direction?: BoxDirection;\n align?: BoxAlign;\n justify?: BoxJustify;\n wrap?: boolean;\n flex?: number;\n /** A surface, `transparent`, or a palette slot's main colour. */\n bg?: BoxBackground;\n radius?: BoxRadius;\n /** A 1px border in the theme's divider colour. */\n bordered?: boolean;\n width?: BoxDimension;\n height?: BoxDimension;\n testID?: string;\n dataTestId?: string;\n}\n\n/** Every prop {@link BoxBaseProps} owns, so a renderer can split them from its own. */\nexport const BOX_BASE_KEYS = [\n 'p', 'px', 'py', 'pt', 'pr', 'pb', 'pl',\n 'm', 'mx', 'my', 'mt', 'mr', 'mb', 'ml',\n 'gap', 'direction', 'align', 'justify', 'wrap', 'flex',\n 'bg', 'radius', 'bordered', 'width', 'height', 'testID', 'dataTestId',\n] as const satisfies readonly (keyof Omit<BoxBaseProps, 'children'>)[];\n","import { BOX_BASE_KEYS, type BoxAlign, type BoxBaseProps, type BoxDimension, type BoxJustify } from './Box.base';\nimport type { UiTheme } from '../../../tokens/theme';\n\n/**\n * The resolved style, in React Native's property names.\n *\n * They are also valid CSS-in-JS names, and every number is px on the web and\n * dp on native, so ONE resolver feeds both `Box.tsx` (into `sx`) and\n * `Box.native.tsx` (into `style`). That is the alignment guarantee: there is no\n * second table of numbers for the native side to drift from.\n */\nexport interface BoxLayout {\n display?: 'flex';\n flexDirection?: BoxBaseProps['direction'];\n alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline';\n justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';\n flexWrap?: 'wrap';\n flex?: number;\n gap?: number;\n paddingTop?: number;\n paddingRight?: number;\n paddingBottom?: number;\n paddingLeft?: number;\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n backgroundColor?: string;\n borderRadius?: number;\n borderWidth?: number;\n borderStyle?: 'solid';\n borderColor?: string;\n width?: BoxDimension;\n height?: BoxDimension;\n}\n\nconst ALIGN: Record<BoxAlign, NonNullable<BoxLayout['alignItems']>> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n baseline: 'baseline',\n};\n\nconst JUSTIFY: Record<BoxJustify, NonNullable<BoxLayout['justifyContent']>> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n};\n\nfunction background(theme: UiTheme, bg: NonNullable<BoxBaseProps['bg']>): string {\n if (bg === 'transparent') return 'transparent';\n if (bg === 'default' || bg === 'paper') return theme.palette.background[bg];\n return theme.palette[bg].main;\n}\n\ntype SpacingKey = keyof Pick<\n BoxLayout,\n | 'paddingTop' | 'paddingRight' | 'paddingBottom' | 'paddingLeft'\n | 'marginTop' | 'marginRight' | 'marginBottom' | 'marginLeft'\n>;\n\n/**\n * Each side reads the most specific prop that is set: the side, then its axis,\n * then the shorthand — the precedence MUI's `Box` gives `pt`/`py`/`p`.\n */\nconst SIDES: ReadonlyArray<readonly [SpacingKey, ReadonlyArray<keyof BoxBaseProps>]> = [\n ['paddingTop', ['pt', 'py', 'p']],\n ['paddingRight', ['pr', 'px', 'p']],\n ['paddingBottom', ['pb', 'py', 'p']],\n ['paddingLeft', ['pl', 'px', 'p']],\n ['marginTop', ['mt', 'my', 'm']],\n ['marginRight', ['mr', 'mx', 'm']],\n ['marginBottom', ['mb', 'my', 'm']],\n ['marginLeft', ['ml', 'mx', 'm']],\n];\n\nfunction spacingLayout(props: BoxBaseProps, theme: UiTheme): BoxLayout {\n const layout: BoxLayout = {};\n for (const [key, sources] of SIDES) {\n const units = sources.map((source) => props[source]).find((value) => value !== undefined);\n if (typeof units === 'number') layout[key] = theme.spacing(units);\n }\n return layout;\n}\n\n/** A flex container whenever any flex prop is set; a plain box otherwise. */\nfunction flexLayout(props: BoxBaseProps, theme: UiTheme): BoxLayout {\n const layout: BoxLayout = {};\n const isFlex =\n [props.direction, props.align, props.justify, props.gap].some((value) => value !== undefined) ||\n props.wrap === true;\n if (!isFlex) return layout;\n\n layout.display = 'flex';\n layout.flexDirection = props.direction ?? 'column';\n if (props.gap !== undefined) layout.gap = theme.spacing(props.gap);\n if (props.align !== undefined) layout.alignItems = ALIGN[props.align];\n if (props.justify !== undefined) layout.justifyContent = JUSTIFY[props.justify];\n if (props.wrap) layout.flexWrap = 'wrap';\n return layout;\n}\n\nfunction surfaceLayout(props: BoxBaseProps, theme: UiTheme): BoxLayout {\n const layout: BoxLayout = {};\n if (props.flex !== undefined) layout.flex = props.flex;\n if (props.bg !== undefined) layout.backgroundColor = background(theme, props.bg);\n if (props.radius !== undefined) layout.borderRadius = theme.radius[props.radius];\n if (props.bordered) {\n // `borderStyle` spelled out: CSS defaults it to `none`, under which a\n // border-width computes to 0 and nothing paints. React Native's default is\n // `solid`, which is how a box can pass natively and vanish on the web.\n layout.borderWidth = 1;\n layout.borderStyle = 'solid';\n layout.borderColor = theme.palette.divider;\n }\n if (props.width !== undefined) layout.width = props.width;\n if (props.height !== undefined) layout.height = props.height;\n return layout;\n}\n\n/** The style for a box's neutral props. Unset props produce no key at all. */\nexport function resolveBoxLayout(props: BoxBaseProps, theme: UiTheme): BoxLayout {\n return { ...spacingLayout(props, theme), ...flexLayout(props, theme), ...surfaceLayout(props, theme) };\n}\n\n/** The neutral props on one side, everything else — the renderer's own — on the other. */\nexport function splitBoxProps<P extends BoxBaseProps>(\n props: P,\n): { layout: BoxBaseProps; rest: Omit<P, (typeof BOX_BASE_KEYS)[number]> } {\n const layout: Record<string, unknown> = {};\n const rest: Record<string, unknown> = {};\n const own = new Set<string>([...BOX_BASE_KEYS, 'data-testid']);\n for (const [key, value] of Object.entries(props)) {\n (own.has(key) ? layout : rest)[key] = value;\n }\n return {\n layout: layout as BoxBaseProps,\n rest: rest as Omit<P, (typeof BOX_BASE_KEYS)[number]>,\n };\n}\n","import * as React from 'react';\nimport { View } from 'react-native';\n\nimport { resolveBoxLayout, splitBoxProps } from './box-layout';\nimport type { BoxProps } from './Box.types.native';\nimport { resolveTestId } from '../../../platform/test-id';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\n\n/** The native `Box`: a `View` with the same resolved numbers the web `Box` puts in `sx`. */\nexport const Box = React.forwardRef<View, BoxProps>(({ children, style, ...props }, ref) => {\n const theme = useUiTheme();\n const { layout, rest } = splitBoxProps(props);\n const resolved = resolveBoxLayout(layout, theme);\n\n return (\n <View ref={ref} style={[resolved, style]} testID={resolveTestId(layout)} {...rest}>\n {children}\n </View>\n );\n});\n\nBox.displayName = 'Box';\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|