tempest-react-sdk 0.21.0 → 0.23.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 +67 -64
- package/dist/access/Can.cjs +2 -0
- package/dist/access/Can.cjs.map +1 -0
- package/dist/access/Can.js +10 -0
- package/dist/access/Can.js.map +1 -0
- package/dist/access/access-control-context.cjs +2 -0
- package/dist/access/access-control-context.cjs.map +1 -0
- package/dist/access/access-control-context.js +14 -0
- package/dist/access/access-control-context.js.map +1 -0
- package/dist/access/create-role-access-control.cjs +2 -0
- package/dist/access/create-role-access-control.cjs.map +1 -0
- package/dist/access/create-role-access-control.js +19 -0
- package/dist/access/create-role-access-control.js.map +1 -0
- package/dist/access/permissions-from-token.cjs +2 -0
- package/dist/access/permissions-from-token.cjs.map +1 -0
- package/dist/access/permissions-from-token.js +21 -0
- package/dist/access/permissions-from-token.js.map +1 -0
- package/dist/access/use-can.cjs +2 -0
- package/dist/access/use-can.cjs.map +1 -0
- package/dist/access/use-can.js +34 -0
- package/dist/access/use-can.js.map +1 -0
- package/dist/app/AppProviders.cjs +2 -0
- package/dist/app/AppProviders.cjs.map +1 -0
- package/dist/app/AppProviders.js +13 -0
- package/dist/app/AppProviders.js.map +1 -0
- package/dist/audio/audio-player.cjs +2 -0
- package/dist/audio/audio-player.cjs.map +1 -0
- package/dist/audio/audio-player.js +39 -0
- package/dist/audio/audio-player.js.map +1 -0
- package/dist/audio/use-audio.cjs +2 -0
- package/dist/audio/use-audio.cjs.map +1 -0
- package/dist/audio/use-audio.js +18 -0
- package/dist/audio/use-audio.js.map +1 -0
- package/dist/auth/AuthGuard.cjs +2 -0
- package/dist/auth/AuthGuard.cjs.map +1 -0
- package/dist/auth/AuthGuard.js +8 -0
- package/dist/auth/AuthGuard.js.map +1 -0
- package/dist/auth/create-auth-store.cjs +2 -0
- package/dist/auth/create-auth-store.cjs.map +1 -0
- package/dist/auth/create-auth-store.js +30 -0
- package/dist/auth/create-auth-store.js.map +1 -0
- package/dist/auth/create-tempest-auth.cjs +2 -0
- package/dist/auth/create-tempest-auth.cjs.map +1 -0
- package/dist/auth/create-tempest-auth.js +70 -0
- package/dist/auth/create-tempest-auth.js.map +1 -0
- package/dist/auth/jwt.cjs +2 -0
- package/dist/auth/jwt.cjs.map +1 -0
- package/dist/auth/jwt.js +33 -0
- package/dist/auth/jwt.js.map +1 -0
- package/dist/auth/lazy-with-retry.cjs +2 -0
- package/dist/auth/lazy-with-retry.cjs.map +1 -0
- package/dist/auth/lazy-with-retry.js +18 -0
- package/dist/auth/lazy-with-retry.js.map +1 -0
- package/dist/auth/refresh-queue.cjs +2 -0
- package/dist/auth/refresh-queue.cjs.map +1 -0
- package/dist/auth/refresh-queue.js +14 -0
- package/dist/auth/refresh-queue.js.map +1 -0
- package/dist/br/BrazilMap.cjs +2 -0
- package/dist/br/BrazilMap.cjs.map +1 -0
- package/dist/br/BrazilMap.js +195 -0
- package/dist/br/BrazilMap.js.map +1 -0
- package/dist/br/BrazilMap.module.css.cjs +2 -0
- package/dist/br/BrazilMap.module.css.cjs.map +1 -0
- package/dist/br/BrazilMap.module.css.js +28 -0
- package/dist/br/BrazilMap.module.css.js.map +1 -0
- package/dist/br/BrazilStateCitySelect.cjs +2 -0
- package/dist/br/BrazilStateCitySelect.cjs.map +1 -0
- package/dist/br/BrazilStateCitySelect.js +69 -0
- package/dist/br/BrazilStateCitySelect.js.map +1 -0
- package/dist/br/BrazilStateMap.cjs +2 -0
- package/dist/br/BrazilStateMap.cjs.map +1 -0
- package/dist/br/BrazilStateMap.js +181 -0
- package/dist/br/BrazilStateMap.js.map +1 -0
- package/dist/br/MapLegend.cjs +2 -0
- package/dist/br/MapLegend.cjs.map +1 -0
- package/dist/br/MapLegend.js +39 -0
- package/dist/br/MapLegend.js.map +1 -0
- package/dist/br/MapLegend.module.css.cjs +2 -0
- package/dist/br/MapLegend.module.css.cjs.map +1 -0
- package/dist/br/MapLegend.module.css.js +22 -0
- package/dist/br/MapLegend.module.css.js.map +1 -0
- package/dist/br/MapMarkers.cjs +2 -0
- package/dist/br/MapMarkers.cjs.map +1 -0
- package/dist/br/MapMarkers.js +31 -0
- package/dist/br/MapMarkers.js.map +1 -0
- package/dist/br/MapTooltip.cjs +2 -0
- package/dist/br/MapTooltip.cjs.map +1 -0
- package/dist/br/MapTooltip.js +19 -0
- package/dist/br/MapTooltip.js.map +1 -0
- package/dist/br/MunicipalitySearch.cjs +2 -0
- package/dist/br/MunicipalitySearch.cjs.map +1 -0
- package/dist/br/MunicipalitySearch.js +75 -0
- package/dist/br/MunicipalitySearch.js.map +1 -0
- package/dist/br/MunicipalitySearch.module.css.cjs +2 -0
- package/dist/br/MunicipalitySearch.module.css.cjs.map +1 -0
- package/dist/br/MunicipalitySearch.module.css.js +14 -0
- package/dist/br/MunicipalitySearch.module.css.js.map +1 -0
- package/dist/br/br-geo.cjs +2 -0
- package/dist/br/br-geo.cjs.map +1 -0
- package/dist/br/br-geo.js +6 -0
- package/dist/br/br-geo.js.map +1 -0
- package/dist/br/data/br-centroids.json.cjs +2 -0
- package/dist/br/data/br-centroids.json.cjs.map +1 -0
- package/dist/br/data/br-centroids.json.js +10 -0
- package/dist/br/data/br-centroids.json.js.map +1 -0
- package/dist/br/data/br-locations.json.cjs +2 -0
- package/dist/br/data/br-locations.json.cjs.map +1 -0
- package/dist/br/data/br-locations.json.js +8 -0
- package/dist/br/data/br-locations.json.js.map +1 -0
- package/dist/br/data/br-uf-geo.json.cjs +2 -0
- package/dist/br/data/br-uf-geo.json.cjs.map +1 -0
- package/dist/br/data/br-uf-geo.json.js +10 -0
- package/dist/br/data/br-uf-geo.json.js.map +1 -0
- package/dist/br/data/mun/AC.json.cjs +2 -0
- package/dist/br/data/mun/AC.json.cjs.map +1 -0
- package/dist/br/data/mun/AC.json.js +12 -0
- package/dist/br/data/mun/AC.json.js.map +1 -0
- package/dist/br/data/mun/AL.json.cjs +2 -0
- package/dist/br/data/mun/AL.json.cjs.map +1 -0
- package/dist/br/data/mun/AL.json.js +12 -0
- package/dist/br/data/mun/AL.json.js.map +1 -0
- package/dist/br/data/mun/AM.json.cjs +2 -0
- package/dist/br/data/mun/AM.json.cjs.map +1 -0
- package/dist/br/data/mun/AM.json.js +12 -0
- package/dist/br/data/mun/AM.json.js.map +1 -0
- package/dist/br/data/mun/AP.json.cjs +2 -0
- package/dist/br/data/mun/AP.json.cjs.map +1 -0
- package/dist/br/data/mun/AP.json.js +12 -0
- package/dist/br/data/mun/AP.json.js.map +1 -0
- package/dist/br/data/mun/BA.json.cjs +2 -0
- package/dist/br/data/mun/BA.json.cjs.map +1 -0
- package/dist/br/data/mun/BA.json.js +12 -0
- package/dist/br/data/mun/BA.json.js.map +1 -0
- package/dist/br/data/mun/CE.json.cjs +2 -0
- package/dist/br/data/mun/CE.json.cjs.map +1 -0
- package/dist/br/data/mun/CE.json.js +12 -0
- package/dist/br/data/mun/CE.json.js.map +1 -0
- package/dist/br/data/mun/DF.json.cjs +2 -0
- package/dist/br/data/mun/DF.json.cjs.map +1 -0
- package/dist/br/data/mun/DF.json.js +12 -0
- package/dist/br/data/mun/DF.json.js.map +1 -0
- package/dist/br/data/mun/ES.json.cjs +2 -0
- package/dist/br/data/mun/ES.json.cjs.map +1 -0
- package/dist/br/data/mun/ES.json.js +12 -0
- package/dist/br/data/mun/ES.json.js.map +1 -0
- package/dist/br/data/mun/GO.json.cjs +2 -0
- package/dist/br/data/mun/GO.json.cjs.map +1 -0
- package/dist/br/data/mun/GO.json.js +12 -0
- package/dist/br/data/mun/GO.json.js.map +1 -0
- package/dist/br/data/mun/MA.json.cjs +2 -0
- package/dist/br/data/mun/MA.json.cjs.map +1 -0
- package/dist/br/data/mun/MA.json.js +12 -0
- package/dist/br/data/mun/MA.json.js.map +1 -0
- package/dist/br/data/mun/MG.json.cjs +2 -0
- package/dist/br/data/mun/MG.json.cjs.map +1 -0
- package/dist/br/data/mun/MG.json.js +12 -0
- package/dist/br/data/mun/MG.json.js.map +1 -0
- package/dist/br/data/mun/MS.json.cjs +2 -0
- package/dist/br/data/mun/MS.json.cjs.map +1 -0
- package/dist/br/data/mun/MS.json.js +12 -0
- package/dist/br/data/mun/MS.json.js.map +1 -0
- package/dist/br/data/mun/MT.json.cjs +2 -0
- package/dist/br/data/mun/MT.json.cjs.map +1 -0
- package/dist/br/data/mun/MT.json.js +12 -0
- package/dist/br/data/mun/MT.json.js.map +1 -0
- package/dist/br/data/mun/PA.json.cjs +2 -0
- package/dist/br/data/mun/PA.json.cjs.map +1 -0
- package/dist/br/data/mun/PA.json.js +12 -0
- package/dist/br/data/mun/PA.json.js.map +1 -0
- package/dist/br/data/mun/PB.json.cjs +2 -0
- package/dist/br/data/mun/PB.json.cjs.map +1 -0
- package/dist/br/data/mun/PB.json.js +12 -0
- package/dist/br/data/mun/PB.json.js.map +1 -0
- package/dist/br/data/mun/PE.json.cjs +2 -0
- package/dist/br/data/mun/PE.json.cjs.map +1 -0
- package/dist/br/data/mun/PE.json.js +12 -0
- package/dist/br/data/mun/PE.json.js.map +1 -0
- package/dist/br/data/mun/PI.json.cjs +2 -0
- package/dist/br/data/mun/PI.json.cjs.map +1 -0
- package/dist/br/data/mun/PI.json.js +12 -0
- package/dist/br/data/mun/PI.json.js.map +1 -0
- package/dist/br/data/mun/PR.json.cjs +2 -0
- package/dist/br/data/mun/PR.json.cjs.map +1 -0
- package/dist/br/data/mun/PR.json.js +12 -0
- package/dist/br/data/mun/PR.json.js.map +1 -0
- package/dist/br/data/mun/RJ.json.cjs +2 -0
- package/dist/br/data/mun/RJ.json.cjs.map +1 -0
- package/dist/br/data/mun/RJ.json.js +12 -0
- package/dist/br/data/mun/RJ.json.js.map +1 -0
- package/dist/br/data/mun/RN.json.cjs +2 -0
- package/dist/br/data/mun/RN.json.cjs.map +1 -0
- package/dist/br/data/mun/RN.json.js +12 -0
- package/dist/br/data/mun/RN.json.js.map +1 -0
- package/dist/br/data/mun/RO.json.cjs +2 -0
- package/dist/br/data/mun/RO.json.cjs.map +1 -0
- package/dist/br/data/mun/RO.json.js +12 -0
- package/dist/br/data/mun/RO.json.js.map +1 -0
- package/dist/br/data/mun/RR.json.cjs +2 -0
- package/dist/br/data/mun/RR.json.cjs.map +1 -0
- package/dist/br/data/mun/RR.json.js +12 -0
- package/dist/br/data/mun/RR.json.js.map +1 -0
- package/dist/br/data/mun/RS.json.cjs +2 -0
- package/dist/br/data/mun/RS.json.cjs.map +1 -0
- package/dist/br/data/mun/RS.json.js +12 -0
- package/dist/br/data/mun/RS.json.js.map +1 -0
- package/dist/br/data/mun/SC.json.cjs +2 -0
- package/dist/br/data/mun/SC.json.cjs.map +1 -0
- package/dist/br/data/mun/SC.json.js +12 -0
- package/dist/br/data/mun/SC.json.js.map +1 -0
- package/dist/br/data/mun/SE.json.cjs +2 -0
- package/dist/br/data/mun/SE.json.cjs.map +1 -0
- package/dist/br/data/mun/SE.json.js +12 -0
- package/dist/br/data/mun/SE.json.js.map +1 -0
- package/dist/br/data/mun/SP.json.cjs +2 -0
- package/dist/br/data/mun/SP.json.cjs.map +1 -0
- package/dist/br/data/mun/SP.json.js +12 -0
- package/dist/br/data/mun/SP.json.js.map +1 -0
- package/dist/br/data/mun/TO.json.cjs +2 -0
- package/dist/br/data/mun/TO.json.cjs.map +1 -0
- package/dist/br/data/mun/TO.json.js +12 -0
- package/dist/br/data/mun/TO.json.js.map +1 -0
- package/dist/br/geocode.cjs +2 -0
- package/dist/br/geocode.cjs.map +1 -0
- package/dist/br/geocode.js +89 -0
- package/dist/br/geocode.js.map +1 -0
- package/dist/br/locations.cjs +2 -0
- package/dist/br/locations.cjs.map +1 -0
- package/dist/br/locations.js +80 -0
- package/dist/br/locations.js.map +1 -0
- package/dist/br/regions.cjs +2 -0
- package/dist/br/regions.cjs.map +1 -0
- package/dist/br/regions.js +18 -0
- package/dist/br/regions.js.map +1 -0
- package/dist/br/scales.cjs +2 -0
- package/dist/br/scales.cjs.map +1 -0
- package/dist/br/scales.js +65 -0
- package/dist/br/scales.js.map +1 -0
- package/dist/br/state-geo.cjs +2 -0
- package/dist/br/state-geo.cjs.map +1 -0
- package/dist/br/state-geo.js +39 -0
- package/dist/br/state-geo.js.map +1 -0
- package/dist/br/svg-utils.cjs +2 -0
- package/dist/br/svg-utils.cjs.map +1 -0
- package/dist/br/svg-utils.js +46 -0
- package/dist/br/svg-utils.js.map +1 -0
- package/dist/br/use-map-hover.cjs +2 -0
- package/dist/br/use-map-hover.cjs.map +1 -0
- package/dist/br/use-map-hover.js +15 -0
- package/dist/br/use-map-hover.js.map +1 -0
- package/dist/br/use-map-zoom.cjs +2 -0
- package/dist/br/use-map-zoom.cjs.map +1 -0
- package/dist/br/use-map-zoom.js +48 -0
- package/dist/br/use-map-zoom.js.map +1 -0
- package/dist/br.cjs +1 -1
- package/dist/br.cjs.map +1 -1
- package/dist/br.js +46 -945
- package/dist/br.js.map +1 -1
- package/dist/charts/AreaChart.cjs +2 -0
- package/dist/charts/AreaChart.cjs.map +1 -0
- package/dist/charts/AreaChart.js +47 -0
- package/dist/charts/AreaChart.js.map +1 -0
- package/dist/charts/BarChart.cjs +2 -0
- package/dist/charts/BarChart.cjs.map +1 -0
- package/dist/charts/BarChart.js +41 -0
- package/dist/charts/BarChart.js.map +1 -0
- package/dist/charts/LineChart.cjs +2 -0
- package/dist/charts/LineChart.cjs.map +1 -0
- package/dist/charts/LineChart.js +41 -0
- package/dist/charts/LineChart.js.map +1 -0
- package/dist/charts/PieChart.cjs +2 -0
- package/dist/charts/PieChart.cjs.map +1 -0
- package/dist/charts/PieChart.js +39 -0
- package/dist/charts/PieChart.js.map +1 -0
- package/dist/charts/RadarChart.cjs +2 -0
- package/dist/charts/RadarChart.cjs.map +1 -0
- package/dist/charts/RadarChart.js +43 -0
- package/dist/charts/RadarChart.js.map +1 -0
- package/dist/charts/palette.cjs +2 -0
- package/dist/charts/palette.cjs.map +1 -0
- package/dist/charts/palette.js +18 -0
- package/dist/charts/palette.js.map +1 -0
- package/dist/charts/types.cjs +2 -0
- package/dist/charts/types.cjs.map +1 -0
- package/dist/charts/types.js +8 -0
- package/dist/charts/types.js.map +1 -0
- package/dist/charts.cjs +1 -1
- package/dist/charts.cjs.map +1 -1
- package/dist/charts.js +12 -193
- package/dist/charts.js.map +1 -1
- package/dist/components/Accordion/Accordion.cjs +2 -0
- package/dist/components/Accordion/Accordion.cjs.map +1 -0
- package/dist/components/Accordion/Accordion.js +78 -0
- package/dist/components/Accordion/Accordion.js.map +1 -0
- package/dist/components/Accordion/Accordion.module.css.cjs +2 -0
- package/dist/components/Accordion/Accordion.module.css.cjs.map +1 -0
- package/dist/components/Accordion/Accordion.module.css.js +20 -0
- package/dist/components/Accordion/Accordion.module.css.js.map +1 -0
- package/dist/components/Alert/Alert.cjs +2 -0
- package/dist/components/Alert/Alert.cjs.map +1 -0
- package/dist/components/Alert/Alert.js +63 -0
- package/dist/components/Alert/Alert.js.map +1 -0
- package/dist/components/Alert/Alert.module.css.cjs +2 -0
- package/dist/components/Alert/Alert.module.css.cjs.map +1 -0
- package/dist/components/Alert/Alert.module.css.js +32 -0
- package/dist/components/Alert/Alert.module.css.js.map +1 -0
- package/dist/components/AppBar/AppBar.cjs +2 -0
- package/dist/components/AppBar/AppBar.cjs.map +1 -0
- package/dist/components/AppBar/AppBar.js +59 -0
- package/dist/components/AppBar/AppBar.js.map +1 -0
- package/dist/components/AppBar/AppBar.module.css.cjs +2 -0
- package/dist/components/AppBar/AppBar.module.css.cjs.map +1 -0
- package/dist/components/AppBar/AppBar.module.css.js +32 -0
- package/dist/components/AppBar/AppBar.module.css.js.map +1 -0
- package/dist/components/AppShell/AppShell.cjs +2 -0
- package/dist/components/AppShell/AppShell.cjs.map +1 -0
- package/dist/components/AppShell/AppShell.js +29 -0
- package/dist/components/AppShell/AppShell.js.map +1 -0
- package/dist/components/AppShell/AppShell.module.css.cjs +2 -0
- package/dist/components/AppShell/AppShell.module.css.cjs.map +1 -0
- package/dist/components/AppShell/AppShell.module.css.js +20 -0
- package/dist/components/AppShell/AppShell.module.css.js.map +1 -0
- package/dist/components/AspectRatio/AspectRatio.cjs +2 -0
- package/dist/components/AspectRatio/AspectRatio.cjs.map +1 -0
- package/dist/components/AspectRatio/AspectRatio.js +17 -0
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -0
- package/dist/components/AspectRatio/AspectRatio.module.css.cjs +2 -0
- package/dist/components/AspectRatio/AspectRatio.module.css.cjs.map +1 -0
- package/dist/components/AspectRatio/AspectRatio.module.css.js +8 -0
- package/dist/components/AspectRatio/AspectRatio.module.css.js.map +1 -0
- package/dist/components/Avatar/Avatar.cjs +2 -0
- package/dist/components/Avatar/Avatar.cjs.map +1 -0
- package/dist/components/Avatar/Avatar.js +47 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/Avatar.module.css.cjs +2 -0
- package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -0
- package/dist/components/Avatar/Avatar.module.css.js +30 -0
- package/dist/components/Avatar/Avatar.module.css.js.map +1 -0
- package/dist/components/Badge/Badge.cjs +2 -0
- package/dist/components/Badge/Badge.cjs.map +1 -0
- package/dist/components/Badge/Badge.js +37 -0
- package/dist/components/Badge/Badge.js.map +1 -0
- package/dist/components/Badge/Badge.module.css.cjs +2 -0
- package/dist/components/Badge/Badge.module.css.cjs.map +1 -0
- package/dist/components/Badge/Badge.module.css.js +34 -0
- package/dist/components/Badge/Badge.module.css.js.map +1 -0
- package/dist/components/Banner/Banner.cjs +2 -0
- package/dist/components/Banner/Banner.cjs.map +1 -0
- package/dist/components/Banner/Banner.js +41 -0
- package/dist/components/Banner/Banner.js.map +1 -0
- package/dist/components/Banner/Banner.module.css.cjs +2 -0
- package/dist/components/Banner/Banner.module.css.cjs.map +1 -0
- package/dist/components/Banner/Banner.module.css.js +28 -0
- package/dist/components/Banner/Banner.module.css.js.map +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.cjs +2 -0
- package/dist/components/BottomNavigation/BottomNavigation.cjs.map +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.js +37 -0
- package/dist/components/BottomNavigation/BottomNavigation.js.map +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.module.css.cjs +2 -0
- package/dist/components/BottomNavigation/BottomNavigation.module.css.cjs.map +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.module.css.js +20 -0
- package/dist/components/BottomNavigation/BottomNavigation.module.css.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.cjs +2 -0
- package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.js +60 -0
- package/dist/components/BottomSheet/BottomSheet.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.module.css.cjs +2 -0
- package/dist/components/BottomSheet/BottomSheet.module.css.cjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.module.css.js +20 -0
- package/dist/components/BottomSheet/BottomSheet.module.css.js.map +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.cjs +2 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.js +34 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.module.css.cjs +2 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.module.css.cjs.map +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.module.css.js +16 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.module.css.js.map +1 -0
- package/dist/components/Button/Button.cjs +2 -0
- package/dist/components/Button/Button.cjs.map +1 -0
- package/dist/components/Button/Button.js +68 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/Button.module.css.cjs +2 -0
- package/dist/components/Button/Button.module.css.cjs.map +1 -0
- package/dist/components/Button/Button.module.css.js +50 -0
- package/dist/components/Button/Button.module.css.js.map +1 -0
- package/dist/components/Calendar/Calendar.cjs +2 -0
- package/dist/components/Calendar/Calendar.cjs.map +1 -0
- package/dist/components/Calendar/Calendar.js +156 -0
- package/dist/components/Calendar/Calendar.js.map +1 -0
- package/dist/components/Calendar/Calendar.module.css.cjs +2 -0
- package/dist/components/Calendar/Calendar.module.css.cjs.map +1 -0
- package/dist/components/Calendar/Calendar.module.css.js +28 -0
- package/dist/components/Calendar/Calendar.module.css.js.map +1 -0
- package/dist/components/Card/Card.cjs +2 -0
- package/dist/components/Card/Card.cjs.map +1 -0
- package/dist/components/Card/Card.js +45 -0
- package/dist/components/Card/Card.js.map +1 -0
- package/dist/components/Card/Card.module.css.cjs +2 -0
- package/dist/components/Card/Card.module.css.cjs.map +1 -0
- package/dist/components/Card/Card.module.css.js +28 -0
- package/dist/components/Card/Card.module.css.js.map +1 -0
- package/dist/components/Carousel/Carousel.cjs +2 -0
- package/dist/components/Carousel/Carousel.cjs.map +1 -0
- package/dist/components/Carousel/Carousel.js +97 -0
- package/dist/components/Carousel/Carousel.js.map +1 -0
- package/dist/components/Carousel/Carousel.module.css.cjs +2 -0
- package/dist/components/Carousel/Carousel.module.css.cjs.map +1 -0
- package/dist/components/Carousel/Carousel.module.css.js +26 -0
- package/dist/components/Carousel/Carousel.module.css.js.map +1 -0
- package/dist/components/Center/Center.cjs +2 -0
- package/dist/components/Center/Center.cjs.map +1 -0
- package/dist/components/Center/Center.js +23 -0
- package/dist/components/Center/Center.js.map +1 -0
- package/dist/components/Center/Center.module.css.cjs +2 -0
- package/dist/components/Center/Center.module.css.cjs.map +1 -0
- package/dist/components/Center/Center.module.css.js +14 -0
- package/dist/components/Center/Center.module.css.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.cjs +2 -0
- package/dist/components/Checkbox/Checkbox.cjs.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +49 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.module.css.cjs +2 -0
- package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -0
- package/dist/components/Checkbox/Checkbox.module.css.js +20 -0
- package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -0
- package/dist/components/ChipInput/ChipInput.cjs +2 -0
- package/dist/components/ChipInput/ChipInput.cjs.map +1 -0
- package/dist/components/ChipInput/ChipInput.js +79 -0
- package/dist/components/ChipInput/ChipInput.js.map +1 -0
- package/dist/components/ChipInput/ChipInput.module.css.cjs +2 -0
- package/dist/components/ChipInput/ChipInput.module.css.cjs.map +1 -0
- package/dist/components/ChipInput/ChipInput.module.css.js +24 -0
- package/dist/components/ChipInput/ChipInput.module.css.js.map +1 -0
- package/dist/components/ClickOutside/ClickOutside.cjs +2 -0
- package/dist/components/ClickOutside/ClickOutside.cjs.map +1 -0
- package/dist/components/ClickOutside/ClickOutside.js +20 -0
- package/dist/components/ClickOutside/ClickOutside.js.map +1 -0
- package/dist/components/Collapsible/Collapsible.cjs +2 -0
- package/dist/components/Collapsible/Collapsible.cjs.map +1 -0
- package/dist/components/Collapsible/Collapsible.js +47 -0
- package/dist/components/Collapsible/Collapsible.js.map +1 -0
- package/dist/components/Collapsible/Collapsible.module.css.cjs +2 -0
- package/dist/components/Collapsible/Collapsible.module.css.cjs.map +1 -0
- package/dist/components/Collapsible/Collapsible.module.css.js +12 -0
- package/dist/components/Collapsible/Collapsible.module.css.js.map +1 -0
- package/dist/components/Combobox/Combobox.cjs +2 -0
- package/dist/components/Combobox/Combobox.cjs.map +1 -0
- package/dist/components/Combobox/Combobox.js +103 -0
- package/dist/components/Combobox/Combobox.js.map +1 -0
- package/dist/components/Combobox/Combobox.module.css.cjs +2 -0
- package/dist/components/Combobox/Combobox.module.css.cjs.map +1 -0
- package/dist/components/Combobox/Combobox.module.css.js +32 -0
- package/dist/components/Combobox/Combobox.module.css.js.map +1 -0
- package/dist/components/Command/Command.cjs +2 -0
- package/dist/components/Command/Command.cjs.map +1 -0
- package/dist/components/Command/Command.js +143 -0
- package/dist/components/Command/Command.js.map +1 -0
- package/dist/components/Command/Command.module.css.cjs +2 -0
- package/dist/components/Command/Command.module.css.cjs.map +1 -0
- package/dist/components/Command/Command.module.css.js +34 -0
- package/dist/components/Command/Command.module.css.js.map +1 -0
- package/dist/components/ConditionalWrapper/ConditionalWrapper.cjs +2 -0
- package/dist/components/ConditionalWrapper/ConditionalWrapper.cjs.map +1 -0
- package/dist/components/ConditionalWrapper/ConditionalWrapper.js +12 -0
- package/dist/components/ConditionalWrapper/ConditionalWrapper.js.map +1 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.cjs +2 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.cjs.map +1 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.js +35 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.js.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.cjs +2 -0
- package/dist/components/ContextMenu/ContextMenu.cjs.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.js +86 -0
- package/dist/components/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.module.css.cjs +2 -0
- package/dist/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.module.css.js +18 -0
- package/dist/components/ContextMenu/ContextMenu.module.css.js.map +1 -0
- package/dist/components/CopyButton/CopyButton.cjs +2 -0
- package/dist/components/CopyButton/CopyButton.cjs.map +1 -0
- package/dist/components/CopyButton/CopyButton.js +43 -0
- package/dist/components/CopyButton/CopyButton.js.map +1 -0
- package/dist/components/CopyButton/CopyButton.module.css.cjs +2 -0
- package/dist/components/CopyButton/CopyButton.module.css.cjs.map +1 -0
- package/dist/components/CopyButton/CopyButton.module.css.js +10 -0
- package/dist/components/CopyButton/CopyButton.module.css.js.map +1 -0
- package/dist/components/DataList/DataList.cjs +2 -0
- package/dist/components/DataList/DataList.cjs.map +1 -0
- package/dist/components/DataList/DataList.js +17 -0
- package/dist/components/DataList/DataList.js.map +1 -0
- package/dist/components/DataList/DataList.module.css.cjs +2 -0
- package/dist/components/DataList/DataList.module.css.cjs.map +1 -0
- package/dist/components/DataList/DataList.module.css.js +10 -0
- package/dist/components/DataList/DataList.module.css.js.map +1 -0
- package/dist/components/DataTable/DataTable.cjs +2 -0
- package/dist/components/DataTable/DataTable.cjs.map +1 -0
- package/dist/components/DataTable/DataTable.js +111 -0
- package/dist/components/DataTable/DataTable.js.map +1 -0
- package/dist/components/DataTable/DataTable.module.css.cjs +2 -0
- package/dist/components/DataTable/DataTable.module.css.cjs.map +1 -0
- package/dist/components/DataTable/DataTable.module.css.js +14 -0
- package/dist/components/DataTable/DataTable.module.css.js.map +1 -0
- package/dist/components/DatePicker/DatePicker.cjs +2 -0
- package/dist/components/DatePicker/DatePicker.cjs.map +1 -0
- package/dist/components/DatePicker/DatePicker.js +19 -0
- package/dist/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.cjs +2 -0
- package/dist/components/DateRangePicker/DateRangePicker.cjs.map +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.js +152 -0
- package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.module.css.cjs +2 -0
- package/dist/components/DateRangePicker/DateRangePicker.module.css.cjs.map +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.module.css.js +40 -0
- package/dist/components/DateRangePicker/DateRangePicker.module.css.js.map +1 -0
- package/dist/components/DescriptionList/DescriptionList.cjs +2 -0
- package/dist/components/DescriptionList/DescriptionList.cjs.map +1 -0
- package/dist/components/DescriptionList/DescriptionList.js +14 -0
- package/dist/components/DescriptionList/DescriptionList.js.map +1 -0
- package/dist/components/DescriptionList/DescriptionList.module.css.cjs +2 -0
- package/dist/components/DescriptionList/DescriptionList.module.css.cjs.map +1 -0
- package/dist/components/DescriptionList/DescriptionList.module.css.js +12 -0
- package/dist/components/DescriptionList/DescriptionList.module.css.js.map +1 -0
- package/dist/components/Divider/Divider.cjs +2 -0
- package/dist/components/Divider/Divider.cjs.map +1 -0
- package/dist/components/Divider/Divider.js +57 -0
- package/dist/components/Divider/Divider.js.map +1 -0
- package/dist/components/Divider/Divider.module.css.cjs +2 -0
- package/dist/components/Divider/Divider.module.css.cjs.map +1 -0
- package/dist/components/Divider/Divider.module.css.js +20 -0
- package/dist/components/Divider/Divider.module.css.js.map +1 -0
- package/dist/components/Drawer/Drawer.cjs +2 -0
- package/dist/components/Drawer/Drawer.cjs.map +1 -0
- package/dist/components/Drawer/Drawer.js +96 -0
- package/dist/components/Drawer/Drawer.js.map +1 -0
- package/dist/components/Drawer/Drawer.module.css.cjs +2 -0
- package/dist/components/Drawer/Drawer.module.css.cjs.map +1 -0
- package/dist/components/Drawer/Drawer.module.css.js +42 -0
- package/dist/components/Drawer/Drawer.module.css.js.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.cjs +2 -0
- package/dist/components/DropdownMenu/DropdownMenu.cjs.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +109 -0
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.module.css.cjs +2 -0
- package/dist/components/DropdownMenu/DropdownMenu.module.css.cjs.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.module.css.js +28 -0
- package/dist/components/DropdownMenu/DropdownMenu.module.css.js.map +1 -0
- package/dist/components/Dropzone/Dropzone.cjs +2 -0
- package/dist/components/Dropzone/Dropzone.cjs.map +1 -0
- package/dist/components/Dropzone/Dropzone.js +80 -0
- package/dist/components/Dropzone/Dropzone.js.map +1 -0
- package/dist/components/Dropzone/Dropzone.module.css.cjs +2 -0
- package/dist/components/Dropzone/Dropzone.module.css.cjs.map +1 -0
- package/dist/components/Dropzone/Dropzone.module.css.js +16 -0
- package/dist/components/Dropzone/Dropzone.module.css.js.map +1 -0
- package/dist/components/EmptyState/EmptyState.cjs +2 -0
- package/dist/components/EmptyState/EmptyState.cjs.map +1 -0
- package/dist/components/EmptyState/EmptyState.js +15 -0
- package/dist/components/EmptyState/EmptyState.js.map +1 -0
- package/dist/components/EmptyState/EmptyState.module.css.cjs +2 -0
- package/dist/components/EmptyState/EmptyState.module.css.cjs.map +1 -0
- package/dist/components/EmptyState/EmptyState.module.css.js +16 -0
- package/dist/components/EmptyState/EmptyState.module.css.js.map +1 -0
- package/dist/components/ErrorState/ErrorState.cjs +2 -0
- package/dist/components/ErrorState/ErrorState.cjs.map +1 -0
- package/dist/components/ErrorState/ErrorState.js +35 -0
- package/dist/components/ErrorState/ErrorState.js.map +1 -0
- package/dist/components/ErrorState/ErrorState.module.css.cjs +2 -0
- package/dist/components/ErrorState/ErrorState.module.css.cjs.map +1 -0
- package/dist/components/ErrorState/ErrorState.module.css.js +16 -0
- package/dist/components/ErrorState/ErrorState.module.css.js.map +1 -0
- package/dist/components/ErrorText/ErrorText.cjs +2 -0
- package/dist/components/ErrorText/ErrorText.cjs.map +1 -0
- package/dist/components/ErrorText/ErrorText.js +10 -0
- package/dist/components/ErrorText/ErrorText.js.map +1 -0
- package/dist/components/ErrorText/ErrorText.module.css.cjs +2 -0
- package/dist/components/ErrorText/ErrorText.module.css.cjs.map +1 -0
- package/dist/components/ErrorText/ErrorText.module.css.js +8 -0
- package/dist/components/ErrorText/ErrorText.module.css.js.map +1 -0
- package/dist/components/FileUpload/FileUpload.cjs +2 -0
- package/dist/components/FileUpload/FileUpload.cjs.map +1 -0
- package/dist/components/FileUpload/FileUpload.js +127 -0
- package/dist/components/FileUpload/FileUpload.js.map +1 -0
- package/dist/components/FileUpload/FileUpload.module.css.cjs +2 -0
- package/dist/components/FileUpload/FileUpload.module.css.cjs.map +1 -0
- package/dist/components/FileUpload/FileUpload.module.css.js +32 -0
- package/dist/components/FileUpload/FileUpload.module.css.js.map +1 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.cjs +2 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.cjs.map +1 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.js +39 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.module.css.cjs +2 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.module.css.cjs.map +1 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.module.css.js +32 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.module.css.js.map +1 -0
- package/dist/components/For/For.cjs +2 -0
- package/dist/components/For/For.cjs.map +1 -0
- package/dist/components/For/For.js +9 -0
- package/dist/components/For/For.js.map +1 -0
- package/dist/components/Form/Form.cjs +2 -0
- package/dist/components/Form/Form.cjs.map +1 -0
- package/dist/components/Form/Form.js +72 -0
- package/dist/components/Form/Form.js.map +1 -0
- package/dist/components/Form/Form.module.css.cjs +2 -0
- package/dist/components/Form/Form.module.css.cjs.map +1 -0
- package/dist/components/Form/Form.module.css.js +36 -0
- package/dist/components/Form/Form.module.css.js.map +1 -0
- package/dist/components/HoverCard/HoverCard.cjs +2 -0
- package/dist/components/HoverCard/HoverCard.cjs.map +1 -0
- package/dist/components/HoverCard/HoverCard.js +48 -0
- package/dist/components/HoverCard/HoverCard.js.map +1 -0
- package/dist/components/HoverCard/HoverCard.module.css.cjs +2 -0
- package/dist/components/HoverCard/HoverCard.module.css.cjs.map +1 -0
- package/dist/components/HoverCard/HoverCard.module.css.js +22 -0
- package/dist/components/HoverCard/HoverCard.module.css.js.map +1 -0
- package/dist/components/Image/Image.cjs +2 -0
- package/dist/components/Image/Image.cjs.map +1 -0
- package/dist/components/Image/Image.js +32 -0
- package/dist/components/Image/Image.js.map +1 -0
- package/dist/components/Image/Image.module.css.cjs +2 -0
- package/dist/components/Image/Image.module.css.cjs.map +1 -0
- package/dist/components/Image/Image.module.css.js +8 -0
- package/dist/components/Image/Image.module.css.js.map +1 -0
- package/dist/components/Input/Input.cjs +2 -0
- package/dist/components/Input/Input.cjs.map +1 -0
- package/dist/components/Input/Input.js +52 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Input/Input.module.css.cjs +2 -0
- package/dist/components/Input/Input.module.css.cjs.map +1 -0
- package/dist/components/Input/Input.module.css.js +36 -0
- package/dist/components/Input/Input.module.css.js.map +1 -0
- package/dist/components/InstallBanner/InstallBanner.cjs +2 -0
- package/dist/components/InstallBanner/InstallBanner.cjs.map +1 -0
- package/dist/components/InstallBanner/InstallBanner.js +66 -0
- package/dist/components/InstallBanner/InstallBanner.js.map +1 -0
- package/dist/components/InstallBanner/InstallBanner.module.css.cjs +2 -0
- package/dist/components/InstallBanner/InstallBanner.module.css.cjs.map +1 -0
- package/dist/components/InstallBanner/InstallBanner.module.css.js +18 -0
- package/dist/components/InstallBanner/InstallBanner.module.css.js.map +1 -0
- package/dist/components/InstallButton/InstallButton.cjs +2 -0
- package/dist/components/InstallButton/InstallButton.cjs.map +1 -0
- package/dist/components/InstallButton/InstallButton.js +20 -0
- package/dist/components/InstallButton/InstallButton.js.map +1 -0
- package/dist/components/Kbd/Kbd.cjs +2 -0
- package/dist/components/Kbd/Kbd.cjs.map +1 -0
- package/dist/components/Kbd/Kbd.js +10 -0
- package/dist/components/Kbd/Kbd.js.map +1 -0
- package/dist/components/Kbd/Kbd.module.css.cjs +2 -0
- package/dist/components/Kbd/Kbd.module.css.cjs.map +1 -0
- package/dist/components/Kbd/Kbd.module.css.js +14 -0
- package/dist/components/Kbd/Kbd.module.css.js.map +1 -0
- package/dist/components/Label/Label.cjs +2 -0
- package/dist/components/Label/Label.cjs.map +1 -0
- package/dist/components/Label/Label.js +14 -0
- package/dist/components/Label/Label.js.map +1 -0
- package/dist/components/Label/Label.module.css.cjs +2 -0
- package/dist/components/Label/Label.module.css.cjs.map +1 -0
- package/dist/components/Label/Label.module.css.js +10 -0
- package/dist/components/Label/Label.module.css.js.map +1 -0
- package/dist/components/Layout/Layout.cjs +2 -0
- package/dist/components/Layout/Layout.cjs.map +1 -0
- package/dist/components/Layout/Layout.js +72 -0
- package/dist/components/Layout/Layout.js.map +1 -0
- package/dist/components/Layout/Layout.module.css.cjs +2 -0
- package/dist/components/Layout/Layout.module.css.cjs.map +1 -0
- package/dist/components/Layout/Layout.module.css.js +44 -0
- package/dist/components/Layout/Layout.module.css.js.map +1 -0
- package/dist/components/ListTile/ListTile.cjs +2 -0
- package/dist/components/ListTile/ListTile.cjs.map +1 -0
- package/dist/components/ListTile/ListTile.js +42 -0
- package/dist/components/ListTile/ListTile.js.map +1 -0
- package/dist/components/ListTile/ListTile.module.css.cjs +2 -0
- package/dist/components/ListTile/ListTile.module.css.cjs.map +1 -0
- package/dist/components/ListTile/ListTile.module.css.js +24 -0
- package/dist/components/ListTile/ListTile.module.css.js.map +1 -0
- package/dist/components/Menubar/Menubar.cjs +2 -0
- package/dist/components/Menubar/Menubar.cjs.map +1 -0
- package/dist/components/Menubar/Menubar.js +84 -0
- package/dist/components/Menubar/Menubar.js.map +1 -0
- package/dist/components/Menubar/Menubar.module.css.cjs +2 -0
- package/dist/components/Menubar/Menubar.module.css.cjs.map +1 -0
- package/dist/components/Menubar/Menubar.module.css.js +24 -0
- package/dist/components/Menubar/Menubar.module.css.js.map +1 -0
- package/dist/components/Modal/Modal.cjs +2 -0
- package/dist/components/Modal/Modal.cjs.map +1 -0
- package/dist/components/Modal/Modal.js +97 -0
- package/dist/components/Modal/Modal.js.map +1 -0
- package/dist/components/Modal/Modal.module.css.cjs +2 -0
- package/dist/components/Modal/Modal.module.css.cjs.map +1 -0
- package/dist/components/Modal/Modal.module.css.js +40 -0
- package/dist/components/Modal/Modal.module.css.js.map +1 -0
- package/dist/components/ModalsManager/ModalsManager.cjs +2 -0
- package/dist/components/ModalsManager/ModalsManager.cjs.map +1 -0
- package/dist/components/ModalsManager/ModalsManager.js +88 -0
- package/dist/components/ModalsManager/ModalsManager.js.map +1 -0
- package/dist/components/ModalsManager/ModalsManager.module.css.cjs +2 -0
- package/dist/components/ModalsManager/ModalsManager.module.css.cjs.map +1 -0
- package/dist/components/ModalsManager/ModalsManager.module.css.js +8 -0
- package/dist/components/ModalsManager/ModalsManager.module.css.js.map +1 -0
- package/dist/components/Money/Money.cjs +2 -0
- package/dist/components/Money/Money.cjs.map +1 -0
- package/dist/components/Money/Money.js +12 -0
- package/dist/components/Money/Money.js.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.cjs +2 -0
- package/dist/components/MultiSelect/MultiSelect.cjs.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.js +155 -0
- package/dist/components/MultiSelect/MultiSelect.js.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.module.css.cjs +2 -0
- package/dist/components/MultiSelect/MultiSelect.module.css.cjs.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.module.css.js +38 -0
- package/dist/components/MultiSelect/MultiSelect.module.css.js.map +1 -0
- package/dist/components/NProgress/NProgress.cjs +2 -0
- package/dist/components/NProgress/NProgress.cjs.map +1 -0
- package/dist/components/NProgress/NProgress.js +66 -0
- package/dist/components/NProgress/NProgress.js.map +1 -0
- package/dist/components/NProgress/NProgress.module.css.cjs +2 -0
- package/dist/components/NProgress/NProgress.module.css.cjs.map +1 -0
- package/dist/components/NProgress/NProgress.module.css.js +8 -0
- package/dist/components/NProgress/NProgress.module.css.js.map +1 -0
- package/dist/components/Navbar/Navbar.cjs +2 -0
- package/dist/components/Navbar/Navbar.cjs.map +1 -0
- package/dist/components/Navbar/Navbar.js +36 -0
- package/dist/components/Navbar/Navbar.js.map +1 -0
- package/dist/components/Navbar/Navbar.module.css.cjs +2 -0
- package/dist/components/Navbar/Navbar.module.css.cjs.map +1 -0
- package/dist/components/Navbar/Navbar.module.css.js +24 -0
- package/dist/components/Navbar/Navbar.module.css.js.map +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.cjs +2 -0
- package/dist/components/NavigationMenu/NavigationMenu.cjs.map +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.js +78 -0
- package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.module.css.cjs +2 -0
- package/dist/components/NavigationMenu/NavigationMenu.module.css.cjs.map +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.module.css.js +20 -0
- package/dist/components/NavigationMenu/NavigationMenu.module.css.js.map +1 -0
- package/dist/components/NavigationRail/NavigationRail.cjs +2 -0
- package/dist/components/NavigationRail/NavigationRail.cjs.map +1 -0
- package/dist/components/NavigationRail/NavigationRail.js +42 -0
- package/dist/components/NavigationRail/NavigationRail.js.map +1 -0
- package/dist/components/NavigationRail/NavigationRail.module.css.cjs +2 -0
- package/dist/components/NavigationRail/NavigationRail.module.css.cjs.map +1 -0
- package/dist/components/NavigationRail/NavigationRail.module.css.js +26 -0
- package/dist/components/NavigationRail/NavigationRail.module.css.js.map +1 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.cjs +2 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.cjs.map +1 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.js +50 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.js.map +1 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.module.css.cjs +2 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.module.css.cjs.map +1 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.module.css.js +18 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.module.css.js.map +1 -0
- package/dist/components/Page/Page.cjs +2 -0
- package/dist/components/Page/Page.cjs.map +1 -0
- package/dist/components/Page/Page.js +34 -0
- package/dist/components/Page/Page.js.map +1 -0
- package/dist/components/Page/Page.module.css.cjs +2 -0
- package/dist/components/Page/Page.module.css.cjs.map +1 -0
- package/dist/components/Page/Page.module.css.js +28 -0
- package/dist/components/Page/Page.module.css.js.map +1 -0
- package/dist/components/Pagination/Pagination.cjs +2 -0
- package/dist/components/Pagination/Pagination.cjs.map +1 -0
- package/dist/components/Pagination/Pagination.js +97 -0
- package/dist/components/Pagination/Pagination.js.map +1 -0
- package/dist/components/Pagination/Pagination.module.css.cjs +2 -0
- package/dist/components/Pagination/Pagination.module.css.cjs.map +1 -0
- package/dist/components/Pagination/Pagination.module.css.js +22 -0
- package/dist/components/Pagination/Pagination.module.css.js.map +1 -0
- package/dist/components/PasswordInput/PasswordInput.cjs +2 -0
- package/dist/components/PasswordInput/PasswordInput.cjs.map +1 -0
- package/dist/components/PasswordInput/PasswordInput.js +76 -0
- package/dist/components/PasswordInput/PasswordInput.js.map +1 -0
- package/dist/components/PasswordInput/PasswordInput.module.css.cjs +2 -0
- package/dist/components/PasswordInput/PasswordInput.module.css.cjs.map +1 -0
- package/dist/components/PasswordInput/PasswordInput.module.css.js +44 -0
- package/dist/components/PasswordInput/PasswordInput.module.css.js.map +1 -0
- package/dist/components/PinInput/PinInput.cjs +2 -0
- package/dist/components/PinInput/PinInput.cjs.map +1 -0
- package/dist/components/PinInput/PinInput.js +86 -0
- package/dist/components/PinInput/PinInput.js.map +1 -0
- package/dist/components/PinInput/PinInput.module.css.cjs +2 -0
- package/dist/components/PinInput/PinInput.module.css.cjs.map +1 -0
- package/dist/components/PinInput/PinInput.module.css.js +26 -0
- package/dist/components/PinInput/PinInput.module.css.js.map +1 -0
- package/dist/components/Popover/Popover.cjs +2 -0
- package/dist/components/Popover/Popover.cjs.map +1 -0
- package/dist/components/Popover/Popover.js +60 -0
- package/dist/components/Popover/Popover.js.map +1 -0
- package/dist/components/Popover/Popover.module.css.cjs +2 -0
- package/dist/components/Popover/Popover.module.css.cjs.map +1 -0
- package/dist/components/Popover/Popover.module.css.js +20 -0
- package/dist/components/Popover/Popover.module.css.js.map +1 -0
- package/dist/components/Portal/Portal.cjs +2 -0
- package/dist/components/Portal/Portal.cjs.map +1 -0
- package/dist/components/Portal/Portal.js +10 -0
- package/dist/components/Portal/Portal.js.map +1 -0
- package/dist/components/Progress/Progress.cjs +2 -0
- package/dist/components/Progress/Progress.cjs.map +1 -0
- package/dist/components/Progress/Progress.js +48 -0
- package/dist/components/Progress/Progress.js.map +1 -0
- package/dist/components/Progress/Progress.module.css.cjs +2 -0
- package/dist/components/Progress/Progress.module.css.cjs.map +1 -0
- package/dist/components/Progress/Progress.module.css.js +24 -0
- package/dist/components/Progress/Progress.module.css.js.map +1 -0
- package/dist/components/Radio/Radio.cjs +2 -0
- package/dist/components/Radio/Radio.cjs.map +1 -0
- package/dist/components/Radio/Radio.js +82 -0
- package/dist/components/Radio/Radio.js.map +1 -0
- package/dist/components/Radio/Radio.module.css.cjs +2 -0
- package/dist/components/Radio/Radio.module.css.cjs.map +1 -0
- package/dist/components/Radio/Radio.module.css.js +24 -0
- package/dist/components/Radio/Radio.module.css.js.map +1 -0
- package/dist/components/RangeSlider/RangeSlider.cjs +2 -0
- package/dist/components/RangeSlider/RangeSlider.cjs.map +1 -0
- package/dist/components/RangeSlider/RangeSlider.js +79 -0
- package/dist/components/RangeSlider/RangeSlider.js.map +1 -0
- package/dist/components/RangeSlider/RangeSlider.module.css.cjs +2 -0
- package/dist/components/RangeSlider/RangeSlider.module.css.cjs.map +1 -0
- package/dist/components/RangeSlider/RangeSlider.module.css.js +22 -0
- package/dist/components/RangeSlider/RangeSlider.module.css.js.map +1 -0
- package/dist/components/RatingStars/RatingStars.cjs +2 -0
- package/dist/components/RatingStars/RatingStars.cjs.map +1 -0
- package/dist/components/RatingStars/RatingStars.js +71 -0
- package/dist/components/RatingStars/RatingStars.js.map +1 -0
- package/dist/components/RatingStars/RatingStars.module.css.cjs +2 -0
- package/dist/components/RatingStars/RatingStars.module.css.cjs.map +1 -0
- package/dist/components/RatingStars/RatingStars.module.css.js +22 -0
- package/dist/components/RatingStars/RatingStars.module.css.js.map +1 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.cjs +2 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.cjs.map +1 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.js +90 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.js.map +1 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.module.css.cjs +2 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.module.css.cjs.map +1 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.module.css.js +14 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.module.css.js.map +1 -0
- package/dist/components/RelativeTime/RelativeTime.cjs +2 -0
- package/dist/components/RelativeTime/RelativeTime.cjs.map +1 -0
- package/dist/components/RelativeTime/RelativeTime.js +10 -0
- package/dist/components/RelativeTime/RelativeTime.js.map +1 -0
- package/dist/components/Resizable/Resizable.cjs +2 -0
- package/dist/components/Resizable/Resizable.cjs.map +1 -0
- package/dist/components/Resizable/Resizable.js +89 -0
- package/dist/components/Resizable/Resizable.js.map +1 -0
- package/dist/components/Resizable/Resizable.module.css.cjs +2 -0
- package/dist/components/Resizable/Resizable.module.css.cjs.map +1 -0
- package/dist/components/Resizable/Resizable.module.css.js +18 -0
- package/dist/components/Resizable/Resizable.module.css.js.map +1 -0
- package/dist/components/Responsive/Responsive.cjs +2 -0
- package/dist/components/Responsive/Responsive.cjs.map +1 -0
- package/dist/components/Responsive/Responsive.js +17 -0
- package/dist/components/Responsive/Responsive.js.map +1 -0
- package/dist/components/SafeArea/SafeArea.cjs +2 -0
- package/dist/components/SafeArea/SafeArea.cjs.map +1 -0
- package/dist/components/SafeArea/SafeArea.js +33 -0
- package/dist/components/SafeArea/SafeArea.js.map +1 -0
- package/dist/components/SafeArea/SafeArea.module.css.cjs +2 -0
- package/dist/components/SafeArea/SafeArea.module.css.cjs.map +1 -0
- package/dist/components/SafeArea/SafeArea.module.css.js +18 -0
- package/dist/components/SafeArea/SafeArea.module.css.js.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.cjs +2 -0
- package/dist/components/ScrollArea/ScrollArea.cjs.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.js +17 -0
- package/dist/components/ScrollArea/ScrollArea.js.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.module.css.cjs +2 -0
- package/dist/components/ScrollArea/ScrollArea.module.css.cjs.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.module.css.js +8 -0
- package/dist/components/ScrollArea/ScrollArea.module.css.js.map +1 -0
- package/dist/components/SearchBar/SearchBar.cjs +2 -0
- package/dist/components/SearchBar/SearchBar.cjs.map +1 -0
- package/dist/components/SearchBar/SearchBar.js +55 -0
- package/dist/components/SearchBar/SearchBar.js.map +1 -0
- package/dist/components/SearchBar/SearchBar.module.css.cjs +2 -0
- package/dist/components/SearchBar/SearchBar.module.css.cjs.map +1 -0
- package/dist/components/SearchBar/SearchBar.module.css.js +14 -0
- package/dist/components/SearchBar/SearchBar.module.css.js.map +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.cjs +2 -0
- package/dist/components/SegmentedControl/SegmentedControl.cjs.map +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.js +46 -0
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.module.css.cjs +2 -0
- package/dist/components/SegmentedControl/SegmentedControl.module.css.cjs.map +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.module.css.js +24 -0
- package/dist/components/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
- package/dist/components/Select/Select.cjs +2 -0
- package/dist/components/Select/Select.cjs.map +1 -0
- package/dist/components/Select/Select.js +61 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/Select.module.css.cjs +2 -0
- package/dist/components/Select/Select.module.css.cjs.map +1 -0
- package/dist/components/Select/Select.module.css.js +24 -0
- package/dist/components/Select/Select.module.css.js.map +1 -0
- package/dist/components/Sidebar/Sidebar.cjs +2 -0
- package/dist/components/Sidebar/Sidebar.cjs.map +1 -0
- package/dist/components/Sidebar/Sidebar.js +54 -0
- package/dist/components/Sidebar/Sidebar.js.map +1 -0
- package/dist/components/Sidebar/Sidebar.module.css.cjs +2 -0
- package/dist/components/Sidebar/Sidebar.module.css.cjs.map +1 -0
- package/dist/components/Sidebar/Sidebar.module.css.js +26 -0
- package/dist/components/Sidebar/Sidebar.module.css.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.cjs +2 -0
- package/dist/components/Skeleton/Skeleton.cjs.map +1 -0
- package/dist/components/Skeleton/Skeleton.js +22 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.module.css.cjs +2 -0
- package/dist/components/Skeleton/Skeleton.module.css.cjs.map +1 -0
- package/dist/components/Skeleton/Skeleton.module.css.js +12 -0
- package/dist/components/Skeleton/Skeleton.module.css.js.map +1 -0
- package/dist/components/Slider/Slider.cjs +2 -0
- package/dist/components/Slider/Slider.cjs.map +1 -0
- package/dist/components/Slider/Slider.js +56 -0
- package/dist/components/Slider/Slider.js.map +1 -0
- package/dist/components/Slider/Slider.module.css.cjs +2 -0
- package/dist/components/Slider/Slider.module.css.cjs.map +1 -0
- package/dist/components/Slider/Slider.module.css.js +22 -0
- package/dist/components/Slider/Slider.module.css.js.map +1 -0
- package/dist/components/Spacer/Spacer.cjs +2 -0
- package/dist/components/Spacer/Spacer.cjs.map +1 -0
- package/dist/components/Spacer/Spacer.js +10 -0
- package/dist/components/Spacer/Spacer.js.map +1 -0
- package/dist/components/Spacer/Spacer.module.css.cjs +2 -0
- package/dist/components/Spacer/Spacer.module.css.cjs.map +1 -0
- package/dist/components/Spacer/Spacer.module.css.js +14 -0
- package/dist/components/Spacer/Spacer.module.css.js.map +1 -0
- package/dist/components/Spinner/Spinner.cjs +2 -0
- package/dist/components/Spinner/Spinner.cjs.map +1 -0
- package/dist/components/Spinner/Spinner.js +36 -0
- package/dist/components/Spinner/Spinner.js.map +1 -0
- package/dist/components/Spinner/Spinner.module.css.cjs +2 -0
- package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -0
- package/dist/components/Spinner/Spinner.module.css.js +26 -0
- package/dist/components/Spinner/Spinner.module.css.js.map +1 -0
- package/dist/components/Stat/Stat.cjs +2 -0
- package/dist/components/Stat/Stat.cjs.map +1 -0
- package/dist/components/Stat/Stat.js +38 -0
- package/dist/components/Stat/Stat.js.map +1 -0
- package/dist/components/Stat/Stat.module.css.cjs +2 -0
- package/dist/components/Stat/Stat.module.css.cjs.map +1 -0
- package/dist/components/Stat/Stat.module.css.js +28 -0
- package/dist/components/Stat/Stat.module.css.js.map +1 -0
- package/dist/components/Stepper/Stepper.cjs +2 -0
- package/dist/components/Stepper/Stepper.cjs.map +1 -0
- package/dist/components/Stepper/Stepper.js +43 -0
- package/dist/components/Stepper/Stepper.js.map +1 -0
- package/dist/components/Stepper/Stepper.module.css.cjs +2 -0
- package/dist/components/Stepper/Stepper.module.css.cjs.map +1 -0
- package/dist/components/Stepper/Stepper.module.css.js +22 -0
- package/dist/components/Stepper/Stepper.module.css.js.map +1 -0
- package/dist/components/StepperInput/StepperInput.cjs +2 -0
- package/dist/components/StepperInput/StepperInput.cjs.map +1 -0
- package/dist/components/StepperInput/StepperInput.js +56 -0
- package/dist/components/StepperInput/StepperInput.js.map +1 -0
- package/dist/components/StepperInput/StepperInput.module.css.cjs +2 -0
- package/dist/components/StepperInput/StepperInput.module.css.cjs.map +1 -0
- package/dist/components/StepperInput/StepperInput.module.css.js +24 -0
- package/dist/components/StepperInput/StepperInput.module.css.js.map +1 -0
- package/dist/components/Switch/Switch.cjs +2 -0
- package/dist/components/Switch/Switch.cjs.map +1 -0
- package/dist/components/Switch/Switch.js +25 -0
- package/dist/components/Switch/Switch.js.map +1 -0
- package/dist/components/Switch/Switch.module.css.cjs +2 -0
- package/dist/components/Switch/Switch.module.css.cjs.map +1 -0
- package/dist/components/Switch/Switch.module.css.js +18 -0
- package/dist/components/Switch/Switch.module.css.js.map +1 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.cjs +2 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.cjs.map +1 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.js +62 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.js.map +1 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.css.cjs +2 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.css.cjs.map +1 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.css.js +28 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.css.js.map +1 -0
- package/dist/components/Table/Table.cjs +2 -0
- package/dist/components/Table/Table.cjs.map +1 -0
- package/dist/components/Table/Table.js +67 -0
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Table/Table.module.css.cjs +2 -0
- package/dist/components/Table/Table.module.css.cjs.map +1 -0
- package/dist/components/Table/Table.module.css.js +34 -0
- package/dist/components/Table/Table.module.css.js.map +1 -0
- package/dist/components/Tabs/Tabs.cjs +2 -0
- package/dist/components/Tabs/Tabs.cjs.map +1 -0
- package/dist/components/Tabs/Tabs.js +51 -0
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tabs/Tabs.module.css.cjs +2 -0
- package/dist/components/Tabs/Tabs.module.css.cjs.map +1 -0
- package/dist/components/Tabs/Tabs.module.css.js +16 -0
- package/dist/components/Tabs/Tabs.module.css.js.map +1 -0
- package/dist/components/Tag/Tag.cjs +2 -0
- package/dist/components/Tag/Tag.cjs.map +1 -0
- package/dist/components/Tag/Tag.js +30 -0
- package/dist/components/Tag/Tag.js.map +1 -0
- package/dist/components/Tag/Tag.module.css.cjs +2 -0
- package/dist/components/Tag/Tag.module.css.cjs.map +1 -0
- package/dist/components/Tag/Tag.module.css.js +30 -0
- package/dist/components/Tag/Tag.module.css.js.map +1 -0
- package/dist/components/Textarea/Textarea.cjs +2 -0
- package/dist/components/Textarea/Textarea.cjs.map +1 -0
- package/dist/components/Textarea/Textarea.js +29 -0
- package/dist/components/Textarea/Textarea.js.map +1 -0
- package/dist/components/Textarea/Textarea.module.css.cjs +2 -0
- package/dist/components/Textarea/Textarea.module.css.cjs.map +1 -0
- package/dist/components/Textarea/Textarea.module.css.js +20 -0
- package/dist/components/Textarea/Textarea.module.css.js.map +1 -0
- package/dist/components/TimePicker/TimePicker.cjs +2 -0
- package/dist/components/TimePicker/TimePicker.cjs.map +1 -0
- package/dist/components/TimePicker/TimePicker.js +107 -0
- package/dist/components/TimePicker/TimePicker.js.map +1 -0
- package/dist/components/TimePicker/TimePicker.module.css.cjs +2 -0
- package/dist/components/TimePicker/TimePicker.module.css.cjs.map +1 -0
- package/dist/components/TimePicker/TimePicker.module.css.js +24 -0
- package/dist/components/TimePicker/TimePicker.module.css.js.map +1 -0
- package/dist/components/Timeline/Timeline.cjs +2 -0
- package/dist/components/Timeline/Timeline.cjs.map +1 -0
- package/dist/components/Timeline/Timeline.js +35 -0
- package/dist/components/Timeline/Timeline.js.map +1 -0
- package/dist/components/Timeline/Timeline.module.css.cjs +2 -0
- package/dist/components/Timeline/Timeline.module.css.cjs.map +1 -0
- package/dist/components/Timeline/Timeline.module.css.js +36 -0
- package/dist/components/Timeline/Timeline.module.css.js.map +1 -0
- package/dist/components/Toast/Toast.module.css.cjs +2 -0
- package/dist/components/Toast/Toast.module.css.cjs.map +1 -0
- package/dist/components/Toast/Toast.module.css.js +38 -0
- package/dist/components/Toast/Toast.module.css.js.map +1 -0
- package/dist/components/Toast/ToastProvider.cjs +2 -0
- package/dist/components/Toast/ToastProvider.cjs.map +1 -0
- package/dist/components/Toast/ToastProvider.js +114 -0
- package/dist/components/Toast/ToastProvider.js.map +1 -0
- package/dist/components/Toggle/Toggle.cjs +2 -0
- package/dist/components/Toggle/Toggle.cjs.map +1 -0
- package/dist/components/Toggle/Toggle.js +49 -0
- package/dist/components/Toggle/Toggle.js.map +1 -0
- package/dist/components/Toggle/Toggle.module.css.cjs +2 -0
- package/dist/components/Toggle/Toggle.module.css.cjs.map +1 -0
- package/dist/components/Toggle/Toggle.module.css.js +18 -0
- package/dist/components/Toggle/Toggle.module.css.js.map +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.cjs +2 -0
- package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.js +74 -0
- package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs +2 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs.map +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.css.js +12 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.css.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.cjs +2 -0
- package/dist/components/Tooltip/Tooltip.cjs.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +43 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.module.css.cjs +2 -0
- package/dist/components/Tooltip/Tooltip.module.css.cjs.map +1 -0
- package/dist/components/Tooltip/Tooltip.module.css.js +20 -0
- package/dist/components/Tooltip/Tooltip.module.css.js.map +1 -0
- package/dist/components/TruncateText/TruncateText.cjs +2 -0
- package/dist/components/TruncateText/TruncateText.cjs.map +1 -0
- package/dist/components/TruncateText/TruncateText.js +20 -0
- package/dist/components/TruncateText/TruncateText.js.map +1 -0
- package/dist/components/TruncateText/TruncateText.module.css.cjs +2 -0
- package/dist/components/TruncateText/TruncateText.module.css.cjs.map +1 -0
- package/dist/components/TruncateText/TruncateText.module.css.js +8 -0
- package/dist/components/TruncateText/TruncateText.module.css.js.map +1 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.cjs +2 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.cjs.map +1 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.js +43 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.js.map +1 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.module.css.cjs +2 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.module.css.cjs.map +1 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.module.css.js +20 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.module.css.js.map +1 -0
- package/dist/components/VirtualList/VirtualList.cjs +2 -0
- package/dist/components/VirtualList/VirtualList.cjs.map +1 -0
- package/dist/components/VirtualList/VirtualList.js +50 -0
- package/dist/components/VirtualList/VirtualList.js.map +1 -0
- package/dist/components/VirtualList/VirtualList.module.css.cjs +2 -0
- package/dist/components/VirtualList/VirtualList.module.css.cjs.map +1 -0
- package/dist/components/VirtualList/VirtualList.module.css.js +12 -0
- package/dist/components/VirtualList/VirtualList.module.css.js.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.cjs +2 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +15 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.module.css.cjs +2 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.module.css.cjs.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.module.css.js +8 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.module.css.js.map +1 -0
- package/dist/data/create-data-provider.cjs +2 -0
- package/dist/data/create-data-provider.cjs.map +1 -0
- package/dist/data/create-data-provider.js +46 -0
- package/dist/data/create-data-provider.js.map +1 -0
- package/dist/data/data-provider-context.cjs +2 -0
- package/dist/data/data-provider-context.cjs.map +1 -0
- package/dist/data/data-provider-context.js +17 -0
- package/dist/data/data-provider-context.js.map +1 -0
- package/dist/data/use-resource.cjs +2 -0
- package/dist/data/use-resource.cjs.map +1 -0
- package/dist/data/use-resource.js +66 -0
- package/dist/data/use-resource.js.map +1 -0
- package/dist/editor/RichTextEditor.cjs +2 -0
- package/dist/editor/RichTextEditor.cjs.map +1 -0
- package/dist/editor/RichTextEditor.js +183 -0
- package/dist/editor/RichTextEditor.js.map +1 -0
- package/dist/editor/RichTextEditor.module.css.cjs +2 -0
- package/dist/editor/RichTextEditor.module.css.cjs.map +1 -0
- package/dist/editor/RichTextEditor.module.css.js +18 -0
- package/dist/editor/RichTextEditor.module.css.js.map +1 -0
- package/dist/editor.cjs +1 -1
- package/dist/editor.cjs.map +1 -1
- package/dist/editor.js +2 -187
- package/dist/editor.js.map +1 -1
- package/dist/error-boundary/ErrorBoundary.cjs +2 -0
- package/dist/error-boundary/ErrorBoundary.cjs.map +1 -0
- package/dist/error-boundary/ErrorBoundary.js +32 -0
- package/dist/error-boundary/ErrorBoundary.js.map +1 -0
- package/dist/error-boundary/use-error-handler.cjs +2 -0
- package/dist/error-boundary/use-error-handler.cjs.map +1 -0
- package/dist/error-boundary/use-error-handler.js +13 -0
- package/dist/error-boundary/use-error-handler.js.map +1 -0
- package/dist/feature-flags/FeatureFlagsProvider.cjs +2 -0
- package/dist/feature-flags/FeatureFlagsProvider.cjs.map +1 -0
- package/dist/feature-flags/FeatureFlagsProvider.js +29 -0
- package/dist/feature-flags/FeatureFlagsProvider.js.map +1 -0
- package/dist/feature-flags/growthbook-adapter.cjs +2 -0
- package/dist/feature-flags/growthbook-adapter.cjs.map +1 -0
- package/dist/feature-flags/growthbook-adapter.js +27 -0
- package/dist/feature-flags/growthbook-adapter.js.map +1 -0
- package/dist/feature-flags/in-memory-adapter.cjs +2 -0
- package/dist/feature-flags/in-memory-adapter.cjs.map +1 -0
- package/dist/feature-flags/in-memory-adapter.js +24 -0
- package/dist/feature-flags/in-memory-adapter.js.map +1 -0
- package/dist/feature-flags/launchdarkly-adapter.cjs +2 -0
- package/dist/feature-flags/launchdarkly-adapter.cjs.map +1 -0
- package/dist/feature-flags/launchdarkly-adapter.js +21 -0
- package/dist/feature-flags/launchdarkly-adapter.js.map +1 -0
- package/dist/forms/FormField.cjs +2 -0
- package/dist/forms/FormField.cjs.map +1 -0
- package/dist/forms/FormField.js +37 -0
- package/dist/forms/FormField.js.map +1 -0
- package/dist/forms/br-validators.cjs +2 -0
- package/dist/forms/br-validators.cjs.map +1 -0
- package/dist/forms/br-validators.js +44 -0
- package/dist/forms/br-validators.js.map +1 -0
- package/dist/forms/masked-inputs.cjs +2 -0
- package/dist/forms/masked-inputs.cjs.map +1 -0
- package/dist/forms/masked-inputs.js +48 -0
- package/dist/forms/masked-inputs.js.map +1 -0
- package/dist/forms/use-viacep.cjs +2 -0
- package/dist/forms/use-viacep.cjs.map +1 -0
- package/dist/forms/use-viacep.js +24 -0
- package/dist/forms/use-viacep.js.map +1 -0
- package/dist/forms/use-zod-form.cjs +2 -0
- package/dist/forms/use-zod-form.cjs.map +1 -0
- package/dist/forms/use-zod-form.js +12 -0
- package/dist/forms/use-zod-form.js.map +1 -0
- package/dist/forms/validate-form.cjs +2 -0
- package/dist/forms/validate-form.cjs.map +1 -0
- package/dist/forms/validate-form.js +15 -0
- package/dist/forms/validate-form.js.map +1 -0
- package/dist/forms/zod-resolver.cjs +2 -0
- package/dist/forms/zod-resolver.cjs.map +1 -0
- package/dist/forms/zod-resolver.js +17 -0
- package/dist/forms/zod-resolver.js.map +1 -0
- package/dist/geo/TrajectoryMap.cjs +2 -0
- package/dist/geo/TrajectoryMap.cjs.map +1 -0
- package/dist/geo/TrajectoryMap.js +216 -0
- package/dist/geo/TrajectoryMap.js.map +1 -0
- package/dist/geo/TrajectoryMap.module.css.cjs +2 -0
- package/dist/geo/TrajectoryMap.module.css.cjs.map +1 -0
- package/dist/geo/TrajectoryMap.module.css.js +30 -0
- package/dist/geo/TrajectoryMap.module.css.js.map +1 -0
- package/dist/geo/bounds.cjs +2 -0
- package/dist/geo/bounds.cjs.map +1 -0
- package/dist/geo/bounds.js +28 -0
- package/dist/geo/bounds.js.map +1 -0
- package/dist/geo/create-position-tracker.cjs +2 -0
- package/dist/geo/create-position-tracker.cjs.map +1 -0
- package/dist/geo/create-position-tracker.js +65 -0
- package/dist/geo/create-position-tracker.js.map +1 -0
- package/dist/geo/distance.cjs +2 -0
- package/dist/geo/distance.cjs.map +1 -0
- package/dist/geo/distance.js +26 -0
- package/dist/geo/distance.js.map +1 -0
- package/dist/geo/estimate.cjs +2 -0
- package/dist/geo/estimate.cjs.map +1 -0
- package/dist/geo/estimate.js +35 -0
- package/dist/geo/estimate.js.map +1 -0
- package/dist/geo/leaflet-map.cjs +2 -0
- package/dist/geo/leaflet-map.cjs.map +1 -0
- package/dist/geo/leaflet-map.js +51 -0
- package/dist/geo/leaflet-map.js.map +1 -0
- package/dist/geo/projection.cjs +2 -0
- package/dist/geo/projection.cjs.map +1 -0
- package/dist/geo/projection.js +36 -0
- package/dist/geo/projection.js.map +1 -0
- package/dist/geo/routing.cjs +2 -0
- package/dist/geo/routing.cjs.map +1 -0
- package/dist/geo/routing.js +29 -0
- package/dist/geo/routing.js.map +1 -0
- package/dist/geo/types.cjs +2 -0
- package/dist/geo/types.cjs.map +1 -0
- package/dist/geo/types.js +25 -0
- package/dist/geo/types.js.map +1 -0
- package/dist/geo/use-position-tracker.cjs +2 -0
- package/dist/geo/use-position-tracker.cjs.map +1 -0
- package/dist/geo/use-position-tracker.js +35 -0
- package/dist/geo/use-position-tracker.js.map +1 -0
- package/dist/hooks/pwa-env.cjs +2 -0
- package/dist/hooks/pwa-env.cjs.map +1 -0
- package/dist/hooks/pwa-env.js +31 -0
- package/dist/hooks/pwa-env.js.map +1 -0
- package/dist/hooks/use-async.cjs +2 -0
- package/dist/hooks/use-async.cjs.map +1 -0
- package/dist/hooks/use-async.js +38 -0
- package/dist/hooks/use-async.js.map +1 -0
- package/dist/hooks/use-before-install-prompt.cjs +2 -0
- package/dist/hooks/use-before-install-prompt.cjs.map +1 -0
- package/dist/hooks/use-before-install-prompt.js +38 -0
- package/dist/hooks/use-before-install-prompt.js.map +1 -0
- package/dist/hooks/use-breakpoint.cjs +2 -0
- package/dist/hooks/use-breakpoint.cjs.map +1 -0
- package/dist/hooks/use-breakpoint.js +40 -0
- package/dist/hooks/use-breakpoint.js.map +1 -0
- package/dist/hooks/use-click-outside.cjs +2 -0
- package/dist/hooks/use-click-outside.cjs.map +1 -0
- package/dist/hooks/use-click-outside.js +18 -0
- package/dist/hooks/use-click-outside.js.map +1 -0
- package/dist/hooks/use-client-filter.cjs +2 -0
- package/dist/hooks/use-client-filter.cjs.map +1 -0
- package/dist/hooks/use-client-filter.js +16 -0
- package/dist/hooks/use-client-filter.js.map +1 -0
- package/dist/hooks/use-clipboard.cjs +2 -0
- package/dist/hooks/use-clipboard.cjs.map +1 -0
- package/dist/hooks/use-clipboard.js +29 -0
- package/dist/hooks/use-clipboard.js.map +1 -0
- package/dist/hooks/use-counter.cjs +2 -0
- package/dist/hooks/use-counter.cjs.map +1 -0
- package/dist/hooks/use-counter.js +27 -0
- package/dist/hooks/use-counter.js.map +1 -0
- package/dist/hooks/use-debounce.cjs +2 -0
- package/dist/hooks/use-debounce.cjs.map +1 -0
- package/dist/hooks/use-debounce.js +12 -0
- package/dist/hooks/use-debounce.js.map +1 -0
- package/dist/hooks/use-deep-memo.cjs +2 -0
- package/dist/hooks/use-deep-memo.cjs.map +1 -0
- package/dist/hooks/use-deep-memo.js +19 -0
- package/dist/hooks/use-deep-memo.js.map +1 -0
- package/dist/hooks/use-disclosure.cjs +2 -0
- package/dist/hooks/use-disclosure.cjs.map +1 -0
- package/dist/hooks/use-disclosure.js +12 -0
- package/dist/hooks/use-disclosure.js.map +1 -0
- package/dist/hooks/use-document-title.cjs +2 -0
- package/dist/hooks/use-document-title.cjs.map +1 -0
- package/dist/hooks/use-document-title.js +14 -0
- package/dist/hooks/use-document-title.js.map +1 -0
- package/dist/hooks/use-document-visibility.cjs +2 -0
- package/dist/hooks/use-document-visibility.cjs.map +1 -0
- package/dist/hooks/use-document-visibility.js +15 -0
- package/dist/hooks/use-document-visibility.js.map +1 -0
- package/dist/hooks/use-event-listener.cjs +2 -0
- package/dist/hooks/use-event-listener.cjs.map +1 -0
- package/dist/hooks/use-event-listener.js +14 -0
- package/dist/hooks/use-event-listener.js.map +1 -0
- package/dist/hooks/use-favicon.cjs +2 -0
- package/dist/hooks/use-favicon.cjs.map +1 -0
- package/dist/hooks/use-favicon.js +12 -0
- package/dist/hooks/use-favicon.js.map +1 -0
- package/dist/hooks/use-focus-trap.cjs +2 -0
- package/dist/hooks/use-focus-trap.cjs.map +1 -0
- package/dist/hooks/use-focus-trap.js +43 -0
- package/dist/hooks/use-focus-trap.js.map +1 -0
- package/dist/hooks/use-geolocation.cjs +2 -0
- package/dist/hooks/use-geolocation.cjs.map +1 -0
- package/dist/hooks/use-geolocation.js +44 -0
- package/dist/hooks/use-geolocation.js.map +1 -0
- package/dist/hooks/use-hover.cjs +2 -0
- package/dist/hooks/use-hover.cjs.map +1 -0
- package/dist/hooks/use-hover.js +16 -0
- package/dist/hooks/use-hover.js.map +1 -0
- package/dist/hooks/use-idle.cjs +2 -0
- package/dist/hooks/use-idle.cjs.map +1 -0
- package/dist/hooks/use-idle.js +30 -0
- package/dist/hooks/use-idle.js.map +1 -0
- package/dist/hooks/use-install-prompt.cjs +2 -0
- package/dist/hooks/use-install-prompt.cjs.map +1 -0
- package/dist/hooks/use-install-prompt.js +69 -0
- package/dist/hooks/use-install-prompt.js.map +1 -0
- package/dist/hooks/use-intersection-observer.cjs +2 -0
- package/dist/hooks/use-intersection-observer.cjs.map +1 -0
- package/dist/hooks/use-intersection-observer.js +19 -0
- package/dist/hooks/use-intersection-observer.js.map +1 -0
- package/dist/hooks/use-interval.cjs +2 -0
- package/dist/hooks/use-interval.cjs.map +1 -0
- package/dist/hooks/use-interval.js +13 -0
- package/dist/hooks/use-interval.js.map +1 -0
- package/dist/hooks/use-is-first-render.cjs +2 -0
- package/dist/hooks/use-is-first-render.cjs.map +1 -0
- package/dist/hooks/use-is-first-render.js +9 -0
- package/dist/hooks/use-is-first-render.js.map +1 -0
- package/dist/hooks/use-keyboard-shortcut.cjs +2 -0
- package/dist/hooks/use-keyboard-shortcut.cjs.map +1 -0
- package/dist/hooks/use-keyboard-shortcut.js +38 -0
- package/dist/hooks/use-keyboard-shortcut.js.map +1 -0
- package/dist/hooks/use-list-state.cjs +2 -0
- package/dist/hooks/use-list-state.cjs.map +1 -0
- package/dist/hooks/use-list-state.js +40 -0
- package/dist/hooks/use-list-state.js.map +1 -0
- package/dist/hooks/use-local-storage.cjs +2 -0
- package/dist/hooks/use-local-storage.cjs.map +1 -0
- package/dist/hooks/use-local-storage.js +55 -0
- package/dist/hooks/use-local-storage.js.map +1 -0
- package/dist/hooks/use-long-press-handlers.cjs +2 -0
- package/dist/hooks/use-long-press-handlers.cjs.map +1 -0
- package/dist/hooks/use-long-press-handlers.js +31 -0
- package/dist/hooks/use-long-press-handlers.js.map +1 -0
- package/dist/hooks/use-long-press.cjs +2 -0
- package/dist/hooks/use-long-press.cjs.map +1 -0
- package/dist/hooks/use-long-press.js +27 -0
- package/dist/hooks/use-long-press.js.map +1 -0
- package/dist/hooks/use-map.cjs +2 -0
- package/dist/hooks/use-map.cjs.map +1 -0
- package/dist/hooks/use-map.js +33 -0
- package/dist/hooks/use-map.js.map +1 -0
- package/dist/hooks/use-media-query.cjs +2 -0
- package/dist/hooks/use-media-query.cjs.map +1 -0
- package/dist/hooks/use-media-query.js +13 -0
- package/dist/hooks/use-media-query.js.map +1 -0
- package/dist/hooks/use-object-url.cjs +2 -0
- package/dist/hooks/use-object-url.cjs.map +1 -0
- package/dist/hooks/use-object-url.js +16 -0
- package/dist/hooks/use-object-url.js.map +1 -0
- package/dist/hooks/use-online.cjs +2 -0
- package/dist/hooks/use-online.cjs.map +1 -0
- package/dist/hooks/use-online.js +47 -0
- package/dist/hooks/use-online.js.map +1 -0
- package/dist/hooks/use-pagination.cjs +2 -0
- package/dist/hooks/use-pagination.cjs.map +1 -0
- package/dist/hooks/use-pagination.js +9 -0
- package/dist/hooks/use-pagination.js.map +1 -0
- package/dist/hooks/use-previous.cjs +2 -0
- package/dist/hooks/use-previous.cjs.map +1 -0
- package/dist/hooks/use-previous.js +11 -0
- package/dist/hooks/use-previous.js.map +1 -0
- package/dist/hooks/use-queue.cjs +2 -0
- package/dist/hooks/use-queue.cjs.map +1 -0
- package/dist/hooks/use-queue.js +48 -0
- package/dist/hooks/use-queue.js.map +1 -0
- package/dist/hooks/use-resize-observer.cjs +2 -0
- package/dist/hooks/use-resize-observer.cjs.map +1 -0
- package/dist/hooks/use-resize-observer.js +19 -0
- package/dist/hooks/use-resize-observer.js.map +1 -0
- package/dist/hooks/use-scroll-lock.cjs +2 -0
- package/dist/hooks/use-scroll-lock.cjs.map +1 -0
- package/dist/hooks/use-scroll-lock.js +14 -0
- package/dist/hooks/use-scroll-lock.js.map +1 -0
- package/dist/hooks/use-service-worker-update.cjs +2 -0
- package/dist/hooks/use-service-worker-update.cjs.map +1 -0
- package/dist/hooks/use-service-worker-update.js +34 -0
- package/dist/hooks/use-service-worker-update.js.map +1 -0
- package/dist/hooks/use-set.cjs +2 -0
- package/dist/hooks/use-set.cjs.map +1 -0
- package/dist/hooks/use-set.js +39 -0
- package/dist/hooks/use-set.js.map +1 -0
- package/dist/hooks/use-stable-callback.cjs +2 -0
- package/dist/hooks/use-stable-callback.cjs.map +1 -0
- package/dist/hooks/use-stable-callback.js +9 -0
- package/dist/hooks/use-stable-callback.js.map +1 -0
- package/dist/hooks/use-storage-estimate.cjs +2 -0
- package/dist/hooks/use-storage-estimate.cjs.map +1 -0
- package/dist/hooks/use-storage-estimate.js +54 -0
- package/dist/hooks/use-storage-estimate.js.map +1 -0
- package/dist/hooks/use-throttle.cjs +2 -0
- package/dist/hooks/use-throttle.cjs.map +1 -0
- package/dist/hooks/use-throttle.js +16 -0
- package/dist/hooks/use-throttle.js.map +1 -0
- package/dist/hooks/use-timeout.cjs +2 -0
- package/dist/hooks/use-timeout.cjs.map +1 -0
- package/dist/hooks/use-timeout.js +13 -0
- package/dist/hooks/use-timeout.js.map +1 -0
- package/dist/hooks/use-toggle.cjs +2 -0
- package/dist/hooks/use-toggle.cjs.map +1 -0
- package/dist/hooks/use-toggle.js +9 -0
- package/dist/hooks/use-toggle.js.map +1 -0
- package/dist/hooks/use-window-size.cjs +2 -0
- package/dist/hooks/use-window-size.cjs.map +1 -0
- package/dist/hooks/use-window-size.js +15 -0
- package/dist/hooks/use-window-size.js.map +1 -0
- package/dist/http/api-client.cjs +2 -0
- package/dist/http/api-client.cjs.map +1 -0
- package/dist/http/api-client.js +81 -0
- package/dist/http/api-client.js.map +1 -0
- package/dist/http/errors.cjs +2 -0
- package/dist/http/errors.cjs.map +1 -0
- package/dist/http/errors.js +39 -0
- package/dist/http/errors.js.map +1 -0
- package/dist/http/idempotency.cjs +2 -0
- package/dist/http/idempotency.cjs.map +1 -0
- package/dist/http/idempotency.js +10 -0
- package/dist/http/idempotency.js.map +1 -0
- package/dist/http/parse-response.cjs +6 -0
- package/dist/http/parse-response.cjs.map +1 -0
- package/dist/http/parse-response.js +20 -0
- package/dist/http/parse-response.js.map +1 -0
- package/dist/http/retry.cjs +2 -0
- package/dist/http/retry.cjs.map +1 -0
- package/dist/http/retry.js +44 -0
- package/dist/http/retry.js.map +1 -0
- package/dist/http/upload-with-progress.cjs +2 -0
- package/dist/http/upload-with-progress.cjs.map +1 -0
- package/dist/http/upload-with-progress.js +91 -0
- package/dist/http/upload-with-progress.js.map +1 -0
- package/dist/http/use-poll.cjs +2 -0
- package/dist/http/use-poll.cjs.map +1 -0
- package/dist/http/use-poll.js +41 -0
- package/dist/http/use-poll.js.map +1 -0
- package/dist/i18n/I18nProvider.cjs +2 -0
- package/dist/i18n/I18nProvider.cjs.map +1 -0
- package/dist/i18n/I18nProvider.js +52 -0
- package/dist/i18n/I18nProvider.js.map +1 -0
- package/dist/i18n/create-i18n.cjs +2 -0
- package/dist/i18n/create-i18n.cjs.map +1 -0
- package/dist/i18n/create-i18n.js +50 -0
- package/dist/i18n/create-i18n.js.map +1 -0
- package/dist/logger/logger.cjs +2 -0
- package/dist/logger/logger.cjs.map +1 -0
- package/dist/logger/logger.js +41 -0
- package/dist/logger/logger.js.map +1 -0
- package/dist/oauth/GoogleSignIn.cjs +2 -0
- package/dist/oauth/GoogleSignIn.cjs.map +1 -0
- package/dist/oauth/GoogleSignIn.js +50 -0
- package/dist/oauth/GoogleSignIn.js.map +1 -0
- package/dist/oauth/use-oauth-callback.cjs +2 -0
- package/dist/oauth/use-oauth-callback.cjs.map +1 -0
- package/dist/oauth/use-oauth-callback.js +21 -0
- package/dist/oauth/use-oauth-callback.js.map +1 -0
- package/dist/offline/conflict.cjs +2 -0
- package/dist/offline/conflict.cjs.map +1 -0
- package/dist/offline/conflict.js +17 -0
- package/dist/offline/conflict.js.map +1 -0
- package/dist/offline/create-offline-store.cjs +2 -0
- package/dist/offline/create-offline-store.cjs.map +1 -0
- package/dist/offline/create-offline-store.js +46 -0
- package/dist/offline/create-offline-store.js.map +1 -0
- package/dist/offline/create-offline-sync.cjs +2 -0
- package/dist/offline/create-offline-sync.cjs.map +1 -0
- package/dist/offline/create-offline-sync.js +146 -0
- package/dist/offline/create-offline-sync.js.map +1 -0
- package/dist/offline/use-offline-sync.cjs +2 -0
- package/dist/offline/use-offline-sync.cjs.map +1 -0
- package/dist/offline/use-offline-sync.js +42 -0
- package/dist/offline/use-offline-sync.js.map +1 -0
- package/dist/push/use-push-subscription.cjs +2 -0
- package/dist/push/use-push-subscription.cjs.map +1 -0
- package/dist/push/use-push-subscription.js +68 -0
- package/dist/push/use-push-subscription.js.map +1 -0
- package/dist/push/utils.cjs +2 -0
- package/dist/push/utils.cjs.map +1 -0
- package/dist/push/utils.js +14 -0
- package/dist/push/utils.js.map +1 -0
- package/dist/push/web-push-client.cjs +2 -0
- package/dist/push/web-push-client.cjs.map +1 -0
- package/dist/push/web-push-client.js +83 -0
- package/dist/push/web-push-client.js.map +1 -0
- package/dist/query/QueryProvider.cjs +2 -0
- package/dist/query/QueryProvider.cjs.map +1 -0
- package/dist/query/QueryProvider.js +28 -0
- package/dist/query/QueryProvider.js.map +1 -0
- package/dist/query/constants.cjs +2 -0
- package/dist/query/constants.cjs.map +1 -0
- package/dist/query/constants.js +21 -0
- package/dist/query/constants.js.map +1 -0
- package/dist/query/create-query-keys.cjs +2 -0
- package/dist/query/create-query-keys.cjs.map +1 -0
- package/dist/query/create-query-keys.js +10 -0
- package/dist/query/create-query-keys.js.map +1 -0
- package/dist/query/offline-persistence.cjs +2 -0
- package/dist/query/offline-persistence.cjs.map +1 -0
- package/dist/query/offline-persistence.js +40 -0
- package/dist/query/offline-persistence.js.map +1 -0
- package/dist/query/optimistic.cjs +2 -0
- package/dist/query/optimistic.cjs.map +1 -0
- package/dist/query/optimistic.js +19 -0
- package/dist/query/optimistic.js.map +1 -0
- package/dist/query/pagination.cjs +2 -0
- package/dist/query/pagination.cjs.map +1 -0
- package/dist/query/pagination.js +19 -0
- package/dist/query/pagination.js.map +1 -0
- package/dist/query/use-cursor-query.cjs +2 -0
- package/dist/query/use-cursor-query.cjs.map +1 -0
- package/dist/query/use-cursor-query.js +28 -0
- package/dist/query/use-cursor-query.js.map +1 -0
- package/dist/query/use-offline-mutation.cjs +2 -0
- package/dist/query/use-offline-mutation.cjs.map +1 -0
- package/dist/query/use-offline-mutation.js +30 -0
- package/dist/query/use-offline-mutation.js.map +1 -0
- package/dist/query/use-paginated-query.cjs +2 -0
- package/dist/query/use-paginated-query.cjs.map +1 -0
- package/dist/query/use-paginated-query.js +44 -0
- package/dist/query/use-paginated-query.js.map +1 -0
- package/dist/router/AppRouter.cjs +2 -0
- package/dist/router/AppRouter.cjs.map +1 -0
- package/dist/router/AppRouter.js +60 -0
- package/dist/router/AppRouter.js.map +1 -0
- package/dist/router/RouteGuard.cjs +2 -0
- package/dist/router/RouteGuard.cjs.map +1 -0
- package/dist/router/RouteGuard.js +9 -0
- package/dist/router/RouteGuard.js.map +1 -0
- package/dist/share/share-or-download.cjs +2 -0
- package/dist/share/share-or-download.cjs.map +1 -0
- package/dist/share/share-or-download.js +11 -0
- package/dist/share/share-or-download.js.map +1 -0
- package/dist/share/share.cjs +2 -0
- package/dist/share/share.cjs.map +1 -0
- package/dist/share/share.js +19 -0
- package/dist/share/share.js.map +1 -0
- package/dist/sse/create-event-stream.cjs +2 -0
- package/dist/sse/create-event-stream.cjs.map +1 -0
- package/dist/sse/create-event-stream.js +76 -0
- package/dist/sse/create-event-stream.js.map +1 -0
- package/dist/sse/use-event-stream.cjs +2 -0
- package/dist/sse/use-event-stream.cjs.map +1 -0
- package/dist/sse/use-event-stream.js +29 -0
- package/dist/sse/use-event-stream.js.map +1 -0
- package/dist/store/create-selectors.cjs +2 -0
- package/dist/store/create-selectors.cjs.map +1 -0
- package/dist/store/create-selectors.js +11 -0
- package/dist/store/create-selectors.js.map +1 -0
- package/dist/store/create-store.cjs +2 -0
- package/dist/store/create-store.cjs.map +1 -0
- package/dist/store/create-store.js +20 -0
- package/dist/store/create-store.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/sw/background-sync.cjs +2 -0
- package/dist/sw/background-sync.cjs.map +1 -0
- package/dist/sw/background-sync.js +106 -0
- package/dist/sw/background-sync.js.map +1 -0
- package/dist/sw/cache-inspect.cjs +2 -0
- package/dist/sw/cache-inspect.cjs.map +1 -0
- package/dist/sw/cache-inspect.js +47 -0
- package/dist/sw/cache-inspect.js.map +1 -0
- package/dist/sw/cache.cjs +2 -0
- package/dist/sw/cache.cjs.map +1 -0
- package/dist/sw/cache.js +176 -0
- package/dist/sw/cache.js.map +1 -0
- package/dist/sw/create-push-handler.cjs +2 -0
- package/dist/sw/create-push-handler.cjs.map +1 -0
- package/dist/sw/create-push-handler.js +64 -0
- package/dist/sw/create-push-handler.js.map +1 -0
- package/dist/sw/periodic-sync.cjs +2 -0
- package/dist/sw/periodic-sync.cjs.map +1 -0
- package/dist/sw/periodic-sync.js +18 -0
- package/dist/sw/periodic-sync.js.map +1 -0
- package/dist/sw/register-service-worker.cjs +2 -0
- package/dist/sw/register-service-worker.cjs.map +1 -0
- package/dist/sw/register-service-worker.js +50 -0
- package/dist/sw/register-service-worker.js.map +1 -0
- package/dist/sw.cjs +1 -1
- package/dist/sw.cjs.map +1 -1
- package/dist/sw.d.ts +125 -0
- package/dist/sw.js +19 -358
- package/dist/sw.js.map +1 -1
- package/dist/telemetry/TelemetryProvider.cjs +2 -0
- package/dist/telemetry/TelemetryProvider.cjs.map +1 -0
- package/dist/telemetry/TelemetryProvider.js +18 -0
- package/dist/telemetry/TelemetryProvider.js.map +1 -0
- package/dist/telemetry/console-adapter.cjs +2 -0
- package/dist/telemetry/console-adapter.cjs.map +1 -0
- package/dist/telemetry/console-adapter.js +15 -0
- package/dist/telemetry/console-adapter.js.map +1 -0
- package/dist/telemetry/posthog-adapter.cjs +2 -0
- package/dist/telemetry/posthog-adapter.cjs.map +1 -0
- package/dist/telemetry/posthog-adapter.js +43 -0
- package/dist/telemetry/posthog-adapter.js.map +1 -0
- package/dist/telemetry/sentry-adapter.cjs +2 -0
- package/dist/telemetry/sentry-adapter.cjs.map +1 -0
- package/dist/telemetry/sentry-adapter.js +39 -0
- package/dist/telemetry/sentry-adapter.js.map +1 -0
- package/dist/tempest-react-sdk.cjs +1 -14
- package/dist/tempest-react-sdk.cjs.map +1 -1
- package/dist/tempest-react-sdk.d.ts +1059 -8
- package/dist/tempest-react-sdk.js +638 -9306
- package/dist/tempest-react-sdk.js.map +1 -1
- package/dist/testing/create-mock-handlers.cjs +2 -0
- package/dist/testing/create-mock-handlers.cjs.map +1 -0
- package/dist/testing/create-mock-handlers.js +14 -0
- package/dist/testing/create-mock-handlers.js.map +1 -0
- package/dist/testing.cjs +1 -1
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.js +1 -10
- package/dist/testing.js.map +1 -1
- package/dist/theme/ThemeProvider.cjs +2 -0
- package/dist/theme/ThemeProvider.cjs.map +1 -0
- package/dist/theme/ThemeProvider.js +78 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/initial-theme.cjs +11 -0
- package/dist/theme/initial-theme.cjs.map +1 -0
- package/dist/theme/initial-theme.js +31 -0
- package/dist/theme/initial-theme.js.map +1 -0
- package/dist/utils/arrays.cjs +2 -0
- package/dist/utils/arrays.cjs.map +1 -0
- package/dist/utils/arrays.js +40 -0
- package/dist/utils/arrays.js.map +1 -0
- package/dist/utils/cn.cjs +2 -0
- package/dist/utils/cn.cjs.map +1 -0
- package/dist/utils/cn.js +19 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/format.cjs +2 -0
- package/dist/utils/format.cjs.map +1 -0
- package/dist/utils/format.js +40 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/functions.cjs +2 -0
- package/dist/utils/functions.cjs.map +1 -0
- package/dist/utils/functions.js +49 -0
- package/dist/utils/functions.js.map +1 -0
- package/dist/utils/guards.cjs +2 -0
- package/dist/utils/guards.cjs.map +1 -0
- package/dist/utils/guards.js +25 -0
- package/dist/utils/guards.js.map +1 -0
- package/dist/utils/ids.cjs +2 -0
- package/dist/utils/ids.cjs.map +1 -0
- package/dist/utils/ids.js +14 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/numbers.cjs +2 -0
- package/dist/utils/numbers.cjs.map +1 -0
- package/dist/utils/numbers.js +27 -0
- package/dist/utils/numbers.js.map +1 -0
- package/dist/utils/objects.cjs +2 -0
- package/dist/utils/objects.cjs.map +1 -0
- package/dist/utils/objects.js +37 -0
- package/dist/utils/objects.js.map +1 -0
- package/dist/utils/promises.cjs +2 -0
- package/dist/utils/promises.cjs.map +1 -0
- package/dist/utils/promises.js +24 -0
- package/dist/utils/promises.js.map +1 -0
- package/dist/utils/relative-time.cjs +2 -0
- package/dist/utils/relative-time.cjs.map +1 -0
- package/dist/utils/relative-time.js +67 -0
- package/dist/utils/relative-time.js.map +1 -0
- package/dist/utils/storage.cjs +2 -0
- package/dist/utils/storage.cjs.map +1 -0
- package/dist/utils/storage.js +29 -0
- package/dist/utils/storage.js.map +1 -0
- package/dist/utils/strings.cjs +2 -0
- package/dist/utils/strings.cjs.map +1 -0
- package/dist/utils/strings.js +33 -0
- package/dist/utils/strings.js.map +1 -0
- package/dist/utils/xlsx.cjs +2 -0
- package/dist/utils/xlsx.cjs.map +1 -0
- package/dist/utils/xlsx.js +41 -0
- package/dist/utils/xlsx.js.map +1 -0
- package/dist/vision/core/canvas.cjs +2 -0
- package/dist/vision/core/canvas.cjs.map +1 -0
- package/dist/vision/core/canvas.js +41 -0
- package/dist/vision/core/canvas.js.map +1 -0
- package/dist/vision/core/exceptions.cjs +2 -0
- package/dist/vision/core/exceptions.cjs.map +1 -0
- package/dist/vision/core/exceptions.js +24 -0
- package/dist/vision/core/exceptions.js.map +1 -0
- package/dist/vision/core/providers.cjs +2 -0
- package/dist/vision/core/providers.cjs.map +1 -0
- package/dist/vision/core/providers.js +9 -0
- package/dist/vision/core/providers.js.map +1 -0
- package/dist/vision/core/session.cjs +2 -0
- package/dist/vision/core/session.cjs.map +1 -0
- package/dist/vision/core/session.js +71 -0
- package/dist/vision/core/session.js.map +1 -0
- package/dist/vision/index.cjs +2 -0
- package/dist/vision/index.cjs.map +1 -0
- package/dist/vision/index.js +5 -0
- package/dist/vision/index.js.map +1 -0
- package/dist/vision/io/image.cjs +2 -0
- package/dist/vision/io/image.cjs.map +1 -0
- package/dist/vision/io/image.js +75 -0
- package/dist/vision/io/image.js.map +1 -0
- package/dist/vision/labels.cjs +2 -0
- package/dist/vision/labels.cjs.map +1 -0
- package/dist/vision/labels.js +125 -0
- package/dist/vision/labels.js.map +1 -0
- package/dist/vision/luminance.cjs +2 -0
- package/dist/vision/luminance.cjs.map +1 -0
- package/dist/vision/luminance.js +45 -0
- package/dist/vision/luminance.js.map +1 -0
- package/dist/vision/postprocess/classification.cjs +2 -0
- package/dist/vision/postprocess/classification.cjs.map +1 -0
- package/dist/vision/postprocess/classification.js +32 -0
- package/dist/vision/postprocess/classification.js.map +1 -0
- package/dist/vision/postprocess/detection.cjs +2 -0
- package/dist/vision/postprocess/detection.cjs.map +1 -0
- package/dist/vision/postprocess/detection.js +153 -0
- package/dist/vision/postprocess/detection.js.map +1 -0
- package/dist/vision/postprocess/segmentation.cjs +2 -0
- package/dist/vision/postprocess/segmentation.cjs.map +1 -0
- package/dist/vision/postprocess/segmentation.js +109 -0
- package/dist/vision/postprocess/segmentation.js.map +1 -0
- package/dist/vision/preprocess/image.cjs +2 -0
- package/dist/vision/preprocess/image.cjs.map +1 -0
- package/dist/vision/preprocess/image.js +93 -0
- package/dist/vision/preprocess/image.js.map +1 -0
- package/dist/vision/results.cjs +2 -0
- package/dist/vision/results.cjs.map +1 -0
- package/dist/vision/results.js +213 -0
- package/dist/vision/results.js.map +1 -0
- package/dist/vision/tasks/base.cjs +2 -0
- package/dist/vision/tasks/base.cjs.map +1 -0
- package/dist/vision/tasks/base.js +14 -0
- package/dist/vision/tasks/base.js.map +1 -0
- package/dist/vision/tasks/classifier.cjs +2 -0
- package/dist/vision/tasks/classifier.cjs.map +1 -0
- package/dist/vision/tasks/classifier.js +106 -0
- package/dist/vision/tasks/classifier.js.map +1 -0
- package/dist/vision/tasks/detector.cjs +2 -0
- package/dist/vision/tasks/detector.cjs.map +1 -0
- package/dist/vision/tasks/detector.js +147 -0
- package/dist/vision/tasks/detector.js.map +1 -0
- package/dist/vision/tasks/segmenter.cjs +2 -0
- package/dist/vision/tasks/segmenter.cjs.map +1 -0
- package/dist/vision/tasks/segmenter.js +189 -0
- package/dist/vision/tasks/segmenter.js.map +1 -0
- package/dist/vision/types.cjs +2 -0
- package/dist/vision/types.cjs.map +1 -0
- package/dist/vision/types.js +100 -0
- package/dist/vision/types.js.map +1 -0
- package/dist/vision/use-camera-stream.cjs +2 -0
- package/dist/vision/use-camera-stream.cjs.map +1 -0
- package/dist/vision/use-camera-stream.js +89 -0
- package/dist/vision/use-camera-stream.js.map +1 -0
- package/dist/vision/use-live-luminance.cjs +2 -0
- package/dist/vision/use-live-luminance.cjs.map +1 -0
- package/dist/vision/use-live-luminance.js +23 -0
- package/dist/vision/use-live-luminance.js.map +1 -0
- package/dist/vision.cjs +1 -1
- package/dist/vision.cjs.map +1 -1
- package/dist/vision.js +70 -1558
- package/dist/vision.js.map +1 -1
- package/dist/vite/create-vite-config.cjs +2 -0
- package/dist/vite/create-vite-config.cjs.map +1 -0
- package/dist/vite/create-vite-config.js +46 -0
- package/dist/vite/create-vite-config.js.map +1 -0
- package/dist/vite/tempest-pwa-dev-sw.cjs +3 -0
- package/dist/vite/tempest-pwa-dev-sw.cjs.map +1 -0
- package/dist/vite/tempest-pwa-dev-sw.js +50 -0
- package/dist/vite/tempest-pwa-dev-sw.js.map +1 -0
- package/dist/vite/tempest-pwa-icons.cjs +2 -0
- package/dist/vite/tempest-pwa-icons.cjs.map +1 -0
- package/dist/vite/tempest-pwa-icons.js +137 -0
- package/dist/vite/tempest-pwa-icons.js.map +1 -0
- package/dist/vite/tempest-pwa-manifest.cjs +3 -0
- package/dist/vite/tempest-pwa-manifest.cjs.map +1 -0
- package/dist/vite/tempest-pwa-manifest.js +43 -0
- package/dist/vite/tempest-pwa-manifest.js.map +1 -0
- package/dist/vite.cjs +1 -3
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.js +8 -262
- package/dist/vite.js.map +1 -1
- package/dist/ws/create-web-socket.cjs +2 -0
- package/dist/ws/create-web-socket.cjs.map +1 -0
- package/dist/ws/create-web-socket.js +83 -0
- package/dist/ws/create-web-socket.js.map +1 -0
- package/dist/ws/use-web-socket.cjs +2 -0
- package/dist/ws/use-web-socket.cjs.map +1 -0
- package/dist/ws/use-web-socket.js +32 -0
- package/dist/ws/use-web-socket.js.map +1 -0
- package/package.json +7 -2
- package/template-pwa/src/main.tsx +11 -20
- package/template-pwa/src/pwa.tsx +42 -0
- package/dist/AC-Brw7ZrEs.cjs +0 -2
- package/dist/AC-Brw7ZrEs.cjs.map +0 -1
- package/dist/AC-DLl3Z4oj.js +0 -12
- package/dist/AC-DLl3Z4oj.js.map +0 -1
- package/dist/AL-DPGoZjht.cjs +0 -2
- package/dist/AL-DPGoZjht.cjs.map +0 -1
- package/dist/AL-gswGaWlj.js +0 -12
- package/dist/AL-gswGaWlj.js.map +0 -1
- package/dist/AM-QN1eL4Tn.js +0 -12
- package/dist/AM-QN1eL4Tn.js.map +0 -1
- package/dist/AM-VqNWvsI-.cjs +0 -2
- package/dist/AM-VqNWvsI-.cjs.map +0 -1
- package/dist/AP-CPvBa_FK.cjs +0 -2
- package/dist/AP-CPvBa_FK.cjs.map +0 -1
- package/dist/AP-CRAbh1js.js +0 -12
- package/dist/AP-CRAbh1js.js.map +0 -1
- package/dist/BA-CKy_HnnV.js +0 -12
- package/dist/BA-CKy_HnnV.js.map +0 -1
- package/dist/BA-DoMQ6slK.cjs +0 -2
- package/dist/BA-DoMQ6slK.cjs.map +0 -1
- package/dist/CE-Ca-XMDFW.js +0 -12
- package/dist/CE-Ca-XMDFW.js.map +0 -1
- package/dist/CE-as-pGPQa.cjs +0 -2
- package/dist/CE-as-pGPQa.cjs.map +0 -1
- package/dist/DF-8kzFoovF.js +0 -12
- package/dist/DF-8kzFoovF.js.map +0 -1
- package/dist/DF-Wr8WNxSX.cjs +0 -2
- package/dist/DF-Wr8WNxSX.cjs.map +0 -1
- package/dist/ES-B4uWNG6s.js +0 -12
- package/dist/ES-B4uWNG6s.js.map +0 -1
- package/dist/ES-wKVjD_TM.cjs +0 -2
- package/dist/ES-wKVjD_TM.cjs.map +0 -1
- package/dist/GO-D4m4rOqy.cjs +0 -2
- package/dist/GO-D4m4rOqy.cjs.map +0 -1
- package/dist/GO-DuaAgIfo.js +0 -12
- package/dist/GO-DuaAgIfo.js.map +0 -1
- package/dist/MA-BmaUZZKe.cjs +0 -2
- package/dist/MA-BmaUZZKe.cjs.map +0 -1
- package/dist/MA-wOyPxG_M.js +0 -12
- package/dist/MA-wOyPxG_M.js.map +0 -1
- package/dist/MG-BYsqJd-S.js +0 -12
- package/dist/MG-BYsqJd-S.js.map +0 -1
- package/dist/MG-BchdfJXp.cjs +0 -2
- package/dist/MG-BchdfJXp.cjs.map +0 -1
- package/dist/MS-DZkgtN_7.js +0 -12
- package/dist/MS-DZkgtN_7.js.map +0 -1
- package/dist/MS-Dz9lDw37.cjs +0 -2
- package/dist/MS-Dz9lDw37.cjs.map +0 -1
- package/dist/MT-BkVchoah.cjs +0 -2
- package/dist/MT-BkVchoah.cjs.map +0 -1
- package/dist/MT-GmMwFWw2.js +0 -12
- package/dist/MT-GmMwFWw2.js.map +0 -1
- package/dist/PA-C2FpT6Ew.cjs +0 -2
- package/dist/PA-C2FpT6Ew.cjs.map +0 -1
- package/dist/PA-DgyDzDFi.js +0 -12
- package/dist/PA-DgyDzDFi.js.map +0 -1
- package/dist/PB-BGkzbQup.cjs +0 -2
- package/dist/PB-BGkzbQup.cjs.map +0 -1
- package/dist/PB-D-6NE6KM.js +0 -12
- package/dist/PB-D-6NE6KM.js.map +0 -1
- package/dist/PE-D8V7gWY-.cjs +0 -2
- package/dist/PE-D8V7gWY-.cjs.map +0 -1
- package/dist/PE-vqm-t7Nh.js +0 -12
- package/dist/PE-vqm-t7Nh.js.map +0 -1
- package/dist/PI-CILuGJlW.js +0 -12
- package/dist/PI-CILuGJlW.js.map +0 -1
- package/dist/PI-dJYCbXQM.cjs +0 -2
- package/dist/PI-dJYCbXQM.cjs.map +0 -1
- package/dist/PR-DN8AV__r.js +0 -12
- package/dist/PR-DN8AV__r.js.map +0 -1
- package/dist/PR-P17oBdNH.cjs +0 -2
- package/dist/PR-P17oBdNH.cjs.map +0 -1
- package/dist/RJ-Bccz05Em.js +0 -12
- package/dist/RJ-Bccz05Em.js.map +0 -1
- package/dist/RJ-Budqx7QP.cjs +0 -2
- package/dist/RJ-Budqx7QP.cjs.map +0 -1
- package/dist/RN-DLcJBxo3.cjs +0 -2
- package/dist/RN-DLcJBxo3.cjs.map +0 -1
- package/dist/RN-DTqFP-Nm.js +0 -12
- package/dist/RN-DTqFP-Nm.js.map +0 -1
- package/dist/RO-BCC54UTU.js +0 -12
- package/dist/RO-BCC54UTU.js.map +0 -1
- package/dist/RO-B_IDyci4.cjs +0 -2
- package/dist/RO-B_IDyci4.cjs.map +0 -1
- package/dist/RR-CDGUEyla.cjs +0 -2
- package/dist/RR-CDGUEyla.cjs.map +0 -1
- package/dist/RR-OCnI_XpU.js +0 -12
- package/dist/RR-OCnI_XpU.js.map +0 -1
- package/dist/RS-DiBeY_u5.cjs +0 -2
- package/dist/RS-DiBeY_u5.cjs.map +0 -1
- package/dist/RS-Dy7gBbbH.js +0 -12
- package/dist/RS-Dy7gBbbH.js.map +0 -1
- package/dist/SC-CEMoj8g2.cjs +0 -2
- package/dist/SC-CEMoj8g2.cjs.map +0 -1
- package/dist/SC-trCqQDXz.js +0 -12
- package/dist/SC-trCqQDXz.js.map +0 -1
- package/dist/SE-DAfFbZcK.cjs +0 -2
- package/dist/SE-DAfFbZcK.cjs.map +0 -1
- package/dist/SE-DBdfSrGk.js +0 -12
- package/dist/SE-DBdfSrGk.js.map +0 -1
- package/dist/SP-Cse4d68i.cjs +0 -2
- package/dist/SP-Cse4d68i.cjs.map +0 -1
- package/dist/SP-qPZjJDOT.js +0 -12
- package/dist/SP-qPZjJDOT.js.map +0 -1
- package/dist/TO-CZtMDVug.js +0 -12
- package/dist/TO-CZtMDVug.js.map +0 -1
- package/dist/TO-Dwi5zIyF.cjs +0 -2
- package/dist/TO-Dwi5zIyF.cjs.map +0 -1
- package/dist/br-centroids--O7-1KXz.cjs +0 -2
- package/dist/br-centroids--O7-1KXz.cjs.map +0 -1
- package/dist/br-centroids-IHN7PIzD.js +0 -10
- package/dist/br-centroids-IHN7PIzD.js.map +0 -1
- package/dist/br-geo-BYynYOwK.cjs +0 -2
- package/dist/br-geo-BYynYOwK.cjs.map +0 -1
- package/dist/br-geo-DFRuvjuU.js +0 -8
- package/dist/br-geo-DFRuvjuU.js.map +0 -1
- package/dist/cn-C0Sxc9eb.js +0 -19
- package/dist/cn-C0Sxc9eb.js.map +0 -1
- package/dist/cn-CNScIEB4.cjs +0 -2
- package/dist/cn-CNScIEB4.cjs.map +0 -1
- package/dist/leaflet-map-BHBcL_7k.js +0 -51
- package/dist/leaflet-map-BHBcL_7k.js.map +0 -1
- package/dist/leaflet-map-BzYV9czG.cjs +0 -2
- package/dist/leaflet-map-BzYV9czG.cjs.map +0 -1
- package/dist/projection-CILVBdpd.cjs +0 -2
- package/dist/projection-CILVBdpd.cjs.map +0 -1
- package/dist/projection-Wnqr_svy.js +0 -215
- package/dist/projection-Wnqr_svy.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.cjs","sources":["../../../src/vision/tasks/detector.ts"],"sourcesContent":["/**\n * Object detection task using anchor-free YOLO ONNX models (v8/v9/v10/v11/v12).\n */\n\nimport type * as ort from \"onnxruntime-web\";\n\nimport { type ModelSource, type OrtSessionOptions, OrtSession } from \"../core/session\";\nimport { type ImageInput, loadImage } from \"../io/image\";\nimport { type LabelSpec, resolveLabels } from \"../labels\";\nimport { decodeYolo } from \"../postprocess/detection\";\nimport { letterbox, toCHW, toFloat32, toFloat32Tensor } from \"../preprocess/image\";\nimport { Boxes, DetectionResults } from \"../results\";\nimport { VisionTask } from \"./base\";\nimport { type BoundingBox, type DetectionResult, RGBImage } from \"../types\";\n\n/**\n * Decoder family for the model's detection head.\n *\n * - `\"yolo\"`: anchor-free YOLO head with output shape `[1, 4 + nc, N]` —\n * covers YOLOv8, v9, v10, v11, v12, v26 detect exports.\n *\n * The SDK does **not** auto-detect the head from the model — the caller is\n * responsible for picking a head that matches their export. Future families\n * (v5/v6/v7 with `[1, N, 5+nc]`) will be added as new literal members.\n */\nexport type DetectorHead = \"yolo\";\n\nexport interface DetectorOptions extends OrtSessionOptions {\n /**\n * Decoder family for the detection head. Default `\"yolo\"` covers\n * YOLOv8/v9/v10/v11/v12/v26.\n */\n readonly head?: DetectorHead;\n /** Class label spec — see {@link resolveLabels}. Defaults to the COCO 80-class preset. */\n readonly labels?: LabelSpec;\n /** Number of classes — used to validate the supplied labels. */\n readonly numClasses?: number;\n /** Model input `[width, height]` for letterboxing. Defaults to `[640, 640]`. */\n readonly inputSize?: readonly [number, number];\n /** Default minimum class score to keep a candidate. */\n readonly confThreshold?: number;\n /** Default IoU threshold for non-maximum suppression. */\n readonly iouThreshold?: number;\n /** Maximum number of detections per image. */\n readonly maxDetections?: number;\n}\n\nexport interface DetectorPredictOptions {\n /** Override the default confidence threshold. */\n readonly confThreshold?: number;\n /** Override the default IoU threshold. */\n readonly iouThreshold?: number;\n /**\n * If set, keep only detections whose `classId` is in this list.\n * Mirrors Ultralytics' `model.predict(img, classes=[0, 16])`.\n */\n readonly classes?: readonly number[];\n}\n\n/**\n * Object detector for anchor-free YOLO ONNX models (v8/v9/v10/v11/v12).\n *\n * `predict()` returns `Promise<DetectionResults[]>` (length 1 for a single\n * image), mirroring Ultralytics' `YOLO(\"img.jpg\")`. Iterate the envelope for\n * per-instance dataclasses, or use the bulk `boxes` view (`.xyxy`, `.xywh`,\n * `.xyxyn`, `.xywhn`, `.cls`, `.conf`).\n *\n * @example\n * ```typescript\n * const det = await Detector.create(\"/models/yolov8n.onnx\");\n * const results = await det.predict(\"/images/street.jpg\");\n * const r = results[0];\n * console.log(r.boxes.xyxy, r.boxes.cls, r.boxes.conf, r.names);\n * for (const d of r) {\n * console.log(d.cls, d.conf, d.box.xyxy);\n * }\n * ```\n */\nexport class Detector extends VisionTask {\n private constructor(\n session: OrtSession,\n private readonly _head: DetectorHead,\n private readonly _labels: readonly string[],\n private readonly _names: Readonly<Record<number, string>>,\n private readonly _inputSize: readonly [number, number],\n private readonly _confThreshold: number,\n private readonly _iouThreshold: number,\n private readonly _maxDetections: number,\n ) {\n super(session);\n }\n\n /** Load the model and resolve labels. */\n static async create(model: ModelSource, options: DetectorOptions = {}): Promise<Detector> {\n const head: DetectorHead = options.head ?? \"yolo\";\n if (head !== \"yolo\") {\n throw new Error(`Unsupported detector head '${head}'. Supported: 'yolo'.`);\n }\n const session = await OrtSession.create(model, options);\n const labels = resolveLabels(options.labels ?? \"coco\", {\n numClasses: options.numClasses,\n });\n const names: Record<number, string> = {};\n for (let i = 0; i < labels.length; i++) {\n names[i] = labels[i] as string;\n }\n return new Detector(\n session,\n head,\n labels,\n names,\n options.inputSize ?? [640, 640],\n options.confThreshold ?? 0.25,\n options.iouThreshold ?? 0.45,\n options.maxDetections ?? 300,\n );\n }\n\n /** The decoder family used to interpret the model's output. */\n get head(): DetectorHead {\n return this._head;\n }\n\n /** Class labels indexed by class id. */\n get labels(): readonly string[] {\n return this._labels;\n }\n\n /** Class id → class name dict (matches Ultralytics' `model.names`). */\n get names(): Readonly<Record<number, string>> {\n return this._names;\n }\n\n /** Number of classes the model predicts. */\n get numClasses(): number {\n return this._labels.length;\n }\n\n /**\n * Alias for {@link predict} — call the detector like a torch `nn.Module`.\n *\n * Use as `det.call(img)` since JavaScript class instances are not callable;\n * for direct invocation, prefer `det.predict(img)`. The full\n * {@link DetectorPredictOptions} (including `classes`) is supported.\n */\n async call(\n image: ImageInput,\n options: DetectorPredictOptions = {},\n ): Promise<DetectionResults[]> {\n return this.predict(image, options);\n }\n\n /** Run detection on a single image. */\n async predict(\n image: ImageInput,\n options: DetectorPredictOptions = {},\n ): Promise<DetectionResults[]> {\n const path = typeof image === \"string\" ? image : null;\n const original = await loadImage(image);\n const { tensor, scale, padLeft, padTop } = this._preprocess(original);\n const outputs = await this._session.run({ [this._session.inputName]: tensor });\n\n const firstOutputName = this._session.outputNames[0];\n if (firstOutputName === undefined) {\n throw new Error(\"Detector model has no outputs.\");\n }\n const raw = outputs[firstOutputName];\n if (raw === undefined) {\n throw new Error(`Detector model output ${firstOutputName} missing from run() result.`);\n }\n\n const decodedAll = decodeYolo(raw.data as Float32Array, raw.dims, {\n originalWidth: original.width,\n originalHeight: original.height,\n padLeft,\n padTop,\n scale,\n confThreshold: options.confThreshold ?? this._confThreshold,\n iouThreshold: options.iouThreshold ?? this._iouThreshold,\n maxDetections: this._maxDetections,\n });\n\n const decoded =\n options.classes !== undefined\n ? (() => {\n const allowed = new Set(options.classes);\n return decodedAll.filter((d) => allowed.has(d.classId));\n })()\n : decodedAll;\n\n const detections = decoded.map((d) =>\n this._buildResult(original, d.bbox, d.classId, d.confidence),\n );\n\n const orig: readonly [number, number] = [original.height, original.width];\n return [\n new DetectionResults(\n this._buildBoxes(detections, orig),\n detections,\n this._names,\n original,\n orig,\n path,\n ),\n ];\n }\n\n private _preprocess(image: RGBImage): {\n tensor: ort.Tensor;\n scale: number;\n padLeft: number;\n padTop: number;\n } {\n const [tw, th] = this._inputSize;\n const lb = letterbox(image, tw, th);\n const f32 = toFloat32(lb.image);\n const chw = toCHW(f32, lb.image.width, lb.image.height, 3);\n return {\n tensor: toFloat32Tensor(chw, [1, 3, lb.image.height, lb.image.width]),\n scale: lb.scale,\n padLeft: lb.padLeft,\n padTop: lb.padTop,\n };\n }\n\n private _buildResult(\n original: RGBImage,\n bbox: BoundingBox,\n classId: number,\n confidence: number,\n ): DetectionResult {\n const [x1, y1, x2, y2] = bbox.asIntXyxy();\n const cx1 = Math.max(0, x1);\n const cy1 = Math.max(0, y1);\n const cx2 = Math.min(original.width, x2);\n const cy2 = Math.min(original.height, y2);\n\n let cropped: RGBImage;\n if (cx2 > cx1 && cy2 > cy1) {\n const cw = cx2 - cx1;\n const ch = cy2 - cy1;\n const out = new Uint8Array(cw * ch * 3);\n for (let row = 0; row < ch; row++) {\n const srcOffset = ((cy1 + row) * original.width + cx1) * 3;\n out.set(original.data.subarray(srcOffset, srcOffset + cw * 3), row * cw * 3);\n }\n cropped = new RGBImage(out, cw, ch);\n } else {\n cropped = new RGBImage(new Uint8Array(0), 0, 0);\n }\n\n const className = this._names[classId] ?? `class_${classId}`;\n\n return {\n classId,\n className,\n confidence,\n bbox,\n cls: classId,\n name: className,\n conf: confidence,\n box: bbox,\n croppedImage: cropped,\n };\n }\n\n private _buildBoxes(\n detections: readonly DetectionResult[],\n origShape: readonly [number, number],\n ): Boxes {\n const n = detections.length;\n const xyxy = new Float32Array(n * 4);\n const cls = new Int32Array(n);\n const conf = new Float32Array(n);\n for (let i = 0; i < n; i++) {\n const d = detections[i] as DetectionResult;\n xyxy[i * 4] = d.bbox.x1;\n xyxy[i * 4 + 1] = d.bbox.y1;\n xyxy[i * 4 + 2] = d.bbox.x2;\n xyxy[i * 4 + 3] = d.bbox.y2;\n cls[i] = d.classId;\n conf[i] = d.confidence;\n }\n return new Boxes(xyxy, cls, conf, origShape);\n }\n}\n"],"names":["Detector","VisionTask","session","_head","_labels","_names","_inputSize","_confThreshold","_iouThreshold","_maxDetections","model","options","head","OrtSession","labels","resolveLabels","names","i","image","path","original","loadImage","tensor","scale","padLeft","padTop","outputs","firstOutputName","raw","decodedAll","decodeYolo","detections","allowed","d","orig","DetectionResults","tw","th","lb","letterbox","f32","toFloat32","chw","toCHW","toFloat32Tensor","bbox","classId","confidence","x1","y1","x2","y2","cx1","cy1","cx2","cy2","cropped","cw","ch","out","row","srcOffset","RGBImage","className","origShape","xyxy","cls","conf","Boxes"],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { OrtSession as g } from "../core/session.js";
|
|
2
|
+
import { loadImage as T } from "../io/image.js";
|
|
3
|
+
import { resolveLabels as D } from "../labels.js";
|
|
4
|
+
import { decodeYolo as S } from "../postprocess/detection.js";
|
|
5
|
+
import { letterbox as A, toFloat32 as I, toCHW as v, toFloat32Tensor as z } from "../preprocess/image.js";
|
|
6
|
+
import { DetectionResults as B, Boxes as C } from "../results.js";
|
|
7
|
+
import { VisionTask as F } from "./base.js";
|
|
8
|
+
import { RGBImage as y } from "../types.js";
|
|
9
|
+
class b extends F {
|
|
10
|
+
constructor(o, e, r, t, n, a, s, i) {
|
|
11
|
+
super(o), this._head = e, this._labels = r, this._names = t, this._inputSize = n, this._confThreshold = a, this._iouThreshold = s, this._maxDetections = i;
|
|
12
|
+
}
|
|
13
|
+
_head;
|
|
14
|
+
_labels;
|
|
15
|
+
_names;
|
|
16
|
+
_inputSize;
|
|
17
|
+
_confThreshold;
|
|
18
|
+
_iouThreshold;
|
|
19
|
+
_maxDetections;
|
|
20
|
+
/** Load the model and resolve labels. */
|
|
21
|
+
static async create(o, e = {}) {
|
|
22
|
+
const r = e.head ?? "yolo";
|
|
23
|
+
if (r !== "yolo")
|
|
24
|
+
throw new Error(`Unsupported detector head '${r}'. Supported: 'yolo'.`);
|
|
25
|
+
const t = await g.create(o, e), n = D(e.labels ?? "coco", {
|
|
26
|
+
numClasses: e.numClasses
|
|
27
|
+
}), a = {};
|
|
28
|
+
for (let s = 0; s < n.length; s++)
|
|
29
|
+
a[s] = n[s];
|
|
30
|
+
return new b(
|
|
31
|
+
t,
|
|
32
|
+
r,
|
|
33
|
+
n,
|
|
34
|
+
a,
|
|
35
|
+
e.inputSize ?? [640, 640],
|
|
36
|
+
e.confThreshold ?? 0.25,
|
|
37
|
+
e.iouThreshold ?? 0.45,
|
|
38
|
+
e.maxDetections ?? 300
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
/** The decoder family used to interpret the model's output. */
|
|
42
|
+
get head() {
|
|
43
|
+
return this._head;
|
|
44
|
+
}
|
|
45
|
+
/** Class labels indexed by class id. */
|
|
46
|
+
get labels() {
|
|
47
|
+
return this._labels;
|
|
48
|
+
}
|
|
49
|
+
/** Class id → class name dict (matches Ultralytics' `model.names`). */
|
|
50
|
+
get names() {
|
|
51
|
+
return this._names;
|
|
52
|
+
}
|
|
53
|
+
/** Number of classes the model predicts. */
|
|
54
|
+
get numClasses() {
|
|
55
|
+
return this._labels.length;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Alias for {@link predict} — call the detector like a torch `nn.Module`.
|
|
59
|
+
*
|
|
60
|
+
* Use as `det.call(img)` since JavaScript class instances are not callable;
|
|
61
|
+
* for direct invocation, prefer `det.predict(img)`. The full
|
|
62
|
+
* {@link DetectorPredictOptions} (including `classes`) is supported.
|
|
63
|
+
*/
|
|
64
|
+
async call(o, e = {}) {
|
|
65
|
+
return this.predict(o, e);
|
|
66
|
+
}
|
|
67
|
+
/** Run detection on a single image. */
|
|
68
|
+
async predict(o, e = {}) {
|
|
69
|
+
const r = typeof o == "string" ? o : null, t = await T(o), { tensor: n, scale: a, padLeft: s, padTop: i } = this._preprocess(t), m = await this._session.run({ [this._session.inputName]: n }), h = this._session.outputNames[0];
|
|
70
|
+
if (h === void 0)
|
|
71
|
+
throw new Error("Detector model has no outputs.");
|
|
72
|
+
const d = m[h];
|
|
73
|
+
if (d === void 0)
|
|
74
|
+
throw new Error(`Detector model output ${h} missing from run() result.`);
|
|
75
|
+
const u = S(d.data, d.dims, {
|
|
76
|
+
originalWidth: t.width,
|
|
77
|
+
originalHeight: t.height,
|
|
78
|
+
padLeft: s,
|
|
79
|
+
padTop: i,
|
|
80
|
+
scale: a,
|
|
81
|
+
confThreshold: e.confThreshold ?? this._confThreshold,
|
|
82
|
+
iouThreshold: e.iouThreshold ?? this._iouThreshold,
|
|
83
|
+
maxDetections: this._maxDetections
|
|
84
|
+
}), p = (e.classes !== void 0 ? (() => {
|
|
85
|
+
const c = new Set(e.classes);
|
|
86
|
+
return u.filter((_) => c.has(_.classId));
|
|
87
|
+
})() : u).map(
|
|
88
|
+
(c) => this._buildResult(t, c.bbox, c.classId, c.confidence)
|
|
89
|
+
), l = [t.height, t.width];
|
|
90
|
+
return [
|
|
91
|
+
new B(
|
|
92
|
+
this._buildBoxes(p, l),
|
|
93
|
+
p,
|
|
94
|
+
this._names,
|
|
95
|
+
t,
|
|
96
|
+
l,
|
|
97
|
+
r
|
|
98
|
+
)
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
_preprocess(o) {
|
|
102
|
+
const [e, r] = this._inputSize, t = A(o, e, r), n = I(t.image), a = v(n, t.image.width, t.image.height, 3);
|
|
103
|
+
return {
|
|
104
|
+
tensor: z(a, [1, 3, t.image.height, t.image.width]),
|
|
105
|
+
scale: t.scale,
|
|
106
|
+
padLeft: t.padLeft,
|
|
107
|
+
padTop: t.padTop
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
_buildResult(o, e, r, t) {
|
|
111
|
+
const [n, a, s, i] = e.asIntXyxy(), m = Math.max(0, n), h = Math.max(0, a), d = Math.min(o.width, s), u = Math.min(o.height, i);
|
|
112
|
+
let f;
|
|
113
|
+
if (d > m && u > h) {
|
|
114
|
+
const l = d - m, c = u - h, _ = new Uint8Array(l * c * 3);
|
|
115
|
+
for (let w = 0; w < c; w++) {
|
|
116
|
+
const x = ((h + w) * o.width + m) * 3;
|
|
117
|
+
_.set(o.data.subarray(x, x + l * 3), w * l * 3);
|
|
118
|
+
}
|
|
119
|
+
f = new y(_, l, c);
|
|
120
|
+
} else
|
|
121
|
+
f = new y(new Uint8Array(0), 0, 0);
|
|
122
|
+
const p = this._names[r] ?? `class_${r}`;
|
|
123
|
+
return {
|
|
124
|
+
classId: r,
|
|
125
|
+
className: p,
|
|
126
|
+
confidence: t,
|
|
127
|
+
bbox: e,
|
|
128
|
+
cls: r,
|
|
129
|
+
name: p,
|
|
130
|
+
conf: t,
|
|
131
|
+
box: e,
|
|
132
|
+
croppedImage: f
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
_buildBoxes(o, e) {
|
|
136
|
+
const r = o.length, t = new Float32Array(r * 4), n = new Int32Array(r), a = new Float32Array(r);
|
|
137
|
+
for (let s = 0; s < r; s++) {
|
|
138
|
+
const i = o[s];
|
|
139
|
+
t[s * 4] = i.bbox.x1, t[s * 4 + 1] = i.bbox.y1, t[s * 4 + 2] = i.bbox.x2, t[s * 4 + 3] = i.bbox.y2, n[s] = i.classId, a[s] = i.confidence;
|
|
140
|
+
}
|
|
141
|
+
return new C(t, n, a, e);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export {
|
|
145
|
+
b as Detector
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.js","sources":["../../../src/vision/tasks/detector.ts"],"sourcesContent":["/**\n * Object detection task using anchor-free YOLO ONNX models (v8/v9/v10/v11/v12).\n */\n\nimport type * as ort from \"onnxruntime-web\";\n\nimport { type ModelSource, type OrtSessionOptions, OrtSession } from \"../core/session\";\nimport { type ImageInput, loadImage } from \"../io/image\";\nimport { type LabelSpec, resolveLabels } from \"../labels\";\nimport { decodeYolo } from \"../postprocess/detection\";\nimport { letterbox, toCHW, toFloat32, toFloat32Tensor } from \"../preprocess/image\";\nimport { Boxes, DetectionResults } from \"../results\";\nimport { VisionTask } from \"./base\";\nimport { type BoundingBox, type DetectionResult, RGBImage } from \"../types\";\n\n/**\n * Decoder family for the model's detection head.\n *\n * - `\"yolo\"`: anchor-free YOLO head with output shape `[1, 4 + nc, N]` —\n * covers YOLOv8, v9, v10, v11, v12, v26 detect exports.\n *\n * The SDK does **not** auto-detect the head from the model — the caller is\n * responsible for picking a head that matches their export. Future families\n * (v5/v6/v7 with `[1, N, 5+nc]`) will be added as new literal members.\n */\nexport type DetectorHead = \"yolo\";\n\nexport interface DetectorOptions extends OrtSessionOptions {\n /**\n * Decoder family for the detection head. Default `\"yolo\"` covers\n * YOLOv8/v9/v10/v11/v12/v26.\n */\n readonly head?: DetectorHead;\n /** Class label spec — see {@link resolveLabels}. Defaults to the COCO 80-class preset. */\n readonly labels?: LabelSpec;\n /** Number of classes — used to validate the supplied labels. */\n readonly numClasses?: number;\n /** Model input `[width, height]` for letterboxing. Defaults to `[640, 640]`. */\n readonly inputSize?: readonly [number, number];\n /** Default minimum class score to keep a candidate. */\n readonly confThreshold?: number;\n /** Default IoU threshold for non-maximum suppression. */\n readonly iouThreshold?: number;\n /** Maximum number of detections per image. */\n readonly maxDetections?: number;\n}\n\nexport interface DetectorPredictOptions {\n /** Override the default confidence threshold. */\n readonly confThreshold?: number;\n /** Override the default IoU threshold. */\n readonly iouThreshold?: number;\n /**\n * If set, keep only detections whose `classId` is in this list.\n * Mirrors Ultralytics' `model.predict(img, classes=[0, 16])`.\n */\n readonly classes?: readonly number[];\n}\n\n/**\n * Object detector for anchor-free YOLO ONNX models (v8/v9/v10/v11/v12).\n *\n * `predict()` returns `Promise<DetectionResults[]>` (length 1 for a single\n * image), mirroring Ultralytics' `YOLO(\"img.jpg\")`. Iterate the envelope for\n * per-instance dataclasses, or use the bulk `boxes` view (`.xyxy`, `.xywh`,\n * `.xyxyn`, `.xywhn`, `.cls`, `.conf`).\n *\n * @example\n * ```typescript\n * const det = await Detector.create(\"/models/yolov8n.onnx\");\n * const results = await det.predict(\"/images/street.jpg\");\n * const r = results[0];\n * console.log(r.boxes.xyxy, r.boxes.cls, r.boxes.conf, r.names);\n * for (const d of r) {\n * console.log(d.cls, d.conf, d.box.xyxy);\n * }\n * ```\n */\nexport class Detector extends VisionTask {\n private constructor(\n session: OrtSession,\n private readonly _head: DetectorHead,\n private readonly _labels: readonly string[],\n private readonly _names: Readonly<Record<number, string>>,\n private readonly _inputSize: readonly [number, number],\n private readonly _confThreshold: number,\n private readonly _iouThreshold: number,\n private readonly _maxDetections: number,\n ) {\n super(session);\n }\n\n /** Load the model and resolve labels. */\n static async create(model: ModelSource, options: DetectorOptions = {}): Promise<Detector> {\n const head: DetectorHead = options.head ?? \"yolo\";\n if (head !== \"yolo\") {\n throw new Error(`Unsupported detector head '${head}'. Supported: 'yolo'.`);\n }\n const session = await OrtSession.create(model, options);\n const labels = resolveLabels(options.labels ?? \"coco\", {\n numClasses: options.numClasses,\n });\n const names: Record<number, string> = {};\n for (let i = 0; i < labels.length; i++) {\n names[i] = labels[i] as string;\n }\n return new Detector(\n session,\n head,\n labels,\n names,\n options.inputSize ?? [640, 640],\n options.confThreshold ?? 0.25,\n options.iouThreshold ?? 0.45,\n options.maxDetections ?? 300,\n );\n }\n\n /** The decoder family used to interpret the model's output. */\n get head(): DetectorHead {\n return this._head;\n }\n\n /** Class labels indexed by class id. */\n get labels(): readonly string[] {\n return this._labels;\n }\n\n /** Class id → class name dict (matches Ultralytics' `model.names`). */\n get names(): Readonly<Record<number, string>> {\n return this._names;\n }\n\n /** Number of classes the model predicts. */\n get numClasses(): number {\n return this._labels.length;\n }\n\n /**\n * Alias for {@link predict} — call the detector like a torch `nn.Module`.\n *\n * Use as `det.call(img)` since JavaScript class instances are not callable;\n * for direct invocation, prefer `det.predict(img)`. The full\n * {@link DetectorPredictOptions} (including `classes`) is supported.\n */\n async call(\n image: ImageInput,\n options: DetectorPredictOptions = {},\n ): Promise<DetectionResults[]> {\n return this.predict(image, options);\n }\n\n /** Run detection on a single image. */\n async predict(\n image: ImageInput,\n options: DetectorPredictOptions = {},\n ): Promise<DetectionResults[]> {\n const path = typeof image === \"string\" ? image : null;\n const original = await loadImage(image);\n const { tensor, scale, padLeft, padTop } = this._preprocess(original);\n const outputs = await this._session.run({ [this._session.inputName]: tensor });\n\n const firstOutputName = this._session.outputNames[0];\n if (firstOutputName === undefined) {\n throw new Error(\"Detector model has no outputs.\");\n }\n const raw = outputs[firstOutputName];\n if (raw === undefined) {\n throw new Error(`Detector model output ${firstOutputName} missing from run() result.`);\n }\n\n const decodedAll = decodeYolo(raw.data as Float32Array, raw.dims, {\n originalWidth: original.width,\n originalHeight: original.height,\n padLeft,\n padTop,\n scale,\n confThreshold: options.confThreshold ?? this._confThreshold,\n iouThreshold: options.iouThreshold ?? this._iouThreshold,\n maxDetections: this._maxDetections,\n });\n\n const decoded =\n options.classes !== undefined\n ? (() => {\n const allowed = new Set(options.classes);\n return decodedAll.filter((d) => allowed.has(d.classId));\n })()\n : decodedAll;\n\n const detections = decoded.map((d) =>\n this._buildResult(original, d.bbox, d.classId, d.confidence),\n );\n\n const orig: readonly [number, number] = [original.height, original.width];\n return [\n new DetectionResults(\n this._buildBoxes(detections, orig),\n detections,\n this._names,\n original,\n orig,\n path,\n ),\n ];\n }\n\n private _preprocess(image: RGBImage): {\n tensor: ort.Tensor;\n scale: number;\n padLeft: number;\n padTop: number;\n } {\n const [tw, th] = this._inputSize;\n const lb = letterbox(image, tw, th);\n const f32 = toFloat32(lb.image);\n const chw = toCHW(f32, lb.image.width, lb.image.height, 3);\n return {\n tensor: toFloat32Tensor(chw, [1, 3, lb.image.height, lb.image.width]),\n scale: lb.scale,\n padLeft: lb.padLeft,\n padTop: lb.padTop,\n };\n }\n\n private _buildResult(\n original: RGBImage,\n bbox: BoundingBox,\n classId: number,\n confidence: number,\n ): DetectionResult {\n const [x1, y1, x2, y2] = bbox.asIntXyxy();\n const cx1 = Math.max(0, x1);\n const cy1 = Math.max(0, y1);\n const cx2 = Math.min(original.width, x2);\n const cy2 = Math.min(original.height, y2);\n\n let cropped: RGBImage;\n if (cx2 > cx1 && cy2 > cy1) {\n const cw = cx2 - cx1;\n const ch = cy2 - cy1;\n const out = new Uint8Array(cw * ch * 3);\n for (let row = 0; row < ch; row++) {\n const srcOffset = ((cy1 + row) * original.width + cx1) * 3;\n out.set(original.data.subarray(srcOffset, srcOffset + cw * 3), row * cw * 3);\n }\n cropped = new RGBImage(out, cw, ch);\n } else {\n cropped = new RGBImage(new Uint8Array(0), 0, 0);\n }\n\n const className = this._names[classId] ?? `class_${classId}`;\n\n return {\n classId,\n className,\n confidence,\n bbox,\n cls: classId,\n name: className,\n conf: confidence,\n box: bbox,\n croppedImage: cropped,\n };\n }\n\n private _buildBoxes(\n detections: readonly DetectionResult[],\n origShape: readonly [number, number],\n ): Boxes {\n const n = detections.length;\n const xyxy = new Float32Array(n * 4);\n const cls = new Int32Array(n);\n const conf = new Float32Array(n);\n for (let i = 0; i < n; i++) {\n const d = detections[i] as DetectionResult;\n xyxy[i * 4] = d.bbox.x1;\n xyxy[i * 4 + 1] = d.bbox.y1;\n xyxy[i * 4 + 2] = d.bbox.x2;\n xyxy[i * 4 + 3] = d.bbox.y2;\n cls[i] = d.classId;\n conf[i] = d.confidence;\n }\n return new Boxes(xyxy, cls, conf, origShape);\n }\n}\n"],"names":["Detector","VisionTask","session","_head","_labels","_names","_inputSize","_confThreshold","_iouThreshold","_maxDetections","model","options","head","OrtSession","labels","resolveLabels","names","i","image","path","original","loadImage","tensor","scale","padLeft","padTop","outputs","firstOutputName","raw","decodedAll","decodeYolo","detections","allowed","d","orig","DetectionResults","tw","th","lb","letterbox","f32","toFloat32","chw","toCHW","toFloat32Tensor","bbox","classId","confidence","x1","y1","x2","y2","cx1","cy1","cx2","cy2","cropped","cw","ch","out","row","srcOffset","RGBImage","className","origShape","n","xyxy","cls","conf","Boxes"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("../core/session.cjs"),I=require("../io/image.cjs"),$=require("../labels.cjs"),B=require("../postprocess/segmentation.cjs"),x=require("../preprocess/image.cjs"),v=require("../results.cjs"),C=require("./base.cjs"),T=require("../types.cjs");class D extends C.VisionTask{constructor(n,s,o,e,t,a,i,r,p){super(n),this._head=s,this._labels=o,this._names=e,this._inputSize=t,this._confThreshold=a,this._iouThreshold=i,this._maxDetections=r,this._maskThreshold=p}_head;_labels;_names;_inputSize;_confThreshold;_iouThreshold;_maxDetections;_maskThreshold;static async create(n,s={}){const o=s.head??"yolo-seg";if(o!=="yolo-seg")throw new Error(`Unsupported segmenter head '${o}'. Supported: 'yolo-seg'.`);const e=await z.OrtSession.create(n,s),t=$.resolveLabels(s.labels??"coco",{numClasses:s.numClasses}),a={};for(let i=0;i<t.length;i++)a[i]=t[i];return new D(e,o,t,a,s.inputSize??[640,640],s.confThreshold??.25,s.iouThreshold??.45,s.maxDetections??300,s.maskThreshold??.5)}get head(){return this._head}get labels(){return this._labels}get names(){return this._names}get numClasses(){return this._labels.length}async call(n,s={}){return this.predict(n,s)}async predict(n,s={}){const o=typeof n=="string"?n:null,e=await I.loadImage(n),{tensor:t,scale:a,padLeft:i,padTop:r}=this._preprocess(e),p=await this._session.run({[this._session.inputName]:t}),{perAnchor:w,prototypes:_}=this._splitOutputs(p),f=B.decodeYoloSeg(w.data,w.dims,_.data,_.dims,{numClasses:this._labels.length,inputWidth:this._inputSize[0],inputHeight:this._inputSize[1],originalWidth:e.width,originalHeight:e.height,padLeft:i,padTop:r,scale:a,confThreshold:s.confThreshold??this._confThreshold,iouThreshold:s.iouThreshold??this._iouThreshold,maxDetections:this._maxDetections,maskThreshold:this._maskThreshold}),d=(s.classes!==void 0?(()=>{const h=new Set(s.classes);return f.filter(M=>h.has(M.classId))})():f).map(h=>this._buildResult(e,h.bbox,h.classId,h.confidence,h.mask)),u=[e.height,e.width];return[new v.SegmentationResults(this._buildBoxes(d,u),this._buildMasks(d,u),d,this._names,e,u,o)]}_preprocess(n){const[s,o]=this._inputSize,e=x.letterbox(n,s,o),t=x.toFloat32(e.image),a=x.toCHW(t,e.image.width,e.image.height,3);return{tensor:x.toFloat32Tensor(a,[1,3,e.image.height,e.image.width]),scale:e.scale,padLeft:e.padLeft,padTop:e.padTop}}_splitOutputs(n){let s,o;for(const e of this._session.outputNames){const t=n[e];t!==void 0&&(t.dims.length===3&&s===void 0?s=t:t.dims.length===4&&o===void 0&&(o=t))}if(s===void 0||o===void 0){const e=this._session.outputNames.map(t=>`${t}: ${JSON.stringify(n[t]?.dims??[])}`);throw new Error(`Segmenter expected one 3-D and one 4-D output, got [${e.join(", ")}].`)}return{perAnchor:s,prototypes:o}}_buildResult(n,s,o,e,t){const[a,i,r,p]=s.asIntXyxy(),w=Math.max(0,a),_=Math.max(0,i),f=Math.min(n.width,r),S=Math.min(n.height,p);let d,u=t;if(f>w&&S>_&&t.data.length>0){const M=f-w,O=S-_,c=Math.min(t.width,M),m=Math.min(t.height,O),y=new Uint8Array(c*m*3);for(let l=0;l<m;l++){const g=((_+l)*n.width+w)*3,R=l*c*3,k=l*t.width;for(let b=0;b<c;b++)if(t.data[k+b]!==0){const A=g+b*3,q=R+b*3;y[q]=n.data[A],y[q+1]=n.data[A+1],y[q+2]=n.data[A+2]}}if(d=new T.RGBImage(y,c,m),c!==t.width||m!==t.height){const l=new Uint8Array(c*m);for(let g=0;g<m;g++)l.set(t.data.subarray(g*t.width,g*t.width+c),g*c);u=new T.Mask(l,c,m)}}else u=new T.Mask(new Uint8Array(0),0,0),d=new T.RGBImage(new Uint8Array(0),0,0);const h=this._names[o]??`class_${o}`;return{classId:o,className:h,confidence:e,bbox:s,cls:o,name:h,conf:e,box:s,mask:u,segmentedImage:d}}_buildBoxes(n,s){const o=n.length,e=new Float32Array(o*4),t=new Int32Array(o),a=new Float32Array(o);for(let i=0;i<o;i++){const r=n[i];e[i*4]=r.bbox.x1,e[i*4+1]=r.bbox.y1,e[i*4+2]=r.bbox.x2,e[i*4+3]=r.bbox.y2,t[i]=r.classId,a[i]=r.confidence}return new v.Boxes(e,t,a,s)}_buildMasks(n,s){const o=new Float32Array(n.length*4);for(let e=0;e<n.length;e++){const t=n[e];o[e*4]=t.bbox.x1,o[e*4+1]=t.bbox.y1,o[e*4+2]=t.bbox.x2,o[e*4+3]=t.bbox.y2}return new v.Masks(n.map(e=>e.mask),o,s)}}exports.Segmenter=D;
|
|
2
|
+
//# sourceMappingURL=segmenter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmenter.cjs","sources":["../../../src/vision/tasks/segmenter.ts"],"sourcesContent":["/**\n * Instance-segmentation task using YOLO seg ONNX models (v8-seg / v11-seg / ...).\n */\n\nimport type * as ort from \"onnxruntime-web\";\n\nimport { type ModelSource, type OrtSessionOptions, OrtSession } from \"../core/session\";\nimport { type ImageInput, loadImage } from \"../io/image\";\nimport { type LabelSpec, resolveLabels } from \"../labels\";\nimport { decodeYoloSeg } from \"../postprocess/segmentation\";\nimport { letterbox, toCHW, toFloat32, toFloat32Tensor } from \"../preprocess/image\";\nimport { Boxes, Masks, SegmentationResults } from \"../results\";\nimport { VisionTask } from \"./base\";\nimport { type BoundingBox, type SegmentationResult, Mask, RGBImage } from \"../types\";\n\n/**\n * Decoder family for the segmentation head.\n *\n * - `\"yolo-seg\"`: YOLO instance-segmentation head with two outputs —\n * `[1, 4 + nc + nm, N]` per-anchor predictions plus `[1, nm, mh, mw]`\n * prototype masks. Covers YOLOv8-seg, v11-seg, v26-seg.\n *\n * The SDK does **not** auto-detect this — the caller is responsible for\n * picking a head that matches their export.\n */\nexport type SegmenterHead = \"yolo-seg\";\n\nexport interface SegmenterOptions extends OrtSessionOptions {\n /**\n * Decoder family for the segmentation head. Default `\"yolo-seg\"` covers\n * YOLOv8-seg/v11-seg/v26-seg.\n */\n readonly head?: SegmenterHead;\n /** Class label spec — see {@link resolveLabels}. Defaults to the COCO 80-class preset. */\n readonly labels?: LabelSpec;\n /** Number of classes — used to validate the supplied labels. */\n readonly numClasses?: number;\n /** Model input `[width, height]` for letterboxing. Defaults to `[640, 640]`. */\n readonly inputSize?: readonly [number, number];\n /** Default minimum class score to keep a candidate. */\n readonly confThreshold?: number;\n /** Default IoU threshold for non-maximum suppression. */\n readonly iouThreshold?: number;\n /** Maximum number of instances per image. */\n readonly maxDetections?: number;\n /** Probability cutoff applied to soft masks. Defaults to `0.5`. */\n readonly maskThreshold?: number;\n}\n\nexport interface SegmenterPredictOptions {\n readonly confThreshold?: number;\n readonly iouThreshold?: number;\n /**\n * If set, keep only instances whose `classId` is in this list.\n * Mirrors Ultralytics' `model.predict(img, classes=[0, 16])`.\n */\n readonly classes?: readonly number[];\n}\n\n/**\n * Instance segmenter for YOLO seg ONNX models (v8-seg / v11-seg / ...).\n *\n * The model is expected to expose two outputs:\n *\n * 1. `output0`: `(1, 4 + numClasses + numMaskCoefs, numAnchors)` — per-anchor\n * predictions (boxes, class scores, mask coefficients).\n * 2. `output1`: `(1, numMaskCoefs, maskH, maskW)` — prototype masks.\n *\n * `predict()` returns `Promise<SegmentationResults[]>` (length 1 for a\n * single image), mirroring Ultralytics' API. The envelope exposes:\n *\n * - `boxes`: bulk numpy view (`xyxy`, `xywh`, `xyxyn`, `xywhn`, `cls`, `conf`).\n * - `masks`: per-instance binary masks cropped to each box.\n * - per-instance {@link SegmentationResult} via iteration.\n *\n * @example\n * ```typescript\n * const seg = await Segmenter.create(\"/models/yolov8n-seg.onnx\");\n * const r = (await seg.predict(\"/images/street.jpg\"))[0];\n * for (const inst of r) {\n * console.log(inst.cls, inst.conf, inst.box.xyxy);\n * }\n * ```\n */\nexport class Segmenter extends VisionTask {\n private constructor(\n session: OrtSession,\n private readonly _head: SegmenterHead,\n private readonly _labels: readonly string[],\n private readonly _names: Readonly<Record<number, string>>,\n private readonly _inputSize: readonly [number, number],\n private readonly _confThreshold: number,\n private readonly _iouThreshold: number,\n private readonly _maxDetections: number,\n private readonly _maskThreshold: number,\n ) {\n super(session);\n }\n\n /** Load the model and resolve labels. */\n static async create(model: ModelSource, options: SegmenterOptions = {}): Promise<Segmenter> {\n const head: SegmenterHead = options.head ?? \"yolo-seg\";\n if (head !== \"yolo-seg\") {\n throw new Error(`Unsupported segmenter head '${head}'. Supported: 'yolo-seg'.`);\n }\n const session = await OrtSession.create(model, options);\n const labels = resolveLabels(options.labels ?? \"coco\", {\n numClasses: options.numClasses,\n });\n const names: Record<number, string> = {};\n for (let i = 0; i < labels.length; i++) {\n names[i] = labels[i] as string;\n }\n return new Segmenter(\n session,\n head,\n labels,\n names,\n options.inputSize ?? [640, 640],\n options.confThreshold ?? 0.25,\n options.iouThreshold ?? 0.45,\n options.maxDetections ?? 300,\n options.maskThreshold ?? 0.5,\n );\n }\n\n /** The decoder family used to interpret the model's output. */\n get head(): SegmenterHead {\n return this._head;\n }\n\n /** Class labels indexed by class id. */\n get labels(): readonly string[] {\n return this._labels;\n }\n\n /** Class id → class name dict (matches Ultralytics' `model.names`). */\n get names(): Readonly<Record<number, string>> {\n return this._names;\n }\n\n /** Number of classes the model predicts. */\n get numClasses(): number {\n return this._labels.length;\n }\n\n /** Alias for {@link predict} (parity with PyTorch `nn.Module.__call__`). */\n async call(\n image: ImageInput,\n options: SegmenterPredictOptions = {},\n ): Promise<SegmentationResults[]> {\n return this.predict(image, options);\n }\n\n /** Run instance segmentation on a single image. */\n async predict(\n image: ImageInput,\n options: SegmenterPredictOptions = {},\n ): Promise<SegmentationResults[]> {\n const path = typeof image === \"string\" ? image : null;\n const original = await loadImage(image);\n const { tensor, scale, padLeft, padTop } = this._preprocess(original);\n const outputs = await this._session.run({ [this._session.inputName]: tensor });\n\n const { perAnchor, prototypes } = this._splitOutputs(outputs);\n\n const decodedAll = decodeYoloSeg(\n perAnchor.data as Float32Array,\n perAnchor.dims,\n prototypes.data as Float32Array,\n prototypes.dims,\n {\n numClasses: this._labels.length,\n inputWidth: this._inputSize[0],\n inputHeight: this._inputSize[1],\n originalWidth: original.width,\n originalHeight: original.height,\n padLeft,\n padTop,\n scale,\n confThreshold: options.confThreshold ?? this._confThreshold,\n iouThreshold: options.iouThreshold ?? this._iouThreshold,\n maxDetections: this._maxDetections,\n maskThreshold: this._maskThreshold,\n },\n );\n\n const decoded =\n options.classes !== undefined\n ? (() => {\n const allowed = new Set(options.classes);\n return decodedAll.filter((d) => allowed.has(d.classId));\n })()\n : decodedAll;\n\n const detections = decoded.map((d) =>\n this._buildResult(original, d.bbox, d.classId, d.confidence, d.mask),\n );\n\n const orig: readonly [number, number] = [original.height, original.width];\n return [\n new SegmentationResults(\n this._buildBoxes(detections, orig),\n this._buildMasks(detections, orig),\n detections,\n this._names,\n original,\n orig,\n path,\n ),\n ];\n }\n\n private _preprocess(image: RGBImage): {\n tensor: ort.Tensor;\n scale: number;\n padLeft: number;\n padTop: number;\n } {\n const [tw, th] = this._inputSize;\n const lb = letterbox(image, tw, th);\n const f32 = toFloat32(lb.image);\n const chw = toCHW(f32, lb.image.width, lb.image.height, 3);\n return {\n tensor: toFloat32Tensor(chw, [1, 3, lb.image.height, lb.image.width]),\n scale: lb.scale,\n padLeft: lb.padLeft,\n padTop: lb.padTop,\n };\n }\n\n private _splitOutputs(outputs: Record<string, ort.Tensor>): {\n perAnchor: ort.Tensor;\n prototypes: ort.Tensor;\n } {\n let perAnchor: ort.Tensor | undefined;\n let prototypes: ort.Tensor | undefined;\n for (const name of this._session.outputNames) {\n const t = outputs[name];\n if (t === undefined) continue;\n if (t.dims.length === 3 && perAnchor === undefined) {\n perAnchor = t;\n } else if (t.dims.length === 4 && prototypes === undefined) {\n prototypes = t;\n }\n }\n if (perAnchor === undefined || prototypes === undefined) {\n const shapes = this._session.outputNames.map(\n (n) => `${n}: ${JSON.stringify(outputs[n]?.dims ?? [])}`,\n );\n throw new Error(\n `Segmenter expected one 3-D and one 4-D output, got [${shapes.join(\", \")}].`,\n );\n }\n return { perAnchor, prototypes };\n }\n\n private _buildResult(\n original: RGBImage,\n bbox: BoundingBox,\n classId: number,\n confidence: number,\n mask: Mask,\n ): SegmentationResult {\n const [x1, y1, x2, y2] = bbox.asIntXyxy();\n const cx1 = Math.max(0, x1);\n const cy1 = Math.max(0, y1);\n const cx2 = Math.min(original.width, x2);\n const cy2 = Math.min(original.height, y2);\n\n let segmentedImage: RGBImage;\n let finalMask = mask;\n if (cx2 > cx1 && cy2 > cy1 && mask.data.length > 0) {\n const cropW = cx2 - cx1;\n const cropH = cy2 - cy1;\n const mw = Math.min(mask.width, cropW);\n const mh = Math.min(mask.height, cropH);\n const segData = new Uint8Array(mw * mh * 3);\n for (let row = 0; row < mh; row++) {\n const srcRowOffset = ((cy1 + row) * original.width + cx1) * 3;\n const dstRowOffset = row * mw * 3;\n const maskRowOffset = row * mask.width;\n for (let col = 0; col < mw; col++) {\n const m = mask.data[maskRowOffset + col];\n if (m !== 0) {\n const s = srcRowOffset + col * 3;\n const d = dstRowOffset + col * 3;\n segData[d] = original.data[s];\n segData[d + 1] = original.data[s + 1];\n segData[d + 2] = original.data[s + 2];\n }\n }\n }\n segmentedImage = new RGBImage(segData, mw, mh);\n if (mw !== mask.width || mh !== mask.height) {\n const trimmed = new Uint8Array(mw * mh);\n for (let row = 0; row < mh; row++) {\n trimmed.set(\n mask.data.subarray(row * mask.width, row * mask.width + mw),\n row * mw,\n );\n }\n finalMask = new Mask(trimmed, mw, mh);\n }\n } else {\n finalMask = new Mask(new Uint8Array(0), 0, 0);\n segmentedImage = new RGBImage(new Uint8Array(0), 0, 0);\n }\n\n const className = this._names[classId] ?? `class_${classId}`;\n\n return {\n classId,\n className,\n confidence,\n bbox,\n cls: classId,\n name: className,\n conf: confidence,\n box: bbox,\n mask: finalMask,\n segmentedImage,\n };\n }\n\n private _buildBoxes(\n detections: readonly SegmentationResult[],\n origShape: readonly [number, number],\n ): Boxes {\n const n = detections.length;\n const xyxy = new Float32Array(n * 4);\n const cls = new Int32Array(n);\n const conf = new Float32Array(n);\n for (let i = 0; i < n; i++) {\n const d = detections[i] as SegmentationResult;\n xyxy[i * 4] = d.bbox.x1;\n xyxy[i * 4 + 1] = d.bbox.y1;\n xyxy[i * 4 + 2] = d.bbox.x2;\n xyxy[i * 4 + 3] = d.bbox.y2;\n cls[i] = d.classId;\n conf[i] = d.confidence;\n }\n return new Boxes(xyxy, cls, conf, origShape);\n }\n\n private _buildMasks(\n detections: readonly SegmentationResult[],\n origShape: readonly [number, number],\n ): Masks {\n const xyxy = new Float32Array(detections.length * 4);\n for (let i = 0; i < detections.length; i++) {\n const d = detections[i] as SegmentationResult;\n xyxy[i * 4] = d.bbox.x1;\n xyxy[i * 4 + 1] = d.bbox.y1;\n xyxy[i * 4 + 2] = d.bbox.x2;\n xyxy[i * 4 + 3] = d.bbox.y2;\n }\n return new Masks(\n detections.map((d) => d.mask),\n xyxy,\n origShape,\n );\n }\n}\n"],"names":["Segmenter","VisionTask","session","_head","_labels","_names","_inputSize","_confThreshold","_iouThreshold","_maxDetections","_maskThreshold","model","options","head","OrtSession","labels","resolveLabels","names","image","path","original","loadImage","tensor","scale","padLeft","padTop","outputs","perAnchor","prototypes","decodedAll","decodeYoloSeg","detections","allowed","d","orig","SegmentationResults","tw","th","lb","letterbox","f32","toFloat32","chw","toCHW","toFloat32Tensor","name","shapes","n","bbox","classId","confidence","mask","x1","y1","x2","y2","cx1","cy1","cx2","cy2","segmentedImage","finalMask","cropW","cropH","mw","mh","segData","row","srcRowOffset","dstRowOffset","maskRowOffset","col","s","RGBImage","trimmed","Mask","className","origShape","xyxy","cls","conf","Boxes","i","Masks"],"mappings":"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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { OrtSession as k } from "../core/session.js";
|
|
2
|
+
import { loadImage as C } from "../io/image.js";
|
|
3
|
+
import { resolveLabels as F } from "../labels.js";
|
|
4
|
+
import { decodeYoloSeg as I } from "../postprocess/segmentation.js";
|
|
5
|
+
import { letterbox as N, toFloat32 as U, toCHW as $, toFloat32Tensor as B } from "../preprocess/image.js";
|
|
6
|
+
import { SegmentationResults as H, Boxes as L, Masks as W } from "../results.js";
|
|
7
|
+
import { VisionTask as E } from "./base.js";
|
|
8
|
+
import { RGBImage as M, Mask as D } from "../types.js";
|
|
9
|
+
class v extends E {
|
|
10
|
+
constructor(n, s, o, t, e, r, i, a, _) {
|
|
11
|
+
super(n), this._head = s, this._labels = o, this._names = t, this._inputSize = e, this._confThreshold = r, this._iouThreshold = i, this._maxDetections = a, this._maskThreshold = _;
|
|
12
|
+
}
|
|
13
|
+
_head;
|
|
14
|
+
_labels;
|
|
15
|
+
_names;
|
|
16
|
+
_inputSize;
|
|
17
|
+
_confThreshold;
|
|
18
|
+
_iouThreshold;
|
|
19
|
+
_maxDetections;
|
|
20
|
+
_maskThreshold;
|
|
21
|
+
/** Load the model and resolve labels. */
|
|
22
|
+
static async create(n, s = {}) {
|
|
23
|
+
const o = s.head ?? "yolo-seg";
|
|
24
|
+
if (o !== "yolo-seg")
|
|
25
|
+
throw new Error(`Unsupported segmenter head '${o}'. Supported: 'yolo-seg'.`);
|
|
26
|
+
const t = await k.create(n, s), e = F(s.labels ?? "coco", {
|
|
27
|
+
numClasses: s.numClasses
|
|
28
|
+
}), r = {};
|
|
29
|
+
for (let i = 0; i < e.length; i++)
|
|
30
|
+
r[i] = e[i];
|
|
31
|
+
return new v(
|
|
32
|
+
t,
|
|
33
|
+
o,
|
|
34
|
+
e,
|
|
35
|
+
r,
|
|
36
|
+
s.inputSize ?? [640, 640],
|
|
37
|
+
s.confThreshold ?? 0.25,
|
|
38
|
+
s.iouThreshold ?? 0.45,
|
|
39
|
+
s.maxDetections ?? 300,
|
|
40
|
+
s.maskThreshold ?? 0.5
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
/** The decoder family used to interpret the model's output. */
|
|
44
|
+
get head() {
|
|
45
|
+
return this._head;
|
|
46
|
+
}
|
|
47
|
+
/** Class labels indexed by class id. */
|
|
48
|
+
get labels() {
|
|
49
|
+
return this._labels;
|
|
50
|
+
}
|
|
51
|
+
/** Class id → class name dict (matches Ultralytics' `model.names`). */
|
|
52
|
+
get names() {
|
|
53
|
+
return this._names;
|
|
54
|
+
}
|
|
55
|
+
/** Number of classes the model predicts. */
|
|
56
|
+
get numClasses() {
|
|
57
|
+
return this._labels.length;
|
|
58
|
+
}
|
|
59
|
+
/** Alias for {@link predict} (parity with PyTorch `nn.Module.__call__`). */
|
|
60
|
+
async call(n, s = {}) {
|
|
61
|
+
return this.predict(n, s);
|
|
62
|
+
}
|
|
63
|
+
/** Run instance segmentation on a single image. */
|
|
64
|
+
async predict(n, s = {}) {
|
|
65
|
+
const o = typeof n == "string" ? n : null, t = await C(n), { tensor: e, scale: r, padLeft: i, padTop: a } = this._preprocess(t), _ = await this._session.run({ [this._session.inputName]: e }), { perAnchor: f, prototypes: w } = this._splitOutputs(_), g = I(
|
|
66
|
+
f.data,
|
|
67
|
+
f.dims,
|
|
68
|
+
w.data,
|
|
69
|
+
w.dims,
|
|
70
|
+
{
|
|
71
|
+
numClasses: this._labels.length,
|
|
72
|
+
inputWidth: this._inputSize[0],
|
|
73
|
+
inputHeight: this._inputSize[1],
|
|
74
|
+
originalWidth: t.width,
|
|
75
|
+
originalHeight: t.height,
|
|
76
|
+
padLeft: i,
|
|
77
|
+
padTop: a,
|
|
78
|
+
scale: r,
|
|
79
|
+
confThreshold: s.confThreshold ?? this._confThreshold,
|
|
80
|
+
iouThreshold: s.iouThreshold ?? this._iouThreshold,
|
|
81
|
+
maxDetections: this._maxDetections,
|
|
82
|
+
maskThreshold: this._maskThreshold
|
|
83
|
+
}
|
|
84
|
+
), d = (s.classes !== void 0 ? (() => {
|
|
85
|
+
const h = new Set(s.classes);
|
|
86
|
+
return g.filter((T) => h.has(T.classId));
|
|
87
|
+
})() : g).map(
|
|
88
|
+
(h) => this._buildResult(t, h.bbox, h.classId, h.confidence, h.mask)
|
|
89
|
+
), m = [t.height, t.width];
|
|
90
|
+
return [
|
|
91
|
+
new H(
|
|
92
|
+
this._buildBoxes(d, m),
|
|
93
|
+
this._buildMasks(d, m),
|
|
94
|
+
d,
|
|
95
|
+
this._names,
|
|
96
|
+
t,
|
|
97
|
+
m,
|
|
98
|
+
o
|
|
99
|
+
)
|
|
100
|
+
];
|
|
101
|
+
}
|
|
102
|
+
_preprocess(n) {
|
|
103
|
+
const [s, o] = this._inputSize, t = N(n, s, o), e = U(t.image), r = $(e, t.image.width, t.image.height, 3);
|
|
104
|
+
return {
|
|
105
|
+
tensor: B(r, [1, 3, t.image.height, t.image.width]),
|
|
106
|
+
scale: t.scale,
|
|
107
|
+
padLeft: t.padLeft,
|
|
108
|
+
padTop: t.padTop
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
_splitOutputs(n) {
|
|
112
|
+
let s, o;
|
|
113
|
+
for (const t of this._session.outputNames) {
|
|
114
|
+
const e = n[t];
|
|
115
|
+
e !== void 0 && (e.dims.length === 3 && s === void 0 ? s = e : e.dims.length === 4 && o === void 0 && (o = e));
|
|
116
|
+
}
|
|
117
|
+
if (s === void 0 || o === void 0) {
|
|
118
|
+
const t = this._session.outputNames.map(
|
|
119
|
+
(e) => `${e}: ${JSON.stringify(n[e]?.dims ?? [])}`
|
|
120
|
+
);
|
|
121
|
+
throw new Error(
|
|
122
|
+
`Segmenter expected one 3-D and one 4-D output, got [${t.join(", ")}].`
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
return { perAnchor: s, prototypes: o };
|
|
126
|
+
}
|
|
127
|
+
_buildResult(n, s, o, t, e) {
|
|
128
|
+
const [r, i, a, _] = s.asIntXyxy(), f = Math.max(0, r), w = Math.max(0, i), g = Math.min(n.width, a), y = Math.min(n.height, _);
|
|
129
|
+
let d, m = e;
|
|
130
|
+
if (g > f && y > w && e.data.length > 0) {
|
|
131
|
+
const T = g - f, O = y - w, l = Math.min(e.width, T), u = Math.min(e.height, O), b = new Uint8Array(l * u * 3);
|
|
132
|
+
for (let c = 0; c < u; c++) {
|
|
133
|
+
const p = ((w + c) * n.width + f) * 3, R = c * l * 3, z = c * e.width;
|
|
134
|
+
for (let x = 0; x < l; x++)
|
|
135
|
+
if (e.data[z + x] !== 0) {
|
|
136
|
+
const S = p + x * 3, A = R + x * 3;
|
|
137
|
+
b[A] = n.data[S], b[A + 1] = n.data[S + 1], b[A + 2] = n.data[S + 2];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (d = new M(b, l, u), l !== e.width || u !== e.height) {
|
|
141
|
+
const c = new Uint8Array(l * u);
|
|
142
|
+
for (let p = 0; p < u; p++)
|
|
143
|
+
c.set(
|
|
144
|
+
e.data.subarray(p * e.width, p * e.width + l),
|
|
145
|
+
p * l
|
|
146
|
+
);
|
|
147
|
+
m = new D(c, l, u);
|
|
148
|
+
}
|
|
149
|
+
} else
|
|
150
|
+
m = new D(new Uint8Array(0), 0, 0), d = new M(new Uint8Array(0), 0, 0);
|
|
151
|
+
const h = this._names[o] ?? `class_${o}`;
|
|
152
|
+
return {
|
|
153
|
+
classId: o,
|
|
154
|
+
className: h,
|
|
155
|
+
confidence: t,
|
|
156
|
+
bbox: s,
|
|
157
|
+
cls: o,
|
|
158
|
+
name: h,
|
|
159
|
+
conf: t,
|
|
160
|
+
box: s,
|
|
161
|
+
mask: m,
|
|
162
|
+
segmentedImage: d
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
_buildBoxes(n, s) {
|
|
166
|
+
const o = n.length, t = new Float32Array(o * 4), e = new Int32Array(o), r = new Float32Array(o);
|
|
167
|
+
for (let i = 0; i < o; i++) {
|
|
168
|
+
const a = n[i];
|
|
169
|
+
t[i * 4] = a.bbox.x1, t[i * 4 + 1] = a.bbox.y1, t[i * 4 + 2] = a.bbox.x2, t[i * 4 + 3] = a.bbox.y2, e[i] = a.classId, r[i] = a.confidence;
|
|
170
|
+
}
|
|
171
|
+
return new L(t, e, r, s);
|
|
172
|
+
}
|
|
173
|
+
_buildMasks(n, s) {
|
|
174
|
+
const o = new Float32Array(n.length * 4);
|
|
175
|
+
for (let t = 0; t < n.length; t++) {
|
|
176
|
+
const e = n[t];
|
|
177
|
+
o[t * 4] = e.bbox.x1, o[t * 4 + 1] = e.bbox.y1, o[t * 4 + 2] = e.bbox.x2, o[t * 4 + 3] = e.bbox.y2;
|
|
178
|
+
}
|
|
179
|
+
return new W(
|
|
180
|
+
n.map((t) => t.mask),
|
|
181
|
+
o,
|
|
182
|
+
s
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
export {
|
|
187
|
+
v as Segmenter
|
|
188
|
+
};
|
|
189
|
+
//# sourceMappingURL=segmenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmenter.js","sources":["../../../src/vision/tasks/segmenter.ts"],"sourcesContent":["/**\n * Instance-segmentation task using YOLO seg ONNX models (v8-seg / v11-seg / ...).\n */\n\nimport type * as ort from \"onnxruntime-web\";\n\nimport { type ModelSource, type OrtSessionOptions, OrtSession } from \"../core/session\";\nimport { type ImageInput, loadImage } from \"../io/image\";\nimport { type LabelSpec, resolveLabels } from \"../labels\";\nimport { decodeYoloSeg } from \"../postprocess/segmentation\";\nimport { letterbox, toCHW, toFloat32, toFloat32Tensor } from \"../preprocess/image\";\nimport { Boxes, Masks, SegmentationResults } from \"../results\";\nimport { VisionTask } from \"./base\";\nimport { type BoundingBox, type SegmentationResult, Mask, RGBImage } from \"../types\";\n\n/**\n * Decoder family for the segmentation head.\n *\n * - `\"yolo-seg\"`: YOLO instance-segmentation head with two outputs —\n * `[1, 4 + nc + nm, N]` per-anchor predictions plus `[1, nm, mh, mw]`\n * prototype masks. Covers YOLOv8-seg, v11-seg, v26-seg.\n *\n * The SDK does **not** auto-detect this — the caller is responsible for\n * picking a head that matches their export.\n */\nexport type SegmenterHead = \"yolo-seg\";\n\nexport interface SegmenterOptions extends OrtSessionOptions {\n /**\n * Decoder family for the segmentation head. Default `\"yolo-seg\"` covers\n * YOLOv8-seg/v11-seg/v26-seg.\n */\n readonly head?: SegmenterHead;\n /** Class label spec — see {@link resolveLabels}. Defaults to the COCO 80-class preset. */\n readonly labels?: LabelSpec;\n /** Number of classes — used to validate the supplied labels. */\n readonly numClasses?: number;\n /** Model input `[width, height]` for letterboxing. Defaults to `[640, 640]`. */\n readonly inputSize?: readonly [number, number];\n /** Default minimum class score to keep a candidate. */\n readonly confThreshold?: number;\n /** Default IoU threshold for non-maximum suppression. */\n readonly iouThreshold?: number;\n /** Maximum number of instances per image. */\n readonly maxDetections?: number;\n /** Probability cutoff applied to soft masks. Defaults to `0.5`. */\n readonly maskThreshold?: number;\n}\n\nexport interface SegmenterPredictOptions {\n readonly confThreshold?: number;\n readonly iouThreshold?: number;\n /**\n * If set, keep only instances whose `classId` is in this list.\n * Mirrors Ultralytics' `model.predict(img, classes=[0, 16])`.\n */\n readonly classes?: readonly number[];\n}\n\n/**\n * Instance segmenter for YOLO seg ONNX models (v8-seg / v11-seg / ...).\n *\n * The model is expected to expose two outputs:\n *\n * 1. `output0`: `(1, 4 + numClasses + numMaskCoefs, numAnchors)` — per-anchor\n * predictions (boxes, class scores, mask coefficients).\n * 2. `output1`: `(1, numMaskCoefs, maskH, maskW)` — prototype masks.\n *\n * `predict()` returns `Promise<SegmentationResults[]>` (length 1 for a\n * single image), mirroring Ultralytics' API. The envelope exposes:\n *\n * - `boxes`: bulk numpy view (`xyxy`, `xywh`, `xyxyn`, `xywhn`, `cls`, `conf`).\n * - `masks`: per-instance binary masks cropped to each box.\n * - per-instance {@link SegmentationResult} via iteration.\n *\n * @example\n * ```typescript\n * const seg = await Segmenter.create(\"/models/yolov8n-seg.onnx\");\n * const r = (await seg.predict(\"/images/street.jpg\"))[0];\n * for (const inst of r) {\n * console.log(inst.cls, inst.conf, inst.box.xyxy);\n * }\n * ```\n */\nexport class Segmenter extends VisionTask {\n private constructor(\n session: OrtSession,\n private readonly _head: SegmenterHead,\n private readonly _labels: readonly string[],\n private readonly _names: Readonly<Record<number, string>>,\n private readonly _inputSize: readonly [number, number],\n private readonly _confThreshold: number,\n private readonly _iouThreshold: number,\n private readonly _maxDetections: number,\n private readonly _maskThreshold: number,\n ) {\n super(session);\n }\n\n /** Load the model and resolve labels. */\n static async create(model: ModelSource, options: SegmenterOptions = {}): Promise<Segmenter> {\n const head: SegmenterHead = options.head ?? \"yolo-seg\";\n if (head !== \"yolo-seg\") {\n throw new Error(`Unsupported segmenter head '${head}'. Supported: 'yolo-seg'.`);\n }\n const session = await OrtSession.create(model, options);\n const labels = resolveLabels(options.labels ?? \"coco\", {\n numClasses: options.numClasses,\n });\n const names: Record<number, string> = {};\n for (let i = 0; i < labels.length; i++) {\n names[i] = labels[i] as string;\n }\n return new Segmenter(\n session,\n head,\n labels,\n names,\n options.inputSize ?? [640, 640],\n options.confThreshold ?? 0.25,\n options.iouThreshold ?? 0.45,\n options.maxDetections ?? 300,\n options.maskThreshold ?? 0.5,\n );\n }\n\n /** The decoder family used to interpret the model's output. */\n get head(): SegmenterHead {\n return this._head;\n }\n\n /** Class labels indexed by class id. */\n get labels(): readonly string[] {\n return this._labels;\n }\n\n /** Class id → class name dict (matches Ultralytics' `model.names`). */\n get names(): Readonly<Record<number, string>> {\n return this._names;\n }\n\n /** Number of classes the model predicts. */\n get numClasses(): number {\n return this._labels.length;\n }\n\n /** Alias for {@link predict} (parity with PyTorch `nn.Module.__call__`). */\n async call(\n image: ImageInput,\n options: SegmenterPredictOptions = {},\n ): Promise<SegmentationResults[]> {\n return this.predict(image, options);\n }\n\n /** Run instance segmentation on a single image. */\n async predict(\n image: ImageInput,\n options: SegmenterPredictOptions = {},\n ): Promise<SegmentationResults[]> {\n const path = typeof image === \"string\" ? image : null;\n const original = await loadImage(image);\n const { tensor, scale, padLeft, padTop } = this._preprocess(original);\n const outputs = await this._session.run({ [this._session.inputName]: tensor });\n\n const { perAnchor, prototypes } = this._splitOutputs(outputs);\n\n const decodedAll = decodeYoloSeg(\n perAnchor.data as Float32Array,\n perAnchor.dims,\n prototypes.data as Float32Array,\n prototypes.dims,\n {\n numClasses: this._labels.length,\n inputWidth: this._inputSize[0],\n inputHeight: this._inputSize[1],\n originalWidth: original.width,\n originalHeight: original.height,\n padLeft,\n padTop,\n scale,\n confThreshold: options.confThreshold ?? this._confThreshold,\n iouThreshold: options.iouThreshold ?? this._iouThreshold,\n maxDetections: this._maxDetections,\n maskThreshold: this._maskThreshold,\n },\n );\n\n const decoded =\n options.classes !== undefined\n ? (() => {\n const allowed = new Set(options.classes);\n return decodedAll.filter((d) => allowed.has(d.classId));\n })()\n : decodedAll;\n\n const detections = decoded.map((d) =>\n this._buildResult(original, d.bbox, d.classId, d.confidence, d.mask),\n );\n\n const orig: readonly [number, number] = [original.height, original.width];\n return [\n new SegmentationResults(\n this._buildBoxes(detections, orig),\n this._buildMasks(detections, orig),\n detections,\n this._names,\n original,\n orig,\n path,\n ),\n ];\n }\n\n private _preprocess(image: RGBImage): {\n tensor: ort.Tensor;\n scale: number;\n padLeft: number;\n padTop: number;\n } {\n const [tw, th] = this._inputSize;\n const lb = letterbox(image, tw, th);\n const f32 = toFloat32(lb.image);\n const chw = toCHW(f32, lb.image.width, lb.image.height, 3);\n return {\n tensor: toFloat32Tensor(chw, [1, 3, lb.image.height, lb.image.width]),\n scale: lb.scale,\n padLeft: lb.padLeft,\n padTop: lb.padTop,\n };\n }\n\n private _splitOutputs(outputs: Record<string, ort.Tensor>): {\n perAnchor: ort.Tensor;\n prototypes: ort.Tensor;\n } {\n let perAnchor: ort.Tensor | undefined;\n let prototypes: ort.Tensor | undefined;\n for (const name of this._session.outputNames) {\n const t = outputs[name];\n if (t === undefined) continue;\n if (t.dims.length === 3 && perAnchor === undefined) {\n perAnchor = t;\n } else if (t.dims.length === 4 && prototypes === undefined) {\n prototypes = t;\n }\n }\n if (perAnchor === undefined || prototypes === undefined) {\n const shapes = this._session.outputNames.map(\n (n) => `${n}: ${JSON.stringify(outputs[n]?.dims ?? [])}`,\n );\n throw new Error(\n `Segmenter expected one 3-D and one 4-D output, got [${shapes.join(\", \")}].`,\n );\n }\n return { perAnchor, prototypes };\n }\n\n private _buildResult(\n original: RGBImage,\n bbox: BoundingBox,\n classId: number,\n confidence: number,\n mask: Mask,\n ): SegmentationResult {\n const [x1, y1, x2, y2] = bbox.asIntXyxy();\n const cx1 = Math.max(0, x1);\n const cy1 = Math.max(0, y1);\n const cx2 = Math.min(original.width, x2);\n const cy2 = Math.min(original.height, y2);\n\n let segmentedImage: RGBImage;\n let finalMask = mask;\n if (cx2 > cx1 && cy2 > cy1 && mask.data.length > 0) {\n const cropW = cx2 - cx1;\n const cropH = cy2 - cy1;\n const mw = Math.min(mask.width, cropW);\n const mh = Math.min(mask.height, cropH);\n const segData = new Uint8Array(mw * mh * 3);\n for (let row = 0; row < mh; row++) {\n const srcRowOffset = ((cy1 + row) * original.width + cx1) * 3;\n const dstRowOffset = row * mw * 3;\n const maskRowOffset = row * mask.width;\n for (let col = 0; col < mw; col++) {\n const m = mask.data[maskRowOffset + col];\n if (m !== 0) {\n const s = srcRowOffset + col * 3;\n const d = dstRowOffset + col * 3;\n segData[d] = original.data[s];\n segData[d + 1] = original.data[s + 1];\n segData[d + 2] = original.data[s + 2];\n }\n }\n }\n segmentedImage = new RGBImage(segData, mw, mh);\n if (mw !== mask.width || mh !== mask.height) {\n const trimmed = new Uint8Array(mw * mh);\n for (let row = 0; row < mh; row++) {\n trimmed.set(\n mask.data.subarray(row * mask.width, row * mask.width + mw),\n row * mw,\n );\n }\n finalMask = new Mask(trimmed, mw, mh);\n }\n } else {\n finalMask = new Mask(new Uint8Array(0), 0, 0);\n segmentedImage = new RGBImage(new Uint8Array(0), 0, 0);\n }\n\n const className = this._names[classId] ?? `class_${classId}`;\n\n return {\n classId,\n className,\n confidence,\n bbox,\n cls: classId,\n name: className,\n conf: confidence,\n box: bbox,\n mask: finalMask,\n segmentedImage,\n };\n }\n\n private _buildBoxes(\n detections: readonly SegmentationResult[],\n origShape: readonly [number, number],\n ): Boxes {\n const n = detections.length;\n const xyxy = new Float32Array(n * 4);\n const cls = new Int32Array(n);\n const conf = new Float32Array(n);\n for (let i = 0; i < n; i++) {\n const d = detections[i] as SegmentationResult;\n xyxy[i * 4] = d.bbox.x1;\n xyxy[i * 4 + 1] = d.bbox.y1;\n xyxy[i * 4 + 2] = d.bbox.x2;\n xyxy[i * 4 + 3] = d.bbox.y2;\n cls[i] = d.classId;\n conf[i] = d.confidence;\n }\n return new Boxes(xyxy, cls, conf, origShape);\n }\n\n private _buildMasks(\n detections: readonly SegmentationResult[],\n origShape: readonly [number, number],\n ): Masks {\n const xyxy = new Float32Array(detections.length * 4);\n for (let i = 0; i < detections.length; i++) {\n const d = detections[i] as SegmentationResult;\n xyxy[i * 4] = d.bbox.x1;\n xyxy[i * 4 + 1] = d.bbox.y1;\n xyxy[i * 4 + 2] = d.bbox.x2;\n xyxy[i * 4 + 3] = d.bbox.y2;\n }\n return new Masks(\n detections.map((d) => d.mask),\n xyxy,\n origShape,\n );\n }\n}\n"],"names":["Segmenter","VisionTask","session","_head","_labels","_names","_inputSize","_confThreshold","_iouThreshold","_maxDetections","_maskThreshold","model","options","head","OrtSession","labels","resolveLabels","names","image","path","original","loadImage","tensor","scale","padLeft","padTop","outputs","perAnchor","prototypes","decodedAll","decodeYoloSeg","detections","allowed","d","orig","SegmentationResults","tw","th","lb","letterbox","f32","toFloat32","chw","toCHW","toFloat32Tensor","name","t","shapes","n","bbox","classId","confidence","mask","x1","y1","x2","y2","cx1","cy1","cx2","cy2","segmentedImage","finalMask","cropW","cropH","mw","mh","segData","row","srcRowOffset","dstRowOffset","maskRowOffset","col","s","RGBImage","trimmed","Mask","className","origShape","xyxy","cls","conf","Boxes","i","Masks"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./core/exceptions.cjs");class y{constructor(s,t,h){if(this.data=s,this.width=t,this.height=h,s.length!==t*h*3)throw new r.ImageLoadError(`RGBImage data length ${s.length} does not match width * height * 3 = ${t*h*3}.`)}data;width;height}class o{constructor(s,t,h,i){this.x1=s,this.y1=t,this.x2=h,this.y2=i}x1;y1;x2;y2;get width(){return Math.max(0,this.x2-this.x1)}get height(){return Math.max(0,this.y2-this.y1)}get area(){return this.width*this.height}get xyxy(){return[this.x1,this.y1,this.x2,this.y2]}get xywh(){return[(this.x1+this.x2)/2,(this.y1+this.y2)/2,this.width,this.height]}xyxyn(s){const[t,h]=s;return h<=0||t<=0?[0,0,0,0]:[this.x1/h,this.y1/t,this.x2/h,this.y2/t]}xywhn(s){const[t,h]=s;if(h<=0||t<=0)return[0,0,0,0];const[i,n,a,x]=this.xywh;return[i/h,n/t,a/h,x/t]}asXyxy(){return[this.x1,this.y1,this.x2,this.y2]}asXywh(){return[this.x1,this.y1,this.width,this.height]}asIntXyxy(){return[Math.trunc(this.x1),Math.trunc(this.y1),Math.trunc(this.x2),Math.trunc(this.y2)]}}class g{constructor(s,t,h){if(this.data=s,this.width=t,this.height=h,s.length!==t*h)throw new r.ImageLoadError(`Mask data length ${s.length} does not match width * height = ${t*h}.`)}data;width;height}exports.BoundingBox=o;exports.Mask=g;exports.RGBImage=y;
|
|
2
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","sources":["../../src/vision/types.ts"],"sourcesContent":["/**\n * Public output types returned by the SDK's vision tasks.\n *\n * These types form the contract between the SDK and its callers. They mirror\n * the Python `ort-vision-sdk` output dataclasses 1-to-1.\n *\n * Naming is intentionally compatible with the Ultralytics / torchvision idiom\n * (`cls`, `conf`, `box`, `xyxy`, `xywh`, normalized variants) so code ported\n * from those projects keeps working with minimal edits. The original verbose\n * names (`classId`, `className`, `confidence`, `bbox`) are still populated for\n * backwards compatibility.\n */\n\nimport { ImageLoadError } from \"./core/exceptions\";\n\n/**\n * HWC RGB uint8 image — the canonical image format used across the SDK.\n *\n * `data.length` must equal `width * height * 3`. The buffer is laid out row\n * by row, top-to-bottom, with each pixel as `[R, G, B]`.\n */\nexport class RGBImage {\n constructor(\n public readonly data: Uint8Array,\n public readonly width: number,\n public readonly height: number,\n ) {\n if (data.length !== width * height * 3) {\n throw new ImageLoadError(\n `RGBImage data length ${data.length} does not match width * height * 3 = ${\n width * height * 3\n }.`,\n );\n }\n }\n}\n\n/**\n * Axis-aligned bounding box in absolute pixel coordinates (xyxy format).\n *\n * Coordinates refer to the original input image (before any internal resize),\n * so callers can map detections back onto their source image without any\n * additional bookkeeping.\n */\nexport class BoundingBox {\n constructor(\n public readonly x1: number,\n public readonly y1: number,\n public readonly x2: number,\n public readonly y2: number,\n ) {}\n\n /** Box width in pixels (clamped to non-negative). */\n get width(): number {\n return Math.max(0, this.x2 - this.x1);\n }\n\n /** Box height in pixels (clamped to non-negative). */\n get height(): number {\n return Math.max(0, this.y2 - this.y1);\n }\n\n /** Box area in pixels squared. */\n get area(): number {\n return this.width * this.height;\n }\n\n /** The box as `[x1, y1, x2, y2]` in absolute pixels (Ultralytics-style). */\n get xyxy(): readonly [number, number, number, number] {\n return [this.x1, this.y1, this.x2, this.y2];\n }\n\n /**\n * The box as `[cx, cy, w, h]` with `(cx, cy)` at the center.\n *\n * Matches Ultralytics' `boxes.xywh` and YOLO's native head format. For the\n * top-left `[x, y, w, h]` convention, use {@link asXywh}.\n */\n get xywh(): readonly [number, number, number, number] {\n return [(this.x1 + this.x2) / 2, (this.y1 + this.y2) / 2, this.width, this.height];\n }\n\n /**\n * The box as `[x1, y1, x2, y2]` normalized to `[0, 1]`.\n *\n * @param origShape `[height, width]` of the source image, in pixels.\n */\n xyxyn(origShape: readonly [number, number]): readonly [number, number, number, number] {\n const [h, w] = origShape;\n if (w <= 0 || h <= 0) return [0, 0, 0, 0];\n return [this.x1 / w, this.y1 / h, this.x2 / w, this.y2 / h];\n }\n\n /**\n * The box as `[cx, cy, w, h]` normalized to `[0, 1]`.\n *\n * @param origShape `[height, width]` of the source image, in pixels.\n */\n xywhn(origShape: readonly [number, number]): readonly [number, number, number, number] {\n const [h, w] = origShape;\n if (w <= 0 || h <= 0) return [0, 0, 0, 0];\n const [cx, cy, bw, bh] = this.xywh;\n return [cx / w, cy / h, bw / w, bh / h];\n }\n\n /** Returns `[x1, y1, x2, y2]`. */\n asXyxy(): readonly [number, number, number, number] {\n return [this.x1, this.y1, this.x2, this.y2];\n }\n\n /**\n * Returns `[x, y, width, height]` with `(x, y)` at the **top-left**.\n *\n * Note: this is the top-left convention. Ultralytics' `xywh` getter uses\n * **center** coordinates — for that, read {@link xywh}.\n */\n asXywh(): readonly [number, number, number, number] {\n return [this.x1, this.y1, this.width, this.height];\n }\n\n /** Returns `[x1, y1, x2, y2]` truncated to integers, useful for slicing arrays. */\n asIntXyxy(): readonly [number, number, number, number] {\n return [Math.trunc(this.x1), Math.trunc(this.y1), Math.trunc(this.x2), Math.trunc(this.y2)];\n }\n}\n\n/**\n * Probability assigned to a single class for a classification prediction.\n *\n * `cls` / `name` / `conf` are Ultralytics-style aliases populated alongside\n * the verbose `classId` / `className` / `probability` fields.\n */\nexport interface ClassProbability {\n readonly classId: number;\n readonly className: string;\n readonly probability: number;\n /** Alias for `classId` (Ultralytics-style). */\n readonly cls: number;\n /** Alias for `className`. */\n readonly name: string;\n /** Alias for `probability` (Ultralytics-style). */\n readonly conf: number;\n}\n\n/**\n * Output of an image classification inference.\n */\nexport interface ClassificationResult {\n readonly classId: number;\n readonly className: string;\n readonly confidence: number;\n /** Alias for `classId` (Ultralytics-style). */\n readonly cls: number;\n /** Alias for `className`. */\n readonly name: string;\n /** Alias for `confidence` (Ultralytics-style). */\n readonly conf: number;\n /** The original input image as an HWC RGB uint8 array. */\n readonly image: RGBImage;\n /**\n * Probabilities per class, sorted in descending order. The first entry\n * mirrors `classId`, `className`, and `confidence`. When `topK` was passed\n * to `predict`, the array is truncated to that length.\n */\n readonly probabilities: readonly ClassProbability[];\n}\n\n/**\n * Single detected object produced by an object-detection model.\n */\nexport interface DetectionResult {\n readonly classId: number;\n readonly className: string;\n readonly confidence: number;\n readonly bbox: BoundingBox;\n /** Alias for `classId` (Ultralytics-style). */\n readonly cls: number;\n /** Alias for `className`. */\n readonly name: string;\n /** Alias for `confidence` (Ultralytics-style). */\n readonly conf: number;\n /** Alias for `bbox` (Ultralytics-style). */\n readonly box: BoundingBox;\n /**\n * The original image cropped to `bbox`, HWC RGB uint8. Empty boxes\n * (zero area) yield a zero-sized `RGBImage`.\n */\n readonly croppedImage: RGBImage;\n}\n\n/**\n * Single-channel binary or grayscale mask, laid out row-major.\n *\n * `data.length` must equal `width * height`. For binary masks, values are\n * `0` (background) or `255` (foreground); soft masks may use the full\n * `[0, 255]` range.\n */\nexport class Mask {\n constructor(\n public readonly data: Uint8Array,\n public readonly width: number,\n public readonly height: number,\n ) {\n if (data.length !== width * height) {\n throw new ImageLoadError(\n `Mask data length ${data.length} does not match width * height = ${\n width * height\n }.`,\n );\n }\n }\n}\n\n/**\n * Single segmented instance produced by an instance-segmentation model.\n *\n * Mirrors {@link DetectionResult} and adds the per-instance binary mask\n * plus a \"ready-to-display\" background-removed crop.\n */\nexport interface SegmentationResult {\n readonly classId: number;\n readonly className: string;\n readonly confidence: number;\n readonly bbox: BoundingBox;\n /** Alias for `classId` (Ultralytics-style). */\n readonly cls: number;\n /** Alias for `className`. */\n readonly name: string;\n /** Alias for `confidence` (Ultralytics-style). */\n readonly conf: number;\n /** Alias for `bbox` (Ultralytics-style). */\n readonly box: BoundingBox;\n /**\n * Binary mask cropped to `bbox`. Values are `0` (background) or `255`\n * (foreground). Empty boxes yield a zero-sized `Mask`.\n */\n readonly mask: Mask;\n /**\n * The original image cropped to `bbox` with background pixels (where\n * `mask.data[i] === 0`) zeroed out. Empty boxes yield a zero-sized\n * `RGBImage`.\n */\n readonly segmentedImage: RGBImage;\n}\n"],"names":["RGBImage","data","width","height","ImageLoadError","BoundingBox","x1","y1","x2","y2","origShape","h","w","cx","cy","bw","bh","Mask"],"mappings":"yHAqBO,MAAMA,CAAS,CAClB,YACoBC,EACAC,EACAC,EAClB,CACE,GAJgB,KAAA,KAAAF,EACA,KAAA,MAAAC,EACA,KAAA,OAAAC,EAEZF,EAAK,SAAWC,EAAQC,EAAS,EACjC,MAAM,IAAIC,EAAAA,eACN,wBAAwBH,EAAK,MAAM,wCAC/BC,EAAQC,EAAS,CACrB,GAAA,CAGZ,CAXoB,KACA,MACA,MAUxB,CASO,MAAME,CAAY,CACrB,YACoBC,EACAC,EACAC,EACAC,EAClB,CAJkB,KAAA,GAAAH,EACA,KAAA,GAAAC,EACA,KAAA,GAAAC,EACA,KAAA,GAAAC,CACjB,CAJiB,GACA,GACA,GACA,GAIpB,IAAI,OAAgB,CAChB,OAAO,KAAK,IAAI,EAAG,KAAK,GAAK,KAAK,EAAE,CACxC,CAGA,IAAI,QAAiB,CACjB,OAAO,KAAK,IAAI,EAAG,KAAK,GAAK,KAAK,EAAE,CACxC,CAGA,IAAI,MAAe,CACf,OAAO,KAAK,MAAQ,KAAK,MAC7B,CAGA,IAAI,MAAkD,CAClD,MAAO,CAAC,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,EAAE,CAC9C,CAQA,IAAI,MAAkD,CAClD,MAAO,EAAE,KAAK,GAAK,KAAK,IAAM,GAAI,KAAK,GAAK,KAAK,IAAM,EAAG,KAAK,MAAO,KAAK,MAAM,CACrF,CAOA,MAAMC,EAAiF,CACnF,KAAM,CAACC,EAAGC,CAAC,EAAIF,EACf,OAAIE,GAAK,GAAKD,GAAK,EAAU,CAAC,EAAG,EAAG,EAAG,CAAC,EACjC,CAAC,KAAK,GAAKC,EAAG,KAAK,GAAKD,EAAG,KAAK,GAAKC,EAAG,KAAK,GAAKD,CAAC,CAC9D,CAOA,MAAMD,EAAiF,CACnF,KAAM,CAACC,EAAGC,CAAC,EAAIF,EACf,GAAIE,GAAK,GAAKD,GAAK,QAAU,CAAC,EAAG,EAAG,EAAG,CAAC,EACxC,KAAM,CAACE,EAAIC,EAAIC,EAAIC,CAAE,EAAI,KAAK,KAC9B,MAAO,CAACH,EAAKD,EAAGE,EAAKH,EAAGI,EAAKH,EAAGI,EAAKL,CAAC,CAC1C,CAGA,QAAoD,CAChD,MAAO,CAAC,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,EAAE,CAC9C,CAQA,QAAoD,CAChD,MAAO,CAAC,KAAK,GAAI,KAAK,GAAI,KAAK,MAAO,KAAK,MAAM,CACrD,CAGA,WAAuD,CACnD,MAAO,CAAC,KAAK,MAAM,KAAK,EAAE,EAAG,KAAK,MAAM,KAAK,EAAE,EAAG,KAAK,MAAM,KAAK,EAAE,EAAG,KAAK,MAAM,KAAK,EAAE,CAAC,CAC9F,CACJ,CAyEO,MAAMM,CAAK,CACd,YACoBhB,EACAC,EACAC,EAClB,CACE,GAJgB,KAAA,KAAAF,EACA,KAAA,MAAAC,EACA,KAAA,OAAAC,EAEZF,EAAK,SAAWC,EAAQC,EACxB,MAAM,IAAIC,EAAAA,eACN,oBAAoBH,EAAK,MAAM,oCAC3BC,EAAQC,CACZ,GAAA,CAGZ,CAXoB,KACA,MACA,MAUxB"}
|