Metadata-Version: 2.4
Name: textual-calendar
Version: 1.0.0
Summary: A calendar date/time picker widget for Textual UI.
Author-email: Thiago Costa <admin@rootbsd.info>
License-Expression: BSD-3-Clause
Keywords: textual,widget,datetime,tui,python
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: textual>=7.0.0
Requires-Dist: textual-autocomplete>=4.0.0
Provides-Extra: dev
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: pylint-per-file-ignores; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Dynamic: license-file

# textual-calendar

A calendar date/time picker widget for Textual UI.

![DatetimePicker Widget Demo](demo.gif)

## Features

- **Calendar Widget** - Interactive monthly calendar date selection
- **Time Widget** - Time picker with hour, minute, and second selection
- **Timezone Support** - Optional timezone selection with auto-complete
- **DatetimePicker** - Combined date and time picker
- **Keyboard Navigation** - Full keyboard support with arrow keys, Page Up/Down
- **Mouse Support** - Click to select dates

## Installation
```bash
pip install textual-calendar
```

## Quick Start

### Calendar Widget
```python
from textual.app import App
from textual_calendar import Calendar

class MyApp(App):
    def compose(self):
        yield Calendar()

if __name__ == "__main__":
    MyApp().run()
```

### Time Widget
```python
from textual_calendar import Time

class MyApp(App):
    def compose(self):
        yield Time(show_tz=True)  # With timezone support
```

### DatetimePicker Widget
```python
from textual_calendar import DatetimePicker
from datetime import datetime

class MyApp(App):
    def compose(self):
        yield DatetimePicker(
            initial_datetime=datetime.now(),
            show_tz=True
        )
```

## Keyboard Shortcuts

### Calendar
- `←/→` - Previous/Next day
- `↑/↓` - Previous/Next month
- `Page Up/Down` - Previous/Next year
- `Insert` - Manual date input dialog

### Time
- `←/→` - Move between hour/minute/second
- `↑/↓` - Increment/Decrement selected field
- `0-9` - Direct number input

## License

BSD-3-Clause License - see LICENSE file for details.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
