- 🚀 NEW: The
key-control
attribute accepts values ofnone
orescape
, to turn off keyboard navigation (and optionally leave escape-to-blur intact). This attribute can be applied to individual elements in a deck, for more detailed control -- eg turning off navigation while a form has focus. - 🚀 NEW: Provide a
slide-deck.webc
component. - 🚀 NEW: All attributes have associated getters and setters:
key-control
->keyControl
(boolean | 'none' | 'escape')follow-active
->followActive
(boolean)full-screen
->fullScreen
(boolean)slide-view
->slideView
(string)
- 🚀 NEW: Use the
?slide-view=viewName
query parameter to create links to specific slide views. When present on load, the query parameter will override the session storage as well as any hardcoded attribute value. - 💥 BREAKING: The
slideView
property setter should be used for changing views, rather than manipulating theslide-view
attribute directly. This will also update session storage and the url query parameter. - 💥 BREAKING: When the
start
andresume
events are fired, the slide-deck is put into apublicView
(the default isslideshow
). When thejoin-as-speaker
event is fired, the slide-deck is put into aprivateView
(the default isspeaker
). These can be changed by setting thepublicView
andprivateView
properties with JS, or by setting thepublic-view
andprivate-view
attributes in HTML. - 💥 BREAKING: Renamed the custom event handlers and matching public methods:
reset
=reset()
join
=join()
resume
=resume()
start
=start()
join-as-speaker
=joinAsSpeaker()
blank-slide
=blankSlide()
next
=next()
previous
=previous()
to-slide
=toSlide()
to-saved
=toSavedSlide()
scroll-to-active
=scrollToActive()
full-screen
=toggleFullScreen()
key-control
=toggleKeyControl()
follow-active
=toggleFollowActive()
- 🐞 FIXED: Keyboard events are given proper priority, so that (for example) you can open the control panel from a blank slide.
- 🐞 FIXED: Navigation shortcuts aren't invoked when a modifier key is being pressed.
- 👀 INTERNAL: Renamed static
storageKeys
tostoreValues
, and staticcontrolKeys
tonavKeys
for clarity.
- 🐞 FIXED: session view preference overrides attribute when deck is first constructed
- 💥 BREAKING: All events and
slide-event
controls use lowercase hyphenated names, for consistency with html conventions (toggleControl
->toggle-control
,toggleFollow
->toggle-follow
,toggleFullscreen
->toggle-fullscreen
) - 🚀 NEW: Use the
to-slide
attribute on buttons in the slide deck to move focus to any slide -- either the parent slide of the button, or the slide index given as a value of the attribute - 🚀 NEW: Custom
goToSlide
event accepts an integer value in theevent.detail
property - 🚀 NEW:
--slide-count-string
and--slide-index-string
can be used for CSS generated content - 🐞 FIXED: Less nesting for lower specificity in the
slide-deck.css
theme - 🐞 FIXED: Provide shadow-DOM control-panel styles
- 💥 BREAKING: Disabled the full-screen keyboard shortcut, until we have a chance to address the various fullscreen browser issues
- 💥 BREAKING: Removed the 'end presentation' event and keyboard shortcuts, which were more confusing than useful
- 💥 BREAKING: Removed the shadow DOM content wrapper, and all shadow DOM styles for slide layout
- 💥 BREAKING: The
reset
event targets the first slide rather than the slide-deck container - 🚀 NEW / 💥 BREAKING: Renamed and added control-panel parts,
to allow for more customization of the default panel
including pressed buttons with
:part(button pressed)
- 🚀 NEW: Set
aria-current='true'
on active slide - 🚀 NEW: View settings are maintained across page refresh
using
sessionStorage
- 🚀 NEW: Add support for slide parts –
slide-canvas
&slide-note
- 🚀 NEW: Each slide is labeled with either
slide-item='container'
(if it has nested parts) orslide-item='canvas' slide-canvas
(if there are no nested parts) - 🚀 NEW: The slide-deck has a
--slide-count
property, and each slide has a--slide-index
- 🚀 NEW: Default styles are in
slide-deck.css
and can be applied from the light DOM - 🚀 NEW: The entire control panel can be replaced
from the light DOM using
slot=control-panel
on a slotteddialog
element - 🚀 NEW: Blank slides are implemented as shadow DOM dialogues,
which can be replaced from the light DOM using
slot=blank-slide
on a slotteddialog
element - 🚀 NEW: When
key-control
is activated (including on-load), we target the stored active slide (or the first slide) - 🚀 NEW: Support for keyboard shortcuts on Windows/Linux
using
control
instead ofcommand
- 🐞 FIXED: Slotted controls are no longer treated as slides
- 🐞 FIXED: When restoring the active slide from memory, we go to the first slide if there's no stored state
- 🐞 FIXED: Use any key to exit a blank-slide mode
- 💥 BREAKING: Updated keyboard shortcuts
to match PowerPoint,
including
command-.
as 'end presentation' rather than 'toggle full-screen' (nowcommand-shift-f
) - 🚀 NEW: Support for blank-screen shortcuts (inspired by Curtis Wilcox)
- 🚀 NEW: Both start/resume events target active slides
- 🚀 NEW: Control panel includes toggle for keyboard controls
- 🚀 NEW: Control panel buttons have
aria-pressed
styles - 🚀 NEW: All slide-event buttons that toggle a boolean state
get
aria-pressed
values that update with the state - 🐞 FIXED: Scroll to the active slide when changing views
- 🐞 FIXED: Control panel view toggles were broken
- 🐞 FIXED: Control panel prevents propagation of keyboard shortcuts
- 👀 INTERNAL: The current slide is stored in an
activeSlide
property
Initial draft based on Miriam's Proof of Concept.