tempest-react-sdk 0.78.0 → 0.79.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.mjs +168 -64
- package/bin/lib/openapi/generate.pagination.test.mjs +3 -2
- package/bin/lib/openapi/generate.test.mjs +263 -1
- 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.map +1 -1
- package/dist/http/api-client.js.map +1 -1
- package/dist/http/build-url.cjs.map +1 -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/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.map +1 -1
- package/dist/sse/create-event-stream.js.map +1 -1
- package/dist/sse/use-event-stream.cjs.map +1 -1
- 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 +234 -3
- package/dist/tempest-react-sdk.js +85 -85
- 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":"OfflineIndicator.cjs","names":[],"sources":["../../../src/components/OfflineIndicator/OfflineIndicator.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { CloudOff, Wifi } from \"lucide-react\";\nimport { cn } from \"@/utils/cn\";\nimport { useOnline } from \"@/hooks\";\nimport styles from \"./OfflineIndicator.module.css\";\n\nexport type OfflineIndicatorPosition = \"top\" | \"bottom\";\n\nexport interface OfflineIndicatorProps extends HTMLAttributes<HTMLDivElement> {\n /** Where to pin the fixed bar. Default `\"bottom\"`. */\n position?: OfflineIndicatorPosition;\n /** Message shown while offline. */\n offlineLabel?: ReactNode;\n /** Message flashed briefly when connectivity returns. */\n onlineLabel?: ReactNode;\n /**\n * How long (ms) to keep the \"back online\" flash visible. `0` hides it\n * entirely. Default `3000`.\n */\n onlineFlashMs?: number;\n /** Override the offline body entirely (icon + label ignored). */\n children?: ReactNode;\n}\n\n/**\n * Fixed bar that appears while the browser is offline and, by default, flashes\n * a brief confirmation when the connection returns. Backed by {@link useOnline}\n * — no props needed for the common case.\n *\n * Renders nothing while online (after any flash has elapsed), so it is safe to\n * mount unconditionally at the app root.\n *\n * @example\n * <OfflineIndicator position=\"top\" />\n */\nexport function OfflineIndicator({\n position = \"bottom\",\n offlineLabel = \"Você está offline. As alterações serão sincronizadas ao reconectar.\",\n onlineLabel = \"Conexão restabelecida.\",\n onlineFlashMs = 3000,\n className,\n children,\n ...props\n}: OfflineIndicatorProps) {\n const online = useOnline();\n const [flashOnline, setFlashOnline] = useState<boolean>(false);\n const wasOfflineRef = useRef<boolean>(false);\n\n useEffect(() => {\n if (!online) {\n wasOfflineRef.current = true;\n setFlashOnline(false);\n return;\n }\n if (!wasOfflineRef.current || onlineFlashMs <= 0) return;\n wasOfflineRef.current = false;\n setFlashOnline(true);\n const id = window.setTimeout(() => setFlashOnline(false), onlineFlashMs);\n return () => window.clearTimeout(id);\n }, [online, onlineFlashMs]);\n\n if (online && !flashOnline) return null;\n\n const showingOnline = online && flashOnline;\n return (\n <div\n className={cn(\n styles.bar,\n styles[position],\n showingOnline ? styles.online : styles.offline,\n className,\n )}\n role=\"status\"\n aria-live=\"polite\"\n {...props}\n >\n {children ?? (\n <>\n {showingOnline ? (\n <Wifi className={styles.icon} size={16} aria-hidden=\"true\" />\n ) : (\n <CloudOff className={styles.icon} size={16} aria-hidden=\"true\" />\n )}\n <span>{showingOnline ? onlineLabel : offlineLabel}</span>\n </>\n )}\n </div>\n );\n}\n"],"mappings":"yMAoCA,
|
|
1
|
+
{"version":3,"file":"OfflineIndicator.cjs","names":["useOnline","useState","useRef","cn","styles","_Fragment","Wifi","CloudOff","require_cn","require_use_online","require_OfflineIndicator_module","react","react_jsx_runtime","lucide_react","OfflineIndicator","props","online","flashOnline","setFlashOnline","wasOfflineRef","onlineFlashMs","id","showingOnline","position","className","children","onlineLabel","offlineLabel"],"sources":["../../../src/components/OfflineIndicator/OfflineIndicator.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { CloudOff, Wifi } from \"lucide-react\";\nimport { cn } from \"@/utils/cn\";\nimport { useOnline } from \"@/hooks\";\nimport styles from \"./OfflineIndicator.module.css\";\n\nexport type OfflineIndicatorPosition = \"top\" | \"bottom\";\n\nexport interface OfflineIndicatorProps extends HTMLAttributes<HTMLDivElement> {\n /** Where to pin the fixed bar. Default `\"bottom\"`. */\n position?: OfflineIndicatorPosition;\n /** Message shown while offline. */\n offlineLabel?: ReactNode;\n /** Message flashed briefly when connectivity returns. */\n onlineLabel?: ReactNode;\n /**\n * How long (ms) to keep the \"back online\" flash visible. `0` hides it\n * entirely. Default `3000`.\n */\n onlineFlashMs?: number;\n /** Override the offline body entirely (icon + label ignored). */\n children?: ReactNode;\n}\n\n/**\n * Fixed bar that appears while the browser is offline and, by default, flashes\n * a brief confirmation when the connection returns. Backed by {@link useOnline}\n * — no props needed for the common case.\n *\n * Renders nothing while online (after any flash has elapsed), so it is safe to\n * mount unconditionally at the app root.\n *\n * @example\n * <OfflineIndicator position=\"top\" />\n */\nexport function OfflineIndicator({\n position = \"bottom\",\n offlineLabel = \"Você está offline. As alterações serão sincronizadas ao reconectar.\",\n onlineLabel = \"Conexão restabelecida.\",\n onlineFlashMs = 3000,\n className,\n children,\n ...props\n}: OfflineIndicatorProps) {\n const online = useOnline();\n const [flashOnline, setFlashOnline] = useState<boolean>(false);\n const wasOfflineRef = useRef<boolean>(false);\n\n useEffect(() => {\n if (!online) {\n wasOfflineRef.current = true;\n setFlashOnline(false);\n return;\n }\n if (!wasOfflineRef.current || onlineFlashMs <= 0) return;\n wasOfflineRef.current = false;\n setFlashOnline(true);\n const id = window.setTimeout(() => setFlashOnline(false), onlineFlashMs);\n return () => window.clearTimeout(id);\n }, [online, onlineFlashMs]);\n\n if (online && !flashOnline) return null;\n\n const showingOnline = online && flashOnline;\n return (\n <div\n className={cn(\n styles.bar,\n styles[position],\n showingOnline ? styles.online : styles.offline,\n className,\n )}\n role=\"status\"\n aria-live=\"polite\"\n {...props}\n >\n {children ?? (\n <>\n {showingOnline ? (\n <Wifi className={styles.icon} size={16} aria-hidden=\"true\" />\n ) : (\n <CloudOff className={styles.icon} size={16} aria-hidden=\"true\" />\n )}\n <span>{showingOnline ? onlineLabel : offlineLabel}</span>\n </>\n )}\n </div>\n );\n}\n"],"mappings":"A,yMAoCA,SAAgBc,EAAiB,CAC7B,WAAW,SACX,eAAe,sEACf,cAAc,yBACd,gBAAgB,IAChB,YACA,WACA,GAAGC,GACmB,CACtB,IAAMC,EAAShB,EAAAA,UAAU,EACnB,CAACiB,EAAaC,IAAA,EAAkBjB,EAAAA,SAAAA,CAAkB,EAAK,EACvDkB,GAAA,EAAgBjB,EAAAA,OAAAA,CAAgB,EAAK,EAe3C,IAbA,EAAAS,EAAA,UAAA,KAAgB,CACZ,GAAI,CAACK,EAAQ,CACT,EAAc,QAAU,GACxBE,EAAe,EAAK,EACpB,MACJ,CACA,GAAI,CAACC,EAAc,SAAWC,GAAiB,EAAG,OAClD,EAAc,QAAU,GACxBF,EAAe,EAAI,EACnB,IAAMG,EAAK,OAAO,eAAiBH,EAAe,EAAK,EAAGE,CAAa,EACvE,UAAa,OAAO,aAAaC,CAAE,CACvC,EAAG,CAACL,EAAQI,CAAa,CAAC,EAEtBJ,GAAU,CAACC,EAAa,OAAO,KAEnC,IAAMK,EAAgBN,GAAUC,EAChC,OACI,EAAAL,EAAA,IAAA,CAAC,MAAD,CACI,UAAWT,EAAAA,GACPC,EAAAA,QAAO,IACPA,EAAAA,QAAOmB,GACPD,EAAgBlB,EAAAA,QAAO,OAASA,EAAAA,QAAO,QACvCoB,CACJ,EACA,KAAK,SACL,YAAU,SACV,GAAIT,EAEH,SAAAU,IACG,EAAAb,EAAA,KAAA,CAAAP,EAAAA,SAAA,CAAA,SAAA,CACKiB,GACG,EAAAV,EAAA,IAAA,CAACN,EAAAA,KAAD,CAAM,UAAWF,EAAAA,QAAO,KAAM,KAAM,GAAI,cAAY,MAAQ,CAAA,GAE5D,EAAAQ,EAAA,IAAA,CAACL,EAAAA,SAAD,CAAU,UAAWH,EAAAA,QAAO,KAAM,KAAM,GAAI,cAAY,MAAQ,CAAA,GAEpE,EAAAQ,EAAA,IAAA,CAAC,OAAD,CAAA,SAAOU,EAAgBI,EAAcC,CAAmB,CAAA,CAC1D,CAAA,CAAA,CAEL,CAAA,CAEb,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineIndicator.js","names":[],"sources":["../../../src/components/OfflineIndicator/OfflineIndicator.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { CloudOff, Wifi } from \"lucide-react\";\nimport { cn } from \"@/utils/cn\";\nimport { useOnline } from \"@/hooks\";\nimport styles from \"./OfflineIndicator.module.css\";\n\nexport type OfflineIndicatorPosition = \"top\" | \"bottom\";\n\nexport interface OfflineIndicatorProps extends HTMLAttributes<HTMLDivElement> {\n /** Where to pin the fixed bar. Default `\"bottom\"`. */\n position?: OfflineIndicatorPosition;\n /** Message shown while offline. */\n offlineLabel?: ReactNode;\n /** Message flashed briefly when connectivity returns. */\n onlineLabel?: ReactNode;\n /**\n * How long (ms) to keep the \"back online\" flash visible. `0` hides it\n * entirely. Default `3000`.\n */\n onlineFlashMs?: number;\n /** Override the offline body entirely (icon + label ignored). */\n children?: ReactNode;\n}\n\n/**\n * Fixed bar that appears while the browser is offline and, by default, flashes\n * a brief confirmation when the connection returns. Backed by {@link useOnline}\n * — no props needed for the common case.\n *\n * Renders nothing while online (after any flash has elapsed), so it is safe to\n * mount unconditionally at the app root.\n *\n * @example\n * <OfflineIndicator position=\"top\" />\n */\nexport function OfflineIndicator({\n position = \"bottom\",\n offlineLabel = \"Você está offline. As alterações serão sincronizadas ao reconectar.\",\n onlineLabel = \"Conexão restabelecida.\",\n onlineFlashMs = 3000,\n className,\n children,\n ...props\n}: OfflineIndicatorProps) {\n const online = useOnline();\n const [flashOnline, setFlashOnline] = useState<boolean>(false);\n const wasOfflineRef = useRef<boolean>(false);\n\n useEffect(() => {\n if (!online) {\n wasOfflineRef.current = true;\n setFlashOnline(false);\n return;\n }\n if (!wasOfflineRef.current || onlineFlashMs <= 0) return;\n wasOfflineRef.current = false;\n setFlashOnline(true);\n const id = window.setTimeout(() => setFlashOnline(false), onlineFlashMs);\n return () => window.clearTimeout(id);\n }, [online, onlineFlashMs]);\n\n if (online && !flashOnline) return null;\n\n const showingOnline = online && flashOnline;\n return (\n <div\n className={cn(\n styles.bar,\n styles[position],\n showingOnline ? styles.online : styles.offline,\n className,\n )}\n role=\"status\"\n aria-live=\"polite\"\n {...props}\n >\n {children ?? (\n <>\n {showingOnline ? (\n <Wifi className={styles.icon} size={16} aria-hidden=\"true\" />\n ) : (\n <CloudOff className={styles.icon} size={16} aria-hidden=\"true\" />\n )}\n <span>{showingOnline ? onlineLabel : offlineLabel}</span>\n </>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;AAoCA,
|
|
1
|
+
{"version":3,"file":"OfflineIndicator.js","names":["styles","_Fragment","OfflineIndicator_module_default","Fragment$1","OfflineIndicator","props","online","useOnline","flashOnline","setFlashOnline","useState","wasOfflineRef","useRef","useEffect","onlineFlashMs","id","showingOnline","cn","position","className","children","jsx","Wifi","CloudOff","onlineLabel","offlineLabel"],"sources":["../../../src/components/OfflineIndicator/OfflineIndicator.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { CloudOff, Wifi } from \"lucide-react\";\nimport { cn } from \"@/utils/cn\";\nimport { useOnline } from \"@/hooks\";\nimport styles from \"./OfflineIndicator.module.css\";\n\nexport type OfflineIndicatorPosition = \"top\" | \"bottom\";\n\nexport interface OfflineIndicatorProps extends HTMLAttributes<HTMLDivElement> {\n /** Where to pin the fixed bar. Default `\"bottom\"`. */\n position?: OfflineIndicatorPosition;\n /** Message shown while offline. */\n offlineLabel?: ReactNode;\n /** Message flashed briefly when connectivity returns. */\n onlineLabel?: ReactNode;\n /**\n * How long (ms) to keep the \"back online\" flash visible. `0` hides it\n * entirely. Default `3000`.\n */\n onlineFlashMs?: number;\n /** Override the offline body entirely (icon + label ignored). */\n children?: ReactNode;\n}\n\n/**\n * Fixed bar that appears while the browser is offline and, by default, flashes\n * a brief confirmation when the connection returns. Backed by {@link useOnline}\n * — no props needed for the common case.\n *\n * Renders nothing while online (after any flash has elapsed), so it is safe to\n * mount unconditionally at the app root.\n *\n * @example\n * <OfflineIndicator position=\"top\" />\n */\nexport function OfflineIndicator({\n position = \"bottom\",\n offlineLabel = \"Você está offline. As alterações serão sincronizadas ao reconectar.\",\n onlineLabel = \"Conexão restabelecida.\",\n onlineFlashMs = 3000,\n className,\n children,\n ...props\n}: OfflineIndicatorProps) {\n const online = useOnline();\n const [flashOnline, setFlashOnline] = useState<boolean>(false);\n const wasOfflineRef = useRef<boolean>(false);\n\n useEffect(() => {\n if (!online) {\n wasOfflineRef.current = true;\n setFlashOnline(false);\n return;\n }\n if (!wasOfflineRef.current || onlineFlashMs <= 0) return;\n wasOfflineRef.current = false;\n setFlashOnline(true);\n const id = window.setTimeout(() => setFlashOnline(false), onlineFlashMs);\n return () => window.clearTimeout(id);\n }, [online, onlineFlashMs]);\n\n if (online && !flashOnline) return null;\n\n const showingOnline = online && flashOnline;\n return (\n <div\n className={cn(\n styles.bar,\n styles[position],\n showingOnline ? styles.online : styles.offline,\n className,\n )}\n role=\"status\"\n aria-live=\"polite\"\n {...props}\n >\n {children ?? (\n <>\n {showingOnline ? (\n <Wifi className={styles.icon} size={16} aria-hidden=\"true\" />\n ) : (\n <CloudOff className={styles.icon} size={16} aria-hidden=\"true\" />\n )}\n <span>{showingOnline ? onlineLabel : offlineLabel}</span>\n </>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;AAoCA,SAAgBI,EAAiB,EAC7B,cAAW,UACX,kBAAe,uEACf,iBAAc,0BACd,mBAAgB,KAChB,cACA,aACA,GAAGC,KACmB;CACtB,IAAMC,IAASC,EAAU,GACnB,CAACC,GAAaC,KAAkBC,EAAkB,EAAK,GACvDC,IAAgBC,EAAgB,EAAK;CAe3C,IAbAC,QAAgB;EACZ,IAAI,CAACP,GAAQ;GAET,AADA,EAAc,UAAU,IACxBG,EAAe,EAAK;GACpB;EACJ;EACA,IAAI,CAACE,EAAc,WAAWG,KAAiB,GAAG;EAElD,AADA,EAAc,UAAU,IACxBL,EAAe,EAAI;EACnB,IAAMM,IAAK,OAAO,iBAAiBN,EAAe,EAAK,GAAGK,CAAa;EACvE,aAAa,OAAO,aAAaC,CAAE;CACvC,GAAG,CAACT,GAAQQ,CAAa,CAAC,GAEtBR,KAAU,CAACE,GAAa,OAAO;CAEnC,IAAMQ,IAAgBV,KAAUE;CAChC,OACI,kBAAC,OAAD;EACI,WAAWS,EACPjB,EAAO,KACPA,EAAOkB,IACPF,IAAgBhB,EAAO,SAASA,EAAO,SACvCmB,CACJ;EACA,MAAK;EACL,aAAU;EACV,GAAId;EAEH,UAAAe,KACG,kBAAAnB,GAAA,EAAA,UAAA,CAEQoB,EADHL,IACIM,IAEAC,GAFD;GAAM,WAAWvB,EAAO;GAAM,MAAM;GAAI,eAAY;EAAQ,CAEI,GAEpE,kBAAC,QAAD,EAAA,UAAOgB,IAAgBQ,IAAcC,EAAmB,CAAA,CAC1D,EAAA,CAAA;CAEL,CAAA;AAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineIndicator.module.cjs","names":[],"sources":["../../../src/components/OfflineIndicator/OfflineIndicator.module.css"],"sourcesContent":[".bar {\n position: fixed;\n left: 0;\n right: 0;\n z-index: var(--tempest-z-toast, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-2) var(--tempest-space-4);\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n line-height: var(--tempest-leading-snug);\n text-align: center;\n}\n\n.top {\n top: 0;\n padding-top: max(var(--tempest-space-2), env(safe-area-inset-top));\n}\n\n.bottom {\n bottom: 0;\n padding-bottom: max(var(--tempest-space-2), env(safe-area-inset-bottom));\n}\n\n.offline {\n background: var(--tempest-surface-2);\n color: var(--tempest-text-muted);\n border-top: 1px solid var(--tempest-border-strong);\n}\n\n.online {\n background: var(--tempest-success-bg);\n color: var(--tempest-success-fg);\n}\n\n.icon {\n flex: 0 0 auto;\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"OfflineIndicator.module.cjs","names":["bar","top","bottom","offline","online","icon","OfflineIndicator_module_default"],"sources":["../../../src/components/OfflineIndicator/OfflineIndicator.module.css"],"sourcesContent":[".bar {\n position: fixed;\n left: 0;\n right: 0;\n z-index: var(--tempest-z-toast, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-2) var(--tempest-space-4);\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n line-height: var(--tempest-leading-snug);\n text-align: center;\n}\n\n.top {\n top: 0;\n padding-top: max(var(--tempest-space-2), env(safe-area-inset-top));\n}\n\n.bottom {\n bottom: 0;\n padding-bottom: max(var(--tempest-space-2), env(safe-area-inset-bottom));\n}\n\n.offline {\n background: var(--tempest-surface-2);\n color: var(--tempest-text-muted);\n border-top: 1px solid var(--tempest-border-strong);\n}\n\n.online {\n background: var(--tempest-success-bg);\n color: var(--tempest-success-fg);\n}\n\n.icon {\n flex: 0 0 auto;\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineIndicator.module.js","names":[],"sources":["../../../src/components/OfflineIndicator/OfflineIndicator.module.css"],"sourcesContent":[".bar {\n position: fixed;\n left: 0;\n right: 0;\n z-index: var(--tempest-z-toast, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-2) var(--tempest-space-4);\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n line-height: var(--tempest-leading-snug);\n text-align: center;\n}\n\n.top {\n top: 0;\n padding-top: max(var(--tempest-space-2), env(safe-area-inset-top));\n}\n\n.bottom {\n bottom: 0;\n padding-bottom: max(var(--tempest-space-2), env(safe-area-inset-bottom));\n}\n\n.offline {\n background: var(--tempest-surface-2);\n color: var(--tempest-text-muted);\n border-top: 1px solid var(--tempest-border-strong);\n}\n\n.online {\n background: var(--tempest-success-bg);\n color: var(--tempest-success-fg);\n}\n\n.icon {\n flex: 0 0 auto;\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"OfflineIndicator.module.js","names":["bar","top","bottom","offline","online","icon","OfflineIndicator_module_default"],"sources":["../../../src/components/OfflineIndicator/OfflineIndicator.module.css"],"sourcesContent":[".bar {\n position: fixed;\n left: 0;\n right: 0;\n z-index: var(--tempest-z-toast, 1000);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-2) var(--tempest-space-4);\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n line-height: var(--tempest-leading-snug);\n text-align: center;\n}\n\n.top {\n top: 0;\n padding-top: max(var(--tempest-space-2), env(safe-area-inset-top));\n}\n\n.bottom {\n bottom: 0;\n padding-bottom: max(var(--tempest-space-2), env(safe-area-inset-bottom));\n}\n\n.offline {\n background: var(--tempest-surface-2);\n color: var(--tempest-text-muted);\n border-top: 1px solid var(--tempest-border-strong);\n}\n\n.online {\n background: var(--tempest-success-bg);\n color: var(--tempest-success-fg);\n}\n\n.icon {\n flex: 0 0 auto;\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.cjs","names":[],"sources":["../../../src/components/Page/Page.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — a page shell is slots: eyebrow, title, description,\n * actions, toolbar, footer and children, with padded as the one behavioural switch.\n * Slots are the component.\n */\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { SectionHeader } from \"../SectionHeader\";\nimport styles from \"./Page.module.css\";\n\nexport interface PageProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n /** Page title rendered as `<h1>`. */\n title?: ReactNode;\n /** Optional subtitle / breadcrumbs slot rendered above the title. */\n eyebrow?: ReactNode;\n /** Optional description rendered below the title. */\n description?: ReactNode;\n /** Right-side actions slot in the header (buttons, menus). */\n actions?: ReactNode;\n /** Sticky tab bar / filter row rendered just below the header. */\n toolbar?: ReactNode;\n /** Footer slot rendered at the bottom of the content area. */\n footer?: ReactNode;\n /** Page-level padding. Default `true`. */\n padded?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Page wrapper with header + (optional) toolbar + content + footer. Pairs\n * with `Container` when you want a max-width content well.\n *\n * The header is a `SectionHeader` at `level={1}`, so the page title and the\n * `<h2>` of each section below it share one look; when every header slot is\n * empty no `<header>` is rendered.\n *\n * @example\n * <Page title=\"Pedidos\" description=\"Acompanhe seus pedidos\" actions={<Button>Novo</Button>}>\n * <Table {...} />\n * </Page>\n */\nexport function Page({\n title,\n eyebrow,\n description,\n actions,\n toolbar,\n footer,\n padded = true,\n className,\n children,\n ...props\n}: PageProps) {\n return (\n <main className={cn(styles.page, padded && styles.padded, className)} {...props}>\n <SectionHeader\n level={1}\n eyebrow={eyebrow}\n title={title}\n description={description}\n actions={actions}\n />\n {toolbar && <div className={styles.toolbar}>{toolbar}</div>}\n <div className={styles.content}>{children}</div>\n {footer && <footer className={styles.footer}>{footer}</footer>}\n </main>\n );\n}\n"],"mappings":"wJAyCA,
|
|
1
|
+
{"version":3,"file":"Page.cjs","names":["cn","styles","SectionHeader","require_cn","require_SectionHeader","require_Page_module","react_jsx_runtime","Page","props","padded","className","toolbar","footer"],"sources":["../../../src/components/Page/Page.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — a page shell is slots: eyebrow, title, description,\n * actions, toolbar, footer and children, with padded as the one behavioural switch.\n * Slots are the component.\n */\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { SectionHeader } from \"../SectionHeader\";\nimport styles from \"./Page.module.css\";\n\nexport interface PageProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n /** Page title rendered as `<h1>`. */\n title?: ReactNode;\n /** Optional subtitle / breadcrumbs slot rendered above the title. */\n eyebrow?: ReactNode;\n /** Optional description rendered below the title. */\n description?: ReactNode;\n /** Right-side actions slot in the header (buttons, menus). */\n actions?: ReactNode;\n /** Sticky tab bar / filter row rendered just below the header. */\n toolbar?: ReactNode;\n /** Footer slot rendered at the bottom of the content area. */\n footer?: ReactNode;\n /** Page-level padding. Default `true`. */\n padded?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Page wrapper with header + (optional) toolbar + content + footer. Pairs\n * with `Container` when you want a max-width content well.\n *\n * The header is a `SectionHeader` at `level={1}`, so the page title and the\n * `<h2>` of each section below it share one look; when every header slot is\n * empty no `<header>` is rendered.\n *\n * @example\n * <Page title=\"Pedidos\" description=\"Acompanhe seus pedidos\" actions={<Button>Novo</Button>}>\n * <Table {...} />\n * </Page>\n */\nexport function Page({\n title,\n eyebrow,\n description,\n actions,\n toolbar,\n footer,\n padded = true,\n className,\n children,\n ...props\n}: PageProps) {\n return (\n <main className={cn(styles.page, padded && styles.padded, className)} {...props}>\n <SectionHeader\n level={1}\n eyebrow={eyebrow}\n title={title}\n description={description}\n actions={actions}\n />\n {toolbar && <div className={styles.toolbar}>{toolbar}</div>}\n <div className={styles.content}>{children}</div>\n {footer && <footer className={styles.footer}>{footer}</footer>}\n </main>\n );\n}\n"],"mappings":"A,wJAyCA,SAAgBO,EAAK,CACjB,QACA,UACA,cACA,UACA,UACA,SACA,SAAS,GACT,YACA,WACA,GAAGC,GACO,CACV,OACI,EAAAF,EAAA,KAAA,CAAC,OAAD,CAAM,UAAWN,EAAAA,GAAGC,EAAAA,QAAO,KAAMQ,GAAUR,EAAAA,QAAO,OAAQS,CAAS,EAAG,GAAIF,EAA1E,SAAA,EACI,EAAAF,EAAA,IAAA,CAACJ,EAAAA,cAAD,CACI,MAAO,EACE,UACF,QACM,cACJ,SACZ,CAAA,EACAS,IAAW,EAAAL,EAAA,IAAA,CAAC,MAAD,CAAK,UAAWL,EAAAA,QAAO,QAAU,SAAAU,CAAa,CAAA,GAC1D,EAAAL,EAAA,IAAA,CAAC,MAAD,CAAK,UAAWL,EAAAA,QAAO,QAAU,UAAc,CAAA,EAC9CW,IAAU,EAAAN,EAAA,IAAA,CAAC,SAAD,CAAQ,UAAWL,EAAAA,QAAO,OAAS,SAAAW,CAAe,CAAA,CAC3D,C,EAEd,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.js","names":[],"sources":["../../../src/components/Page/Page.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — a page shell is slots: eyebrow, title, description,\n * actions, toolbar, footer and children, with padded as the one behavioural switch.\n * Slots are the component.\n */\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { SectionHeader } from \"../SectionHeader\";\nimport styles from \"./Page.module.css\";\n\nexport interface PageProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n /** Page title rendered as `<h1>`. */\n title?: ReactNode;\n /** Optional subtitle / breadcrumbs slot rendered above the title. */\n eyebrow?: ReactNode;\n /** Optional description rendered below the title. */\n description?: ReactNode;\n /** Right-side actions slot in the header (buttons, menus). */\n actions?: ReactNode;\n /** Sticky tab bar / filter row rendered just below the header. */\n toolbar?: ReactNode;\n /** Footer slot rendered at the bottom of the content area. */\n footer?: ReactNode;\n /** Page-level padding. Default `true`. */\n padded?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Page wrapper with header + (optional) toolbar + content + footer. Pairs\n * with `Container` when you want a max-width content well.\n *\n * The header is a `SectionHeader` at `level={1}`, so the page title and the\n * `<h2>` of each section below it share one look; when every header slot is\n * empty no `<header>` is rendered.\n *\n * @example\n * <Page title=\"Pedidos\" description=\"Acompanhe seus pedidos\" actions={<Button>Novo</Button>}>\n * <Table {...} />\n * </Page>\n */\nexport function Page({\n title,\n eyebrow,\n description,\n actions,\n toolbar,\n footer,\n padded = true,\n className,\n children,\n ...props\n}: PageProps) {\n return (\n <main className={cn(styles.page, padded && styles.padded, className)} {...props}>\n <SectionHeader\n level={1}\n eyebrow={eyebrow}\n title={title}\n description={description}\n actions={actions}\n />\n {toolbar && <div className={styles.toolbar}>{toolbar}</div>}\n <div className={styles.content}>{children}</div>\n {footer && <footer className={styles.footer}>{footer}</footer>}\n </main>\n );\n}\n"],"mappings":";;;;;AAyCA,
|
|
1
|
+
{"version":3,"file":"Page.js","names":["styles","Page_module_default","Page","props","cn","padded","className","SectionHeader","toolbar","footer"],"sources":["../../../src/components/Page/Page.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — a page shell is slots: eyebrow, title, description,\n * actions, toolbar, footer and children, with padded as the one behavioural switch.\n * Slots are the component.\n */\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { SectionHeader } from \"../SectionHeader\";\nimport styles from \"./Page.module.css\";\n\nexport interface PageProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n /** Page title rendered as `<h1>`. */\n title?: ReactNode;\n /** Optional subtitle / breadcrumbs slot rendered above the title. */\n eyebrow?: ReactNode;\n /** Optional description rendered below the title. */\n description?: ReactNode;\n /** Right-side actions slot in the header (buttons, menus). */\n actions?: ReactNode;\n /** Sticky tab bar / filter row rendered just below the header. */\n toolbar?: ReactNode;\n /** Footer slot rendered at the bottom of the content area. */\n footer?: ReactNode;\n /** Page-level padding. Default `true`. */\n padded?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Page wrapper with header + (optional) toolbar + content + footer. Pairs\n * with `Container` when you want a max-width content well.\n *\n * The header is a `SectionHeader` at `level={1}`, so the page title and the\n * `<h2>` of each section below it share one look; when every header slot is\n * empty no `<header>` is rendered.\n *\n * @example\n * <Page title=\"Pedidos\" description=\"Acompanhe seus pedidos\" actions={<Button>Novo</Button>}>\n * <Table {...} />\n * </Page>\n */\nexport function Page({\n title,\n eyebrow,\n description,\n actions,\n toolbar,\n footer,\n padded = true,\n className,\n children,\n ...props\n}: PageProps) {\n return (\n <main className={cn(styles.page, padded && styles.padded, className)} {...props}>\n <SectionHeader\n level={1}\n eyebrow={eyebrow}\n title={title}\n description={description}\n actions={actions}\n />\n {toolbar && <div className={styles.toolbar}>{toolbar}</div>}\n <div className={styles.content}>{children}</div>\n {footer && <footer className={styles.footer}>{footer}</footer>}\n </main>\n );\n}\n"],"mappings":";;;;;AAyCA,SAAgBE,EAAK,EACjB,UACA,YACA,gBACA,YACA,YACA,WACA,YAAS,IACT,cACA,aACA,GAAGC,KACO;CACV,OACI,kBAAC,QAAD;EAAM,WAAWC,EAAGJ,EAAO,MAAMK,KAAUL,EAAO,QAAQM,CAAS;EAAG,GAAIH;EAA1E,UAAA;GACI,kBAACI,GAAD;IACI,OAAO;IACE;IACF;IACM;IACJ;GACZ,CAAA;GACAC,KAAW,kBAAC,OAAD;IAAK,WAAWR,EAAO;IAAU,UAAAQ;GAAa,CAAA;GAC1D,kBAAC,OAAD;IAAK,WAAWR,EAAO;IAAU;GAAc,CAAA;GAC9CS,KAAU,kBAAC,UAAD;IAAQ,WAAWT,EAAO;IAAS,UAAAS;GAAe,CAAA;EAC3D;;AAEd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.module.cjs","names":[],"sources":["../../../src/components/Page/Page.module.css"],"sourcesContent":[".page {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n font-family: var(--tempest-font-sans);\n color: var(--tempest-text);\n}\n\n.padded {\n padding: var(--tempest-space-5) var(--tempest-space-4);\n}\n\n@media (min-width: 768px) {\n .padded {\n padding: var(--tempest-space-6) var(--tempest-space-6);\n }\n}\n\n.toolbar {\n margin-bottom: var(--tempest-space-4);\n}\n\n.content {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.footer {\n margin-top: var(--tempest-space-6);\n padding-top: var(--tempest-space-4);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"Page.module.cjs","names":["page","padded","toolbar","content","footer","Page_module_default"],"sources":["../../../src/components/Page/Page.module.css"],"sourcesContent":[".page {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n font-family: var(--tempest-font-sans);\n color: var(--tempest-text);\n}\n\n.padded {\n padding: var(--tempest-space-5) var(--tempest-space-4);\n}\n\n@media (min-width: 768px) {\n .padded {\n padding: var(--tempest-space-6) var(--tempest-space-6);\n }\n}\n\n.toolbar {\n margin-bottom: var(--tempest-space-4);\n}\n\n.content {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.footer {\n margin-top: var(--tempest-space-6);\n padding-top: var(--tempest-space-4);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.module.js","names":[],"sources":["../../../src/components/Page/Page.module.css"],"sourcesContent":[".page {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n font-family: var(--tempest-font-sans);\n color: var(--tempest-text);\n}\n\n.padded {\n padding: var(--tempest-space-5) var(--tempest-space-4);\n}\n\n@media (min-width: 768px) {\n .padded {\n padding: var(--tempest-space-6) var(--tempest-space-6);\n }\n}\n\n.toolbar {\n margin-bottom: var(--tempest-space-4);\n}\n\n.content {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.footer {\n margin-top: var(--tempest-space-6);\n padding-top: var(--tempest-space-4);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"Page.module.js","names":["page","padded","toolbar","content","footer","Page_module_default"],"sources":["../../../src/components/Page/Page.module.css"],"sourcesContent":[".page {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n font-family: var(--tempest-font-sans);\n color: var(--tempest-text);\n}\n\n.padded {\n padding: var(--tempest-space-5) var(--tempest-space-4);\n}\n\n@media (min-width: 768px) {\n .padded {\n padding: var(--tempest-space-6) var(--tempest-space-6);\n }\n}\n\n.toolbar {\n margin-bottom: var(--tempest-space-4);\n}\n\n.content {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.footer {\n margin-top: var(--tempest-space-6);\n padding-top: var(--tempest-space-4);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.cjs","names":[],"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — page/totalPages/onPageChange is the pager,\n * pageSize/onPageSizeChange/ pageSizeOptions is the size control that sits in the\n * same bar, and totalItems plus siblingCount decide the copy and how many page\n * buttons are rendered. They ship together because a footer that pages but cannot\n * resize is half a footer.\n */\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./Pagination.module.css\";\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n pageSize?: number;\n onPageSizeChange?: (size: number) => void;\n /**\n * Sizes offered in the selector. Default `[10, 25, 50, 100]`.\n *\n * The current `pageSize` is always offered too, merged in ascending order. A\n * `<select>` whose value matches no option displays its first option, so\n * `pageSize={20}` against the default list used to read \"10 / página\" over a\n * table showing 20 rows.\n */\n pageSizeOptions?: number[];\n /** Total items count; if provided, renders the summary text. */\n totalItems?: number;\n /** Pages kept around the current one; ~`siblingCount + 4` buttons render. Default 3. */\n siblingCount?: number;\n /**\n * Below 640px, drop to `‹` / `›` plus the summary and hide the numbered\n * buttons and the size select. Default `true`.\n *\n * The default suits a desktop-first app, and costs the thing pagination is\n * for on a phone: reaching page 7 becomes six taps on \"next\" instead of one\n * tap on `7`. Pass `false` in a mobile-first app and the numbers stay at\n * every width — the row scrolls horizontally by itself rather than pushing\n * the page wider, and the current page is scrolled into view when it\n * changes.\n */\n compactOnMobile?: boolean;\n className?: string;\n}\n\nconst DEFAULT_PAGE_SIZE_OPTIONS: number[] = [10, 25, 50, 100];\n\nfunction buildRange(page: number, totalPages: number, siblings: number): (number | \"...\")[] {\n const totalSlots = siblings + 4;\n if (totalPages <= totalSlots) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n const start = Math.max(2, page - Math.floor(siblings / 2));\n const end = Math.min(totalPages - 1, start + siblings - 1);\n const range: (number | \"...\")[] = [1];\n if (start > 2) range.push(\"...\");\n for (let i = start; i <= end; i++) range.push(i);\n if (end < totalPages - 1) range.push(\"...\");\n range.push(totalPages);\n return range;\n}\n\n/**\n * Numeric pagination controls. Pair with {@link usePagination} for state.\n *\n * Narrow screens collapse to `‹` / `›` plus the summary by default, which turns\n * random access into sequential access — fine for a desktop-first app, wrong for\n * one whose traffic is phones. `compactOnMobile={false}` keeps the numbers at\n * every width: the row scrolls on its own instead of widening the page, and the\n * effect below keeps the current page inside the visible part of that row.\n *\n * The scroll is why this is one boolean rather than a `variant`. Simply\n * un-hiding the buttons would push a nine-button row past a 360px viewport and\n * give the whole document a horizontal scrollbar — the opt-out has to carry its\n * own layout, so it does.\n */\nexport function Pagination({\n page,\n totalPages,\n onPageChange,\n pageSize,\n onPageSizeChange,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n totalItems,\n siblingCount = 3,\n compactOnMobile = true,\n className,\n}: PaginationProps) {\n const pages = useMemo(\n () => buildRange(page, totalPages, siblingCount),\n [page, totalPages, siblingCount],\n );\n const sizes = useMemo(\n () =>\n pageSize === undefined || pageSizeOptions.includes(pageSize)\n ? pageSizeOptions\n : [...pageSizeOptions, pageSize].sort((a, b) => a - b),\n [pageSize, pageSizeOptions],\n );\n const activePage = useRef<HTMLButtonElement | null>(null);\n\n useEffect(() => {\n if (compactOnMobile) return;\n activePage.current?.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n }, [page, compactOnMobile]);\n\n if (totalPages <= 1 && !onPageSizeChange) return null;\n\n return (\n <div className={cn(styles.wrapper, className)} data-compact={String(compactOnMobile)}>\n <div className={styles.summary}>\n {typeof totalItems === \"number\"\n ? `${totalItems} resultado${totalItems === 1 ? \"\" : \"s\"}`\n : `Página ${page} de ${totalPages}`}\n </div>\n <div className={styles.controls}>\n <button\n type=\"button\"\n className={styles.page}\n onClick={() => onPageChange(Math.max(1, page - 1))}\n disabled={page <= 1}\n aria-label=\"Página anterior\"\n >\n ‹\n </button>\n {pages.map((entry, index) =>\n entry === \"...\" ? (\n <span\n key={`ellipsis-${index}`}\n className={cn(styles.ellipsis, styles.numeric)}\n >\n …\n </span>\n ) : (\n <button\n type=\"button\"\n key={entry}\n ref={entry === page ? activePage : undefined}\n className={cn(\n styles.page,\n styles.numeric,\n entry === page && styles.active,\n )}\n onClick={() => onPageChange(entry)}\n aria-current={entry === page ? \"page\" : undefined}\n >\n {entry}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className={styles.page}\n onClick={() => onPageChange(Math.min(totalPages, page + 1))}\n disabled={page >= totalPages}\n aria-label=\"Próxima página\"\n >\n ›\n </button>\n {onPageSizeChange && (\n <select\n className={styles.sizeSelect}\n value={pageSize}\n onChange={(event) => onPageSizeChange(Number(event.target.value))}\n aria-label=\"Itens por página\"\n >\n {sizes.map((opt) => (\n <option key={opt} value={opt}>\n {opt} / página\n </option>\n ))}\n </select>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"iIA6CA,IAAM,EAAsC,CAAC,GAAI,GAAI,GAAI,GAAG,EAE5D,SAAS,EAAW,EAAc,EAAoB,EAAsC,CAExF,GAAI,GADe,EAAW,EAE1B,OAAO,MAAM,KAAK,CAAE,OAAQ,CAAW,GAAI,EAAG,IAAM,EAAI,CAAC,EAE7D,IAAM,EAAQ,KAAK,IAAI,EAAG,EAAO,KAAK,MAAM,EAAW,CAAC,CAAC,EACnD,EAAM,KAAK,IAAI,EAAa,EAAG,EAAQ,EAAW,CAAC,EACnD,EAA4B,CAAC,CAAC,EAChC,EAAQ,GAAG,EAAM,KAAK,KAAK,EAC/B,IAAK,IAAI,EAAI,EAAO,GAAK,EAAK,IAAK,EAAM,KAAK,CAAC,EAG/C,OAFI,EAAM,EAAa,GAAG,EAAM,KAAK,KAAK,EAC1C,EAAM,KAAK,CAAU,EACd,CACX,CAgBA,SAAgB,EAAW,CACvB,OACA,aACA,eACA,WACA,mBACA,kBAAkB,EAClB,aACA,eAAe,EACf,kBAAkB,GAClB,aACgB,CAChB,IAAM,GAAA,EAAQ,EAAA,QAAA,KACJ,EAAW,EAAM,EAAY,CAAY,EAC/C,CAAC,EAAM,EAAY,CAAY,CACnC,EACM,GAAA,EAAQ,EAAA,QAAA,KAEN,IAAa,IAAA,IAAa,EAAgB,SAAS,CAAQ,EACrD,EACA,CAAC,GAAG,EAAiB,CAAQ,CAAC,CAAC,MAAM,EAAG,IAAM,EAAI,CAAC,EAC7D,CAAC,EAAU,CAAe,CAC9B,EACM,GAAA,EAAa,EAAA,OAAA,CAAiC,IAAI,EASxD,OAPA,EAAA,EAAA,UAAA,KAAgB,CACR,GACJ,EAAW,SAAS,iBAAiB,CAAE,MAAO,UAAW,OAAQ,SAAU,CAAC,CAChF,EAAG,CAAC,EAAM,CAAe,CAAC,EAEtB,GAAc,GAAK,CAAC,EAAyB,MAG7C,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,GAAG,EAAA,QAAO,QAAS,CAAS,EAAG,eAAc,OAAO,CAAe,EAAnF,SAAA,EACI,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAA,QAAO,QAClB,SAAA,OAAO,GAAe,SACjB,GAAG,EAAW,YAAY,IAAe,EAAI,GAAK,MAClD,UAAU,EAAK,MAAM,GAC1B,CAAA,GACL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,QAAO,SAAvB,SAAA,EACI,EAAA,EAAA,IAAA,CAAC,SAAD,CACI,KAAK,SACL,UAAW,EAAA,QAAO,KAClB,YAAe,EAAa,KAAK,IAAI,EAAG,EAAO,CAAC,CAAC,EACjD,SAAU,GAAQ,EAClB,aAAW,kBACd,SAAA,GAEO,CAAA,EACP,EAAM,KAAK,EAAO,IACf,IAAU,OACN,EAAA,EAAA,IAAA,CAAC,OAAD,CAEI,UAAW,EAAA,GAAG,EAAA,QAAO,SAAU,EAAA,QAAO,OAAO,EAChD,SAAA,GAEK,EAJG,YAAY,GAIf,GAEN,EAAA,EAAA,IAAA,CAAC,SAAD,CACI,KAAK,SAEL,IAAK,IAAU,EAAO,EAAa,IAAA,GACnC,UAAW,EAAA,GACP,EAAA,QAAO,KACP,EAAA,QAAO,QACP,IAAU,GAAQ,EAAA,QAAO,MAC7B,EACA,YAAe,EAAa,CAAK,EACjC,eAAc,IAAU,EAAO,OAAS,IAAA,GAEvC,SAAA,CACG,EAXC,CAWD,CAEhB,GACA,EAAA,EAAA,IAAA,CAAC,SAAD,CACI,KAAK,SACL,UAAW,EAAA,QAAO,KAClB,YAAe,EAAa,KAAK,IAAI,EAAY,EAAO,CAAC,CAAC,EAC1D,SAAU,GAAQ,EAClB,aAAW,iBACd,SAAA,GAEO,CAAA,EACP,IACG,EAAA,EAAA,IAAA,CAAC,SAAD,CACI,UAAW,EAAA,QAAO,WAClB,MAAO,EACP,SAAW,GAAU,EAAiB,OAAO,EAAM,OAAO,KAAK,CAAC,EAChE,aAAW,mBAEV,SAAA,EAAM,IAAK,IACR,EAAA,EAAA,KAAA,CAAC,SAAD,CAAkB,MAAO,EAAzB,SAAA,CACK,EAAI,WACD,CAFK,EAAA,CAEL,CACX,CACG,CAAA,CAEX,CACJ,CAAA,CAAA,GAEb"}
|
|
1
|
+
{"version":3,"file":"Pagination.cjs","names":["useMemo","useRef","cn","styles","require_cn","require_Pagination_module","react","react_jsx_runtime","DEFAULT_PAGE_SIZE_OPTIONS","buildRange","totalPages","siblings","i","start","page","end","range","Pagination","pages","siblingCount","sizes","pageSize","pageSizeOptions","a","b","activePage","compactOnMobile","onPageSizeChange","className","totalItems","onPageChange","entry","index","event","opt"],"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — page/totalPages/onPageChange is the pager,\n * pageSize/onPageSizeChange/ pageSizeOptions is the size control that sits in the\n * same bar, and totalItems plus siblingCount decide the copy and how many page\n * buttons are rendered. They ship together because a footer that pages but cannot\n * resize is half a footer.\n */\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./Pagination.module.css\";\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n pageSize?: number;\n onPageSizeChange?: (size: number) => void;\n /**\n * Sizes offered in the selector. Default `[10, 25, 50, 100]`.\n *\n * The current `pageSize` is always offered too, merged in ascending order. A\n * `<select>` whose value matches no option displays its first option, so\n * `pageSize={20}` against the default list used to read \"10 / página\" over a\n * table showing 20 rows.\n */\n pageSizeOptions?: number[];\n /** Total items count; if provided, renders the summary text. */\n totalItems?: number;\n /** Pages kept around the current one; ~`siblingCount + 4` buttons render. Default 3. */\n siblingCount?: number;\n /**\n * Below 640px, drop to `‹` / `›` plus the summary and hide the numbered\n * buttons and the size select. Default `true`.\n *\n * The default suits a desktop-first app, and costs the thing pagination is\n * for on a phone: reaching page 7 becomes six taps on \"next\" instead of one\n * tap on `7`. Pass `false` in a mobile-first app and the numbers stay at\n * every width — the row scrolls horizontally by itself rather than pushing\n * the page wider, and the current page is scrolled into view when it\n * changes.\n */\n compactOnMobile?: boolean;\n className?: string;\n}\n\nconst DEFAULT_PAGE_SIZE_OPTIONS: number[] = [10, 25, 50, 100];\n\nfunction buildRange(page: number, totalPages: number, siblings: number): (number | \"...\")[] {\n const totalSlots = siblings + 4;\n if (totalPages <= totalSlots) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n const start = Math.max(2, page - Math.floor(siblings / 2));\n const end = Math.min(totalPages - 1, start + siblings - 1);\n const range: (number | \"...\")[] = [1];\n if (start > 2) range.push(\"...\");\n for (let i = start; i <= end; i++) range.push(i);\n if (end < totalPages - 1) range.push(\"...\");\n range.push(totalPages);\n return range;\n}\n\n/**\n * Numeric pagination controls. Pair with {@link usePagination} for state.\n *\n * Narrow screens collapse to `‹` / `›` plus the summary by default, which turns\n * random access into sequential access — fine for a desktop-first app, wrong for\n * one whose traffic is phones. `compactOnMobile={false}` keeps the numbers at\n * every width: the row scrolls on its own instead of widening the page, and the\n * effect below keeps the current page inside the visible part of that row.\n *\n * The scroll is why this is one boolean rather than a `variant`. Simply\n * un-hiding the buttons would push a nine-button row past a 360px viewport and\n * give the whole document a horizontal scrollbar — the opt-out has to carry its\n * own layout, so it does.\n */\nexport function Pagination({\n page,\n totalPages,\n onPageChange,\n pageSize,\n onPageSizeChange,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n totalItems,\n siblingCount = 3,\n compactOnMobile = true,\n className,\n}: PaginationProps) {\n const pages = useMemo(\n () => buildRange(page, totalPages, siblingCount),\n [page, totalPages, siblingCount],\n );\n const sizes = useMemo(\n () =>\n pageSize === undefined || pageSizeOptions.includes(pageSize)\n ? pageSizeOptions\n : [...pageSizeOptions, pageSize].sort((a, b) => a - b),\n [pageSize, pageSizeOptions],\n );\n const activePage = useRef<HTMLButtonElement | null>(null);\n\n useEffect(() => {\n if (compactOnMobile) return;\n activePage.current?.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n }, [page, compactOnMobile]);\n\n if (totalPages <= 1 && !onPageSizeChange) return null;\n\n return (\n <div className={cn(styles.wrapper, className)} data-compact={String(compactOnMobile)}>\n <div className={styles.summary}>\n {typeof totalItems === \"number\"\n ? `${totalItems} resultado${totalItems === 1 ? \"\" : \"s\"}`\n : `Página ${page} de ${totalPages}`}\n </div>\n <div className={styles.controls}>\n <button\n type=\"button\"\n className={styles.page}\n onClick={() => onPageChange(Math.max(1, page - 1))}\n disabled={page <= 1}\n aria-label=\"Página anterior\"\n >\n ‹\n </button>\n {pages.map((entry, index) =>\n entry === \"...\" ? (\n <span\n key={`ellipsis-${index}`}\n className={cn(styles.ellipsis, styles.numeric)}\n >\n …\n </span>\n ) : (\n <button\n type=\"button\"\n key={entry}\n ref={entry === page ? activePage : undefined}\n className={cn(\n styles.page,\n styles.numeric,\n entry === page && styles.active,\n )}\n onClick={() => onPageChange(entry)}\n aria-current={entry === page ? \"page\" : undefined}\n >\n {entry}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className={styles.page}\n onClick={() => onPageChange(Math.min(totalPages, page + 1))}\n disabled={page >= totalPages}\n aria-label=\"Próxima página\"\n >\n ›\n </button>\n {onPageSizeChange && (\n <select\n className={styles.sizeSelect}\n value={pageSize}\n onChange={(event) => onPageSizeChange(Number(event.target.value))}\n aria-label=\"Itens por página\"\n >\n {sizes.map((opt) => (\n <option key={opt} value={opt}>\n {opt} / página\n </option>\n ))}\n </select>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","names":[],"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — page/totalPages/onPageChange is the pager,\n * pageSize/onPageSizeChange/ pageSizeOptions is the size control that sits in the\n * same bar, and totalItems plus siblingCount decide the copy and how many page\n * buttons are rendered. They ship together because a footer that pages but cannot\n * resize is half a footer.\n */\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./Pagination.module.css\";\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n pageSize?: number;\n onPageSizeChange?: (size: number) => void;\n /**\n * Sizes offered in the selector. Default `[10, 25, 50, 100]`.\n *\n * The current `pageSize` is always offered too, merged in ascending order. A\n * `<select>` whose value matches no option displays its first option, so\n * `pageSize={20}` against the default list used to read \"10 / página\" over a\n * table showing 20 rows.\n */\n pageSizeOptions?: number[];\n /** Total items count; if provided, renders the summary text. */\n totalItems?: number;\n /** Pages kept around the current one; ~`siblingCount + 4` buttons render. Default 3. */\n siblingCount?: number;\n /**\n * Below 640px, drop to `‹` / `›` plus the summary and hide the numbered\n * buttons and the size select. Default `true`.\n *\n * The default suits a desktop-first app, and costs the thing pagination is\n * for on a phone: reaching page 7 becomes six taps on \"next\" instead of one\n * tap on `7`. Pass `false` in a mobile-first app and the numbers stay at\n * every width — the row scrolls horizontally by itself rather than pushing\n * the page wider, and the current page is scrolled into view when it\n * changes.\n */\n compactOnMobile?: boolean;\n className?: string;\n}\n\nconst DEFAULT_PAGE_SIZE_OPTIONS: number[] = [10, 25, 50, 100];\n\nfunction buildRange(page: number, totalPages: number, siblings: number): (number | \"...\")[] {\n const totalSlots = siblings + 4;\n if (totalPages <= totalSlots) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n const start = Math.max(2, page - Math.floor(siblings / 2));\n const end = Math.min(totalPages - 1, start + siblings - 1);\n const range: (number | \"...\")[] = [1];\n if (start > 2) range.push(\"...\");\n for (let i = start; i <= end; i++) range.push(i);\n if (end < totalPages - 1) range.push(\"...\");\n range.push(totalPages);\n return range;\n}\n\n/**\n * Numeric pagination controls. Pair with {@link usePagination} for state.\n *\n * Narrow screens collapse to `‹` / `›` plus the summary by default, which turns\n * random access into sequential access — fine for a desktop-first app, wrong for\n * one whose traffic is phones. `compactOnMobile={false}` keeps the numbers at\n * every width: the row scrolls on its own instead of widening the page, and the\n * effect below keeps the current page inside the visible part of that row.\n *\n * The scroll is why this is one boolean rather than a `variant`. Simply\n * un-hiding the buttons would push a nine-button row past a 360px viewport and\n * give the whole document a horizontal scrollbar — the opt-out has to carry its\n * own layout, so it does.\n */\nexport function Pagination({\n page,\n totalPages,\n onPageChange,\n pageSize,\n onPageSizeChange,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n totalItems,\n siblingCount = 3,\n compactOnMobile = true,\n className,\n}: PaginationProps) {\n const pages = useMemo(\n () => buildRange(page, totalPages, siblingCount),\n [page, totalPages, siblingCount],\n );\n const sizes = useMemo(\n () =>\n pageSize === undefined || pageSizeOptions.includes(pageSize)\n ? pageSizeOptions\n : [...pageSizeOptions, pageSize].sort((a, b) => a - b),\n [pageSize, pageSizeOptions],\n );\n const activePage = useRef<HTMLButtonElement | null>(null);\n\n useEffect(() => {\n if (compactOnMobile) return;\n activePage.current?.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n }, [page, compactOnMobile]);\n\n if (totalPages <= 1 && !onPageSizeChange) return null;\n\n return (\n <div className={cn(styles.wrapper, className)} data-compact={String(compactOnMobile)}>\n <div className={styles.summary}>\n {typeof totalItems === \"number\"\n ? `${totalItems} resultado${totalItems === 1 ? \"\" : \"s\"}`\n : `Página ${page} de ${totalPages}`}\n </div>\n <div className={styles.controls}>\n <button\n type=\"button\"\n className={styles.page}\n onClick={() => onPageChange(Math.max(1, page - 1))}\n disabled={page <= 1}\n aria-label=\"Página anterior\"\n >\n ‹\n </button>\n {pages.map((entry, index) =>\n entry === \"...\" ? (\n <span\n key={`ellipsis-${index}`}\n className={cn(styles.ellipsis, styles.numeric)}\n >\n …\n </span>\n ) : (\n <button\n type=\"button\"\n key={entry}\n ref={entry === page ? activePage : undefined}\n className={cn(\n styles.page,\n styles.numeric,\n entry === page && styles.active,\n )}\n onClick={() => onPageChange(entry)}\n aria-current={entry === page ? \"page\" : undefined}\n >\n {entry}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className={styles.page}\n onClick={() => onPageChange(Math.min(totalPages, page + 1))}\n disabled={page >= totalPages}\n aria-label=\"Próxima página\"\n >\n ›\n </button>\n {onPageSizeChange && (\n <select\n className={styles.sizeSelect}\n value={pageSize}\n onChange={(event) => onPageSizeChange(Number(event.target.value))}\n aria-label=\"Itens por página\"\n >\n {sizes.map((opt) => (\n <option key={opt} value={opt}>\n {opt} / página\n </option>\n ))}\n </select>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AA6CA,
|
|
1
|
+
{"version":3,"file":"Pagination.js","names":["styles","Pagination_module_default","DEFAULT_PAGE_SIZE_OPTIONS","buildRange","totalPages","siblings","i","start","page","end","range","Pagination","pages","useMemo","siblingCount","sizes","pageSize","pageSizeOptions","a","b","activePage","useRef","useEffect","compactOnMobile","onPageSizeChange","cn","className","totalItems","onPageChange","entry","index","event","opt"],"sources":["../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — page/totalPages/onPageChange is the pager,\n * pageSize/onPageSizeChange/ pageSizeOptions is the size control that sits in the\n * same bar, and totalItems plus siblingCount decide the copy and how many page\n * buttons are rendered. They ship together because a footer that pages but cannot\n * resize is half a footer.\n */\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./Pagination.module.css\";\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n pageSize?: number;\n onPageSizeChange?: (size: number) => void;\n /**\n * Sizes offered in the selector. Default `[10, 25, 50, 100]`.\n *\n * The current `pageSize` is always offered too, merged in ascending order. A\n * `<select>` whose value matches no option displays its first option, so\n * `pageSize={20}` against the default list used to read \"10 / página\" over a\n * table showing 20 rows.\n */\n pageSizeOptions?: number[];\n /** Total items count; if provided, renders the summary text. */\n totalItems?: number;\n /** Pages kept around the current one; ~`siblingCount + 4` buttons render. Default 3. */\n siblingCount?: number;\n /**\n * Below 640px, drop to `‹` / `›` plus the summary and hide the numbered\n * buttons and the size select. Default `true`.\n *\n * The default suits a desktop-first app, and costs the thing pagination is\n * for on a phone: reaching page 7 becomes six taps on \"next\" instead of one\n * tap on `7`. Pass `false` in a mobile-first app and the numbers stay at\n * every width — the row scrolls horizontally by itself rather than pushing\n * the page wider, and the current page is scrolled into view when it\n * changes.\n */\n compactOnMobile?: boolean;\n className?: string;\n}\n\nconst DEFAULT_PAGE_SIZE_OPTIONS: number[] = [10, 25, 50, 100];\n\nfunction buildRange(page: number, totalPages: number, siblings: number): (number | \"...\")[] {\n const totalSlots = siblings + 4;\n if (totalPages <= totalSlots) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n const start = Math.max(2, page - Math.floor(siblings / 2));\n const end = Math.min(totalPages - 1, start + siblings - 1);\n const range: (number | \"...\")[] = [1];\n if (start > 2) range.push(\"...\");\n for (let i = start; i <= end; i++) range.push(i);\n if (end < totalPages - 1) range.push(\"...\");\n range.push(totalPages);\n return range;\n}\n\n/**\n * Numeric pagination controls. Pair with {@link usePagination} for state.\n *\n * Narrow screens collapse to `‹` / `›` plus the summary by default, which turns\n * random access into sequential access — fine for a desktop-first app, wrong for\n * one whose traffic is phones. `compactOnMobile={false}` keeps the numbers at\n * every width: the row scrolls on its own instead of widening the page, and the\n * effect below keeps the current page inside the visible part of that row.\n *\n * The scroll is why this is one boolean rather than a `variant`. Simply\n * un-hiding the buttons would push a nine-button row past a 360px viewport and\n * give the whole document a horizontal scrollbar — the opt-out has to carry its\n * own layout, so it does.\n */\nexport function Pagination({\n page,\n totalPages,\n onPageChange,\n pageSize,\n onPageSizeChange,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n totalItems,\n siblingCount = 3,\n compactOnMobile = true,\n className,\n}: PaginationProps) {\n const pages = useMemo(\n () => buildRange(page, totalPages, siblingCount),\n [page, totalPages, siblingCount],\n );\n const sizes = useMemo(\n () =>\n pageSize === undefined || pageSizeOptions.includes(pageSize)\n ? pageSizeOptions\n : [...pageSizeOptions, pageSize].sort((a, b) => a - b),\n [pageSize, pageSizeOptions],\n );\n const activePage = useRef<HTMLButtonElement | null>(null);\n\n useEffect(() => {\n if (compactOnMobile) return;\n activePage.current?.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n }, [page, compactOnMobile]);\n\n if (totalPages <= 1 && !onPageSizeChange) return null;\n\n return (\n <div className={cn(styles.wrapper, className)} data-compact={String(compactOnMobile)}>\n <div className={styles.summary}>\n {typeof totalItems === \"number\"\n ? `${totalItems} resultado${totalItems === 1 ? \"\" : \"s\"}`\n : `Página ${page} de ${totalPages}`}\n </div>\n <div className={styles.controls}>\n <button\n type=\"button\"\n className={styles.page}\n onClick={() => onPageChange(Math.max(1, page - 1))}\n disabled={page <= 1}\n aria-label=\"Página anterior\"\n >\n ‹\n </button>\n {pages.map((entry, index) =>\n entry === \"...\" ? (\n <span\n key={`ellipsis-${index}`}\n className={cn(styles.ellipsis, styles.numeric)}\n >\n …\n </span>\n ) : (\n <button\n type=\"button\"\n key={entry}\n ref={entry === page ? activePage : undefined}\n className={cn(\n styles.page,\n styles.numeric,\n entry === page && styles.active,\n )}\n onClick={() => onPageChange(entry)}\n aria-current={entry === page ? \"page\" : undefined}\n >\n {entry}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className={styles.page}\n onClick={() => onPageChange(Math.min(totalPages, page + 1))}\n disabled={page >= totalPages}\n aria-label=\"Próxima página\"\n >\n ›\n </button>\n {onPageSizeChange && (\n <select\n className={styles.sizeSelect}\n value={pageSize}\n onChange={(event) => onPageSizeChange(Number(event.target.value))}\n aria-label=\"Itens por página\"\n >\n {sizes.map((opt) => (\n <option key={opt} value={opt}>\n {opt} / página\n </option>\n ))}\n </select>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.module.cjs","names":[],"sources":["../../../src/components/Pagination/Pagination.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-3) 0;\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n color: var(--tempest-text-muted);\n flex-wrap: wrap;\n}\n\n.controls {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-1);\n min-width: 0;\n}\n\n.page {\n min-width: 32px;\n height: 32px;\n padding: 0 var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n border-radius: var(--tempest-radius-md);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .page:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n border-color: var(--tempest-border-strong);\n }\n .active:hover {\n background-color: var(--tempest-primary-hover);\n border-color: var(--tempest-primary-hover);\n }\n}\n\n.page:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.page:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.active {\n background-color: var(--tempest-primary);\n border-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n}\n\n.ellipsis {\n padding: 0 var(--tempest-space-2);\n color: var(--tempest-text-subtle);\n}\n\n.sizeSelect {\n height: 32px;\n padding: 0 var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n}\n\n.sizeSelect:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n@media (max-width: 639.98px) {\n .summary {\n font-size: var(--tempest-text-xs);\n }\n\n .wrapper[data-compact=\"true\"] .numeric,\n .wrapper[data-compact=\"true\"] .sizeSelect {\n display: none;\n }\n\n .wrapper[data-compact=\"true\"] .controls {\n flex: 1;\n justify-content: space-between;\n }\n\n .wrapper[data-compact=\"false\"] .controls {\n flex: 1 1 100%;\n justify-content: flex-start;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scrollbar-width: thin;\n scroll-padding-inline: var(--tempest-space-2);\n padding-block-end: var(--tempest-space-1);\n }\n\n .wrapper[data-compact=\"false\"] .page,\n .wrapper[data-compact=\"false\"] .ellipsis,\n .wrapper[data-compact=\"false\"] .sizeSelect {\n flex: 0 0 auto;\n }\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"Pagination.module.cjs","names":["wrapper","controls","page","active","ellipsis","sizeSelect","summary","numeric","Pagination_module_default"],"sources":["../../../src/components/Pagination/Pagination.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-3) 0;\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n color: var(--tempest-text-muted);\n flex-wrap: wrap;\n}\n\n.controls {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-1);\n min-width: 0;\n}\n\n.page {\n min-width: 32px;\n height: 32px;\n padding: 0 var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n border-radius: var(--tempest-radius-md);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .page:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n border-color: var(--tempest-border-strong);\n }\n .active:hover {\n background-color: var(--tempest-primary-hover);\n border-color: var(--tempest-primary-hover);\n }\n}\n\n.page:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.page:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.active {\n background-color: var(--tempest-primary);\n border-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n}\n\n.ellipsis {\n padding: 0 var(--tempest-space-2);\n color: var(--tempest-text-subtle);\n}\n\n.sizeSelect {\n height: 32px;\n padding: 0 var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n}\n\n.sizeSelect:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n@media (max-width: 639.98px) {\n .summary {\n font-size: var(--tempest-text-xs);\n }\n\n .wrapper[data-compact=\"true\"] .numeric,\n .wrapper[data-compact=\"true\"] .sizeSelect {\n display: none;\n }\n\n .wrapper[data-compact=\"true\"] .controls {\n flex: 1;\n justify-content: space-between;\n }\n\n .wrapper[data-compact=\"false\"] .controls {\n flex: 1 1 100%;\n justify-content: flex-start;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scrollbar-width: thin;\n scroll-padding-inline: var(--tempest-space-2);\n padding-block-end: var(--tempest-space-1);\n }\n\n .wrapper[data-compact=\"false\"] .page,\n .wrapper[data-compact=\"false\"] .ellipsis,\n .wrapper[data-compact=\"false\"] .sizeSelect {\n flex: 0 0 auto;\n }\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.module.js","names":[],"sources":["../../../src/components/Pagination/Pagination.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-3) 0;\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n color: var(--tempest-text-muted);\n flex-wrap: wrap;\n}\n\n.controls {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-1);\n min-width: 0;\n}\n\n.page {\n min-width: 32px;\n height: 32px;\n padding: 0 var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n border-radius: var(--tempest-radius-md);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .page:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n border-color: var(--tempest-border-strong);\n }\n .active:hover {\n background-color: var(--tempest-primary-hover);\n border-color: var(--tempest-primary-hover);\n }\n}\n\n.page:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.page:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.active {\n background-color: var(--tempest-primary);\n border-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n}\n\n.ellipsis {\n padding: 0 var(--tempest-space-2);\n color: var(--tempest-text-subtle);\n}\n\n.sizeSelect {\n height: 32px;\n padding: 0 var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n}\n\n.sizeSelect:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n@media (max-width: 639.98px) {\n .summary {\n font-size: var(--tempest-text-xs);\n }\n\n .wrapper[data-compact=\"true\"] .numeric,\n .wrapper[data-compact=\"true\"] .sizeSelect {\n display: none;\n }\n\n .wrapper[data-compact=\"true\"] .controls {\n flex: 1;\n justify-content: space-between;\n }\n\n .wrapper[data-compact=\"false\"] .controls {\n flex: 1 1 100%;\n justify-content: flex-start;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scrollbar-width: thin;\n scroll-padding-inline: var(--tempest-space-2);\n padding-block-end: var(--tempest-space-1);\n }\n\n .wrapper[data-compact=\"false\"] .page,\n .wrapper[data-compact=\"false\"] .ellipsis,\n .wrapper[data-compact=\"false\"] .sizeSelect {\n flex: 0 0 auto;\n }\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"Pagination.module.js","names":["wrapper","controls","page","active","ellipsis","sizeSelect","summary","numeric","Pagination_module_default"],"sources":["../../../src/components/Pagination/Pagination.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-3) 0;\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n color: var(--tempest-text-muted);\n flex-wrap: wrap;\n}\n\n.controls {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-1);\n min-width: 0;\n}\n\n.page {\n min-width: 32px;\n height: 32px;\n padding: 0 var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n border-radius: var(--tempest-radius-md);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .page:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n border-color: var(--tempest-border-strong);\n }\n .active:hover {\n background-color: var(--tempest-primary-hover);\n border-color: var(--tempest-primary-hover);\n }\n}\n\n.page:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.page:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.active {\n background-color: var(--tempest-primary);\n border-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n}\n\n.ellipsis {\n padding: 0 var(--tempest-space-2);\n color: var(--tempest-text-subtle);\n}\n\n.sizeSelect {\n height: 32px;\n padding: 0 var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n}\n\n.sizeSelect:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n@media (max-width: 639.98px) {\n .summary {\n font-size: var(--tempest-text-xs);\n }\n\n .wrapper[data-compact=\"true\"] .numeric,\n .wrapper[data-compact=\"true\"] .sizeSelect {\n display: none;\n }\n\n .wrapper[data-compact=\"true\"] .controls {\n flex: 1;\n justify-content: space-between;\n }\n\n .wrapper[data-compact=\"false\"] .controls {\n flex: 1 1 100%;\n justify-content: flex-start;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scrollbar-width: thin;\n scroll-padding-inline: var(--tempest-space-2);\n padding-block-end: var(--tempest-space-1);\n }\n\n .wrapper[data-compact=\"false\"] .page,\n .wrapper[data-compact=\"false\"] .ellipsis,\n .wrapper[data-compact=\"false\"] .sizeSelect {\n flex: 0 0 auto;\n }\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordInput.cjs","names":[],"sources":["../../../src/components/PasswordInput/PasswordInput.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — on top of the SDK's shared field props,\n * showStrength/strength/strengthLabels are the meter and toggleLabels is the\n * show/hide button's accessible name — both need their copy from the app, since\n * neither can be translated by the SDK.\n */\nimport { forwardRef, useId, useState } from \"react\";\nimport type { InputHTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./PasswordInput.module.css\";\n\nexport type PasswordStrength = 0 | 1 | 2 | 3 | 4;\n\nexport interface PasswordInputProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"type\" | \"size\"\n> {\n /** Label rendered above the input. */\n label?: ReactNode;\n /** Helper text below — replaced by `error` when set. */\n helperText?: ReactNode;\n /** Error message. Adds `aria-invalid` + red border. */\n error?: string;\n /** Visual size of the input. */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Show a strength meter below the field. Default `false`. */\n showStrength?: boolean;\n /** Override the automatic strength calc (0–4). */\n strength?: PasswordStrength;\n /** Custom labels per strength level (5 entries). */\n strengthLabels?: readonly [string, string, string, string, string];\n /** Custom toggle button labels for accessibility. */\n toggleLabels?: { show: string; hide: string };\n}\n\nconst DEFAULT_STRENGTH_LABELS = [\"Muito fraca\", \"Fraca\", \"Razoável\", \"Forte\", \"Excelente\"] as const;\n\nexport function estimatePasswordStrength(value: string): PasswordStrength {\n if (!value) return 0;\n let score = 0;\n if (value.length >= 8) score += 1;\n if (value.length >= 12) score += 1;\n if (/[a-z]/.test(value) && /[A-Z]/.test(value)) score += 1;\n if (/[0-9]/.test(value)) score += 1;\n if (/[^A-Za-z0-9]/.test(value)) score += 1;\n return Math.min(4, score) as PasswordStrength;\n}\n\n/**\n * Password field with toggle-visibility button and optional strength meter.\n *\n * @example\n * <PasswordInput label=\"Senha\" showStrength autoComplete=\"new-password\" />\n */\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n function PasswordInput(\n {\n label,\n helperText,\n error,\n size = \"md\",\n showStrength = false,\n strength,\n strengthLabels = DEFAULT_STRENGTH_LABELS,\n toggleLabels = { show: \"Mostrar senha\", hide: \"Esconder senha\" },\n className,\n value,\n defaultValue,\n id,\n ...inputProps\n },\n ref,\n ) {\n const generatedId = useId();\n const inputId = id ?? generatedId;\n const describedById = error\n ? `${inputId}-error`\n : helperText\n ? `${inputId}-helper`\n : undefined;\n const [revealed, setRevealed] = useState<boolean>(false);\n const stringValue = String((value ?? defaultValue ?? \"\") as string);\n const computedStrength: PasswordStrength =\n strength ?? estimatePasswordStrength(stringValue);\n\n return (\n <div className={cn(styles.wrapper, styles[size], error && styles.error, className)}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={styles.field}>\n <input\n ref={ref}\n {...inputProps}\n id={inputId}\n value={value}\n defaultValue={defaultValue}\n type={revealed ? \"text\" : \"password\"}\n aria-invalid={!!error}\n aria-describedby={describedById}\n className={styles.input}\n />\n <button\n type=\"button\"\n className={styles.toggle}\n aria-label={revealed ? toggleLabels.hide : toggleLabels.show}\n aria-pressed={revealed}\n onClick={() => setRevealed((on) => !on)}\n >\n {revealed ? \"🙈\" : \"👁\"}\n </button>\n </div>\n {showStrength && (\n <div\n className={cn(styles.strength, styles[`level${computedStrength}`])}\n aria-label={strengthLabels[computedStrength]}\n >\n <div className={styles.strengthBar}>\n <span style={{ width: `${(computedStrength / 4) * 100}%` }} />\n </div>\n <span className={styles.strengthLabel}>\n {strengthLabels[computedStrength]}\n </span>\n </div>\n )}\n {error ? (\n <span id={`${inputId}-error`} className={styles.errorText}>\n {error}\n </span>\n ) : helperText ? (\n <span id={`${inputId}-helper`} className={styles.helper}>\n {helperText}\n </span>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":"oIAmCA,
|
|
1
|
+
{"version":3,"file":"PasswordInput.cjs","names":["forwardRef","useId","useState","cn","styles","require_cn","require_PasswordInput_module","react","react_jsx_runtime","DEFAULT_STRENGTH_LABELS","estimatePasswordStrength","value","score","PasswordInput","inputProps","generatedId","inputId","id","describedById","error","helperText","revealed","setRevealed","computedStrength","strength","defaultValue","size","className","label","toggleLabels","on","showStrength","strengthLabels"],"sources":["../../../src/components/PasswordInput/PasswordInput.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — on top of the SDK's shared field props,\n * showStrength/strength/strengthLabels are the meter and toggleLabels is the\n * show/hide button's accessible name — both need their copy from the app, since\n * neither can be translated by the SDK.\n */\nimport { forwardRef, useId, useState } from \"react\";\nimport type { InputHTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./PasswordInput.module.css\";\n\nexport type PasswordStrength = 0 | 1 | 2 | 3 | 4;\n\nexport interface PasswordInputProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"type\" | \"size\"\n> {\n /** Label rendered above the input. */\n label?: ReactNode;\n /** Helper text below — replaced by `error` when set. */\n helperText?: ReactNode;\n /** Error message. Adds `aria-invalid` + red border. */\n error?: string;\n /** Visual size of the input. */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Show a strength meter below the field. Default `false`. */\n showStrength?: boolean;\n /** Override the automatic strength calc (0–4). */\n strength?: PasswordStrength;\n /** Custom labels per strength level (5 entries). */\n strengthLabels?: readonly [string, string, string, string, string];\n /** Custom toggle button labels for accessibility. */\n toggleLabels?: { show: string; hide: string };\n}\n\nconst DEFAULT_STRENGTH_LABELS = [\"Muito fraca\", \"Fraca\", \"Razoável\", \"Forte\", \"Excelente\"] as const;\n\nexport function estimatePasswordStrength(value: string): PasswordStrength {\n if (!value) return 0;\n let score = 0;\n if (value.length >= 8) score += 1;\n if (value.length >= 12) score += 1;\n if (/[a-z]/.test(value) && /[A-Z]/.test(value)) score += 1;\n if (/[0-9]/.test(value)) score += 1;\n if (/[^A-Za-z0-9]/.test(value)) score += 1;\n return Math.min(4, score) as PasswordStrength;\n}\n\n/**\n * Password field with toggle-visibility button and optional strength meter.\n *\n * @example\n * <PasswordInput label=\"Senha\" showStrength autoComplete=\"new-password\" />\n */\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n function PasswordInput(\n {\n label,\n helperText,\n error,\n size = \"md\",\n showStrength = false,\n strength,\n strengthLabels = DEFAULT_STRENGTH_LABELS,\n toggleLabels = { show: \"Mostrar senha\", hide: \"Esconder senha\" },\n className,\n value,\n defaultValue,\n id,\n ...inputProps\n },\n ref,\n ) {\n const generatedId = useId();\n const inputId = id ?? generatedId;\n const describedById = error\n ? `${inputId}-error`\n : helperText\n ? `${inputId}-helper`\n : undefined;\n const [revealed, setRevealed] = useState<boolean>(false);\n const stringValue = String((value ?? defaultValue ?? \"\") as string);\n const computedStrength: PasswordStrength =\n strength ?? estimatePasswordStrength(stringValue);\n\n return (\n <div className={cn(styles.wrapper, styles[size], error && styles.error, className)}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={styles.field}>\n <input\n ref={ref}\n {...inputProps}\n id={inputId}\n value={value}\n defaultValue={defaultValue}\n type={revealed ? \"text\" : \"password\"}\n aria-invalid={!!error}\n aria-describedby={describedById}\n className={styles.input}\n />\n <button\n type=\"button\"\n className={styles.toggle}\n aria-label={revealed ? toggleLabels.hide : toggleLabels.show}\n aria-pressed={revealed}\n onClick={() => setRevealed((on) => !on)}\n >\n {revealed ? \"🙈\" : \"👁\"}\n </button>\n </div>\n {showStrength && (\n <div\n className={cn(styles.strength, styles[`level${computedStrength}`])}\n aria-label={strengthLabels[computedStrength]}\n >\n <div className={styles.strengthBar}>\n <span style={{ width: `${(computedStrength / 4) * 100}%` }} />\n </div>\n <span className={styles.strengthLabel}>\n {strengthLabels[computedStrength]}\n </span>\n </div>\n )}\n {error ? (\n <span id={`${inputId}-error`} className={styles.errorText}>\n {error}\n </span>\n ) : helperText ? (\n <span id={`${inputId}-helper`} className={styles.helper}>\n {helperText}\n </span>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":"A,oIAmCA,IAAMS,EAA0B,CAAC,cAAe,QAAS,WAAY,QAAS,WAAW,EAEzF,SAAgBC,EAAyB,EAAiC,CACtE,GAAI,CAACC,EAAO,MAAO,GACnB,IAAIC,EAAQ,EAMZ,OALID,EAAM,QAAU,IAAG,GAAS,GAC5BA,EAAM,QAAU,KAAI,GAAS,GAC7B,QAAQ,KAAKA,CAAK,GAAK,QAAQ,KAAKA,CAAK,IAAG,GAAS,GACrD,QAAQ,KAAKA,CAAK,IAAG,GAAS,GAC9B,eAAe,KAAKA,CAAK,IAAG,GAAS,GAClC,KAAK,IAAI,EAAGC,CAAK,CAC5B,CAQA,IAAaC,GAAA,EAAgBb,EAAAA,WAAAA,CACzB,SACI,CACI,QACA,aACA,QACA,OAAO,KACP,eAAe,GACf,WACA,iBAAiBS,EACjB,eAAe,CAAE,KAAM,gBAAiB,KAAM,gBAAiB,EAC/D,YACA,QACA,eACA,KACA,GAAGK,GAEP,EACF,CACE,IAAMC,GAAA,EAAcd,EAAAA,MAAAA,CAAM,EACpBe,EAAUC,GAAMF,EAChBG,EAAgBC,EAChB,GAAGH,EAAQ,QACXI,EACE,GAAGJ,EAAQ,SACX,IAAA,GACF,CAACK,EAAUC,IAAA,EAAepB,EAAAA,SAAAA,CAAkB,EAAK,EAEjDqB,EACFC,GAAYd,EAFI,OAAQC,GAASc,GAAgB,EAEZ,CAAW,EAEpD,OACI,EAAAjB,EAAA,KAAA,CAAC,MAAD,CAAK,UAAWL,EAAAA,GAAGC,EAAAA,QAAO,QAASA,EAAAA,QAAOsB,GAAOP,GAASf,EAAAA,QAAO,MAAOuB,CAAS,EAAjF,SAAA,CACKC,IACG,EAAApB,EAAA,IAAA,CAAC,QAAD,CAAO,QAASQ,EAAS,UAAWZ,EAAAA,QAAO,MACtC,SAAAwB,CACE,CAAA,GAEX,EAAApB,EAAA,KAAA,CAAC,MAAD,CAAK,UAAWJ,EAAAA,QAAO,MAAvB,SAAA,EACI,EAAAI,EAAA,IAAA,CAAC,QAAD,CACS,MACL,GAAIM,EACJ,GAAIE,EACG,QACO,eACd,KAAMK,EAAW,OAAS,WAC1B,eAAc,CAAC,CAACF,EAChB,mBAAkBD,EAClB,UAAWd,EAAAA,QAAO,KACrB,CAAA,GACD,EAAAI,EAAA,IAAA,CAAC,SAAD,CACI,KAAK,SACL,UAAWJ,EAAAA,QAAO,OAClB,aAAYiB,EAAWQ,EAAa,KAAOA,EAAa,KACxD,eAAcR,EACd,YAAeC,EAAa,GAAO,CAACQ,CAAE,EAErC,SAAAT,EAAW,KAAO,IACf,CAAA,CACP,C,GACJU,IACG,EAAAvB,EAAA,KAAA,CAAC,MAAD,CACI,UAAWL,EAAAA,GAAGC,EAAAA,QAAO,SAAUA,EAAAA,QAAO,QAAQmB,IAAmB,EACjE,aAAYS,EAAeT,GAF/B,SAAA,EAII,EAAAf,EAAA,IAAA,CAAC,MAAD,CAAK,UAAWJ,EAAAA,QAAO,YACnB,UAAA,EAAAI,EAAA,IAAA,CAAC,OAAD,CAAM,MAAO,CAAE,MAAO,GAAIe,EAAmB,EAAK,IAAI,EAAG,CAAI,CAAA,CAC5D,CAAA,GACL,EAAAf,EAAA,IAAA,CAAC,OAAD,CAAM,UAAWJ,EAAAA,QAAO,cACnB,SAAA4B,EAAeT,EACd,CAAA,CACL,C,GAERJ,GACG,EAAAX,EAAA,IAAA,CAAC,OAAD,CAAM,GAAI,GAAGQ,EAAQ,QAAS,UAAWZ,EAAAA,QAAO,UAC3C,SAAAe,CACC,CAAA,EACNC,GACA,EAAAZ,EAAA,IAAA,CAAC,OAAD,CAAM,GAAI,GAAGQ,EAAQ,SAAU,UAAWZ,EAAAA,QAAO,OAC5C,SAAAgB,CACC,CAAA,EACN,IACH,C,EAEb,CACJ,E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordInput.js","names":[],"sources":["../../../src/components/PasswordInput/PasswordInput.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — on top of the SDK's shared field props,\n * showStrength/strength/strengthLabels are the meter and toggleLabels is the\n * show/hide button's accessible name — both need their copy from the app, since\n * neither can be translated by the SDK.\n */\nimport { forwardRef, useId, useState } from \"react\";\nimport type { InputHTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./PasswordInput.module.css\";\n\nexport type PasswordStrength = 0 | 1 | 2 | 3 | 4;\n\nexport interface PasswordInputProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"type\" | \"size\"\n> {\n /** Label rendered above the input. */\n label?: ReactNode;\n /** Helper text below — replaced by `error` when set. */\n helperText?: ReactNode;\n /** Error message. Adds `aria-invalid` + red border. */\n error?: string;\n /** Visual size of the input. */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Show a strength meter below the field. Default `false`. */\n showStrength?: boolean;\n /** Override the automatic strength calc (0–4). */\n strength?: PasswordStrength;\n /** Custom labels per strength level (5 entries). */\n strengthLabels?: readonly [string, string, string, string, string];\n /** Custom toggle button labels for accessibility. */\n toggleLabels?: { show: string; hide: string };\n}\n\nconst DEFAULT_STRENGTH_LABELS = [\"Muito fraca\", \"Fraca\", \"Razoável\", \"Forte\", \"Excelente\"] as const;\n\nexport function estimatePasswordStrength(value: string): PasswordStrength {\n if (!value) return 0;\n let score = 0;\n if (value.length >= 8) score += 1;\n if (value.length >= 12) score += 1;\n if (/[a-z]/.test(value) && /[A-Z]/.test(value)) score += 1;\n if (/[0-9]/.test(value)) score += 1;\n if (/[^A-Za-z0-9]/.test(value)) score += 1;\n return Math.min(4, score) as PasswordStrength;\n}\n\n/**\n * Password field with toggle-visibility button and optional strength meter.\n *\n * @example\n * <PasswordInput label=\"Senha\" showStrength autoComplete=\"new-password\" />\n */\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n function PasswordInput(\n {\n label,\n helperText,\n error,\n size = \"md\",\n showStrength = false,\n strength,\n strengthLabels = DEFAULT_STRENGTH_LABELS,\n toggleLabels = { show: \"Mostrar senha\", hide: \"Esconder senha\" },\n className,\n value,\n defaultValue,\n id,\n ...inputProps\n },\n ref,\n ) {\n const generatedId = useId();\n const inputId = id ?? generatedId;\n const describedById = error\n ? `${inputId}-error`\n : helperText\n ? `${inputId}-helper`\n : undefined;\n const [revealed, setRevealed] = useState<boolean>(false);\n const stringValue = String((value ?? defaultValue ?? \"\") as string);\n const computedStrength: PasswordStrength =\n strength ?? estimatePasswordStrength(stringValue);\n\n return (\n <div className={cn(styles.wrapper, styles[size], error && styles.error, className)}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={styles.field}>\n <input\n ref={ref}\n {...inputProps}\n id={inputId}\n value={value}\n defaultValue={defaultValue}\n type={revealed ? \"text\" : \"password\"}\n aria-invalid={!!error}\n aria-describedby={describedById}\n className={styles.input}\n />\n <button\n type=\"button\"\n className={styles.toggle}\n aria-label={revealed ? toggleLabels.hide : toggleLabels.show}\n aria-pressed={revealed}\n onClick={() => setRevealed((on) => !on)}\n >\n {revealed ? \"🙈\" : \"👁\"}\n </button>\n </div>\n {showStrength && (\n <div\n className={cn(styles.strength, styles[`level${computedStrength}`])}\n aria-label={strengthLabels[computedStrength]}\n >\n <div className={styles.strengthBar}>\n <span style={{ width: `${(computedStrength / 4) * 100}%` }} />\n </div>\n <span className={styles.strengthLabel}>\n {strengthLabels[computedStrength]}\n </span>\n </div>\n )}\n {error ? (\n <span id={`${inputId}-error`} className={styles.errorText}>\n {error}\n </span>\n ) : helperText ? (\n <span id={`${inputId}-helper`} className={styles.helper}>\n {helperText}\n </span>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":";;;;;AAmCA,
|
|
1
|
+
{"version":3,"file":"PasswordInput.js","names":["styles","PasswordInput_module_default","DEFAULT_STRENGTH_LABELS","estimatePasswordStrength","value","score","PasswordInput","forwardRef","inputProps","generatedId","useId","inputId","id","describedById","error","helperText","revealed","setRevealed","useState","computedStrength","strength","defaultValue","cn","size","className","label","toggleLabels","on","showStrength","strengthLabels"],"sources":["../../../src/components/PasswordInput/PasswordInput.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count — on top of the SDK's shared field props,\n * showStrength/strength/strengthLabels are the meter and toggleLabels is the\n * show/hide button's accessible name — both need their copy from the app, since\n * neither can be translated by the SDK.\n */\nimport { forwardRef, useId, useState } from \"react\";\nimport type { InputHTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./PasswordInput.module.css\";\n\nexport type PasswordStrength = 0 | 1 | 2 | 3 | 4;\n\nexport interface PasswordInputProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"type\" | \"size\"\n> {\n /** Label rendered above the input. */\n label?: ReactNode;\n /** Helper text below — replaced by `error` when set. */\n helperText?: ReactNode;\n /** Error message. Adds `aria-invalid` + red border. */\n error?: string;\n /** Visual size of the input. */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Show a strength meter below the field. Default `false`. */\n showStrength?: boolean;\n /** Override the automatic strength calc (0–4). */\n strength?: PasswordStrength;\n /** Custom labels per strength level (5 entries). */\n strengthLabels?: readonly [string, string, string, string, string];\n /** Custom toggle button labels for accessibility. */\n toggleLabels?: { show: string; hide: string };\n}\n\nconst DEFAULT_STRENGTH_LABELS = [\"Muito fraca\", \"Fraca\", \"Razoável\", \"Forte\", \"Excelente\"] as const;\n\nexport function estimatePasswordStrength(value: string): PasswordStrength {\n if (!value) return 0;\n let score = 0;\n if (value.length >= 8) score += 1;\n if (value.length >= 12) score += 1;\n if (/[a-z]/.test(value) && /[A-Z]/.test(value)) score += 1;\n if (/[0-9]/.test(value)) score += 1;\n if (/[^A-Za-z0-9]/.test(value)) score += 1;\n return Math.min(4, score) as PasswordStrength;\n}\n\n/**\n * Password field with toggle-visibility button and optional strength meter.\n *\n * @example\n * <PasswordInput label=\"Senha\" showStrength autoComplete=\"new-password\" />\n */\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n function PasswordInput(\n {\n label,\n helperText,\n error,\n size = \"md\",\n showStrength = false,\n strength,\n strengthLabels = DEFAULT_STRENGTH_LABELS,\n toggleLabels = { show: \"Mostrar senha\", hide: \"Esconder senha\" },\n className,\n value,\n defaultValue,\n id,\n ...inputProps\n },\n ref,\n ) {\n const generatedId = useId();\n const inputId = id ?? generatedId;\n const describedById = error\n ? `${inputId}-error`\n : helperText\n ? `${inputId}-helper`\n : undefined;\n const [revealed, setRevealed] = useState<boolean>(false);\n const stringValue = String((value ?? defaultValue ?? \"\") as string);\n const computedStrength: PasswordStrength =\n strength ?? estimatePasswordStrength(stringValue);\n\n return (\n <div className={cn(styles.wrapper, styles[size], error && styles.error, className)}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={styles.field}>\n <input\n ref={ref}\n {...inputProps}\n id={inputId}\n value={value}\n defaultValue={defaultValue}\n type={revealed ? \"text\" : \"password\"}\n aria-invalid={!!error}\n aria-describedby={describedById}\n className={styles.input}\n />\n <button\n type=\"button\"\n className={styles.toggle}\n aria-label={revealed ? toggleLabels.hide : toggleLabels.show}\n aria-pressed={revealed}\n onClick={() => setRevealed((on) => !on)}\n >\n {revealed ? \"🙈\" : \"👁\"}\n </button>\n </div>\n {showStrength && (\n <div\n className={cn(styles.strength, styles[`level${computedStrength}`])}\n aria-label={strengthLabels[computedStrength]}\n >\n <div className={styles.strengthBar}>\n <span style={{ width: `${(computedStrength / 4) * 100}%` }} />\n </div>\n <span className={styles.strengthLabel}>\n {strengthLabels[computedStrength]}\n </span>\n </div>\n )}\n {error ? (\n <span id={`${inputId}-error`} className={styles.errorText}>\n {error}\n </span>\n ) : helperText ? (\n <span id={`${inputId}-helper`} className={styles.helper}>\n {helperText}\n </span>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":";;;;;AAmCA,IAAME,IAA0B;CAAC;CAAe;CAAS;CAAY;CAAS;AAAW;AAEzF,SAAgBC,EAAyB,GAAiC;CACtE,IAAI,CAACC,GAAO,OAAO;CACnB,IAAIC,IAAQ;CAMZ,OALID,EAAM,UAAU,MAAG,KAAS,IAC5BA,EAAM,UAAU,OAAI,KAAS,IAC7B,QAAQ,KAAKA,CAAK,KAAK,QAAQ,KAAKA,CAAK,MAAG,KAAS,IACrD,QAAQ,KAAKA,CAAK,MAAG,KAAS,IAC9B,eAAe,KAAKA,CAAK,MAAG,KAAS,IAClC,KAAK,IAAI,GAAGC,CAAK;AAC5B;AAQA,IAAaC,IAAgBC,EACzB,SACI,EACI,UACA,eACA,UACA,UAAO,MACP,kBAAe,IACf,aACA,oBAAiBL,GACjB,kBAAe;CAAE,MAAM;CAAiB,MAAM;AAAiB,GAC/D,cACA,UACA,iBACA,OACA,GAAGM,KAEP,GACF;CACE,IAAMC,IAAcC,EAAM,GACpBC,IAAUC,KAAMH,GAChBI,IAAgBC,IAChB,GAAGH,EAAQ,UACXI,IACE,GAAGJ,EAAQ,WACX,KAAA,GACF,CAACK,GAAUC,KAAeC,EAAkB,EAAK,GAEjDC,IACFC,KAAYjB,EAFI,OAAQC,KAASiB,KAAgB,EAEZ,CAAW;CAEpD,OACI,kBAAC,OAAD;EAAK,WAAWC,EAAGtB,EAAO,SAASA,EAAOuB,IAAOT,KAASd,EAAO,OAAOwB,CAAS;EAAjF,UAAA;GACKC,KACG,kBAAC,SAAD;IAAO,SAASd;IAAS,WAAWX,EAAO;IACtC,UAAAyB;GACE,CAAA;GAEX,kBAAC,OAAD;IAAK,WAAWzB,EAAO;IAAvB,UAAA,CACI,kBAAC,SAAD;KACS;KACL,GAAIQ;KACJ,IAAIG;KACG;KACO;KACd,MAAMK,IAAW,SAAS;KAC1B,gBAAc,CAAC,CAACF;KAChB,oBAAkBD;KAClB,WAAWb,EAAO;IACrB,CAAA,GACD,kBAAC,UAAD;KACI,MAAK;KACL,WAAWA,EAAO;KAClB,cAAYgB,IAAWU,EAAa,OAAOA,EAAa;KACxD,gBAAcV;KACd,eAAeC,GAAa,MAAO,CAACU,CAAE;KAErC,UAAAX,IAAW,OAAO;IACf,CAAA,CACP;;GACJY,KACG,kBAAC,OAAD;IACI,WAAWN,EAAGtB,EAAO,UAAUA,EAAO,QAAQmB,IAAmB;IACjE,cAAYU,EAAeV;IAF/B,UAAA,CAII,kBAAC,OAAD;KAAK,WAAWnB,EAAO;KACnB,UAAA,kBAAC,QAAD,EAAM,OAAO,EAAE,OAAO,GAAImB,IAAmB,IAAK,IAAI,GAAG,EAAI,CAAA;IAC5D,CAAA,GACL,kBAAC,QAAD;KAAM,WAAWnB,EAAO;KACnB,UAAA6B,EAAeV;IACd,CAAA,CACL;;GAERL,IACG,kBAAC,QAAD;IAAM,IAAI,GAAGH,EAAQ;IAAS,WAAWX,EAAO;IAC3C,UAAAc;GACC,CAAA,IACNC,IACA,kBAAC,QAAD;IAAM,IAAI,GAAGJ,EAAQ;IAAU,WAAWX,EAAO;IAC5C,UAAAe;GACC,CAAA,IACN;EACH;;AAEb,CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordInput.module.cjs","names":[],"sources":["../../../src/components/PasswordInput/PasswordInput.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n font-family: var(--tempest-font-sans);\n width: 100%;\n}\n\n.label {\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n color: var(--tempest-text);\n}\n\n.field {\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n transition: border-color var(--tempest-duration-fast, 120ms);\n}\n\n.field:focus-within {\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width, 2px)\n var(--tempest-focus-ring-color, currentColor);\n}\n\n.input {\n flex: 1 1 auto;\n border: 0;\n background: transparent;\n outline: 0;\n color: var(--tempest-text);\n font: inherit;\n font-family: var(--tempest-font-sans);\n}\n\n.sm .input {\n padding: 6px 8px;\n font-size: var(--tempest-text-sm);\n}\n\n.md .input {\n padding: 8px 12px;\n font-size: var(--tempest-text-md);\n}\n\n.lg .input {\n padding: 10px 14px;\n font-size: var(--tempest-text-lg);\n}\n\n.toggle {\n flex: 0 0 auto;\n background: none;\n border: 0;\n cursor: pointer;\n padding: 0 12px;\n font-size: 16px;\n color: var(--tempest-text-muted);\n}\n\n.toggle:hover {\n color: var(--tempest-text);\n}\n\n.error .field {\n border-color: var(--tempest-danger-border, var(--tempest-danger));\n}\n\n.helper {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-text-muted);\n}\n\n.errorText {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-danger-fg, var(--tempest-danger));\n}\n\n.strength {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n font-size: var(--tempest-text-xs);\n}\n\n.strengthBar {\n flex: 1 1 auto;\n height: 4px;\n background: var(--tempest-border);\n border-radius: var(--tempest-radius-full);\n overflow: hidden;\n}\n\n.strengthBar > span {\n display: block;\n height: 100%;\n transition: width var(--tempest-duration-base, 200ms);\n}\n\n.strengthLabel {\n color: var(--tempest-text-muted);\n flex: 0 0 auto;\n}\n\n.level0 .strengthBar > span,\n.level1 .strengthBar > span {\n background: var(--tempest-danger-solid, var(--tempest-danger));\n}\n\n.level2 .strengthBar > span {\n background: var(--tempest-warning-solid, var(--tempest-warning));\n}\n\n.level3 .strengthBar > span,\n.level4 .strengthBar > span {\n background: var(--tempest-success-solid, var(--tempest-success));\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"PasswordInput.module.cjs","names":["wrapper","label","field","input","sm","md","lg","toggle","error","helper","errorText","strength","strengthBar","strengthLabel","level0","level1","level2","level3","level4","PasswordInput_module_default"],"sources":["../../../src/components/PasswordInput/PasswordInput.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n font-family: var(--tempest-font-sans);\n width: 100%;\n}\n\n.label {\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n color: var(--tempest-text);\n}\n\n.field {\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n transition: border-color var(--tempest-duration-fast, 120ms);\n}\n\n.field:focus-within {\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width, 2px)\n var(--tempest-focus-ring-color, currentColor);\n}\n\n.input {\n flex: 1 1 auto;\n border: 0;\n background: transparent;\n outline: 0;\n color: var(--tempest-text);\n font: inherit;\n font-family: var(--tempest-font-sans);\n}\n\n.sm .input {\n padding: 6px 8px;\n font-size: var(--tempest-text-sm);\n}\n\n.md .input {\n padding: 8px 12px;\n font-size: var(--tempest-text-md);\n}\n\n.lg .input {\n padding: 10px 14px;\n font-size: var(--tempest-text-lg);\n}\n\n.toggle {\n flex: 0 0 auto;\n background: none;\n border: 0;\n cursor: pointer;\n padding: 0 12px;\n font-size: 16px;\n color: var(--tempest-text-muted);\n}\n\n.toggle:hover {\n color: var(--tempest-text);\n}\n\n.error .field {\n border-color: var(--tempest-danger-border, var(--tempest-danger));\n}\n\n.helper {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-text-muted);\n}\n\n.errorText {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-danger-fg, var(--tempest-danger));\n}\n\n.strength {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n font-size: var(--tempest-text-xs);\n}\n\n.strengthBar {\n flex: 1 1 auto;\n height: 4px;\n background: var(--tempest-border);\n border-radius: var(--tempest-radius-full);\n overflow: hidden;\n}\n\n.strengthBar > span {\n display: block;\n height: 100%;\n transition: width var(--tempest-duration-base, 200ms);\n}\n\n.strengthLabel {\n color: var(--tempest-text-muted);\n flex: 0 0 auto;\n}\n\n.level0 .strengthBar > span,\n.level1 .strengthBar > span {\n background: var(--tempest-danger-solid, var(--tempest-danger));\n}\n\n.level2 .strengthBar > span {\n background: var(--tempest-warning-solid, var(--tempest-warning));\n}\n\n.level3 .strengthBar > span,\n.level4 .strengthBar > span {\n background: var(--tempest-success-solid, var(--tempest-success));\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordInput.module.js","names":[],"sources":["../../../src/components/PasswordInput/PasswordInput.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n font-family: var(--tempest-font-sans);\n width: 100%;\n}\n\n.label {\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n color: var(--tempest-text);\n}\n\n.field {\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n transition: border-color var(--tempest-duration-fast, 120ms);\n}\n\n.field:focus-within {\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width, 2px)\n var(--tempest-focus-ring-color, currentColor);\n}\n\n.input {\n flex: 1 1 auto;\n border: 0;\n background: transparent;\n outline: 0;\n color: var(--tempest-text);\n font: inherit;\n font-family: var(--tempest-font-sans);\n}\n\n.sm .input {\n padding: 6px 8px;\n font-size: var(--tempest-text-sm);\n}\n\n.md .input {\n padding: 8px 12px;\n font-size: var(--tempest-text-md);\n}\n\n.lg .input {\n padding: 10px 14px;\n font-size: var(--tempest-text-lg);\n}\n\n.toggle {\n flex: 0 0 auto;\n background: none;\n border: 0;\n cursor: pointer;\n padding: 0 12px;\n font-size: 16px;\n color: var(--tempest-text-muted);\n}\n\n.toggle:hover {\n color: var(--tempest-text);\n}\n\n.error .field {\n border-color: var(--tempest-danger-border, var(--tempest-danger));\n}\n\n.helper {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-text-muted);\n}\n\n.errorText {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-danger-fg, var(--tempest-danger));\n}\n\n.strength {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n font-size: var(--tempest-text-xs);\n}\n\n.strengthBar {\n flex: 1 1 auto;\n height: 4px;\n background: var(--tempest-border);\n border-radius: var(--tempest-radius-full);\n overflow: hidden;\n}\n\n.strengthBar > span {\n display: block;\n height: 100%;\n transition: width var(--tempest-duration-base, 200ms);\n}\n\n.strengthLabel {\n color: var(--tempest-text-muted);\n flex: 0 0 auto;\n}\n\n.level0 .strengthBar > span,\n.level1 .strengthBar > span {\n background: var(--tempest-danger-solid, var(--tempest-danger));\n}\n\n.level2 .strengthBar > span {\n background: var(--tempest-warning-solid, var(--tempest-warning));\n}\n\n.level3 .strengthBar > span,\n.level4 .strengthBar > span {\n background: var(--tempest-success-solid, var(--tempest-success));\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"PasswordInput.module.js","names":["wrapper","label","field","input","sm","md","lg","toggle","error","helper","errorText","strength","strengthBar","strengthLabel","level0","level1","level2","level3","level4","PasswordInput_module_default"],"sources":["../../../src/components/PasswordInput/PasswordInput.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n font-family: var(--tempest-font-sans);\n width: 100%;\n}\n\n.label {\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n color: var(--tempest-text);\n}\n\n.field {\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n transition: border-color var(--tempest-duration-fast, 120ms);\n}\n\n.field:focus-within {\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width, 2px)\n var(--tempest-focus-ring-color, currentColor);\n}\n\n.input {\n flex: 1 1 auto;\n border: 0;\n background: transparent;\n outline: 0;\n color: var(--tempest-text);\n font: inherit;\n font-family: var(--tempest-font-sans);\n}\n\n.sm .input {\n padding: 6px 8px;\n font-size: var(--tempest-text-sm);\n}\n\n.md .input {\n padding: 8px 12px;\n font-size: var(--tempest-text-md);\n}\n\n.lg .input {\n padding: 10px 14px;\n font-size: var(--tempest-text-lg);\n}\n\n.toggle {\n flex: 0 0 auto;\n background: none;\n border: 0;\n cursor: pointer;\n padding: 0 12px;\n font-size: 16px;\n color: var(--tempest-text-muted);\n}\n\n.toggle:hover {\n color: var(--tempest-text);\n}\n\n.error .field {\n border-color: var(--tempest-danger-border, var(--tempest-danger));\n}\n\n.helper {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-text-muted);\n}\n\n.errorText {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-danger-fg, var(--tempest-danger));\n}\n\n.strength {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n font-size: var(--tempest-text-xs);\n}\n\n.strengthBar {\n flex: 1 1 auto;\n height: 4px;\n background: var(--tempest-border);\n border-radius: var(--tempest-radius-full);\n overflow: hidden;\n}\n\n.strengthBar > span {\n display: block;\n height: 100%;\n transition: width var(--tempest-duration-base, 200ms);\n}\n\n.strengthLabel {\n color: var(--tempest-text-muted);\n flex: 0 0 auto;\n}\n\n.level0 .strengthBar > span,\n.level1 .strengthBar > span {\n background: var(--tempest-danger-solid, var(--tempest-danger));\n}\n\n.level2 .strengthBar > span {\n background: var(--tempest-warning-solid, var(--tempest-warning));\n}\n\n.level3 .strengthBar > span,\n.level4 .strengthBar > span {\n background: var(--tempest-success-solid, var(--tempest-success));\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinInput.cjs","names":[],"sources":["../../../src/components/PinInput/PinInput.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count, function-lines — one input per digit, so length,\n * type, masked and autoFocus shape the boxes while\n * value/defaultValue/onChange/onComplete drive them as a single value. The body owns\n * the per-box refs, paste distribution and backspace traversal, which only make\n * sense with the whole array in scope.\n */\nimport { forwardRef, useEffect, useId, useRef, useState } from \"react\";\nimport type { ChangeEvent, ClipboardEvent, KeyboardEvent } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./PinInput.module.css\";\n\nexport type PinInputType = \"numeric\" | \"alphanumeric\";\nexport type PinInputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface PinInputProps {\n /** Number of cells. Default `6`. */\n length?: number;\n /** Allowed character set. `numeric` (default) rejects letters, `alphanumeric` allows both. */\n type?: PinInputType;\n /** Visual size. Default `\"md\"`. */\n size?: PinInputSize;\n /** Controlled value. */\n value?: string;\n /** Initial value (uncontrolled mode). */\n defaultValue?: string;\n /** Fires on every change with the current concatenated value. */\n onChange?: (value: string) => void;\n /** Fires when the user fills the last cell. */\n onComplete?: (value: string) => void;\n /** Show characters obscured (`*`). Default `false`. */\n masked?: boolean;\n /** Label rendered above the cells. */\n label?: string;\n /** Helper text below the cells. */\n helperText?: string;\n /** Error message — turns cells red and replaces helperText. */\n error?: string;\n /** Disable all cells. */\n disabled?: boolean;\n /** Auto-focus the first cell on mount. Default `false`. */\n autoFocus?: boolean;\n /** id for the wrapping group label association. */\n id?: string;\n className?: string;\n}\n\nconst NUMERIC = /[0-9]/;\nconst ALNUM = /[A-Za-z0-9]/;\n\n/**\n * One-time-password style input — N independent cells, paste support, auto-\n * advance on input, backspace flows back, arrow keys navigate.\n *\n * @example\n * <PinInput length={6} type=\"numeric\" onComplete={(otp) => verify(otp)} />\n */\nexport const PinInput = forwardRef<HTMLDivElement, PinInputProps>(function PinInput(\n {\n length = 6,\n type = \"numeric\",\n size = \"md\",\n value,\n defaultValue,\n onChange,\n onComplete,\n masked = false,\n label,\n helperText,\n error,\n disabled = false,\n autoFocus = false,\n id,\n className,\n },\n ref,\n) {\n const internalId = useId();\n const wrapperId = id ?? internalId;\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string>(defaultValue ?? \"\");\n const current = isControlled ? (value ?? \"\") : internal;\n const cells = Array.from({ length }, (_, index) => current[index] ?? \"\");\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\n const pattern = type === \"numeric\" ? NUMERIC : ALNUM;\n\n useEffect(() => {\n if (autoFocus) inputsRef.current[0]?.focus();\n }, [autoFocus]);\n\n const update = (next: string): void => {\n const trimmed = next.slice(0, length);\n if (!isControlled) setInternal(trimmed);\n onChange?.(trimmed);\n if (trimmed.length === length) onComplete?.(trimmed);\n };\n\n const focusCell = (index: number): void => {\n const safe = Math.max(0, Math.min(length - 1, index));\n inputsRef.current[safe]?.focus();\n inputsRef.current[safe]?.select();\n };\n\n const onCellChange = (index: number) => (event: ChangeEvent<HTMLInputElement>) => {\n const char = event.target.value.slice(-1);\n if (char && !pattern.test(char)) return;\n const next = cells.slice();\n next[index] = char;\n update(next.join(\"\"));\n if (char) focusCell(index + 1);\n };\n\n const onCellKeyDown = (index: number) => (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Backspace\") {\n if (!cells[index] && index > 0) {\n event.preventDefault();\n const next = cells.slice();\n next[index - 1] = \"\";\n update(next.join(\"\"));\n focusCell(index - 1);\n }\n } else if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n focusCell(index - 1);\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n focusCell(index + 1);\n }\n };\n\n const onPaste = (event: ClipboardEvent<HTMLInputElement>): void => {\n const text = event.clipboardData\n .getData(\"text\")\n .split(\"\")\n .filter((c) => pattern.test(c))\n .join(\"\");\n if (!text) return;\n event.preventDefault();\n update(text);\n focusCell(Math.min(length - 1, text.length));\n };\n\n return (\n <div\n ref={ref}\n className={cn(styles.wrapper, error && styles.error, className)}\n id={wrapperId}\n >\n {label && <label className={styles.label}>{label}</label>}\n <div className={cn(styles.cells, styles[size])} role=\"group\" aria-label={label}>\n {cells.map((cell, index) => (\n <input\n key={index}\n ref={(node) => {\n inputsRef.current[index] = node;\n }}\n type={masked ? \"password\" : \"text\"}\n inputMode={type === \"numeric\" ? \"numeric\" : \"text\"}\n autoComplete={index === 0 ? \"one-time-code\" : \"off\"}\n maxLength={1}\n value={cell}\n disabled={disabled}\n className={styles.cell}\n aria-label={`Dígito ${index + 1}`}\n aria-invalid={!!error}\n onChange={onCellChange(index)}\n onKeyDown={onCellKeyDown(index)}\n onPaste={onPaste}\n />\n ))}\n </div>\n {error ? (\n <span className={styles.errorText}>{error}</span>\n ) : helperText ? (\n <span className={styles.helper}>{helperText}</span>\n ) : null}\n </div>\n );\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PinInput.cjs","names":["forwardRef","useId","useState","useRef","cn","styles","require_cn","require_PinInput_module","react","react_jsx_runtime","NUMERIC","ALNUM","PinInput","internalId","wrapperId","id","isControlled","value","internal","setInternal","defaultValue","current","cells","index","inputsRef","pattern","type","autoFocus","update","trimmed","next","length","onChange","onComplete","focusCell","safe","onCellChange","char","event","onCellKeyDown","onPaste","text","c","error","className","label","size","node","masked","cell","helperText"],"sources":["../../../src/components/PinInput/PinInput.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count, function-lines — one input per digit, so length,\n * type, masked and autoFocus shape the boxes while\n * value/defaultValue/onChange/onComplete drive them as a single value. The body owns\n * the per-box refs, paste distribution and backspace traversal, which only make\n * sense with the whole array in scope.\n */\nimport { forwardRef, useEffect, useId, useRef, useState } from \"react\";\nimport type { ChangeEvent, ClipboardEvent, KeyboardEvent } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./PinInput.module.css\";\n\nexport type PinInputType = \"numeric\" | \"alphanumeric\";\nexport type PinInputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface PinInputProps {\n /** Number of cells. Default `6`. */\n length?: number;\n /** Allowed character set. `numeric` (default) rejects letters, `alphanumeric` allows both. */\n type?: PinInputType;\n /** Visual size. Default `\"md\"`. */\n size?: PinInputSize;\n /** Controlled value. */\n value?: string;\n /** Initial value (uncontrolled mode). */\n defaultValue?: string;\n /** Fires on every change with the current concatenated value. */\n onChange?: (value: string) => void;\n /** Fires when the user fills the last cell. */\n onComplete?: (value: string) => void;\n /** Show characters obscured (`*`). Default `false`. */\n masked?: boolean;\n /** Label rendered above the cells. */\n label?: string;\n /** Helper text below the cells. */\n helperText?: string;\n /** Error message — turns cells red and replaces helperText. */\n error?: string;\n /** Disable all cells. */\n disabled?: boolean;\n /** Auto-focus the first cell on mount. Default `false`. */\n autoFocus?: boolean;\n /** id for the wrapping group label association. */\n id?: string;\n className?: string;\n}\n\nconst NUMERIC = /[0-9]/;\nconst ALNUM = /[A-Za-z0-9]/;\n\n/**\n * One-time-password style input — N independent cells, paste support, auto-\n * advance on input, backspace flows back, arrow keys navigate.\n *\n * @example\n * <PinInput length={6} type=\"numeric\" onComplete={(otp) => verify(otp)} />\n */\nexport const PinInput = forwardRef<HTMLDivElement, PinInputProps>(function PinInput(\n {\n length = 6,\n type = \"numeric\",\n size = \"md\",\n value,\n defaultValue,\n onChange,\n onComplete,\n masked = false,\n label,\n helperText,\n error,\n disabled = false,\n autoFocus = false,\n id,\n className,\n },\n ref,\n) {\n const internalId = useId();\n const wrapperId = id ?? internalId;\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string>(defaultValue ?? \"\");\n const current = isControlled ? (value ?? \"\") : internal;\n const cells = Array.from({ length }, (_, index) => current[index] ?? \"\");\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\n const pattern = type === \"numeric\" ? NUMERIC : ALNUM;\n\n useEffect(() => {\n if (autoFocus) inputsRef.current[0]?.focus();\n }, [autoFocus]);\n\n const update = (next: string): void => {\n const trimmed = next.slice(0, length);\n if (!isControlled) setInternal(trimmed);\n onChange?.(trimmed);\n if (trimmed.length === length) onComplete?.(trimmed);\n };\n\n const focusCell = (index: number): void => {\n const safe = Math.max(0, Math.min(length - 1, index));\n inputsRef.current[safe]?.focus();\n inputsRef.current[safe]?.select();\n };\n\n const onCellChange = (index: number) => (event: ChangeEvent<HTMLInputElement>) => {\n const char = event.target.value.slice(-1);\n if (char && !pattern.test(char)) return;\n const next = cells.slice();\n next[index] = char;\n update(next.join(\"\"));\n if (char) focusCell(index + 1);\n };\n\n const onCellKeyDown = (index: number) => (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Backspace\") {\n if (!cells[index] && index > 0) {\n event.preventDefault();\n const next = cells.slice();\n next[index - 1] = \"\";\n update(next.join(\"\"));\n focusCell(index - 1);\n }\n } else if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n focusCell(index - 1);\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n focusCell(index + 1);\n }\n };\n\n const onPaste = (event: ClipboardEvent<HTMLInputElement>): void => {\n const text = event.clipboardData\n .getData(\"text\")\n .split(\"\")\n .filter((c) => pattern.test(c))\n .join(\"\");\n if (!text) return;\n event.preventDefault();\n update(text);\n focusCell(Math.min(length - 1, text.length));\n };\n\n return (\n <div\n ref={ref}\n className={cn(styles.wrapper, error && styles.error, className)}\n id={wrapperId}\n >\n {label && <label className={styles.label}>{label}</label>}\n <div className={cn(styles.cells, styles[size])} role=\"group\" aria-label={label}>\n {cells.map((cell, index) => (\n <input\n key={index}\n ref={(node) => {\n inputsRef.current[index] = node;\n }}\n type={masked ? \"password\" : \"text\"}\n inputMode={type === \"numeric\" ? \"numeric\" : \"text\"}\n autoComplete={index === 0 ? \"one-time-code\" : \"off\"}\n maxLength={1}\n value={cell}\n disabled={disabled}\n className={styles.cell}\n aria-label={`Dígito ${index + 1}`}\n aria-invalid={!!error}\n onChange={onCellChange(index)}\n onKeyDown={onCellKeyDown(index)}\n onPaste={onPaste}\n />\n ))}\n </div>\n {error ? (\n <span className={styles.errorText}>{error}</span>\n ) : helperText ? (\n <span className={styles.helper}>{helperText}</span>\n ) : null}\n </div>\n );\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinInput.js","names":[],"sources":["../../../src/components/PinInput/PinInput.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count, function-lines — one input per digit, so length,\n * type, masked and autoFocus shape the boxes while\n * value/defaultValue/onChange/onComplete drive them as a single value. The body owns\n * the per-box refs, paste distribution and backspace traversal, which only make\n * sense with the whole array in scope.\n */\nimport { forwardRef, useEffect, useId, useRef, useState } from \"react\";\nimport type { ChangeEvent, ClipboardEvent, KeyboardEvent } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./PinInput.module.css\";\n\nexport type PinInputType = \"numeric\" | \"alphanumeric\";\nexport type PinInputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface PinInputProps {\n /** Number of cells. Default `6`. */\n length?: number;\n /** Allowed character set. `numeric` (default) rejects letters, `alphanumeric` allows both. */\n type?: PinInputType;\n /** Visual size. Default `\"md\"`. */\n size?: PinInputSize;\n /** Controlled value. */\n value?: string;\n /** Initial value (uncontrolled mode). */\n defaultValue?: string;\n /** Fires on every change with the current concatenated value. */\n onChange?: (value: string) => void;\n /** Fires when the user fills the last cell. */\n onComplete?: (value: string) => void;\n /** Show characters obscured (`*`). Default `false`. */\n masked?: boolean;\n /** Label rendered above the cells. */\n label?: string;\n /** Helper text below the cells. */\n helperText?: string;\n /** Error message — turns cells red and replaces helperText. */\n error?: string;\n /** Disable all cells. */\n disabled?: boolean;\n /** Auto-focus the first cell on mount. Default `false`. */\n autoFocus?: boolean;\n /** id for the wrapping group label association. */\n id?: string;\n className?: string;\n}\n\nconst NUMERIC = /[0-9]/;\nconst ALNUM = /[A-Za-z0-9]/;\n\n/**\n * One-time-password style input — N independent cells, paste support, auto-\n * advance on input, backspace flows back, arrow keys navigate.\n *\n * @example\n * <PinInput length={6} type=\"numeric\" onComplete={(otp) => verify(otp)} />\n */\nexport const PinInput = forwardRef<HTMLDivElement, PinInputProps>(function PinInput(\n {\n length = 6,\n type = \"numeric\",\n size = \"md\",\n value,\n defaultValue,\n onChange,\n onComplete,\n masked = false,\n label,\n helperText,\n error,\n disabled = false,\n autoFocus = false,\n id,\n className,\n },\n ref,\n) {\n const internalId = useId();\n const wrapperId = id ?? internalId;\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string>(defaultValue ?? \"\");\n const current = isControlled ? (value ?? \"\") : internal;\n const cells = Array.from({ length }, (_, index) => current[index] ?? \"\");\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\n const pattern = type === \"numeric\" ? NUMERIC : ALNUM;\n\n useEffect(() => {\n if (autoFocus) inputsRef.current[0]?.focus();\n }, [autoFocus]);\n\n const update = (next: string): void => {\n const trimmed = next.slice(0, length);\n if (!isControlled) setInternal(trimmed);\n onChange?.(trimmed);\n if (trimmed.length === length) onComplete?.(trimmed);\n };\n\n const focusCell = (index: number): void => {\n const safe = Math.max(0, Math.min(length - 1, index));\n inputsRef.current[safe]?.focus();\n inputsRef.current[safe]?.select();\n };\n\n const onCellChange = (index: number) => (event: ChangeEvent<HTMLInputElement>) => {\n const char = event.target.value.slice(-1);\n if (char && !pattern.test(char)) return;\n const next = cells.slice();\n next[index] = char;\n update(next.join(\"\"));\n if (char) focusCell(index + 1);\n };\n\n const onCellKeyDown = (index: number) => (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Backspace\") {\n if (!cells[index] && index > 0) {\n event.preventDefault();\n const next = cells.slice();\n next[index - 1] = \"\";\n update(next.join(\"\"));\n focusCell(index - 1);\n }\n } else if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n focusCell(index - 1);\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n focusCell(index + 1);\n }\n };\n\n const onPaste = (event: ClipboardEvent<HTMLInputElement>): void => {\n const text = event.clipboardData\n .getData(\"text\")\n .split(\"\")\n .filter((c) => pattern.test(c))\n .join(\"\");\n if (!text) return;\n event.preventDefault();\n update(text);\n focusCell(Math.min(length - 1, text.length));\n };\n\n return (\n <div\n ref={ref}\n className={cn(styles.wrapper, error && styles.error, className)}\n id={wrapperId}\n >\n {label && <label className={styles.label}>{label}</label>}\n <div className={cn(styles.cells, styles[size])} role=\"group\" aria-label={label}>\n {cells.map((cell, index) => (\n <input\n key={index}\n ref={(node) => {\n inputsRef.current[index] = node;\n }}\n type={masked ? \"password\" : \"text\"}\n inputMode={type === \"numeric\" ? \"numeric\" : \"text\"}\n autoComplete={index === 0 ? \"one-time-code\" : \"off\"}\n maxLength={1}\n value={cell}\n disabled={disabled}\n className={styles.cell}\n aria-label={`Dígito ${index + 1}`}\n aria-invalid={!!error}\n onChange={onCellChange(index)}\n onKeyDown={onCellKeyDown(index)}\n onPaste={onPaste}\n />\n ))}\n </div>\n {error ? (\n <span className={styles.errorText}>{error}</span>\n ) : helperText ? (\n <span className={styles.helper}>{helperText}</span>\n ) : null}\n </div>\n );\n});\n"],"mappings":";;;;;AA+CA,
|
|
1
|
+
{"version":3,"file":"PinInput.js","names":["styles","PinInput_module_default","NUMERIC","ALNUM","PinInput","forwardRef","internalId","useId","wrapperId","id","isControlled","value","internal","setInternal","useState","defaultValue","current","cells","index","inputsRef","useRef","pattern","type","autoFocus","update","trimmed","next","length","onChange","onComplete","focusCell","safe","onCellChange","char","event","onCellKeyDown","onPaste","text","c","cn","error","className","label","size","node","masked","cell","helperText"],"sources":["../../../src/components/PinInput/PinInput.tsx"],"sourcesContent":["/**\n * @tempest-limits props-count, function-lines — one input per digit, so length,\n * type, masked and autoFocus shape the boxes while\n * value/defaultValue/onChange/onComplete drive them as a single value. The body owns\n * the per-box refs, paste distribution and backspace traversal, which only make\n * sense with the whole array in scope.\n */\nimport { forwardRef, useEffect, useId, useRef, useState } from \"react\";\nimport type { ChangeEvent, ClipboardEvent, KeyboardEvent } from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport styles from \"./PinInput.module.css\";\n\nexport type PinInputType = \"numeric\" | \"alphanumeric\";\nexport type PinInputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface PinInputProps {\n /** Number of cells. Default `6`. */\n length?: number;\n /** Allowed character set. `numeric` (default) rejects letters, `alphanumeric` allows both. */\n type?: PinInputType;\n /** Visual size. Default `\"md\"`. */\n size?: PinInputSize;\n /** Controlled value. */\n value?: string;\n /** Initial value (uncontrolled mode). */\n defaultValue?: string;\n /** Fires on every change with the current concatenated value. */\n onChange?: (value: string) => void;\n /** Fires when the user fills the last cell. */\n onComplete?: (value: string) => void;\n /** Show characters obscured (`*`). Default `false`. */\n masked?: boolean;\n /** Label rendered above the cells. */\n label?: string;\n /** Helper text below the cells. */\n helperText?: string;\n /** Error message — turns cells red and replaces helperText. */\n error?: string;\n /** Disable all cells. */\n disabled?: boolean;\n /** Auto-focus the first cell on mount. Default `false`. */\n autoFocus?: boolean;\n /** id for the wrapping group label association. */\n id?: string;\n className?: string;\n}\n\nconst NUMERIC = /[0-9]/;\nconst ALNUM = /[A-Za-z0-9]/;\n\n/**\n * One-time-password style input — N independent cells, paste support, auto-\n * advance on input, backspace flows back, arrow keys navigate.\n *\n * @example\n * <PinInput length={6} type=\"numeric\" onComplete={(otp) => verify(otp)} />\n */\nexport const PinInput = forwardRef<HTMLDivElement, PinInputProps>(function PinInput(\n {\n length = 6,\n type = \"numeric\",\n size = \"md\",\n value,\n defaultValue,\n onChange,\n onComplete,\n masked = false,\n label,\n helperText,\n error,\n disabled = false,\n autoFocus = false,\n id,\n className,\n },\n ref,\n) {\n const internalId = useId();\n const wrapperId = id ?? internalId;\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string>(defaultValue ?? \"\");\n const current = isControlled ? (value ?? \"\") : internal;\n const cells = Array.from({ length }, (_, index) => current[index] ?? \"\");\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\n const pattern = type === \"numeric\" ? NUMERIC : ALNUM;\n\n useEffect(() => {\n if (autoFocus) inputsRef.current[0]?.focus();\n }, [autoFocus]);\n\n const update = (next: string): void => {\n const trimmed = next.slice(0, length);\n if (!isControlled) setInternal(trimmed);\n onChange?.(trimmed);\n if (trimmed.length === length) onComplete?.(trimmed);\n };\n\n const focusCell = (index: number): void => {\n const safe = Math.max(0, Math.min(length - 1, index));\n inputsRef.current[safe]?.focus();\n inputsRef.current[safe]?.select();\n };\n\n const onCellChange = (index: number) => (event: ChangeEvent<HTMLInputElement>) => {\n const char = event.target.value.slice(-1);\n if (char && !pattern.test(char)) return;\n const next = cells.slice();\n next[index] = char;\n update(next.join(\"\"));\n if (char) focusCell(index + 1);\n };\n\n const onCellKeyDown = (index: number) => (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Backspace\") {\n if (!cells[index] && index > 0) {\n event.preventDefault();\n const next = cells.slice();\n next[index - 1] = \"\";\n update(next.join(\"\"));\n focusCell(index - 1);\n }\n } else if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n focusCell(index - 1);\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n focusCell(index + 1);\n }\n };\n\n const onPaste = (event: ClipboardEvent<HTMLInputElement>): void => {\n const text = event.clipboardData\n .getData(\"text\")\n .split(\"\")\n .filter((c) => pattern.test(c))\n .join(\"\");\n if (!text) return;\n event.preventDefault();\n update(text);\n focusCell(Math.min(length - 1, text.length));\n };\n\n return (\n <div\n ref={ref}\n className={cn(styles.wrapper, error && styles.error, className)}\n id={wrapperId}\n >\n {label && <label className={styles.label}>{label}</label>}\n <div className={cn(styles.cells, styles[size])} role=\"group\" aria-label={label}>\n {cells.map((cell, index) => (\n <input\n key={index}\n ref={(node) => {\n inputsRef.current[index] = node;\n }}\n type={masked ? \"password\" : \"text\"}\n inputMode={type === \"numeric\" ? \"numeric\" : \"text\"}\n autoComplete={index === 0 ? \"one-time-code\" : \"off\"}\n maxLength={1}\n value={cell}\n disabled={disabled}\n className={styles.cell}\n aria-label={`Dígito ${index + 1}`}\n aria-invalid={!!error}\n onChange={onCellChange(index)}\n onKeyDown={onCellKeyDown(index)}\n onPaste={onPaste}\n />\n ))}\n </div>\n {error ? (\n <span className={styles.errorText}>{error}</span>\n ) : helperText ? (\n <span className={styles.helper}>{helperText}</span>\n ) : null}\n </div>\n );\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinInput.module.cjs","names":[],"sources":["../../../src/components/PinInput/PinInput.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n font-family: var(--tempest-font-sans);\n}\n\n.label {\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n color: var(--tempest-text);\n}\n\n.cells {\n display: flex;\n gap: var(--tempest-space-2);\n}\n\n.cell {\n flex: 0 0 auto;\n text-align: center;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-mono, var(--tempest-font-sans));\n transition: border-color var(--tempest-duration-fast, 120ms);\n}\n\n.cells.sm .cell {\n width: 32px;\n height: 36px;\n font-size: var(--tempest-text-md);\n}\n\n.cells.md .cell {\n width: 44px;\n height: 52px;\n font-size: var(--tempest-text-lg);\n}\n\n.cells.lg .cell {\n width: 56px;\n height: 64px;\n font-size: var(--tempest-text-xl);\n}\n\n.cell:focus {\n outline: none;\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width, 2px)\n var(--tempest-focus-ring-color, currentColor);\n}\n\n.cell:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.error .cell {\n border-color: var(--tempest-danger-border, var(--tempest-danger));\n}\n\n.helper {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-text-muted);\n}\n\n.errorText {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-danger-fg, var(--tempest-danger));\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"PinInput.module.cjs","names":["wrapper","label","cells","cell","sm","md","lg","error","helper","errorText","PinInput_module_default"],"sources":["../../../src/components/PinInput/PinInput.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n font-family: var(--tempest-font-sans);\n}\n\n.label {\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n color: var(--tempest-text);\n}\n\n.cells {\n display: flex;\n gap: var(--tempest-space-2);\n}\n\n.cell {\n flex: 0 0 auto;\n text-align: center;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-mono, var(--tempest-font-sans));\n transition: border-color var(--tempest-duration-fast, 120ms);\n}\n\n.cells.sm .cell {\n width: 32px;\n height: 36px;\n font-size: var(--tempest-text-md);\n}\n\n.cells.md .cell {\n width: 44px;\n height: 52px;\n font-size: var(--tempest-text-lg);\n}\n\n.cells.lg .cell {\n width: 56px;\n height: 64px;\n font-size: var(--tempest-text-xl);\n}\n\n.cell:focus {\n outline: none;\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width, 2px)\n var(--tempest-focus-ring-color, currentColor);\n}\n\n.cell:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.error .cell {\n border-color: var(--tempest-danger-border, var(--tempest-danger));\n}\n\n.helper {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-text-muted);\n}\n\n.errorText {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-danger-fg, var(--tempest-danger));\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinInput.module.js","names":[],"sources":["../../../src/components/PinInput/PinInput.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n font-family: var(--tempest-font-sans);\n}\n\n.label {\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n color: var(--tempest-text);\n}\n\n.cells {\n display: flex;\n gap: var(--tempest-space-2);\n}\n\n.cell {\n flex: 0 0 auto;\n text-align: center;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-mono, var(--tempest-font-sans));\n transition: border-color var(--tempest-duration-fast, 120ms);\n}\n\n.cells.sm .cell {\n width: 32px;\n height: 36px;\n font-size: var(--tempest-text-md);\n}\n\n.cells.md .cell {\n width: 44px;\n height: 52px;\n font-size: var(--tempest-text-lg);\n}\n\n.cells.lg .cell {\n width: 56px;\n height: 64px;\n font-size: var(--tempest-text-xl);\n}\n\n.cell:focus {\n outline: none;\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width, 2px)\n var(--tempest-focus-ring-color, currentColor);\n}\n\n.cell:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.error .cell {\n border-color: var(--tempest-danger-border, var(--tempest-danger));\n}\n\n.helper {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-text-muted);\n}\n\n.errorText {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-danger-fg, var(--tempest-danger));\n}\n"],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"PinInput.module.js","names":["wrapper","label","cells","cell","sm","md","lg","error","helper","errorText","PinInput_module_default"],"sources":["../../../src/components/PinInput/PinInput.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n font-family: var(--tempest-font-sans);\n}\n\n.label {\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-medium);\n color: var(--tempest-text);\n}\n\n.cells {\n display: flex;\n gap: var(--tempest-space-2);\n}\n\n.cell {\n flex: 0 0 auto;\n text-align: center;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-mono, var(--tempest-font-sans));\n transition: border-color var(--tempest-duration-fast, 120ms);\n}\n\n.cells.sm .cell {\n width: 32px;\n height: 36px;\n font-size: var(--tempest-text-md);\n}\n\n.cells.md .cell {\n width: 44px;\n height: 52px;\n font-size: var(--tempest-text-lg);\n}\n\n.cells.lg .cell {\n width: 56px;\n height: 64px;\n font-size: var(--tempest-text-xl);\n}\n\n.cell:focus {\n outline: none;\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width, 2px)\n var(--tempest-focus-ring-color, currentColor);\n}\n\n.cell:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.error .cell {\n border-color: var(--tempest-danger-border, var(--tempest-danger));\n}\n\n.helper {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-text-muted);\n}\n\n.errorText {\n font-size: var(--tempest-text-xs);\n color: var(--tempest-danger-fg, var(--tempest-danger));\n}\n"],"mappings":";"}
|