@12-apps/ui 6.100.0 → 6.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NATIVE.md +2 -1
- package/components-catalog.md +2 -1
- package/dist/_internal/components/data-display/Alert/Alert.content.js +2 -2
- package/dist/_internal/components/data-display/Alert/Alert.js +4 -4
- package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
- package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +5 -5
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +6 -6
- package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
- package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
- package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
- package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +45 -45
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +60 -60
- 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 +4 -4
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +4 -4
- package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +4 -4
- 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 +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +8 -8
- 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 +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +42 -42
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +24 -24
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +21 -21
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +22 -22
- package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +11 -11
- 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 +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +10 -10
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +3 -3
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +3 -3
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
- package/dist/_internal/components/data-display/DayRuler/DayRuler.footer.js +3 -3
- package/dist/_internal/components/data-display/DayRuler/DayRuler.js +10 -10
- package/dist/_internal/components/data-display/DayRuler/DayRuler.keyboard.js +2 -2
- package/dist/_internal/components/data-display/DayRuler/DayRuler.labels.js +2 -2
- package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +3 -3
- package/dist/_internal/components/data-display/DayRuler/useRulerDrag.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +9 -9
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
- package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +7 -7
- package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
- package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +3 -3
- package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -2
- 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/RegionMap/RegionMap.js +1 -1
- package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +8 -8
- package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.parts.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.js +2 -2
- package/dist/_internal/components/data-display/Table/Table.js +3 -3
- package/dist/_internal/components/data-display/index.js +72 -72
- package/dist/_internal/components/feedback/Dialog/Dialog.js +3 -3
- package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +5 -5
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js +8 -8
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.header.js +4 -4
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +16 -16
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +6 -6
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +5 -5
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
- package/dist/_internal/components/feedback/UsableModal/UsableModal.js +1 -1
- package/dist/_internal/components/feedback/UsableModal/UsableModal.sheet.js +2 -2
- package/dist/_internal/components/feedback/index.js +21 -21
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +2 -2
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
- 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.js +5 -5
- package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +4 -4
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +7 -7
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +8 -8
- package/dist/_internal/components/form/InputOTP/InputOTP.base.js +1 -0
- package/dist/_internal/components/form/InputOTP/InputOTP.base.js.map +1 -0
- package/dist/_internal/components/form/InputOTP/InputOTP.core.js +16 -0
- package/dist/_internal/components/form/InputOTP/InputOTP.core.js.map +1 -0
- package/dist/_internal/components/form/InputOTP/InputOTP.hooks.js +2 -1
- package/dist/_internal/components/form/InputOTP/InputOTP.js +5 -3
- package/dist/_internal/components/form/InputOTP/InputOTP.metrics.js +12 -0
- package/dist/_internal/components/form/InputOTP/InputOTP.metrics.js.map +1 -0
- package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +2 -1
- package/dist/_internal/components/form/index.js +25 -23
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +8 -8
- package/dist/_internal/components/form/total-form/Fields/index.js +9 -9
- package/dist/_internal/components/index.js +120 -118
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +6 -6
- package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +6 -6
- package/dist/_internal/components/navigation/SectionNav/SectionNav.js +9 -9
- package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +3 -3
- package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +4 -4
- package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +5 -5
- package/dist/_internal/components/navigation/SectionNav/SectionNav.railCreate.js +4 -4
- package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +4 -4
- package/dist/_internal/components/navigation/index.js +15 -15
- package/dist/_internal/user-avatar/user-avatar.js +3 -3
- package/dist/charts.js +6 -6
- package/dist/{chunk-37MJZLQU.js → chunk-24OFA44S.js} +4 -4
- package/dist/{chunk-R775ISK6.js → chunk-2L6TANRY.js} +5 -5
- package/dist/{chunk-B4OZU7J4.js → chunk-423A7NUP.js} +7 -7
- package/dist/{chunk-LFECE4R7.js → chunk-4EDCF7TC.js} +2 -2
- package/dist/{chunk-HI7JPDD6.js → chunk-5357QUVE.js} +2 -2
- package/dist/{chunk-F7JRQ2EI.js → chunk-5YX2VQFP.js} +7 -7
- package/dist/{chunk-QZOQVJ5L.js → chunk-645GGNTW.js} +3 -3
- package/dist/{chunk-N5PVD4J5.js → chunk-6DO672AG.js} +7 -7
- package/dist/{chunk-PGJIWCQR.js → chunk-6EZQLNPK.js} +4 -4
- package/dist/{chunk-YQMJJ7AL.js → chunk-6G2RAZTS.js} +5 -5
- package/dist/{chunk-KNW63H63.js → chunk-6PQZIZMN.js} +5 -5
- package/dist/{chunk-FZZMNKVF.js → chunk-6TAPAIRR.js} +8 -8
- package/dist/{chunk-ERAMSYPR.js → chunk-7N4O632I.js} +2 -2
- package/dist/{chunk-XFOKLWJZ.js → chunk-7S5PXEO7.js} +2 -2
- package/dist/{chunk-UIJLDAV7.js → chunk-AA6YMOEK.js} +2 -2
- package/dist/{chunk-CRD2WCU7.js → chunk-AFWUQJ4P.js} +8 -8
- package/dist/{chunk-SNWCT6JN.js → chunk-AMIUZRDQ.js} +3 -3
- package/dist/{chunk-NQYC7V5N.js → chunk-BAYCMSMI.js} +5 -9
- package/dist/chunk-BAYCMSMI.js.map +1 -0
- package/dist/{chunk-3I7KE2N6.js → chunk-BNV7P52K.js} +2 -2
- package/dist/{chunk-64UNVW6D.js → chunk-BP3ZKIPE.js} +4 -4
- package/dist/{chunk-3V7OTBUZ.js → chunk-BQ2SFA27.js} +2 -2
- package/dist/{chunk-Q5SCBQLY.js → chunk-BXLC3TBQ.js} +8 -8
- package/dist/{chunk-Z5V5E3JW.js → chunk-COKPPU42.js} +11 -11
- package/dist/{chunk-QADTI63U.js → chunk-CZVAVX5L.js} +4 -4
- package/dist/{chunk-WDEVKND3.js → chunk-D2YJPZMU.js} +9 -9
- package/dist/{chunk-OA6T2ME3.js → chunk-DYHOBKPU.js} +5 -5
- package/dist/{chunk-6WAP7BJS.js → chunk-E6SPWZRN.js} +2 -2
- package/dist/{chunk-UTIYB6VE.js → chunk-E73PAU4U.js} +19 -19
- package/dist/{chunk-XR474YYX.js → chunk-EDVAFY76.js} +2 -2
- package/dist/{chunk-MEMVZW64.js → chunk-EPNZQWS4.js} +3 -3
- package/dist/{chunk-GZITNT7O.js → chunk-FGZIEZEP.js} +11 -11
- package/dist/{chunk-4X2TOMK6.js → chunk-FKUVFPQZ.js} +4 -4
- package/dist/{chunk-UN5WU2OX.js → chunk-GDWU7WF4.js} +4 -4
- package/dist/{chunk-643YFWNK.js → chunk-GPWDP5FF.js} +3 -3
- package/dist/{chunk-XA5ES25V.js → chunk-HKQWFICM.js} +2 -2
- package/dist/chunk-IH6DZXTG.js +22 -0
- package/dist/chunk-IH6DZXTG.js.map +1 -0
- package/dist/{chunk-255WTBZ5.js → chunk-IWSTMVCA.js} +4 -4
- package/dist/{chunk-TZC6KIK2.js → chunk-JG733RMP.js} +5 -5
- package/dist/{chunk-7MLT66DE.js → chunk-K33X3PDT.js} +2 -2
- package/dist/{chunk-K3PMMW23.js → chunk-K6VEN5VN.js} +4 -4
- package/dist/{chunk-HOWAMSUY.js → chunk-KAWVH3AA.js} +3 -3
- package/dist/{chunk-IJVBLU25.js → chunk-KJZ4PINO.js} +3 -3
- package/dist/{chunk-REHGWN5M.js → chunk-KXDLLS62.js} +4 -4
- package/dist/{chunk-YQ5GQ32T.js → chunk-KZP5YTE7.js} +2 -2
- package/dist/{chunk-3V3Z4EML.js → chunk-L4FWEI2P.js} +5 -5
- package/dist/{chunk-UKUGSU3Y.js → chunk-L4V7FZJI.js} +2 -2
- package/dist/{chunk-W56KN53D.js → chunk-L6IDPTNX.js} +6 -6
- package/dist/{chunk-24HHUCWB.js → chunk-LDCZPZPD.js} +2 -2
- package/dist/{chunk-KV7LTOWC.js → chunk-M225SD4H.js} +13 -13
- package/dist/{chunk-R6L376KR.js → chunk-M6R32IBO.js} +8 -13
- package/dist/chunk-M6R32IBO.js.map +1 -0
- package/dist/{chunk-FQMLTCXT.js → chunk-MAHY7PK3.js} +4 -4
- package/dist/{chunk-Z2J4MRTF.js → chunk-MKNW4FRR.js} +4 -4
- package/dist/{chunk-ILJ3FXIC.js → chunk-MM3QESLI.js} +2 -2
- package/dist/{chunk-FYJL432J.js → chunk-MQPUS773.js} +6 -6
- package/dist/{chunk-VRSW7PIO.js → chunk-NKBSWAP3.js} +4 -4
- package/dist/{chunk-ULC4SCFC.js → chunk-NLJ7LL6H.js} +4 -4
- package/dist/{chunk-RAQD5QCM.js → chunk-NQ6JP5CC.js} +6 -6
- package/dist/{chunk-IFOHCY4O.js → chunk-OF3KG5EV.js} +2 -2
- package/dist/{chunk-W676GY42.js → chunk-P772HCHI.js} +4 -4
- package/dist/{chunk-CWRQGA2T.js → chunk-POIENBXE.js} +7 -7
- package/dist/{chunk-FW5GTAUY.js → chunk-Q4AX4FOK.js} +11 -11
- package/dist/{chunk-XQAFSC66.js → chunk-Q4FNCT4C.js} +2 -2
- package/dist/{chunk-PIELY4BJ.js → chunk-Q5Z66LKI.js} +1 -1
- package/dist/{chunk-4Y3QLISA.js → chunk-Q7AONB4G.js} +4 -4
- package/dist/{chunk-EZBBLLEU.js → chunk-QQBYZ3B3.js} +4 -4
- package/dist/{chunk-FT3LJZWZ.js → chunk-RWUXMBSO.js} +4 -4
- package/dist/{chunk-KWBMM6MJ.js → chunk-RZKKWIGQ.js} +9 -9
- package/dist/{chunk-RVBLOR32.js → chunk-S7CXVIEF.js} +2 -2
- package/dist/{chunk-WLLUARTC.js → chunk-T2G4LDU5.js} +2 -2
- package/dist/{chunk-OFRQMFWD.js → chunk-T5D3DYVN.js} +2 -2
- package/dist/{chunk-O4UXH7BM.js → chunk-TP6KZ2YR.js} +7 -7
- package/dist/{chunk-HAWOS4SF.js → chunk-TPDN3B5T.js} +2 -2
- package/dist/{chunk-54DOLCJ3.js → chunk-TXIIJW6C.js} +5 -5
- package/dist/{chunk-HN36UVOE.js → chunk-U4Z6GZDW.js} +4 -4
- package/dist/{chunk-J2IQ6FJ5.js → chunk-UKLNLWTP.js} +3 -3
- package/dist/chunk-VAHJCRNW.js +17 -0
- package/dist/chunk-VAHJCRNW.js.map +1 -0
- package/dist/{chunk-MKHNLRVX.js → chunk-VPPD2AJN.js} +7 -7
- package/dist/{chunk-TIM4PXWN.js → chunk-VWRXSBT2.js} +2 -2
- package/dist/{chunk-KVP5A3YK.js → chunk-WDWZKTGA.js} +2 -2
- package/dist/{chunk-FYSS2PYA.js → chunk-WH5ZEBKS.js} +7 -7
- package/dist/{chunk-KAGXV3ID.js → chunk-WMMXOSZG.js} +7 -7
- package/dist/{chunk-4RSFYS2V.js → chunk-X6D5JEUV.js} +6 -6
- package/dist/{chunk-GFYDOH7D.js → chunk-XEPNAU3T.js} +2 -2
- package/dist/{chunk-VMACQT3T.js → chunk-XH7UDC5Y.js} +3 -3
- package/dist/{chunk-PDWQJFMK.js → chunk-XHMHHP7B.js} +10 -10
- package/dist/{chunk-SA3KLZDZ.js → chunk-XNAI7QGU.js} +5 -5
- package/dist/{chunk-7TENMQNQ.js → chunk-XZMSRHFD.js} +4 -4
- package/dist/{chunk-HBHBRRSW.js → chunk-YBAK2WN5.js} +7 -7
- package/dist/{chunk-QLKUWDMQ.js → chunk-YDJ5GAGL.js} +13 -13
- package/dist/{chunk-LOLYBFYY.js → chunk-ZCNR4DN5.js} +5 -5
- package/dist/data-display/Alert.js +4 -4
- package/dist/data-display/Avatar.js +2 -2
- package/dist/data-display/Badge.js +2 -2
- package/dist/data-display/CardKit.js +14 -14
- package/dist/data-display/Carousel.js +3 -3
- package/dist/data-display/Chart.js +6 -6
- package/dist/data-display/DataGrid.js +3 -3
- package/dist/data-display/DataViews.js +74 -74
- package/dist/data-display/DayRuler.js +12 -12
- package/dist/data-display/FleetMap.js +12 -12
- package/dist/data-display/HoverCard.js +2 -2
- package/dist/data-display/Lightbox.js +7 -7
- package/dist/data-display/MapPreview.js +8 -8
- package/dist/data-display/Progress.js +2 -2
- package/dist/data-display/RegionMap.js +4 -4
- package/dist/data-display/ScheduleGrid.js +10 -10
- package/dist/data-display/Sheet.js +2 -2
- package/dist/data-display/Table.js +3 -3
- package/dist/feedback/Dialog.js +3 -3
- package/dist/feedback/Modal.js +2 -2
- package/dist/feedback/NotificationStatusNotice.js +5 -5
- package/dist/feedback/SequenceResolver.js +16 -16
- package/dist/feedback/TutorialOverlay.js +2 -2
- package/dist/feedback/UsableModal.js +1 -1
- package/dist/form/AddressAutocomplete.js +7 -7
- package/dist/form/Autocomplete.js +1 -1
- package/dist/form/Calendar.js +5 -5
- package/dist/form/CategorySelect.js +7 -7
- package/dist/form/CodeEditor.js +2 -2
- package/dist/form/DateRangePicker.js +10 -10
- package/dist/form/InputOTP.js +5 -3
- package/dist/form/total-form.js +9 -9
- package/dist/native/form/InputOTP.js +192 -0
- package/dist/native/form/InputOTP.js.map +1 -0
- package/dist/navigation/AppHeader.js +6 -6
- package/dist/navigation/SectionNav.js +9 -9
- package/dist/types/components/form/InputOTP/InputOTP.base.d.ts +63 -0
- package/dist/types/components/form/InputOTP/InputOTP.base.d.ts.map +1 -0
- package/dist/types/components/form/InputOTP/InputOTP.core.d.ts +38 -0
- package/dist/types/components/form/InputOTP/InputOTP.core.d.ts.map +1 -0
- package/dist/types/components/form/InputOTP/InputOTP.d.ts +1 -2
- package/dist/types/components/form/InputOTP/InputOTP.d.ts.map +1 -1
- package/dist/types/components/form/InputOTP/InputOTP.hooks.d.ts.map +1 -1
- package/dist/types/components/form/InputOTP/InputOTP.metrics.d.ts +15 -0
- package/dist/types/components/form/InputOTP/InputOTP.metrics.d.ts.map +1 -0
- package/dist/types/components/form/InputOTP/InputOTP.styles.d.ts.map +1 -1
- package/dist/types/components/form/InputOTP/InputOTP.types.d.ts +3 -56
- package/dist/types/components/form/InputOTP/InputOTP.types.d.ts.map +1 -1
- package/dist/types-native/components/form/InputOTP/InputOTP.base.d.ts +63 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.base.d.ts.map +1 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.core.d.ts +38 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.core.d.ts.map +1 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.hooks.native.d.ts +28 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.hooks.native.d.ts.map +1 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.metrics.d.ts +15 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.metrics.d.ts.map +1 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.native.d.ts +14 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.native.d.ts.map +1 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.types.native.d.ts +14 -0
- package/dist/types-native/components/form/InputOTP/InputOTP.types.native.d.ts.map +1 -0
- package/dist/types-native/components/form/InputOTP/index.native.d.ts +3 -0
- package/dist/types-native/components/form/InputOTP/index.native.d.ts.map +1 -0
- package/dist/user-avatar.js +3 -3
- package/package.json +5 -1
- package/src/components/form/InputOTP/InputOTP.base.ts +76 -0
- package/src/components/form/InputOTP/InputOTP.core.ts +51 -0
- package/src/components/form/InputOTP/InputOTP.hooks.native.ts +84 -0
- package/src/components/form/InputOTP/InputOTP.hooks.ts +1 -46
- package/src/components/form/InputOTP/InputOTP.metrics.ts +19 -0
- package/src/components/form/InputOTP/InputOTP.native.tsx +154 -0
- package/src/components/form/InputOTP/InputOTP.styles.ts +4 -11
- package/src/components/form/InputOTP/InputOTP.types.native.ts +15 -0
- package/src/components/form/InputOTP/InputOTP.types.ts +3 -68
- package/src/components/form/InputOTP/NATIVE-NOTES.md +8 -0
- package/src/components/form/InputOTP/index.native.ts +2 -0
- package/dist/chunk-NQYC7V5N.js.map +0 -1
- package/dist/chunk-R6L376KR.js.map +0 -1
- /package/dist/{chunk-37MJZLQU.js.map → chunk-24OFA44S.js.map} +0 -0
- /package/dist/{chunk-R775ISK6.js.map → chunk-2L6TANRY.js.map} +0 -0
- /package/dist/{chunk-B4OZU7J4.js.map → chunk-423A7NUP.js.map} +0 -0
- /package/dist/{chunk-LFECE4R7.js.map → chunk-4EDCF7TC.js.map} +0 -0
- /package/dist/{chunk-HI7JPDD6.js.map → chunk-5357QUVE.js.map} +0 -0
- /package/dist/{chunk-F7JRQ2EI.js.map → chunk-5YX2VQFP.js.map} +0 -0
- /package/dist/{chunk-QZOQVJ5L.js.map → chunk-645GGNTW.js.map} +0 -0
- /package/dist/{chunk-N5PVD4J5.js.map → chunk-6DO672AG.js.map} +0 -0
- /package/dist/{chunk-PGJIWCQR.js.map → chunk-6EZQLNPK.js.map} +0 -0
- /package/dist/{chunk-YQMJJ7AL.js.map → chunk-6G2RAZTS.js.map} +0 -0
- /package/dist/{chunk-KNW63H63.js.map → chunk-6PQZIZMN.js.map} +0 -0
- /package/dist/{chunk-FZZMNKVF.js.map → chunk-6TAPAIRR.js.map} +0 -0
- /package/dist/{chunk-ERAMSYPR.js.map → chunk-7N4O632I.js.map} +0 -0
- /package/dist/{chunk-XFOKLWJZ.js.map → chunk-7S5PXEO7.js.map} +0 -0
- /package/dist/{chunk-UIJLDAV7.js.map → chunk-AA6YMOEK.js.map} +0 -0
- /package/dist/{chunk-CRD2WCU7.js.map → chunk-AFWUQJ4P.js.map} +0 -0
- /package/dist/{chunk-SNWCT6JN.js.map → chunk-AMIUZRDQ.js.map} +0 -0
- /package/dist/{chunk-3I7KE2N6.js.map → chunk-BNV7P52K.js.map} +0 -0
- /package/dist/{chunk-64UNVW6D.js.map → chunk-BP3ZKIPE.js.map} +0 -0
- /package/dist/{chunk-3V7OTBUZ.js.map → chunk-BQ2SFA27.js.map} +0 -0
- /package/dist/{chunk-Q5SCBQLY.js.map → chunk-BXLC3TBQ.js.map} +0 -0
- /package/dist/{chunk-Z5V5E3JW.js.map → chunk-COKPPU42.js.map} +0 -0
- /package/dist/{chunk-QADTI63U.js.map → chunk-CZVAVX5L.js.map} +0 -0
- /package/dist/{chunk-WDEVKND3.js.map → chunk-D2YJPZMU.js.map} +0 -0
- /package/dist/{chunk-OA6T2ME3.js.map → chunk-DYHOBKPU.js.map} +0 -0
- /package/dist/{chunk-6WAP7BJS.js.map → chunk-E6SPWZRN.js.map} +0 -0
- /package/dist/{chunk-UTIYB6VE.js.map → chunk-E73PAU4U.js.map} +0 -0
- /package/dist/{chunk-XR474YYX.js.map → chunk-EDVAFY76.js.map} +0 -0
- /package/dist/{chunk-MEMVZW64.js.map → chunk-EPNZQWS4.js.map} +0 -0
- /package/dist/{chunk-GZITNT7O.js.map → chunk-FGZIEZEP.js.map} +0 -0
- /package/dist/{chunk-4X2TOMK6.js.map → chunk-FKUVFPQZ.js.map} +0 -0
- /package/dist/{chunk-UN5WU2OX.js.map → chunk-GDWU7WF4.js.map} +0 -0
- /package/dist/{chunk-643YFWNK.js.map → chunk-GPWDP5FF.js.map} +0 -0
- /package/dist/{chunk-XA5ES25V.js.map → chunk-HKQWFICM.js.map} +0 -0
- /package/dist/{chunk-255WTBZ5.js.map → chunk-IWSTMVCA.js.map} +0 -0
- /package/dist/{chunk-TZC6KIK2.js.map → chunk-JG733RMP.js.map} +0 -0
- /package/dist/{chunk-7MLT66DE.js.map → chunk-K33X3PDT.js.map} +0 -0
- /package/dist/{chunk-K3PMMW23.js.map → chunk-K6VEN5VN.js.map} +0 -0
- /package/dist/{chunk-HOWAMSUY.js.map → chunk-KAWVH3AA.js.map} +0 -0
- /package/dist/{chunk-IJVBLU25.js.map → chunk-KJZ4PINO.js.map} +0 -0
- /package/dist/{chunk-REHGWN5M.js.map → chunk-KXDLLS62.js.map} +0 -0
- /package/dist/{chunk-YQ5GQ32T.js.map → chunk-KZP5YTE7.js.map} +0 -0
- /package/dist/{chunk-3V3Z4EML.js.map → chunk-L4FWEI2P.js.map} +0 -0
- /package/dist/{chunk-UKUGSU3Y.js.map → chunk-L4V7FZJI.js.map} +0 -0
- /package/dist/{chunk-W56KN53D.js.map → chunk-L6IDPTNX.js.map} +0 -0
- /package/dist/{chunk-24HHUCWB.js.map → chunk-LDCZPZPD.js.map} +0 -0
- /package/dist/{chunk-KV7LTOWC.js.map → chunk-M225SD4H.js.map} +0 -0
- /package/dist/{chunk-FQMLTCXT.js.map → chunk-MAHY7PK3.js.map} +0 -0
- /package/dist/{chunk-Z2J4MRTF.js.map → chunk-MKNW4FRR.js.map} +0 -0
- /package/dist/{chunk-ILJ3FXIC.js.map → chunk-MM3QESLI.js.map} +0 -0
- /package/dist/{chunk-FYJL432J.js.map → chunk-MQPUS773.js.map} +0 -0
- /package/dist/{chunk-VRSW7PIO.js.map → chunk-NKBSWAP3.js.map} +0 -0
- /package/dist/{chunk-ULC4SCFC.js.map → chunk-NLJ7LL6H.js.map} +0 -0
- /package/dist/{chunk-RAQD5QCM.js.map → chunk-NQ6JP5CC.js.map} +0 -0
- /package/dist/{chunk-IFOHCY4O.js.map → chunk-OF3KG5EV.js.map} +0 -0
- /package/dist/{chunk-W676GY42.js.map → chunk-P772HCHI.js.map} +0 -0
- /package/dist/{chunk-CWRQGA2T.js.map → chunk-POIENBXE.js.map} +0 -0
- /package/dist/{chunk-FW5GTAUY.js.map → chunk-Q4AX4FOK.js.map} +0 -0
- /package/dist/{chunk-XQAFSC66.js.map → chunk-Q4FNCT4C.js.map} +0 -0
- /package/dist/{chunk-PIELY4BJ.js.map → chunk-Q5Z66LKI.js.map} +0 -0
- /package/dist/{chunk-4Y3QLISA.js.map → chunk-Q7AONB4G.js.map} +0 -0
- /package/dist/{chunk-EZBBLLEU.js.map → chunk-QQBYZ3B3.js.map} +0 -0
- /package/dist/{chunk-FT3LJZWZ.js.map → chunk-RWUXMBSO.js.map} +0 -0
- /package/dist/{chunk-KWBMM6MJ.js.map → chunk-RZKKWIGQ.js.map} +0 -0
- /package/dist/{chunk-RVBLOR32.js.map → chunk-S7CXVIEF.js.map} +0 -0
- /package/dist/{chunk-WLLUARTC.js.map → chunk-T2G4LDU5.js.map} +0 -0
- /package/dist/{chunk-OFRQMFWD.js.map → chunk-T5D3DYVN.js.map} +0 -0
- /package/dist/{chunk-O4UXH7BM.js.map → chunk-TP6KZ2YR.js.map} +0 -0
- /package/dist/{chunk-HAWOS4SF.js.map → chunk-TPDN3B5T.js.map} +0 -0
- /package/dist/{chunk-54DOLCJ3.js.map → chunk-TXIIJW6C.js.map} +0 -0
- /package/dist/{chunk-HN36UVOE.js.map → chunk-U4Z6GZDW.js.map} +0 -0
- /package/dist/{chunk-J2IQ6FJ5.js.map → chunk-UKLNLWTP.js.map} +0 -0
- /package/dist/{chunk-MKHNLRVX.js.map → chunk-VPPD2AJN.js.map} +0 -0
- /package/dist/{chunk-TIM4PXWN.js.map → chunk-VWRXSBT2.js.map} +0 -0
- /package/dist/{chunk-KVP5A3YK.js.map → chunk-WDWZKTGA.js.map} +0 -0
- /package/dist/{chunk-FYSS2PYA.js.map → chunk-WH5ZEBKS.js.map} +0 -0
- /package/dist/{chunk-KAGXV3ID.js.map → chunk-WMMXOSZG.js.map} +0 -0
- /package/dist/{chunk-4RSFYS2V.js.map → chunk-X6D5JEUV.js.map} +0 -0
- /package/dist/{chunk-GFYDOH7D.js.map → chunk-XEPNAU3T.js.map} +0 -0
- /package/dist/{chunk-VMACQT3T.js.map → chunk-XH7UDC5Y.js.map} +0 -0
- /package/dist/{chunk-PDWQJFMK.js.map → chunk-XHMHHP7B.js.map} +0 -0
- /package/dist/{chunk-SA3KLZDZ.js.map → chunk-XNAI7QGU.js.map} +0 -0
- /package/dist/{chunk-7TENMQNQ.js.map → chunk-XZMSRHFD.js.map} +0 -0
- /package/dist/{chunk-HBHBRRSW.js.map → chunk-YBAK2WN5.js.map} +0 -0
- /package/dist/{chunk-QLKUWDMQ.js.map → chunk-YDJ5GAGL.js.map} +0 -0
- /package/dist/{chunk-LOLYBFYY.js.map → chunk-ZCNR4DN5.js.map} +0 -0
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import "../chunk-573PQ6C6.js";
|
|
2
2
|
import {
|
|
3
3
|
AddressAutocomplete
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-2L6TANRY.js";
|
|
5
|
+
import "../chunk-FKUVFPQZ.js";
|
|
5
6
|
import "../chunk-IU2WSJ4F.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-X6D5JEUV.js";
|
|
8
|
+
import "../chunk-EIOGJBJ5.js";
|
|
9
|
+
import "../chunk-P5JCOFK3.js";
|
|
10
|
+
import "../chunk-NYA26GV2.js";
|
|
11
|
+
import "../chunk-L7N4AFZD.js";
|
|
8
12
|
import "../chunk-44FY2YZL.js";
|
|
9
13
|
import "../chunk-6JKECOZ2.js";
|
|
10
14
|
import "../chunk-6HLWZR3X.js";
|
|
11
15
|
import "../chunk-QVYBRD6U.js";
|
|
12
16
|
import "../chunk-NNKIM73H.js";
|
|
13
17
|
import "../chunk-O7QPPJAK.js";
|
|
14
|
-
import "../chunk-EIOGJBJ5.js";
|
|
15
|
-
import "../chunk-P5JCOFK3.js";
|
|
16
|
-
import "../chunk-NYA26GV2.js";
|
|
17
18
|
import "../chunk-DDNUPFPE.js";
|
|
18
|
-
import "../chunk-L7N4AFZD.js";
|
|
19
19
|
import "../chunk-LL2BWQPM.js";
|
|
20
20
|
import "../chunk-DVRNW33K.js";
|
|
21
21
|
import "../chunk-RGVNXES5.js";
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
Autocomplete_default
|
|
5
5
|
} from "../chunk-CFDWKQZT.js";
|
|
6
6
|
import "../chunk-SY5FYBAF.js";
|
|
7
|
-
import "../chunk-SAKSIN7E.js";
|
|
8
7
|
import "../chunk-PELRSZFU.js";
|
|
8
|
+
import "../chunk-SAKSIN7E.js";
|
|
9
9
|
import "../chunk-JXS56EW5.js";
|
|
10
10
|
import "../chunk-RGVNXES5.js";
|
|
11
11
|
import "../chunk-GDN2LUTZ.js";
|
package/dist/form/Calendar.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import "../chunk-BO6S47KI.js";
|
|
2
2
|
import {
|
|
3
3
|
Calendar
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-ZDLC4BN4.js";
|
|
4
|
+
} from "../chunk-6G2RAZTS.js";
|
|
6
5
|
import "../chunk-ZZGG6AUD.js";
|
|
7
6
|
import "../chunk-4I2SDWSF.js";
|
|
8
7
|
import "../chunk-LZOCNAUA.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-ZDLC4BN4.js";
|
|
9
|
+
import "../chunk-5YX2VQFP.js";
|
|
11
10
|
import "../chunk-66TCKXOB.js";
|
|
12
|
-
import "../chunk-WQEGPSGD.js";
|
|
13
11
|
import "../chunk-WN6LR4HX.js";
|
|
14
12
|
import "../chunk-UXYCBPCE.js";
|
|
15
13
|
import "../chunk-X5GCAXZS.js";
|
|
16
14
|
import "../chunk-3PWDVJWD.js";
|
|
15
|
+
import "../chunk-WQEGPSGD.js";
|
|
17
16
|
import "../chunk-JV2JIUDT.js";
|
|
17
|
+
import "../chunk-J6LIZXSF.js";
|
|
18
18
|
import "../chunk-QWOI5BZV.js";
|
|
19
19
|
import "../chunk-LL2BWQPM.js";
|
|
20
20
|
import "../chunk-VWKMN3ZZ.js";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import "../chunk-N5ZWC6CB.js";
|
|
2
2
|
import {
|
|
3
3
|
CategorySelect
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-FZZMNKVF.js";
|
|
6
|
-
import "../chunk-WDSJ6SVY.js";
|
|
7
|
-
import "../chunk-PGGYZU7Q.js";
|
|
4
|
+
} from "../chunk-VPPD2AJN.js";
|
|
8
5
|
import "../chunk-QYY37ECA.js";
|
|
6
|
+
import "../chunk-6TAPAIRR.js";
|
|
9
7
|
import "../chunk-5F7HYYGM.js";
|
|
10
|
-
import "../chunk-S5VIN3EB.js";
|
|
11
8
|
import "../chunk-Y46R26TE.js";
|
|
9
|
+
import "../chunk-WDSJ6SVY.js";
|
|
10
|
+
import "../chunk-GHP5JLL3.js";
|
|
11
|
+
import "../chunk-S5VIN3EB.js";
|
|
12
|
+
import "../chunk-PGGYZU7Q.js";
|
|
12
13
|
import "../chunk-RZVUY2MO.js";
|
|
13
14
|
import "../chunk-USJPZ5Q7.js";
|
|
14
|
-
import "../chunk-XHHR6G35.js";
|
|
15
15
|
import "../chunk-R2AZOWEZ.js";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-XHHR6G35.js";
|
|
17
17
|
import "../chunk-VPGDYI63.js";
|
|
18
18
|
import "../chunk-DMNZD3Q7.js";
|
|
19
19
|
import {
|
package/dist/form/CodeEditor.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import "../chunk-IDMG332I.js";
|
|
2
2
|
import {
|
|
3
3
|
CodeEditor
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-MKNW4FRR.js";
|
|
5
|
+
import "../chunk-3TVUW7QE.js";
|
|
5
6
|
import "../chunk-OXXIGHZK.js";
|
|
6
7
|
import {
|
|
7
8
|
configureCodeEditor
|
|
8
9
|
} from "../chunk-EYDQV55H.js";
|
|
9
10
|
import "../chunk-X3OWMTLO.js";
|
|
10
|
-
import "../chunk-3TVUW7QE.js";
|
|
11
11
|
import "../chunk-GDN2LUTZ.js";
|
|
12
12
|
import "../chunk-7ZADLRLP.js";
|
|
13
13
|
import "../chunk-3NGE6NE6.js";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import "../chunk-BN6POCYF.js";
|
|
2
2
|
import {
|
|
3
3
|
DateRangePicker
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-6PQZIZMN.js";
|
|
5
|
+
import "../chunk-EASEJDBQ.js";
|
|
5
6
|
import {
|
|
6
7
|
DEFAULT_QUICK_RANGES,
|
|
7
8
|
DEFAULT_QUICK_RANGE_LABELS,
|
|
@@ -9,30 +10,29 @@ import {
|
|
|
9
10
|
createQuickRanges
|
|
10
11
|
} from "../chunk-R26WP22N.js";
|
|
11
12
|
import "../chunk-K62L5JFC.js";
|
|
12
|
-
import "../chunk-SIY64A6O.js";
|
|
13
|
-
import "../chunk-QAF76E6U.js";
|
|
14
|
-
import "../chunk-6KKQHJE7.js";
|
|
15
|
-
import "../chunk-EASEJDBQ.js";
|
|
16
13
|
import {
|
|
17
14
|
resolveDayRange
|
|
18
15
|
} from "../chunk-IXXB7CTR.js";
|
|
16
|
+
import "../chunk-SIY64A6O.js";
|
|
17
|
+
import "../chunk-QAF76E6U.js";
|
|
18
|
+
import "../chunk-6KKQHJE7.js";
|
|
19
19
|
import "../chunk-VCYYL23C.js";
|
|
20
20
|
import "../chunk-SUTOAW7I.js";
|
|
21
21
|
import "../chunk-BO6S47KI.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-ZDLC4BN4.js";
|
|
22
|
+
import "../chunk-6G2RAZTS.js";
|
|
24
23
|
import "../chunk-ZZGG6AUD.js";
|
|
25
24
|
import "../chunk-4I2SDWSF.js";
|
|
26
25
|
import "../chunk-LZOCNAUA.js";
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-ZDLC4BN4.js";
|
|
27
|
+
import "../chunk-5YX2VQFP.js";
|
|
29
28
|
import "../chunk-66TCKXOB.js";
|
|
30
|
-
import "../chunk-WQEGPSGD.js";
|
|
31
29
|
import "../chunk-WN6LR4HX.js";
|
|
32
30
|
import "../chunk-UXYCBPCE.js";
|
|
33
31
|
import "../chunk-X5GCAXZS.js";
|
|
34
32
|
import "../chunk-3PWDVJWD.js";
|
|
33
|
+
import "../chunk-WQEGPSGD.js";
|
|
35
34
|
import "../chunk-JV2JIUDT.js";
|
|
35
|
+
import "../chunk-J6LIZXSF.js";
|
|
36
36
|
import "../chunk-QWOI5BZV.js";
|
|
37
37
|
import "../chunk-LL2BWQPM.js";
|
|
38
38
|
import "../chunk-HDBP55R3.js";
|
package/dist/form/InputOTP.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import "../chunk-3VMXOGGI.js";
|
|
2
2
|
import {
|
|
3
3
|
InputOTP
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-645GGNTW.js";
|
|
5
|
+
import "../chunk-BAYCMSMI.js";
|
|
6
|
+
import "../chunk-VAHJCRNW.js";
|
|
7
|
+
import "../chunk-M6R32IBO.js";
|
|
8
|
+
import "../chunk-IH6DZXTG.js";
|
|
7
9
|
import "../chunk-HPK33ACY.js";
|
|
8
10
|
import "../chunk-RGVNXES5.js";
|
|
9
11
|
import "../chunk-GDN2LUTZ.js";
|
package/dist/form/total-form.js
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "../chunk-CPAJYJUD.js";
|
|
10
10
|
import {
|
|
11
11
|
Fields_exports
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-TPDN3B5T.js";
|
|
13
13
|
import "../chunk-RLTYBV4N.js";
|
|
14
14
|
import {
|
|
15
15
|
TextField
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import "../chunk-QZRWOF4R.js";
|
|
21
21
|
import {
|
|
22
22
|
CategoryField
|
|
23
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-7N4O632I.js";
|
|
24
24
|
import {
|
|
25
25
|
FormContext,
|
|
26
26
|
useFormContext
|
|
@@ -42,19 +42,19 @@ import "../chunk-QYKDY4EI.js";
|
|
|
42
42
|
import "../chunk-ZJY7OK6H.js";
|
|
43
43
|
import "../chunk-ZLMKGVB2.js";
|
|
44
44
|
import "../chunk-N5ZWC6CB.js";
|
|
45
|
-
import "../chunk-
|
|
46
|
-
import "../chunk-FZZMNKVF.js";
|
|
47
|
-
import "../chunk-WDSJ6SVY.js";
|
|
48
|
-
import "../chunk-PGGYZU7Q.js";
|
|
45
|
+
import "../chunk-VPPD2AJN.js";
|
|
49
46
|
import "../chunk-QYY37ECA.js";
|
|
47
|
+
import "../chunk-6TAPAIRR.js";
|
|
50
48
|
import "../chunk-5F7HYYGM.js";
|
|
51
|
-
import "../chunk-S5VIN3EB.js";
|
|
52
49
|
import "../chunk-Y46R26TE.js";
|
|
50
|
+
import "../chunk-WDSJ6SVY.js";
|
|
51
|
+
import "../chunk-GHP5JLL3.js";
|
|
52
|
+
import "../chunk-S5VIN3EB.js";
|
|
53
|
+
import "../chunk-PGGYZU7Q.js";
|
|
53
54
|
import "../chunk-RZVUY2MO.js";
|
|
54
55
|
import "../chunk-USJPZ5Q7.js";
|
|
55
|
-
import "../chunk-XHHR6G35.js";
|
|
56
56
|
import "../chunk-R2AZOWEZ.js";
|
|
57
|
-
import "../chunk-
|
|
57
|
+
import "../chunk-XHHR6G35.js";
|
|
58
58
|
import "../chunk-VPGDYI63.js";
|
|
59
59
|
import "../chunk-DMNZD3Q7.js";
|
|
60
60
|
import "../chunk-PN4HVM43.js";
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveFieldEdge
|
|
3
|
+
} from "../chunks/chunk-3JBZE4I6.js";
|
|
4
|
+
import {
|
|
5
|
+
webAria,
|
|
6
|
+
webDisabled
|
|
7
|
+
} from "../chunks/chunk-DN73KYIZ.js";
|
|
8
|
+
import {
|
|
9
|
+
useUiTheme
|
|
10
|
+
} from "../chunks/chunk-ZYSOBULX.js";
|
|
11
|
+
import {
|
|
12
|
+
fieldHeightPx
|
|
13
|
+
} from "../chunks/chunk-DNTO2D5M.js";
|
|
14
|
+
|
|
15
|
+
// src/components/form/InputOTP/InputOTP.native.tsx
|
|
16
|
+
import * as React from "react";
|
|
17
|
+
import { Platform, StyleSheet, TextInput, View } from "react-native";
|
|
18
|
+
|
|
19
|
+
// src/components/form/InputOTP/InputOTP.hooks.native.ts
|
|
20
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
21
|
+
|
|
22
|
+
// src/components/form/InputOTP/InputOTP.core.ts
|
|
23
|
+
var PATTERNS = {
|
|
24
|
+
numeric: /^\d*$/,
|
|
25
|
+
alphanumeric: /^[a-zA-Z0-9]*$/
|
|
26
|
+
};
|
|
27
|
+
var isAllowed = (variant, text) => (PATTERNS[variant] ?? /.*/).test(text);
|
|
28
|
+
var padTo = (digits, length) => Array.from({ length }, (_, i) => digits[i] ?? "");
|
|
29
|
+
function firstSlotFill(variant, index, inputValue, current) {
|
|
30
|
+
if (variant !== "numeric" || index !== 0 || inputValue.length < 2) return null;
|
|
31
|
+
const overtype = inputValue.length === 2 && current !== "" && inputValue.includes(current);
|
|
32
|
+
return overtype ? "overtype" : "code";
|
|
33
|
+
}
|
|
34
|
+
var codeOfFill = (inputValue, current, length) => inputValue.length > length && current !== "" && inputValue.startsWith(current) ? inputValue.slice(1) : inputValue;
|
|
35
|
+
|
|
36
|
+
// src/components/form/InputOTP/InputOTP.hooks.native.ts
|
|
37
|
+
var useNativeOtpDigits = ({ variant, length, value, onChange, onComplete }) => {
|
|
38
|
+
const [digits, setDigits] = useState(() => padTo([], length));
|
|
39
|
+
const boxRefs = useRef([]);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
setDigits(padTo(value.split("").slice(0, length), length));
|
|
42
|
+
}, [value, length]);
|
|
43
|
+
const focusBox = useCallback((index) => boxRefs.current[index]?.focus(), []);
|
|
44
|
+
const publish = useCallback(
|
|
45
|
+
(next) => {
|
|
46
|
+
onChange?.(next);
|
|
47
|
+
if (next.length === length) onComplete?.(next);
|
|
48
|
+
},
|
|
49
|
+
[length, onChange, onComplete]
|
|
50
|
+
);
|
|
51
|
+
const spread = useCallback(
|
|
52
|
+
(text) => {
|
|
53
|
+
const code = text.slice(0, length);
|
|
54
|
+
if (!code || !isAllowed(variant, code)) return;
|
|
55
|
+
setDigits(padTo(code.split(""), length));
|
|
56
|
+
publish(code);
|
|
57
|
+
focusBox(Math.min(code.length, length - 1));
|
|
58
|
+
},
|
|
59
|
+
[variant, length, publish, focusBox]
|
|
60
|
+
);
|
|
61
|
+
const handleChangeText = useCallback(
|
|
62
|
+
(index, text) => {
|
|
63
|
+
const fill = firstSlotFill(variant === "alphanumeric" ? "numeric" : variant, index, text, digits[0] ?? "");
|
|
64
|
+
if (fill) return fill === "code" ? spread(codeOfFill(text, digits[0] ?? "", length)) : void 0;
|
|
65
|
+
if (!isAllowed(variant, text)) return;
|
|
66
|
+
const next = [...digits];
|
|
67
|
+
next[index] = text.slice(-1);
|
|
68
|
+
setDigits(next);
|
|
69
|
+
publish(next.join(""));
|
|
70
|
+
if (text && index < length - 1) focusBox(index + 1);
|
|
71
|
+
},
|
|
72
|
+
[variant, digits, length, publish, focusBox, spread]
|
|
73
|
+
);
|
|
74
|
+
const handleKey = useCallback(
|
|
75
|
+
(index, key) => {
|
|
76
|
+
if (key === "Backspace" && !digits[index] && index > 0) focusBox(index - 1);
|
|
77
|
+
},
|
|
78
|
+
[digits, focusBox]
|
|
79
|
+
);
|
|
80
|
+
return { digits, boxRefs, handleChangeText, handleKey };
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
// src/components/form/InputOTP/InputOTP.metrics.ts
|
|
84
|
+
var OTP_FONT_PX = {
|
|
85
|
+
xs: 12,
|
|
86
|
+
sm: 14,
|
|
87
|
+
md: 16,
|
|
88
|
+
lg: 18,
|
|
89
|
+
xl: 20
|
|
90
|
+
};
|
|
91
|
+
var OTP_GAP_PX = 8;
|
|
92
|
+
var OTP_BORDER = { rest: 1, focused: 2 };
|
|
93
|
+
|
|
94
|
+
// src/components/form/InputOTP/InputOTP.native.tsx
|
|
95
|
+
import { jsx } from "react/jsx-runtime";
|
|
96
|
+
var PALETTE_KEYS = ["primary", "secondary", "success", "warning", "info", "danger", "neutral"];
|
|
97
|
+
function accentOf(theme, color) {
|
|
98
|
+
const key = PALETTE_KEYS.find((candidate) => candidate === color) ?? "primary";
|
|
99
|
+
return theme.palette[key].main;
|
|
100
|
+
}
|
|
101
|
+
function keypadProps(variant, index) {
|
|
102
|
+
if (variant !== "numeric") return { autoCapitalize: "none", autoCorrect: false, spellCheck: false };
|
|
103
|
+
const fill = index === 0 ? Platform.select({
|
|
104
|
+
ios: { textContentType: "oneTimeCode", autoComplete: "one-time-code" },
|
|
105
|
+
android: { autoComplete: "sms-otp" },
|
|
106
|
+
default: { autoComplete: "one-time-code" }
|
|
107
|
+
}) : {};
|
|
108
|
+
return { keyboardType: "number-pad", inputMode: "numeric", ...fill };
|
|
109
|
+
}
|
|
110
|
+
var boxMaxLength = (variant, index, length) => variant !== "masked" && index === 0 ? length + 1 : 1;
|
|
111
|
+
function boxStyle(theme, size, accent, state) {
|
|
112
|
+
const side = fieldHeightPx(theme.fieldHeight, size);
|
|
113
|
+
const edge = resolveFieldEdge(theme.palette.divider, theme.palette.background.paper);
|
|
114
|
+
const borderColor = state.error ? theme.palette.danger.main : state.disabled ? theme.palette.action.disabled : state.focused ? accent : edge;
|
|
115
|
+
return {
|
|
116
|
+
width: side,
|
|
117
|
+
height: side,
|
|
118
|
+
borderRadius: theme.radius.field,
|
|
119
|
+
borderWidth: state.focused ? OTP_BORDER.focused : OTP_BORDER.rest,
|
|
120
|
+
borderColor,
|
|
121
|
+
backgroundColor: theme.palette.background.paper,
|
|
122
|
+
color: state.disabled ? theme.palette.text.disabled : theme.palette.text.primary,
|
|
123
|
+
fontFamily: theme.typography.fontFamily,
|
|
124
|
+
fontSize: OTP_FONT_PX[size],
|
|
125
|
+
fontWeight: "600",
|
|
126
|
+
textAlign: "center",
|
|
127
|
+
padding: 0
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
var InputOTP = React.forwardRef((props, ref) => {
|
|
131
|
+
const {
|
|
132
|
+
variant = "numeric",
|
|
133
|
+
color = "primary",
|
|
134
|
+
size = "md",
|
|
135
|
+
length = 6,
|
|
136
|
+
value = "",
|
|
137
|
+
onChange,
|
|
138
|
+
onComplete,
|
|
139
|
+
autoFocus = false,
|
|
140
|
+
error = false,
|
|
141
|
+
disabled = false,
|
|
142
|
+
dataTestId,
|
|
143
|
+
style,
|
|
144
|
+
"aria-label": ariaLabel
|
|
145
|
+
} = props;
|
|
146
|
+
const theme = useUiTheme();
|
|
147
|
+
const accent = accentOf(theme, color);
|
|
148
|
+
const [focusedIndex, setFocusedIndex] = React.useState(null);
|
|
149
|
+
const { digits, boxRefs, handleChangeText, handleKey } = useNativeOtpDigits({
|
|
150
|
+
variant,
|
|
151
|
+
length,
|
|
152
|
+
value,
|
|
153
|
+
onChange,
|
|
154
|
+
onComplete
|
|
155
|
+
});
|
|
156
|
+
return /* @__PURE__ */ jsx(View, { ref, testID: dataTestId, role: "group", "aria-label": ariaLabel, style: [styles.row, style], children: digits.map((digit, index) => /* @__PURE__ */ jsx(
|
|
157
|
+
TextInput,
|
|
158
|
+
{
|
|
159
|
+
ref: (element) => {
|
|
160
|
+
boxRefs.current[index] = element;
|
|
161
|
+
},
|
|
162
|
+
testID: dataTestId ? `${dataTestId}-slot-${index}` : void 0,
|
|
163
|
+
value: variant === "masked" ? digit ? "\u2022" : "" : digit,
|
|
164
|
+
onChangeText: (text) => handleChangeText(index, text),
|
|
165
|
+
onKeyPress: (event) => handleKey(index, event.nativeEvent.key),
|
|
166
|
+
onFocus: () => setFocusedIndex(index),
|
|
167
|
+
onBlur: () => setFocusedIndex((current) => current === index ? null : current),
|
|
168
|
+
autoFocus: autoFocus && index === 0,
|
|
169
|
+
editable: !disabled,
|
|
170
|
+
"aria-disabled": disabled,
|
|
171
|
+
...webAria({ "aria-invalid": error }),
|
|
172
|
+
maxLength: boxMaxLength(variant, index, length),
|
|
173
|
+
style: boxStyle(theme, size, accent, { focused: focusedIndex === index && !disabled, error, disabled }),
|
|
174
|
+
...webDisabled(disabled),
|
|
175
|
+
...keypadProps(variant, index)
|
|
176
|
+
},
|
|
177
|
+
index
|
|
178
|
+
)) });
|
|
179
|
+
});
|
|
180
|
+
InputOTP.displayName = "InputOTP";
|
|
181
|
+
var styles = StyleSheet.create({
|
|
182
|
+
row: {
|
|
183
|
+
flexDirection: "row",
|
|
184
|
+
justifyContent: "center",
|
|
185
|
+
alignItems: "center",
|
|
186
|
+
gap: OTP_GAP_PX
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
export {
|
|
190
|
+
InputOTP
|
|
191
|
+
};
|
|
192
|
+
//# sourceMappingURL=InputOTP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/form/InputOTP/InputOTP.native.tsx","../../../src/components/form/InputOTP/InputOTP.hooks.native.ts","../../../src/components/form/InputOTP/InputOTP.core.ts","../../../src/components/form/InputOTP/InputOTP.metrics.ts"],"sourcesContent":["import * as React from 'react';\nimport { Platform, StyleSheet, TextInput, View, type TextInputProps, type TextStyle } from 'react-native';\n\nimport { useNativeOtpDigits } from './InputOTP.hooks.native';\nimport { OTP_BORDER, OTP_FONT_PX, OTP_GAP_PX } from './InputOTP.metrics';\nimport type { InputOTPProps } from './InputOTP.types.native';\nimport { webAria, webDisabled } from '../../../platform/aria';\nimport { resolveFieldEdge } from '../../../tokens/field-edge.core';\nimport { fieldHeightPx } from '../../../tokens/field-height.core';\nimport type { UiPaletteKey, UiTheme } from '../../../tokens/theme';\nimport type { SizeValue } from '../../../tokens/vocabulary';\nimport { useUiTheme } from '../../../provider/use-ui-theme.native';\n\nconst PALETTE_KEYS: readonly UiPaletteKey[] = ['primary', 'secondary', 'success', 'warning', 'info', 'danger', 'neutral'];\n\n/** The palette slot a `color` names; anything else is `primary`, as on the web. */\nfunction accentOf(theme: UiTheme, color: string): string {\n const key = PALETTE_KEYS.find((candidate) => candidate === color) ?? 'primary';\n return theme.palette[key].main;\n}\n\n/**\n * The keypad and the one-time-code fill, the web's `keypadProps` in React\n * Native's words: digits only for `numeric`, and on the FIRST box the hint that\n * lets the phone offer the code from an SMS — `oneTimeCode` on iOS,\n * `sms-otp` on Android.\n */\nfunction keypadProps(variant: string, index: number): Partial<TextInputProps> {\n // A code is not prose: no capital on the first letter, no autocorrect.\n if (variant !== 'numeric') return { autoCapitalize: 'none', autoCorrect: false, spellCheck: false };\n const fill: Partial<TextInputProps> =\n index === 0\n ? Platform.select<Partial<TextInputProps>>({\n ios: { textContentType: 'oneTimeCode', autoComplete: 'one-time-code' },\n android: { autoComplete: 'sms-otp' },\n default: { autoComplete: 'one-time-code' },\n })\n : {};\n return { keyboardType: 'number-pad', inputMode: 'numeric', ...fill };\n}\n\n/** The first box takes a whole code in one change (see the web's `slotMaxLength`), except `masked`'s. */\nconst boxMaxLength = (variant: string, index: number, length: number): number =>\n variant !== 'masked' && index === 0 ? length + 1 : 1;\n\ninterface BoxState {\n focused: boolean;\n error: boolean;\n disabled: boolean;\n}\n\n/** One box's paint: the web slot's square, border and type, from the same numbers. */\nfunction boxStyle(theme: UiTheme, size: SizeValue, accent: string, state: BoxState): TextStyle {\n const side = fieldHeightPx(theme.fieldHeight, size);\n const edge = resolveFieldEdge(theme.palette.divider, theme.palette.background.paper);\n // Error and disabled outrank focus, as in MUI's outlined input (and the native `Input`).\n const borderColor = state.error\n ? theme.palette.danger.main\n : state.disabled\n ? theme.palette.action.disabled\n : state.focused\n ? accent\n : edge;\n return {\n width: side,\n height: side,\n borderRadius: theme.radius.field,\n borderWidth: state.focused ? OTP_BORDER.focused : OTP_BORDER.rest,\n borderColor,\n backgroundColor: theme.palette.background.paper,\n color: state.disabled ? theme.palette.text.disabled : theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n fontSize: OTP_FONT_PX[size],\n fontWeight: '600',\n textAlign: 'center',\n padding: 0,\n };\n}\n\n/**\n * The native `InputOTP`: one row of boxes, one character each, that moves\n * forward as it is typed, steps back on Backspace in an empty box, and spreads\n * a code the phone fills (or a paste) across every box from the first.\n *\n * The same props as the web one; the row is a `group` named by `aria-label`,\n * each box is `${dataTestId}-slot-${index}`. Gaps against the web:\n * `NATIVE-NOTES.md`.\n */\nexport const InputOTP = React.forwardRef<View, InputOTPProps>((props, ref) => {\n const {\n variant = 'numeric',\n color = 'primary',\n size = 'md',\n length = 6,\n value = '',\n onChange,\n onComplete,\n autoFocus = false,\n error = false,\n disabled = false,\n dataTestId,\n style,\n 'aria-label': ariaLabel,\n } = props;\n\n const theme = useUiTheme();\n const accent = accentOf(theme, color);\n const [focusedIndex, setFocusedIndex] = React.useState<number | null>(null);\n const { digits, boxRefs, handleChangeText, handleKey } = useNativeOtpDigits({\n variant,\n length,\n value,\n onChange,\n onComplete,\n });\n\n return (\n <View ref={ref} testID={dataTestId} role=\"group\" aria-label={ariaLabel} style={[styles.row, style]}>\n {digits.map((digit, index) => (\n <TextInput\n key={index}\n ref={(element) => {\n boxRefs.current[index] = element;\n }}\n testID={dataTestId ? `${dataTestId}-slot-${index}` : undefined}\n value={variant === 'masked' ? (digit ? '•' : '') : digit}\n onChangeText={(text) => handleChangeText(index, text)}\n onKeyPress={(event) => handleKey(index, event.nativeEvent.key)}\n onFocus={() => setFocusedIndex(index)}\n onBlur={() => setFocusedIndex((current) => (current === index ? null : current))}\n autoFocus={autoFocus && index === 0}\n editable={!disabled}\n aria-disabled={disabled}\n {...webAria({ 'aria-invalid': error })}\n maxLength={boxMaxLength(variant, index, length)}\n style={boxStyle(theme, size, accent, { focused: focusedIndex === index && !disabled, error, disabled })}\n {...webDisabled(disabled)}\n {...keypadProps(variant, index)}\n />\n ))}\n </View>\n );\n});\n\nInputOTP.displayName = 'InputOTP';\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n gap: OTP_GAP_PX,\n },\n});\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { codeOfFill, firstSlotFill, isAllowed, padTo } from './InputOTP.core';\n\n/** What a box needs from the element behind it: to take the focus. */\ninterface Focusable {\n focus: () => void;\n}\n\ninterface NativeOtpInput {\n variant: string;\n length: number;\n value: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n}\n\n/**\n * The native boxes' digits — the web hook's rules (`InputOTP.hooks.ts`) over\n * React Native's events: `onChangeText` carries the box's whole new text and\n * `onKeyPress` carries only the key's name, and there is no paste event at\n * all. A pasted or SMS-filled code arrives as a change of the FIRST box, whose\n * `maxLength` is the code's length plus one for exactly that reason, and is\n * spread across the boxes by the same `firstSlotFill` / `codeOfFill` the web\n * uses.\n */\nexport const useNativeOtpDigits = ({ variant, length, value, onChange, onComplete }: NativeOtpInput) => {\n const [digits, setDigits] = useState<string[]>(() => padTo([], length));\n const boxRefs = useRef<(Focusable | null)[]>([]);\n\n useEffect(() => {\n setDigits(padTo(value.split('').slice(0, length), length));\n }, [value, length]);\n\n const focusBox = useCallback((index: number) => boxRefs.current[index]?.focus(), []);\n\n const publish = useCallback(\n (next: string) => {\n onChange?.(next);\n if (next.length === length) onComplete?.(next);\n },\n [length, onChange, onComplete],\n );\n\n /** A whole code laid across the boxes from the first one. */\n const spread = useCallback(\n (text: string) => {\n const code = text.slice(0, length);\n if (!code || !isAllowed(variant, code)) return;\n setDigits(padTo(code.split(''), length));\n publish(code);\n focusBox(Math.min(code.length, length - 1));\n },\n [variant, length, publish, focusBox],\n );\n\n const handleChangeText = useCallback(\n (index: number, text: string) => {\n // The web's paste spreads a code for EVERY variant; React Native has no\n // paste event, so a code arrives as a change of the first box, read by\n // the numeric rule for `alphanumeric` too (`masked` shows a bullet, whose\n // text no longer holds the digit it hides: it keeps one character a box).\n const fill = firstSlotFill(variant === 'alphanumeric' ? 'numeric' : variant, index, text, digits[0] ?? '');\n if (fill) return fill === 'code' ? spread(codeOfFill(text, digits[0] ?? '', length)) : undefined;\n if (!isAllowed(variant, text)) return;\n const next = [...digits];\n next[index] = text.slice(-1);\n setDigits(next);\n publish(next.join(''));\n if (text && index < length - 1) focusBox(index + 1);\n },\n [variant, digits, length, publish, focusBox, spread],\n );\n\n /** Backspace in a box that is already empty steps back to the one before. */\n const handleKey = useCallback(\n (index: number, key: string) => {\n if (key === 'Backspace' && !digits[index] && index > 0) focusBox(index - 1);\n },\n [digits, focusBox],\n );\n\n return { digits, boxRefs, handleChangeText, handleKey };\n};\n","/**\n * The digits' arithmetic, shared by both renderers' hooks (`InputOTP.hooks.ts`\n * on the web, `InputOTP.hooks.native.ts` on React Native). Pure: no React, no\n * DOM, no react-native.\n */\n\n/**\n * What each variant accepts. `masked` constrains nothing — it only changes what\n * is drawn — so it has no pattern here.\n */\nexport const PATTERNS: Record<string, RegExp> = {\n numeric: /^\\d*$/,\n alphanumeric: /^[a-zA-Z0-9]*$/,\n};\n\n/** Whether `text` is something this variant will take. */\nexport const isAllowed = (variant: string, text: string) => (PATTERNS[variant] ?? /.*/).test(text);\n\n/** The digit array is always `length` long, blank-padded on the right. */\nexport const padTo = (digits: string[], length: number) =>\n Array.from({ length }, (_, i) => digits[i] ?? '');\n\n/**\n * What a change to the numeric FIRST slot is, now that its `maxLength` is the\n * code's length rather than 1 (FUT-4144).\n *\n * That slot carries `one-time-code`, and the phone's SMS fill (or a password\n * manager) writes the WHOLE code into it as one change, not a paste — kept to\n * one character, the code lost every digit but the last. So:\n *\n * - `overtype`: a keystroke into the already-filled slot (its old character\n * plus the new one). Ignored, exactly as `maxLength={1}` refused it before.\n * - `code`: anything else longer than one character, written in one go.\n * Spread across the slots like a paste.\n *\n * Every other slot and variant keeps `maxLength={1}` and never gets here.\n */\nexport function firstSlotFill(variant: string, index: number, inputValue: string, current: string) {\n if (variant !== 'numeric' || index !== 0 || inputValue.length < 2) return null;\n const overtype = inputValue.length === 2 && current !== '' && inputValue.includes(current);\n return overtype ? 'overtype' : 'code';\n}\n\n/**\n * The code inside a first-slot fill. A phone that INSERTS the SMS code at the\n * caret rather than replacing the slot leaves the digit already there in\n * front: `4` + `482913` arrives as `4482913`, which spread as-is would give\n * `448291`. Longer than the code and led by that digit: the digit is dropped.\n */\nexport const codeOfFill = (inputValue: string, current: string, length: number): string =>\n inputValue.length > length && current !== '' && inputValue.startsWith(current) ? inputValue.slice(1) : inputValue;\n","/**\n * The numbers both renderers read (see `NATIVE.md`, \"Numbers\").\n *\n * Each box's type size, in design px, per size step; its side is the theme's\n * field height for that step (a square), its weight 600.\n */\nexport const OTP_FONT_PX: Record<'xs' | 'sm' | 'md' | 'lg' | 'xl', number> = {\n xs: 12,\n sm: 14,\n md: 16,\n lg: 18,\n xl: 20,\n};\n\n/** The gap between two boxes: MUI's `gap: 1`, one 8px spacing unit. */\nexport const OTP_GAP_PX = 8;\n\n/** The border: 1px at rest, 2px focused (MUI's focused outline). */\nexport const OTP_BORDER = { rest: 1, focused: 2 } as const;\n"],"mappings":"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","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../chunk-5CUKSNWG.js";
|
|
2
2
|
import {
|
|
3
3
|
AppHeaderDetails
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-XH7UDC5Y.js";
|
|
5
5
|
import {
|
|
6
6
|
AppHeader,
|
|
7
7
|
AppHeader_default
|
|
@@ -18,19 +18,19 @@ import {
|
|
|
18
18
|
highlightOf,
|
|
19
19
|
initialsOf
|
|
20
20
|
} from "../chunk-IQU4HKND.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-XZMSRHFD.js";
|
|
22
|
+
import "../chunk-3ROCD7XF.js";
|
|
22
23
|
import "../chunk-LYVTJLCF.js";
|
|
23
24
|
import "../chunk-CRN4KKNI.js";
|
|
24
25
|
import "../chunk-OHA2PAAA.js";
|
|
25
|
-
import "../chunk-3ROCD7XF.js";
|
|
26
26
|
import "../chunk-ABZJNKR6.js";
|
|
27
27
|
import "../chunk-IM4DMKH4.js";
|
|
28
28
|
import "../chunk-MDU5Q2HW.js";
|
|
29
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-RZKKWIGQ.js";
|
|
30
|
+
import "../chunk-GYXUCS37.js";
|
|
30
31
|
import "../chunk-5UX5QAFJ.js";
|
|
31
|
-
import "../chunk-Z2JH5KW5.js";
|
|
32
32
|
import "../chunk-AL5E624U.js";
|
|
33
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-Z2JH5KW5.js";
|
|
34
34
|
import "../chunk-LV7LSPBF.js";
|
|
35
35
|
import "../chunk-YOXYSAUI.js";
|
|
36
36
|
import "../chunk-PPEHBI5O.js";
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import "../chunk-R26KYJHK.js";
|
|
2
2
|
import {
|
|
3
3
|
SectionNav
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-KJZ4PINO.js";
|
|
5
5
|
import {
|
|
6
6
|
sectionNavBarInset
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-NLJ7LL6H.js";
|
|
8
|
+
import "../chunk-K33X3PDT.js";
|
|
9
|
+
import "../chunk-AMIUZRDQ.js";
|
|
10
|
+
import "../chunk-MM3QESLI.js";
|
|
11
11
|
import {
|
|
12
12
|
RaisedActionButton
|
|
13
|
-
} from "../chunk-
|
|
14
|
-
import "../chunk-
|
|
13
|
+
} from "../chunk-L4V7FZJI.js";
|
|
14
|
+
import "../chunk-LDCZPZPD.js";
|
|
15
15
|
import "../chunk-YCCWJ5XQ.js";
|
|
16
16
|
import "../chunk-TMSWLFL4.js";
|
|
17
17
|
import "../chunk-JJTJ7DCV.js";
|
|
18
18
|
import "../chunk-PUFA7FQ7.js";
|
|
19
19
|
import "../chunk-5AK2EZG5.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-6C5D6O3D.js";
|
|
20
|
+
import "../chunk-6DO672AG.js";
|
|
22
21
|
import "../chunk-ZNCYCE7L.js";
|
|
23
22
|
import "../chunk-2L3VRVRE.js";
|
|
24
23
|
import "../chunk-BJE3XHD4.js";
|
|
24
|
+
import "../chunk-6C5D6O3D.js";
|
|
25
25
|
import "../chunk-3UIDKLML.js";
|
|
26
26
|
import "../chunk-PYC4CWCQ.js";
|
|
27
27
|
import "../chunk-VWKMN3ZZ.js";
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ColorValue, SizeValue } from '../../../tokens/vocabulary';
|
|
2
|
+
/**
|
|
3
|
+
* THE CONTRACT BOTH RENDERERS HONOUR (see `Button.base.ts`).
|
|
4
|
+
*
|
|
5
|
+
* No MUI and no react-native here: this file ships in both declaration
|
|
6
|
+
* outputs, and a native consumer has no `@mui/material` to resolve against.
|
|
7
|
+
*/
|
|
8
|
+
export interface InputOTPBaseProps {
|
|
9
|
+
/**
|
|
10
|
+
* The variant of the OTP input
|
|
11
|
+
*/
|
|
12
|
+
variant?: 'numeric' | 'alphanumeric' | 'masked';
|
|
13
|
+
/**
|
|
14
|
+
* The color theme of the OTP input
|
|
15
|
+
*/
|
|
16
|
+
color?: ColorValue;
|
|
17
|
+
/**
|
|
18
|
+
* The size of the OTP input
|
|
19
|
+
*/
|
|
20
|
+
size?: SizeValue;
|
|
21
|
+
/**
|
|
22
|
+
* Number of OTP digits
|
|
23
|
+
*/
|
|
24
|
+
length?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Current value
|
|
27
|
+
*/
|
|
28
|
+
value?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Called when value changes
|
|
31
|
+
*/
|
|
32
|
+
onChange?: (value: string) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Called when OTP is complete
|
|
35
|
+
*/
|
|
36
|
+
onComplete?: (value: string) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Whether the input should have glass morphism effect
|
|
39
|
+
*/
|
|
40
|
+
glass?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the input should have gradient effects
|
|
43
|
+
*/
|
|
44
|
+
gradient?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether to auto-focus first input
|
|
47
|
+
*/
|
|
48
|
+
autoFocus?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Error state
|
|
51
|
+
*/
|
|
52
|
+
error?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Disabled state
|
|
55
|
+
*/
|
|
56
|
+
disabled?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Test ID for automated testing
|
|
59
|
+
* Container will have this ID, and individual slots will have {dataTestId}-slot-{index}
|
|
60
|
+
*/
|
|
61
|
+
dataTestId?: string;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=InputOTP.base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputOTP.base.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/InputOTP/InputOTP.base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,QAAQ,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The digits' arithmetic, shared by both renderers' hooks (`InputOTP.hooks.ts`
|
|
3
|
+
* on the web, `InputOTP.hooks.native.ts` on React Native). Pure: no React, no
|
|
4
|
+
* DOM, no react-native.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* What each variant accepts. `masked` constrains nothing — it only changes what
|
|
8
|
+
* is drawn — so it has no pattern here.
|
|
9
|
+
*/
|
|
10
|
+
export declare const PATTERNS: Record<string, RegExp>;
|
|
11
|
+
/** Whether `text` is something this variant will take. */
|
|
12
|
+
export declare const isAllowed: (variant: string, text: string) => boolean;
|
|
13
|
+
/** The digit array is always `length` long, blank-padded on the right. */
|
|
14
|
+
export declare const padTo: (digits: string[], length: number) => string[];
|
|
15
|
+
/**
|
|
16
|
+
* What a change to the numeric FIRST slot is, now that its `maxLength` is the
|
|
17
|
+
* code's length rather than 1 (FUT-4144).
|
|
18
|
+
*
|
|
19
|
+
* That slot carries `one-time-code`, and the phone's SMS fill (or a password
|
|
20
|
+
* manager) writes the WHOLE code into it as one change, not a paste — kept to
|
|
21
|
+
* one character, the code lost every digit but the last. So:
|
|
22
|
+
*
|
|
23
|
+
* - `overtype`: a keystroke into the already-filled slot (its old character
|
|
24
|
+
* plus the new one). Ignored, exactly as `maxLength={1}` refused it before.
|
|
25
|
+
* - `code`: anything else longer than one character, written in one go.
|
|
26
|
+
* Spread across the slots like a paste.
|
|
27
|
+
*
|
|
28
|
+
* Every other slot and variant keeps `maxLength={1}` and never gets here.
|
|
29
|
+
*/
|
|
30
|
+
export declare function firstSlotFill(variant: string, index: number, inputValue: string, current: string): "code" | "overtype" | null;
|
|
31
|
+
/**
|
|
32
|
+
* The code inside a first-slot fill. A phone that INSERTS the SMS code at the
|
|
33
|
+
* caret rather than replacing the slot leaves the digit already there in
|
|
34
|
+
* front: `4` + `482913` arrives as `4482913`, which spread as-is would give
|
|
35
|
+
* `448291`. Longer than the code and led by that digit: the digit is dropped.
|
|
36
|
+
*/
|
|
37
|
+
export declare const codeOfFill: (inputValue: string, current: string, length: number) => string;
|
|
38
|
+
//# sourceMappingURL=InputOTP.core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputOTP.core.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/InputOTP/InputOTP.core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG3C,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,YAA2C,CAAC;AAEnG,0EAA0E;AAC1E,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,EAAE,EAAE,QAAQ,MAAM,aACH,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,8BAIhG;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,YAAY,MAAM,EAAE,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,MACkC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
export declare const InputOTP: React.ForwardRefExoticComponent<InputOTPProps & React.RefAttributes<HTMLDivElement>>;
|
|
2
|
+
export declare const InputOTP: React.ForwardRefExoticComponent<import("./InputOTP.base").InputOTPBaseProps & React.RefAttributes<HTMLDivElement>>;
|
|
4
3
|
//# sourceMappingURL=InputOTP.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputOTP.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/InputOTP/InputOTP.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"InputOTP.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/InputOTP/InputOTP.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAgE1C,eAAO,MAAM,QAAQ,oHAsDnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputOTP.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/InputOTP/InputOTP.hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InputOTP.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/InputOTP/InputOTP.hooks.ts"],"names":[],"mappings":"AAIA,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,kDAAkD,QAAQ;;;+BAqC3E,MAAM,cAAc,MAAM;2BAkB1B,MAAM,KAAK,KAAK,CAAC,aAAa;qBAelC,KAAK,CAAC,cAAc;CAQ3B,CAAC"}
|