@tasknotes/calendar 0.1.7 → 0.1.10

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/CHANGELOG.md CHANGED
@@ -1,6 +1,37 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.1.10
4
+
5
+ - Freeze Month source layout during a move and draw an inert target placeholder; preserve timed drag width across collision layouts.
6
+ - Contain date-strip touch gestures, reveal the complete target month in Year view, and allow dense collision stacks independently of the overlap preference.
7
+ - Require a short pause at a drag edge before scrolling, so passing through the edge does not shift the grid. Cancellation still restores the original scroll position.
8
+ - Keep the whole requested hour label visible below the sticky day and all-day headers when scrolling to a time.
9
+ - Agenda strip paging moves the list to the focused day; scrollbar and keyboard scrolling update the date highlight after a day is picked. Activity dots show up to three appointments in their configured colours.
10
+ - Hosts can supply one wall-clock `formatTime` callback for event, stack, selection, accessibility and slot labels.
11
+ - Hosts can set `overlapStackThreshold` to group dense overlapping appointments into the existing collision stack even in wide columns. Explicit side-by-side layouts remain unchanged.
12
+
13
+ ## 0.1.9
14
+
15
+ Not published to npm (the release check failed); these changes ship in 0.1.10.
16
+
17
+ ### Added
18
+
19
+ - Pinching a time grid on touch rescales its slots around the time under the fingers. `onSlotHeightChange` reports the settled height for hosts to store, and `pinchZoom: false` turns the gesture off.
20
+ - `basesLayoutOptions` reads `slotHeight` and `pinchZoom` from Bases calendar settings.
21
+
22
+ ## 0.1.8
23
+
24
+ ### Changed
25
+
26
+ - Collision stacks show a quiet count and a preview of their contents. Tracked-time titles never split words in the side lane, and adjacent timed events retain a visible boundary.
27
+ - Calendar interaction colours and motion expose theme hooks. Keyboard focus, selected hover, touch, drag origin and preview, pending writes and rejected writes have distinct treatments; Escape removes the drag origin without changing data.
28
+ - Dragging near a scroll edge reveals more of the calendar; cancellation restores the original scroll position. Empty agenda ranges retain host-provided filter recovery alongside per-day creation.
29
+ - Agenda drag previews follow the pointer without shifting neighbouring rows. Releasing after Escape does not open the task underneath the cancelled drag.
30
+ - Compact Month shows narrow chips or dots consistently, with a quiet overflow count, and fits narrow grids. Selected dates carry into Day view.
31
+ - Time ranges follow event width rather than duration and stay visible during resize. Narrow Week headers fit dates and today's badge.
32
+ - Year reveals the anchor month when opened or navigated.
33
+ - Toolbars fit narrow widths, the date strip loads its complete window, and strip expansion stays on the labelled month control.
34
+ - A dim source stays at the original position during calendar drags, and linked hover is suppressed while dragging.
4
35
 
5
36
  ## 0.1.7
6
37
 
package/README.md CHANGED
@@ -46,6 +46,7 @@ The host persists changes; the calendar supplies optimistic updates and a
46
46
  - **Changes** (`onItemDrop`, `onItemResize`, `onSelect`, `onExternalDrop`) report TaskNotes storage strings (`startStr`/`endStr`), `revert()`, and `source: "pointer" | "keyboard"`. Returning a rejected promise reverts.
47
47
  - **Clicks**: `onDateClick` reports `minute` (the slot's wall-clock minute, snapped to `slotDuration`; null for day cells and the all-day row), `allDay` and `startStr` (`"YYYY-MM-DD"` or `"YYYY-MM-DDTHH:mm"`), so a tap on a slot can prefill a time.
48
48
  - **Input**: mouse drag after 4px, touch long press (`longPressDelay`), keyboard (Enter/Space, Shift+F10, Alt+Arrow to move, Alt+Shift+Arrow to resize), external drags via `beginExternalDrag` or native HTML5 drops.
49
+ - **Pinch**: two fingers on a time grid rescale `slotHeight` between 16 and 96px, keeping the time under the fingers in place. `onSlotHeightChange` reports the settled height for the host to store; `pinchZoom: false` leaves the gesture to the browser.
49
50
  - **Popouts**: all listeners, timers and observers use the host element's `ownerDocument`; bare `window`/`document` are lint errors in `src`.
50
51
 
51
52
  ### Views and options
@@ -76,6 +77,9 @@ and changes views through the same navigation lifecycle as the buttons.
76
77
 
77
78
  ### Month and list
78
79
 
80
+ - `monthDisplay: "chips"` uses compact filled title strips instead of dots, clipped without ellipses, with a counted overflow row. Set `--tnc-chip-h` to size the rows. Like dots, chips are passive summaries: the whole day cell is the keyboard and pointer target, and the host can open a full selected-day list through `onDateClick`.
81
+ - `gotoDate()` within the displayed month updates the navigation anchor without rebuilding its cells, preserving keyboard focus when a host selects a day. A subsequent view switch uses that selected date.
82
+
79
83
  - `listEmptyContent()` may return a host-owned DOM node for an empty list, such as an explanation and recovery action. The default translated empty message remains when omitted. The node is removed when the list gains items.
80
84
 
81
85
  - `monthDisplay: "dots"` draws every item in a month cell as a small dot (`--tnc-dot-size`, `--tnc-dot-gap`) that wraps across the cell, with "+N" when they do not fit; `dayMaxEvents` caps the dots (`false` lets cells grow). The day cell is the tap target: dots ignore the pointer, are `aria-hidden`, get no content hook, and the cell is labelled "<date>, N items" (`text.itemCount`). Items in dots have `variant: "indicator"`; colour them with `color` or `itemDidMount` setting `--tnc-c`.
@@ -154,6 +158,9 @@ overlapping event backgrounds. It is `100%` for non-overlapping placements.
154
158
  Additional semantic colours: `--tnc-theme-now`, `--tnc-theme-warn`,
155
159
  `--tnc-theme-ok`, `--tnc-theme-amber`. Item colours come from `color`,
156
160
  `backgroundColor`, `borderColor` and `textColor`.
161
+ Set an item's `timeDisplay: "start"` for deadlines or other point-in-time markers:
162
+ visible and accessible labels show only its exact start time. This presentation
163
+ option does not alter the item's stored dates, layout duration or hit area.
157
164
  Override sizing tokens such as `--tnc-font-size`, `--tnc-small`,
158
165
  `--tnc-radius`, `--tnc-bar-h`, `--tnc-more-h`, `--tnc-dot-size` and
159
166
  `--tnc-dot-gap` directly on `.tnc` (not just its ancestor).