Skip to content

Releases: oddbird/slide-deck

v0.2.0-rc.1

21 Nov 17:23
df3d7c7
Compare
Choose a tag to compare
v0.2.0-rc.1 Pre-release
Pre-release
  • 🚀 NEW: The key-control attribute
    accepts values of none or escape,
    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 the slide-view attribute directly.
    This will also update session storage and the url query parameter.
  • 💥 BREAKING: When the start and resume events are fired,
    the slide-deck is put into a publicView
    (the default is slideshow).
    When the join-as-speaker event is fired,
    the slide-deck is put into a privateView
    (the default is speaker).
    These can be changed by setting the
    publicView and privateView properties with JS,
    or by setting the public-view and private-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
  • 👀 INTERNAL: Renamed static storageKeys to storeValues,
    and static controlKeys to navKeys for clarity.

v0.1.4 - sessionStorage slide-view takes priority

28 Feb 21:48
78deadb
Compare
Choose a tag to compare
  • 🐞 FIXED: session view preference overrides attribute when deck is first constructed

attributes, parts, slots, and views

16 Jan 19:34
b9ee82e
Compare
Choose a tag to compare

There's a lot of general cleanup here around our organizational approach and developer API:

  • 💥 BREAKING: Disabled the fullscreen 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) or slide-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 layout 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 dialog element
  • 🚀 NEW: Blank slides are implemented as shadow DOM dialogues, which can be replaced from the light DOM using slot=blank-slide on a slotted dialog 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 of command
  • 🐞 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

Bug fixes and keyboard shortcuts

26 Dec 19:16
67fb45e
Compare
Choose a tag to compare
  • 💥 BREAKING: Updated keyboard shortcuts
    to match PowerPoint,
    including command-. as 'end presentation'
    rather than 'toggle full-screen' (now command-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

v0.1.0 Initial release

23 Dec 05:50
6e40a91
Compare
Choose a tag to compare

An initial release with basic support for:

  • keyboard-control
  • fullscreen
  • following along in a second tab
  • custom control buttons, and a variety of custom event listeners
  • grid and list views