tempest-react-sdk 0.78.0 → 0.80.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/README.md +6 -6
- package/bin/lib/openapi/generate.hostile.test.mjs +45 -4
- package/bin/lib/openapi/generate.mjs +303 -88
- package/bin/lib/openapi/generate.pagination.test.mjs +3 -2
- package/bin/lib/openapi/generate.test.mjs +462 -1
- package/bin/lib/openapi/schema-to-zod.mjs +4 -3
- package/dist/access/Can.cjs.map +1 -1
- package/dist/access/Can.js.map +1 -1
- package/dist/access/access-control-context.cjs.map +1 -1
- package/dist/access/access-control-context.js.map +1 -1
- package/dist/access/create-role-access-control.cjs.map +1 -1
- package/dist/access/create-role-access-control.js.map +1 -1
- package/dist/access/permissions-from-token.cjs.map +1 -1
- package/dist/access/permissions-from-token.js.map +1 -1
- package/dist/access/use-can.cjs.map +1 -1
- package/dist/access/use-can.js.map +1 -1
- package/dist/app/AppProviders.cjs.map +1 -1
- package/dist/app/AppProviders.js.map +1 -1
- package/dist/audio/audio-bus.cjs.map +1 -1
- package/dist/audio/audio-bus.js.map +1 -1
- package/dist/audio/audio-output.cjs.map +1 -1
- package/dist/audio/audio-output.js.map +1 -1
- package/dist/audio/audio-player.cjs.map +1 -1
- package/dist/audio/audio-player.js.map +1 -1
- package/dist/audio/audio-recorder.cjs.map +1 -1
- package/dist/audio/audio-recorder.js.map +1 -1
- package/dist/audio/duration.cjs.map +1 -1
- package/dist/audio/duration.js.map +1 -1
- package/dist/audio/level-meter.cjs.map +1 -1
- package/dist/audio/level-meter.js.map +1 -1
- package/dist/audio/media-access.cjs.map +1 -1
- package/dist/audio/media-access.js.map +1 -1
- package/dist/audio/noise-floor.cjs.map +1 -1
- package/dist/audio/noise-floor.js.map +1 -1
- package/dist/audio/sfx-pool.cjs.map +1 -1
- package/dist/audio/sfx-pool.js.map +1 -1
- package/dist/audio/use-audio-bus.cjs.map +1 -1
- package/dist/audio/use-audio-bus.js.map +1 -1
- package/dist/audio/use-audio-recorder.cjs.map +1 -1
- package/dist/audio/use-audio-recorder.js.map +1 -1
- package/dist/audio/use-audio.cjs.map +1 -1
- package/dist/audio/use-audio.js.map +1 -1
- package/dist/audio/use-microphone.cjs +1 -1
- package/dist/audio/use-microphone.cjs.map +1 -1
- package/dist/audio/use-microphone.js +1 -5
- package/dist/audio/use-microphone.js.map +1 -1
- package/dist/audio/use-sfx-pool.cjs.map +1 -1
- package/dist/audio/use-sfx-pool.js.map +1 -1
- package/dist/audio/voice-activity.cjs.map +1 -1
- package/dist/audio/voice-activity.js.map +1 -1
- package/dist/audio/voice-chain-stages.cjs.map +1 -1
- package/dist/audio/voice-chain-stages.js.map +1 -1
- package/dist/audio/voice-chain.cjs.map +1 -1
- package/dist/audio/voice-chain.js.map +1 -1
- package/dist/audio/wav.cjs.map +1 -1
- package/dist/audio/wav.js.map +1 -1
- package/dist/auth/AuthGuard.cjs.map +1 -1
- package/dist/auth/AuthGuard.js.map +1 -1
- package/dist/auth/create-auth-store.cjs.map +1 -1
- package/dist/auth/create-auth-store.js.map +1 -1
- package/dist/auth/create-tempest-auth.cjs +1 -1
- package/dist/auth/create-tempest-auth.cjs.map +1 -1
- package/dist/auth/create-tempest-auth.js +1 -3
- package/dist/auth/create-tempest-auth.js.map +1 -1
- package/dist/auth/jwt.cjs.map +1 -1
- package/dist/auth/jwt.js.map +1 -1
- package/dist/auth/lazy-with-retry.cjs.map +1 -1
- package/dist/auth/lazy-with-retry.js.map +1 -1
- package/dist/auth/passkey.cjs.map +1 -1
- package/dist/auth/passkey.js.map +1 -1
- package/dist/auth/refresh-queue.cjs.map +1 -1
- package/dist/auth/refresh-queue.js.map +1 -1
- package/dist/auth/use-passkey.cjs +1 -1
- package/dist/auth/use-passkey.cjs.map +1 -1
- package/dist/auth/use-passkey.js +1 -1
- package/dist/auth/use-passkey.js.map +1 -1
- package/dist/br/BrazilMap.cjs.map +1 -1
- package/dist/br/BrazilMap.js.map +1 -1
- package/dist/br/BrazilMap.module.cjs.map +1 -1
- package/dist/br/BrazilMap.module.js.map +1 -1
- package/dist/br/BrazilStateCitySelect.cjs.map +1 -1
- package/dist/br/BrazilStateCitySelect.js.map +1 -1
- package/dist/br/BrazilStateMap.cjs.map +1 -1
- package/dist/br/BrazilStateMap.js.map +1 -1
- package/dist/br/MapLegend.cjs.map +1 -1
- package/dist/br/MapLegend.js.map +1 -1
- package/dist/br/MapLegend.module.cjs.map +1 -1
- package/dist/br/MapLegend.module.js.map +1 -1
- package/dist/br/MapMarkers.cjs.map +1 -1
- package/dist/br/MapMarkers.js.map +1 -1
- package/dist/br/MapTooltip.cjs.map +1 -1
- package/dist/br/MapTooltip.js.map +1 -1
- package/dist/br/MunicipalitySearch.cjs +1 -1
- package/dist/br/MunicipalitySearch.cjs.map +1 -1
- package/dist/br/MunicipalitySearch.js +2 -5
- package/dist/br/MunicipalitySearch.js.map +1 -1
- package/dist/br/MunicipalitySearch.module.cjs.map +1 -1
- package/dist/br/MunicipalitySearch.module.js.map +1 -1
- package/dist/br/PixQRCode.cjs.map +1 -1
- package/dist/br/PixQRCode.js.map +1 -1
- package/dist/br/PixQRCode.module.cjs.map +1 -1
- package/dist/br/PixQRCode.module.js.map +1 -1
- package/dist/br/boleto.cjs.map +1 -1
- package/dist/br/boleto.js.map +1 -1
- package/dist/br/br-geo.cjs.map +1 -1
- package/dist/br/br-geo.js.map +1 -1
- package/dist/br/data/br-centroids.cjs.map +1 -1
- package/dist/br/data/br-centroids.js.map +1 -1
- package/dist/br/data/br-locations.cjs.map +1 -1
- package/dist/br/data/br-locations.js.map +1 -1
- package/dist/br/data/br-uf-geo.cjs.map +1 -1
- package/dist/br/data/br-uf-geo.js.map +1 -1
- package/dist/br/data/mun/AC.cjs.map +1 -1
- package/dist/br/data/mun/AC.js.map +1 -1
- package/dist/br/data/mun/AL.cjs.map +1 -1
- package/dist/br/data/mun/AL.js.map +1 -1
- package/dist/br/data/mun/AM.cjs.map +1 -1
- package/dist/br/data/mun/AM.js.map +1 -1
- package/dist/br/data/mun/AP.cjs.map +1 -1
- package/dist/br/data/mun/AP.js.map +1 -1
- package/dist/br/data/mun/BA.cjs.map +1 -1
- package/dist/br/data/mun/BA.js.map +1 -1
- package/dist/br/data/mun/CE.cjs.map +1 -1
- package/dist/br/data/mun/CE.js.map +1 -1
- package/dist/br/data/mun/DF.cjs.map +1 -1
- package/dist/br/data/mun/DF.js.map +1 -1
- package/dist/br/data/mun/ES.cjs.map +1 -1
- package/dist/br/data/mun/ES.js.map +1 -1
- package/dist/br/data/mun/GO.cjs.map +1 -1
- package/dist/br/data/mun/GO.js.map +1 -1
- package/dist/br/data/mun/MA.cjs.map +1 -1
- package/dist/br/data/mun/MA.js.map +1 -1
- package/dist/br/data/mun/MG.cjs.map +1 -1
- package/dist/br/data/mun/MG.js.map +1 -1
- package/dist/br/data/mun/MS.cjs.map +1 -1
- package/dist/br/data/mun/MS.js.map +1 -1
- package/dist/br/data/mun/MT.cjs.map +1 -1
- package/dist/br/data/mun/MT.js.map +1 -1
- package/dist/br/data/mun/PA.cjs.map +1 -1
- package/dist/br/data/mun/PA.js.map +1 -1
- package/dist/br/data/mun/PB.cjs.map +1 -1
- package/dist/br/data/mun/PB.js.map +1 -1
- package/dist/br/data/mun/PE.cjs.map +1 -1
- package/dist/br/data/mun/PE.js.map +1 -1
- package/dist/br/data/mun/PI.cjs.map +1 -1
- package/dist/br/data/mun/PI.js.map +1 -1
- package/dist/br/data/mun/PR.cjs.map +1 -1
- package/dist/br/data/mun/PR.js.map +1 -1
- package/dist/br/data/mun/RJ.cjs.map +1 -1
- package/dist/br/data/mun/RJ.js.map +1 -1
- package/dist/br/data/mun/RN.cjs.map +1 -1
- package/dist/br/data/mun/RN.js.map +1 -1
- package/dist/br/data/mun/RO.cjs.map +1 -1
- package/dist/br/data/mun/RO.js.map +1 -1
- package/dist/br/data/mun/RR.cjs.map +1 -1
- package/dist/br/data/mun/RR.js.map +1 -1
- package/dist/br/data/mun/RS.cjs.map +1 -1
- package/dist/br/data/mun/RS.js.map +1 -1
- package/dist/br/data/mun/SC.cjs.map +1 -1
- package/dist/br/data/mun/SC.js.map +1 -1
- package/dist/br/data/mun/SE.cjs.map +1 -1
- package/dist/br/data/mun/SE.js.map +1 -1
- package/dist/br/data/mun/SP.cjs.map +1 -1
- package/dist/br/data/mun/SP.js.map +1 -1
- package/dist/br/data/mun/TO.cjs.map +1 -1
- package/dist/br/data/mun/TO.js.map +1 -1
- package/dist/br/geocode.cjs.map +1 -1
- package/dist/br/geocode.js.map +1 -1
- package/dist/br/holidays.cjs.map +1 -1
- package/dist/br/holidays.js.map +1 -1
- package/dist/br/locations.cjs.map +1 -1
- package/dist/br/locations.js.map +1 -1
- package/dist/br/nfe.cjs.map +1 -1
- package/dist/br/nfe.js.map +1 -1
- package/dist/br/pix.cjs +1 -1
- package/dist/br/pix.cjs.map +1 -1
- package/dist/br/pix.js +108 -74
- package/dist/br/pix.js.map +1 -1
- package/dist/br/regions.cjs.map +1 -1
- package/dist/br/regions.js.map +1 -1
- package/dist/br/scales.cjs.map +1 -1
- package/dist/br/scales.js.map +1 -1
- package/dist/br/state-geo.cjs.map +1 -1
- package/dist/br/state-geo.js.map +1 -1
- package/dist/br/svg-utils.cjs.map +1 -1
- package/dist/br/svg-utils.js.map +1 -1
- package/dist/br/use-map-hover.cjs.map +1 -1
- package/dist/br/use-map-hover.js.map +1 -1
- package/dist/br/use-map-zoom.cjs.map +1 -1
- package/dist/br/use-map-zoom.js.map +1 -1
- package/dist/br/whatsapp.cjs.map +1 -1
- package/dist/br/whatsapp.js.map +1 -1
- package/dist/br.cjs.map +1 -1
- package/dist/br.d.ts +6 -2
- package/dist/br.js.map +1 -1
- package/dist/capture/barcode.cjs.map +1 -1
- package/dist/capture/barcode.js.map +1 -1
- package/dist/capture/media-recorder.cjs.map +1 -1
- package/dist/capture/media-recorder.js.map +1 -1
- package/dist/capture/use-barcode-scanner.cjs.map +1 -1
- package/dist/capture/use-barcode-scanner.js.map +1 -1
- package/dist/capture/use-screen-capture.cjs +1 -1
- package/dist/capture/use-screen-capture.cjs.map +1 -1
- package/dist/capture/use-screen-capture.js +1 -7
- package/dist/capture/use-screen-capture.js.map +1 -1
- package/dist/capture/use-speech-recognition.cjs +1 -1
- package/dist/capture/use-speech-recognition.cjs.map +1 -1
- package/dist/capture/use-speech-recognition.js +35 -36
- package/dist/capture/use-speech-recognition.js.map +1 -1
- package/dist/capture/use-torch.cjs.map +1 -1
- package/dist/capture/use-torch.js.map +1 -1
- package/dist/capture/use-video-recorder.cjs.map +1 -1
- package/dist/capture/use-video-recorder.js.map +1 -1
- package/dist/capture/video-recorder.cjs.map +1 -1
- package/dist/capture/video-recorder.js.map +1 -1
- package/dist/charts/AreaChart.cjs.map +1 -1
- package/dist/charts/AreaChart.js.map +1 -1
- package/dist/charts/BarChart.cjs.map +1 -1
- package/dist/charts/BarChart.js.map +1 -1
- package/dist/charts/LineChart.cjs.map +1 -1
- package/dist/charts/LineChart.js.map +1 -1
- package/dist/charts/PieChart.cjs.map +1 -1
- package/dist/charts/PieChart.js.map +1 -1
- package/dist/charts/RadarChart.cjs.map +1 -1
- package/dist/charts/RadarChart.js.map +1 -1
- package/dist/charts/palette.cjs.map +1 -1
- package/dist/charts/palette.js.map +1 -1
- package/dist/charts/scales.cjs.map +1 -1
- package/dist/charts/scales.js.map +1 -1
- package/dist/charts/types.cjs.map +1 -1
- package/dist/charts/types.js.map +1 -1
- package/dist/charts/use-chart-colors.cjs.map +1 -1
- package/dist/charts/use-chart-colors.js.map +1 -1
- package/dist/components/AIChat/AIChat.cjs +1 -1
- package/dist/components/AIChat/AIChat.cjs.map +1 -1
- package/dist/components/AIChat/AIChat.js +1 -5
- package/dist/components/AIChat/AIChat.js.map +1 -1
- package/dist/components/AIChat/AIChat.module.cjs.map +1 -1
- package/dist/components/AIChat/AIChat.module.js.map +1 -1
- package/dist/components/AIChat/AIChatComposer.cjs +1 -1
- package/dist/components/AIChat/AIChatComposer.cjs.map +1 -1
- package/dist/components/AIChat/AIChatComposer.js +1 -7
- package/dist/components/AIChat/AIChatComposer.js.map +1 -1
- package/dist/components/AIChat/AIChatTurn.cjs.map +1 -1
- package/dist/components/AIChat/AIChatTurn.js.map +1 -1
- package/dist/components/AIChat/ai-chat-turns.cjs.map +1 -1
- package/dist/components/AIChat/ai-chat-turns.js.map +1 -1
- package/dist/components/Accordion/Accordion.cjs.map +1 -1
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/Accordion.module.cjs.map +1 -1
- package/dist/components/Accordion/Accordion.module.js.map +1 -1
- package/dist/components/Alert/Alert.cjs.map +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Alert/Alert.module.cjs.map +1 -1
- package/dist/components/Alert/Alert.module.js.map +1 -1
- package/dist/components/AppBar/AppBar.cjs.map +1 -1
- package/dist/components/AppBar/AppBar.js.map +1 -1
- package/dist/components/AppBar/AppBar.module.cjs.map +1 -1
- package/dist/components/AppBar/AppBar.module.js.map +1 -1
- package/dist/components/AppBar/use-sticky-body-warning.cjs +1 -1
- package/dist/components/AppBar/use-sticky-body-warning.cjs.map +1 -1
- package/dist/components/AppBar/use-sticky-body-warning.js +1 -1
- package/dist/components/AppBar/use-sticky-body-warning.js.map +1 -1
- package/dist/components/AppShell/AppShell.cjs.map +1 -1
- package/dist/components/AppShell/AppShell.js.map +1 -1
- package/dist/components/AppShell/AppShell.module.cjs.map +1 -1
- package/dist/components/AppShell/AppShell.module.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.cjs.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.module.cjs.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.module.js.map +1 -1
- package/dist/components/AudioPlayer/AudioPlayer.cjs +1 -1
- package/dist/components/AudioPlayer/AudioPlayer.cjs.map +1 -1
- package/dist/components/AudioPlayer/AudioPlayer.js +1 -7
- package/dist/components/AudioPlayer/AudioPlayer.js.map +1 -1
- package/dist/components/AudioPlayer/AudioPlayer.module.cjs.map +1 -1
- package/dist/components/AudioPlayer/AudioPlayer.module.js.map +1 -1
- package/dist/components/AudioRecorder/AudioRecorder.cjs +1 -1
- package/dist/components/AudioRecorder/AudioRecorder.cjs.map +1 -1
- package/dist/components/AudioRecorder/AudioRecorder.js +16 -21
- package/dist/components/AudioRecorder/AudioRecorder.js.map +1 -1
- package/dist/components/AudioRecorder/AudioRecorder.module.cjs.map +1 -1
- package/dist/components/AudioRecorder/AudioRecorder.module.js.map +1 -1
- package/dist/components/Avatar/Avatar.cjs.map +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/Avatar.module.cjs.map +1 -1
- package/dist/components/Avatar/Avatar.module.js.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.cjs.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.module.cjs.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.module.js.map +1 -1
- package/dist/components/Badge/Badge.cjs.map +1 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Badge/Badge.module.cjs.map +1 -1
- package/dist/components/Badge/Badge.module.js.map +1 -1
- package/dist/components/Banner/Banner.cjs.map +1 -1
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Banner/Banner.module.cjs.map +1 -1
- package/dist/components/Banner/Banner.module.js.map +1 -1
- package/dist/components/BarList/BarList.cjs.map +1 -1
- package/dist/components/BarList/BarList.js.map +1 -1
- package/dist/components/BarList/BarList.module.cjs.map +1 -1
- package/dist/components/BarList/BarList.module.js.map +1 -1
- package/dist/components/BarList/bar-list-model.cjs.map +1 -1
- package/dist/components/BarList/bar-list-model.js.map +1 -1
- package/dist/components/BarcodeScanner/BarcodeScanner.cjs.map +1 -1
- package/dist/components/BarcodeScanner/BarcodeScanner.js.map +1 -1
- package/dist/components/BarcodeScanner/BarcodeScanner.module.cjs.map +1 -1
- package/dist/components/BarcodeScanner/BarcodeScanner.module.js.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.cjs.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.js.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.module.cjs.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.module.js.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.module.cjs.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.module.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.module.cjs.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.module.js.map +1 -1
- package/dist/components/Button/Button.cjs.map +1 -1
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Button/Button.module.cjs.map +1 -1
- package/dist/components/Button/Button.module.js.map +1 -1
- package/dist/components/Button/ButtonContent.cjs.map +1 -1
- package/dist/components/Button/ButtonContent.js.map +1 -1
- package/dist/components/Button/ButtonSlot.cjs.map +1 -1
- package/dist/components/Button/ButtonSlot.js.map +1 -1
- package/dist/components/Button/button-class.cjs.map +1 -1
- package/dist/components/Button/button-class.js.map +1 -1
- package/dist/components/Button/link-rel.cjs.map +1 -1
- package/dist/components/Button/link-rel.js.map +1 -1
- package/dist/components/Button/slot.cjs.map +1 -1
- package/dist/components/Button/slot.js.map +1 -1
- package/dist/components/Calendar/Calendar.cjs.map +1 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/Calendar/Calendar.module.cjs.map +1 -1
- package/dist/components/Calendar/Calendar.module.js.map +1 -1
- package/dist/components/Card/Card.cjs.map +1 -1
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Card/Card.module.cjs.map +1 -1
- package/dist/components/Card/Card.module.js.map +1 -1
- package/dist/components/Carousel/Carousel.cjs.map +1 -1
- package/dist/components/Carousel/Carousel.js.map +1 -1
- package/dist/components/Carousel/Carousel.module.cjs.map +1 -1
- package/dist/components/Carousel/Carousel.module.js.map +1 -1
- package/dist/components/Center/Center.cjs.map +1 -1
- package/dist/components/Center/Center.js.map +1 -1
- package/dist/components/Center/Center.module.cjs.map +1 -1
- package/dist/components/Center/Center.module.js.map +1 -1
- package/dist/components/Chat/Chat.cjs.map +1 -1
- package/dist/components/Chat/Chat.js.map +1 -1
- package/dist/components/Chat/Chat.module.cjs.map +1 -1
- package/dist/components/Chat/Chat.module.js.map +1 -1
- package/dist/components/Chat/ChatActionsMenu.cjs.map +1 -1
- package/dist/components/Chat/ChatActionsMenu.js.map +1 -1
- package/dist/components/Chat/ChatAttachments.cjs.map +1 -1
- package/dist/components/Chat/ChatAttachments.js.map +1 -1
- package/dist/components/Chat/ChatBubble.cjs.map +1 -1
- package/dist/components/Chat/ChatBubble.js.map +1 -1
- package/dist/components/Chat/ChatComposer.cjs.map +1 -1
- package/dist/components/Chat/ChatComposer.js.map +1 -1
- package/dist/components/Chat/chat-groups.cjs +1 -1
- package/dist/components/Chat/chat-groups.cjs.map +1 -1
- package/dist/components/Chat/chat-groups.js +2 -6
- package/dist/components/Chat/chat-groups.js.map +1 -1
- package/dist/components/Chat/chat-receipt.cjs.map +1 -1
- package/dist/components/Chat/chat-receipt.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.cjs.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.js.map +1 -1
- package/dist/components/ChipInput/ChipInput.cjs +1 -1
- package/dist/components/ChipInput/ChipInput.cjs.map +1 -1
- package/dist/components/ChipInput/ChipInput.js +2 -12
- package/dist/components/ChipInput/ChipInput.js.map +1 -1
- package/dist/components/ChipInput/ChipInput.module.cjs.map +1 -1
- package/dist/components/ChipInput/ChipInput.module.js.map +1 -1
- package/dist/components/ClickOutside/ClickOutside.cjs.map +1 -1
- package/dist/components/ClickOutside/ClickOutside.js.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.cjs.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.js.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.cjs.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.js.map +1 -1
- package/dist/components/CodeBlock/tokenize.cjs.map +1 -1
- package/dist/components/CodeBlock/tokenize.js.map +1 -1
- package/dist/components/Collapsible/Collapsible.cjs.map +1 -1
- package/dist/components/Collapsible/Collapsible.js.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.cjs.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.js.map +1 -1
- package/dist/components/Combobox/Combobox.cjs.map +1 -1
- package/dist/components/Combobox/Combobox.js.map +1 -1
- package/dist/components/Combobox/Combobox.module.cjs.map +1 -1
- package/dist/components/Combobox/Combobox.module.js.map +1 -1
- package/dist/components/Combobox/use-listbox-dismiss.cjs.map +1 -1
- package/dist/components/Combobox/use-listbox-dismiss.js.map +1 -1
- package/dist/components/Command/Command.cjs +1 -1
- package/dist/components/Command/Command.cjs.map +1 -1
- package/dist/components/Command/Command.js +4 -11
- package/dist/components/Command/Command.js.map +1 -1
- package/dist/components/Command/Command.module.cjs.map +1 -1
- package/dist/components/Command/Command.module.js.map +1 -1
- package/dist/components/ConditionalWrapper/ConditionalWrapper.cjs.map +1 -1
- package/dist/components/ConditionalWrapper/ConditionalWrapper.js.map +1 -1
- package/dist/components/ConfirmDialog/ConfirmDialog.cjs.map +1 -1
- package/dist/components/ConfirmDialog/ConfirmDialog.js.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.cjs +1 -1
- package/dist/components/ContextMenu/ContextMenu.cjs.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.js +1 -1
- package/dist/components/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.module.cjs.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.module.js.map +1 -1
- package/dist/components/CopyButton/CopyButton.cjs.map +1 -1
- package/dist/components/CopyButton/CopyButton.js.map +1 -1
- package/dist/components/CopyButton/CopyButton.module.cjs.map +1 -1
- package/dist/components/CopyButton/CopyButton.module.js.map +1 -1
- package/dist/components/DataList/DataList.cjs.map +1 -1
- package/dist/components/DataList/DataList.js.map +1 -1
- package/dist/components/DataList/DataList.module.cjs.map +1 -1
- package/dist/components/DataList/DataList.module.js.map +1 -1
- package/dist/components/DataTable/DataTable.cjs +1 -1
- package/dist/components/DataTable/DataTable.cjs.map +1 -1
- package/dist/components/DataTable/DataTable.js +6 -14
- package/dist/components/DataTable/DataTable.js.map +1 -1
- package/dist/components/DataTable/DataTable.module.cjs.map +1 -1
- package/dist/components/DataTable/DataTable.module.js.map +1 -1
- package/dist/components/DataTable/EditableCell.cjs +1 -1
- package/dist/components/DataTable/EditableCell.cjs.map +1 -1
- package/dist/components/DataTable/EditableCell.js +1 -9
- package/dist/components/DataTable/EditableCell.js.map +1 -1
- package/dist/components/DataTable/LoadingRows.cjs.map +1 -1
- package/dist/components/DataTable/LoadingRows.js.map +1 -1
- package/dist/components/DataTable/edit-labels.cjs.map +1 -1
- package/dist/components/DataTable/edit-labels.js.map +1 -1
- package/dist/components/DataTable/use-dev-warnings.cjs.map +1 -1
- package/dist/components/DataTable/use-dev-warnings.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.cjs.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.module.cjs.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.module.js.map +1 -1
- package/dist/components/DescriptionList/DescriptionList.cjs.map +1 -1
- package/dist/components/DescriptionList/DescriptionList.js.map +1 -1
- package/dist/components/DescriptionList/DescriptionList.module.cjs.map +1 -1
- package/dist/components/DescriptionList/DescriptionList.module.js.map +1 -1
- package/dist/components/Divider/Divider.cjs.map +1 -1
- package/dist/components/Divider/Divider.js.map +1 -1
- package/dist/components/Divider/Divider.module.cjs.map +1 -1
- package/dist/components/Divider/Divider.module.js.map +1 -1
- package/dist/components/Drawer/Drawer.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/Drawer/Drawer.module.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.module.js.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.cjs +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.js +2 -14
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.module.cjs.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.module.js.map +1 -1
- package/dist/components/Dropzone/Dropzone.cjs.map +1 -1
- package/dist/components/Dropzone/Dropzone.js.map +1 -1
- package/dist/components/Dropzone/Dropzone.module.cjs.map +1 -1
- package/dist/components/Dropzone/Dropzone.module.js.map +1 -1
- package/dist/components/EmptyState/EmptyState.cjs.map +1 -1
- package/dist/components/EmptyState/EmptyState.js.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.cjs.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.js.map +1 -1
- package/dist/components/ErrorState/ErrorState.cjs.map +1 -1
- package/dist/components/ErrorState/ErrorState.js.map +1 -1
- package/dist/components/ErrorState/ErrorState.module.cjs.map +1 -1
- package/dist/components/ErrorState/ErrorState.module.js.map +1 -1
- package/dist/components/ErrorText/ErrorText.cjs.map +1 -1
- package/dist/components/ErrorText/ErrorText.js.map +1 -1
- package/dist/components/ErrorText/ErrorText.module.cjs.map +1 -1
- package/dist/components/ErrorText/ErrorText.module.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.cjs +1 -1
- package/dist/components/FileUpload/FileUpload.cjs.map +1 -1
- package/dist/components/FileUpload/FileUpload.js +7 -17
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.module.cjs.map +1 -1
- package/dist/components/FileUpload/FileUpload.module.js.map +1 -1
- package/dist/components/FilterBar/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar/FilterBar.js.map +1 -1
- package/dist/components/FilterBar/FilterBar.module.cjs.map +1 -1
- package/dist/components/FilterBar/FilterBar.module.js.map +1 -1
- package/dist/components/FilterBar/filter-apply.cjs.map +1 -1
- package/dist/components/FilterBar/filter-apply.js.map +1 -1
- package/dist/components/FilterBar/filter-model.cjs.map +1 -1
- package/dist/components/FilterBar/filter-model.js.map +1 -1
- package/dist/components/FilterBar/filter-query.cjs +1 -1
- package/dist/components/FilterBar/filter-query.cjs.map +1 -1
- package/dist/components/FilterBar/filter-query.js +2 -5
- package/dist/components/FilterBar/filter-query.js.map +1 -1
- package/dist/components/FilterPanel/FilterPanel.cjs.map +1 -1
- package/dist/components/FilterPanel/FilterPanel.js.map +1 -1
- package/dist/components/FilterPanel/FilterPanel.module.cjs.map +1 -1
- package/dist/components/FilterPanel/FilterPanel.module.js.map +1 -1
- package/dist/components/FloatingActionButton/FloatingActionButton.cjs.map +1 -1
- package/dist/components/FloatingActionButton/FloatingActionButton.js.map +1 -1
- package/dist/components/FloatingActionButton/FloatingActionButton.module.cjs.map +1 -1
- package/dist/components/FloatingActionButton/FloatingActionButton.module.js.map +1 -1
- package/dist/components/For/For.cjs.map +1 -1
- package/dist/components/For/For.js.map +1 -1
- package/dist/components/Form/Form.cjs.map +1 -1
- package/dist/components/Form/Form.js.map +1 -1
- package/dist/components/Form/Form.module.cjs.map +1 -1
- package/dist/components/Form/Form.module.js.map +1 -1
- package/dist/components/HoverCard/HoverCard.cjs.map +1 -1
- package/dist/components/HoverCard/HoverCard.js.map +1 -1
- package/dist/components/HoverCard/HoverCard.module.cjs.map +1 -1
- package/dist/components/HoverCard/HoverCard.module.js.map +1 -1
- package/dist/components/Image/Image.cjs.map +1 -1
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/Image/Image.module.cjs.map +1 -1
- package/dist/components/Image/Image.module.js.map +1 -1
- package/dist/components/ImageCropper/ImageCropper.cjs +1 -1
- package/dist/components/ImageCropper/ImageCropper.cjs.map +1 -1
- package/dist/components/ImageCropper/ImageCropper.js +4 -8
- package/dist/components/ImageCropper/ImageCropper.js.map +1 -1
- package/dist/components/ImageCropper/ImageCropper.module.cjs.map +1 -1
- package/dist/components/ImageCropper/ImageCropper.module.js.map +1 -1
- package/dist/components/ImageCropper/crop-geometry.cjs.map +1 -1
- package/dist/components/ImageCropper/crop-geometry.js.map +1 -1
- package/dist/components/Input/Input.cjs.map +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Input/Input.module.cjs.map +1 -1
- package/dist/components/Input/Input.module.js.map +1 -1
- package/dist/components/InstallBanner/InstallBanner.cjs.map +1 -1
- package/dist/components/InstallBanner/InstallBanner.js.map +1 -1
- package/dist/components/InstallBanner/InstallBanner.module.cjs.map +1 -1
- package/dist/components/InstallBanner/InstallBanner.module.js.map +1 -1
- package/dist/components/InstallButton/InstallButton.cjs.map +1 -1
- package/dist/components/InstallButton/InstallButton.js.map +1 -1
- package/dist/components/InstallButton/InstallButton.module.cjs.map +1 -1
- package/dist/components/InstallButton/InstallButton.module.js.map +1 -1
- package/dist/components/InstallButton/install-hints.cjs.map +1 -1
- package/dist/components/InstallButton/install-hints.js.map +1 -1
- package/dist/components/Kanban/Kanban.cjs.map +1 -1
- package/dist/components/Kanban/Kanban.js.map +1 -1
- package/dist/components/Kanban/Kanban.module.cjs.map +1 -1
- package/dist/components/Kanban/Kanban.module.js.map +1 -1
- package/dist/components/Kbd/Kbd.cjs.map +1 -1
- package/dist/components/Kbd/Kbd.js.map +1 -1
- package/dist/components/Kbd/Kbd.module.cjs.map +1 -1
- package/dist/components/Kbd/Kbd.module.js.map +1 -1
- package/dist/components/Label/Label.cjs.map +1 -1
- package/dist/components/Label/Label.js.map +1 -1
- package/dist/components/Label/Label.module.cjs.map +1 -1
- package/dist/components/Label/Label.module.js.map +1 -1
- package/dist/components/Layout/Layout.cjs.map +1 -1
- package/dist/components/Layout/Layout.js.map +1 -1
- package/dist/components/Layout/Layout.module.cjs.map +1 -1
- package/dist/components/Layout/Layout.module.js.map +1 -1
- package/dist/components/Lightbox/Lightbox.cjs +1 -1
- package/dist/components/Lightbox/Lightbox.cjs.map +1 -1
- package/dist/components/Lightbox/Lightbox.js +1 -1
- package/dist/components/Lightbox/Lightbox.js.map +1 -1
- package/dist/components/Lightbox/Lightbox.module.cjs.map +1 -1
- package/dist/components/Lightbox/Lightbox.module.js.map +1 -1
- package/dist/components/ListTile/ListTile.cjs.map +1 -1
- package/dist/components/ListTile/ListTile.js.map +1 -1
- package/dist/components/ListTile/ListTile.module.cjs.map +1 -1
- package/dist/components/ListTile/ListTile.module.js.map +1 -1
- package/dist/components/Markdown/Markdown.cjs.map +1 -1
- package/dist/components/Markdown/Markdown.js.map +1 -1
- package/dist/components/Markdown/Markdown.module.cjs.map +1 -1
- package/dist/components/Markdown/Markdown.module.js.map +1 -1
- package/dist/components/Markdown/markdown-parse.cjs +2 -2
- package/dist/components/Markdown/markdown-parse.cjs.map +1 -1
- package/dist/components/Markdown/markdown-parse.js +8 -27
- package/dist/components/Markdown/markdown-parse.js.map +1 -1
- package/dist/components/Masonry/Masonry.cjs.map +1 -1
- package/dist/components/Masonry/Masonry.js.map +1 -1
- package/dist/components/Masonry/Masonry.module.cjs.map +1 -1
- package/dist/components/Masonry/Masonry.module.js.map +1 -1
- package/dist/components/Masonry/masonry-layout.cjs.map +1 -1
- package/dist/components/Masonry/masonry-layout.js.map +1 -1
- package/dist/components/Menubar/Menubar.cjs.map +1 -1
- package/dist/components/Menubar/Menubar.js.map +1 -1
- package/dist/components/Menubar/Menubar.module.cjs.map +1 -1
- package/dist/components/Menubar/Menubar.module.js.map +1 -1
- package/dist/components/Modal/Modal.cjs.map +1 -1
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/Modal.module.cjs.map +1 -1
- package/dist/components/Modal/Modal.module.js.map +1 -1
- package/dist/components/ModalsManager/ModalsManager.cjs.map +1 -1
- package/dist/components/ModalsManager/ModalsManager.js.map +1 -1
- package/dist/components/ModalsManager/ModalsManager.module.cjs.map +1 -1
- package/dist/components/ModalsManager/ModalsManager.module.js.map +1 -1
- package/dist/components/Money/Money.cjs.map +1 -1
- package/dist/components/Money/Money.js.map +1 -1
- package/dist/components/MultiSelect/MultiSelect.cjs.map +1 -1
- package/dist/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/components/MultiSelect/MultiSelect.module.cjs.map +1 -1
- package/dist/components/MultiSelect/MultiSelect.module.js.map +1 -1
- package/dist/components/NProgress/NProgress.cjs.map +1 -1
- package/dist/components/NProgress/NProgress.js.map +1 -1
- package/dist/components/NProgress/NProgress.module.cjs.map +1 -1
- package/dist/components/NProgress/NProgress.module.js.map +1 -1
- package/dist/components/Navbar/Navbar.cjs.map +1 -1
- package/dist/components/Navbar/Navbar.js.map +1 -1
- package/dist/components/Navbar/Navbar.module.cjs.map +1 -1
- package/dist/components/Navbar/Navbar.module.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.module.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.module.js.map +1 -1
- package/dist/components/NavigationRail/NavigationRail.cjs.map +1 -1
- package/dist/components/NavigationRail/NavigationRail.js.map +1 -1
- package/dist/components/NavigationRail/NavigationRail.module.cjs.map +1 -1
- package/dist/components/NavigationRail/NavigationRail.module.js.map +1 -1
- package/dist/components/NotificationCenter/NotificationCenter.cjs.map +1 -1
- package/dist/components/NotificationCenter/NotificationCenter.js.map +1 -1
- package/dist/components/NotificationCenter/NotificationCenter.module.cjs.map +1 -1
- package/dist/components/NotificationCenter/NotificationCenter.module.js.map +1 -1
- package/dist/components/NotificationCenter/use-notification-inbox.cjs.map +1 -1
- package/dist/components/NotificationCenter/use-notification-inbox.js.map +1 -1
- package/dist/components/OfflineIndicator/OfflineIndicator.cjs.map +1 -1
- package/dist/components/OfflineIndicator/OfflineIndicator.js.map +1 -1
- package/dist/components/OfflineIndicator/OfflineIndicator.module.cjs.map +1 -1
- package/dist/components/OfflineIndicator/OfflineIndicator.module.js.map +1 -1
- package/dist/components/Page/Page.cjs.map +1 -1
- package/dist/components/Page/Page.js.map +1 -1
- package/dist/components/Page/Page.module.cjs.map +1 -1
- package/dist/components/Page/Page.module.js.map +1 -1
- package/dist/components/Pagination/Pagination.cjs.map +1 -1
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Pagination/Pagination.module.cjs.map +1 -1
- package/dist/components/Pagination/Pagination.module.js.map +1 -1
- package/dist/components/PasswordInput/PasswordInput.cjs.map +1 -1
- package/dist/components/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/PasswordInput/PasswordInput.module.cjs.map +1 -1
- package/dist/components/PasswordInput/PasswordInput.module.js.map +1 -1
- package/dist/components/PinInput/PinInput.cjs.map +1 -1
- package/dist/components/PinInput/PinInput.js.map +1 -1
- package/dist/components/PinInput/PinInput.module.cjs.map +1 -1
- package/dist/components/PinInput/PinInput.module.js.map +1 -1
- package/dist/components/Popover/Popover.cjs.map +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/Popover.module.cjs.map +1 -1
- package/dist/components/Popover/Popover.module.js.map +1 -1
- package/dist/components/Portal/Portal.cjs.map +1 -1
- package/dist/components/Portal/Portal.js.map +1 -1
- package/dist/components/Portal/anchor-position.cjs.map +1 -1
- package/dist/components/Portal/anchor-position.js.map +1 -1
- package/dist/components/Portal/escape-layer.cjs.map +1 -1
- package/dist/components/Portal/escape-layer.js.map +1 -1
- package/dist/components/Portal/portal-host.cjs.map +1 -1
- package/dist/components/Portal/portal-host.js.map +1 -1
- package/dist/components/Portal/tab-bridge.cjs +1 -1
- package/dist/components/Portal/tab-bridge.cjs.map +1 -1
- package/dist/components/Portal/tab-bridge.js +1 -5
- package/dist/components/Portal/tab-bridge.js.map +1 -1
- package/dist/components/Progress/Progress.cjs.map +1 -1
- package/dist/components/Progress/Progress.js.map +1 -1
- package/dist/components/Progress/Progress.module.cjs.map +1 -1
- package/dist/components/Progress/Progress.module.js.map +1 -1
- package/dist/components/QRCode/QRCode.cjs.map +1 -1
- package/dist/components/QRCode/QRCode.js.map +1 -1
- package/dist/components/QRCode/QRCode.module.cjs.map +1 -1
- package/dist/components/QRCode/QRCode.module.js.map +1 -1
- package/dist/components/QRCode/qr-encode.cjs +1 -1
- package/dist/components/QRCode/qr-encode.cjs.map +1 -1
- package/dist/components/QRCode/qr-encode.js +7 -13
- package/dist/components/QRCode/qr-encode.js.map +1 -1
- package/dist/components/QRCode/qr-tables.cjs.map +1 -1
- package/dist/components/QRCode/qr-tables.js.map +1 -1
- package/dist/components/Radio/Radio.cjs.map +1 -1
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Radio/Radio.module.cjs.map +1 -1
- package/dist/components/Radio/Radio.module.js.map +1 -1
- package/dist/components/RangeSlider/RangeSlider.cjs.map +1 -1
- package/dist/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/RangeSlider/RangeSlider.module.cjs.map +1 -1
- package/dist/components/RangeSlider/RangeSlider.module.js.map +1 -1
- package/dist/components/RatingStars/RatingStars.cjs.map +1 -1
- package/dist/components/RatingStars/RatingStars.js.map +1 -1
- package/dist/components/RatingStars/RatingStars.module.cjs.map +1 -1
- package/dist/components/RatingStars/RatingStars.module.js.map +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.cjs +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.cjs.map +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.js +10 -18
- package/dist/components/RefreshIndicator/RefreshIndicator.js.map +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.module.cjs.map +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.module.js.map +1 -1
- package/dist/components/RelativeTime/RelativeTime.cjs.map +1 -1
- package/dist/components/RelativeTime/RelativeTime.js.map +1 -1
- package/dist/components/Resizable/Resizable.cjs +1 -1
- package/dist/components/Resizable/Resizable.cjs.map +1 -1
- package/dist/components/Resizable/Resizable.js +1 -9
- package/dist/components/Resizable/Resizable.js.map +1 -1
- package/dist/components/Resizable/Resizable.module.cjs.map +1 -1
- package/dist/components/Resizable/Resizable.module.js.map +1 -1
- package/dist/components/Responsive/Responsive.cjs.map +1 -1
- package/dist/components/Responsive/Responsive.js.map +1 -1
- package/dist/components/Reveal/Reveal.cjs.map +1 -1
- package/dist/components/Reveal/Reveal.js.map +1 -1
- package/dist/components/Reveal/Reveal.module.cjs.map +1 -1
- package/dist/components/Reveal/Reveal.module.js.map +1 -1
- package/dist/components/Reveal/reveal-threshold.cjs.map +1 -1
- package/dist/components/Reveal/reveal-threshold.js.map +1 -1
- package/dist/components/SafeArea/SafeArea.cjs.map +1 -1
- package/dist/components/SafeArea/SafeArea.js.map +1 -1
- package/dist/components/SafeArea/SafeArea.module.cjs.map +1 -1
- package/dist/components/SafeArea/SafeArea.module.js.map +1 -1
- package/dist/components/Scheduler/Scheduler.cjs.map +1 -1
- package/dist/components/Scheduler/Scheduler.js.map +1 -1
- package/dist/components/Scheduler/Scheduler.module.cjs.map +1 -1
- package/dist/components/Scheduler/Scheduler.module.js.map +1 -1
- package/dist/components/Scheduler/scheduler-layout.cjs.map +1 -1
- package/dist/components/Scheduler/scheduler-layout.js.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.cjs.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.module.cjs.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.module.js.map +1 -1
- package/dist/components/SearchBar/SearchBar.cjs.map +1 -1
- package/dist/components/SearchBar/SearchBar.js.map +1 -1
- package/dist/components/SearchBar/SearchBar.module.cjs.map +1 -1
- package/dist/components/SearchBar/SearchBar.module.js.map +1 -1
- package/dist/components/SectionHeader/SectionHeader.cjs.map +1 -1
- package/dist/components/SectionHeader/SectionHeader.js.map +1 -1
- package/dist/components/SectionHeader/SectionHeader.module.cjs.map +1 -1
- package/dist/components/SectionHeader/SectionHeader.module.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.module.cjs.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.module.js.map +1 -1
- package/dist/components/Select/CaretIcon.cjs.map +1 -1
- package/dist/components/Select/CaretIcon.js.map +1 -1
- package/dist/components/Select/Select.cjs.map +1 -1
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Select/Select.module.cjs.map +1 -1
- package/dist/components/Select/Select.module.js.map +1 -1
- package/dist/components/Select/options.cjs.map +1 -1
- package/dist/components/Select/options.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.cjs +1 -1
- package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
- package/dist/components/Sidebar/Sidebar.js +13 -23
- package/dist/components/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.module.cjs.map +1 -1
- package/dist/components/Sidebar/Sidebar.module.js.map +1 -1
- package/dist/components/Sidebar/SidebarEntry.cjs.map +1 -1
- package/dist/components/Sidebar/SidebarEntry.js.map +1 -1
- package/dist/components/Sidebar/active-nav-key.cjs.map +1 -1
- package/dist/components/Sidebar/active-nav-key.js.map +1 -1
- package/dist/components/SignaturePad/SignaturePad.cjs +1 -1
- package/dist/components/SignaturePad/SignaturePad.cjs.map +1 -1
- package/dist/components/SignaturePad/SignaturePad.js +1 -5
- package/dist/components/SignaturePad/SignaturePad.js.map +1 -1
- package/dist/components/SignaturePad/SignaturePad.module.cjs.map +1 -1
- package/dist/components/SignaturePad/SignaturePad.module.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.cjs.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.js.map +1 -1
- package/dist/components/Slider/Slider.cjs.map +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Slider/Slider.module.cjs.map +1 -1
- package/dist/components/Slider/Slider.module.js.map +1 -1
- package/dist/components/Spacer/Spacer.cjs.map +1 -1
- package/dist/components/Spacer/Spacer.js.map +1 -1
- package/dist/components/Spacer/Spacer.module.cjs.map +1 -1
- package/dist/components/Spacer/Spacer.module.js.map +1 -1
- package/dist/components/Sparkline/Sparkline.cjs.map +1 -1
- package/dist/components/Sparkline/Sparkline.js.map +1 -1
- package/dist/components/Sparkline/Sparkline.module.cjs.map +1 -1
- package/dist/components/Sparkline/Sparkline.module.js.map +1 -1
- package/dist/components/Sparkline/sparkline-geometry.cjs.map +1 -1
- package/dist/components/Sparkline/sparkline-geometry.js.map +1 -1
- package/dist/components/Spinner/Spinner.cjs.map +1 -1
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/Spinner/Spinner.module.cjs.map +1 -1
- package/dist/components/Spinner/Spinner.module.js.map +1 -1
- package/dist/components/Stat/Stat.cjs.map +1 -1
- package/dist/components/Stat/Stat.js.map +1 -1
- package/dist/components/Stat/Stat.module.cjs.map +1 -1
- package/dist/components/Stat/Stat.module.js.map +1 -1
- package/dist/components/Stepper/Stepper.cjs.map +1 -1
- package/dist/components/Stepper/Stepper.js.map +1 -1
- package/dist/components/Stepper/Stepper.module.cjs.map +1 -1
- package/dist/components/Stepper/Stepper.module.js.map +1 -1
- package/dist/components/StepperInput/StepperInput.cjs.map +1 -1
- package/dist/components/StepperInput/StepperInput.js.map +1 -1
- package/dist/components/StepperInput/StepperInput.module.cjs.map +1 -1
- package/dist/components/StepperInput/StepperInput.module.js.map +1 -1
- package/dist/components/Switch/Switch.cjs.map +1 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Switch/Switch.module.cjs.map +1 -1
- package/dist/components/Switch/Switch.module.js.map +1 -1
- package/dist/components/SyncStatusBadge/SyncStatusBadge.cjs.map +1 -1
- package/dist/components/SyncStatusBadge/SyncStatusBadge.js.map +1 -1
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.cjs.map +1 -1
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.js.map +1 -1
- package/dist/components/Table/Table.cjs.map +1 -1
- package/dist/components/Table/Table.js.map +1 -1
- package/dist/components/Table/Table.module.cjs.map +1 -1
- package/dist/components/Table/Table.module.js.map +1 -1
- package/dist/components/Tabs/Tabs.cjs.map +1 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/Tabs.module.cjs.map +1 -1
- package/dist/components/Tabs/Tabs.module.js.map +1 -1
- package/dist/components/Tag/Tag.cjs.map +1 -1
- package/dist/components/Tag/Tag.js.map +1 -1
- package/dist/components/Tag/Tag.module.cjs.map +1 -1
- package/dist/components/Tag/Tag.module.js.map +1 -1
- package/dist/components/Textarea/Textarea.cjs.map +1 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Textarea/Textarea.module.cjs.map +1 -1
- package/dist/components/Textarea/Textarea.module.js.map +1 -1
- package/dist/components/TimePicker/TimePicker.cjs.map +1 -1
- package/dist/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/components/TimePicker/TimePicker.module.cjs.map +1 -1
- package/dist/components/TimePicker/TimePicker.module.js.map +1 -1
- package/dist/components/Timeline/Timeline.cjs.map +1 -1
- package/dist/components/Timeline/Timeline.js.map +1 -1
- package/dist/components/Timeline/Timeline.module.cjs.map +1 -1
- package/dist/components/Timeline/Timeline.module.js.map +1 -1
- package/dist/components/Toast/Toast.module.cjs.map +1 -1
- package/dist/components/Toast/Toast.module.js.map +1 -1
- package/dist/components/Toast/ToastProvider.cjs.map +1 -1
- package/dist/components/Toast/ToastProvider.js.map +1 -1
- package/dist/components/Toggle/Toggle.cjs.map +1 -1
- package/dist/components/Toggle/Toggle.js.map +1 -1
- package/dist/components/Toggle/Toggle.module.cjs.map +1 -1
- package/dist/components/Toggle/Toggle.module.js.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.cjs.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.module.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.module.js.map +1 -1
- package/dist/components/Tour/Tour.cjs +1 -1
- package/dist/components/Tour/Tour.cjs.map +1 -1
- package/dist/components/Tour/Tour.js +1 -5
- package/dist/components/Tour/Tour.js.map +1 -1
- package/dist/components/Tour/Tour.module.cjs.map +1 -1
- package/dist/components/Tour/Tour.module.js.map +1 -1
- package/dist/components/Tour/tour-position.cjs.map +1 -1
- package/dist/components/Tour/tour-position.js.map +1 -1
- package/dist/components/Transfer/Transfer.cjs.map +1 -1
- package/dist/components/Transfer/Transfer.js.map +1 -1
- package/dist/components/Transfer/Transfer.module.cjs.map +1 -1
- package/dist/components/Transfer/Transfer.module.js.map +1 -1
- package/dist/components/Transfer/transfer-state.cjs.map +1 -1
- package/dist/components/Transfer/transfer-state.js.map +1 -1
- package/dist/components/TreeView/TreeView.cjs.map +1 -1
- package/dist/components/TreeView/TreeView.js.map +1 -1
- package/dist/components/TreeView/TreeView.module.cjs.map +1 -1
- package/dist/components/TreeView/TreeView.module.js.map +1 -1
- package/dist/components/TruncateText/TruncateText.cjs.map +1 -1
- package/dist/components/TruncateText/TruncateText.js.map +1 -1
- package/dist/components/TruncateText/TruncateText.module.cjs.map +1 -1
- package/dist/components/TruncateText/TruncateText.module.js.map +1 -1
- package/dist/components/UpdatePrompt/UpdatePrompt.cjs.map +1 -1
- package/dist/components/UpdatePrompt/UpdatePrompt.js.map +1 -1
- package/dist/components/UpdatePrompt/UpdatePrompt.module.cjs.map +1 -1
- package/dist/components/UpdatePrompt/UpdatePrompt.module.js.map +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.cjs +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.cjs.map +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.js +1 -7
- package/dist/components/VideoPlayer/VideoPlayer.js.map +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.module.cjs.map +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.module.js.map +1 -1
- package/dist/components/VideoPlayer/playback-rates.cjs.map +1 -1
- package/dist/components/VideoPlayer/playback-rates.js.map +1 -1
- package/dist/components/VirtualList/VirtualList.cjs.map +1 -1
- package/dist/components/VirtualList/VirtualList.js.map +1 -1
- package/dist/components/VirtualList/VirtualList.module.cjs.map +1 -1
- package/dist/components/VirtualList/VirtualList.module.js.map +1 -1
- package/dist/components/VirtualTable/VirtualTable.cjs.map +1 -1
- package/dist/components/VirtualTable/VirtualTable.js.map +1 -1
- package/dist/components/VirtualTable/VirtualTable.module.cjs.map +1 -1
- package/dist/components/VirtualTable/VirtualTable.module.js.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.cjs.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.js.map +1 -1
- package/dist/components/Wizard/Wizard.cjs +1 -1
- package/dist/components/Wizard/Wizard.cjs.map +1 -1
- package/dist/components/Wizard/Wizard.js +4 -11
- package/dist/components/Wizard/Wizard.js.map +1 -1
- package/dist/components/Wizard/Wizard.module.cjs.map +1 -1
- package/dist/components/Wizard/Wizard.module.js.map +1 -1
- package/dist/data/create-data-provider.cjs.map +1 -1
- package/dist/data/create-data-provider.js.map +1 -1
- package/dist/data/data-provider-context.cjs.map +1 -1
- package/dist/data/data-provider-context.js.map +1 -1
- package/dist/data/use-resource.cjs.map +1 -1
- package/dist/data/use-resource.js.map +1 -1
- package/dist/editor/RichTextEditor.cjs.map +1 -1
- package/dist/editor/RichTextEditor.js.map +1 -1
- package/dist/editor/RichTextEditor.module.cjs.map +1 -1
- package/dist/editor/RichTextEditor.module.js.map +1 -1
- package/dist/editor.js +1 -2
- package/dist/error-boundary/ErrorBoundary.cjs.map +1 -1
- package/dist/error-boundary/ErrorBoundary.js.map +1 -1
- package/dist/error-boundary/use-error-handler.cjs.map +1 -1
- package/dist/error-boundary/use-error-handler.js.map +1 -1
- package/dist/feature-flags/FeatureFlagsProvider.cjs.map +1 -1
- package/dist/feature-flags/FeatureFlagsProvider.js.map +1 -1
- package/dist/feature-flags/growthbook-adapter.cjs.map +1 -1
- package/dist/feature-flags/growthbook-adapter.js.map +1 -1
- package/dist/feature-flags/in-memory-adapter.cjs.map +1 -1
- package/dist/feature-flags/in-memory-adapter.js.map +1 -1
- package/dist/feature-flags/launchdarkly-adapter.cjs.map +1 -1
- package/dist/feature-flags/launchdarkly-adapter.js.map +1 -1
- package/dist/forms/FormField.cjs.map +1 -1
- package/dist/forms/FormField.js.map +1 -1
- package/dist/forms/br-validators.cjs.map +1 -1
- package/dist/forms/br-validators.js.map +1 -1
- package/dist/forms/masked-inputs.cjs.map +1 -1
- package/dist/forms/masked-inputs.js.map +1 -1
- package/dist/forms/use-viacep.cjs.map +1 -1
- package/dist/forms/use-viacep.js.map +1 -1
- package/dist/forms/use-zod-form.cjs.map +1 -1
- package/dist/forms/use-zod-form.js.map +1 -1
- package/dist/forms/validate-form.cjs.map +1 -1
- package/dist/forms/validate-form.js.map +1 -1
- package/dist/forms/zod-resolver.cjs.map +1 -1
- package/dist/forms/zod-resolver.js.map +1 -1
- package/dist/geo/TrajectoryMap.cjs.map +1 -1
- package/dist/geo/TrajectoryMap.js.map +1 -1
- package/dist/geo/TrajectoryMap.module.cjs.map +1 -1
- package/dist/geo/TrajectoryMap.module.js.map +1 -1
- package/dist/geo/bounds.cjs.map +1 -1
- package/dist/geo/bounds.js.map +1 -1
- package/dist/geo/create-position-tracker.cjs +1 -1
- package/dist/geo/create-position-tracker.cjs.map +1 -1
- package/dist/geo/create-position-tracker.js +1 -7
- package/dist/geo/create-position-tracker.js.map +1 -1
- package/dist/geo/distance.cjs.map +1 -1
- package/dist/geo/distance.js.map +1 -1
- package/dist/geo/estimate.cjs.map +1 -1
- package/dist/geo/estimate.js.map +1 -1
- package/dist/geo/leaflet-map.cjs.map +1 -1
- package/dist/geo/leaflet-map.js.map +1 -1
- package/dist/geo/projection.cjs.map +1 -1
- package/dist/geo/projection.js.map +1 -1
- package/dist/geo/routing.cjs.map +1 -1
- package/dist/geo/routing.js.map +1 -1
- package/dist/geo/types.cjs.map +1 -1
- package/dist/geo/types.js.map +1 -1
- package/dist/geo/use-position-tracker.cjs.map +1 -1
- package/dist/geo/use-position-tracker.js.map +1 -1
- package/dist/hooks/pwa-env.cjs.map +1 -1
- package/dist/hooks/pwa-env.js.map +1 -1
- package/dist/hooks/tab-sequence.cjs.map +1 -1
- package/dist/hooks/tab-sequence.js.map +1 -1
- package/dist/hooks/use-announce.cjs +1 -1
- package/dist/hooks/use-announce.cjs.map +1 -1
- package/dist/hooks/use-announce.js +2 -2
- package/dist/hooks/use-announce.js.map +1 -1
- package/dist/hooks/use-async.cjs.map +1 -1
- package/dist/hooks/use-async.js.map +1 -1
- package/dist/hooks/use-before-install-prompt.cjs.map +1 -1
- package/dist/hooks/use-before-install-prompt.js.map +1 -1
- package/dist/hooks/use-breakpoint.cjs.map +1 -1
- package/dist/hooks/use-breakpoint.js.map +1 -1
- package/dist/hooks/use-click-outside.cjs.map +1 -1
- package/dist/hooks/use-click-outside.js.map +1 -1
- package/dist/hooks/use-client-filter.cjs.map +1 -1
- package/dist/hooks/use-client-filter.js.map +1 -1
- package/dist/hooks/use-clipboard.cjs.map +1 -1
- package/dist/hooks/use-clipboard.js.map +1 -1
- package/dist/hooks/use-countdown.cjs.map +1 -1
- package/dist/hooks/use-countdown.js.map +1 -1
- package/dist/hooks/use-counter.cjs.map +1 -1
- package/dist/hooks/use-counter.js.map +1 -1
- package/dist/hooks/use-debounce.cjs.map +1 -1
- package/dist/hooks/use-debounce.js.map +1 -1
- package/dist/hooks/use-deep-memo.cjs.map +1 -1
- package/dist/hooks/use-deep-memo.js.map +1 -1
- package/dist/hooks/use-disclosure.cjs.map +1 -1
- package/dist/hooks/use-disclosure.js.map +1 -1
- package/dist/hooks/use-document-title.cjs.map +1 -1
- package/dist/hooks/use-document-title.js.map +1 -1
- package/dist/hooks/use-document-visibility.cjs.map +1 -1
- package/dist/hooks/use-document-visibility.js.map +1 -1
- package/dist/hooks/use-draft-filters.cjs.map +1 -1
- package/dist/hooks/use-draft-filters.js.map +1 -1
- package/dist/hooks/use-event-listener.cjs.map +1 -1
- package/dist/hooks/use-event-listener.js.map +1 -1
- package/dist/hooks/use-favicon.cjs.map +1 -1
- package/dist/hooks/use-favicon.js.map +1 -1
- package/dist/hooks/use-focus-trap.cjs.map +1 -1
- package/dist/hooks/use-focus-trap.js.map +1 -1
- package/dist/hooks/use-fullscreen-element.cjs.map +1 -1
- package/dist/hooks/use-fullscreen-element.js.map +1 -1
- package/dist/hooks/use-fullscreen.cjs +1 -1
- package/dist/hooks/use-fullscreen.cjs.map +1 -1
- package/dist/hooks/use-fullscreen.js +7 -23
- package/dist/hooks/use-fullscreen.js.map +1 -1
- package/dist/hooks/use-geolocation.cjs.map +1 -1
- package/dist/hooks/use-geolocation.js.map +1 -1
- package/dist/hooks/use-hover.cjs.map +1 -1
- package/dist/hooks/use-hover.js.map +1 -1
- package/dist/hooks/use-idle.cjs.map +1 -1
- package/dist/hooks/use-idle.js.map +1 -1
- package/dist/hooks/use-install-prompt.cjs +1 -1
- package/dist/hooks/use-install-prompt.cjs.map +1 -1
- package/dist/hooks/use-install-prompt.js +1 -1
- package/dist/hooks/use-install-prompt.js.map +1 -1
- package/dist/hooks/use-intersection-observer.cjs.map +1 -1
- package/dist/hooks/use-intersection-observer.js.map +1 -1
- package/dist/hooks/use-interval.cjs.map +1 -1
- package/dist/hooks/use-interval.js.map +1 -1
- package/dist/hooks/use-is-first-render.cjs.map +1 -1
- package/dist/hooks/use-is-first-render.js.map +1 -1
- package/dist/hooks/use-keyboard-shortcut.cjs.map +1 -1
- package/dist/hooks/use-keyboard-shortcut.js.map +1 -1
- package/dist/hooks/use-latest-ref.cjs.map +1 -1
- package/dist/hooks/use-latest-ref.js.map +1 -1
- package/dist/hooks/use-list-state.cjs.map +1 -1
- package/dist/hooks/use-list-state.js.map +1 -1
- package/dist/hooks/use-local-storage.cjs +1 -1
- package/dist/hooks/use-local-storage.cjs.map +1 -1
- package/dist/hooks/use-local-storage.js +2 -5
- package/dist/hooks/use-local-storage.js.map +1 -1
- package/dist/hooks/use-long-press-handlers.cjs.map +1 -1
- package/dist/hooks/use-long-press-handlers.js.map +1 -1
- package/dist/hooks/use-long-press.cjs.map +1 -1
- package/dist/hooks/use-long-press.js.map +1 -1
- package/dist/hooks/use-map.cjs.map +1 -1
- package/dist/hooks/use-map.js.map +1 -1
- package/dist/hooks/use-media-devices.cjs.map +1 -1
- package/dist/hooks/use-media-devices.js.map +1 -1
- package/dist/hooks/use-media-permission.cjs +1 -1
- package/dist/hooks/use-media-permission.cjs.map +1 -1
- package/dist/hooks/use-media-permission.js +2 -5
- package/dist/hooks/use-media-permission.js.map +1 -1
- package/dist/hooks/use-media-query.cjs.map +1 -1
- package/dist/hooks/use-media-query.js.map +1 -1
- package/dist/hooks/use-object-url.cjs.map +1 -1
- package/dist/hooks/use-object-url.js.map +1 -1
- package/dist/hooks/use-online.cjs.map +1 -1
- package/dist/hooks/use-online.js.map +1 -1
- package/dist/hooks/use-pagination.cjs.map +1 -1
- package/dist/hooks/use-pagination.js.map +1 -1
- package/dist/hooks/use-previous.cjs.map +1 -1
- package/dist/hooks/use-previous.js.map +1 -1
- package/dist/hooks/use-push-to-talk.cjs.map +1 -1
- package/dist/hooks/use-push-to-talk.js.map +1 -1
- package/dist/hooks/use-queue.cjs.map +1 -1
- package/dist/hooks/use-queue.js.map +1 -1
- package/dist/hooks/use-resize-observer.cjs.map +1 -1
- package/dist/hooks/use-resize-observer.js.map +1 -1
- package/dist/hooks/use-scroll-lock.cjs.map +1 -1
- package/dist/hooks/use-scroll-lock.js.map +1 -1
- package/dist/hooks/use-scroll-overflow.cjs.map +1 -1
- package/dist/hooks/use-scroll-overflow.js.map +1 -1
- package/dist/hooks/use-service-worker-update.cjs.map +1 -1
- package/dist/hooks/use-service-worker-update.js.map +1 -1
- package/dist/hooks/use-set.cjs.map +1 -1
- package/dist/hooks/use-set.js.map +1 -1
- package/dist/hooks/use-sortable.cjs.map +1 -1
- package/dist/hooks/use-sortable.js.map +1 -1
- package/dist/hooks/use-stable-callback.cjs.map +1 -1
- package/dist/hooks/use-stable-callback.js.map +1 -1
- package/dist/hooks/use-storage-estimate.cjs.map +1 -1
- package/dist/hooks/use-storage-estimate.js.map +1 -1
- package/dist/hooks/use-throttle.cjs.map +1 -1
- package/dist/hooks/use-throttle.js.map +1 -1
- package/dist/hooks/use-timeout.cjs.map +1 -1
- package/dist/hooks/use-timeout.js.map +1 -1
- package/dist/hooks/use-toggle.cjs.map +1 -1
- package/dist/hooks/use-toggle.js.map +1 -1
- package/dist/hooks/use-typewriter.cjs.map +1 -1
- package/dist/hooks/use-typewriter.js.map +1 -1
- package/dist/hooks/use-window-size.cjs.map +1 -1
- package/dist/hooks/use-window-size.js.map +1 -1
- package/dist/http/api-client.cjs +1 -1
- package/dist/http/api-client.cjs.map +1 -1
- package/dist/http/api-client.js +5 -1
- package/dist/http/api-client.js.map +1 -1
- package/dist/http/build-url.cjs +1 -1
- package/dist/http/build-url.cjs.map +1 -1
- package/dist/http/build-url.js +3 -1
- package/dist/http/build-url.js.map +1 -1
- package/dist/http/credential-scope.cjs.map +1 -1
- package/dist/http/credential-scope.js.map +1 -1
- package/dist/http/csrf.cjs.map +1 -1
- package/dist/http/csrf.js.map +1 -1
- package/dist/http/decode-response.cjs.map +1 -1
- package/dist/http/decode-response.js.map +1 -1
- package/dist/http/describe-api-error.cjs.map +1 -1
- package/dist/http/describe-api-error.js.map +1 -1
- package/dist/http/errors.cjs.map +1 -1
- package/dist/http/errors.js.map +1 -1
- package/dist/http/idempotency.cjs.map +1 -1
- package/dist/http/idempotency.js.map +1 -1
- package/dist/http/parse-response.cjs.map +1 -1
- package/dist/http/parse-response.js.map +1 -1
- package/dist/http/presigned-post.cjs +2 -0
- package/dist/http/presigned-post.cjs.map +1 -0
- package/dist/http/presigned-post.js +73 -0
- package/dist/http/presigned-post.js.map +1 -0
- package/dist/http/resumable-upload.cjs.map +1 -1
- package/dist/http/resumable-upload.js.map +1 -1
- package/dist/http/retry.cjs.map +1 -1
- package/dist/http/retry.js.map +1 -1
- package/dist/http/timeout.cjs.map +1 -1
- package/dist/http/timeout.js.map +1 -1
- package/dist/http/upload-with-progress.cjs +1 -1
- package/dist/http/upload-with-progress.cjs.map +1 -1
- package/dist/http/upload-with-progress.js +2 -7
- package/dist/http/upload-with-progress.js.map +1 -1
- package/dist/http/use-describe-api-error.cjs.map +1 -1
- package/dist/http/use-describe-api-error.js.map +1 -1
- package/dist/http/use-poll.cjs +1 -1
- package/dist/http/use-poll.cjs.map +1 -1
- package/dist/http/use-poll.js +2 -5
- package/dist/http/use-poll.js.map +1 -1
- package/dist/i18n/I18nProvider.cjs.map +1 -1
- package/dist/i18n/I18nProvider.js.map +1 -1
- package/dist/i18n/create-i18n.cjs.map +1 -1
- package/dist/i18n/create-i18n.js.map +1 -1
- package/dist/icons/Icon.cjs.map +1 -1
- package/dist/icons/Icon.js.map +1 -1
- package/dist/icons/IconPicker.cjs.map +1 -1
- package/dist/icons/IconPicker.js.map +1 -1
- package/dist/icons/IconPicker.module.cjs.map +1 -1
- package/dist/icons/IconPicker.module.js.map +1 -1
- package/dist/icons/IconProvider.cjs.map +1 -1
- package/dist/icons/IconProvider.js.map +1 -1
- package/dist/icons/alias.cjs.map +1 -1
- package/dist/icons/alias.js.map +1 -1
- package/dist/icons/generated/aliases.cjs.map +1 -1
- package/dist/icons/generated/aliases.js.map +1 -1
- package/dist/icons/generated/icon-names.cjs.map +1 -1
- package/dist/icons/generated/icon-names.js.map +1 -1
- package/dist/icons/generated/loaders.cjs.map +1 -1
- package/dist/icons/generated/loaders.js.map +1 -1
- package/dist/icons/generated/shard-00.cjs.map +1 -1
- package/dist/icons/generated/shard-00.js.map +1 -1
- package/dist/icons/generated/shard-01.cjs.map +1 -1
- package/dist/icons/generated/shard-01.js.map +1 -1
- package/dist/icons/generated/shard-02.cjs.map +1 -1
- package/dist/icons/generated/shard-02.js.map +1 -1
- package/dist/icons/generated/shard-03.cjs.map +1 -1
- package/dist/icons/generated/shard-03.js.map +1 -1
- package/dist/icons/generated/shard-04.cjs.map +1 -1
- package/dist/icons/generated/shard-04.js.map +1 -1
- package/dist/icons/generated/shard-05.cjs.map +1 -1
- package/dist/icons/generated/shard-05.js.map +1 -1
- package/dist/icons/generated/shard-06.cjs.map +1 -1
- package/dist/icons/generated/shard-06.js.map +1 -1
- package/dist/icons/generated/shard-07.cjs.map +1 -1
- package/dist/icons/generated/shard-07.js.map +1 -1
- package/dist/icons/generated/shard-08.cjs.map +1 -1
- package/dist/icons/generated/shard-08.js.map +1 -1
- package/dist/icons/generated/shard-09.cjs.map +1 -1
- package/dist/icons/generated/shard-09.js.map +1 -1
- package/dist/icons/generated/shard-10.cjs.map +1 -1
- package/dist/icons/generated/shard-10.js.map +1 -1
- package/dist/icons/generated/shard-11.cjs.map +1 -1
- package/dist/icons/generated/shard-11.js.map +1 -1
- package/dist/icons/generated/shard-12.cjs.map +1 -1
- package/dist/icons/generated/shard-12.js.map +1 -1
- package/dist/icons/generated/shard-13.cjs.map +1 -1
- package/dist/icons/generated/shard-13.js.map +1 -1
- package/dist/icons/generated/shard-14.cjs.map +1 -1
- package/dist/icons/generated/shard-14.js.map +1 -1
- package/dist/icons/generated/shard-15.cjs.map +1 -1
- package/dist/icons/generated/shard-15.js.map +1 -1
- package/dist/icons/generated/shard-16.cjs.map +1 -1
- package/dist/icons/generated/shard-16.js.map +1 -1
- package/dist/icons/generated/shard-17.cjs.map +1 -1
- package/dist/icons/generated/shard-17.js.map +1 -1
- package/dist/icons/generated/shard-18.cjs.map +1 -1
- package/dist/icons/generated/shard-18.js.map +1 -1
- package/dist/icons/generated/shard-19.cjs.map +1 -1
- package/dist/icons/generated/shard-19.js.map +1 -1
- package/dist/icons/generated/shard-20.cjs.map +1 -1
- package/dist/icons/generated/shard-20.js.map +1 -1
- package/dist/icons/generated/shard-21.cjs.map +1 -1
- package/dist/icons/generated/shard-21.js.map +1 -1
- package/dist/icons/generated/shard-22.cjs.map +1 -1
- package/dist/icons/generated/shard-22.js.map +1 -1
- package/dist/icons/generated/shard-23.cjs.map +1 -1
- package/dist/icons/generated/shard-23.js.map +1 -1
- package/dist/icons/generated/shard-24.cjs.map +1 -1
- package/dist/icons/generated/shard-24.js.map +1 -1
- package/dist/icons/generated/shard-25.cjs.map +1 -1
- package/dist/icons/generated/shard-25.js.map +1 -1
- package/dist/icons/generated/shard-26.cjs.map +1 -1
- package/dist/icons/generated/shard-26.js.map +1 -1
- package/dist/icons/generated/shard-27.cjs.map +1 -1
- package/dist/icons/generated/shard-27.js.map +1 -1
- package/dist/icons/generated/shard-28.cjs.map +1 -1
- package/dist/icons/generated/shard-28.js.map +1 -1
- package/dist/icons/generated/shard-29.cjs.map +1 -1
- package/dist/icons/generated/shard-29.js.map +1 -1
- package/dist/icons/generated/shard-30.cjs.map +1 -1
- package/dist/icons/generated/shard-30.js.map +1 -1
- package/dist/icons/generated/shard-31.cjs.map +1 -1
- package/dist/icons/generated/shard-31.js.map +1 -1
- package/dist/icons/generated/shard-32.cjs.map +1 -1
- package/dist/icons/generated/shard-32.js.map +1 -1
- package/dist/icons/generated/shard-33.cjs.map +1 -1
- package/dist/icons/generated/shard-33.js.map +1 -1
- package/dist/icons/generated/shard-34.cjs.map +1 -1
- package/dist/icons/generated/shard-34.js.map +1 -1
- package/dist/icons/generated/shard-35.cjs.map +1 -1
- package/dist/icons/generated/shard-35.js.map +1 -1
- package/dist/icons/generated/shard-36.cjs.map +1 -1
- package/dist/icons/generated/shard-36.js.map +1 -1
- package/dist/icons/generated/shard-37.cjs.map +1 -1
- package/dist/icons/generated/shard-37.js.map +1 -1
- package/dist/icons/generated/shard-38.cjs.map +1 -1
- package/dist/icons/generated/shard-38.js.map +1 -1
- package/dist/icons/generated/shard-39.cjs.map +1 -1
- package/dist/icons/generated/shard-39.js.map +1 -1
- package/dist/icons/generated/shard-40.cjs.map +1 -1
- package/dist/icons/generated/shard-40.js.map +1 -1
- package/dist/icons/generated/shard-41.cjs.map +1 -1
- package/dist/icons/generated/shard-41.js.map +1 -1
- package/dist/icons/generated/shard-42.cjs.map +1 -1
- package/dist/icons/generated/shard-42.js.map +1 -1
- package/dist/icons/generated/shard-43.cjs.map +1 -1
- package/dist/icons/generated/shard-43.js.map +1 -1
- package/dist/icons/generated/shard-44.cjs.map +1 -1
- package/dist/icons/generated/shard-44.js.map +1 -1
- package/dist/icons/generated/shard-45.cjs.map +1 -1
- package/dist/icons/generated/shard-45.js.map +1 -1
- package/dist/icons/icon-context.cjs.map +1 -1
- package/dist/icons/icon-context.js.map +1 -1
- package/dist/icons/is-icon-name.cjs.map +1 -1
- package/dist/icons/is-icon-name.js.map +1 -1
- package/dist/icons/material-symbols.cjs.map +1 -1
- package/dist/icons/material-symbols.js.map +1 -1
- package/dist/icons/normalize-icon-name.cjs.map +1 -1
- package/dist/icons/normalize-icon-name.js.map +1 -1
- package/dist/icons/shard-cache.cjs +1 -1
- package/dist/icons/shard-cache.cjs.map +1 -1
- package/dist/icons/shard-cache.js +2 -5
- package/dist/icons/shard-cache.js.map +1 -1
- package/dist/icons/use-icon.cjs.map +1 -1
- package/dist/icons/use-icon.js.map +1 -1
- package/dist/icons/validate-icon-name.cjs.map +1 -1
- package/dist/icons/validate-icon-name.js.map +1 -1
- package/dist/icons-virtual.cjs.map +1 -1
- package/dist/icons-virtual.js.map +1 -1
- package/dist/imaging/canvas.cjs.map +1 -1
- package/dist/imaging/canvas.js.map +1 -1
- package/dist/imaging/compress.cjs.map +1 -1
- package/dist/imaging/compress.js.map +1 -1
- package/dist/imaging/decode.cjs.map +1 -1
- package/dist/imaging/decode.js.map +1 -1
- package/dist/imaging/encode.cjs.map +1 -1
- package/dist/imaging/encode.js.map +1 -1
- package/dist/imaging/exceptions.cjs.map +1 -1
- package/dist/imaging/exceptions.js.map +1 -1
- package/dist/imaging/frame.cjs.map +1 -1
- package/dist/imaging/frame.js.map +1 -1
- package/dist/imaging/thumbnails.cjs.map +1 -1
- package/dist/imaging/thumbnails.js.map +1 -1
- package/dist/imaging/transform.cjs.map +1 -1
- package/dist/imaging/transform.js.map +1 -1
- package/dist/imaging/use-image-processing.cjs.map +1 -1
- package/dist/imaging/use-image-processing.js.map +1 -1
- package/dist/logger/logger.cjs.map +1 -1
- package/dist/logger/logger.js.map +1 -1
- package/dist/neural.cjs.map +1 -1
- package/dist/neural.js.map +1 -1
- package/dist/oauth/GoogleSignIn.cjs +1 -1
- package/dist/oauth/GoogleSignIn.cjs.map +1 -1
- package/dist/oauth/GoogleSignIn.js +6 -9
- package/dist/oauth/GoogleSignIn.js.map +1 -1
- package/dist/oauth/callback.cjs.map +1 -1
- package/dist/oauth/callback.js.map +1 -1
- package/dist/oauth/use-oauth-callback.cjs.map +1 -1
- package/dist/oauth/use-oauth-callback.js.map +1 -1
- package/dist/offline/conflict.cjs.map +1 -1
- package/dist/offline/conflict.js.map +1 -1
- package/dist/offline/create-offline-database.cjs.map +1 -1
- package/dist/offline/create-offline-database.js.map +1 -1
- package/dist/offline/create-offline-store.cjs +1 -1
- package/dist/offline/create-offline-store.cjs.map +1 -1
- package/dist/offline/create-offline-store.js +1 -5
- package/dist/offline/create-offline-store.js.map +1 -1
- package/dist/offline/create-offline-sync.cjs +1 -1
- package/dist/offline/create-offline-sync.cjs.map +1 -1
- package/dist/offline/create-offline-sync.js +9 -14
- package/dist/offline/create-offline-sync.js.map +1 -1
- package/dist/offline/use-offline-sync.cjs.map +1 -1
- package/dist/offline/use-offline-sync.js.map +1 -1
- package/dist/perf/cache-size.cjs.map +1 -1
- package/dist/perf/cache-size.js.map +1 -1
- package/dist/perf/device.cjs.map +1 -1
- package/dist/perf/device.js.map +1 -1
- package/dist/perf/format.cjs.map +1 -1
- package/dist/perf/format.js.map +1 -1
- package/dist/perf/profiler.cjs.map +1 -1
- package/dist/perf/profiler.js.map +1 -1
- package/dist/push/use-push-subscription.cjs.map +1 -1
- package/dist/push/use-push-subscription.js.map +1 -1
- package/dist/push/utils.cjs.map +1 -1
- package/dist/push/utils.js.map +1 -1
- package/dist/push/web-push-client.cjs.map +1 -1
- package/dist/push/web-push-client.js.map +1 -1
- package/dist/query/QueryProvider.cjs.map +1 -1
- package/dist/query/QueryProvider.js.map +1 -1
- package/dist/query/constants.cjs.map +1 -1
- package/dist/query/constants.js.map +1 -1
- package/dist/query/create-query-keys.cjs.map +1 -1
- package/dist/query/create-query-keys.js.map +1 -1
- package/dist/query/foreign-client-warning.cjs.map +1 -1
- package/dist/query/foreign-client-warning.js.map +1 -1
- package/dist/query/offline-persistence.cjs +1 -1
- package/dist/query/offline-persistence.cjs.map +1 -1
- package/dist/query/offline-persistence.js +2 -10
- package/dist/query/offline-persistence.js.map +1 -1
- package/dist/query/optimistic.cjs.map +1 -1
- package/dist/query/optimistic.js.map +1 -1
- package/dist/query/pagination.cjs.map +1 -1
- package/dist/query/pagination.js.map +1 -1
- package/dist/query/retry-policy.cjs.map +1 -1
- package/dist/query/retry-policy.js.map +1 -1
- package/dist/query/use-cursor-query.cjs.map +1 -1
- package/dist/query/use-cursor-query.js.map +1 -1
- package/dist/query/use-offline-mutation.cjs.map +1 -1
- package/dist/query/use-offline-mutation.js.map +1 -1
- package/dist/query/use-paginated-query.cjs.map +1 -1
- package/dist/query/use-paginated-query.js.map +1 -1
- package/dist/router/AppRouter.cjs.map +1 -1
- package/dist/router/AppRouter.js.map +1 -1
- package/dist/router/RouteGuard.cjs.map +1 -1
- package/dist/router/RouteGuard.js.map +1 -1
- package/dist/router/index.js +2 -2
- package/dist/share/share-or-download.cjs.map +1 -1
- package/dist/share/share-or-download.js.map +1 -1
- package/dist/share/share.cjs.map +1 -1
- package/dist/share/share.js.map +1 -1
- package/dist/sse/create-event-stream.cjs +1 -1
- package/dist/sse/create-event-stream.cjs.map +1 -1
- package/dist/sse/create-event-stream.js +44 -30
- package/dist/sse/create-event-stream.js.map +1 -1
- package/dist/sse/ticket-event-stream.cjs +2 -0
- package/dist/sse/ticket-event-stream.cjs.map +1 -0
- package/dist/sse/ticket-event-stream.js +41 -0
- package/dist/sse/ticket-event-stream.js.map +1 -0
- package/dist/sse/use-event-stream.cjs +1 -1
- package/dist/sse/use-event-stream.cjs.map +1 -1
- package/dist/sse/use-event-stream.js +7 -4
- package/dist/sse/use-event-stream.js.map +1 -1
- package/dist/store/create-selectors.cjs.map +1 -1
- package/dist/store/create-selectors.js.map +1 -1
- package/dist/store/create-store.cjs.map +1 -1
- package/dist/store/create-store.js.map +1 -1
- package/dist/sw/background-sync.cjs.map +1 -1
- package/dist/sw/background-sync.js.map +1 -1
- package/dist/sw/cache-inspect.cjs.map +1 -1
- package/dist/sw/cache-inspect.js.map +1 -1
- package/dist/sw/cache.cjs +1 -1
- package/dist/sw/cache.cjs.map +1 -1
- package/dist/sw/cache.js +2 -6
- package/dist/sw/cache.js.map +1 -1
- package/dist/sw/create-push-handler.cjs.map +1 -1
- package/dist/sw/create-push-handler.js.map +1 -1
- package/dist/sw/credential-headers.cjs.map +1 -1
- package/dist/sw/credential-headers.js.map +1 -1
- package/dist/sw/periodic-sync.cjs.map +1 -1
- package/dist/sw/periodic-sync.js.map +1 -1
- package/dist/sw/register-service-worker.cjs.map +1 -1
- package/dist/sw/register-service-worker.js.map +1 -1
- package/dist/sw/session-data.cjs.map +1 -1
- package/dist/sw/session-data.js.map +1 -1
- package/dist/tabular/assets.cjs.map +1 -1
- package/dist/tabular/assets.js.map +1 -1
- package/dist/tabular/cache.cjs.map +1 -1
- package/dist/tabular/cache.js.map +1 -1
- package/dist/tabular/compact.cjs.map +1 -1
- package/dist/tabular/compact.js.map +1 -1
- package/dist/tabular/exceptions.cjs.map +1 -1
- package/dist/tabular/exceptions.js.map +1 -1
- package/dist/tabular/manifest.cjs.map +1 -1
- package/dist/tabular/manifest.js.map +1 -1
- package/dist/tabular/predictor.cjs.map +1 -1
- package/dist/tabular/predictor.js.map +1 -1
- package/dist/tabular/use-tabular-predictor.cjs.map +1 -1
- package/dist/tabular/use-tabular-predictor.js.map +1 -1
- package/dist/telemetry/TelemetryProvider.cjs.map +1 -1
- package/dist/telemetry/TelemetryProvider.js.map +1 -1
- package/dist/telemetry/app-error-adapter.cjs.map +1 -1
- package/dist/telemetry/app-error-adapter.js.map +1 -1
- package/dist/telemetry/app-error-queue.cjs.map +1 -1
- package/dist/telemetry/app-error-queue.js.map +1 -1
- package/dist/telemetry/app-error-reporter.cjs.map +1 -1
- package/dist/telemetry/app-error-reporter.js.map +1 -1
- package/dist/telemetry/app-error-schema.cjs.map +1 -1
- package/dist/telemetry/app-error-schema.js.map +1 -1
- package/dist/telemetry/app-error-transport.cjs.map +1 -1
- package/dist/telemetry/app-error-transport.js.map +1 -1
- package/dist/telemetry/console-adapter.cjs.map +1 -1
- package/dist/telemetry/console-adapter.js.map +1 -1
- package/dist/telemetry/describe-app-error.cjs.map +1 -1
- package/dist/telemetry/describe-app-error.js.map +1 -1
- package/dist/telemetry/posthog-adapter.cjs +1 -1
- package/dist/telemetry/posthog-adapter.cjs.map +1 -1
- package/dist/telemetry/posthog-adapter.js +1 -5
- package/dist/telemetry/posthog-adapter.js.map +1 -1
- package/dist/telemetry/sentry-adapter.cjs.map +1 -1
- package/dist/telemetry/sentry-adapter.js.map +1 -1
- package/dist/tempest-react-sdk.cjs +1 -1
- package/dist/tempest-react-sdk.d.ts +440 -7
- package/dist/tempest-react-sdk.js +122 -120
- package/dist/testing/create-mock-handlers.cjs.map +1 -1
- package/dist/testing/create-mock-handlers.js.map +1 -1
- package/dist/testing.js +1 -2
- package/dist/theme/ThemeProvider.cjs.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/apply-theme.cjs.map +1 -1
- package/dist/theme/apply-theme.js.map +1 -1
- package/dist/theme/color.cjs.map +1 -1
- package/dist/theme/color.js.map +1 -1
- package/dist/theme/create-theme.cjs.map +1 -1
- package/dist/theme/create-theme.js.map +1 -1
- package/dist/theme/data-viz-ramps.cjs.map +1 -1
- package/dist/theme/data-viz-ramps.js.map +1 -1
- package/dist/theme/initial-theme.cjs.map +1 -1
- package/dist/theme/initial-theme.js.map +1 -1
- package/dist/theme/inverse-render.cjs.map +1 -1
- package/dist/theme/inverse-render.js.map +1 -1
- package/dist/theme/inverse-restore.cjs.map +1 -1
- package/dist/theme/inverse-restore.js.map +1 -1
- package/dist/theme/inverse-surface.cjs.map +1 -1
- package/dist/theme/inverse-surface.js.map +1 -1
- package/dist/theme/status-tokens.cjs.map +1 -1
- package/dist/theme/status-tokens.js.map +1 -1
- package/dist/theme/theme-presets.cjs.map +1 -1
- package/dist/theme/theme-presets.js.map +1 -1
- package/dist/utils/absent.cjs.map +1 -1
- package/dist/utils/absent.js.map +1 -1
- package/dist/utils/arrays.cjs.map +1 -1
- package/dist/utils/arrays.js.map +1 -1
- package/dist/utils/base64.cjs.map +1 -1
- package/dist/utils/base64.js.map +1 -1
- package/dist/utils/cn.cjs.map +1 -1
- package/dist/utils/cn.js.map +1 -1
- package/dist/utils/compare-values.cjs.map +1 -1
- package/dist/utils/compare-values.js.map +1 -1
- package/dist/utils/compressed-storage.cjs.map +1 -1
- package/dist/utils/compressed-storage.js.map +1 -1
- package/dist/utils/csv.cjs.map +1 -1
- package/dist/utils/csv.js.map +1 -1
- package/dist/utils/dev-mode.cjs.map +1 -1
- package/dist/utils/dev-mode.js.map +1 -1
- package/dist/utils/duplicate-instance.cjs.map +1 -1
- package/dist/utils/duplicate-instance.js.map +1 -1
- package/dist/utils/format.cjs.map +1 -1
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/functions.cjs +1 -1
- package/dist/utils/functions.cjs.map +1 -1
- package/dist/utils/functions.js +1 -1
- package/dist/utils/functions.js.map +1 -1
- package/dist/utils/guards.cjs.map +1 -1
- package/dist/utils/guards.js.map +1 -1
- package/dist/utils/ids.cjs.map +1 -1
- package/dist/utils/ids.js.map +1 -1
- package/dist/utils/intl-cache.cjs.map +1 -1
- package/dist/utils/intl-cache.js.map +1 -1
- package/dist/utils/json-frame.cjs.map +1 -1
- package/dist/utils/json-frame.js.map +1 -1
- package/dist/utils/numbers.cjs.map +1 -1
- package/dist/utils/numbers.js.map +1 -1
- package/dist/utils/objects.cjs.map +1 -1
- package/dist/utils/objects.js.map +1 -1
- package/dist/utils/owner-fingerprint.cjs.map +1 -1
- package/dist/utils/owner-fingerprint.js.map +1 -1
- package/dist/utils/promises.cjs.map +1 -1
- package/dist/utils/promises.js.map +1 -1
- package/dist/utils/relative-time.cjs.map +1 -1
- package/dist/utils/relative-time.js.map +1 -1
- package/dist/utils/safe-url.cjs.map +1 -1
- package/dist/utils/safe-url.js.map +1 -1
- package/dist/utils/schema-like.cjs.map +1 -1
- package/dist/utils/schema-like.js.map +1 -1
- package/dist/utils/storage.cjs +1 -1
- package/dist/utils/storage.cjs.map +1 -1
- package/dist/utils/storage.js +2 -2
- package/dist/utils/storage.js.map +1 -1
- package/dist/utils/strings.cjs.map +1 -1
- package/dist/utils/strings.js.map +1 -1
- package/dist/utils/xlsx.cjs.map +1 -1
- package/dist/utils/xlsx.js.map +1 -1
- package/dist/vision/core/canvas.cjs.map +1 -1
- package/dist/vision/core/canvas.js.map +1 -1
- package/dist/vision/core/dtypes.cjs.map +1 -1
- package/dist/vision/core/dtypes.js.map +1 -1
- package/dist/vision/core/exceptions.cjs.map +1 -1
- package/dist/vision/core/exceptions.js.map +1 -1
- package/dist/vision/core/graph.cjs.map +1 -1
- package/dist/vision/core/graph.js.map +1 -1
- package/dist/vision/core/metadata.cjs +1 -1
- package/dist/vision/core/metadata.cjs.map +1 -1
- package/dist/vision/core/metadata.js +9 -26
- package/dist/vision/core/metadata.js.map +1 -1
- package/dist/vision/core/providers.cjs.map +1 -1
- package/dist/vision/core/providers.js.map +1 -1
- package/dist/vision/core/session.cjs.map +1 -1
- package/dist/vision/core/session.js.map +1 -1
- package/dist/vision/core/timing.cjs.map +1 -1
- package/dist/vision/core/timing.js.map +1 -1
- package/dist/vision/fusion.cjs.map +1 -1
- package/dist/vision/fusion.js.map +1 -1
- package/dist/vision/index.cjs.map +1 -1
- package/dist/vision/index.js.map +1 -1
- package/dist/vision/io/image.cjs.map +1 -1
- package/dist/vision/io/image.js.map +1 -1
- package/dist/vision/labels.cjs.map +1 -1
- package/dist/vision/labels.js.map +1 -1
- package/dist/vision/luminance.cjs.map +1 -1
- package/dist/vision/luminance.js.map +1 -1
- package/dist/vision/normalization.cjs.map +1 -1
- package/dist/vision/normalization.js.map +1 -1
- package/dist/vision/postprocess/classification.cjs.map +1 -1
- package/dist/vision/postprocess/classification.js.map +1 -1
- package/dist/vision/postprocess/detection.cjs.map +1 -1
- package/dist/vision/postprocess/detection.js.map +1 -1
- package/dist/vision/postprocess/segmentation.cjs.map +1 -1
- package/dist/vision/postprocess/segmentation.js.map +1 -1
- package/dist/vision/preprocess/image.cjs.map +1 -1
- package/dist/vision/preprocess/image.js.map +1 -1
- package/dist/vision/preprocess/pipeline.cjs.map +1 -1
- package/dist/vision/preprocess/pipeline.js.map +1 -1
- package/dist/vision/results.cjs.map +1 -1
- package/dist/vision/results.js.map +1 -1
- package/dist/vision/tasks/base.cjs.map +1 -1
- package/dist/vision/tasks/base.js.map +1 -1
- package/dist/vision/tasks/classifier.cjs.map +1 -1
- package/dist/vision/tasks/classifier.js.map +1 -1
- package/dist/vision/tasks/detectClassify.cjs.map +1 -1
- package/dist/vision/tasks/detectClassify.js.map +1 -1
- package/dist/vision/tasks/detector.cjs.map +1 -1
- package/dist/vision/tasks/detector.js.map +1 -1
- package/dist/vision/tasks/segmenter.cjs.map +1 -1
- package/dist/vision/tasks/segmenter.js.map +1 -1
- package/dist/vision/types.cjs.map +1 -1
- package/dist/vision/types.js.map +1 -1
- package/dist/vision/use-camera-stream.cjs +1 -1
- package/dist/vision/use-camera-stream.cjs.map +1 -1
- package/dist/vision/use-camera-stream.js +3 -9
- package/dist/vision/use-camera-stream.js.map +1 -1
- package/dist/vision/use-live-luminance.cjs +1 -1
- package/dist/vision/use-live-luminance.cjs.map +1 -1
- package/dist/vision/use-live-luminance.js +1 -5
- package/dist/vision/use-live-luminance.js.map +1 -1
- package/dist/vite/base-url.cjs.map +1 -1
- package/dist/vite/base-url.js.map +1 -1
- package/dist/vite/create-vite-config.cjs.map +1 -1
- package/dist/vite/create-vite-config.js.map +1 -1
- package/dist/vite/narrow-tokens.cjs.map +1 -1
- package/dist/vite/narrow-tokens.js.map +1 -1
- package/dist/vite/tempest-csp.cjs +1 -1
- package/dist/vite/tempest-csp.cjs.map +1 -1
- package/dist/vite/tempest-csp.js +2 -10
- package/dist/vite/tempest-csp.js.map +1 -1
- package/dist/vite/tempest-icons.cjs.map +1 -1
- package/dist/vite/tempest-icons.js.map +1 -1
- package/dist/vite/tempest-pwa-dev-sw.cjs +1 -1
- package/dist/vite/tempest-pwa-dev-sw.cjs.map +1 -1
- package/dist/vite/tempest-pwa-dev-sw.js +9 -16
- package/dist/vite/tempest-pwa-dev-sw.js.map +1 -1
- package/dist/vite/tempest-pwa-icons.cjs.map +1 -1
- package/dist/vite/tempest-pwa-icons.js.map +1 -1
- package/dist/vite/tempest-pwa-manifest.cjs.map +1 -1
- package/dist/vite/tempest-pwa-manifest.js.map +1 -1
- package/dist/vite/tempest-styles.cjs.map +1 -1
- package/dist/vite/tempest-styles.js.map +1 -1
- package/dist/vite/tempest-vitest.cjs.map +1 -1
- package/dist/vite/tempest-vitest.js.map +1 -1
- package/dist/webrtc/link-stats.cjs.map +1 -1
- package/dist/webrtc/link-stats.js.map +1 -1
- package/dist/webrtc/mesh-quality.cjs.map +1 -1
- package/dist/webrtc/mesh-quality.js.map +1 -1
- package/dist/webrtc/opus-sdp.cjs.map +1 -1
- package/dist/webrtc/opus-sdp.js.map +1 -1
- package/dist/webrtc/peer-link.cjs +1 -1
- package/dist/webrtc/peer-link.cjs.map +1 -1
- package/dist/webrtc/peer-link.js +2 -5
- package/dist/webrtc/peer-link.js.map +1 -1
- package/dist/webrtc/peer-mesh.cjs +1 -1
- package/dist/webrtc/peer-mesh.cjs.map +1 -1
- package/dist/webrtc/peer-mesh.js +8 -24
- package/dist/webrtc/peer-mesh.js.map +1 -1
- package/dist/webrtc/sender-bitrate.cjs.map +1 -1
- package/dist/webrtc/sender-bitrate.js.map +1 -1
- package/dist/webrtc/use-link-stats.cjs.map +1 -1
- package/dist/webrtc/use-link-stats.js.map +1 -1
- package/dist/ws/create-web-socket.cjs +1 -1
- package/dist/ws/create-web-socket.cjs.map +1 -1
- package/dist/ws/create-web-socket.js +4 -22
- package/dist/ws/create-web-socket.js.map +1 -1
- package/dist/ws/resilience.cjs.map +1 -1
- package/dist/ws/resilience.js.map +1 -1
- package/dist/ws/use-web-socket.cjs.map +1 -1
- package/dist/ws/use-web-socket.js.map +1 -1
- package/package.json +9 -6
- package/template/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"growthbook-adapter.js","names":[],"sources":["../../src/feature-flags/growthbook-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\n/**\n * Minimal subset of [`@growthbook/growthbook`](https://docs.growthbook.io/lib/js)\n * used by the adapter. Pass a `GrowthBook` instance directly.\n */\nexport interface GrowthBookLike {\n isOn: (key: string) => boolean;\n getFeatureValue: <T>(key: string, defaultValue: T) => T;\n /** Registers a renderer fired whenever GrowthBook re-evaluates features. */\n setRenderer?: (renderer: () => void) => void;\n}\n\nexport interface CreateGrowthBookFeatureFlagsAdapterOptions {\n /** The GrowthBook instance. Required. */\n growthbook: GrowthBookLike;\n}\n\n/**\n * Build a [[FeatureFlagsAdapter]] backed by a GrowthBook instance. Apps\n * initialise GrowthBook themselves (so they can load features over the\n * network, set attributes, etc.) — the adapter just routes lookups.\n *\n * Mapping:\n * - `isEnabled(key, default)` → `growthbook.isOn(key)` (falls back to `default` if no value)\n * - `get(key, default)` → `growthbook.getFeatureValue(key, default)`\n * - `onChange(listener)` → `growthbook.setRenderer(listener)` (single-renderer SDK constraint)\n *\n * @example\n * import { GrowthBook } from \"@growthbook/growthbook\";\n * import { FeatureFlagsProvider, createGrowthBookFeatureFlagsAdapter } from \"tempest-react-sdk\";\n *\n * const gb = new GrowthBook({ apiHost: \"...\", clientKey: \"...\" });\n * await gb.loadFeatures();\n * const adapter = createGrowthBookFeatureFlagsAdapter({ growthbook: gb });\n *\n * <FeatureFlagsProvider adapter={adapter}><App /></FeatureFlagsProvider>;\n */\nexport function createGrowthBookFeatureFlagsAdapter(\n options: CreateGrowthBookFeatureFlagsAdapterOptions,\n): FeatureFlagsAdapter {\n const { growthbook } = options;\n const listeners = new Set<() => void>();\n let rendererInstalled = false;\n\n function ensureRenderer(): void {\n if (rendererInstalled || !growthbook.setRenderer) return;\n rendererInstalled = true;\n growthbook.setRenderer(() => {\n for (const listener of listeners) listener();\n });\n }\n\n return {\n isEnabled(key: string, defaultValue = false) {\n const value = growthbook.isOn(key);\n if (typeof value === \"boolean\") return value;\n return defaultValue;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return growthbook.getFeatureValue(key, defaultValue as T);\n },\n onChange(listener) {\n ensureRenderer();\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n"],"mappings":";AAsCA,
|
|
1
|
+
{"version":3,"file":"growthbook-adapter.js","names":["createGrowthBookFeatureFlagsAdapter","options","listeners","rendererInstalled","ensureRenderer","growthbook","listener","value","key","defaultValue"],"sources":["../../src/feature-flags/growthbook-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\n/**\n * Minimal subset of [`@growthbook/growthbook`](https://docs.growthbook.io/lib/js)\n * used by the adapter. Pass a `GrowthBook` instance directly.\n */\nexport interface GrowthBookLike {\n isOn: (key: string) => boolean;\n getFeatureValue: <T>(key: string, defaultValue: T) => T;\n /** Registers a renderer fired whenever GrowthBook re-evaluates features. */\n setRenderer?: (renderer: () => void) => void;\n}\n\nexport interface CreateGrowthBookFeatureFlagsAdapterOptions {\n /** The GrowthBook instance. Required. */\n growthbook: GrowthBookLike;\n}\n\n/**\n * Build a [[FeatureFlagsAdapter]] backed by a GrowthBook instance. Apps\n * initialise GrowthBook themselves (so they can load features over the\n * network, set attributes, etc.) — the adapter just routes lookups.\n *\n * Mapping:\n * - `isEnabled(key, default)` → `growthbook.isOn(key)` (falls back to `default` if no value)\n * - `get(key, default)` → `growthbook.getFeatureValue(key, default)`\n * - `onChange(listener)` → `growthbook.setRenderer(listener)` (single-renderer SDK constraint)\n *\n * @example\n * import { GrowthBook } from \"@growthbook/growthbook\";\n * import { FeatureFlagsProvider, createGrowthBookFeatureFlagsAdapter } from \"tempest-react-sdk\";\n *\n * const gb = new GrowthBook({ apiHost: \"...\", clientKey: \"...\" });\n * await gb.loadFeatures();\n * const adapter = createGrowthBookFeatureFlagsAdapter({ growthbook: gb });\n *\n * <FeatureFlagsProvider adapter={adapter}><App /></FeatureFlagsProvider>;\n */\nexport function createGrowthBookFeatureFlagsAdapter(\n options: CreateGrowthBookFeatureFlagsAdapterOptions,\n): FeatureFlagsAdapter {\n const { growthbook } = options;\n const listeners = new Set<() => void>();\n let rendererInstalled = false;\n\n function ensureRenderer(): void {\n if (rendererInstalled || !growthbook.setRenderer) return;\n rendererInstalled = true;\n growthbook.setRenderer(() => {\n for (const listener of listeners) listener();\n });\n }\n\n return {\n isEnabled(key: string, defaultValue = false) {\n const value = growthbook.isOn(key);\n if (typeof value === \"boolean\") return value;\n return defaultValue;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return growthbook.getFeatureValue(key, defaultValue as T);\n },\n onChange(listener) {\n ensureRenderer();\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n"],"mappings":";AAsCA,SAAgBA,EACZ,GACmB;CACnB,IAAM,EAAE,kBAAeC,GACjBC,oBAAY,IAAI,IAAgB,GAClCC,IAAoB;CAExB,SAASC,IAAuB;EAC5B,AAAI,MAAsBC,EAAW,gBACrC,IAAoB,IACpBA,EAAW,kBAAkB;GACzB,KAAK,IAAMC,KAAYJ,GAAW,EAAS;EAC/C,CAAC;CACL;CAEA,OAAO;EACH,UAAU,GAAa,IAAe,IAAO;GACzC,IAAMK,IAAQF,EAAW,KAAKG,CAAG;GAEjC,OADI,OAAOD,KAAU,YAAkBA,IAChCE;EACX;EACA,IAAqC,GAAa,GAAqB;GACnE,OAAOJ,EAAW,gBAAgBG,GAAKC,CAAiB;EAC5D;EACA,SAAS,GAAU;GAGf,OAFAL,EAAe,GACfF,EAAU,IAAII,CAAQ,SACT;IACT,EAAU,OAAOA,CAAQ;GAC7B;EACJ;CACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-adapter.cjs","names":[],"sources":["../../src/feature-flags/in-memory-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\nexport interface InMemoryFlagsOptions {\n initial?: Record<string, FlagValue>;\n}\n\n/**\n * Trivial in-memory adapter. Suitable for tests, local development, or as a\n * fallback wrapping the real provider while it loads.\n */\nexport function createInMemoryFlags(options: InMemoryFlagsOptions = {}): FeatureFlagsAdapter & {\n set: (key: string, value: FlagValue) => void;\n} {\n const flags: Record<string, FlagValue> = { ...(options.initial ?? {}) };\n const listeners = new Set<() => void>();\n\n function notify(): void {\n for (const listener of listeners) listener();\n }\n\n return {\n isEnabled(key, defaultValue = false) {\n return key in flags ? Boolean(flags[key]) : defaultValue;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return (key in flags ? (flags[key] as T) : (defaultValue as T)) as T;\n },\n onChange(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n set(key, value) {\n flags[key] = value;\n notify();\n },\n };\n}\n"],"mappings":"AAUA,
|
|
1
|
+
{"version":3,"file":"in-memory-adapter.cjs","names":["createInMemoryFlags","flags","options","listeners","notify","listener","key","defaultValue","value"],"sources":["../../src/feature-flags/in-memory-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\nexport interface InMemoryFlagsOptions {\n initial?: Record<string, FlagValue>;\n}\n\n/**\n * Trivial in-memory adapter. Suitable for tests, local development, or as a\n * fallback wrapping the real provider while it loads.\n */\nexport function createInMemoryFlags(options: InMemoryFlagsOptions = {}): FeatureFlagsAdapter & {\n set: (key: string, value: FlagValue) => void;\n} {\n const flags: Record<string, FlagValue> = { ...(options.initial ?? {}) };\n const listeners = new Set<() => void>();\n\n function notify(): void {\n for (const listener of listeners) listener();\n }\n\n return {\n isEnabled(key, defaultValue = false) {\n return key in flags ? Boolean(flags[key]) : defaultValue;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return (key in flags ? (flags[key] as T) : (defaultValue as T)) as T;\n },\n onChange(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n set(key, value) {\n flags[key] = value;\n notify();\n },\n };\n}\n"],"mappings":"AAUA,SAAgBA,EAAoB,EAAgC,CAAC,EAEnE,CACE,IAAMC,EAAmC,CAAE,GAAIC,EAAQ,SAAW,CAAC,CAAG,EAChEC,EAAY,IAAI,IAEtB,SAASC,GAAe,CACpB,IAAK,IAAMC,KAAYF,EAAWE,EAAS,CAC/C,CAEA,MAAO,CACH,UAAU,EAAK,EAAe,GAAO,CACjC,OAAOC,KAAOL,EAAQ,EAAQA,EAAMK,GAAQC,CAChD,EACA,IAAqC,EAAa,EAAqB,CACnE,OAAQD,KAAOL,EAASA,EAAMK,GAAcC,CAChD,EACA,SAAS,EAAU,CAEf,OADAJ,EAAU,IAAIE,CAAQ,MACTF,EAAU,OAAOE,CAAQ,CAC1C,EACA,IAAI,EAAK,EAAO,CACZ,EAAMC,GAAOE,EACbJ,EAAO,CACX,CACJ,CACJ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-adapter.js","names":[],"sources":["../../src/feature-flags/in-memory-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\nexport interface InMemoryFlagsOptions {\n initial?: Record<string, FlagValue>;\n}\n\n/**\n * Trivial in-memory adapter. Suitable for tests, local development, or as a\n * fallback wrapping the real provider while it loads.\n */\nexport function createInMemoryFlags(options: InMemoryFlagsOptions = {}): FeatureFlagsAdapter & {\n set: (key: string, value: FlagValue) => void;\n} {\n const flags: Record<string, FlagValue> = { ...(options.initial ?? {}) };\n const listeners = new Set<() => void>();\n\n function notify(): void {\n for (const listener of listeners) listener();\n }\n\n return {\n isEnabled(key, defaultValue = false) {\n return key in flags ? Boolean(flags[key]) : defaultValue;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return (key in flags ? (flags[key] as T) : (defaultValue as T)) as T;\n },\n onChange(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n set(key, value) {\n flags[key] = value;\n notify();\n },\n };\n}\n"],"mappings":";AAUA,
|
|
1
|
+
{"version":3,"file":"in-memory-adapter.js","names":["createInMemoryFlags","flags","options","listeners","notify","listener","key","defaultValue","value"],"sources":["../../src/feature-flags/in-memory-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\nexport interface InMemoryFlagsOptions {\n initial?: Record<string, FlagValue>;\n}\n\n/**\n * Trivial in-memory adapter. Suitable for tests, local development, or as a\n * fallback wrapping the real provider while it loads.\n */\nexport function createInMemoryFlags(options: InMemoryFlagsOptions = {}): FeatureFlagsAdapter & {\n set: (key: string, value: FlagValue) => void;\n} {\n const flags: Record<string, FlagValue> = { ...(options.initial ?? {}) };\n const listeners = new Set<() => void>();\n\n function notify(): void {\n for (const listener of listeners) listener();\n }\n\n return {\n isEnabled(key, defaultValue = false) {\n return key in flags ? Boolean(flags[key]) : defaultValue;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return (key in flags ? (flags[key] as T) : (defaultValue as T)) as T;\n },\n onChange(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n set(key, value) {\n flags[key] = value;\n notify();\n },\n };\n}\n"],"mappings":";AAUA,SAAgBA,EAAoB,IAAgC,CAAC,GAEnE;CACE,IAAMC,IAAmC,EAAE,GAAIC,EAAQ,WAAW,CAAC,EAAG,GAChEC,oBAAY,IAAI,IAAgB;CAEtC,SAASC,IAAe;EACpB,KAAK,IAAMC,KAAYF,GAAW,EAAS;CAC/C;CAEA,OAAO;EACH,UAAU,GAAK,IAAe,IAAO;GACjC,OAAOG,KAAOL,IAAQ,EAAQA,EAAMK,KAAQC;EAChD;EACA,IAAqC,GAAa,GAAqB;GACnE,OAAQD,KAAOL,IAASA,EAAMK,KAAcC;EAChD;EACA,SAAS,GAAU;GAEf,OADAJ,EAAU,IAAIE,CAAQ,SACTF,EAAU,OAAOE,CAAQ;EAC1C;EACA,IAAI,GAAK,GAAO;GAEZ,AADA,EAAMC,KAAOE,GACbJ,EAAO;EACX;CACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchdarkly-adapter.cjs","names":[],"sources":["../../src/feature-flags/launchdarkly-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\n/**\n * Minimal subset of [`launchdarkly-js-client-sdk`](https://docs.launchdarkly.com/sdk/client-side/javascript)\n * used by the adapter. Pass an existing `LDClient`.\n */\nexport interface LDClientLike {\n variation: <T = unknown>(key: string, defaultValue: T) => T;\n on?: (event: string, handler: () => void) => void;\n off?: (event: string, handler: () => void) => void;\n}\n\nexport interface CreateLaunchDarklyFeatureFlagsAdapterOptions {\n /** The LaunchDarkly JS client. Required. */\n client: LDClientLike;\n}\n\n/**\n * Build a [[FeatureFlagsAdapter]] backed by a LaunchDarkly JS client. Apps\n * initialise the client themselves (`LDClient.initialize(envKey, ctx)`) and\n * pass it in.\n *\n * Mapping:\n * - `isEnabled(key, default)` → `client.variation(key, default) === true`\n * - `get(key, default)` → `client.variation(key, default)`\n * - `onChange(listener)` → `client.on(\"change\", listener)` / `client.off(\"change\", listener)`\n *\n * @example\n * import * as LDClient from \"launchdarkly-js-client-sdk\";\n * import { FeatureFlagsProvider, createLaunchDarklyFeatureFlagsAdapter } from \"tempest-react-sdk\";\n *\n * const client = LDClient.initialize(import.meta.env.VITE_LD_CLIENT_ID, { kind: \"user\", key: userId });\n * await client.waitUntilReady();\n * const adapter = createLaunchDarklyFeatureFlagsAdapter({ client });\n *\n * <FeatureFlagsProvider adapter={adapter}><App /></FeatureFlagsProvider>;\n */\nexport function createLaunchDarklyFeatureFlagsAdapter(\n options: CreateLaunchDarklyFeatureFlagsAdapterOptions,\n): FeatureFlagsAdapter {\n const { client } = options;\n\n return {\n isEnabled(key: string, defaultValue = false) {\n return client.variation<boolean>(key, defaultValue) === true;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return client.variation<T>(key, defaultValue as T);\n },\n onChange(listener) {\n if (!client.on || !client.off) {\n return () => {};\n }\n client.on(\"change\", listener);\n return () => {\n client.off!(\"change\", listener);\n };\n },\n };\n}\n"],"mappings":"AAqCA,
|
|
1
|
+
{"version":3,"file":"launchdarkly-adapter.cjs","names":["createLaunchDarklyFeatureFlagsAdapter","options","client","key","defaultValue","listener"],"sources":["../../src/feature-flags/launchdarkly-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\n/**\n * Minimal subset of [`launchdarkly-js-client-sdk`](https://docs.launchdarkly.com/sdk/client-side/javascript)\n * used by the adapter. Pass an existing `LDClient`.\n */\nexport interface LDClientLike {\n variation: <T = unknown>(key: string, defaultValue: T) => T;\n on?: (event: string, handler: () => void) => void;\n off?: (event: string, handler: () => void) => void;\n}\n\nexport interface CreateLaunchDarklyFeatureFlagsAdapterOptions {\n /** The LaunchDarkly JS client. Required. */\n client: LDClientLike;\n}\n\n/**\n * Build a [[FeatureFlagsAdapter]] backed by a LaunchDarkly JS client. Apps\n * initialise the client themselves (`LDClient.initialize(envKey, ctx)`) and\n * pass it in.\n *\n * Mapping:\n * - `isEnabled(key, default)` → `client.variation(key, default) === true`\n * - `get(key, default)` → `client.variation(key, default)`\n * - `onChange(listener)` → `client.on(\"change\", listener)` / `client.off(\"change\", listener)`\n *\n * @example\n * import * as LDClient from \"launchdarkly-js-client-sdk\";\n * import { FeatureFlagsProvider, createLaunchDarklyFeatureFlagsAdapter } from \"tempest-react-sdk\";\n *\n * const client = LDClient.initialize(import.meta.env.VITE_LD_CLIENT_ID, { kind: \"user\", key: userId });\n * await client.waitUntilReady();\n * const adapter = createLaunchDarklyFeatureFlagsAdapter({ client });\n *\n * <FeatureFlagsProvider adapter={adapter}><App /></FeatureFlagsProvider>;\n */\nexport function createLaunchDarklyFeatureFlagsAdapter(\n options: CreateLaunchDarklyFeatureFlagsAdapterOptions,\n): FeatureFlagsAdapter {\n const { client } = options;\n\n return {\n isEnabled(key: string, defaultValue = false) {\n return client.variation<boolean>(key, defaultValue) === true;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return client.variation<T>(key, defaultValue as T);\n },\n onChange(listener) {\n if (!client.on || !client.off) {\n return () => {};\n }\n client.on(\"change\", listener);\n return () => {\n client.off!(\"change\", listener);\n };\n },\n };\n}\n"],"mappings":"AAqCA,SAAgBA,EACZ,EACmB,CACnB,GAAM,CAAE,UAAWC,EAEnB,MAAO,CACH,UAAU,EAAa,EAAe,GAAO,CACzC,OAAOC,EAAO,UAAmBC,EAAKC,CAAY,IAAM,EAC5D,EACA,IAAqC,EAAa,EAAqB,CACnE,OAAOF,EAAO,UAAaC,EAAKC,CAAiB,CACrD,EACA,SAAS,EAAU,CAKf,MAJI,CAACF,EAAO,IAAM,CAACA,EAAO,QACT,CAAC,GAElBA,EAAO,GAAG,SAAUG,CAAQ,MACf,CACTH,EAAO,IAAK,SAAUG,CAAQ,CAClC,EACJ,CACJ,CACJ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchdarkly-adapter.js","names":[],"sources":["../../src/feature-flags/launchdarkly-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\n/**\n * Minimal subset of [`launchdarkly-js-client-sdk`](https://docs.launchdarkly.com/sdk/client-side/javascript)\n * used by the adapter. Pass an existing `LDClient`.\n */\nexport interface LDClientLike {\n variation: <T = unknown>(key: string, defaultValue: T) => T;\n on?: (event: string, handler: () => void) => void;\n off?: (event: string, handler: () => void) => void;\n}\n\nexport interface CreateLaunchDarklyFeatureFlagsAdapterOptions {\n /** The LaunchDarkly JS client. Required. */\n client: LDClientLike;\n}\n\n/**\n * Build a [[FeatureFlagsAdapter]] backed by a LaunchDarkly JS client. Apps\n * initialise the client themselves (`LDClient.initialize(envKey, ctx)`) and\n * pass it in.\n *\n * Mapping:\n * - `isEnabled(key, default)` → `client.variation(key, default) === true`\n * - `get(key, default)` → `client.variation(key, default)`\n * - `onChange(listener)` → `client.on(\"change\", listener)` / `client.off(\"change\", listener)`\n *\n * @example\n * import * as LDClient from \"launchdarkly-js-client-sdk\";\n * import { FeatureFlagsProvider, createLaunchDarklyFeatureFlagsAdapter } from \"tempest-react-sdk\";\n *\n * const client = LDClient.initialize(import.meta.env.VITE_LD_CLIENT_ID, { kind: \"user\", key: userId });\n * await client.waitUntilReady();\n * const adapter = createLaunchDarklyFeatureFlagsAdapter({ client });\n *\n * <FeatureFlagsProvider adapter={adapter}><App /></FeatureFlagsProvider>;\n */\nexport function createLaunchDarklyFeatureFlagsAdapter(\n options: CreateLaunchDarklyFeatureFlagsAdapterOptions,\n): FeatureFlagsAdapter {\n const { client } = options;\n\n return {\n isEnabled(key: string, defaultValue = false) {\n return client.variation<boolean>(key, defaultValue) === true;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return client.variation<T>(key, defaultValue as T);\n },\n onChange(listener) {\n if (!client.on || !client.off) {\n return () => {};\n }\n client.on(\"change\", listener);\n return () => {\n client.off!(\"change\", listener);\n };\n },\n };\n}\n"],"mappings":";AAqCA,
|
|
1
|
+
{"version":3,"file":"launchdarkly-adapter.js","names":["createLaunchDarklyFeatureFlagsAdapter","options","client","key","defaultValue","listener"],"sources":["../../src/feature-flags/launchdarkly-adapter.ts"],"sourcesContent":["import type { FeatureFlagsAdapter, FlagValue } from \"./types\";\n\n/**\n * Minimal subset of [`launchdarkly-js-client-sdk`](https://docs.launchdarkly.com/sdk/client-side/javascript)\n * used by the adapter. Pass an existing `LDClient`.\n */\nexport interface LDClientLike {\n variation: <T = unknown>(key: string, defaultValue: T) => T;\n on?: (event: string, handler: () => void) => void;\n off?: (event: string, handler: () => void) => void;\n}\n\nexport interface CreateLaunchDarklyFeatureFlagsAdapterOptions {\n /** The LaunchDarkly JS client. Required. */\n client: LDClientLike;\n}\n\n/**\n * Build a [[FeatureFlagsAdapter]] backed by a LaunchDarkly JS client. Apps\n * initialise the client themselves (`LDClient.initialize(envKey, ctx)`) and\n * pass it in.\n *\n * Mapping:\n * - `isEnabled(key, default)` → `client.variation(key, default) === true`\n * - `get(key, default)` → `client.variation(key, default)`\n * - `onChange(listener)` → `client.on(\"change\", listener)` / `client.off(\"change\", listener)`\n *\n * @example\n * import * as LDClient from \"launchdarkly-js-client-sdk\";\n * import { FeatureFlagsProvider, createLaunchDarklyFeatureFlagsAdapter } from \"tempest-react-sdk\";\n *\n * const client = LDClient.initialize(import.meta.env.VITE_LD_CLIENT_ID, { kind: \"user\", key: userId });\n * await client.waitUntilReady();\n * const adapter = createLaunchDarklyFeatureFlagsAdapter({ client });\n *\n * <FeatureFlagsProvider adapter={adapter}><App /></FeatureFlagsProvider>;\n */\nexport function createLaunchDarklyFeatureFlagsAdapter(\n options: CreateLaunchDarklyFeatureFlagsAdapterOptions,\n): FeatureFlagsAdapter {\n const { client } = options;\n\n return {\n isEnabled(key: string, defaultValue = false) {\n return client.variation<boolean>(key, defaultValue) === true;\n },\n get<T extends FlagValue = FlagValue>(key: string, defaultValue?: T): T {\n return client.variation<T>(key, defaultValue as T);\n },\n onChange(listener) {\n if (!client.on || !client.off) {\n return () => {};\n }\n client.on(\"change\", listener);\n return () => {\n client.off!(\"change\", listener);\n };\n },\n };\n}\n"],"mappings":";AAqCA,SAAgBA,EACZ,GACmB;CACnB,IAAM,EAAE,cAAWC;CAEnB,OAAO;EACH,UAAU,GAAa,IAAe,IAAO;GACzC,OAAOC,EAAO,UAAmBC,GAAKC,CAAY,MAAM;EAC5D;EACA,IAAqC,GAAa,GAAqB;GACnE,OAAOF,EAAO,UAAaC,GAAKC,CAAiB;EACrD;EACA,SAAS,GAAU;GAKf,OAJI,CAACF,EAAO,MAAM,CAACA,EAAO,YACT,CAAC,KAElBA,EAAO,GAAG,UAAUG,CAAQ,SACf;IACT,EAAO,IAAK,UAAUA,CAAQ;GAClC;EACJ;CACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormField.cjs","names":[],"sources":["../../src/forms/FormField.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — FormFieldChildProps is not a component's props — it\n * is the contract handed to whatever control the field wraps, and it is exactly what\n * react-hook-form's register returns (name, value, onChange, onBlur, ref) plus what\n * the field adds around it (error, label, helperText, required, id). Trimming it\n * breaks the wiring it exists to describe.\n */\nimport { cloneElement, isValidElement } from \"react\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport {\n Controller,\n useFormContext,\n type Control,\n type ControllerRenderProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { DUPLICATE_COPY_REMEDY } from \"../utils/duplicate-instance\";\n\nexport interface FormFieldChildProps {\n name: string;\n value: unknown;\n onChange: (...args: unknown[]) => void;\n onBlur: () => void;\n ref: ControllerRenderProps[\"ref\"];\n error?: string;\n \"aria-invalid\"?: boolean;\n \"aria-describedby\"?: string;\n label?: ReactNode;\n helperText?: ReactNode;\n required?: boolean;\n id?: string;\n}\n\nexport interface FormFieldProps<\n TValues extends FieldValues = FieldValues,\n TName extends FieldPath<TValues> = FieldPath<TValues>,\n> {\n /** Field name (dot path supported, e.g. `\"address.city\"`). */\n name: TName;\n /** Field label rendered by the wrapped control. */\n label?: ReactNode;\n /** Helper text rendered by the wrapped control when there is no error. */\n helperText?: ReactNode;\n /** When `true`, marks the control as required (visual hint + native attribute). */\n required?: boolean;\n /**\n * Explicit `control` from `useForm()` / `useZodForm()`. Optional when a\n * `FormProvider` is in the tree.\n */\n control?: Control<TValues>;\n /**\n * The control to render. Receives `{ value, onChange, onBlur, ref, error, ... }`\n * via `cloneElement`. Pass `<Input />`, `<Select />`, masked inputs, etc.\n */\n children: ReactElement;\n}\n\n/**\n * Glue between `react-hook-form` `Controller` and the SDK's controlled\n * components. Wraps any control that accepts `{ value, onChange, label,\n * error }` and routes RHF state into it — eliminating the per-field\n * `<Controller render={...} />` boilerplate.\n *\n * @example\n * const form = useZodForm(schema);\n * <FormProvider {...form}>\n * <Form>\n * <FormField name=\"email\" label=\"Email\" required>\n * <Input type=\"email\" />\n * </FormField>\n * <FormField name=\"cep\" label=\"CEP\">\n * <CEPInput />\n * </FormField>\n * </Form>\n * </FormProvider>;\n */\n/**\n * What is thrown when no `control` can be resolved.\n *\n * It names **two** causes, because the throw cannot tell them apart and the\n * second one is the expensive one. The obvious reading — no provider, no prop —\n * is usually right. But the identical throw happens with a `<FormProvider>`\n * mounted directly above, when the app and the SDK resolve two different copies\n * of `react-hook-form`: the provider publishes on the app copy's context and\n * `useFormContext` here reads the SDK copy's, which is empty. Someone looking at\n * a provider they can see, being told it is missing, does not go looking at\n * `node_modules` — so the message has to send them there.\n */\nconst NO_CONTROL_MESSAGE =\n \"FormField found no form to bind to. Either pass a `control` prop, or mount a \" +\n \"<FormProvider> above it. If a <FormProvider> IS mounted above it, the app and the \" +\n \"SDK are resolving two copies of react-hook-form: the provider publishes on one \" +\n \"copy's context and this field reads the other's. \" +\n DUPLICATE_COPY_REMEDY;\n\nexport function FormField<\n TValues extends FieldValues = FieldValues,\n TName extends FieldPath<TValues> = FieldPath<TValues>,\n>({ name, label, helperText, required, control, children }: FormFieldProps<TValues, TName>) {\n const context = useFormContext<TValues>();\n const resolvedControl = control ?? context?.control;\n if (!resolvedControl) {\n throw new Error(NO_CONTROL_MESSAGE);\n }\n\n return (\n <Controller\n name={name}\n control={resolvedControl}\n render={({ field, fieldState }) => {\n if (!isValidElement(children)) return children;\n const errorMessage = fieldState.error?.message;\n return cloneElement(children as ReactElement<FormFieldChildProps>, {\n name: field.name,\n value: field.value,\n onChange: field.onChange,\n onBlur: field.onBlur,\n ref: field.ref,\n label,\n helperText: errorMessage ? undefined : helperText,\n error: errorMessage,\n required,\n \"aria-invalid\": !!errorMessage,\n });\n }}\n />\n );\n}\n"],"mappings":"sIA0FA,
|
|
1
|
+
{"version":3,"file":"FormField.cjs","names":["DUPLICATE_COPY_REMEDY","useFormContext","Controller","isValidElement","cloneElement","require_duplicate_instance","react","react_jsx_runtime","react_hook_form","NO_CONTROL_MESSAGE","FormField","context","resolvedControl","control","children","errorMessage","fieldState","field","helperText"],"sources":["../../src/forms/FormField.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — FormFieldChildProps is not a component's props — it\n * is the contract handed to whatever control the field wraps, and it is exactly what\n * react-hook-form's register returns (name, value, onChange, onBlur, ref) plus what\n * the field adds around it (error, label, helperText, required, id). Trimming it\n * breaks the wiring it exists to describe.\n */\nimport { cloneElement, isValidElement } from \"react\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport {\n Controller,\n useFormContext,\n type Control,\n type ControllerRenderProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { DUPLICATE_COPY_REMEDY } from \"../utils/duplicate-instance\";\n\nexport interface FormFieldChildProps {\n name: string;\n value: unknown;\n onChange: (...args: unknown[]) => void;\n onBlur: () => void;\n ref: ControllerRenderProps[\"ref\"];\n error?: string;\n \"aria-invalid\"?: boolean;\n \"aria-describedby\"?: string;\n label?: ReactNode;\n helperText?: ReactNode;\n required?: boolean;\n id?: string;\n}\n\nexport interface FormFieldProps<\n TValues extends FieldValues = FieldValues,\n TName extends FieldPath<TValues> = FieldPath<TValues>,\n> {\n /** Field name (dot path supported, e.g. `\"address.city\"`). */\n name: TName;\n /** Field label rendered by the wrapped control. */\n label?: ReactNode;\n /** Helper text rendered by the wrapped control when there is no error. */\n helperText?: ReactNode;\n /** When `true`, marks the control as required (visual hint + native attribute). */\n required?: boolean;\n /**\n * Explicit `control` from `useForm()` / `useZodForm()`. Optional when a\n * `FormProvider` is in the tree.\n */\n control?: Control<TValues>;\n /**\n * The control to render. Receives `{ value, onChange, onBlur, ref, error, ... }`\n * via `cloneElement`. Pass `<Input />`, `<Select />`, masked inputs, etc.\n */\n children: ReactElement;\n}\n\n/**\n * Glue between `react-hook-form` `Controller` and the SDK's controlled\n * components. Wraps any control that accepts `{ value, onChange, label,\n * error }` and routes RHF state into it — eliminating the per-field\n * `<Controller render={...} />` boilerplate.\n *\n * @example\n * const form = useZodForm(schema);\n * <FormProvider {...form}>\n * <Form>\n * <FormField name=\"email\" label=\"Email\" required>\n * <Input type=\"email\" />\n * </FormField>\n * <FormField name=\"cep\" label=\"CEP\">\n * <CEPInput />\n * </FormField>\n * </Form>\n * </FormProvider>;\n */\n/**\n * What is thrown when no `control` can be resolved.\n *\n * It names **two** causes, because the throw cannot tell them apart and the\n * second one is the expensive one. The obvious reading — no provider, no prop —\n * is usually right. But the identical throw happens with a `<FormProvider>`\n * mounted directly above, when the app and the SDK resolve two different copies\n * of `react-hook-form`: the provider publishes on the app copy's context and\n * `useFormContext` here reads the SDK copy's, which is empty. Someone looking at\n * a provider they can see, being told it is missing, does not go looking at\n * `node_modules` — so the message has to send them there.\n */\nconst NO_CONTROL_MESSAGE =\n \"FormField found no form to bind to. Either pass a `control` prop, or mount a \" +\n \"<FormProvider> above it. If a <FormProvider> IS mounted above it, the app and the \" +\n \"SDK are resolving two copies of react-hook-form: the provider publishes on one \" +\n \"copy's context and this field reads the other's. \" +\n DUPLICATE_COPY_REMEDY;\n\nexport function FormField<\n TValues extends FieldValues = FieldValues,\n TName extends FieldPath<TValues> = FieldPath<TValues>,\n>({ name, label, helperText, required, control, children }: FormFieldProps<TValues, TName>) {\n const context = useFormContext<TValues>();\n const resolvedControl = control ?? context?.control;\n if (!resolvedControl) {\n throw new Error(NO_CONTROL_MESSAGE);\n }\n\n return (\n <Controller\n name={name}\n control={resolvedControl}\n render={({ field, fieldState }) => {\n if (!isValidElement(children)) return children;\n const errorMessage = fieldState.error?.message;\n return cloneElement(children as ReactElement<FormFieldChildProps>, {\n name: field.name,\n value: field.value,\n onChange: field.onChange,\n onBlur: field.onBlur,\n ref: field.ref,\n label,\n helperText: errorMessage ? undefined : helperText,\n error: errorMessage,\n required,\n \"aria-invalid\": !!errorMessage,\n });\n }}\n />\n );\n}\n"],"mappings":"A,sIA0FA,IAAMS,EACF,kSAIAT,EAAAA,sBAEJ,SAAgBU,EAGd,CAAE,OAAM,QAAO,aAAY,WAAU,UAAS,YAA4C,CACxF,IAAMC,GAAA,EAAUV,EAAAA,eAAAA,CAAwB,EAClCW,EAAkBC,GAAWF,GAAS,QAC5C,GAAI,CAACC,EACD,MAAU,MAAMH,CAAkB,EAGtC,OACI,EAAAF,EAAA,IAAA,CAACL,EAAAA,WAAD,CACU,OACN,QAASU,EACT,QAAS,CAAE,QAAO,gBAAiB,CAC/B,GAAI,EAAA,EAACT,EAAAA,eAAAA,CAAeW,CAAQ,EAAG,OAAOA,EACtC,IAAMC,EAAeC,EAAW,OAAO,QACvC,OAAA,EAAOZ,EAAAA,aAAAA,CAAaU,EAA+C,CAC/D,KAAMG,EAAM,KACZ,MAAOA,EAAM,MACb,SAAUA,EAAM,SAChB,OAAQA,EAAM,OACd,IAAKA,EAAM,IACX,QACA,WAAYF,EAAe,IAAA,GAAYG,EACvC,MAAOH,EACP,WACA,eAAgB,CAAC,CAACA,CACtB,CAAC,CACL,CACH,CAAA,CAET,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormField.js","names":[],"sources":["../../src/forms/FormField.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — FormFieldChildProps is not a component's props — it\n * is the contract handed to whatever control the field wraps, and it is exactly what\n * react-hook-form's register returns (name, value, onChange, onBlur, ref) plus what\n * the field adds around it (error, label, helperText, required, id). Trimming it\n * breaks the wiring it exists to describe.\n */\nimport { cloneElement, isValidElement } from \"react\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport {\n Controller,\n useFormContext,\n type Control,\n type ControllerRenderProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { DUPLICATE_COPY_REMEDY } from \"../utils/duplicate-instance\";\n\nexport interface FormFieldChildProps {\n name: string;\n value: unknown;\n onChange: (...args: unknown[]) => void;\n onBlur: () => void;\n ref: ControllerRenderProps[\"ref\"];\n error?: string;\n \"aria-invalid\"?: boolean;\n \"aria-describedby\"?: string;\n label?: ReactNode;\n helperText?: ReactNode;\n required?: boolean;\n id?: string;\n}\n\nexport interface FormFieldProps<\n TValues extends FieldValues = FieldValues,\n TName extends FieldPath<TValues> = FieldPath<TValues>,\n> {\n /** Field name (dot path supported, e.g. `\"address.city\"`). */\n name: TName;\n /** Field label rendered by the wrapped control. */\n label?: ReactNode;\n /** Helper text rendered by the wrapped control when there is no error. */\n helperText?: ReactNode;\n /** When `true`, marks the control as required (visual hint + native attribute). */\n required?: boolean;\n /**\n * Explicit `control` from `useForm()` / `useZodForm()`. Optional when a\n * `FormProvider` is in the tree.\n */\n control?: Control<TValues>;\n /**\n * The control to render. Receives `{ value, onChange, onBlur, ref, error, ... }`\n * via `cloneElement`. Pass `<Input />`, `<Select />`, masked inputs, etc.\n */\n children: ReactElement;\n}\n\n/**\n * Glue between `react-hook-form` `Controller` and the SDK's controlled\n * components. Wraps any control that accepts `{ value, onChange, label,\n * error }` and routes RHF state into it — eliminating the per-field\n * `<Controller render={...} />` boilerplate.\n *\n * @example\n * const form = useZodForm(schema);\n * <FormProvider {...form}>\n * <Form>\n * <FormField name=\"email\" label=\"Email\" required>\n * <Input type=\"email\" />\n * </FormField>\n * <FormField name=\"cep\" label=\"CEP\">\n * <CEPInput />\n * </FormField>\n * </Form>\n * </FormProvider>;\n */\n/**\n * What is thrown when no `control` can be resolved.\n *\n * It names **two** causes, because the throw cannot tell them apart and the\n * second one is the expensive one. The obvious reading — no provider, no prop —\n * is usually right. But the identical throw happens with a `<FormProvider>`\n * mounted directly above, when the app and the SDK resolve two different copies\n * of `react-hook-form`: the provider publishes on the app copy's context and\n * `useFormContext` here reads the SDK copy's, which is empty. Someone looking at\n * a provider they can see, being told it is missing, does not go looking at\n * `node_modules` — so the message has to send them there.\n */\nconst NO_CONTROL_MESSAGE =\n \"FormField found no form to bind to. Either pass a `control` prop, or mount a \" +\n \"<FormProvider> above it. If a <FormProvider> IS mounted above it, the app and the \" +\n \"SDK are resolving two copies of react-hook-form: the provider publishes on one \" +\n \"copy's context and this field reads the other's. \" +\n DUPLICATE_COPY_REMEDY;\n\nexport function FormField<\n TValues extends FieldValues = FieldValues,\n TName extends FieldPath<TValues> = FieldPath<TValues>,\n>({ name, label, helperText, required, control, children }: FormFieldProps<TValues, TName>) {\n const context = useFormContext<TValues>();\n const resolvedControl = control ?? context?.control;\n if (!resolvedControl) {\n throw new Error(NO_CONTROL_MESSAGE);\n }\n\n return (\n <Controller\n name={name}\n control={resolvedControl}\n render={({ field, fieldState }) => {\n if (!isValidElement(children)) return children;\n const errorMessage = fieldState.error?.message;\n return cloneElement(children as ReactElement<FormFieldChildProps>, {\n name: field.name,\n value: field.value,\n onChange: field.onChange,\n onBlur: field.onBlur,\n ref: field.ref,\n label,\n helperText: errorMessage ? undefined : helperText,\n error: errorMessage,\n required,\n \"aria-invalid\": !!errorMessage,\n });\n }}\n />\n );\n}\n"],"mappings":";;;;;AA0FA,
|
|
1
|
+
{"version":3,"file":"FormField.js","names":["NO_CONTROL_MESSAGE","DUPLICATE_COPY_REMEDY","FormField","context","useFormContext","resolvedControl","control","Controller","isValidElement","children","errorMessage","fieldState","cloneElement","field","helperText"],"sources":["../../src/forms/FormField.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — FormFieldChildProps is not a component's props — it\n * is the contract handed to whatever control the field wraps, and it is exactly what\n * react-hook-form's register returns (name, value, onChange, onBlur, ref) plus what\n * the field adds around it (error, label, helperText, required, id). Trimming it\n * breaks the wiring it exists to describe.\n */\nimport { cloneElement, isValidElement } from \"react\";\nimport type { ReactElement, ReactNode } from \"react\";\nimport {\n Controller,\n useFormContext,\n type Control,\n type ControllerRenderProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { DUPLICATE_COPY_REMEDY } from \"../utils/duplicate-instance\";\n\nexport interface FormFieldChildProps {\n name: string;\n value: unknown;\n onChange: (...args: unknown[]) => void;\n onBlur: () => void;\n ref: ControllerRenderProps[\"ref\"];\n error?: string;\n \"aria-invalid\"?: boolean;\n \"aria-describedby\"?: string;\n label?: ReactNode;\n helperText?: ReactNode;\n required?: boolean;\n id?: string;\n}\n\nexport interface FormFieldProps<\n TValues extends FieldValues = FieldValues,\n TName extends FieldPath<TValues> = FieldPath<TValues>,\n> {\n /** Field name (dot path supported, e.g. `\"address.city\"`). */\n name: TName;\n /** Field label rendered by the wrapped control. */\n label?: ReactNode;\n /** Helper text rendered by the wrapped control when there is no error. */\n helperText?: ReactNode;\n /** When `true`, marks the control as required (visual hint + native attribute). */\n required?: boolean;\n /**\n * Explicit `control` from `useForm()` / `useZodForm()`. Optional when a\n * `FormProvider` is in the tree.\n */\n control?: Control<TValues>;\n /**\n * The control to render. Receives `{ value, onChange, onBlur, ref, error, ... }`\n * via `cloneElement`. Pass `<Input />`, `<Select />`, masked inputs, etc.\n */\n children: ReactElement;\n}\n\n/**\n * Glue between `react-hook-form` `Controller` and the SDK's controlled\n * components. Wraps any control that accepts `{ value, onChange, label,\n * error }` and routes RHF state into it — eliminating the per-field\n * `<Controller render={...} />` boilerplate.\n *\n * @example\n * const form = useZodForm(schema);\n * <FormProvider {...form}>\n * <Form>\n * <FormField name=\"email\" label=\"Email\" required>\n * <Input type=\"email\" />\n * </FormField>\n * <FormField name=\"cep\" label=\"CEP\">\n * <CEPInput />\n * </FormField>\n * </Form>\n * </FormProvider>;\n */\n/**\n * What is thrown when no `control` can be resolved.\n *\n * It names **two** causes, because the throw cannot tell them apart and the\n * second one is the expensive one. The obvious reading — no provider, no prop —\n * is usually right. But the identical throw happens with a `<FormProvider>`\n * mounted directly above, when the app and the SDK resolve two different copies\n * of `react-hook-form`: the provider publishes on the app copy's context and\n * `useFormContext` here reads the SDK copy's, which is empty. Someone looking at\n * a provider they can see, being told it is missing, does not go looking at\n * `node_modules` — so the message has to send them there.\n */\nconst NO_CONTROL_MESSAGE =\n \"FormField found no form to bind to. Either pass a `control` prop, or mount a \" +\n \"<FormProvider> above it. If a <FormProvider> IS mounted above it, the app and the \" +\n \"SDK are resolving two copies of react-hook-form: the provider publishes on one \" +\n \"copy's context and this field reads the other's. \" +\n DUPLICATE_COPY_REMEDY;\n\nexport function FormField<\n TValues extends FieldValues = FieldValues,\n TName extends FieldPath<TValues> = FieldPath<TValues>,\n>({ name, label, helperText, required, control, children }: FormFieldProps<TValues, TName>) {\n const context = useFormContext<TValues>();\n const resolvedControl = control ?? context?.control;\n if (!resolvedControl) {\n throw new Error(NO_CONTROL_MESSAGE);\n }\n\n return (\n <Controller\n name={name}\n control={resolvedControl}\n render={({ field, fieldState }) => {\n if (!isValidElement(children)) return children;\n const errorMessage = fieldState.error?.message;\n return cloneElement(children as ReactElement<FormFieldChildProps>, {\n name: field.name,\n value: field.value,\n onChange: field.onChange,\n onBlur: field.onBlur,\n ref: field.ref,\n label,\n helperText: errorMessage ? undefined : helperText,\n error: errorMessage,\n required,\n \"aria-invalid\": !!errorMessage,\n });\n }}\n />\n );\n}\n"],"mappings":";;;;;AA0FA,IAAMA,IACF,oSAIAC;AAEJ,SAAgBC,EAGd,EAAE,SAAM,UAAO,eAAY,aAAU,YAAS,eAA4C;CACxF,IAAMC,IAAUC,EAAwB,GAClCC,IAAkBC,KAAWH,GAAS;CAC5C,IAAI,CAACE,GACD,MAAU,MAAML,CAAkB;CAGtC,OACI,kBAACO,GAAD;EACU;EACN,SAASF;EACT,SAAS,EAAE,UAAO,oBAAiB;GAC/B,IAAI,CAACG,EAAeC,CAAQ,GAAG,OAAOA;GACtC,IAAMC,IAAeC,EAAW,OAAO;GACvC,OAAOC,EAAaH,GAA+C;IAC/D,MAAMI,EAAM;IACZ,OAAOA,EAAM;IACb,UAAUA,EAAM;IAChB,QAAQA,EAAM;IACd,KAAKA,EAAM;IACX;IACA,YAAYH,IAAe,KAAA,IAAYI;IACvC,OAAOJ;IACP;IACA,gBAAgB,CAAC,CAACA;GACtB,CAAC;EACL;CACH,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-validators.cjs","names":[],"sources":["../../src/forms/br-validators.ts"],"sourcesContent":["function digitsOnly(value: string): string {\n return value.replace(/\\D/g, \"\");\n}\n\n/**\n * Validate a Brazilian CPF using the standard check-digit algorithm.\n * Accepts masked or raw input; rejects all-equal digits (\"111.111.111-11\").\n */\nexport function validateCPF(value: string): boolean {\n const digits = digitsOnly(value);\n if (digits.length !== 11) return false;\n if (/^(\\d)\\1+$/.test(digits)) return false;\n\n const numbers = digits.split(\"\").map(Number);\n\n let sum = 0;\n for (let i = 0; i < 9; i++) sum += numbers[i]! * (10 - i);\n let check = (sum * 10) % 11;\n if (check === 10) check = 0;\n if (check !== numbers[9]) return false;\n\n sum = 0;\n for (let i = 0; i < 10; i++) sum += numbers[i]! * (11 - i);\n check = (sum * 10) % 11;\n if (check === 10) check = 0;\n return check === numbers[10];\n}\n\n/**\n * Validate a Brazilian CNPJ using the standard check-digit algorithm.\n * Accepts masked or raw input; rejects all-equal digits.\n */\nexport function validateCNPJ(value: string): boolean {\n const digits = digitsOnly(value);\n if (digits.length !== 14) return false;\n if (/^(\\d)\\1+$/.test(digits)) return false;\n\n const numbers = digits.split(\"\").map(Number);\n\n const weights1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n const weights2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n\n let sum = 0;\n for (let i = 0; i < 12; i++) sum += numbers[i]! * weights1[i]!;\n let check = sum % 11;\n check = check < 2 ? 0 : 11 - check;\n if (check !== numbers[12]) return false;\n\n sum = 0;\n for (let i = 0; i < 13; i++) sum += numbers[i]! * weights2[i]!;\n check = sum % 11;\n check = check < 2 ? 0 : 11 - check;\n return check === numbers[13];\n}\n\n/** Format an 11-digit Brazilian CEP-like value as `00000-000`. */\nexport function formatCEP(value: string): string {\n return digitsOnly(value)\n .slice(0, 8)\n .replace(/(\\d{5})(\\d)/, \"$1-$2\");\n}\n\n/** Format an unmasked CNPJ-shaped value as `00.000.000/0000-00`. */\nexport function formatCNPJ(value: string): string {\n return digitsOnly(value)\n .slice(0, 14)\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1/$2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\");\n}\n\n/** Strip any masking and return only digits. */\nexport function unmask(value: string): string {\n return digitsOnly(value);\n}\n"],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"br-validators.cjs","names":["digitsOnly","value","validateCPF","digits","numbers","sum","i","check","validateCNPJ","weights1","weights2","formatCEP","formatCNPJ","unmask"],"sources":["../../src/forms/br-validators.ts"],"sourcesContent":["function digitsOnly(value: string): string {\n return value.replace(/\\D/g, \"\");\n}\n\n/**\n * Validate a Brazilian CPF using the standard check-digit algorithm.\n * Accepts masked or raw input; rejects all-equal digits (\"111.111.111-11\").\n */\nexport function validateCPF(value: string): boolean {\n const digits = digitsOnly(value);\n if (digits.length !== 11) return false;\n if (/^(\\d)\\1+$/.test(digits)) return false;\n\n const numbers = digits.split(\"\").map(Number);\n\n let sum = 0;\n for (let i = 0; i < 9; i++) sum += numbers[i]! * (10 - i);\n let check = (sum * 10) % 11;\n if (check === 10) check = 0;\n if (check !== numbers[9]) return false;\n\n sum = 0;\n for (let i = 0; i < 10; i++) sum += numbers[i]! * (11 - i);\n check = (sum * 10) % 11;\n if (check === 10) check = 0;\n return check === numbers[10];\n}\n\n/**\n * Validate a Brazilian CNPJ using the standard check-digit algorithm.\n * Accepts masked or raw input; rejects all-equal digits.\n */\nexport function validateCNPJ(value: string): boolean {\n const digits = digitsOnly(value);\n if (digits.length !== 14) return false;\n if (/^(\\d)\\1+$/.test(digits)) return false;\n\n const numbers = digits.split(\"\").map(Number);\n\n const weights1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n const weights2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n\n let sum = 0;\n for (let i = 0; i < 12; i++) sum += numbers[i]! * weights1[i]!;\n let check = sum % 11;\n check = check < 2 ? 0 : 11 - check;\n if (check !== numbers[12]) return false;\n\n sum = 0;\n for (let i = 0; i < 13; i++) sum += numbers[i]! * weights2[i]!;\n check = sum % 11;\n check = check < 2 ? 0 : 11 - check;\n return check === numbers[13];\n}\n\n/** Format an 11-digit Brazilian CEP-like value as `00000-000`. */\nexport function formatCEP(value: string): string {\n return digitsOnly(value)\n .slice(0, 8)\n .replace(/(\\d{5})(\\d)/, \"$1-$2\");\n}\n\n/** Format an unmasked CNPJ-shaped value as `00.000.000/0000-00`. */\nexport function formatCNPJ(value: string): string {\n return digitsOnly(value)\n .slice(0, 14)\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1/$2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\");\n}\n\n/** Strip any masking and return only digits. */\nexport function unmask(value: string): string {\n return digitsOnly(value);\n}\n"],"mappings":"AAAA,SAASA,EAAW,EAAuB,CACvC,OAAOC,EAAM,QAAQ,MAAO,EAAE,CAClC,CAMA,SAAgBC,EAAY,EAAwB,CAChD,IAAMC,EAASH,EAAWC,CAAK,EAE/B,GADIE,EAAO,SAAW,IAClB,YAAY,KAAKA,CAAM,EAAG,MAAO,GAErC,IAAMC,EAAUD,EAAO,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM,EAEvCE,EAAM,EACV,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAG,IAAK,GAAOF,EAAQE,IAAO,GAAKA,GACvD,IAAIC,EAASF,EAAM,GAAM,GAEzB,GADIE,IAAU,KAAI,EAAQ,GACtBA,IAAUH,EAAQ,GAAI,MAAO,GAEjC,EAAM,EACN,IAAK,IAAIE,EAAI,EAAGA,EAAI,GAAI,IAAK,GAAOF,EAAQE,IAAO,GAAKA,GAGxD,MAFA,GAASD,EAAM,GAAM,GACjBE,IAAU,KAAI,EAAQ,GACnBA,IAAUH,EAAQ,GAC7B,CAMA,SAAgBI,EAAa,EAAwB,CACjD,IAAML,EAASH,EAAWC,CAAK,EAE/B,GADIE,EAAO,SAAW,IAClB,YAAY,KAAKA,CAAM,EAAG,MAAO,GAErC,IAAMC,EAAUD,EAAO,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM,EAErCM,EAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC9CC,EAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAEnDL,EAAM,EACV,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAI,IAAK,GAAOF,EAAQE,GAAMG,EAASH,GAC3D,IAAIC,EAAQF,EAAM,GAElB,GADA,EAAQE,EAAQ,EAAI,EAAI,GAAKA,EACzBA,IAAUH,EAAQ,IAAK,MAAO,GAElC,EAAM,EACN,IAAK,IAAIE,EAAI,EAAGA,EAAI,GAAI,IAAK,GAAOF,EAAQE,GAAMI,EAASJ,GAG3D,MAFA,GAAQD,EAAM,GACd,EAAQE,EAAQ,EAAI,EAAI,GAAKA,EACtBA,IAAUH,EAAQ,GAC7B,CAGA,SAAgBO,EAAU,EAAuB,CAC7C,OAAOX,EAAWC,CAAK,CAAC,CACnB,MAAM,EAAG,CAAC,CAAC,CACX,QAAQ,cAAe,OAAO,CACvC,CAGA,SAAgBW,EAAW,EAAuB,CAC9C,OAAOZ,EAAWC,CAAK,CAAC,CACnB,MAAM,EAAG,EAAE,CAAC,CACZ,QAAQ,cAAe,OAAO,CAAC,CAC/B,QAAQ,cAAe,OAAO,CAAC,CAC/B,QAAQ,cAAe,OAAO,CAAC,CAC/B,QAAQ,cAAe,OAAO,CACvC,CAGA,SAAgBY,EAAO,EAAuB,CAC1C,OAAOb,EAAWC,CAAK,CAC3B,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-validators.js","names":[],"sources":["../../src/forms/br-validators.ts"],"sourcesContent":["function digitsOnly(value: string): string {\n return value.replace(/\\D/g, \"\");\n}\n\n/**\n * Validate a Brazilian CPF using the standard check-digit algorithm.\n * Accepts masked or raw input; rejects all-equal digits (\"111.111.111-11\").\n */\nexport function validateCPF(value: string): boolean {\n const digits = digitsOnly(value);\n if (digits.length !== 11) return false;\n if (/^(\\d)\\1+$/.test(digits)) return false;\n\n const numbers = digits.split(\"\").map(Number);\n\n let sum = 0;\n for (let i = 0; i < 9; i++) sum += numbers[i]! * (10 - i);\n let check = (sum * 10) % 11;\n if (check === 10) check = 0;\n if (check !== numbers[9]) return false;\n\n sum = 0;\n for (let i = 0; i < 10; i++) sum += numbers[i]! * (11 - i);\n check = (sum * 10) % 11;\n if (check === 10) check = 0;\n return check === numbers[10];\n}\n\n/**\n * Validate a Brazilian CNPJ using the standard check-digit algorithm.\n * Accepts masked or raw input; rejects all-equal digits.\n */\nexport function validateCNPJ(value: string): boolean {\n const digits = digitsOnly(value);\n if (digits.length !== 14) return false;\n if (/^(\\d)\\1+$/.test(digits)) return false;\n\n const numbers = digits.split(\"\").map(Number);\n\n const weights1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n const weights2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n\n let sum = 0;\n for (let i = 0; i < 12; i++) sum += numbers[i]! * weights1[i]!;\n let check = sum % 11;\n check = check < 2 ? 0 : 11 - check;\n if (check !== numbers[12]) return false;\n\n sum = 0;\n for (let i = 0; i < 13; i++) sum += numbers[i]! * weights2[i]!;\n check = sum % 11;\n check = check < 2 ? 0 : 11 - check;\n return check === numbers[13];\n}\n\n/** Format an 11-digit Brazilian CEP-like value as `00000-000`. */\nexport function formatCEP(value: string): string {\n return digitsOnly(value)\n .slice(0, 8)\n .replace(/(\\d{5})(\\d)/, \"$1-$2\");\n}\n\n/** Format an unmasked CNPJ-shaped value as `00.000.000/0000-00`. */\nexport function formatCNPJ(value: string): string {\n return digitsOnly(value)\n .slice(0, 14)\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1/$2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\");\n}\n\n/** Strip any masking and return only digits. */\nexport function unmask(value: string): string {\n return digitsOnly(value);\n}\n"],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"br-validators.js","names":["digitsOnly","value","validateCPF","digits","numbers","sum","i","check","validateCNPJ","weights1","weights2","formatCEP","formatCNPJ","unmask"],"sources":["../../src/forms/br-validators.ts"],"sourcesContent":["function digitsOnly(value: string): string {\n return value.replace(/\\D/g, \"\");\n}\n\n/**\n * Validate a Brazilian CPF using the standard check-digit algorithm.\n * Accepts masked or raw input; rejects all-equal digits (\"111.111.111-11\").\n */\nexport function validateCPF(value: string): boolean {\n const digits = digitsOnly(value);\n if (digits.length !== 11) return false;\n if (/^(\\d)\\1+$/.test(digits)) return false;\n\n const numbers = digits.split(\"\").map(Number);\n\n let sum = 0;\n for (let i = 0; i < 9; i++) sum += numbers[i]! * (10 - i);\n let check = (sum * 10) % 11;\n if (check === 10) check = 0;\n if (check !== numbers[9]) return false;\n\n sum = 0;\n for (let i = 0; i < 10; i++) sum += numbers[i]! * (11 - i);\n check = (sum * 10) % 11;\n if (check === 10) check = 0;\n return check === numbers[10];\n}\n\n/**\n * Validate a Brazilian CNPJ using the standard check-digit algorithm.\n * Accepts masked or raw input; rejects all-equal digits.\n */\nexport function validateCNPJ(value: string): boolean {\n const digits = digitsOnly(value);\n if (digits.length !== 14) return false;\n if (/^(\\d)\\1+$/.test(digits)) return false;\n\n const numbers = digits.split(\"\").map(Number);\n\n const weights1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n const weights2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n\n let sum = 0;\n for (let i = 0; i < 12; i++) sum += numbers[i]! * weights1[i]!;\n let check = sum % 11;\n check = check < 2 ? 0 : 11 - check;\n if (check !== numbers[12]) return false;\n\n sum = 0;\n for (let i = 0; i < 13; i++) sum += numbers[i]! * weights2[i]!;\n check = sum % 11;\n check = check < 2 ? 0 : 11 - check;\n return check === numbers[13];\n}\n\n/** Format an 11-digit Brazilian CEP-like value as `00000-000`. */\nexport function formatCEP(value: string): string {\n return digitsOnly(value)\n .slice(0, 8)\n .replace(/(\\d{5})(\\d)/, \"$1-$2\");\n}\n\n/** Format an unmasked CNPJ-shaped value as `00.000.000/0000-00`. */\nexport function formatCNPJ(value: string): string {\n return digitsOnly(value)\n .slice(0, 14)\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1/$2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\");\n}\n\n/** Strip any masking and return only digits. */\nexport function unmask(value: string): string {\n return digitsOnly(value);\n}\n"],"mappings":";AAAA,SAASA,EAAW,GAAuB;CACvC,OAAOC,EAAM,QAAQ,OAAO,EAAE;AAClC;AAMA,SAAgBC,EAAY,GAAwB;CAChD,IAAMC,IAASH,EAAWC,CAAK;CAE/B,IADIE,EAAO,WAAW,MAClB,YAAY,KAAKA,CAAM,GAAG,OAAO;CAErC,IAAMC,IAAUD,EAAO,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM,GAEvCE,IAAM;CACV,KAAK,IAAIC,IAAI,GAAGA,IAAI,GAAG,KAAK,KAAOF,EAAQE,MAAO,KAAKA;CACvD,IAAIC,IAASF,IAAM,KAAM;CAEzB,IADIE,MAAU,OAAI,IAAQ,IACtBA,MAAUH,EAAQ,IAAI,OAAO;CAEjC,IAAM;CACN,KAAK,IAAIE,IAAI,GAAGA,IAAI,IAAI,KAAK,KAAOF,EAAQE,MAAO,KAAKA;CAGxD,OAFA,IAASD,IAAM,KAAM,IACjBE,MAAU,OAAI,IAAQ,IACnBA,MAAUH,EAAQ;AAC7B;AAMA,SAAgBI,EAAa,GAAwB;CACjD,IAAML,IAASH,EAAWC,CAAK;CAE/B,IADIE,EAAO,WAAW,MAClB,YAAY,KAAKA,CAAM,GAAG,OAAO;CAErC,IAAMC,IAAUD,EAAO,MAAM,EAAE,CAAC,CAAC,IAAI,MAAM,GAErCM,IAAW;EAAC;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;CAAC,GAC9CC,IAAW;EAAC;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;CAAC,GAEnDL,IAAM;CACV,KAAK,IAAIC,IAAI,GAAGA,IAAI,IAAI,KAAK,KAAOF,EAAQE,KAAMG,EAASH;CAC3D,IAAIC,IAAQF,IAAM;CAElB,IADA,IAAQE,IAAQ,IAAI,IAAI,KAAKA,GACzBA,MAAUH,EAAQ,KAAK,OAAO;CAElC,IAAM;CACN,KAAK,IAAIE,IAAI,GAAGA,IAAI,IAAI,KAAK,KAAOF,EAAQE,KAAMI,EAASJ;CAG3D,OAFA,IAAQD,IAAM,IACd,IAAQE,IAAQ,IAAI,IAAI,KAAKA,GACtBA,MAAUH,EAAQ;AAC7B;AAGA,SAAgBO,EAAU,GAAuB;CAC7C,OAAOX,EAAWC,CAAK,CAAC,CACnB,MAAM,GAAG,CAAC,CAAC,CACX,QAAQ,eAAe,OAAO;AACvC;AAGA,SAAgBW,EAAW,GAAuB;CAC9C,OAAOZ,EAAWC,CAAK,CAAC,CACnB,MAAM,GAAG,EAAE,CAAC,CACZ,QAAQ,eAAe,OAAO,CAAC,CAC/B,QAAQ,eAAe,OAAO,CAAC,CAC/B,QAAQ,eAAe,OAAO,CAAC,CAC/B,QAAQ,eAAe,OAAO;AACvC;AAGA,SAAgBY,EAAO,GAAuB;CAC1C,OAAOb,EAAWC,CAAK;AAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masked-inputs.cjs","names":[],"sources":["../../src/forms/masked-inputs.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { InputHTMLAttributes } from \"react\";\nimport { Input, type InputProps } from \"@/components/Input\";\nimport { formatCEP, formatCNPJ } from \"./br-validators\";\nimport { formatCPF, formatPhone } from \"@/utils/format\";\nimport { numberFormat } from \"@/utils/intl-cache\";\n\n/**\n * Props of every masked input.\n *\n * `value` and `onChange` are optional because the primary documented usage is\n * inside `<FormField>`, which supplies both through `cloneElement` — declaring\n * them required made `<FormField name=\"cpf\"><CPFInput /></FormField>` fail to\n * type-check while working perfectly at runtime. Standalone usage still passes\n * both; an uncontrolled input without `onChange` simply reports nothing.\n */\ntype MaskedFieldProps = Omit<InputProps, \"value\" | \"onChange\"> & {\n value?: string;\n onChange?: (value: string) => void;\n};\n\nfunction maskedInput(\n mask: (input: string) => string,\n inputMode: InputHTMLAttributes<HTMLInputElement>[\"inputMode\"] = \"numeric\",\n) {\n return forwardRef<HTMLInputElement, MaskedFieldProps>(function MaskedInput(\n { value, onChange, ...props },\n ref,\n ) {\n return (\n <Input\n {...props}\n ref={ref}\n value={mask(value ?? \"\")}\n inputMode={inputMode}\n onChange={(event) => onChange?.(mask(event.target.value))}\n />\n );\n });\n}\n\nexport const CPFInput = maskedInput(formatCPF);\nexport const CNPJInput = maskedInput(formatCNPJ);\nexport const PhoneInput = maskedInput(formatPhone, \"tel\");\nexport const CEPInput = maskedInput(formatCEP);\n\nexport interface MoneyInputProps extends Omit<InputProps, \"value\" | \"onChange\" | \"type\"> {\n /** Cents (integer). Internally treated as 1/100 of the currency unit. */\n value: number;\n onChange: (cents: number) => void;\n /** Currency code for `Intl.NumberFormat`. Default: `\"BRL\"`. */\n currency?: string;\n /** Locale for `Intl.NumberFormat`. Default: `\"pt-BR\"`. */\n locale?: string;\n}\n\nfunction formatCents(cents: number, locale: string, currency: string): string {\n return numberFormat(locale, { style: \"currency\", currency }).format(cents / 100);\n}\n\nfunction parseCents(text: string): number {\n const digits = text.replace(/\\D/g, \"\");\n if (!digits) return 0;\n return Number.parseInt(digits, 10);\n}\n\n/**\n * Currency-masked input. Stores the value as an integer number of cents to\n * avoid floating-point error. Suitable for `react-hook-form` once you adapt\n * the field to expose cents.\n */\nexport const MoneyInput = forwardRef<HTMLInputElement, MoneyInputProps>(function MoneyInput(\n { value, onChange, currency = \"BRL\", locale = \"pt-BR\", ...props },\n ref,\n) {\n return (\n <Input\n {...props}\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={formatCents(value || 0, locale, currency)}\n onChange={(event) => onChange(parseCents(event.target.value))}\n />\n );\n});\n"],"mappings":"8MAqBA,
|
|
1
|
+
{"version":3,"file":"masked-inputs.cjs","names":["forwardRef","Input","formatCPF","formatCNPJ","formatPhone","formatCEP","numberFormat","require_Input","require_intl_cache","require_format","require_br_validators","react","react_jsx_runtime","maskedInput","props","mask","value","onChange","event","CPFInput","CNPJInput","PhoneInput","CEPInput","formatCents","locale","cents","parseCents","digits","text","MoneyInput","currency"],"sources":["../../src/forms/masked-inputs.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { InputHTMLAttributes } from \"react\";\nimport { Input, type InputProps } from \"@/components/Input\";\nimport { formatCEP, formatCNPJ } from \"./br-validators\";\nimport { formatCPF, formatPhone } from \"@/utils/format\";\nimport { numberFormat } from \"@/utils/intl-cache\";\n\n/**\n * Props of every masked input.\n *\n * `value` and `onChange` are optional because the primary documented usage is\n * inside `<FormField>`, which supplies both through `cloneElement` — declaring\n * them required made `<FormField name=\"cpf\"><CPFInput /></FormField>` fail to\n * type-check while working perfectly at runtime. Standalone usage still passes\n * both; an uncontrolled input without `onChange` simply reports nothing.\n */\ntype MaskedFieldProps = Omit<InputProps, \"value\" | \"onChange\"> & {\n value?: string;\n onChange?: (value: string) => void;\n};\n\nfunction maskedInput(\n mask: (input: string) => string,\n inputMode: InputHTMLAttributes<HTMLInputElement>[\"inputMode\"] = \"numeric\",\n) {\n return forwardRef<HTMLInputElement, MaskedFieldProps>(function MaskedInput(\n { value, onChange, ...props },\n ref,\n ) {\n return (\n <Input\n {...props}\n ref={ref}\n value={mask(value ?? \"\")}\n inputMode={inputMode}\n onChange={(event) => onChange?.(mask(event.target.value))}\n />\n );\n });\n}\n\nexport const CPFInput = maskedInput(formatCPF);\nexport const CNPJInput = maskedInput(formatCNPJ);\nexport const PhoneInput = maskedInput(formatPhone, \"tel\");\nexport const CEPInput = maskedInput(formatCEP);\n\nexport interface MoneyInputProps extends Omit<InputProps, \"value\" | \"onChange\" | \"type\"> {\n /** Cents (integer). Internally treated as 1/100 of the currency unit. */\n value: number;\n onChange: (cents: number) => void;\n /** Currency code for `Intl.NumberFormat`. Default: `\"BRL\"`. */\n currency?: string;\n /** Locale for `Intl.NumberFormat`. Default: `\"pt-BR\"`. */\n locale?: string;\n}\n\nfunction formatCents(cents: number, locale: string, currency: string): string {\n return numberFormat(locale, { style: \"currency\", currency }).format(cents / 100);\n}\n\nfunction parseCents(text: string): number {\n const digits = text.replace(/\\D/g, \"\");\n if (!digits) return 0;\n return Number.parseInt(digits, 10);\n}\n\n/**\n * Currency-masked input. Stores the value as an integer number of cents to\n * avoid floating-point error. Suitable for `react-hook-form` once you adapt\n * the field to expose cents.\n */\nexport const MoneyInput = forwardRef<HTMLInputElement, MoneyInputProps>(function MoneyInput(\n { value, onChange, currency = \"BRL\", locale = \"pt-BR\", ...props },\n ref,\n) {\n return (\n <Input\n {...props}\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={formatCents(value || 0, locale, currency)}\n onChange={(event) => onChange(parseCents(event.target.value))}\n />\n );\n});\n"],"mappings":"A,8MAqBA,SAASa,EACL,EACA,EAAgE,UAClE,CACE,OAAA,EAAOb,EAAAA,WAAAA,CAA+C,SAClD,CAAE,QAAO,WAAU,GAAGc,GACtB,EACF,CACE,OACI,EAAAF,EAAA,IAAA,CAACX,EAAAA,MAAD,CACI,GAAIa,EACC,MACL,MAAOC,EAAKC,GAAS,EAAE,EACZ,YACX,SAAW,GAAUC,IAAWF,EAAKG,EAAM,OAAO,KAAK,CAAC,CAC3D,CAAA,CAET,CAAC,CACL,CAEA,IAAaC,EAAWN,EAAYX,EAAAA,SAAS,EAChCkB,EAAYP,EAAYV,EAAAA,UAAU,EAClCkB,EAAaR,EAAYT,EAAAA,YAAa,KAAK,EAC3CkB,EAAWT,EAAYR,EAAAA,SAAS,EAY7C,SAASkB,EAAY,EAAe,EAAgB,EAA0B,CAC1E,OAAOjB,EAAAA,aAAakB,EAAQ,CAAE,MAAO,WAAY,UAAS,CAAC,CAAC,CAAC,OAAOC,EAAQ,GAAG,CACnF,CAEA,SAASC,EAAW,EAAsB,CACtC,IAAMC,EAASC,EAAK,QAAQ,MAAO,EAAE,EAErC,OADKD,EACE,OAAO,SAASA,EAAQ,EAAE,EADb,CAExB,CAOA,IAAaE,GAAA,EAAa7B,EAAAA,WAAAA,CAA8C,SACpE,CAAE,QAAO,WAAU,WAAW,MAAO,SAAS,QAAS,GAAGc,GAC1D,EACF,CACE,OACI,EAAAF,EAAA,IAAA,CAACX,EAAAA,MAAD,CACI,GAAIa,EACC,MACL,KAAK,OACL,UAAU,UACV,MAAOS,EAAYP,GAAS,EAAGQ,EAAQM,CAAQ,EAC/C,SAAW,GAAUb,EAASS,EAAWR,EAAM,OAAO,KAAK,CAAC,CAC/D,CAAA,CAET,CAAC,E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masked-inputs.js","names":[],"sources":["../../src/forms/masked-inputs.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { InputHTMLAttributes } from \"react\";\nimport { Input, type InputProps } from \"@/components/Input\";\nimport { formatCEP, formatCNPJ } from \"./br-validators\";\nimport { formatCPF, formatPhone } from \"@/utils/format\";\nimport { numberFormat } from \"@/utils/intl-cache\";\n\n/**\n * Props of every masked input.\n *\n * `value` and `onChange` are optional because the primary documented usage is\n * inside `<FormField>`, which supplies both through `cloneElement` — declaring\n * them required made `<FormField name=\"cpf\"><CPFInput /></FormField>` fail to\n * type-check while working perfectly at runtime. Standalone usage still passes\n * both; an uncontrolled input without `onChange` simply reports nothing.\n */\ntype MaskedFieldProps = Omit<InputProps, \"value\" | \"onChange\"> & {\n value?: string;\n onChange?: (value: string) => void;\n};\n\nfunction maskedInput(\n mask: (input: string) => string,\n inputMode: InputHTMLAttributes<HTMLInputElement>[\"inputMode\"] = \"numeric\",\n) {\n return forwardRef<HTMLInputElement, MaskedFieldProps>(function MaskedInput(\n { value, onChange, ...props },\n ref,\n ) {\n return (\n <Input\n {...props}\n ref={ref}\n value={mask(value ?? \"\")}\n inputMode={inputMode}\n onChange={(event) => onChange?.(mask(event.target.value))}\n />\n );\n });\n}\n\nexport const CPFInput = maskedInput(formatCPF);\nexport const CNPJInput = maskedInput(formatCNPJ);\nexport const PhoneInput = maskedInput(formatPhone, \"tel\");\nexport const CEPInput = maskedInput(formatCEP);\n\nexport interface MoneyInputProps extends Omit<InputProps, \"value\" | \"onChange\" | \"type\"> {\n /** Cents (integer). Internally treated as 1/100 of the currency unit. */\n value: number;\n onChange: (cents: number) => void;\n /** Currency code for `Intl.NumberFormat`. Default: `\"BRL\"`. */\n currency?: string;\n /** Locale for `Intl.NumberFormat`. Default: `\"pt-BR\"`. */\n locale?: string;\n}\n\nfunction formatCents(cents: number, locale: string, currency: string): string {\n return numberFormat(locale, { style: \"currency\", currency }).format(cents / 100);\n}\n\nfunction parseCents(text: string): number {\n const digits = text.replace(/\\D/g, \"\");\n if (!digits) return 0;\n return Number.parseInt(digits, 10);\n}\n\n/**\n * Currency-masked input. Stores the value as an integer number of cents to\n * avoid floating-point error. Suitable for `react-hook-form` once you adapt\n * the field to expose cents.\n */\nexport const MoneyInput = forwardRef<HTMLInputElement, MoneyInputProps>(function MoneyInput(\n { value, onChange, currency = \"BRL\", locale = \"pt-BR\", ...props },\n ref,\n) {\n return (\n <Input\n {...props}\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={formatCents(value || 0, locale, currency)}\n onChange={(event) => onChange(parseCents(event.target.value))}\n />\n );\n});\n"],"mappings":";;;;;;;AAqBA,
|
|
1
|
+
{"version":3,"file":"masked-inputs.js","names":["maskedInput","forwardRef","props","Input","mask","value","onChange","event","CPFInput","formatCPF","CNPJInput","formatCNPJ","PhoneInput","formatPhone","CEPInput","formatCEP","formatCents","numberFormat","locale","cents","parseCents","digits","text","MoneyInput","currency"],"sources":["../../src/forms/masked-inputs.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { InputHTMLAttributes } from \"react\";\nimport { Input, type InputProps } from \"@/components/Input\";\nimport { formatCEP, formatCNPJ } from \"./br-validators\";\nimport { formatCPF, formatPhone } from \"@/utils/format\";\nimport { numberFormat } from \"@/utils/intl-cache\";\n\n/**\n * Props of every masked input.\n *\n * `value` and `onChange` are optional because the primary documented usage is\n * inside `<FormField>`, which supplies both through `cloneElement` — declaring\n * them required made `<FormField name=\"cpf\"><CPFInput /></FormField>` fail to\n * type-check while working perfectly at runtime. Standalone usage still passes\n * both; an uncontrolled input without `onChange` simply reports nothing.\n */\ntype MaskedFieldProps = Omit<InputProps, \"value\" | \"onChange\"> & {\n value?: string;\n onChange?: (value: string) => void;\n};\n\nfunction maskedInput(\n mask: (input: string) => string,\n inputMode: InputHTMLAttributes<HTMLInputElement>[\"inputMode\"] = \"numeric\",\n) {\n return forwardRef<HTMLInputElement, MaskedFieldProps>(function MaskedInput(\n { value, onChange, ...props },\n ref,\n ) {\n return (\n <Input\n {...props}\n ref={ref}\n value={mask(value ?? \"\")}\n inputMode={inputMode}\n onChange={(event) => onChange?.(mask(event.target.value))}\n />\n );\n });\n}\n\nexport const CPFInput = maskedInput(formatCPF);\nexport const CNPJInput = maskedInput(formatCNPJ);\nexport const PhoneInput = maskedInput(formatPhone, \"tel\");\nexport const CEPInput = maskedInput(formatCEP);\n\nexport interface MoneyInputProps extends Omit<InputProps, \"value\" | \"onChange\" | \"type\"> {\n /** Cents (integer). Internally treated as 1/100 of the currency unit. */\n value: number;\n onChange: (cents: number) => void;\n /** Currency code for `Intl.NumberFormat`. Default: `\"BRL\"`. */\n currency?: string;\n /** Locale for `Intl.NumberFormat`. Default: `\"pt-BR\"`. */\n locale?: string;\n}\n\nfunction formatCents(cents: number, locale: string, currency: string): string {\n return numberFormat(locale, { style: \"currency\", currency }).format(cents / 100);\n}\n\nfunction parseCents(text: string): number {\n const digits = text.replace(/\\D/g, \"\");\n if (!digits) return 0;\n return Number.parseInt(digits, 10);\n}\n\n/**\n * Currency-masked input. Stores the value as an integer number of cents to\n * avoid floating-point error. Suitable for `react-hook-form` once you adapt\n * the field to expose cents.\n */\nexport const MoneyInput = forwardRef<HTMLInputElement, MoneyInputProps>(function MoneyInput(\n { value, onChange, currency = \"BRL\", locale = \"pt-BR\", ...props },\n ref,\n) {\n return (\n <Input\n {...props}\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={formatCents(value || 0, locale, currency)}\n onChange={(event) => onChange(parseCents(event.target.value))}\n />\n );\n});\n"],"mappings":";;;;;;;AAqBA,SAASA,EACL,GACA,IAAgE,WAClE;CACE,OAAOC,EAA+C,SAClD,EAAE,UAAO,aAAU,GAAGC,KACtB,GACF;EACE,OACI,kBAACC,GAAD;GACI,GAAID;GACC;GACL,OAAOE,EAAKC,KAAS,EAAE;GACZ;GACX,WAAW,MAAUC,IAAWF,EAAKG,EAAM,OAAO,KAAK,CAAC;EAC3D,CAAA;CAET,CAAC;AACL;AAEA,IAAaC,IAAWR,EAAYS,CAAS,GAChCC,IAAYV,EAAYW,CAAU,GAClCC,IAAaZ,EAAYa,GAAa,KAAK,GAC3CC,IAAWd,EAAYe,CAAS;AAY7C,SAASC,EAAY,GAAe,GAAgB,GAA0B;CAC1E,OAAOC,EAAaC,GAAQ;EAAE,OAAO;EAAY;CAAS,CAAC,CAAC,CAAC,OAAOC,IAAQ,GAAG;AACnF;AAEA,SAASC,EAAW,GAAsB;CACtC,IAAMC,IAASC,EAAK,QAAQ,OAAO,EAAE;CAErC,OADKD,IACE,OAAO,SAASA,GAAQ,EAAE,IADb;AAExB;AAOA,IAAaE,IAAatB,EAA8C,SACpE,EAAE,UAAO,aAAU,cAAW,OAAO,YAAS,SAAS,GAAGC,KAC1D,GACF;CACE,OACI,kBAACC,GAAD;EACI,GAAID;EACC;EACL,MAAK;EACL,WAAU;EACV,OAAOc,EAAYX,KAAS,GAAGa,GAAQM,CAAQ;EAC/C,WAAW,MAAUlB,EAASc,EAAWb,EAAM,OAAO,KAAK,CAAC;CAC/D,CAAA;AAET,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-viacep.cjs","names":[],"sources":["../../src/forms/use-viacep.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport interface ViaCEPResult {\n cep: string;\n logradouro: string;\n complemento: string;\n bairro: string;\n localidade: string;\n uf: string;\n ibge?: string;\n gia?: string;\n ddd?: string;\n siafi?: string;\n}\n\nexport interface UseViaCEPResult {\n loading: boolean;\n error: string | null;\n data: ViaCEPResult | null;\n /** Fetch the given CEP (8 digits or masked). Sets `data`/`error`. Returns the result. */\n lookup: (cep: string) => Promise<ViaCEPResult | null>;\n reset: () => void;\n}\n\n/**\n * React hook for the public ViaCEP service (`viacep.com.br`). No backend\n * required. Returns address fields when the CEP exists, or sets `error` for\n * invalid CEPs.\n */\nexport function useViaCEP(): UseViaCEPResult {\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | null>(null);\n const [data, setData] = useState<ViaCEPResult | null>(null);\n\n const lookup = useCallback(async (cep: string): Promise<ViaCEPResult | null> => {\n const digits = cep.replace(/\\D/g, \"\");\n if (digits.length !== 8) {\n setError(\"CEP inválido.\");\n return null;\n }\n setLoading(true);\n setError(null);\n try {\n const response = await fetch(`https://viacep.com.br/ws/${digits}/json/`);\n const json = (await response.json()) as ViaCEPResult & { erro?: boolean };\n if (\"erro\" in json && json.erro) {\n setError(\"CEP não encontrado.\");\n setData(null);\n return null;\n }\n setData(json);\n return json;\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n return null;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const reset = useCallback(() => {\n setLoading(false);\n setError(null);\n setData(null);\n }, []);\n\n return { loading, error, data, lookup, reset };\n}\n"],"mappings":"uBA6BA,
|
|
1
|
+
{"version":3,"file":"use-viacep.cjs","names":["useState","useCallback","react","useViaCEP","loading","setLoading","error","setError","data","setData","digits","cep","json","err"],"sources":["../../src/forms/use-viacep.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport interface ViaCEPResult {\n cep: string;\n logradouro: string;\n complemento: string;\n bairro: string;\n localidade: string;\n uf: string;\n ibge?: string;\n gia?: string;\n ddd?: string;\n siafi?: string;\n}\n\nexport interface UseViaCEPResult {\n loading: boolean;\n error: string | null;\n data: ViaCEPResult | null;\n /** Fetch the given CEP (8 digits or masked). Sets `data`/`error`. Returns the result. */\n lookup: (cep: string) => Promise<ViaCEPResult | null>;\n reset: () => void;\n}\n\n/**\n * React hook for the public ViaCEP service (`viacep.com.br`). No backend\n * required. Returns address fields when the CEP exists, or sets `error` for\n * invalid CEPs.\n */\nexport function useViaCEP(): UseViaCEPResult {\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | null>(null);\n const [data, setData] = useState<ViaCEPResult | null>(null);\n\n const lookup = useCallback(async (cep: string): Promise<ViaCEPResult | null> => {\n const digits = cep.replace(/\\D/g, \"\");\n if (digits.length !== 8) {\n setError(\"CEP inválido.\");\n return null;\n }\n setLoading(true);\n setError(null);\n try {\n const response = await fetch(`https://viacep.com.br/ws/${digits}/json/`);\n const json = (await response.json()) as ViaCEPResult & { erro?: boolean };\n if (\"erro\" in json && json.erro) {\n setError(\"CEP não encontrado.\");\n setData(null);\n return null;\n }\n setData(json);\n return json;\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n return null;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const reset = useCallback(() => {\n setLoading(false);\n setError(null);\n setData(null);\n }, []);\n\n return { loading, error, data, lookup, reset };\n}\n"],"mappings":"A,uBA6BA,SAAgBG,GAA6B,CACzC,GAAM,CAACC,EAASC,IAAA,EAAcL,EAAAA,SAAAA,CAAkB,EAAK,EAC/C,CAACM,EAAOC,IAAA,EAAYP,EAAAA,SAAAA,CAAwB,IAAI,EAChD,CAACQ,EAAMC,IAAA,EAAWT,EAAAA,SAAAA,CAA8B,IAAI,EAkC1D,MAAO,CAAE,UAAS,QAAO,OAAM,QAAA,EAhChBC,EAAAA,YAAAA,CAAY,KAAO,IAA8C,CAC5E,IAAMS,EAASC,EAAI,QAAQ,MAAO,EAAE,EACpC,GAAID,EAAO,SAAW,EAElB,OADAH,EAAS,eAAe,EACjB,KAEXF,EAAW,EAAI,EACfE,EAAS,IAAI,EACb,GAAI,CAEA,IAAMK,EAAQ,MAAM,MADG,MAAM,4BAA4BF,EAAO,OAAO,EAAA,CAC1C,KAAK,EAOlC,MANI,SAAUE,GAAQA,EAAK,MACvBL,EAAS,qBAAqB,EAC9BE,EAAQ,IAAI,EACL,OAEXA,EAAQG,CAAI,EACLA,EACX,OAASC,EAAK,CAEV,OADAN,EAASM,aAAe,MAAQA,EAAI,QAAU,OAAOA,CAAG,CAAC,EAClD,IACX,QAAU,CACNR,EAAW,EAAK,CACpB,CACJ,EAAG,CAAC,CAQ2B,EAAQ,OAAA,EANzBJ,EAAAA,YAAAA,KAAkB,CAC5BI,EAAW,EAAK,EAChBE,EAAS,IAAI,EACbE,EAAQ,IAAI,CAChB,EAAG,CAAC,CAEmC,CAAM,CACjD,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-viacep.js","names":[],"sources":["../../src/forms/use-viacep.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport interface ViaCEPResult {\n cep: string;\n logradouro: string;\n complemento: string;\n bairro: string;\n localidade: string;\n uf: string;\n ibge?: string;\n gia?: string;\n ddd?: string;\n siafi?: string;\n}\n\nexport interface UseViaCEPResult {\n loading: boolean;\n error: string | null;\n data: ViaCEPResult | null;\n /** Fetch the given CEP (8 digits or masked). Sets `data`/`error`. Returns the result. */\n lookup: (cep: string) => Promise<ViaCEPResult | null>;\n reset: () => void;\n}\n\n/**\n * React hook for the public ViaCEP service (`viacep.com.br`). No backend\n * required. Returns address fields when the CEP exists, or sets `error` for\n * invalid CEPs.\n */\nexport function useViaCEP(): UseViaCEPResult {\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | null>(null);\n const [data, setData] = useState<ViaCEPResult | null>(null);\n\n const lookup = useCallback(async (cep: string): Promise<ViaCEPResult | null> => {\n const digits = cep.replace(/\\D/g, \"\");\n if (digits.length !== 8) {\n setError(\"CEP inválido.\");\n return null;\n }\n setLoading(true);\n setError(null);\n try {\n const response = await fetch(`https://viacep.com.br/ws/${digits}/json/`);\n const json = (await response.json()) as ViaCEPResult & { erro?: boolean };\n if (\"erro\" in json && json.erro) {\n setError(\"CEP não encontrado.\");\n setData(null);\n return null;\n }\n setData(json);\n return json;\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n return null;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const reset = useCallback(() => {\n setLoading(false);\n setError(null);\n setData(null);\n }, []);\n\n return { loading, error, data, lookup, reset };\n}\n"],"mappings":";;AA6BA,
|
|
1
|
+
{"version":3,"file":"use-viacep.js","names":["useViaCEP","loading","setLoading","useState","error","setError","data","setData","useCallback","digits","cep","json","err"],"sources":["../../src/forms/use-viacep.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport interface ViaCEPResult {\n cep: string;\n logradouro: string;\n complemento: string;\n bairro: string;\n localidade: string;\n uf: string;\n ibge?: string;\n gia?: string;\n ddd?: string;\n siafi?: string;\n}\n\nexport interface UseViaCEPResult {\n loading: boolean;\n error: string | null;\n data: ViaCEPResult | null;\n /** Fetch the given CEP (8 digits or masked). Sets `data`/`error`. Returns the result. */\n lookup: (cep: string) => Promise<ViaCEPResult | null>;\n reset: () => void;\n}\n\n/**\n * React hook for the public ViaCEP service (`viacep.com.br`). No backend\n * required. Returns address fields when the CEP exists, or sets `error` for\n * invalid CEPs.\n */\nexport function useViaCEP(): UseViaCEPResult {\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | null>(null);\n const [data, setData] = useState<ViaCEPResult | null>(null);\n\n const lookup = useCallback(async (cep: string): Promise<ViaCEPResult | null> => {\n const digits = cep.replace(/\\D/g, \"\");\n if (digits.length !== 8) {\n setError(\"CEP inválido.\");\n return null;\n }\n setLoading(true);\n setError(null);\n try {\n const response = await fetch(`https://viacep.com.br/ws/${digits}/json/`);\n const json = (await response.json()) as ViaCEPResult & { erro?: boolean };\n if (\"erro\" in json && json.erro) {\n setError(\"CEP não encontrado.\");\n setData(null);\n return null;\n }\n setData(json);\n return json;\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err));\n return null;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const reset = useCallback(() => {\n setLoading(false);\n setError(null);\n setData(null);\n }, []);\n\n return { loading, error, data, lookup, reset };\n}\n"],"mappings":";;AA6BA,SAAgBA,IAA6B;CACzC,IAAM,CAACC,GAASC,KAAcC,EAAkB,EAAK,GAC/C,CAACC,GAAOC,KAAYF,EAAwB,IAAI,GAChD,CAACG,GAAMC,KAAWJ,EAA8B,IAAI;CAkC1D,OAAO;EAAE;EAAS;EAAO;EAAM,QAhChBK,EAAY,OAAO,MAA8C;GAC5E,IAAMC,IAASC,EAAI,QAAQ,OAAO,EAAE;GACpC,IAAID,EAAO,WAAW,GAElB,OADAJ,EAAS,eAAe,GACjB;GAGX,AADAH,EAAW,EAAI,GACfG,EAAS,IAAI;GACb,IAAI;IAEA,IAAMM,IAAQ,OAAM,MADG,MAAM,4BAA4BF,EAAO,OAAO,EAAA,CAC1C,KAAK;IAOlC,OANI,UAAUE,KAAQA,EAAK,QACvBN,EAAS,qBAAqB,GAC9BE,EAAQ,IAAI,GACL,SAEXA,EAAQI,CAAI,GACLA;GACX,SAASC,GAAK;IAEV,OADAP,EAASO,aAAe,QAAQA,EAAI,UAAU,OAAOA,CAAG,CAAC,GAClD;GACX,UAAU;IACN,EAAW,EAAK;GACpB;EACJ,GAAG,CAAC,CAQ2B;EAAQ,OANzBJ,QAAkB;GAG5B,AAFAN,EAAW,EAAK,GAChBG,EAAS,IAAI,GACbE,EAAQ,IAAI;EAChB,GAAG,CAAC,CAEmC;CAAM;AACjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-zod-form.cjs","names":[],"sources":["../../src/forms/use-zod-form.ts"],"sourcesContent":["import { useForm } from \"react-hook-form\";\nimport type { FieldValues, UseFormProps, UseFormReturn } from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { zodResolver } from \"./zod-resolver\";\n\n/**\n * Convenience wrapper around `react-hook-form`'s `useForm` that wires a zod\n * resolver and infers the form's value type from the schema.\n *\n * Both `react-hook-form` and `zod` are optional peer dependencies — install\n * them when your app uses forms.\n *\n * @example\n * const form = useZodForm(loginSchema, { defaultValues: { email: \"\" } });\n * form.register(\"email\");\n */\nexport function useZodForm<\n TSchema extends z.ZodTypeAny,\n TValues extends FieldValues = z.infer<TSchema> & FieldValues,\n>(schema: TSchema, options: Omit<UseFormProps<TValues>, \"resolver\"> = {}): UseFormReturn<TValues> {\n return useForm<TValues>({\n ...options,\n resolver: zodResolver(schema) as unknown as UseFormProps<TValues>[\"resolver\"],\n });\n}\n"],"mappings":"uEAgBA,
|
|
1
|
+
{"version":3,"file":"use-zod-form.cjs","names":["useForm","zodResolver","require_zod_resolver","react_hook_form","useZodForm","options","schema"],"sources":["../../src/forms/use-zod-form.ts"],"sourcesContent":["import { useForm } from \"react-hook-form\";\nimport type { FieldValues, UseFormProps, UseFormReturn } from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { zodResolver } from \"./zod-resolver\";\n\n/**\n * Convenience wrapper around `react-hook-form`'s `useForm` that wires a zod\n * resolver and infers the form's value type from the schema.\n *\n * Both `react-hook-form` and `zod` are optional peer dependencies — install\n * them when your app uses forms.\n *\n * @example\n * const form = useZodForm(loginSchema, { defaultValues: { email: \"\" } });\n * form.register(\"email\");\n */\nexport function useZodForm<\n TSchema extends z.ZodTypeAny,\n TValues extends FieldValues = z.infer<TSchema> & FieldValues,\n>(schema: TSchema, options: Omit<UseFormProps<TValues>, \"resolver\"> = {}): UseFormReturn<TValues> {\n return useForm<TValues>({\n ...options,\n resolver: zodResolver(schema) as unknown as UseFormProps<TValues>[\"resolver\"],\n });\n}\n"],"mappings":"A,uEAgBA,SAAgBI,EAGd,EAAiB,EAAmD,CAAC,EAA2B,CAC9F,OAAA,EAAOJ,EAAAA,QAAAA,CAAiB,CACpB,GAAGK,EACH,SAAUJ,EAAAA,YAAYK,CAAM,CAChC,CAAC,CACL,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-zod-form.js","names":[],"sources":["../../src/forms/use-zod-form.ts"],"sourcesContent":["import { useForm } from \"react-hook-form\";\nimport type { FieldValues, UseFormProps, UseFormReturn } from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { zodResolver } from \"./zod-resolver\";\n\n/**\n * Convenience wrapper around `react-hook-form`'s `useForm` that wires a zod\n * resolver and infers the form's value type from the schema.\n *\n * Both `react-hook-form` and `zod` are optional peer dependencies — install\n * them when your app uses forms.\n *\n * @example\n * const form = useZodForm(loginSchema, { defaultValues: { email: \"\" } });\n * form.register(\"email\");\n */\nexport function useZodForm<\n TSchema extends z.ZodTypeAny,\n TValues extends FieldValues = z.infer<TSchema> & FieldValues,\n>(schema: TSchema, options: Omit<UseFormProps<TValues>, \"resolver\"> = {}): UseFormReturn<TValues> {\n return useForm<TValues>({\n ...options,\n resolver: zodResolver(schema) as unknown as UseFormProps<TValues>[\"resolver\"],\n });\n}\n"],"mappings":";;;AAgBA,
|
|
1
|
+
{"version":3,"file":"use-zod-form.js","names":["useZodForm","useForm","options","zodResolver","schema"],"sources":["../../src/forms/use-zod-form.ts"],"sourcesContent":["import { useForm } from \"react-hook-form\";\nimport type { FieldValues, UseFormProps, UseFormReturn } from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { zodResolver } from \"./zod-resolver\";\n\n/**\n * Convenience wrapper around `react-hook-form`'s `useForm` that wires a zod\n * resolver and infers the form's value type from the schema.\n *\n * Both `react-hook-form` and `zod` are optional peer dependencies — install\n * them when your app uses forms.\n *\n * @example\n * const form = useZodForm(loginSchema, { defaultValues: { email: \"\" } });\n * form.register(\"email\");\n */\nexport function useZodForm<\n TSchema extends z.ZodTypeAny,\n TValues extends FieldValues = z.infer<TSchema> & FieldValues,\n>(schema: TSchema, options: Omit<UseFormProps<TValues>, \"resolver\"> = {}): UseFormReturn<TValues> {\n return useForm<TValues>({\n ...options,\n resolver: zodResolver(schema) as unknown as UseFormProps<TValues>[\"resolver\"],\n });\n}\n"],"mappings":";;;AAgBA,SAAgBA,EAGd,GAAiB,IAAmD,CAAC,GAA2B;CAC9F,OAAOC,EAAiB;EACpB,GAAGC;EACH,UAAUC,EAAYC,CAAM;CAChC,CAAC;AACL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-form.cjs","names":[],"sources":["../../src/forms/validate-form.ts"],"sourcesContent":["import type { z } from \"zod\";\n\nexport interface ValidateFormSuccess<T> {\n success: true;\n data: T;\n errors: Record<string, string>;\n}\n\nexport interface ValidateFormFailure {\n success: false;\n errors: Record<string, string>;\n}\n\nexport type ValidateFormResult<T> = ValidateFormSuccess<T> | ValidateFormFailure;\n\n/**\n * Validate `values` against a zod schema and return a per-field error map\n * compatible with most form libraries.\n *\n * Field paths follow zod's `issue.path.join(\".\")` convention — nested fields\n * become `\"address.city\"`, array entries `\"items.0.name\"`. The first issue\n * per path wins (subsequent ones are dropped to keep error UIs tidy).\n *\n * @param schema - zod schema describing the form shape.\n * @param values - Raw form values (typed as `unknown`).\n * @returns Either `{ success: true, data, errors: {} }` or `{ success: false, errors }`.\n */\nexport function validateForm<TSchema extends z.ZodTypeAny>(\n schema: TSchema,\n values: unknown,\n): ValidateFormResult<z.infer<TSchema>> {\n const result = schema.safeParse(values);\n if (result.success) {\n return { success: true, data: result.data, errors: {} };\n }\n const errors: Record<string, string> = {};\n for (const issue of result.error.issues) {\n const path = issue.path.length === 0 ? \"_root\" : issue.path.join(\".\");\n if (!(path in errors)) errors[path] = issue.message;\n }\n return { success: false, errors };\n}\n"],"mappings":"AA2BA,
|
|
1
|
+
{"version":3,"file":"validate-form.cjs","names":["validateForm","result","schema","values","errors","issue","path"],"sources":["../../src/forms/validate-form.ts"],"sourcesContent":["import type { z } from \"zod\";\n\nexport interface ValidateFormSuccess<T> {\n success: true;\n data: T;\n errors: Record<string, string>;\n}\n\nexport interface ValidateFormFailure {\n success: false;\n errors: Record<string, string>;\n}\n\nexport type ValidateFormResult<T> = ValidateFormSuccess<T> | ValidateFormFailure;\n\n/**\n * Validate `values` against a zod schema and return a per-field error map\n * compatible with most form libraries.\n *\n * Field paths follow zod's `issue.path.join(\".\")` convention — nested fields\n * become `\"address.city\"`, array entries `\"items.0.name\"`. The first issue\n * per path wins (subsequent ones are dropped to keep error UIs tidy).\n *\n * @param schema - zod schema describing the form shape.\n * @param values - Raw form values (typed as `unknown`).\n * @returns Either `{ success: true, data, errors: {} }` or `{ success: false, errors }`.\n */\nexport function validateForm<TSchema extends z.ZodTypeAny>(\n schema: TSchema,\n values: unknown,\n): ValidateFormResult<z.infer<TSchema>> {\n const result = schema.safeParse(values);\n if (result.success) {\n return { success: true, data: result.data, errors: {} };\n }\n const errors: Record<string, string> = {};\n for (const issue of result.error.issues) {\n const path = issue.path.length === 0 ? \"_root\" : issue.path.join(\".\");\n if (!(path in errors)) errors[path] = issue.message;\n }\n return { success: false, errors };\n}\n"],"mappings":"AA2BA,SAAgBA,EACZ,EACA,EACoC,CACpC,IAAMC,EAASC,EAAO,UAAUC,CAAM,EACtC,GAAIF,EAAO,QACP,MAAO,CAAE,QAAS,GAAM,KAAMA,EAAO,KAAM,OAAQ,CAAC,CAAE,EAE1D,IAAMG,EAAiC,CAAC,EACxC,IAAK,IAAMC,KAASJ,EAAO,MAAM,OAAQ,CACrC,IAAMK,EAAOD,EAAM,KAAK,SAAW,EAAI,QAAUA,EAAM,KAAK,KAAK,GAAG,EAC9DC,KAAQF,IAAS,EAAOE,GAAQD,EAAM,QAChD,CACA,MAAO,CAAE,QAAS,GAAO,QAAO,CACpC,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-form.js","names":[],"sources":["../../src/forms/validate-form.ts"],"sourcesContent":["import type { z } from \"zod\";\n\nexport interface ValidateFormSuccess<T> {\n success: true;\n data: T;\n errors: Record<string, string>;\n}\n\nexport interface ValidateFormFailure {\n success: false;\n errors: Record<string, string>;\n}\n\nexport type ValidateFormResult<T> = ValidateFormSuccess<T> | ValidateFormFailure;\n\n/**\n * Validate `values` against a zod schema and return a per-field error map\n * compatible with most form libraries.\n *\n * Field paths follow zod's `issue.path.join(\".\")` convention — nested fields\n * become `\"address.city\"`, array entries `\"items.0.name\"`. The first issue\n * per path wins (subsequent ones are dropped to keep error UIs tidy).\n *\n * @param schema - zod schema describing the form shape.\n * @param values - Raw form values (typed as `unknown`).\n * @returns Either `{ success: true, data, errors: {} }` or `{ success: false, errors }`.\n */\nexport function validateForm<TSchema extends z.ZodTypeAny>(\n schema: TSchema,\n values: unknown,\n): ValidateFormResult<z.infer<TSchema>> {\n const result = schema.safeParse(values);\n if (result.success) {\n return { success: true, data: result.data, errors: {} };\n }\n const errors: Record<string, string> = {};\n for (const issue of result.error.issues) {\n const path = issue.path.length === 0 ? \"_root\" : issue.path.join(\".\");\n if (!(path in errors)) errors[path] = issue.message;\n }\n return { success: false, errors };\n}\n"],"mappings":";AA2BA,
|
|
1
|
+
{"version":3,"file":"validate-form.js","names":["validateForm","result","schema","values","errors","issue","path"],"sources":["../../src/forms/validate-form.ts"],"sourcesContent":["import type { z } from \"zod\";\n\nexport interface ValidateFormSuccess<T> {\n success: true;\n data: T;\n errors: Record<string, string>;\n}\n\nexport interface ValidateFormFailure {\n success: false;\n errors: Record<string, string>;\n}\n\nexport type ValidateFormResult<T> = ValidateFormSuccess<T> | ValidateFormFailure;\n\n/**\n * Validate `values` against a zod schema and return a per-field error map\n * compatible with most form libraries.\n *\n * Field paths follow zod's `issue.path.join(\".\")` convention — nested fields\n * become `\"address.city\"`, array entries `\"items.0.name\"`. The first issue\n * per path wins (subsequent ones are dropped to keep error UIs tidy).\n *\n * @param schema - zod schema describing the form shape.\n * @param values - Raw form values (typed as `unknown`).\n * @returns Either `{ success: true, data, errors: {} }` or `{ success: false, errors }`.\n */\nexport function validateForm<TSchema extends z.ZodTypeAny>(\n schema: TSchema,\n values: unknown,\n): ValidateFormResult<z.infer<TSchema>> {\n const result = schema.safeParse(values);\n if (result.success) {\n return { success: true, data: result.data, errors: {} };\n }\n const errors: Record<string, string> = {};\n for (const issue of result.error.issues) {\n const path = issue.path.length === 0 ? \"_root\" : issue.path.join(\".\");\n if (!(path in errors)) errors[path] = issue.message;\n }\n return { success: false, errors };\n}\n"],"mappings":";AA2BA,SAAgBA,EACZ,GACA,GACoC;CACpC,IAAMC,IAASC,EAAO,UAAUC,CAAM;CACtC,IAAIF,EAAO,SACP,OAAO;EAAE,SAAS;EAAM,MAAMA,EAAO;EAAM,QAAQ,CAAC;CAAE;CAE1D,IAAMG,IAAiC,CAAC;CACxC,KAAK,IAAMC,KAASJ,EAAO,MAAM,QAAQ;EACrC,IAAMK,IAAOD,EAAM,KAAK,WAAW,IAAI,UAAUA,EAAM,KAAK,KAAK,GAAG;EACpE,AAAMC,KAAQF,MAAS,EAAOE,KAAQD,EAAM;CAChD;CACA,OAAO;EAAE,SAAS;EAAO;CAAO;AACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-resolver.cjs","names":[],"sources":["../../src/forms/zod-resolver.ts"],"sourcesContent":["import type {\n FieldErrors,\n FieldValues,\n Resolver,\n ResolverOptions,\n ResolverResult,\n} from \"react-hook-form\";\nimport type { z } from \"zod\";\n\ninterface ResolverError {\n type: string;\n message: string;\n}\n\n/**\n * Minimal `react-hook-form` resolver built on top of zod. Mirrors the shape\n * produced by `@hookform/resolvers/zod` so it can be passed straight to\n * `useForm({ resolver })`.\n *\n * Typed with react-hook-form's own `Resolver`, not a local look-alike: a\n * structurally similar type of our own compiled fine here and was then rejected\n * at the `useForm({ resolver })` call site — the only place a resolver is ever\n * used — which is why `useZodForm` had to cast its way past it.\n *\n * Of the resolver options only `criteriaMode` is read; the rest of\n * `ResolverOptions` is accepted and ignored, because react-hook-form always\n * passes the whole object.\n *\n * @example\n * const form = useForm<LoginForm>({ resolver: zodResolver(loginSchema) });\n */\nexport function zodResolver<TSchema extends z.ZodTypeAny>(\n schema: TSchema,\n): Resolver<z.infer<TSchema> & FieldValues> {\n type Values = z.infer<TSchema> & FieldValues;\n\n return async (\n values: Values,\n _context: unknown,\n options: ResolverOptions<Values>,\n ): Promise<ResolverResult<Values>> => {\n const result = schema.safeParse(values);\n if (result.success) {\n return { values: result.data as Values, errors: {} };\n }\n\n const errors: Record<string, ResolverError | object> = {};\n const criteriaMode = options.criteriaMode ?? \"firstError\";\n\n for (const issue of result.error.issues) {\n const path = issue.path.length === 0 ? \"_root\" : issue.path.join(\".\");\n if (criteriaMode === \"firstError\" && errors[path]) continue;\n errors[path] = { type: issue.code, message: issue.message };\n }\n\n return { values: {}, errors: errors as FieldErrors<Values> };\n };\n}\n"],"mappings":"AA+BA,
|
|
1
|
+
{"version":3,"file":"zod-resolver.cjs","names":["zodResolver","result","schema","values","errors","criteriaMode","options","issue","path"],"sources":["../../src/forms/zod-resolver.ts"],"sourcesContent":["import type {\n FieldErrors,\n FieldValues,\n Resolver,\n ResolverOptions,\n ResolverResult,\n} from \"react-hook-form\";\nimport type { z } from \"zod\";\n\ninterface ResolverError {\n type: string;\n message: string;\n}\n\n/**\n * Minimal `react-hook-form` resolver built on top of zod. Mirrors the shape\n * produced by `@hookform/resolvers/zod` so it can be passed straight to\n * `useForm({ resolver })`.\n *\n * Typed with react-hook-form's own `Resolver`, not a local look-alike: a\n * structurally similar type of our own compiled fine here and was then rejected\n * at the `useForm({ resolver })` call site — the only place a resolver is ever\n * used — which is why `useZodForm` had to cast its way past it.\n *\n * Of the resolver options only `criteriaMode` is read; the rest of\n * `ResolverOptions` is accepted and ignored, because react-hook-form always\n * passes the whole object.\n *\n * @example\n * const form = useForm<LoginForm>({ resolver: zodResolver(loginSchema) });\n */\nexport function zodResolver<TSchema extends z.ZodTypeAny>(\n schema: TSchema,\n): Resolver<z.infer<TSchema> & FieldValues> {\n type Values = z.infer<TSchema> & FieldValues;\n\n return async (\n values: Values,\n _context: unknown,\n options: ResolverOptions<Values>,\n ): Promise<ResolverResult<Values>> => {\n const result = schema.safeParse(values);\n if (result.success) {\n return { values: result.data as Values, errors: {} };\n }\n\n const errors: Record<string, ResolverError | object> = {};\n const criteriaMode = options.criteriaMode ?? \"firstError\";\n\n for (const issue of result.error.issues) {\n const path = issue.path.length === 0 ? \"_root\" : issue.path.join(\".\");\n if (criteriaMode === \"firstError\" && errors[path]) continue;\n errors[path] = { type: issue.code, message: issue.message };\n }\n\n return { values: {}, errors: errors as FieldErrors<Values> };\n };\n}\n"],"mappings":"AA+BA,SAAgBA,EACZ,EACwC,CAGxC,OAAO,MACH,EACA,EACA,IACkC,CAClC,IAAMC,EAASC,EAAO,UAAUC,CAAM,EACtC,GAAIF,EAAO,QACP,MAAO,CAAE,OAAQA,EAAO,KAAgB,OAAQ,CAAC,CAAE,EAGvD,IAAMG,EAAiD,CAAC,EAClDC,EAAeC,EAAQ,cAAgB,aAE7C,IAAK,IAAMC,KAASN,EAAO,MAAM,OAAQ,CACrC,IAAMO,EAAOD,EAAM,KAAK,SAAW,EAAI,QAAUA,EAAM,KAAK,KAAK,GAAG,EAChEF,IAAiB,cAAgBD,EAAOI,KAC5C,EAAOA,GAAQ,CAAE,KAAMD,EAAM,KAAM,QAASA,EAAM,OAAQ,EAC9D,CAEA,MAAO,CAAE,OAAQ,CAAC,EAAW,QAA8B,CAC/D,CACJ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-resolver.js","names":[],"sources":["../../src/forms/zod-resolver.ts"],"sourcesContent":["import type {\n FieldErrors,\n FieldValues,\n Resolver,\n ResolverOptions,\n ResolverResult,\n} from \"react-hook-form\";\nimport type { z } from \"zod\";\n\ninterface ResolverError {\n type: string;\n message: string;\n}\n\n/**\n * Minimal `react-hook-form` resolver built on top of zod. Mirrors the shape\n * produced by `@hookform/resolvers/zod` so it can be passed straight to\n * `useForm({ resolver })`.\n *\n * Typed with react-hook-form's own `Resolver`, not a local look-alike: a\n * structurally similar type of our own compiled fine here and was then rejected\n * at the `useForm({ resolver })` call site — the only place a resolver is ever\n * used — which is why `useZodForm` had to cast its way past it.\n *\n * Of the resolver options only `criteriaMode` is read; the rest of\n * `ResolverOptions` is accepted and ignored, because react-hook-form always\n * passes the whole object.\n *\n * @example\n * const form = useForm<LoginForm>({ resolver: zodResolver(loginSchema) });\n */\nexport function zodResolver<TSchema extends z.ZodTypeAny>(\n schema: TSchema,\n): Resolver<z.infer<TSchema> & FieldValues> {\n type Values = z.infer<TSchema> & FieldValues;\n\n return async (\n values: Values,\n _context: unknown,\n options: ResolverOptions<Values>,\n ): Promise<ResolverResult<Values>> => {\n const result = schema.safeParse(values);\n if (result.success) {\n return { values: result.data as Values, errors: {} };\n }\n\n const errors: Record<string, ResolverError | object> = {};\n const criteriaMode = options.criteriaMode ?? \"firstError\";\n\n for (const issue of result.error.issues) {\n const path = issue.path.length === 0 ? \"_root\" : issue.path.join(\".\");\n if (criteriaMode === \"firstError\" && errors[path]) continue;\n errors[path] = { type: issue.code, message: issue.message };\n }\n\n return { values: {}, errors: errors as FieldErrors<Values> };\n };\n}\n"],"mappings":";AA+BA,
|
|
1
|
+
{"version":3,"file":"zod-resolver.js","names":["zodResolver","result","schema","values","errors","criteriaMode","options","issue","path"],"sources":["../../src/forms/zod-resolver.ts"],"sourcesContent":["import type {\n FieldErrors,\n FieldValues,\n Resolver,\n ResolverOptions,\n ResolverResult,\n} from \"react-hook-form\";\nimport type { z } from \"zod\";\n\ninterface ResolverError {\n type: string;\n message: string;\n}\n\n/**\n * Minimal `react-hook-form` resolver built on top of zod. Mirrors the shape\n * produced by `@hookform/resolvers/zod` so it can be passed straight to\n * `useForm({ resolver })`.\n *\n * Typed with react-hook-form's own `Resolver`, not a local look-alike: a\n * structurally similar type of our own compiled fine here and was then rejected\n * at the `useForm({ resolver })` call site — the only place a resolver is ever\n * used — which is why `useZodForm` had to cast its way past it.\n *\n * Of the resolver options only `criteriaMode` is read; the rest of\n * `ResolverOptions` is accepted and ignored, because react-hook-form always\n * passes the whole object.\n *\n * @example\n * const form = useForm<LoginForm>({ resolver: zodResolver(loginSchema) });\n */\nexport function zodResolver<TSchema extends z.ZodTypeAny>(\n schema: TSchema,\n): Resolver<z.infer<TSchema> & FieldValues> {\n type Values = z.infer<TSchema> & FieldValues;\n\n return async (\n values: Values,\n _context: unknown,\n options: ResolverOptions<Values>,\n ): Promise<ResolverResult<Values>> => {\n const result = schema.safeParse(values);\n if (result.success) {\n return { values: result.data as Values, errors: {} };\n }\n\n const errors: Record<string, ResolverError | object> = {};\n const criteriaMode = options.criteriaMode ?? \"firstError\";\n\n for (const issue of result.error.issues) {\n const path = issue.path.length === 0 ? \"_root\" : issue.path.join(\".\");\n if (criteriaMode === \"firstError\" && errors[path]) continue;\n errors[path] = { type: issue.code, message: issue.message };\n }\n\n return { values: {}, errors: errors as FieldErrors<Values> };\n };\n}\n"],"mappings":";AA+BA,SAAgBA,EACZ,GACwC;CAGxC,OAAO,OACH,GACA,GACA,MACkC;EAClC,IAAMC,IAASC,EAAO,UAAUC,CAAM;EACtC,IAAIF,EAAO,SACP,OAAO;GAAE,QAAQA,EAAO;GAAgB,QAAQ,CAAC;EAAE;EAGvD,IAAMG,IAAiD,CAAC,GAClDC,IAAeC,EAAQ,gBAAgB;EAE7C,KAAK,IAAMC,KAASN,EAAO,MAAM,QAAQ;GACrC,IAAMO,IAAOD,EAAM,KAAK,WAAW,IAAI,UAAUA,EAAM,KAAK,KAAK,GAAG;GACpE,AAAIF,MAAiB,gBAAgBD,EAAOI,OAC5C,EAAOA,KAAQ;IAAE,MAAMD,EAAM;IAAM,SAASA,EAAM;GAAQ;EAC9D;EAEA,OAAO;GAAE,QAAQ,CAAC;GAAW;EAA8B;CAC/D;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrajectoryMap.cjs","names":[],"sources":["../../src/geo/TrajectoryMap.tsx"],"sourcesContent":["/**\n * @tempest-limits file-lines, props-count, function-lines — the SVG plot (points,\n * current, height, padding, showGrid, showScale, strokeColor, label), the optional\n * leaflet tile layer (tileUrl, tileAttribution) and the overlay (markers,\n * onMarkerClick). The body projects the path, fits the bounds and hands the same\n * bounds to the tile layer when there is one.\n */\nimport { lazy, Suspense, useEffect, useMemo, useRef, useState, type HTMLAttributes } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { boundingBox, expandBounds } from \"./bounds\";\nimport { haversineKm } from \"./distance\";\nimport { fitProjection, type PixelPoint } from \"./projection\";\nimport type { Coordinate, GeoMarker } from \"./types\";\nimport styles from \"./TrajectoryMap.module.css\";\n\n// Leaflet layer is loaded on demand — only when a `tileUrl` is supplied, so\n// apps that stick to the tile-free SVG never pull leaflet into their bundle.\nconst LeafletTrajectory = lazy(() =>\n import(\"./leaflet-map\").then((m) => ({ default: m.LeafletTrajectory })),\n);\n\nexport interface TrajectoryMapProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n /** Ordered coordinates forming the trajectory. */\n points: readonly Coordinate[];\n /** Optional \"current position\" marker, drawn on top of the path. */\n current?: Coordinate | null;\n /** Viewport height in pixels. Default: `320`. */\n height?: number;\n /** Inner padding in pixels kept clear on every edge. Default: `24`. */\n padding?: number;\n /** Draw a light reference grid behind the path (SVG mode). Default: `true`. */\n showGrid?: boolean;\n /** Draw a distance scale bar (SVG mode). Default: `true`. */\n showScale?: boolean;\n /** Path stroke color. Default: the primary token. */\n strokeColor?: string;\n /**\n * Tile URL template (`{z}/{x}/{y}`) of a map server **you host**. When set,\n * the map upgrades to a real Leaflet tile layer (requires `leaflet` to be\n * installed). Omit for the zero-dependency, zero-network SVG plot.\n */\n tileUrl?: string;\n /** Attribution text shown over the tile layer. */\n tileAttribution?: string;\n /** Accessible label for the map region. Default: `\"Trajetória\"`. */\n label?: string;\n /** Point markers to overlay (e.g. stops, POIs). Included in the auto-fit. */\n markers?: readonly GeoMarker[];\n /** Fired when a marker is clicked. */\n onMarkerClick?: (marker: GeoMarker, index: number) => void;\n}\n\nconst NICE_KM_STEPS = [0.05, 0.1, 0.25, 0.5, 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000] as const;\n\n/** Pick the largest \"nice\" distance whose bar fits within `maxPixels`. */\nfunction pickScaleKm(kmPerPixel: number, maxPixels: number): { km: number; pixels: number } {\n const maxKm = kmPerPixel * maxPixels;\n let chosen: number = NICE_KM_STEPS[0];\n for (const step of NICE_KM_STEPS) {\n if (step <= maxKm) chosen = step;\n }\n return { km: chosen, pixels: chosen / kmPerPixel };\n}\n\n/** Format a distance in km for the scale bar (meters below 1 km). */\nfunction formatScale(km: number): string {\n return km < 1 ? `${Math.round(km * 1000)} m` : `${km % 1 === 0 ? km : km.toFixed(1)} km`;\n}\n\n/**\n * Plot a GPS trajectory. By default it renders a **tile-free SVG** map (Web\n * Mercator projection, auto-fit to the points, optional grid + scale bar) —\n * 100% self-contained, no external tiles or paid API. Pass `tileUrl` pointing\n * at a map server **you host** to upgrade to a real Leaflet tile layer.\n *\n * @example\n * // Zero-dependency SVG plot\n * <TrajectoryMap points={points} current={lastPoint} height={360} />\n *\n * @example\n * // Real tiles from your own server (requires `leaflet` installed)\n * <TrajectoryMap points={points} tileUrl=\"https://tiles.internal/{z}/{x}/{y}.png\" />\n */\nexport function TrajectoryMap({\n points,\n current,\n height = 320,\n padding = 24,\n showGrid = true,\n showScale = true,\n strokeColor,\n tileUrl,\n tileAttribution,\n label = \"Trajetória\",\n markers,\n onMarkerClick,\n className,\n style,\n ...rest\n}: TrajectoryMapProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const [width, setWidth] = useState<number>(600);\n\n useEffect(() => {\n const node = containerRef.current;\n if (!node || typeof ResizeObserver === \"undefined\") return;\n const observer = new ResizeObserver((entries) => {\n const measured = entries[0]?.contentRect.width;\n if (measured && measured > 0) setWidth(measured);\n });\n observer.observe(node);\n return () => observer.disconnect();\n }, []);\n\n const allPoints = useMemo<Coordinate[]>(\n () => [...points, ...(current ? [current] : []), ...(markers ?? [])],\n [points, current, markers],\n );\n\n const svg = useMemo(() => {\n const box = boundingBox(allPoints);\n if (!box) return null;\n\n const projection = fitProjection(expandBounds(box, 0.12), width, height, { padding });\n const pixels: PixelPoint[] = points.map((p) => projection.project(p));\n const polyline = pixels.map((p) => `${p.x.toFixed(1)},${p.y.toFixed(1)}`).join(\" \");\n\n const startPixel = pixels[0] ?? null;\n const endPixel = pixels.length > 0 ? pixels[pixels.length - 1] : null;\n const currentPixel = current ? projection.project(current) : null;\n\n // Distance-per-pixel at the map center, for the scale bar: measure the\n // center → east-edge span in both km (haversine) and pixels (projected).\n const centerCoord = {\n latitude: (box.minLatitude + box.maxLatitude) / 2,\n longitude: (box.minLongitude + box.maxLongitude) / 2,\n };\n const center = projection.project(centerCoord);\n const eastRef = projection.project({ ...centerCoord, longitude: box.maxLongitude });\n const edgeKm = haversineKm(centerCoord, { ...centerCoord, longitude: box.maxLongitude });\n const edgePixels = Math.abs(eastRef.x - center.x) || 1;\n const kmPerPixel = edgeKm / edgePixels || 0;\n\n const markerPixels = (markers ?? []).map((m) => ({ marker: m, p: projection.project(m) }));\n\n return { polyline, startPixel, endPixel, currentPixel, kmPerPixel, markerPixels };\n }, [allPoints, points, current, markers, width, height, padding]);\n\n // ── Leaflet tile mode ────────────────────────────────────────────────────\n if (tileUrl) {\n return (\n <div\n ref={containerRef}\n className={cn(styles.map, className)}\n style={{ height, ...style }}\n role=\"img\"\n aria-label={label}\n {...rest}\n >\n <Suspense fallback={<div className={styles.loading}>Carregando mapa…</div>}>\n <LeafletTrajectory\n points={points}\n current={current}\n tileUrl={tileUrl}\n tileAttribution={tileAttribution}\n strokeColor={strokeColor}\n />\n </Suspense>\n </div>\n );\n }\n\n // ── Tile-free SVG mode ─────────────────────────────────────────────────────\n const scale =\n showScale && svg && svg.kmPerPixel > 0\n ? pickScaleKm(svg.kmPerPixel, Math.min(120, width * 0.35))\n : null;\n\n return (\n <div\n ref={containerRef}\n className={cn(styles.map, className)}\n style={{ height, ...style }}\n role=\"img\"\n aria-label={label}\n {...rest}\n >\n {!svg ? (\n <div className={styles.empty}>Sem pontos de trajetória ainda.</div>\n ) : (\n <svg\n className={styles.svg}\n width=\"100%\"\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n preserveAspectRatio=\"xMidYMid meet\"\n >\n {showGrid && (\n <g className={styles.grid}>\n {[0.25, 0.5, 0.75].map((f) => (\n <line\n key={`h${f}`}\n x1={0}\n y1={height * f}\n x2={width}\n y2={height * f}\n />\n ))}\n {[0.25, 0.5, 0.75].map((f) => (\n <line\n key={`v${f}`}\n x1={width * f}\n y1={0}\n x2={width * f}\n y2={height}\n />\n ))}\n </g>\n )}\n\n {svg.polyline && (\n <polyline\n className={styles.path}\n points={svg.polyline}\n fill=\"none\"\n stroke={strokeColor}\n data-testid=\"trajectory-path\"\n />\n )}\n\n {svg.startPixel && (\n <circle\n className={styles.start}\n cx={svg.startPixel.x}\n cy={svg.startPixel.y}\n r={5}\n />\n )}\n {svg.endPixel && !current && (\n <circle\n className={styles.end}\n cx={svg.endPixel.x}\n cy={svg.endPixel.y}\n r={5}\n />\n )}\n {svg.currentPixel && (\n <>\n <circle\n className={styles.pulse}\n cx={svg.currentPixel.x}\n cy={svg.currentPixel.y}\n r={10}\n />\n <circle\n className={styles.current}\n cx={svg.currentPixel.x}\n cy={svg.currentPixel.y}\n r={5}\n />\n </>\n )}\n\n {svg.markerPixels.map(({ marker, p }, i) => {\n const interactive = Boolean(onMarkerClick);\n return (\n <circle\n key={marker.id ?? i}\n className={styles.marker}\n cx={p.x}\n cy={p.y}\n r={marker.radius ?? 6}\n style={marker.color ? { fill: marker.color } : undefined}\n data-marker-id={marker.id ?? i}\n tabIndex={interactive ? 0 : undefined}\n role={interactive ? \"button\" : undefined}\n aria-label={marker.label}\n onClick={interactive ? () => onMarkerClick?.(marker, i) : undefined}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onMarkerClick?.(marker, i);\n }\n }\n : undefined\n }\n >\n {marker.label ? <title>{marker.label}</title> : null}\n </circle>\n );\n })}\n\n {scale && (\n <g\n className={styles.scale}\n transform={`translate(${padding}, ${height - padding})`}\n >\n <line x1={0} y1={0} x2={scale.pixels} y2={0} />\n <line x1={0} y1={-4} x2={0} y2={4} />\n <line x1={scale.pixels} y1={-4} x2={scale.pixels} y2={4} />\n <text x={scale.pixels / 2} y={-8} textAnchor=\"middle\">\n {formatScale(scale.km)}\n </text>\n </g>\n )}\n </svg>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TrajectoryMap.cjs","names":["lazy","useRef","useState","useMemo","boundingBox","fitProjection","expandBounds","haversineKm","cn","styles","Suspense","_Fragment","require_cn","require_distance","require_bounds","require_projection","require_TrajectoryMap_module","react","react_jsx_runtime","LeafletTrajectory","m","NICE_KM_STEPS","pickScaleKm","maxKm","kmPerPixel","maxPixels","chosen","step","formatScale","km","TrajectoryMap","rest","containerRef","width","setWidth","node","observer","measured","entries","allPoints","points","current","markers","svg","box","projection","height","pixels","p","polyline","startPixel","endPixel","currentPixel","centerCoord","center","eastRef","padding","tileUrl","className","style","label","scale","showScale","showGrid","f","strokeColor","interactive","onMarkerClick","marker","i","e"],"sources":["../../src/geo/TrajectoryMap.tsx"],"sourcesContent":["/**\n * @tempest-limits file-lines, props-count, function-lines — the SVG plot (points,\n * current, height, padding, showGrid, showScale, strokeColor, label), the optional\n * leaflet tile layer (tileUrl, tileAttribution) and the overlay (markers,\n * onMarkerClick). The body projects the path, fits the bounds and hands the same\n * bounds to the tile layer when there is one.\n */\nimport { lazy, Suspense, useEffect, useMemo, useRef, useState, type HTMLAttributes } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { boundingBox, expandBounds } from \"./bounds\";\nimport { haversineKm } from \"./distance\";\nimport { fitProjection, type PixelPoint } from \"./projection\";\nimport type { Coordinate, GeoMarker } from \"./types\";\nimport styles from \"./TrajectoryMap.module.css\";\n\n// Leaflet layer is loaded on demand — only when a `tileUrl` is supplied, so\n// apps that stick to the tile-free SVG never pull leaflet into their bundle.\nconst LeafletTrajectory = lazy(() =>\n import(\"./leaflet-map\").then((m) => ({ default: m.LeafletTrajectory })),\n);\n\nexport interface TrajectoryMapProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n /** Ordered coordinates forming the trajectory. */\n points: readonly Coordinate[];\n /** Optional \"current position\" marker, drawn on top of the path. */\n current?: Coordinate | null;\n /** Viewport height in pixels. Default: `320`. */\n height?: number;\n /** Inner padding in pixels kept clear on every edge. Default: `24`. */\n padding?: number;\n /** Draw a light reference grid behind the path (SVG mode). Default: `true`. */\n showGrid?: boolean;\n /** Draw a distance scale bar (SVG mode). Default: `true`. */\n showScale?: boolean;\n /** Path stroke color. Default: the primary token. */\n strokeColor?: string;\n /**\n * Tile URL template (`{z}/{x}/{y}`) of a map server **you host**. When set,\n * the map upgrades to a real Leaflet tile layer (requires `leaflet` to be\n * installed). Omit for the zero-dependency, zero-network SVG plot.\n */\n tileUrl?: string;\n /** Attribution text shown over the tile layer. */\n tileAttribution?: string;\n /** Accessible label for the map region. Default: `\"Trajetória\"`. */\n label?: string;\n /** Point markers to overlay (e.g. stops, POIs). Included in the auto-fit. */\n markers?: readonly GeoMarker[];\n /** Fired when a marker is clicked. */\n onMarkerClick?: (marker: GeoMarker, index: number) => void;\n}\n\nconst NICE_KM_STEPS = [0.05, 0.1, 0.25, 0.5, 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000] as const;\n\n/** Pick the largest \"nice\" distance whose bar fits within `maxPixels`. */\nfunction pickScaleKm(kmPerPixel: number, maxPixels: number): { km: number; pixels: number } {\n const maxKm = kmPerPixel * maxPixels;\n let chosen: number = NICE_KM_STEPS[0];\n for (const step of NICE_KM_STEPS) {\n if (step <= maxKm) chosen = step;\n }\n return { km: chosen, pixels: chosen / kmPerPixel };\n}\n\n/** Format a distance in km for the scale bar (meters below 1 km). */\nfunction formatScale(km: number): string {\n return km < 1 ? `${Math.round(km * 1000)} m` : `${km % 1 === 0 ? km : km.toFixed(1)} km`;\n}\n\n/**\n * Plot a GPS trajectory. By default it renders a **tile-free SVG** map (Web\n * Mercator projection, auto-fit to the points, optional grid + scale bar) —\n * 100% self-contained, no external tiles or paid API. Pass `tileUrl` pointing\n * at a map server **you host** to upgrade to a real Leaflet tile layer.\n *\n * @example\n * // Zero-dependency SVG plot\n * <TrajectoryMap points={points} current={lastPoint} height={360} />\n *\n * @example\n * // Real tiles from your own server (requires `leaflet` installed)\n * <TrajectoryMap points={points} tileUrl=\"https://tiles.internal/{z}/{x}/{y}.png\" />\n */\nexport function TrajectoryMap({\n points,\n current,\n height = 320,\n padding = 24,\n showGrid = true,\n showScale = true,\n strokeColor,\n tileUrl,\n tileAttribution,\n label = \"Trajetória\",\n markers,\n onMarkerClick,\n className,\n style,\n ...rest\n}: TrajectoryMapProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const [width, setWidth] = useState<number>(600);\n\n useEffect(() => {\n const node = containerRef.current;\n if (!node || typeof ResizeObserver === \"undefined\") return;\n const observer = new ResizeObserver((entries) => {\n const measured = entries[0]?.contentRect.width;\n if (measured && measured > 0) setWidth(measured);\n });\n observer.observe(node);\n return () => observer.disconnect();\n }, []);\n\n const allPoints = useMemo<Coordinate[]>(\n () => [...points, ...(current ? [current] : []), ...(markers ?? [])],\n [points, current, markers],\n );\n\n const svg = useMemo(() => {\n const box = boundingBox(allPoints);\n if (!box) return null;\n\n const projection = fitProjection(expandBounds(box, 0.12), width, height, { padding });\n const pixels: PixelPoint[] = points.map((p) => projection.project(p));\n const polyline = pixels.map((p) => `${p.x.toFixed(1)},${p.y.toFixed(1)}`).join(\" \");\n\n const startPixel = pixels[0] ?? null;\n const endPixel = pixels.length > 0 ? pixels[pixels.length - 1] : null;\n const currentPixel = current ? projection.project(current) : null;\n\n // Distance-per-pixel at the map center, for the scale bar: measure the\n // center → east-edge span in both km (haversine) and pixels (projected).\n const centerCoord = {\n latitude: (box.minLatitude + box.maxLatitude) / 2,\n longitude: (box.minLongitude + box.maxLongitude) / 2,\n };\n const center = projection.project(centerCoord);\n const eastRef = projection.project({ ...centerCoord, longitude: box.maxLongitude });\n const edgeKm = haversineKm(centerCoord, { ...centerCoord, longitude: box.maxLongitude });\n const edgePixels = Math.abs(eastRef.x - center.x) || 1;\n const kmPerPixel = edgeKm / edgePixels || 0;\n\n const markerPixels = (markers ?? []).map((m) => ({ marker: m, p: projection.project(m) }));\n\n return { polyline, startPixel, endPixel, currentPixel, kmPerPixel, markerPixels };\n }, [allPoints, points, current, markers, width, height, padding]);\n\n // ── Leaflet tile mode ────────────────────────────────────────────────────\n if (tileUrl) {\n return (\n <div\n ref={containerRef}\n className={cn(styles.map, className)}\n style={{ height, ...style }}\n role=\"img\"\n aria-label={label}\n {...rest}\n >\n <Suspense fallback={<div className={styles.loading}>Carregando mapa…</div>}>\n <LeafletTrajectory\n points={points}\n current={current}\n tileUrl={tileUrl}\n tileAttribution={tileAttribution}\n strokeColor={strokeColor}\n />\n </Suspense>\n </div>\n );\n }\n\n // ── Tile-free SVG mode ─────────────────────────────────────────────────────\n const scale =\n showScale && svg && svg.kmPerPixel > 0\n ? pickScaleKm(svg.kmPerPixel, Math.min(120, width * 0.35))\n : null;\n\n return (\n <div\n ref={containerRef}\n className={cn(styles.map, className)}\n style={{ height, ...style }}\n role=\"img\"\n aria-label={label}\n {...rest}\n >\n {!svg ? (\n <div className={styles.empty}>Sem pontos de trajetória ainda.</div>\n ) : (\n <svg\n className={styles.svg}\n width=\"100%\"\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n preserveAspectRatio=\"xMidYMid meet\"\n >\n {showGrid && (\n <g className={styles.grid}>\n {[0.25, 0.5, 0.75].map((f) => (\n <line\n key={`h${f}`}\n x1={0}\n y1={height * f}\n x2={width}\n y2={height * f}\n />\n ))}\n {[0.25, 0.5, 0.75].map((f) => (\n <line\n key={`v${f}`}\n x1={width * f}\n y1={0}\n x2={width * f}\n y2={height}\n />\n ))}\n </g>\n )}\n\n {svg.polyline && (\n <polyline\n className={styles.path}\n points={svg.polyline}\n fill=\"none\"\n stroke={strokeColor}\n data-testid=\"trajectory-path\"\n />\n )}\n\n {svg.startPixel && (\n <circle\n className={styles.start}\n cx={svg.startPixel.x}\n cy={svg.startPixel.y}\n r={5}\n />\n )}\n {svg.endPixel && !current && (\n <circle\n className={styles.end}\n cx={svg.endPixel.x}\n cy={svg.endPixel.y}\n r={5}\n />\n )}\n {svg.currentPixel && (\n <>\n <circle\n className={styles.pulse}\n cx={svg.currentPixel.x}\n cy={svg.currentPixel.y}\n r={10}\n />\n <circle\n className={styles.current}\n cx={svg.currentPixel.x}\n cy={svg.currentPixel.y}\n r={5}\n />\n </>\n )}\n\n {svg.markerPixels.map(({ marker, p }, i) => {\n const interactive = Boolean(onMarkerClick);\n return (\n <circle\n key={marker.id ?? i}\n className={styles.marker}\n cx={p.x}\n cy={p.y}\n r={marker.radius ?? 6}\n style={marker.color ? { fill: marker.color } : undefined}\n data-marker-id={marker.id ?? i}\n tabIndex={interactive ? 0 : undefined}\n role={interactive ? \"button\" : undefined}\n aria-label={marker.label}\n onClick={interactive ? () => onMarkerClick?.(marker, i) : undefined}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onMarkerClick?.(marker, i);\n }\n }\n : undefined\n }\n >\n {marker.label ? <title>{marker.label}</title> : null}\n </circle>\n );\n })}\n\n {scale && (\n <g\n className={styles.scale}\n transform={`translate(${padding}, ${height - padding})`}\n >\n <line x1={0} y1={0} x2={scale.pixels} y2={0} />\n <line x1={0} y1={-4} x2={0} y2={4} />\n <line x1={scale.pixels} y1={-4} x2={scale.pixels} y2={4} />\n <text x={scale.pixels / 2} y={-8} textAnchor=\"middle\">\n {formatScale(scale.km)}\n </text>\n </g>\n )}\n </svg>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|