UNPKG

@webwriter/slides

Version:

Present content as a sequence of slides or tabs.

424 lines (423 loc) 13.9 kB
{ "schemaVersion": "1.0.0", "readme": "", "modules": [ { "kind": "javascript-module", "path": "src/widgets/webwriter-slides.ts", "declarations": [ { "kind": "class", "description": "Container for displaying a slideshow of content sequentially.", "name": "WebwriterSlides", "slots": [ { "description": "Slide elements to be displayed (should be `webwriter-slide` components only).", "name": "default" } ], "members": [ { "kind": "field", "name": "localize", "privacy": "protected", "default": "LOCALIZE" }, { "kind": "field", "name": "_boundKeyHandler", "type": { "text": "(e: KeyboardEvent) => void" }, "privacy": "private" }, { "kind": "method", "name": "_handleKeyDown", "parameters": [ { "name": "e", "type": { "text": "KeyboardEvent" } } ], "description": "Handles keyboard navigation for the slideshow.\nArrowRight advances to the next slide, ArrowLeft goes back.\nOnly possible in preview mode." }, { "kind": "field", "name": "scopedElements", "type": { "text": "object" }, "privacy": "protected", "static": true, "default": "{ \"sl-button\": SlButton, \"sl-icon-button\": SlIconButton, \"sl-tooltip\": SlTooltip, 'sl-select': SlSelect, 'sl-option': SlOption }" }, { "kind": "field", "name": "activeSlideIndex", "type": { "text": "number" }, "default": "0", "description": "Index of the currently active slide." }, { "kind": "field", "name": "activeSlide", "type": { "text": "WebwriterSlide" }, "description": "The active slide element based on the activeSlideIndex.", "readonly": true }, { "kind": "field", "name": "draggingIndex", "type": { "text": "number | null" }, "privacy": "private", "default": "null" }, { "kind": "field", "name": "lastDraggedOver", "type": { "text": "number" }, "privacy": "private", "default": "-1", "description": "Index of the slide currently being dragged over (for drag-and-drop functionality)." }, { "kind": "field", "name": "isFullscreen", "privacy": "protected", "description": "Whether the slideshow is currently displayed in fullscreen mode.", "readonly": true }, { "kind": "field", "name": "iconSrc", "privacy": "protected", "description": "Icon source URL depending on fullscreen state (enter/exit).", "readonly": true }, { "kind": "field", "name": "slides", "type": { "text": "WebwriterSlide[]" }, "privacy": "protected", "description": "All `webwriter-slide` elements. \nRepresents the individual slides in the slideshow." }, { "kind": "field", "name": "type", "type": { "text": "'tabs' | 'slides'" }, "privacy": "public", "default": "'slides'", "description": "Defines the type of view for the slideshow.\n- \"slides\": Show content as sequential slides.\n- \"tabs\": Show content using tabs.", "attribute": "type", "reflects": true }, { "kind": "method", "name": "addSlide", "parameters": [ { "name": "index", "optional": true, "type": { "text": "number" } } ], "description": "Add a new empty slide element. Optionally insert after given index." }, { "kind": "method", "name": "duplicateSlide", "parameters": [ { "name": "index", "type": { "text": "number" } } ], "description": "Duplicate an existing slide at given index." }, { "kind": "method", "name": "removeActiveSlide", "description": "Remove the currently active slide element." }, { "kind": "method", "name": "removeSlide", "parameters": [ { "name": "slideIndex", "type": { "text": "number" } } ], "description": "Remove the currently active slide element." }, { "kind": "method", "name": "nextSlide", "parameters": [ { "name": "backwards", "default": "false" }, { "name": "step", "default": "1" } ], "description": "Activate the next slide element." }, { "kind": "field", "name": "hasNextSlide", "type": { "text": "boolean" }, "description": "False if slideshow is on the last slide.", "readonly": true }, { "kind": "field", "name": "hasPreviousSlide", "type": { "text": "boolean" }, "description": "False if slideshow is on the first slide.", "readonly": true }, { "kind": "method", "name": "handleNextSlideClick", "privacy": "protected", "parameters": [ { "name": "e", "type": { "text": "MouseEvent | KeyboardEvent" }, "description": "The triggering mouse or keyboard event." }, { "name": "backwards", "default": "false", "description": "Whether to navigate backward (default is false)." } ], "description": "Handles navigation to the next or previous slide based on user input.\n- Shift key: jump by the total number of slides.\n- Ctrl key: jump by 10 slides.\n- Otherwise: move by one slide." }, { "kind": "field", "name": "changeSlide", "privacy": "protected", "description": "Changes the active slide to the specified index.\nWaits for rendering to finish, scrolls the active slide into view,\nand generates a thumbnail preview using snapdom.", "parameters": [ { "description": "The index of the slide to activate.", "name": "index" } ] }, { "kind": "method", "name": "onDragStart", "privacy": "private", "parameters": [ { "name": "e", "type": { "text": "DragEvent" }, "description": "The dragstart event." }, { "name": "index", "type": { "text": "number" }, "description": "Index of the slide being dragged." } ], "description": "Starts dragging a slide element.\nAdds the 'dragging' CSS class and sets drag data." }, { "kind": "method", "name": "onDragEnd", "privacy": "private", "parameters": [ { "name": "e", "type": { "text": "DragEvent" }, "description": "The dragend event." } ], "description": "Ends dragging a slide.\nMoves the dragged slide to its new position if it was moved,\nupdates the active slide index, and cleans up drag state." }, { "kind": "method", "name": "onDragOver", "privacy": "private", "parameters": [ { "name": "e", "type": { "text": "DragEvent" }, "description": "The dragover event." }, { "name": "index", "type": { "text": "number" }, "description": "Index of the slide being dragged over." } ], "description": "Handles dragging over a slide element.\nPrevents default to allow dropping and records the slide index being hovered." } ], "attributes": [ { "name": "type", "type": { "text": "'tabs' | 'slides'" }, "default": "'slides'", "description": "Defines the type of view for the slideshow.\n- \"slides\": Show content as sequential slides.\n- \"tabs\": Show content using tabs.", "fieldName": "type" } ], "superclass": { "name": "LitElementWw", "package": "@webwriter/lit" }, "tagName": "webwriter-slides", "customElement": true } ], "exports": [ { "kind": "js", "name": "WebwriterSlides", "declaration": { "name": "WebwriterSlides", "module": "src/widgets/webwriter-slides.ts" } }, { "kind": "custom-element-definition", "name": "webwriter-slides", "declaration": { "name": "WebwriterSlides", "module": "src/widgets/webwriter-slides.ts" } } ] }, { "kind": "javascript-module", "path": "src/widgets/webwriter-slide.ts", "declarations": [ { "kind": "class", "description": "Represents a single slide in the `webwriter-slides` widget.", "name": "WebwriterSlide", "slots": [ { "description": "The content displayed within the slide.", "name": "default" } ], "members": [ { "kind": "field", "name": "active", "type": { "text": "boolean" }, "default": "false", "description": "Indicates whether the slide is currently active/visible.", "attribute": "active", "reflects": true }, { "kind": "field", "name": "thumbnail", "type": { "text": "string" }, "default": "\"\"", "description": "Data URI string for the slide thumbnail (e.g., \"data:image/png;base64,...\"). \nUsed to display a preview image for the slide.", "attribute": "thumbnail", "reflects": true } ], "attributes": [ { "name": "active", "type": { "text": "boolean" }, "default": "false", "description": "Indicates whether the slide is currently active/visible.", "fieldName": "active" }, { "name": "thumbnail", "type": { "text": "string" }, "default": "\"\"", "description": "Data URI string for the slide thumbnail (e.g., \"data:image/png;base64,...\"). \nUsed to display a preview image for the slide.", "fieldName": "thumbnail" } ], "superclass": { "name": "LitElementWw", "package": "@webwriter/lit" }, "tagName": "webwriter-slide", "customElement": true } ], "exports": [ { "kind": "js", "name": "WebwriterSlide", "declaration": { "name": "WebwriterSlide", "module": "src/widgets/webwriter-slide.ts" } }, { "kind": "custom-element-definition", "name": "webwriter-slide", "declaration": { "name": "WebwriterSlide", "module": "src/widgets/webwriter-slide.ts" } } ] } ] }