=== AddonLogic Class Session Schedule Grid ===
Contributors: snehalpancholi
Tags: schedule, timetable, class, session, weekly grid, fitness, yoga, school
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.1
Stable tag: 1.0.0
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Render a responsive weekly class/session timetable with a [schedule] shortcode. Manage classes via a CPT with time, instructor, location, and color fields.

== Description ==

AddonLogic Class Session Schedule Grid lets you publish a beautiful, color-coded weekly timetable on any page or post using the simple `[schedule]` shortcode.

Create classes via the built-in **Schedule Classes** CPT. Each class has:

* **Days of the week** — select one or more (Mon–Sun)
* **Start and end time** — 24-hour precision
* **Instructor name**
* **Room / location**
* **Custom color** — each class gets its own colored block
* **Short description** — shown in a click tooltip

The grid renders as a CSS Grid layout: columns are days of the week, rows are 30-minute time slots. Class blocks are sized proportionally to their duration. Click any block to see a detail tooltip with instructor, location, and description.

**Key features:**

* Visual weekly timetable grid
* Color-coded class blocks with duration-based height
* Click-to-expand tooltip for class details
* Filter by Class Category taxonomy
* Shortcode attributes to override start time, end time, week start, and visibility
* Fully responsive with horizontal scroll on mobile
* Dark mode support (respects `prefers-color-scheme`)
* No jQuery — pure vanilla JavaScript
* Settings page: grid start/end times, week start day, slot height, default visibility

== Installation ==

1. Upload the `class-session-schedule` folder to `/wp-content/plugins/`.
2. Activate the plugin via **Plugins > Installed Plugins**.
3. Go to **Schedule Classes > Add New Class** to create your first class.
4. Add `[schedule]` to any page or post.
5. Adjust defaults under **Settings > Schedule Grid**.

== Frequently Asked Questions ==

= Which shortcode do I use? =

`[schedule]` — that is all you need for a full grid with default settings.

= Can I show multiple grids on the same page? =

Yes. Use multiple `[schedule]` shortcodes with different `category` attributes.

= Does it work with the Block Editor (Gutenberg)? =

Yes. Insert a Shortcode block and paste `[schedule]` (or any attribute variant).

= What happens if a class runs outside the display time window? =

Classes that start before or end after the grid window are clamped to the visible range. Classes entirely outside the window are hidden.

= Can I have classes that span overnight (past midnight)? =

Not in the current version. End time must be greater than start time on the same day.

= How do I filter by category? =

1. Create a category under **Schedule Classes > Categories**.
2. Assign it to classes.
3. Use `[schedule category="your-slug"]`.

== Screenshots ==

1. Weekly timetable grid with color-coded class blocks
2. Detail tooltip showing instructor, location, and description
3. Add/Edit Class screen with meta box fields
4. Settings page under Settings > Schedule Grid

== Changelog ==

= 1.0.0 =
* Initial release.
* CPT `csg_class` with full meta box (days, times, instructor, location, color, description).
* Taxonomy `csg_category` for filtering.
* `[schedule]` shortcode with attribute overrides.
* CSS Grid layout with 30-minute time slots.
* Click tooltip with instructor, location, and description.
* Settings page (week start, display range, slot height, visibility defaults).
* Dark mode support.
* AddonLogic update system integrated.
