@joewinke/jatui 0.54.0 → 0.54.1
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/CLAUDE.md +1 -1
- package/dist/components/DatePicker.svelte +1 -0
- package/dist/components/DateRangePicker.svelte +1 -0
- package/dist/components/EventCalendar.svelte +1 -0
- package/dist/components/calendar/MonthGrid.svelte +14 -0
- package/dist/components/calendar/MonthGrid.svelte.d.ts +8 -0
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -59,7 +59,7 @@ Then import:
|
|
|
59
59
|
| `TimeSlotPicker` | Slots grouped morning/afternoon/evening as one `role="radiogroup"` (`role="radio"` + `aria-checked`, full spoken date+time): roving arrows skip unavailable slots, Up/Down jump a visual row, Home/End, Space/Enter choose. Times and grouping follow `timeZone`'s wall clock. | `slots: TimeSlot[]`, `onSelect`, `selectedSlot`, `loading`, `accentColor`, `hourCycle?` ('h12' \| 'h23'), `timeZone?` (IANA), `locale?`, `selectOnFocus?`, `timezone?` (snippet row above the slots) |
|
|
60
60
|
| `BookingScheduler` | Calendly-shaped composition over `CalendarPicker` + `TimeSlotPicker`: details pane (host, duration, location, zone), time-zone select + 12h/24h toggle, slot list, Confirm. Container-query layout (3 panes → 2 → 1). Host supplies data; nothing is booked here. | `getSlots(date, timeZone)` (sync/async, stale responses dropped), `getAvailability?`, `selectedDate`/`selectedSlot`/`timeZone`/`hourCycle` (bindable), `title`, `durationMinutes`, `hostName`, `location`, `description`, `details?` (snippet), `onConfirm(slot, {timeZone})`, `confirming` |
|
|
61
61
|
| `EventCalendar` | Month / week / day / agenda event calendar, engine upstreamed from MOS `CalendarGrid`: one lane allocator per month row (`packWeek`/`computeVisibility`, measured lane capacity), "+N more" expands the week IN PLACE, week/day time grid with side-by-side overlap layout (`layoutDay`) + all-day bar row + now-line, agenda list, month-switcher pill (the shared month panel), details popover snippet, HTML5 drag-to-move, drag- or Shift+arrow range select. Event colours from `--jatui-event-N{,-bg,-fg}`. Generic over your event type. | `events: CalendarEventItem[]` (`{id,title,start,end?,allDay?,color?: 1-6 \| semantic,…}`), `view`/`date` (bindable), `views`, `weekStart`, `locale`, `hourCycle`, `dayStartHour`/`dayEndHour`, `hourHeight`, `height`, `eventDetails?`/`eventContent?`/`toolbarEnd?` (snippets), `moreAction`, `onEventClick`, `onDayClick`, `onCreate(date, hour?)`, `onEventMove(ev, {date, hour?, allDay})`, `onRangeSelect`, `onRangeChange(range, view)` |
|
|
62
|
-
| `CalendarMonthGrid` | The shared month panel every picker uses — exported for custom surfaces. `<table role="grid">`, roving tabindex, range band that bridges cell gaps and rounds at week edges, disabled days stay focusable (`aria-disabled`), `day` snippet + `describeDay` for extra per-day content/name. Pair with `createCalendarGrid()`. | `month`, `focusedDate`, `onFocusDate`, `onSelect`, `selected?`, `range?`, `isDisabled?`, `min`/`max`, `weekStart`, `locale`, `showOutsideDays`, `fixedWeeks`, `size`, `onHover?`, `day?`, `describeDay?` |
|
|
62
|
+
| `CalendarMonthGrid` | The shared month panel every picker uses — exported for custom surfaces. `<table role="grid">`, roving tabindex, range band that bridges cell gaps and rounds at week edges, disabled days stay focusable (`aria-disabled`), `day` snippet + `describeDay` for extra per-day content/name. Pair with `createCalendarGrid()`. | `month`, `focusedDate`, `onFocusDate`, `onSelect`, `selected?`, `range?`, `isDisabled?`, `min`/`max`, `weekStart`, `locale`, `showOutsideDays`, `fixedWeeks`, `size`, `fill?` (true; pass `false` in a `max-content` popover or other shrink-to-fit host — a filling table's max-content is unbounded in Chrome), `onHover?`, `day?`, `describeDay?` |
|
|
63
63
|
| `AvailabilityModal` | Date override editor (modal) | `date`, `overrides`, `onSave`, `onClose` |
|
|
64
64
|
| `BookingForm` | Guest info form for booking | `onSubmit`, `submitting`, `requirePhone`, `accentColor`, `showAttendeeOption` |
|
|
65
65
|
| `CountdownTimer` | Countdown to target date | `targetDate: Date`, `label` |
|
|
@@ -38,6 +38,14 @@
|
|
|
38
38
|
/** Tint every enabled in-month day (booking calendars: "these days are open"). */
|
|
39
39
|
highlightEnabled?: boolean;
|
|
40
40
|
size?: 'sm' | 'md' | 'lg';
|
|
41
|
+
/**
|
|
42
|
+
* Stretch to the container's width (default). Pass `false` inside a
|
|
43
|
+
* shrink-to-fit host — a popover with `width: max-content`, a flex item
|
|
44
|
+
* sized by its content: a `width: 100%` table's max-content is unbounded
|
|
45
|
+
* in Chrome, so the host grows to ~670,000px and the days land off-screen
|
|
46
|
+
* (jatui-ewfh3). `false` sizes the grid to seven cells and centres it.
|
|
47
|
+
*/
|
|
48
|
+
fill?: boolean;
|
|
41
49
|
/** Accessible name; defaults to "March 2026". */
|
|
42
50
|
ariaLabel?: string;
|
|
43
51
|
rtl?: boolean;
|
|
@@ -83,6 +91,7 @@
|
|
|
83
91
|
hideWeekdays = false,
|
|
84
92
|
highlightEnabled = false,
|
|
85
93
|
size = 'md',
|
|
94
|
+
fill = true,
|
|
86
95
|
ariaLabel,
|
|
87
96
|
rtl = false,
|
|
88
97
|
onSelect,
|
|
@@ -143,6 +152,7 @@
|
|
|
143
152
|
<table
|
|
144
153
|
bind:this={gridEl}
|
|
145
154
|
class="jatui-month-grid jatui-month-grid--{size} {className}"
|
|
155
|
+
class:jatui-month-grid--intrinsic={!fill}
|
|
146
156
|
role="grid"
|
|
147
157
|
aria-label={label}
|
|
148
158
|
dir={rtl ? 'rtl' : undefined}
|
|
@@ -230,6 +240,10 @@
|
|
|
230
240
|
width: 100%;
|
|
231
241
|
min-width: calc(var(--_cell) * 7);
|
|
232
242
|
}
|
|
243
|
+
.jatui-month-grid--intrinsic {
|
|
244
|
+
width: calc(var(--_cell) * 7);
|
|
245
|
+
margin-inline: auto;
|
|
246
|
+
}
|
|
233
247
|
.jatui-month-grid--sm {
|
|
234
248
|
--_cell: 2rem;
|
|
235
249
|
}
|
|
@@ -35,6 +35,14 @@ export interface MonthGridProps {
|
|
|
35
35
|
/** Tint every enabled in-month day (booking calendars: "these days are open"). */
|
|
36
36
|
highlightEnabled?: boolean;
|
|
37
37
|
size?: 'sm' | 'md' | 'lg';
|
|
38
|
+
/**
|
|
39
|
+
* Stretch to the container's width (default). Pass `false` inside a
|
|
40
|
+
* shrink-to-fit host — a popover with `width: max-content`, a flex item
|
|
41
|
+
* sized by its content: a `width: 100%` table's max-content is unbounded
|
|
42
|
+
* in Chrome, so the host grows to ~670,000px and the days land off-screen
|
|
43
|
+
* (jatui-ewfh3). `false` sizes the grid to seven cells and centres it.
|
|
44
|
+
*/
|
|
45
|
+
fill?: boolean;
|
|
38
46
|
/** Accessible name; defaults to "March 2026". */
|
|
39
47
|
ariaLabel?: string;
|
|
40
48
|
rtl?: boolean;
|