@12-apps/ui 6.73.1 → 6.74.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 +1 -1
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +6 -6
- 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/CardKit/use-remove-confirm.js +8 -5
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -5
- package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
- package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
- 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 +38 -38
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +60 -57
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +10 -7
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +7 -5
- package/dist/_internal/components/data-display/DataViews/base-card.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +12 -12
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +33 -33
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +16 -16
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +13 -13
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +14 -14
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +15 -12
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +4 -4
- 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/EmptyState/EmptyState.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +6 -6
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +14 -14
- package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +3 -3
- package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
- package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
- 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 +5 -5
- package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
- package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
- package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -4
- 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 +56 -56
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +5 -2
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +4 -1
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +6 -3
- package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +5 -2
- 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 +13 -11
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
- 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 +1 -1
- 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 +3 -3
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +7 -7
- package/dist/_internal/components/form/CepField/CepField.js +5 -4
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
- package/dist/_internal/components/form/Command/Command.js +2 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +9 -9
- package/dist/_internal/components/form/Input/Input.factory.js +23 -0
- package/dist/_internal/components/form/Input/Input.factory.js.map +1 -0
- package/dist/_internal/components/form/Input/Input.js +4 -2
- package/dist/_internal/components/form/Input/outlined/text-field-slim-outlined.js +10 -0
- package/dist/_internal/components/form/Input/outlined/text-field-slim-outlined.js.map +1 -0
- package/dist/_internal/components/form/Input/text-field-slim.factory.js +10 -0
- package/dist/_internal/components/form/Input/text-field-slim.factory.js.map +1 -0
- package/dist/_internal/components/form/Input/text-field-slim.js +2 -1
- package/dist/_internal/components/form/NumberField/NumberField.js +5 -3
- package/dist/_internal/components/form/PickerSheet/PickerSheet.js +2 -2
- package/dist/_internal/components/form/index.js +44 -40
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +8 -8
- package/dist/_internal/components/form/total-form/Fields/CepField.js +6 -5
- package/dist/_internal/components/form/total-form/Fields/TextField.js +5 -3
- package/dist/_internal/components/form/total-form/Fields/index.js +21 -17
- package/dist/_internal/components/index.js +161 -157
- package/dist/_internal/components/layout/Card/Card.js +2 -2
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +3 -3
- package/dist/_internal/components/layout/SettingCard/SettingCard.js +4 -4
- package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +3 -3
- package/dist/_internal/components/layout/SettingCard/SettingGroup.js +5 -5
- package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +4 -4
- package/dist/_internal/components/layout/SettingCard/SettingToggle.js +5 -5
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +5 -5
- 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/index.js +17 -17
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +7 -7
- 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/index.js +36 -36
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +2 -2
- package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
- package/dist/_internal/components/utility/index.js +8 -8
- package/dist/_internal/pt-BR.data-display.js +2 -2
- package/dist/_internal/social-login-button/social-login-button.js +3 -3
- package/dist/_internal/user-avatar/user-avatar.js +7 -7
- package/dist/charts.js +11 -11
- package/dist/{chunk-GMJBWOIU.js → chunk-2ILXXBMG.js} +5 -5
- package/dist/{chunk-LVATGJZO.js → chunk-2K2Q7VGV.js} +2 -2
- package/dist/{chunk-ISW5K72V.js → chunk-2ZRZTGWP.js} +5 -5
- package/dist/{chunk-BM3MKZL2.js → chunk-3BDMYTH6.js} +2 -2
- package/dist/{chunk-Q7BGMLCX.js → chunk-3FDSXSEP.js} +3 -3
- package/dist/{chunk-5WJFCQFN.js → chunk-3O2OJW4O.js} +4 -4
- package/dist/{chunk-L4FWEI2P.js → chunk-3V3Z4EML.js} +5 -5
- package/dist/{chunk-7KAZ3B5B.js → chunk-3VLVLZ6W.js} +4 -4
- package/dist/{chunk-CE74DKHT.js → chunk-44PBCQ7E.js} +7 -7
- package/dist/chunk-4JNC5AEF.js +14 -0
- package/dist/chunk-4JNC5AEF.js.map +1 -0
- package/dist/{chunk-U5YOOHR6.js → chunk-4QGPRORO.js} +2 -2
- package/dist/{chunk-W2RXXF7K.js → chunk-4XBAEKQQ.js} +4 -4
- package/dist/{chunk-7SPFK73H.js → chunk-52CLMR47.js} +7 -7
- package/dist/{chunk-LYVTJLCF.js → chunk-56JF5PZK.js} +4 -4
- package/dist/{chunk-QBY3TWV3.js → chunk-5HFB4WFE.js} +3 -3
- package/dist/{chunk-3DPPDGOF.js → chunk-62SXUU5U.js} +5 -5
- package/dist/{chunk-QADTI63U.js → chunk-6ATXOJVQ.js} +4 -4
- package/dist/{chunk-F3AYISXT.js → chunk-6PU3JYVY.js} +4 -4
- package/dist/{chunk-WVIJFS5Y.js → chunk-725H45MT.js} +7 -7
- package/dist/{chunk-XP522FFM.js → chunk-7JKDB5J5.js} +5 -5
- package/dist/{chunk-V45JGJ3W.js → chunk-7K23NEZO.js} +8 -8
- package/dist/{chunk-EOQ6EKTS.js → chunk-7XSCEHGA.js} +7 -7
- package/dist/{chunk-7VUXSNVZ.js → chunk-A4B27HYU.js} +2 -2
- package/dist/{chunk-ADSA76T7.js → chunk-AG3DY5TH.js} +2 -2
- package/dist/{chunk-G5ORAVSP.js → chunk-AJ5LXKLQ.js} +8 -8
- package/dist/{chunk-HI7JPDD6.js → chunk-AMLHEKSV.js} +5 -5
- package/dist/{chunk-XZILNBAU.js → chunk-ARVLS57B.js} +6 -6
- package/dist/{chunk-ZEH6MGP5.js → chunk-BEHM2VLH.js} +9 -9
- package/dist/{chunk-EBMWYRXW.js → chunk-BEYLI32I.js} +2 -2
- package/dist/{chunk-YKKHNYEW.js → chunk-BF3SGOWT.js} +3 -3
- package/dist/{chunk-MA6SUE7F.js → chunk-BGGVYKVZ.js} +4 -4
- package/dist/{chunk-EQK3K65G.js → chunk-C6LW34TV.js} +2 -2
- package/dist/chunk-C6LW34TV.js.map +1 -0
- package/dist/{chunk-E5GYHN4X.js → chunk-CAX3NFFE.js} +3 -3
- package/dist/{chunk-LIN4A2BW.js → chunk-CSD6SWBZ.js} +5 -5
- package/dist/{chunk-QK63RXLG.js → chunk-CYH5QQUP.js} +8 -8
- package/dist/{chunk-CJGSQL77.js → chunk-CZV6NVCA.js} +4 -4
- package/dist/{chunk-755VS7NA.js → chunk-DOWVAC4U.js} +3 -3
- package/dist/{chunk-V6OC2PSQ.js → chunk-DQ3O252B.js} +2 -2
- package/dist/{chunk-PIP7XII2.js → chunk-E54XIRY2.js} +5 -5
- package/dist/{chunk-SL6454K7.js → chunk-EEB66IVH.js} +26 -32
- package/dist/chunk-EEB66IVH.js.map +1 -0
- package/dist/{chunk-YNIOCELQ.js → chunk-ERI6JC4M.js} +3 -3
- package/dist/{chunk-U57NFQYE.js → chunk-FIOBPQL2.js} +4 -4
- package/dist/{chunk-6VUVSYP4.js → chunk-FR2RJXHS.js} +2 -2
- package/dist/{chunk-FWPQUYND.js → chunk-FS55MQ4Q.js} +2 -2
- package/dist/{chunk-UXVB423Q.js → chunk-FVL6U72V.js} +6 -6
- package/dist/{chunk-2ZHF5VE4.js → chunk-FXECKKPW.js} +32 -29
- package/dist/chunk-FXECKKPW.js.map +1 -0
- package/dist/{chunk-LWZ2K225.js → chunk-FXZUVZON.js} +6 -6
- package/dist/{chunk-RGR6YKK5.js → chunk-GBKIGUNP.js} +2 -2
- package/dist/{chunk-YBAK2WN5.js → chunk-HBHBRRSW.js} +7 -7
- package/dist/{chunk-HNFZLXZI.js → chunk-HBP2OU4Q.js} +5 -5
- package/dist/{chunk-4MKVGSHX.js → chunk-HN3PZTUK.js} +5 -5
- package/dist/{chunk-ZOUWHGV3.js → chunk-HOJL2GKW.js} +7 -7
- package/dist/{chunk-JVOEVTCZ.js → chunk-HQCZT6TO.js} +5 -5
- package/dist/{chunk-PCM4VEPO.js → chunk-HSIUVFXE.js} +7 -7
- package/dist/{chunk-L5R2FB4T.js → chunk-HVGQH54G.js} +2 -2
- package/dist/{chunk-RQF4NXDC.js → chunk-IWJTLCTF.js} +2 -2
- package/dist/{chunk-IICBAAL7.js → chunk-IZ7JTG3Z.js} +4 -4
- package/dist/{chunk-2QB4WIU5.js → chunk-J5QNJERV.js} +10 -10
- package/dist/{chunk-6OLERKNC.js → chunk-JA3WJPXH.js} +2 -2
- package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
- package/dist/{chunk-GICG3XJK.js → chunk-K44FSPU7.js} +4 -4
- package/dist/{chunk-J2RUDZVJ.js → chunk-KARMRTTM.js} +7 -7
- package/dist/{chunk-RIAZPGHT.js → chunk-KKVM723A.js} +4 -4
- package/dist/{chunk-6QOJEZDH.js → chunk-KYTADPS2.js} +4 -4
- package/dist/{chunk-CDYQKIBL.js → chunk-LABIUXDM.js} +2 -2
- package/dist/{chunk-4W6AQFMO.js → chunk-LBEZ7A3F.js} +3 -3
- package/dist/{chunk-5JRAQ4D5.js → chunk-LTLOZQPP.js} +5 -3
- package/dist/chunk-LTLOZQPP.js.map +1 -0
- package/dist/chunk-LZRVUOMU.js +12 -0
- package/dist/chunk-LZRVUOMU.js.map +1 -0
- package/dist/{chunk-ZAPP32GD.js → chunk-M7HYNXCU.js} +2 -2
- package/dist/{chunk-QVEQOUQY.js → chunk-MA6ENJDP.js} +3 -3
- package/dist/{chunk-D34PZJH3.js → chunk-MBMZNSBP.js} +2 -2
- package/dist/{chunk-Z2J4MRTF.js → chunk-MKNW4FRR.js} +4 -4
- package/dist/{chunk-NJMAFII4.js → chunk-NDQJDA7O.js} +2 -2
- package/dist/{chunk-RCZ4KL2H.js → chunk-NIENIKZ5.js} +2 -2
- package/dist/{chunk-6QRN4JK7.js → chunk-NKBCUR4V.js} +2 -2
- package/dist/{chunk-2B3NX5HJ.js → chunk-NPSARV2I.js} +6 -6
- package/dist/{chunk-YPAH2NWN.js → chunk-NQ6P7O7C.js} +2 -2
- package/dist/{chunk-EWVJJ32N.js → chunk-OKYYHBGS.js} +6 -6
- package/dist/{chunk-WQ32YFM5.js → chunk-P7VAMJFJ.js} +5 -5
- package/dist/{chunk-RX2XP7V5.js → chunk-QBH36OBQ.js} +4 -4
- package/dist/{chunk-KYPHR4TT.js → chunk-QWSYHENP.js} +2 -2
- package/dist/chunk-RHVJ3L4U.js +14 -0
- package/dist/chunk-RHVJ3L4U.js.map +1 -0
- package/dist/{chunk-SE5WHKCB.js → chunk-RPKUZDRY.js} +6 -6
- package/dist/{chunk-V6SRBQMN.js → chunk-S4JXSC4D.js} +5 -5
- package/dist/{chunk-TIM4PXWN.js → chunk-SB2SEGR6.js} +3 -3
- package/dist/{chunk-7PTE6HBW.js → chunk-SUXT6QAY.js} +2 -2
- package/dist/{chunk-DAT4XWYX.js → chunk-TRYYYWV3.js} +14 -14
- package/dist/{chunk-65NYUQXD.js → chunk-TSID4257.js} +9 -9
- package/dist/{chunk-DWFUT45A.js → chunk-VEBNL5MG.js} +3 -3
- package/dist/{chunk-LVXGCXKB.js → chunk-VMTOLAZ5.js} +7 -7
- package/dist/{chunk-BRBQNPM2.js → chunk-VQSBZPKO.js} +3 -3
- package/dist/{chunk-ZEVFMQAQ.js → chunk-VWVA74JY.js} +2 -2
- package/dist/{chunk-YULI2EBC.js → chunk-XICRCPEQ.js} +4 -4
- package/dist/{chunk-Q4WTVAJ5.js → chunk-XLCVMRSO.js} +2 -2
- package/dist/{chunk-3DFWHF6O.js → chunk-YRF7WFAQ.js} +6 -6
- package/dist/{chunk-ZIHSCBMN.js → chunk-Z5V5E3JW.js} +10 -10
- package/dist/{chunk-G3JFESKD.js → chunk-Z5WUSI47.js} +6 -6
- package/dist/chunk-ZLMKGVB2.js +21 -0
- package/dist/chunk-ZLMKGVB2.js.map +1 -0
- package/dist/{chunk-JPYNGWV4.js → chunk-ZOLUUX4B.js} +2 -2
- package/dist/data-display/AsyncStateContainer.js +6 -6
- package/dist/data-display/Avatar.js +4 -4
- package/dist/data-display/CardKit.js +16 -13
- package/dist/data-display/Carousel.js +2 -2
- package/dist/data-display/Chart.js +11 -11
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +73 -70
- package/dist/data-display/EmptyState.js +2 -2
- package/dist/data-display/FleetMap.js +14 -14
- package/dist/data-display/HoverCard.js +2 -2
- package/dist/data-display/InteractiveTooltip.js +2 -2
- package/dist/data-display/LazyImage.js +3 -3
- package/dist/data-display/Lightbox.js +6 -6
- package/dist/data-display/LoadingState.js +3 -3
- package/dist/data-display/MapPreview.js +5 -5
- package/dist/data-display/Progress.js +2 -2
- package/dist/data-display/SectionOnboarding.js +3 -3
- package/dist/data-display/Sheet.js +4 -4
- package/dist/data-display/StatCard.js +3 -3
- package/dist/data-display/Table.js +2 -2
- package/dist/feedback/ConfirmAction.js +10 -7
- package/dist/feedback/Dialog.js +2 -2
- package/dist/feedback/TutorialOverlay.js +2 -2
- package/dist/form/AddressAutocomplete.js +8 -8
- package/dist/form/Autocomplete.js +1 -1
- package/dist/form/Calendar.js +6 -6
- package/dist/form/CategorySelect.js +7 -7
- package/dist/form/CepField.js +5 -4
- package/dist/form/CodeEditor.js +2 -2
- package/dist/form/Command.js +2 -2
- package/dist/form/DateRangePicker.js +9 -9
- package/dist/form/Input/outlined.js +27 -0
- package/dist/form/Input/outlined.js.map +1 -0
- package/dist/form/Input.js +4 -2
- package/dist/form/NumberField.js +5 -3
- package/dist/form/PickerSheet.js +2 -2
- package/dist/form/total-form.js +21 -17
- package/dist/layout/Card.js +2 -2
- package/dist/layout/ContentToolbar.js +3 -3
- package/dist/layout/ScrollArea.js +3 -3
- package/dist/layout/SettingCard.js +7 -7
- package/dist/layout/SettingsLayout.js +5 -5
- package/dist/layout/Skeleton.js +2 -2
- package/dist/locales.js +6 -6
- package/dist/navigation/AppHeader.js +9 -9
- package/dist/navigation/NavigationMenu.js +5 -5
- package/dist/pt-BR.js +6 -6
- package/dist/social-login-button.js +3 -3
- package/dist/types/components/feedback/ConfirmAction/ConfirmAction.parts.d.ts.map +1 -1
- package/dist/types/components/form/CepField/CepField.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.d.ts +9 -3
- package/dist/types/components/form/Input/Input.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.factory.d.ts +13 -0
- package/dist/types/components/form/Input/Input.factory.d.ts.map +1 -0
- package/dist/types/components/form/Input/outlined/index.d.ts +24 -0
- package/dist/types/components/form/Input/outlined/index.d.ts.map +1 -0
- package/dist/types/components/form/Input/outlined/text-field-slim-outlined.d.ts +10 -0
- package/dist/types/components/form/Input/outlined/text-field-slim-outlined.d.ts.map +1 -0
- package/dist/types/components/form/Input/text-field-slim.d.ts +8 -40
- package/dist/types/components/form/Input/text-field-slim.d.ts.map +1 -1
- package/dist/types/components/form/Input/text-field-slim.factory.d.ts +61 -0
- package/dist/types/components/form/Input/text-field-slim.factory.d.ts.map +1 -0
- package/dist/user-avatar.js +7 -7
- package/dist/utility/InfiniteScroll.js +2 -2
- package/dist/utility/InstallPrompt.js +2 -2
- package/package.json +5 -1
- package/src/components/feedback/ConfirmAction/ConfirmAction.parts.tsx +8 -2
- package/src/components/form/CepField/CepField.tsx +3 -1
- package/src/components/form/Input/Input.factory.tsx +221 -0
- package/src/components/form/Input/Input.md +20 -0
- package/src/components/form/Input/Input.tsx +9 -196
- package/src/components/form/Input/outlined/index.ts +27 -0
- package/src/components/form/Input/outlined/text-field-slim-outlined.tsx +13 -0
- package/src/components/form/Input/text-field-slim.factory.tsx +248 -0
- package/src/components/form/Input/text-field-slim.tsx +9 -209
- package/dist/chunk-2ZHF5VE4.js.map +0 -1
- package/dist/chunk-5JRAQ4D5.js.map +0 -1
- package/dist/chunk-EQK3K65G.js.map +0 -1
- package/dist/chunk-SL6454K7.js.map +0 -1
- /package/dist/{chunk-GMJBWOIU.js.map → chunk-2ILXXBMG.js.map} +0 -0
- /package/dist/{chunk-LVATGJZO.js.map → chunk-2K2Q7VGV.js.map} +0 -0
- /package/dist/{chunk-ISW5K72V.js.map → chunk-2ZRZTGWP.js.map} +0 -0
- /package/dist/{chunk-BM3MKZL2.js.map → chunk-3BDMYTH6.js.map} +0 -0
- /package/dist/{chunk-Q7BGMLCX.js.map → chunk-3FDSXSEP.js.map} +0 -0
- /package/dist/{chunk-5WJFCQFN.js.map → chunk-3O2OJW4O.js.map} +0 -0
- /package/dist/{chunk-L4FWEI2P.js.map → chunk-3V3Z4EML.js.map} +0 -0
- /package/dist/{chunk-7KAZ3B5B.js.map → chunk-3VLVLZ6W.js.map} +0 -0
- /package/dist/{chunk-CE74DKHT.js.map → chunk-44PBCQ7E.js.map} +0 -0
- /package/dist/{chunk-U5YOOHR6.js.map → chunk-4QGPRORO.js.map} +0 -0
- /package/dist/{chunk-W2RXXF7K.js.map → chunk-4XBAEKQQ.js.map} +0 -0
- /package/dist/{chunk-7SPFK73H.js.map → chunk-52CLMR47.js.map} +0 -0
- /package/dist/{chunk-LYVTJLCF.js.map → chunk-56JF5PZK.js.map} +0 -0
- /package/dist/{chunk-QBY3TWV3.js.map → chunk-5HFB4WFE.js.map} +0 -0
- /package/dist/{chunk-3DPPDGOF.js.map → chunk-62SXUU5U.js.map} +0 -0
- /package/dist/{chunk-QADTI63U.js.map → chunk-6ATXOJVQ.js.map} +0 -0
- /package/dist/{chunk-F3AYISXT.js.map → chunk-6PU3JYVY.js.map} +0 -0
- /package/dist/{chunk-WVIJFS5Y.js.map → chunk-725H45MT.js.map} +0 -0
- /package/dist/{chunk-XP522FFM.js.map → chunk-7JKDB5J5.js.map} +0 -0
- /package/dist/{chunk-V45JGJ3W.js.map → chunk-7K23NEZO.js.map} +0 -0
- /package/dist/{chunk-EOQ6EKTS.js.map → chunk-7XSCEHGA.js.map} +0 -0
- /package/dist/{chunk-7VUXSNVZ.js.map → chunk-A4B27HYU.js.map} +0 -0
- /package/dist/{chunk-ADSA76T7.js.map → chunk-AG3DY5TH.js.map} +0 -0
- /package/dist/{chunk-G5ORAVSP.js.map → chunk-AJ5LXKLQ.js.map} +0 -0
- /package/dist/{chunk-HI7JPDD6.js.map → chunk-AMLHEKSV.js.map} +0 -0
- /package/dist/{chunk-XZILNBAU.js.map → chunk-ARVLS57B.js.map} +0 -0
- /package/dist/{chunk-ZEH6MGP5.js.map → chunk-BEHM2VLH.js.map} +0 -0
- /package/dist/{chunk-EBMWYRXW.js.map → chunk-BEYLI32I.js.map} +0 -0
- /package/dist/{chunk-YKKHNYEW.js.map → chunk-BF3SGOWT.js.map} +0 -0
- /package/dist/{chunk-MA6SUE7F.js.map → chunk-BGGVYKVZ.js.map} +0 -0
- /package/dist/{chunk-E5GYHN4X.js.map → chunk-CAX3NFFE.js.map} +0 -0
- /package/dist/{chunk-LIN4A2BW.js.map → chunk-CSD6SWBZ.js.map} +0 -0
- /package/dist/{chunk-QK63RXLG.js.map → chunk-CYH5QQUP.js.map} +0 -0
- /package/dist/{chunk-CJGSQL77.js.map → chunk-CZV6NVCA.js.map} +0 -0
- /package/dist/{chunk-755VS7NA.js.map → chunk-DOWVAC4U.js.map} +0 -0
- /package/dist/{chunk-V6OC2PSQ.js.map → chunk-DQ3O252B.js.map} +0 -0
- /package/dist/{chunk-PIP7XII2.js.map → chunk-E54XIRY2.js.map} +0 -0
- /package/dist/{chunk-YNIOCELQ.js.map → chunk-ERI6JC4M.js.map} +0 -0
- /package/dist/{chunk-U57NFQYE.js.map → chunk-FIOBPQL2.js.map} +0 -0
- /package/dist/{chunk-6VUVSYP4.js.map → chunk-FR2RJXHS.js.map} +0 -0
- /package/dist/{chunk-FWPQUYND.js.map → chunk-FS55MQ4Q.js.map} +0 -0
- /package/dist/{chunk-UXVB423Q.js.map → chunk-FVL6U72V.js.map} +0 -0
- /package/dist/{chunk-LWZ2K225.js.map → chunk-FXZUVZON.js.map} +0 -0
- /package/dist/{chunk-RGR6YKK5.js.map → chunk-GBKIGUNP.js.map} +0 -0
- /package/dist/{chunk-YBAK2WN5.js.map → chunk-HBHBRRSW.js.map} +0 -0
- /package/dist/{chunk-HNFZLXZI.js.map → chunk-HBP2OU4Q.js.map} +0 -0
- /package/dist/{chunk-4MKVGSHX.js.map → chunk-HN3PZTUK.js.map} +0 -0
- /package/dist/{chunk-ZOUWHGV3.js.map → chunk-HOJL2GKW.js.map} +0 -0
- /package/dist/{chunk-JVOEVTCZ.js.map → chunk-HQCZT6TO.js.map} +0 -0
- /package/dist/{chunk-PCM4VEPO.js.map → chunk-HSIUVFXE.js.map} +0 -0
- /package/dist/{chunk-L5R2FB4T.js.map → chunk-HVGQH54G.js.map} +0 -0
- /package/dist/{chunk-RQF4NXDC.js.map → chunk-IWJTLCTF.js.map} +0 -0
- /package/dist/{chunk-IICBAAL7.js.map → chunk-IZ7JTG3Z.js.map} +0 -0
- /package/dist/{chunk-2QB4WIU5.js.map → chunk-J5QNJERV.js.map} +0 -0
- /package/dist/{chunk-6OLERKNC.js.map → chunk-JA3WJPXH.js.map} +0 -0
- /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
- /package/dist/{chunk-GICG3XJK.js.map → chunk-K44FSPU7.js.map} +0 -0
- /package/dist/{chunk-J2RUDZVJ.js.map → chunk-KARMRTTM.js.map} +0 -0
- /package/dist/{chunk-RIAZPGHT.js.map → chunk-KKVM723A.js.map} +0 -0
- /package/dist/{chunk-6QOJEZDH.js.map → chunk-KYTADPS2.js.map} +0 -0
- /package/dist/{chunk-CDYQKIBL.js.map → chunk-LABIUXDM.js.map} +0 -0
- /package/dist/{chunk-4W6AQFMO.js.map → chunk-LBEZ7A3F.js.map} +0 -0
- /package/dist/{chunk-ZAPP32GD.js.map → chunk-M7HYNXCU.js.map} +0 -0
- /package/dist/{chunk-QVEQOUQY.js.map → chunk-MA6ENJDP.js.map} +0 -0
- /package/dist/{chunk-D34PZJH3.js.map → chunk-MBMZNSBP.js.map} +0 -0
- /package/dist/{chunk-Z2J4MRTF.js.map → chunk-MKNW4FRR.js.map} +0 -0
- /package/dist/{chunk-NJMAFII4.js.map → chunk-NDQJDA7O.js.map} +0 -0
- /package/dist/{chunk-RCZ4KL2H.js.map → chunk-NIENIKZ5.js.map} +0 -0
- /package/dist/{chunk-6QRN4JK7.js.map → chunk-NKBCUR4V.js.map} +0 -0
- /package/dist/{chunk-2B3NX5HJ.js.map → chunk-NPSARV2I.js.map} +0 -0
- /package/dist/{chunk-YPAH2NWN.js.map → chunk-NQ6P7O7C.js.map} +0 -0
- /package/dist/{chunk-EWVJJ32N.js.map → chunk-OKYYHBGS.js.map} +0 -0
- /package/dist/{chunk-WQ32YFM5.js.map → chunk-P7VAMJFJ.js.map} +0 -0
- /package/dist/{chunk-RX2XP7V5.js.map → chunk-QBH36OBQ.js.map} +0 -0
- /package/dist/{chunk-KYPHR4TT.js.map → chunk-QWSYHENP.js.map} +0 -0
- /package/dist/{chunk-SE5WHKCB.js.map → chunk-RPKUZDRY.js.map} +0 -0
- /package/dist/{chunk-V6SRBQMN.js.map → chunk-S4JXSC4D.js.map} +0 -0
- /package/dist/{chunk-TIM4PXWN.js.map → chunk-SB2SEGR6.js.map} +0 -0
- /package/dist/{chunk-7PTE6HBW.js.map → chunk-SUXT6QAY.js.map} +0 -0
- /package/dist/{chunk-DAT4XWYX.js.map → chunk-TRYYYWV3.js.map} +0 -0
- /package/dist/{chunk-65NYUQXD.js.map → chunk-TSID4257.js.map} +0 -0
- /package/dist/{chunk-DWFUT45A.js.map → chunk-VEBNL5MG.js.map} +0 -0
- /package/dist/{chunk-LVXGCXKB.js.map → chunk-VMTOLAZ5.js.map} +0 -0
- /package/dist/{chunk-BRBQNPM2.js.map → chunk-VQSBZPKO.js.map} +0 -0
- /package/dist/{chunk-ZEVFMQAQ.js.map → chunk-VWVA74JY.js.map} +0 -0
- /package/dist/{chunk-YULI2EBC.js.map → chunk-XICRCPEQ.js.map} +0 -0
- /package/dist/{chunk-Q4WTVAJ5.js.map → chunk-XLCVMRSO.js.map} +0 -0
- /package/dist/{chunk-3DFWHF6O.js.map → chunk-YRF7WFAQ.js.map} +0 -0
- /package/dist/{chunk-ZIHSCBMN.js.map → chunk-Z5V5E3JW.js.map} +0 -0
- /package/dist/{chunk-G3JFESKD.js.map → chunk-Z5WUSI47.js.map} +0 -0
- /package/dist/{chunk-JPYNGWV4.js.map → chunk-ZOLUUX4B.js.map} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { InputComponent } from '../Input.factory';
|
|
2
|
+
import type { InputProps as GenericInputProps, InputVariant } from '../Input.types';
|
|
3
|
+
/**
|
|
4
|
+
* The house variants MUI draws as `outlined`: `muiVariantFor` maps `glass` and
|
|
5
|
+
* `gradient` onto an outline (`Input.metrics.ts`). `filled` and `underline`
|
|
6
|
+
* need the inputs this entry exists to leave out, so they are a type error here
|
|
7
|
+
* rather than a silent fallback.
|
|
8
|
+
*/
|
|
9
|
+
export type OutlinedInputVariant = Extract<InputVariant, 'outlined' | 'glass' | 'gradient'>;
|
|
10
|
+
export type InputProps = Omit<GenericInputProps, 'variant'> & {
|
|
11
|
+
variant?: OutlinedInputVariant;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* `@12-apps/ui/form/Input/outlined` — the same `Input`, with the same props,
|
|
15
|
+
* styles and DOM, built on a field that imports `OutlinedInput` and no other
|
|
16
|
+
* MUI input (FUT-1054). For a control that only ever renders the outlined
|
|
17
|
+
* family and sits where its bytes matter: a storefront header, a first screen.
|
|
18
|
+
*
|
|
19
|
+
* Not re-exported from `form/Input` or the `form` barrel: a second `Input`
|
|
20
|
+
* there would collide. Reach it only through this subpath.
|
|
21
|
+
*/
|
|
22
|
+
export declare const Input: InputComponent<InputProps>;
|
|
23
|
+
export type { InputSize } from '../Input.types';
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/Input/outlined/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,IAAI,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGpF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC;AAE5F,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEjG;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,EAAyC,cAAc,CAAC,UAAU,CAAC,CAAC;AAEtF,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TextFieldSlimComponent } from '../text-field-slim.factory';
|
|
2
|
+
/**
|
|
3
|
+
* `TextFieldSlim` pinned to MUI's outlined input (FUT-1054). The generic field
|
|
4
|
+
* picks its input from a three-way table at runtime, so a bundler has to keep
|
|
5
|
+
* `FilledInput` and `Input` for every caller; this one imports `OutlinedInput`
|
|
6
|
+
* alone. Every variant it can be asked for renders outlined, which is what the
|
|
7
|
+
* outlined `Input` entry ever asks for.
|
|
8
|
+
*/
|
|
9
|
+
export declare const OutlinedTextFieldSlim: TextFieldSlimComponent;
|
|
10
|
+
//# sourceMappingURL=text-field-slim-outlined.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-field-slim-outlined.d.ts","sourceRoot":"","sources":["../../../../../../src/components/form/Input/outlined/text-field-slim-outlined.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,sBAAiE,CAAC"}
|
|
@@ -1,41 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export interface TextFieldSlimProps extends Omit<FormControlProps, 'onChange' | 'onBlur' | 'onFocus' | 'defaultValue'> {
|
|
10
|
-
autoComplete?: string;
|
|
11
|
-
autoFocus?: boolean;
|
|
12
|
-
defaultValue?: unknown;
|
|
13
|
-
helperText?: React.ReactNode;
|
|
14
|
-
label?: React.ReactNode;
|
|
15
|
-
maxRows?: number | string;
|
|
16
|
-
minRows?: number | string;
|
|
17
|
-
multiline?: boolean;
|
|
18
|
-
name?: string;
|
|
19
|
-
placeholder?: string;
|
|
20
|
-
rows?: number | string;
|
|
21
|
-
type?: React.InputHTMLAttributes<HTMLInputElement>['type'];
|
|
22
|
-
value?: unknown;
|
|
23
|
-
inputRef?: React.Ref<unknown>;
|
|
24
|
-
onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
25
|
-
onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
26
|
-
onFocus?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
27
|
-
/** Props for the rendered input variant. */
|
|
28
|
-
InputProps?: Partial<MuiInputProps & FilledInputProps & OutlinedInputProps>;
|
|
29
|
-
/**
|
|
30
|
-
* Props for the `<input>` itself — where an `aria-label` has to ride.
|
|
31
|
-
*
|
|
32
|
-
* MUI's own type, because it is deliberately open: a caller puts `data-*`
|
|
33
|
-
* and `aria-*` here precisely because the root would swallow them, and
|
|
34
|
-
* `InputHTMLAttributes` alone rejects both.
|
|
35
|
-
*/
|
|
36
|
-
inputProps?: InputBaseComponentProps;
|
|
37
|
-
InputLabelProps?: Partial<InputLabelProps>;
|
|
38
|
-
FormHelperTextProps?: Partial<FormHelperTextProps>;
|
|
39
|
-
}
|
|
40
|
-
export declare const TextFieldSlim: React.ForwardRefExoticComponent<Omit<TextFieldSlimProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
1
|
+
import type { TextFieldSlimComponent } from './text-field-slim.factory';
|
|
2
|
+
export type { TextFieldSlimProps } from './text-field-slim.factory';
|
|
3
|
+
/**
|
|
4
|
+
* The generic field: any of MUI's three variants, chosen at runtime. A field
|
|
5
|
+
* that only ever renders outlined uses `./outlined` instead, which never
|
|
6
|
+
* imports the other two (FUT-1054).
|
|
7
|
+
*/
|
|
8
|
+
export declare const TextFieldSlim: TextFieldSlimComponent;
|
|
41
9
|
//# sourceMappingURL=text-field-slim.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-field-slim.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Input/text-field-slim.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"text-field-slim.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Input/text-field-slim.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAQpE;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,sBAE3B,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { FilledInputProps } from '@mui/material/FilledInput/index.js';
|
|
2
|
+
import type { FormControlProps } from '@mui/material/FormControl/index.js';
|
|
3
|
+
import type { FormHelperTextProps } from '@mui/material/FormHelperText/index.js';
|
|
4
|
+
import type { InputProps as MuiInputProps } from '@mui/material/Input/index.js';
|
|
5
|
+
import type { InputBaseComponentProps } from '@mui/material/InputBase/index.js';
|
|
6
|
+
import type { InputLabelProps } from '@mui/material/InputLabel/index.js';
|
|
7
|
+
import type { OutlinedInputProps } from '@mui/material/OutlinedInput/index.js';
|
|
8
|
+
import React from 'react';
|
|
9
|
+
/** MUI's three input variants, by the name `TextField` gives them. */
|
|
10
|
+
export type MuiFieldVariant = 'standard' | 'filled' | 'outlined';
|
|
11
|
+
/**
|
|
12
|
+
* Which input renders a variant. The generic `TextFieldSlim` maps all three;
|
|
13
|
+
* a pinned field maps the one it renders, so the other two are never imported
|
|
14
|
+
* (FUT-1054).
|
|
15
|
+
*/
|
|
16
|
+
export type InputForVariant = (variant: MuiFieldVariant) => React.ElementType;
|
|
17
|
+
/** What `createTextFieldSlim` returns, and what `createInput` composes. */
|
|
18
|
+
export type TextFieldSlimComponent = React.ForwardRefExoticComponent<TextFieldSlimProps & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
export interface TextFieldSlimProps extends Omit<FormControlProps, 'onChange' | 'onBlur' | 'onFocus' | 'defaultValue'> {
|
|
20
|
+
autoComplete?: string;
|
|
21
|
+
autoFocus?: boolean;
|
|
22
|
+
defaultValue?: unknown;
|
|
23
|
+
helperText?: React.ReactNode;
|
|
24
|
+
label?: React.ReactNode;
|
|
25
|
+
maxRows?: number | string;
|
|
26
|
+
minRows?: number | string;
|
|
27
|
+
multiline?: boolean;
|
|
28
|
+
name?: string;
|
|
29
|
+
placeholder?: string;
|
|
30
|
+
rows?: number | string;
|
|
31
|
+
type?: React.InputHTMLAttributes<HTMLInputElement>['type'];
|
|
32
|
+
value?: unknown;
|
|
33
|
+
inputRef?: React.Ref<unknown>;
|
|
34
|
+
onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
35
|
+
onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
36
|
+
onFocus?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
37
|
+
/** Props for the rendered input variant. */
|
|
38
|
+
InputProps?: Partial<MuiInputProps & FilledInputProps & OutlinedInputProps>;
|
|
39
|
+
/**
|
|
40
|
+
* Props for the `<input>` itself — where an `aria-label` has to ride.
|
|
41
|
+
*
|
|
42
|
+
* MUI's own type, because it is deliberately open: a caller puts `data-*`
|
|
43
|
+
* and `aria-*` here precisely because the root would swallow them, and
|
|
44
|
+
* `InputHTMLAttributes` alone rejects both.
|
|
45
|
+
*/
|
|
46
|
+
inputProps?: InputBaseComponentProps;
|
|
47
|
+
InputLabelProps?: Partial<InputLabelProps>;
|
|
48
|
+
FormHelperTextProps?: Partial<FormHelperTextProps>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The field, with the input implementation chosen by `inputFor`.
|
|
52
|
+
*
|
|
53
|
+
* A factory rather than a component so the variant table lives in the CALLER's
|
|
54
|
+
* module: this module imports none of `Input`, `FilledInput` or
|
|
55
|
+
* `OutlinedInput`, so what `inputFor` returns is the only input a caller's
|
|
56
|
+
* bundle keeps. The caller's own module-scope `createTextFieldSlim(...)` call
|
|
57
|
+
* is kept by the bundler, and with it every module its argument reaches
|
|
58
|
+
* (FUT-3402), so that argument must name only the variants it serves.
|
|
59
|
+
*/
|
|
60
|
+
export declare function createTextFieldSlim(inputFor: InputForVariant): TextFieldSlimComponent;
|
|
61
|
+
//# sourceMappingURL=text-field-slim.factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-field-slim.factory.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Input/text-field-slim.factory.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,sEAAsE;AACtE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjE;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,KAAK,CAAC,WAAW,CAAC;AAE9E,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,yBAAyB,CAClE,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CACzD,CAAC;AA2BF,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,CAAC;IACzE,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,CAAC;IAC5E,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,CAAC;IAC1E,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,CAAC;IAC5E;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3C,mBAAmB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACpD;AA+GD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,sBAAsB,CAiCrF"}
|
package/dist/user-avatar.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
UserAvatar,
|
|
3
3
|
UserMenu
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3FDSXSEP.js";
|
|
5
5
|
import "./chunk-UDQSIRAP.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-EOQ6EKTS.js";
|
|
9
|
-
import "./chunk-6ZZGK5DT.js";
|
|
6
|
+
import "./chunk-KARMRTTM.js";
|
|
7
|
+
import "./chunk-7XSCEHGA.js";
|
|
10
8
|
import "./chunk-MTEQEPNY.js";
|
|
9
|
+
import "./chunk-6ZZGK5DT.js";
|
|
10
|
+
import "./chunk-3ZVUNSFF.js";
|
|
11
11
|
import "./chunk-VUHLNYAE.js";
|
|
12
12
|
import "./chunk-2GSIEDGN.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-PLB6WWXW.js";
|
|
13
|
+
import "./chunk-4XBAEKQQ.js";
|
|
15
14
|
import "./chunk-FKUYRQSP.js";
|
|
15
|
+
import "./chunk-PLB6WWXW.js";
|
|
16
16
|
import "./chunk-HDBP55R3.js";
|
|
17
17
|
import "./chunk-BA4RHQ3B.js";
|
|
18
18
|
import "./chunk-364NH2NY.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "../chunk-H7NA4TXY.js";
|
|
2
2
|
import {
|
|
3
3
|
InfiniteScroll
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-Y2X7LYIN.js";
|
|
4
|
+
} from "../chunk-HBP2OU4Q.js";
|
|
6
5
|
import "../chunk-5KNDAC24.js";
|
|
6
|
+
import "../chunk-Y2X7LYIN.js";
|
|
7
7
|
import "../chunk-YKCAJ2TN.js";
|
|
8
8
|
import "../chunk-PZ5AY32C.js";
|
|
9
9
|
export {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "../chunk-3QQVEYOR.js";
|
|
2
2
|
import {
|
|
3
3
|
InstallPrompt
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-GY62N32G.js";
|
|
4
|
+
} from "../chunk-JE6RZ5L6.js";
|
|
6
5
|
import {
|
|
7
6
|
usePwaInstall
|
|
8
7
|
} from "../chunk-5GMHJ7Y5.js";
|
|
8
|
+
import "../chunk-GY62N32G.js";
|
|
9
9
|
import "../chunk-WXYLH3QZ.js";
|
|
10
10
|
import {
|
|
11
11
|
PWA_INSTALL_AVAILABLE_EVENT,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@12-apps/ui",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.74.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"packageManager": "pnpm@10.34.5",
|
|
6
6
|
"type": "module",
|
|
@@ -408,6 +408,10 @@
|
|
|
408
408
|
"types": "./dist/types/components/form/Input/index.d.ts",
|
|
409
409
|
"default": "./dist/form/Input.js"
|
|
410
410
|
},
|
|
411
|
+
"./form/Input/outlined": {
|
|
412
|
+
"types": "./dist/types/components/form/Input/outlined/index.d.ts",
|
|
413
|
+
"default": "./dist/form/Input/outlined.js"
|
|
414
|
+
},
|
|
411
415
|
"./form/InputOTP": {
|
|
412
416
|
"types": "./dist/types/components/form/InputOTP/index.d.ts",
|
|
413
417
|
"default": "./dist/form/InputOTP.js"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { ConfirmActionCopy } from "../../../copy";
|
|
2
2
|
import Alert from '@mui/material/Alert/index.js';
|
|
3
3
|
import Stack from '@mui/material/Stack/index.js';
|
|
4
|
-
import TextField from '@mui/material/TextField/index.js';
|
|
5
4
|
import Typography from '@mui/material/Typography/index.js';
|
|
6
5
|
import React, { type ReactNode } from 'react';
|
|
7
6
|
|
|
8
7
|
import { AlertDialog } from '../../data-display/AlertDialog';
|
|
8
|
+
import { OutlinedTextFieldSlim } from '../../form/Input/outlined/text-field-slim-outlined';
|
|
9
9
|
|
|
10
10
|
import type {
|
|
11
11
|
ConfirmInitialFocus,
|
|
@@ -79,7 +79,13 @@ function TypeToConfirmField({
|
|
|
79
79
|
<Typography variant="body2" color="text.secondary">
|
|
80
80
|
{label ?? copy.typeToConfirm(expected)}
|
|
81
81
|
</Typography>
|
|
82
|
-
|
|
82
|
+
{/*
|
|
83
|
+
* The outlined slim field, not MUI's `TextField` (FUT-3429): same
|
|
84
|
+
* composition and DOM, but no `Select` branch, so a screen that can open
|
|
85
|
+
* this popup no longer ships `Select`, `Menu`, `MenuList`, `NativeSelect`
|
|
86
|
+
* and `List` for a box that only ever takes a word.
|
|
87
|
+
*/}
|
|
88
|
+
<OutlinedTextFieldSlim
|
|
83
89
|
size="small"
|
|
84
90
|
value={value}
|
|
85
91
|
disabled={disabled}
|
|
@@ -6,7 +6,9 @@ import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
|
6
6
|
import { cepDigits, formatCep, isValidCep } from '@12-apps/forms-core';
|
|
7
7
|
|
|
8
8
|
import { FormControl, FormLabel, FormMessage } from '../Form';
|
|
9
|
-
|
|
9
|
+
// The outlined entry: CepField renders no variant, and the generic one would
|
|
10
|
+
// ship MUI's FilledInput and Input to every screen with a CEP field (FUT-1054).
|
|
11
|
+
import { Input } from '../Input/outlined';
|
|
10
12
|
import type { CepAddress, CepFieldProps, CepLookupStatus } from './CepField.types';
|
|
11
13
|
|
|
12
14
|
/** Everything {@link useCepLookup} needs, so the hook signature stays flat. */
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import CircularProgress from '@mui/material/CircularProgress/index.js';
|
|
2
|
+
import InputAdornment from '@mui/material/InputAdornment/index.js';
|
|
3
|
+
import { styled, useTheme } from '@mui/material/styles/index.js';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
|
|
6
|
+
import { INPUT_LOADING } from './Input.metrics';
|
|
7
|
+
import type { TextFieldSlimComponent } from './text-field-slim.factory';
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
filledStyles,
|
|
11
|
+
floatingLabelStyles,
|
|
12
|
+
glowStyles,
|
|
13
|
+
inputBaseStyles,
|
|
14
|
+
inputRadiusStyles,
|
|
15
|
+
muiVariantFor,
|
|
16
|
+
outlinedStyles,
|
|
17
|
+
pulseStyles,
|
|
18
|
+
SIZE_MAP,
|
|
19
|
+
} from './Input.styles';
|
|
20
|
+
import type { InputProps } from './Input.types';
|
|
21
|
+
import { splitTestId } from '../../../platform/test-id';
|
|
22
|
+
import { fieldControlStyles } from '../../../tokens/field-height';
|
|
23
|
+
import { rem } from '../../../tokens/relative';
|
|
24
|
+
import type { SizeValue } from '../../../tokens/vocabulary';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The field `Input` renders, styled, over whichever text field it is given.
|
|
28
|
+
*
|
|
29
|
+
* Always a `TextFieldSlim`, never MUI's `TextField` — see `text-field-slim.tsx`.
|
|
30
|
+
* MUI's own `TextField` imports `Select` unconditionally, and through it `Menu`,
|
|
31
|
+
* `Popover`, `Modal` and seven more component modules, so every screen with one
|
|
32
|
+
* text box shipped a dropdown it can never render. Same composition, same DOM,
|
|
33
|
+
* same prop routing; the select branch is the only thing missing.
|
|
34
|
+
*/
|
|
35
|
+
function styledField(TextField: TextFieldSlimComponent) {
|
|
36
|
+
return styled(TextField, {
|
|
37
|
+
shouldForwardProp: (prop) =>
|
|
38
|
+
!['customVariant', 'fieldSize', 'floating', 'glow', 'pulse', 'loading'].includes(prop as string),
|
|
39
|
+
})<{
|
|
40
|
+
customVariant?: InputProps['variant'];
|
|
41
|
+
fieldSize: SizeValue;
|
|
42
|
+
floating?: boolean;
|
|
43
|
+
glow?: boolean;
|
|
44
|
+
pulse?: boolean;
|
|
45
|
+
loading?: boolean;
|
|
46
|
+
}>(({ theme, customVariant, fieldSize, floating, glow, pulse, loading }) => ({
|
|
47
|
+
position: 'relative',
|
|
48
|
+
// The theme's field height for this size (outlined family, one line).
|
|
49
|
+
...fieldControlStyles(theme, fieldSize),
|
|
50
|
+
opacity: loading ? INPUT_LOADING.opacity : 1,
|
|
51
|
+
|
|
52
|
+
...(glow ? glowStyles(theme) : {}),
|
|
53
|
+
...(pulse ? pulseStyles(theme, fieldSize) : {}),
|
|
54
|
+
...(floating ? floatingLabelStyles(theme) : {}),
|
|
55
|
+
|
|
56
|
+
'& .MuiInputBase-root': {
|
|
57
|
+
transition: 'all 0.3s ease',
|
|
58
|
+
...inputRadiusStyles(theme, customVariant),
|
|
59
|
+
...inputBaseStyles(theme, customVariant),
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
'& .MuiOutlinedInput-root': outlinedStyles(theme),
|
|
63
|
+
'& .MuiFilledInput-root': filledStyles(theme),
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Only one adornment shows at a time: the spinner replaces the caller's while loading. */
|
|
68
|
+
const EndAdornment: React.FC<{ loading: boolean; endAdornment?: React.ReactNode }> = ({
|
|
69
|
+
loading,
|
|
70
|
+
endAdornment,
|
|
71
|
+
}) => {
|
|
72
|
+
const theme = useTheme();
|
|
73
|
+
if (loading) {
|
|
74
|
+
return (
|
|
75
|
+
<InputAdornment position="end">
|
|
76
|
+
<CircularProgress size={rem(theme, INPUT_LOADING.spinnerSize)} />
|
|
77
|
+
</InputAdornment>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (!endAdornment) return null;
|
|
82
|
+
|
|
83
|
+
return <InputAdornment position="end">{endAdornment}</InputAdornment>;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/** While loading the field is inert: no clicks, and disabled to assistive tech. */
|
|
87
|
+
const interactionProps = (
|
|
88
|
+
loading: boolean,
|
|
89
|
+
onClick: InputProps['onClick'],
|
|
90
|
+
disabled?: boolean,
|
|
91
|
+
) => ({
|
|
92
|
+
disabled: loading || disabled,
|
|
93
|
+
onClick: loading ? undefined : onClick,
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The ARIA that describes the field has to sit on the `<input>`: the text
|
|
98
|
+
* field puts every attribute it does not recognise on its root `FormControl`,
|
|
99
|
+
* a `<div>` with no role, where a screen reader never reads it.
|
|
100
|
+
*
|
|
101
|
+
* `aria-label` has ridden `inputProps` since FUT-755. `aria-describedby` and
|
|
102
|
+
* `aria-busy` fell through to the div until FUT-2619, so CepField's input
|
|
103
|
+
* pointed at nothing while its lookup status lived in a live region beside it.
|
|
104
|
+
*
|
|
105
|
+
* `inputProps` are spread onto the `<input>` AFTER the `aria-describedby` MUI
|
|
106
|
+
* writes for helper text, so a caller's ids REPLACE the helper text's: MUI's
|
|
107
|
+
* `TextField` on its own keeps only one of the two. This joins both, helper
|
|
108
|
+
* text first. The helper id is MUI's `<id>-helper-text` (the parity test pins
|
|
109
|
+
* that spelling), which is why the field's id is fixed here rather than left
|
|
110
|
+
* to the text field.
|
|
111
|
+
*/
|
|
112
|
+
function inputAriaOf(a: {
|
|
113
|
+
id: string;
|
|
114
|
+
helperText: React.ReactNode;
|
|
115
|
+
label?: string;
|
|
116
|
+
describedBy?: string;
|
|
117
|
+
busy?: InputProps['aria-busy'];
|
|
118
|
+
}): Record<string, unknown> {
|
|
119
|
+
const describedBy = [a.helperText ? `${a.id}-helper-text` : undefined, a.describedBy]
|
|
120
|
+
.filter(Boolean)
|
|
121
|
+
.join(' ');
|
|
122
|
+
return {
|
|
123
|
+
...(a.label === undefined ? {} : { 'aria-label': a.label }),
|
|
124
|
+
...(a.describedBy === undefined ? {} : { 'aria-describedby': describedBy }),
|
|
125
|
+
...(a.busy === undefined ? {} : { 'aria-busy': a.busy }),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** The render function `createInput` hands `forwardRef`, over a given styled field. */
|
|
130
|
+
function inputRenderer(
|
|
131
|
+
StyledTextField: ReturnType<typeof styledField>,
|
|
132
|
+
): React.ForwardRefRenderFunction<HTMLInputElement, InputProps> {
|
|
133
|
+
return (
|
|
134
|
+
{
|
|
135
|
+
variant = 'outlined',
|
|
136
|
+
size = 'md',
|
|
137
|
+
label,
|
|
138
|
+
error,
|
|
139
|
+
helperText,
|
|
140
|
+
startAdornment,
|
|
141
|
+
endAdornment,
|
|
142
|
+
fullWidth = true,
|
|
143
|
+
floating = false,
|
|
144
|
+
glow = false,
|
|
145
|
+
pulse = false,
|
|
146
|
+
loading = false,
|
|
147
|
+
onClick,
|
|
148
|
+
onFocus,
|
|
149
|
+
onBlur,
|
|
150
|
+
'aria-label': ariaLabel,
|
|
151
|
+
'aria-describedby': ariaDescribedBy,
|
|
152
|
+
'aria-busy': ariaBusy,
|
|
153
|
+
inputProps,
|
|
154
|
+
...rest
|
|
155
|
+
},
|
|
156
|
+
ref,
|
|
157
|
+
) => {
|
|
158
|
+
const { testId: dataTestId, rest: props } = splitTestId(rest);
|
|
159
|
+
const generatedId = React.useId();
|
|
160
|
+
const id = props.id ?? generatedId;
|
|
161
|
+
return (
|
|
162
|
+
<StyledTextField
|
|
163
|
+
ref={ref}
|
|
164
|
+
variant={muiVariantFor(variant)}
|
|
165
|
+
customVariant={variant}
|
|
166
|
+
fieldSize={size}
|
|
167
|
+
floating={floating}
|
|
168
|
+
glow={glow}
|
|
169
|
+
pulse={pulse}
|
|
170
|
+
loading={loading}
|
|
171
|
+
label={label}
|
|
172
|
+
error={error}
|
|
173
|
+
helperText={helperText}
|
|
174
|
+
fullWidth={fullWidth}
|
|
175
|
+
{...interactionProps(loading, onClick, props.disabled)}
|
|
176
|
+
onFocus={onFocus}
|
|
177
|
+
onBlur={onBlur}
|
|
178
|
+
/*
|
|
179
|
+
* `aria-label` has to ride `inputProps` to reach the `<input>` (FUT-755).
|
|
180
|
+
* Spread with the rest it lands on the FormControl DIV that the text
|
|
181
|
+
* field renders as its root, which carries no role — so the field kept
|
|
182
|
+
* no accessible name, and a source grep saying "this input is labelled"
|
|
183
|
+
* disagreed with the DOM. The reports search box and the block-title
|
|
184
|
+
* inputs were both named in source and anonymous to a screen reader.
|
|
185
|
+
* `aria-describedby` and `aria-busy` are the same case: `inputAriaOf`.
|
|
186
|
+
*/
|
|
187
|
+
inputProps={{
|
|
188
|
+
'data-testid': dataTestId,
|
|
189
|
+
...inputProps,
|
|
190
|
+
...inputAriaOf({ id, helperText, label: ariaLabel, describedBy: ariaDescribedBy, busy: ariaBusy }),
|
|
191
|
+
}}
|
|
192
|
+
InputProps={{
|
|
193
|
+
startAdornment: startAdornment && (
|
|
194
|
+
<InputAdornment position="start">{startAdornment}</InputAdornment>
|
|
195
|
+
),
|
|
196
|
+
endAdornment: <EndAdornment loading={loading} endAdornment={endAdornment} />,
|
|
197
|
+
}}
|
|
198
|
+
{...SIZE_MAP[size]}
|
|
199
|
+
{...props}
|
|
200
|
+
id={id}
|
|
201
|
+
/>
|
|
202
|
+
);
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** The `Input` component every entry exports. */
|
|
207
|
+
export type InputComponent<P extends InputProps = InputProps> = React.ForwardRefExoticComponent<
|
|
208
|
+
P & React.RefAttributes<HTMLInputElement>
|
|
209
|
+
>;
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* `Input` over a given text field (FUT-1054). The generic entry passes the
|
|
213
|
+
* field that renders any MUI variant; `./outlined` passes one that only ever
|
|
214
|
+
* imports `OutlinedInput`. Everything else — styles, adornments, the ARIA
|
|
215
|
+
* routing — is this one body, so the two cannot drift.
|
|
216
|
+
*/
|
|
217
|
+
export function createInput(TextField: TextFieldSlimComponent): InputComponent {
|
|
218
|
+
const Input = React.forwardRef<HTMLInputElement, InputProps>(inputRenderer(styledField(TextField)));
|
|
219
|
+
Input.displayName = 'Input';
|
|
220
|
+
return Input;
|
|
221
|
+
}
|
|
@@ -115,6 +115,26 @@ The Input component provides a flexible text input field with comprehensive vali
|
|
|
115
115
|
/>
|
|
116
116
|
```
|
|
117
117
|
|
|
118
|
+
## The outlined entry: `@12-apps/ui/form/Input/outlined`
|
|
119
|
+
|
|
120
|
+
The same `Input`, with the same props, styles and DOM, built on a field that imports MUI's `OutlinedInput` and no other MUI input (FUT-1054).
|
|
121
|
+
|
|
122
|
+
The generic `@12-apps/ui/form/Input` chooses MUI's input at runtime from `variant`. A bundler therefore ships `OutlinedInput`, `FilledInput` and `Input` (about 7 KB raw for the last two) to every screen that renders one. The outlined entry ships only the first.
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
import { Input } from '@12-apps/ui/form/Input/outlined';
|
|
126
|
+
|
|
127
|
+
<Input type="search" size="sm" aria-label="Buscar produtos" />
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**When to use it:** a control that only ever renders the outlined family (`outlined`, `glass` or `gradient`, the variants `muiVariantFor` draws as an outline), and that sits where its bytes matter: a storefront header, a first screen, or a library component such as `CepField`.
|
|
131
|
+
|
|
132
|
+
**What it refuses:** `variant="filled"` and `variant="underline"` are type errors. They need the inputs this entry exists to leave out, so use the generic entry for them.
|
|
133
|
+
|
|
134
|
+
**What stays the same:** `__tests__/outlined-entry.test.tsx` renders both entries from the same props and compares the DOM. `__tests__/outlined-reachability.test.ts` fails if `FilledInput` or MUI's `Input` becomes reachable from this entry or from `CepField`.
|
|
135
|
+
|
|
136
|
+
**Reachable only through this subpath.** The entry is not re-exported from `form/Input` or from the `form` barrel, where a second `Input` would collide.
|
|
137
|
+
|
|
118
138
|
## Accessibility
|
|
119
139
|
|
|
120
140
|
### ARIA Attributes
|