luxen-ui 0.3.0 → 0.5.0
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/cdn/chunks/decorate.js +1 -1
- package/cdn/chunks/decorate.js.map +1 -1
- package/cdn/chunks/map.js +2 -0
- package/cdn/chunks/map.js.map +1 -0
- package/cdn/custom-elements.json +6707 -4242
- package/cdn/elements/avatar/avatar.d.ts +1 -1
- package/cdn/elements/avatar/avatar.d.ts.map +1 -1
- package/cdn/elements/avatar/avatar.js +3 -3
- package/cdn/elements/avatar/avatar.js.map +1 -1
- package/cdn/elements/avatar/index.d.ts +2 -2
- package/cdn/elements/avatar/index.d.ts.map +1 -1
- package/cdn/elements/avatar/index.js +1 -1
- package/cdn/elements/avatar/index.js.map +1 -1
- package/cdn/elements/badge/badge.d.ts +1 -1
- package/cdn/elements/badge/badge.d.ts.map +1 -1
- package/cdn/elements/badge/badge.js +1 -1
- package/cdn/elements/badge/badge.js.map +1 -1
- package/cdn/elements/badge/index.d.ts +2 -2
- package/cdn/elements/badge/index.d.ts.map +1 -1
- package/cdn/elements/badge/index.js +1 -1
- package/cdn/elements/badge/index.js.map +1 -1
- package/cdn/elements/carousel/carousel.d.ts +18 -11
- package/cdn/elements/carousel/carousel.d.ts.map +1 -1
- package/cdn/elements/carousel/carousel.js +21 -20
- package/cdn/elements/carousel/carousel.js.map +1 -1
- package/cdn/elements/carousel/index.d.ts +2 -2
- package/cdn/elements/carousel/index.d.ts.map +1 -1
- package/cdn/elements/carousel/index.js +1 -1
- package/cdn/elements/carousel/index.js.map +1 -1
- package/cdn/elements/carousel-item/carousel-item.d.ts +1 -1
- package/cdn/elements/carousel-item/carousel-item.d.ts.map +1 -1
- package/cdn/elements/carousel-item/carousel-item.js +1 -1
- package/cdn/elements/carousel-item/carousel-item.js.map +1 -1
- package/cdn/elements/carousel-item/index.d.ts +2 -2
- package/cdn/elements/carousel-item/index.d.ts.map +1 -1
- package/cdn/elements/carousel-item/index.js +1 -1
- package/cdn/elements/carousel-item/index.js.map +1 -1
- package/cdn/elements/dialog/dialog.d.ts +1 -1
- package/cdn/elements/dialog/dialog.d.ts.map +1 -1
- package/cdn/elements/dialog/dialog.js +2 -2
- package/cdn/elements/dialog/dialog.js.map +1 -1
- package/cdn/elements/dialog/dialog.styles.js.map +1 -1
- package/cdn/elements/dialog/index.d.ts +2 -2
- package/cdn/elements/dialog/index.d.ts.map +1 -1
- package/cdn/elements/dialog/index.js +1 -1
- package/cdn/elements/dialog/index.js.map +1 -1
- package/cdn/elements/divider/divider.d.ts +1 -1
- package/cdn/elements/divider/divider.d.ts.map +1 -1
- package/cdn/elements/divider/divider.js +1 -1
- package/cdn/elements/divider/divider.js.map +1 -1
- package/cdn/elements/divider/index.d.ts +2 -2
- package/cdn/elements/divider/index.d.ts.map +1 -1
- package/cdn/elements/divider/index.js +1 -1
- package/cdn/elements/divider/index.js.map +1 -1
- package/cdn/elements/drawer/drawer.d.ts +2 -2
- package/cdn/elements/drawer/drawer.d.ts.map +1 -1
- package/cdn/elements/drawer/drawer.js +1 -1
- package/cdn/elements/drawer/drawer.js.map +1 -1
- package/cdn/elements/drawer/index.d.ts +2 -2
- package/cdn/elements/drawer/index.d.ts.map +1 -1
- package/cdn/elements/drawer/index.js +1 -1
- package/cdn/elements/drawer/index.js.map +1 -1
- package/cdn/elements/dropdown/dropdown.d.ts +7 -4
- package/cdn/elements/dropdown/dropdown.d.ts.map +1 -1
- package/cdn/elements/dropdown/dropdown.js +7 -4
- package/cdn/elements/dropdown/dropdown.js.map +1 -1
- package/cdn/elements/dropdown/index.d.ts +2 -2
- package/cdn/elements/dropdown/index.d.ts.map +1 -1
- package/cdn/elements/dropdown/index.js +1 -1
- package/cdn/elements/dropdown/index.js.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.d.ts +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.js +2 -2
- package/cdn/elements/dropdown-item/dropdown-item.js.map +1 -1
- package/cdn/elements/dropdown-item/index.d.ts +2 -2
- package/cdn/elements/dropdown-item/index.d.ts.map +1 -1
- package/cdn/elements/dropdown-item/index.js +1 -1
- package/cdn/elements/dropdown-item/index.js.map +1 -1
- package/cdn/elements/icon/icon.d.ts +1 -1
- package/cdn/elements/icon/icon.d.ts.map +1 -1
- package/cdn/elements/icon/icon.js +2 -2
- package/cdn/elements/icon/icon.js.map +1 -1
- package/cdn/elements/icon/index.d.ts +2 -2
- package/cdn/elements/icon/index.d.ts.map +1 -1
- package/cdn/elements/icon/index.js +1 -1
- package/cdn/elements/icon/index.js.map +1 -1
- package/cdn/elements/input-otp/index.d.ts +2 -2
- package/cdn/elements/input-otp/index.d.ts.map +1 -1
- package/cdn/elements/input-otp/index.js +1 -1
- package/cdn/elements/input-otp/index.js.map +1 -1
- package/cdn/elements/input-otp/input-otp.d.ts +1 -1
- package/cdn/elements/input-otp/input-otp.d.ts.map +1 -1
- package/cdn/elements/input-otp/input-otp.js +1 -1
- package/cdn/elements/input-otp/input-otp.js.map +1 -1
- package/cdn/elements/input-stepper/index.d.ts +2 -2
- package/cdn/elements/input-stepper/index.d.ts.map +1 -1
- package/cdn/elements/input-stepper/index.js +1 -1
- package/cdn/elements/input-stepper/index.js.map +1 -1
- package/cdn/elements/input-stepper/input-stepper.d.ts +1 -1
- package/cdn/elements/input-stepper/input-stepper.d.ts.map +1 -1
- package/cdn/elements/input-stepper/input-stepper.js +1 -1
- package/cdn/elements/input-stepper/input-stepper.js.map +1 -1
- package/cdn/elements/popover/index.d.ts +2 -2
- package/cdn/elements/popover/index.d.ts.map +1 -1
- package/cdn/elements/popover/index.js +1 -1
- package/cdn/elements/popover/index.js.map +1 -1
- package/cdn/elements/popover/popover.d.ts +1 -1
- package/cdn/elements/popover/popover.d.ts.map +1 -1
- package/cdn/elements/popover/popover.js +2 -2
- package/cdn/elements/popover/popover.js.map +1 -1
- package/cdn/elements/rating/index.d.ts +2 -2
- package/cdn/elements/rating/index.d.ts.map +1 -1
- package/cdn/elements/rating/index.js +1 -1
- package/cdn/elements/rating/index.js.map +1 -1
- package/cdn/elements/rating/rating.d.ts +1 -1
- package/cdn/elements/rating/rating.d.ts.map +1 -1
- package/cdn/elements/rating/rating.js +2 -2
- package/cdn/elements/rating/rating.js.map +1 -1
- package/cdn/elements/skeleton/index.d.ts +2 -2
- package/cdn/elements/skeleton/index.d.ts.map +1 -1
- package/cdn/elements/skeleton/index.js +1 -1
- package/cdn/elements/skeleton/index.js.map +1 -1
- package/cdn/elements/skeleton/skeleton.d.ts +1 -1
- package/cdn/elements/skeleton/skeleton.d.ts.map +1 -1
- package/cdn/elements/skeleton/skeleton.js +1 -1
- package/cdn/elements/skeleton/skeleton.js.map +1 -1
- package/cdn/elements/spinner/index.d.ts +2 -2
- package/cdn/elements/spinner/index.d.ts.map +1 -1
- package/cdn/elements/spinner/index.js +1 -1
- package/cdn/elements/spinner/index.js.map +1 -1
- package/cdn/elements/spinner/spinner.d.ts +1 -1
- package/cdn/elements/spinner/spinner.d.ts.map +1 -1
- package/cdn/elements/spinner/spinner.js +1 -1
- package/cdn/elements/spinner/spinner.js.map +1 -1
- package/cdn/elements/sticky-bar/index.d.ts +8 -0
- package/cdn/elements/sticky-bar/index.d.ts.map +1 -0
- package/cdn/elements/sticky-bar/index.js +2 -0
- package/cdn/elements/sticky-bar/index.js.map +1 -0
- package/cdn/elements/sticky-bar/sticky-bar.d.ts +46 -0
- package/cdn/elements/sticky-bar/sticky-bar.d.ts.map +1 -0
- package/cdn/elements/sticky-bar/sticky-bar.js +2 -0
- package/cdn/elements/sticky-bar/sticky-bar.js.map +1 -0
- package/cdn/elements/stories/index.d.ts +8 -0
- package/cdn/elements/stories/index.d.ts.map +1 -0
- package/cdn/elements/stories/index.js +2 -0
- package/cdn/elements/stories/index.js.map +1 -0
- package/cdn/elements/stories/stories.d.ts +50 -0
- package/cdn/elements/stories/stories.d.ts.map +1 -0
- package/cdn/elements/stories/stories.js +2 -0
- package/cdn/elements/stories/stories.js.map +1 -0
- package/cdn/elements/stories-viewer/index.d.ts +8 -0
- package/cdn/elements/stories-viewer/index.d.ts.map +1 -0
- package/cdn/elements/stories-viewer/index.js +2 -0
- package/cdn/elements/stories-viewer/index.js.map +1 -0
- package/cdn/elements/stories-viewer/stories-viewer.d.ts +136 -0
- package/cdn/elements/stories-viewer/stories-viewer.d.ts.map +1 -0
- package/cdn/elements/stories-viewer/stories-viewer.js +160 -0
- package/cdn/elements/stories-viewer/stories-viewer.js.map +1 -0
- package/cdn/elements/story/index.d.ts +8 -0
- package/cdn/elements/story/index.d.ts.map +1 -0
- package/cdn/elements/story/index.js +2 -0
- package/cdn/elements/story/index.js.map +1 -0
- package/cdn/elements/story/story.d.ts +48 -0
- package/cdn/elements/story/story.d.ts.map +1 -0
- package/cdn/elements/story/story.js +35 -0
- package/cdn/elements/story/story.js.map +1 -0
- package/cdn/elements/tabs/index.d.ts +2 -2
- package/cdn/elements/tabs/index.d.ts.map +1 -1
- package/cdn/elements/tabs/index.js +1 -1
- package/cdn/elements/tabs/index.js.map +1 -1
- package/cdn/elements/tabs/tabs.d.ts +1 -1
- package/cdn/elements/tabs/tabs.d.ts.map +1 -1
- package/cdn/elements/tabs/tabs.js +1 -1
- package/cdn/elements/tabs/tabs.js.map +1 -1
- package/cdn/elements/toast/index.d.ts +3 -3
- package/cdn/elements/toast/index.d.ts.map +1 -1
- package/cdn/elements/toast/index.js +1 -1
- package/cdn/elements/toast/index.js.map +1 -1
- package/cdn/elements/toast/toast.d.ts +2 -2
- package/cdn/elements/toast/toast.d.ts.map +1 -1
- package/cdn/elements/toast/toast.js +1 -1
- package/cdn/elements/toast/toast.js.map +1 -1
- package/cdn/elements/tooltip/index.d.ts +2 -2
- package/cdn/elements/tooltip/index.d.ts.map +1 -1
- package/cdn/elements/tooltip/index.js +1 -1
- package/cdn/elements/tooltip/index.js.map +1 -1
- package/cdn/elements/tooltip/tooltip.d.ts +4 -4
- package/cdn/elements/tooltip/tooltip.d.ts.map +1 -1
- package/cdn/elements/tooltip/tooltip.js +2 -2
- package/cdn/elements/tooltip/tooltip.js.map +1 -1
- package/cdn/elements/tree/index.d.ts +2 -2
- package/cdn/elements/tree/index.d.ts.map +1 -1
- package/cdn/elements/tree/index.js +1 -1
- package/cdn/elements/tree/index.js.map +1 -1
- package/cdn/elements/tree/tree.d.ts +5 -5
- package/cdn/elements/tree/tree.d.ts.map +1 -1
- package/cdn/elements/tree/tree.js +2 -2
- package/cdn/elements/tree/tree.js.map +1 -1
- package/cdn/elements/tree-item/index.d.ts +2 -2
- package/cdn/elements/tree-item/index.d.ts.map +1 -1
- package/cdn/elements/tree-item/index.js +1 -1
- package/cdn/elements/tree-item/index.js.map +1 -1
- package/cdn/elements/tree-item/tree-item.d.ts +2 -2
- package/cdn/elements/tree-item/tree-item.d.ts.map +1 -1
- package/cdn/elements/tree-item/tree-item.js +2 -2
- package/cdn/elements/tree-item/tree-item.js.map +1 -1
- package/cdn/registry.d.ts +1 -1
- package/cdn/registry.d.ts.map +1 -1
- package/cdn/registry.js.map +1 -1
- package/cdn/shared/controllers/popover.js.map +1 -1
- package/cdn/shared/luxen-form-associated-element.js +1 -1
- package/cdn/shared/styles/host.styles.js.map +1 -1
- package/cdn/styles/elements/divider.css +7 -0
- package/cdn/styles/elements/select.css +3 -3
- package/cdn/styles/elements/stories.css +63 -0
- package/cdn/styles/elements/story.css +192 -0
- package/cdn/styles/index.css +3 -0
- package/dist/css/elements/divider.css +7 -0
- package/dist/css/elements/select.css +3 -3
- package/dist/css/elements/stories.css +63 -0
- package/dist/css/elements/story.css +192 -0
- package/dist/css/index.css +3 -0
- package/dist/custom-elements.json +6707 -4242
- package/dist/elements/avatar/avatar.css +13 -7
- package/dist/elements/avatar/avatar.d.ts +1 -1
- package/dist/elements/avatar/avatar.d.ts.map +1 -1
- package/dist/elements/avatar/avatar.js +11 -11
- package/dist/elements/avatar/index.d.ts +2 -2
- package/dist/elements/avatar/index.d.ts.map +1 -1
- package/dist/elements/avatar/index.js +2 -2
- package/dist/elements/badge/badge.d.ts +1 -1
- package/dist/elements/badge/badge.d.ts.map +1 -1
- package/dist/elements/badge/badge.js +5 -5
- package/dist/elements/badge/index.d.ts +2 -2
- package/dist/elements/badge/index.d.ts.map +1 -1
- package/dist/elements/badge/index.js +2 -2
- package/dist/elements/carousel/carousel.css +7 -0
- package/dist/elements/carousel/carousel.d.ts +18 -11
- package/dist/elements/carousel/carousel.d.ts.map +1 -1
- package/dist/elements/carousel/carousel.js +193 -167
- package/dist/elements/carousel/index.d.ts +2 -2
- package/dist/elements/carousel/index.d.ts.map +1 -1
- package/dist/elements/carousel/index.js +2 -2
- package/dist/elements/carousel-item/carousel-item.d.ts +1 -1
- package/dist/elements/carousel-item/carousel-item.d.ts.map +1 -1
- package/dist/elements/carousel-item/carousel-item.js +2 -2
- package/dist/elements/carousel-item/index.d.ts +2 -2
- package/dist/elements/carousel-item/index.d.ts.map +1 -1
- package/dist/elements/carousel-item/index.js +2 -2
- package/dist/elements/dialog/dialog.d.ts +1 -1
- package/dist/elements/dialog/dialog.d.ts.map +1 -1
- package/dist/elements/dialog/dialog.js +9 -9
- package/dist/elements/dialog/index.d.ts +2 -2
- package/dist/elements/dialog/index.d.ts.map +1 -1
- package/dist/elements/dialog/index.js +2 -2
- package/dist/elements/divider/divider.d.ts +1 -1
- package/dist/elements/divider/divider.d.ts.map +1 -1
- package/dist/elements/divider/divider.js +3 -3
- package/dist/elements/divider/index.d.ts +2 -2
- package/dist/elements/divider/index.d.ts.map +1 -1
- package/dist/elements/divider/index.js +2 -2
- package/dist/elements/drawer/drawer.d.ts +2 -2
- package/dist/elements/drawer/drawer.d.ts.map +1 -1
- package/dist/elements/drawer/drawer.js +4 -4
- package/dist/elements/drawer/index.d.ts +2 -2
- package/dist/elements/drawer/index.d.ts.map +1 -1
- package/dist/elements/drawer/index.js +2 -2
- package/dist/elements/dropdown/dropdown.css +14 -3
- package/dist/elements/dropdown/dropdown.d.ts +7 -4
- package/dist/elements/dropdown/dropdown.d.ts.map +1 -1
- package/dist/elements/dropdown/dropdown.js +41 -29
- package/dist/elements/dropdown/index.d.ts +2 -2
- package/dist/elements/dropdown/index.d.ts.map +1 -1
- package/dist/elements/dropdown/index.js +2 -2
- package/dist/elements/dropdown-item/dropdown-item.d.ts +1 -1
- package/dist/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/dist/elements/dropdown-item/dropdown-item.js +20 -20
- package/dist/elements/dropdown-item/index.d.ts +2 -2
- package/dist/elements/dropdown-item/index.d.ts.map +1 -1
- package/dist/elements/dropdown-item/index.js +2 -2
- package/dist/elements/icon/icon.d.ts +1 -1
- package/dist/elements/icon/icon.d.ts.map +1 -1
- package/dist/elements/icon/icon.js +4 -4
- package/dist/elements/icon/index.d.ts +2 -2
- package/dist/elements/icon/index.d.ts.map +1 -1
- package/dist/elements/icon/index.js +2 -2
- package/dist/elements/input-otp/index.d.ts +2 -2
- package/dist/elements/input-otp/index.d.ts.map +1 -1
- package/dist/elements/input-otp/index.js +2 -2
- package/dist/elements/input-otp/input-otp.d.ts +1 -1
- package/dist/elements/input-otp/input-otp.d.ts.map +1 -1
- package/dist/elements/input-otp/input-otp.js +2 -2
- package/dist/elements/input-stepper/index.d.ts +2 -2
- package/dist/elements/input-stepper/index.d.ts.map +1 -1
- package/dist/elements/input-stepper/index.js +2 -2
- package/dist/elements/input-stepper/input-stepper.d.ts +1 -1
- package/dist/elements/input-stepper/input-stepper.d.ts.map +1 -1
- package/dist/elements/input-stepper/input-stepper.js +8 -8
- package/dist/elements/popover/index.d.ts +2 -2
- package/dist/elements/popover/index.d.ts.map +1 -1
- package/dist/elements/popover/index.js +2 -2
- package/dist/elements/popover/popover.d.ts +1 -1
- package/dist/elements/popover/popover.d.ts.map +1 -1
- package/dist/elements/popover/popover.js +33 -33
- package/dist/elements/rating/index.d.ts +2 -2
- package/dist/elements/rating/index.d.ts.map +1 -1
- package/dist/elements/rating/index.js +2 -2
- package/dist/elements/rating/rating.d.ts +1 -1
- package/dist/elements/rating/rating.d.ts.map +1 -1
- package/dist/elements/rating/rating.js +48 -48
- package/dist/elements/skeleton/index.d.ts +2 -2
- package/dist/elements/skeleton/index.d.ts.map +1 -1
- package/dist/elements/skeleton/index.js +2 -2
- package/dist/elements/skeleton/skeleton.d.ts +1 -1
- package/dist/elements/skeleton/skeleton.d.ts.map +1 -1
- package/dist/elements/skeleton/skeleton.js +1 -1
- package/dist/elements/spinner/index.d.ts +2 -2
- package/dist/elements/spinner/index.d.ts.map +1 -1
- package/dist/elements/spinner/index.js +2 -2
- package/dist/elements/spinner/spinner.d.ts +1 -1
- package/dist/elements/spinner/spinner.d.ts.map +1 -1
- package/dist/elements/spinner/spinner.js +2 -2
- package/dist/elements/sticky-bar/index.d.ts +8 -0
- package/dist/elements/sticky-bar/index.d.ts.map +1 -0
- package/dist/elements/sticky-bar/index.js +4 -0
- package/dist/elements/sticky-bar/sticky-bar.css +56 -0
- package/dist/elements/sticky-bar/sticky-bar.d.ts +46 -0
- package/dist/elements/sticky-bar/sticky-bar.d.ts.map +1 -0
- package/dist/elements/sticky-bar/sticky-bar.js +146 -0
- package/dist/elements/stories/index.d.ts +8 -0
- package/dist/elements/stories/index.d.ts.map +1 -0
- package/dist/elements/stories/index.js +4 -0
- package/dist/elements/stories/stories.d.ts +50 -0
- package/dist/elements/stories/stories.d.ts.map +1 -0
- package/dist/elements/stories/stories.js +113 -0
- package/dist/elements/stories-viewer/index.d.ts +8 -0
- package/dist/elements/stories-viewer/index.d.ts.map +1 -0
- package/dist/elements/stories-viewer/index.js +4 -0
- package/dist/elements/stories-viewer/stories-viewer.css +337 -0
- package/dist/elements/stories-viewer/stories-viewer.d.ts +136 -0
- package/dist/elements/stories-viewer/stories-viewer.d.ts.map +1 -0
- package/dist/elements/stories-viewer/stories-viewer.js +719 -0
- package/dist/elements/story/index.d.ts +8 -0
- package/dist/elements/story/index.d.ts.map +1 -0
- package/dist/elements/story/index.js +4 -0
- package/dist/elements/story/story.d.ts +48 -0
- package/dist/elements/story/story.d.ts.map +1 -0
- package/dist/elements/story/story.js +161 -0
- package/dist/elements/tabs/index.d.ts +2 -2
- package/dist/elements/tabs/index.d.ts.map +1 -1
- package/dist/elements/tabs/index.js +2 -2
- package/dist/elements/tabs/tabs.d.ts +1 -1
- package/dist/elements/tabs/tabs.d.ts.map +1 -1
- package/dist/elements/tabs/tabs.js +5 -5
- package/dist/elements/toast/index.d.ts +3 -3
- package/dist/elements/toast/index.d.ts.map +1 -1
- package/dist/elements/toast/index.js +3 -3
- package/dist/elements/toast/toast.d.ts +2 -2
- package/dist/elements/toast/toast.d.ts.map +1 -1
- package/dist/elements/toast/toast.js +5 -5
- package/dist/elements/tooltip/index.d.ts +2 -2
- package/dist/elements/tooltip/index.d.ts.map +1 -1
- package/dist/elements/tooltip/index.js +2 -2
- package/dist/elements/tooltip/tooltip.css +15 -7
- package/dist/elements/tooltip/tooltip.d.ts +4 -4
- package/dist/elements/tooltip/tooltip.d.ts.map +1 -1
- package/dist/elements/tooltip/tooltip.js +32 -32
- package/dist/elements/tree/index.d.ts +2 -2
- package/dist/elements/tree/index.d.ts.map +1 -1
- package/dist/elements/tree/index.js +2 -2
- package/dist/elements/tree/tree.d.ts +5 -5
- package/dist/elements/tree/tree.d.ts.map +1 -1
- package/dist/elements/tree/tree.js +14 -16
- package/dist/elements/tree-item/index.d.ts +2 -2
- package/dist/elements/tree-item/index.d.ts.map +1 -1
- package/dist/elements/tree-item/index.js +2 -2
- package/dist/elements/tree-item/tree-item.d.ts +2 -2
- package/dist/elements/tree-item/tree-item.d.ts.map +1 -1
- package/dist/elements/tree-item/tree-item.js +28 -28
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/skills/luxen-ui/SKILL.md +1 -0
- package/dist/skills/luxen-ui/references/select.md +1 -1
- package/dist/skills/luxen-ui/references/sticky-bar.md +148 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/html/elements/sticky-bar/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,cAAc,cAAc,CAAC;AAG7B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,SAAS,CAAC;KAC3B;CACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
--show-duration: 200ms;
|
|
3
|
+
--hide-duration: 200ms;
|
|
4
|
+
--offset: 0px;
|
|
5
|
+
|
|
6
|
+
/* Override popover UA defaults. */
|
|
7
|
+
position: fixed;
|
|
8
|
+
inset: auto;
|
|
9
|
+
inset-inline: 0;
|
|
10
|
+
width: 100%;
|
|
11
|
+
margin: 0;
|
|
12
|
+
border: 0;
|
|
13
|
+
padding: 0;
|
|
14
|
+
background: transparent;
|
|
15
|
+
display: block;
|
|
16
|
+
opacity: 0;
|
|
17
|
+
transition:
|
|
18
|
+
opacity var(--hide-duration) ease,
|
|
19
|
+
translate var(--hide-duration) ease,
|
|
20
|
+
display var(--hide-duration) allow-discrete,
|
|
21
|
+
overlay var(--hide-duration) allow-discrete;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:host([placement='bottom']) {
|
|
25
|
+
bottom: var(--offset);
|
|
26
|
+
translate: 0 100%;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:host([placement='top']) {
|
|
30
|
+
top: var(--offset);
|
|
31
|
+
translate: 0 -100%;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:host(:popover-open) {
|
|
35
|
+
opacity: 1;
|
|
36
|
+
translate: 0 0;
|
|
37
|
+
transition-duration: var(--show-duration);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@starting-style {
|
|
41
|
+
:host([placement='bottom']:popover-open) {
|
|
42
|
+
opacity: 0;
|
|
43
|
+
translate: 0 100%;
|
|
44
|
+
}
|
|
45
|
+
:host([placement='top']:popover-open) {
|
|
46
|
+
opacity: 0;
|
|
47
|
+
translate: 0 -100%;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@media (prefers-reduced-motion: reduce) {
|
|
52
|
+
:host {
|
|
53
|
+
--show-duration: 0ms;
|
|
54
|
+
--hide-duration: 0ms;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type PropertyValues } from 'lit';
|
|
2
|
+
import { LuxenElement } from '../../shared/luxen-element';
|
|
3
|
+
/**
|
|
4
|
+
* @summary A bar docked to the viewport edge, revealed in the top layer when a referenced element scrolls out of view.
|
|
5
|
+
* @customElement l-sticky-bar
|
|
6
|
+
*
|
|
7
|
+
* Uses the native `popover="manual"` attribute, so the bar paints in the
|
|
8
|
+
* document's top layer. Pass `for="<id>"` to track an element; the bar
|
|
9
|
+
* reveals when that element leaves the viewport (e.g. an Add-to-cart
|
|
10
|
+
* button on a mobile product page). Omit `for` for a bar that stays
|
|
11
|
+
* visible permanently (cookie banners, promo notices, environment
|
|
12
|
+
* indicators).
|
|
13
|
+
*
|
|
14
|
+
* @slot - Bar content. Owns its own background, padding, and typography.
|
|
15
|
+
*
|
|
16
|
+
* @cssproperty --show-duration - Reveal animation duration. Default `200ms`.
|
|
17
|
+
* @cssproperty --hide-duration - Dismiss animation duration. Default `200ms`.
|
|
18
|
+
* @cssproperty --offset - Distance from the active edge. Default `0px`. Use to clear a sticky header when `placement="top"`.
|
|
19
|
+
*
|
|
20
|
+
* @event show - Fired before the bar reveals. Cancelable.
|
|
21
|
+
* @event after-show - Fired after the reveal animation completes.
|
|
22
|
+
* @event hide - Fired before the bar hides. Cancelable.
|
|
23
|
+
* @event after-hide - Fired after the hide animation completes.
|
|
24
|
+
*/
|
|
25
|
+
export declare class StickyBar extends LuxenElement {
|
|
26
|
+
static styles: import("lit").CSSResult[];
|
|
27
|
+
/** HTML id of the element to track. When that element leaves the viewport, the bar reveals. Omit for a permanently visible bar. */
|
|
28
|
+
accessor for: string;
|
|
29
|
+
/** HTML id of the scrolling ancestor used as the IntersectionObserver root. Omit to use the viewport. Useful for nested scroll containers (CMS preview panes, modals). */
|
|
30
|
+
accessor root: string;
|
|
31
|
+
/** Edge to dock against. */
|
|
32
|
+
accessor placement: 'bottom' | 'top';
|
|
33
|
+
private _io?;
|
|
34
|
+
private _observed?;
|
|
35
|
+
connectedCallback(): void;
|
|
36
|
+
disconnectedCallback(): void;
|
|
37
|
+
updated(changed: PropertyValues<this>): void;
|
|
38
|
+
private get _target();
|
|
39
|
+
private _show;
|
|
40
|
+
private _hide;
|
|
41
|
+
private _onToggle;
|
|
42
|
+
private _setupObserver;
|
|
43
|
+
private _teardownObserver;
|
|
44
|
+
render(): import("lit").TemplateResult<1>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=sticky-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sticky-bar.d.ts","sourceRoot":"","sources":["../../../src/html/elements/sticky-bar/sticky-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAO1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAgB,MAAM,4BAAwB;IAE9C,mIAAmI;IAEnI,QAAQ,CAAC,GAAG,SAAM;IAElB,0KAA0K;IAE1K,QAAQ,CAAC,IAAI,SAAM;IAEnB,4BAA4B;IAE5B,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAY;IAEhD,OAAO,CAAC,GAAG,CAAC,CAAuB;IACnC,OAAO,CAAC,SAAS,CAAC,CAAU;IAEnB,iBAAiB;IAMjB,oBAAoB;IAMpB,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAY9C,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,iBAAiB;IAShB,MAAM;CAGhB"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
13
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
14
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
15
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
16
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
17
|
+
};
|
|
18
|
+
var _StickyBar_for_accessor_storage, _StickyBar_root_accessor_storage, _StickyBar_placement_accessor_storage;
|
|
19
|
+
import { html, unsafeCSS } from 'lit';
|
|
20
|
+
import { LuxenElement } from '../../shared/luxen-element';
|
|
21
|
+
import { property } from 'lit/decorators.js';
|
|
22
|
+
import hostStyles from '../../shared/styles/host.styles';
|
|
23
|
+
import rawStyles from './sticky-bar.css?inline';
|
|
24
|
+
const styles = unsafeCSS(rawStyles);
|
|
25
|
+
/**
|
|
26
|
+
* @summary A bar docked to the viewport edge, revealed in the top layer when a referenced element scrolls out of view.
|
|
27
|
+
* @customElement l-sticky-bar
|
|
28
|
+
*
|
|
29
|
+
* Uses the native `popover="manual"` attribute, so the bar paints in the
|
|
30
|
+
* document's top layer. Pass `for="<id>"` to track an element; the bar
|
|
31
|
+
* reveals when that element leaves the viewport (e.g. an Add-to-cart
|
|
32
|
+
* button on a mobile product page). Omit `for` for a bar that stays
|
|
33
|
+
* visible permanently (cookie banners, promo notices, environment
|
|
34
|
+
* indicators).
|
|
35
|
+
*
|
|
36
|
+
* @slot - Bar content. Owns its own background, padding, and typography.
|
|
37
|
+
*
|
|
38
|
+
* @cssproperty --show-duration - Reveal animation duration. Default `200ms`.
|
|
39
|
+
* @cssproperty --hide-duration - Dismiss animation duration. Default `200ms`.
|
|
40
|
+
* @cssproperty --offset - Distance from the active edge. Default `0px`. Use to clear a sticky header when `placement="top"`.
|
|
41
|
+
*
|
|
42
|
+
* @event show - Fired before the bar reveals. Cancelable.
|
|
43
|
+
* @event after-show - Fired after the reveal animation completes.
|
|
44
|
+
* @event hide - Fired before the bar hides. Cancelable.
|
|
45
|
+
* @event after-hide - Fired after the hide animation completes.
|
|
46
|
+
*/
|
|
47
|
+
export class StickyBar extends LuxenElement {
|
|
48
|
+
constructor() {
|
|
49
|
+
super(...arguments);
|
|
50
|
+
_StickyBar_for_accessor_storage.set(this, '');
|
|
51
|
+
_StickyBar_root_accessor_storage.set(this, '');
|
|
52
|
+
_StickyBar_placement_accessor_storage.set(this, 'bottom');
|
|
53
|
+
this._onToggle = (e) => {
|
|
54
|
+
const ev = e;
|
|
55
|
+
this.emit(ev.newState === 'open' ? 'after-show' : 'after-hide');
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** HTML id of the element to track. When that element leaves the viewport, the bar reveals. Omit for a permanently visible bar. */
|
|
59
|
+
get for() { return __classPrivateFieldGet(this, _StickyBar_for_accessor_storage, "f"); }
|
|
60
|
+
set for(value) { __classPrivateFieldSet(this, _StickyBar_for_accessor_storage, value, "f"); }
|
|
61
|
+
/** HTML id of the scrolling ancestor used as the IntersectionObserver root. Omit to use the viewport. Useful for nested scroll containers (CMS preview panes, modals). */
|
|
62
|
+
get root() { return __classPrivateFieldGet(this, _StickyBar_root_accessor_storage, "f"); }
|
|
63
|
+
set root(value) { __classPrivateFieldSet(this, _StickyBar_root_accessor_storage, value, "f"); }
|
|
64
|
+
/** Edge to dock against. */
|
|
65
|
+
get placement() { return __classPrivateFieldGet(this, _StickyBar_placement_accessor_storage, "f"); }
|
|
66
|
+
set placement(value) { __classPrivateFieldSet(this, _StickyBar_placement_accessor_storage, value, "f"); }
|
|
67
|
+
connectedCallback() {
|
|
68
|
+
super.connectedCallback();
|
|
69
|
+
this.popover = 'manual';
|
|
70
|
+
this.addEventListener('toggle', this._onToggle);
|
|
71
|
+
}
|
|
72
|
+
disconnectedCallback() {
|
|
73
|
+
super.disconnectedCallback();
|
|
74
|
+
this.removeEventListener('toggle', this._onToggle);
|
|
75
|
+
this._teardownObserver();
|
|
76
|
+
}
|
|
77
|
+
updated(changed) {
|
|
78
|
+
if (changed.has('for') || changed.has('root')) {
|
|
79
|
+
this._teardownObserver();
|
|
80
|
+
if (this.for) {
|
|
81
|
+
this._setupObserver();
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// No target → permanent bar. Reveal once on mount.
|
|
85
|
+
this._show();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
get _target() {
|
|
90
|
+
return this.for ? this.getRootNode().getElementById(this.for) : null;
|
|
91
|
+
}
|
|
92
|
+
_show() {
|
|
93
|
+
if (this.matches(':popover-open'))
|
|
94
|
+
return;
|
|
95
|
+
if (this.emit('show', { cancelable: true }))
|
|
96
|
+
this.showPopover();
|
|
97
|
+
}
|
|
98
|
+
_hide() {
|
|
99
|
+
if (!this.matches(':popover-open'))
|
|
100
|
+
return;
|
|
101
|
+
if (this.emit('hide', { cancelable: true }))
|
|
102
|
+
this.hidePopover();
|
|
103
|
+
}
|
|
104
|
+
_setupObserver() {
|
|
105
|
+
const target = this._target;
|
|
106
|
+
if (!target)
|
|
107
|
+
return;
|
|
108
|
+
this._observed = target;
|
|
109
|
+
const root = this.root
|
|
110
|
+
? this.getRootNode().getElementById(this.root)
|
|
111
|
+
: null;
|
|
112
|
+
// Use the element's own realm so an iframe-hosted bar observes the iframe's viewport.
|
|
113
|
+
const view = this.ownerDocument.defaultView ?? window;
|
|
114
|
+
this._io = new view.IntersectionObserver((entries) => {
|
|
115
|
+
for (const entry of entries) {
|
|
116
|
+
if (entry.isIntersecting)
|
|
117
|
+
this._hide();
|
|
118
|
+
else
|
|
119
|
+
this._show();
|
|
120
|
+
}
|
|
121
|
+
}, { root, threshold: 0 });
|
|
122
|
+
this._io.observe(target);
|
|
123
|
+
}
|
|
124
|
+
_teardownObserver() {
|
|
125
|
+
if (this._io && this._observed) {
|
|
126
|
+
this._io.unobserve(this._observed);
|
|
127
|
+
}
|
|
128
|
+
this._io?.disconnect();
|
|
129
|
+
this._io = undefined;
|
|
130
|
+
this._observed = undefined;
|
|
131
|
+
}
|
|
132
|
+
render() {
|
|
133
|
+
return html `<slot></slot>`;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
_StickyBar_for_accessor_storage = new WeakMap(), _StickyBar_root_accessor_storage = new WeakMap(), _StickyBar_placement_accessor_storage = new WeakMap();
|
|
137
|
+
StickyBar.styles = [hostStyles, styles];
|
|
138
|
+
__decorate([
|
|
139
|
+
property()
|
|
140
|
+
], StickyBar.prototype, "for", null);
|
|
141
|
+
__decorate([
|
|
142
|
+
property()
|
|
143
|
+
], StickyBar.prototype, "root", null);
|
|
144
|
+
__decorate([
|
|
145
|
+
property({ reflect: true })
|
|
146
|
+
], StickyBar.prototype, "placement", null);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/html/elements/stories/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,cAAc,WAAW,CAAC;AAG1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,YAAY,CAAC;KAC3B;CACF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { LuxenElement } from '../../shared/luxen-element';
|
|
2
|
+
import type { LuxenStory } from '../story/story';
|
|
3
|
+
export type StoriesAppearance = 'rounded' | 'squared' | 'portrait' | 'landscape';
|
|
4
|
+
/**
|
|
5
|
+
* @summary A horizontal row of `<l-story>` thumbnails. Click opens the linked
|
|
6
|
+
* `<l-stories-viewer>` (matched by `for` → `id`). If `for` is omitted and no
|
|
7
|
+
* viewer exists, a singleton viewer is appended to `<body>` on first click.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```html
|
|
11
|
+
* <l-stories for="brand">
|
|
12
|
+
* <l-story src="…video.mp4" poster="…jpg" label="Notre concept"></l-story>
|
|
13
|
+
* <l-story src="…video2.mp4" label="Collant Essentiel"></l-story>
|
|
14
|
+
* </l-stories>
|
|
15
|
+
* <l-stories-viewer id="brand"></l-stories-viewer>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @event story-open - Fired when the viewer opens. Detail: `{ index: number, story: LuxenStory }`.
|
|
19
|
+
*
|
|
20
|
+
* @cssproperty --size - Thumbnail size (width). Default per appearance.
|
|
21
|
+
* @cssproperty --radius - Thumbnail border radius. Default per appearance (`--radius-full` for rounded, `1rem` for portrait).
|
|
22
|
+
* @cssproperty --gap - Gap between thumbnails. Default `1rem`.
|
|
23
|
+
* @cssproperty --ring-color - Ring color around fresh thumbnails.
|
|
24
|
+
* @cssproperty --ring-color-seen - Ring color for `[seen]` thumbnails.
|
|
25
|
+
* @cssproperty --ring-width - Ring width. Default `2px`.
|
|
26
|
+
* @cssproperty --label-color - Label text color.
|
|
27
|
+
*
|
|
28
|
+
* @customElement l-stories
|
|
29
|
+
*/
|
|
30
|
+
export declare class LuxenStories extends LuxenElement {
|
|
31
|
+
createRenderRoot(): this;
|
|
32
|
+
/** ID of the linked `<l-stories-viewer>`. */
|
|
33
|
+
for: string;
|
|
34
|
+
/** Visual appearance of the thumbnails. */
|
|
35
|
+
appearance: StoriesAppearance;
|
|
36
|
+
connectedCallback(): void;
|
|
37
|
+
disconnectedCallback(): void;
|
|
38
|
+
/** Open the linked viewer at the given index. */
|
|
39
|
+
open(index?: number): void;
|
|
40
|
+
/** All `<l-story>` children. */
|
|
41
|
+
stories(): LuxenStory[];
|
|
42
|
+
private _onClick;
|
|
43
|
+
private _resolveViewer;
|
|
44
|
+
}
|
|
45
|
+
declare global {
|
|
46
|
+
interface HTMLElementTagNameMap {
|
|
47
|
+
'l-stories': LuxenStories;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stories.d.ts","sourceRoot":"","sources":["../../../src/html/elements/stories/stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,YAAa,SAAQ,YAAY;IACnC,gBAAgB;IAIzB,6CAA6C;IAE7C,GAAG,SAAM;IAET,2CAA2C;IAE3C,UAAU,EAAE,iBAAiB,CAAa;IAEjC,iBAAiB;IAQjB,oBAAoB;IAK7B,iDAAiD;IACjD,IAAI,CAAC,KAAK,SAAI;IAYd,gCAAgC;IAChC,OAAO,IAAI,UAAU,EAAE;IAIvB,OAAO,CAAC,QAAQ,CASd;IAEF,OAAO,CAAC,cAAc;CAevB;AAaD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,YAAY,CAAC;KAC3B;CACF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { property } from 'lit/decorators.js';
|
|
8
|
+
import { LuxenElement } from '../../shared/luxen-element';
|
|
9
|
+
/**
|
|
10
|
+
* @summary A horizontal row of `<l-story>` thumbnails. Click opens the linked
|
|
11
|
+
* `<l-stories-viewer>` (matched by `for` → `id`). If `for` is omitted and no
|
|
12
|
+
* viewer exists, a singleton viewer is appended to `<body>` on first click.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```html
|
|
16
|
+
* <l-stories for="brand">
|
|
17
|
+
* <l-story src="…video.mp4" poster="…jpg" label="Notre concept"></l-story>
|
|
18
|
+
* <l-story src="…video2.mp4" label="Collant Essentiel"></l-story>
|
|
19
|
+
* </l-stories>
|
|
20
|
+
* <l-stories-viewer id="brand"></l-stories-viewer>
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @event story-open - Fired when the viewer opens. Detail: `{ index: number, story: LuxenStory }`.
|
|
24
|
+
*
|
|
25
|
+
* @cssproperty --size - Thumbnail size (width). Default per appearance.
|
|
26
|
+
* @cssproperty --radius - Thumbnail border radius. Default per appearance (`--radius-full` for rounded, `1rem` for portrait).
|
|
27
|
+
* @cssproperty --gap - Gap between thumbnails. Default `1rem`.
|
|
28
|
+
* @cssproperty --ring-color - Ring color around fresh thumbnails.
|
|
29
|
+
* @cssproperty --ring-color-seen - Ring color for `[seen]` thumbnails.
|
|
30
|
+
* @cssproperty --ring-width - Ring width. Default `2px`.
|
|
31
|
+
* @cssproperty --label-color - Label text color.
|
|
32
|
+
*
|
|
33
|
+
* @customElement l-stories
|
|
34
|
+
*/
|
|
35
|
+
export class LuxenStories extends LuxenElement {
|
|
36
|
+
constructor() {
|
|
37
|
+
super(...arguments);
|
|
38
|
+
/** ID of the linked `<l-stories-viewer>`. */
|
|
39
|
+
this.for = '';
|
|
40
|
+
/** Visual appearance of the thumbnails. */
|
|
41
|
+
this.appearance = 'rounded';
|
|
42
|
+
this._onClick = (e) => {
|
|
43
|
+
const trigger = e.target.closest('[data-story-trigger]');
|
|
44
|
+
if (!trigger)
|
|
45
|
+
return;
|
|
46
|
+
const story = trigger.closest('l-story');
|
|
47
|
+
if (!story)
|
|
48
|
+
return;
|
|
49
|
+
const index = this.stories().indexOf(story);
|
|
50
|
+
if (index < 0)
|
|
51
|
+
return;
|
|
52
|
+
e.preventDefault();
|
|
53
|
+
this.open(index);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
createRenderRoot() {
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
connectedCallback() {
|
|
60
|
+
super.connectedCallback();
|
|
61
|
+
if (!this.hasAttribute('role')) {
|
|
62
|
+
this.setAttribute('role', 'list');
|
|
63
|
+
}
|
|
64
|
+
this.addEventListener('click', this._onClick);
|
|
65
|
+
}
|
|
66
|
+
disconnectedCallback() {
|
|
67
|
+
super.disconnectedCallback();
|
|
68
|
+
this.removeEventListener('click', this._onClick);
|
|
69
|
+
}
|
|
70
|
+
/** Open the linked viewer at the given index. */
|
|
71
|
+
open(index = 0) {
|
|
72
|
+
const stories = this.stories();
|
|
73
|
+
if (!stories.length)
|
|
74
|
+
return;
|
|
75
|
+
const viewer = this._resolveViewer();
|
|
76
|
+
if (!viewer)
|
|
77
|
+
return;
|
|
78
|
+
viewer.stories = stories;
|
|
79
|
+
viewer.source = this;
|
|
80
|
+
viewer.index = Math.max(0, Math.min(index, stories.length - 1));
|
|
81
|
+
viewer.open = true;
|
|
82
|
+
this.emit('story-open', { detail: { index, story: stories[index] } });
|
|
83
|
+
}
|
|
84
|
+
/** All `<l-story>` children. */
|
|
85
|
+
stories() {
|
|
86
|
+
return Array.from(this.querySelectorAll(':scope > l-story'));
|
|
87
|
+
}
|
|
88
|
+
_resolveViewer() {
|
|
89
|
+
if (this.for) {
|
|
90
|
+
const root = this.getRootNode();
|
|
91
|
+
const el = root.getElementById?.(this.for);
|
|
92
|
+
if (el && _isViewer(el))
|
|
93
|
+
return el;
|
|
94
|
+
}
|
|
95
|
+
// Auto-singleton fallback.
|
|
96
|
+
let auto = document.querySelector('l-stories-viewer[data-auto]');
|
|
97
|
+
if (!auto) {
|
|
98
|
+
auto = document.createElement('l-stories-viewer');
|
|
99
|
+
auto.setAttribute('data-auto', '');
|
|
100
|
+
document.body.appendChild(auto);
|
|
101
|
+
}
|
|
102
|
+
return auto;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
__decorate([
|
|
106
|
+
property({ reflect: true })
|
|
107
|
+
], LuxenStories.prototype, "for", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
property({ reflect: true })
|
|
110
|
+
], LuxenStories.prototype, "appearance", void 0);
|
|
111
|
+
function _isViewer(el) {
|
|
112
|
+
return el.tagName === 'L-STORIES-VIEWER';
|
|
113
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/html/elements/stories-viewer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,cAAc,kBAAkB,CAAC;AAGjC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,kBAAkB,CAAC;KACxC;CACF"}
|