663 Commits
Author SHA1 Message Date
Kamran Ahmed 1c77160392 1.10.2 1.10.2 2026-10-18 18:41:53 +01:00
Kamran Ahmed c20b74c666 Drop landmarks and dummy aria from popover 2026-10-18 16:58:54 +01:00
Kamran Ahmed 24762f9872 Scroll steps clipped by scroll containers 2026-10-18 14:47:08 +01:00
Kamran Ahmed d2d5995ec1 Update changelog in docs 2026-10-18 13:00:26 +01:00
Kamran Ahmed 80e8b363ec Fix hint positioning in transformed dialogs 2026-10-18 12:55:11 +01:00
Kamran Ahmed ca44ea064a 1.10.1 1.10.1 2026-10-15 14:52:50 +01:00
Kamran Ahmed 7e33b1d042 Polish checklist item focus and alignment 2026-10-15 14:49:41 +01:00
Kamran Ahmed 65329c5587 Update changelog in docs 2026-10-15 14:26:47 +01:00
Kamran Ahmed 073c8022f5 Add launcher option to checklist 2026-10-15 14:14:29 +01:00
Kamran Ahmed 5f2f1b8cff Render hints inside open modal dialogs 2026-10-15 13:16:37 +01:00
Kamran Ahmed cde82355d0 Fix popover clicks on text node targets 2026-10-15 11:43:34 +01:00
Kamran Ahmed e741814ed1 1.10.0 2026-10-15 11:23:36 +01:00
Kamran Ahmed d517628f03 Add checklist themes, positions and examples 1.10.0 2026-10-15 11:10:09 +01:00
Kamran Ahmed 9e3f68442b Add checklists 2026-10-13 12:18:40 +01:00
Kamran Ahmed c2c0848f70 Fix no buttons demo on popover page 2026-10-13 07:52:20 +01:00
Kamran Ahmed d5ffae7b9c Combine example pages and add on-page navigation 2026-10-12 23:27:38 +01:00
Kamran Ahmed f331f5d3ef Pass destroy reason to destroy hooks 2026-10-12 22:39:24 +01:00
Kamran Ahmed cc398049bd 1.9.0 1.9.0 2026-10-03 10:36:00 +01:00
Kamran Ahmed d7ccdd04f9 Apply global disableButtons to tour steps 2026-10-03 10:27:40 +01:00
Kamran Ahmed bda4190244 Hide the popover while waiting for an element 2026-10-03 10:25:13 +01:00
Kamran Ahmed 758a563744 Add none option to overlayClickBehavior 2026-10-03 10:24:30 +01:00
Kamran Ahmed addb8f5378 Make keyboard control follow the buttons 2026-10-03 10:24:01 +01:00
Kamran Ahmed 15cd79ebe9 Fire onDeselected when the step changes 2026-10-03 10:22:01 +01:00
Kamran Ahmed 5d88af8f9f Document recent changes in the changelog 2026-10-03 10:10:24 +01:00
Kamran Ahmed d19768a900 Remove stage gap on steps without an element 2026-10-03 10:07:34 +01:00
Maciej Zmitrukiewicz 2a30339908 Restore aria attributes after a highlight 2026-10-03 10:06:55 +01:00
A McBain 4dff1b9294 Make close button label configurable 2026-10-03 10:05:34 +01:00
Kamran Ahmed ed09b81af8 Close the active instance when another starts 2026-10-03 09:45:33 +01:00
Kamran Ahmed eb10276890 Skip destroy on an inactive instance
Calling destroy() on a driver that was never started or already
destroyed would strip body classes and highlights belonging to
another active instance.

Fixes #504
2026-10-03 09:37:53 +01:00
Kamran Ahmed 010fb13fe0 Add missing hint offset in docs 2026-07-18 17:01:04 +01:00
Kamran Ahmed 4863b6b50e Add restoreAll option in hints 2026-07-18 16:58:56 +01:00
Kamran Ahmed d6515b6391 Add hints example in hero section 2026-07-18 16:40:07 +01:00
Kamran Ahmed ccc94cb25a 1.8.0 1.8.0 2026-07-17 23:09:35 +01:00
Kamran Ahmed ab777893bb Fix button styling for footer buttons 2026-07-17 23:04:02 +01:00
Kamran Ahmed b93a4fc413 Add advanceOnClick and waitForElement 2026-07-17 16:41:20 +01:00
Kamran Ahmed ab56c56615 Fix missing step and button texts #616 2026-07-17 15:30:03 +01:00
Kamran Ahmed 3821035a50 Increase beacon indicator size 2026-07-17 15:29:39 +01:00
Kamran Ahmed 8678291ea7 Refactor tests 2026-07-17 15:16:35 +01:00
Kamran Ahmed e2aa992dbf Reorganize internals and unify step popover 2026-07-17 13:07:19 +01:00
Kamran Ahmed dd468dcc10 Remove the hints demo from the homepage examples
The demo's beacon placement on the hero didn't sit right, and the
homepage grid works fine without it; the hints guide and its live
samples remain the place to try hints. The shorter 'and more ...'
label stays.
2026-07-17 12:22:38 +01:00
Kamran Ahmed fe504ad6f0 Add a hints example to the homepage and simplify the hint-to-tour docs
The homepage examples grid gains a Hints button that toggles three
beacons on the hero: one plain dismissable hint, one whose button starts
a short tour through onButtonClick (showing the two features hand off to
each other), and one whose button leads to the hints guide. The last-row
label shrinks from 'and much more ...' to 'and more ...' so the row
keeps to one line.

The guide's hint-launches-tour example now uses buttonText plus
onButtonClick instead of hand-building a button in onPopoverRender,
which stays mentioned for additional buttons.
2026-07-17 11:59:37 +01:00
Kamran Ahmed b4d221faf7 Add onButtonClick to take over the hint button
The built-in button always dismissed; repurposing it meant hiding it and
rebuilding one in onPopoverRender. onButtonClick (per hint or instance
wide, hint wins) now runs instead of dismissing, mirroring how a tour's
onNextClick takes over the default advance; call dismiss() from the hook
to keep the old behavior. Custom and extra buttons remain the
onPopoverRender pattern, same as tours.
2026-07-17 11:30:10 +01:00
Kamran Ahmed 3e74fee890 Mention hints across the getting-started docs and the landing page
Basic Usage gains a live hints demo with its code, replacing a dangling
paragraph that promised a single-step tour example which never followed.
Installation covers the hints entry for both npm (separate import,
self-contained stylesheet) and the CDN (hints.iife.js, hints.css, and
the window.driverHints global). Theming points at the beacon CSS
variables and the Styling Hints examples. The landing marquee names
tours, highlights and hints, and the meta description mentions hints.
2026-07-17 11:26:36 +01:00
Kamran Ahmed cd50754091 Document hints on the Configuration and API Reference pages
Hints were only covered by their own guide. Configuration gains the
HintsConfig and DriverHint sections in the same annotated-type style as
the tour's, and API Reference gains the hints() factory with every
instance method. Both cross-link the guide, and the API page links the
new configuration anchor. Also replaces a pre-existing em dash in the
onDoneClick note.
2026-07-17 09:55:59 +01:00
Kamran Ahmed 09484c7261 Clean up the hints module
show() now mounts hints whose elements have appeared since the last
call, which the docs already promised but only a full hide()/show()
delivered; mountHints() skips what is already on the page, making
show() naturally idempotent and simpler.

The closePopover()/close() pair collapses into one function, the
scroll and resize listeners use requireRefresh directly instead of
wrapper closures, and config/dismissed become consts.

Comments get a pass: the HintsConfig overlay comment still described
the pre-cutout semantics (beacons above the overlay) and is corrected;
obvious comments are dropped, the load-bearing ones tightened, and em
dashes across source comments replaced per Kamran's preference.
2026-07-16 22:25:21 +01:00
Kamran Ahmed 95df19e079 Give the hint popover and its arrow one seamless shadow
box-shadow follows the popover's rectangular box, so the protruding
arrow cast nothing and read as a flat notch against whatever sat behind
it. The hint popover now uses a drop-shadow filter instead, which
follows the rendered silhouette: the rounded box and the arrow cast a
single continuous shadow, with no border tricks and no assumptions
about the theme's colors. Tours are untouched since their overlay
already gives the arrow contrast.
2026-07-16 21:50:58 +01:00
Kamran Ahmed 8d2e5c9f78 Open the hints guide with the overlay demo
The hero example on the guide turns the optional overlay on, so the
first interaction shows the spotlight, and its code block now matches
what the demo runs. The lead-in names the overlay as optional so the
default stays clear.
2026-07-16 21:16:30 +01:00
Kamran Ahmed 7336c67097 Lead the hints examples with the overlay and drop the em dashes
The Dimming the page sample moves to the top of Styling Hints. The em
dashes across the hints docs copy, the demo component and the changelog
entries are rephrased with plain punctuation.
2026-07-16 21:04:35 +01:00
Kamran Ahmed 24763f9ef2 Anchor overlay-mode hints to the element and enlarge the hint arrow
With the overlay up, an open hint now reads exactly like a tour step:
the popover anchors to the element (clearing the cutout ring and lining
up with its edge) instead of hanging off the beacon, and the beacon
steps aside while its popover is up — the spotlight does the pointing.
Suggested by Kamran: once the dot has been clicked, it is just noise
inside the cutout. Without the overlay nothing changes; the dot remains
the anchor and the toggle. Dim-click, Escape and Got it all still close.

The hint arrow also grows to 14px (7px borders) — the tour's 10px
triangle read small next to a 24px beacon. Tours are untouched. The
arrow placement code now measures the arrow's real box instead of
assuming the constant, so restyled arrows keep their tip on target;
the beacon-shift constant is the one place the size is assumed, since
it runs before the popover exists.
2026-07-16 20:55:19 +01:00
Kamran Ahmed 51b66dcfe9 Cut the active element out of the hint overlay
The overlay is now the same spotlight the tour draws: an svg dim with a
rounded cutout around the open hint's element (the path generator moves
out of the tour's context into a pure function both share). The element
stays visible and interactive inside the cutout — the svg lets pointer
events through and only the dimmed path catches them, so clicking the
dim still closes the hint.

The other beacons now wait under the overlay instead of floating above
it; only the open hint's beacon (via its aria-expanded state) and its
popover rise above. The cutout tracks the element on scroll and resize.

The arrow's drop-shadow halo is gone: it read as a dirty outline against
light pages — tours never needed one because the arrow sits against the
dark overlay, and hints now either touch the colored beacon (no overlay)
or sit against the dim (overlay), so the plain white triangle works in
both.
2026-07-16 20:42:14 +01:00