tempest-react-sdk 0.62.0 → 0.64.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 +10 -7
- package/dist/br/BrazilMap.module.cjs +1 -0
- package/dist/br/BrazilMap.module.cjs.map +1 -1
- package/dist/br/BrazilMap.module.js +1 -0
- package/dist/br/BrazilMap.module.js.map +1 -1
- package/dist/br/MapLegend.module.cjs +1 -0
- package/dist/br/MapLegend.module.cjs.map +1 -1
- package/dist/br/MapLegend.module.js +1 -0
- package/dist/br/MapLegend.module.js.map +1 -1
- package/dist/br/MunicipalitySearch.module.cjs +1 -0
- package/dist/br/MunicipalitySearch.module.cjs.map +1 -1
- package/dist/br/MunicipalitySearch.module.js +1 -0
- package/dist/br/MunicipalitySearch.module.js.map +1 -1
- package/dist/br/PixQRCode.module.cjs +1 -0
- package/dist/br/PixQRCode.module.cjs.map +1 -1
- package/dist/br/PixQRCode.module.js +1 -0
- package/dist/br/PixQRCode.module.js.map +1 -1
- package/dist/components/AIChat/AIChat.module.cjs +1 -0
- package/dist/components/AIChat/AIChat.module.cjs.map +1 -1
- package/dist/components/AIChat/AIChat.module.js +1 -0
- package/dist/components/AIChat/AIChat.module.js.map +1 -1
- package/dist/components/Accordion/Accordion.module.cjs +1 -0
- package/dist/components/Accordion/Accordion.module.cjs.map +1 -1
- package/dist/components/Accordion/Accordion.module.js +1 -0
- package/dist/components/Accordion/Accordion.module.js.map +1 -1
- package/dist/components/Alert/Alert.module.cjs +1 -0
- package/dist/components/Alert/Alert.module.cjs.map +1 -1
- package/dist/components/Alert/Alert.module.js +1 -0
- package/dist/components/Alert/Alert.module.js.map +1 -1
- package/dist/components/AppBar/AppBar.module.cjs +1 -0
- package/dist/components/AppBar/AppBar.module.cjs.map +1 -1
- package/dist/components/AppBar/AppBar.module.js +1 -0
- package/dist/components/AppBar/AppBar.module.js.map +1 -1
- package/dist/components/AppShell/AppShell.module.cjs +1 -0
- package/dist/components/AppShell/AppShell.module.cjs.map +1 -1
- package/dist/components/AppShell/AppShell.module.js +1 -0
- package/dist/components/AppShell/AppShell.module.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.module.cjs +1 -0
- package/dist/components/AspectRatio/AspectRatio.module.cjs.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.module.js +1 -0
- package/dist/components/AspectRatio/AspectRatio.module.js.map +1 -1
- package/dist/components/AudioPlayer/AudioPlayer.module.cjs +1 -0
- package/dist/components/AudioPlayer/AudioPlayer.module.cjs.map +1 -1
- package/dist/components/AudioPlayer/AudioPlayer.module.js +1 -0
- package/dist/components/AudioPlayer/AudioPlayer.module.js.map +1 -1
- package/dist/components/AudioRecorder/AudioRecorder.module.cjs +1 -0
- package/dist/components/AudioRecorder/AudioRecorder.module.cjs.map +1 -1
- package/dist/components/AudioRecorder/AudioRecorder.module.js +1 -0
- package/dist/components/AudioRecorder/AudioRecorder.module.js.map +1 -1
- package/dist/components/Avatar/Avatar.module.cjs +1 -0
- package/dist/components/Avatar/Avatar.module.cjs.map +1 -1
- package/dist/components/Avatar/Avatar.module.js +1 -0
- package/dist/components/Avatar/Avatar.module.js.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.module.cjs +1 -0
- package/dist/components/AvatarGroup/AvatarGroup.module.cjs.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.module.js +1 -0
- package/dist/components/AvatarGroup/AvatarGroup.module.js.map +1 -1
- package/dist/components/Badge/Badge.module.cjs +1 -0
- package/dist/components/Badge/Badge.module.cjs.map +1 -1
- package/dist/components/Badge/Badge.module.js +1 -0
- package/dist/components/Badge/Badge.module.js.map +1 -1
- package/dist/components/Banner/Banner.module.cjs +1 -0
- package/dist/components/Banner/Banner.module.cjs.map +1 -1
- package/dist/components/Banner/Banner.module.js +1 -0
- package/dist/components/Banner/Banner.module.js.map +1 -1
- package/dist/components/BarList/BarList.module.cjs +1 -0
- package/dist/components/BarList/BarList.module.cjs.map +1 -1
- package/dist/components/BarList/BarList.module.js +1 -0
- package/dist/components/BarList/BarList.module.js.map +1 -1
- package/dist/components/BarcodeScanner/BarcodeScanner.module.cjs +1 -0
- package/dist/components/BarcodeScanner/BarcodeScanner.module.cjs.map +1 -1
- package/dist/components/BarcodeScanner/BarcodeScanner.module.js +1 -0
- package/dist/components/BarcodeScanner/BarcodeScanner.module.js.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.module.cjs +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.module.cjs.map +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.module.js +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.module.js.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.module.cjs +1 -0
- package/dist/components/BottomSheet/BottomSheet.module.cjs.map +1 -1
- package/dist/components/BottomSheet/BottomSheet.module.js +1 -0
- package/dist/components/BottomSheet/BottomSheet.module.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.module.cjs +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.module.cjs.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.module.js +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.module.js.map +1 -1
- package/dist/components/Button/Button.module.cjs +1 -0
- package/dist/components/Button/Button.module.cjs.map +1 -1
- package/dist/components/Button/Button.module.js +1 -0
- package/dist/components/Button/Button.module.js.map +1 -1
- package/dist/components/Calendar/Calendar.module.cjs +1 -0
- package/dist/components/Calendar/Calendar.module.cjs.map +1 -1
- package/dist/components/Calendar/Calendar.module.js +1 -0
- package/dist/components/Calendar/Calendar.module.js.map +1 -1
- package/dist/components/Card/Card.module.cjs +1 -0
- package/dist/components/Card/Card.module.cjs.map +1 -1
- package/dist/components/Card/Card.module.js +1 -0
- package/dist/components/Card/Card.module.js.map +1 -1
- package/dist/components/Carousel/Carousel.module.cjs +1 -0
- package/dist/components/Carousel/Carousel.module.cjs.map +1 -1
- package/dist/components/Carousel/Carousel.module.js +1 -0
- package/dist/components/Carousel/Carousel.module.js.map +1 -1
- package/dist/components/Center/Center.module.cjs +1 -0
- package/dist/components/Center/Center.module.cjs.map +1 -1
- package/dist/components/Center/Center.module.js +1 -0
- package/dist/components/Center/Center.module.js.map +1 -1
- package/dist/components/Chat/Chat.cjs +1 -1
- package/dist/components/Chat/Chat.cjs.map +1 -1
- package/dist/components/Chat/Chat.js +71 -96
- package/dist/components/Chat/Chat.js.map +1 -1
- package/dist/components/Chat/Chat.module.cjs +2 -1
- package/dist/components/Chat/Chat.module.cjs.map +1 -1
- package/dist/components/Chat/Chat.module.js +31 -8
- package/dist/components/Chat/Chat.module.js.map +1 -1
- package/dist/components/Chat/ChatActionsMenu.cjs +2 -0
- package/dist/components/Chat/ChatActionsMenu.cjs.map +1 -0
- package/dist/components/Chat/ChatActionsMenu.js +14 -0
- package/dist/components/Chat/ChatActionsMenu.js.map +1 -0
- package/dist/components/Chat/ChatAttachments.cjs +2 -0
- package/dist/components/Chat/ChatAttachments.cjs.map +1 -0
- package/dist/components/Chat/ChatAttachments.js +80 -0
- package/dist/components/Chat/ChatAttachments.js.map +1 -0
- package/dist/components/Chat/ChatBubble.cjs +2 -0
- package/dist/components/Chat/ChatBubble.cjs.map +1 -0
- package/dist/components/Chat/ChatBubble.js +155 -0
- package/dist/components/Chat/ChatBubble.js.map +1 -0
- package/dist/components/Chat/chat-groups.cjs +1 -1
- package/dist/components/Chat/chat-groups.cjs.map +1 -1
- package/dist/components/Chat/chat-groups.js +42 -2
- package/dist/components/Chat/chat-groups.js.map +1 -1
- package/dist/components/Chat/chat-receipt.cjs +2 -0
- package/dist/components/Chat/chat-receipt.cjs.map +1 -0
- package/dist/components/Chat/chat-receipt.js +14 -0
- package/dist/components/Chat/chat-receipt.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.module.cjs +1 -0
- package/dist/components/Checkbox/Checkbox.module.cjs.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.js +1 -0
- package/dist/components/Checkbox/Checkbox.module.js.map +1 -1
- package/dist/components/ChipInput/ChipInput.module.cjs +1 -0
- package/dist/components/ChipInput/ChipInput.module.cjs.map +1 -1
- package/dist/components/ChipInput/ChipInput.module.js +1 -0
- package/dist/components/ChipInput/ChipInput.module.js.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.cjs +1 -0
- package/dist/components/CodeBlock/CodeBlock.module.cjs.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.js +1 -0
- package/dist/components/CodeBlock/CodeBlock.module.js.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.cjs +1 -0
- package/dist/components/Collapsible/Collapsible.module.cjs.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.js +1 -0
- package/dist/components/Collapsible/Collapsible.module.js.map +1 -1
- package/dist/components/Combobox/Combobox.module.cjs +1 -0
- package/dist/components/Combobox/Combobox.module.cjs.map +1 -1
- package/dist/components/Combobox/Combobox.module.js +1 -0
- package/dist/components/Combobox/Combobox.module.js.map +1 -1
- package/dist/components/Command/Command.module.cjs +1 -0
- package/dist/components/Command/Command.module.cjs.map +1 -1
- package/dist/components/Command/Command.module.js +1 -0
- package/dist/components/Command/Command.module.js.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.cjs +1 -1
- package/dist/components/ContextMenu/ContextMenu.cjs.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.js +100 -48
- package/dist/components/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.module.cjs +1 -0
- package/dist/components/ContextMenu/ContextMenu.module.cjs.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.module.js +1 -0
- package/dist/components/ContextMenu/ContextMenu.module.js.map +1 -1
- package/dist/components/CopyButton/CopyButton.module.cjs +1 -0
- package/dist/components/CopyButton/CopyButton.module.cjs.map +1 -1
- package/dist/components/CopyButton/CopyButton.module.js +1 -0
- package/dist/components/CopyButton/CopyButton.module.js.map +1 -1
- package/dist/components/DataList/DataList.module.cjs +1 -0
- package/dist/components/DataList/DataList.module.cjs.map +1 -1
- package/dist/components/DataList/DataList.module.js +1 -0
- package/dist/components/DataList/DataList.module.js.map +1 -1
- package/dist/components/DataTable/DataTable.module.cjs +1 -0
- package/dist/components/DataTable/DataTable.module.cjs.map +1 -1
- package/dist/components/DataTable/DataTable.module.js +1 -0
- package/dist/components/DataTable/DataTable.module.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.module.cjs +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.module.cjs.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.module.js +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.module.js.map +1 -1
- package/dist/components/DescriptionList/DescriptionList.module.cjs +1 -0
- package/dist/components/DescriptionList/DescriptionList.module.cjs.map +1 -1
- package/dist/components/DescriptionList/DescriptionList.module.js +1 -0
- package/dist/components/DescriptionList/DescriptionList.module.js.map +1 -1
- package/dist/components/Divider/Divider.module.cjs +1 -0
- package/dist/components/Divider/Divider.module.cjs.map +1 -1
- package/dist/components/Divider/Divider.module.js +1 -0
- package/dist/components/Divider/Divider.module.js.map +1 -1
- package/dist/components/Drawer/Drawer.module.cjs +1 -0
- package/dist/components/Drawer/Drawer.module.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.module.js +1 -0
- package/dist/components/Drawer/Drawer.module.js.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.module.cjs +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.module.cjs.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.module.js +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.module.js.map +1 -1
- package/dist/components/Dropzone/Dropzone.module.cjs +1 -0
- package/dist/components/Dropzone/Dropzone.module.cjs.map +1 -1
- package/dist/components/Dropzone/Dropzone.module.js +1 -0
- package/dist/components/Dropzone/Dropzone.module.js.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.cjs +1 -0
- package/dist/components/EmptyState/EmptyState.module.cjs.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.js +1 -0
- package/dist/components/EmptyState/EmptyState.module.js.map +1 -1
- package/dist/components/ErrorState/ErrorState.module.cjs +1 -0
- package/dist/components/ErrorState/ErrorState.module.cjs.map +1 -1
- package/dist/components/ErrorState/ErrorState.module.js +1 -0
- package/dist/components/ErrorState/ErrorState.module.js.map +1 -1
- package/dist/components/ErrorText/ErrorText.module.cjs +1 -0
- package/dist/components/ErrorText/ErrorText.module.cjs.map +1 -1
- package/dist/components/ErrorText/ErrorText.module.js +1 -0
- package/dist/components/ErrorText/ErrorText.module.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.module.cjs +1 -0
- package/dist/components/FileUpload/FileUpload.module.cjs.map +1 -1
- package/dist/components/FileUpload/FileUpload.module.js +1 -0
- package/dist/components/FileUpload/FileUpload.module.js.map +1 -1
- package/dist/components/FilterBar/FilterBar.module.cjs +1 -0
- package/dist/components/FilterBar/FilterBar.module.cjs.map +1 -1
- package/dist/components/FilterBar/FilterBar.module.js +1 -0
- package/dist/components/FilterBar/FilterBar.module.js.map +1 -1
- package/dist/components/FloatingActionButton/FloatingActionButton.module.cjs +1 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.module.cjs.map +1 -1
- package/dist/components/FloatingActionButton/FloatingActionButton.module.js +1 -0
- package/dist/components/FloatingActionButton/FloatingActionButton.module.js.map +1 -1
- package/dist/components/Form/Form.module.cjs +1 -0
- package/dist/components/Form/Form.module.cjs.map +1 -1
- package/dist/components/Form/Form.module.js +1 -0
- package/dist/components/Form/Form.module.js.map +1 -1
- package/dist/components/HoverCard/HoverCard.module.cjs +1 -0
- package/dist/components/HoverCard/HoverCard.module.cjs.map +1 -1
- package/dist/components/HoverCard/HoverCard.module.js +1 -0
- package/dist/components/HoverCard/HoverCard.module.js.map +1 -1
- package/dist/components/Image/Image.module.cjs +1 -0
- package/dist/components/Image/Image.module.cjs.map +1 -1
- package/dist/components/Image/Image.module.js +1 -0
- package/dist/components/Image/Image.module.js.map +1 -1
- package/dist/components/ImageCropper/ImageCropper.module.cjs +1 -0
- package/dist/components/ImageCropper/ImageCropper.module.cjs.map +1 -1
- package/dist/components/ImageCropper/ImageCropper.module.js +1 -0
- package/dist/components/ImageCropper/ImageCropper.module.js.map +1 -1
- package/dist/components/Input/Input.module.cjs +1 -0
- package/dist/components/Input/Input.module.cjs.map +1 -1
- package/dist/components/Input/Input.module.js +1 -0
- package/dist/components/Input/Input.module.js.map +1 -1
- package/dist/components/InstallBanner/InstallBanner.module.cjs +1 -0
- package/dist/components/InstallBanner/InstallBanner.module.cjs.map +1 -1
- package/dist/components/InstallBanner/InstallBanner.module.js +1 -0
- package/dist/components/InstallBanner/InstallBanner.module.js.map +1 -1
- package/dist/components/Kanban/Kanban.module.cjs +1 -0
- package/dist/components/Kanban/Kanban.module.cjs.map +1 -1
- package/dist/components/Kanban/Kanban.module.js +1 -0
- package/dist/components/Kanban/Kanban.module.js.map +1 -1
- package/dist/components/Kbd/Kbd.module.cjs +1 -0
- package/dist/components/Kbd/Kbd.module.cjs.map +1 -1
- package/dist/components/Kbd/Kbd.module.js +1 -0
- package/dist/components/Kbd/Kbd.module.js.map +1 -1
- package/dist/components/Label/Label.module.cjs +1 -0
- package/dist/components/Label/Label.module.cjs.map +1 -1
- package/dist/components/Label/Label.module.js +1 -0
- package/dist/components/Label/Label.module.js.map +1 -1
- package/dist/components/Layout/Layout.module.cjs +1 -0
- package/dist/components/Layout/Layout.module.cjs.map +1 -1
- package/dist/components/Layout/Layout.module.js +1 -0
- package/dist/components/Layout/Layout.module.js.map +1 -1
- package/dist/components/Lightbox/Lightbox.module.cjs +1 -0
- package/dist/components/Lightbox/Lightbox.module.cjs.map +1 -1
- package/dist/components/Lightbox/Lightbox.module.js +1 -0
- package/dist/components/Lightbox/Lightbox.module.js.map +1 -1
- package/dist/components/ListTile/ListTile.module.cjs +1 -0
- package/dist/components/ListTile/ListTile.module.cjs.map +1 -1
- package/dist/components/ListTile/ListTile.module.js +1 -0
- package/dist/components/ListTile/ListTile.module.js.map +1 -1
- package/dist/components/Markdown/Markdown.module.cjs +1 -0
- package/dist/components/Markdown/Markdown.module.cjs.map +1 -1
- package/dist/components/Markdown/Markdown.module.js +1 -0
- package/dist/components/Markdown/Markdown.module.js.map +1 -1
- package/dist/components/Masonry/Masonry.module.cjs +1 -0
- package/dist/components/Masonry/Masonry.module.cjs.map +1 -1
- package/dist/components/Masonry/Masonry.module.js +1 -0
- package/dist/components/Masonry/Masonry.module.js.map +1 -1
- package/dist/components/Menubar/Menubar.module.cjs +1 -0
- package/dist/components/Menubar/Menubar.module.cjs.map +1 -1
- package/dist/components/Menubar/Menubar.module.js +1 -0
- package/dist/components/Menubar/Menubar.module.js.map +1 -1
- package/dist/components/Modal/Modal.module.cjs +1 -0
- package/dist/components/Modal/Modal.module.cjs.map +1 -1
- package/dist/components/Modal/Modal.module.js +1 -0
- package/dist/components/Modal/Modal.module.js.map +1 -1
- package/dist/components/ModalsManager/ModalsManager.module.cjs +1 -0
- package/dist/components/ModalsManager/ModalsManager.module.cjs.map +1 -1
- package/dist/components/ModalsManager/ModalsManager.module.js +1 -0
- package/dist/components/ModalsManager/ModalsManager.module.js.map +1 -1
- package/dist/components/MultiSelect/MultiSelect.module.cjs +1 -0
- package/dist/components/MultiSelect/MultiSelect.module.cjs.map +1 -1
- package/dist/components/MultiSelect/MultiSelect.module.js +1 -0
- package/dist/components/MultiSelect/MultiSelect.module.js.map +1 -1
- package/dist/components/NProgress/NProgress.module.cjs +1 -0
- package/dist/components/NProgress/NProgress.module.cjs.map +1 -1
- package/dist/components/NProgress/NProgress.module.js +1 -0
- package/dist/components/NProgress/NProgress.module.js.map +1 -1
- package/dist/components/Navbar/Navbar.module.cjs +1 -0
- package/dist/components/Navbar/Navbar.module.cjs.map +1 -1
- package/dist/components/Navbar/Navbar.module.js +1 -0
- package/dist/components/Navbar/Navbar.module.js.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.module.cjs +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.module.cjs.map +1 -1
- package/dist/components/NavigationMenu/NavigationMenu.module.js +1 -0
- package/dist/components/NavigationMenu/NavigationMenu.module.js.map +1 -1
- package/dist/components/NavigationRail/NavigationRail.module.cjs +1 -0
- package/dist/components/NavigationRail/NavigationRail.module.cjs.map +1 -1
- package/dist/components/NavigationRail/NavigationRail.module.js +1 -0
- package/dist/components/NavigationRail/NavigationRail.module.js.map +1 -1
- package/dist/components/NotificationCenter/NotificationCenter.module.cjs +1 -0
- package/dist/components/NotificationCenter/NotificationCenter.module.cjs.map +1 -1
- package/dist/components/NotificationCenter/NotificationCenter.module.js +1 -0
- package/dist/components/NotificationCenter/NotificationCenter.module.js.map +1 -1
- package/dist/components/OfflineIndicator/OfflineIndicator.module.cjs +1 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.module.cjs.map +1 -1
- package/dist/components/OfflineIndicator/OfflineIndicator.module.js +1 -0
- package/dist/components/OfflineIndicator/OfflineIndicator.module.js.map +1 -1
- package/dist/components/Page/Page.module.cjs +1 -0
- package/dist/components/Page/Page.module.cjs.map +1 -1
- package/dist/components/Page/Page.module.js +1 -0
- package/dist/components/Page/Page.module.js.map +1 -1
- package/dist/components/Pagination/Pagination.module.cjs +1 -0
- package/dist/components/Pagination/Pagination.module.cjs.map +1 -1
- package/dist/components/Pagination/Pagination.module.js +1 -0
- package/dist/components/Pagination/Pagination.module.js.map +1 -1
- package/dist/components/PasswordInput/PasswordInput.module.cjs +1 -0
- package/dist/components/PasswordInput/PasswordInput.module.cjs.map +1 -1
- package/dist/components/PasswordInput/PasswordInput.module.js +1 -0
- package/dist/components/PasswordInput/PasswordInput.module.js.map +1 -1
- package/dist/components/PinInput/PinInput.module.cjs +1 -0
- package/dist/components/PinInput/PinInput.module.cjs.map +1 -1
- package/dist/components/PinInput/PinInput.module.js +1 -0
- package/dist/components/PinInput/PinInput.module.js.map +1 -1
- package/dist/components/Popover/Popover.module.cjs +1 -0
- package/dist/components/Popover/Popover.module.cjs.map +1 -1
- package/dist/components/Popover/Popover.module.js +1 -0
- package/dist/components/Popover/Popover.module.js.map +1 -1
- package/dist/components/Progress/Progress.module.cjs +1 -0
- package/dist/components/Progress/Progress.module.cjs.map +1 -1
- package/dist/components/Progress/Progress.module.js +1 -0
- package/dist/components/Progress/Progress.module.js.map +1 -1
- package/dist/components/QRCode/QRCode.module.cjs +1 -0
- package/dist/components/QRCode/QRCode.module.cjs.map +1 -1
- package/dist/components/QRCode/QRCode.module.js +1 -0
- package/dist/components/QRCode/QRCode.module.js.map +1 -1
- package/dist/components/Radio/Radio.module.cjs +1 -0
- package/dist/components/Radio/Radio.module.cjs.map +1 -1
- package/dist/components/Radio/Radio.module.js +1 -0
- package/dist/components/Radio/Radio.module.js.map +1 -1
- package/dist/components/RangeSlider/RangeSlider.module.cjs +1 -0
- package/dist/components/RangeSlider/RangeSlider.module.cjs.map +1 -1
- package/dist/components/RangeSlider/RangeSlider.module.js +1 -0
- package/dist/components/RangeSlider/RangeSlider.module.js.map +1 -1
- package/dist/components/RatingStars/RatingStars.module.cjs +1 -0
- package/dist/components/RatingStars/RatingStars.module.cjs.map +1 -1
- package/dist/components/RatingStars/RatingStars.module.js +1 -0
- package/dist/components/RatingStars/RatingStars.module.js.map +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.module.cjs +1 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.module.cjs.map +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.module.js +1 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.module.js.map +1 -1
- package/dist/components/Resizable/Resizable.module.cjs +1 -0
- package/dist/components/Resizable/Resizable.module.cjs.map +1 -1
- package/dist/components/Resizable/Resizable.module.js +1 -0
- package/dist/components/Resizable/Resizable.module.js.map +1 -1
- package/dist/components/SafeArea/SafeArea.module.cjs +1 -0
- package/dist/components/SafeArea/SafeArea.module.cjs.map +1 -1
- package/dist/components/SafeArea/SafeArea.module.js +1 -0
- package/dist/components/SafeArea/SafeArea.module.js.map +1 -1
- package/dist/components/Scheduler/Scheduler.module.cjs +1 -0
- package/dist/components/Scheduler/Scheduler.module.cjs.map +1 -1
- package/dist/components/Scheduler/Scheduler.module.js +1 -0
- package/dist/components/Scheduler/Scheduler.module.js.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.module.cjs +1 -0
- package/dist/components/ScrollArea/ScrollArea.module.cjs.map +1 -1
- package/dist/components/ScrollArea/ScrollArea.module.js +1 -0
- package/dist/components/ScrollArea/ScrollArea.module.js.map +1 -1
- package/dist/components/SearchBar/SearchBar.module.cjs +1 -0
- package/dist/components/SearchBar/SearchBar.module.cjs.map +1 -1
- package/dist/components/SearchBar/SearchBar.module.js +1 -0
- package/dist/components/SearchBar/SearchBar.module.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.module.cjs +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.module.cjs.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.module.js +1 -0
- package/dist/components/SegmentedControl/SegmentedControl.module.js.map +1 -1
- package/dist/components/Select/Select.module.cjs +1 -0
- package/dist/components/Select/Select.module.cjs.map +1 -1
- package/dist/components/Select/Select.module.js +1 -0
- package/dist/components/Select/Select.module.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.module.cjs +1 -0
- package/dist/components/Sidebar/Sidebar.module.cjs.map +1 -1
- package/dist/components/Sidebar/Sidebar.module.js +1 -0
- package/dist/components/Sidebar/Sidebar.module.js.map +1 -1
- package/dist/components/SignaturePad/SignaturePad.module.cjs +1 -0
- package/dist/components/SignaturePad/SignaturePad.module.cjs.map +1 -1
- package/dist/components/SignaturePad/SignaturePad.module.js +1 -0
- package/dist/components/SignaturePad/SignaturePad.module.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.cjs +1 -0
- package/dist/components/Skeleton/Skeleton.module.cjs.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.js +1 -0
- package/dist/components/Skeleton/Skeleton.module.js.map +1 -1
- package/dist/components/Slider/Slider.module.cjs +1 -0
- package/dist/components/Slider/Slider.module.cjs.map +1 -1
- package/dist/components/Slider/Slider.module.js +1 -0
- package/dist/components/Slider/Slider.module.js.map +1 -1
- package/dist/components/Spacer/Spacer.module.cjs +1 -0
- package/dist/components/Spacer/Spacer.module.cjs.map +1 -1
- package/dist/components/Spacer/Spacer.module.js +1 -0
- package/dist/components/Spacer/Spacer.module.js.map +1 -1
- package/dist/components/Sparkline/Sparkline.module.cjs +1 -0
- package/dist/components/Sparkline/Sparkline.module.cjs.map +1 -1
- package/dist/components/Sparkline/Sparkline.module.js +1 -0
- package/dist/components/Sparkline/Sparkline.module.js.map +1 -1
- package/dist/components/Spinner/Spinner.module.cjs +1 -0
- package/dist/components/Spinner/Spinner.module.cjs.map +1 -1
- package/dist/components/Spinner/Spinner.module.js +1 -0
- package/dist/components/Spinner/Spinner.module.js.map +1 -1
- package/dist/components/Stat/Stat.module.cjs +1 -0
- package/dist/components/Stat/Stat.module.cjs.map +1 -1
- package/dist/components/Stat/Stat.module.js +1 -0
- package/dist/components/Stat/Stat.module.js.map +1 -1
- package/dist/components/Stepper/Stepper.module.cjs +1 -0
- package/dist/components/Stepper/Stepper.module.cjs.map +1 -1
- package/dist/components/Stepper/Stepper.module.js +1 -0
- package/dist/components/Stepper/Stepper.module.js.map +1 -1
- package/dist/components/StepperInput/StepperInput.module.cjs +1 -0
- package/dist/components/StepperInput/StepperInput.module.cjs.map +1 -1
- package/dist/components/StepperInput/StepperInput.module.js +1 -0
- package/dist/components/StepperInput/StepperInput.module.js.map +1 -1
- package/dist/components/Switch/Switch.module.cjs +1 -0
- package/dist/components/Switch/Switch.module.cjs.map +1 -1
- package/dist/components/Switch/Switch.module.js +1 -0
- package/dist/components/Switch/Switch.module.js.map +1 -1
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.cjs +1 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.cjs.map +1 -1
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.js +1 -0
- package/dist/components/SyncStatusBadge/SyncStatusBadge.module.js.map +1 -1
- package/dist/components/Table/Table.module.cjs +1 -0
- package/dist/components/Table/Table.module.cjs.map +1 -1
- package/dist/components/Table/Table.module.js +1 -0
- package/dist/components/Table/Table.module.js.map +1 -1
- package/dist/components/Tabs/Tabs.module.cjs +1 -0
- package/dist/components/Tabs/Tabs.module.cjs.map +1 -1
- package/dist/components/Tabs/Tabs.module.js +1 -0
- package/dist/components/Tabs/Tabs.module.js.map +1 -1
- package/dist/components/Tag/Tag.module.cjs +1 -0
- package/dist/components/Tag/Tag.module.cjs.map +1 -1
- package/dist/components/Tag/Tag.module.js +1 -0
- package/dist/components/Tag/Tag.module.js.map +1 -1
- package/dist/components/Textarea/Textarea.module.cjs +1 -0
- package/dist/components/Textarea/Textarea.module.cjs.map +1 -1
- package/dist/components/Textarea/Textarea.module.js +1 -0
- package/dist/components/Textarea/Textarea.module.js.map +1 -1
- package/dist/components/TimePicker/TimePicker.module.cjs +1 -0
- package/dist/components/TimePicker/TimePicker.module.cjs.map +1 -1
- package/dist/components/TimePicker/TimePicker.module.js +1 -0
- package/dist/components/TimePicker/TimePicker.module.js.map +1 -1
- package/dist/components/Timeline/Timeline.module.cjs +1 -0
- package/dist/components/Timeline/Timeline.module.cjs.map +1 -1
- package/dist/components/Timeline/Timeline.module.js +1 -0
- package/dist/components/Timeline/Timeline.module.js.map +1 -1
- package/dist/components/Toast/Toast.module.cjs +1 -0
- package/dist/components/Toast/Toast.module.cjs.map +1 -1
- package/dist/components/Toast/Toast.module.js +1 -0
- package/dist/components/Toast/Toast.module.js.map +1 -1
- package/dist/components/Toggle/Toggle.module.cjs +1 -0
- package/dist/components/Toggle/Toggle.module.cjs.map +1 -1
- package/dist/components/Toggle/Toggle.module.js +1 -0
- package/dist/components/Toggle/Toggle.module.js.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.cjs +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.cjs.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.js +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.module.cjs +1 -0
- package/dist/components/Tooltip/Tooltip.module.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.module.js +1 -0
- package/dist/components/Tooltip/Tooltip.module.js.map +1 -1
- package/dist/components/Tour/Tour.module.cjs +1 -0
- package/dist/components/Tour/Tour.module.cjs.map +1 -1
- package/dist/components/Tour/Tour.module.js +1 -0
- package/dist/components/Tour/Tour.module.js.map +1 -1
- package/dist/components/Transfer/Transfer.module.cjs +1 -0
- package/dist/components/Transfer/Transfer.module.cjs.map +1 -1
- package/dist/components/Transfer/Transfer.module.js +1 -0
- package/dist/components/Transfer/Transfer.module.js.map +1 -1
- package/dist/components/TreeView/TreeView.module.cjs +1 -0
- package/dist/components/TreeView/TreeView.module.cjs.map +1 -1
- package/dist/components/TreeView/TreeView.module.js +1 -0
- package/dist/components/TreeView/TreeView.module.js.map +1 -1
- package/dist/components/TruncateText/TruncateText.module.cjs +1 -0
- package/dist/components/TruncateText/TruncateText.module.cjs.map +1 -1
- package/dist/components/TruncateText/TruncateText.module.js +1 -0
- package/dist/components/TruncateText/TruncateText.module.js.map +1 -1
- package/dist/components/UpdatePrompt/UpdatePrompt.module.cjs +1 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.module.cjs.map +1 -1
- package/dist/components/UpdatePrompt/UpdatePrompt.module.js +1 -0
- package/dist/components/UpdatePrompt/UpdatePrompt.module.js.map +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.module.cjs +1 -0
- package/dist/components/VideoPlayer/VideoPlayer.module.cjs.map +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.module.js +1 -0
- package/dist/components/VideoPlayer/VideoPlayer.module.js.map +1 -1
- package/dist/components/VirtualList/VirtualList.module.cjs +1 -0
- package/dist/components/VirtualList/VirtualList.module.cjs.map +1 -1
- package/dist/components/VirtualList/VirtualList.module.js +1 -0
- package/dist/components/VirtualList/VirtualList.module.js.map +1 -1
- package/dist/components/VirtualTable/VirtualTable.module.cjs +1 -0
- package/dist/components/VirtualTable/VirtualTable.module.cjs.map +1 -1
- package/dist/components/VirtualTable/VirtualTable.module.js +1 -0
- package/dist/components/VirtualTable/VirtualTable.module.js.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.cjs +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.module.cjs.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.js +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.module.js.map +1 -1
- package/dist/components/Wizard/Wizard.module.cjs +1 -0
- package/dist/components/Wizard/Wizard.module.cjs.map +1 -1
- package/dist/components/Wizard/Wizard.module.js +1 -0
- package/dist/components/Wizard/Wizard.module.js.map +1 -1
- package/dist/editor/RichTextEditor.module.cjs +1 -0
- package/dist/editor/RichTextEditor.module.cjs.map +1 -1
- package/dist/editor/RichTextEditor.module.js +1 -0
- package/dist/editor/RichTextEditor.module.js.map +1 -1
- package/dist/geo/TrajectoryMap.module.cjs +1 -0
- package/dist/geo/TrajectoryMap.module.cjs.map +1 -1
- package/dist/geo/TrajectoryMap.module.js +1 -0
- package/dist/geo/TrajectoryMap.module.js.map +1 -1
- package/dist/icons/IconPicker.module.cjs +1 -0
- package/dist/icons/IconPicker.module.cjs.map +1 -1
- package/dist/icons/IconPicker.module.js +1 -0
- package/dist/icons/IconPicker.module.js.map +1 -1
- package/dist/styles/AIChat.css +1 -78
- package/dist/styles/Accordion.css +1 -11
- package/dist/styles/Alert.css +1 -31
- package/dist/styles/AppBar.css +1 -16
- package/dist/styles/AppShell.css +1 -7
- package/dist/styles/AspectRatio.css +1 -2
- package/dist/styles/AudioPlayer.css +1 -12
- package/dist/styles/AudioRecorder.css +1 -19
- package/dist/styles/Avatar.css +1 -12
- package/dist/styles/AvatarGroup.css +1 -17
- package/dist/styles/Badge.css +1 -24
- package/dist/styles/Banner.css +1 -12
- package/dist/styles/BarList.css +1 -9
- package/dist/styles/BarcodeScanner.css +1 -20
- package/dist/styles/BottomNavigation.css +1 -9
- package/dist/styles/BottomSheet.css +1 -10
- package/dist/styles/BrazilMap.css +1 -19
- package/dist/styles/Breadcrumbs.css +1 -7
- package/dist/styles/Button.css +1 -41
- package/dist/styles/Calendar.css +1 -15
- package/dist/styles/Card.css +1 -14
- package/dist/styles/Carousel.css +1 -16
- package/dist/styles/Center.css +1 -4
- package/dist/styles/Chat.css +1 -34
- package/dist/styles/Checkbox.css +1 -10
- package/dist/styles/ChipInput.css +1 -12
- package/dist/styles/CodeBlock.css +1 -24
- package/dist/styles/Collapsible.css +1 -5
- package/dist/styles/Combobox.css +1 -17
- package/dist/styles/Command.css +1 -19
- package/dist/styles/ContextMenu.css +1 -10
- package/dist/styles/CopyButton.css +1 -3
- package/dist/styles/DataList.css +1 -2
- package/dist/styles/DataTable.css +1 -18
- package/dist/styles/DateRangePicker.css +1 -21
- package/dist/styles/DescriptionList.css +1 -3
- package/dist/styles/Divider.css +1 -10
- package/dist/styles/Drawer.css +1 -21
- package/dist/styles/DropdownMenu.css +1 -15
- package/dist/styles/Dropzone.css +1 -6
- package/dist/styles/EmptyState.css +1 -5
- package/dist/styles/ErrorState.css +1 -5
- package/dist/styles/ErrorText.css +1 -1
- package/dist/styles/FileUpload.css +1 -16
- package/dist/styles/FilterBar.css +1 -18
- package/dist/styles/FloatingActionButton.css +1 -22
- package/dist/styles/Form.css +1 -20
- package/dist/styles/HoverCard.css +1 -10
- package/dist/styles/IconPicker.css +1 -5
- package/dist/styles/Image.css +1 -1
- package/dist/styles/ImageCropper.css +1 -15
- package/dist/styles/Input.css +1 -23
- package/dist/styles/InstallBanner.css +1 -7
- package/dist/styles/Kanban.css +1 -14
- package/dist/styles/Kbd.css +1 -4
- package/dist/styles/Label.css +1 -2
- package/dist/styles/Layout.css +1 -21
- package/dist/styles/Lightbox.css +1 -20
- package/dist/styles/ListTile.css +1 -13
- package/dist/styles/MapLegend.css +1 -8
- package/dist/styles/Markdown.css +1 -23
- package/dist/styles/Masonry.css +1 -3
- package/dist/styles/Menubar.css +1 -16
- package/dist/styles/Modal.css +1 -20
- package/dist/styles/ModalsManager.css +1 -1
- package/dist/styles/MultiSelect.css +1 -20
- package/dist/styles/MunicipalitySearch.css +1 -5
- package/dist/styles/NProgress.css +1 -1
- package/dist/styles/Navbar.css +1 -9
- package/dist/styles/NavigationMenu.css +1 -11
- package/dist/styles/NavigationRail.css +1 -13
- package/dist/styles/NotificationCenter.css +1 -20
- package/dist/styles/OfflineIndicator.css +1 -6
- package/dist/styles/Page.css +1 -12
- package/dist/styles/Pagination.css +1 -11
- package/dist/styles/PasswordInput.css +1 -20
- package/dist/styles/PinInput.css +1 -12
- package/dist/styles/PixQRCode.css +1 -8
- package/dist/styles/Popover.css +1 -9
- package/dist/styles/Progress.css +1 -10
- package/dist/styles/QRCode.css +1 -2
- package/dist/styles/Radio.css +1 -13
- package/dist/styles/RangeSlider.css +1 -14
- package/dist/styles/RatingStars.css +1 -10
- package/dist/styles/RefreshIndicator.css +1 -4
- package/dist/styles/Resizable.css +1 -12
- package/dist/styles/RichTextEditor.css +1 -18
- package/dist/styles/SafeArea.css +1 -6
- package/dist/styles/Scheduler.css +1 -23
- package/dist/styles/ScrollArea.css +1 -6
- package/dist/styles/SearchBar.css +1 -10
- package/dist/styles/SegmentedControl.css +1 -11
- package/dist/styles/Select.css +1 -13
- package/dist/styles/Sidebar.css +1 -18
- package/dist/styles/SignaturePad.css +1 -5
- package/dist/styles/Skeleton.css +1 -6
- package/dist/styles/Slider.css +1 -14
- package/dist/styles/Spacer.css +1 -3
- package/dist/styles/Sparkline.css +1 -3
- package/dist/styles/Spinner.css +1 -11
- package/dist/styles/Stat.css +1 -11
- package/dist/styles/Stepper.css +1 -16
- package/dist/styles/StepperInput.css +1 -14
- package/dist/styles/Switch.css +1 -10
- package/dist/styles/SyncStatusBadge.css +1 -12
- package/dist/styles/Table.css +1 -15
- package/dist/styles/Tabs.css +1 -13
- package/dist/styles/Tag.css +1 -13
- package/dist/styles/Textarea.css +1 -12
- package/dist/styles/TimePicker.css +1 -13
- package/dist/styles/Timeline.css +1 -16
- package/dist/styles/Toast.css +1 -20
- package/dist/styles/Toggle.css +1 -11
- package/dist/styles/ToggleGroup.css +1 -8
- package/dist/styles/Tooltip.css +1 -9
- package/dist/styles/Tour.css +1 -19
- package/dist/styles/TrajectoryMap.css +1 -15
- package/dist/styles/Transfer.css +1 -20
- package/dist/styles/TreeView.css +1 -16
- package/dist/styles/TruncateText.css +1 -1
- package/dist/styles/UpdatePrompt.css +1 -9
- package/dist/styles/VideoPlayer.css +1 -22
- package/dist/styles/VirtualList.css +1 -4
- package/dist/styles/VirtualTable.css +1 -16
- package/dist/styles/VisuallyHidden.css +1 -1
- package/dist/styles/Wizard.css +1 -3
- package/dist/styles/advanced.css +2 -0
- package/dist/styles/chat.css +28 -0
- package/dist/styles/component/AIChat.css +79 -0
- package/dist/styles/component/Accordion.css +12 -0
- package/dist/styles/component/Alert.css +32 -0
- package/dist/styles/component/AppBar.css +17 -0
- package/dist/styles/component/AppShell.css +8 -0
- package/dist/styles/component/AspectRatio.css +3 -0
- package/dist/styles/component/AudioPlayer.css +13 -0
- package/dist/styles/component/AudioRecorder.css +20 -0
- package/dist/styles/component/Avatar.css +13 -0
- package/dist/styles/component/AvatarGroup.css +18 -0
- package/dist/styles/component/Badge.css +25 -0
- package/dist/styles/component/Banner.css +13 -0
- package/dist/styles/component/BarList.css +10 -0
- package/dist/styles/component/BarcodeScanner.css +21 -0
- package/dist/styles/component/BottomNavigation.css +10 -0
- package/dist/styles/component/BottomSheet.css +11 -0
- package/dist/styles/component/BrazilMap.css +20 -0
- package/dist/styles/component/Breadcrumbs.css +8 -0
- package/dist/styles/component/Button.css +42 -0
- package/dist/styles/component/Calendar.css +16 -0
- package/dist/styles/component/Card.css +15 -0
- package/dist/styles/component/Carousel.css +17 -0
- package/dist/styles/component/Center.css +5 -0
- package/dist/styles/component/Chat.css +63 -0
- package/dist/styles/component/Checkbox.css +11 -0
- package/dist/styles/component/ChipInput.css +13 -0
- package/dist/styles/component/CodeBlock.css +25 -0
- package/dist/styles/component/Collapsible.css +6 -0
- package/dist/styles/component/Combobox.css +18 -0
- package/dist/styles/component/Command.css +20 -0
- package/dist/styles/component/ContextMenu.css +13 -0
- package/dist/styles/component/CopyButton.css +4 -0
- package/dist/styles/component/DataList.css +3 -0
- package/dist/styles/component/DataTable.css +19 -0
- package/dist/styles/component/DateRangePicker.css +22 -0
- package/dist/styles/component/DescriptionList.css +4 -0
- package/dist/styles/component/Divider.css +11 -0
- package/dist/styles/component/Drawer.css +22 -0
- package/dist/styles/component/DropdownMenu.css +16 -0
- package/dist/styles/component/Dropzone.css +7 -0
- package/dist/styles/component/EmptyState.css +6 -0
- package/dist/styles/component/ErrorState.css +6 -0
- package/dist/styles/component/ErrorText.css +2 -0
- package/dist/styles/component/FileUpload.css +17 -0
- package/dist/styles/component/FilterBar.css +19 -0
- package/dist/styles/component/FloatingActionButton.css +23 -0
- package/dist/styles/component/Form.css +21 -0
- package/dist/styles/component/HoverCard.css +11 -0
- package/dist/styles/component/IconPicker.css +6 -0
- package/dist/styles/component/Image.css +2 -0
- package/dist/styles/component/ImageCropper.css +16 -0
- package/dist/styles/component/Input.css +24 -0
- package/dist/styles/component/InstallBanner.css +8 -0
- package/dist/styles/component/Kanban.css +15 -0
- package/dist/styles/component/Kbd.css +5 -0
- package/dist/styles/component/Label.css +3 -0
- package/dist/styles/component/Layout.css +22 -0
- package/dist/styles/component/Lightbox.css +21 -0
- package/dist/styles/component/ListTile.css +14 -0
- package/dist/styles/component/MapLegend.css +9 -0
- package/dist/styles/component/Markdown.css +24 -0
- package/dist/styles/component/Masonry.css +4 -0
- package/dist/styles/component/Menubar.css +17 -0
- package/dist/styles/component/Modal.css +21 -0
- package/dist/styles/component/ModalsManager.css +2 -0
- package/dist/styles/component/MultiSelect.css +21 -0
- package/dist/styles/component/MunicipalitySearch.css +6 -0
- package/dist/styles/component/NProgress.css +2 -0
- package/dist/styles/component/Navbar.css +10 -0
- package/dist/styles/component/NavigationMenu.css +12 -0
- package/dist/styles/component/NavigationRail.css +14 -0
- package/dist/styles/component/NotificationCenter.css +21 -0
- package/dist/styles/component/OfflineIndicator.css +7 -0
- package/dist/styles/component/Page.css +13 -0
- package/dist/styles/component/Pagination.css +12 -0
- package/dist/styles/component/PasswordInput.css +21 -0
- package/dist/styles/component/PinInput.css +13 -0
- package/dist/styles/component/PixQRCode.css +9 -0
- package/dist/styles/component/Popover.css +10 -0
- package/dist/styles/component/Progress.css +11 -0
- package/dist/styles/component/QRCode.css +3 -0
- package/dist/styles/component/Radio.css +14 -0
- package/dist/styles/component/RangeSlider.css +15 -0
- package/dist/styles/component/RatingStars.css +11 -0
- package/dist/styles/component/RefreshIndicator.css +5 -0
- package/dist/styles/component/Resizable.css +13 -0
- package/dist/styles/component/RichTextEditor.css +19 -0
- package/dist/styles/component/SafeArea.css +7 -0
- package/dist/styles/component/Scheduler.css +24 -0
- package/dist/styles/component/ScrollArea.css +7 -0
- package/dist/styles/component/SearchBar.css +11 -0
- package/dist/styles/component/SegmentedControl.css +12 -0
- package/dist/styles/component/Select.css +14 -0
- package/dist/styles/component/Sidebar.css +19 -0
- package/dist/styles/component/SignaturePad.css +6 -0
- package/dist/styles/component/Skeleton.css +7 -0
- package/dist/styles/component/Slider.css +15 -0
- package/dist/styles/component/Spacer.css +4 -0
- package/dist/styles/component/Sparkline.css +4 -0
- package/dist/styles/component/Spinner.css +12 -0
- package/dist/styles/component/Stat.css +12 -0
- package/dist/styles/component/Stepper.css +17 -0
- package/dist/styles/component/StepperInput.css +15 -0
- package/dist/styles/component/Switch.css +11 -0
- package/dist/styles/component/SyncStatusBadge.css +13 -0
- package/dist/styles/component/Table.css +16 -0
- package/dist/styles/component/Tabs.css +14 -0
- package/dist/styles/component/Tag.css +14 -0
- package/dist/styles/component/Textarea.css +13 -0
- package/dist/styles/component/TimePicker.css +14 -0
- package/dist/styles/component/Timeline.css +17 -0
- package/dist/styles/component/Toast.css +21 -0
- package/dist/styles/component/Toggle.css +12 -0
- package/dist/styles/component/ToggleGroup.css +9 -0
- package/dist/styles/component/Tooltip.css +10 -0
- package/dist/styles/component/Tour.css +20 -0
- package/dist/styles/component/TrajectoryMap.css +16 -0
- package/dist/styles/component/Transfer.css +21 -0
- package/dist/styles/component/TreeView.css +17 -0
- package/dist/styles/component/TruncateText.css +2 -0
- package/dist/styles/component/UpdatePrompt.css +10 -0
- package/dist/styles/component/VideoPlayer.css +23 -0
- package/dist/styles/component/VirtualList.css +5 -0
- package/dist/styles/component/VirtualTable.css +17 -0
- package/dist/styles/component/VisuallyHidden.css +2 -0
- package/dist/styles/component/Wizard.css +4 -0
- package/dist/styles/manifest.json +202 -190
- package/dist/styles.css +1 -1
- package/dist/tempest-react-sdk.cjs +1 -1
- package/dist/tempest-react-sdk.d.ts +253 -10
- package/dist/tempest-react-sdk.js +169 -167
- package/dist/theme/create-theme.cjs +3 -3
- package/dist/theme/create-theme.cjs.map +1 -1
- package/dist/theme/create-theme.js +109 -57
- package/dist/theme/create-theme.js.map +1 -1
- package/dist/vite/narrow-tokens.cjs +3 -0
- package/dist/vite/narrow-tokens.cjs.map +1 -0
- package/dist/vite/narrow-tokens.js +50 -0
- package/dist/vite/narrow-tokens.js.map +1 -0
- package/dist/vite/tempest-styles.cjs +6 -4
- package/dist/vite/tempest-styles.cjs.map +1 -1
- package/dist/vite/tempest-styles.js +73 -47
- package/dist/vite/tempest-styles.js.map +1 -1
- package/dist/vite.d.ts +19 -0
- package/loader/css-loader-hooks.mjs +37 -0
- package/loader/css-loader.mjs +46 -0
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.module.cjs","names":[],"sources":["../../../src/components/Button/Button.module.css"],"sourcesContent":[".button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-control-gap, var(--tempest-space-2));\n border: 1px solid transparent;\n border-radius: var(--tempest-control-radius, var(--tempest-radius-md));\n font-family: var(--tempest-font-sans);\n font-weight: var(--tempest-weight-semibold);\n line-height: var(--tempest-leading-none);\n letter-spacing: var(--tempest-tracking-normal);\n text-decoration: none;\n white-space: nowrap;\n user-select: none;\n transition: var(--tempest-transition-base);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.button:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .button:hover:not(:disabled) {\n box-shadow: var(--tempest-shadow-sm);\n }\n}\n\n.button:active:not(:disabled) {\n transform: translateY(1px);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.button:disabled {\n opacity: 0.55;\n box-shadow: none;\n}\n\n/* ============================================================\n * Variants — solid (default), soft, outline, ghost\n * Status colors: primary, secondary (neutral), danger, success\n * ============================================================ */\n\n/* primary — solid filled */\n.primary {\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n}\n.primary:hover:not(:disabled) {\n background-color: var(--tempest-primary-hover);\n}\n.primary:active:not(:disabled) {\n background-color: var(--tempest-primary-active);\n}\n\n/* secondary — neutral surface */\n.secondary {\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n border-color: var(--tempest-border);\n}\n.secondary:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n border-color: var(--tempest-border-strong);\n}\n\n/* danger — solid red */\n.danger {\n background-color: var(--tempest-danger-solid);\n color: var(--tempest-danger-on-solid);\n}\n.danger:hover:not(:disabled) {\n background-color: var(--tempest-danger-hover);\n}\n\n/* success — solid green */\n.success {\n background-color: var(--tempest-success-solid);\n color: var(--tempest-success-on-solid);\n}\n.success:hover:not(:disabled) {\n filter: brightness(0.92);\n}\n\n/* ghost — transparent, hover surface */\n.ghost {\n background-color: transparent;\n color: var(--tempest-text);\n box-shadow: none;\n}\n.ghost:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n box-shadow: none;\n}\n.ghost:active:not(:disabled) {\n background-color: var(--tempest-surface-2);\n box-shadow: none;\n}\n\n/* soft — tinted background, primary text */\n.soft {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n box-shadow: none;\n}\n.soft:hover:not(:disabled) {\n background-color: var(--tempest-primary-soft-hover);\n}\n\n/* outline — bordered, transparent fill */\n.outline {\n background-color: transparent;\n color: var(--tempest-primary);\n border-color: var(--tempest-primary);\n box-shadow: none;\n}\n/*\n * The text colour has to move with the background.\n *\n * `.outline` sets `color: var(--tempest-primary)` over a transparent background,\n * where it is fine. This rule tints the background to `--tempest-primary-soft` and,\n * without restating the colour, leaves the fill token sitting on the tint: **4.38:1 in\n * the light theme and 4.28:1 in dark**, both under the 4.5:1 floor for text — so the\n * label got harder to read at the exact moment the pointer was on it.\n *\n * `--tempest-primary-on-soft` is the token for this ground (6.18:1 / 8.72:1) and\n * `docs/styles.md` has documented the rule all along. A rule that changes only the\n * background of a coloured element is the shape of this bug; the other eight places in\n * the SDK that tint a background inherit `--tempest-text`, `--tempest-text-muted` or\n * `--tempest-primary-on-soft` and are fine.\n */\n.outline:hover:not(:disabled) {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n}\n\n/* link — text-only, underline on hover */\n.link {\n background-color: transparent;\n color: var(--tempest-primary);\n box-shadow: none;\n padding-left: 0;\n padding-right: 0;\n border-radius: var(--tempest-radius-sm);\n}\n.link:hover:not(:disabled) {\n color: var(--tempest-primary-hover);\n text-decoration: underline;\n background: none;\n box-shadow: none;\n}\n\n/* ============================================================\n * Sizes — token-driven, density-aware\n * ============================================================ */\n.xs {\n height: var(--tempest-control-height-xs);\n padding: 0 var(--tempest-control-padding-xs);\n font-size: var(--tempest-control-font-xs);\n}\n.sm {\n height: var(--tempest-control-height-sm);\n padding: 0 var(--tempest-control-padding-sm);\n font-size: var(--tempest-control-font-sm);\n}\n.md {\n height: var(--tempest-control-height-md);\n padding: 0 var(--tempest-control-padding-md);\n font-size: var(--tempest-control-font-md);\n}\n.lg {\n height: var(--tempest-control-height-lg);\n padding: 0 var(--tempest-control-padding-lg);\n font-size: var(--tempest-control-font-lg);\n}\n.xl {\n height: var(--tempest-control-height-xl);\n padding: 0 var(--tempest-control-padding-xl);\n font-size: var(--tempest-control-font-xl);\n}\n\n/* Square (icon-only) — width matches height */\n.iconOnly {\n position: relative;\n}\n.iconOnly.xs {\n width: var(--tempest-control-height-xs);\n padding: 0;\n}\n.iconOnly.sm {\n width: var(--tempest-control-height-sm);\n padding: 0;\n}\n.iconOnly.md {\n width: var(--tempest-control-height-md);\n padding: 0;\n}\n.iconOnly.lg {\n width: var(--tempest-control-height-lg);\n padding: 0;\n}\n.iconOnly.xl {\n width: var(--tempest-control-height-xl);\n padding: 0;\n}\n\n/* Touch hit-slop — extend tap target to a min 44×44 on coarse pointers\n * for the smallest icon-only sizes, without changing visual footprint. */\n@media (pointer: coarse) {\n .iconOnly.xs::after,\n .iconOnly.sm::after {\n content: \"\";\n position: absolute;\n inset: -8px;\n }\n}\n\n/* Pill shape */\n.pill {\n border-radius: var(--tempest-radius-full);\n}\n\n.fullWidth {\n width: 100%;\n}\n\n/*\n * Lay out leftIcon + label + rightIcon as one centered, gapped row. Without\n * this the three are inline inside a single span (no gap, icon baseline-\n * aligned instead of centered), which reads as off-center — most visible on\n * fullWidth buttons where the label has room to drift.\n */\n.content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-control-gap, var(--tempest-space-2));\n min-width: 0;\n}\n\n.loading .hiddenText {\n visibility: hidden;\n}\n\n.spinner {\n position: absolute;\n animation: tempest-spin 0.8s linear infinite;\n}\n\n@keyframes tempest-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Button.module.cjs","names":[],"sources":["../../../src/components/Button/Button.module.css"],"sourcesContent":[".button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-control-gap, var(--tempest-space-2));\n border: 1px solid transparent;\n border-radius: var(--tempest-control-radius, var(--tempest-radius-md));\n font-family: var(--tempest-font-sans);\n font-weight: var(--tempest-weight-semibold);\n line-height: var(--tempest-leading-none);\n letter-spacing: var(--tempest-tracking-normal);\n text-decoration: none;\n white-space: nowrap;\n user-select: none;\n transition: var(--tempest-transition-base);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.button:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .button:hover:not(:disabled) {\n box-shadow: var(--tempest-shadow-sm);\n }\n}\n\n.button:active:not(:disabled) {\n transform: translateY(1px);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.button:disabled {\n opacity: 0.55;\n box-shadow: none;\n}\n\n/* ============================================================\n * Variants — solid (default), soft, outline, ghost\n * Status colors: primary, secondary (neutral), danger, success\n * ============================================================ */\n\n/* primary — solid filled */\n.primary {\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n}\n.primary:hover:not(:disabled) {\n background-color: var(--tempest-primary-hover);\n}\n.primary:active:not(:disabled) {\n background-color: var(--tempest-primary-active);\n}\n\n/* secondary — neutral surface */\n.secondary {\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n border-color: var(--tempest-border);\n}\n.secondary:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n border-color: var(--tempest-border-strong);\n}\n\n/* danger — solid red */\n.danger {\n background-color: var(--tempest-danger-solid);\n color: var(--tempest-danger-on-solid);\n}\n.danger:hover:not(:disabled) {\n background-color: var(--tempest-danger-hover);\n}\n\n/* success — solid green */\n.success {\n background-color: var(--tempest-success-solid);\n color: var(--tempest-success-on-solid);\n}\n.success:hover:not(:disabled) {\n filter: brightness(0.92);\n}\n\n/* ghost — transparent, hover surface */\n.ghost {\n background-color: transparent;\n color: var(--tempest-text);\n box-shadow: none;\n}\n.ghost:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n box-shadow: none;\n}\n.ghost:active:not(:disabled) {\n background-color: var(--tempest-surface-2);\n box-shadow: none;\n}\n\n/* soft — tinted background, primary text */\n.soft {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n box-shadow: none;\n}\n.soft:hover:not(:disabled) {\n background-color: var(--tempest-primary-soft-hover);\n}\n\n/* outline — bordered, transparent fill */\n.outline {\n background-color: transparent;\n color: var(--tempest-primary);\n border-color: var(--tempest-primary);\n box-shadow: none;\n}\n/*\n * The text colour has to move with the background.\n *\n * `.outline` sets `color: var(--tempest-primary)` over a transparent background,\n * where it is fine. This rule tints the background to `--tempest-primary-soft` and,\n * without restating the colour, leaves the fill token sitting on the tint: **4.38:1 in\n * the light theme and 4.28:1 in dark**, both under the 4.5:1 floor for text — so the\n * label got harder to read at the exact moment the pointer was on it.\n *\n * `--tempest-primary-on-soft` is the token for this ground (6.18:1 / 8.72:1) and\n * `docs/styles.md` has documented the rule all along. A rule that changes only the\n * background of a coloured element is the shape of this bug; the other eight places in\n * the SDK that tint a background inherit `--tempest-text`, `--tempest-text-muted` or\n * `--tempest-primary-on-soft` and are fine.\n */\n.outline:hover:not(:disabled) {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n}\n\n/* link — text-only, underline on hover */\n.link {\n background-color: transparent;\n color: var(--tempest-primary);\n box-shadow: none;\n padding-left: 0;\n padding-right: 0;\n border-radius: var(--tempest-radius-sm);\n}\n.link:hover:not(:disabled) {\n color: var(--tempest-primary-hover);\n text-decoration: underline;\n background: none;\n box-shadow: none;\n}\n\n/* ============================================================\n * Sizes — token-driven, density-aware\n * ============================================================ */\n.xs {\n height: var(--tempest-control-height-xs);\n padding: 0 var(--tempest-control-padding-xs);\n font-size: var(--tempest-control-font-xs);\n}\n.sm {\n height: var(--tempest-control-height-sm);\n padding: 0 var(--tempest-control-padding-sm);\n font-size: var(--tempest-control-font-sm);\n}\n.md {\n height: var(--tempest-control-height-md);\n padding: 0 var(--tempest-control-padding-md);\n font-size: var(--tempest-control-font-md);\n}\n.lg {\n height: var(--tempest-control-height-lg);\n padding: 0 var(--tempest-control-padding-lg);\n font-size: var(--tempest-control-font-lg);\n}\n.xl {\n height: var(--tempest-control-height-xl);\n padding: 0 var(--tempest-control-padding-xl);\n font-size: var(--tempest-control-font-xl);\n}\n\n/* Square (icon-only) — width matches height */\n.iconOnly {\n position: relative;\n}\n.iconOnly.xs {\n width: var(--tempest-control-height-xs);\n padding: 0;\n}\n.iconOnly.sm {\n width: var(--tempest-control-height-sm);\n padding: 0;\n}\n.iconOnly.md {\n width: var(--tempest-control-height-md);\n padding: 0;\n}\n.iconOnly.lg {\n width: var(--tempest-control-height-lg);\n padding: 0;\n}\n.iconOnly.xl {\n width: var(--tempest-control-height-xl);\n padding: 0;\n}\n\n/* Touch hit-slop — extend tap target to a min 44×44 on coarse pointers\n * for the smallest icon-only sizes, without changing visual footprint. */\n@media (pointer: coarse) {\n .iconOnly.xs::after,\n .iconOnly.sm::after {\n content: \"\";\n position: absolute;\n inset: -8px;\n }\n}\n\n/* Pill shape */\n.pill {\n border-radius: var(--tempest-radius-full);\n}\n\n.fullWidth {\n width: 100%;\n}\n\n/*\n * Lay out leftIcon + label + rightIcon as one centered, gapped row. Without\n * this the three are inline inside a single span (no gap, icon baseline-\n * aligned instead of centered), which reads as off-center — most visible on\n * fullWidth buttons where the label has room to drift.\n */\n.content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-control-gap, var(--tempest-space-2));\n min-width: 0;\n}\n\n.loading .hiddenText {\n visibility: hidden;\n}\n\n.spinner {\n position: absolute;\n animation: tempest-spin 0.8s linear infinite;\n}\n\n@keyframes tempest-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"],"mappings":";"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "../../styles/component/Button.css";
|
|
1
2
|
//#region src/components/Button/Button.module.css
|
|
2
3
|
var e = "tempest_button_2ZuB7", t = "tempest_primary_s1sM6", n = "tempest_secondary_R0waJ", r = "tempest_danger_V4fX8", i = "tempest_success_w6qB6", a = "tempest_ghost_1KINV", o = "tempest_soft_c3kzm", s = "tempest_outline_F5jq-", c = "tempest_link_Zt5hw", l = "tempest_xs_cF6m0", u = "tempest_sm_NhG0g", d = "tempest_md_hH4h3", f = "tempest_lg_2plQf", p = "tempest_xl_nx4V0", m = "tempest_iconOnly_WCpTS", h = "tempest_pill_lx8lt", g = "tempest_fullWidth_36oJT", _ = "tempest_content_EKXmF", v = "tempest_loading_EQAt2", y = "tempest_hiddenText_hIiJ2", b = "tempest_spinner_ZExvW", x = "tempest_tempest-spin_UOSVC", S = {
|
|
3
4
|
button: e,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.module.js","names":[],"sources":["../../../src/components/Button/Button.module.css"],"sourcesContent":[".button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-control-gap, var(--tempest-space-2));\n border: 1px solid transparent;\n border-radius: var(--tempest-control-radius, var(--tempest-radius-md));\n font-family: var(--tempest-font-sans);\n font-weight: var(--tempest-weight-semibold);\n line-height: var(--tempest-leading-none);\n letter-spacing: var(--tempest-tracking-normal);\n text-decoration: none;\n white-space: nowrap;\n user-select: none;\n transition: var(--tempest-transition-base);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.button:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .button:hover:not(:disabled) {\n box-shadow: var(--tempest-shadow-sm);\n }\n}\n\n.button:active:not(:disabled) {\n transform: translateY(1px);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.button:disabled {\n opacity: 0.55;\n box-shadow: none;\n}\n\n/* ============================================================\n * Variants — solid (default), soft, outline, ghost\n * Status colors: primary, secondary (neutral), danger, success\n * ============================================================ */\n\n/* primary — solid filled */\n.primary {\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n}\n.primary:hover:not(:disabled) {\n background-color: var(--tempest-primary-hover);\n}\n.primary:active:not(:disabled) {\n background-color: var(--tempest-primary-active);\n}\n\n/* secondary — neutral surface */\n.secondary {\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n border-color: var(--tempest-border);\n}\n.secondary:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n border-color: var(--tempest-border-strong);\n}\n\n/* danger — solid red */\n.danger {\n background-color: var(--tempest-danger-solid);\n color: var(--tempest-danger-on-solid);\n}\n.danger:hover:not(:disabled) {\n background-color: var(--tempest-danger-hover);\n}\n\n/* success — solid green */\n.success {\n background-color: var(--tempest-success-solid);\n color: var(--tempest-success-on-solid);\n}\n.success:hover:not(:disabled) {\n filter: brightness(0.92);\n}\n\n/* ghost — transparent, hover surface */\n.ghost {\n background-color: transparent;\n color: var(--tempest-text);\n box-shadow: none;\n}\n.ghost:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n box-shadow: none;\n}\n.ghost:active:not(:disabled) {\n background-color: var(--tempest-surface-2);\n box-shadow: none;\n}\n\n/* soft — tinted background, primary text */\n.soft {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n box-shadow: none;\n}\n.soft:hover:not(:disabled) {\n background-color: var(--tempest-primary-soft-hover);\n}\n\n/* outline — bordered, transparent fill */\n.outline {\n background-color: transparent;\n color: var(--tempest-primary);\n border-color: var(--tempest-primary);\n box-shadow: none;\n}\n/*\n * The text colour has to move with the background.\n *\n * `.outline` sets `color: var(--tempest-primary)` over a transparent background,\n * where it is fine. This rule tints the background to `--tempest-primary-soft` and,\n * without restating the colour, leaves the fill token sitting on the tint: **4.38:1 in\n * the light theme and 4.28:1 in dark**, both under the 4.5:1 floor for text — so the\n * label got harder to read at the exact moment the pointer was on it.\n *\n * `--tempest-primary-on-soft` is the token for this ground (6.18:1 / 8.72:1) and\n * `docs/styles.md` has documented the rule all along. A rule that changes only the\n * background of a coloured element is the shape of this bug; the other eight places in\n * the SDK that tint a background inherit `--tempest-text`, `--tempest-text-muted` or\n * `--tempest-primary-on-soft` and are fine.\n */\n.outline:hover:not(:disabled) {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n}\n\n/* link — text-only, underline on hover */\n.link {\n background-color: transparent;\n color: var(--tempest-primary);\n box-shadow: none;\n padding-left: 0;\n padding-right: 0;\n border-radius: var(--tempest-radius-sm);\n}\n.link:hover:not(:disabled) {\n color: var(--tempest-primary-hover);\n text-decoration: underline;\n background: none;\n box-shadow: none;\n}\n\n/* ============================================================\n * Sizes — token-driven, density-aware\n * ============================================================ */\n.xs {\n height: var(--tempest-control-height-xs);\n padding: 0 var(--tempest-control-padding-xs);\n font-size: var(--tempest-control-font-xs);\n}\n.sm {\n height: var(--tempest-control-height-sm);\n padding: 0 var(--tempest-control-padding-sm);\n font-size: var(--tempest-control-font-sm);\n}\n.md {\n height: var(--tempest-control-height-md);\n padding: 0 var(--tempest-control-padding-md);\n font-size: var(--tempest-control-font-md);\n}\n.lg {\n height: var(--tempest-control-height-lg);\n padding: 0 var(--tempest-control-padding-lg);\n font-size: var(--tempest-control-font-lg);\n}\n.xl {\n height: var(--tempest-control-height-xl);\n padding: 0 var(--tempest-control-padding-xl);\n font-size: var(--tempest-control-font-xl);\n}\n\n/* Square (icon-only) — width matches height */\n.iconOnly {\n position: relative;\n}\n.iconOnly.xs {\n width: var(--tempest-control-height-xs);\n padding: 0;\n}\n.iconOnly.sm {\n width: var(--tempest-control-height-sm);\n padding: 0;\n}\n.iconOnly.md {\n width: var(--tempest-control-height-md);\n padding: 0;\n}\n.iconOnly.lg {\n width: var(--tempest-control-height-lg);\n padding: 0;\n}\n.iconOnly.xl {\n width: var(--tempest-control-height-xl);\n padding: 0;\n}\n\n/* Touch hit-slop — extend tap target to a min 44×44 on coarse pointers\n * for the smallest icon-only sizes, without changing visual footprint. */\n@media (pointer: coarse) {\n .iconOnly.xs::after,\n .iconOnly.sm::after {\n content: \"\";\n position: absolute;\n inset: -8px;\n }\n}\n\n/* Pill shape */\n.pill {\n border-radius: var(--tempest-radius-full);\n}\n\n.fullWidth {\n width: 100%;\n}\n\n/*\n * Lay out leftIcon + label + rightIcon as one centered, gapped row. Without\n * this the three are inline inside a single span (no gap, icon baseline-\n * aligned instead of centered), which reads as off-center — most visible on\n * fullWidth buttons where the label has room to drift.\n */\n.content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-control-gap, var(--tempest-space-2));\n min-width: 0;\n}\n\n.loading .hiddenText {\n visibility: hidden;\n}\n\n.spinner {\n position: absolute;\n animation: tempest-spin 0.8s linear infinite;\n}\n\n@keyframes tempest-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Button.module.js","names":[],"sources":["../../../src/components/Button/Button.module.css"],"sourcesContent":[".button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-control-gap, var(--tempest-space-2));\n border: 1px solid transparent;\n border-radius: var(--tempest-control-radius, var(--tempest-radius-md));\n font-family: var(--tempest-font-sans);\n font-weight: var(--tempest-weight-semibold);\n line-height: var(--tempest-leading-none);\n letter-spacing: var(--tempest-tracking-normal);\n text-decoration: none;\n white-space: nowrap;\n user-select: none;\n transition: var(--tempest-transition-base);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.button:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .button:hover:not(:disabled) {\n box-shadow: var(--tempest-shadow-sm);\n }\n}\n\n.button:active:not(:disabled) {\n transform: translateY(1px);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.button:disabled {\n opacity: 0.55;\n box-shadow: none;\n}\n\n/* ============================================================\n * Variants — solid (default), soft, outline, ghost\n * Status colors: primary, secondary (neutral), danger, success\n * ============================================================ */\n\n/* primary — solid filled */\n.primary {\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n}\n.primary:hover:not(:disabled) {\n background-color: var(--tempest-primary-hover);\n}\n.primary:active:not(:disabled) {\n background-color: var(--tempest-primary-active);\n}\n\n/* secondary — neutral surface */\n.secondary {\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n border-color: var(--tempest-border);\n}\n.secondary:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n border-color: var(--tempest-border-strong);\n}\n\n/* danger — solid red */\n.danger {\n background-color: var(--tempest-danger-solid);\n color: var(--tempest-danger-on-solid);\n}\n.danger:hover:not(:disabled) {\n background-color: var(--tempest-danger-hover);\n}\n\n/* success — solid green */\n.success {\n background-color: var(--tempest-success-solid);\n color: var(--tempest-success-on-solid);\n}\n.success:hover:not(:disabled) {\n filter: brightness(0.92);\n}\n\n/* ghost — transparent, hover surface */\n.ghost {\n background-color: transparent;\n color: var(--tempest-text);\n box-shadow: none;\n}\n.ghost:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n box-shadow: none;\n}\n.ghost:active:not(:disabled) {\n background-color: var(--tempest-surface-2);\n box-shadow: none;\n}\n\n/* soft — tinted background, primary text */\n.soft {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n box-shadow: none;\n}\n.soft:hover:not(:disabled) {\n background-color: var(--tempest-primary-soft-hover);\n}\n\n/* outline — bordered, transparent fill */\n.outline {\n background-color: transparent;\n color: var(--tempest-primary);\n border-color: var(--tempest-primary);\n box-shadow: none;\n}\n/*\n * The text colour has to move with the background.\n *\n * `.outline` sets `color: var(--tempest-primary)` over a transparent background,\n * where it is fine. This rule tints the background to `--tempest-primary-soft` and,\n * without restating the colour, leaves the fill token sitting on the tint: **4.38:1 in\n * the light theme and 4.28:1 in dark**, both under the 4.5:1 floor for text — so the\n * label got harder to read at the exact moment the pointer was on it.\n *\n * `--tempest-primary-on-soft` is the token for this ground (6.18:1 / 8.72:1) and\n * `docs/styles.md` has documented the rule all along. A rule that changes only the\n * background of a coloured element is the shape of this bug; the other eight places in\n * the SDK that tint a background inherit `--tempest-text`, `--tempest-text-muted` or\n * `--tempest-primary-on-soft` and are fine.\n */\n.outline:hover:not(:disabled) {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n}\n\n/* link — text-only, underline on hover */\n.link {\n background-color: transparent;\n color: var(--tempest-primary);\n box-shadow: none;\n padding-left: 0;\n padding-right: 0;\n border-radius: var(--tempest-radius-sm);\n}\n.link:hover:not(:disabled) {\n color: var(--tempest-primary-hover);\n text-decoration: underline;\n background: none;\n box-shadow: none;\n}\n\n/* ============================================================\n * Sizes — token-driven, density-aware\n * ============================================================ */\n.xs {\n height: var(--tempest-control-height-xs);\n padding: 0 var(--tempest-control-padding-xs);\n font-size: var(--tempest-control-font-xs);\n}\n.sm {\n height: var(--tempest-control-height-sm);\n padding: 0 var(--tempest-control-padding-sm);\n font-size: var(--tempest-control-font-sm);\n}\n.md {\n height: var(--tempest-control-height-md);\n padding: 0 var(--tempest-control-padding-md);\n font-size: var(--tempest-control-font-md);\n}\n.lg {\n height: var(--tempest-control-height-lg);\n padding: 0 var(--tempest-control-padding-lg);\n font-size: var(--tempest-control-font-lg);\n}\n.xl {\n height: var(--tempest-control-height-xl);\n padding: 0 var(--tempest-control-padding-xl);\n font-size: var(--tempest-control-font-xl);\n}\n\n/* Square (icon-only) — width matches height */\n.iconOnly {\n position: relative;\n}\n.iconOnly.xs {\n width: var(--tempest-control-height-xs);\n padding: 0;\n}\n.iconOnly.sm {\n width: var(--tempest-control-height-sm);\n padding: 0;\n}\n.iconOnly.md {\n width: var(--tempest-control-height-md);\n padding: 0;\n}\n.iconOnly.lg {\n width: var(--tempest-control-height-lg);\n padding: 0;\n}\n.iconOnly.xl {\n width: var(--tempest-control-height-xl);\n padding: 0;\n}\n\n/* Touch hit-slop — extend tap target to a min 44×44 on coarse pointers\n * for the smallest icon-only sizes, without changing visual footprint. */\n@media (pointer: coarse) {\n .iconOnly.xs::after,\n .iconOnly.sm::after {\n content: \"\";\n position: absolute;\n inset: -8px;\n }\n}\n\n/* Pill shape */\n.pill {\n border-radius: var(--tempest-radius-full);\n}\n\n.fullWidth {\n width: 100%;\n}\n\n/*\n * Lay out leftIcon + label + rightIcon as one centered, gapped row. Without\n * this the three are inline inside a single span (no gap, icon baseline-\n * aligned instead of centered), which reads as off-center — most visible on\n * fullWidth buttons where the label has room to drift.\n */\n.content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-control-gap, var(--tempest-space-2));\n min-width: 0;\n}\n\n.loading .hiddenText {\n visibility: hidden;\n}\n\n.spinner {\n position: absolute;\n animation: tempest-spin 0.8s linear infinite;\n}\n\n@keyframes tempest-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"],"mappings":";"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
require("../../styles/component/Calendar.css");
|
|
1
2
|
var e=`tempest_root_ObO-Z`,t=`tempest_header_5nSJG`,n=`tempest_title_Jd3Xb`,r=`tempest_nav_4h58I`,i=`tempest_weekdays_YzRfx`,a=`tempest_grid_nbaFm`,o=`tempest_weekday_k-7Vr`,s=`tempest_day_ao-IC`,c=`tempest_outside_HkC-6`,l=`tempest_today_p18-m`,u=`tempest_selected_C9bTY`,d={root:e,header:t,title:n,nav:r,weekdays:i,grid:a,weekday:o,day:s,outside:c,today:l,selected:u};exports.day=s,exports.default=d,exports.grid=a,exports.header=t,exports.nav=r,exports.outside=c,exports.root=e,exports.selected=u,exports.title=n,exports.today=l,exports.weekday=o,exports.weekdays=i;
|
|
2
3
|
//# sourceMappingURL=Calendar.module.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.module.cjs","names":[],"sources":["../../../src/components/Calendar/Calendar.module.css"],"sourcesContent":[".root {\n display: inline-flex;\n flex-direction: column;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-sans);\n user-select: none;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-2);\n}\n\n.title {\n flex: 1;\n text-align: center;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n}\n\n.nav {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-size: var(--tempest-text-lg);\n line-height: 1;\n cursor: pointer;\n transition: background-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.nav:hover {\n background-color: var(--tempest-surface-2);\n}\n\n.nav:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.weekdays,\n.grid {\n display: grid;\n grid-template-columns: repeat(7, 2.25rem);\n gap: var(--tempest-space-1);\n}\n\n.weekday {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 1.5rem;\n font-size: var(--tempest-text-2xs);\n font-weight: var(--tempest-weight-semibold);\n color: var(--tempest-text-muted);\n text-transform: uppercase;\n}\n\n.day {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n border: 1px solid transparent;\n border-radius: var(--tempest-radius-md);\n background-color: transparent;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n cursor: pointer;\n transition:\n background-color var(--tempest-duration-fast) var(--tempest-ease-out),\n color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.day:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n}\n\n.day:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.day:disabled {\n color: var(--tempest-text-muted);\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.outside {\n /* No extra opacity: subtle-on-surface already reads as de-emphasised, and\n fading it further dropped the contrast to 2.11:1 (WCAG AA needs 4.5:1)\n for dates that are still clickable. */\n color: var(--tempest-text-subtle);\n}\n\n.today {\n border-color: var(--tempest-primary);\n font-weight: var(--tempest-weight-semibold);\n}\n\n.selected,\n.selected:hover {\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n border-color: var(--tempest-primary);\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Calendar.module.cjs","names":[],"sources":["../../../src/components/Calendar/Calendar.module.css"],"sourcesContent":[".root {\n display: inline-flex;\n flex-direction: column;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-sans);\n user-select: none;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-2);\n}\n\n.title {\n flex: 1;\n text-align: center;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n}\n\n.nav {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-size: var(--tempest-text-lg);\n line-height: 1;\n cursor: pointer;\n transition: background-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.nav:hover {\n background-color: var(--tempest-surface-2);\n}\n\n.nav:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.weekdays,\n.grid {\n display: grid;\n grid-template-columns: repeat(7, 2.25rem);\n gap: var(--tempest-space-1);\n}\n\n.weekday {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 1.5rem;\n font-size: var(--tempest-text-2xs);\n font-weight: var(--tempest-weight-semibold);\n color: var(--tempest-text-muted);\n text-transform: uppercase;\n}\n\n.day {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n border: 1px solid transparent;\n border-radius: var(--tempest-radius-md);\n background-color: transparent;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n cursor: pointer;\n transition:\n background-color var(--tempest-duration-fast) var(--tempest-ease-out),\n color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.day:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n}\n\n.day:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.day:disabled {\n color: var(--tempest-text-muted);\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.outside {\n /* No extra opacity: subtle-on-surface already reads as de-emphasised, and\n fading it further dropped the contrast to 2.11:1 (WCAG AA needs 4.5:1)\n for dates that are still clickable. */\n color: var(--tempest-text-subtle);\n}\n\n.today {\n border-color: var(--tempest-primary);\n font-weight: var(--tempest-weight-semibold);\n}\n\n.selected,\n.selected:hover {\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n border-color: var(--tempest-primary);\n}\n"],"mappings":";"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "../../styles/component/Calendar.css";
|
|
1
2
|
//#region src/components/Calendar/Calendar.module.css
|
|
2
3
|
var e = "tempest_root_ObO-Z", t = "tempest_header_5nSJG", n = "tempest_title_Jd3Xb", r = "tempest_nav_4h58I", i = "tempest_weekdays_YzRfx", a = "tempest_grid_nbaFm", o = "tempest_weekday_k-7Vr", s = "tempest_day_ao-IC", c = "tempest_outside_HkC-6", l = "tempest_today_p18-m", u = "tempest_selected_C9bTY", d = {
|
|
3
4
|
root: e,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.module.js","names":[],"sources":["../../../src/components/Calendar/Calendar.module.css"],"sourcesContent":[".root {\n display: inline-flex;\n flex-direction: column;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-sans);\n user-select: none;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-2);\n}\n\n.title {\n flex: 1;\n text-align: center;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n}\n\n.nav {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-size: var(--tempest-text-lg);\n line-height: 1;\n cursor: pointer;\n transition: background-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.nav:hover {\n background-color: var(--tempest-surface-2);\n}\n\n.nav:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.weekdays,\n.grid {\n display: grid;\n grid-template-columns: repeat(7, 2.25rem);\n gap: var(--tempest-space-1);\n}\n\n.weekday {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 1.5rem;\n font-size: var(--tempest-text-2xs);\n font-weight: var(--tempest-weight-semibold);\n color: var(--tempest-text-muted);\n text-transform: uppercase;\n}\n\n.day {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n border: 1px solid transparent;\n border-radius: var(--tempest-radius-md);\n background-color: transparent;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n cursor: pointer;\n transition:\n background-color var(--tempest-duration-fast) var(--tempest-ease-out),\n color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.day:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n}\n\n.day:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.day:disabled {\n color: var(--tempest-text-muted);\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.outside {\n /* No extra opacity: subtle-on-surface already reads as de-emphasised, and\n fading it further dropped the contrast to 2.11:1 (WCAG AA needs 4.5:1)\n for dates that are still clickable. */\n color: var(--tempest-text-subtle);\n}\n\n.today {\n border-color: var(--tempest-primary);\n font-weight: var(--tempest-weight-semibold);\n}\n\n.selected,\n.selected:hover {\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n border-color: var(--tempest-primary);\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Calendar.module.js","names":[],"sources":["../../../src/components/Calendar/Calendar.module.css"],"sourcesContent":[".root {\n display: inline-flex;\n flex-direction: column;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-sans);\n user-select: none;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-2);\n}\n\n.title {\n flex: 1;\n text-align: center;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n}\n\n.nav {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-size: var(--tempest-text-lg);\n line-height: 1;\n cursor: pointer;\n transition: background-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.nav:hover {\n background-color: var(--tempest-surface-2);\n}\n\n.nav:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.weekdays,\n.grid {\n display: grid;\n grid-template-columns: repeat(7, 2.25rem);\n gap: var(--tempest-space-1);\n}\n\n.weekday {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 1.5rem;\n font-size: var(--tempest-text-2xs);\n font-weight: var(--tempest-weight-semibold);\n color: var(--tempest-text-muted);\n text-transform: uppercase;\n}\n\n.day {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n border: 1px solid transparent;\n border-radius: var(--tempest-radius-md);\n background-color: transparent;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n cursor: pointer;\n transition:\n background-color var(--tempest-duration-fast) var(--tempest-ease-out),\n color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.day:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n}\n\n.day:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.day:disabled {\n color: var(--tempest-text-muted);\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.outside {\n /* No extra opacity: subtle-on-surface already reads as de-emphasised, and\n fading it further dropped the contrast to 2.11:1 (WCAG AA needs 4.5:1)\n for dates that are still clickable. */\n color: var(--tempest-text-subtle);\n}\n\n.today {\n border-color: var(--tempest-primary);\n font-weight: var(--tempest-weight-semibold);\n}\n\n.selected,\n.selected:hover {\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n border-color: var(--tempest-primary);\n}\n"],"mappings":";"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
require("../../styles/component/Card.css");
|
|
1
2
|
var e=`tempest_card_Cb1o4`,t=`tempest_flat_LRpce`,n=`tempest_raised_WmIqk`,r=`tempest_elevated_5VEDw`,i=`tempest_interactive_B8Tah`,a=`tempest_padded_oOxwN`,o=`tempest_flush_aiDZi`,s=`tempest_header_PTXf2`,c=`tempest_title_mSgoo`,l=`tempest_body_W441Z`,u=`tempest_footer_Mu-JC`,d={card:e,flat:t,raised:n,elevated:r,interactive:i,padded:a,flush:o,header:s,title:c,body:l,footer:u};exports.body=l,exports.card=e,exports.default=d,exports.elevated=r,exports.flat=t,exports.flush=o,exports.footer=u,exports.header=s,exports.interactive=i,exports.padded=a,exports.raised=n,exports.title=c;
|
|
2
3
|
//# sourceMappingURL=Card.module.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.module.cjs","names":[],"sources":["../../../src/components/Card/Card.module.css"],"sourcesContent":[".card {\n background-color: var(--tempest-bg);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n padding: var(--tempest-space-5);\n box-shadow: var(--tempest-shadow-sm);\n color: var(--tempest-text);\n transition:\n var(--tempest-transition-shadow),\n var(--tempest-transition-transform),\n border-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n/* ============================================================\n * Elevation variants\n * ============================================================ */\n.flat {\n box-shadow: none;\n}\n.raised {\n box-shadow: var(--tempest-shadow-md);\n}\n.elevated {\n box-shadow: var(--tempest-shadow-lg);\n border-color: transparent;\n}\n\n/* ============================================================\n * Interactive — hoverable card (use for clickable cards, list rows)\n * ============================================================ */\n.interactive {\n cursor: pointer;\n}\n@media (hover: hover) and (pointer: fine) {\n .interactive:hover {\n border-color: var(--tempest-border-strong);\n box-shadow: var(--tempest-shadow-md);\n transform: translateY(-1px);\n }\n}\n.interactive:active {\n transform: translateY(0);\n box-shadow: var(--tempest-shadow-sm);\n}\n.interactive:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.padded {\n padding: var(--tempest-space-5);\n}\n\n.flush {\n padding: 0;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-4) var(--tempest-space-5);\n border-bottom: 1px solid var(--tempest-border);\n}\n\n.title {\n margin: 0;\n font-size: var(--tempest-text-md);\n font-weight: var(--tempest-weight-semibold);\n line-height: var(--tempest-leading-snug);\n color: var(--tempest-text);\n}\n\n.body {\n padding: var(--tempest-space-5);\n}\n\n.footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-4) var(--tempest-space-5);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Card.module.cjs","names":[],"sources":["../../../src/components/Card/Card.module.css"],"sourcesContent":[".card {\n background-color: var(--tempest-bg);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n padding: var(--tempest-space-5);\n box-shadow: var(--tempest-shadow-sm);\n color: var(--tempest-text);\n transition:\n var(--tempest-transition-shadow),\n var(--tempest-transition-transform),\n border-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n/* ============================================================\n * Elevation variants\n * ============================================================ */\n.flat {\n box-shadow: none;\n}\n.raised {\n box-shadow: var(--tempest-shadow-md);\n}\n.elevated {\n box-shadow: var(--tempest-shadow-lg);\n border-color: transparent;\n}\n\n/* ============================================================\n * Interactive — hoverable card (use for clickable cards, list rows)\n * ============================================================ */\n.interactive {\n cursor: pointer;\n}\n@media (hover: hover) and (pointer: fine) {\n .interactive:hover {\n border-color: var(--tempest-border-strong);\n box-shadow: var(--tempest-shadow-md);\n transform: translateY(-1px);\n }\n}\n.interactive:active {\n transform: translateY(0);\n box-shadow: var(--tempest-shadow-sm);\n}\n.interactive:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.padded {\n padding: var(--tempest-space-5);\n}\n\n.flush {\n padding: 0;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-4) var(--tempest-space-5);\n border-bottom: 1px solid var(--tempest-border);\n}\n\n.title {\n margin: 0;\n font-size: var(--tempest-text-md);\n font-weight: var(--tempest-weight-semibold);\n line-height: var(--tempest-leading-snug);\n color: var(--tempest-text);\n}\n\n.body {\n padding: var(--tempest-space-5);\n}\n\n.footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-4) var(--tempest-space-5);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":";"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "../../styles/component/Card.css";
|
|
1
2
|
//#region src/components/Card/Card.module.css
|
|
2
3
|
var e = "tempest_card_Cb1o4", t = "tempest_flat_LRpce", n = "tempest_raised_WmIqk", r = "tempest_elevated_5VEDw", i = "tempest_interactive_B8Tah", a = "tempest_padded_oOxwN", o = "tempest_flush_aiDZi", s = "tempest_header_PTXf2", c = "tempest_title_mSgoo", l = "tempest_body_W441Z", u = "tempest_footer_Mu-JC", d = {
|
|
3
4
|
card: e,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.module.js","names":[],"sources":["../../../src/components/Card/Card.module.css"],"sourcesContent":[".card {\n background-color: var(--tempest-bg);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n padding: var(--tempest-space-5);\n box-shadow: var(--tempest-shadow-sm);\n color: var(--tempest-text);\n transition:\n var(--tempest-transition-shadow),\n var(--tempest-transition-transform),\n border-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n/* ============================================================\n * Elevation variants\n * ============================================================ */\n.flat {\n box-shadow: none;\n}\n.raised {\n box-shadow: var(--tempest-shadow-md);\n}\n.elevated {\n box-shadow: var(--tempest-shadow-lg);\n border-color: transparent;\n}\n\n/* ============================================================\n * Interactive — hoverable card (use for clickable cards, list rows)\n * ============================================================ */\n.interactive {\n cursor: pointer;\n}\n@media (hover: hover) and (pointer: fine) {\n .interactive:hover {\n border-color: var(--tempest-border-strong);\n box-shadow: var(--tempest-shadow-md);\n transform: translateY(-1px);\n }\n}\n.interactive:active {\n transform: translateY(0);\n box-shadow: var(--tempest-shadow-sm);\n}\n.interactive:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.padded {\n padding: var(--tempest-space-5);\n}\n\n.flush {\n padding: 0;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-4) var(--tempest-space-5);\n border-bottom: 1px solid var(--tempest-border);\n}\n\n.title {\n margin: 0;\n font-size: var(--tempest-text-md);\n font-weight: var(--tempest-weight-semibold);\n line-height: var(--tempest-leading-snug);\n color: var(--tempest-text);\n}\n\n.body {\n padding: var(--tempest-space-5);\n}\n\n.footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-4) var(--tempest-space-5);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Card.module.js","names":[],"sources":["../../../src/components/Card/Card.module.css"],"sourcesContent":[".card {\n background-color: var(--tempest-bg);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n padding: var(--tempest-space-5);\n box-shadow: var(--tempest-shadow-sm);\n color: var(--tempest-text);\n transition:\n var(--tempest-transition-shadow),\n var(--tempest-transition-transform),\n border-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n/* ============================================================\n * Elevation variants\n * ============================================================ */\n.flat {\n box-shadow: none;\n}\n.raised {\n box-shadow: var(--tempest-shadow-md);\n}\n.elevated {\n box-shadow: var(--tempest-shadow-lg);\n border-color: transparent;\n}\n\n/* ============================================================\n * Interactive — hoverable card (use for clickable cards, list rows)\n * ============================================================ */\n.interactive {\n cursor: pointer;\n}\n@media (hover: hover) and (pointer: fine) {\n .interactive:hover {\n border-color: var(--tempest-border-strong);\n box-shadow: var(--tempest-shadow-md);\n transform: translateY(-1px);\n }\n}\n.interactive:active {\n transform: translateY(0);\n box-shadow: var(--tempest-shadow-sm);\n}\n.interactive:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: var(--tempest-focus-ring-offset);\n}\n\n.padded {\n padding: var(--tempest-space-5);\n}\n\n.flush {\n padding: 0;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-4) var(--tempest-space-5);\n border-bottom: 1px solid var(--tempest-border);\n}\n\n.title {\n margin: 0;\n font-size: var(--tempest-text-md);\n font-weight: var(--tempest-weight-semibold);\n line-height: var(--tempest-leading-snug);\n color: var(--tempest-text);\n}\n\n.body {\n padding: var(--tempest-space-5);\n}\n\n.footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-4) var(--tempest-space-5);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":";"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
require("../../styles/component/Carousel.css");
|
|
1
2
|
var e=`tempest_root_-w3-j`,t=`tempest_viewport_n0hzM`,n=`tempest_track_5PA8h`,r=`tempest_slide_fhfjg`,i=`tempest_arrow_S92Lt`,a=`tempest_prev_X8whU`,o=`tempest_next_jBRSz`,s=`tempest_dots_fL3Hr`,c=`tempest_dot_vEB56`,l=`tempest_dotActive_OSSUg`,u={root:e,viewport:t,track:n,slide:r,arrow:i,prev:a,next:o,dots:s,dot:c,dotActive:l};exports.arrow=i,exports.default=u,exports.dot=c,exports.dotActive=l,exports.dots=s,exports.next=o,exports.prev=a,exports.root=e,exports.slide=r,exports.track=n,exports.viewport=t;
|
|
2
3
|
//# sourceMappingURL=Carousel.module.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.module.cjs","names":[],"sources":["../../../src/components/Carousel/Carousel.module.css"],"sourcesContent":[".root {\n position: relative;\n width: 100%;\n font-family: var(--tempest-font-sans);\n}\n\n.root:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n.viewport {\n overflow: hidden;\n border-radius: var(--tempest-radius-lg);\n}\n\n.track {\n display: flex;\n transition: transform var(--tempest-duration-base) var(--tempest-ease-out);\n}\n\n.slide {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n.arrow {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background-color: var(--tempest-bg);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-full);\n box-shadow: var(--tempest-shadow-md);\n color: var(--tempest-text);\n font-size: var(--tempest-text-xl);\n line-height: 1;\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .arrow:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n }\n}\n\n.arrow:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n.arrow:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.prev {\n left: var(--tempest-space-2);\n}\n\n.next {\n right: var(--tempest-space-2);\n}\n\n.dots {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-space-2);\n margin-top: var(--tempest-space-3);\n}\n\n.dot {\n width: 0.5rem;\n height: 0.5rem;\n padding: 0;\n background-color: var(--tempest-border);\n border: none;\n border-radius: var(--tempest-radius-full);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.dotActive {\n background-color: var(--tempest-primary);\n}\n\n.dot:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .track {\n transition: none;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Carousel.module.cjs","names":[],"sources":["../../../src/components/Carousel/Carousel.module.css"],"sourcesContent":[".root {\n position: relative;\n width: 100%;\n font-family: var(--tempest-font-sans);\n}\n\n.root:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n.viewport {\n overflow: hidden;\n border-radius: var(--tempest-radius-lg);\n}\n\n.track {\n display: flex;\n transition: transform var(--tempest-duration-base) var(--tempest-ease-out);\n}\n\n.slide {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n.arrow {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background-color: var(--tempest-bg);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-full);\n box-shadow: var(--tempest-shadow-md);\n color: var(--tempest-text);\n font-size: var(--tempest-text-xl);\n line-height: 1;\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .arrow:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n }\n}\n\n.arrow:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n.arrow:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.prev {\n left: var(--tempest-space-2);\n}\n\n.next {\n right: var(--tempest-space-2);\n}\n\n.dots {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-space-2);\n margin-top: var(--tempest-space-3);\n}\n\n.dot {\n width: 0.5rem;\n height: 0.5rem;\n padding: 0;\n background-color: var(--tempest-border);\n border: none;\n border-radius: var(--tempest-radius-full);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.dotActive {\n background-color: var(--tempest-primary);\n}\n\n.dot:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .track {\n transition: none;\n }\n}\n"],"mappings":";"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "../../styles/component/Carousel.css";
|
|
1
2
|
//#region src/components/Carousel/Carousel.module.css
|
|
2
3
|
var e = "tempest_root_-w3-j", t = "tempest_viewport_n0hzM", n = "tempest_track_5PA8h", r = "tempest_slide_fhfjg", i = "tempest_arrow_S92Lt", a = "tempest_prev_X8whU", o = "tempest_next_jBRSz", s = "tempest_dots_fL3Hr", c = "tempest_dot_vEB56", l = "tempest_dotActive_OSSUg", u = {
|
|
3
4
|
root: e,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Carousel.module.js","names":[],"sources":["../../../src/components/Carousel/Carousel.module.css"],"sourcesContent":[".root {\n position: relative;\n width: 100%;\n font-family: var(--tempest-font-sans);\n}\n\n.root:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n.viewport {\n overflow: hidden;\n border-radius: var(--tempest-radius-lg);\n}\n\n.track {\n display: flex;\n transition: transform var(--tempest-duration-base) var(--tempest-ease-out);\n}\n\n.slide {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n.arrow {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background-color: var(--tempest-bg);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-full);\n box-shadow: var(--tempest-shadow-md);\n color: var(--tempest-text);\n font-size: var(--tempest-text-xl);\n line-height: 1;\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .arrow:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n }\n}\n\n.arrow:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n.arrow:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.prev {\n left: var(--tempest-space-2);\n}\n\n.next {\n right: var(--tempest-space-2);\n}\n\n.dots {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-space-2);\n margin-top: var(--tempest-space-3);\n}\n\n.dot {\n width: 0.5rem;\n height: 0.5rem;\n padding: 0;\n background-color: var(--tempest-border);\n border: none;\n border-radius: var(--tempest-radius-full);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.dotActive {\n background-color: var(--tempest-primary);\n}\n\n.dot:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .track {\n transition: none;\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Carousel.module.js","names":[],"sources":["../../../src/components/Carousel/Carousel.module.css"],"sourcesContent":[".root {\n position: relative;\n width: 100%;\n font-family: var(--tempest-font-sans);\n}\n\n.root:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n.viewport {\n overflow: hidden;\n border-radius: var(--tempest-radius-lg);\n}\n\n.track {\n display: flex;\n transition: transform var(--tempest-duration-base) var(--tempest-ease-out);\n}\n\n.slide {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n.arrow {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background-color: var(--tempest-bg);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-full);\n box-shadow: var(--tempest-shadow-md);\n color: var(--tempest-text);\n font-size: var(--tempest-text-xl);\n line-height: 1;\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .arrow:hover:not(:disabled) {\n background-color: var(--tempest-surface);\n }\n}\n\n.arrow:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n.arrow:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.prev {\n left: var(--tempest-space-2);\n}\n\n.next {\n right: var(--tempest-space-2);\n}\n\n.dots {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--tempest-space-2);\n margin-top: var(--tempest-space-3);\n}\n\n.dot {\n width: 0.5rem;\n height: 0.5rem;\n padding: 0;\n background-color: var(--tempest-border);\n border: none;\n border-radius: var(--tempest-radius-full);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.dotActive {\n background-color: var(--tempest-primary);\n}\n\n.dot:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .track {\n transition: none;\n }\n}\n"],"mappings":";"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
require("../../styles/component/Center.css");
|
|
1
2
|
var e=`tempest_center_Pu1Pf`,t=`tempest_both_53GWn`,n=`tempest_horizontal_94-Bt`,r=`tempest_vertical_Q7Kyg`,i={center:e,both:t,horizontal:n,vertical:r};exports.both=t,exports.center=e,exports.default=i,exports.horizontal=n,exports.vertical=r;
|
|
2
3
|
//# sourceMappingURL=Center.module.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Center.module.cjs","names":[],"sources":["../../../src/components/Center/Center.module.css"],"sourcesContent":[".center {\n display: flex;\n}\n\n.center.both {\n align-items: center;\n justify-content: center;\n}\n\n.center.horizontal {\n justify-content: center;\n}\n\n.center.vertical {\n align-items: center;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Center.module.cjs","names":[],"sources":["../../../src/components/Center/Center.module.css"],"sourcesContent":[".center {\n display: flex;\n}\n\n.center.both {\n align-items: center;\n justify-content: center;\n}\n\n.center.horizontal {\n justify-content: center;\n}\n\n.center.vertical {\n align-items: center;\n}\n"],"mappings":";"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Center.module.js","names":[],"sources":["../../../src/components/Center/Center.module.css"],"sourcesContent":[".center {\n display: flex;\n}\n\n.center.both {\n align-items: center;\n justify-content: center;\n}\n\n.center.horizontal {\n justify-content: center;\n}\n\n.center.vertical {\n align-items: center;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Center.module.js","names":[],"sources":["../../../src/components/Center/Center.module.css"],"sourcesContent":[".center {\n display: flex;\n}\n\n.center.both {\n align-items: center;\n justify-content: center;\n}\n\n.center.horizontal {\n justify-content: center;\n}\n\n.center.vertical {\n align-items: center;\n}\n"],"mappings":";"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../../utils/cn.cjs"),t=require("../EmptyState/EmptyState.cjs"),n=require("
|
|
1
|
+
const e=require("../../utils/cn.cjs"),t=require("../EmptyState/EmptyState.cjs"),n=require("./chat-groups.cjs"),r=require("./Chat.module.cjs"),i=require("./ChatBubble.cjs"),a=require("./ChatComposer.cjs");let o=require("react"),s=require("react/jsx-runtime");function c({messages:c,currentUserId:l,onSend:u,onRetry:d,typing:f=[],renderAvatar:p,header:m,emptyState:h,groupWindowMs:g,locale:_=`pt-BR`,now:v,placeholder:y,composerActions:b,composerDisabled:x,onSendError:S,onReact:C,messageActions:w,onQuoteClick:T,className:E,...D}){let O=n.chatStrings(_),k=n.groupMessages({messages:c,currentUserId:l,windowMs:g}),A=(0,o.useRef)(null),j=(0,o.useRef)(null),M=(0,o.useRef)(!0),N=()=>{let e=j.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;M.current=t<48};(0,o.useLayoutEffect)(()=>{let e=j.current;e&&M.current&&(e.scrollTop=e.scrollHeight)},[c,f]),(0,o.useEffect)(()=>{let e=j.current;e&&(e.scrollTop=e.scrollHeight)},[]);let P=n.typingLabel(f,_);return(0,s.jsxs)(`div`,{className:e.cn(r.default.panel,E),...D,children:[m&&(0,s.jsx)(`header`,{className:r.default.header,children:m}),(0,s.jsx)(`div`,{ref:j,className:r.default.thread,onScroll:N,role:`log`,"aria-live":`polite`,"aria-relevant":`additions text`,tabIndex:0,"aria-label":O.thread,children:c.length===0?h??(0,s.jsx)(t.EmptyState,{title:O.empty}):k.map(t=>t.kind===`day`?(0,s.jsx)(`div`,{className:r.default.day,children:(0,s.jsx)(`span`,{className:r.default.dayLabel,children:n.dayLabel(t.date,{locale:_,now:v})})},t.key):(0,s.jsxs)(`div`,{className:e.cn(r.default.run,t.own&&r.default.ownRun),children:[p&&(0,s.jsx)(`div`,{className:r.default.avatar,"aria-hidden":`true`,children:p(t.messages[0])}),(0,s.jsxs)(`div`,{className:r.default.runBody,children:[(0,s.jsx)(`span`,{className:r.default.author,children:t.own?O.you:t.authorName??t.authorId}),(0,s.jsx)(`ul`,{className:r.default.bubbles,children:t.messages.map(e=>(0,s.jsx)(i.ChatBubble,{message:e,own:t.own,locale:_,onRetry:d,onReact:C,messageActions:w,onQuoteClick:T},e.id))})]})]},t.key))}),P&&(0,s.jsx)(`p`,{className:r.default.typing,"aria-live":`polite`,children:P}),u&&(0,s.jsx)(a.ChatComposer,{ref:A,onSend:u,locale:_,placeholder:y,actions:b,disabled:x,onError:S})]})}exports.Chat=c;
|
|
2
2
|
//# sourceMappingURL=Chat.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.cjs","names":[],"sources":["../../../src/components/Chat/Chat.tsx"],"sourcesContent":["/**\n * @tempest-limits file-lines, props-count, function-lines — message grouping needs\n * more context than a list does: currentUserId to decide sides, groupWindowMs and\n * now to decide where a bubble group breaks, typing for the indicator. The remaining\n * props are the composer's (placeholder, composerActions, composerDisabled, onSend,\n * onSendError) and the slots (renderAvatar, header, emptyState).\n */\nimport { useEffect, useLayoutEffect, useRef, type HTMLAttributes, type ReactNode } from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nimport { EmptyState } from \"../EmptyState\";\nimport { VisuallyHidden } from \"../VisuallyHidden\";\nimport { ChatComposer, type ChatComposerHandle } from \"./ChatComposer\";\nimport {\n chatStrings,\n dayLabel,\n groupMessages,\n timeLabel,\n typingLabel,\n type ChatMessage,\n} from \"./chat-groups\";\nimport styles from \"./Chat.module.css\";\n\n/** DOM attributes this component redefines. */\ntype OverriddenDomProps = \"children\" | \"onSubmit\";\n\nexport interface ChatProps extends Omit<HTMLAttributes<HTMLDivElement>, OverriddenDomProps> {\n /** The thread, **oldest first**. Never reordered by the component. */\n messages: readonly ChatMessage[];\n /** Author id treated as \"own\" — decides side, colour and status ticks. */\n currentUserId?: string;\n /** Renders the composer when given. Receives the trimmed text. */\n onSend?: (text: string) => void | Promise<void>;\n /** Enables the retry control on a `\"failed\"` message. */\n onRetry?: (message: ChatMessage) => void;\n /** Names currently typing. One, two or a count is phrased for you. */\n typing?: readonly string[];\n /** Avatar for the first message of a run — an `<Avatar>`, an `<Icon>`. */\n renderAvatar?: (message: ChatMessage) => ReactNode;\n /** Rendered above the thread, inside the panel. */\n header?: ReactNode;\n /** Shown when there are no messages. */\n emptyState?: ReactNode;\n /** Gap that still keeps consecutive messages in one run. Default 5 min. */\n groupWindowMs?: number;\n /** Locale for labels. Default `\"pt-BR\"`. */\n locale?: \"pt-BR\" | \"en\";\n /** Reference instant for \"Hoje\"/\"Ontem\". Default: now, at render time. */\n now?: number;\n /** Placeholder for the composer. */\n placeholder?: string;\n /** Extra controls inside the composer, before the send button. */\n composerActions?: ReactNode;\n /** Disable the composer — no permission, thread archived, offline. */\n composerDisabled?: boolean;\n /** Called when `onSend` rejects. The draft stays in the field either way. */\n onSendError?: (error: unknown) => void;\n}\n\n/** Status glyph and label for an outgoing message. */\nconst STATUS_GLYPH: Record<NonNullable<ChatMessage[\"status\"]>, string> = {\n sending: \"◌\",\n sent: \"✓\",\n read: \"✓✓\",\n failed: \"!\",\n};\n\n/**\n * A message thread: grouped by author and by day, own messages on one side, with\n * delivery state, a typing indicator and an optional composer.\n *\n * Presentational and controlled, like the rest of the SDK: it takes a list and\n * emits intent (`onSend`, `onRetry`). Where messages come from — REST, the SDK's\n * `createWebSocket`, an SSE stream — and how an optimistic insert is done stay with\n * the app, because those differ per backend and a component that assumed one would\n * be wrong for most.\n *\n * It works as a comment thread too: that is the same component with\n * `currentUserId` set and no `typing`.\n *\n * @example\n * <Chat\n * messages={messages}\n * currentUserId={me.id}\n * typing={typingNames}\n * onSend={(text) => send({ text })}\n * onRetry={(message) => resend(message.id)}\n * />\n */\nexport function Chat({\n messages,\n currentUserId,\n onSend,\n onRetry,\n typing = [],\n renderAvatar,\n header,\n emptyState,\n groupWindowMs,\n locale = \"pt-BR\",\n now,\n placeholder,\n composerActions,\n composerDisabled,\n onSendError,\n className,\n ...rest\n}: ChatProps) {\n const strings = chatStrings(locale);\n const sections = groupMessages({ messages, currentUserId, windowMs: groupWindowMs });\n const composer = useRef<ChatComposerHandle | null>(null);\n const thread = useRef<HTMLDivElement | null>(null);\n const stuckToBottom = useRef(true);\n\n /**\n * Remember whether the reader is at the bottom, before the next batch lands.\n *\n * A thread that always scrolls to the newest message yanks somebody out of the\n * history they were reading, every time anyone types. So the jump only happens\n * when they were already at the bottom — the same rule every chat app converges\n * on. The 48px slack covers a partially visible last row.\n */\n const trackPosition = (): void => {\n const node = thread.current;\n if (!node) return;\n const distance = node.scrollHeight - node.scrollTop - node.clientHeight;\n stuckToBottom.current = distance < 48;\n };\n\n useLayoutEffect(() => {\n const node = thread.current;\n if (!node || !stuckToBottom.current) return;\n node.scrollTop = node.scrollHeight;\n }, [messages, typing]);\n\n useEffect(() => {\n const node = thread.current;\n if (!node) return;\n node.scrollTop = node.scrollHeight;\n // Mount lands on the newest message; from then on `trackPosition` decides.\n }, []);\n\n const typingText = typingLabel(typing, locale);\n\n return (\n <div className={cn(styles.panel, className)} {...rest}>\n {header && <header className={styles.header}>{header}</header>}\n\n <div\n ref={thread}\n className={styles.thread}\n onScroll={trackPosition}\n role=\"log\"\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n tabIndex={0}\n aria-label={strings.thread}\n >\n {messages.length === 0\n ? (emptyState ?? <EmptyState title={strings.empty} />)\n : sections.map((section) =>\n section.kind === \"day\" ? (\n <div key={section.key} className={styles.day}>\n <span className={styles.dayLabel}>\n {dayLabel(section.date, { locale, now })}\n </span>\n </div>\n ) : (\n <div\n key={section.key}\n className={cn(styles.run, section.own && styles.ownRun)}\n >\n {renderAvatar && (\n <div className={styles.avatar} aria-hidden=\"true\">\n {renderAvatar(section.messages[0])}\n </div>\n )}\n <div className={styles.runBody}>\n <span className={styles.author}>\n {section.own\n ? strings.you\n : (section.authorName ?? section.authorId)}\n </span>\n <ul className={styles.bubbles}>\n {section.messages.map((message) => (\n <li key={message.id} className={styles.bubbleRow}>\n <div\n className={cn(\n styles.bubble,\n section.own && styles.ownBubble,\n message.status === \"failed\" &&\n styles.failedBubble,\n )}\n >\n <div className={styles.body}>\n {message.body}\n </div>\n <div className={styles.meta}>\n <time\n dateTime={new Date(\n message.sentAt,\n ).toISOString()}\n >\n {timeLabel(message.sentAt, locale)}\n </time>\n {section.own && message.status && (\n <span\n className={cn(\n styles.status,\n message.status === \"failed\" &&\n styles.statusFailed,\n )}\n title={strings[message.status]}\n >\n <span aria-hidden=\"true\">\n {STATUS_GLYPH[message.status]}\n </span>\n <VisuallyHidden>\n {strings[message.status]}\n </VisuallyHidden>\n </span>\n )}\n </div>\n </div>\n {message.status === \"failed\" && onRetry && (\n <button\n type=\"button\"\n className={styles.retry}\n onClick={() => onRetry(message)}\n >\n {strings.retry}\n </button>\n )}\n </li>\n ))}\n </ul>\n </div>\n </div>\n ),\n )}\n </div>\n\n {typingText && (\n <p className={styles.typing} aria-live=\"polite\">\n {typingText}\n </p>\n )}\n\n {onSend && (\n <ChatComposer\n ref={composer}\n onSend={onSend}\n locale={locale}\n placeholder={placeholder}\n actions={composerActions}\n disabled={composerDisabled}\n onError={onSendError}\n />\n )}\n </div>\n );\n}\n"],"mappings":"sRA6DA,IAAM,EAAmE,CACrE,QAAS,IACT,KAAM,IACN,KAAM,KACN,OAAQ,GACZ,EAwBA,SAAgB,EAAK,CACjB,WACA,gBACA,SACA,UACA,SAAS,CAAC,EACV,eACA,SACA,aACA,gBACA,SAAS,QACT,MACA,cACA,kBACA,mBACA,cACA,YACA,GAAG,GACO,CACV,IAAM,EAAU,EAAA,YAAY,CAAM,EAC5B,EAAW,EAAA,cAAc,CAAE,WAAU,gBAAe,SAAU,CAAc,CAAC,EAC7E,GAAA,EAAW,EAAA,OAAA,CAAkC,IAAI,EACjD,GAAA,EAAS,EAAA,OAAA,CAA8B,IAAI,EAC3C,GAAA,EAAgB,EAAA,OAAA,CAAO,EAAI,EAU3B,MAA4B,CAC9B,IAAM,EAAO,EAAO,QACpB,GAAI,CAAC,EAAM,OACX,IAAM,EAAW,EAAK,aAAe,EAAK,UAAY,EAAK,aAC3D,EAAc,QAAU,EAAW,EACvC,GAEA,EAAA,EAAA,gBAAA,KAAsB,CAClB,IAAM,EAAO,EAAO,QACf,GAAS,EAAc,UAC5B,EAAK,UAAY,EAAK,aAC1B,EAAG,CAAC,EAAU,CAAM,CAAC,GAErB,EAAA,EAAA,UAAA,KAAgB,CACZ,IAAM,EAAO,EAAO,QACf,IACL,EAAK,UAAY,EAAK,aAE1B,EAAG,CAAC,CAAC,EAEL,IAAM,EAAa,EAAA,YAAY,EAAQ,CAAM,EAE7C,OACI,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,GAAG,EAAA,QAAO,MAAO,CAAS,EAAG,GAAI,EAAjD,SAAA,CACK,IAAU,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,UAAW,EAAA,QAAO,OAAS,SAAA,CAAe,CAAA,GAE7D,EAAA,EAAA,IAAA,CAAC,MAAD,CACI,IAAK,EACL,UAAW,EAAA,QAAO,OAClB,SAAU,EACV,KAAK,MACL,YAAU,SACV,gBAAc,iBACd,SAAU,EACV,aAAY,EAAQ,OAEnB,SAAA,EAAS,SAAW,EACd,IAAc,EAAA,EAAA,IAAA,CAAC,EAAA,WAAD,CAAY,MAAO,EAAQ,KAAQ,CAAA,EAClD,EAAS,IAAK,GACV,EAAQ,OAAS,OACb,EAAA,EAAA,IAAA,CAAC,MAAD,CAAuB,UAAW,EAAA,QAAO,IACrC,UAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAA,QAAO,SACnB,SAAA,EAAA,SAAS,EAAQ,KAAM,CAAE,SAAQ,KAAI,CAAC,CACrC,CAAA,CACL,EAJK,EAAQ,GAIb,GAEL,EAAA,EAAA,KAAA,CAAC,MAAD,CAEI,UAAW,EAAA,GAAG,EAAA,QAAO,IAAK,EAAQ,KAAO,EAAA,QAAO,MAAM,EAF1D,SAAA,CAIK,IACG,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAA,QAAO,OAAQ,cAAY,OACtC,SAAA,EAAa,EAAQ,SAAS,EAAE,CAChC,CAAA,GAET,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,QAAO,QAAvB,SAAA,EACI,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAA,QAAO,OACnB,SAAA,EAAQ,IACH,EAAQ,IACP,EAAQ,YAAc,EAAQ,QACnC,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAW,EAAA,QAAO,QACjB,SAAA,EAAQ,SAAS,IAAK,IACnB,EAAA,EAAA,KAAA,CAAC,KAAD,CAAqB,UAAW,EAAA,QAAO,UAAvC,SAAA,EACI,EAAA,EAAA,KAAA,CAAC,MAAD,CACI,UAAW,EAAA,GACP,EAAA,QAAO,OACP,EAAQ,KAAO,EAAA,QAAO,UACtB,EAAQ,SAAW,UACf,EAAA,QAAO,YACf,EANJ,SAAA,EAQI,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAA,QAAO,KAClB,SAAA,EAAQ,IACR,CAAA,GACL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,QAAO,KAAvB,SAAA,EACI,EAAA,EAAA,IAAA,CAAC,OAAD,CACI,SAAU,IAAI,KACV,EAAQ,MACZ,CAAC,CAAC,YAAY,EAEb,SAAA,EAAA,UAAU,EAAQ,OAAQ,CAAM,CAC/B,CAAA,EACL,EAAQ,KAAO,EAAQ,SACpB,EAAA,EAAA,KAAA,CAAC,OAAD,CACI,UAAW,EAAA,GACP,EAAA,QAAO,OACP,EAAQ,SAAW,UACf,EAAA,QAAO,YACf,EACA,MAAO,EAAQ,EAAQ,QAN3B,SAAA,EAQI,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,cAAY,OACb,SAAA,EAAa,EAAQ,OACpB,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,EAAA,eAAD,CAAA,SACK,EAAQ,EAAQ,OACL,CAAA,CACd,CAET,CAAA,CAAA,CACJ,CAAA,CAAA,CACJ,CAAA,EAAA,EAAQ,SAAW,UAAY,IAC5B,EAAA,EAAA,IAAA,CAAC,SAAD,CACI,KAAK,SACL,UAAW,EAAA,QAAO,MAClB,YAAe,EAAQ,CAAO,EAE7B,SAAA,EAAQ,KACL,CAAA,CAEZ,CAhDK,EAAA,EAAQ,EAgDb,CACP,CACD,CAAA,CACH,CACJ,CAAA,CAAA,CApEI,EAAA,EAAQ,GAoEZ,CAEb,CACL,CAAA,EAEJ,IACG,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAW,EAAA,QAAO,OAAQ,YAAU,SAClC,SAAA,CACF,CAAA,EAGN,IACG,EAAA,EAAA,IAAA,CAAC,EAAA,aAAD,CACI,IAAK,EACG,SACA,SACK,cACb,QAAS,EACT,SAAU,EACV,QAAS,CACZ,CAAA,CAEJ,GAEb"}
|
|
1
|
+
{"version":3,"file":"Chat.cjs","names":[],"sources":["../../../src/components/Chat/Chat.tsx"],"sourcesContent":["/**\n * @tempest-limits file-lines, props-count, function-lines — message grouping needs\n * more context than a list does: currentUserId to decide sides, groupWindowMs and\n * now to decide where a bubble group breaks, typing for the indicator. The remaining\n * props are the composer's (placeholder, composerActions, composerDisabled, onSend,\n * onSendError) and the slots (renderAvatar, header, emptyState).\n */\nimport { useEffect, useLayoutEffect, useRef, type HTMLAttributes, type ReactNode } from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nimport type { ContextMenuItem } from \"../ContextMenu\";\nimport { EmptyState } from \"../EmptyState\";\nimport { ChatBubble } from \"./ChatBubble\";\nimport { ChatComposer, type ChatComposerHandle } from \"./ChatComposer\";\nimport { chatStrings, dayLabel, groupMessages, typingLabel, type ChatMessage } from \"./chat-groups\";\nimport styles from \"./Chat.module.css\";\n\n/** DOM attributes this component redefines. */\ntype OverriddenDomProps = \"children\" | \"onSubmit\";\n\nexport interface ChatProps extends Omit<HTMLAttributes<HTMLDivElement>, OverriddenDomProps> {\n /** The thread, **oldest first**. Never reordered by the component. */\n messages: readonly ChatMessage[];\n /** Author id treated as \"own\" — decides side, colour and status ticks. */\n currentUserId?: string;\n /** Renders the composer when given. Receives the trimmed text. */\n onSend?: (text: string) => void | Promise<void>;\n /** Enables the retry control on a `\"failed\"` message. */\n onRetry?: (message: ChatMessage) => void;\n /** Names currently typing. One, two or a count is phrased for you. */\n typing?: readonly string[];\n /** Avatar for the first message of a run — an `<Avatar>`, an `<Icon>`. */\n renderAvatar?: (message: ChatMessage) => ReactNode;\n /** Rendered above the thread, inside the panel. */\n header?: ReactNode;\n /** Shown when there are no messages. */\n emptyState?: ReactNode;\n /** Gap that still keeps consecutive messages in one run. Default 5 min. */\n groupWindowMs?: number;\n /** Locale for labels. Default `\"pt-BR\"`. */\n locale?: \"pt-BR\" | \"en\";\n /** Reference instant for \"Hoje\"/\"Ontem\". Default: now, at render time. */\n now?: number;\n /** Placeholder for the composer. */\n placeholder?: string;\n /** Extra controls inside the composer, before the send button. */\n composerActions?: ReactNode;\n /** Disable the composer — no permission, thread archived, offline. */\n composerDisabled?: boolean;\n /** Called when `onSend` rejects. The draft stays in the field either way. */\n onSendError?: (error: unknown) => void;\n /**\n * Toggles a reaction on a message. Enables the reaction chips.\n *\n * Called with the emoji that was pressed, including one the user already\n * reacted with: reacting again clears it, rather than stacking a second copy.\n * The app owns that rule — the component only reports the press.\n */\n onReact?: (message: ChatMessage, emoji: string) => void;\n /**\n * Per-message actions: reply, forward, star, edit, delete.\n *\n * Returns the items for one message, opened by right click, by long press on\n * touch, and by a `⋮` button on the bubble. Buttons painted on every bubble\n * turn a conversation into a toolbar, which is why this is a menu.\n */\n messageActions?: (message: ChatMessage) => ContextMenuItem[];\n /** Called when a reply stub is activated — scroll to the quoted message. */\n onQuoteClick?: (message: ChatMessage) => void;\n}\n\n/**\n * A message thread: grouped by author and by day, own messages on one side, with\n * delivery state, a typing indicator and an optional composer.\n *\n * Presentational and controlled, like the rest of the SDK: it takes a list and\n * emits intent (`onSend`, `onRetry`). Where messages come from — REST, the SDK's\n * `createWebSocket`, an SSE stream — and how an optimistic insert is done stay with\n * the app, because those differ per backend and a component that assumed one would\n * be wrong for most.\n *\n * It works as a comment thread too: that is the same component with\n * `currentUserId` set and no `typing`.\n *\n * @example\n * <Chat\n * messages={messages}\n * currentUserId={me.id}\n * typing={typingNames}\n * onSend={(text) => send({ text })}\n * onRetry={(message) => resend(message.id)}\n * />\n */\nexport function Chat({\n messages,\n currentUserId,\n onSend,\n onRetry,\n typing = [],\n renderAvatar,\n header,\n emptyState,\n groupWindowMs,\n locale = \"pt-BR\",\n now,\n placeholder,\n composerActions,\n composerDisabled,\n onSendError,\n onReact,\n messageActions,\n onQuoteClick,\n className,\n ...rest\n}: ChatProps) {\n const strings = chatStrings(locale);\n const sections = groupMessages({ messages, currentUserId, windowMs: groupWindowMs });\n const composer = useRef<ChatComposerHandle | null>(null);\n const thread = useRef<HTMLDivElement | null>(null);\n const stuckToBottom = useRef(true);\n\n /**\n * Remember whether the reader is at the bottom, before the next batch lands.\n *\n * A thread that always scrolls to the newest message yanks somebody out of the\n * history they were reading, every time anyone types. So the jump only happens\n * when they were already at the bottom — the same rule every chat app converges\n * on. The 48px slack covers a partially visible last row.\n */\n const trackPosition = (): void => {\n const node = thread.current;\n if (!node) return;\n const distance = node.scrollHeight - node.scrollTop - node.clientHeight;\n stuckToBottom.current = distance < 48;\n };\n\n useLayoutEffect(() => {\n const node = thread.current;\n if (!node || !stuckToBottom.current) return;\n node.scrollTop = node.scrollHeight;\n }, [messages, typing]);\n\n useEffect(() => {\n const node = thread.current;\n if (!node) return;\n node.scrollTop = node.scrollHeight;\n // Mount lands on the newest message; from then on `trackPosition` decides.\n }, []);\n\n const typingText = typingLabel(typing, locale);\n\n return (\n <div className={cn(styles.panel, className)} {...rest}>\n {header && <header className={styles.header}>{header}</header>}\n\n <div\n ref={thread}\n className={styles.thread}\n onScroll={trackPosition}\n role=\"log\"\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n tabIndex={0}\n aria-label={strings.thread}\n >\n {messages.length === 0\n ? (emptyState ?? <EmptyState title={strings.empty} />)\n : sections.map((section) =>\n section.kind === \"day\" ? (\n <div key={section.key} className={styles.day}>\n <span className={styles.dayLabel}>\n {dayLabel(section.date, { locale, now })}\n </span>\n </div>\n ) : (\n <div\n key={section.key}\n className={cn(styles.run, section.own && styles.ownRun)}\n >\n {renderAvatar && (\n <div className={styles.avatar} aria-hidden=\"true\">\n {renderAvatar(section.messages[0])}\n </div>\n )}\n <div className={styles.runBody}>\n <span className={styles.author}>\n {section.own\n ? strings.you\n : (section.authorName ?? section.authorId)}\n </span>\n <ul className={styles.bubbles}>\n {section.messages.map((message) => (\n <ChatBubble\n key={message.id}\n message={message}\n own={section.own}\n locale={locale}\n onRetry={onRetry}\n onReact={onReact}\n messageActions={messageActions}\n onQuoteClick={onQuoteClick}\n />\n ))}\n </ul>\n </div>\n </div>\n ),\n )}\n </div>\n\n {typingText && (\n <p className={styles.typing} aria-live=\"polite\">\n {typingText}\n </p>\n )}\n\n {onSend && (\n <ChatComposer\n ref={composer}\n onSend={onSend}\n locale={locale}\n placeholder={placeholder}\n actions={composerActions}\n disabled={composerDisabled}\n onError={onSendError}\n />\n )}\n </div>\n );\n}\n"],"mappings":"kQA8FA,SAAgB,EAAK,CACjB,WACA,gBACA,SACA,UACA,SAAS,CAAC,EACV,eACA,SACA,aACA,gBACA,SAAS,QACT,MACA,cACA,kBACA,mBACA,cACA,UACA,iBACA,eACA,YACA,GAAG,GACO,CACV,IAAM,EAAU,EAAA,YAAY,CAAM,EAC5B,EAAW,EAAA,cAAc,CAAE,WAAU,gBAAe,SAAU,CAAc,CAAC,EAC7E,GAAA,EAAW,EAAA,OAAA,CAAkC,IAAI,EACjD,GAAA,EAAS,EAAA,OAAA,CAA8B,IAAI,EAC3C,GAAA,EAAgB,EAAA,OAAA,CAAO,EAAI,EAU3B,MAA4B,CAC9B,IAAM,EAAO,EAAO,QACpB,GAAI,CAAC,EAAM,OACX,IAAM,EAAW,EAAK,aAAe,EAAK,UAAY,EAAK,aAC3D,EAAc,QAAU,EAAW,EACvC,GAEA,EAAA,EAAA,gBAAA,KAAsB,CAClB,IAAM,EAAO,EAAO,QACf,GAAS,EAAc,UAC5B,EAAK,UAAY,EAAK,aAC1B,EAAG,CAAC,EAAU,CAAM,CAAC,GAErB,EAAA,EAAA,UAAA,KAAgB,CACZ,IAAM,EAAO,EAAO,QACf,IACL,EAAK,UAAY,EAAK,aAE1B,EAAG,CAAC,CAAC,EAEL,IAAM,EAAa,EAAA,YAAY,EAAQ,CAAM,EAE7C,OACI,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,GAAG,EAAA,QAAO,MAAO,CAAS,EAAG,GAAI,EAAjD,SAAA,CACK,IAAU,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,UAAW,EAAA,QAAO,OAAS,SAAA,CAAe,CAAA,GAE7D,EAAA,EAAA,IAAA,CAAC,MAAD,CACI,IAAK,EACL,UAAW,EAAA,QAAO,OAClB,SAAU,EACV,KAAK,MACL,YAAU,SACV,gBAAc,iBACd,SAAU,EACV,aAAY,EAAQ,OAEnB,SAAA,EAAS,SAAW,EACd,IAAc,EAAA,EAAA,IAAA,CAAC,EAAA,WAAD,CAAY,MAAO,EAAQ,KAAQ,CAAA,EAClD,EAAS,IAAK,GACV,EAAQ,OAAS,OACb,EAAA,EAAA,IAAA,CAAC,MAAD,CAAuB,UAAW,EAAA,QAAO,IACrC,UAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAA,QAAO,SACnB,SAAA,EAAA,SAAS,EAAQ,KAAM,CAAE,SAAQ,KAAI,CAAC,CACrC,CAAA,CACL,EAJK,EAAQ,GAIb,GAEL,EAAA,EAAA,KAAA,CAAC,MAAD,CAEI,UAAW,EAAA,GAAG,EAAA,QAAO,IAAK,EAAQ,KAAO,EAAA,QAAO,MAAM,EAF1D,SAAA,CAIK,IACG,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAA,QAAO,OAAQ,cAAY,OACtC,SAAA,EAAa,EAAQ,SAAS,EAAE,CAChC,CAAA,GAET,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,QAAO,QAAvB,SAAA,EACI,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAA,QAAO,OACnB,SAAA,EAAQ,IACH,EAAQ,IACP,EAAQ,YAAc,EAAQ,QACnC,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAW,EAAA,QAAO,QACjB,SAAA,EAAQ,SAAS,IAAK,IACnB,EAAA,EAAA,IAAA,CAAC,EAAA,WAAD,CAEa,UACT,IAAK,EAAQ,IACL,SACC,UACA,UACO,iBACF,cACjB,EARQ,EAAQ,EAQhB,CACJ,CACD,CAAA,CACH,CACJ,CAAA,CAAA,CA7BI,EAAA,EAAQ,GA6BZ,CAEb,CACL,CAAA,EAEJ,IACG,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAW,EAAA,QAAO,OAAQ,YAAU,SAClC,SAAA,CACF,CAAA,EAGN,IACG,EAAA,EAAA,IAAA,CAAC,EAAA,aAAD,CACI,IAAK,EACG,SACA,SACK,cACb,QAAS,EACT,SAAU,EACV,QAAS,CACZ,CAAA,CAEJ,GAEb"}
|
|
@@ -1,126 +1,101 @@
|
|
|
1
1
|
import { cn as e } from "../../utils/cn.js";
|
|
2
2
|
import { EmptyState as t } from "../EmptyState/EmptyState.js";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import { ChatComposer as
|
|
7
|
-
import { useEffect as
|
|
8
|
-
import { jsx as
|
|
3
|
+
import { chatStrings as n, dayLabel as r, groupMessages as i, typingLabel as a } from "./chat-groups.js";
|
|
4
|
+
import o from "./Chat.module.js";
|
|
5
|
+
import { ChatBubble as s } from "./ChatBubble.js";
|
|
6
|
+
import { ChatComposer as c } from "./ChatComposer.js";
|
|
7
|
+
import { useEffect as l, useLayoutEffect as u, useRef as d } from "react";
|
|
8
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
9
9
|
//#region src/components/Chat/Chat.tsx
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
let N = r(T), P = a({
|
|
18
|
-
messages: g,
|
|
19
|
-
currentUserId: _,
|
|
20
|
-
windowMs: w
|
|
21
|
-
}), F = f(null), I = f(null), L = f(!0), R = () => {
|
|
22
|
-
let e = I.current;
|
|
10
|
+
function m({ messages: m, currentUserId: h, onSend: g, onRetry: _, typing: v = [], renderAvatar: y, header: b, emptyState: x, groupWindowMs: S, locale: C = "pt-BR", now: w, placeholder: T, composerActions: E, composerDisabled: D, onSendError: O, onReact: k, messageActions: A, onQuoteClick: j, className: M, ...N }) {
|
|
11
|
+
let P = n(C), F = i({
|
|
12
|
+
messages: m,
|
|
13
|
+
currentUserId: h,
|
|
14
|
+
windowMs: S
|
|
15
|
+
}), I = d(null), L = d(null), R = d(!0), z = () => {
|
|
16
|
+
let e = L.current;
|
|
23
17
|
if (!e) return;
|
|
24
18
|
let t = e.scrollHeight - e.scrollTop - e.clientHeight;
|
|
25
|
-
|
|
19
|
+
R.current = t < 48;
|
|
26
20
|
};
|
|
27
|
-
|
|
28
|
-
let e =
|
|
29
|
-
e &&
|
|
30
|
-
}, [
|
|
31
|
-
let e =
|
|
21
|
+
u(() => {
|
|
22
|
+
let e = L.current;
|
|
23
|
+
e && R.current && (e.scrollTop = e.scrollHeight);
|
|
24
|
+
}, [m, v]), l(() => {
|
|
25
|
+
let e = L.current;
|
|
32
26
|
e && (e.scrollTop = e.scrollHeight);
|
|
33
27
|
}, []);
|
|
34
|
-
let
|
|
35
|
-
return /* @__PURE__ */
|
|
36
|
-
className: e(
|
|
37
|
-
...
|
|
28
|
+
let B = a(v, C);
|
|
29
|
+
return /* @__PURE__ */ p("div", {
|
|
30
|
+
className: e(o.panel, M),
|
|
31
|
+
...N,
|
|
38
32
|
children: [
|
|
39
|
-
|
|
40
|
-
className:
|
|
41
|
-
children:
|
|
33
|
+
b && /* @__PURE__ */ f("header", {
|
|
34
|
+
className: o.header,
|
|
35
|
+
children: b
|
|
42
36
|
}),
|
|
43
|
-
/* @__PURE__ */
|
|
44
|
-
ref:
|
|
45
|
-
className:
|
|
46
|
-
onScroll:
|
|
37
|
+
/* @__PURE__ */ f("div", {
|
|
38
|
+
ref: L,
|
|
39
|
+
className: o.thread,
|
|
40
|
+
onScroll: z,
|
|
47
41
|
role: "log",
|
|
48
42
|
"aria-live": "polite",
|
|
49
43
|
"aria-relevant": "additions text",
|
|
50
44
|
tabIndex: 0,
|
|
51
|
-
"aria-label":
|
|
52
|
-
children:
|
|
53
|
-
className:
|
|
54
|
-
children: /* @__PURE__ */
|
|
55
|
-
className:
|
|
56
|
-
children:
|
|
57
|
-
locale:
|
|
58
|
-
now:
|
|
45
|
+
"aria-label": P.thread,
|
|
46
|
+
children: m.length === 0 ? x ?? /* @__PURE__ */ f(t, { title: P.empty }) : F.map((t) => t.kind === "day" ? /* @__PURE__ */ f("div", {
|
|
47
|
+
className: o.day,
|
|
48
|
+
children: /* @__PURE__ */ f("span", {
|
|
49
|
+
className: o.dayLabel,
|
|
50
|
+
children: r(t.date, {
|
|
51
|
+
locale: C,
|
|
52
|
+
now: w
|
|
59
53
|
})
|
|
60
54
|
})
|
|
61
|
-
}, t.key) : /* @__PURE__ */
|
|
62
|
-
className: e(
|
|
63
|
-
children: [
|
|
64
|
-
className:
|
|
55
|
+
}, t.key) : /* @__PURE__ */ p("div", {
|
|
56
|
+
className: e(o.run, t.own && o.ownRun),
|
|
57
|
+
children: [y && /* @__PURE__ */ f("div", {
|
|
58
|
+
className: o.avatar,
|
|
65
59
|
"aria-hidden": "true",
|
|
66
|
-
children:
|
|
67
|
-
}), /* @__PURE__ */
|
|
68
|
-
className:
|
|
69
|
-
children: [/* @__PURE__ */
|
|
70
|
-
className:
|
|
71
|
-
children: t.own ?
|
|
72
|
-
}), /* @__PURE__ */
|
|
73
|
-
className:
|
|
74
|
-
children: t.messages.map((
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
children: [/* @__PURE__ */ p("time", {
|
|
84
|
-
dateTime: new Date(r.sentAt).toISOString(),
|
|
85
|
-
children: o(r.sentAt, T)
|
|
86
|
-
}), t.own && r.status && /* @__PURE__ */ m("span", {
|
|
87
|
-
className: e(c.status, r.status === "failed" && c.statusFailed),
|
|
88
|
-
title: N[r.status],
|
|
89
|
-
children: [/* @__PURE__ */ p("span", {
|
|
90
|
-
"aria-hidden": "true",
|
|
91
|
-
children: h[r.status]
|
|
92
|
-
}), /* @__PURE__ */ p(n, { children: N[r.status] })]
|
|
93
|
-
})]
|
|
94
|
-
})]
|
|
95
|
-
}), r.status === "failed" && y && /* @__PURE__ */ p("button", {
|
|
96
|
-
type: "button",
|
|
97
|
-
className: c.retry,
|
|
98
|
-
onClick: () => y(r),
|
|
99
|
-
children: N.retry
|
|
100
|
-
})]
|
|
101
|
-
}, r.id))
|
|
60
|
+
children: y(t.messages[0])
|
|
61
|
+
}), /* @__PURE__ */ p("div", {
|
|
62
|
+
className: o.runBody,
|
|
63
|
+
children: [/* @__PURE__ */ f("span", {
|
|
64
|
+
className: o.author,
|
|
65
|
+
children: t.own ? P.you : t.authorName ?? t.authorId
|
|
66
|
+
}), /* @__PURE__ */ f("ul", {
|
|
67
|
+
className: o.bubbles,
|
|
68
|
+
children: t.messages.map((e) => /* @__PURE__ */ f(s, {
|
|
69
|
+
message: e,
|
|
70
|
+
own: t.own,
|
|
71
|
+
locale: C,
|
|
72
|
+
onRetry: _,
|
|
73
|
+
onReact: k,
|
|
74
|
+
messageActions: A,
|
|
75
|
+
onQuoteClick: j
|
|
76
|
+
}, e.id))
|
|
102
77
|
})]
|
|
103
78
|
})]
|
|
104
79
|
}, t.key))
|
|
105
80
|
}),
|
|
106
|
-
|
|
107
|
-
className:
|
|
81
|
+
B && /* @__PURE__ */ f("p", {
|
|
82
|
+
className: o.typing,
|
|
108
83
|
"aria-live": "polite",
|
|
109
|
-
children:
|
|
84
|
+
children: B
|
|
110
85
|
}),
|
|
111
|
-
|
|
112
|
-
ref:
|
|
113
|
-
onSend:
|
|
114
|
-
locale:
|
|
115
|
-
placeholder:
|
|
116
|
-
actions:
|
|
117
|
-
disabled:
|
|
118
|
-
onError:
|
|
86
|
+
g && /* @__PURE__ */ f(c, {
|
|
87
|
+
ref: I,
|
|
88
|
+
onSend: g,
|
|
89
|
+
locale: C,
|
|
90
|
+
placeholder: T,
|
|
91
|
+
actions: E,
|
|
92
|
+
disabled: D,
|
|
93
|
+
onError: O
|
|
119
94
|
})
|
|
120
95
|
]
|
|
121
96
|
});
|
|
122
97
|
}
|
|
123
98
|
//#endregion
|
|
124
|
-
export {
|
|
99
|
+
export { m as Chat };
|
|
125
100
|
|
|
126
101
|
//# sourceMappingURL=Chat.js.map
|