vanilla-breeze 0.1.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/LICENSE +21 -0
- package/README.md +67 -0
- package/custom-elements.json +12666 -0
- package/dist/cdn/components/accordion-wc.js +2 -0
- package/dist/cdn/components/audio-player.js +340 -0
- package/dist/cdn/components/audio-visualizer.js +20 -0
- package/dist/cdn/components/calendar-wc.js +3 -0
- package/dist/cdn/components/card-list.js +2 -0
- package/dist/cdn/components/carousel-wc.js +2 -0
- package/dist/cdn/components/change-set.js +12 -0
- package/dist/cdn/components/chart-wc.js +395 -0
- package/dist/cdn/components/chat-input.js +2 -0
- package/dist/cdn/components/chat-window.js +2 -0
- package/dist/cdn/components/color-palette.js +10 -0
- package/dist/cdn/components/color-picker.js +2 -0
- package/dist/cdn/components/combo-box.js +2 -0
- package/dist/cdn/components/command-palette.js +2 -0
- package/dist/cdn/components/compare-surface.js +2 -0
- package/dist/cdn/components/component-sampler.js +45 -0
- package/dist/cdn/components/consent-banner.js +2 -0
- package/dist/cdn/components/content-swap.js +2 -0
- package/dist/cdn/components/context-menu.js +2 -0
- package/dist/cdn/components/data-table.js +2 -0
- package/dist/cdn/components/date-picker.js +2 -0
- package/dist/cdn/components/drag-surface.js +2 -0
- package/dist/cdn/components/drop-down.js +2 -0
- package/dist/cdn/components/emoji-picker.js +2 -0
- package/dist/cdn/components/empathy-map.js +567 -0
- package/dist/cdn/components/foot-notes.js +2 -0
- package/dist/cdn/components/form-field.js +2 -0
- package/dist/cdn/components/geo-map.js +198 -0
- package/dist/cdn/components/glossary-index.js +2 -0
- package/dist/cdn/components/heading-links.js +2 -0
- package/dist/cdn/components/icon-wc.js +66 -0
- package/dist/cdn/components/image-gallery.js +2 -0
- package/dist/cdn/components/image-map.js +2 -0
- package/dist/cdn/components/impact-effort.js +2 -0
- package/dist/cdn/components/include-file.js +2 -0
- package/dist/cdn/components/kanban-board.js +2 -0
- package/dist/cdn/components/manifest.json +294 -0
- package/dist/cdn/components/markdown-editor.js +2 -0
- package/dist/cdn/components/markdown-viewer.js +60 -0
- package/dist/cdn/components/page-info.js +51 -0
- package/dist/cdn/components/page-meta.js +2 -0
- package/dist/cdn/components/page-stats.js +2 -0
- package/dist/cdn/components/page-toc.js +2 -0
- package/dist/cdn/components/page-tools.js +2 -0
- package/dist/cdn/components/page-tour.js +39 -0
- package/dist/cdn/components/palette-generator.js +15 -0
- package/dist/cdn/components/print-page.js +2 -0
- package/dist/cdn/components/qr-code.js +2 -0
- package/dist/cdn/components/reader-view.js +28 -0
- package/dist/cdn/components/settings-panel.js +191 -0
- package/dist/cdn/components/share-wc.js +4 -0
- package/dist/cdn/components/short-cuts.js +2 -0
- package/dist/cdn/components/site-index.js +11 -0
- package/dist/cdn/components/site-map.js +2 -0
- package/dist/cdn/components/site-search.js +52 -0
- package/dist/cdn/components/slide-accept.js +2 -0
- package/dist/cdn/components/social-embed.js +2 -0
- package/dist/cdn/components/spacing-specimen.js +6 -0
- package/dist/cdn/components/split-surface.js +2 -0
- package/dist/cdn/components/star-rating.js +2 -0
- package/dist/cdn/components/story-map.js +2 -0
- package/dist/cdn/components/tab-set.js +2 -0
- package/dist/cdn/components/text-reader.js +7 -0
- package/dist/cdn/components/theme-picker.js +219 -0
- package/dist/cdn/components/theme-wc.js +67 -0
- package/dist/cdn/components/time-index.js +12 -0
- package/dist/cdn/components/time-picker.js +2 -0
- package/dist/cdn/components/toast-msg.js +7 -0
- package/dist/cdn/components/token-specimen.js +21 -0
- package/dist/cdn/components/tool-tip.js +2 -0
- package/dist/cdn/components/type-specimen.js +16 -0
- package/dist/cdn/components/user-journey.js +355 -0
- package/dist/cdn/components/user-persona.js +338 -0
- package/dist/cdn/components/user-story.js +377 -0
- package/dist/cdn/components/video-player.js +512 -0
- package/dist/cdn/components/youtube-player.js +2 -0
- package/dist/cdn/icons/bold/bell.svg +1 -0
- package/dist/cdn/icons/bold/bookmark.svg +1 -0
- package/dist/cdn/icons/bold/calendar.svg +1 -0
- package/dist/cdn/icons/bold/camera.svg +1 -0
- package/dist/cdn/icons/bold/globe.svg +1 -0
- package/dist/cdn/icons/bold/heart.svg +1 -0
- package/dist/cdn/icons/bold/home.svg +1 -0
- package/dist/cdn/icons/bold/lock.svg +1 -0
- package/dist/cdn/icons/bold/mail.svg +1 -0
- package/dist/cdn/icons/bold/music.svg +1 -0
- package/dist/cdn/icons/bold/search.svg +1 -0
- package/dist/cdn/icons/bold/settings.svg +1 -0
- package/dist/cdn/icons/bold/star.svg +1 -0
- package/dist/cdn/icons/bold/user.svg +1 -0
- package/dist/cdn/icons/bold/zap.svg +1 -0
- package/dist/cdn/icons/custom/bluesky.svg +1 -0
- package/dist/cdn/icons/custom/mastodon.svg +1 -0
- package/dist/cdn/icons/custom/telegram.svg +1 -0
- package/dist/cdn/icons/custom/whatsapp.svg +1 -0
- package/dist/cdn/icons/lucide/a-arrow-down.svg +18 -0
- package/dist/cdn/icons/lucide/a-arrow-up.svg +18 -0
- package/dist/cdn/icons/lucide/a-large-small.svg +18 -0
- package/dist/cdn/icons/lucide/accessibility.svg +19 -0
- package/dist/cdn/icons/lucide/activity-square.svg +16 -0
- package/dist/cdn/icons/lucide/activity.svg +15 -0
- package/dist/cdn/icons/lucide/air-vent.svg +18 -0
- package/dist/cdn/icons/lucide/airplay.svg +16 -0
- package/dist/cdn/icons/lucide/alarm-check.svg +20 -0
- package/dist/cdn/icons/lucide/alarm-clock-check.svg +20 -0
- package/dist/cdn/icons/lucide/alarm-clock-minus.svg +20 -0
- package/dist/cdn/icons/lucide/alarm-clock-off.svg +20 -0
- package/dist/cdn/icons/lucide/alarm-clock-plus.svg +21 -0
- package/dist/cdn/icons/lucide/alarm-clock.svg +20 -0
- package/dist/cdn/icons/lucide/alarm-minus.svg +20 -0
- package/dist/cdn/icons/lucide/alarm-plus.svg +21 -0
- package/dist/cdn/icons/lucide/alarm-smoke.svg +19 -0
- package/dist/cdn/icons/lucide/album.svg +16 -0
- package/dist/cdn/icons/lucide/alert-circle.svg +17 -0
- package/dist/cdn/icons/lucide/alert-octagon.svg +17 -0
- package/dist/cdn/icons/lucide/alert-triangle.svg +17 -0
- package/dist/cdn/icons/lucide/align-center-horizontal.svg +19 -0
- package/dist/cdn/icons/lucide/align-center-vertical.svg +19 -0
- package/dist/cdn/icons/lucide/align-center.svg +17 -0
- package/dist/cdn/icons/lucide/align-end-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/align-end-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/align-horizontal-distribute-center.svg +20 -0
- package/dist/cdn/icons/lucide/align-horizontal-distribute-end.svg +18 -0
- package/dist/cdn/icons/lucide/align-horizontal-distribute-start.svg +18 -0
- package/dist/cdn/icons/lucide/align-horizontal-justify-center.svg +17 -0
- package/dist/cdn/icons/lucide/align-horizontal-justify-end.svg +17 -0
- package/dist/cdn/icons/lucide/align-horizontal-justify-start.svg +17 -0
- package/dist/cdn/icons/lucide/align-horizontal-space-around.svg +17 -0
- package/dist/cdn/icons/lucide/align-horizontal-space-between.svg +18 -0
- package/dist/cdn/icons/lucide/align-justify.svg +17 -0
- package/dist/cdn/icons/lucide/align-left.svg +17 -0
- package/dist/cdn/icons/lucide/align-right.svg +17 -0
- package/dist/cdn/icons/lucide/align-start-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/align-start-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/align-vertical-distribute-center.svg +20 -0
- package/dist/cdn/icons/lucide/align-vertical-distribute-end.svg +18 -0
- package/dist/cdn/icons/lucide/align-vertical-distribute-start.svg +18 -0
- package/dist/cdn/icons/lucide/align-vertical-justify-center.svg +17 -0
- package/dist/cdn/icons/lucide/align-vertical-justify-end.svg +17 -0
- package/dist/cdn/icons/lucide/align-vertical-justify-start.svg +17 -0
- package/dist/cdn/icons/lucide/align-vertical-space-around.svg +17 -0
- package/dist/cdn/icons/lucide/align-vertical-space-between.svg +18 -0
- package/dist/cdn/icons/lucide/ambulance.svg +22 -0
- package/dist/cdn/icons/lucide/ampersand.svg +16 -0
- package/dist/cdn/icons/lucide/ampersands.svg +16 -0
- package/dist/cdn/icons/lucide/amphora.svg +20 -0
- package/dist/cdn/icons/lucide/anchor.svg +18 -0
- package/dist/cdn/icons/lucide/angry.svg +20 -0
- package/dist/cdn/icons/lucide/annoyed.svg +18 -0
- package/dist/cdn/icons/lucide/antenna.svg +20 -0
- package/dist/cdn/icons/lucide/anvil.svg +19 -0
- package/dist/cdn/icons/lucide/aperture.svg +21 -0
- package/dist/cdn/icons/lucide/app-window-mac.svg +18 -0
- package/dist/cdn/icons/lucide/app-window.svg +18 -0
- package/dist/cdn/icons/lucide/apple.svg +16 -0
- package/dist/cdn/icons/lucide/archive-restore.svg +19 -0
- package/dist/cdn/icons/lucide/archive-x.svg +18 -0
- package/dist/cdn/icons/lucide/archive.svg +17 -0
- package/dist/cdn/icons/lucide/area-chart.svg +16 -0
- package/dist/cdn/icons/lucide/armchair.svg +18 -0
- package/dist/cdn/icons/lucide/arrow-big-down-dash.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-big-down.svg +15 -0
- package/dist/cdn/icons/lucide/arrow-big-left-dash.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-big-left.svg +15 -0
- package/dist/cdn/icons/lucide/arrow-big-right-dash.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-big-right.svg +15 -0
- package/dist/cdn/icons/lucide/arrow-big-up-dash.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-big-up.svg +15 -0
- package/dist/cdn/icons/lucide/arrow-down-0-1.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-01.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-1-0.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-10.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-a-z.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-az.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-circle.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-from-line.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-left-from-circle.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-left-from-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-left-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-left.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-down-narrow-wide.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-right-from-circle.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-right-from-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-right-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-right.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-down-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-to-dot.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-to-line.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-down-up.svg +18 -0
- package/dist/cdn/icons/lucide/arrow-down-wide-narrow.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-z-a.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down-za.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-down.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-left-circle.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-left-from-line.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-left-right.svg +18 -0
- package/dist/cdn/icons/lucide/arrow-left-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-left-to-line.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-left.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-right-circle.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-right-from-line.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-right-left.svg +18 -0
- package/dist/cdn/icons/lucide/arrow-right-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-right-to-line.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-right.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-up-0-1.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-01.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-1-0.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-10.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-a-z.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-az.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-circle.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-down.svg +18 -0
- package/dist/cdn/icons/lucide/arrow-up-from-dot.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-from-line.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-left-from-circle.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-left-from-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-left-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-left.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-up-narrow-wide.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-right-from-circle.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-right-from-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-right-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-right.svg +16 -0
- package/dist/cdn/icons/lucide/arrow-up-square.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-to-line.svg +17 -0
- package/dist/cdn/icons/lucide/arrow-up-wide-narrow.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-z-a.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up-za.svg +19 -0
- package/dist/cdn/icons/lucide/arrow-up.svg +16 -0
- package/dist/cdn/icons/lucide/arrows-up-from-line.svg +19 -0
- package/dist/cdn/icons/lucide/asterisk-square.svg +18 -0
- package/dist/cdn/icons/lucide/asterisk.svg +17 -0
- package/dist/cdn/icons/lucide/at-sign.svg +16 -0
- package/dist/cdn/icons/lucide/atom.svg +17 -0
- package/dist/cdn/icons/lucide/audio-lines.svg +20 -0
- package/dist/cdn/icons/lucide/audio-waveform.svg +15 -0
- package/dist/cdn/icons/lucide/award.svg +16 -0
- package/dist/cdn/icons/lucide/axe.svg +16 -0
- package/dist/cdn/icons/lucide/axis-3-d.svg +18 -0
- package/dist/cdn/icons/lucide/axis-3d.svg +18 -0
- package/dist/cdn/icons/lucide/baby.svg +18 -0
- package/dist/cdn/icons/lucide/backpack.svg +19 -0
- package/dist/cdn/icons/lucide/badge-alert.svg +17 -0
- package/dist/cdn/icons/lucide/badge-cent.svg +17 -0
- package/dist/cdn/icons/lucide/badge-check.svg +16 -0
- package/dist/cdn/icons/lucide/badge-dollar-sign.svg +17 -0
- package/dist/cdn/icons/lucide/badge-euro.svg +17 -0
- package/dist/cdn/icons/lucide/badge-help.svg +17 -0
- package/dist/cdn/icons/lucide/badge-indian-rupee.svg +18 -0
- package/dist/cdn/icons/lucide/badge-info.svg +17 -0
- package/dist/cdn/icons/lucide/badge-japanese-yen.svg +19 -0
- package/dist/cdn/icons/lucide/badge-minus.svg +16 -0
- package/dist/cdn/icons/lucide/badge-percent.svg +18 -0
- package/dist/cdn/icons/lucide/badge-plus.svg +17 -0
- package/dist/cdn/icons/lucide/badge-pound-sterling.svg +18 -0
- package/dist/cdn/icons/lucide/badge-question-mark.svg +17 -0
- package/dist/cdn/icons/lucide/badge-russian-ruble.svg +17 -0
- package/dist/cdn/icons/lucide/badge-swiss-franc.svg +18 -0
- package/dist/cdn/icons/lucide/badge-turkish-lira.svg +17 -0
- package/dist/cdn/icons/lucide/badge-x.svg +17 -0
- package/dist/cdn/icons/lucide/badge.svg +15 -0
- package/dist/cdn/icons/lucide/baggage-claim.svg +19 -0
- package/dist/cdn/icons/lucide/balloon.svg +17 -0
- package/dist/cdn/icons/lucide/ban.svg +16 -0
- package/dist/cdn/icons/lucide/banana.svg +16 -0
- package/dist/cdn/icons/lucide/bandage.svg +21 -0
- package/dist/cdn/icons/lucide/banknote-arrow-down.svg +20 -0
- package/dist/cdn/icons/lucide/banknote-arrow-up.svg +20 -0
- package/dist/cdn/icons/lucide/banknote-x.svg +20 -0
- package/dist/cdn/icons/lucide/banknote.svg +17 -0
- package/dist/cdn/icons/lucide/bar-chart-2.svg +17 -0
- package/dist/cdn/icons/lucide/bar-chart-3.svg +18 -0
- package/dist/cdn/icons/lucide/bar-chart-4.svg +18 -0
- package/dist/cdn/icons/lucide/bar-chart-big.svg +17 -0
- package/dist/cdn/icons/lucide/bar-chart-horizontal-big.svg +17 -0
- package/dist/cdn/icons/lucide/bar-chart-horizontal.svg +18 -0
- package/dist/cdn/icons/lucide/bar-chart.svg +17 -0
- package/dist/cdn/icons/lucide/barcode.svg +19 -0
- package/dist/cdn/icons/lucide/barrel.svg +19 -0
- package/dist/cdn/icons/lucide/baseline.svg +17 -0
- package/dist/cdn/icons/lucide/bath.svg +19 -0
- package/dist/cdn/icons/lucide/battery-charging.svg +18 -0
- package/dist/cdn/icons/lucide/battery-full.svg +19 -0
- package/dist/cdn/icons/lucide/battery-low.svg +17 -0
- package/dist/cdn/icons/lucide/battery-medium.svg +18 -0
- package/dist/cdn/icons/lucide/battery-plus.svg +19 -0
- package/dist/cdn/icons/lucide/battery-warning.svg +19 -0
- package/dist/cdn/icons/lucide/battery.svg +16 -0
- package/dist/cdn/icons/lucide/beaker.svg +17 -0
- package/dist/cdn/icons/lucide/bean-off.svg +18 -0
- package/dist/cdn/icons/lucide/bean.svg +16 -0
- package/dist/cdn/icons/lucide/bed-double.svg +18 -0
- package/dist/cdn/icons/lucide/bed-single.svg +17 -0
- package/dist/cdn/icons/lucide/bed.svg +18 -0
- package/dist/cdn/icons/lucide/beef.svg +17 -0
- package/dist/cdn/icons/lucide/beer-off.svg +22 -0
- package/dist/cdn/icons/lucide/beer.svg +19 -0
- package/dist/cdn/icons/lucide/bell-dot.svg +17 -0
- package/dist/cdn/icons/lucide/bell-electric.svg +20 -0
- package/dist/cdn/icons/lucide/bell-minus.svg +17 -0
- package/dist/cdn/icons/lucide/bell-off.svg +18 -0
- package/dist/cdn/icons/lucide/bell-plus.svg +18 -0
- package/dist/cdn/icons/lucide/bell-ring.svg +18 -0
- package/dist/cdn/icons/lucide/bell.svg +16 -0
- package/dist/cdn/icons/lucide/between-horizonal-end.svg +17 -0
- package/dist/cdn/icons/lucide/between-horizonal-start.svg +17 -0
- package/dist/cdn/icons/lucide/between-horizontal-end.svg +17 -0
- package/dist/cdn/icons/lucide/between-horizontal-start.svg +17 -0
- package/dist/cdn/icons/lucide/between-vertical-end.svg +17 -0
- package/dist/cdn/icons/lucide/between-vertical-start.svg +17 -0
- package/dist/cdn/icons/lucide/biceps-flexed.svg +17 -0
- package/dist/cdn/icons/lucide/bike.svg +18 -0
- package/dist/cdn/icons/lucide/binary.svg +20 -0
- package/dist/cdn/icons/lucide/binoculars.svg +20 -0
- package/dist/cdn/icons/lucide/biohazard.svg +24 -0
- package/dist/cdn/icons/lucide/bird.svg +20 -0
- package/dist/cdn/icons/lucide/birdhouse.svg +20 -0
- package/dist/cdn/icons/lucide/bitcoin.svg +15 -0
- package/dist/cdn/icons/lucide/blend.svg +16 -0
- package/dist/cdn/icons/lucide/blinds.svg +21 -0
- package/dist/cdn/icons/lucide/blocks.svg +16 -0
- package/dist/cdn/icons/lucide/bluetooth-connected.svg +17 -0
- package/dist/cdn/icons/lucide/bluetooth-off.svg +17 -0
- package/dist/cdn/icons/lucide/bluetooth-searching.svg +17 -0
- package/dist/cdn/icons/lucide/bluetooth.svg +15 -0
- package/dist/cdn/icons/lucide/bold.svg +15 -0
- package/dist/cdn/icons/lucide/bolt.svg +16 -0
- package/dist/cdn/icons/lucide/bomb.svg +17 -0
- package/dist/cdn/icons/lucide/bone.svg +15 -0
- package/dist/cdn/icons/lucide/book-a.svg +17 -0
- package/dist/cdn/icons/lucide/book-alert.svg +17 -0
- package/dist/cdn/icons/lucide/book-audio.svg +18 -0
- package/dist/cdn/icons/lucide/book-check.svg +16 -0
- package/dist/cdn/icons/lucide/book-copy.svg +17 -0
- package/dist/cdn/icons/lucide/book-dashed.svg +25 -0
- package/dist/cdn/icons/lucide/book-down.svg +17 -0
- package/dist/cdn/icons/lucide/book-headphones.svg +18 -0
- package/dist/cdn/icons/lucide/book-heart.svg +16 -0
- package/dist/cdn/icons/lucide/book-image.svg +17 -0
- package/dist/cdn/icons/lucide/book-key.svg +19 -0
- package/dist/cdn/icons/lucide/book-lock.svg +18 -0
- package/dist/cdn/icons/lucide/book-marked.svg +16 -0
- package/dist/cdn/icons/lucide/book-minus.svg +16 -0
- package/dist/cdn/icons/lucide/book-open-check.svg +17 -0
- package/dist/cdn/icons/lucide/book-open-text.svg +20 -0
- package/dist/cdn/icons/lucide/book-open.svg +16 -0
- package/dist/cdn/icons/lucide/book-plus.svg +17 -0
- package/dist/cdn/icons/lucide/book-search.svg +18 -0
- package/dist/cdn/icons/lucide/book-template.svg +25 -0
- package/dist/cdn/icons/lucide/book-text.svg +17 -0
- package/dist/cdn/icons/lucide/book-type.svg +18 -0
- package/dist/cdn/icons/lucide/book-up-2.svg +19 -0
- package/dist/cdn/icons/lucide/book-up.svg +17 -0
- package/dist/cdn/icons/lucide/book-user.svg +17 -0
- package/dist/cdn/icons/lucide/book-x.svg +17 -0
- package/dist/cdn/icons/lucide/book.svg +15 -0
- package/dist/cdn/icons/lucide/bookmark-check.svg +16 -0
- package/dist/cdn/icons/lucide/bookmark-minus.svg +16 -0
- package/dist/cdn/icons/lucide/bookmark-plus.svg +17 -0
- package/dist/cdn/icons/lucide/bookmark-x.svg +17 -0
- package/dist/cdn/icons/lucide/bookmark.svg +15 -0
- package/dist/cdn/icons/lucide/boom-box.svg +21 -0
- package/dist/cdn/icons/lucide/bot-message-square.svg +20 -0
- package/dist/cdn/icons/lucide/bot-off.svg +21 -0
- package/dist/cdn/icons/lucide/bot.svg +20 -0
- package/dist/cdn/icons/lucide/bottle-wine.svg +16 -0
- package/dist/cdn/icons/lucide/bow-arrow.svg +19 -0
- package/dist/cdn/icons/lucide/box-select.svg +26 -0
- package/dist/cdn/icons/lucide/box.svg +17 -0
- package/dist/cdn/icons/lucide/boxes.svg +26 -0
- package/dist/cdn/icons/lucide/braces.svg +16 -0
- package/dist/cdn/icons/lucide/brackets.svg +16 -0
- package/dist/cdn/icons/lucide/brain-circuit.svg +27 -0
- package/dist/cdn/icons/lucide/brain-cog.svg +29 -0
- package/dist/cdn/icons/lucide/brain.svg +22 -0
- package/dist/cdn/icons/lucide/brick-wall-fire.svg +21 -0
- package/dist/cdn/icons/lucide/brick-wall-shield.svg +22 -0
- package/dist/cdn/icons/lucide/brick-wall.svg +22 -0
- package/dist/cdn/icons/lucide/briefcase-business.svg +18 -0
- package/dist/cdn/icons/lucide/briefcase-conveyor-belt.svg +21 -0
- package/dist/cdn/icons/lucide/briefcase-medical.svg +20 -0
- package/dist/cdn/icons/lucide/briefcase.svg +16 -0
- package/dist/cdn/icons/lucide/bring-to-front.svg +17 -0
- package/dist/cdn/icons/lucide/brush-cleaning.svg +18 -0
- package/dist/cdn/icons/lucide/brush.svg +17 -0
- package/dist/cdn/icons/lucide/bubbles.svg +18 -0
- package/dist/cdn/icons/lucide/bug-off.svg +24 -0
- package/dist/cdn/icons/lucide/bug-play.svg +23 -0
- package/dist/cdn/icons/lucide/bug.svg +25 -0
- package/dist/cdn/icons/lucide/building-2.svg +19 -0
- package/dist/cdn/icons/lucide/building.svg +25 -0
- package/dist/cdn/icons/lucide/bus-front.svg +23 -0
- package/dist/cdn/icons/lucide/bus.svg +21 -0
- package/dist/cdn/icons/lucide/cable-car.svg +22 -0
- package/dist/cdn/icons/lucide/cable.svg +21 -0
- package/dist/cdn/icons/lucide/cake-slice.svg +18 -0
- package/dist/cdn/icons/lucide/cake.svg +23 -0
- package/dist/cdn/icons/lucide/calculator.svg +24 -0
- package/dist/cdn/icons/lucide/calendar-1.svg +19 -0
- package/dist/cdn/icons/lucide/calendar-arrow-down.svg +20 -0
- package/dist/cdn/icons/lucide/calendar-arrow-up.svg +20 -0
- package/dist/cdn/icons/lucide/calendar-check-2.svg +19 -0
- package/dist/cdn/icons/lucide/calendar-check.svg +19 -0
- package/dist/cdn/icons/lucide/calendar-clock.svg +20 -0
- package/dist/cdn/icons/lucide/calendar-cog.svg +27 -0
- package/dist/cdn/icons/lucide/calendar-days.svg +24 -0
- package/dist/cdn/icons/lucide/calendar-fold.svg +19 -0
- package/dist/cdn/icons/lucide/calendar-heart.svg +19 -0
- package/dist/cdn/icons/lucide/calendar-minus-2.svg +19 -0
- package/dist/cdn/icons/lucide/calendar-minus.svg +19 -0
- package/dist/cdn/icons/lucide/calendar-off.svg +20 -0
- package/dist/cdn/icons/lucide/calendar-plus-2.svg +20 -0
- package/dist/cdn/icons/lucide/calendar-plus.svg +20 -0
- package/dist/cdn/icons/lucide/calendar-range.svg +22 -0
- package/dist/cdn/icons/lucide/calendar-search.svg +20 -0
- package/dist/cdn/icons/lucide/calendar-sync.svg +22 -0
- package/dist/cdn/icons/lucide/calendar-x-2.svg +20 -0
- package/dist/cdn/icons/lucide/calendar-x.svg +20 -0
- package/dist/cdn/icons/lucide/calendar.svg +18 -0
- package/dist/cdn/icons/lucide/calendars.svg +20 -0
- package/dist/cdn/icons/lucide/camera-off.svg +18 -0
- package/dist/cdn/icons/lucide/camera.svg +16 -0
- package/dist/cdn/icons/lucide/candlestick-chart.svg +21 -0
- package/dist/cdn/icons/lucide/candy-cane.svg +19 -0
- package/dist/cdn/icons/lucide/candy-off.svg +21 -0
- package/dist/cdn/icons/lucide/candy.svg +19 -0
- package/dist/cdn/icons/lucide/cannabis-off.svg +20 -0
- package/dist/cdn/icons/lucide/cannabis.svg +16 -0
- package/dist/cdn/icons/lucide/captions-off.svg +20 -0
- package/dist/cdn/icons/lucide/captions.svg +16 -0
- package/dist/cdn/icons/lucide/car-front.svg +20 -0
- package/dist/cdn/icons/lucide/car-taxi-front.svg +21 -0
- package/dist/cdn/icons/lucide/car.svg +18 -0
- package/dist/cdn/icons/lucide/caravan.svg +18 -0
- package/dist/cdn/icons/lucide/card-sim.svg +18 -0
- package/dist/cdn/icons/lucide/carrot.svg +17 -0
- package/dist/cdn/icons/lucide/case-lower.svg +18 -0
- package/dist/cdn/icons/lucide/case-sensitive.svg +18 -0
- package/dist/cdn/icons/lucide/case-upper.svg +17 -0
- package/dist/cdn/icons/lucide/cassette-tape.svg +19 -0
- package/dist/cdn/icons/lucide/cast.svg +18 -0
- package/dist/cdn/icons/lucide/castle.svg +22 -0
- package/dist/cdn/icons/lucide/cat.svg +18 -0
- package/dist/cdn/icons/lucide/cctv.svg +19 -0
- package/dist/cdn/icons/lucide/chart-area.svg +16 -0
- package/dist/cdn/icons/lucide/chart-bar-big.svg +17 -0
- package/dist/cdn/icons/lucide/chart-bar-decreasing.svg +18 -0
- package/dist/cdn/icons/lucide/chart-bar-increasing.svg +18 -0
- package/dist/cdn/icons/lucide/chart-bar-stacked.svg +19 -0
- package/dist/cdn/icons/lucide/chart-bar.svg +18 -0
- package/dist/cdn/icons/lucide/chart-candlestick.svg +21 -0
- package/dist/cdn/icons/lucide/chart-column-big.svg +17 -0
- package/dist/cdn/icons/lucide/chart-column-decreasing.svg +18 -0
- package/dist/cdn/icons/lucide/chart-column-increasing.svg +18 -0
- package/dist/cdn/icons/lucide/chart-column-stacked.svg +19 -0
- package/dist/cdn/icons/lucide/chart-column.svg +18 -0
- package/dist/cdn/icons/lucide/chart-gantt.svg +18 -0
- package/dist/cdn/icons/lucide/chart-line.svg +16 -0
- package/dist/cdn/icons/lucide/chart-network.svg +21 -0
- package/dist/cdn/icons/lucide/chart-no-axes-column-decreasing.svg +17 -0
- package/dist/cdn/icons/lucide/chart-no-axes-column-increasing.svg +17 -0
- package/dist/cdn/icons/lucide/chart-no-axes-column.svg +17 -0
- package/dist/cdn/icons/lucide/chart-no-axes-combined.svg +20 -0
- package/dist/cdn/icons/lucide/chart-no-axes-gantt.svg +17 -0
- package/dist/cdn/icons/lucide/chart-pie.svg +16 -0
- package/dist/cdn/icons/lucide/chart-scatter.svg +20 -0
- package/dist/cdn/icons/lucide/chart-spline.svg +16 -0
- package/dist/cdn/icons/lucide/check-check.svg +16 -0
- package/dist/cdn/icons/lucide/check-circle-2.svg +16 -0
- package/dist/cdn/icons/lucide/check-circle.svg +16 -0
- package/dist/cdn/icons/lucide/check-line.svg +17 -0
- package/dist/cdn/icons/lucide/check-square-2.svg +16 -0
- package/dist/cdn/icons/lucide/check-square.svg +16 -0
- package/dist/cdn/icons/lucide/check.svg +15 -0
- package/dist/cdn/icons/lucide/chef-hat.svg +16 -0
- package/dist/cdn/icons/lucide/cherry.svg +18 -0
- package/dist/cdn/icons/lucide/chess-bishop.svg +18 -0
- package/dist/cdn/icons/lucide/chess-king.svg +18 -0
- package/dist/cdn/icons/lucide/chess-knight.svg +19 -0
- package/dist/cdn/icons/lucide/chess-pawn.svg +19 -0
- package/dist/cdn/icons/lucide/chess-queen.svg +22 -0
- package/dist/cdn/icons/lucide/chess-rook.svg +21 -0
- package/dist/cdn/icons/lucide/chevron-down-circle.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-down-square.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-down.svg +15 -0
- package/dist/cdn/icons/lucide/chevron-first.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-last.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-left-circle.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-left-square.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-left.svg +15 -0
- package/dist/cdn/icons/lucide/chevron-right-circle.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-right-square.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-right.svg +15 -0
- package/dist/cdn/icons/lucide/chevron-up-circle.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-up-square.svg +16 -0
- package/dist/cdn/icons/lucide/chevron-up.svg +15 -0
- package/dist/cdn/icons/lucide/chevrons-down-up.svg +16 -0
- package/dist/cdn/icons/lucide/chevrons-down.svg +16 -0
- package/dist/cdn/icons/lucide/chevrons-left-right-ellipsis.svg +19 -0
- package/dist/cdn/icons/lucide/chevrons-left-right.svg +16 -0
- package/dist/cdn/icons/lucide/chevrons-left.svg +16 -0
- package/dist/cdn/icons/lucide/chevrons-right-left.svg +16 -0
- package/dist/cdn/icons/lucide/chevrons-right.svg +16 -0
- package/dist/cdn/icons/lucide/chevrons-up-down.svg +16 -0
- package/dist/cdn/icons/lucide/chevrons-up.svg +16 -0
- package/dist/cdn/icons/lucide/chrome.svg +19 -0
- package/dist/cdn/icons/lucide/chromium.svg +19 -0
- package/dist/cdn/icons/lucide/church.svg +19 -0
- package/dist/cdn/icons/lucide/cigarette-off.svg +20 -0
- package/dist/cdn/icons/lucide/cigarette.svg +19 -0
- package/dist/cdn/icons/lucide/circle-alert.svg +17 -0
- package/dist/cdn/icons/lucide/circle-arrow-down.svg +17 -0
- package/dist/cdn/icons/lucide/circle-arrow-left.svg +17 -0
- package/dist/cdn/icons/lucide/circle-arrow-out-down-left.svg +17 -0
- package/dist/cdn/icons/lucide/circle-arrow-out-down-right.svg +17 -0
- package/dist/cdn/icons/lucide/circle-arrow-out-up-left.svg +17 -0
- package/dist/cdn/icons/lucide/circle-arrow-out-up-right.svg +17 -0
- package/dist/cdn/icons/lucide/circle-arrow-right.svg +17 -0
- package/dist/cdn/icons/lucide/circle-arrow-up.svg +17 -0
- package/dist/cdn/icons/lucide/circle-check-big.svg +16 -0
- package/dist/cdn/icons/lucide/circle-check.svg +16 -0
- package/dist/cdn/icons/lucide/circle-chevron-down.svg +16 -0
- package/dist/cdn/icons/lucide/circle-chevron-left.svg +16 -0
- package/dist/cdn/icons/lucide/circle-chevron-right.svg +16 -0
- package/dist/cdn/icons/lucide/circle-chevron-up.svg +16 -0
- package/dist/cdn/icons/lucide/circle-dashed.svg +22 -0
- package/dist/cdn/icons/lucide/circle-divide.svg +18 -0
- package/dist/cdn/icons/lucide/circle-dollar-sign.svg +17 -0
- package/dist/cdn/icons/lucide/circle-dot-dashed.svg +23 -0
- package/dist/cdn/icons/lucide/circle-dot.svg +16 -0
- package/dist/cdn/icons/lucide/circle-ellipsis.svg +18 -0
- package/dist/cdn/icons/lucide/circle-equal.svg +17 -0
- package/dist/cdn/icons/lucide/circle-fading-arrow-up.svg +21 -0
- package/dist/cdn/icons/lucide/circle-fading-plus.svg +21 -0
- package/dist/cdn/icons/lucide/circle-gauge.svg +17 -0
- package/dist/cdn/icons/lucide/circle-help.svg +17 -0
- package/dist/cdn/icons/lucide/circle-minus.svg +16 -0
- package/dist/cdn/icons/lucide/circle-off.svg +17 -0
- package/dist/cdn/icons/lucide/circle-parking-off.svg +20 -0
- package/dist/cdn/icons/lucide/circle-parking.svg +16 -0
- package/dist/cdn/icons/lucide/circle-pause.svg +17 -0
- package/dist/cdn/icons/lucide/circle-percent.svg +18 -0
- package/dist/cdn/icons/lucide/circle-pile.svg +11 -0
- package/dist/cdn/icons/lucide/circle-play.svg +16 -0
- package/dist/cdn/icons/lucide/circle-plus.svg +17 -0
- package/dist/cdn/icons/lucide/circle-pound-sterling.svg +18 -0
- package/dist/cdn/icons/lucide/circle-power.svg +17 -0
- package/dist/cdn/icons/lucide/circle-question-mark.svg +17 -0
- package/dist/cdn/icons/lucide/circle-slash-2.svg +16 -0
- package/dist/cdn/icons/lucide/circle-slash.svg +16 -0
- package/dist/cdn/icons/lucide/circle-slashed.svg +16 -0
- package/dist/cdn/icons/lucide/circle-small.svg +15 -0
- package/dist/cdn/icons/lucide/circle-star.svg +16 -0
- package/dist/cdn/icons/lucide/circle-stop.svg +16 -0
- package/dist/cdn/icons/lucide/circle-user-round.svg +17 -0
- package/dist/cdn/icons/lucide/circle-user.svg +17 -0
- package/dist/cdn/icons/lucide/circle-x.svg +17 -0
- package/dist/cdn/icons/lucide/circle.svg +15 -0
- package/dist/cdn/icons/lucide/circuit-board.svg +19 -0
- package/dist/cdn/icons/lucide/citrus.svg +18 -0
- package/dist/cdn/icons/lucide/clapperboard.svg +18 -0
- package/dist/cdn/icons/lucide/clipboard-check.svg +17 -0
- package/dist/cdn/icons/lucide/clipboard-clock.svg +19 -0
- package/dist/cdn/icons/lucide/clipboard-copy.svg +19 -0
- package/dist/cdn/icons/lucide/clipboard-edit.svg +18 -0
- package/dist/cdn/icons/lucide/clipboard-list.svg +20 -0
- package/dist/cdn/icons/lucide/clipboard-minus.svg +17 -0
- package/dist/cdn/icons/lucide/clipboard-paste.svg +19 -0
- package/dist/cdn/icons/lucide/clipboard-pen-line.svg +19 -0
- package/dist/cdn/icons/lucide/clipboard-pen.svg +18 -0
- package/dist/cdn/icons/lucide/clipboard-plus.svg +18 -0
- package/dist/cdn/icons/lucide/clipboard-signature.svg +19 -0
- package/dist/cdn/icons/lucide/clipboard-type.svg +19 -0
- package/dist/cdn/icons/lucide/clipboard-x.svg +18 -0
- package/dist/cdn/icons/lucide/clipboard.svg +16 -0
- package/dist/cdn/icons/lucide/clock-1.svg +16 -0
- package/dist/cdn/icons/lucide/clock-10.svg +16 -0
- package/dist/cdn/icons/lucide/clock-11.svg +16 -0
- package/dist/cdn/icons/lucide/clock-12.svg +16 -0
- package/dist/cdn/icons/lucide/clock-2.svg +16 -0
- package/dist/cdn/icons/lucide/clock-3.svg +16 -0
- package/dist/cdn/icons/lucide/clock-4.svg +16 -0
- package/dist/cdn/icons/lucide/clock-5.svg +16 -0
- package/dist/cdn/icons/lucide/clock-6.svg +16 -0
- package/dist/cdn/icons/lucide/clock-7.svg +16 -0
- package/dist/cdn/icons/lucide/clock-8.svg +16 -0
- package/dist/cdn/icons/lucide/clock-9.svg +16 -0
- package/dist/cdn/icons/lucide/clock-alert.svg +18 -0
- package/dist/cdn/icons/lucide/clock-arrow-down.svg +18 -0
- package/dist/cdn/icons/lucide/clock-arrow-up.svg +18 -0
- package/dist/cdn/icons/lucide/clock-check.svg +17 -0
- package/dist/cdn/icons/lucide/clock-fading.svg +20 -0
- package/dist/cdn/icons/lucide/clock-plus.svg +18 -0
- package/dist/cdn/icons/lucide/clock.svg +16 -0
- package/dist/cdn/icons/lucide/closed-caption.svg +17 -0
- package/dist/cdn/icons/lucide/cloud-alert.svg +17 -0
- package/dist/cdn/icons/lucide/cloud-backup.svg +17 -0
- package/dist/cdn/icons/lucide/cloud-check.svg +16 -0
- package/dist/cdn/icons/lucide/cloud-cog.svg +23 -0
- package/dist/cdn/icons/lucide/cloud-download.svg +17 -0
- package/dist/cdn/icons/lucide/cloud-drizzle.svg +21 -0
- package/dist/cdn/icons/lucide/cloud-fog.svg +17 -0
- package/dist/cdn/icons/lucide/cloud-hail.svg +21 -0
- package/dist/cdn/icons/lucide/cloud-lightning.svg +16 -0
- package/dist/cdn/icons/lucide/cloud-moon-rain.svg +18 -0
- package/dist/cdn/icons/lucide/cloud-moon.svg +16 -0
- package/dist/cdn/icons/lucide/cloud-off.svg +17 -0
- package/dist/cdn/icons/lucide/cloud-rain-wind.svg +18 -0
- package/dist/cdn/icons/lucide/cloud-rain.svg +18 -0
- package/dist/cdn/icons/lucide/cloud-snow.svg +21 -0
- package/dist/cdn/icons/lucide/cloud-sun-rain.svg +22 -0
- package/dist/cdn/icons/lucide/cloud-sun.svg +20 -0
- package/dist/cdn/icons/lucide/cloud-sync.svg +19 -0
- package/dist/cdn/icons/lucide/cloud-upload.svg +17 -0
- package/dist/cdn/icons/lucide/cloud.svg +15 -0
- package/dist/cdn/icons/lucide/cloudy.svg +16 -0
- package/dist/cdn/icons/lucide/clover.svg +17 -0
- package/dist/cdn/icons/lucide/club.svg +16 -0
- package/dist/cdn/icons/lucide/code-2.svg +17 -0
- package/dist/cdn/icons/lucide/code-square.svg +17 -0
- package/dist/cdn/icons/lucide/code-xml.svg +17 -0
- package/dist/cdn/icons/lucide/code.svg +16 -0
- package/dist/cdn/icons/lucide/codepen.svg +19 -0
- package/dist/cdn/icons/lucide/codesandbox.svg +20 -0
- package/dist/cdn/icons/lucide/coffee.svg +18 -0
- package/dist/cdn/icons/lucide/cog.svg +28 -0
- package/dist/cdn/icons/lucide/coins.svg +18 -0
- package/dist/cdn/icons/lucide/columns-2.svg +16 -0
- package/dist/cdn/icons/lucide/columns-3-cog.svg +26 -0
- package/dist/cdn/icons/lucide/columns-3.svg +17 -0
- package/dist/cdn/icons/lucide/columns-4.svg +18 -0
- package/dist/cdn/icons/lucide/columns-settings.svg +26 -0
- package/dist/cdn/icons/lucide/columns.svg +16 -0
- package/dist/cdn/icons/lucide/combine.svg +20 -0
- package/dist/cdn/icons/lucide/command.svg +15 -0
- package/dist/cdn/icons/lucide/compass.svg +16 -0
- package/dist/cdn/icons/lucide/component.svg +18 -0
- package/dist/cdn/icons/lucide/computer.svg +18 -0
- package/dist/cdn/icons/lucide/concierge-bell.svg +18 -0
- package/dist/cdn/icons/lucide/cone.svg +16 -0
- package/dist/cdn/icons/lucide/construction.svg +22 -0
- package/dist/cdn/icons/lucide/contact-2.svg +19 -0
- package/dist/cdn/icons/lucide/contact-round.svg +19 -0
- package/dist/cdn/icons/lucide/contact.svg +19 -0
- package/dist/cdn/icons/lucide/container.svg +19 -0
- package/dist/cdn/icons/lucide/contrast.svg +16 -0
- package/dist/cdn/icons/lucide/cookie.svg +20 -0
- package/dist/cdn/icons/lucide/cooking-pot.svg +18 -0
- package/dist/cdn/icons/lucide/copy-check.svg +17 -0
- package/dist/cdn/icons/lucide/copy-minus.svg +17 -0
- package/dist/cdn/icons/lucide/copy-plus.svg +18 -0
- package/dist/cdn/icons/lucide/copy-slash.svg +17 -0
- package/dist/cdn/icons/lucide/copy-x.svg +18 -0
- package/dist/cdn/icons/lucide/copy.svg +16 -0
- package/dist/cdn/icons/lucide/copyleft.svg +16 -0
- package/dist/cdn/icons/lucide/copyright.svg +16 -0
- package/dist/cdn/icons/lucide/corner-down-left.svg +16 -0
- package/dist/cdn/icons/lucide/corner-down-right.svg +16 -0
- package/dist/cdn/icons/lucide/corner-left-down.svg +16 -0
- package/dist/cdn/icons/lucide/corner-left-up.svg +16 -0
- package/dist/cdn/icons/lucide/corner-right-down.svg +16 -0
- package/dist/cdn/icons/lucide/corner-right-up.svg +16 -0
- package/dist/cdn/icons/lucide/corner-up-left.svg +16 -0
- package/dist/cdn/icons/lucide/corner-up-right.svg +16 -0
- package/dist/cdn/icons/lucide/cpu.svg +28 -0
- package/dist/cdn/icons/lucide/creative-commons.svg +17 -0
- package/dist/cdn/icons/lucide/credit-card.svg +16 -0
- package/dist/cdn/icons/lucide/croissant.svg +19 -0
- package/dist/cdn/icons/lucide/crop.svg +16 -0
- package/dist/cdn/icons/lucide/cross.svg +15 -0
- package/dist/cdn/icons/lucide/crosshair.svg +19 -0
- package/dist/cdn/icons/lucide/crown.svg +16 -0
- package/dist/cdn/icons/lucide/cuboid.svg +17 -0
- package/dist/cdn/icons/lucide/cup-soda.svg +18 -0
- package/dist/cdn/icons/lucide/curly-braces.svg +16 -0
- package/dist/cdn/icons/lucide/currency.svg +19 -0
- package/dist/cdn/icons/lucide/cylinder.svg +16 -0
- package/dist/cdn/icons/lucide/dam.svg +21 -0
- package/dist/cdn/icons/lucide/database-backup.svg +20 -0
- package/dist/cdn/icons/lucide/database-zap.svg +19 -0
- package/dist/cdn/icons/lucide/database.svg +17 -0
- package/dist/cdn/icons/lucide/decimals-arrow-left.svg +18 -0
- package/dist/cdn/icons/lucide/decimals-arrow-right.svg +19 -0
- package/dist/cdn/icons/lucide/delete.svg +17 -0
- package/dist/cdn/icons/lucide/dessert.svg +17 -0
- package/dist/cdn/icons/lucide/diameter.svg +19 -0
- package/dist/cdn/icons/lucide/diamond-minus.svg +16 -0
- package/dist/cdn/icons/lucide/diamond-percent.svg +18 -0
- package/dist/cdn/icons/lucide/diamond-plus.svg +17 -0
- package/dist/cdn/icons/lucide/diamond.svg +15 -0
- package/dist/cdn/icons/lucide/dice-1.svg +16 -0
- package/dist/cdn/icons/lucide/dice-2.svg +17 -0
- package/dist/cdn/icons/lucide/dice-3.svg +18 -0
- package/dist/cdn/icons/lucide/dice-4.svg +19 -0
- package/dist/cdn/icons/lucide/dice-5.svg +20 -0
- package/dist/cdn/icons/lucide/dice-6.svg +21 -0
- package/dist/cdn/icons/lucide/dices.svg +20 -0
- package/dist/cdn/icons/lucide/diff.svg +17 -0
- package/dist/cdn/icons/lucide/disc-2.svg +17 -0
- package/dist/cdn/icons/lucide/disc-3.svg +18 -0
- package/dist/cdn/icons/lucide/disc-album.svg +17 -0
- package/dist/cdn/icons/lucide/disc.svg +16 -0
- package/dist/cdn/icons/lucide/divide-circle.svg +18 -0
- package/dist/cdn/icons/lucide/divide-square.svg +18 -0
- package/dist/cdn/icons/lucide/divide.svg +17 -0
- package/dist/cdn/icons/lucide/dna-off.svg +24 -0
- package/dist/cdn/icons/lucide/dna.svg +25 -0
- package/dist/cdn/icons/lucide/dock.svg +17 -0
- package/dist/cdn/icons/lucide/dog.svg +19 -0
- package/dist/cdn/icons/lucide/dollar-sign.svg +16 -0
- package/dist/cdn/icons/lucide/donut.svg +16 -0
- package/dist/cdn/icons/lucide/door-closed-locked.svg +19 -0
- package/dist/cdn/icons/lucide/door-closed.svg +17 -0
- package/dist/cdn/icons/lucide/door-open.svg +19 -0
- package/dist/cdn/icons/lucide/dot-square.svg +16 -0
- package/dist/cdn/icons/lucide/dot.svg +15 -0
- package/dist/cdn/icons/lucide/download-cloud.svg +17 -0
- package/dist/cdn/icons/lucide/download.svg +17 -0
- package/dist/cdn/icons/lucide/drafting-compass.svg +19 -0
- package/dist/cdn/icons/lucide/drama.svg +22 -0
- package/dist/cdn/icons/lucide/dribbble.svg +18 -0
- package/dist/cdn/icons/lucide/drill.svg +20 -0
- package/dist/cdn/icons/lucide/drone.svg +23 -0
- package/dist/cdn/icons/lucide/droplet-off.svg +17 -0
- package/dist/cdn/icons/lucide/droplet.svg +15 -0
- package/dist/cdn/icons/lucide/droplets.svg +16 -0
- package/dist/cdn/icons/lucide/drum.svg +21 -0
- package/dist/cdn/icons/lucide/drumstick.svg +16 -0
- package/dist/cdn/icons/lucide/dumbbell.svg +19 -0
- package/dist/cdn/icons/lucide/ear-off.svg +19 -0
- package/dist/cdn/icons/lucide/ear.svg +16 -0
- package/dist/cdn/icons/lucide/earth-lock.svg +20 -0
- package/dist/cdn/icons/lucide/earth.svg +18 -0
- package/dist/cdn/icons/lucide/eclipse.svg +16 -0
- package/dist/cdn/icons/lucide/edit-2.svg +15 -0
- package/dist/cdn/icons/lucide/edit-3.svg +16 -0
- package/dist/cdn/icons/lucide/edit.svg +16 -0
- package/dist/cdn/icons/lucide/egg-fried.svg +16 -0
- package/dist/cdn/icons/lucide/egg-off.svg +17 -0
- package/dist/cdn/icons/lucide/egg.svg +15 -0
- package/dist/cdn/icons/lucide/ellipsis-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/ellipsis.svg +17 -0
- package/dist/cdn/icons/lucide/equal-approximately.svg +16 -0
- package/dist/cdn/icons/lucide/equal-not.svg +17 -0
- package/dist/cdn/icons/lucide/equal-square.svg +17 -0
- package/dist/cdn/icons/lucide/equal.svg +16 -0
- package/dist/cdn/icons/lucide/eraser.svg +16 -0
- package/dist/cdn/icons/lucide/ethernet-port.svg +19 -0
- package/dist/cdn/icons/lucide/euro.svg +17 -0
- package/dist/cdn/icons/lucide/ev-charger.svg +19 -0
- package/dist/cdn/icons/lucide/expand.svg +22 -0
- package/dist/cdn/icons/lucide/external-link.svg +17 -0
- package/dist/cdn/icons/lucide/eye-closed.svg +19 -0
- package/dist/cdn/icons/lucide/eye-off.svg +18 -0
- package/dist/cdn/icons/lucide/eye.svg +16 -0
- package/dist/cdn/icons/lucide/facebook.svg +15 -0
- package/dist/cdn/icons/lucide/factory.svg +18 -0
- package/dist/cdn/icons/lucide/fan.svg +16 -0
- package/dist/cdn/icons/lucide/fast-forward.svg +16 -0
- package/dist/cdn/icons/lucide/feather.svg +17 -0
- package/dist/cdn/icons/lucide/fence.svg +21 -0
- package/dist/cdn/icons/lucide/ferris-wheel.svg +23 -0
- package/dist/cdn/icons/lucide/figma.svg +19 -0
- package/dist/cdn/icons/lucide/file-archive.svg +20 -0
- package/dist/cdn/icons/lucide/file-audio-2.svg +17 -0
- package/dist/cdn/icons/lucide/file-audio.svg +17 -0
- package/dist/cdn/icons/lucide/file-axis-3-d.svg +18 -0
- package/dist/cdn/icons/lucide/file-axis-3d.svg +18 -0
- package/dist/cdn/icons/lucide/file-badge-2.svg +18 -0
- package/dist/cdn/icons/lucide/file-badge.svg +18 -0
- package/dist/cdn/icons/lucide/file-bar-chart-2.svg +19 -0
- package/dist/cdn/icons/lucide/file-bar-chart.svg +19 -0
- package/dist/cdn/icons/lucide/file-box.svg +19 -0
- package/dist/cdn/icons/lucide/file-braces-corner.svg +18 -0
- package/dist/cdn/icons/lucide/file-braces.svg +18 -0
- package/dist/cdn/icons/lucide/file-chart-column-increasing.svg +19 -0
- package/dist/cdn/icons/lucide/file-chart-column.svg +19 -0
- package/dist/cdn/icons/lucide/file-chart-line.svg +17 -0
- package/dist/cdn/icons/lucide/file-chart-pie.svg +18 -0
- package/dist/cdn/icons/lucide/file-check-2.svg +17 -0
- package/dist/cdn/icons/lucide/file-check-corner.svg +17 -0
- package/dist/cdn/icons/lucide/file-check.svg +17 -0
- package/dist/cdn/icons/lucide/file-clock.svg +18 -0
- package/dist/cdn/icons/lucide/file-code-2.svg +18 -0
- package/dist/cdn/icons/lucide/file-code-corner.svg +18 -0
- package/dist/cdn/icons/lucide/file-code.svg +18 -0
- package/dist/cdn/icons/lucide/file-cog-2.svg +25 -0
- package/dist/cdn/icons/lucide/file-cog.svg +25 -0
- package/dist/cdn/icons/lucide/file-diff.svg +18 -0
- package/dist/cdn/icons/lucide/file-digit.svg +19 -0
- package/dist/cdn/icons/lucide/file-down.svg +18 -0
- package/dist/cdn/icons/lucide/file-edit.svg +17 -0
- package/dist/cdn/icons/lucide/file-exclamation-point.svg +17 -0
- package/dist/cdn/icons/lucide/file-headphone.svg +17 -0
- package/dist/cdn/icons/lucide/file-heart.svg +17 -0
- package/dist/cdn/icons/lucide/file-image.svg +18 -0
- package/dist/cdn/icons/lucide/file-input.svg +18 -0
- package/dist/cdn/icons/lucide/file-json-2.svg +18 -0
- package/dist/cdn/icons/lucide/file-json.svg +18 -0
- package/dist/cdn/icons/lucide/file-key-2.svg +19 -0
- package/dist/cdn/icons/lucide/file-key.svg +19 -0
- package/dist/cdn/icons/lucide/file-line-chart.svg +17 -0
- package/dist/cdn/icons/lucide/file-lock-2.svg +18 -0
- package/dist/cdn/icons/lucide/file-lock.svg +18 -0
- package/dist/cdn/icons/lucide/file-minus-2.svg +17 -0
- package/dist/cdn/icons/lucide/file-minus-corner.svg +17 -0
- package/dist/cdn/icons/lucide/file-minus.svg +17 -0
- package/dist/cdn/icons/lucide/file-music.svg +18 -0
- package/dist/cdn/icons/lucide/file-output.svg +18 -0
- package/dist/cdn/icons/lucide/file-pen-line.svg +17 -0
- package/dist/cdn/icons/lucide/file-pen.svg +17 -0
- package/dist/cdn/icons/lucide/file-pie-chart.svg +18 -0
- package/dist/cdn/icons/lucide/file-play.svg +17 -0
- package/dist/cdn/icons/lucide/file-plus-2.svg +18 -0
- package/dist/cdn/icons/lucide/file-plus-corner.svg +18 -0
- package/dist/cdn/icons/lucide/file-plus.svg +18 -0
- package/dist/cdn/icons/lucide/file-question-mark.svg +17 -0
- package/dist/cdn/icons/lucide/file-question.svg +17 -0
- package/dist/cdn/icons/lucide/file-scan.svg +20 -0
- package/dist/cdn/icons/lucide/file-search-2.svg +18 -0
- package/dist/cdn/icons/lucide/file-search-corner.svg +18 -0
- package/dist/cdn/icons/lucide/file-search.svg +18 -0
- package/dist/cdn/icons/lucide/file-signal.svg +19 -0
- package/dist/cdn/icons/lucide/file-signature.svg +17 -0
- package/dist/cdn/icons/lucide/file-sliders.svg +20 -0
- package/dist/cdn/icons/lucide/file-spreadsheet.svg +20 -0
- package/dist/cdn/icons/lucide/file-stack.svg +17 -0
- package/dist/cdn/icons/lucide/file-symlink.svg +17 -0
- package/dist/cdn/icons/lucide/file-terminal.svg +18 -0
- package/dist/cdn/icons/lucide/file-text.svg +19 -0
- package/dist/cdn/icons/lucide/file-type-2.svg +19 -0
- package/dist/cdn/icons/lucide/file-type-corner.svg +19 -0
- package/dist/cdn/icons/lucide/file-type.svg +19 -0
- package/dist/cdn/icons/lucide/file-up.svg +18 -0
- package/dist/cdn/icons/lucide/file-user.svg +18 -0
- package/dist/cdn/icons/lucide/file-video-2.svg +18 -0
- package/dist/cdn/icons/lucide/file-video-camera.svg +18 -0
- package/dist/cdn/icons/lucide/file-video.svg +17 -0
- package/dist/cdn/icons/lucide/file-volume-2.svg +19 -0
- package/dist/cdn/icons/lucide/file-volume.svg +18 -0
- package/dist/cdn/icons/lucide/file-warning.svg +17 -0
- package/dist/cdn/icons/lucide/file-x-2.svg +18 -0
- package/dist/cdn/icons/lucide/file-x-corner.svg +18 -0
- package/dist/cdn/icons/lucide/file-x.svg +18 -0
- package/dist/cdn/icons/lucide/file.svg +16 -0
- package/dist/cdn/icons/lucide/files.svg +17 -0
- package/dist/cdn/icons/lucide/film.svg +22 -0
- package/dist/cdn/icons/lucide/filter-x.svg +17 -0
- package/dist/cdn/icons/lucide/filter.svg +15 -0
- package/dist/cdn/icons/lucide/fingerprint-pattern.svg +23 -0
- package/dist/cdn/icons/lucide/fingerprint.svg +23 -0
- package/dist/cdn/icons/lucide/fire-extinguisher.svg +20 -0
- package/dist/cdn/icons/lucide/fish-off.svg +17 -0
- package/dist/cdn/icons/lucide/fish-symbol.svg +15 -0
- package/dist/cdn/icons/lucide/fish.svg +20 -0
- package/dist/cdn/icons/lucide/fishing-hook.svg +17 -0
- package/dist/cdn/icons/lucide/flag-off.svg +18 -0
- package/dist/cdn/icons/lucide/flag-triangle-left.svg +15 -0
- package/dist/cdn/icons/lucide/flag-triangle-right.svg +15 -0
- package/dist/cdn/icons/lucide/flag.svg +15 -0
- package/dist/cdn/icons/lucide/flame-kindling.svg +17 -0
- package/dist/cdn/icons/lucide/flame.svg +15 -0
- package/dist/cdn/icons/lucide/flashlight-off.svg +19 -0
- package/dist/cdn/icons/lucide/flashlight.svg +17 -0
- package/dist/cdn/icons/lucide/flask-conical-off.svg +20 -0
- package/dist/cdn/icons/lucide/flask-conical.svg +17 -0
- package/dist/cdn/icons/lucide/flask-round.svg +17 -0
- package/dist/cdn/icons/lucide/flip-horizontal-2.svg +20 -0
- package/dist/cdn/icons/lucide/flip-horizontal.svg +20 -0
- package/dist/cdn/icons/lucide/flip-vertical-2.svg +20 -0
- package/dist/cdn/icons/lucide/flip-vertical.svg +20 -0
- package/dist/cdn/icons/lucide/flower-2.svg +19 -0
- package/dist/cdn/icons/lucide/flower.svg +24 -0
- package/dist/cdn/icons/lucide/focus.svg +19 -0
- package/dist/cdn/icons/lucide/fold-horizontal.svg +22 -0
- package/dist/cdn/icons/lucide/fold-vertical.svg +22 -0
- package/dist/cdn/icons/lucide/folder-archive.svg +18 -0
- package/dist/cdn/icons/lucide/folder-check.svg +16 -0
- package/dist/cdn/icons/lucide/folder-clock.svg +17 -0
- package/dist/cdn/icons/lucide/folder-closed.svg +16 -0
- package/dist/cdn/icons/lucide/folder-code.svg +17 -0
- package/dist/cdn/icons/lucide/folder-cog-2.svg +24 -0
- package/dist/cdn/icons/lucide/folder-cog.svg +24 -0
- package/dist/cdn/icons/lucide/folder-dot.svg +16 -0
- package/dist/cdn/icons/lucide/folder-down.svg +17 -0
- package/dist/cdn/icons/lucide/folder-edit.svg +16 -0
- package/dist/cdn/icons/lucide/folder-git-2.svg +18 -0
- package/dist/cdn/icons/lucide/folder-git.svg +18 -0
- package/dist/cdn/icons/lucide/folder-heart.svg +16 -0
- package/dist/cdn/icons/lucide/folder-input.svg +17 -0
- package/dist/cdn/icons/lucide/folder-kanban.svg +18 -0
- package/dist/cdn/icons/lucide/folder-key.svg +18 -0
- package/dist/cdn/icons/lucide/folder-lock.svg +17 -0
- package/dist/cdn/icons/lucide/folder-minus.svg +16 -0
- package/dist/cdn/icons/lucide/folder-open-dot.svg +16 -0
- package/dist/cdn/icons/lucide/folder-open.svg +15 -0
- package/dist/cdn/icons/lucide/folder-output.svg +17 -0
- package/dist/cdn/icons/lucide/folder-pen.svg +16 -0
- package/dist/cdn/icons/lucide/folder-plus.svg +17 -0
- package/dist/cdn/icons/lucide/folder-root.svg +17 -0
- package/dist/cdn/icons/lucide/folder-search-2.svg +17 -0
- package/dist/cdn/icons/lucide/folder-search.svg +17 -0
- package/dist/cdn/icons/lucide/folder-symlink.svg +16 -0
- package/dist/cdn/icons/lucide/folder-sync.svg +19 -0
- package/dist/cdn/icons/lucide/folder-tree.svg +18 -0
- package/dist/cdn/icons/lucide/folder-up.svg +17 -0
- package/dist/cdn/icons/lucide/folder-x.svg +17 -0
- package/dist/cdn/icons/lucide/folder.svg +15 -0
- package/dist/cdn/icons/lucide/folders.svg +16 -0
- package/dist/cdn/icons/lucide/footprints.svg +18 -0
- package/dist/cdn/icons/lucide/fork-knife-crossed.svg +18 -0
- package/dist/cdn/icons/lucide/fork-knife.svg +17 -0
- package/dist/cdn/icons/lucide/forklift.svg +18 -0
- package/dist/cdn/icons/lucide/form-input.svg +18 -0
- package/dist/cdn/icons/lucide/form.svg +18 -0
- package/dist/cdn/icons/lucide/forward.svg +16 -0
- package/dist/cdn/icons/lucide/frame.svg +18 -0
- package/dist/cdn/icons/lucide/framer.svg +15 -0
- package/dist/cdn/icons/lucide/frown.svg +18 -0
- package/dist/cdn/icons/lucide/fuel.svg +18 -0
- package/dist/cdn/icons/lucide/fullscreen.svg +19 -0
- package/dist/cdn/icons/lucide/function-square.svg +17 -0
- package/dist/cdn/icons/lucide/funnel-plus.svg +17 -0
- package/dist/cdn/icons/lucide/funnel-x.svg +17 -0
- package/dist/cdn/icons/lucide/funnel.svg +15 -0
- package/dist/cdn/icons/lucide/gallery-horizontal-end.svg +17 -0
- package/dist/cdn/icons/lucide/gallery-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/gallery-thumbnails.svg +19 -0
- package/dist/cdn/icons/lucide/gallery-vertical-end.svg +17 -0
- package/dist/cdn/icons/lucide/gallery-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/gamepad-2.svg +19 -0
- package/dist/cdn/icons/lucide/gamepad-directional.svg +13 -0
- package/dist/cdn/icons/lucide/gamepad.svg +19 -0
- package/dist/cdn/icons/lucide/gantt-chart-square.svg +18 -0
- package/dist/cdn/icons/lucide/gantt-chart.svg +17 -0
- package/dist/cdn/icons/lucide/gauge-circle.svg +17 -0
- package/dist/cdn/icons/lucide/gauge.svg +16 -0
- package/dist/cdn/icons/lucide/gavel.svg +19 -0
- package/dist/cdn/icons/lucide/gem.svg +17 -0
- package/dist/cdn/icons/lucide/georgian-lari.svg +18 -0
- package/dist/cdn/icons/lucide/ghost.svg +17 -0
- package/dist/cdn/icons/lucide/gift.svg +18 -0
- package/dist/cdn/icons/lucide/git-branch-minus.svg +18 -0
- package/dist/cdn/icons/lucide/git-branch-plus.svg +20 -0
- package/dist/cdn/icons/lucide/git-branch.svg +18 -0
- package/dist/cdn/icons/lucide/git-commit-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/git-commit-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/git-commit.svg +17 -0
- package/dist/cdn/icons/lucide/git-compare-arrows.svg +20 -0
- package/dist/cdn/icons/lucide/git-compare.svg +18 -0
- package/dist/cdn/icons/lucide/git-fork.svg +19 -0
- package/dist/cdn/icons/lucide/git-graph.svg +20 -0
- package/dist/cdn/icons/lucide/git-merge.svg +17 -0
- package/dist/cdn/icons/lucide/git-pull-request-arrow.svg +19 -0
- package/dist/cdn/icons/lucide/git-pull-request-closed.svg +20 -0
- package/dist/cdn/icons/lucide/git-pull-request-create-arrow.svg +20 -0
- package/dist/cdn/icons/lucide/git-pull-request-create.svg +19 -0
- package/dist/cdn/icons/lucide/git-pull-request-draft.svg +19 -0
- package/dist/cdn/icons/lucide/git-pull-request.svg +18 -0
- package/dist/cdn/icons/lucide/github.svg +16 -0
- package/dist/cdn/icons/lucide/gitlab.svg +15 -0
- package/dist/cdn/icons/lucide/glass-water.svg +16 -0
- package/dist/cdn/icons/lucide/glasses.svg +19 -0
- package/dist/cdn/icons/lucide/globe-2.svg +18 -0
- package/dist/cdn/icons/lucide/globe-lock.svg +18 -0
- package/dist/cdn/icons/lucide/globe.svg +17 -0
- package/dist/cdn/icons/lucide/goal.svg +17 -0
- package/dist/cdn/icons/lucide/gpu.svg +19 -0
- package/dist/cdn/icons/lucide/grab.svg +19 -0
- package/dist/cdn/icons/lucide/graduation-cap.svg +17 -0
- package/dist/cdn/icons/lucide/grape.svg +23 -0
- package/dist/cdn/icons/lucide/grid-2-x-2-check.svg +16 -0
- package/dist/cdn/icons/lucide/grid-2-x-2-plus.svg +17 -0
- package/dist/cdn/icons/lucide/grid-2-x-2-x.svg +17 -0
- package/dist/cdn/icons/lucide/grid-2-x-2.svg +17 -0
- package/dist/cdn/icons/lucide/grid-2x2-check.svg +16 -0
- package/dist/cdn/icons/lucide/grid-2x2-plus.svg +17 -0
- package/dist/cdn/icons/lucide/grid-2x2-x.svg +17 -0
- package/dist/cdn/icons/lucide/grid-2x2.svg +17 -0
- package/dist/cdn/icons/lucide/grid-3-x-3.svg +19 -0
- package/dist/cdn/icons/lucide/grid-3x2.svg +18 -0
- package/dist/cdn/icons/lucide/grid-3x3.svg +19 -0
- package/dist/cdn/icons/lucide/grid.svg +19 -0
- package/dist/cdn/icons/lucide/grip-horizontal.svg +20 -0
- package/dist/cdn/icons/lucide/grip-vertical.svg +20 -0
- package/dist/cdn/icons/lucide/grip.svg +23 -0
- package/dist/cdn/icons/lucide/group.svg +20 -0
- package/dist/cdn/icons/lucide/guitar.svg +18 -0
- package/dist/cdn/icons/lucide/ham.svg +18 -0
- package/dist/cdn/icons/lucide/hamburger.svg +18 -0
- package/dist/cdn/icons/lucide/hammer.svg +17 -0
- package/dist/cdn/icons/lucide/hand-coins.svg +19 -0
- package/dist/cdn/icons/lucide/hand-fist.svg +18 -0
- package/dist/cdn/icons/lucide/hand-grab.svg +19 -0
- package/dist/cdn/icons/lucide/hand-heart.svg +18 -0
- package/dist/cdn/icons/lucide/hand-helping.svg +17 -0
- package/dist/cdn/icons/lucide/hand-metal.svg +18 -0
- package/dist/cdn/icons/lucide/hand-platter.svg +20 -0
- package/dist/cdn/icons/lucide/hand.svg +18 -0
- package/dist/cdn/icons/lucide/handbag.svg +16 -0
- package/dist/cdn/icons/lucide/handshake.svg +19 -0
- package/dist/cdn/icons/lucide/hard-drive-download.svg +19 -0
- package/dist/cdn/icons/lucide/hard-drive-upload.svg +19 -0
- package/dist/cdn/icons/lucide/hard-drive.svg +18 -0
- package/dist/cdn/icons/lucide/hard-hat.svg +18 -0
- package/dist/cdn/icons/lucide/hash.svg +18 -0
- package/dist/cdn/icons/lucide/hat-glasses.svg +19 -0
- package/dist/cdn/icons/lucide/haze.svg +22 -0
- package/dist/cdn/icons/lucide/hd.svg +19 -0
- package/dist/cdn/icons/lucide/hdmi-port.svg +16 -0
- package/dist/cdn/icons/lucide/heading-1.svg +18 -0
- package/dist/cdn/icons/lucide/heading-2.svg +18 -0
- package/dist/cdn/icons/lucide/heading-3.svg +19 -0
- package/dist/cdn/icons/lucide/heading-4.svg +19 -0
- package/dist/cdn/icons/lucide/heading-5.svg +19 -0
- package/dist/cdn/icons/lucide/heading-6.svg +19 -0
- package/dist/cdn/icons/lucide/heading.svg +17 -0
- package/dist/cdn/icons/lucide/headphone-off.svg +19 -0
- package/dist/cdn/icons/lucide/headphones.svg +15 -0
- package/dist/cdn/icons/lucide/headset.svg +16 -0
- package/dist/cdn/icons/lucide/heart-crack.svg +16 -0
- package/dist/cdn/icons/lucide/heart-handshake.svg +15 -0
- package/dist/cdn/icons/lucide/heart-minus.svg +16 -0
- package/dist/cdn/icons/lucide/heart-off.svg +17 -0
- package/dist/cdn/icons/lucide/heart-plus.svg +17 -0
- package/dist/cdn/icons/lucide/heart-pulse.svg +16 -0
- package/dist/cdn/icons/lucide/heart.svg +15 -0
- package/dist/cdn/icons/lucide/heater.svg +24 -0
- package/dist/cdn/icons/lucide/helicopter.svg +22 -0
- package/dist/cdn/icons/lucide/help-circle.svg +17 -0
- package/dist/cdn/icons/lucide/helping-hand.svg +17 -0
- package/dist/cdn/icons/lucide/hexagon.svg +15 -0
- package/dist/cdn/icons/lucide/highlighter.svg +16 -0
- package/dist/cdn/icons/lucide/history.svg +17 -0
- package/dist/cdn/icons/lucide/home.svg +16 -0
- package/dist/cdn/icons/lucide/hop-off.svg +23 -0
- package/dist/cdn/icons/lucide/hop.svg +22 -0
- package/dist/cdn/icons/lucide/hospital.svg +19 -0
- package/dist/cdn/icons/lucide/hotel.svg +24 -0
- package/dist/cdn/icons/lucide/hourglass.svg +18 -0
- package/dist/cdn/icons/lucide/house-heart.svg +16 -0
- package/dist/cdn/icons/lucide/house-plug.svg +18 -0
- package/dist/cdn/icons/lucide/house-plus.svg +18 -0
- package/dist/cdn/icons/lucide/house-wifi.svg +18 -0
- package/dist/cdn/icons/lucide/house.svg +16 -0
- package/dist/cdn/icons/lucide/ice-cream-2.svg +17 -0
- package/dist/cdn/icons/lucide/ice-cream-bowl.svg +17 -0
- package/dist/cdn/icons/lucide/ice-cream-cone.svg +17 -0
- package/dist/cdn/icons/lucide/ice-cream.svg +17 -0
- package/dist/cdn/icons/lucide/id-card-lanyard.svg +19 -0
- package/dist/cdn/icons/lucide/id-card.svg +19 -0
- package/dist/cdn/icons/lucide/image-down.svg +18 -0
- package/dist/cdn/icons/lucide/image-minus.svg +18 -0
- package/dist/cdn/icons/lucide/image-off.svg +20 -0
- package/dist/cdn/icons/lucide/image-play.svg +18 -0
- package/dist/cdn/icons/lucide/image-plus.svg +19 -0
- package/dist/cdn/icons/lucide/image-up.svg +18 -0
- package/dist/cdn/icons/lucide/image-upscale.svg +22 -0
- package/dist/cdn/icons/lucide/image.svg +17 -0
- package/dist/cdn/icons/lucide/images.svg +18 -0
- package/dist/cdn/icons/lucide/import.svg +17 -0
- package/dist/cdn/icons/lucide/inbox.svg +16 -0
- package/dist/cdn/icons/lucide/indent-decrease.svg +18 -0
- package/dist/cdn/icons/lucide/indent-increase.svg +18 -0
- package/dist/cdn/icons/lucide/indent.svg +18 -0
- package/dist/cdn/icons/lucide/index.json +1920 -0
- package/dist/cdn/icons/lucide/indian-rupee.svg +19 -0
- package/dist/cdn/icons/lucide/infinity.svg +15 -0
- package/dist/cdn/icons/lucide/info.svg +17 -0
- package/dist/cdn/icons/lucide/inspect.svg +16 -0
- package/dist/cdn/icons/lucide/inspection-panel.svg +19 -0
- package/dist/cdn/icons/lucide/instagram.svg +17 -0
- package/dist/cdn/icons/lucide/italic.svg +17 -0
- package/dist/cdn/icons/lucide/iteration-ccw.svg +16 -0
- package/dist/cdn/icons/lucide/iteration-cw.svg +16 -0
- package/dist/cdn/icons/lucide/japanese-yen.svg +17 -0
- package/dist/cdn/icons/lucide/joystick.svg +18 -0
- package/dist/cdn/icons/lucide/kanban-square-dashed.svg +29 -0
- package/dist/cdn/icons/lucide/kanban-square.svg +18 -0
- package/dist/cdn/icons/lucide/kanban.svg +17 -0
- package/dist/cdn/icons/lucide/kayak.svg +18 -0
- package/dist/cdn/icons/lucide/key-round.svg +16 -0
- package/dist/cdn/icons/lucide/key-square.svg +17 -0
- package/dist/cdn/icons/lucide/key.svg +17 -0
- package/dist/cdn/icons/lucide/keyboard-music.svg +23 -0
- package/dist/cdn/icons/lucide/keyboard-off.svg +24 -0
- package/dist/cdn/icons/lucide/keyboard.svg +23 -0
- package/dist/cdn/icons/lucide/lamp-ceiling.svg +17 -0
- package/dist/cdn/icons/lucide/lamp-desk.svg +18 -0
- package/dist/cdn/icons/lucide/lamp-floor.svg +17 -0
- package/dist/cdn/icons/lucide/lamp-wall-down.svg +17 -0
- package/dist/cdn/icons/lucide/lamp-wall-up.svg +17 -0
- package/dist/cdn/icons/lucide/lamp.svg +17 -0
- package/dist/cdn/icons/lucide/land-plot.svg +18 -0
- package/dist/cdn/icons/lucide/landmark.svg +20 -0
- package/dist/cdn/icons/lucide/languages.svg +20 -0
- package/dist/cdn/icons/lucide/laptop-2.svg +16 -0
- package/dist/cdn/icons/lucide/laptop-minimal-check.svg +17 -0
- package/dist/cdn/icons/lucide/laptop-minimal.svg +16 -0
- package/dist/cdn/icons/lucide/laptop.svg +16 -0
- package/dist/cdn/icons/lucide/lasso-select.svg +19 -0
- package/dist/cdn/icons/lucide/lasso.svg +17 -0
- package/dist/cdn/icons/lucide/laugh.svg +18 -0
- package/dist/cdn/icons/lucide/layers-2.svg +16 -0
- package/dist/cdn/icons/lucide/layers-3.svg +17 -0
- package/dist/cdn/icons/lucide/layers-plus.svg +19 -0
- package/dist/cdn/icons/lucide/layers.svg +17 -0
- package/dist/cdn/icons/lucide/layout-dashboard.svg +18 -0
- package/dist/cdn/icons/lucide/layout-grid.svg +18 -0
- package/dist/cdn/icons/lucide/layout-list.svg +20 -0
- package/dist/cdn/icons/lucide/layout-panel-left.svg +17 -0
- package/dist/cdn/icons/lucide/layout-panel-top.svg +17 -0
- package/dist/cdn/icons/lucide/layout-template.svg +17 -0
- package/dist/cdn/icons/lucide/layout.svg +17 -0
- package/dist/cdn/icons/lucide/leaf.svg +16 -0
- package/dist/cdn/icons/lucide/leafy-green.svg +16 -0
- package/dist/cdn/icons/lucide/lectern.svg +17 -0
- package/dist/cdn/icons/lucide/letter-text.svg +19 -0
- package/dist/cdn/icons/lucide/library-big.svg +17 -0
- package/dist/cdn/icons/lucide/library-square.svg +18 -0
- package/dist/cdn/icons/lucide/library.svg +18 -0
- package/dist/cdn/icons/lucide/life-buoy.svg +20 -0
- package/dist/cdn/icons/lucide/ligature.svg +19 -0
- package/dist/cdn/icons/lucide/lightbulb-off.svg +19 -0
- package/dist/cdn/icons/lucide/lightbulb.svg +17 -0
- package/dist/cdn/icons/lucide/line-chart.svg +16 -0
- package/dist/cdn/icons/lucide/line-squiggle.svg +15 -0
- package/dist/cdn/icons/lucide/link-2-off.svg +18 -0
- package/dist/cdn/icons/lucide/link-2.svg +17 -0
- package/dist/cdn/icons/lucide/link.svg +16 -0
- package/dist/cdn/icons/lucide/linkedin.svg +17 -0
- package/dist/cdn/icons/lucide/list-check.svg +18 -0
- package/dist/cdn/icons/lucide/list-checks.svg +19 -0
- package/dist/cdn/icons/lucide/list-chevrons-down-up.svg +19 -0
- package/dist/cdn/icons/lucide/list-chevrons-up-down.svg +19 -0
- package/dist/cdn/icons/lucide/list-collapse.svg +19 -0
- package/dist/cdn/icons/lucide/list-end.svg +19 -0
- package/dist/cdn/icons/lucide/list-filter-plus.svg +19 -0
- package/dist/cdn/icons/lucide/list-filter.svg +17 -0
- package/dist/cdn/icons/lucide/list-indent-decrease.svg +18 -0
- package/dist/cdn/icons/lucide/list-indent-increase.svg +18 -0
- package/dist/cdn/icons/lucide/list-minus.svg +18 -0
- package/dist/cdn/icons/lucide/list-music.svg +19 -0
- package/dist/cdn/icons/lucide/list-ordered.svg +20 -0
- package/dist/cdn/icons/lucide/list-plus.svg +19 -0
- package/dist/cdn/icons/lucide/list-restart.svg +19 -0
- package/dist/cdn/icons/lucide/list-start.svg +19 -0
- package/dist/cdn/icons/lucide/list-todo.svg +19 -0
- package/dist/cdn/icons/lucide/list-tree.svg +19 -0
- package/dist/cdn/icons/lucide/list-video.svg +18 -0
- package/dist/cdn/icons/lucide/list-x.svg +19 -0
- package/dist/cdn/icons/lucide/list.svg +20 -0
- package/dist/cdn/icons/lucide/loader-2.svg +15 -0
- package/dist/cdn/icons/lucide/loader-circle.svg +15 -0
- package/dist/cdn/icons/lucide/loader-pinwheel.svg +18 -0
- package/dist/cdn/icons/lucide/loader.svg +22 -0
- package/dist/cdn/icons/lucide/locate-fixed.svg +20 -0
- package/dist/cdn/icons/lucide/locate-off.svg +21 -0
- package/dist/cdn/icons/lucide/locate.svg +19 -0
- package/dist/cdn/icons/lucide/location-edit.svg +17 -0
- package/dist/cdn/icons/lucide/lock-keyhole-open.svg +17 -0
- package/dist/cdn/icons/lucide/lock-keyhole.svg +17 -0
- package/dist/cdn/icons/lucide/lock-open.svg +16 -0
- package/dist/cdn/icons/lucide/lock.svg +16 -0
- package/dist/cdn/icons/lucide/log-in.svg +17 -0
- package/dist/cdn/icons/lucide/log-out.svg +17 -0
- package/dist/cdn/icons/lucide/logs.svg +23 -0
- package/dist/cdn/icons/lucide/lollipop.svg +17 -0
- package/dist/cdn/icons/lucide/luggage.svg +19 -0
- package/dist/cdn/icons/lucide/m-square.svg +16 -0
- package/dist/cdn/icons/lucide/magnet.svg +17 -0
- package/dist/cdn/icons/lucide/mail-check.svg +17 -0
- package/dist/cdn/icons/lucide/mail-minus.svg +17 -0
- package/dist/cdn/icons/lucide/mail-open.svg +16 -0
- package/dist/cdn/icons/lucide/mail-plus.svg +18 -0
- package/dist/cdn/icons/lucide/mail-question-mark.svg +18 -0
- package/dist/cdn/icons/lucide/mail-question.svg +18 -0
- package/dist/cdn/icons/lucide/mail-search.svg +19 -0
- package/dist/cdn/icons/lucide/mail-warning.svg +18 -0
- package/dist/cdn/icons/lucide/mail-x.svg +18 -0
- package/dist/cdn/icons/lucide/mail.svg +16 -0
- package/dist/cdn/icons/lucide/mailbox.svg +18 -0
- package/dist/cdn/icons/lucide/mails.svg +17 -0
- package/dist/cdn/icons/lucide/map-minus.svg +18 -0
- package/dist/cdn/icons/lucide/map-pin-check-inside.svg +16 -0
- package/dist/cdn/icons/lucide/map-pin-check.svg +17 -0
- package/dist/cdn/icons/lucide/map-pin-house.svg +18 -0
- package/dist/cdn/icons/lucide/map-pin-minus-inside.svg +16 -0
- package/dist/cdn/icons/lucide/map-pin-minus.svg +17 -0
- package/dist/cdn/icons/lucide/map-pin-off.svg +19 -0
- package/dist/cdn/icons/lucide/map-pin-pen.svg +17 -0
- package/dist/cdn/icons/lucide/map-pin-plus-inside.svg +17 -0
- package/dist/cdn/icons/lucide/map-pin-plus.svg +18 -0
- package/dist/cdn/icons/lucide/map-pin-x-inside.svg +17 -0
- package/dist/cdn/icons/lucide/map-pin-x.svg +18 -0
- package/dist/cdn/icons/lucide/map-pin.svg +16 -0
- package/dist/cdn/icons/lucide/map-pinned.svg +17 -0
- package/dist/cdn/icons/lucide/map-plus.svg +19 -0
- package/dist/cdn/icons/lucide/map.svg +17 -0
- package/dist/cdn/icons/lucide/mars-stroke.svg +18 -0
- package/dist/cdn/icons/lucide/mars.svg +17 -0
- package/dist/cdn/icons/lucide/martini.svg +17 -0
- package/dist/cdn/icons/lucide/maximize-2.svg +18 -0
- package/dist/cdn/icons/lucide/maximize.svg +18 -0
- package/dist/cdn/icons/lucide/medal.svg +20 -0
- package/dist/cdn/icons/lucide/megaphone-off.svg +19 -0
- package/dist/cdn/icons/lucide/megaphone.svg +17 -0
- package/dist/cdn/icons/lucide/meh.svg +18 -0
- package/dist/cdn/icons/lucide/memory-stick.svg +25 -0
- package/dist/cdn/icons/lucide/menu-square.svg +18 -0
- package/dist/cdn/icons/lucide/menu.svg +17 -0
- package/dist/cdn/icons/lucide/merge.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle-code.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle-dashed.svg +22 -0
- package/dist/cdn/icons/lucide/message-circle-heart.svg +16 -0
- package/dist/cdn/icons/lucide/message-circle-more.svg +18 -0
- package/dist/cdn/icons/lucide/message-circle-off.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle-plus.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle-question-mark.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle-question.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle-reply.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle-warning.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle-x.svg +17 -0
- package/dist/cdn/icons/lucide/message-circle.svg +15 -0
- package/dist/cdn/icons/lucide/message-square-code.svg +17 -0
- package/dist/cdn/icons/lucide/message-square-dashed.svg +27 -0
- package/dist/cdn/icons/lucide/message-square-diff.svg +18 -0
- package/dist/cdn/icons/lucide/message-square-dot.svg +16 -0
- package/dist/cdn/icons/lucide/message-square-heart.svg +16 -0
- package/dist/cdn/icons/lucide/message-square-lock.svg +17 -0
- package/dist/cdn/icons/lucide/message-square-more.svg +18 -0
- package/dist/cdn/icons/lucide/message-square-off.svg +17 -0
- package/dist/cdn/icons/lucide/message-square-plus.svg +17 -0
- package/dist/cdn/icons/lucide/message-square-quote.svg +17 -0
- package/dist/cdn/icons/lucide/message-square-reply.svg +17 -0
- package/dist/cdn/icons/lucide/message-square-share.svg +17 -0
- package/dist/cdn/icons/lucide/message-square-text.svg +18 -0
- package/dist/cdn/icons/lucide/message-square-warning.svg +17 -0
- package/dist/cdn/icons/lucide/message-square-x.svg +17 -0
- package/dist/cdn/icons/lucide/message-square.svg +15 -0
- package/dist/cdn/icons/lucide/messages-square.svg +16 -0
- package/dist/cdn/icons/lucide/mic-2.svg +17 -0
- package/dist/cdn/icons/lucide/mic-off.svg +20 -0
- package/dist/cdn/icons/lucide/mic-vocal.svg +17 -0
- package/dist/cdn/icons/lucide/mic.svg +17 -0
- package/dist/cdn/icons/lucide/microchip.svg +24 -0
- package/dist/cdn/icons/lucide/microscope.svg +20 -0
- package/dist/cdn/icons/lucide/microwave.svg +19 -0
- package/dist/cdn/icons/lucide/milestone.svg +17 -0
- package/dist/cdn/icons/lucide/milk-off.svg +18 -0
- package/dist/cdn/icons/lucide/milk.svg +17 -0
- package/dist/cdn/icons/lucide/minimize-2.svg +18 -0
- package/dist/cdn/icons/lucide/minimize.svg +18 -0
- package/dist/cdn/icons/lucide/minus-circle.svg +16 -0
- package/dist/cdn/icons/lucide/minus-square.svg +16 -0
- package/dist/cdn/icons/lucide/minus.svg +15 -0
- package/dist/cdn/icons/lucide/monitor-check.svg +18 -0
- package/dist/cdn/icons/lucide/monitor-cloud.svg +18 -0
- package/dist/cdn/icons/lucide/monitor-cog.svg +26 -0
- package/dist/cdn/icons/lucide/monitor-dot.svg +18 -0
- package/dist/cdn/icons/lucide/monitor-down.svg +19 -0
- package/dist/cdn/icons/lucide/monitor-off.svg +19 -0
- package/dist/cdn/icons/lucide/monitor-pause.svg +19 -0
- package/dist/cdn/icons/lucide/monitor-play.svg +18 -0
- package/dist/cdn/icons/lucide/monitor-smartphone.svg +18 -0
- package/dist/cdn/icons/lucide/monitor-speaker.svg +19 -0
- package/dist/cdn/icons/lucide/monitor-stop.svg +18 -0
- package/dist/cdn/icons/lucide/monitor-up.svg +19 -0
- package/dist/cdn/icons/lucide/monitor-x.svg +19 -0
- package/dist/cdn/icons/lucide/monitor.svg +17 -0
- package/dist/cdn/icons/lucide/moon-star.svg +17 -0
- package/dist/cdn/icons/lucide/moon.svg +15 -0
- package/dist/cdn/icons/lucide/more-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/more-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/motorbike.svg +19 -0
- package/dist/cdn/icons/lucide/mountain-snow.svg +16 -0
- package/dist/cdn/icons/lucide/mountain.svg +15 -0
- package/dist/cdn/icons/lucide/mouse-off.svg +18 -0
- package/dist/cdn/icons/lucide/mouse-pointer-2-off.svg +17 -0
- package/dist/cdn/icons/lucide/mouse-pointer-2.svg +15 -0
- package/dist/cdn/icons/lucide/mouse-pointer-ban.svg +17 -0
- package/dist/cdn/icons/lucide/mouse-pointer-click.svg +19 -0
- package/dist/cdn/icons/lucide/mouse-pointer-square-dashed.svg +24 -0
- package/dist/cdn/icons/lucide/mouse-pointer.svg +16 -0
- package/dist/cdn/icons/lucide/mouse.svg +16 -0
- package/dist/cdn/icons/lucide/move-3-d.svg +18 -0
- package/dist/cdn/icons/lucide/move-3d.svg +18 -0
- package/dist/cdn/icons/lucide/move-diagonal-2.svg +17 -0
- package/dist/cdn/icons/lucide/move-diagonal.svg +17 -0
- package/dist/cdn/icons/lucide/move-down-left.svg +16 -0
- package/dist/cdn/icons/lucide/move-down-right.svg +16 -0
- package/dist/cdn/icons/lucide/move-down.svg +16 -0
- package/dist/cdn/icons/lucide/move-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/move-left.svg +16 -0
- package/dist/cdn/icons/lucide/move-right.svg +16 -0
- package/dist/cdn/icons/lucide/move-up-left.svg +16 -0
- package/dist/cdn/icons/lucide/move-up-right.svg +16 -0
- package/dist/cdn/icons/lucide/move-up.svg +16 -0
- package/dist/cdn/icons/lucide/move-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/move.svg +20 -0
- package/dist/cdn/icons/lucide/music-2.svg +16 -0
- package/dist/cdn/icons/lucide/music-3.svg +16 -0
- package/dist/cdn/icons/lucide/music-4.svg +18 -0
- package/dist/cdn/icons/lucide/music.svg +17 -0
- package/dist/cdn/icons/lucide/navigation-2-off.svg +17 -0
- package/dist/cdn/icons/lucide/navigation-2.svg +15 -0
- package/dist/cdn/icons/lucide/navigation-off.svg +17 -0
- package/dist/cdn/icons/lucide/navigation.svg +15 -0
- package/dist/cdn/icons/lucide/network.svg +19 -0
- package/dist/cdn/icons/lucide/newspaper.svg +18 -0
- package/dist/cdn/icons/lucide/nfc.svg +18 -0
- package/dist/cdn/icons/lucide/non-binary.svg +18 -0
- package/dist/cdn/icons/lucide/notebook-pen.svg +20 -0
- package/dist/cdn/icons/lucide/notebook-tabs.svg +23 -0
- package/dist/cdn/icons/lucide/notebook-text.svg +22 -0
- package/dist/cdn/icons/lucide/notebook.svg +20 -0
- package/dist/cdn/icons/lucide/notepad-text-dashed.svg +27 -0
- package/dist/cdn/icons/lucide/notepad-text.svg +21 -0
- package/dist/cdn/icons/lucide/nut-off.svg +19 -0
- package/dist/cdn/icons/lucide/nut.svg +17 -0
- package/dist/cdn/icons/lucide/octagon-alert.svg +17 -0
- package/dist/cdn/icons/lucide/octagon-minus.svg +16 -0
- package/dist/cdn/icons/lucide/octagon-pause.svg +17 -0
- package/dist/cdn/icons/lucide/octagon-x.svg +17 -0
- package/dist/cdn/icons/lucide/octagon.svg +15 -0
- package/dist/cdn/icons/lucide/omega.svg +15 -0
- package/dist/cdn/icons/lucide/option.svg +16 -0
- package/dist/cdn/icons/lucide/orbit.svg +19 -0
- package/dist/cdn/icons/lucide/origami.svg +17 -0
- package/dist/cdn/icons/lucide/outdent.svg +18 -0
- package/dist/cdn/icons/lucide/package-2.svg +17 -0
- package/dist/cdn/icons/lucide/package-check.svg +19 -0
- package/dist/cdn/icons/lucide/package-minus.svg +19 -0
- package/dist/cdn/icons/lucide/package-open.svg +18 -0
- package/dist/cdn/icons/lucide/package-plus.svg +20 -0
- package/dist/cdn/icons/lucide/package-search.svg +20 -0
- package/dist/cdn/icons/lucide/package-x.svg +19 -0
- package/dist/cdn/icons/lucide/package.svg +18 -0
- package/dist/cdn/icons/lucide/paint-bucket.svg +18 -0
- package/dist/cdn/icons/lucide/paint-roller.svg +17 -0
- package/dist/cdn/icons/lucide/paintbrush-2.svg +18 -0
- package/dist/cdn/icons/lucide/paintbrush-vertical.svg +18 -0
- package/dist/cdn/icons/lucide/paintbrush.svg +17 -0
- package/dist/cdn/icons/lucide/palette.svg +19 -0
- package/dist/cdn/icons/lucide/palmtree.svg +18 -0
- package/dist/cdn/icons/lucide/panda.svg +20 -0
- package/dist/cdn/icons/lucide/panel-bottom-close.svg +17 -0
- package/dist/cdn/icons/lucide/panel-bottom-dashed.svg +19 -0
- package/dist/cdn/icons/lucide/panel-bottom-inactive.svg +19 -0
- package/dist/cdn/icons/lucide/panel-bottom-open.svg +17 -0
- package/dist/cdn/icons/lucide/panel-bottom.svg +16 -0
- package/dist/cdn/icons/lucide/panel-left-close.svg +17 -0
- package/dist/cdn/icons/lucide/panel-left-dashed.svg +19 -0
- package/dist/cdn/icons/lucide/panel-left-inactive.svg +19 -0
- package/dist/cdn/icons/lucide/panel-left-open.svg +17 -0
- package/dist/cdn/icons/lucide/panel-left-right-dashed.svg +23 -0
- package/dist/cdn/icons/lucide/panel-left.svg +16 -0
- package/dist/cdn/icons/lucide/panel-right-close.svg +17 -0
- package/dist/cdn/icons/lucide/panel-right-dashed.svg +19 -0
- package/dist/cdn/icons/lucide/panel-right-inactive.svg +19 -0
- package/dist/cdn/icons/lucide/panel-right-open.svg +17 -0
- package/dist/cdn/icons/lucide/panel-right.svg +16 -0
- package/dist/cdn/icons/lucide/panel-top-bottom-dashed.svg +23 -0
- package/dist/cdn/icons/lucide/panel-top-close.svg +17 -0
- package/dist/cdn/icons/lucide/panel-top-dashed.svg +19 -0
- package/dist/cdn/icons/lucide/panel-top-inactive.svg +19 -0
- package/dist/cdn/icons/lucide/panel-top-open.svg +17 -0
- package/dist/cdn/icons/lucide/panel-top.svg +16 -0
- package/dist/cdn/icons/lucide/panels-left-bottom.svg +17 -0
- package/dist/cdn/icons/lucide/panels-left-right.svg +17 -0
- package/dist/cdn/icons/lucide/panels-right-bottom.svg +17 -0
- package/dist/cdn/icons/lucide/panels-top-bottom.svg +17 -0
- package/dist/cdn/icons/lucide/panels-top-left.svg +17 -0
- package/dist/cdn/icons/lucide/paperclip.svg +15 -0
- package/dist/cdn/icons/lucide/parentheses.svg +16 -0
- package/dist/cdn/icons/lucide/parking-circle-off.svg +20 -0
- package/dist/cdn/icons/lucide/parking-circle.svg +16 -0
- package/dist/cdn/icons/lucide/parking-meter.svg +19 -0
- package/dist/cdn/icons/lucide/parking-square-off.svg +19 -0
- package/dist/cdn/icons/lucide/parking-square.svg +16 -0
- package/dist/cdn/icons/lucide/party-popper.svg +23 -0
- package/dist/cdn/icons/lucide/pause-circle.svg +17 -0
- package/dist/cdn/icons/lucide/pause-octagon.svg +17 -0
- package/dist/cdn/icons/lucide/pause.svg +16 -0
- package/dist/cdn/icons/lucide/paw-print.svg +18 -0
- package/dist/cdn/icons/lucide/pc-case.svg +18 -0
- package/dist/cdn/icons/lucide/pen-box.svg +16 -0
- package/dist/cdn/icons/lucide/pen-line.svg +16 -0
- package/dist/cdn/icons/lucide/pen-off.svg +17 -0
- package/dist/cdn/icons/lucide/pen-square.svg +16 -0
- package/dist/cdn/icons/lucide/pen-tool.svg +18 -0
- package/dist/cdn/icons/lucide/pen.svg +15 -0
- package/dist/cdn/icons/lucide/pencil-line.svg +17 -0
- package/dist/cdn/icons/lucide/pencil-off.svg +18 -0
- package/dist/cdn/icons/lucide/pencil-ruler.svg +20 -0
- package/dist/cdn/icons/lucide/pencil.svg +16 -0
- package/dist/cdn/icons/lucide/pentagon.svg +15 -0
- package/dist/cdn/icons/lucide/percent-circle.svg +18 -0
- package/dist/cdn/icons/lucide/percent-diamond.svg +18 -0
- package/dist/cdn/icons/lucide/percent-square.svg +18 -0
- package/dist/cdn/icons/lucide/percent.svg +17 -0
- package/dist/cdn/icons/lucide/person-standing.svg +18 -0
- package/dist/cdn/icons/lucide/philippine-peso.svg +17 -0
- package/dist/cdn/icons/lucide/phone-call.svg +17 -0
- package/dist/cdn/icons/lucide/phone-forwarded.svg +17 -0
- package/dist/cdn/icons/lucide/phone-incoming.svg +17 -0
- package/dist/cdn/icons/lucide/phone-missed.svg +17 -0
- package/dist/cdn/icons/lucide/phone-off.svg +17 -0
- package/dist/cdn/icons/lucide/phone-outgoing.svg +17 -0
- package/dist/cdn/icons/lucide/phone.svg +15 -0
- package/dist/cdn/icons/lucide/pi-square.svg +18 -0
- package/dist/cdn/icons/lucide/pi.svg +17 -0
- package/dist/cdn/icons/lucide/piano.svg +20 -0
- package/dist/cdn/icons/lucide/pickaxe.svg +18 -0
- package/dist/cdn/icons/lucide/picture-in-picture-2.svg +16 -0
- package/dist/cdn/icons/lucide/picture-in-picture.svg +19 -0
- package/dist/cdn/icons/lucide/pie-chart.svg +16 -0
- package/dist/cdn/icons/lucide/piggy-bank.svg +17 -0
- package/dist/cdn/icons/lucide/pilcrow-left.svg +19 -0
- package/dist/cdn/icons/lucide/pilcrow-right.svg +19 -0
- package/dist/cdn/icons/lucide/pilcrow-square.svg +18 -0
- package/dist/cdn/icons/lucide/pilcrow.svg +17 -0
- package/dist/cdn/icons/lucide/pill-bottle.svg +17 -0
- package/dist/cdn/icons/lucide/pill.svg +16 -0
- package/dist/cdn/icons/lucide/pin-off.svg +18 -0
- package/dist/cdn/icons/lucide/pin.svg +16 -0
- package/dist/cdn/icons/lucide/pipette.svg +17 -0
- package/dist/cdn/icons/lucide/pizza.svg +19 -0
- package/dist/cdn/icons/lucide/plane-landing.svg +16 -0
- package/dist/cdn/icons/lucide/plane-takeoff.svg +16 -0
- package/dist/cdn/icons/lucide/plane.svg +15 -0
- package/dist/cdn/icons/lucide/play-circle.svg +16 -0
- package/dist/cdn/icons/lucide/play-square.svg +16 -0
- package/dist/cdn/icons/lucide/play.svg +15 -0
- package/dist/cdn/icons/lucide/plug-2.svg +19 -0
- package/dist/cdn/icons/lucide/plug-zap-2.svg +19 -0
- package/dist/cdn/icons/lucide/plug-zap.svg +19 -0
- package/dist/cdn/icons/lucide/plug.svg +18 -0
- package/dist/cdn/icons/lucide/plus-circle.svg +17 -0
- package/dist/cdn/icons/lucide/plus-square.svg +17 -0
- package/dist/cdn/icons/lucide/plus.svg +16 -0
- package/dist/cdn/icons/lucide/pocket-knife.svg +19 -0
- package/dist/cdn/icons/lucide/pocket.svg +16 -0
- package/dist/cdn/icons/lucide/podcast.svg +18 -0
- package/dist/cdn/icons/lucide/pointer-off.svg +20 -0
- package/dist/cdn/icons/lucide/pointer.svg +19 -0
- package/dist/cdn/icons/lucide/popcorn.svg +18 -0
- package/dist/cdn/icons/lucide/popsicle.svg +16 -0
- package/dist/cdn/icons/lucide/pound-sterling.svg +18 -0
- package/dist/cdn/icons/lucide/power-circle.svg +17 -0
- package/dist/cdn/icons/lucide/power-off.svg +18 -0
- package/dist/cdn/icons/lucide/power-square.svg +17 -0
- package/dist/cdn/icons/lucide/power.svg +16 -0
- package/dist/cdn/icons/lucide/presentation.svg +17 -0
- package/dist/cdn/icons/lucide/printer-check.svg +18 -0
- package/dist/cdn/icons/lucide/printer.svg +17 -0
- package/dist/cdn/icons/lucide/projector.svg +20 -0
- package/dist/cdn/icons/lucide/proportions.svg +17 -0
- package/dist/cdn/icons/lucide/puzzle.svg +15 -0
- package/dist/cdn/icons/lucide/pyramid.svg +16 -0
- package/dist/cdn/icons/lucide/qr-code.svg +26 -0
- package/dist/cdn/icons/lucide/quote.svg +16 -0
- package/dist/cdn/icons/lucide/rabbit.svg +19 -0
- package/dist/cdn/icons/lucide/radar.svg +22 -0
- package/dist/cdn/icons/lucide/radiation.svg +18 -0
- package/dist/cdn/icons/lucide/radical.svg +15 -0
- package/dist/cdn/icons/lucide/radio-receiver.svg +18 -0
- package/dist/cdn/icons/lucide/radio-tower.svg +21 -0
- package/dist/cdn/icons/lucide/radio.svg +19 -0
- package/dist/cdn/icons/lucide/radius.svg +18 -0
- package/dist/cdn/icons/lucide/rail-symbol.svg +17 -0
- package/dist/cdn/icons/lucide/rainbow.svg +17 -0
- package/dist/cdn/icons/lucide/rat.svg +19 -0
- package/dist/cdn/icons/lucide/ratio.svg +16 -0
- package/dist/cdn/icons/lucide/receipt-cent.svg +17 -0
- package/dist/cdn/icons/lucide/receipt-euro.svg +17 -0
- package/dist/cdn/icons/lucide/receipt-indian-rupee.svg +18 -0
- package/dist/cdn/icons/lucide/receipt-japanese-yen.svg +19 -0
- package/dist/cdn/icons/lucide/receipt-pound-sterling.svg +18 -0
- package/dist/cdn/icons/lucide/receipt-russian-ruble.svg +17 -0
- package/dist/cdn/icons/lucide/receipt-swiss-franc.svg +18 -0
- package/dist/cdn/icons/lucide/receipt-text.svg +18 -0
- package/dist/cdn/icons/lucide/receipt-turkish-lira.svg +17 -0
- package/dist/cdn/icons/lucide/receipt.svg +17 -0
- package/dist/cdn/icons/lucide/rectangle-circle.svg +16 -0
- package/dist/cdn/icons/lucide/rectangle-ellipsis.svg +18 -0
- package/dist/cdn/icons/lucide/rectangle-goggles.svg +15 -0
- package/dist/cdn/icons/lucide/rectangle-horizontal.svg +15 -0
- package/dist/cdn/icons/lucide/rectangle-vertical.svg +15 -0
- package/dist/cdn/icons/lucide/recycle.svg +20 -0
- package/dist/cdn/icons/lucide/redo-2.svg +16 -0
- package/dist/cdn/icons/lucide/redo-dot.svg +17 -0
- package/dist/cdn/icons/lucide/redo.svg +16 -0
- package/dist/cdn/icons/lucide/refresh-ccw-dot.svg +19 -0
- package/dist/cdn/icons/lucide/refresh-ccw.svg +18 -0
- package/dist/cdn/icons/lucide/refresh-cw-off.svg +21 -0
- package/dist/cdn/icons/lucide/refresh-cw.svg +18 -0
- package/dist/cdn/icons/lucide/refrigerator.svg +17 -0
- package/dist/cdn/icons/lucide/regex.svg +18 -0
- package/dist/cdn/icons/lucide/remove-formatting.svg +19 -0
- package/dist/cdn/icons/lucide/repeat-1.svg +19 -0
- package/dist/cdn/icons/lucide/repeat-2.svg +18 -0
- package/dist/cdn/icons/lucide/repeat.svg +18 -0
- package/dist/cdn/icons/lucide/replace-all.svg +23 -0
- package/dist/cdn/icons/lucide/replace.svg +21 -0
- package/dist/cdn/icons/lucide/reply-all.svg +17 -0
- package/dist/cdn/icons/lucide/reply.svg +16 -0
- package/dist/cdn/icons/lucide/rewind.svg +16 -0
- package/dist/cdn/icons/lucide/ribbon.svg +19 -0
- package/dist/cdn/icons/lucide/rocket.svg +18 -0
- package/dist/cdn/icons/lucide/rocking-chair.svg +18 -0
- package/dist/cdn/icons/lucide/roller-coaster.svg +21 -0
- package/dist/cdn/icons/lucide/rose.svg +19 -0
- package/dist/cdn/icons/lucide/rotate-3-d.svg +17 -0
- package/dist/cdn/icons/lucide/rotate-3d.svg +17 -0
- package/dist/cdn/icons/lucide/rotate-ccw-key.svg +19 -0
- package/dist/cdn/icons/lucide/rotate-ccw-square.svg +17 -0
- package/dist/cdn/icons/lucide/rotate-ccw.svg +16 -0
- package/dist/cdn/icons/lucide/rotate-cw-square.svg +17 -0
- package/dist/cdn/icons/lucide/rotate-cw.svg +16 -0
- package/dist/cdn/icons/lucide/route-off.svg +21 -0
- package/dist/cdn/icons/lucide/route.svg +17 -0
- package/dist/cdn/icons/lucide/router.svg +20 -0
- package/dist/cdn/icons/lucide/rows-2.svg +16 -0
- package/dist/cdn/icons/lucide/rows-3.svg +17 -0
- package/dist/cdn/icons/lucide/rows-4.svg +18 -0
- package/dist/cdn/icons/lucide/rows.svg +16 -0
- package/dist/cdn/icons/lucide/rss.svg +17 -0
- package/dist/cdn/icons/lucide/ruler-dimension-line.svg +22 -0
- package/dist/cdn/icons/lucide/ruler.svg +19 -0
- package/dist/cdn/icons/lucide/russian-ruble.svg +16 -0
- package/dist/cdn/icons/lucide/sailboat.svg +17 -0
- package/dist/cdn/icons/lucide/salad.svg +19 -0
- package/dist/cdn/icons/lucide/sandwich.svg +19 -0
- package/dist/cdn/icons/lucide/satellite-dish.svg +18 -0
- package/dist/cdn/icons/lucide/satellite.svg +19 -0
- package/dist/cdn/icons/lucide/saudi-riyal.svg +18 -0
- package/dist/cdn/icons/lucide/save-all.svg +18 -0
- package/dist/cdn/icons/lucide/save-off.svg +21 -0
- package/dist/cdn/icons/lucide/save.svg +17 -0
- package/dist/cdn/icons/lucide/scale-3-d.svg +18 -0
- package/dist/cdn/icons/lucide/scale-3d.svg +18 -0
- package/dist/cdn/icons/lucide/scale.svg +19 -0
- package/dist/cdn/icons/lucide/scaling.svg +18 -0
- package/dist/cdn/icons/lucide/scan-barcode.svg +21 -0
- package/dist/cdn/icons/lucide/scan-eye.svg +20 -0
- package/dist/cdn/icons/lucide/scan-face.svg +21 -0
- package/dist/cdn/icons/lucide/scan-heart.svg +19 -0
- package/dist/cdn/icons/lucide/scan-line.svg +19 -0
- package/dist/cdn/icons/lucide/scan-qr-code.svg +22 -0
- package/dist/cdn/icons/lucide/scan-search.svg +20 -0
- package/dist/cdn/icons/lucide/scan-text.svg +21 -0
- package/dist/cdn/icons/lucide/scan.svg +18 -0
- package/dist/cdn/icons/lucide/scatter-chart.svg +20 -0
- package/dist/cdn/icons/lucide/school-2.svg +21 -0
- package/dist/cdn/icons/lucide/school.svg +20 -0
- package/dist/cdn/icons/lucide/scissors-line-dashed.svg +21 -0
- package/dist/cdn/icons/lucide/scissors-square-dashed-bottom.svg +28 -0
- package/dist/cdn/icons/lucide/scissors-square.svg +20 -0
- package/dist/cdn/icons/lucide/scissors.svg +19 -0
- package/dist/cdn/icons/lucide/scooter.svg +18 -0
- package/dist/cdn/icons/lucide/screen-share-off.svg +19 -0
- package/dist/cdn/icons/lucide/screen-share.svg +19 -0
- package/dist/cdn/icons/lucide/scroll-text.svg +18 -0
- package/dist/cdn/icons/lucide/scroll.svg +16 -0
- package/dist/cdn/icons/lucide/search-alert.svg +18 -0
- package/dist/cdn/icons/lucide/search-check.svg +17 -0
- package/dist/cdn/icons/lucide/search-code.svg +18 -0
- package/dist/cdn/icons/lucide/search-slash.svg +17 -0
- package/dist/cdn/icons/lucide/search-x.svg +18 -0
- package/dist/cdn/icons/lucide/search.svg +16 -0
- package/dist/cdn/icons/lucide/section.svg +16 -0
- package/dist/cdn/icons/lucide/send-horizonal.svg +16 -0
- package/dist/cdn/icons/lucide/send-horizontal.svg +16 -0
- package/dist/cdn/icons/lucide/send-to-back.svg +18 -0
- package/dist/cdn/icons/lucide/send.svg +16 -0
- package/dist/cdn/icons/lucide/separator-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/separator-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/server-cog.svg +26 -0
- package/dist/cdn/icons/lucide/server-crash.svg +19 -0
- package/dist/cdn/icons/lucide/server-off.svg +20 -0
- package/dist/cdn/icons/lucide/server.svg +18 -0
- package/dist/cdn/icons/lucide/settings-2.svg +18 -0
- package/dist/cdn/icons/lucide/settings.svg +16 -0
- package/dist/cdn/icons/lucide/shapes.svg +17 -0
- package/dist/cdn/icons/lucide/share-2.svg +19 -0
- package/dist/cdn/icons/lucide/share.svg +17 -0
- package/dist/cdn/icons/lucide/sheet.svg +19 -0
- package/dist/cdn/icons/lucide/shell.svg +15 -0
- package/dist/cdn/icons/lucide/shield-alert.svg +17 -0
- package/dist/cdn/icons/lucide/shield-ban.svg +16 -0
- package/dist/cdn/icons/lucide/shield-check.svg +16 -0
- package/dist/cdn/icons/lucide/shield-close.svg +17 -0
- package/dist/cdn/icons/lucide/shield-ellipsis.svg +18 -0
- package/dist/cdn/icons/lucide/shield-half.svg +16 -0
- package/dist/cdn/icons/lucide/shield-minus.svg +16 -0
- package/dist/cdn/icons/lucide/shield-off.svg +17 -0
- package/dist/cdn/icons/lucide/shield-plus.svg +17 -0
- package/dist/cdn/icons/lucide/shield-question-mark.svg +17 -0
- package/dist/cdn/icons/lucide/shield-question.svg +17 -0
- package/dist/cdn/icons/lucide/shield-user.svg +17 -0
- package/dist/cdn/icons/lucide/shield-x.svg +17 -0
- package/dist/cdn/icons/lucide/shield.svg +15 -0
- package/dist/cdn/icons/lucide/ship-wheel.svg +24 -0
- package/dist/cdn/icons/lucide/ship.svg +19 -0
- package/dist/cdn/icons/lucide/shirt.svg +15 -0
- package/dist/cdn/icons/lucide/shopping-bag.svg +17 -0
- package/dist/cdn/icons/lucide/shopping-basket.svg +21 -0
- package/dist/cdn/icons/lucide/shopping-cart.svg +17 -0
- package/dist/cdn/icons/lucide/shovel.svg +17 -0
- package/dist/cdn/icons/lucide/shower-head.svg +24 -0
- package/dist/cdn/icons/lucide/shredder.svg +21 -0
- package/dist/cdn/icons/lucide/shrimp.svg +19 -0
- package/dist/cdn/icons/lucide/shrink.svg +18 -0
- package/dist/cdn/icons/lucide/shrub.svg +17 -0
- package/dist/cdn/icons/lucide/shuffle.svg +19 -0
- package/dist/cdn/icons/lucide/sidebar-close.svg +17 -0
- package/dist/cdn/icons/lucide/sidebar-open.svg +17 -0
- package/dist/cdn/icons/lucide/sidebar.svg +16 -0
- package/dist/cdn/icons/lucide/sigma-square.svg +16 -0
- package/dist/cdn/icons/lucide/sigma.svg +15 -0
- package/dist/cdn/icons/lucide/signal-high.svg +18 -0
- package/dist/cdn/icons/lucide/signal-low.svg +16 -0
- package/dist/cdn/icons/lucide/signal-medium.svg +17 -0
- package/dist/cdn/icons/lucide/signal-zero.svg +15 -0
- package/dist/cdn/icons/lucide/signal.svg +19 -0
- package/dist/cdn/icons/lucide/signature.svg +16 -0
- package/dist/cdn/icons/lucide/signpost-big.svg +18 -0
- package/dist/cdn/icons/lucide/signpost.svg +17 -0
- package/dist/cdn/icons/lucide/siren.svg +22 -0
- package/dist/cdn/icons/lucide/skip-back.svg +16 -0
- package/dist/cdn/icons/lucide/skip-forward.svg +16 -0
- package/dist/cdn/icons/lucide/skull.svg +18 -0
- package/dist/cdn/icons/lucide/slack.svg +22 -0
- package/dist/cdn/icons/lucide/slash-square.svg +16 -0
- package/dist/cdn/icons/lucide/slash.svg +15 -0
- package/dist/cdn/icons/lucide/slice.svg +15 -0
- package/dist/cdn/icons/lucide/sliders-horizontal.svg +23 -0
- package/dist/cdn/icons/lucide/sliders-vertical.svg +23 -0
- package/dist/cdn/icons/lucide/sliders.svg +23 -0
- package/dist/cdn/icons/lucide/smartphone-charging.svg +16 -0
- package/dist/cdn/icons/lucide/smartphone-nfc.svg +18 -0
- package/dist/cdn/icons/lucide/smartphone.svg +16 -0
- package/dist/cdn/icons/lucide/smile-plus.svg +20 -0
- package/dist/cdn/icons/lucide/smile.svg +18 -0
- package/dist/cdn/icons/lucide/snail.svg +19 -0
- package/dist/cdn/icons/lucide/snowflake.svg +26 -0
- package/dist/cdn/icons/lucide/soap-dispenser-droplet.svg +18 -0
- package/dist/cdn/icons/lucide/sofa.svg +19 -0
- package/dist/cdn/icons/lucide/solar-panel.svg +21 -0
- package/dist/cdn/icons/lucide/sort-asc.svg +19 -0
- package/dist/cdn/icons/lucide/sort-desc.svg +19 -0
- package/dist/cdn/icons/lucide/soup.svg +20 -0
- package/dist/cdn/icons/lucide/space.svg +15 -0
- package/dist/cdn/icons/lucide/spade.svg +16 -0
- package/dist/cdn/icons/lucide/sparkle.svg +15 -0
- package/dist/cdn/icons/lucide/sparkles.svg +18 -0
- package/dist/cdn/icons/lucide/speaker.svg +18 -0
- package/dist/cdn/icons/lucide/speech.svg +17 -0
- package/dist/cdn/icons/lucide/spell-check-2.svg +17 -0
- package/dist/cdn/icons/lucide/spell-check.svg +17 -0
- package/dist/cdn/icons/lucide/spline-pointer.svg +18 -0
- package/dist/cdn/icons/lucide/spline.svg +17 -0
- package/dist/cdn/icons/lucide/split-square-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/split-square-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/split.svg +18 -0
- package/dist/cdn/icons/lucide/spool.svg +16 -0
- package/dist/cdn/icons/lucide/spotlight.svg +19 -0
- package/dist/cdn/icons/lucide/spray-can.svg +24 -0
- package/dist/cdn/icons/lucide/sprout.svg +17 -0
- package/dist/cdn/icons/lucide/square-activity.svg +16 -0
- package/dist/cdn/icons/lucide/square-arrow-down-left.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-down-right.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-down.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-left.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-out-down-left.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-out-down-right.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-out-up-left.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-out-up-right.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-right.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-up-left.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-up-right.svg +17 -0
- package/dist/cdn/icons/lucide/square-arrow-up.svg +17 -0
- package/dist/cdn/icons/lucide/square-asterisk.svg +18 -0
- package/dist/cdn/icons/lucide/square-bottom-dashed-scissors.svg +28 -0
- package/dist/cdn/icons/lucide/square-chart-gantt.svg +18 -0
- package/dist/cdn/icons/lucide/square-check-big.svg +16 -0
- package/dist/cdn/icons/lucide/square-check.svg +16 -0
- package/dist/cdn/icons/lucide/square-chevron-down.svg +16 -0
- package/dist/cdn/icons/lucide/square-chevron-left.svg +16 -0
- package/dist/cdn/icons/lucide/square-chevron-right.svg +16 -0
- package/dist/cdn/icons/lucide/square-chevron-up.svg +16 -0
- package/dist/cdn/icons/lucide/square-code.svg +17 -0
- package/dist/cdn/icons/lucide/square-dashed-bottom-code.svg +19 -0
- package/dist/cdn/icons/lucide/square-dashed-bottom.svg +17 -0
- package/dist/cdn/icons/lucide/square-dashed-kanban.svg +29 -0
- package/dist/cdn/icons/lucide/square-dashed-mouse-pointer.svg +24 -0
- package/dist/cdn/icons/lucide/square-dashed-top-solid.svg +23 -0
- package/dist/cdn/icons/lucide/square-dashed.svg +26 -0
- package/dist/cdn/icons/lucide/square-divide.svg +18 -0
- package/dist/cdn/icons/lucide/square-dot.svg +16 -0
- package/dist/cdn/icons/lucide/square-equal.svg +17 -0
- package/dist/cdn/icons/lucide/square-function.svg +17 -0
- package/dist/cdn/icons/lucide/square-gantt-chart.svg +18 -0
- package/dist/cdn/icons/lucide/square-kanban.svg +18 -0
- package/dist/cdn/icons/lucide/square-library.svg +18 -0
- package/dist/cdn/icons/lucide/square-m.svg +16 -0
- package/dist/cdn/icons/lucide/square-menu.svg +18 -0
- package/dist/cdn/icons/lucide/square-minus.svg +16 -0
- package/dist/cdn/icons/lucide/square-mouse-pointer.svg +16 -0
- package/dist/cdn/icons/lucide/square-parking-off.svg +19 -0
- package/dist/cdn/icons/lucide/square-parking.svg +16 -0
- package/dist/cdn/icons/lucide/square-pause.svg +17 -0
- package/dist/cdn/icons/lucide/square-pen.svg +16 -0
- package/dist/cdn/icons/lucide/square-percent.svg +18 -0
- package/dist/cdn/icons/lucide/square-pi.svg +18 -0
- package/dist/cdn/icons/lucide/square-pilcrow.svg +18 -0
- package/dist/cdn/icons/lucide/square-play.svg +16 -0
- package/dist/cdn/icons/lucide/square-plus.svg +17 -0
- package/dist/cdn/icons/lucide/square-power.svg +17 -0
- package/dist/cdn/icons/lucide/square-radical.svg +16 -0
- package/dist/cdn/icons/lucide/square-round-corner.svg +16 -0
- package/dist/cdn/icons/lucide/square-scissors.svg +20 -0
- package/dist/cdn/icons/lucide/square-sigma.svg +16 -0
- package/dist/cdn/icons/lucide/square-slash.svg +16 -0
- package/dist/cdn/icons/lucide/square-split-horizontal.svg +17 -0
- package/dist/cdn/icons/lucide/square-split-vertical.svg +17 -0
- package/dist/cdn/icons/lucide/square-square.svg +16 -0
- package/dist/cdn/icons/lucide/square-stack.svg +17 -0
- package/dist/cdn/icons/lucide/square-star.svg +16 -0
- package/dist/cdn/icons/lucide/square-stop.svg +16 -0
- package/dist/cdn/icons/lucide/square-terminal.svg +17 -0
- package/dist/cdn/icons/lucide/square-user-round.svg +17 -0
- package/dist/cdn/icons/lucide/square-user.svg +17 -0
- package/dist/cdn/icons/lucide/square-x.svg +17 -0
- package/dist/cdn/icons/lucide/square.svg +15 -0
- package/dist/cdn/icons/lucide/squares-exclude.svg +16 -0
- package/dist/cdn/icons/lucide/squares-intersect.svg +25 -0
- package/dist/cdn/icons/lucide/squares-subtract.svg +20 -0
- package/dist/cdn/icons/lucide/squares-unite.svg +15 -0
- package/dist/cdn/icons/lucide/squircle-dashed.svg +22 -0
- package/dist/cdn/icons/lucide/squircle.svg +15 -0
- package/dist/cdn/icons/lucide/squirrel.svg +18 -0
- package/dist/cdn/icons/lucide/stamp.svg +17 -0
- package/dist/cdn/icons/lucide/star-half.svg +15 -0
- package/dist/cdn/icons/lucide/star-off.svg +17 -0
- package/dist/cdn/icons/lucide/star.svg +15 -0
- package/dist/cdn/icons/lucide/stars.svg +18 -0
- package/dist/cdn/icons/lucide/step-back.svg +16 -0
- package/dist/cdn/icons/lucide/step-forward.svg +16 -0
- package/dist/cdn/icons/lucide/stethoscope.svg +19 -0
- package/dist/cdn/icons/lucide/sticker.svg +19 -0
- package/dist/cdn/icons/lucide/sticky-note.svg +16 -0
- package/dist/cdn/icons/lucide/stone.svg +17 -0
- package/dist/cdn/icons/lucide/stop-circle.svg +16 -0
- package/dist/cdn/icons/lucide/store.svg +17 -0
- package/dist/cdn/icons/lucide/stretch-horizontal.svg +16 -0
- package/dist/cdn/icons/lucide/stretch-vertical.svg +16 -0
- package/dist/cdn/icons/lucide/strikethrough.svg +17 -0
- package/dist/cdn/icons/lucide/subscript.svg +17 -0
- package/dist/cdn/icons/lucide/subtitles.svg +16 -0
- package/dist/cdn/icons/lucide/sun-dim.svg +23 -0
- package/dist/cdn/icons/lucide/sun-medium.svg +23 -0
- package/dist/cdn/icons/lucide/sun-moon.svg +19 -0
- package/dist/cdn/icons/lucide/sun-snow.svg +25 -0
- package/dist/cdn/icons/lucide/sun.svg +23 -0
- package/dist/cdn/icons/lucide/sunrise.svg +22 -0
- package/dist/cdn/icons/lucide/sunset.svg +22 -0
- package/dist/cdn/icons/lucide/superscript.svg +17 -0
- package/dist/cdn/icons/lucide/swatch-book.svg +18 -0
- package/dist/cdn/icons/lucide/swiss-franc.svg +17 -0
- package/dist/cdn/icons/lucide/switch-camera.svg +19 -0
- package/dist/cdn/icons/lucide/sword.svg +18 -0
- package/dist/cdn/icons/lucide/swords.svg +22 -0
- package/dist/cdn/icons/lucide/syringe.svg +20 -0
- package/dist/cdn/icons/lucide/table-2.svg +15 -0
- package/dist/cdn/icons/lucide/table-cells-merge.svg +19 -0
- package/dist/cdn/icons/lucide/table-cells-split.svg +18 -0
- package/dist/cdn/icons/lucide/table-columns-split.svg +25 -0
- package/dist/cdn/icons/lucide/table-config.svg +26 -0
- package/dist/cdn/icons/lucide/table-of-contents.svg +20 -0
- package/dist/cdn/icons/lucide/table-properties.svg +18 -0
- package/dist/cdn/icons/lucide/table-rows-split.svg +25 -0
- package/dist/cdn/icons/lucide/table.svg +18 -0
- package/dist/cdn/icons/lucide/tablet-smartphone.svg +17 -0
- package/dist/cdn/icons/lucide/tablet.svg +16 -0
- package/dist/cdn/icons/lucide/tablets.svg +18 -0
- package/dist/cdn/icons/lucide/tag.svg +16 -0
- package/dist/cdn/icons/lucide/tags.svg +17 -0
- package/dist/cdn/icons/lucide/tally-1.svg +15 -0
- package/dist/cdn/icons/lucide/tally-2.svg +16 -0
- package/dist/cdn/icons/lucide/tally-3.svg +17 -0
- package/dist/cdn/icons/lucide/tally-4.svg +18 -0
- package/dist/cdn/icons/lucide/tally-5.svg +19 -0
- package/dist/cdn/icons/lucide/tangent.svg +18 -0
- package/dist/cdn/icons/lucide/target.svg +17 -0
- package/dist/cdn/icons/lucide/telescope.svg +21 -0
- package/dist/cdn/icons/lucide/tent-tree.svg +21 -0
- package/dist/cdn/icons/lucide/tent.svg +18 -0
- package/dist/cdn/icons/lucide/terminal-square.svg +17 -0
- package/dist/cdn/icons/lucide/terminal.svg +16 -0
- package/dist/cdn/icons/lucide/test-tube-2.svg +17 -0
- package/dist/cdn/icons/lucide/test-tube-diagonal.svg +17 -0
- package/dist/cdn/icons/lucide/test-tube.svg +17 -0
- package/dist/cdn/icons/lucide/test-tubes.svg +20 -0
- package/dist/cdn/icons/lucide/text-align-center.svg +17 -0
- package/dist/cdn/icons/lucide/text-align-end.svg +17 -0
- package/dist/cdn/icons/lucide/text-align-justify.svg +17 -0
- package/dist/cdn/icons/lucide/text-align-start.svg +17 -0
- package/dist/cdn/icons/lucide/text-cursor-input.svg +19 -0
- package/dist/cdn/icons/lucide/text-cursor.svg +17 -0
- package/dist/cdn/icons/lucide/text-initial.svg +19 -0
- package/dist/cdn/icons/lucide/text-quote.svg +18 -0
- package/dist/cdn/icons/lucide/text-search.svg +19 -0
- package/dist/cdn/icons/lucide/text-select.svg +29 -0
- package/dist/cdn/icons/lucide/text-selection.svg +29 -0
- package/dist/cdn/icons/lucide/text-wrap.svg +18 -0
- package/dist/cdn/icons/lucide/text.svg +17 -0
- package/dist/cdn/icons/lucide/theater.svg +23 -0
- package/dist/cdn/icons/lucide/thermometer-snowflake.svg +22 -0
- package/dist/cdn/icons/lucide/thermometer-sun.svg +20 -0
- package/dist/cdn/icons/lucide/thermometer.svg +15 -0
- package/dist/cdn/icons/lucide/thumbs-down.svg +16 -0
- package/dist/cdn/icons/lucide/thumbs-up.svg +16 -0
- package/dist/cdn/icons/lucide/ticket-check.svg +16 -0
- package/dist/cdn/icons/lucide/ticket-minus.svg +16 -0
- package/dist/cdn/icons/lucide/ticket-percent.svg +18 -0
- package/dist/cdn/icons/lucide/ticket-plus.svg +17 -0
- package/dist/cdn/icons/lucide/ticket-slash.svg +16 -0
- package/dist/cdn/icons/lucide/ticket-x.svg +17 -0
- package/dist/cdn/icons/lucide/ticket.svg +18 -0
- package/dist/cdn/icons/lucide/tickets-plane.svg +21 -0
- package/dist/cdn/icons/lucide/tickets.svg +19 -0
- package/dist/cdn/icons/lucide/timer-off.svg +19 -0
- package/dist/cdn/icons/lucide/timer-reset.svg +18 -0
- package/dist/cdn/icons/lucide/timer.svg +17 -0
- package/dist/cdn/icons/lucide/toggle-left.svg +16 -0
- package/dist/cdn/icons/lucide/toggle-right.svg +16 -0
- package/dist/cdn/icons/lucide/toilet.svg +16 -0
- package/dist/cdn/icons/lucide/tool-case.svg +18 -0
- package/dist/cdn/icons/lucide/toolbox.svg +19 -0
- package/dist/cdn/icons/lucide/tornado.svg +19 -0
- package/dist/cdn/icons/lucide/torus.svg +16 -0
- package/dist/cdn/icons/lucide/touchpad-off.svg +20 -0
- package/dist/cdn/icons/lucide/touchpad.svg +17 -0
- package/dist/cdn/icons/lucide/tower-control.svg +21 -0
- package/dist/cdn/icons/lucide/toy-brick.svg +17 -0
- package/dist/cdn/icons/lucide/tractor.svg +23 -0
- package/dist/cdn/icons/lucide/traffic-cone.svg +18 -0
- package/dist/cdn/icons/lucide/train-front-tunnel.svg +21 -0
- package/dist/cdn/icons/lucide/train-front.svg +20 -0
- package/dist/cdn/icons/lucide/train-track.svg +21 -0
- package/dist/cdn/icons/lucide/train.svg +21 -0
- package/dist/cdn/icons/lucide/tram-front.svg +21 -0
- package/dist/cdn/icons/lucide/transgender.svg +22 -0
- package/dist/cdn/icons/lucide/trash-2.svg +19 -0
- package/dist/cdn/icons/lucide/trash.svg +17 -0
- package/dist/cdn/icons/lucide/tree-deciduous.svg +16 -0
- package/dist/cdn/icons/lucide/tree-palm.svg +18 -0
- package/dist/cdn/icons/lucide/tree-pine.svg +16 -0
- package/dist/cdn/icons/lucide/trees.svg +18 -0
- package/dist/cdn/icons/lucide/trello.svg +17 -0
- package/dist/cdn/icons/lucide/trending-down.svg +16 -0
- package/dist/cdn/icons/lucide/trending-up-down.svg +18 -0
- package/dist/cdn/icons/lucide/trending-up.svg +16 -0
- package/dist/cdn/icons/lucide/triangle-alert.svg +17 -0
- package/dist/cdn/icons/lucide/triangle-dashed.svg +23 -0
- package/dist/cdn/icons/lucide/triangle-right.svg +15 -0
- package/dist/cdn/icons/lucide/triangle.svg +15 -0
- package/dist/cdn/icons/lucide/trophy.svg +20 -0
- package/dist/cdn/icons/lucide/truck-electric.svg +21 -0
- package/dist/cdn/icons/lucide/truck.svg +19 -0
- package/dist/cdn/icons/lucide/turkish-lira.svg +17 -0
- package/dist/cdn/icons/lucide/turntable.svg +18 -0
- package/dist/cdn/icons/lucide/turtle.svg +18 -0
- package/dist/cdn/icons/lucide/tv-2.svg +16 -0
- package/dist/cdn/icons/lucide/tv-minimal-play.svg +17 -0
- package/dist/cdn/icons/lucide/tv-minimal.svg +16 -0
- package/dist/cdn/icons/lucide/tv.svg +16 -0
- package/dist/cdn/icons/lucide/twitch.svg +15 -0
- package/dist/cdn/icons/lucide/twitter.svg +15 -0
- package/dist/cdn/icons/lucide/type-outline.svg +15 -0
- package/dist/cdn/icons/lucide/type.svg +17 -0
- package/dist/cdn/icons/lucide/umbrella-off.svg +19 -0
- package/dist/cdn/icons/lucide/umbrella.svg +17 -0
- package/dist/cdn/icons/lucide/underline.svg +16 -0
- package/dist/cdn/icons/lucide/undo-2.svg +16 -0
- package/dist/cdn/icons/lucide/undo-dot.svg +17 -0
- package/dist/cdn/icons/lucide/undo.svg +16 -0
- package/dist/cdn/icons/lucide/unfold-horizontal.svg +22 -0
- package/dist/cdn/icons/lucide/unfold-vertical.svg +22 -0
- package/dist/cdn/icons/lucide/ungroup.svg +16 -0
- package/dist/cdn/icons/lucide/university.svg +21 -0
- package/dist/cdn/icons/lucide/unlink-2.svg +15 -0
- package/dist/cdn/icons/lucide/unlink.svg +20 -0
- package/dist/cdn/icons/lucide/unlock-keyhole.svg +17 -0
- package/dist/cdn/icons/lucide/unlock.svg +16 -0
- package/dist/cdn/icons/lucide/unplug.svg +20 -0
- package/dist/cdn/icons/lucide/upload-cloud.svg +17 -0
- package/dist/cdn/icons/lucide/upload.svg +17 -0
- package/dist/cdn/icons/lucide/usb.svg +21 -0
- package/dist/cdn/icons/lucide/user-2.svg +16 -0
- package/dist/cdn/icons/lucide/user-check-2.svg +17 -0
- package/dist/cdn/icons/lucide/user-check.svg +17 -0
- package/dist/cdn/icons/lucide/user-circle-2.svg +17 -0
- package/dist/cdn/icons/lucide/user-circle.svg +17 -0
- package/dist/cdn/icons/lucide/user-cog-2.svg +25 -0
- package/dist/cdn/icons/lucide/user-cog.svg +25 -0
- package/dist/cdn/icons/lucide/user-lock.svg +18 -0
- package/dist/cdn/icons/lucide/user-minus-2.svg +17 -0
- package/dist/cdn/icons/lucide/user-minus.svg +17 -0
- package/dist/cdn/icons/lucide/user-pen.svg +17 -0
- package/dist/cdn/icons/lucide/user-plus-2.svg +18 -0
- package/dist/cdn/icons/lucide/user-plus.svg +18 -0
- package/dist/cdn/icons/lucide/user-round-check.svg +17 -0
- package/dist/cdn/icons/lucide/user-round-cog.svg +25 -0
- package/dist/cdn/icons/lucide/user-round-minus.svg +17 -0
- package/dist/cdn/icons/lucide/user-round-pen.svg +17 -0
- package/dist/cdn/icons/lucide/user-round-plus.svg +18 -0
- package/dist/cdn/icons/lucide/user-round-search.svg +18 -0
- package/dist/cdn/icons/lucide/user-round-x.svg +18 -0
- package/dist/cdn/icons/lucide/user-round.svg +16 -0
- package/dist/cdn/icons/lucide/user-search.svg +18 -0
- package/dist/cdn/icons/lucide/user-square-2.svg +17 -0
- package/dist/cdn/icons/lucide/user-square.svg +17 -0
- package/dist/cdn/icons/lucide/user-star.svg +17 -0
- package/dist/cdn/icons/lucide/user-x-2.svg +18 -0
- package/dist/cdn/icons/lucide/user-x.svg +18 -0
- package/dist/cdn/icons/lucide/user.svg +16 -0
- package/dist/cdn/icons/lucide/users-2.svg +17 -0
- package/dist/cdn/icons/lucide/users-round.svg +17 -0
- package/dist/cdn/icons/lucide/users.svg +18 -0
- package/dist/cdn/icons/lucide/utensils-crossed.svg +18 -0
- package/dist/cdn/icons/lucide/utensils.svg +17 -0
- package/dist/cdn/icons/lucide/utility-pole.svg +21 -0
- package/dist/cdn/icons/lucide/van.svg +19 -0
- package/dist/cdn/icons/lucide/variable.svg +18 -0
- package/dist/cdn/icons/lucide/vault.svg +24 -0
- package/dist/cdn/icons/lucide/vector-square.svg +22 -0
- package/dist/cdn/icons/lucide/vegan.svg +17 -0
- package/dist/cdn/icons/lucide/venetian-mask.svg +17 -0
- package/dist/cdn/icons/lucide/venus-and-mars.svg +19 -0
- package/dist/cdn/icons/lucide/venus.svg +17 -0
- package/dist/cdn/icons/lucide/verified.svg +16 -0
- package/dist/cdn/icons/lucide/vibrate-off.svg +19 -0
- package/dist/cdn/icons/lucide/vibrate.svg +17 -0
- package/dist/cdn/icons/lucide/video-off.svg +17 -0
- package/dist/cdn/icons/lucide/video.svg +16 -0
- package/dist/cdn/icons/lucide/videotape.svg +19 -0
- package/dist/cdn/icons/lucide/view.svg +18 -0
- package/dist/cdn/icons/lucide/voicemail.svg +17 -0
- package/dist/cdn/icons/lucide/volleyball.svg +20 -0
- package/dist/cdn/icons/lucide/volume-1.svg +16 -0
- package/dist/cdn/icons/lucide/volume-2.svg +17 -0
- package/dist/cdn/icons/lucide/volume-off.svg +19 -0
- package/dist/cdn/icons/lucide/volume-x.svg +17 -0
- package/dist/cdn/icons/lucide/volume.svg +15 -0
- package/dist/cdn/icons/lucide/vote.svg +17 -0
- package/dist/cdn/icons/lucide/wallet-2.svg +16 -0
- package/dist/cdn/icons/lucide/wallet-cards.svg +17 -0
- package/dist/cdn/icons/lucide/wallet-minimal.svg +16 -0
- package/dist/cdn/icons/lucide/wallet.svg +16 -0
- package/dist/cdn/icons/lucide/wallpaper.svg +19 -0
- package/dist/cdn/icons/lucide/wand-2.svg +22 -0
- package/dist/cdn/icons/lucide/wand-sparkles.svg +22 -0
- package/dist/cdn/icons/lucide/wand.svg +23 -0
- package/dist/cdn/icons/lucide/warehouse.svg +18 -0
- package/dist/cdn/icons/lucide/washing-machine.svg +19 -0
- package/dist/cdn/icons/lucide/watch.svg +18 -0
- package/dist/cdn/icons/lucide/waves-arrow-down.svg +18 -0
- package/dist/cdn/icons/lucide/waves-arrow-up.svg +18 -0
- package/dist/cdn/icons/lucide/waves-ladder.svg +19 -0
- package/dist/cdn/icons/lucide/waves.svg +17 -0
- package/dist/cdn/icons/lucide/waypoints.svg +21 -0
- package/dist/cdn/icons/lucide/webcam.svg +18 -0
- package/dist/cdn/icons/lucide/webhook-off.svg +21 -0
- package/dist/cdn/icons/lucide/webhook.svg +17 -0
- package/dist/cdn/icons/lucide/weight-tilde.svg +17 -0
- package/dist/cdn/icons/lucide/weight.svg +16 -0
- package/dist/cdn/icons/lucide/wheat-off.svg +24 -0
- package/dist/cdn/icons/lucide/wheat.svg +22 -0
- package/dist/cdn/icons/lucide/whole-word.svg +19 -0
- package/dist/cdn/icons/lucide/wifi-cog.svg +26 -0
- package/dist/cdn/icons/lucide/wifi-high.svg +17 -0
- package/dist/cdn/icons/lucide/wifi-low.svg +16 -0
- package/dist/cdn/icons/lucide/wifi-off.svg +21 -0
- package/dist/cdn/icons/lucide/wifi-pen.svg +18 -0
- package/dist/cdn/icons/lucide/wifi-sync.svg +21 -0
- package/dist/cdn/icons/lucide/wifi-zero.svg +15 -0
- package/dist/cdn/icons/lucide/wifi.svg +18 -0
- package/dist/cdn/icons/lucide/wind-arrow-down.svg +18 -0
- package/dist/cdn/icons/lucide/wind.svg +17 -0
- package/dist/cdn/icons/lucide/wine-off.svg +19 -0
- package/dist/cdn/icons/lucide/wine.svg +18 -0
- package/dist/cdn/icons/lucide/workflow.svg +17 -0
- package/dist/cdn/icons/lucide/worm.svg +17 -0
- package/dist/cdn/icons/lucide/wrap-text.svg +18 -0
- package/dist/cdn/icons/lucide/wrench.svg +15 -0
- package/dist/cdn/icons/lucide/x-circle.svg +17 -0
- package/dist/cdn/icons/lucide/x-octagon.svg +17 -0
- package/dist/cdn/icons/lucide/x-square.svg +17 -0
- package/dist/cdn/icons/lucide/x.svg +16 -0
- package/dist/cdn/icons/lucide/youtube.svg +16 -0
- package/dist/cdn/icons/lucide/zap-off.svg +18 -0
- package/dist/cdn/icons/lucide/zap.svg +15 -0
- package/dist/cdn/icons/lucide/zoom-in.svg +18 -0
- package/dist/cdn/icons/lucide/zoom-out.svg +17 -0
- package/dist/cdn/icons/mage/bell.svg +4 -0
- package/dist/cdn/icons/mage/bookmark.svg +3 -0
- package/dist/cdn/icons/mage/calendar.svg +6 -0
- package/dist/cdn/icons/mage/camera.svg +4 -0
- package/dist/cdn/icons/mage/globe.svg +5 -0
- package/dist/cdn/icons/mage/heart.svg +3 -0
- package/dist/cdn/icons/mage/home.svg +3 -0
- package/dist/cdn/icons/mage/index.json +22 -0
- package/dist/cdn/icons/mage/lock.svg +5 -0
- package/dist/cdn/icons/mage/mail.svg +4 -0
- package/dist/cdn/icons/mage/music.svg +5 -0
- package/dist/cdn/icons/mage/search.svg +4 -0
- package/dist/cdn/icons/mage/settings.svg +4 -0
- package/dist/cdn/icons/mage/star.svg +3 -0
- package/dist/cdn/icons/mage/user.svg +4 -0
- package/dist/cdn/icons/mage/zap.svg +3 -0
- package/dist/cdn/icons/phosphor/bell.svg +1 -0
- package/dist/cdn/icons/phosphor/bookmark.svg +1 -0
- package/dist/cdn/icons/phosphor/calendar.svg +1 -0
- package/dist/cdn/icons/phosphor/camera.svg +1 -0
- package/dist/cdn/icons/phosphor/globe.svg +1 -0
- package/dist/cdn/icons/phosphor/heart.svg +1 -0
- package/dist/cdn/icons/phosphor/home.svg +1 -0
- package/dist/cdn/icons/phosphor/index.json +22 -0
- package/dist/cdn/icons/phosphor/lock.svg +1 -0
- package/dist/cdn/icons/phosphor/mail.svg +1 -0
- package/dist/cdn/icons/phosphor/music.svg +1 -0
- package/dist/cdn/icons/phosphor/search.svg +1 -0
- package/dist/cdn/icons/phosphor/settings.svg +1 -0
- package/dist/cdn/icons/phosphor/star.svg +1 -0
- package/dist/cdn/icons/phosphor/user.svg +1 -0
- package/dist/cdn/icons/phosphor/zap.svg +1 -0
- package/dist/cdn/icons/tabler/bell.svg +20 -0
- package/dist/cdn/icons/tabler/bookmark.svg +19 -0
- package/dist/cdn/icons/tabler/calendar.svg +24 -0
- package/dist/cdn/icons/tabler/camera.svg +20 -0
- package/dist/cdn/icons/tabler/globe.svg +23 -0
- package/dist/cdn/icons/tabler/heart.svg +19 -0
- package/dist/cdn/icons/tabler/home.svg +21 -0
- package/dist/cdn/icons/tabler/index.json +22 -0
- package/dist/cdn/icons/tabler/lock.svg +21 -0
- package/dist/cdn/icons/tabler/mail.svg +20 -0
- package/dist/cdn/icons/tabler/music.svg +22 -0
- package/dist/cdn/icons/tabler/search.svg +20 -0
- package/dist/cdn/icons/tabler/settings.svg +20 -0
- package/dist/cdn/icons/tabler/star.svg +19 -0
- package/dist/cdn/icons/tabler/user.svg +20 -0
- package/dist/cdn/icons/tabler/zap.svg +19 -0
- package/dist/cdn/packs/design-system.full.css +2 -0
- package/dist/cdn/packs/design-system.full.js +90 -0
- package/dist/cdn/packs/effects.full.css +2 -0
- package/dist/cdn/packs/effects.full.js +2 -0
- package/dist/cdn/packs/effects.pack.js +2 -0
- package/dist/cdn/packs/fonts-display/fonts/bodoni-moda-variable-italic.woff2 +0 -0
- package/dist/cdn/packs/fonts-display/fonts/bodoni-moda-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-display/fonts/cormorant-variable-italic.woff2 +0 -0
- package/dist/cdn/packs/fonts-display/fonts/cormorant-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-display/fonts/fraunces-variable-italic.woff2 +0 -0
- package/dist/cdn/packs/fonts-display/fonts/fraunces-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-display.bundle.js +2 -0
- package/dist/cdn/packs/fonts-display.full.css +2 -0
- package/dist/cdn/packs/fonts-display.theme.css +2 -0
- package/dist/cdn/packs/fonts-expressive/fonts/honk-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-expressive/fonts/kablammo-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-expressive/fonts/nabla-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-expressive.bundle.js +2 -0
- package/dist/cdn/packs/fonts-expressive.full.css +2 -0
- package/dist/cdn/packs/fonts-expressive.theme.css +2 -0
- package/dist/cdn/packs/fonts-foundation/fonts/inter-variable-italic.woff2 +0 -0
- package/dist/cdn/packs/fonts-foundation/fonts/inter-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-foundation/fonts/literata-variable-italic.woff2 +0 -0
- package/dist/cdn/packs/fonts-foundation/fonts/literata-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-foundation/fonts/recursive-variable.woff2 +0 -0
- package/dist/cdn/packs/fonts-foundation.bundle.js +2 -0
- package/dist/cdn/packs/fonts-foundation.full.css +2 -0
- package/dist/cdn/packs/fonts-foundation.theme.css +2 -0
- package/dist/cdn/packs/icons.bundle.js +2 -0
- package/dist/cdn/packs/icons.effects.css +2 -0
- package/dist/cdn/packs/icons.effects.js +2 -0
- package/dist/cdn/packs/icons.full.css +5 -0
- package/dist/cdn/packs/icons.full.js +2 -0
- package/dist/cdn/packs/icons.theme.css +2 -0
- package/dist/cdn/packs/kawaii/fonts/CherryBombOne-Regular.woff2 +0 -0
- package/dist/cdn/packs/kawaii/fonts/Coiny-Regular.woff2 +0 -0
- package/dist/cdn/packs/kawaii.bundle.js +2 -0
- package/dist/cdn/packs/kawaii.effects.css +2 -0
- package/dist/cdn/packs/kawaii.effects.js +1 -0
- package/dist/cdn/packs/kawaii.full.css +5 -0
- package/dist/cdn/packs/kawaii.full.js +24 -0
- package/dist/cdn/packs/kawaii.theme.css +2 -0
- package/dist/cdn/packs/manifest.json +214 -0
- package/dist/cdn/packs/memphis/fonts/boogaloo-400.woff2 +0 -0
- package/dist/cdn/packs/memphis/fonts/outfit-400.woff2 +0 -0
- package/dist/cdn/packs/memphis/fonts/outfit-700.woff2 +0 -0
- package/dist/cdn/packs/memphis/fonts/outfit-900.woff2 +0 -0
- package/dist/cdn/packs/memphis/fonts/space-mono-400.woff2 +0 -0
- package/dist/cdn/packs/memphis/fonts/space-mono-700.woff2 +0 -0
- package/dist/cdn/packs/memphis.bundle.js +2 -0
- package/dist/cdn/packs/memphis.effects.css +2 -0
- package/dist/cdn/packs/memphis.effects.js +1 -0
- package/dist/cdn/packs/memphis.full.css +5 -0
- package/dist/cdn/packs/memphis.full.js +1 -0
- package/dist/cdn/packs/memphis.theme.css +2 -0
- package/dist/cdn/packs/prototype.full.css +2 -0
- package/dist/cdn/packs/prototype.full.js +2 -0
- package/dist/cdn/packs/prototype.pack.js +2 -0
- package/dist/cdn/packs/retro.bundle.js +2 -0
- package/dist/cdn/packs/retro.components.js +1 -0
- package/dist/cdn/packs/retro.effects.css +2 -0
- package/dist/cdn/packs/retro.effects.js +16 -0
- package/dist/cdn/packs/retro.full.css +5 -0
- package/dist/cdn/packs/retro.full.js +16 -0
- package/dist/cdn/packs/retro.theme.css +2 -0
- package/dist/cdn/packs/ui.full.css +2 -0
- package/dist/cdn/packs/ui.full.js +219 -0
- package/dist/cdn/packs/ui.pack.js +2 -0
- package/dist/cdn/packs/ux-planning.full.css +2 -0
- package/dist/cdn/packs/ux-planning.full.js +1631 -0
- package/dist/cdn/themes/8bit.css +2 -0
- package/dist/cdn/themes/alpha1999.css +2 -0
- package/dist/cdn/themes/amber.css +2 -0
- package/dist/cdn/themes/art-deco.css +2 -0
- package/dist/cdn/themes/bauhaus.css +2 -0
- package/dist/cdn/themes/brutalist.css +2 -0
- package/dist/cdn/themes/catppuccin-frappe.css +2 -0
- package/dist/cdn/themes/catppuccin-latte.css +2 -0
- package/dist/cdn/themes/catppuccin-macchiato.css +2 -0
- package/dist/cdn/themes/catppuccin-mocha.css +2 -0
- package/dist/cdn/themes/classic.css +2 -0
- package/dist/cdn/themes/claymorphism.css +2 -0
- package/dist/cdn/themes/clinical.css +2 -0
- package/dist/cdn/themes/coral.css +2 -0
- package/dist/cdn/themes/cottagecore.css +2 -0
- package/dist/cdn/themes/cyber.css +2 -0
- package/dist/cdn/themes/dawn.css +2 -0
- package/dist/cdn/themes/dracula.css +2 -0
- package/dist/cdn/themes/dusk.css +2 -0
- package/dist/cdn/themes/editorial.css +2 -0
- package/dist/cdn/themes/emerald.css +2 -0
- package/dist/cdn/themes/financial.css +2 -0
- package/dist/cdn/themes/forest.css +2 -0
- package/dist/cdn/themes/genai.css +2 -0
- package/dist/cdn/themes/glassmorphism.css +2 -0
- package/dist/cdn/themes/government.css +2 -0
- package/dist/cdn/themes/gruvbox.css +2 -0
- package/dist/cdn/themes/high-noon.css +2 -0
- package/dist/cdn/themes/indigo.css +2 -0
- package/dist/cdn/themes/kawaii.css +2 -0
- package/dist/cdn/themes/lavender.css +2 -0
- package/dist/cdn/themes/magna.css +2 -0
- package/dist/cdn/themes/manifest.json +217 -0
- package/dist/cdn/themes/midnight.css +2 -0
- package/dist/cdn/themes/minimal.css +2 -0
- package/dist/cdn/themes/modern.css +2 -0
- package/dist/cdn/themes/nes.css +2 -0
- package/dist/cdn/themes/neumorphism.css +2 -0
- package/dist/cdn/themes/nord.css +2 -0
- package/dist/cdn/themes/ocean.css +2 -0
- package/dist/cdn/themes/organic.css +2 -0
- package/dist/cdn/themes/rose-pine.css +2 -0
- package/dist/cdn/themes/rose.css +2 -0
- package/dist/cdn/themes/rough.css +2 -0
- package/dist/cdn/themes/slate.css +2 -0
- package/dist/cdn/themes/solarized.css +2 -0
- package/dist/cdn/themes/startup.css +2 -0
- package/dist/cdn/themes/sunset.css +2 -0
- package/dist/cdn/themes/super2026.css +2 -0
- package/dist/cdn/themes/swiss.css +2 -0
- package/dist/cdn/themes/terminal.css +2 -0
- package/dist/cdn/themes/tokyo-night.css +2 -0
- package/dist/cdn/themes/vaporwave.css +2 -0
- package/dist/cdn/themes/win9x.css +2 -0
- package/dist/cdn/vanilla-breeze-charts.css +2 -0
- package/dist/cdn/vanilla-breeze-charts.js +395 -0
- package/dist/cdn/vanilla-breeze-core.css +2 -0
- package/dist/cdn/vanilla-breeze-core.js +326 -0
- package/dist/cdn/vanilla-breeze-dev.css +2 -0
- package/dist/cdn/vanilla-breeze-dev.js +2 -0
- package/dist/cdn/vanilla-breeze-extras.js +1265 -0
- package/dist/cdn/vanilla-breeze-labs.css +2 -0
- package/dist/cdn/vanilla-breeze-labs.js +2 -0
- package/dist/cdn/vanilla-breeze.css +2 -0
- package/dist/cdn/vanilla-breeze.js +1852 -0
- package/package.json +145 -0
|
@@ -0,0 +1,1852 @@
|
|
|
1
|
+
var Dl=Object.defineProperty;var $=(s,t)=>()=>(s&&(t=s(s=0)),t);var j=(s,t)=>{for(var e in t)Dl(s,e,{get:t[e],enumerable:!0})};var xs={};j(xs,{SoundManager:()=>Gl});var qr,ks,Gl,Ss=$(()=>{qr="vb-sound",ks={enabled:!1,volume:.5},Gl={_ctx:null,_enabled:!1,_volume:.5,_initialized:!1,init(){if(this._initialized)return this;let s=this._load();return this._enabled=s.enabled,this._volume=s.volume,this._initialized=!0,this},_getContext(){return this._ctx||(this._ctx=new(window.AudioContext||window.webkitAudioContext)),this._ctx.state==="suspended"&&this._ctx.resume(),this._ctx},_load(){try{let s=localStorage.getItem(qr);return s?{...ks,...JSON.parse(s)}:{...ks}}catch{return{...ks}}},_save(s){try{let t=this._load();localStorage.setItem(qr,JSON.stringify({...t,...s}))}catch{}},_playTone(s,t,e="sine"){if(!this._enabled)return;let i=this._getContext(),n=i.createOscillator(),r=i.createGain();n.connect(r),r.connect(i.destination),n.frequency.value=s,n.type=e,r.gain.value=this._volume*.3,n.start(),r.gain.exponentialRampToValueAtTime(.01,i.currentTime+t),n.stop(i.currentTime+t)},enable(){this._enabled=!0,this._save({enabled:!0}),this.play("click")},disable(){this._enabled=!1,this._save({enabled:!1})},toggle(){return this._enabled?this.disable():this.enable(),this._enabled},isEnabled(){return this._enabled},setVolume(s){this._volume=Math.max(0,Math.min(1,s)),this._save({volume:this._volume})},getVolume(){return this._volume},play(s){if(this._enabled)switch(s){case"click":this._playTone(800,.1);break;case"success":this._playTone(523,.1),setTimeout(()=>this._playTone(659,.1),100),setTimeout(()=>this._playTone(784,.15),200);break;case"error":this._playTone(200,.15,"sawtooth"),setTimeout(()=>this._playTone(180,.2,"sawtooth"),150);break;case"notification":this._playTone(880,.1),setTimeout(()=>this._playTone(1100,.15),100);break;case"soft":this._playTone(600,.05);break;case"tick":this._playTone(1200,.02,"square");break}},getState(){return{enabled:this._enabled,volume:this._volume}}}});function at(s){let t=At?Rt.mac:Rt.other;return s.split("+").map(e=>{let i=e.trim().toLowerCase();return t[i]??i.toUpperCase()}).join(At?"":"+")}function Ir(s){let t=s.toLowerCase().split("+").map(i=>i.trim());return{key:t.pop()??"",meta:t.includes("meta")||t.includes("cmd"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt")}}function Br(s,t){if(s.key.toLowerCase()!==t.key)return!1;let e,i;return At?(e=t.meta,i=t.ctrl):(e=!1,i=t.meta||t.ctrl),!(e!==s.metaKey||i!==s.ctrlKey||t.shift!==s.shiftKey||t.alt!==s.altKey)}var At,Rt,Et=$(()=>{At=/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),Rt={mac:{meta:"\u2318",cmd:"\u2318",alt:"\u2325",shift:"\u21E7",ctrl:"\u2303"},other:{meta:"Ctrl",cmd:"Ctrl",alt:"Alt",shift:"Shift",ctrl:"Ctrl"}}});function Kl(s){let t=Yl.has(s.target.tagName)||s.target.isContentEditable;for(let e of kt)if(!(t&&!e.global)&&Br(s,e.descriptor)){s.preventDefault(),e.callback(s);return}}function Xl(){Rr||(document.addEventListener("keydown",Kl),Rr=!0)}function W(s,t,e={}){Xl();let i=Ir(s),n={combo:s,descriptor:i,callback:t,global:e.global===!0};return kt.find(o=>o.combo===s)&&console.warn(`[hotkey-bind] Shortcut "${s}" already bound. Last-connected-wins.`),kt.unshift(n),function(){let a=kt.indexOf(n);a!==-1&&kt.splice(a,1)}}function Or(){return kt.map(s=>s.combo)}var Yl,kt,Rr,lt=$(()=>{Et();Yl=new Set(["INPUT","TEXTAREA","SELECT"]),kt=[],Rr=!1});function et(s){if(!s||typeof s!="string")return"";let t=document.createElement("template");return t.innerHTML=s,t.content.querySelectorAll("script, iframe, object, embed, form, base, link, meta, noscript").forEach(n=>n.remove()),t.content.querySelectorAll("*").forEach(n=>{for(let r of[...n.attributes]){if(r.name.startsWith("on")){n.removeAttribute(r.name);continue}if(["href","src","action","formaction","xlink:href"].includes(r.name)){let o=r.value.trim().toLowerCase();(o.startsWith("javascript:")||o.startsWith("data:text/html"))&&n.removeAttribute(r.name);continue}(r.name==="srcdoc"||r.name==="data"&&n.tagName==="OBJECT")&&n.removeAttribute(r.name)}}),t.innerHTML}var Ot=$(()=>{});var pe={};j(pe,{addDialogDismiss:()=>Wr,addLongPress:()=>Ur,addPullToRefresh:()=>ic,addSwipeListener:()=>Hr,haptic:()=>de,initGestures:()=>Gr,makeSwipeable:()=>Vr});function Hr(s,t={}){let e=t.threshold??50,i=t.restraint??100,n=t.timeout??300,r,o,a;function l(h){h.isPrimary&&(r=h.clientX,o=h.clientY,a=Date.now())}function c(h){if(!h.isPrimary)return;let u=h.clientX-r,d=h.clientY-o,p=Date.now()-a;if(p>n)return;let m=Math.abs(u),f=Math.abs(d),v;if(m>=e&&f<=i?v=u<0?"left":"right":f>=e&&m<=i&&(v=d<0?"up":"down"),v){let y=v==="left"||v==="right"?m:f;s.dispatchEvent(new CustomEvent(`swipe-${v}`,{bubbles:!0,detail:{distance:y,duration:p}}))}}return s.addEventListener("pointerdown",l,{passive:!0}),s.addEventListener("pointerup",c,{passive:!0}),()=>{s.removeEventListener("pointerdown",l),s.removeEventListener("pointerup",c)}}function Vr(s,t={}){let e=t.threshold??100,i=t.direction??"horizontal",n=t.removeOnDismiss??!0,r=i==="horizontal",o=0,a=0,l=!1;function c(f){!f.isPrimary||s.hasAttribute("data-dismissed")||(f.preventDefault(),l=!0,o=r?f.clientX:f.clientY,a=0,s.setPointerCapture(f.pointerId),s.setAttribute("data-swiping",""))}function h(f){if(!l||!f.isPrimary)return;a=(r?f.clientX:f.clientY)-o;let y=1-Math.min(Math.abs(a)/e,1)*.5;r?s.style.transform=`translateX(${a}px)`:s.style.transform=`translateY(${a}px)`,s.style.opacity=String(y)}function u(f){!l||!f.isPrimary||(l=!1,s.releasePointerCapture(f.pointerId),s.removeAttribute("data-swiping"),Math.abs(a)>=e?p(a>0?"right":"left"):m())}function d(f){!l||!f.isPrimary||(l=!1,s.releasePointerCapture(f.pointerId),s.removeAttribute("data-swiping"),m())}function p(f){let v=f==="right"?"100%":"-100%";s.style.transition="transform 0.2s ease-out, opacity 0.2s ease-out",s.style.transform=r?`translateX(${v})`:`translateY(${v})`,s.style.opacity="0",s.setAttribute("data-dismissed",""),de.dismiss(),s.dispatchEvent(new CustomEvent("swipe-dismiss",{bubbles:!0,detail:{direction:f,distance:Math.abs(a)}})),n&&s.addEventListener("transitionend",()=>s.remove(),{once:!0})}function m(){s.style.transition="transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease",s.style.transform="",s.style.opacity="",s.addEventListener("transitionend",()=>{s.style.transition=""},{once:!0})}return s.addEventListener("pointerdown",c),s.addEventListener("pointermove",h),s.addEventListener("pointerup",u),s.addEventListener("pointercancel",d),()=>{s.removeEventListener("pointerdown",c),s.removeEventListener("pointermove",h),s.removeEventListener("pointerup",u),s.removeEventListener("pointercancel",d)}}function ic(s,t,e={}){let i=e.threshold??70,n=e.maxPull??120,r=document.createElement("div");r.setAttribute("data-pull-indicator",""),r.setAttribute("aria-hidden","true");let o=document.createElement("div");o.setAttribute("data-pull-spinner",""),r.appendChild(o),s.prepend(r);let a=0,l=!1,c=!1;function h(v){!v.isPrimary||c||s.scrollTop<=0&&(a=v.clientY,l=!0)}function u(v){if(!l||!v.isPrimary||c)return;let y=v.clientY-a;if(y<=0){r.style.transform="",r.style.opacity="";return}let w=Math.min(y,n),S=w/i;r.style.transform=`translateY(${w}px)`,r.style.opacity=String(Math.min(S,1)),S>=1?r.setAttribute("data-pull-ready",""):r.removeAttribute("data-pull-ready")}function d(v){!l||!v.isPrimary||(l=!1,r.hasAttribute("data-pull-ready")&&!c?m():f())}function p(v){!l||!v.isPrimary||(l=!1,f())}async function m(){c=!0,r.removeAttribute("data-pull-ready"),r.setAttribute("data-pull-loading",""),r.style.transform=`translateY(${i}px)`,r.style.opacity="1";try{await t()}finally{c=!1,r.removeAttribute("data-pull-loading"),f()}}function f(){r.style.transition="transform 0.3s ease, opacity 0.3s ease",r.style.transform="",r.style.opacity="",r.removeAttribute("data-pull-ready"),r.addEventListener("transitionend",()=>{r.style.transition=""},{once:!0})}return s.addEventListener("pointerdown",h,{passive:!0}),s.addEventListener("pointermove",u,{passive:!0}),s.addEventListener("pointerup",d,{passive:!0}),s.addEventListener("pointercancel",p,{passive:!0}),()=>{s.removeEventListener("pointerdown",h),s.removeEventListener("pointermove",u),s.removeEventListener("pointerup",d),s.removeEventListener("pointercancel",p),r.remove()}}function Ur(s,t,e={}){let i=e.duration??500,n=e.hapticFeedback??!0,r=e.blockContextMenu??!0,o=null;function a(h){h.isPrimary&&(o=setTimeout(()=>{n&&de.tap(),t(h),o=null},i))}function l(){o&&(clearTimeout(o),o=null)}function c(h){r&&h.preventDefault()}return s.addEventListener("pointerdown",a,{passive:!0}),s.addEventListener("pointermove",l,{passive:!0}),s.addEventListener("pointerup",l,{passive:!0}),s.addEventListener("pointercancel",l,{passive:!0}),s.addEventListener("contextmenu",c),()=>{l(),s.removeEventListener("pointerdown",a),s.removeEventListener("pointermove",l),s.removeEventListener("pointerup",l),s.removeEventListener("pointercancel",l),s.removeEventListener("contextmenu",c)}}function Wr(s,t={}){let e=t.threshold??80,i=0,n=0,r=!1;function o(d){if(!d.isPrimary||!s.open)return;let p=d.target;p.closest("a, button, input, select, textarea, [contenteditable]")&&!p.closest("header")||(r=!0,i=d.clientY,n=0,s.setPointerCapture(d.pointerId),s.style.transition="none")}function a(d){if(!r||!d.isPrimary)return;if(n=d.clientY-i,n<=0){s.style.transform="",s.style.opacity="";return}let m=1-Math.min(n/e,1)*.4;s.style.transform=`translateY(${n}px)`,s.style.opacity=String(m)}function l(d){!r||!d.isPrimary||(r=!1,s.releasePointerCapture(d.pointerId),n>=e?h():u())}function c(d){!r||!d.isPrimary||(r=!1,s.releasePointerCapture(d.pointerId),u())}function h(){s.style.transition="transform 0.2s ease-out, opacity 0.2s ease-out",s.style.transform="translateY(100%)",s.style.opacity="0",de.dismiss(),s.addEventListener("transitionend",()=>{s.style.transition="",s.style.transform="",s.style.opacity="",s.close("dismiss")},{once:!0})}function u(){s.style.transition="transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease",s.style.transform="",s.style.opacity="",s.addEventListener("transitionend",()=>{s.style.transition=""},{once:!0})}return s.addEventListener("pointerdown",o),s.addEventListener("pointermove",a),s.addEventListener("pointerup",l),s.addEventListener("pointercancel",c),()=>{s.removeEventListener("pointerdown",o),s.removeEventListener("pointermove",a),s.removeEventListener("pointerup",l),s.removeEventListener("pointercancel",c)}}function Gr(s=document){let t=[];for(let e of s.querySelectorAll('[data-gesture="swipe"]'))t.push(Hr(e));for(let e of s.querySelectorAll('[data-gesture="dismiss"]'))t.push(Vr(e));for(let e of s.querySelectorAll('[data-gesture="long-press"]'))t.push(Ur(e,()=>{e.dispatchEvent(new CustomEvent("long-press",{bubbles:!0}))}));for(let e of s.querySelectorAll('dialog[data-gesture="dismiss-down"]'))t.push(Wr(e));return()=>t.forEach(e=>e())}var de,me=$(()=>{de={tap:()=>navigator.vibrate?.(8),confirm:()=>navigator.vibrate?.([8,40,8]),error:()=>navigator.vibrate?.([30,60,30]),dismiss:()=>navigator.vibrate?.(15)};Gr()});function $c(s){for(let[t,e]of Ae)s.querySelectorAll(t).forEach(e)}function Nc(s){if(s.nodeType!==Node.ELEMENT_NODE)return;let t=s;for(let[e,i]of Ae)t.matches(e)&&i(t),t.querySelectorAll(e).forEach(i)}function qc(){di||(di=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes)Nc(e)}),di.observe(document.documentElement,{childList:!0,subtree:!0}))}function Dc(){Ee||(Ee=!0,$c(document))}function L(s,t){Ae.set(s,t),qc(),Ee||document.readyState!=="loading"?(Ee=!0,document.querySelectorAll(s).forEach(t)):Ae.size===1&&document.addEventListener("DOMContentLoaded",Dc)}var Ae,di,Ee,z=$(()=>{Ae=new Map,di=null,Ee=!1});function $o(s,t,e){let i=Math.pow(2,e),n=s*Math.PI/180,r=(t+180)/360*i,o=(1-Math.log(Math.tan(n)+1/Math.cos(n))/Math.PI)/2*i,a=Math.floor(r),l=Math.floor(o),c=Math.round((r-a)*256),h=Math.round((o-l)*256);return{tileX:a,tileY:l,pixelX:c,pixelY:h}}function No(s,t,e){let i=256*Math.pow(2,e),n=s/i*360-180;return{lat:Math.atan(Math.sinh(Math.PI*(1-2*t/i)))*180/Math.PI,lng:n}}function Le(s,t,e,i){switch(s){case"carto-light":return`https://basemaps.cartocdn.com/light_all/${t}/${e}/${i}.png`;case"carto-dark":return`https://basemaps.cartocdn.com/dark_all/${t}/${e}/${i}.png`;default:return`https://tile.openstreetmap.org/${t}/${e}/${i}.png`}}var $i=$(()=>{});var qo={};j(qo,{MapInteraction:()=>Ni});var Ni,Do=$(()=>{$i();Ni=class{#t;#e;#s;#n;#i;#r=0;#o=0;#a=15;#l=1;#c=19;#h=0;#p=0;#d=new Map;#u=null;#m=0;#b=0;#g=!1;#f=0;#v=0;constructor({shadow:t,host:e,lat:i,lng:n,zoom:r,provider:o,onDeactivate:a}){this.#t=t,this.#e=e,this.#n=o,this.#i=a,this.#a=r,this.#s=t.querySelector('[part="tiles"]'),this.#u=t.querySelector('[part="marker"]');let l=256*Math.pow(2,r),c=i*Math.PI/180;this.#r=(n+180)/360*l,this.#o=(1-Math.log(Math.tan(c)+1/Math.cos(c))/Math.PI)/2*l,this.#m=this.#r,this.#b=this.#o,this.#h=this.#e.offsetWidth||400,this.#p=this.#e.offsetHeight||300,this.#s.innerHTML="",this.#s.style.transform="",this.#u&&(this.#u.style.position="absolute",this.#u.style.top="",this.#u.style.left="",this.#s.appendChild(this.#u)),this.#y(),this.#w()}#y(){this.#s.addEventListener("pointerdown",this.#A),this.#s.addEventListener("wheel",this.#x,{passive:!1}),this.#e.addEventListener("keydown",this.#E)}#A=t=>{t.button===0&&(t.preventDefault(),this.#g=!0,this.#f=t.clientX,this.#v=t.clientY,this.#s.setPointerCapture(t.pointerId),this.#s.setAttribute("data-dragging",""),this.#s.addEventListener("pointermove",this.#k),this.#s.addEventListener("pointerup",this.#L))};#k=t=>{if(!this.#g)return;let e=t.clientX-this.#f,i=t.clientY-this.#v;this.#f=t.clientX,this.#v=t.clientY,this.#r-=e,this.#o-=i,this.#S(),this.#w()};#L=t=>{this.#g=!1,this.#s.releasePointerCapture(t.pointerId),this.#s.removeAttribute("data-dragging"),this.#s.removeEventListener("pointermove",this.#k),this.#s.removeEventListener("pointerup",this.#L),this.#M()};#x=t=>{t.preventDefault();let e=t.ctrlKey?-t.deltaY*.01:-Math.sign(t.deltaY),i=Math.round(Math.max(this.#l,Math.min(this.#c,this.#a+e)));if(i===this.#a)return;let n=this.#e.getBoundingClientRect(),r=t.clientX-n.left,o=t.clientY-n.top;this.#T(i,r,o)};#E=t=>{switch(t.key){case"ArrowLeft":t.preventDefault(),this.#r-=80,this.#S(),this.#w(),this.#M();break;case"ArrowRight":t.preventDefault(),this.#r+=80,this.#S(),this.#w(),this.#M();break;case"ArrowUp":t.preventDefault(),this.#o-=80,this.#S(),this.#w(),this.#M();break;case"ArrowDown":t.preventDefault(),this.#o+=80,this.#S(),this.#w(),this.#M();break;case"+":case"=":t.preventDefault(),this.#T(this.#a+1,this.#h/2,this.#p/2);break;case"-":t.preventDefault(),this.#T(this.#a-1,this.#h/2,this.#p/2);break;case"Escape":t.preventDefault(),this.#i();break}};#T(t,e,i){if(t=Math.max(this.#l,Math.min(this.#c,t)),t===this.#a)return;let n=this.#r-this.#h/2,r=this.#o-this.#p/2,o=n+e,a=r+i,l=Math.pow(2,t-this.#a);this.#r=o*l-e+this.#h/2,this.#o=a*l-i+this.#p/2,this.#m*=l,this.#b*=l,this.#a=t,this.#_(),this.#S(),this.#w(),this.#M()}#S(){let t=256*Math.pow(2,this.#a);this.#r=(this.#r%t+t)%t,this.#o=Math.max(this.#p/2,Math.min(t-this.#p/2,this.#o))}#w(){let t=-(this.#r-this.#h/2),e=-(this.#o-this.#p/2);this.#s.style.transform=`translate(${Math.round(t)}px, ${Math.round(e)}px)`,this.#q(),this.#D(),this.#$()}#q(){let t=this.#a,e=Math.pow(2,t),i=this.#r-this.#h/2,n=this.#o-this.#p/2,r=i+this.#h,o=n+this.#p,a=Math.floor(i/256)-1,l=Math.max(0,Math.floor(n/256)-1),c=Math.ceil(r/256)+1,h=Math.min(e,Math.ceil(o/256)+1);for(let u=l;u<h;u++)for(let d=a;d<c;d++){let p=(d%e+e)%e,m=`${t}/${p}/${u}`;this.#d.has(m)||this.#C(t,d,u,p)}}#C(t,e,i,n){let r=`${t}/${n}/${i}`;if(this.#d.has(r))return;let o=e*256,a=i*256,l=document.createElement("img");l.src=Le(this.#n,t,n,i),l.alt="",l.draggable=!1,l.style.left=o+"px",l.style.top=a+"px",l.style.width="256px",l.style.height="256px",l._wx=o,l._wy=a,this.#d.set(r,l),this.#s.appendChild(l)}#D(){let t=this.#r-this.#h/2,e=this.#o-this.#p/2,i=512;for(let[n,r]of this.#d){let o=r._wx,a=r._wy;(o+256<t-i||o>t+this.#h+i||a+256<e-i||a>e+this.#p+i)&&(r.remove(),this.#d.delete(n))}}#$(){if(!this.#u)return;let t=this.#u.offsetWidth||32;this.#u.style.left=`${Math.round(this.#m-t/2)}px`,this.#u.style.top=`${Math.round(this.#b-t)}px`,this.#u.style.transform=""}#M(){let{lat:t,lng:e}=No(this.#r,this.#o,this.#a);this.#e.dispatchEvent(new CustomEvent("geo-map:move",{bubbles:!0,detail:{lat:+t.toFixed(6),lng:+e.toFixed(6),zoom:this.#a}}))}#_(){for(let t of this.#d.values())t.remove();this.#d.clear()}destroy(){if(this.#s.removeEventListener("pointerdown",this.#A),this.#s.removeEventListener("wheel",this.#x),this.#e.removeEventListener("keydown",this.#E),this.#s.removeEventListener("pointermove",this.#k),this.#s.removeEventListener("pointerup",this.#L),this.#u&&this.#u.parentNode===this.#s){let t=this.#t.querySelector('[part="container"]');t&&(t.insertBefore(this.#u,this.#s.nextSibling),this.#u.style.position="",this.#u.style.left="",this.#u.style.top="",this.#u.style.transform="")}this.#_(),this.#e.removeAttribute("data-interactive-active")}}});var Oi={};j(Oi,{EMOJI_ALIASES:()=>Ro,EMOJI_GROUPS:()=>Vh,EMOJI_GROUP_ICONS:()=>Wh,EMOJI_GROUP_LABELS:()=>Uh,EMOJI_MAP:()=>Gt,getByGroup:()=>Yh,resolveEmoji:()=>Gh,searchEmoji:()=>Kh});function Oo(s){for(let[t,e,i,n]of s){if(Gt.has(t))continue;let r={shortcode:t,emoji:e,name:i,keywords:[],group:n};Gt.set(t,r),$e.push(r)}}function Gh(s){let t=Gt.get(s);if(t)return t;let e=Ro.get(s);return e&&Gt.get(e)||null}function Yh(s){let t=Me.filter(i=>i.group===s),e=$e.filter(i=>i.group===s);return e.length>0?t.concat(e):t}function Kh(s){let t=s.toLowerCase().trim(),e=$e.length>0?Me.concat($e):Me;return t?e.filter(i=>i.shortcode.includes(t)||i.name.toLowerCase().includes(t)||i.keywords&&i.keywords.some(n=>n.includes(t))):e}var Me,Gt,Ro,Vh,Uh,Wh,$e,Pi=$(()=>{Me=[{shortcode:"smile",emoji:"\u{1F604}",name:"Smiling Face with Open Mouth",keywords:["happy","joy","laugh"],group:"smileys"},{shortcode:"grinning",emoji:"\u{1F600}",name:"Grinning Face",keywords:["happy","smile"],group:"smileys"},{shortcode:"laughing",emoji:"\u{1F606}",name:"Grinning Squinting Face",keywords:["happy","laugh"],group:"smileys"},{shortcode:"sweat_smile",emoji:"\u{1F605}",name:"Grinning Face with Sweat",keywords:["hot","relief"],group:"smileys"},{shortcode:"rofl",emoji:"\u{1F923}",name:"Rolling on the Floor Laughing",keywords:["lol","funny"],group:"smileys"},{shortcode:"joy",emoji:"\u{1F602}",name:"Face with Tears of Joy",keywords:["happy","cry","laugh"],group:"smileys"},{shortcode:"slightly_smiling_face",emoji:"\u{1F642}",name:"Slightly Smiling Face",keywords:["smile"],group:"smileys"},{shortcode:"upside_down_face",emoji:"\u{1F643}",name:"Upside-Down Face",keywords:["sarcasm","silly"],group:"smileys"},{shortcode:"wink",emoji:"\u{1F609}",name:"Winking Face",keywords:["flirt","joke"],group:"smileys"},{shortcode:"blush",emoji:"\u{1F60A}",name:"Smiling Face with Smiling Eyes",keywords:["happy","shy"],group:"smileys"},{shortcode:"innocent",emoji:"\u{1F607}",name:"Smiling Face with Halo",keywords:["angel","good"],group:"smileys"},{shortcode:"heart_eyes",emoji:"\u{1F60D}",name:"Smiling Face with Heart-Eyes",keywords:["love","crush"],group:"smileys"},{shortcode:"star_struck",emoji:"\u{1F929}",name:"Star-Struck",keywords:["wow","amazing"],group:"smileys"},{shortcode:"kissing_heart",emoji:"\u{1F618}",name:"Face Blowing a Kiss",keywords:["love","kiss"],group:"smileys"},{shortcode:"yum",emoji:"\u{1F60B}",name:"Face Savoring Food",keywords:["delicious","tasty"],group:"smileys"},{shortcode:"stuck_out_tongue",emoji:"\u{1F61B}",name:"Face with Tongue",keywords:["playful","silly"],group:"smileys"},{shortcode:"stuck_out_tongue_winking_eye",emoji:"\u{1F61C}",name:"Winking Face with Tongue",keywords:["silly","playful"],group:"smileys"},{shortcode:"zany_face",emoji:"\u{1F92A}",name:"Zany Face",keywords:["crazy","wild"],group:"smileys"},{shortcode:"hugs",emoji:"\u{1F917}",name:"Hugging Face",keywords:["hug","warm"],group:"smileys"},{shortcode:"thinking",emoji:"\u{1F914}",name:"Thinking Face",keywords:["hmm","consider"],group:"smileys"},{shortcode:"shushing_face",emoji:"\u{1F92B}",name:"Shushing Face",keywords:["quiet","secret"],group:"smileys"},{shortcode:"smirk",emoji:"\u{1F60F}",name:"Smirking Face",keywords:["sly","suggestive"],group:"smileys"},{shortcode:"unamused",emoji:"\u{1F612}",name:"Unamused Face",keywords:["bored","unimpressed"],group:"smileys"},{shortcode:"roll_eyes",emoji:"\u{1F644}",name:"Face with Rolling Eyes",keywords:["annoyed","whatever"],group:"smileys"},{shortcode:"grimacing",emoji:"\u{1F62C}",name:"Grimacing Face",keywords:["awkward","nervous"],group:"smileys"},{shortcode:"relieved",emoji:"\u{1F60C}",name:"Relieved Face",keywords:["calm","peaceful"],group:"smileys"},{shortcode:"pensive",emoji:"\u{1F614}",name:"Pensive Face",keywords:["sad","thoughtful"],group:"smileys"},{shortcode:"sleepy",emoji:"\u{1F62A}",name:"Sleepy Face",keywords:["tired","sleep"],group:"smileys"},{shortcode:"sleeping",emoji:"\u{1F634}",name:"Sleeping Face",keywords:["zzz","sleep"],group:"smileys"},{shortcode:"mask",emoji:"\u{1F637}",name:"Face with Medical Mask",keywords:["sick","health"],group:"smileys"},{shortcode:"nerd_face",emoji:"\u{1F913}",name:"Nerd Face",keywords:["geek","smart"],group:"smileys"},{shortcode:"sunglasses",emoji:"\u{1F60E}",name:"Smiling Face with Sunglasses",keywords:["cool","chill"],group:"smileys"},{shortcode:"confused",emoji:"\u{1F615}",name:"Confused Face",keywords:["puzzled","unsure"],group:"smileys"},{shortcode:"worried",emoji:"\u{1F61F}",name:"Worried Face",keywords:["anxious","concern"],group:"smileys"},{shortcode:"cry",emoji:"\u{1F622}",name:"Crying Face",keywords:["sad","tear"],group:"smileys"},{shortcode:"sob",emoji:"\u{1F62D}",name:"Loudly Crying Face",keywords:["sad","cry"],group:"smileys"},{shortcode:"angry",emoji:"\u{1F620}",name:"Angry Face",keywords:["mad","annoyed"],group:"smileys"},{shortcode:"rage",emoji:"\u{1F92C}",name:"Face with Symbols on Mouth",keywords:["angry","swear"],group:"smileys"},{shortcode:"exploding_head",emoji:"\u{1F92F}",name:"Exploding Head",keywords:["mind blown","shocked"],group:"smileys"},{shortcode:"flushed",emoji:"\u{1F633}",name:"Flushed Face",keywords:["embarrassed","shocked"],group:"smileys"},{shortcode:"scream",emoji:"\u{1F631}",name:"Face Screaming in Fear",keywords:["scared","horror"],group:"smileys"},{shortcode:"skull",emoji:"\u{1F480}",name:"Skull",keywords:["dead","death"],group:"smileys"},{shortcode:"clown_face",emoji:"\u{1F921}",name:"Clown Face",keywords:["joke","funny"],group:"smileys"},{shortcode:"ghost",emoji:"\u{1F47B}",name:"Ghost",keywords:["halloween","spooky"],group:"smileys"},{shortcode:"wave",emoji:"\u{1F44B}",name:"Waving Hand",keywords:["hello","goodbye"],group:"people"},{shortcode:"raised_hand",emoji:"\u270B",name:"Raised Hand",keywords:["stop","high five"],group:"people"},{shortcode:"ok_hand",emoji:"\u{1F44C}",name:"OK Hand",keywords:["perfect","nice"],group:"people"},{shortcode:"thumbsup",emoji:"\u{1F44D}",name:"Thumbs Up",keywords:["approve","good","yes"],group:"people"},{shortcode:"thumbsdown",emoji:"\u{1F44E}",name:"Thumbs Down",keywords:["disapprove","bad","no"],group:"people"},{shortcode:"clap",emoji:"\u{1F44F}",name:"Clapping Hands",keywords:["applause","bravo"],group:"people"},{shortcode:"raised_hands",emoji:"\u{1F64C}",name:"Raising Hands",keywords:["celebration","hooray"],group:"people"},{shortcode:"pray",emoji:"\u{1F64F}",name:"Folded Hands",keywords:["thanks","please","hope"],group:"people"},{shortcode:"handshake",emoji:"\u{1F91D}",name:"Handshake",keywords:["deal","agreement"],group:"people"},{shortcode:"point_up",emoji:"\u261D\uFE0F",name:"Index Pointing Up",keywords:["attention","important"],group:"people"},{shortcode:"point_right",emoji:"\u{1F449}",name:"Backhand Index Pointing Right",keywords:["direction","this"],group:"people"},{shortcode:"point_left",emoji:"\u{1F448}",name:"Backhand Index Pointing Left",keywords:["direction","that"],group:"people"},{shortcode:"point_down",emoji:"\u{1F447}",name:"Backhand Index Pointing Down",keywords:["direction","below"],group:"people"},{shortcode:"v",emoji:"\u270C\uFE0F",name:"Victory Hand",keywords:["peace","two"],group:"people"},{shortcode:"crossed_fingers",emoji:"\u{1F91E}",name:"Crossed Fingers",keywords:["luck","hope"],group:"people"},{shortcode:"muscle",emoji:"\u{1F4AA}",name:"Flexed Biceps",keywords:["strong","power"],group:"people"},{shortcode:"writing_hand",emoji:"\u270D\uFE0F",name:"Writing Hand",keywords:["write","note"],group:"people"},{shortcode:"eyes",emoji:"\u{1F440}",name:"Eyes",keywords:["look","see","watch"],group:"people"},{shortcode:"brain",emoji:"\u{1F9E0}",name:"Brain",keywords:["smart","think","mind"],group:"people"},{shortcode:"speaking_head",emoji:"\u{1F5E3}\uFE0F",name:"Speaking Head",keywords:["talk","announce"],group:"people"},{shortcode:"baby",emoji:"\u{1F476}",name:"Baby",keywords:["child","newborn"],group:"people"},{shortcode:"person_shrugging",emoji:"\u{1F937}",name:"Person Shrugging",keywords:["dunno","whatever"],group:"people"},{shortcode:"person_facepalming",emoji:"\u{1F926}",name:"Person Facepalming",keywords:["frustration","disbelief"],group:"people"},{shortcode:"person_raising_hand",emoji:"\u{1F64B}",name:"Person Raising Hand",keywords:["question","volunteer"],group:"people"},{shortcode:"ninja",emoji:"\u{1F977}",name:"Ninja",keywords:["stealth","hidden"],group:"people"},{shortcode:"dog",emoji:"\u{1F436}",name:"Dog Face",keywords:["puppy","pet"],group:"animals"},{shortcode:"cat",emoji:"\u{1F431}",name:"Cat Face",keywords:["kitten","pet"],group:"animals"},{shortcode:"mouse",emoji:"\u{1F42D}",name:"Mouse Face",keywords:["rodent"],group:"animals"},{shortcode:"rabbit",emoji:"\u{1F430}",name:"Rabbit Face",keywords:["bunny","easter"],group:"animals"},{shortcode:"fox",emoji:"\u{1F98A}",name:"Fox",keywords:["clever","sly"],group:"animals"},{shortcode:"bear",emoji:"\u{1F43B}",name:"Bear",keywords:["teddy","nature"],group:"animals"},{shortcode:"unicorn",emoji:"\u{1F984}",name:"Unicorn",keywords:["magic","fantasy"],group:"animals"},{shortcode:"bee",emoji:"\u{1F41D}",name:"Honeybee",keywords:["honey","buzz"],group:"animals"},{shortcode:"butterfly",emoji:"\u{1F98B}",name:"Butterfly",keywords:["pretty","nature"],group:"animals"},{shortcode:"turtle",emoji:"\u{1F422}",name:"Turtle",keywords:["slow","shell"],group:"animals"},{shortcode:"snake",emoji:"\u{1F40D}",name:"Snake",keywords:["reptile"],group:"animals"},{shortcode:"whale",emoji:"\u{1F433}",name:"Spouting Whale",keywords:["ocean","sea"],group:"animals"},{shortcode:"dolphin",emoji:"\u{1F42C}",name:"Dolphin",keywords:["ocean","smart"],group:"animals"},{shortcode:"eagle",emoji:"\u{1F985}",name:"Eagle",keywords:["bird","freedom"],group:"animals"},{shortcode:"owl",emoji:"\u{1F989}",name:"Owl",keywords:["wise","night"],group:"animals"},{shortcode:"penguin",emoji:"\u{1F427}",name:"Penguin",keywords:["cold","linux"],group:"animals"},{shortcode:"octopus",emoji:"\u{1F419}",name:"Octopus",keywords:["ocean","tentacle"],group:"animals"},{shortcode:"seedling",emoji:"\u{1F331}",name:"Seedling",keywords:["plant","grow"],group:"animals"},{shortcode:"evergreen_tree",emoji:"\u{1F332}",name:"Evergreen Tree",keywords:["nature","pine"],group:"animals"},{shortcode:"sunflower",emoji:"\u{1F33B}",name:"Sunflower",keywords:["flower","yellow"],group:"animals"},{shortcode:"rose",emoji:"\u{1F339}",name:"Rose",keywords:["flower","love"],group:"animals"},{shortcode:"apple",emoji:"\u{1F34E}",name:"Red Apple",keywords:["fruit","healthy"],group:"food"},{shortcode:"banana",emoji:"\u{1F34C}",name:"Banana",keywords:["fruit","yellow"],group:"food"},{shortcode:"grapes",emoji:"\u{1F347}",name:"Grapes",keywords:["fruit","wine"],group:"food"},{shortcode:"watermelon",emoji:"\u{1F349}",name:"Watermelon",keywords:["fruit","summer"],group:"food"},{shortcode:"avocado",emoji:"\u{1F951}",name:"Avocado",keywords:["guacamole","healthy"],group:"food"},{shortcode:"pizza",emoji:"\u{1F355}",name:"Pizza",keywords:["food","italian"],group:"food"},{shortcode:"hamburger",emoji:"\u{1F354}",name:"Hamburger",keywords:["burger","fast food"],group:"food"},{shortcode:"taco",emoji:"\u{1F32E}",name:"Taco",keywords:["mexican","food"],group:"food"},{shortcode:"sushi",emoji:"\u{1F363}",name:"Sushi",keywords:["japanese","fish"],group:"food"},{shortcode:"cookie",emoji:"\u{1F36A}",name:"Cookie",keywords:["sweet","biscuit"],group:"food"},{shortcode:"cake",emoji:"\u{1F382}",name:"Birthday Cake",keywords:["birthday","celebration"],group:"food"},{shortcode:"ice_cream",emoji:"\u{1F366}",name:"Soft Ice Cream",keywords:["dessert","cold"],group:"food"},{shortcode:"chocolate_bar",emoji:"\u{1F36B}",name:"Chocolate Bar",keywords:["sweet","candy"],group:"food"},{shortcode:"popcorn",emoji:"\u{1F37F}",name:"Popcorn",keywords:["movie","snack"],group:"food"},{shortcode:"coffee",emoji:"\u2615",name:"Hot Beverage",keywords:["tea","drink","morning"],group:"food"},{shortcode:"beer",emoji:"\u{1F37A}",name:"Beer Mug",keywords:["drink","bar"],group:"food"},{shortcode:"wine_glass",emoji:"\u{1F377}",name:"Wine Glass",keywords:["drink","alcohol"],group:"food"},{shortcode:"cocktail",emoji:"\u{1F378}",name:"Cocktail Glass",keywords:["drink","martini"],group:"food"},{shortcode:"hot_pepper",emoji:"\u{1F336}\uFE0F",name:"Hot Pepper",keywords:["spicy","chili"],group:"food"},{shortcode:"egg",emoji:"\u{1F95A}",name:"Egg",keywords:["breakfast","food"],group:"food"},{shortcode:"earth_americas",emoji:"\u{1F30E}",name:"Globe Americas",keywords:["world","planet"],group:"travel"},{shortcode:"earth_europe",emoji:"\u{1F30D}",name:"Globe Europe-Africa",keywords:["world","planet"],group:"travel"},{shortcode:"sun",emoji:"\u2600\uFE0F",name:"Sun",keywords:["weather","bright","warm"],group:"travel"},{shortcode:"moon",emoji:"\u{1F319}",name:"Crescent Moon",keywords:["night","sleep"],group:"travel"},{shortcode:"star",emoji:"\u2B50",name:"Star",keywords:["favorite","rating"],group:"travel"},{shortcode:"star2",emoji:"\u{1F31F}",name:"Glowing Star",keywords:["sparkle","shine"],group:"travel"},{shortcode:"cloud",emoji:"\u2601\uFE0F",name:"Cloud",keywords:["weather","sky"],group:"travel"},{shortcode:"rainbow",emoji:"\u{1F308}",name:"Rainbow",keywords:["colorful","weather"],group:"travel"},{shortcode:"snowflake",emoji:"\u2744\uFE0F",name:"Snowflake",keywords:["cold","winter"],group:"travel"},{shortcode:"zap",emoji:"\u26A1",name:"High Voltage",keywords:["lightning","electric","fast"],group:"travel"},{shortcode:"fire",emoji:"\u{1F525}",name:"Fire",keywords:["hot","flame","lit"],group:"travel"},{shortcode:"ocean",emoji:"\u{1F30A}",name:"Water Wave",keywords:["sea","wave","surf"],group:"travel"},{shortcode:"airplane",emoji:"\u2708\uFE0F",name:"Airplane",keywords:["travel","flight"],group:"travel"},{shortcode:"rocket",emoji:"\u{1F680}",name:"Rocket",keywords:["launch","space","fast"],group:"travel"},{shortcode:"car",emoji:"\u{1F697}",name:"Automobile",keywords:["drive","vehicle"],group:"travel"},{shortcode:"house",emoji:"\u{1F3E0}",name:"House",keywords:["home","building"],group:"travel"},{shortcode:"tent",emoji:"\u26FA",name:"Tent",keywords:["camping","outdoor"],group:"travel"},{shortcode:"mountain",emoji:"\u26F0\uFE0F",name:"Mountain",keywords:["nature","hike"],group:"travel"},{shortcode:"desert_island",emoji:"\u{1F3DD}\uFE0F",name:"Desert Island",keywords:["beach","vacation"],group:"travel"},{shortcode:"volcano",emoji:"\u{1F30B}",name:"Volcano",keywords:["eruption","nature"],group:"travel"},{shortcode:"soccer",emoji:"\u26BD",name:"Soccer Ball",keywords:["football","sport"],group:"activities"},{shortcode:"basketball",emoji:"\u{1F3C0}",name:"Basketball",keywords:["sport","hoop"],group:"activities"},{shortcode:"tennis",emoji:"\u{1F3BE}",name:"Tennis",keywords:["sport","ball"],group:"activities"},{shortcode:"video_game",emoji:"\u{1F3AE}",name:"Video Game",keywords:["gaming","controller"],group:"activities"},{shortcode:"dart",emoji:"\u{1F3AF}",name:"Bullseye",keywords:["target","goal"],group:"activities"},{shortcode:"trophy",emoji:"\u{1F3C6}",name:"Trophy",keywords:["winner","champion"],group:"activities"},{shortcode:"medal",emoji:"\u{1F947}",name:"Gold Medal",keywords:["first","winner"],group:"activities"},{shortcode:"tada",emoji:"\u{1F389}",name:"Party Popper",keywords:["celebration","party"],group:"activities"},{shortcode:"confetti_ball",emoji:"\u{1F38A}",name:"Confetti Ball",keywords:["party","celebration"],group:"activities"},{shortcode:"balloon",emoji:"\u{1F388}",name:"Balloon",keywords:["party","birthday"],group:"activities"},{shortcode:"art",emoji:"\u{1F3A8}",name:"Artist Palette",keywords:["paint","creative"],group:"activities"},{shortcode:"musical_note",emoji:"\u{1F3B5}",name:"Musical Note",keywords:["music","song"],group:"activities"},{shortcode:"microphone",emoji:"\u{1F3A4}",name:"Microphone",keywords:["sing","karaoke"],group:"activities"},{shortcode:"guitar",emoji:"\u{1F3B8}",name:"Guitar",keywords:["music","rock"],group:"activities"},{shortcode:"dice",emoji:"\u{1F3B2}",name:"Game Die",keywords:["chance","random"],group:"activities"},{shortcode:"bulb",emoji:"\u{1F4A1}",name:"Light Bulb",keywords:["idea","bright"],group:"objects"},{shortcode:"computer",emoji:"\u{1F4BB}",name:"Laptop",keywords:["tech","work"],group:"objects"},{shortcode:"keyboard",emoji:"\u2328\uFE0F",name:"Keyboard",keywords:["type","computer"],group:"objects"},{shortcode:"phone",emoji:"\u{1F4F1}",name:"Mobile Phone",keywords:["cell","call"],group:"objects"},{shortcode:"camera",emoji:"\u{1F4F7}",name:"Camera",keywords:["photo","picture"],group:"objects"},{shortcode:"tv",emoji:"\u{1F4FA}",name:"Television",keywords:["watch","screen"],group:"objects"},{shortcode:"battery",emoji:"\u{1F50B}",name:"Battery",keywords:["charge","power"],group:"objects"},{shortcode:"electric_plug",emoji:"\u{1F50C}",name:"Electric Plug",keywords:["power","connect"],group:"objects"},{shortcode:"mag",emoji:"\u{1F50D}",name:"Magnifying Glass Left",keywords:["search","find"],group:"objects"},{shortcode:"lock",emoji:"\u{1F512}",name:"Locked",keywords:["security","private"],group:"objects"},{shortcode:"unlock",emoji:"\u{1F513}",name:"Unlocked",keywords:["open","access"],group:"objects"},{shortcode:"key",emoji:"\u{1F511}",name:"Key",keywords:["access","password"],group:"objects"},{shortcode:"hammer",emoji:"\u{1F528}",name:"Hammer",keywords:["tool","build"],group:"objects"},{shortcode:"wrench",emoji:"\u{1F527}",name:"Wrench",keywords:["tool","fix"],group:"objects"},{shortcode:"gear",emoji:"\u2699\uFE0F",name:"Gear",keywords:["settings","config"],group:"objects"},{shortcode:"link",emoji:"\u{1F517}",name:"Link",keywords:["chain","url"],group:"objects"},{shortcode:"paperclip",emoji:"\u{1F4CE}",name:"Paperclip",keywords:["attach","clip"],group:"objects"},{shortcode:"scissors",emoji:"\u2702\uFE0F",name:"Scissors",keywords:["cut","snip"],group:"objects"},{shortcode:"pen",emoji:"\u{1F58A}\uFE0F",name:"Pen",keywords:["write","sign"],group:"objects"},{shortcode:"pencil",emoji:"\u270F\uFE0F",name:"Pencil",keywords:["write","draw"],group:"objects"},{shortcode:"book",emoji:"\u{1F4D6}",name:"Open Book",keywords:["read","study"],group:"objects"},{shortcode:"memo",emoji:"\u{1F4DD}",name:"Memo",keywords:["note","write"],group:"objects"},{shortcode:"package",emoji:"\u{1F4E6}",name:"Package",keywords:["box","delivery"],group:"objects"},{shortcode:"mailbox",emoji:"\u{1F4EC}",name:"Open Mailbox with Raised Flag",keywords:["mail","letter"],group:"objects"},{shortcode:"bell",emoji:"\u{1F514}",name:"Bell",keywords:["notification","alert"],group:"objects"},{shortcode:"red_heart",emoji:"\u2764\uFE0F",name:"Red Heart",keywords:["love","valentine"],group:"symbols"},{shortcode:"orange_heart",emoji:"\u{1F9E1}",name:"Orange Heart",keywords:["love"],group:"symbols"},{shortcode:"yellow_heart",emoji:"\u{1F49B}",name:"Yellow Heart",keywords:["love","friendship"],group:"symbols"},{shortcode:"green_heart",emoji:"\u{1F49A}",name:"Green Heart",keywords:["love","nature"],group:"symbols"},{shortcode:"blue_heart",emoji:"\u{1F499}",name:"Blue Heart",keywords:["love","trust"],group:"symbols"},{shortcode:"purple_heart",emoji:"\u{1F49C}",name:"Purple Heart",keywords:["love"],group:"symbols"},{shortcode:"broken_heart",emoji:"\u{1F494}",name:"Broken Heart",keywords:["sad","breakup"],group:"symbols"},{shortcode:"sparkles",emoji:"\u2728",name:"Sparkles",keywords:["shine","magic","new"],group:"symbols"},{shortcode:"hundred",emoji:"\u{1F4AF}",name:"Hundred Points",keywords:["perfect","score"],group:"symbols"},{shortcode:"boom",emoji:"\u{1F4A5}",name:"Collision",keywords:["explosion","impact"],group:"symbols"},{shortcode:"speech_balloon",emoji:"\u{1F4AC}",name:"Speech Balloon",keywords:["talk","chat","message"],group:"symbols"},{shortcode:"thought_balloon",emoji:"\u{1F4AD}",name:"Thought Balloon",keywords:["think","dream"],group:"symbols"},{shortcode:"check_mark",emoji:"\u2705",name:"Check Mark Button",keywords:["done","yes","complete"],group:"symbols"},{shortcode:"x",emoji:"\u274C",name:"Cross Mark",keywords:["no","wrong","delete"],group:"symbols"},{shortcode:"warning",emoji:"\u26A0\uFE0F",name:"Warning",keywords:["caution","alert"],group:"symbols"},{shortcode:"no_entry",emoji:"\u26D4",name:"No Entry",keywords:["stop","forbidden"],group:"symbols"},{shortcode:"question",emoji:"\u2753",name:"Question Mark",keywords:["help","what"],group:"symbols"},{shortcode:"exclamation",emoji:"\u2757",name:"Exclamation Mark",keywords:["important","attention"],group:"symbols"},{shortcode:"arrow_right",emoji:"\u27A1\uFE0F",name:"Right Arrow",keywords:["next","forward"],group:"symbols"},{shortcode:"arrow_left",emoji:"\u2B05\uFE0F",name:"Left Arrow",keywords:["back","previous"],group:"symbols"},{shortcode:"arrow_up",emoji:"\u2B06\uFE0F",name:"Up Arrow",keywords:["above"],group:"symbols"},{shortcode:"arrow_down",emoji:"\u2B07\uFE0F",name:"Down Arrow",keywords:["below"],group:"symbols"},{shortcode:"recycle",emoji:"\u267B\uFE0F",name:"Recycling Symbol",keywords:["environment","green"],group:"symbols"},{shortcode:"infinity",emoji:"\u267E\uFE0F",name:"Infinity",keywords:["forever","loop"],group:"symbols"},{shortcode:"checkered_flag",emoji:"\u{1F3C1}",name:"Chequered Flag",keywords:["finish","race"],group:"flags"},{shortcode:"triangular_flag",emoji:"\u{1F6A9}",name:"Triangular Flag",keywords:["red flag","warning"],group:"flags"},{shortcode:"white_flag",emoji:"\u{1F3F3}\uFE0F",name:"White Flag",keywords:["surrender","peace"],group:"flags"},{shortcode:"rainbow_flag",emoji:"\u{1F3F3}\uFE0F\u200D\u{1F308}",name:"Rainbow Flag",keywords:["pride","lgbtq"],group:"flags"},{shortcode:"pirate_flag",emoji:"\u{1F3F4}\u200D\u2620\uFE0F",name:"Pirate Flag",keywords:["jolly roger","skull"],group:"flags"},{shortcode:"flag_us",emoji:"\u{1F1FA}\u{1F1F8}",name:"Flag: United States",keywords:["usa","america"],group:"flags"},{shortcode:"flag_gb",emoji:"\u{1F1EC}\u{1F1E7}",name:"Flag: United Kingdom",keywords:["uk","britain"],group:"flags"},{shortcode:"flag_fr",emoji:"\u{1F1EB}\u{1F1F7}",name:"Flag: France",keywords:["french"],group:"flags"},{shortcode:"flag_de",emoji:"\u{1F1E9}\u{1F1EA}",name:"Flag: Germany",keywords:["german"],group:"flags"},{shortcode:"flag_jp",emoji:"\u{1F1EF}\u{1F1F5}",name:"Flag: Japan",keywords:["japanese"],group:"flags"},{shortcode:"flag_kr",emoji:"\u{1F1F0}\u{1F1F7}",name:"Flag: South Korea",keywords:["korean"],group:"flags"},{shortcode:"flag_br",emoji:"\u{1F1E7}\u{1F1F7}",name:"Flag: Brazil",keywords:["brazilian"],group:"flags"},{shortcode:"flag_in",emoji:"\u{1F1EE}\u{1F1F3}",name:"Flag: India",keywords:["indian"],group:"flags"},{shortcode:"flag_ca",emoji:"\u{1F1E8}\u{1F1E6}",name:"Flag: Canada",keywords:["canadian","maple"],group:"flags"},{shortcode:"flag_au",emoji:"\u{1F1E6}\u{1F1FA}",name:"Flag: Australia",keywords:["australian"],group:"flags"}],Gt=new Map(Me.map(s=>[s.shortcode,s])),Ro=new Map([["+1","thumbsup"],["-1","thumbsdown"],["heart","red_heart"],["thumbs_up","thumbsup"],["thumbs_down","thumbsdown"],["grin","grinning"],["laughing_crying","joy"],["lol","rofl"],["smiley","smile"],["cool","sunglasses"],["nerd","nerd_face"],["kiss","kissing_heart"],["hug","hugs"],["think","thinking"],["sad","cry"],["mad","angry"],["shrug","person_shrugging"],["facepalm","person_facepalming"],["raised_fist","muscle"],["pray_hands","pray"],["hi","wave"],["bye","wave"],["lightning","zap"],["flame","fire"],["hot","fire"],["bomb","boom"],["idea","bulb"],["laptop","computer"],["search","mag"],["party","tada"],["celebrate","tada"],["congrats","tada"],["check","check_mark"],["done","check_mark"],["yes","check_mark"],["no","x"],["wrong","x"],["love","red_heart"],["star_eyes","star_struck"],["mindblown","exploding_head"],["poop","skull"],["memo_pad","memo"],["notes","memo"],["coffee_cup","coffee"],["tea","coffee"]]),Vh=["smileys","people","animals","food","travel","activities","objects","symbols","flags"],Uh={smileys:"Smileys & Emotion",people:"People & Body",animals:"Animals & Nature",food:"Food & Drink",travel:"Travel & Places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"},Wh={smileys:"\u{1F600}",people:"\u{1F44B}",animals:"\u{1F436}",food:"\u{1F355}",travel:"\u{1F30D}",activities:"\u{1F389}",objects:"\u{1F4A1}",symbols:"\u2764\uFE0F",flags:"\u{1F3C1}"},$e=[];globalThis.__vbEmojiRegister=Oo;globalThis.__vbEmojiExtended&&(Oo(globalThis.__vbEmojiExtended),delete globalThis.__vbEmojiExtended)});var _e={};j(_e,{destroyStickyManager:()=>eu,initStickyManager:()=>Ui});function ut(){let s=document.documentElement;if(!s.hasAttribute("data-sticky"))return;let t=document.querySelector("header");t&&!t.hasAttribute("data-sticky")&&(t.dataset.sticky="",Vi=!0);let e=document.querySelector("header[data-sticky]"),i=e?e.getBoundingClientRect().height:0;s.style.setProperty("--sticky-offset",`${i}px`)}function Yo(){ut()}function Ui(){if(De)return;De=!0,ut(),requestAnimationFrame(ut),document.fonts?.ready?.then(ut),window.addEventListener("resize",ut,{passive:!0}),document.addEventListener("toggle",Yo,!0),Hi=new ResizeObserver(ut);let s=document.querySelector("header[data-sticky]");s&&Hi.observe(s)}function eu(){if(De){if(De=!1,window.removeEventListener("resize",ut),document.removeEventListener("toggle",Yo,!0),Hi?.disconnect(),Vi){let s=document.querySelector("header[data-sticky]");s&&delete s.dataset.sticky,Vi=!1}document.documentElement.style.removeProperty("--sticky-offset")}}var De,Hi,Vi,Yt=$(()=>{De=!1,Vi=!1});var Ia={};j(Ia,{WizardController:()=>We,initWizards:()=>Zn});function Jn(s){if(s.hasAttribute("data-wizard-enhanced"))return;let t=new We(s);s.wizardController=t,s.wizardGoTo=e=>t.goTo(e),s.wizardNext=()=>t.next(),s.wizardPrev=()=>t.prev(),s.wizardReset=()=>t.reset()}function Zn(){document.querySelectorAll("form[data-wizard]").forEach(s=>{Jn(s)})}function _a(){new MutationObserver(t=>{for(let e of t)for(let i of e.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let n=i;n.matches("form[data-wizard]")&&Jn(n),n.querySelectorAll?.("form[data-wizard]:not([data-wizard-enhanced])").forEach(r=>{Jn(r)})}}).observe(document.documentElement,{childList:!0,subtree:!0})}var We,Ba=$(()=>{We=class{#t;#e=[];#s=0;#n=null;#i=null;#r=null;#o=!1;#a="step";#l=null;#c="";#h=0;#p=0;constructor(t){if(!t||!(t instanceof HTMLFormElement))throw new Error("WizardController requires a form element");this.#t=t,this.#d()}#d(){if(this.#e=Array.from(this.#t.querySelectorAll("fieldset[data-wizard-step]")),this.#e.length===0){console.warn("Wizard form has no steps");return}this.#o=this.#t.hasAttribute("data-wizard-history"),this.#a=this.#t.getAttribute("data-wizard-validate")||"step",this.#u(),this.#n=this.#t.querySelector("[data-wizard-progress]"),this.#A(),this.#k(),this.#y(),this.#t.setAttribute("data-wizard-enhanced",""),this.#t.setAttribute("data-wizard-total",String(this.#e.length)),this.#T(),this.#E(),this.#S();let t=()=>{cancelAnimationFrame(this.#h),this.#h=requestAnimationFrame(()=>this.#R())};if(this.#t.addEventListener("change",t),this.#t.addEventListener("input",t),this.#l&&(this.#t.addEventListener("change",()=>this.#b()),this.#t.addEventListener("input",()=>this.#b())),this.#t.addEventListener("submit",e=>this.#v(e)),this.#t.addEventListener("reset",()=>{requestAnimationFrame(()=>this.reset())}),this.#o){let e=this.#M();e!==null&&e>=0&&e<this.#e.length&&(this.#s=e),window.addEventListener("hashchange",()=>{let i=this.#M();i!==null&&i!==this.#s&&this.goTo(i)})}this.#g(),this.#R(),this.#C()}#u(){let t=this.#t.getAttribute("data-wizard-persist");if(t){if(!this.#t.id){console.warn("Wizard persistence requires an id on the form element");return}this.#c=`vb-wizard:${this.#t.id}`,t==="local"?this.#l=localStorage:this.#l=sessionStorage}}#m(){if(!this.#l)return;let t={},e=new FormData(this.#t);for(let[i,n]of e.entries())t[i]!==void 0?(Array.isArray(t[i])||(t[i]=[t[i]]),t[i].push(n)):t[i]=n;try{this.#l.setItem(this.#c,JSON.stringify({step:this.#s,data:t}))}catch{}}#b(){this.#l&&(cancelAnimationFrame(this.#p),this.#p=requestAnimationFrame(()=>this.#m()))}#g(){if(this.#l)try{let t=this.#l.getItem(this.#c);if(!t)return;let e=JSON.parse(t);if(!e||typeof e!="object")return;if(e.data&&typeof e.data=="object")for(let[i,n]of Object.entries(e.data)){let r=this.#t.elements.namedItem(i);if(r)if(r instanceof RadioNodeList)r.value=n;else if(r instanceof HTMLInputElement)if(r.type==="checkbox"){let o=Array.isArray(n)?n:[n];r.checked=o.includes(r.value||"on")}else r.type==="radio"?r.checked=r.value===n:r.value=n;else(r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement)&&(r.value=n)}typeof e.step=="number"&&e.step>=0&&e.step<this.#e.length&&(this.#s=e.step)}catch{}}#f(){this.#l&&this.#l.removeItem(this.#c)}#v(t){let e=this.#w();this.#s===e.length-1&&(this.#P("wizard:complete"),this.#f())}#y(){this.#i=document.createElement("div"),this.#i.setAttribute("role","status"),this.#i.setAttribute("aria-live","polite"),this.#i.setAttribute("aria-atomic","true"),this.#i.setAttribute("data-wizard-status",""),this.#t.prepend(this.#i)}#A(){let t=this.#t.getAttribute("data-wizard-steps");if(t){this.#r=document.querySelector(t);return}this.#r=this.#t.querySelector("nav.steps")}#k(){if(!this.#r)return;let t=this.#r.querySelector("ol");if(!(!t||t.children.length>0))for(let e of this.#e){let i=e.querySelector("legend"),n=document.createElement("li");n.textContent=i?.textContent||`Step ${this.#e.indexOf(e)+1}`,t.appendChild(n)}}#L(){if(!this.#r)return;let t=Array.from(this.#r.querySelectorAll("ol > li")),e=this.#w(),i=0;for(let n=0;n<this.#e.length;n++){let r=this.#e[n],o=t[i];if(!o)break;if(r.hasAttribute("data-wizard-hidden")){o.setAttribute("hidden","");continue}else o.removeAttribute("hidden");let a=e.indexOf(r);if(o.removeAttribute("data-completed"),o.removeAttribute("aria-current"),o.removeAttribute("aria-disabled"),a<this.#s){o.setAttribute("data-completed",""),this.#x(o,a);let l=o.querySelector("a");if(l){let h=r.querySelector("legend")?.textContent||`Step ${a+1}`;l.setAttribute("aria-label",`Go to ${h} (completed)`)}}else a===this.#s?o.setAttribute("aria-current","step"):o.setAttribute("aria-disabled","true");i++}for(let n of t){if(n.hasAttribute("hidden"))continue;let r=n.querySelector("a, button")||n,o=n.hasAttribute("aria-current");r.setAttribute("tabindex",o?"0":"-1")}}#x(t,e){if(t.hasAttribute("data-wizard-nav-bound"))return;t.setAttribute("data-wizard-nav-bound","");let i=t.querySelector("a, button")||t;i.addEventListener("click",n=>{n.preventDefault(),this.goTo(e)}),i===t&&!t.getAttribute("tabindex")&&(t.setAttribute("tabindex","0"),t.setAttribute("role","button"),t.addEventListener("keydown",n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),this.goTo(e))}))}#E(){let t=this.#t.querySelector("[data-wizard-prev]"),e=this.#t.querySelector("[data-wizard-next]");t?.addEventListener("click",i=>{i.preventDefault(),this.prev()}),e?.addEventListener("click",i=>{i.preventDefault(),this.next()})}#T(){if(this.#t.querySelector("[data-wizard-nav]"))return;let t=document.createElement("nav");t.setAttribute("data-wizard-nav","");let e=document.createElement("button");e.type="button",e.setAttribute("data-wizard-prev",""),e.textContent="Back";let i=document.createElement("button");i.type="button",i.setAttribute("data-wizard-next",""),i.textContent="Next";let n=document.createElement("button");n.type="submit",n.textContent="Submit",t.append(e,i,n),this.#t.appendChild(t)}#S(){this.#r&&this.#r.addEventListener("keydown",t=>{let e=Array.from(this.#r.querySelectorAll("ol > li:not([hidden])")),i=t.target.closest("li"),n=e.indexOf(i);if(n===-1)return;let r;switch(t.key){case"ArrowRight":case"ArrowDown":r=Math.min(n+1,e.length-1);break;case"ArrowLeft":case"ArrowUp":r=Math.max(n-1,0);break;case"Home":r=0;break;case"End":r=e.length-1;break;default:return}t.preventDefault();let o=e[n].querySelector("a, button")||e[n],a=e[r].querySelector("a, button")||e[r];o.setAttribute("tabindex","-1"),a.setAttribute("tabindex","0"),a.focus()})}#w(){return this.#e.filter(t=>!t.hasAttribute("data-wizard-hidden"))}#q(){return this.#w()[this.#s]}#C(){let t=this.#w();this.#e.forEach(n=>{n.removeAttribute("data-wizard-active")});let e=t[this.#s];e&&e.setAttribute("data-wizard-active","");let i=this.#s+1;this.#t.setAttribute("data-wizard-current",String(i)),this.#t.setAttribute("data-wizard-total",String(t.length)),this.#s===t.length-1?this.#t.setAttribute("data-wizard-last",""):this.#t.removeAttribute("data-wizard-last"),this.#D(),this.#L(),this.#o&&this.#$(),this.#_(),this.#I()}#D(){if(!this.#n)return;let t=this.#w();this.#n.max=t.length,this.#n.value=this.#s+1}#$(){let t=`#step=${this.#s+1}`;window.location.hash!==t&&history.replaceState(null,"",t)}#M(){let e=window.location.hash.match(/step=(\d+)/);return e?parseInt(e[1],10)-1:null}#_(){if(!this.#i)return;let i=this.#q()?.querySelector("legend")?.textContent||`Step ${this.#s+1}`,n=this.#w();this.#i.textContent=`Now on step ${this.#s+1} of ${n.length}: ${i}`}#B(){if(this.#a==="none")return!0;let t=this.#q();if(!t||t.hasAttribute("data-wizard-optional"))return!0;let e=t.querySelectorAll("input, select, textarea"),i=!0;for(let n of e){let r=n;if(!r.checkValidity()){r.reportValidity(),i=!1;break}}return i}#R(){this.#e.forEach(e=>{let i=e.getAttribute("data-wizard-if");if(!i)return;this.#F(i)?e.removeAttribute("data-wizard-hidden"):e.setAttribute("data-wizard-hidden","")});let t=this.#w();this.#s>=t.length&&(this.#s=Math.max(0,t.length-1)),this.#C()}#F(t){return t.includes("||")?t.split("||").some(e=>this.#F(e.trim())):t.includes("&&")?t.split("&&").every(e=>this.#j(e.trim())):this.#j(t)}#j(t){let e=t.startsWith("!"),i=e?t.slice(1):t;if(i.includes(":")){let[a,l]=i.split(":"),c=l.startsWith("!"),h=c?l.slice(1):l,u=this.#N(a);return c?u!==h:u===h}let o=!!this.#N(i);return e?!o:o}#N(t){let e=this.#t.elements.namedItem(t);return e?e instanceof RadioNodeList?e.value:e instanceof HTMLInputElement?e.type==="checkbox"?e.checked?e.value||"true":"":e.value:e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?e.value:"":""}#I(){let t=this.#q();if(!t||!t.hasAttribute("data-wizard-summary"))return;let e=t.querySelectorAll("[data-wizard-field]");if(e.length>0){for(let r of e){let o=r.getAttribute("data-wizard-field");r.textContent=this.#N(o)||"\u2014"}return}let i=t.querySelector("[data-wizard-summary-list]");i||(i=document.createElement("dl"),i.setAttribute("data-wizard-summary-list",""),t.appendChild(i)),i.innerHTML="";let n=new Set;for(let r of this.#e){if(r===t||r.hasAttribute("data-wizard-hidden"))continue;let o=r.querySelectorAll("input, select, textarea");for(let a of o){let l=a.name;if(!l||n.has(l))continue;n.add(l);let c=this.#N(l);if(!c)continue;let h=this.#O(a),u=document.createElement("dt");u.textContent=h||l;let d=document.createElement("dd");d.textContent=c,i.append(u,d)}}}#O(t){if(t.id){let n=this.#t.querySelector(`label[for="${CSS.escape(t.id)}"]`);if(n)return n.textContent.trim()}let e=t.closest("label");if(e){let n=e.cloneNode(!0);n.querySelectorAll("input, select, textarea").forEach(o=>o.remove());let r=n.textContent.trim();if(r)return r}let i=t.closest("form-field");if(i){let n=i.querySelector("label");if(n)return n.textContent.trim()}return""}#P(t,e={}){this.#t.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:e}))}goTo(t){let e=this.#w();if(t<0||t>=e.length||t>this.#s&&!this.#B())return!1;let i=this.#s;return this.#s=t,this.#C(),this.#P("wizard:step-change",{from:i,to:t}),this.#b(),!0}next(){let t=this.#w();return this.#s>=t.length-1?!1:this.goTo(this.#s+1)}prev(){return this.#s<=0?!1:this.goTo(this.#s-1)}reset(){this.#s=0,this.#C(),this.#f(),this.#P("wizard:reset")}get currentStep(){return this.#s}get totalSteps(){return this.#w().length}get form(){return this.#t}};typeof document<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{Zn(),_a()}):(Zn(),_a()))});function sr(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function Ha(s){bt=s}function k(s,t=""){let e=typeof s=="string"?s:s.source,i={replace:(n,r)=>{let o=typeof r=="string"?r:r.source;return o=o.replace(O.caret,"$1"),e=e.replace(n,o),i},getRegex:()=>new RegExp(e,t)};return i}function Q(s,t){if(t){if(O.escapeTest.test(s))return s.replace(O.escapeReplace,Pa)}else if(O.escapeTestNoEncode.test(s))return s.replace(O.escapeReplaceNoEncode,Pa);return s}function Fa(s){try{s=encodeURI(s).replace(O.percentDecode,"%")}catch{return null}return s}function ja(s,t){let e=s.replace(O.findPipe,(r,o,a)=>{let l=!1,c=o;for(;--c>=0&&a[c]==="\\";)l=!l;return l?"|":" |"}),i=e.split(O.splitPipe),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length<t;)i.push("");for(;n<i.length;n++)i[n]=i[n].trim().replace(O.slashPipe,"|");return i}function ie(s,t,e){let i=s.length;if(i===0)return"";let n=0;for(;n<i;){let r=s.charAt(i-n-1);if(r===t&&!e)n++;else if(r!==t&&e)n++;else break}return s.slice(0,i-n)}function Cp(s,t){if(s.indexOf(t[1])===-1)return-1;let e=0;for(let i=0;i<s.length;i++)if(s[i]==="\\")i++;else if(s[i]===t[0])e++;else if(s[i]===t[1]&&(e--,e<0))return i;return e>0?-2:-1}function Tp(s,t=0){let e=t,i="";for(let n of s)if(n===" "){let r=4-e%4;i+=" ".repeat(r),e+=r}else i+=n,e++;return i}function za(s,t,e,i,n){let r=t.href,o=t.title||null,a=s[1].replace(n.other.outputLinkReplace,"$1");i.state.inLink=!0;let l={type:s[0].charAt(0)==="!"?"image":"link",raw:e,href:r,title:o,text:a,tokens:i.inlineTokens(a)};return i.state.inLink=!1,l}function Lp(s,t,e){let i=s.match(e.other.indentCodeCompensation);if(i===null)return t;let n=i[1];return t.split(`
|
|
2
|
+
`).map(r=>{let o=r.match(e.other.beginningSpace);if(o===null)return r;let[a]=o;return a.length>=n.length?r.slice(n.length):r}).join(`
|
|
3
|
+
`)}function x(s,t){return gt.parse(s,t)}var bt,ft,Hd,O,Vd,Ud,Wd,re,Gd,ir,Va,Ua,Yd,nr,Kd,rr,Xd,Jd,Je,or,Zd,Wa,Qd,ar,Ra,tp,ep,sp,ip,Ga,np,Tt,Ze,lr,rp,Ya,op,ap,lp,Ka,cp,hp,Xa,up,dp,pp,mp,fp,gp,bp,vp,yp,wp,Ye,Ap,Ja,Za,Ep,Oa,cr,kp,Qn,xp,Ge,se,Sp,Pa,Ke,Y,Xe,hr,K,ne,Mp,gt,bw,vw,yw,ww,Aw,Ew,kw,Qa=$(()=>{bt=sr();ft={exec:()=>null};Hd=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),O={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:s=>new RegExp(`^( {0,3}${s})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:s=>new RegExp(`^ {0,${Math.min(3,s-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:s=>new RegExp(`^ {0,${Math.min(3,s-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:s=>new RegExp(`^ {0,${Math.min(3,s-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:s=>new RegExp(`^ {0,${Math.min(3,s-1)}}#`),htmlBeginRegex:s=>new RegExp(`^ {0,${Math.min(3,s-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:s=>new RegExp(`^ {0,${Math.min(3,s-1)}}>`)},Vd=/^(?:[ \t]*(?:\n|$))+/,Ud=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Wd=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,re=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Gd=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,ir=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Va=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Ua=k(Va).replace(/bull/g,ir).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Yd=k(Va).replace(/bull/g,ir).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),nr=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Kd=/^[^\n]+/,rr=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Xd=k(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",rr).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Jd=k(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,ir).getRegex(),Je="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",or=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Zd=k("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",or).replace("tag",Je).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Wa=k(nr).replace("hr",re).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Je).getRegex(),Qd=k(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Wa).getRegex(),ar={blockquote:Qd,code:Ud,def:Xd,fences:Wd,heading:Gd,hr:re,html:Zd,lheading:Ua,list:Jd,newline:Vd,paragraph:Wa,table:ft,text:Kd},Ra=k("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",re).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Je).getRegex(),tp={...ar,lheading:Yd,table:Ra,paragraph:k(nr).replace("hr",re).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ra).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Je).getRegex()},ep={...ar,html:k(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",or).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ft,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:k(nr).replace("hr",re).replace("heading",` *#{1,6} *[^
|
|
4
|
+
]`).replace("lheading",Ua).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},sp=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ip=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Ga=/^( {2,}|\\)\n(?!\s*$)/,np=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Tt=/[\p{P}\p{S}]/u,Ze=/[\s\p{P}\p{S}]/u,lr=/[^\s\p{P}\p{S}]/u,rp=k(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Ze).getRegex(),Ya=/(?!~)[\p{P}\p{S}]/u,op=/(?!~)[\s\p{P}\p{S}]/u,ap=/(?:[^\s\p{P}\p{S}]|~)/u,lp=k(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Hd?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Ka=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,cp=k(Ka,"u").replace(/punct/g,Tt).getRegex(),hp=k(Ka,"u").replace(/punct/g,Ya).getRegex(),Xa="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",up=k(Xa,"gu").replace(/notPunctSpace/g,lr).replace(/punctSpace/g,Ze).replace(/punct/g,Tt).getRegex(),dp=k(Xa,"gu").replace(/notPunctSpace/g,ap).replace(/punctSpace/g,op).replace(/punct/g,Ya).getRegex(),pp=k("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,lr).replace(/punctSpace/g,Ze).replace(/punct/g,Tt).getRegex(),mp=k(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Tt).getRegex(),fp="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",gp=k(fp,"gu").replace(/notPunctSpace/g,lr).replace(/punctSpace/g,Ze).replace(/punct/g,Tt).getRegex(),bp=k(/\\(punct)/,"gu").replace(/punct/g,Tt).getRegex(),vp=k(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),yp=k(or).replace("(?:-->|$)","-->").getRegex(),wp=k("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",yp).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ye=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Ap=k(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Ye).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ja=k(/^!?\[(label)\]\[(ref)\]/).replace("label",Ye).replace("ref",rr).getRegex(),Za=k(/^!?\[(ref)\](?:\[\])?/).replace("ref",rr).getRegex(),Ep=k("reflink|nolink(?!\\()","g").replace("reflink",Ja).replace("nolink",Za).getRegex(),Oa=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,cr={_backpedal:ft,anyPunctuation:bp,autolink:vp,blockSkip:lp,br:Ga,code:ip,del:ft,delLDelim:ft,delRDelim:ft,emStrongLDelim:cp,emStrongRDelimAst:up,emStrongRDelimUnd:pp,escape:sp,link:Ap,nolink:Za,punctuation:rp,reflink:Ja,reflinkSearch:Ep,tag:wp,text:np,url:ft},kp={...cr,link:k(/^!?\[(label)\]\((.*?)\)/).replace("label",Ye).getRegex(),reflink:k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Ye).getRegex()},Qn={...cr,emStrongRDelimAst:dp,emStrongLDelim:hp,delLDelim:mp,delRDelim:gp,url:k(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Oa).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:k(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Oa).getRegex()},xp={...Qn,br:k(Ga).replace("{2,}","*").getRegex(),text:k(Qn.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Ge={normal:ar,gfm:tp,pedantic:ep},se={normal:cr,gfm:Qn,breaks:xp,pedantic:kp},Sp={"&":"&","<":"<",">":">",'"':""","'":"'"},Pa=s=>Sp[s];Ke=class{options;rules;lexer;constructor(s){this.options=s||bt}space(s){let t=this.rules.block.newline.exec(s);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(s){let t=this.rules.block.code.exec(s);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:ie(e,`
|
|
5
|
+
`)}}}fences(s){let t=this.rules.block.fences.exec(s);if(t){let e=t[0],i=Lp(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:i}}}heading(s){let t=this.rules.block.heading.exec(s);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let i=ie(e,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(e=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(s){let t=this.rules.block.hr.exec(s);if(t)return{type:"hr",raw:ie(t[0],`
|
|
6
|
+
`)}}blockquote(s){let t=this.rules.block.blockquote.exec(s);if(t){let e=ie(t[0],`
|
|
7
|
+
`).split(`
|
|
8
|
+
`),i="",n="",r=[];for(;e.length>0;){let o=!1,a=[],l;for(l=0;l<e.length;l++)if(this.rules.other.blockquoteStart.test(e[l]))a.push(e[l]),o=!0;else if(!o)a.push(e[l]);else break;e=e.slice(l);let c=a.join(`
|
|
9
|
+
`),h=c.replace(this.rules.other.blockquoteSetextReplace,`
|
|
10
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");i=i?`${i}
|
|
11
|
+
${c}`:c,n=n?`${n}
|
|
12
|
+
${h}`:h;let u=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(h,r,!0),this.lexer.state.top=u,e.length===0)break;let d=r.at(-1);if(d?.type==="code")break;if(d?.type==="blockquote"){let p=d,m=p.raw+`
|
|
13
|
+
`+e.join(`
|
|
14
|
+
`),f=this.blockquote(m);r[r.length-1]=f,i=i.substring(0,i.length-p.raw.length)+f.raw,n=n.substring(0,n.length-p.text.length)+f.text;break}else if(d?.type==="list"){let p=d,m=p.raw+`
|
|
15
|
+
`+e.join(`
|
|
16
|
+
`),f=this.list(m);r[r.length-1]=f,i=i.substring(0,i.length-d.raw.length)+f.raw,n=n.substring(0,n.length-p.raw.length)+f.raw,e=m.substring(r.at(-1).raw.length).split(`
|
|
17
|
+
`);continue}}return{type:"blockquote",raw:i,tokens:r,text:n}}}list(s){let t=this.rules.block.list.exec(s);if(t){let e=t[1].trim(),i=e.length>1,n={type:"list",raw:"",ordered:i,start:i?+e.slice(0,-1):"",loose:!1,items:[]};e=i?`\\d{1,9}\\${e.slice(-1)}`:`\\${e}`,this.options.pedantic&&(e=i?e:"[*+-]");let r=this.rules.other.listItemRegex(e),o=!1;for(;s;){let l=!1,c="",h="";if(!(t=r.exec(s))||this.rules.block.hr.test(s))break;c=t[0],s=s.substring(c.length);let u=Tp(t[2].split(`
|
|
18
|
+
`,1)[0],t[1].length),d=s.split(`
|
|
19
|
+
`,1)[0],p=!u.trim(),m=0;if(this.options.pedantic?(m=2,h=u.trimStart()):p?m=t[1].length+1:(m=u.search(this.rules.other.nonSpaceChar),m=m>4?1:m,h=u.slice(m),m+=t[1].length),p&&this.rules.other.blankLine.test(d)&&(c+=d+`
|
|
20
|
+
`,s=s.substring(d.length+1),l=!0),!l){let f=this.rules.other.nextBulletRegex(m),v=this.rules.other.hrRegex(m),y=this.rules.other.fencesBeginRegex(m),w=this.rules.other.headingBeginRegex(m),S=this.rules.other.htmlBeginRegex(m),T=this.rules.other.blockquoteBeginRegex(m);for(;s;){let P=s.split(`
|
|
21
|
+
`,1)[0],M;if(d=P,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting," "),M=d):M=d.replace(this.rules.other.tabCharGlobal," "),y.test(d)||w.test(d)||S.test(d)||T.test(d)||f.test(d)||v.test(d))break;if(M.search(this.rules.other.nonSpaceChar)>=m||!d.trim())h+=`
|
|
22
|
+
`+M.slice(m);else{if(p||u.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||y.test(u)||w.test(u)||v.test(u))break;h+=`
|
|
23
|
+
`+d}p=!d.trim(),c+=P+`
|
|
24
|
+
`,s=s.substring(P.length+1),u=M.slice(m)}}n.loose||(o?n.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0)),n.items.push({type:"list_item",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(h),loose:!1,text:h,tokens:[]}),n.raw+=c}let a=n.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let l of n.items){if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),l.task){if(l.text=l.text.replace(this.rules.other.listReplaceTask,""),l.tokens[0]?.type==="text"||l.tokens[0]?.type==="paragraph"){l.tokens[0].raw=l.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),l.tokens[0].text=l.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}}let c=this.rules.other.listTaskCheckbox.exec(l.raw);if(c){let h={type:"checkbox",raw:c[0]+" ",checked:c[0]!=="[ ]"};l.checked=h.checked,n.loose?l.tokens[0]&&["paragraph","text"].includes(l.tokens[0].type)&&"tokens"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=h.raw+l.tokens[0].raw,l.tokens[0].text=h.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(h)):l.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):l.tokens.unshift(h)}}if(!n.loose){let c=l.tokens.filter(u=>u.type==="space"),h=c.length>0&&c.some(u=>this.rules.other.anyLine.test(u.raw));n.loose=h}}if(n.loose)for(let l of n.items){l.loose=!0;for(let c of l.tokens)c.type==="text"&&(c.type="paragraph")}return n}}html(s){let t=this.rules.block.html.exec(s);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(s){let t=this.rules.block.def.exec(s);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),i=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:i,title:n}}}table(s){let t=this.rules.block.table.exec(s);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let e=ja(t[1]),i=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),n=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
25
|
+
`):[],r={type:"table",raw:t[0],header:[],align:[],rows:[]};if(e.length===i.length){for(let o of i)this.rules.other.tableAlignRight.test(o)?r.align.push("right"):this.rules.other.tableAlignCenter.test(o)?r.align.push("center"):this.rules.other.tableAlignLeft.test(o)?r.align.push("left"):r.align.push(null);for(let o=0;o<e.length;o++)r.header.push({text:e[o],tokens:this.lexer.inline(e[o]),header:!0,align:r.align[o]});for(let o of n)r.rows.push(ja(o,r.header.length).map((a,l)=>({text:a,tokens:this.lexer.inline(a),header:!1,align:r.align[l]})));return r}}lheading(s){let t=this.rules.block.lheading.exec(s);if(t){let e=t[1].trim();return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(s){let t=this.rules.block.paragraph.exec(s);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
26
|
+
`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(s){let t=this.rules.block.text.exec(s);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(s){let t=this.rules.inline.escape.exec(s);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(s){let t=this.rules.inline.tag.exec(s);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(s){let t=this.rules.inline.link.exec(s);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let r=ie(e.slice(0,-1),"\\");if((e.length-r.length)%2===0)return}else{let r=Cp(t[2],"()");if(r===-2)return;if(r>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let i=t[2],n="";if(this.options.pedantic){let r=this.rules.other.pedanticHrefTitle.exec(i);r&&(i=r[1],n=r[3])}else n=t[3]?t[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?i=i.slice(1):i=i.slice(1,-1)),za(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(s,t){let e;if((e=this.rules.inline.reflink.exec(s))||(e=this.rules.inline.nolink.exec(s))){let i=(e[2]||e[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=t[i.toLowerCase()];if(!n){let r=e[0].charAt(0);return{type:"text",raw:r,text:r}}return za(e,n,e[0],this.lexer,this.rules)}}emStrong(s,t,e=""){let i=this.rules.inline.emStrongLDelim.exec(s);if(!(!i||!i[1]&&!i[2]&&!i[3]&&!i[4]||i[4]&&e.match(this.rules.other.unicodeAlphaNumeric))&&(!(i[1]||i[3])||!e||this.rules.inline.punctuation.exec(e))){let n=[...i[0]].length-1,r,o,a=n,l=0,c=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*s.length+n);(i=c.exec(t))!=null;){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r)continue;if(o=[...r].length,i[3]||i[4]){a+=o;continue}else if((i[5]||i[6])&&n%3&&!((n+o)%3)){l+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+l);let h=[...i[0]][0].length,u=s.slice(0,n+i.index+h+o);if(Math.min(n,o)%2){let p=u.slice(1,-1);return{type:"em",raw:u,text:p,tokens:this.lexer.inlineTokens(p)}}let d=u.slice(2,-2);return{type:"strong",raw:u,text:d,tokens:this.lexer.inlineTokens(d)}}}}codespan(s){let t=this.rules.inline.code.exec(s);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(e),n=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return i&&n&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(s){let t=this.rules.inline.br.exec(s);if(t)return{type:"br",raw:t[0]}}del(s,t,e=""){let i=this.rules.inline.delLDelim.exec(s);if(i&&(!i[1]||!e||this.rules.inline.punctuation.exec(e))){let n=[...i[0]].length-1,r,o,a=n,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*s.length+n);(i=l.exec(t))!=null;){if(r=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!r||(o=[...r].length,o!==n))continue;if(i[3]||i[4]){a+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a);let c=[...i[0]][0].length,h=s.slice(0,n+i.index+c+o),u=h.slice(n,-n);return{type:"del",raw:h,text:u,tokens:this.lexer.inlineTokens(u)}}}}autolink(s){let t=this.rules.inline.autolink.exec(s);if(t){let e,i;return t[2]==="@"?(e=t[1],i="mailto:"+e):(e=t[1],i=e),{type:"link",raw:t[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}url(s){let t;if(t=this.rules.inline.url.exec(s)){let e,i;if(t[2]==="@")e=t[0],i="mailto:"+e;else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0]);e=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(s){let t=this.rules.inline.text.exec(s);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},Y=class tr{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||bt,this.options.tokenizer=this.options.tokenizer||new Ke,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={other:O,block:Ge.normal,inline:se.normal};this.options.pedantic?(e.block=Ge.pedantic,e.inline=se.pedantic):this.options.gfm&&(e.block=Ge.gfm,this.options.breaks?e.inline=se.breaks:e.inline=se.gfm),this.tokenizer.rules=e}static get rules(){return{block:Ge,inline:se}}static lex(t,e){return new tr(e).lex(t)}static lexInline(t,e){return new tr(e).inlineTokens(t)}lex(t){t=t.replace(O.carriageReturn,`
|
|
27
|
+
`),this.blockTokens(t,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let i=this.inlineQueue[e];this.inlineTokens(i.src,i.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,e=[],i=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(O.tabCharGlobal," ").replace(O.spaceLine,""));t;){let n;if(this.options.extensions?.block?.some(o=>(n=o.call({lexer:this},t,e))?(t=t.substring(n.raw.length),e.push(n),!0):!1))continue;if(n=this.tokenizer.space(t)){t=t.substring(n.raw.length);let o=e.at(-1);n.raw.length===1&&o!==void 0?o.raw+=`
|
|
28
|
+
`:e.push(n);continue}if(n=this.tokenizer.code(t)){t=t.substring(n.raw.length);let o=e.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(`
|
|
29
|
+
`)?"":`
|
|
30
|
+
`)+n.raw,o.text+=`
|
|
31
|
+
`+n.text,this.inlineQueue.at(-1).src=o.text):e.push(n);continue}if(n=this.tokenizer.fences(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.heading(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.hr(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.blockquote(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.list(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.html(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.def(t)){t=t.substring(n.raw.length);let o=e.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(`
|
|
32
|
+
`)?"":`
|
|
33
|
+
`)+n.raw,o.text+=`
|
|
34
|
+
`+n.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},e.push(n));continue}if(n=this.tokenizer.table(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.lheading(t)){t=t.substring(n.raw.length),e.push(n);continue}let r=t;if(this.options.extensions?.startBlock){let o=1/0,a=t.slice(1),l;this.options.extensions.startBlock.forEach(c=>{l=c.call({lexer:this},a),typeof l=="number"&&l>=0&&(o=Math.min(o,l))}),o<1/0&&o>=0&&(r=t.substring(0,o+1))}if(this.state.top&&(n=this.tokenizer.paragraph(r))){let o=e.at(-1);i&&o?.type==="paragraph"?(o.raw+=(o.raw.endsWith(`
|
|
35
|
+
`)?"":`
|
|
36
|
+
`)+n.raw,o.text+=`
|
|
37
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):e.push(n),i=r.length!==t.length,t=t.substring(n.raw.length);continue}if(n=this.tokenizer.text(t)){t=t.substring(n.raw.length);let o=e.at(-1);o?.type==="text"?(o.raw+=(o.raw.endsWith(`
|
|
38
|
+
`)?"":`
|
|
39
|
+
`)+n.raw,o.text+=`
|
|
40
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):e.push(n);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){this.tokenizer.lexer=this;let i=t,n=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)l.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,n.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(n=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)r=n[2]?n[2].length:0,i=i.slice(0,n.index+r)+"["+"a".repeat(n[0].length-r-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);i=this.options.hooks?.emStrongMask?.call({lexer:this},i)??i;let o=!1,a="";for(;t;){o||(a=""),o=!1;let l;if(this.options.extensions?.inline?.some(h=>(l=h.call({lexer:this},t,e))?(t=t.substring(l.raw.length),e.push(l),!0):!1))continue;if(l=this.tokenizer.escape(t)){t=t.substring(l.raw.length),e.push(l);continue}if(l=this.tokenizer.tag(t)){t=t.substring(l.raw.length),e.push(l);continue}if(l=this.tokenizer.link(t)){t=t.substring(l.raw.length),e.push(l);continue}if(l=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(l.raw.length);let h=e.at(-1);l.type==="text"&&h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):e.push(l);continue}if(l=this.tokenizer.emStrong(t,i,a)){t=t.substring(l.raw.length),e.push(l);continue}if(l=this.tokenizer.codespan(t)){t=t.substring(l.raw.length),e.push(l);continue}if(l=this.tokenizer.br(t)){t=t.substring(l.raw.length),e.push(l);continue}if(l=this.tokenizer.del(t,i,a)){t=t.substring(l.raw.length),e.push(l);continue}if(l=this.tokenizer.autolink(t)){t=t.substring(l.raw.length),e.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(t))){t=t.substring(l.raw.length),e.push(l);continue}let c=t;if(this.options.extensions?.startInline){let h=1/0,u=t.slice(1),d;this.options.extensions.startInline.forEach(p=>{d=p.call({lexer:this},u),typeof d=="number"&&d>=0&&(h=Math.min(h,d))}),h<1/0&&h>=0&&(c=t.substring(0,h+1))}if(l=this.tokenizer.inlineText(c)){t=t.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(a=l.raw.slice(-1)),o=!0;let h=e.at(-1);h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):e.push(l);continue}if(t){let h="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return e}},Xe=class{options;parser;constructor(s){this.options=s||bt}space(s){return""}code({text:s,lang:t,escaped:e}){let i=(t||"").match(O.notSpaceStart)?.[0],n=s.replace(O.endingNewline,"")+`
|
|
41
|
+
`;return i?'<pre><code class="language-'+Q(i)+'">'+(e?n:Q(n,!0))+`</code></pre>
|
|
42
|
+
`:"<pre><code>"+(e?n:Q(n,!0))+`</code></pre>
|
|
43
|
+
`}blockquote({tokens:s}){return`<blockquote>
|
|
44
|
+
${this.parser.parse(s)}</blockquote>
|
|
45
|
+
`}html({text:s}){return s}def(s){return""}heading({tokens:s,depth:t}){return`<h${t}>${this.parser.parseInline(s)}</h${t}>
|
|
46
|
+
`}hr(s){return`<hr>
|
|
47
|
+
`}list(s){let t=s.ordered,e=s.start,i="";for(let o=0;o<s.items.length;o++){let a=s.items[o];i+=this.listitem(a)}let n=t?"ol":"ul",r=t&&e!==1?' start="'+e+'"':"";return"<"+n+r+`>
|
|
48
|
+
`+i+"</"+n+`>
|
|
49
|
+
`}listitem(s){return`<li>${this.parser.parse(s.tokens)}</li>
|
|
50
|
+
`}checkbox({checked:s}){return"<input "+(s?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:s}){return`<p>${this.parser.parseInline(s)}</p>
|
|
51
|
+
`}table(s){let t="",e="";for(let n=0;n<s.header.length;n++)e+=this.tablecell(s.header[n]);t+=this.tablerow({text:e});let i="";for(let n=0;n<s.rows.length;n++){let r=s.rows[n];e="";for(let o=0;o<r.length;o++)e+=this.tablecell(r[o]);i+=this.tablerow({text:e})}return i&&(i=`<tbody>${i}</tbody>`),`<table>
|
|
52
|
+
<thead>
|
|
53
|
+
`+t+`</thead>
|
|
54
|
+
`+i+`</table>
|
|
55
|
+
`}tablerow({text:s}){return`<tr>
|
|
56
|
+
${s}</tr>
|
|
57
|
+
`}tablecell(s){let t=this.parser.parseInline(s.tokens),e=s.header?"th":"td";return(s.align?`<${e} align="${s.align}">`:`<${e}>`)+t+`</${e}>
|
|
58
|
+
`}strong({tokens:s}){return`<strong>${this.parser.parseInline(s)}</strong>`}em({tokens:s}){return`<em>${this.parser.parseInline(s)}</em>`}codespan({text:s}){return`<code>${Q(s,!0)}</code>`}br(s){return"<br>"}del({tokens:s}){return`<del>${this.parser.parseInline(s)}</del>`}link({href:s,title:t,tokens:e}){let i=this.parser.parseInline(e),n=Fa(s);if(n===null)return i;s=n;let r='<a href="'+s+'"';return t&&(r+=' title="'+Q(t)+'"'),r+=">"+i+"</a>",r}image({href:s,title:t,text:e,tokens:i}){i&&(e=this.parser.parseInline(i,this.parser.textRenderer));let n=Fa(s);if(n===null)return Q(e);s=n;let r=`<img src="${s}" alt="${Q(e)}"`;return t&&(r+=` title="${Q(t)}"`),r+=">",r}text(s){return"tokens"in s&&s.tokens?this.parser.parseInline(s.tokens):"escaped"in s&&s.escaped?s.text:Q(s.text)}},hr=class{strong({text:s}){return s}em({text:s}){return s}codespan({text:s}){return s}del({text:s}){return s}html({text:s}){return s}text({text:s}){return s}link({text:s}){return""+s}image({text:s}){return""+s}br(){return""}checkbox({raw:s}){return s}},K=class er{options;renderer;textRenderer;constructor(t){this.options=t||bt,this.options.renderer=this.options.renderer||new Xe,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new hr}static parse(t,e){return new er(e).parse(t)}static parseInline(t,e){return new er(e).parseInline(t)}parse(t){this.renderer.parser=this;let e="";for(let i=0;i<t.length;i++){let n=t[i];if(this.options.extensions?.renderers?.[n.type]){let o=n,a=this.options.extensions.renderers[o.type].call({parser:this},o);if(a!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(o.type)){e+=a||"";continue}}let r=n;switch(r.type){case"space":{e+=this.renderer.space(r);break}case"hr":{e+=this.renderer.hr(r);break}case"heading":{e+=this.renderer.heading(r);break}case"code":{e+=this.renderer.code(r);break}case"table":{e+=this.renderer.table(r);break}case"blockquote":{e+=this.renderer.blockquote(r);break}case"list":{e+=this.renderer.list(r);break}case"checkbox":{e+=this.renderer.checkbox(r);break}case"html":{e+=this.renderer.html(r);break}case"def":{e+=this.renderer.def(r);break}case"paragraph":{e+=this.renderer.paragraph(r);break}case"text":{e+=this.renderer.text(r);break}default:{let o='Token with "'+r.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return e}parseInline(t,e=this.renderer){this.renderer.parser=this;let i="";for(let n=0;n<t.length;n++){let r=t[n];if(this.options.extensions?.renderers?.[r.type]){let a=this.options.extensions.renderers[r.type].call({parser:this},r);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(r.type)){i+=a||"";continue}}let o=r;switch(o.type){case"escape":{i+=e.text(o);break}case"html":{i+=e.html(o);break}case"link":{i+=e.link(o);break}case"image":{i+=e.image(o);break}case"checkbox":{i+=e.checkbox(o);break}case"strong":{i+=e.strong(o);break}case"em":{i+=e.em(o);break}case"codespan":{i+=e.codespan(o);break}case"br":{i+=e.br(o);break}case"del":{i+=e.del(o);break}case"text":{i+=e.text(o);break}default:{let a='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return i}},ne=class{options;block;constructor(s){this.options=s||bt}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(s){return s}postprocess(s){return s}processAllTokens(s){return s}emStrongMask(s){return s}provideLexer(){return this.block?Y.lex:Y.lexInline}provideParser(){return this.block?K.parse:K.parseInline}},Mp=class{defaults=sr();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=K;Renderer=Xe;TextRenderer=hr;Lexer=Y;Tokenizer=Ke;Hooks=ne;constructor(...s){this.use(...s)}walkTokens(s,t){let e=[];for(let i of s)switch(e=e.concat(t.call(this,i)),i.type){case"table":{let n=i;for(let r of n.header)e=e.concat(this.walkTokens(r.tokens,t));for(let r of n.rows)for(let o of r)e=e.concat(this.walkTokens(o.tokens,t));break}case"list":{let n=i;e=e.concat(this.walkTokens(n.items,t));break}default:{let n=i;this.defaults.extensions?.childTokens?.[n.type]?this.defaults.extensions.childTokens[n.type].forEach(r=>{let o=n[r].flat(1/0);e=e.concat(this.walkTokens(o,t))}):n.tokens&&(e=e.concat(this.walkTokens(n.tokens,t)))}}return e}use(...s){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return s.forEach(e=>{let i={...e};if(i.async=this.defaults.async||i.async||!1,e.extensions&&(e.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let r=t.renderers[n.name];r?t.renderers[n.name]=function(...o){let a=n.renderer.apply(this,o);return a===!1&&(a=r.apply(this,o)),a}:t.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let r=t[n.level];r?r.unshift(n.tokenizer):t[n.level]=[n.tokenizer],n.start&&(n.level==="block"?t.startBlock?t.startBlock.push(n.start):t.startBlock=[n.start]:n.level==="inline"&&(t.startInline?t.startInline.push(n.start):t.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(t.childTokens[n.name]=n.childTokens)}),i.extensions=t),e.renderer){let n=this.defaults.renderer||new Xe(this.defaults);for(let r in e.renderer){if(!(r in n))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let o=r,a=e.renderer[o],l=n[o];n[o]=(...c)=>{let h=a.apply(n,c);return h===!1&&(h=l.apply(n,c)),h||""}}i.renderer=n}if(e.tokenizer){let n=this.defaults.tokenizer||new Ke(this.defaults);for(let r in e.tokenizer){if(!(r in n))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let o=r,a=e.tokenizer[o],l=n[o];n[o]=(...c)=>{let h=a.apply(n,c);return h===!1&&(h=l.apply(n,c)),h}}i.tokenizer=n}if(e.hooks){let n=this.defaults.hooks||new ne;for(let r in e.hooks){if(!(r in n))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let o=r,a=e.hooks[o],l=n[o];ne.passThroughHooks.has(r)?n[o]=c=>{if(this.defaults.async&&ne.passThroughHooksRespectAsync.has(r))return(async()=>{let u=await a.call(n,c);return l.call(n,u)})();let h=a.call(n,c);return l.call(n,h)}:n[o]=(...c)=>{if(this.defaults.async)return(async()=>{let u=await a.apply(n,c);return u===!1&&(u=await l.apply(n,c)),u})();let h=a.apply(n,c);return h===!1&&(h=l.apply(n,c)),h}}i.hooks=n}if(e.walkTokens){let n=this.defaults.walkTokens,r=e.walkTokens;i.walkTokens=function(o){let a=[];return a.push(r.call(this,o)),n&&(a=a.concat(n.call(this,o))),a}}this.defaults={...this.defaults,...i}}),this}setOptions(s){return this.defaults={...this.defaults,...s},this}lexer(s,t){return Y.lex(s,t??this.defaults)}parser(s,t){return K.parse(s,t??this.defaults)}parseMarkdown(s){return(t,e)=>{let i={...e},n={...this.defaults,...i},r=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&i.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(n.hooks&&(n.hooks.options=n,n.hooks.block=s),n.async)return(async()=>{let o=n.hooks?await n.hooks.preprocess(t):t,a=await(n.hooks?await n.hooks.provideLexer():s?Y.lex:Y.lexInline)(o,n),l=n.hooks?await n.hooks.processAllTokens(a):a;n.walkTokens&&await Promise.all(this.walkTokens(l,n.walkTokens));let c=await(n.hooks?await n.hooks.provideParser():s?K.parse:K.parseInline)(l,n);return n.hooks?await n.hooks.postprocess(c):c})().catch(r);try{n.hooks&&(t=n.hooks.preprocess(t));let o=(n.hooks?n.hooks.provideLexer():s?Y.lex:Y.lexInline)(t,n);n.hooks&&(o=n.hooks.processAllTokens(o)),n.walkTokens&&this.walkTokens(o,n.walkTokens);let a=(n.hooks?n.hooks.provideParser():s?K.parse:K.parseInline)(o,n);return n.hooks&&(a=n.hooks.postprocess(a)),a}catch(o){return r(o)}}}onError(s,t){return e=>{if(e.message+=`
|
|
59
|
+
Please report this to https://github.com/markedjs/marked.`,s){let i="<p>An error occurred:</p><pre>"+Q(e.message+"",!0)+"</pre>";return t?Promise.resolve(i):i}if(t)return Promise.reject(e);throw e}}},gt=new Mp;x.options=x.setOptions=function(s){return gt.setOptions(s),x.defaults=gt.defaults,Ha(x.defaults),x};x.getDefaults=sr;x.defaults=bt;x.use=function(...s){return gt.use(...s),x.defaults=gt.defaults,Ha(x.defaults),x};x.walkTokens=function(s,t){return gt.walkTokens(s,t)};x.parseInline=gt.parseInline;x.Parser=K;x.parser=K.parse;x.Renderer=Xe;x.TextRenderer=hr;x.Lexer=Y;x.lexer=Y.lex;x.Tokenizer=Ke;x.Hooks=ne;x.parse=x;bw=x.options,vw=x.setOptions,yw=x.use,ww=x.walkTokens,Aw=x.parseInline,Ew=K.parse,kw=Y.lex});var _p={};function ur(s){return s.trim()?et(x.parseInline(s,{gfm:!0})):""}function tl(s,t,e){s.dispatchEvent(new CustomEvent("markdown-editable:change",{bubbles:!0,detail:{value:t,html:e}}))}function Np(s){s.contentEditable="true",s.setAttribute("role","textbox"),s.setAttribute("aria-multiline","false");let t=s.textContent.trim();s.dataset.markdownValue=t,t&&(s.innerHTML=ur(t));let e=!1;s.addEventListener("compositionstart",()=>{e=!0}),s.addEventListener("compositionend",()=>{e=!1}),s.addEventListener("focus",()=>{if(e)return;let i=s.dataset.markdownValue||"";s.textContent=i,s.setAttribute("data-md-editing",""),requestAnimationFrame(()=>{let n=window.getSelection();n&&s.childNodes.length&&n.collapse(s.childNodes[s.childNodes.length-1],s.textContent.length)})}),s.addEventListener("blur",()=>{if(e)return;let i=s.textContent.trim(),n=s.dataset.markdownValue;s.dataset.markdownValue=i,s.removeAttribute("data-md-editing"),i?s.innerHTML=ur(i):s.textContent="",i!==n&&tl(s,i,s.innerHTML)})}function qp(s){let t=s.dataset.preview?document.getElementById(s.dataset.preview):null;t||(t=document.createElement("output"),t.className="md-editable-preview",t.setAttribute("aria-label","Markdown preview"),s.after(t));function e(){let i=ur(s.value);return t.innerHTML=i,i}s.addEventListener("blur",()=>{let i=e();tl(s,s.value,i)}),s.value.trim()&&e()}function Dp(s){if(s.hasAttribute("data-markdown-editable-init"))return;s.setAttribute("data-markdown-editable-init","");let t=s.tagName;t==="TEXTAREA"||t==="INPUT"?qp(s):Np(s)}var $p,el=$(()=>{z();Qa();Ot();$p="[data-markdown-editable]";L($p,Dp)});var Ip={};var sl=$(()=>{document.querySelectorAll("header[data-scroll-hide]").forEach(s=>{let t=0,e=!1,i=s.closest("main")??window,n=()=>i===window?window.scrollY:i.scrollTop,r=()=>{let o=n(),a=o-t;!e&&a>0&&o>80?(s.setAttribute("data-hidden",""),e=!0):e&&a<-40&&(s.removeAttribute("data-hidden"),e=!1),t=o};i.addEventListener("scroll",r,{passive:!0})})});var nl={};j(nl,{activateTrap:()=>oe,deactivateTrap:()=>ts,initFocusTraps:()=>dr});function dr(s=document){s.querySelectorAll(Qe).forEach(t=>oe(t))}function oe(s){if(Lt.has(s))return;let t=document.activeElement,e=s.getAttribute("data-focus-trap")==="no-autofocus";function i(r){if(r.key!=="Tab")return;let o=il(s);if(!o.length)return;let a=o[0],l=o[o.length-1],c=document.activeElement;r.shiftKey&&c===a?(r.preventDefault(),l.focus()):!r.shiftKey&&c===l&&(r.preventDefault(),a.focus())}s.addEventListener("keydown",i);let n=()=>{s.removeEventListener("keydown",i)};Lt.set(s,{cleanup:n,previousFocus:t}),e||requestAnimationFrame(()=>{let r=s.querySelector("[autofocus]");if(r)r.focus();else{let o=il(s);o.length&&o[0].focus()}})}function ts(s){let t=Lt.get(s);t&&(t.cleanup(),Lt.delete(s),t.previousFocus&&t.previousFocus.isConnected&&t.previousFocus.focus())}function il(s){return[...s.querySelectorAll(Bp)].filter(t=>t.offsetParent!==null)}var Qe,Bp,Lt,Rp,rl=$(()=>{Qe="[data-focus-trap]",Bp='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])',Lt=new WeakMap;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>dr()):dr();Rp=new MutationObserver(s=>{for(let t of s){for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(Qe)&&oe(i),i.querySelectorAll(Qe).forEach(n=>oe(n))}for(let e of t.removedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;Lt.has(i)&&ts(i),i.querySelectorAll(Qe).forEach(n=>{Lt.has(n)&&ts(n)})}if(t.type==="attributes"&&t.attributeName==="data-focus-trap"){let e=t.target;e.hasAttribute("data-focus-trap")?oe(e):ts(e)}}});Rp.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-focus-trap"]})});var ll={};j(ll,{initResponsiveImages:()=>al});function Pp(s,t){let e=s.lastIndexOf(".");if(e===-1)return"";let i=s.substring(0,e),n=s.substring(e);return t.map(r=>`${i}-${r}${n} ${r}w`).join(", ")}function Fp(s){let t=document.createElement("span");t.setAttribute("aria-hidden","true"),Object.assign(t.style,{position:"absolute",top:"4px",left:"4px",padding:"2px 6px",fontSize:"11px",fontFamily:"monospace",lineHeight:"1.4",background:"oklch(0.15 0 0 / 0.8)",color:"#0f0",borderRadius:"3px",zIndex:"1",pointerEvents:"none"});function e(){let r=(s.currentSrc||s.src).split("/").pop(),o=s.naturalWidth;t.textContent=`${r} (${o}px)`}s.addEventListener("load",e),s.complete&&e();let i=s.parentElement;return getComputedStyle(i).position==="static"&&(i.style.position="relative"),i.insertBefore(t,s),t}function jp(s){new ResizeObserver(e=>{for(let i of e){let n=Math.round(i.contentBoxSize?.[0]?.inlineSize??i.contentRect.width);n>0&&(s.sizes=`${n}px`)}}).observe(s)}function al(s){if(ol.has(s))return;ol.add(s);let t=s.getAttribute("data-responsive");if(t){let e=t.split(",").map(i=>parseInt(i.trim(),10)).filter(i=>i>0);e.length&&s.src&&(s.srcset=Pp(s.src,e))}s.srcset&&s.srcset.includes("w")&&jp(s),s.hasAttribute("loading")||(s.loading="lazy"),s.hasAttribute("decoding")||(s.decoding="async"),s.hasAttribute("data-responsive-debug")&&Fp(s)}var Op,ol,cl=$(()=>{z();Op="img[data-responsive]",ol=new WeakSet;L(Op,al)});var ul={};j(ul,{activate:()=>pr,deactivate:()=>es});function pr(s){if(s.getAttribute("aria-busy")==="true")return;s._vbLoadingOriginal=s.innerHTML,s._vbLoadingWidth=s.offsetWidth,s.style.minInlineSize=`${s._vbLoadingWidth}px`;let t=s.getAttribute("data-loading"),e='<span class="vb-btn-spinner" aria-hidden="true"></span>';s.innerHTML=t?`${e} ${t}`:e,s.setAttribute("aria-busy","true"),s.disabled=!0,s.dataset.loadingActive="";let i=parseInt(s.getAttribute("data-loading-timeout"),10)||Hp;s._vbLoadingTimer=setTimeout(()=>es(s),i)}function es(s){s.getAttribute("aria-busy")==="true"&&(clearTimeout(s._vbLoadingTimer),s._vbLoadingOriginal!=null&&(s.innerHTML=s._vbLoadingOriginal,delete s._vbLoadingOriginal),s.style.minInlineSize="",s.removeAttribute("aria-busy"),s.disabled=!1,delete s.dataset.loadingActive)}function Vp(s){if(hl.has(s))return;hl.add(s);let t=s.closest("form");t&&(s.type==="submit"||!s.type)&&(t.addEventListener("submit",()=>pr(s)),new MutationObserver(()=>{!t.hasAttribute("data-submitting")&&s.getAttribute("aria-busy")==="true"&&es(s)}).observe(t,{attributes:!0,attributeFilter:["data-submitting"]})),new MutationObserver(()=>{s.hasAttribute("data-loading-active")?pr(s):s.getAttribute("aria-busy")==="true"&&es(s)}).observe(s,{attributes:!0,attributeFilter:["data-loading-active"]})}var zp,hl,Hp,dl=$(()=>{z();zp="button[data-loading]",hl=new WeakSet,Hp=1e4;L(zp,Vp)});var fl={};j(fl,{initFloatingLabels:()=>ml});function ml(s){if(pl.has(s))return;pl.add(s);let t=s.querySelector("input, textarea, select");t&&(t.hasAttribute("placeholder")||t.setAttribute("placeholder"," "),s.setAttribute("data-floating-label-ready",""))}var Up,pl,gl=$(()=>{z();Up="form-field[data-floating-label]",pl=new WeakSet;L(Up,ml)});var Al={};j(Al,{getHotkeyActions:()=>wl});function Gp(s){if(bl.has(s))return;bl.add(s);let t=s.getAttribute("data-hotkey");if(!t)return;let e=s.getAttribute("data-hotkey-action")||"click",i=vl[e]||vl.click,n=s.hasAttribute("data-hotkey-global"),r=s.getAttribute("data-hotkey-label")||s.textContent?.trim()||t,o=s.getAttribute("data-hotkey-group")||"Page Actions",a=W(t,()=>i(s),{global:n});yl.set(s,{combo:t,label:r,group:o,unbind:a}),document.dispatchEvent(new CustomEvent("vb:command-registry-change",{detail:{action:"add",element:s}}))}function wl(){let s=new Map;for(let[t,e]of yl){if(t.hidden||t.closest("[hidden]"))continue;let i=s.get(e.group)||[];i.push({label:e.label,shortcut:e.combo,element:t}),s.set(e.group,i)}return s}var Wp,bl,yl,vl,El=$(()=>{z();lt();Wp="[data-hotkey]:not(kbd)",bl=new WeakSet,yl=new Map,vl={click(s){s.click()},focus(s){s.focus()},submit(s){let t=s.closest("form")||(s.tagName==="FORM"?s:null);t&&t.requestSubmit()},toggle(s){"open"in s?s.open=!s.open:s.hasAttribute("hidden")?s.removeAttribute("hidden"):s.setAttribute("hidden","")}};typeof window<"u"&&(window.__hotkeyActionRegistry={getHotkeyActions:wl});L(Wp,Gp)});var Cl={};j(Cl,{initProgressRings:()=>fr});function xl(s){let t=s.max||100,e=s.value;return t>0?Math.round(e/t*100):0}function Sl(s){let t=xl(s);s.style.setProperty("--progress",String(t));let e=s.parentElement?.querySelector(".progress-ring-label");e&&!s.dataset.label&&(e.textContent=t+"%")}function mr(s){if(s.hasAttribute("data-enhanced"))return;s.setAttribute("data-enhanced",""),Sl(s);let t=s.dataset.label,e=t==="none",i=!s.hasAttribute("value");if(!e&&!i){let n=document.createElement("div");n.className="progress-ring-wrap";let r=s.dataset.size;r&&kl[r]&&n.style.setProperty("--progress-ring-size",kl[r]),s.parentNode.insertBefore(n,s),n.appendChild(s);let o=document.createElement("span");o.className="progress-ring-label",o.textContent=t||xl(s)+"%",o.setAttribute("aria-hidden","true"),n.appendChild(o)}}function fr(s=document){s.querySelectorAll(ss).forEach(t=>mr(t))}var ss,kl,Yp,Tl=$(()=>{ss='progress[data-type="ring"]',kl={xs:"2em",s:"3em",m:"4em",l:"6em",xl:"8em"};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>fr()):fr();Yp=new MutationObserver(s=>{for(let t of s){for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(ss)&&mr(i),i.querySelectorAll(ss).forEach(n=>mr(n))}if(t.type==="attributes"&&t.attributeName==="value"){let e=t.target;e.matches(ss)&&e.hasAttribute("data-enhanced")&&Sl(e)}}});Yp.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]})});var Ml={};j(Ml,{initMobileForms:()=>Ll});function Ll(s=document){return()=>{}}var $l=$(()=>{typeof document<"u"&&Ll()});var rt=new Map,is=new Map;var yr=null;function wr(){if(typeof window<"u"&&window.__VB_THEME_BASE)return String(window.__VB_THEME_BASE).replace(/\/$/,"");if(yr)return yr;if(typeof document<"u"){let s=document.querySelectorAll('script[src*="vanilla-breeze"]');for(let t of s){let e=t.getAttribute("src");if(e){let i=e.lastIndexOf("/");if(i!==-1)return e.slice(0,i)}}}return"/cdn"}var _l=new Set(["default","a11y-high-contrast","a11y-large-text","a11y-dyslexia","modern","minimal","classic"]),Il=new Set(["kawaii","retro","memphis"]);function ns(s){return Il.has(s)}function Bl(s,t){return`${t}/themes/${s}.css`}function Ar(s,t){if(!ns(s))return Promise.resolve();if(is.has(s))return is.get(s);let e=import(`${t}/packs/${s}.full.js`).catch(()=>{});return is.set(s,e),e}function Rl(s,t){let e=wr(),i=()=>{(ns(t)||s.hasAttribute("data-vb-pack"))&&Ar(t,e)};return s.getAttribute("data-vb-theme-state")==="error"?Promise.reject(new Error(`Failed to load theme: ${t}`)):s.getAttribute("data-vb-theme-state")==="ready"||s.sheet?(i(),Promise.resolve()):new Promise((n,r)=>{let o=()=>{s.setAttribute("data-vb-theme-state","ready"),l(),i(),n()},a=()=>{s.setAttribute("data-vb-theme-state","error"),rt.delete(t),l(),r(new Error(`Failed to load theme: ${t}`))},l=()=>{s.removeEventListener("load",o),s.removeEventListener("error",a)};s.addEventListener("load",o,{once:!0}),s.addEventListener("error",a,{once:!0})})}async function rs(s){if(!s||_l.has(s))return;if(rt.has(s))return rt.get(s);if(typeof document<"u"){let i=document.querySelector(`link[data-vb-theme="${s}"]`);if(i){let n=Rl(i,s);return rt.set(s,n),n}}let t=wr(),e=ns(s)?Pl(s,t):Ol(s,t);return rt.set(s,e),e}async function Ol(s,t){let e=Bl(s,t);return new Promise((i,n)=>{let r=document.querySelector(`link[data-vb-theme-preload="${s}"]`);r&&r.remove();let o=document.createElement("link");o.rel="stylesheet",o.href=e,o.setAttribute("data-vb-theme",s),o.setAttribute("data-vb-theme-state","loading"),o.onload=()=>{o.setAttribute("data-vb-theme-state","ready"),i()},o.onerror=()=>{o.setAttribute("data-vb-theme-state","error"),o.remove(),rt.delete(s),n(new Error(`Failed to load theme: ${s}`))},document.head.appendChild(o)})}function Pl(s,t){let e=`${t}/themes/${s}.css`;return new Promise((i,n)=>{let r=document.querySelector(`link[data-vb-theme-preload="${s}"]`);r&&r.remove();let o=document.createElement("link");o.rel="stylesheet",o.href=e,o.setAttribute("data-vb-theme",s),o.setAttribute("data-vb-pack",s),o.setAttribute("data-vb-theme-state","loading"),o.onload=()=>{o.setAttribute("data-vb-theme-state","ready"),Ar(s,t),i()},o.onerror=()=>{o.setAttribute("data-vb-theme-state","error"),o.remove(),rt.delete(s),n(new Error(`Failed to load pack: ${s}`))},document.head.appendChild(o)})}var os=[{id:"auto",name:"Auto",icon:"monitor"},{id:"light",name:"Light",icon:"sun"},{id:"dark",name:"Dark",icon:"moon"}],Nt=[{id:"default",name:"Default",swatchBg:"#3b82f6",seeds:{}},{id:"ocean",name:"Ocean",swatchBg:"#0891b2",seeds:{"--hue-primary":200,"--hue-secondary":180,"--hue-accent":45,"--lightness-primary":"50%","--chroma-primary":.15,"--lightness-secondary":"45%","--chroma-secondary":.1,"--lightness-accent":"70%","--chroma-accent":.15},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.12}},{id:"forest",name:"Forest",swatchBg:"#059669",seeds:{"--hue-primary":145,"--hue-secondary":90,"--hue-accent":30,"--lightness-primary":"45%","--chroma-primary":.15,"--lightness-secondary":"55%","--chroma-secondary":.12,"--lightness-accent":"65%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"55%","--chroma-primary":.12}},{id:"sunset",name:"Sunset",swatchBg:"#ea580c",seeds:{"--hue-primary":25,"--hue-secondary":0,"--hue-accent":280,"--lightness-primary":"60%","--chroma-primary":.2,"--lightness-secondary":"55%","--chroma-secondary":.18,"--lightness-accent":"55%","--chroma-accent":.18},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.16}},{id:"rose",name:"Rose",swatchBg:"#e11d48",seeds:{"--hue-primary":350,"--hue-secondary":330,"--hue-accent":200,"--lightness-primary":"55%","--chroma-primary":.18,"--lightness-secondary":"50%","--chroma-secondary":.14,"--lightness-accent":"60%","--chroma-accent":.12},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.14}},{id:"lavender",name:"Lavender",swatchBg:"#a855f7",seeds:{"--hue-primary":280,"--hue-secondary":300,"--hue-accent":60,"--lightness-primary":"55%","--chroma-primary":.14,"--lightness-secondary":"50%","--chroma-secondary":.12,"--lightness-accent":"70%","--chroma-accent":.14},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.12}},{id:"coral",name:"Coral",swatchBg:"#f97316",seeds:{"--hue-primary":15,"--hue-secondary":25,"--hue-accent":180,"--lightness-primary":"60%","--chroma-primary":.18,"--lightness-secondary":"55%","--chroma-secondary":.15,"--lightness-accent":"55%","--chroma-accent":.12},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.15}},{id:"slate",name:"Slate",swatchBg:"#64748b",seeds:{"--hue-primary":220,"--hue-secondary":210,"--hue-accent":45,"--lightness-primary":"48%","--chroma-primary":.1,"--lightness-secondary":"45%","--chroma-secondary":.06,"--lightness-accent":"68%","--chroma-accent":.15},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.08}},{id:"emerald",name:"Emerald",swatchBg:"#10b981",seeds:{"--hue-primary":160,"--hue-secondary":140,"--hue-accent":30,"--lightness-primary":"50%","--chroma-primary":.15,"--lightness-secondary":"48%","--chroma-secondary":.12,"--lightness-accent":"65%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.12}},{id:"amber",name:"Amber",swatchBg:"#f59e0b",seeds:{"--hue-primary":45,"--hue-secondary":30,"--hue-accent":240,"--lightness-primary":"60%","--chroma-primary":.16,"--lightness-secondary":"55%","--chroma-secondary":.15,"--lightness-accent":"52%","--chroma-accent":.14},seedsDark:{"--lightness-primary":"68%","--chroma-primary":.14}},{id:"indigo",name:"Indigo",swatchBg:"#6366f1",seeds:{"--hue-primary":250,"--hue-secondary":270,"--hue-accent":35,"--lightness-primary":"48%","--chroma-primary":.18,"--lightness-secondary":"45%","--chroma-secondary":.14,"--lightness-accent":"68%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"62%","--chroma-primary":.14}}],le=[{id:"modern",name:"Modern",hue:270,shape:"rounded",character:"Vibrant & elevated",swatchBg:"#6366f1",tier:"core"},{id:"minimal",name:"Minimal",hue:240,shape:"sharp",character:"Clean & flat",swatchBg:"#71717a",tier:"core"},{id:"classic",name:"Classic",hue:220,shape:"subtle",character:"Serif & elegant",swatchBg:"#92400e",tier:"core"}],as=[{id:"swiss",name:"Swiss",icon:"grid-3x3",character:"Precision grid",swatchBg:"#ff3e00",swatchFg:"white",tier:"showcase",category:"Design"},{id:"brutalist",name:"Brutalist",icon:"square",character:"Raw, industrial",swatchBg:"#1a1a1a",swatchFg:"#f5f5f5",tier:"showcase",category:"Design"},{id:"art-deco",name:"Art Deco",icon:"crown",character:"1920s luxury",swatchBg:"#1A1A1A",swatchFg:"#C9A84C",tier:"showcase",category:"Design"},{id:"editorial",name:"Editorial",icon:"newspaper",character:"Magazine elegance",swatchBg:"#1a1a1a",swatchFg:"#c9a227",tier:"showcase",category:"Content"},{id:"genai",name:"GenAI",icon:"sparkles",character:"AI aesthetic",swatchBg:"#1a0a2e",swatchFg:"#a855f7",tier:"showcase",category:"Modern"},{id:"glassmorphism",name:"Glass",icon:"glass-water",character:"Frosted surfaces",swatchBg:"#667eea",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"startup",name:"Startup",icon:"rocket",character:"SaaS energy",swatchBg:"#4f46e5",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"organic",name:"Organic",icon:"leaf",character:"Natural, handcrafted",swatchBg:"#2d5016",swatchFg:"#faf5e6",tier:"showcase",category:"Creative"},{id:"rough",name:"Rough",icon:"pencil",character:"Hand-drawn sketch",swatchBg:"#f5f0e8",swatchFg:"#3a3a3a",tier:"showcase",category:"Creative"},{id:"cyber",name:"Cyber",icon:"zap",character:"Neon futuristic",swatchBg:"#0a0a1a",swatchFg:"#00ff88",tier:"showcase",category:"Creative"},{id:"vaporwave",name:"Vaporwave",icon:"radio",character:"Neon dreamy",swatchBg:"#2b0040",swatchFg:"#ff6ad5",tier:"showcase",category:"Aesthetic"},{id:"neumorphism",name:"Neumorph",icon:"circle",character:"Soft embossed",swatchBg:"#e0e0e0",swatchFg:"#a0a0a0",tier:"showcase",category:"Aesthetic"},{id:"bauhaus",name:"Bauhaus",icon:"shapes",character:"Geometric",swatchBg:"#F1FAEE",swatchFg:"#E63946",tier:"showcase",category:"Aesthetic"},{id:"claymorphism",name:"Clay",icon:"circle-dot",character:"Puffy 3D",swatchBg:"#f0f0f5",swatchFg:"#FF6B9D",tier:"showcase",category:"Aesthetic"},{id:"alpha1999",name:"Alpha1999",icon:"orbit",character:"Space retro-fi",swatchBg:"#0a0a14",swatchFg:"#d4880f",tier:"showcase",category:"Signature"},{id:"super2026",name:"Super2026",icon:"triangle",character:"Supergraphic bold",swatchBg:"#f5f0e6",swatchFg:"#c23616",tier:"showcase",category:"Signature"},{id:"win9x",name:"Win9x",icon:"monitor",character:"Classic desktop",swatchBg:"#008080",swatchFg:"#c0c0c0",tier:"showcase",category:"OS Styles"},{id:"nes",name:"NES",icon:"joystick",character:"Console pixels",swatchBg:"#bcbcbc",swatchFg:"#e40521",tier:"showcase",category:"OS Styles"},{id:"8bit",name:"8-Bit",icon:"gamepad-2",character:"Retro pixel art",swatchBg:"#000080",swatchFg:"#ffff00",tier:"showcase",category:"OS Styles"},{id:"magna",name:"Magna",icon:"orbit",character:"Odyssey 2 retro",swatchBg:"#0d0b14",swatchFg:"#f97316",tier:"showcase",category:"OS Styles"}],qt=[{id:"nord",name:"Nord",icon:"snowflake",character:"Arctic calm",swatchBg:"#2E3440",swatchFg:"#81A1C1",tier:"community",category:"Editor Palettes"},{id:"solarized",name:"Solarized",icon:"sun-dim",character:"Engineered precision",swatchBg:"#002B36",swatchFg:"#268BD2",tier:"community",category:"Editor Palettes"},{id:"dracula",name:"Dracula",icon:"moon-star",character:"Dark elegance",swatchBg:"#282A36",swatchFg:"#BD93F9",tier:"community",category:"Editor Palettes"},{id:"catppuccin-mocha",name:"Catppuccin",icon:"coffee",character:"Warm pastels",swatchBg:"#1E1E2E",swatchFg:"#CBA6F7",tier:"community",category:"Editor Palettes"},{id:"catppuccin-latte",name:"Ctp Latte",icon:"coffee",character:"Cozy daytime",swatchBg:"#eff1f5",swatchFg:"#8839ef",tier:"community",category:"Editor Palettes"},{id:"catppuccin-frappe",name:"Ctp Frapp\xE9",icon:"coffee",character:"Cool twilight",swatchBg:"#303446",swatchFg:"#ca9ee6",tier:"community",category:"Editor Palettes"},{id:"catppuccin-macchiato",name:"Ctp Macchiato",icon:"coffee",character:"Deep blue",swatchBg:"#24273a",swatchFg:"#c6a0f6",tier:"community",category:"Editor Palettes"},{id:"gruvbox",name:"Gruvbox",icon:"palette",character:"Retro warmth",swatchBg:"#282828",swatchFg:"#ebdbb2",tier:"community",category:"Editor Palettes"},{id:"tokyo-night",name:"Tokyo Night",icon:"moon",character:"Night-owl vibes",swatchBg:"#1a1b26",swatchFg:"#7aa2f7",tier:"community",category:"Editor Palettes"},{id:"rose-pine",name:"Ros\xE9 Pine",icon:"flower-2",character:"Muted elegance",swatchBg:"#191724",swatchFg:"#ebbcba",tier:"community",category:"Editor Palettes"},{id:"cottagecore",name:"Cottagecore",icon:"flower-2",character:"Pastoral",swatchBg:"#fdf8f0",swatchFg:"#7d8c6d",tier:"community",category:"Niche"},{id:"terminal",name:"Terminal",icon:"terminal",character:"Retro CRT",swatchBg:"#0d1117",swatchFg:"#00ff00",tier:"community",category:"Niche"},{id:"clinical",name:"Clinical",icon:"heart-pulse",character:"Sterile precision",swatchBg:"#ffffff",swatchFg:"#0077b6",tier:"community",category:"Industry"},{id:"financial",name:"Financial",icon:"landmark",character:"Navy + gold",swatchBg:"#1b2a4a",swatchFg:"#c9a84c",tier:"community",category:"Industry"},{id:"government",name:"Government",icon:"shield",character:"Official",swatchBg:"#002868",swatchFg:"#bf0a30",tier:"community",category:"Industry"},{id:"dawn",name:"Dawn",icon:"sunrise",character:"Golden morning",swatchBg:"#fef3e2",swatchFg:"#d4a574",tier:"community",category:"Mood/Time"},{id:"dusk",name:"Dusk",icon:"sunset",character:"Twilight",swatchBg:"#1a1b2e",swatchFg:"#e5a858",tier:"community",category:"Mood/Time"},{id:"midnight",name:"Midnight",icon:"moon",character:"Deep night",swatchBg:"#0d1117",swatchFg:"#58a6ff",tier:"community",category:"Mood/Time"},{id:"high-noon",name:"High Noon",icon:"sun",character:"Maximum bright",swatchBg:"#ffffff",swatchFg:"#e63946",tier:"community",category:"Mood/Time"}],Er=[{id:"kawaii",name:"Kawaii",icon:"heart",character:"Cute aesthetic",swatchBg:"#ffb7c5",swatchFg:"#ff69b4",tier:"showcase",category:"Packs"},{id:"retro",name:"Retro",icon:"tv",character:"CRT terminal",swatchBg:"#0a0a14",swatchFg:"#00ff66",tier:"showcase",category:"Packs"},{id:"memphis",name:"Memphis",icon:"star",character:"Bold patterns",swatchBg:"#FFF8F0",swatchFg:"#d03040",tier:"showcase",category:"Packs"}],ls=[{id:"",name:"Fixed",icon:"ruler",description:"Static token values"},{id:"default",name:"Fluid",icon:"move-diagonal-2",description:"Smooth viewport scaling"},{id:"compact",name:"Compact",icon:"minimize-2",description:"Tighter fluid range"},{id:"spacious",name:"Spacious",icon:"maximize-2",description:"Generous fluid range"}],cs=[{id:"a11y-high-contrast",name:"High Contrast",icon:"contrast",description:"AAA contrast (7:1+)"},{id:"a11y-large-text",name:"Large Text",icon:"type",description:"25% larger fonts"},{id:"a11y-dyslexia",name:"Dyslexia",icon:"book-open",description:"Readable typography"}],hs=[{id:"motionFx",name:"Motion Effects",icon:"sparkles",description:"Hover & enter animations"},{id:"sounds",name:"Sound Effects",icon:"volume-2",description:"Audio feedback"}],Jp=[...as,...qt],Zp=[...le,...as,...qt,...Er],ot=s=>as.filter(t=>t.category===s),Dt=[{label:"Style",themes:le,tier:"core"},{label:"Design",themes:ot("Design"),tier:"showcase"},{label:"Content",themes:ot("Content"),tier:"showcase"},{label:"Modern",themes:ot("Modern"),tier:"showcase"},{label:"Creative",themes:ot("Creative"),tier:"showcase"},{label:"Aesthetic",themes:ot("Aesthetic"),tier:"showcase"},{label:"Signature",themes:ot("Signature"),tier:"showcase"},{label:"OS Styles",themes:ot("OS Styles"),tier:"showcase"},{label:"Packs",themes:Er,tier:"showcase"},{label:"More Themes",themes:qt,tier:"community"}];var us="vb-theme",ce={mode:"auto",brand:"default",accent:"default",borderStyle:"",iconSet:"",fluid:"",backdrop:"",backdropChrome:"",pageBgType:"",pageBgColor:"",pageBgGradStart:"",pageBgGradEnd:"",pageBgGradDir:""},kr=["--hue-primary","--hue-secondary","--hue-accent","--lightness-primary","--chroma-primary","--lightness-secondary","--chroma-secondary","--lightness-accent","--chroma-accent"],E={_initPromise:null,async init(){return this._initPromise?this._initPromise:(this._initPromise=(async()=>{let s=this.load();try{await rs(s.brand)}catch{s.brand="default"}return this.apply(s),this._watchSystemPreference(),s})(),this._initPromise)},load(){try{let s=localStorage.getItem(us);return s?{...ce,...JSON.parse(s)}:{...ce}}catch{return{...ce}}},save(s){let e={...this.load(),...s};try{localStorage.setItem(us,JSON.stringify(e))}catch{}return e},apply({mode:s="auto",brand:t="default",borderStyle:e="",iconSet:i="",fluid:n="",backdrop:r="",backdropChrome:o="",pageBgType:a="",pageBgColor:l="",pageBgGradStart:c="",pageBgGradEnd:h="",pageBgGradDir:u=""}={}){let d=document.documentElement;d.dataset.mode=s==="auto"?this.getEffectiveMode():s;let m=(d.dataset.theme||"").split(" ").filter(S=>S.startsWith("a11y-")),f=t!=="default"?[t,...m]:[...m];f.length?d.dataset.theme=f.join(" "):delete d.dataset.theme;let v=e||this._readCSSHint("--theme-border-style");v&&v!=="clean"?d.dataset.borderStyle=v:delete d.dataset.borderStyle;let y=i||this._readCSSHint("--theme-icon-set");if(y&&y!=="lucide"?d.dataset.iconSet=y:delete d.dataset.iconSet,n?d.dataset.fluid=n:delete d.dataset.fluid,r?d.dataset.backdrop=r:delete d.dataset.backdrop,o&&o!=="card"?d.dataset.backdropChrome=o:delete d.dataset.backdropChrome,a==="color"&&l)d.style.setProperty("--page-bg-color",l),d.style.removeProperty("--page-bg-gradient");else if(a==="gradient"&&c&&h){let S=u||"to bottom";d.style.setProperty("--page-bg-gradient",`linear-gradient(${S}, ${c}, ${h})`),d.style.removeProperty("--page-bg-color")}else d.style.removeProperty("--page-bg-color"),d.style.removeProperty("--page-bg-gradient");let w=this.load().accent||"default";this._applyAccent(w),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{mode:s,brand:t,accent:w,borderStyle:v,iconSet:y,fluid:n,backdrop:r,backdropChrome:o,pageBgType:a,effectiveMode:this.getEffectiveMode()}}))},setMode(s){let t=this.save({mode:s});this.apply(t)},async setBrand(s){try{await rs(s)}catch(e){console.warn(`[VB] Theme "${s}" failed to load, using default`,e),s="default"}let t=this.save({brand:s});this.apply(t)},setAccent(s){let t=this.save({accent:s});this._applyAccent(s),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}}))},setBorderStyle(s){let t=this.save({borderStyle:s});this.apply(t)},setIconSet(s){let t=this.save({iconSet:s});this.apply(t)},setFluid(s){let t=this.save({fluid:s});this.apply(t)},setBackdrop(s){let t=this.save({backdrop:s});this.apply(t)},setBackdropChrome(s){let t=this.save({backdropChrome:s});this.apply(t)},setPageBg({type:s="",color:t="",gradStart:e="",gradEnd:i="",gradDir:n=""}={}){let r=this.save({pageBgType:s,pageBgColor:t,pageBgGradStart:e,pageBgGradEnd:i,pageBgGradDir:n});this.apply(r)},getEffectiveMode(){let{mode:s}=this.load();return s!=="auto"?s:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},getState(){let{mode:s,brand:t,accent:e,borderStyle:i,iconSet:n,fluid:r,backdrop:o,backdropChrome:a,pageBgType:l,pageBgColor:c,pageBgGradStart:h,pageBgGradEnd:u,pageBgGradDir:d}=this.load();return{mode:s,brand:t,accent:e,borderStyle:i,iconSet:n,fluid:r,backdrop:o,backdropChrome:a,pageBgType:l,pageBgColor:c,pageBgGradStart:h,pageBgGradEnd:u,pageBgGradDir:d,effectiveMode:this.getEffectiveMode()}},toggleMode(){let t=this.getEffectiveMode()==="dark"?"light":"dark";this.setMode(t)},reset(){try{localStorage.removeItem(us)}catch{}let s=document.documentElement;s.style.removeProperty("--page-bg-color"),s.style.removeProperty("--page-bg-gradient");for(let t of kr)s.style.removeProperty(t);this.apply(ce)},_readCSSHint(s){return getComputedStyle(document.documentElement).getPropertyValue(s).trim()},_applyAccent(s){let t=document.documentElement,e=Nt.find(i=>i.id===s);for(let i of kr)t.style.removeProperty(i);if(!(!e||!e.seeds||Object.keys(e.seeds).length===0)){for(let[i,n]of Object.entries(e.seeds))t.style.setProperty(i,String(n));if(e.seedsDark&&this.getEffectiveMode()==="dark")for(let[i,n]of Object.entries(e.seedsDark))t.style.setProperty(i,String(n))}},_watchSystemPreference(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{let t=this.load();t.mode==="auto"&&this.apply(t)})}};var Fl=["layout-text","layout-reel","layout-canvas","dl-item"];Fl.forEach(s=>{customElements.get(s)||customElements.define(s,class extends HTMLElement{})});var ps=new Map,ds=null,Lr=window.matchMedia("(prefers-reduced-motion: reduce)");function xr(){ds||(ds=new MutationObserver(s=>{for(let t of s){for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;Sr(i),i.querySelectorAll("*").forEach(Sr)}for(let e of t.removedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;Cr(i),i.querySelectorAll("*").forEach(Cr)}}}),ds.observe(document.body,{childList:!0,subtree:!0}))}function Sr(s){for(let[,t]of ps)s.matches?.(t.selector)&&(Lr.matches&&t.reducedMotionFallback?t.reducedMotionFallback(s):t.init(s))}function Cr(s){for(let[,t]of ps)s.matches?.(t.selector)&&t.destroy&&t.destroy(s)}function jl(s,t){ps.set(s,t),document.querySelectorAll(t.selector).forEach(e=>{Lr.matches&&t.reducedMotionFallback?t.reducedMotionFallback(e):t.init(e)}),document.body?xr():document.addEventListener("DOMContentLoaded",xr,{once:!0})}var Tr=new Map;function g(s,t,e={}){let i=e.priority??10,n={impl:t,bundle:e.bundle,contract:e.contract,priority:i},r=Tr.get(s);if(customElements.get(s)){if(!r||r.priority>=i){r&&r.priority===i&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${s}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${s}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=i){r.priority===i&&console.warn(`[VB Bundle] Tag <${s}> already registered by "${r.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}Tr.set(s,n),customElements.define(s,t)}async function zl(s,t={}){let e=t.basePath??"/cdn/packs",i=`${e}/${s}.full.css`;if(!document.querySelector(`link[href="${i}"]`)){let r=document.createElement("link");r.rel="stylesheet",r.href=i,await new Promise((o,a)=>{r.onload=o,r.onerror=()=>a(new Error(`Failed to load bundle CSS: ${i}`)),document.head.appendChild(r)})}await import(`${e}/${s}.full.js`)}var b=class extends HTMLElement{#t=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,i,n){t.addEventListener(e,i,n),this.#t.push(()=>t.removeEventListener(e,i,n))}setup(){}teardown(){}};var Hl=["valueMissing","typeMismatch","patternMismatch","tooShort","tooLong","rangeUnderflow","rangeOverflow","stepMismatch","customError"],ms=class extends b{#t=null;#e=null;#s=!1;setup(){if(this.#t=this.querySelector("input, textarea, select"),this.#e=this.querySelector("output.error")??this.querySelector("output:not(.hint)"),!this.#t)return!1;this.listen(this.#t,"blur",()=>this.validate()),this.listen(this.#t,"input",()=>{this.#s&&this.validate()})}teardown(){this.#t=null,this.#e=null,this.#s=!1}validate(){let t=this.#t;if(!t)return!0;t.validity.customError||t.setCustomValidity("");let e=t.checkValidity();return e?(this.#n(t.value?"valid":null),t.removeAttribute("aria-invalid"),this.#e&&(this.#e.textContent="")):(this.#s=!0,this.#n("invalid"),t.setAttribute("aria-invalid","true"),this.#i(t.validity)),e}setError(t){this.#t&&(this.#t.setCustomValidity(t),this.#s=!0,this.#n("invalid"),this.#t.setAttribute("aria-invalid","true"),this.#e&&(this.#e.textContent=t))}clearError(){this.#t&&(this.#t.setCustomValidity(""),this.#n(null),this.#t.removeAttribute("aria-invalid"),this.#s=!1,this.#e&&(this.#e.textContent=""))}get fieldName(){return this.querySelector("label")?.textContent?.trim()??this.#t?.getAttribute("aria-label")??this.#t?.name??this.#t?.id??"Field"}get input(){return this.#t}#n(t){delete this.dataset.valid,delete this.dataset.invalid,t&&(this.dataset[t]="")}#i(t){if(!this.#e)return;let e=this.#t;for(let i of Hl){if(!t[i])continue;let n=`data-message-${i.toLowerCase()}`,r=e.getAttribute(n)??e.validationMessage;this.#e.textContent=r;return}}};g("form-field",ms);function F(s){return document.startViewTransition?document.startViewTransition(s):s()}var Vl=0,fs=class extends b{#t=[];#e=[];#s=!1;#n=0;setup(){if(this.#t=[...this.querySelectorAll(":scope > details")],this.#e=this.#t.map(t=>t.querySelector("summary")),this.#t.length===0)return!1;this.#o(),this.#a(),this.#i()}teardown(){this.#t=[],this.#e=[],this.#s=!1}#i(){if(!this.hasAttribute("transition")||!document.startViewTransition)return;this.#s=!0;let t=++Vl,e=this.getAttribute("transition")||"fade",i=e==="slide"?"vt-tabs-slide":e==="scale"?"vt-tabs-scale":"vt-tabs";this.#t.forEach(n=>{let r=n.querySelector(":scope > :not(summary)");r&&(r.style.viewTransitionName=`tabs-${t}`,r.style.viewTransitionClass=i)}),this.#n=this.#t.findIndex(n=>n.open),this.#n===-1&&(this.#n=0)}#r(t){if(t===this.#n)return;let e=t>this.#n?"forward":"backward";document.documentElement.dataset.vtDirection=e,F(()=>{this.#t[t].open=!0}).finished?.then(()=>{delete document.documentElement.dataset.vtDirection})}#o(){this.#t.forEach((t,e)=>{let i=this.#e[e],n=t.querySelector(":scope > :not(summary)");if(!i||!n)return;let r=i.id||`tab-${crypto.randomUUID().slice(0,8)}`,o=n.id||`panel-${crypto.randomUUID().slice(0,8)}`;i.id=r,i.setAttribute("aria-controls",o),i.setAttribute("tabindex",t.open?"0":"-1"),i.setAttribute("aria-selected",t.open?"true":"false"),n.id=o,n.setAttribute("aria-labelledby",r),this.listen(i,"click",a=>{this.#s&&(a.preventDefault(),this.#r(e))}),this.listen(i,"keydown",a=>this.#h(a,e)),this.listen(t,"toggle",()=>this.#l(e))})}#a(){!this.#t.some(e=>e.open)&&this.#t.length>0&&(this.#t[0].open=!0,this.#c())}#l(t){this.#t[t].open&&(this.#n=t),this.#c(),this.dispatchEvent(new CustomEvent("tab-set:change",{detail:{index:t},bubbles:!0}))}#c(){this.#t.forEach((t,e)=>{let i=this.#e[e];i.setAttribute("tabindex",t.open?"0":"-1"),i.setAttribute("aria-selected",t.open?"true":"false")})}#h(t,e){let{key:i}=t,n;switch(i){case"ArrowRight":n=(e+1)%this.#t.length;break;case"ArrowLeft":n=(e-1+this.#t.length)%this.#t.length;break;case"Home":n=0;break;case"End":n=this.#t.length-1;break;default:return}t.preventDefault(),this.#s?this.#r(n):this.#t[n].open=!0,this.#e[n].focus()}};g("tab-set",fs);var gs=class s extends b{static#t=0;#e;#s=[];#n="Back to content";setup(){this.#e=++s.#t,this.hasAttribute("data-back-label")&&(this.#n=this.getAttribute("data-back-label")??this.#n),this.#i(),this.getAttribute("data-mode")==="sidenotes"?this.#a():this.#r()}#i(){let t=[...document.querySelectorAll("foot-note:not([data-enhanced])")];this.#s=t.filter(e=>this.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}#r(){if(this.#s.length===0)return;let t=document.createElement("ol");this.#s.forEach((e,i)=>{let n=i+1,r=`fnref-${this.#e}-${n}`,o=`fn-${this.#e}-${n}`;this.#o(e,n,r,o);let a=this.#c(e,n,r,o);t.appendChild(a)}),this.appendChild(t)}#o(t,e,i,n){t.setAttribute("data-enhanced",""),t.id=i;let r=t.innerHTML,o=document.createElement("span");o.innerHTML=r;let a=document.createElement("a");a.href=`#${n}`,a.setAttribute("aria-describedby",n),a.textContent=`[${e}]`,t.innerHTML="",t.appendChild(o),t.appendChild(a)}#a(){if(this.#s.length===0)return;let t=[];if(this.#s.forEach((e,i)=>{let n=i+1,r=`fnref-${this.#e}-${n}`,o=`fn-${this.#e}-${n}`;e.getAttribute("data-side")==="false"?(this.#o(e,n,r,o),t.push({ref:e,num:n,refId:r,noteId:o})):this.#l(e,n,r,o)}),t.length>0){let e=document.createElement("ol");for(let{ref:i,num:n,refId:r,noteId:o}of t)e.appendChild(this.#c(i,n,r,o));this.appendChild(e)}else this.hidden=!0}#l(t,e,i,n){let r=t.innerHTML;t.setAttribute("data-enhanced",""),t.setAttribute("data-side",""),t.id=i;let o=document.createElement("a");o.href=`#${n}`,o.setAttribute("aria-describedby",n),o.textContent=`[${e}]`;let a=document.createElement("aside");a.className="sidenote",a.id=n,a.setAttribute("role","note"),a.innerHTML=`<span class="sidenote-number">${e}.</span> ${r}`,t.innerHTML="",t.appendChild(o),t.appendChild(a)}#c(t,e,i,n){let r=document.createElement("li");r.id=n;let o=t.querySelector("span"),a=o?o.innerHTML:"",l=document.createElement("a");return l.href=`#${i}`,l.setAttribute("data-backref",""),l.setAttribute("aria-label",this.#n),l.textContent="\u21A9",r.innerHTML=a+" ",r.appendChild(l),r}},bs=class extends HTMLElement{};g("foot-notes",gs);g("foot-note",bs);var Ul=0,vs=class extends b{#t=[];#e=[];#s=[];#n=!1;setup(){if(this.#t=[...this.querySelectorAll(":scope > details")],this.#e=this.#t.map(t=>t.querySelector("summary")),this.#t.length===0)return!1;this.#i(),this.#a(),this.#r()}teardown(){this.#t=[],this.#e=[],this.#s=[],this.#n=!1}#i(){this.#s=this.#t.map(t=>{let e=t.querySelector("summary");if(!e)return null;let i=[...t.children].filter(n=>n!==e);if(i.length===1)return i[0];if(i.length>1){let n=document.createElement("div");for(let r of i)n.appendChild(r);return t.appendChild(n),n}return null})}#r(){if(!this.hasAttribute("transition")||!document.startViewTransition)return;this.#n=!0;let t=++Ul,e=this.getAttribute("transition")||"fade",i=e==="slide"?"vt-accordion-slide":e==="scale"?"vt-accordion-scale":"vt-accordion";this.#s.forEach((n,r)=>{n&&(n.style.viewTransitionName=`accordion-${t}-${r}`,n.style.viewTransitionClass=i)})}#o(t){F(()=>{t.open=!t.open})}#a(){this.#t.forEach((t,e)=>{let i=this.#e[e],n=this.#s[e];if(i){if(n){let r=i.id||`accordion-heading-${crypto.randomUUID().slice(0,8)}`,o=n.id||`accordion-panel-${crypto.randomUUID().slice(0,8)}`;i.id=r,n.id=o,i.setAttribute("aria-expanded",t.open?"true":"false"),i.setAttribute("aria-controls",o),n.setAttribute("aria-labelledby",r),n.setAttribute("role","region")}else i.setAttribute("aria-expanded",t.open?"true":"false");this.listen(i,"click",r=>{this.#n&&(r.preventDefault(),this.#o(t))}),this.listen(i,"keydown",r=>this.#c(r,e)),this.listen(t,"toggle",()=>this.#l(t,e))}})}#l(t,e){this.#e[e].setAttribute("aria-expanded",t.open?"true":"false"),this.hasAttribute("single")&&t.open&&this.#t.forEach((n,r)=>{r!==e&&n.open&&(n.open=!1,this.#e[r].setAttribute("aria-expanded","false"))}),this.dispatchEvent(new CustomEvent("accordion-wc:toggle",{detail:{index:e,open:t.open},bubbles:!0}))}#c(t,e){let{key:i}=t,n;switch(i){case"ArrowDown":n=(e+1)%this.#t.length;break;case"ArrowUp":n=(e-1+this.#t.length)%this.#t.length;break;case"Home":n=0;break;case"End":n=this.#t.length-1;break;default:return}t.preventDefault(),this.#e[n].focus()}open(t){t<0||t>=this.#t.length||(this.#n&&!this.#t[t].open?F(()=>{this.#t[t].open=!0}):this.#t[t].open=!0)}close(t){t<0||t>=this.#t.length||(this.#n&&this.#t[t].open?F(()=>{this.#t[t].open=!1}):this.#t[t].open=!1)}toggle(t){t<0||t>=this.#t.length||(this.#n?this.#o(this.#t[t]):this.#t[t].open=!this.#t[t].open)}openAll(){this.hasAttribute("single")||this.#t.forEach(t=>{t.open=!0})}closeAll(){this.#t.forEach(t=>{t.open=!1})}};g("accordion-wc",vs);var ys=class extends b{#t=[];#e=[];static get observedAttributes(){return["position","max"]}setup(){this.setAttribute("role","region"),this.setAttribute("aria-label","Notifications"),this.setAttribute("aria-live","polite")}teardown(){this.#e.forEach(t=>{t._dismissTimer&&clearTimeout(t._dismissTimer)}),this.#t=[],this.#e=[]}show(t){let{message:e,variant:i="info",duration:n=this.#r(),dismissible:r=!0,action:o,onAction:a}=t,l=this.#s({message:e,variant:i,dismissible:r,action:o,onAction:a}),c=this.#o();return this.#e.length>=c?this.#t.push({toast:l,duration:n}):this.#n(l,n),l}#s({message:t,variant:e,dismissible:i,action:n,onAction:r}){let o=document.createElement("div");o.className="toast",o.setAttribute("role",e==="error"||e==="warning"?"alert":"status"),o.setAttribute("data-variant",e);let a={info:"ⓘ",success:"✓",warning:"⚠",error:"✗"};return o.innerHTML=`
|
|
60
|
+
<span class="icon" aria-hidden="true">${a[e]||a.info}</span>
|
|
61
|
+
<span class="message">${this.#a(t)}</span>
|
|
62
|
+
${n?`<button type="button" class="action">${this.#a(n)}</button>`:""}
|
|
63
|
+
${i?'<button type="button" class="close" aria-label="Dismiss">✕</button>':""}
|
|
64
|
+
`,i&&o.querySelector(".close")?.addEventListener("click",()=>{this.#i(o)}),n&&r&&o.querySelector(".action")?.addEventListener("click",()=>{r(),this.#i(o)}),o}#n(t,e){this.appendChild(t),this.#e.push(t),requestAnimationFrame(()=>{t.setAttribute("data-state","visible")}),e>0&&(t._dismissTimer=setTimeout(()=>{this.#i(t)},e)),this.dispatchEvent(new CustomEvent("toast-msg:show",{bubbles:!0,detail:{toast:t}}))}#i(t){if(!this.contains(t))return;t._dismissTimer&&clearTimeout(t._dismissTimer),t.setAttribute("data-state","hiding");let e=()=>{t.removeEventListener("animationend",e),t.remove();let i=this.#e.indexOf(t);if(i>-1&&this.#e.splice(i,1),this.#t.length>0){let{toast:n,duration:r}=this.#t.shift();this.#n(n,r)}this.dispatchEvent(new CustomEvent("toast-msg:hide",{bubbles:!0,detail:{toast:t}}))};t.addEventListener("animationend",e),setTimeout(()=>{this.contains(t)&&e()},300)}dismissAll(){this.#t=[],[...this.#e].forEach(t=>this.#i(t))}#r(){let t=this.getAttribute("duration");return t!==null?parseInt(t,10):5e3}#o(){let t=this.getAttribute("max");return t!==null?parseInt(t,10):5}#a(t){let e=document.createElement("div");return e.textContent=t,e.innerHTML}};g("toast-msg",ys);var Mr=CSS.supports("anchor-name","--test"),Wl=new Set(["BUTTON","A","AREA"]);function $r(s){return document.documentElement.hasAttribute("data-interest-polyfill")?!0:"interestForElement"in HTMLButtonElement.prototype?Wl.has(s.tagName):!1}var ws=class extends b{#t;#e;#s;#n;#i=!Mr;#r=!1;#o=!1;#a;setup(){this.#r=this.getAttribute("variant")==="card",this.#r?this.#c():this.#l()}#l(){if(this.#t=this.querySelector(":scope > :not(template)"),!this.#t)return;this.#o=$r(this.#t);let t=this.querySelector(":scope > template[data-tooltip]"),e=this.getAttribute("content"),i=this.#t.getAttribute("title");if(!t&&!e&&!i)return;i&&(this.#a=i,this.#t.removeAttribute("title")),this.#e=document.createElement("div"),this.#e.className="tooltip",this.#e.setAttribute("role","tooltip"),this.#e.setAttribute("popover","hint"),t?this.#e.innerHTML=t.innerHTML:this.#e.textContent=e||i,this.#e.id=`tooltip-${crypto.randomUUID().slice(0,8)}`;let n=this.getAttribute("position")||"top";this.#e.dataset.tooltipPosition=n;let r=document.createElement("span");if(r.className="tooltip-arrow",r.setAttribute("aria-hidden","true"),this.#e.appendChild(r),this.appendChild(this.#e),Mr){let o=`--tooltip-anchor-${this.#e.id}`;this.#t.style.anchorName=o,this.#e.style.positionAnchor=o,this.#e.setAttribute("data-anchor","")}this.#o?(this.#t.setAttribute("interestfor",this.#e.id),this.#t.hasAttribute("aria-describedby")||this.#t.setAttribute("aria-describedby",this.#e.id),this.#i&&this.listen(this.#e,"toggle",this.#h)):(this.#t.setAttribute("aria-describedby",this.#e.id),this.listen(this.#t,"mouseenter",this.#p),this.listen(this.#t,"mouseleave",this.#d),this.listen(this.#t,"focus",this.#u),this.listen(this.#t,"blur",this.#m),this.listen(this.#e,"mouseenter",this.#b),this.listen(this.#e,"mouseleave",this.#d))}#c(){this.#t=this.querySelector(":scope > [data-trigger]");let t=this.querySelector(":scope > [data-content]");!this.#t||!t||(this.#o=$r(this.#t),this.#e=document.createElement("div"),this.#e.className="hover-card",this.#e.setAttribute("popover","manual"),this.#e.id=`hc-${crypto.randomUUID().slice(0,8)}`,this.#e.appendChild(t),t.removeAttribute("data-content"),t.hidden=!1,this.appendChild(this.#e),this.#o?(this.#t.setAttribute("interestfor",this.#e.id),this.listen(this.#e,"toggle",this.#h)):(this.listen(this.#t,"mouseenter",this.#p),this.listen(this.#t,"mouseleave",this.#d),this.listen(this.#t,"focus",this.#u),this.listen(this.#t,"blur",this.#d),this.listen(this.#e,"mouseenter",this.#b),this.listen(this.#e,"mouseleave",this.#d),this.listen(document,"keydown",this.#g)))}teardown(){this.#t&&(this.#o&&this.#t.removeAttribute("interestfor"),this.#a&&(this.#t.setAttribute("title",this.#a),this.#a=void 0)),this.#e&&(this.#e.remove(),this.#e=null),clearTimeout(this.#s),clearTimeout(this.#n)}#h=t=>{t.newState==="open"?(this.#r?this.#v():this.#i&&this.#f(),this.dispatchEvent(new CustomEvent("tool-tip:show",{bubbles:!0}))):this.dispatchEvent(new CustomEvent("tool-tip:hide",{bubbles:!0}))};#p=()=>{clearTimeout(this.#n);let t=this.#r?300:200,e=parseInt(this.getAttribute("delay")||String(t),10);this.#s=setTimeout(()=>this.show(),e)};#d=()=>{clearTimeout(this.#s);let t=this.#r?200:100;this.#n=setTimeout(()=>this.hide(),t)};#u=()=>{clearTimeout(this.#n),this.show()};#m=()=>{clearTimeout(this.#s),this.hide()};#b=()=>{clearTimeout(this.#n)};#g=t=>{t.key==="Escape"&&this.isVisible&&this.hide()};show(){!this.#e||this.isVisible||(this.#e.showPopover(),this.#r?this.#v():this.#i&&this.#f(),this.dispatchEvent(new CustomEvent("tool-tip:show",{bubbles:!0})))}hide(){!this.#e||!this.isVisible||(this.#e.hidePopover(),this.dispatchEvent(new CustomEvent("tool-tip:hide",{bubbles:!0})))}#f(){if(!this.#t||!this.#e)return;let t=this.#t.getBoundingClientRect(),e=this.#e.getBoundingClientRect(),i=this.getAttribute("position")||"top",n=8,r,o;switch(i){case"bottom":r=t.bottom+n,o=t.left+(t.width-e.width)/2;break;case"left":r=t.top+(t.height-e.height)/2,o=t.left-e.width-n;break;case"right":r=t.top+(t.height-e.height)/2,o=t.right+n;break;default:r=t.top-e.height-n,o=t.left+(t.width-e.width)/2;break}let a=8;o=Math.max(a,Math.min(o,window.innerWidth-e.width-a)),r=Math.max(a,Math.min(r,window.innerHeight-e.height-a)),this.#e.style.top=`${r}px`,this.#e.style.left=`${o}px`}#v(){if(!this.#t||!this.#e)return;let t=this.#t.getBoundingClientRect(),e=this.#e.getBoundingClientRect(),i=this.getAttribute("position")||"bottom",n=8,r=8,o,a;a=t.left+(t.width-e.width)/2,a=Math.max(r,Math.min(a,window.innerWidth-e.width-r)),i==="top"?(o=t.top-e.height-n,o<r&&(o=t.bottom+n)):(o=t.bottom+n,o+e.height>window.innerHeight-r&&(o=t.top-e.height-n)),this.#e.style.position="fixed",this.#e.style.top=`${o}px`,this.#e.style.left=`${a}px`}get isVisible(){return this.#e?.matches(":popover-open")??!1}};g("tool-tip",ws);var yt="popover"in HTMLElement.prototype;var As=class extends b{#t;#e;#s=[];#n=-1;#i=!1;#r=!1;#o=null;#a=!1;setup(){if(this.#t=this.querySelector(":scope > [data-trigger]"),this.#t||(this.#t=this.querySelector(":scope > button")),!this.#t||(this.#e=this.querySelector(':scope > menu, :scope > ul[role="menu"]'),!this.#e))return!1;this.#r=this.hasAttribute("hover"),this.#a=yt&&!this.#r,this.#a&&this.#e.setAttribute("popover","auto"),this.#t.setAttribute("aria-haspopup","menu"),this.#t.setAttribute("aria-expanded","false"),this.#e.id||(this.#e.id=`dropdown-menu-${crypto.randomUUID().slice(0,8)}`),this.#t.setAttribute("aria-controls",this.#e.id),this.#e.setAttribute("role","menu"),this.#l(),this.#r?(this.listen(this,"mouseenter",this.#h),this.listen(this,"mouseleave",this.#p),this.listen(this.#t,"focus",this.#d),this.listen(this.#t,"blur",this.#u)):this.listen(this.#t,"click",this.#c),this.listen(this.#t,"keydown",this.#m),this.listen(this.#e,"keydown",this.#b),this.#a?this.listen(this.#e,"toggle",this.#v):(this.listen(document,"click",this.#g),this.listen(document,"keydown",this.#f))}teardown(){this.#o&&clearTimeout(this.#o)}#l(){this.#s=Array.from(this.#e.querySelectorAll('button, a, [role="menuitem"]')).filter(t=>!t.disabled&&!t.closest('[role="separator"]')),this.#s.forEach((t,e)=>{t.setAttribute("role","menuitem"),t.setAttribute("tabindex","-1"),t.style.cssText+=";border:none;box-shadow:none;transform:none;border-radius:0;",t.addEventListener("click",this.#y)}),this.#e.querySelectorAll('li:empty, [role="separator"], hr').forEach(t=>{t.setAttribute("role","separator")})}#c=t=>{t.stopPropagation(),this.toggle()};#h=()=>{this.#o&&(clearTimeout(this.#o),this.#o=null),this.open()};#p=()=>{this.#o=setTimeout(()=>{this.close()},100)};#d=()=>{this.#o&&(clearTimeout(this.#o),this.#o=null),this.open()};#u=t=>{this.#e?.contains(t.relatedTarget)||(this.#o=setTimeout(()=>{this.contains(document.activeElement)||this.close()},100))};#m=t=>{switch(t.key){case"ArrowDown":case"Down":t.preventDefault(),this.open(),this.#A(0);break;case"ArrowUp":case"Up":t.preventDefault(),this.open(),this.#A(this.#s.length-1);break}};#b=t=>{switch(t.key){case"ArrowDown":case"Down":t.preventDefault(),this.#A(this.#n+1);break;case"ArrowUp":case"Up":t.preventDefault(),this.#A(this.#n-1);break;case"Home":t.preventDefault(),this.#A(0);break;case"End":t.preventDefault(),this.#A(this.#s.length-1);break;case"Tab":this.close();break;case"Enter":case" ":t.preventDefault(),this.#n>=0&&this.#s[this.#n].click();break}};#g=t=>{this.#i&&!this.contains(t.target)&&this.close()};#f=t=>{t.key==="Escape"&&this.#i&&(t.preventDefault(),this.close(),this.#t?.focus())};#v=t=>{t.newState==="closed"&&this.#i&&(this.#i=!1,this.removeAttribute("open"),this.#t?.setAttribute("aria-expanded","false"),this.#n=-1,this.dispatchEvent(new CustomEvent("drop-down:close",{bubbles:!0})))};#y=t=>{t.defaultPrevented||(this.close(),this.#t?.focus())};#A(t){this.#s.length!==0&&(t<0&&(t=this.#s.length-1),t>=this.#s.length&&(t=0),this.#n=t,this.#s[t].focus())}open(){if(!(this.#i||!this.#e)){if(this.#i=!0,this.setAttribute("open",""),this.#t?.setAttribute("aria-expanded","true"),this.#n=-1,this.#k(),this.#a)try{this.#e.showPopover()}catch{}this.dispatchEvent(new CustomEvent("drop-down:open",{bubbles:!0}))}}close(){if(!(!this.#i||!this.#e)){if(this.#i=!1,this.removeAttribute("open"),this.#t?.setAttribute("aria-expanded","false"),this.#n=-1,this.#a)try{this.#e.hidePopover()}catch{}this.dispatchEvent(new CustomEvent("drop-down:close",{bubbles:!0}))}}toggle(){this.#i?this.close():this.open()}#k(){if(!this.#t||!this.#e)return;let t=this.getAttribute("position")||"bottom-start",e=this.hasAttribute("no-flip"),i=this.#t.getBoundingClientRect(),n=this.#e.getBoundingClientRect(),r=window.innerHeight,o=window.innerWidth,a=4;if(this.#a){let l,c;t.startsWith("top")?(l=i.top-n.height-a,!e&&l<0&&(l=i.bottom+a)):(l=i.bottom+a,!e&&l+n.height>r&&(l=i.top-n.height-a)),t.endsWith("end")?(c=i.right-n.width,c<0&&(c=i.left)):(c=i.left,c+n.width>o&&(c=i.right-n.width)),this.#e.style.setProperty("--dropdown-top",`${Math.max(0,l)}px`),this.#e.style.setProperty("--dropdown-left",`${Math.max(0,c)}px`)}else{let l,c;t.startsWith("top")?(l=-n.height-a,!e&&i.top+l<0&&(l=i.height+a)):(l=i.height+a,!e&&i.bottom+n.height+a>r&&(l=-n.height-a)),t.endsWith("end")?(c=i.width-n.width,i.left+c<0&&(c=0)):(c=0,i.left+n.width>o&&(c=i.width-n.width)),this.#e.style.setProperty("--dropdown-top",`${l}px`),this.#e.style.setProperty("--dropdown-left",`${c}px`)}}get isOpen(){return this.#i}};g("drop-down",As);var Nr=`
|
|
65
|
+
:host {
|
|
66
|
+
display: inline-flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
justify-content: center;
|
|
69
|
+
inline-size: 1.5em;
|
|
70
|
+
block-size: 1.5em;
|
|
71
|
+
vertical-align: middle;
|
|
72
|
+
line-height: 1;
|
|
73
|
+
color: inherit;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:host([size="xs"]) {
|
|
77
|
+
inline-size: 1em;
|
|
78
|
+
block-size: 1em;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
:host([size="sm"]) {
|
|
82
|
+
inline-size: 1.25em;
|
|
83
|
+
block-size: 1.25em;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:host([size="md"]) {
|
|
87
|
+
inline-size: 1.5em;
|
|
88
|
+
block-size: 1.5em;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:host([size="lg"]) {
|
|
92
|
+
inline-size: 2em;
|
|
93
|
+
block-size: 2em;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:host([size="xl"]) {
|
|
97
|
+
inline-size: 2.5em;
|
|
98
|
+
block-size: 2.5em;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:host([size="2xl"]) {
|
|
102
|
+
inline-size: 3em;
|
|
103
|
+
block-size: 3em;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
svg {
|
|
107
|
+
inline-size: 100%;
|
|
108
|
+
block-size: 100%;
|
|
109
|
+
stroke: currentColor;
|
|
110
|
+
stroke-width: 2;
|
|
111
|
+
stroke-linecap: round;
|
|
112
|
+
stroke-linejoin: round;
|
|
113
|
+
fill: none;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* Error state */
|
|
117
|
+
:host([data-error]) {
|
|
118
|
+
opacity: 0.5;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* Hidden state for missing icons */
|
|
122
|
+
:host([hidden]) {
|
|
123
|
+
display: none;
|
|
124
|
+
}
|
|
125
|
+
`;var _t=new Map,It=new Map,Es=class s extends HTMLElement{static#t=new Set;static#e=null;static#s(){s.#e||(s.#e=new MutationObserver(t=>{for(let e of t)if(e.attributeName==="data-icon-set")for(let i of s.#t)i.hasAttribute("set")||(i.render(),i.loadIcon())}),s.#e?.observe(document.documentElement,{attributes:!0,attributeFilter:["data-icon-set"]}))}static get observedAttributes(){return["name","set","size","label"]}constructor(){super(),this.attachShadow({mode:"open"})}get name(){return this.getAttribute("name")||""}get set(){return this.getAttribute("set")||document.documentElement.dataset.iconSet||"lucide"}get size(){return this.getAttribute("size")||"md"}get label(){return this.getAttribute("label")}get basePath(){return this.getAttribute("base-path")||document.documentElement.dataset.iconPath||"/cdn/icons"}get iconPath(){return`${this.basePath}/${this.set}/${this.name}.svg`}render(){this.shadowRoot.innerHTML=`
|
|
126
|
+
<style>${Nr}</style>
|
|
127
|
+
<slot></slot>
|
|
128
|
+
`}async loadIcon(){if(!this.name){this.setError("No icon name specified");return}let t=`${this.set}/${this.name}`;if(_t.has(t)){this.displayIcon(_t.get(t));return}try{let e=await this.#n(this.set,t);this.displayIcon(e)}catch(e){let i="lucide";if(this.set!==i){let n=`${i}/${this.name}`;if(_t.has(n)){this.displayIcon(_t.get(n));return}try{let r=await this.#n(i,n);this.displayIcon(r);return}catch{}}this.setError(e.message)}}async#n(t,e){return It.has(e)||It.set(e,this.#i(t).then(i=>(_t.set(e,i),It.delete(e),i)).catch(i=>{throw It.delete(e),i})),It.get(e)}async#i(t){let e=`${this.basePath}/${t}/${this.name}.svg`,i=await fetch(e);if(!i.ok)throw new Error(`Icon not found: ${this.name}`);let n=await i.text();if(!n.includes("<svg"))throw new Error(`Invalid SVG: ${this.name}`);return n}displayIcon(t){let n=new DOMParser().parseFromString(t,"image/svg+xml").querySelector("svg");if(!n){this.setError("Invalid SVG content");return}n.removeAttribute("width"),n.removeAttribute("height"),this.label?(n.setAttribute("role","img"),n.setAttribute("aria-label",this.label)):n.setAttribute("aria-hidden","true"),this.removeAttribute("data-error");let r=this.shadowRoot?.querySelector("slot");r&&r.replaceWith(n)}setError(t){this.setAttribute("data-error","true"),console.warn(`icon-wc: ${t}`);let e=this.shadowRoot?.querySelector("slot");e&&(e.textContent="")}connectedCallback(){s.#t.add(this),s.#s(),this.render(),this.loadIcon(),this._onThemeChange=()=>{let t=this.shadowRoot?.querySelector("svg");t&&(t.style.stroke="none",requestAnimationFrame(()=>{t.style.stroke=""}))},window.addEventListener("vb:theme-change",this._onThemeChange),this.setAttribute("data-upgraded","")}disconnectedCallback(){this.removeAttribute("data-upgraded"),s.#t.delete(this),this._onThemeChange&&window.removeEventListener("vb:theme-change",this._onThemeChange)}attributeChangedCallback(t,e,i){if(e!==i&&this.isConnected){if(t==="name"||t==="set")this.render(),this.loadIcon();else if(t==="label"){let n=this.shadowRoot?.querySelector("svg");n&&(i?(n.setAttribute("role","img"),n.setAttribute("aria-label",i)):(n.removeAttribute("role"),n.setAttribute("aria-hidden","true")))}}}};g("icon-wc",Es);var wt=null,Dr="vb-extensions",Bt={motionFx:!0,sounds:!1},_r="vb-a11y-themes",Cs=class s extends b{static#t=200;#e;#s;#n=!1;#i=!1;#r=!1;#o=null;#a=!1;#l=()=>this.#R();setup(){this.#i=this.getAttribute("variant")==="inline",this.#r=this.hasAttribute("compact"),this.#c(),this.#m(),this.#B(),this.listen(window,"vb:theme-change",this.#_),this.#S(),this.#C()}teardown(){window.removeEventListener("scroll",this.#l,{capture:!0}),window.removeEventListener("resize",this.#l),this.#M()}#c(){this.#i||(this.#e=this.querySelector(":scope > [data-trigger]"),this.#e||(this.#e=this.querySelector(":scope > button")),this.#e||(this.#e=document.createElement("button"),this.#e.setAttribute("data-trigger",""),this.#e.innerHTML=`
|
|
129
|
+
<icon-wc name="palette" label="Theme settings"></icon-wc>
|
|
130
|
+
`,this.prepend(this.#e)),this.#e.setAttribute("aria-haspopup","dialog"),this.#e.setAttribute("aria-expanded","false")),this.#s=document.createElement("div"),this.#s.className="panel",this.#s.setAttribute("role","dialog"),this.#s.setAttribute("aria-label","Theme settings"),this.#i||(this.#s.id=`theme-panel-${crypto.randomUUID().slice(0,8)}`,this.#e.setAttribute("aria-controls",this.#s.id)),this.#s.innerHTML=this.#h(),this.appendChild(this.#s)}#h(){return this.#r?this.#u():this.#d()}#p(t,e){let i=t.swatchBg,n=t.swatchFg||"white",r=t.icon||"";return`
|
|
131
|
+
<label class="swatch-cell" title="${t.character?`${t.name} \u2014 ${t.character}`:t.name}">
|
|
132
|
+
<input
|
|
133
|
+
type="radio"
|
|
134
|
+
name="theme-brand"
|
|
135
|
+
value="${t.id}"
|
|
136
|
+
${e===t.id?"checked":""}
|
|
137
|
+
/>
|
|
138
|
+
<span class="swatch-visual" style="--swatch-bg: ${i}; --swatch-fg: ${n}">
|
|
139
|
+
${r?`<icon-wc name="${r}"></icon-wc>`:""}
|
|
140
|
+
<span class="sr-only">${t.name}</span>
|
|
141
|
+
</span>
|
|
142
|
+
</label>
|
|
143
|
+
`}#d(){let{mode:t,brand:e,fluid:i,accent:n}=E.getState(),r=Dt.filter(o=>o.tier==="showcase");return`
|
|
144
|
+
<fieldset class="section">
|
|
145
|
+
<legend>Color Mode</legend>
|
|
146
|
+
<div class="options" role="radiogroup" aria-label="Color mode">
|
|
147
|
+
${os.map(o=>`
|
|
148
|
+
<label class="option">
|
|
149
|
+
<input
|
|
150
|
+
type="radio"
|
|
151
|
+
name="theme-mode"
|
|
152
|
+
value="${o.id}"
|
|
153
|
+
${t===o.id?"checked":""}
|
|
154
|
+
/>
|
|
155
|
+
<span class="option-content">
|
|
156
|
+
<icon-wc name="${o.icon}"></icon-wc>
|
|
157
|
+
<span>${o.name}</span>
|
|
158
|
+
</span>
|
|
159
|
+
</label>
|
|
160
|
+
`).join("")}
|
|
161
|
+
</div>
|
|
162
|
+
</fieldset>
|
|
163
|
+
|
|
164
|
+
<fieldset class="section">
|
|
165
|
+
<legend>Color Accent</legend>
|
|
166
|
+
<div class="options options--accent-dots" role="radiogroup" aria-label="Color accent">
|
|
167
|
+
${Nt.map(o=>`
|
|
168
|
+
<label class="accent-dot" title="${o.name}">
|
|
169
|
+
<input type="radio" name="theme-accent" value="${o.id}" ${n===o.id?"checked":""} />
|
|
170
|
+
<span class="accent-dot-visual" style="background: ${o.swatchBg}"></span>
|
|
171
|
+
<span class="sr-only">${o.name}</span>
|
|
172
|
+
</label>
|
|
173
|
+
`).join("")}
|
|
174
|
+
</div>
|
|
175
|
+
</fieldset>
|
|
176
|
+
|
|
177
|
+
<fieldset class="section">
|
|
178
|
+
<legend>Style</legend>
|
|
179
|
+
<div class="options options--swatch-grid" role="radiogroup" aria-label="Style">
|
|
180
|
+
${le.map(o=>this.#p(o,e)).join("")}
|
|
181
|
+
</div>
|
|
182
|
+
</fieldset>
|
|
183
|
+
|
|
184
|
+
<fieldset class="section">
|
|
185
|
+
<legend>Featured</legend>
|
|
186
|
+
${r.map(o=>`
|
|
187
|
+
<div class="theme-category">
|
|
188
|
+
<span class="category-label">${o.label}</span>
|
|
189
|
+
<div class="options options--swatch-grid">
|
|
190
|
+
${o.themes.map(a=>this.#p(a,e)).join("")}
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
`).join("")}
|
|
194
|
+
</fieldset>
|
|
195
|
+
|
|
196
|
+
<details class="section section--more-themes">
|
|
197
|
+
<summary class="more-themes-toggle">
|
|
198
|
+
<span>More Themes</span>
|
|
199
|
+
<icon-wc name="chevron-down" class="chevron"></icon-wc>
|
|
200
|
+
</summary>
|
|
201
|
+
<div class="options options--swatch-grid">
|
|
202
|
+
${qt.map(o=>this.#p(o,e)).join("")}
|
|
203
|
+
</div>
|
|
204
|
+
</details>
|
|
205
|
+
|
|
206
|
+
<fieldset class="section section--a11y">
|
|
207
|
+
<legend>Accessibility</legend>
|
|
208
|
+
<div class="options options--a11y" aria-label="Accessibility themes">
|
|
209
|
+
${cs.map(o=>{let l=this.#w().includes(o.id);return`
|
|
210
|
+
<label class="option option--a11y">
|
|
211
|
+
<input
|
|
212
|
+
type="checkbox"
|
|
213
|
+
name="a11y-theme"
|
|
214
|
+
value="${o.id}"
|
|
215
|
+
data-a11y-theme="${o.id}"
|
|
216
|
+
${l?"checked":""}
|
|
217
|
+
/>
|
|
218
|
+
<span class="option-content">
|
|
219
|
+
<icon-wc name="${o.icon}"></icon-wc>
|
|
220
|
+
<span class="option-label">${o.name}</span>
|
|
221
|
+
</span>
|
|
222
|
+
</label>
|
|
223
|
+
`}).join("")}
|
|
224
|
+
</div>
|
|
225
|
+
</fieldset>
|
|
226
|
+
|
|
227
|
+
<fieldset class="section">
|
|
228
|
+
<legend>Sizing</legend>
|
|
229
|
+
<div class="options options--sizing" role="radiogroup" aria-label="Fluid sizing">
|
|
230
|
+
${ls.map(o=>`
|
|
231
|
+
<label class="option option--sizing">
|
|
232
|
+
<input
|
|
233
|
+
type="radio"
|
|
234
|
+
name="theme-fluid"
|
|
235
|
+
value="${o.id}"
|
|
236
|
+
${i===o.id?"checked":""}
|
|
237
|
+
/>
|
|
238
|
+
<span class="option-content">
|
|
239
|
+
<icon-wc name="${o.icon}"></icon-wc>
|
|
240
|
+
<span class="option-text">
|
|
241
|
+
<span>${o.name}</span>
|
|
242
|
+
<small>${o.description}</small>
|
|
243
|
+
</span>
|
|
244
|
+
</span>
|
|
245
|
+
</label>
|
|
246
|
+
`).join("")}
|
|
247
|
+
</div>
|
|
248
|
+
</fieldset>
|
|
249
|
+
|
|
250
|
+
<details class="section section--extensions" ${this.#a?"open":""}>
|
|
251
|
+
<summary class="extensions-toggle">
|
|
252
|
+
<icon-wc name="sliders-horizontal"></icon-wc>
|
|
253
|
+
<span>Extensions</span>
|
|
254
|
+
<icon-wc name="chevron-down" class="chevron"></icon-wc>
|
|
255
|
+
</summary>
|
|
256
|
+
<div class="extensions-content">
|
|
257
|
+
${hs.map(o=>{let l=this.#E()[o.id]??Bt[o.id];return`
|
|
258
|
+
<label class="extension-toggle">
|
|
259
|
+
<span class="extension-info">
|
|
260
|
+
<icon-wc name="${o.icon}"></icon-wc>
|
|
261
|
+
<span class="extension-name">${o.name}</span>
|
|
262
|
+
</span>
|
|
263
|
+
<input
|
|
264
|
+
type="checkbox"
|
|
265
|
+
name="ext-${o.id}"
|
|
266
|
+
data-extension="${o.id}"
|
|
267
|
+
data-switch="sm"
|
|
268
|
+
${l?"checked":""}
|
|
269
|
+
/>
|
|
270
|
+
</label>
|
|
271
|
+
`}).join("")}
|
|
272
|
+
</div>
|
|
273
|
+
</details>
|
|
274
|
+
`}#u(){let{mode:t,brand:e,fluid:i,accent:n}=E.getState(),r=this.#w(),o=this.#E();return`
|
|
275
|
+
<fieldset class="section">
|
|
276
|
+
<legend>Color Mode</legend>
|
|
277
|
+
<div class="compact-segmented" role="radiogroup" aria-label="Color mode">
|
|
278
|
+
${os.map(a=>`
|
|
279
|
+
<label class="compact-seg">
|
|
280
|
+
<input type="radio" name="theme-mode" value="${a.id}" ${t===a.id?"checked":""} />
|
|
281
|
+
<span><icon-wc name="${a.icon}" size="xs"></icon-wc> ${a.name}</span>
|
|
282
|
+
</label>
|
|
283
|
+
`).join("")}
|
|
284
|
+
</div>
|
|
285
|
+
</fieldset>
|
|
286
|
+
|
|
287
|
+
<fieldset class="section">
|
|
288
|
+
<legend>Color Accent</legend>
|
|
289
|
+
<select class="compact-select" name="theme-accent-select" aria-label="Color accent">
|
|
290
|
+
${Nt.map(a=>`
|
|
291
|
+
<option value="${a.id}" ${n===a.id?"selected":""}>${a.name}</option>
|
|
292
|
+
`).join("")}
|
|
293
|
+
</select>
|
|
294
|
+
</fieldset>
|
|
295
|
+
|
|
296
|
+
<fieldset class="section">
|
|
297
|
+
<legend>Theme</legend>
|
|
298
|
+
<select class="compact-select" name="theme-brand-select" aria-label="Theme">
|
|
299
|
+
${Dt.map(a=>`
|
|
300
|
+
<optgroup label="${a.label}">
|
|
301
|
+
${a.themes.map(l=>`
|
|
302
|
+
<option value="${l.id}" ${e===l.id?"selected":""}>${l.name}</option>
|
|
303
|
+
`).join("")}
|
|
304
|
+
</optgroup>
|
|
305
|
+
`).join("")}
|
|
306
|
+
</select>
|
|
307
|
+
</fieldset>
|
|
308
|
+
|
|
309
|
+
<fieldset class="section">
|
|
310
|
+
<legend>Sizing</legend>
|
|
311
|
+
<select class="compact-select" name="theme-fluid-select" aria-label="Sizing">
|
|
312
|
+
${ls.map(a=>`
|
|
313
|
+
<option value="${a.id}" ${i===a.id?"selected":""}>${a.name}</option>
|
|
314
|
+
`).join("")}
|
|
315
|
+
</select>
|
|
316
|
+
</fieldset>
|
|
317
|
+
|
|
318
|
+
<fieldset class="section">
|
|
319
|
+
<legend>Accessibility</legend>
|
|
320
|
+
<div class="compact-toggles">
|
|
321
|
+
${cs.map(a=>`
|
|
322
|
+
<label class="extension-toggle">
|
|
323
|
+
<span class="extension-info">
|
|
324
|
+
<span class="extension-name">${a.name}</span>
|
|
325
|
+
</span>
|
|
326
|
+
<input type="checkbox" name="a11y-theme" value="${a.id}" data-a11y-theme="${a.id}" data-switch="sm" ${r.includes(a.id)?"checked":""} />
|
|
327
|
+
</label>
|
|
328
|
+
`).join("")}
|
|
329
|
+
</div>
|
|
330
|
+
</fieldset>
|
|
331
|
+
|
|
332
|
+
<fieldset class="section">
|
|
333
|
+
<legend>Extensions</legend>
|
|
334
|
+
<div class="compact-toggles">
|
|
335
|
+
${hs.map(a=>`
|
|
336
|
+
<label class="extension-toggle">
|
|
337
|
+
<span class="extension-info">
|
|
338
|
+
<span class="extension-name">${a.name}</span>
|
|
339
|
+
</span>
|
|
340
|
+
<input type="checkbox" name="ext-${a.id}" data-extension="${a.id}" data-switch="sm" ${o[a.id]??Bt[a.id]?"checked":""} />
|
|
341
|
+
</label>
|
|
342
|
+
`).join("")}
|
|
343
|
+
</div>
|
|
344
|
+
</fieldset>
|
|
345
|
+
`}#m(){this.#s.querySelectorAll('input[name="theme-mode"]').forEach(r=>{r.addEventListener("change",this.#v)}),this.#s.querySelectorAll('input[name="theme-brand"]').forEach(r=>{r.addEventListener("change",this.#y)});let t=this.#s.querySelector('select[name="theme-brand-select"]');t&&t.addEventListener("change",this.#A),this.#s.querySelectorAll('input[name="theme-fluid"]').forEach(r=>{r.addEventListener("change",this.#k)});let e=this.#s.querySelector('select[name="theme-fluid-select"]');e&&e.addEventListener("change",this.#k),this.#s.querySelectorAll('input[name="theme-accent"]').forEach(r=>{r.addEventListener("change",this.#L)});let i=this.#s.querySelector('select[name="theme-accent-select"]');i&&i.addEventListener("change",this.#L),this.#s.querySelectorAll("input[data-extension]").forEach(r=>{r.addEventListener("change",this.#x)}),this.#s.querySelectorAll("input[data-a11y-theme]").forEach(r=>{r.addEventListener("change",this.#D)}),this.#s.querySelector(".section--extensions")?.addEventListener("toggle",r=>{this.#a=r.target.open}),this.#i||(this.listen(this.#e,"click",this.#b),this.listen(document,"click",this.#g),this.listen(document,"keydown",this.#f))}#b=t=>{t.stopPropagation(),this.toggle()};#g=t=>{this.#n&&!this.contains(t.target)&&this.close()};#f=t=>{t.key==="Escape"&&this.#n&&(t.preventDefault(),this.close(),this.#e?.focus())};#v=t=>{E.setMode(t.target.value),this.#$()};#y=async t=>{let e=t.target.closest(".swatch-cell");e&&e.setAttribute("aria-busy","true");try{await E.setBrand(t.target.value)}catch{console.warn("[VB] Theme load failed, using default")}finally{e&&e.removeAttribute("aria-busy")}this.#C(),this.#$()};#A=async t=>{let e=t.target;e.disabled=!0;try{await E.setBrand(e.value)}catch{console.warn("[VB] Theme load failed, using default")}finally{e.disabled=!1}this.#C(),this.#$()};#k=t=>{E.setFluid(t.target.value),this.#$()};#L=t=>{E.setAccent(t.target.value),this.#$()};#x=t=>{let e=t.target.dataset.extension,i=t.target.checked;this.#T(e,i),this.#S()};#E(){try{let t=localStorage.getItem(Dr);return t?{...Bt,...JSON.parse(t)}:{...Bt}}catch{return{...Bt}}}#T(t,e){try{let i=this.#E();i[t]=e,localStorage.setItem(Dr,JSON.stringify(i))}catch{}}async#S(){let t=this.#E(),e=document.documentElement;t.motionFx?delete e.dataset.motionReduced:e.dataset.motionReduced="",t.sounds?(wt||(wt=(await Promise.resolve().then(()=>(Ss(),xs))).SoundManager),wt.init(),wt.enable()):wt&&wt.disable(),window.dispatchEvent(new CustomEvent("vb:extensions-change",{detail:t}))}#w(){try{let t=localStorage.getItem(_r);return t?JSON.parse(t):[]}catch{return[]}}#q(t){try{localStorage.setItem(_r,JSON.stringify(t))}catch{}}#C(){let t=this.#w(),{brand:e}=E.getState(),i=document.documentElement,n=e==="default"?t.join(" "):[e,...t].join(" "),r=i.dataset.theme||"";n!==r&&(n?i.dataset.theme=n:delete i.dataset.theme)}#D=t=>{let e=t.target.dataset.a11yTheme,i=t.target.checked,n=this.#w();if(i&&!n.includes(e))n.push(e);else if(!i&&n.includes(e)){let r=n.indexOf(e);n.splice(r,1)}this.#q(n),this.#C()};#$(){this.#i||(this.#M(),this.#o=setTimeout(()=>{this.close(),this.#e?.focus()},s.#t))}#M(){this.#o&&(clearTimeout(this.#o),this.#o=null)}#_=()=>{this.#B()};#B(){let{mode:t,brand:e,fluid:i,accent:n}=E.getState(),r=this.#s.querySelector(`input[name="theme-mode"][value="${t}"]`);r&&(r.checked=!0);let o=this.#s.querySelector(`input[name="theme-brand"][value="${e}"]`);o&&(o.checked=!0);let a=this.#s.querySelector('select[name="theme-brand-select"]');a&&(a.value=e);let l=this.#s.querySelector(`input[name="theme-fluid"][value="${i}"]`);l&&(l.checked=!0);let c=this.#s.querySelector('select[name="theme-fluid-select"]');c&&(c.value=i);let h=this.#s.querySelector(`input[name="theme-accent"][value="${n||"default"}"]`);h&&(h.checked=!0);let u=this.#s.querySelector('select[name="theme-accent-select"]');u&&(u.value=n||"default")}open(){this.#i||this.#n||(this.#n=!0,this.setAttribute("open",""),this.#e?.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>{this.#R(),window.addEventListener("scroll",this.#l,{capture:!0,passive:!0}),window.addEventListener("resize",this.#l,{passive:!0}),this.#s.querySelector('input[type="radio"]:checked')?.focus()}),this.dispatchEvent(new CustomEvent("theme-picker:open",{bubbles:!0})))}#R(){if(!this.#e||!this.#s)return;let t=this.#e.getBoundingClientRect(),e=this.#s.getBoundingClientRect(),i=window.visualViewport||{width:window.innerWidth,height:window.innerHeight},n=i.height,r=i.width,o=8,a=16,l=n-t.bottom-a,c=t.top-a,h=t.height+o;l<e.height&&c>l?(h=-e.height-o,this.#s.dataset.position="top"):delete this.#s.dataset.position;let u=0,d=t.left+e.width+a,p=t.left+u;d>r&&(u=r-d),p+u<a&&(u=a-t.left),this.#s.style.setProperty("--panel-top",`${h}px`),this.#s.style.setProperty("--panel-left",`${u}px`)}close(){this.#i||!this.#n||(this.#M(),this.#n=!1,this.removeAttribute("open"),this.#e?.setAttribute("aria-expanded","false"),window.removeEventListener("scroll",this.#l,{capture:!0}),window.removeEventListener("resize",this.#l),this.dispatchEvent(new CustomEvent("theme-picker:close",{bubbles:!0})))}toggle(){this.#n?this.close():this.open()}get isOpen(){return this.#n}};g("theme-picker",Cs);var Ts=class extends b{#t;#e=new WeakSet;setup(){this.#s(),this.#t=new MutationObserver(t=>{for(let e of t)e.type==="childList"&&this.#s()}),this.#t.observe(this,{childList:!0,subtree:!0})}teardown(){this.#t?.disconnect()}#s(){let e=(this.getAttribute("levels")||"h2,h3").split(",").map(n=>n.trim()).join(","),i=this.querySelectorAll(e);for(let n of i)this.#e.has(n)||(this.#n(n),this.#e.add(n))}#n(t){if(t.closest("dialog, [data-toc-ignore]")||t.hasAttribute("data-toc-ignore")||(t.id||(t.id=this.#i(t.textContent)),t.querySelector(".heading-anchor")))return;let e=document.createElement("a");e.className="heading-anchor",e.href=`#${t.id}`,e.setAttribute("aria-label",`Link to ${t.textContent.trim()}`),e.innerHTML='<icon-wc name="link" size="sm"></icon-wc>',e.addEventListener("click",i=>{i.preventDefault(),this.#r(t,e)}),t.appendChild(e),t.hasAttribute("tabindex")||t.setAttribute("tabindex","-1")}#i(t){let e=t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").substring(0,50),i=e,n=1;for(;document.getElementById(i);)i=`${e}-${n}`,n++;return i}async#r(t,e){let i=new URL(window.location.href);i.hash=t.id,window.history.pushState(null,"",i),t.scrollIntoView({behavior:"smooth",block:"start"}),t.focus();try{await navigator.clipboard.writeText(i.href);let n=e.innerHTML;e.innerHTML='<icon-wc name="check" size="sm"></icon-wc>',e.classList.add("copied"),setTimeout(()=>{e.innerHTML=n,e.classList.remove("copied")},1500),this.#o("Link copied to clipboard")}catch{}this.dispatchEvent(new CustomEvent("heading-links:navigate",{bubbles:!0,detail:{id:t.id,url:i.href}}))}#o(t){let e=document.createElement("div");e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.className="sr-only",e.textContent=t,this.appendChild(e),setTimeout(()=>e.remove(),1e3)}};g("heading-links",Ts);var Ls=class extends b{#t;#e=[];#s=new Map;#n;#i;#r;#o=!1;setup(){requestAnimationFrame(()=>this.#a())}teardown(){this.#t?.disconnect(),clearTimeout(this.#r)}#a(){this.#o=this.#l(),this.#o?this.#c():this.#f(),this.#A(),this.#h(),this.#u()}#l(){return this.querySelector("nav, details")!==null}#c(){this.#i=this.querySelector("details");let t=this.querySelectorAll('a[href^="#"]');for(let e of t){let i=e.getAttribute("href");if(!i)continue;let n=i.slice(1);if(n){let r=document.getElementById(n);r&&(this.#e.push(r),this.#s.set(n,e),e.classList.contains("link")||e.classList.add("link"),e.addEventListener("click",o=>{o.preventDefault(),this.#y(r)}))}}}#h(){this.#n=window.matchMedia("(min-width: 64rem)"),this.listen(this.#n,"change",this.#p),this.listen(window,"resize",this.#d)}#p=t=>{t.matches&&this.#i&&(this.#i.open=!0)};#d=()=>{clearTimeout(this.#r),this.#r=setTimeout(()=>this.#b(),150)};#u(){this.listen(window,"hashchange",this.#m),this.#b()}#m=()=>{this.#b()};#b(){let t=window.location.hash.slice(1);t&&this.#s.has(t)&&this.#g(t)}#g(t){for(let i of this.#s.values())i.classList.remove("active"),i.removeAttribute("aria-current");let e=this.#s.get(t);e&&(e.classList.add("active"),e.setAttribute("aria-current","true"))}#f(){let t=this.getAttribute("levels")||"h2,h3",e=this.getAttribute("scope")||"main",i=this.getAttribute("title")||"On this page",n=document.querySelector(e);if(!n)return;let r=t.split(",").map(u=>u.trim()).join(",");if(this.#e=Array.from(n.querySelectorAll(r)).filter(u=>u.id).filter(u=>!u.hasAttribute("data-toc-ignore")&&!u.closest("[data-toc-ignore]")),this.#e.length===0)return;this.#i=document.createElement("details"),this.#i.className="details",this.#i.open=!0;let o=this.#i,a=document.createElement("summary");a.className="summary",a.textContent=i,o.appendChild(a);let l=document.createElement("nav");l.className="nav",l.setAttribute("aria-label",i);let c=document.createElement("ul");c.className="list";let h=t.split(",").map(u=>u.trim().toLowerCase());for(let u of this.#e){let d=u.tagName.toLowerCase(),p=h.indexOf(d),m=p>=0?p:0,f=document.createElement("li");f.className="item",f.dataset.level=String(m);let v=document.createElement("a");v.href=`#${u.id}`,v.className="link",v.textContent=this.#v(u),v.addEventListener("click",y=>{y.preventDefault(),this.#y(u)}),f.appendChild(v),c.appendChild(f),this.#s.set(u.id,v)}l.appendChild(c),o.appendChild(l),this.appendChild(o)}#v(t){let e=t.cloneNode(!0);return e.querySelectorAll(".heading-anchor").forEach(n=>n.remove()),e.textContent.trim()}#y(t){let e=new URL(window.location.href);e.hash=t.id,window.history.pushState(null,"",e),t.scrollIntoView({behavior:"smooth",block:"start"}),t.focus(),this.dispatchEvent(new CustomEvent("page-toc:navigate",{bubbles:!0,detail:{id:t.id}}))}#A(){if(this.#e.length===0)return;let t=new Set;this.#t=new IntersectionObserver(e=>{for(let i of e)i.isIntersecting?t.add(i.target.id):t.delete(i.target.id);this.#k(t)},{rootMargin:"-80px 0px -70% 0px",threshold:0});for(let e of this.#e)this.#t.observe(e)}#k(t){for(let e of this.#e)if(t.has(e.id)){this.#g(e.id);return}this.#b()}refresh(){this.#o||(this.innerHTML=""),this.#s.clear(),this.#e=[],this.#t?.disconnect(),this.#a()}};g("page-toc",Ls);var Ms=class extends b{#t;#e;#s=[];#n=[];#i=[];#r=-1;#o=null;#a=1;#l=0;#c=null;#h=null;#p=null;#d="";#u=null;#m=null;setup(){if(this.#t=this.querySelector(":scope > table"),!this.#t||(this.#e=this.#t.querySelector("tbody"),!this.#e))return!1;this.#b()}teardown(){this.#g(),this.#s=[],this.#n=[],this.#i=[]}#b(){this.#n=[...this.#e.querySelectorAll(":scope > tr:not([data-expand-content])")],this.#i=[...this.#n],this.#f(),this.#t.hasAttribute("data-filterable")&&this.#T();let t=this.#t.getAttribute("data-paginate");t&&(this.#l=parseInt(t,10),this.#l>0&&this.#q()),this.#C(),this.#$(),this.#I()}#g(){this.#p&&clearTimeout(this.#p),this.#c?.parentElement?.remove(),this.#h?.remove()}#f(){this.#t.querySelectorAll("thead th[data-sort]").forEach((e,i)=>{let n=e.getAttribute("data-sort"),r=this.#v(e);this.#s.push({th:e,sortType:n,columnIndex:r}),e.setAttribute("tabindex","0"),e.setAttribute("role","columnheader"),e.setAttribute("aria-sort","none"),e.dataset.columnIndex=r,this.listen(e,"click",this.#y),this.listen(e,"keydown",this.#A)})}#v(t){return[...t.parentElement.children].indexOf(t)}#y=t=>{let e=t.currentTarget,i=parseInt(e.dataset.columnIndex,10);this.#L(i)};#A=t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();let e=t.currentTarget,i=parseInt(e.dataset.columnIndex,10);this.#L(i)}};#k(t,e,i){let n=this.#i;if(n.length<2)return!0;let r=i==="asc"?1:-1;for(let o=1;o<n.length;o++){let a=this.#E(n[o-1].children[t],e),l=this.#E(n[o].children[t],e);if((typeof a=="string"?a.localeCompare(l)*r:(a-l)*r)>0)return!1}return!0}#L(t){let e=this.#s.find(n=>n.columnIndex===t);if(!e)return;let i;this.#r===t?i=this.#o==="asc"?"desc":"asc":this.#k(t,e.sortType,"asc")?i="desc":i="asc",this.#s.forEach(({th:n})=>{n.setAttribute("aria-sort","none")}),e.th.setAttribute("aria-sort",i==="asc"?"ascending":"descending"),this.#r=t,this.#o=i,this.#x(t,i,e.sortType),this.#a=1,this.#I(),this.dispatchEvent(new CustomEvent("data-table:sort",{detail:{column:t,direction:i,columnName:e.th.textContent.trim()},bubbles:!0}))}#x(t,e,i){let n=e==="asc"?1:-1;this.#i.sort((r,o)=>{let a=r.children[t],l=o.children[t];if(!a||!l)return 0;let c=this.#E(a,i),h=this.#E(l,i),u=0;switch(i){case"number":u=c-h;break;case"date":u=c-h;break;default:u=c.localeCompare(h,void 0,{numeric:!0,sensitivity:"base"});break}return u*n})}#E(t,e){let n=t.getAttribute("data-sort-value")??t.textContent.trim();switch(e){case"number":return parseFloat(n)||0;case"date":return new Date(n).getTime()||0;default:return n.toLowerCase()}}#T(){let t=document.createElement("div");t.setAttribute("data-table-filter","");let e=document.createElement("input");e.type="search",e.setAttribute("data-filter-input",""),e.setAttribute("placeholder","Filter table..."),e.setAttribute("aria-label","Filter table rows"),t.appendChild(e),this.insertBefore(t,this.#t),this.#c=e,this.listen(e,"input",this.#S)}#S=t=>{let e=t.target.value;this.#p&&clearTimeout(this.#p),this.#p=setTimeout(()=>{this.#w(e)},150)};#w(t){if(this.#d=t.toLowerCase().trim(),this.#d===""?this.#i=[...this.#n]:this.#i=this.#n.filter(e=>[...e.children].some(n=>(n.getAttribute("data-filter-value")??n.textContent).toLowerCase().includes(this.#d))),this.#r>=0&&this.#o){let e=this.#s.find(i=>i.columnIndex===this.#r);e&&this.#x(this.#r,this.#o,e.sortType)}this.#a=1,this.#I(),this.dispatchEvent(new CustomEvent("data-table:filter",{detail:{query:this.#d,count:this.#i.length},bubbles:!0}))}#q(){let t=document.createElement("nav");t.setAttribute("data-pagination",""),t.setAttribute("aria-label","Table pagination"),this.appendChild(t),this.#h=t}#C(){this.listen(this.#t,"click",this.#D)}#D=t=>{let e=t.target.closest('[data-action="toggle-expand"]');if(!e)return;let i=e.closest("tr[data-expandable]");if(!i)return;let n=i.hasAttribute("data-state-expanded"),r=i.nextElementSibling;n?(i.removeAttribute("data-state-expanded"),e.setAttribute("aria-expanded","false"),r?.hasAttribute("data-expand-content")&&(r.hidden=!0,r.setAttribute("aria-hidden","true"))):(i.setAttribute("data-state-expanded",""),e.setAttribute("aria-expanded","true"),r?.hasAttribute("data-expand-content")&&(r.hidden=!1,r.removeAttribute("aria-hidden"))),this.dispatchEvent(new CustomEvent("data-table:expand",{detail:{row:i,expanded:!n},bubbles:!0}))};#$(){this.#u=this.#t.querySelector('thead [data-action="select-all"]'),this.#u&&this.listen(this.#u,"change",this.#M),this.listen(this.#e,"change",this.#_),this.#m=this.querySelector("[data-selected-count]"),this.#B()}#M=t=>{let e=t.target.checked;this.#e.querySelectorAll("tr[data-selectable]").forEach(n=>{let r=n.querySelector('[data-action="select-row"]');e?(n.setAttribute("data-state-selected",""),r&&(r.checked=!0)):(n.removeAttribute("data-state-selected"),r&&(r.checked=!1))}),t.target.indeterminate=!1,this.#R(),this.#F()};#_=t=>{let e=t.target.closest('[data-action="select-row"]');if(!e)return;let i=e.closest("tr[data-selectable]");i&&(e.checked?i.setAttribute("data-state-selected",""):i.removeAttribute("data-state-selected"),this.#B(),this.#F())};#B(){if(!this.#u){this.#R();return}let t=this.#e.querySelectorAll("tr[data-selectable]"),e=this.#e.querySelectorAll("tr[data-selectable][data-state-selected]"),i=t.length,n=e.length;n===0?(this.#u.checked=!1,this.#u.indeterminate=!1):n===i?(this.#u.checked=!0,this.#u.indeterminate=!1):(this.#u.checked=!1,this.#u.indeterminate=!0),this.#R()}#R(){let e=this.#e.querySelectorAll("tr[data-selectable][data-state-selected]").length;this.#m&&(this.#m.textContent=e)}#F(){let t=[...this.#e.querySelectorAll("tr[data-selectable][data-state-selected]")];this.dispatchEvent(new CustomEvent("data-table:selection",{detail:{count:t.length,rows:t},bubbles:!0}))}#j(){if(!this.#h||this.#l<=0)return;let t=this.#h,e=Math.ceil(this.#i.length/this.#l);if(t.innerHTML="",e<=1)return;let i=document.createElement("button");i.type="button",i.textContent="Previous",i.setAttribute("data-pagination-prev",""),i.disabled=this.#a===1,i.addEventListener("click",()=>this.goToPage(this.#a-1)),t.appendChild(i),this.#N(e).forEach(o=>{if(o==="..."){let a=document.createElement("span");a.textContent="...",a.setAttribute("data-pagination-ellipsis",""),t.appendChild(a)}else{let a=document.createElement("button");a.type="button",a.textContent=o,a.setAttribute("data-pagination-page",""),o===this.#a&&(a.setAttribute("aria-current","page"),a.setAttribute("data-current","")),a.addEventListener("click",()=>this.goToPage(o)),t.appendChild(a)}});let r=document.createElement("button");r.type="button",r.textContent="Next",r.setAttribute("data-pagination-next",""),r.disabled=this.#a===e,r.addEventListener("click",()=>this.goToPage(this.#a+1)),t.appendChild(r)}#N(t){let e=this.#a,i=[];if(t<=7)for(let n=1;n<=t;n++)i.push(n);else{i.push(1),e>3&&i.push("...");let n=Math.max(2,e-1),r=Math.min(t-1,e+1);for(let o=n;o<=r;o++)i.push(o);e<t-2&&i.push("..."),i.push(t)}return i}#I(){this.#n.forEach(e=>{e.setAttribute("data-state-hidden","")});let t;if(this.#l>0){let e=(this.#a-1)*this.#l,i=e+this.#l;t=this.#i.slice(e,i)}else t=this.#i;t.forEach(e=>{e.removeAttribute("data-state-hidden"),this.#e.appendChild(e);let i=e.nextElementSibling?.hasAttribute?.("data-expand-content")?e.nextElementSibling:this.#O(e);i&&this.#e.appendChild(i)}),this.#i.forEach(e=>{if(e.hasAttribute("data-state-hidden")){this.#e.appendChild(e);let i=this.#O(e);i&&this.#e.appendChild(i)}}),this.#n.forEach(e=>{if(!this.#i.includes(e)){this.#e.appendChild(e);let i=this.#O(e);i&&this.#e.appendChild(i)}}),this.#j()}#O(t){if(!t.hasAttribute("data-expandable"))return null;let e=t.nextElementSibling;return e?.hasAttribute("data-expand-content")?e:null}goToPage(t){let e=Math.ceil(this.#i.length/this.#l),i=Math.max(1,Math.min(t,e));i!==this.#a&&(this.#a=i,this.#I(),this.dispatchEvent(new CustomEvent("data-table:page",{detail:{page:this.#a},bubbles:!0})))}setFilter(t){this.#c&&(this.#c.value=t),this.#w(t)}refresh(){if(this.#n=[...this.#e.querySelectorAll(":scope > tr")],this.#d?this.#w(this.#d):this.#i=[...this.#n],this.#r>=0&&this.#o){let e=this.#s.find(i=>i.columnIndex===this.#r);e&&this.#x(this.#r,this.#o,e.sortType)}let t=Math.max(1,Math.ceil(this.#i.length/this.#l));this.#a>t&&(this.#a=t),this.#I()}get currentPage(){return this.#a}get totalPages(){return this.#l<=0?1:Math.ceil(this.#i.length/this.#l)}get filteredCount(){return this.#i.length}get totalCount(){return this.#n.length}getSelectedRows(){return this.#e?[...this.#e.querySelectorAll("tr[data-selectable][data-state-selected]")]:[]}};g("data-table",Ms);lt();var $s=class s extends b{static#t=150;static#e=8;#s=null;#n=null;#i=null;#r=null;#o=[];#a=-1;#l=!1;#c=null;#h=null;#p=null;setup(){this.#d(),this.#u()}teardown(){this.#l&&(document.body.style.overflow="",this.removeAttribute("open"),this.#l=!1),this.#p?.(),this.#T()}#d(){this.#s=this.querySelector(":scope > [data-trigger]"),this.#s||(this.#s=this.querySelector(":scope > button")),this.#s||(this.#s=document.createElement("button"),this.#s.setAttribute("data-trigger",""),this.#s.innerHTML=`
|
|
346
|
+
<icon-wc name="search" label="Search"></icon-wc>
|
|
347
|
+
`,this.prepend(this.#s)),this.#s.setAttribute("aria-haspopup","dialog"),this.#s.setAttribute("aria-expanded","false"),this.#n=document.createElement("div"),this.#n.className="dialog",this.#n.setAttribute("role","dialog"),this.#n.setAttribute("aria-label","Site search"),this.#n.id=`search-dialog-${crypto.randomUUID().slice(0,8)}`,this.#s.setAttribute("aria-controls",this.#n.id),this.#n.innerHTML=`
|
|
348
|
+
<div class="backdrop"></div>
|
|
349
|
+
<div class="panel">
|
|
350
|
+
<div class="input-wrapper">
|
|
351
|
+
<icon-wc name="search" class="icon"></icon-wc>
|
|
352
|
+
<input
|
|
353
|
+
type="search"
|
|
354
|
+
name="search"
|
|
355
|
+
class="input"
|
|
356
|
+
placeholder="Search documentation..."
|
|
357
|
+
autocomplete="off"
|
|
358
|
+
autocorrect="off"
|
|
359
|
+
autocapitalize="off"
|
|
360
|
+
spellcheck="false"
|
|
361
|
+
aria-label="Search"
|
|
362
|
+
aria-autocomplete="list"
|
|
363
|
+
/>
|
|
364
|
+
<kbd class="shortcut">Esc</kbd>
|
|
365
|
+
</div>
|
|
366
|
+
<div class="results" role="listbox" aria-label="Search results"></div>
|
|
367
|
+
<div class="footer">
|
|
368
|
+
<span class="hint">
|
|
369
|
+
<kbd>\u2191</kbd><kbd>\u2193</kbd> to navigate
|
|
370
|
+
<kbd>\u21B5</kbd> to select
|
|
371
|
+
<kbd>esc</kbd> to close
|
|
372
|
+
</span>
|
|
373
|
+
<span class="powered">
|
|
374
|
+
Powered by <a href="https://pagefind.app" target="_blank" rel="noopener">Pagefind</a>
|
|
375
|
+
</span>
|
|
376
|
+
</div>
|
|
377
|
+
</div>
|
|
378
|
+
`,this.appendChild(this.#n),this.#i=this.#n.querySelector(".input"),this.#r=this.#n.querySelector(".results")}#u(){this.#s.addEventListener("click",this.#m),Or().includes("meta+k")||(this.#p=W("meta+k",()=>{this.#l?this.close():this.open()},{global:!0})),this.listen(document,"keydown",this.#b),this.#n.querySelector(".backdrop")?.addEventListener("click",()=>this.close()),this.#i.addEventListener("input",this.#g),this.#i.addEventListener("keydown",this.#f),this.#r.addEventListener("click",this.#v)}#m=t=>{t.stopPropagation(),this.open()};#b=t=>{t.key==="Escape"&&this.#l&&(t.preventDefault(),this.close())};#g=()=>{this.#T(),this.#h=setTimeout(()=>{this.#A(this.#i.value)},s.#t)};#f=t=>{switch(t.key){case"ArrowDown":t.preventDefault(),this.#x(this.#a+1);break;case"ArrowUp":t.preventDefault(),this.#x(this.#a-1);break;case"Enter":t.preventDefault(),this.#a>=0&&this.#o[this.#a]&&this.#E(this.#o[this.#a]);break}};#v=t=>{let e=t.target.closest("[data-result-index]");if(e){let i=parseInt(e.dataset.resultIndex,10);this.#o[i]&&this.#E(this.#o[i])}};async#y(){if(!this.#c)try{this.#c=await import("/pagefind/pagefind.js"),await this.#c.options({excerptLength:20})}catch{console.warn("Pagefind not available. Run `npm run search:index` to build the search index."),this.#c=null}}async#A(t){if(!t.trim()){this.#k([]);return}if(await this.#y(),!this.#c){this.#L();return}try{this.#r.innerHTML='<div class="loading">Searching...</div>';let e=await this.#c.search(t),i=await Promise.all(e.results.slice(0,s.#e).map(n=>n.data()));this.#o=i,this.#k(i)}catch(e){console.error("Search error:",e),this.#r.innerHTML='<div class="error">Search error. Please try again.</div>'}}#k(t){if(this.#a=-1,t.length===0){this.#i.value.trim()?this.#r.innerHTML='<div class="empty">No results found</div>':this.#r.innerHTML="";return}this.#r.innerHTML=t.map((e,i)=>`
|
|
379
|
+
<a
|
|
380
|
+
id="search-result-${i}"
|
|
381
|
+
href="${e.url}"
|
|
382
|
+
class="result"
|
|
383
|
+
role="option"
|
|
384
|
+
data-result-index="${i}"
|
|
385
|
+
tabindex="-1"
|
|
386
|
+
>
|
|
387
|
+
<span class="result-title">${e.meta?.title||"Untitled"}</span>
|
|
388
|
+
<span class="result-excerpt">${e.excerpt||""}</span>
|
|
389
|
+
</a>
|
|
390
|
+
`).join("")}#L(){this.#r.innerHTML=`
|
|
391
|
+
<div class="error">
|
|
392
|
+
Search index not found.<br>
|
|
393
|
+
Run <code>npm run search:index</code> after building.
|
|
394
|
+
</div>
|
|
395
|
+
`}#x(t){if(this.#o.length===0)return;t<0&&(t=this.#o.length-1),t>=this.#o.length&&(t=0);let e=this.#r.querySelector("[data-active]");e&&e.removeAttribute("data-active"),this.#i?.removeAttribute("aria-activedescendant"),this.#a=t;let i=this.#r.querySelector(`[data-result-index="${t}"]`);i&&(i.setAttribute("data-active",""),this.#i?.setAttribute("aria-activedescendant",i.id),i.scrollIntoView({block:"nearest"}))}#E(t){t.url&&(this.close(),window.location.href=t.url)}#T(){this.#h&&(clearTimeout(this.#h),this.#h=null)}open(){this.#l||(this.#l=!0,this.setAttribute("open",""),this.#s?.setAttribute("aria-expanded","true"),document.body.style.overflow="hidden",requestAnimationFrame(()=>{this.#i?.focus(),this.#i?.select()}),this.#y(),this.dispatchEvent(new CustomEvent("site-search:open",{bubbles:!0})))}close(){this.#l&&(this.#l=!1,this.removeAttribute("open"),this.#s?.setAttribute("aria-expanded","false"),document.body.style.overflow="",this.#T(),this.#i.value="",this.#i?.removeAttribute("aria-activedescendant"),this.#o=[],this.#a=-1,this.#r.innerHTML="",this.#s?.focus(),this.dispatchEvent(new CustomEvent("site-search:close",{bubbles:!0})))}get isOpen(){return this.#l}};g("site-search",$s);Ot();Ot();var Jl=/^[a-zA-Z_$][a-zA-Z0-9_$]*(\.[a-zA-Z_$][a-zA-Z0-9_$]*|\[\d+\])*$/;function Pr(s){return!s||typeof s!="string"?!1:Jl.test(s.trim())}function Pt(s,t){if(!Pr(t)){console.warn(`[card-list] Unsafe property path rejected: "${t}"`);return}let i=t.replace(/\[(\d+)\]/g,".$1").split("."),n=s;for(let r of i){if(n==null)return;n=n[r]}return n}function Zl(s){return s?s.split(",").map(t=>{let[e,i]=t.split(":").map(n=>n.trim());return{attr:e,path:i}}).filter(({attr:t,path:e})=>t&&e):[]}var Ns=class extends b{#t=null;#e=[];#s="id";static get observedAttributes(){return["src","data-items","data-key"]}setup(){if(this.#t=this.querySelector("template"),!this.#t)return console.warn("[card-list] No template found"),!1;this.#s=this.getAttribute("data-key")||"id";let t=this.getAttribute("data-items");if(t){try{this.#e=JSON.parse(t),this.#i()}catch(i){console.error("[card-list] Invalid JSON in data-items:",i)}return}let e=this.getAttribute("src");e&&this.#n(e)}attributeChangedCallback(t,e,i){if(e!==i)if(t==="data-items"&&i)try{this.#e=JSON.parse(i),this.#i()}catch(n){console.error("[card-list] Invalid JSON in data-items:",n)}else t==="src"&&i?this.#n(i):t==="data-key"&&(this.#s=i||"id",this.#i())}async#n(t){try{this.setAttribute("data-loading","");let e=await fetch(t);if(!e.ok)throw new Error(`HTTP ${e.status}`);let i=await e.json();this.#e=Array.isArray(i)?i:i.items||i.data||[],this.#i()}catch(e){console.error("[card-list] Fetch error:",e),this.setAttribute("data-error",e.message)}finally{this.removeAttribute("data-loading")}}#i(){if(!this.#t)return;this.querySelectorAll(":scope > :not(template)").forEach(i=>i.remove());let e=document.createDocumentFragment();for(let i of this.#e){let n=this.#t.content.cloneNode(!0);this.#r(n,i),e.appendChild(n)}this.appendChild(e),this.dispatchEvent(new CustomEvent("card-list:rendered",{detail:{count:this.#e.length},bubbles:!0}))}#r(t,e){t.querySelectorAll("[data-field]").forEach(i=>{let n=i.getAttribute("data-field"),r=Pt(e,n);i.textContent=r??""}),t.querySelectorAll("[data-field-attr]").forEach(i=>{let n=Zl(i.getAttribute("data-field-attr"));for(let{attr:r,path:o}of n){if(!Pr(o))continue;let a=Pt(e,o);a!=null&&i.setAttribute(r,a)}}),t.querySelectorAll("[data-field-html]").forEach(i=>{let n=i.getAttribute("data-field-html"),r=Pt(e,n);i.innerHTML=et(r)}),t.querySelectorAll("[data-field-if]").forEach(i=>{let n=i.getAttribute("data-field-if");Pt(e,n)||i.remove()}),t.querySelectorAll("[data-field-unless]").forEach(i=>{let n=i.getAttribute("data-field-unless");Pt(e,n)&&i.remove()})}setItems(t){this.#e=Array.isArray(t)?t:[],this.#i()}getItems(){return[...this.#e]}};g("card-list",Ns);var Ql=0;function ue(s,t){return s.matches("content-swap")?t:`data-${t}`}function he(s){s.style.viewTransitionName||(s.style.viewTransitionName=`content-swap-${++Ql}`);let t=s.querySelector(':scope > [data-face="front"]'),e=s.querySelector(':scope > [data-face="back"]');if(!t||!e)return;let i=[];function n(a,l,c,h){a.addEventListener(l,c,h),i.push(()=>a.removeEventListener(l,c,h))}let r=[...s.querySelectorAll("[data-swap]")].filter(a=>a!==s&&a.closest("content-swap, [data-swap]")===s);return r.length===0?(s.setAttribute("role","button"),s.setAttribute("tabindex","0"),s.getAttribute("aria-label")||s.setAttribute("aria-label","Toggle content"),n(s,"click",()=>jt(s,"pointer")),n(s,"keydown",a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),jt(s,"keyboard"))})):r.forEach(a=>{n(a,"click",l=>{l.stopPropagation(),jt(s,"pointer")}),n(a,"keydown",l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),jt(s,"keyboard"))})}),zr(s,t,e),()=>{for(let a of i)a();i.length=0}}function zr(s,t,e){let i=s.hasAttribute(ue(s,"swapped"));t.inert=i,e.inert=!i}function tc(s){return{front:s.querySelector(':scope > [data-face="front"]'),back:s.querySelector(':scope > [data-face="back"]')}}function Ft(s,t,e="api"){let{front:i,back:n}=tc(s);if(!i||!n)return;let r=ue(s,"swapped");if(t&&s.hasAttribute(r)||!t&&!s.hasAttribute(r))return;F(()=>{t?s.setAttribute(r,""):s.removeAttribute(r),zr(s,i,n),ec(s);let a=t?n:i,l=a.querySelector("[autofocus]");l?l.focus():e==="keyboard"&&sc(a)})}function jt(s,t="api"){Ft(s,!s.hasAttribute(ue(s,"swapped")),t)}function ec(s){s.dispatchEvent(new CustomEvent("content-swap:swap",{detail:{swapped:s.hasAttribute(ue(s,"swapped"))},bubbles:!0}))}function sc(s){let t=s.querySelector("[data-swap], button, a, input, select, textarea");t&&t.focus()}var qs=class extends b{#t=null;setup(){this.#t=he(this)??null}teardown(){this.#t?.(),this.#t=null}flip(){Ft(this,!0)}unflip(){Ft(this,!1)}toggle(){jt(this)}get flipped(){return this.hasAttribute("swapped")}set flipped(t){Ft(this,!!t)}get swapped(){return this.hasAttribute("swapped")}set swapped(t){Ft(this,!!t)}};g("content-swap",qs);function Fr(){document.querySelectorAll("[data-swap]:not(content-swap):not([data-swap-init])").forEach(s=>{s.querySelector(":scope > [data-face]")&&(he(s),s.setAttribute("data-swap-init",""))})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Fr):Fr();var jr=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.hasAttribute("data-swap")&&!i.matches("content-swap")&&!i.hasAttribute("data-swap-init")&&i.querySelector(":scope > [data-face]")&&(he(i),i.setAttribute("data-swap-init","")),i.querySelectorAll("[data-swap]:not(content-swap):not([data-swap-init])").forEach(n=>{n.querySelector(":scope > [data-face]")&&(he(n),n.setAttribute("data-swap-init",""))})}});document.body?jr.observe(document.body,{childList:!0,subtree:!0}):document.addEventListener("DOMContentLoaded",()=>{jr.observe(document.body,{childList:!0,subtree:!0})});var Ds=class extends b{#t;#e=!1;setup(){let t=[...this.children];if(t.length<2)return!1;t.length>2&&console.warn("[compare-surface] Expected exactly 2 children; extra children will be ignored.");let e=this.getAttribute("position"),i=e!==null?Number(e):50,n=Math.min(100,Math.max(0,isNaN(i)?50:i));this.#t=document.createElement("div"),this.#t.className="comparison-divider",this.#t.setAttribute("role","slider"),this.#t.setAttribute("aria-label","Comparison slider"),this.#t.setAttribute("aria-valuemin","0"),this.#t.setAttribute("aria-valuemax","100"),this.#t.setAttribute("aria-valuenow",String(Math.round(n))),this.#t.setAttribute("tabindex","0"),this.appendChild(this.#t),this.#o(n),this.listen(this.#t,"pointerdown",this.#s),this.listen(this.#t,"keydown",this.#r)}teardown(){this.#t&&(this.#t.remove(),this.#t=null),this.#e=!1}#s=t=>{t.preventDefault(),this.#e=!0,this.#t.setPointerCapture(t.pointerId),this.#t.addEventListener("pointermove",this.#n),this.#t.addEventListener("pointerup",this.#i)};#n=t=>{if(!this.#e)return;let e=this.getBoundingClientRect(),i=t.clientX-e.left,n=Math.min(100,Math.max(0,i/e.width*100));this.#o(n)};#i=t=>{this.#e=!1,this.#t.releasePointerCapture(t.pointerId),this.#t.removeEventListener("pointermove",this.#n),this.#t.removeEventListener("pointerup",this.#i)};#r=t=>{let e=t.shiftKey?10:1,i=Number(this.#t.getAttribute("aria-valuenow"));t.key==="ArrowLeft"||t.key==="ArrowDown"?(t.preventDefault(),this.#o(Math.max(0,i-e))):(t.key==="ArrowRight"||t.key==="ArrowUp")&&(t.preventDefault(),this.#o(Math.min(100,i+e)))};#o(t){let e=Math.round(t);this.style.setProperty("--_position",`${t}%`),this.#t&&(this.#t.setAttribute("aria-valuenow",String(e)),this.#t.style.left=`${t}%`),this.setAttribute("position",String(e)),this.dispatchEvent(new CustomEvent("compare-surface:change",{detail:{position:t},bubbles:!0}))}get position(){return Number(this.getAttribute("position"))||0}set position(t){let e=Math.min(100,Math.max(0,Number(t)||0));this.#o(e)}};g("compare-surface",Ds);var _s=class extends b{#t;#e;#s;#n=!1;#i=50;#r=!1;#o=50;get#a(){return this.getAttribute("direction")==="vertical"}get#l(){let t=this.getAttribute("min"),e=Number(t);return t!==null&&!isNaN(e)?e:10}get#c(){let t=this.getAttribute("max"),e=Number(t);return t!==null&&!isNaN(e)?e:90}get position(){return this.#i}set position(t){this.#f(Number(t))}get collapsed(){return this.#r}set collapsed(t){t?this.#b():this.#g()}reset(){let t=this.getAttribute("position"),e=Number(t),i=t!==null&&!isNaN(e)?e:50;this.#r=!1,this.#f(i),this.#A()}setup(){let t=[...this.children].filter(a=>!a.classList.contains("split-divider"));if(t.length<2)return!1;this.#e=t[0],this.#s=t[1];let e=this.getAttribute("position"),i=Number(e),n=e!==null&&!isNaN(i)?i:null,r=this.#v(),o=n??r??50;this.#t=document.createElement("div"),this.#t.className="split-divider",this.#t.setAttribute("role","separator"),this.#t.setAttribute("aria-orientation",this.#a?"vertical":"horizontal"),this.#t.setAttribute("aria-valuenow",String(Math.round(o))),this.#t.setAttribute("aria-valuemin",String(this.#l)),this.#t.setAttribute("aria-valuemax",String(this.#c)),this.#t.setAttribute("aria-label","Resize panels"),this.#t.setAttribute("tabindex","0"),this.insertBefore(this.#t,this.#s),this.#f(o),this.listen(this.#t,"pointerdown",this.#h),this.listen(this.#t,"keydown",this.#u),this.hasAttribute("collapsible")&&this.listen(this.#t,"dblclick",this.#m)}teardown(){this.#t&&(this.#t.remove(),this.#t=null)}#h=t=>{t.preventDefault(),this.#n=!0,this.#t.setPointerCapture(t.pointerId),this.style.userSelect="none",this.#t.addEventListener("pointermove",this.#p),this.#t.addEventListener("pointerup",this.#d)};#p=t=>{if(!this.#n)return;let e=this.getBoundingClientRect(),i;this.#a?i=(t.clientY-e.top)/e.height*100:i=(t.clientX-e.left)/e.width*100,this.#r&&(this.#r=!1),this.#f(i)};#d=t=>{this.#n=!1,this.#t.releasePointerCapture(t.pointerId),this.style.userSelect="",this.#t.removeEventListener("pointermove",this.#p),this.#t.removeEventListener("pointerup",this.#d),this.#y()};#u=t=>{let e=t.shiftKey?10:1,i=this.#i,n=this.#a?["ArrowUp"]:["ArrowLeft"],r=this.#a?["ArrowDown"]:["ArrowRight"];n.includes(t.key)?(t.preventDefault(),this.#f(i-e),this.#y()):r.includes(t.key)?(t.preventDefault(),this.#f(i+e),this.#y()):t.key==="Home"?(t.preventDefault(),this.#f(this.#l),this.#y()):t.key==="End"&&(t.preventDefault(),this.#f(this.#c),this.#y())};#m=()=>{this.#r?this.#g():this.#b(),this.#y()};#b(){this.#o=this.#i,this.#r=!0,this.#e.style.flexBasis="0%",this.#e.style.overflow="hidden",this.#t.setAttribute("aria-valuenow","0"),this.#i=0,this.dispatchEvent(new CustomEvent("split-surface:collapse",{detail:{collapsed:!0},bubbles:!0}))}#g(){this.#r=!1,this.#e.style.overflow="auto",this.#f(this.#o),this.dispatchEvent(new CustomEvent("split-surface:collapse",{detail:{collapsed:!1},bubbles:!0}))}#f(t){let e=this.#r?0:Math.min(this.#c,Math.max(this.#l,t));this.#i=e,this.#e.style.flexBasis=`${e}%`,this.#e.style.flexGrow="0",this.#e.style.flexShrink="0",this.#e.style.overflow="auto",this.#s.style.flexGrow="1",this.#s.style.overflow="auto",this.#t.setAttribute("aria-valuenow",String(Math.round(e))),this.dispatchEvent(new CustomEvent("split-surface:resize",{detail:{position:e},bubbles:!0}))}#v(){let t=this.getAttribute("persist");if(!t)return null;try{let e=localStorage.getItem(`split-surface:${t}`);return e!==null?Number(e):null}catch{return null}}#y(){let t=this.getAttribute("persist");if(t)try{localStorage.setItem(`split-surface:${t}`,String(Math.round(this.#i)))}catch{}}#A(){let t=this.getAttribute("persist");if(t)try{localStorage.removeItem(`split-surface:${t}`)}catch{}}};g("split-surface",_s);var nc=0,Is=class extends b{#t;#e=[];#s;#n;#i;#r;#o;#a=null;#l=0;#c=!1;#h=!1;#p=null;get currentIndex(){return this.#l}get slideCount(){return this.#e.length}get playing(){return this.#a!==null}setup(){let t=[...this.children];if(t.length===0)return!1;if(this.#c=window.matchMedia("(prefers-reduced-motion: reduce)").matches,this.#h=this.hasAttribute("transition")&&!!document.startViewTransition,this.setAttribute("role","region"),this.setAttribute("aria-roledescription","carousel"),this.hasAttribute("aria-label")||this.setAttribute("aria-label","Carousel"),this.#t=document.createElement("div"),this.#t.className="carousel-track",this.#t.setAttribute("tabindex","0"),this.#t.setAttribute("aria-label","Slides"),t.forEach((r,o)=>{r.setAttribute("role","group"),r.setAttribute("aria-roledescription","slide"),r.setAttribute("aria-label",`${o+1} of ${t.length}`),this.#t.appendChild(r)}),this.#e=[...this.#t.children],this.#s=document.createElement("button"),this.#s.className="carousel-prev",this.#s.setAttribute("aria-label","Previous slide"),this.#s.innerHTML='<icon-wc name="chevron-left" size="sm"></icon-wc>',this.#n=document.createElement("button"),this.#n.className="carousel-next",this.#n.setAttribute("aria-label","Next slide"),this.#n.innerHTML='<icon-wc name="chevron-right" size="sm"></icon-wc>',this.getAttribute("indicators")!=="false"&&(this.#i=document.createElement("div"),this.#i.className="carousel-indicators",this.#i.setAttribute("aria-label","Slide indicators"),this.#e.forEach((r,o)=>{let a=document.createElement("button");a.className="carousel-dot",a.setAttribute("aria-label",`Go to slide ${o+1}`),a.setAttribute("aria-current",o===0?"true":"false"),this.listen(a,"click",()=>this.goTo(o)),this.#i.appendChild(a)})),this.#r=document.createElement("div"),this.#r.className="carousel-live",this.#r.setAttribute("aria-live","polite"),this.#r.setAttribute("aria-atomic","true"),this.appendChild(this.#s),this.appendChild(this.#t),this.appendChild(this.#n),this.#i&&this.appendChild(this.#i),this.appendChild(this.#r),this.listen(this.#s,"click",()=>this.prev()),this.listen(this.#n,"click",()=>this.next()),this.listen(this.#t,"keydown",this.#g),this.#h){let r=++nc,o=this.getAttribute("transition")||"fade",a=o==="slide"?"vt-carousel-slide":o==="scale"?"vt-carousel-scale":"vt-carousel";this.#t.style.viewTransitionName=`carousel-${r}`,this.#t.style.viewTransitionClass=a}this.#h&&Promise.resolve().then(()=>(me(),pe)).then(({addSwipeListener:r})=>{this.#p=r(this.#t,{threshold:40}),this.listen(this.#t,"swipe-left",()=>this.next()),this.listen(this.#t,"swipe-right",()=>this.prev())}),this.#h||(this.#o=new IntersectionObserver(this.#b,{root:this.#t,threshold:.5}),this.#e.forEach(r=>this.#o.observe(r)));let n=this.#v()??(Number(this.getAttribute("start"))||0);if(this.#h){let r=n>0&&n<this.#e.length?n:0;this.#e.forEach((o,a)=>{o.hidden=a!==r}),this.#u(r)}else n>0&&n<this.#e.length&&this.goTo(n,!1);this.#m(),this.hasAttribute("autoplay")&&!this.#c&&this.#f()}teardown(){this.pause(),this.#o&&(this.#o.disconnect(),this.#o=null),this.#p&&(this.#p(),this.#p=null),this.#e=[],this.#h=!1}next(){let t=this.hasAttribute("loop");this.#l<this.#e.length-1?this.goTo(this.#l+1):t&&this.goTo(0)}prev(){let t=this.hasAttribute("loop");this.#l>0?this.goTo(this.#l-1):t&&this.goTo(this.#e.length-1)}goTo(t,e=!0){if(!(t<0||t>=this.#e.length)){if(this.#h)if(e&&t!==this.#l){let i=t>this.#l?"forward":"backward";document.documentElement.dataset.vtDirection=i,F(()=>{this.#d(t)}).finished?.then(()=>{delete document.documentElement.dataset.vtDirection})}else this.#d(t);else{let i=this.#e[t].offsetLeft-this.#t.offsetLeft,n=e&&!this.#c?"smooth":"instant";this.#t.scrollTo({left:i,behavior:n})}this.#u(t)}}#d(t){this.#e.forEach((e,i)=>{e.hidden=i!==t})}play(){if(this.#a||this.#c)return;let t=Number(this.getAttribute("autoplay-delay"))||5e3;this.#a=setInterval(()=>this.next(),t),this.dispatchEvent(new CustomEvent("carousel-wc:play",{bubbles:!0}))}pause(){this.#a&&(clearInterval(this.#a),this.#a=null,this.dispatchEvent(new CustomEvent("carousel-wc:pause",{bubbles:!0})))}reset(){let t=Number(this.getAttribute("start"))||0;this.goTo(t,!1),this.#A()}#u(t){this.#l=t,this.#m(),this.#y(),this.#r&&(this.#r.textContent=`Slide ${t+1} of ${this.#e.length}`),this.dispatchEvent(new CustomEvent("carousel-wc:change",{detail:{index:t,slide:this.#e[t]},bubbles:!0}))}#m(){let t=this.hasAttribute("loop"),e=this.#l===0,i=this.#l===this.#e.length-1;if(this.#s&&(this.#s.disabled=!t&&e),this.#n&&(this.#n.disabled=!t&&i),this.#i){let n=this.#i.children;for(let r=0;r<n.length;r++){let o=r===this.#l;n[r].setAttribute("aria-current",o?"true":"false"),o?n[r].setAttribute("data-active",""):n[r].removeAttribute("data-active")}}}#b=t=>{for(let e of t)if(e.isIntersecting){let i=this.#e.indexOf(e.target);i!==-1&&i!==this.#l&&this.#u(i)}};#g=t=>{switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next();break;case"Home":t.preventDefault(),this.goTo(0);break;case"End":t.preventDefault(),this.goTo(this.#e.length-1);break}};#f(){this.play(),this.listen(this,"mouseenter",()=>this.pause()),this.listen(this,"mouseleave",()=>{this.hasAttribute("autoplay")&&this.play()}),this.listen(this,"focusin",()=>this.pause()),this.listen(this,"focusout",t=>{!this.contains(t.relatedTarget)&&this.hasAttribute("autoplay")&&this.play()}),this.listen(this,"touchstart",()=>this.pause(),{passive:!0})}#v(){let t=this.getAttribute("persist");if(!t)return null;try{let e=localStorage.getItem(`carousel:${t}`);return e!==null?Number(e):null}catch{return null}}#y(){let t=this.getAttribute("persist");if(t)try{localStorage.setItem(`carousel:${t}`,String(this.#l))}catch{}}#A(){let t=this.getAttribute("persist");if(t)try{localStorage.removeItem(`carousel:${t}`)}catch{}}};g("carousel-wc",Is);var rc=0,Bs=class extends b{#t=[];#e=0;#s=null;#n=null;#i=null;#r=null;#o=null;#a=null;#l=null;#c=null;#h=null;#p="";#d=!1;setup(){if(this.#p=`gallery-lb-${++rc}`,this.#d=!!document.startViewTransition,this.#u(),this.#t.length===0)return!1;this.listen(this,"click",this.#m)}teardown(){this.#h&&(this.#h(),this.#h=null),this.#s&&(this.#s.remove(),this.#s=null),this.#t=[]}open(t){if(t<0||t>=this.#t.length)return;this.#s||this.#b(),this.#g(t);let e=this.#t[t],i=this.getAttribute("transition")||"morph";if(this.#d&&i==="morph"){let n=`gallery-morph-${this.#p}`;e.thumbEl.style.viewTransitionName=n,F(()=>{e.thumbEl.style.viewTransitionName="";let r=this.#i.querySelector("img");r&&(r.style.viewTransitionName=n),this.#s.showModal()}).finished?.then(()=>{let r=this.#i.querySelector("img");r&&(r.style.viewTransitionName="")})}else this.#s.showModal();this.#A(t)}close(){if(!this.#s?.open)return;let t=this.#t[this.#e],e=this.getAttribute("transition")||"morph";if(this.#d&&e==="morph"){let i=`gallery-morph-${this.#p}`,n=this.#i.querySelector("img");n&&(n.style.viewTransitionName=i),F(()=>{n&&(n.style.viewTransitionName=""),t.thumbEl.style.viewTransitionName=i,this.#s.close()}).finished?.then(()=>{t.thumbEl.style.viewTransitionName=""})}else this.#s.close()}next(){let t=this.hasAttribute("loop");this.#e<this.#t.length-1?this.#f(this.#e+1):t&&this.#f(0)}prev(){let t=this.hasAttribute("loop");this.#e>0?this.#f(this.#e-1):t&&this.#f(this.#t.length-1)}#u(){this.#t=[];for(let t of this.children){let e=t.tagName==="FIGURE",i=e?t.querySelector("a[href]"):t.matches("a[href]")?t:null;if(!i)continue;let n=i.querySelector("img");if(!n)continue;let r=e?t.querySelector("figcaption")?.innerHTML??null:null;this.#t.push({href:i.href,thumbSrc:n.src,alt:n.alt||"",caption:r,thumbEl:n})}}#m=t=>{let e=t.target.closest("a[href]");if(!e||!this.contains(e))return;let i=e.querySelector("img"),n=this.#t.findIndex(r=>r.thumbEl===i);n!==-1&&(t.preventDefault(),this.open(n))};#b(){let t=document.createElement("dialog");t.id=this.#p,t.className="gallery-lightbox",t.dataset.size="full";let e=this.getAttribute("controls")||"edge";t.dataset.controls=e;let i=document.createElement("header"),n=document.createElement("span");n.className="gallery-counter",n.setAttribute("aria-live","polite"),n.setAttribute("aria-atomic","true"),this.#r=n;let r=document.createElement("button");r.type="button",r.className="gallery-close",r.setAttribute("commandfor",this.#p),r.setAttribute("command","close"),r.setAttribute("aria-label","Close gallery"),r.innerHTML='<icon-wc name="x" size="sm"></icon-wc>',this.listen(r,"click",()=>this.close()),i.append(n);let o=this.getAttribute("captions")||"auto";i.append(r);let a=document.createElement("section");a.className="gallery-stage",this.#n=a;let l=document.createElement("button");l.type="button",l.className="gallery-prev",l.setAttribute("aria-label","Previous image"),l.innerHTML='<icon-wc name="chevron-left" size="sm"></icon-wc>',this.#o=l;let c=document.createElement("figure");c.className="gallery-frame",this.#i=c;let h=document.createElement("button");if(h.type="button",h.className="gallery-next",h.setAttribute("aria-label","Next image"),h.innerHTML='<icon-wc name="chevron-right" size="sm"></icon-wc>',this.#a=h,a.append(l,c,h),o==="auto"){let u=document.createElement("footer");u.className="gallery-caption",u.hidden=!0;let d=document.createElement("button");d.type="button",d.className="gallery-info-btn",d.setAttribute("aria-label","Show image details"),d.setAttribute("aria-expanded","false"),d.innerHTML='<icon-wc name="info" size="sm"></icon-wc>',this.#l=d;let p=document.createElement("div");p.className="gallery-caption-text",p.hidden=!0,u.append(d,p),this.#c=p,t.append(i,a,u),this.listen(d,"click",()=>{let m=!p.hidden;p.hidden=m,d.setAttribute("aria-expanded",String(!m)),d.setAttribute("aria-label",m?"Show image details":"Hide image details")})}else t.append(i,a);this.append(t),this.#s=t,this.listen(l,"click",()=>this.prev()),this.listen(h,"click",()=>this.next()),this.listen(t,"keydown",this.#y),this.listen(t,"click",u=>{u.target===t&&this.close()}),this.listen(t,"close",()=>{let u=this.#t[this.#e];u&&(u.thumbEl.style.viewTransitionName="");let d=this.#i?.querySelector("img");d&&(d.style.viewTransitionName="")}),Promise.resolve().then(()=>(me(),pe)).then(({addSwipeListener:u})=>{this.#h=u(a,{threshold:40}),this.listen(a,"swipe-left",()=>this.next()),this.listen(a,"swipe-right",()=>this.prev())})}#g(t){let e=this.#t[t];this.#e=t;let i=document.createElement("img");i.src=e.href,i.alt=e.alt,this.#i.innerHTML="",this.#i.append(i);let n=this.getAttribute("captions")||"auto";if(n==="overlay"&&e.caption){let r=document.createElement("figcaption");r.innerHTML=e.caption,this.#i.append(r)}else if(n==="auto"){let r=this.#c?.parentElement;this.#c&&this.#l&&r&&(e.caption?(this.#c.innerHTML=e.caption,r.hidden=!1,this.#c.hidden=!0,this.#l.setAttribute("aria-expanded","false"),this.#l.setAttribute("aria-label","Show image details")):(this.#c.innerHTML="",r.hidden=!0))}this.#v()}#f(t){let e=this.getAttribute("transition")||"morph";this.#d&&e!=="none"?F(()=>{this.#g(t)}):this.#g(t),this.#A(t)}#v(){let t=this.hasAttribute("loop"),e=this.#e===0,i=this.#e===this.#t.length-1;this.#o&&(this.#o.disabled=!t&&e),this.#a&&(this.#a.disabled=!t&&i),this.#r&&(this.#r.textContent=`${this.#e+1} of ${this.#t.length}`)}#y=t=>{switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next();break;case"Home":t.preventDefault(),this.#f(0);break;case"End":t.preventDefault(),this.#f(this.#t.length-1);break}};#A(t){let e=i=>{if(i>=0&&i<this.#t.length){let n=new Image;n.src=this.#t[i].href}};e(t-1),e(t+1)}};g("image-gallery",Bs);var Rs=class extends b{static formAssociated=!0;#t;#e;#s;constructor(){super(),this.#t=this.attachInternals()}setup(){this.#n()}#n(){if(this.querySelector("fieldset"))return;let t=Number(this.getAttribute("value")||0);this.#e=t;let e=Number(this.getAttribute("max")||5),i=this.getAttribute("label")||"Rating",n=this.hasAttribute("allow-half"),r=this.hasAttribute("readonly"),o=this.getAttribute("icon"),l=`_sr_${this.getAttribute("name")||`star-rating-${crypto.randomUUID().slice(0,8)}`}`;r?this.#r(t,e,i,o):this.#i(t,e,i,l,n,o),this.#a(t),this.#l()}#i(t,e,i,n,r,o){let a=document.createElement("fieldset");a.setAttribute("data-rating",""),r&&a.setAttribute("data-rating-half",""),a.setAttribute("data-effect","rating");let l=document.createElement("legend");if(l.textContent=i,a.appendChild(l),r)for(let c=1;c<=e;c++){let h=c-.5,u=document.createElement("label");u.setAttribute("data-half","left");let d=document.createElement("input");d.type="radio",d.name=n,d.value=String(h),d.setAttribute("aria-label",`${h} ${h===1?"star":"stars"}`),t===h&&(d.checked=!0),u.appendChild(d),u.append(this.#o(o)),a.appendChild(u);let p=document.createElement("label");p.setAttribute("data-half","right");let m=document.createElement("input");m.type="radio",m.name=n,m.value=String(c),m.setAttribute("aria-label",`${c} ${c===1?"star":"stars"}`),t===c&&(m.checked=!0),p.appendChild(m),p.append(this.#o(o)),a.appendChild(p)}else for(let c=1;c<=e;c++){let h=document.createElement("label"),u=document.createElement("input");u.type="radio",u.name=n,u.value=String(c),u.setAttribute("aria-label",`${c} ${c===1?"star":"stars"}`),t===c&&(u.checked=!0),h.appendChild(u),h.append(this.#o(o)),a.appendChild(h)}this.appendChild(a),this.#s=a,a.addEventListener("rating:change",c=>{this.#a(c.detail.value),this.#l()}),a.addEventListener("change",c=>{let h=c.target;h.type==="radio"&&h.checked&&(this.#a(Number(h.value)),this.#l())})}#r(t,e,i,n){let r=document.createElement("fieldset");r.setAttribute("data-rating",""),r.setAttribute("data-rating-readonly",""),r.setAttribute("role","img"),r.setAttribute("aria-label",`${i}: ${t} out of ${e}`);let o=document.createElement("legend");o.textContent=i,r.appendChild(o);let a=Math.floor(t),l=t-a;for(let c=1;c<=e;c++){let h=document.createElement("span");if(h.setAttribute("aria-hidden","true"),c<=a)h.classList.add("star-filled");else if(c===a+1&&l>0){h.classList.add("star-partial"),h.style.setProperty("--_star-fill",`${l*100}%`);let u=document.createElement("span");u.classList.add("star-partial-fill"),u.append(this.#o(n)),h.appendChild(u)}else h.classList.add("star-empty");h.append(this.#o(n)),r.appendChild(h)}this.appendChild(r),this.#s=r}#o(t){if(t){let e=document.createElement("icon-wc");return e.setAttribute("name",t),e}return document.createTextNode("\u2605")}#a(t){let e=Number(t);e>0?this.#t.setFormValue(String(e)):this.#t.setFormValue(null)}#l(){this.hasAttribute("required")?this.#s?.querySelector('input[type="radio"]:checked')?this.#t.setValidity({}):this.#t.setValidity({valueMissing:!0},"Please select a rating",this.#s||this):this.#t.setValidity({})}formResetCallback(){if(this.#s){if(this.#s.querySelectorAll('input[type="radio"]').forEach(t=>{t.checked=!1}),this.#e>0){let t=this.#s.querySelector(`input[value="${this.#e}"]`);t&&(t.checked=!0)}this.#a(this.#e),this.#l()}}formStateRestoreCallback(t){if(!t||!this.#s)return;let e=this.#s.querySelector(`input[value="${t}"]`);e&&(e.checked=!0,this.#a(Number(t)),this.#l())}get value(){if(!this.#s)return Number(this.getAttribute("value")||0);let t=this.#s.querySelector('input[type="radio"]:checked');return t?Number(t.value):0}set value(t){if(!this.#s)return;this.#s.querySelectorAll('input[type="radio"]').forEach(i=>{i.checked=!1});let e=Number(t);if(e>0){let i=this.#s.querySelector(`input[value="${e}"]`);i&&(i.checked=!0)}this.#a(e),this.#l()}};g("star-rating",Rs);function Yr(s,t,e){"role"in ElementInternals.prototype?t.role=e:s.setAttribute("role",e)}var Os=class extends b{static formAssociated=!0;#t;#e;#s;#n=[];#i=[];#r=-1;#o=!1;#a=!1;#l="";#c="";#h="";#p;#d;#u=[];constructor(){super(),this.#t=this.attachInternals()}get#m(){return this.hasAttribute("multiple")}setup(){if(this.#e=this.querySelector(":scope > input")||this.querySelector(":scope > .tags-input-area > input"),!this.#e||(this.#s=this.querySelector(":scope > ul, :scope > ol"),!this.#s))return!1;this.#a=yt,this.#a&&this.#s.setAttribute("popover","manual"),this.#m&&(this.#p=document.createElement("div"),this.#p.className="tags-input-area",this.insertBefore(this.#p,this.#s),this.#p.appendChild(this.#e),this.#d=document.createElement("div"),this.#d.setAttribute("aria-live","polite"),this.#d.setAttribute("aria-atomic","true"),this.#d.className="sr-only",this.appendChild(this.#d));let t=this.getAttribute("placeholder");t&&!this.#e.getAttribute("placeholder")&&this.#e.setAttribute("placeholder",t);let e=crypto.randomUUID().slice(0,8);if(this.#s.id||(this.#s.id=`combobox-listbox-${e}`),Yr(this.#e,this.#t,"combobox"),this.#e.setAttribute("aria-expanded","false"),this.#e.setAttribute("aria-autocomplete","list"),this.#e.setAttribute("aria-controls",this.#s.id),this.#e.setAttribute("autocomplete","off"),this.#s.setAttribute("role","listbox"),this.#m&&this.#s.setAttribute("aria-multiselectable","true"),this.#b(),!this.#m){let i=this.getAttribute("value");i&&this.#$(i,!1),this.#h=this.#l}this.listen(this.#e,"input",this.#A),this.listen(this.#e,"keydown",this.#k),this.listen(this.#e,"focus",this.#L),this.listen(this.#e,"click",this.#x),this.listen(this.#s,"click",this.#E),this.listen(this.#s,"pointerdown",this.#T),this.listen(document,"click",this.#S),this.#a&&this.listen(this.#s,"toggle",this.#j),this.#N(),this.#I(),this.#B()}teardown(){window.removeEventListener("scroll",this.#M,{capture:!0}),window.removeEventListener("resize",this.#M)}#b(){this.#n=Array.from(this.#s.querySelectorAll(":scope > li[data-value]")),this.#n.forEach((t,e)=>{t.setAttribute("role","option"),t.setAttribute("aria-selected","false"),t.id||(t.id=`${this.#s.id}-option-${e}`)}),this.#i=[...this.#n]}#g(t,e){if(this.#u.some(a=>a.value===t))return;let i=this.#v();if(i&&this.#u.length>=i)return;this.#u.push({value:t,label:e});let n=document.createElement("span");n.className="tag",n.dataset.value=t,n.textContent=e+" ";let r=document.createElement("button");r.type="button",r.setAttribute("aria-label",`Remove ${e}`),r.innerHTML="×",r.addEventListener("click",a=>{a.stopPropagation(),this.#f(t)}),n.appendChild(r),this.#p.insertBefore(n,this.#e);let o=this.#n.find(a=>a.getAttribute("data-value")===t);o&&o.setAttribute("aria-selected","true"),this.#y(`${e} added`),this.#e.value="",this.#w(""),this.#N(),this.#I(),this.#O(),i&&this.#u.length>=i&&(this.#e.disabled=!0,this.#B())}#f(t){let e=this.#u.findIndex(a=>a.value===t);if(e===-1)return;let i=this.#u.splice(e,1)[0],n=this.#p.querySelector(`.tag[data-value="${CSS.escape(t)}"]`);n&&n.remove();let r=this.#n.find(a=>a.getAttribute("data-value")===t);r&&r.setAttribute("aria-selected","false"),this.#y(`${i.label} removed`),this.#v()&&this.#e.disabled&&(this.#e.disabled=!1),this.#w(this.#e.value.trim()),this.#N(),this.#I(),this.#O(),this.#e.focus()}#v(){let t=this.getAttribute("max");return t?parseInt(t,10):0}#y(t){this.#d&&(this.#d.textContent="",requestAnimationFrame(()=>{this.#d.textContent=t}))}#A=()=>{let t=this.#e.value.trim();if(!this.#m&&this.#l){let e=this.#s.querySelector('[aria-selected="true"]');e&&e.setAttribute("aria-selected","false"),this.#l="",this.#c="",this.removeAttribute("value"),this.#N(),this.#I()}this.#w(t),this.#_()};#k=t=>{switch(t.key){case"ArrowDown":t.preventDefault(),this.#o||this.#_(),this.#q(this.#r+1);break;case"ArrowUp":t.preventDefault(),this.#o||this.#_(),this.#q(this.#r-1);break;case"Home":this.#o&&(t.preventDefault(),this.#q(0));break;case"End":this.#o&&(t.preventDefault(),this.#q(this.#i.length-1));break;case"Enter":if(t.preventDefault(),this.#o&&this.#r>=0&&this.#i[this.#r]){let e=this.#i[this.#r];this.#m?this.#g(e.getAttribute("data-value"),e.textContent.trim()):this.#D(e)}else if(this.#m&&this.hasAttribute("custom")&&this.#e.value.trim()){let e=this.#e.value.trim();this.#g(e,e)}break;case"Backspace":if(this.#m&&!this.#e.value&&this.#u.length>0){let e=this.#u[this.#u.length-1];this.#f(e.value)}break;case",":if(this.#m&&this.hasAttribute("custom")&&this.#e.value.trim()){t.preventDefault();let e=this.#e.value.trim();this.#g(e,e)}break;case"Escape":this.#o&&(t.preventDefault(),t.stopPropagation(),this.#B(),this.#e.focus());break;case"Tab":this.#o&&this.#B();break}};#L=()=>{this.#m?(this.#w(this.#e.value.trim()),this.#_()):(this.#e.value||!this.#l)&&(this.#w(this.#e.value.trim()),this.#_())};#x=()=>{this.#o||(this.#w(this.#e.value.trim()),this.#_())};#E=t=>{let e=t.target.closest("li[data-value]");e&&this.#i.includes(e)&&(this.#m?this.#g(e.getAttribute("data-value"),e.textContent.trim()):this.#D(e))};#T=t=>{t.preventDefault()};#S=t=>{this.#o&&!this.contains(t.target)&&this.#B()};#w(t){let e=this.getAttribute("filter")||"contains",i=t.toLowerCase(),n=this.#m?new Set(this.#u.map(r=>r.value)):null;this.#i=[],this.#n.forEach(r=>{let o=r.getAttribute("data-value"),a=r.textContent.trim().toLowerCase();if(n&&n.has(o)){r.hidden=!0;return}let l;t?e==="startsWith"?l=a.startsWith(i):l=a.includes(i):l=!0,r.hidden=!l,l&&this.#i.push(r)}),this.#r=-1,this.#C()}#q(t){if(this.#i.length===0)return;t<0&&(t=this.#i.length-1),t>=this.#i.length&&(t=0),this.#r>=0&&this.#i[this.#r]&&this.#i[this.#r].removeAttribute("data-active"),this.#r=t;let e=this.#i[t];e.setAttribute("data-active",""),e.scrollIntoView({block:"nearest"}),this.#e.setAttribute("aria-activedescendant",e.id)}#C(){this.#n.forEach(t=>t.removeAttribute("data-active")),this.#e.removeAttribute("aria-activedescendant")}#D(t){let e=t.getAttribute("data-value"),i=t.textContent.trim();this.#n.forEach(n=>n.setAttribute("aria-selected","false")),t.setAttribute("aria-selected","true"),this.#l=e,this.#c=i,this.#e.value=i,this.setAttribute("value",e),this.#N(),this.#I(),this.#B(),this.#e.focus(),this.dispatchEvent(new CustomEvent("combo-box:change",{bubbles:!0,detail:{value:e,label:i}}))}#$(t,e=!0){let i=this.#n.find(n=>n.getAttribute("data-value")===t);i&&(e?this.#D(i):(i.setAttribute("aria-selected","true"),this.#l=t,this.#c=i.textContent.trim(),this.#e.value=this.#c,this.setAttribute("value",t)))}#M=()=>this.#F();#_(){if(!this.#o){if(this.#o=!0,this.setAttribute("open",""),this.#e.setAttribute("aria-expanded","true"),this.#s.hidden=!1,this.#a){this.#F();try{this.#s.showPopover()}catch{}window.addEventListener("scroll",this.#M,{capture:!0,passive:!0}),window.addEventListener("resize",this.#M,{passive:!0})}this.dispatchEvent(new CustomEvent("combo-box:open",{bubbles:!0}))}}#B(){if(!(!this.#o&&this.#s.hidden)){if(this.#o=!1,this.removeAttribute("open"),this.#e.setAttribute("aria-expanded","false"),this.#s.hidden=!0,this.#r=-1,this.#C(),this.#a){try{this.#s.hidePopover()}catch{}window.removeEventListener("scroll",this.#M,{capture:!0}),window.removeEventListener("resize",this.#M)}this.dispatchEvent(new CustomEvent("combo-box:close",{bubbles:!0}))}}get#R(){return this.#m&&this.#p?this.#p:this.#e}#F(){if(!this.#a)return;let t=this.#R;if(!t)return;let e=t.getBoundingClientRect();this.#s.style.setProperty("--combobox-top",`${e.bottom+2}px`),this.#s.style.setProperty("--combobox-left",`${e.left}px`),this.#s.style.setProperty("--combobox-width",`${e.width}px`)}#j=t=>{t.newState==="closed"&&this.#o&&(this.#o=!1,this.removeAttribute("open"),this.#e.setAttribute("aria-expanded","false"),this.#s.hidden=!0,this.#r=-1,this.#C(),this.dispatchEvent(new CustomEvent("combo-box:close",{bubbles:!0})))};#N(){if(this.#m)if(this.#u.length>0){let t=new FormData,e=this.getAttribute("name")||"";for(let i of this.#u)t.append(e,i.value);this.#t.setFormValue(t)}else this.#t.setFormValue(null);else this.#l?this.#t.setFormValue(this.#l,this.#c):this.#t.setFormValue(null)}#I(){this.hasAttribute("required")?this.#m?this.#u.length===0?this.#t.setValidity({valueMissing:!0},"Please select at least one option",this.#e):this.#t.setValidity({}):this.#l?this.#t.setValidity({}):this.#t.setValidity({valueMissing:!0},"Please select an option",this.#e):this.#t.setValidity({})}#O(){this.dispatchEvent(new CustomEvent("combo-box:change",{bubbles:!0,detail:{values:this.#u.map(t=>t.value),labels:this.#u.map(t=>t.label)}}))}formResetCallback(){this.#m?(this.#p.querySelectorAll(".tag").forEach(t=>t.remove()),this.#u=[],this.#e.value="",this.#e.disabled=!1):(this.#l="",this.#c="",this.#e.value="",this.removeAttribute("value")),this.#n.forEach(t=>{t.setAttribute("aria-selected","false"),t.hidden=!1}),this.#i=[...this.#n],this.#r=-1,this.#C(),this.#B(),!this.#m&&this.#h&&this.#$(this.#h,!1),this.#N(),this.#I()}formStateRestoreCallback(t){t&&(this.#m||(this.#$(t,!1),this.#N(),this.#I()))}get value(){return this.#l}set value(t){t?this.#$(t):(this.#n.forEach(e=>e.setAttribute("aria-selected","false")),this.#l="",this.#c="",this.#e.value="",this.removeAttribute("value"),this.#N(),this.#I())}get label(){return this.#c}get values(){return this.#u.map(t=>t.value)}get labels(){return this.#u.map(t=>t.label)}static get observedAttributes(){return["value"]}attributeChangedCallback(t,e,i){t==="value"&&this.#e&&i!==this.#l&&i&&(this.#$(i,!1),this.#N(),this.#I())}};g("combo-box",Os);Et();lt();var Ps=class extends b{#t;#e;#s=[];#n=-1;#i=!1;#r=[];#o=!1;setup(){if(this.#t=this.querySelector(":scope > [data-trigger]"),this.#e=this.querySelector(':scope > menu, :scope > ul[role="menu"]'),!this.#t||!this.#e)return!1;this.#o=yt,this.#o&&this.#e.setAttribute("popover","auto"),this.#t?.setAttribute("aria-expanded","false"),this.#e.setAttribute("role","menu"),this.#e.id||(this.#e.id=`ctx-menu-${crypto.randomUUID().slice(0,8)}`),this.#e.querySelectorAll(":scope > li[data-group]").forEach(t=>{t.setAttribute("role","presentation"),t.classList.add("ctx-group-label")}),this.#s=Array.from(this.#e.querySelectorAll('button, a, [role="menuitem"]')).filter(t=>!t.disabled&&!t.hasAttribute("data-disabled")),this.#s.forEach(t=>{t.setAttribute("role","menuitem"),t.setAttribute("tabindex","-1"),t.style.cssText+=";border:none;box-shadow:none;transform:none;border-radius:0;",this.listen(t,"click",this.#h);let e=t.getAttribute("data-shortcut");if(e){let i=document.createElement("kbd");i.className="ctx-kbd",i.textContent=at(e),t.appendChild(i);let n=W(e,()=>t.click());this.#r.push(n)}}),this.#e.querySelectorAll('li:empty:not([data-group]), [role="separator"], hr').forEach(t=>{t.setAttribute("role","separator")}),this.listen(this.#t,"contextmenu",this.#a),this.listen(this.#e,"keydown",this.#c),this.listen(window,"scroll",this.#b,{capture:!0}),this.#o?this.listen(this.#e,"toggle",this.#m):(this.listen(document,"click",this.#p),this.listen(document,"contextmenu",this.#d),this.listen(document,"keydown",this.#u))}teardown(){this.#r.forEach(t=>t()),this.#r=[]}#a=t=>{t.preventDefault(),this.#l(t.clientX,t.clientY)};#l(t,e){if(this.#i=!0,this.setAttribute("data-open",""),this.#t?.setAttribute("aria-expanded","true"),this.#e.style.setProperty("--ctx-top",`${e}px`),this.#e.style.setProperty("--ctx-left",`${t}px`),this.#o)try{this.#e.showPopover()}catch{}requestAnimationFrame(()=>{let i=this.#e.getBoundingClientRect(),n=t+i.width>window.innerWidth?t-i.width:t,r=e+i.height>window.innerHeight?e-i.height:e;this.#e.style.setProperty("--ctx-top",`${Math.max(0,r)}px`),this.#e.style.setProperty("--ctx-left",`${Math.max(0,n)}px`)}),this.#n=-1,this.#g(0),this.dispatchEvent(new CustomEvent("context-menu:open",{bubbles:!0}))}close(){if(this.#i){if(this.#i=!1,this.removeAttribute("data-open"),this.#t?.setAttribute("aria-expanded","false"),this.#n=-1,this.#o)try{this.#e.hidePopover()}catch{}this.dispatchEvent(new CustomEvent("context-menu:close",{bubbles:!0}))}}#c=t=>{switch(t.key){case"ArrowDown":case"Down":t.preventDefault(),this.#g(this.#n+1);break;case"ArrowUp":case"Up":t.preventDefault(),this.#g(this.#n-1);break;case"Home":t.preventDefault(),this.#g(0);break;case"End":t.preventDefault(),this.#g(this.#s.length-1);break;case"Enter":case" ":t.preventDefault(),this.#n>=0&&this.#s[this.#n].click();break;case"Tab":this.close();break}};#h=()=>{this.close(),this.dispatchEvent(new CustomEvent("context-menu:select",{bubbles:!0,detail:{item:this.#s[this.#n]}}))};#p=t=>{this.#i&&!this.#e.contains(t.target)&&this.close()};#d=t=>{this.#i&&!this.#t.contains(t.target)&&this.close()};#u=t=>{t.key==="Escape"&&this.#i&&(t.preventDefault(),this.close())};#m=t=>{t.newState==="closed"&&this.#i&&(this.#i=!1,this.removeAttribute("data-open"),this.#n=-1,this.dispatchEvent(new CustomEvent("context-menu:close",{bubbles:!0})))};#b=()=>{this.#i&&this.close()};#g(t){this.#s.length!==0&&(t<0&&(t=this.#s.length-1),t>=this.#s.length&&(t=0),this.#n=t,this.#s[t].focus())}get isOpen(){return this.#i}};g("context-menu",Ps);Et();lt();var Fs=class extends b{#t;#e;#s;#n=[];#i=-1;#r=[];#o=null;#a=[];setup(){this.#l(),this.#c(),this.hasAttribute("discover")&&this.#b()}teardown(){this.#o?.()}#l(){this.#t=document.createElement("dialog"),this.#t.className="command-dialog",this.#t.addEventListener("click",i=>{i.target===this.#t&&this.close()});let t=document.createElement("div");t.className="command-search",this.#e=document.createElement("input"),this.#e.type="search",this.#e.placeholder=this.getAttribute("placeholder")||"Type a command...",this.#e.setAttribute("aria-label","Search commands"),this.#e.autocomplete="off",this.#e.addEventListener("input",this.#h),this.#e.addEventListener("keydown",this.#p),t.appendChild(this.#e),this.#s=document.createElement("div"),this.#s.className="command-list",this.#s.setAttribute("role","listbox"),this.#r=Array.from(this.querySelectorAll("command-group")),this.#r.forEach(i=>{let n=document.createElement("div");n.className="command-group-header",n.textContent=i.getAttribute("label")||"",n.setAttribute("role","presentation");let r=Array.from(i.querySelectorAll("command-item"));this.#s.appendChild(n),r.forEach(o=>{let a=document.createElement("button");a.className="command-option",a.setAttribute("role","option"),a.dataset.value=o.getAttribute("value")||"",a.dataset.searchText=o.textContent.toLowerCase().trim();let l=o.querySelector('[slot="icon"]');if(l){let u=document.createElement("span");u.className="command-icon",u.appendChild(l.cloneNode(!0)),a.appendChild(u)}let c=document.createElement("span");c.className="command-label",c.textContent=o.textContent.trim(),a.appendChild(c);let h=o.getAttribute("data-hotkey");if(h){let u=document.createElement("kbd");u.className="command-kbd",u.textContent=at(h),a.appendChild(u)}a.addEventListener("click",()=>{this.#m(a.dataset.value)}),this.#s.appendChild(a),this.#n.push({btn:a,header:n,group:i})})});let e=document.createElement("div");e.className="command-empty",e.textContent="No results found.",e.hidden=!0,this.#s.appendChild(e),this.#t.appendChild(t),this.#t.appendChild(this.#s),this.appendChild(this.#t)}#c(){let t=this.getAttribute("hotkey")||"meta+k";this.#o=W(t,()=>{this.#t.open?this.close():this.open()},{global:!0})}#h=()=>{let t=this.#e.value.toLowerCase().trim(),e=0,i=new Set;this.#n.forEach(({btn:r,header:o})=>{let a=!t||r.dataset.searchText.includes(t);r.hidden=!a,a&&(e++,i.add(o))}),this.#s.querySelectorAll(".command-group-header").forEach(r=>{r.hidden=!i.has(r)});let n=this.#s.querySelector(".command-empty");n&&(n.hidden=e>0),this.#i=-1,e>0&&this.#u(0)};#p=t=>{let e=this.#d();switch(t.key){case"ArrowDown":t.preventDefault(),this.#u(this.#i+1);break;case"ArrowUp":t.preventDefault(),this.#u(this.#i-1);break;case"Enter":t.preventDefault(),this.#i>=0&&e[this.#i]&&e[this.#i].btn.click();break;case"Escape":t.preventDefault(),this.close();break}};#d(){return this.#n.filter(({btn:t})=>!t.hidden)}#u(t){let e=this.#d();if(e.length===0)return;e.forEach(({btn:n})=>n.removeAttribute("data-active")),t<0&&(t=e.length-1),t>=e.length&&(t=0),this.#i=t;let{btn:i}=e[t];i.setAttribute("data-active",""),i.scrollIntoView({block:"nearest"})}#m(t){this.close(),this.dispatchEvent(new CustomEvent("command-palette:select",{bubbles:!0,detail:{value:t}}))}#b(){this.listen(document,"vb:command-registry-change",this.#g)}#g=()=>{this.#t?.open&&(this.#f(),this.#h())};#f(){if(!this.hasAttribute("discover"))return;let{getRegisteredCommands:t,scanAutoDiscoverable:e}=window.__commandRegistry||{};if(!t)return;this.#n=this.#n.filter(r=>!r.discovered),this.#a.forEach(r=>r.remove()),this.#a=[];let i=this.#s.querySelector(".command-empty"),n=t();for(let[r,o]of n){let a=document.createElement("div");a.className="command-group-header",a.textContent=r,a.setAttribute("role","presentation"),this.#s.insertBefore(a,i),this.#a.push(a);for(let l of o){if(this.contains(l.element))continue;let c=this.#v(l.label,l.icon,l.shortcut);c.dataset.value=`__discovered:${l.label}`,c.addEventListener("click",()=>{this.close(),l.element.click()}),this.#s.insertBefore(c,i),this.#n.push({btn:c,header:a,group:null,discovered:!0})}}if(this.getAttribute("discover")==="auto"&&e){let r=e(),o=new Map;for(let a of r){let l=o.get(a.group)||[];l.push(a),o.set(a.group,l)}for(let[a,l]of o){let c=document.createElement("div");c.className="command-group-header",c.textContent=a,c.setAttribute("role","presentation"),this.#s.insertBefore(c,i),this.#a.push(c);for(let h of l){if(this.contains(h.element))continue;let u=this.#v(h.label,h.icon,h.shortcut);u.dataset.value=`__auto:${h.label}`,u.dataset.auto="",u.addEventListener("click",()=>{this.close(),h.action?h.action():h.element.click()}),this.#s.insertBefore(u,i),this.#n.push({btn:u,header:c,group:null,discovered:!0})}}}}#v(t,e,i){let n=document.createElement("button");if(n.className="command-option",n.setAttribute("role","option"),n.dataset.searchText=t.toLowerCase(),e){let o=document.createElement("span");o.className="command-icon";let a=document.createElement("icon-wc");a.setAttribute("name",e),o.appendChild(a),n.appendChild(o)}let r=document.createElement("span");if(r.className="command-label",r.textContent=t,n.appendChild(r),i){let o=document.createElement("kbd");o.className="command-kbd",o.textContent=at(i),n.appendChild(o)}return n}open(){this.#t.open||(this.#f(),this.#t.showModal(),this.#e.value="",this.#h(),this.#e.focus(),this.dispatchEvent(new CustomEvent("command-palette:open",{bubbles:!0})))}close(){this.#t.open&&(this.#t.close(),this.dispatchEvent(new CustomEvent("command-palette:close",{bubbles:!0})))}get isOpen(){return this.#t?.open??!1}},js=class extends HTMLElement{},zs=class extends HTMLElement{};g("command-palette",Fs);g("command-group",js);g("command-item",zs);Et();lt();var Hs=class extends b{#t;#e=null;setup(){this.#s(),this.#e=W("shift+?",()=>{this.#t.open?this.#t.close():this.#n()})}teardown(){this.#e?.(),this.#e=null,this.#t?.remove(),this.#t=null}#s(){this.#t=document.createElement("dialog"),this.#t.className="shortcut-dialog",this.#t.addEventListener("click",t=>{t.target===this.#t&&this.#t.close()}),this.appendChild(this.#t)}#n(){this.#t.innerHTML="";let t=document.createElement("div");t.className="shortcut-header",t.innerHTML="<h2>Keyboard Shortcuts</h2>",this.#t.appendChild(t);let e=document.createElement("div");e.className="shortcut-body";let{getRegisteredCommands:i}=window.__commandRegistry||{},n=new Map;if(n.set("General",[{label:"Show keyboard shortcuts",shortcut:"shift+?"}]),i)for(let[o,a]of i())for(let l of a){if(!l.shortcut)continue;let c=n.get(o)||[];c.push({label:l.label,shortcut:l.shortcut}),n.set(o,c)}let{getHotkeyActions:r}=window.__hotkeyActionRegistry||{};if(r)for(let[o,a]of r()){let l=n.get(o)||[];for(let c of a)l.push({label:c.label,shortcut:c.shortcut});n.set(o,l)}for(let[o,a]of n){let l=document.createElement("div");l.className="shortcut-group";let c=document.createElement("div");c.className="shortcut-group-header",c.textContent=o,l.appendChild(c);for(let h of a){let u=document.createElement("div");u.className="shortcut-row";let d=document.createElement("span");d.className="shortcut-label",d.textContent=h.label;let p=document.createElement("kbd");p.className="shortcut-kbd",p.textContent=at(h.shortcut),u.appendChild(d),u.appendChild(p),l.appendChild(u)}e.appendChild(l)}this.#t.appendChild(e),this.#t.showModal()}};g("short-cuts",Hs);var B="interestfor",Zr="interestForElement"in HTMLButtonElement.prototype,_=new WeakMap,xt=new WeakMap,be=new Set,Ws=!1,Gs=CSS.supports?.("anchor-name","--a")??!1;function Kr(s){let t=String(s).trim(),e=t.match(/^([\d.]+)s$/);if(e)return parseFloat(e[1])*1e3;let i=t.match(/^([\d.]+)ms$/);return i?parseFloat(i[1]):parseFloat(t)||0}function Qr(s,t){let e=getComputedStyle(s),i=e.getPropertyValue(t).trim();if(i.toLowerCase()!=="normal")return Kr(i);let n=e.getPropertyValue("--interest-delay").trim();if(n&&n.toLowerCase()!=="normal"){let r=n.split(/\s+/).filter(o=>o.length>0);if(r.length>0){let o=t==="--interest-delay-start"?r[0]:r[1]||r[0];if(o.toLowerCase()!=="normal")return Kr(o)}}return t==="--interest-delay-start"?500:250}var oc=["a[href]","area[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(","),ac="h1,h2,h3,h4,h5,h6,ul,ol,li,table,nav,header,footer,main,aside,article,section,form,blockquote,details,summary,dialog";function Ys(s){if(s.getAttribute("popover")?.toLowerCase()!=="hint"||s.querySelector(oc)||s.querySelector(ac))return!1;for(let t of s.querySelectorAll("[role]")){let e=t.getAttribute("role").toLowerCase();if(!["presentation","none","generic","image"].includes(e))return!1}return!0}function lc(s,t){Ys(t)?s.setAttribute("aria-describedby",t.id):(s.setAttribute("aria-details",t.id),s.setAttribute("aria-expanded","false"),t.hasAttribute("role")||t.setAttribute("role","tooltip"))}function X(s){let t=s.getAttribute(B);return t?document.getElementById(t):null}function ge(s){let t=xt.get(s);return t?.invoker&&_.get(t.invoker)?.state==="full"?t.invoker:null}function Vt(s){if(_.has(s))return _.get(s);let t={state:"none",gainedTimer:null,lostTimer:null,longPressTimer:null};_.set(s,t);let e=X(s);return e&&lc(s,e),t}function to(s,t){if(!s||!t||!s.isConnected||X(s)!==t)return!1;let e=ge(t);if(e){if(e===s)return clearTimeout(_.get(e).lostTimer),!1;if(!Ht(e,t)||!s.isConnected||X(s)!==t)return!1}let i=Vt(s);if(i.state!=="none")return!1;let n=new CustomEvent("interest",{bubbles:!1,cancelable:!0,detail:{source:s}});if(t.dispatchEvent(n),t.hasAttribute("popover")){try{t.showPopover()}catch{}hc(s,t)}i.state="full",xt.has(t)||xt.set(t,{});let r=xt.get(t);if(r.invoker=s,t.hasAttribute("popover")){let o=a=>{a.newState==="closed"&&Ht(s,t)};r.toggleListener=o,t.addEventListener("toggle",o)}return be.add(s),s.classList.add("interest-source"),t.classList.add("interest-target"),Ys(t)||s.setAttribute("aria-expanded","true"),!0}function Ht(s,t){if(!s||!t||X(s)!==t||ge(t)!==s)return!1;let e=_.get(s);if(!e||e.state==="none")return!1;if(clearTimeout(e.gainedTimer),clearTimeout(e.lostTimer),t.dispatchEvent(new CustomEvent("loseinterest",{bubbles:!1,detail:{source:s}})),t.hasAttribute("popover"))try{t.hidePopover()}catch{}let i=xt.get(t);return i?.toggleListener&&t.removeEventListener("toggle",i.toggleListener),xt.delete(t),be.delete(s),s.classList.remove("interest-source"),t.classList.remove("interest-target"),Ys(t)||s.setAttribute("aria-expanded","false"),e.state="none",!0}function cc(s){let t=Vt(s);clearTimeout(t.gainedTimer);let e=Qr(s,"--interest-delay-start");t.gainedTimer=setTimeout(()=>{let i=X(s);i&&to(s,i)},e)}function Vs(s){let t=_.get(s);if(!t)return;clearTimeout(t.lostTimer);let e=Qr(s,"--interest-delay-end");t.lostTimer=setTimeout(()=>{let i=X(s);i&&Ht(s,i)},e)}function zt(s){if(!Gs)return;let t=s.getAttribute(B),e=t?document.getElementById(t):null;if(!e?.id)return;let i=`--interest-${e.id}`;s.style.anchorName=i,e.style.positionAnchor=i}function hc(s,t){if(Gs)return;let e=s.getBoundingClientRect(),i=t.getBoundingClientRect(),n=8,r=8,o=e.top-i.height-n,a=e.left+(e.width-i.width)/2;o<r&&(o=e.bottom+n),a=Math.max(r,Math.min(a,window.innerWidth-i.width-r)),o=Math.max(r,Math.min(o,window.innerHeight-i.height-r)),t.style.top=`${o}px`,t.style.left=`${a}px`,t.style.margin="0"}function uc(s,t){if(Ws||!s.isConnected)return;if(!X(s)){let r=s.closest(".interest-target");if(r){let o=ge(r);o&&(t?clearTimeout(_.get(o)?.lostTimer):Vs(o))}return}let i=Vt(s),n=ge(s);if(t)clearTimeout(i.lostTimer),n&&clearTimeout(_.get(n)?.lostTimer),cc(s);else if(clearTimeout(i.gainedTimer),i.state!=="none"&&Vs(s),n){let r=_.get(n);r&&clearTimeout(r.gainedTimer),Vs(n)}}function dc(){let s=(i,n)=>{for(let r=i.target;r;r=r.parentElement)uc(r,n)};document.body.addEventListener("mouseover",i=>s(i,!0)),document.body.addEventListener("mouseout",i=>s(i,!1)),document.body.addEventListener("focusin",i=>s(i,!0)),document.body.addEventListener("focusout",i=>s(i,!1)),document.body.addEventListener("keydown",i=>{if(i.key==="Escape")for(let n of be){let r=X(n);r&&Ht(n,r)}});let t=500;document.body.addEventListener("touchstart",i=>{Ws=!0;let n=i.target.closest(`button[${B}]`);if(!n)return;let r=Vt(n);r.longPressTimer=setTimeout(()=>{let o=X(n);o&&to(n,o),r.longPressTimer=null},t)});let e=i=>{let n=i.target.closest(`button[${B}]`);if(!n)return;let r=_.get(n);r?.longPressTimer&&(clearTimeout(r.longPressTimer),r.longPressTimer=null)};document.body.addEventListener("touchend",i=>{e(i),Ws=!1}),document.body.addEventListener("touchmove",e)}function pc(){let s=document.createElement("style");s.textContent=['@property --interest-delay-start { syntax: "normal | <time>"; inherits: false; initial-value: normal; }','@property --interest-delay-end { syntax: "normal | <time>"; inherits: false; initial-value: normal; }','@property --interest-delay { syntax: "*"; inherits: false; initial-value: normal; }'].join(`
|
|
396
|
+
`),document.head.appendChild(s)}function fe(s){Vt(s),zt(s)}function Us(s){let t=_.get(s);if(t){if(clearTimeout(t.gainedTimer),clearTimeout(t.lostTimer),clearTimeout(t.longPressTimer),t.state!=="none"){let e=X(s);e&&Ht(s,e)}s.classList.remove("interest-source"),_.delete(s),be.delete(s)}}function Xr(s=document){s.querySelectorAll(`[${B}]`).forEach(fe)}var Jr=new MutationObserver(s=>{for(let t of s){for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.hasAttribute(B)&&fe(i),i.querySelectorAll(`[${B}]`).forEach(fe)}for(let e of t.removedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;_.has(i)&&Us(i),i.querySelectorAll(`[${B}]`).forEach(n=>{_.has(n)&&Us(n)})}if(t.type==="attributes"&&t.target.nodeType===Node.ELEMENT_NODE){let e=t.target;e.hasAttribute(B)?_.has(e)||fe(e):_.has(e)&&Us(e)}}});Zr||(pc(),dc(),document.documentElement.setAttribute("data-interest-polyfill",""),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{Xr(),Jr.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[B]})}):(Xr(),Jr.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[B]})));if(Zr&&Gs){let s=()=>{document.querySelectorAll(`[${B}]`).forEach(zt),new MutationObserver(t=>{for(let e of t){for(let i of e.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let n=i;n.hasAttribute(B)&&zt(n),n.querySelectorAll(`[${B}]`).forEach(zt)}e.type==="attributes"&&e.target.hasAttribute?.(B)&&zt(e.target)}}).observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[B]})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",s):s()}var Ks="[data-copy], [data-copy-target]";function eo(s=document){s.querySelectorAll(Ks).forEach(Xs)}function Xs(s){if(s.hasAttribute("data-copy-init"))return;s.setAttribute("data-copy-init","");let t;s.addEventListener("click",async()=>{let e=mc(s);if(e)try{await navigator.clipboard.writeText(e),s.dataset.state="copied",clearTimeout(t),t=setTimeout(()=>{delete s.dataset.state},1500),fc("Copied to clipboard",s),s.dispatchEvent(new CustomEvent("copy",{bubbles:!0,detail:{text:e}}))}catch{}})}function mc(s){return s.dataset.copy?s.dataset.copy:s.dataset.copyTarget?document.querySelector(s.dataset.copyTarget)?.textContent??"":""}function fc(s,t){let e=document.createElement("div");e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.className="sr-only",e.textContent=s,t.appendChild(e),setTimeout(()=>e.remove(),1e3)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>eo()):eo();var gc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(Ks)&&Xs(i),i.querySelectorAll(Ks).forEach(n=>Xs(n))}});gc.observe(document.documentElement,{childList:!0,subtree:!0});Et();var Js="kbd[data-hotkey]";function so(s=document){s.querySelectorAll(Js).forEach(Zs)}function Zs(s){if(s.hasAttribute("data-hotkey-init"))return;s.setAttribute("data-hotkey-init","");let t=s.dataset.hotkey;if(!t)return;let e=At?Rt.mac:Rt.other,i=t.toLowerCase().split("+").map(r=>r.trim()),n=document.createDocumentFragment();i.forEach((r,o)=>{let a=document.createElement("kbd");a.textContent=e[r]??r.toUpperCase(),n.appendChild(a),o<i.length-1&&!At&&n.appendChild(document.createTextNode("+"))}),s.replaceChildren(n),s.setAttribute("aria-label",s.textContent)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>so()):so();var bc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(Js)&&Zs(i),i.querySelectorAll(Js).forEach(n=>Zs(n))}});bc.observe(document.documentElement,{childList:!0,subtree:!0});lt();var St="[data-command], [commandfor]",vc="Page Actions",G=new Map;function ve(s){if(G.has(s)||s.hasAttribute("data-command-init"))return;s.setAttribute("data-command-init","");let t=s.getAttribute("data-command")||s.textContent.trim();if(!t)return;let e=s.getAttribute("data-command-group")||vc,i=s.getAttribute("data-command-icon")||null,n=s.getAttribute("data-shortcut")||null,r=null;n&&(r=W(n,()=>s.click()));let o={element:s,label:t,group:e,icon:i,shortcut:n,unbind:r};G.set(s,o),document.dispatchEvent(new CustomEvent("vb:command-registry-change",{detail:{action:"add",entry:o}}))}function Qs(s){let t=G.get(s);t&&(t.unbind?.(),G.delete(s),s.removeAttribute("data-command-init"),document.dispatchEvent(new CustomEvent("vb:command-registry-change",{detail:{action:"remove",element:s}})))}function yc(){let s=new Map;for(let t of G.values()){if(t.element.hidden||t.element.closest("[hidden]"))continue;let e=s.get(t.group)||[];e.push(t),s.set(t.group,e)}return s}function io(s=document){s.querySelectorAll(St).forEach(ve)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>io()):io();var wc=new MutationObserver(s=>{for(let t of s){for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(St)&&ve(i),i.querySelectorAll(St).forEach(ve)}for(let e of t.removedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;G.has(i)&&Qs(i),i.querySelectorAll(St).forEach(n=>{G.has(n)&&Qs(n)})}if(t.type==="attributes"&&t.target.nodeType===Node.ELEMENT_NODE){let e=t.target;e.matches(St)&&!G.has(e)?ve(e):!e.matches(St)&&G.has(e)&&Qs(e)}}});wc.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-command","commandfor"]});function Ac(){let s='footer, aside, dialog, [hidden], [aria-hidden="true"]',e=[];return document.querySelectorAll("nav a[href]").forEach(i=>{if(i.closest(s)||G.has(i))return;let n=i.textContent.trim();!n||e.length>=50||e.push({element:i,label:n,group:"Navigation",icon:null,shortcut:null,auto:!0,action:null})}),document.querySelectorAll("h2[id], h3[id]").forEach(i=>{if(i.closest(s)||G.has(i))return;let n=i.textContent.trim();!n||e.length>=50||e.push({element:i,label:`Jump to: ${n}`,group:"On This Page",icon:null,shortcut:null,auto:!0,action:()=>i.scrollIntoView({behavior:"smooth"})})}),e}window.__commandRegistry={getRegisteredCommands:yc,scanAutoDiscoverable:Ac};function st(){return document.documentElement.lang||navigator.language||"en"}var ti="data[data-format-number]";function no(s=document){s.querySelectorAll(ti).forEach(ei)}function ei(s){if(s.hasAttribute("data-format-number-init"))return;s.setAttribute("data-format-number-init","");let t=s.getAttribute("value");if(t==null)return;let e=Number(t);if(isNaN(e))return;s.title||(s.title=s.textContent.trim());let i=s.getAttribute("data-format-number")||"decimal",n=s.getAttribute("data-locale")||st(),r={};switch(i){case"currency":{r.style="currency",r.currency=s.getAttribute("data-currency")||"USD";break}case"percent":r.style="percent";break;case"compact":r.notation="compact";break;default:break}try{s.textContent=new Intl.NumberFormat(n,r).format(e)}catch{}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>no()):no();var Ec=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(ti)&&ei(i),i.querySelectorAll(ti).forEach(n=>ei(n))}});Ec.observe(document.documentElement,{childList:!0,subtree:!0});var ye="time[data-format-date]",Ut=new Map;function ro(s=document){s.querySelectorAll(ye).forEach(si)}function si(s){if(s.hasAttribute("data-format-date-init"))return;s.setAttribute("data-format-date-init","");let t=s.getAttribute("datetime");if(!t)return;let e=new Date(t);if(isNaN(e.getTime()))return;s.title||(s.title=s.textContent.trim());let i=s.getAttribute("data-format-date")||"medium",n=s.getAttribute("data-locale")||st();i==="relative"?(s.textContent=ao(e,n),lo(s,e,n)):s.textContent=kc(e,i,s,n)}function kc(s,t,e,i){let n=t||"medium",r=e.getAttribute("data-format-time")||void 0;try{let o={dateStyle:n};return r&&(o.timeStyle=r),new Intl.DateTimeFormat(i,o).format(s)}catch{return e.textContent}}function ao(s,t){let e=Date.now(),i=Math.round((s.getTime()-e)/1e3),n=Math.abs(i),r=[{unit:"year",seconds:31536e3},{unit:"month",seconds:2592e3},{unit:"week",seconds:604800},{unit:"day",seconds:86400},{unit:"hour",seconds:3600},{unit:"minute",seconds:60},{unit:"second",seconds:1}];for(let{unit:o,seconds:a}of r)if(n>=a){let l=Math.round(i/a);try{return new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(l,o)}catch{let c=Math.abs(l),h=c===1?o:`${o}s`;return l<0?`${c} ${h} ago`:`in ${c} ${h}`}}try{return new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(0,"second")}catch{return"just now"}}function lo(s,t,e){clearInterval(Ut.get(s));let i=Math.abs(Date.now()-t.getTime()),n=36e5,r=864e5,o;i<n?o=6e4:i<r?o=3e5:o=36e5;let a=setInterval(()=>{s.textContent=ao(t,e),lo(s,t,e)},o);Ut.set(s,a)}function oo(s){Ut.has(s)&&(clearInterval(Ut.get(s)),Ut.delete(s))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ro()):ro();var xc=new MutationObserver(s=>{for(let t of s){for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(ye)&&si(i),i.querySelectorAll(ye).forEach(n=>si(n))}for(let e of t.removedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;oo(i),i.querySelectorAll(ye).forEach(oo)}}});xc.observe(document.documentElement,{childList:!0,subtree:!0});var ni="data[data-format-bytes]",ii=["B","KB","MB","GB","TB","PB"];function co(s=document){s.querySelectorAll(ni).forEach(ri)}function ri(s){if(s.hasAttribute("data-format-bytes-init"))return;s.setAttribute("data-format-bytes-init","");let t=s.getAttribute("value");if(t==null)return;let e=Number(t);if(isNaN(e)||e<0)return;s.title||(s.title=s.textContent.trim());let i=parseInt(s.getAttribute("data-format-bytes")??"0",10)||0,n=s.getAttribute("data-unit")==="decimal",r=s.getAttribute("data-locale")||st(),o=n?1e3:1024;if(e===0){s.textContent="0 B";return}let a=Math.min(Math.floor(Math.log(e)/Math.log(o)),ii.length-1),l=e/Math.pow(o,a);try{let c=new Intl.NumberFormat(r,{minimumFractionDigits:i,maximumFractionDigits:i}).format(l);s.textContent=`${c} ${ii[a]}`}catch{s.textContent=`${l.toFixed(i)} ${ii[a]}`}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>co()):co();var Sc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(ni)&&ri(i),i.querySelectorAll(ni).forEach(n=>ri(n))}});Sc.observe(document.documentElement,{childList:!0,subtree:!0});var oi="[data-spoiler]";var po=new Set(["SPAN","EM","STRONG","CODE","A","B","I","S","U","SMALL","SUB","SUP","MARK","ABBR","Q","CITE","DFN","SAMP","VAR","KBD","BDI","BDO","DATA","TIME","WBR"]);function ho(s=document){s.querySelectorAll(oi).forEach(ai)}function ai(s){if(s.hasAttribute("data-spoiler-init"))return;s.setAttribute("data-spoiler-init","");let t=s.getAttribute("data-spoiler")||"blur";s.getAttribute("data-spoiler")||s.setAttribute("data-spoiler","blur");let e=po.has(s.tagName),i=e?"span":"div";s.setAttribute("role","group"),s.setAttribute("aria-label","Spoiler");let n=document.createElement(i);for(n.setAttribute("data-spoiler-content",""),n.setAttribute("inert","");s.firstChild;)n.appendChild(s.firstChild);s.appendChild(n);let r=s.getAttribute("data-spoiler-label")||"Reveal spoiler",o;e?(o=document.createElement("span"),o.setAttribute("role","button"),o.setAttribute("tabindex","0")):(o=document.createElement("button"),o.setAttribute("type","button")),o.setAttribute("data-spoiler-trigger",""),o.setAttribute("aria-expanded","false");let a=document.createElement("span");a.setAttribute("data-spoiler-label",""),a.textContent=r,o.appendChild(a),s.appendChild(o),o.addEventListener("click",()=>uo(s)),e&&o.addEventListener("keydown",l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),uo(s))}),s.addEventListener("keydown",l=>{l.key==="Escape"&&s.hasAttribute("data-spoiler-visible")&&(l.stopPropagation(),we(s))})}function uo(s){let t=s.getAttribute("data-spoiler-group");t&&document.querySelectorAll(`[data-spoiler-group="${t}"][data-spoiler-visible]`).forEach(n=>{n!==s&&we(n)});let e=s.querySelector("[data-spoiler-content]"),i=s.querySelector("[data-spoiler-trigger]");if(e&&e.removeAttribute("inert"),i&&(i.setAttribute("aria-expanded","true"),i.hidden=!0),s.setAttribute("data-spoiler-visible",""),!s.hasAttribute("data-spoiler-persist")){let n=po.has(s.tagName),r;n?(r=document.createElement("span"),r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.addEventListener("keydown",o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),we(s))})):(r=document.createElement("button"),r.setAttribute("type","button")),r.setAttribute("data-spoiler-hide",""),r.textContent="Hide",r.addEventListener("click",()=>we(s)),s.appendChild(r)}Cc("Spoiler revealed"),s.dispatchEvent(new CustomEvent("spoiler:toggle",{bubbles:!0,detail:{visible:!0}}))}function we(s){if(s.hasAttribute("data-spoiler-persist"))return;let t=s.querySelector("[data-spoiler-content]"),e=s.querySelector("[data-spoiler-trigger]"),i=s.querySelector("[data-spoiler-hide]");t&&t.setAttribute("inert",""),e&&(e.setAttribute("aria-expanded","false"),e.hidden=!1,e.focus()),i&&i.remove(),s.removeAttribute("data-spoiler-visible"),s.dispatchEvent(new CustomEvent("spoiler:toggle",{bubbles:!0,detail:{visible:!1}}))}function Cc(s){let t=document.createElement("div");t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),Object.assign(t.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:"0"}),t.textContent=s,document.body.appendChild(t),setTimeout(()=>t.remove(),1e3)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ho()):ho();var Tc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(oi)&&ai(i),i.querySelectorAll(oi).forEach(ai)}});Tc.observe(document.documentElement,{childList:!0,subtree:!0});var li="[data-splitter]";function mo(s=document){s.querySelectorAll(li).forEach(ci)}function ci(s){if(s.hasAttribute("data-splitter-init"))return;s.setAttribute("data-splitter-init","");let t=[...s.children];if(t.length<2)return;let e=t[0],i=t[1],n=s.getAttribute("data-splitter")==="vertical",r=Number(e.dataset.min)||10,o=Number(e.dataset.max)||90,a=document.createElement("div");a.className="split-divider",a.setAttribute("role","separator"),a.setAttribute("aria-orientation",n?"vertical":"horizontal"),a.setAttribute("aria-valuenow","50"),a.setAttribute("aria-valuemin",String(r)),a.setAttribute("aria-valuemax",String(o)),a.setAttribute("aria-label","Resize panels"),a.setAttribute("tabindex","0"),s.insertBefore(a,i),e.style.flexBasis="50%",e.style.flexGrow="0",e.style.flexShrink="0",e.style.overflow="auto",i.style.flexGrow="1",i.style.overflow="auto";let l=!1;function c(h){let u=Math.min(o,Math.max(r,h));e.style.flexBasis=`${u}%`,a.setAttribute("aria-valuenow",String(Math.round(u))),s.dispatchEvent(new CustomEvent("split-surface:resize",{detail:{position:u},bubbles:!0}))}a.addEventListener("pointerdown",h=>{h.preventDefault(),l=!0,a.setPointerCapture(h.pointerId),s.style.userSelect="none"}),a.addEventListener("pointermove",h=>{if(!l)return;let u=s.getBoundingClientRect(),d;n?d=(h.clientY-u.top)/u.height*100:d=(h.clientX-u.left)/u.width*100,c(d)}),a.addEventListener("pointerup",h=>{l=!1,a.releasePointerCapture(h.pointerId),s.style.userSelect=""}),a.addEventListener("keydown",h=>{let u=h.shiftKey?10:1,d=Number(a.getAttribute("aria-valuenow")),p=n?["ArrowUp"]:["ArrowLeft"],m=n?["ArrowDown"]:["ArrowRight"];p.includes(h.key)?(h.preventDefault(),c(d-u)):m.includes(h.key)?(h.preventDefault(),c(d+u)):h.key==="Home"?(h.preventDefault(),c(r)):h.key==="End"&&(h.preventDefault(),c(o))})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>mo()):mo();var Lc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(li)&&ci(i),i.querySelectorAll(li).forEach(ci)}});Lc.observe(document.documentElement,{childList:!0,subtree:!0});var hi='input[type="checkbox"][data-switch]';function ui(s){s.hasAttribute("data-switch-init")||(s.setAttribute("data-switch-init",""),s.setAttribute("role","switch"))}function fo(s=document){s.querySelectorAll(hi).forEach(ui)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>fo()):fo();var Mc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(hi)&&ui(i),i.querySelectorAll(hi).forEach(n=>ui(n))}});Mc.observe(document.documentElement,{childList:!0,subtree:!0});z();var _c="textarea[data-count]";function Ic(s){if(s.hasAttribute("data-count-init"))return;s.setAttribute("data-count-init","");let t=s.dataset.count==="words",e=t?parseInt(s.dataset.maxwords??"0",10)||0:s.maxLength>0?s.maxLength:0,i=document.createElement("output");i.className="textarea-counter",i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true");let n=s.closest("form-field");n?n.appendChild(i):s.insertAdjacentElement("afterend",i);function r(){let o=s.value,a=t?o.trim()?o.trim().split(/\s+/).length:0:o.length;if(e>0){i.textContent=`${a} / ${e}`;let l=a/e;i.dataset.state=l>=1?"error":l>=.8?"warning":""}else{let l=t?a===1?"word":"words":a===1?"character":"characters";i.textContent=`${a} ${l}`,i.dataset.state=""}}s.addEventListener("input",r),r()}L(_c,Ic);z();var Bc="textarea[data-grow]",Rc=CSS.supports("field-sizing","content");function Oc(s){if(s.hasAttribute("data-grow-init"))return;s.setAttribute("data-grow-init","");let t=parseInt(s.dataset.maxRows??"0",10)||0;if(s.style.resize="none",Rc){s.style.fieldSizing="content",t>0&&(s.style.maxBlockSize=`${t}lh`);return}s.style.overflow="hidden";function e(){s.style.blockSize="auto";let i=s.scrollHeight;if(t>0){let n=getComputedStyle(s),r=parseFloat(n.lineHeight)||parseFloat(n.fontSize)*1.2,o=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom),a=r*t+o;i>a?(i=a,s.style.overflow="auto"):s.style.overflow="hidden"}s.style.blockSize=i+"px"}s.addEventListener("input",e),s.addEventListener("change",e),e()}L(Bc,Oc);var ke="[data-show-when], [data-hide-when]";function pi(s){let t=s.indexOf("=");return t===-1?{name:s,value:null}:{name:s.slice(0,t),value:s.slice(t+1)}}function Pc(s,t){let e=t.querySelectorAll(`[name="${CSS.escape(s)}"]`);if(!e.length)return"";let i=e[0];if(i.type==="radio"){let n=Array.from(e).find(r=>r.checked);return n?n.value:""}return i.type==="checkbox"?i.checked?i.value||"true":"":i.value}function go(s,t){let e=Pc(s.name,t);return s.value===null?e!=="":e===s.value}function xe(s){let t=s.closest("form")||document,e;if(s.dataset.showWhen){let i=pi(s.dataset.showWhen);e=go(i,t)}else if(s.dataset.hideWhen){let i=pi(s.dataset.hideWhen);e=!go(i,t)}e?(s.removeAttribute("hidden"),s.removeAttribute("inert")):(s.setAttribute("hidden",""),s.setAttribute("inert",""))}function bo(s=document){let t=s.querySelectorAll(ke);t.forEach(n=>{n.hasAttribute("data-conditional-init")||(n.setAttribute("data-conditional-init",""),xe(n))});let e=new Set;t.forEach(n=>{let r=n.closest("form");r&&!r.hasAttribute("data-conditional-listener")&&(r.setAttribute("data-conditional-listener",""),e.add(r))}),(e.size?[...e]:[document]).forEach(n=>{n.addEventListener("change",vo),n.addEventListener("input",vo)})}function vo(s){let t=s.target.name;if(!t)return;(s.target.closest("form")||document).querySelectorAll(ke).forEach(n=>{let r=n.dataset.showWhen||n.dataset.hideWhen||"";pi(r).name===t&&xe(n)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>bo()):bo();var Fc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(ke)&&(i.hasAttribute("data-conditional-init")||(i.setAttribute("data-conditional-init",""),xe(i))),i.querySelectorAll(ke).forEach(n=>{n.hasAttribute("data-conditional-init")||(n.setAttribute("data-conditional-init",""),xe(n))})}});Fc.observe(document.documentElement,{childList:!0,subtree:!0});z();var jc='input[type="range"][data-range]';function zc(s){if(s.hasAttribute("data-range-init"))return;s.setAttribute("data-range-init","");let t=s.dataset.prefix||"",e=s.dataset.suffix||"",i=s.hasAttribute("data-bubble"),n=document.createElement("div");if(n.className="range-wrapper",!s.parentNode)return;s.parentNode.insertBefore(n,s),n.appendChild(s);function r(){let h=parseFloat(s.min)||0,u=parseFloat(s.max)||100,p=(parseFloat(s.value)-h)/(u-h)*100;n.style.setProperty("--range-pct",`${p}%`)}let o;i&&(o=document.createElement("output"),o.className="range-bubble",o.setAttribute("for",s.id||""),n.appendChild(o));function a(){if(!o)return;o.textContent=`${t}${s.value}${e}`;let h=parseFloat(s.min)||0,u=parseFloat(s.max)||100,d=(parseFloat(s.value)-h)/(u-h),p=s.offsetWidth,f=1.25*parseFloat(getComputedStyle(document.documentElement).fontSize),v=s.offsetLeft+f/2+d*(p-f);o.style.insetInlineStart=`${v}px`}if(s.hasAttribute("data-markers")){let h=parseFloat(s.min)||0,u=parseFloat(s.max)||100,d=parseFloat(s.step)||1,p=document.createElement("div");p.className="range-markers";let m=Math.round((u-h)/d);for(let f=0;f<=m;f++)p.appendChild(document.createElement("span"));n.appendChild(p)}let l=s.getAttribute("list");if(l){let h=document.getElementById(l);if(h){let u=document.createElement("div");u.className="range-labels";let d=parseFloat(s.min)||0,p=parseFloat(s.max)||100;requestAnimationFrame(()=>{let m=s.offsetWidth,v=1.25*parseFloat(getComputedStyle(document.documentElement).fontSize);Array.from(h.options).forEach(y=>{let w=document.createElement("span");w.textContent=y.label||y.value;let S=(parseFloat(y.value)-d)/(p-d),T=s.offsetLeft+v/2+S*(m-v);w.style.insetInlineStart=`${T}px`,u.appendChild(w)})}),n.appendChild(u)}}function c(){r(),a()}s.addEventListener("input",c),c()}L(jc,zc);var mi='input[type="file"][data-upload]';function Hc(s){if(s===0)return"0 B";let t=["B","KB","MB","GB"],e=Math.floor(Math.log(s)/Math.log(1024));return`${(s/Math.pow(1024,e)).toFixed(e>0?1:0)} ${t[e]}`}function fi(s){if(s.hasAttribute("data-upload-init"))return;s.setAttribute("data-upload-init","");let t=s.hasAttribute("multiple"),e=s.getAttribute("accept")||"",i=document.createElement("div");if(i.className="upload-zone",i.setAttribute("role","presentation"),!s.parentNode)return;s.parentNode.insertBefore(i,s),i.appendChild(s);let n=document.createElement("div");n.className="upload-prompt",n.innerHTML=`
|
|
397
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
398
|
+
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
|
|
399
|
+
<polyline points="17 8 12 3 7 8"/>
|
|
400
|
+
<line x1="12" y1="3" x2="12" y2="15"/>
|
|
401
|
+
</svg>
|
|
402
|
+
<span>Drag files here or <button type="button" class="upload-browse">browse</button></span>
|
|
403
|
+
${e?`<small>${e.replace(/\./g,"").toUpperCase().replace(/,/g,", ")}</small>`:""}
|
|
404
|
+
`,i.appendChild(n);let r=document.createElement("ul");r.className="upload-file-list",r.setAttribute("aria-label","Selected files"),i.appendChild(r);let o=n.querySelector(".upload-browse");if(!o)return;o.addEventListener("click",()=>s.click()),i.addEventListener("click",l=>{(l.target===i||l.target===n||l.target.closest(".upload-prompt"))&&s.click()});let a=0;i.addEventListener("dragenter",l=>{l.preventDefault(),a++,i.dataset.dragover=""}),i.addEventListener("dragleave",()=>{a--,a===0&&delete i.dataset.dragover}),i.addEventListener("dragover",l=>{l.preventDefault()}),i.addEventListener("drop",l=>{l.preventDefault(),a=0,delete i.dataset.dragover,l.dataTransfer&&l.dataTransfer.files.length&&(s.files=l.dataTransfer.files,s.dispatchEvent(new Event("change",{bubbles:!0})))}),s.addEventListener("change",()=>{r.innerHTML="";let l=Array.from(s.files??[]);if(l.length===0){r.hidden=!0;return}r.hidden=!1,l.forEach(c=>{let h=document.createElement("li");h.innerHTML=`
|
|
405
|
+
<span class="upload-file-name">${Vc(c.name)}</span>
|
|
406
|
+
<span class="upload-file-size">${Hc(c.size)}</span>
|
|
407
|
+
`,r.appendChild(h)})})}function Vc(s){let t=document.createElement("div");return t.textContent=s,t.innerHTML}function yo(s=document){s.querySelectorAll(mi).forEach(fi)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>yo()):yo();var Uc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(mi)&&fi(i),i.querySelectorAll(mi).forEach(n=>fi(n))}});Uc.observe(document.documentElement,{childList:!0,subtree:!0});var gi="form[data-autosave]";function bi(s){if(s.hasAttribute("data-autosave-init"))return;s.setAttribute("data-autosave-init","");let t=`vb-autosave:${s.dataset.autosave}`,e;function i(){let l={},c=s.elements;for(let h of c){let u=h;u.name&&(u.type==="password"||u.type==="file"||(u.type==="checkbox"?l[u.name]=u.checked?"on":"":u.type==="radio"?u.checked&&(l[u.name]=u.value):l[u.name]=u.value))}return l}function n(){let c={data:i(),timestamp:Date.now()};try{localStorage.setItem(t,JSON.stringify(c))}catch{}}function r(){try{let l=localStorage.getItem(t);if(!l)return!1;let c=JSON.parse(l);if(Date.now()-c.timestamp>864e5)return localStorage.removeItem(t),!1;let h=c.data,u=!1;for(let[d,p]of Object.entries(h)){let m=s.querySelectorAll(`[name="${CSS.escape(d)}"]`);m.forEach(f=>{let v=f;v.type==="checkbox"?v.checked=p==="on":v.type==="radio"?v.checked=v.value===p:v.value=p}),m.length&&(u=!0)}return u}catch{return!1}}function o(){localStorage.removeItem(t)}function a(){if(customElements.get("toast-msg")){let l=document.createElement("toast-msg");l.setAttribute("variant","info"),l.setAttribute("duration","3000"),l.textContent="Draft restored",document.body.appendChild(l)}}r()&&(a(),Array.from(s.elements).forEach(l=>{let c=l;c.name&&c.type!=="password"&&c.type!=="file"&&c.dispatchEvent(new Event("input",{bubbles:!0}))})),s.addEventListener("input",()=>{clearTimeout(e),e=setTimeout(n,500)}),s.addEventListener("change",()=>{clearTimeout(e),e=setTimeout(n,500)}),s.addEventListener("submit",o),s.addEventListener("reset",()=>{setTimeout(o,0)})}function wo(s=document){s.querySelectorAll(gi).forEach(bi)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>wo()):wo();var Wc=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(gi)&&bi(i),i.querySelectorAll(gi).forEach(bi)}});Wc.observe(document.documentElement,{childList:!0,subtree:!0});z();var Gc="input[data-mask]",Ao={phone:{pattern:"(###) ###-####",accept:/\d/},"credit-card":{pattern:"#### #### #### ####",accept:/\d/},date:{pattern:"##/##/####",accept:/\d/},ssn:{pattern:"###-##-####",accept:/\d/},zip:{pattern:"#####",accept:/\d/}},Yc={"#":/\d/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/};function Kc(s){let t=s.dataset.mask;if(Ao[t])return Ao[t];if(t==="custom"&&s.dataset.pattern){let e=s.dataset.pattern,i=new Set;for(let r of e)r==="#"?i.add("0-9"):r==="A"?i.add("a-zA-Z"):r==="*"&&i.add("a-zA-Z0-9");let n=i.size>0?new RegExp(`[${[...i].join("")}]`):/./;return{pattern:e,accept:n}}return null}function Se(s){return s==="#"||s==="A"||s==="*"}function Xc(s,t){let e=Yc[s];return e?e.test(t):!1}function Eo(s,t){let e="",i=0;for(let n=0;n<t.length&&i<s.length;n++){let r=t[n];if(Se(r)){for(;i<s.length&&!Xc(r,s[i]);)i++;i<s.length&&(e+=s[i],i++)}else e+=r}return e}function ko(s,t){return s.split("").filter(e=>t.test(e)).join("")}function Jc(s){for(let t of s)if(Se(t)&&t!=="#")return!1;return!0}function Zc(s){if(s.hasAttribute("data-mask-init"))return;s.setAttribute("data-mask-init","");let t=Kc(s);if(!t)return;let{pattern:e}=t,i=t.accept;Jc(e)&&!s.getAttribute("inputmode")&&s.setAttribute("inputmode","numeric"),s.getAttribute("maxlength")||s.setAttribute("maxlength",String(e.length));let n=!1;s.addEventListener("compositionstart",()=>{n=!0}),s.addEventListener("compositionend",()=>{n=!1,r()});function r(){if(n)return;let o=s.selectionStart??0,a=0;for(let d=0;d<o&&d<s.value.length;d++)i.test(s.value[d])&&a++;let l=ko(s.value,i),c=Eo(l,e);s.value=c,s.dataset.rawValue=l;let h=0,u=c.length;for(let d=0;d<c.length;d++)if(d<e.length&&Se(e[d])&&(h++,h===a)){for(u=d+1;u<e.length&&!Se(e[u]);)u++;break}s.setSelectionRange(u,u)}if(s.addEventListener("input",r),s.value){let o=ko(s.value,i);s.value=Eo(o,e),s.dataset.rawValue=o}}L(Gc,Zc);z();var Qc="input[data-accept]",th={digits:{pattern:"[0-9]",inputmode:"numeric"},alpha:{pattern:"[a-zA-Z]",inputmode:"text"},alphanum:{pattern:"[a-zA-Z0-9]",inputmode:"text"},phone:{pattern:"[0-9+()\\- ]",inputmode:"tel"},date:{pattern:"[0-9/\\-.]",inputmode:"numeric"},hex:{pattern:"[0-9a-fA-F]",inputmode:"text"},currency:{pattern:"[0-9.,]",inputmode:"decimal"},cc:{pattern:"[0-9 \\-]",inputmode:"numeric"}};function eh(s){if(!s)return null;let t=th[s];if(t)return{regex:new RegExp(t.pattern),inputmode:t.inputmode};if(s.startsWith("["))try{return{regex:new RegExp(s),inputmode:"text"}}catch{return console.warn(`[data-accept] Invalid character class: ${s}`),null}return console.warn(`[data-accept] Unknown preset: ${s}`),null}function sh(s){if(s.hasAttribute("data-accept-init"))return;if(s.setAttribute("data-accept-init",""),s.hasAttribute("data-mask")){console.warn("[data-accept] Conflict: data-mask is also present \u2014 deferring to mask.",s);return}let t=eh(s.dataset.accept);if(!t)return;let{regex:e,inputmode:i}=t;s.dataset.acceptPattern=e.source,s.getAttribute("inputmode")||s.setAttribute("inputmode",i);let n=!1;s.addEventListener("compositionstart",()=>{n=!0}),s.addEventListener("compositionend",()=>{n=!1,r()}),s.addEventListener("beforeinput",o=>{if(n)return;let a=o.data;if(a!=null){if(o.inputType==="insertFromPaste"){let l=a.split("").filter(c=>e.test(c)).join("");if(l===a||(o.preventDefault(),!l))return;document.execCommand("insertText",!1,l)||ih(s,l);return}if(o.inputType==="insertText"||o.inputType==="insertCompositionText"){for(let l of a)if(!e.test(l)){o.preventDefault();return}}}}),s.addEventListener("input",()=>{n||r()});function r(){let o=s.value,a=o.split("").filter(u=>e.test(u)).join("");if(a===o)return;let l=s.selectionStart??0,c=0;for(let u=0;u<l&&u<o.length;u++)e.test(o[u])&&c++;s.value=a;let h=Math.min(c,a.length);s.setSelectionRange(h,h)}if(s.value){let o=s.value.split("").filter(a=>e.test(a)).join("");o!==s.value&&(s.value=o)}}function ih(s,t){let e=s.selectionStart??0,i=s.selectionEnd??0,n=s.value.slice(0,e),r=s.value.slice(i);s.value=n+t+r;let o=e+t.length;s.setSelectionRange(o,o),s.dispatchEvent(new Event("input",{bubbles:!0}))}L(Qc,sh);var vi="fieldset[data-toggle-tags][data-max]";function yi(s){if(s.hasAttribute("data-toggle-tags-init"))return;s.setAttribute("data-toggle-tags-init","");let t=parseInt(s.dataset.max,10);if(!t||t<1)return;function e(){let i=s.querySelectorAll('input[type="checkbox"]'),n=s.querySelectorAll('input[type="checkbox"]:checked').length;i.forEach(r=>{r.checked||(r.disabled=n>=t)})}s.addEventListener("change",e),e()}function xo(s=document){s.querySelectorAll(vi).forEach(yi)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>xo()):xo();var nh=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(vi)&&yi(i),i.querySelectorAll(vi).forEach(yi)}});nh.observe(document.documentElement,{childList:!0,subtree:!0});z();var rh='input[type="number"][data-stepper]',oh='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"/></svg>',ah='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>';function lh(s){if(s.hasAttribute("data-stepper-init"))return;s.setAttribute("data-stepper-init","");let t=document.createElement("div");t.className="number-wrapper",s.parentNode.insertBefore(t,s);let e=document.createElement("button");e.type="button",e.className="number-dec",e.innerHTML=oh,e.setAttribute("aria-label","Decrease"),e.tabIndex=-1;let i=document.createElement("button");i.type="button",i.className="number-inc",i.innerHTML=ah,i.setAttribute("aria-label","Increase"),i.tabIndex=-1,t.appendChild(e),t.appendChild(s),t.appendChild(i);function n(o){let a=s.min!==""?parseFloat(s.min):-1/0,l=s.max!==""?parseFloat(s.max):1/0,c=parseFloat(s.step)||1,h=parseFloat(s.value)||0,u=(c.toString().split(".")[1]||"").length,d=parseFloat((h+c*o).toFixed(u)),p=Math.min(Math.max(d,a),l);s.value=p,s.dispatchEvent(new Event("input",{bubbles:!0})),s.dispatchEvent(new Event("change",{bubbles:!0})),r()}function r(){let o=s.min!==""?parseFloat(s.min):-1/0,a=s.max!==""?parseFloat(s.max):1/0,l=parseFloat(s.value)||0;e.disabled=l<=o,i.disabled=l>=a}e.addEventListener("click",()=>n(-1)),i.addEventListener("click",()=>n(1)),s.addEventListener("input",r),r()}L(rh,lh);var wi='input[type="color"][data-color]';function Ai(s){if(s.hasAttribute("data-color-init")||s.closest("color-picker"))return;s.setAttribute("data-color-init","");let t=document.createElement("div");t.className="color-wrapper",s.parentNode.insertBefore(t,s),t.appendChild(s);let e=document.createElement("button");e.type="button",e.className="color-display";let i=document.createElement("span");i.className="color-swatch";let n=document.createElement("span");n.className="color-hex",e.appendChild(i),e.appendChild(n),t.appendChild(e);function r(){i.style.background=s.value,n.textContent=s.value}e.addEventListener("click",()=>s.click()),s.addEventListener("input",r),r()}function So(s=document){s.querySelectorAll(wi).forEach(Ai)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>So()):So();var ch=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(wi)&&Ai(i),i.querySelectorAll(wi).forEach(Ai)}});ch.observe(document.documentElement,{childList:!0,subtree:!0});var Ei="[data-select-all]";function Co(s=document){s.querySelectorAll(Ei).forEach(ki)}function ki(s){if(s.hasAttribute("data-select-all-init"))return;s.setAttribute("data-select-all-init","");let t=s.dataset.selectAll??"";if(!t)return;function e(){return(s.closest("[data-select-all-scope]")||s.closest("table, form, fieldset")||document).querySelectorAll(t)}function i(){let o=e(),a=o.length,l=0;o.forEach(u=>{u.checked&&l++}),l===0?(s.checked=!1,s.indeterminate=!1):l===a?(s.checked=!0,s.indeterminate=!1):(s.checked=!1,s.indeterminate=!0);let h=(s.closest("[data-select-all-scope]")||s.closest("table, form, fieldset")||document).querySelector("[data-selected-count]");h&&(h.textContent=String(l)),s.dispatchEvent(new CustomEvent("select-all:change",{bubbles:!0,detail:{checked:l,total:a,selected:[...o].filter(u=>u.checked)}}))}let n=!1;s.addEventListener("change",()=>{n=!0;let o=s.checked;e().forEach(l=>{l.checked=o,l.dispatchEvent(new Event("change",{bubbles:!0}))}),n=!1,s.indeterminate=!1,i()}),(s.closest("[data-select-all-scope]")||s.closest("table, form, fieldset")||document).addEventListener("change",o=>{n||o.target!==s&&o.target.matches?.(t)&&i()}),i()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Co()):Co();var hh=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(Ei)&&ki(i),i.querySelectorAll(Ei).forEach(n=>ki(n))}});hh.observe(document.documentElement,{childList:!0,subtree:!0});var xi="[data-math], code.language-math";var To=0;window.VBMath=window.VBMath||{equations:[]};function Lo(s=document){s.querySelectorAll(xi).forEach(Si)}function uh(s){let t=s.getAttribute("data-math")||"";return new Set(t.split(/\s+/).filter(Boolean))}function Si(s){if(s.hasAttribute("data-math-init"))return;s.setAttribute("data-math-init",""),!s.hasAttribute("data-math")&&s.classList.contains("language-math")&&s.setAttribute("data-math","");let t=uh(s),e=s.getAttribute("data-mathml"),i=s.textContent.trim(),n=t.has("inline");if(!e){s.setAttribute("data-math-state","source");return}let r=n?document.createElement("span"):document.createElement("div");r.setAttribute("data-math-rendered",""),r.innerHTML=e;let o=s.id||null;o&&(r.id=o,s.removeAttribute("id"));let a=r.querySelector("math");a&&!n&&a.setAttribute("display","block");let l=null;t.has("numbered")&&(To++,l=To,r.setAttribute("data-math-numbered",""),r.setAttribute("data-equation-number",String(l)),o&&window.VBMath?.equations.push({id:o,number:l,latex:i})),t.has("copyable")&&(r.setAttribute("data-math-copyable",""),r.style.cursor="copy",r.addEventListener("click",async()=>{try{await navigator.clipboard.writeText(i),ph("Copied to clipboard",r)}catch{}})),s.setAttribute("data-math-state","rendered"),s.insertAdjacentElement("afterend",r);let c=s.closest("pre");c?(c.setAttribute("data-math-state","rendered"),c.hidden=!0):s.hidden=!0,dh(),s.dispatchEvent(new CustomEvent("math:rendered",{bubbles:!0,detail:{latex:i,inline:n,number:l}}))}function dh(){if(document.querySelector("[data-vb-math-font]"))return;let s=document.createElement("link");s.rel="stylesheet",s.href="/fonts/math-fonts.css",s.setAttribute("data-vb-math-font",""),document.head.appendChild(s)}function ph(s,t){let e=document.createElement("div");e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.className="sr-only",e.textContent=s,t.appendChild(e),setTimeout(()=>e.remove(),1e3)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Lo()):Lo();var mh=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(xi)&&Si(i),i.querySelectorAll(xi).forEach(Si)}});mh.observe(document.documentElement,{childList:!0,subtree:!0});var Ci=class extends b{#t;#e=null;setup(){this.#e===null&&(this.#e=this.getAttribute("value")||this.textContent.trim());let t=this.#e;if(!t)return!1;let e=parseInt(this.getAttribute("size")??"200",10)||200,i=parseInt(this.getAttribute("error-correction")??"1",10)||1;this.#t=document.createElement("canvas"),this.#t.width=e,this.#t.height=e,this.#t.setAttribute("role","img"),this.#t.setAttribute("aria-label",`QR code: ${t}`),this.#s(t,e,i)}static get observedAttributes(){return["value","size"]}attributeChangedCallback(t,e,i){if(!this.#t||!this.isConnected)return;t==="value"&&i&&(this.#e=i);let n=this.#e||this.getAttribute("value")||"";if(!n)return;let r=parseInt(this.getAttribute("size")??"200",10)||200,o=parseInt(this.getAttribute("error-correction")??"1",10)||1;this.#t.width=r,this.#t.height=r,this.#t.setAttribute("aria-label",`QR code: ${n}`),this.#s(n,r,o)}#s(t,e,i){let n=gh(t,i),r=this.#t.getContext("2d"),o=n.length,a=e/o,l=getComputedStyle(this),c=this.getAttribute("color")||l.color||"#000",h=this.getAttribute("background")||"transparent";r.clearRect(0,0,e,e),h!=="transparent"&&(r.fillStyle=h,r.fillRect(0,0,e,e)),r.fillStyle=c;for(let d=0;d<o;d++)for(let p=0;p<o;p++)n[d][p]&&r.fillRect(Math.round(p*a),Math.round(d*a),Math.ceil(a),Math.ceil(a));this.textContent="",this.appendChild(this.#t);let u=document.createElement("span");u.className="sr-only",u.textContent=t,this.appendChild(u)}toDataURL(t="image/png"){return this.#t?.toDataURL(t)??""}},Ce=[[[26,7],[44,10],[70,15],[100,20],[134,26],[172,18],[196,20],[242,24],[292,30],[346,18]],[[26,10],[44,16],[70,26],[100,18],[134,24],[172,16],[196,18],[242,22],[292,22],[346,26]],[[26,13],[44,22],[70,18],[100,26],[134,18],[172,24],[196,18],[242,22],[292,20],[346,28]],[[26,17],[44,28],[70,22],[100,16],[134,22],[172,28],[196,26],[242,26],[292,24],[346,28]]],fh=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,52]];function gh(s,t=1){let e=new TextEncoder().encode(s),i=bh(e.length,t),n=Ce[t][i-1][0],r=Ce[t][i-1][1],o=n-r,a=vh(e,i,o),l=yh(a,o,r),c=i*4+17,h=Array.from({length:c},()=>new Uint8Array(c)),u=Array.from({length:c},()=>new Uint8Array(c));return Ah(h,u,c),Eh(h,u,i),kh(h,u,c),xh(u,c),Sh(h,u,l,c),qh(h,u,c,t)}function bh(s,t){for(let e=1;e<=10;e++){let i=Ce[t][e-1][0],n=Ce[t][e-1][1],r=i-n,o=e<=9?8:16,a=Math.ceil((4+o)/8);if(s<=r-a)return e}return 10}function vh(s,t,e){let i=[],n=(u,d)=>{for(let p=d-1;p>=0;p--)i.push(u>>p&1)};n(4,4);let r=t<=9?8:16;n(s.length,r);for(let u of s)n(u,8);let o=e*8,a=Math.min(4,o-i.length);for(n(0,a);i.length%8!==0;)i.push(0);let l=[236,17],c=0;for(;i.length<o;)n(l[c%2],8),c++;let h=[];for(let u=0;u<i.length;u+=8){let d=0;for(let p=0;p<8;p++)d=d<<1|(i[u+p]||0);h.push(d)}return h}function yh(s,t,e){let i=wh(e),n=new Uint8Array(t+e);for(let o=0;o<t;o++)n[o]=s[o];for(let o=0;o<t;o++){let a=n[o];if(a===0)continue;let l=Te[a];for(let c=0;c<i.length;c++)n[o+c]^=Wt[(l+Te[i[c]])%255]}let r=[...s.slice(0,t)];for(let o=0;o<e;o++)r.push(n[t+o]);return r}var Wt=new Uint8Array(512),Te=new Uint8Array(256);(function(){let t=1;for(let e=0;e<255;e++)Wt[e]=t,Te[t]=e,t<<=1,t>=256&&(t^=285);for(let e=255;e<512;e++)Wt[e]=Wt[e-255]})();function wh(s){let t=new Uint8Array([1]);for(let e=0;e<s;e++){let i=new Uint8Array(t.length+1),n=e;for(let r=0;r<t.length;r++)i[r]^=t[r],i[r+1]^=Wt[(Te[t[r]]+n)%255];t=i}return t}function Ah(s,t,e){let i=[[0,0],[e-7,0],[0,e-7]];for(let[n,r]of i){for(let o=0;o<7;o++)for(let a=0;a<7;a++){let l=o===0||o===6||a===0||a===6||o>=2&&o<=4&&a>=2&&a<=4;s[n+o][r+a]=l?1:0,t[n+o][r+a]=1}for(let o=-1;o<=7;o++)for(let[a,l]of[[o,-1],[o,7],[-1,o],[7,o]]){let c=n+a,h=r+l;c>=0&&c<e&&h>=0&&h<e&&(s[c][h]=0,t[c][h]=1)}}}function Eh(s,t,e){if(e<2)return;let i=fh[e-1];for(let n of i)for(let r of i)if(!t[n][r])for(let o=-2;o<=2;o++)for(let a=-2;a<=2;a++){let l=Math.abs(o)===2||Math.abs(a)===2||o===0&&a===0;s[n+o][r+a]=l?1:0,t[n+o][r+a]=1}}function kh(s,t,e){for(let i=8;i<e-8;i++){let n=i%2===0?1:0;t[6][i]||(s[6][i]=n,t[6][i]=1),t[i][6]||(s[i][6]=n,t[i][6]=1)}}function xh(s,t){for(let e=0;e<=8;e++)e<t&&(s[8][e]=1),e<t&&(s[e][8]=1);for(let e=0;e<=7;e++)s[8][t-1-e]=1,s[t-1-e][8]=1;s[t-8][8]=1}function Sh(s,t,e,i){let n=[];for(let a of e)for(let l=7;l>=0;l--)n.push(a>>l&1);let r=0,o=!0;for(let a=i-1;a>=1;a-=2){a===6&&(a=5);let l=o?Array.from({length:i},(c,h)=>i-1-h):Array.from({length:i},(c,h)=>h);for(let c of l)for(let h of[a,a-1])h<0||h>=i||t[c][h]||(s[c][h]=r<n.length?n[r]:0,r++);o=!o}}var Ch=[30660,29427,32170,30877,26159,25368,27713,26998,21522,20773,24188,23371,17913,16590,20375,19104,13663,12392,16177,14854,9396,8579,11994,11245,5769,5054,7399,6608,1890,597,3340,2107];function Th(s,t){let i=[1,0,3,2][s]*8+t;return Ch[i]}var Lh=[(s,t)=>(s+t)%2===0,s=>s%2===0,(s,t)=>t%3===0,(s,t)=>(s+t)%3===0,(s,t)=>(Math.floor(s/2)+Math.floor(t/3))%2===0,(s,t)=>s*t%2+s*t%3===0,(s,t)=>(s*t%2+s*t%3)%2===0,(s,t)=>((s+t)%2+s*t%3)%2===0];function Mh(s,t,e,i){let n=s.map(o=>new Uint8Array(o)),r=Lh[i];for(let o=0;o<e;o++)for(let a=0;a<e;a++)!t[o][a]&&r(o,a)&&(n[o][a]^=1);return n}function $h(s,t,e,i){let n=Th(e,i),r=[[0,8],[1,8],[2,8],[3,8],[4,8],[5,8],[7,8],[8,8],[8,7],[8,5],[8,4],[8,3],[8,2],[8,1],[8,0]];for(let a=0;a<15;a++){let[l,c]=r[a];s[l][c]=n>>14-a&1}let o=[[8,t-1],[8,t-2],[8,t-3],[8,t-4],[8,t-5],[8,t-6],[8,t-7],[8,t-8],[t-7,8],[t-6,8],[t-5,8],[t-4,8],[t-3,8],[t-2,8],[t-1,8]];for(let a=0;a<15;a++){let[l,c]=o[a];s[l][c]=n>>14-a&1}s[t-8][8]=1}function Nh(s,t){let e=0;for(let i=0;i<t;i++){let n=1;for(let r=1;r<t;r++)s[i][r]===s[i][r-1]?(n++,n===5?e+=3:n>5&&(e+=1)):n=1}for(let i=0;i<t;i++){let n=1;for(let r=1;r<t;r++)s[r][i]===s[r-1][i]?(n++,n===5?e+=3:n>5&&(e+=1)):n=1}for(let i=0;i<t-1;i++)for(let n=0;n<t-1;n++){let r=s[i][n];r===s[i][n+1]&&r===s[i+1][n]&&r===s[i+1][n+1]&&(e+=3)}return e}function qh(s,t,e,i){let n=1/0,r=null;for(let o=0;o<8;o++){let a=Mh(s,t,e,o);$h(a,e,i,o);let l=Nh(a,e);l<n&&(n=l,r=a)}return r}g("qr-code",Ci);var Ti=class extends b{#t;#e;#s=null;#n=!1;setup(){if(this.#n)return;let t=this.getAttribute("src");if(!t)return!1;this.#s===null&&(this.#s=this.innerHTML),this.hasAttribute("lazy")?this.#r():this.#o(t)}teardown(){this.#t?.disconnect(),this.#e?.abort()}static get observedAttributes(){return["src"]}attributeChangedCallback(t,e,i){t==="src"&&i&&e!==i&&this.isConnected&&(this.hasAttribute("lazy")&&!this.#i()?this.#r():this.#o(i))}#i(){let t=this.getBoundingClientRect();return t.top<window.innerHeight+200&&t.bottom>-200}#r(){this.#t?.disconnect(),this.#t=new IntersectionObserver(t=>{for(let e of t)if(e.isIntersecting){this.#t.disconnect();let i=this.getAttribute("src");i&&this.#o(i)}},{rootMargin:"200px"}),this.#t.observe(this)}async#o(t){this.#e?.abort(),this.#e=new AbortController,this.setAttribute("data-loading",""),this.removeAttribute("data-loaded"),this.removeAttribute("data-error");try{let e=await fetch(t,{signal:this.#e.signal});if(!e.ok)throw new Error(`HTTP ${e.status}: ${e.statusText}`);let i=await e.text(),n=this.getAttribute("mode")||"replace";n==="replace"?this.innerHTML=i:n==="append"?this.insertAdjacentHTML("beforeend",i):n==="prepend"&&this.insertAdjacentHTML("afterbegin",i),this.hasAttribute("allow-scripts")?this.querySelectorAll("script").forEach(r=>{let o=document.createElement("script");for(let a of r.attributes)o.setAttribute(a.name,a.value);o.textContent=r.textContent,r.replaceWith(o)}):this.querySelectorAll("script").forEach(r=>r.remove()),this.removeAttribute("data-loading"),this.setAttribute("data-loaded",""),this.#n=!0,this.dispatchEvent(new CustomEvent("include-file:loaded",{bubbles:!0,detail:{src:t,html:i}}))}catch(e){if(e.name==="AbortError")return;this.removeAttribute("data-loading"),this.setAttribute("data-error",""),(this.getAttribute("mode")||"replace")==="replace"&&this.#s!==null&&!this.#n&&(this.innerHTML=this.#s),this.dispatchEvent(new CustomEvent("include-file:error",{bubbles:!0,detail:{src:t,error:e.message}}))}}reload(){let t=this.getAttribute("src");t&&this.#o(t)}};g("include-file",Ti);var Li=class extends b{#t;#e;#s;#n=!1;#i=0;#r=0;#o=0;#a=!1;#l=!1;get activated(){return this.#a}get#c(){let t=this.getAttribute("threshold"),e=Number(t);return t!==null&&!isNaN(e)?Math.min(100,Math.max(0,e)):90}setup(){this.#l||(this.#h(),this.#l=!0),this.listen(this.#t,"pointerdown",this.#p),this.listen(this.#t,"keydown",this.#m),this.listen(this.#t,"transitionend",this.#b)}#h(){this.#s=document.createElement("div"),this.#s.className="slide-track",this.#e=document.createElement("span"),this.#e.className="slide-label",this.#e.textContent=this.getAttribute("label")||"Slide to confirm",this.#t=document.createElement("div"),this.#t.className="slide-handle",this.#t.setAttribute("role","slider"),this.#t.setAttribute("aria-valuemin","0"),this.#t.setAttribute("aria-valuemax","100"),this.#t.setAttribute("aria-valuenow","0"),this.#t.setAttribute("aria-label",this.getAttribute("label")||"Slide to confirm"),this.#t.setAttribute("tabindex","0"),this.#t.innerHTML='<icon-wc name="chevrons-right" size="sm"></icon-wc>',this.#s.append(this.#e,this.#t),this.textContent="",this.appendChild(this.#s),this.#v(0)}reset(){this.#a=!1,this.removeAttribute("data-activated"),this.#e.textContent=this.getAttribute("label")||"Slide to confirm",this.#t.removeAttribute("aria-disabled"),this.#t.setAttribute("tabindex","0"),this.#v(0),this.dispatchEvent(new CustomEvent("slide-accept:reset",{bubbles:!0}))}#p=t=>{if(!this.#a){if(t.preventDefault(),this.hasAttribute("transitioning")){let e=this.#t.getBoundingClientRect(),i=this.#s.getBoundingClientRect(),n=parseFloat(getComputedStyle(this.#s).getPropertyValue("--_handle-inset")||"0"),r=this.#t.offsetWidth,o=i.width-r-n*2,a=e.left-i.left-n;this.removeAttribute("transitioning"),this.#i=o>0?Math.max(0,Math.min(100,a/o*100)):0,this.#v(this.#i)}this.#n=!0,this.#r=t.clientX,this.#o=this.#i,this.#t.setPointerCapture(t.pointerId),this.setAttribute("data-dragging",""),this.#t.addEventListener("pointermove",this.#d),this.#t.addEventListener("pointerup",this.#u),this.#t.addEventListener("pointercancel",this.#u)}};#d=t=>{if(!this.#n)return;let e=this.#s.getBoundingClientRect().width-this.#t.offsetWidth;if(e<=0)return;let n=(t.clientX-this.#r)/e*100,r=Math.min(100,Math.max(0,this.#o+n));this.#v(r)};#u=t=>{this.#n&&(this.#n=!1,this.removeAttribute("data-dragging"),this.#t.releasePointerCapture(t.pointerId),this.#t.removeEventListener("pointermove",this.#d),this.#t.removeEventListener("pointerup",this.#u),this.#t.removeEventListener("pointercancel",this.#u),this.#i>=this.#c?this.#g():this.#f())};#m=t=>{if(this.#a)return;let e=t.shiftKey?20:5;t.key==="ArrowRight"?(t.preventDefault(),this.#v(Math.min(100,this.#i+e))):t.key==="ArrowLeft"?(t.preventDefault(),this.#v(Math.max(0,this.#i-e))):t.key==="End"?(t.preventDefault(),this.#g()):t.key==="Home"&&(t.preventDefault(),this.#v(0)),t.key==="ArrowRight"&&this.#i>=this.#c&&this.#g()};#b=()=>{this.removeAttribute("transitioning")};#g(){this.#a=!0,this.#v(100),this.setAttribute("data-activated",""),this.#e.textContent=this.getAttribute("activated-label")||"Confirmed!",this.#t.setAttribute("aria-disabled","true"),this.#t.removeAttribute("tabindex"),this.dispatchEvent(new CustomEvent("slide-accept:accept",{bubbles:!0}))}#f(){this.setAttribute("transitioning",""),this.#v(0),setTimeout(()=>{this.hasAttribute("transitioning")&&this.removeAttribute("transitioning")},500)}#v(t){this.#i=t,this.style.setProperty("--_slide-position",String(t)),this.#t.setAttribute("aria-valuenow",String(Math.round(t)))}};g("slide-accept",Li);var Mi=class s extends b{#t=null;#e=null;#s=!1;#n=null;setup(){this.setAttribute("role","list"),this.#s=window.matchMedia("(prefers-reduced-motion: reduce)").matches,this.#r(),this.#a(),this.#u(),this.#i()}teardown(){this.#t&&(this.#t.remove(),this.#t=null),s.#E?.source===this&&(s.#E=null)}get draggableChildren(){return[...this.querySelectorAll(':scope > [draggable="true"]')]}get group(){return this.getAttribute("group")||null}get orientation(){return this.getAttribute("orientation")||"vertical"}get sortedOrder(){return this.draggableChildren.map(t=>t.dataset.id)}#i(){for(let t of this.draggableChildren)t.getAttribute("role")||t.setAttribute("role","listitem"),t.hasAttribute("tabindex")||t.setAttribute("tabindex","0"),t.hasAttribute("aria-grabbed")||t.setAttribute("aria-grabbed","false")}#r(){this.#t=document.createElement("div"),this.#t.setAttribute("role","status"),this.#t.setAttribute("aria-live","polite"),this.#t.setAttribute("aria-atomic","true"),this.#t.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);",this.prepend(this.#t)}#o(t){let e=this.#t;e&&(e.textContent="",requestAnimationFrame(()=>{e.textContent=t}))}#a(){this.listen(this,"pointerdown",t=>{this.#n=t.target}),this.listen(this,"dragstart",this.#l.bind(this)),this.listen(this,"dragover",this.#c.bind(this)),this.listen(this,"dragleave",this.#h.bind(this)),this.listen(this,"drop",this.#p.bind(this)),this.listen(this,"dragend",this.#d.bind(this))}#l(t){let e=t.target.closest('[draggable="true"]');if(!e||e.parentElement!==this||this.hasAttribute("disabled"))return;let i=e.querySelector("[data-drag-handle]");if(i&&!i.contains(this.#n)){t.preventDefault();return}e.setAttribute("data-dragging",""),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e.dataset.id||""),t.dataTransfer.setData("application/x-drag-surface-group",this.group||"");let n=this.#v(e);s.#E={item:e,source:this,originalIndex:n},this.dispatchEvent(new CustomEvent("drag-surface:reorder-start",{bubbles:!0}))}#c(t){let e=s.#E;if(!e||(this.group||e.source.group)&&this.group!==e.source.group)return;t.preventDefault(),t.dataTransfer.dropEffect="move",this.setAttribute("data-drag-over","");let i=this.orientation==="horizontal"?t.clientX:t.clientY;this.#L(i)}#h(t){t.relatedTarget&&!this.contains(t.relatedTarget)&&(this.removeAttribute("data-drag-over"),this.#x())}#p(t){t.preventDefault(),this.removeAttribute("data-drag-over"),this.#x();let e=s.#E;if(!e)return;let{item:i,source:n,originalIndex:r}=e,o=this.orientation==="horizontal"?t.clientX:t.clientY,a=this.#k(o);if(n===this){this.#y(i,a),this.#A();let l=this.#v(i);this.#b(i),this.dispatchEvent(new CustomEvent("drag-surface:reorder",{bubbles:!0,detail:{item:i,itemId:i.dataset.id,oldIndex:r,newIndex:l,order:this.sortedOrder}}))}else this.#y(i,a),this.#A(),n.#A(),this.#b(i),this.dispatchEvent(new CustomEvent("drag-surface:transfer",{bubbles:!0,detail:{item:i,itemId:i.dataset.id,fromSurface:n,toSurface:this,newIndex:this.#v(i),fromOrder:n.sortedOrder,toOrder:this.sortedOrder}}))}#d(){let t=s.#E;t?.item&&t.item.removeAttribute("data-dragging"),this.removeAttribute("data-drag-over"),this.#x(),s.#E=null,this.dispatchEvent(new CustomEvent("drag-surface:reorder-end",{bubbles:!0}))}#u(){this.listen(this,"keydown",this.#m.bind(this))}#m(t){let e=t.target.closest('[draggable="true"]');if(!e||e.parentElement!==this||this.hasAttribute("disabled"))return;let i=e.getAttribute("aria-grabbed")==="true",n=this.orientation==="horizontal",r=n?"ArrowLeft":"ArrowUp",o=n?"ArrowRight":"ArrowDown";if(t.key===" "||t.key==="Enter"){if(t.preventDefault(),i){e.setAttribute("aria-grabbed","false"),this.removeAttribute("data-reorder-mode"),this.#A(),this.#b(e);let c=this.#v(e),h=this.draggableChildren;this.#o(`${this.#f(e)}, dropped at position ${c+1} of ${h.length}`),this.dispatchEvent(new CustomEvent("drag-surface:reorder",{bubbles:!0,detail:{item:e,itemId:e.dataset.id,oldIndex:this.#e,newIndex:c,order:this.sortedOrder}})),this.dispatchEvent(new CustomEvent("drag-surface:reorder-end",{bubbles:!0})),this.#e=null}else{this.#e=this.#v(e),e.setAttribute("aria-grabbed","true"),this.setAttribute("data-reorder-mode","");let c=this.draggableChildren;this.#o(`${this.#f(e)}, grabbed. Position ${this.#e+1} of ${c.length}. Use arrow keys to move, Enter to drop, Escape to cancel.`),this.dispatchEvent(new CustomEvent("drag-surface:reorder-start",{bubbles:!0}))}return}if(!i&&(t.key===r||t.key===o)){t.preventDefault();let c=this.draggableChildren,h=c.indexOf(e),u=t.key===r?Math.max(0,h-1):Math.min(c.length-1,h+1);u!==h&&c[u].focus();return}if(i&&(t.key===r||t.key===o)){t.preventDefault();let c=this.draggableChildren,h=c.indexOf(e),u=t.key===r?Math.max(0,h-1):Math.min(c.length-1,h+1);u!==h&&(this.#y(e,u),e.focus(),this.#o(`Position ${u+1} of ${c.length}`));return}let a=n?"ArrowUp":"ArrowLeft",l=n?"ArrowDown":"ArrowRight";if(i&&(t.key===a||t.key===l)){if(t.preventDefault(),!this.group)return;let c=t.key===l?1:-1,h=this.#g(c);if(!h)return;h.appendChild(e),h.#A(),this.#A(),h.#b(e),e.focus();let u=h.getAttribute("aria-label")||"next surface";h.#o(`Moved to ${u}`),h.dispatchEvent(new CustomEvent("drag-surface:transfer",{bubbles:!0,detail:{item:e,itemId:e.dataset.id,fromSurface:this,toSurface:h,newIndex:h.draggableChildren.indexOf(e),fromOrder:this.sortedOrder,toOrder:h.sortedOrder}})),this.removeAttribute("data-reorder-mode"),h.setAttribute("data-reorder-mode",""),this.#e=null;return}if(i&&t.key==="Escape"){t.preventDefault(),e.setAttribute("aria-grabbed","false"),this.removeAttribute("data-reorder-mode"),this.#e!=null&&(this.#y(e,this.#e),e.focus()),this.#o("Reorder cancelled"),this.dispatchEvent(new CustomEvent("drag-surface:reorder-end",{bubbles:!0})),this.#e=null;return}!i&&t.key==="Escape"&&(t.preventDefault(),e.blur())}#b(t){t.setAttribute("data-just-dropped",""),t.addEventListener("animationend",()=>{t.removeAttribute("data-just-dropped")},{once:!0}),setTimeout(()=>t.removeAttribute("data-just-dropped"),500)}#g(t){if(!this.group)return null;let e=[...document.querySelectorAll(`drag-surface[group="${this.group}"]`)];if(e.length<2)return null;e.sort((r,o)=>{let a=r.getBoundingClientRect(),l=o.getBoundingClientRect();return a.left-l.left||a.top-l.top});let i=e.indexOf(this);return e[i+t]||null}#f(t){return t.dataset.id||t.textContent.trim().slice(0,40)}#v(t){return this.draggableChildren.indexOf(t)}#y(t,e){let n=this.draggableChildren.filter(r=>r!==t)[e]||null;n?this.insertBefore(t,n):this.appendChild(t)}#A(){this.draggableChildren.forEach((t,e)=>{t.dataset.sortOrder=String(e+1)})}#k(t){let e=this.orientation==="horizontal",i=this.draggableChildren.filter(n=>!n.hasAttribute("data-dragging"));for(let n=0;n<i.length;n++){let r=i[n].getBoundingClientRect(),o=e?r.left+r.width/2:r.top+r.height/2;if(t<o)return n}return i.length}#L(t){this.#x();let e=this.orientation==="horizontal",i=this.draggableChildren.filter(n=>!n.hasAttribute("data-dragging"));for(let n=0;n<i.length;n++){let r=i[n].getBoundingClientRect(),o=e?r.left+r.width/2:r.top+r.height/2;if(t<o){i[n].setAttribute("data-drop-target","before");return}}i.length>0&&i[i.length-1].setAttribute("data-drop-target","after")}#x(){for(let t of this.querySelectorAll("[data-drop-target]"))t.removeAttribute("data-drop-target")}static#E=null};g("drag-surface",Mi);var Mo=`
|
|
408
|
+
:host {
|
|
409
|
+
display: block;
|
|
410
|
+
position: relative;
|
|
411
|
+
overflow: hidden;
|
|
412
|
+
height: var(--geo-map-height, 300px);
|
|
413
|
+
border-radius: var(--geo-map-border-radius, 0.5rem);
|
|
414
|
+
background: linear-gradient(135deg, #e8e8e8 0%, #d0d0d0 100%);
|
|
415
|
+
color-scheme: light dark;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
[part="container"] {
|
|
419
|
+
position: relative;
|
|
420
|
+
width: 100%;
|
|
421
|
+
height: 100%;
|
|
422
|
+
overflow: hidden;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/* Tile grid */
|
|
426
|
+
[part="tiles"] {
|
|
427
|
+
position: absolute;
|
|
428
|
+
display: grid;
|
|
429
|
+
grid-template-columns: repeat(3, 256px);
|
|
430
|
+
grid-template-rows: repeat(3, 256px);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
[part="tiles"] img {
|
|
434
|
+
display: block;
|
|
435
|
+
width: 256px;
|
|
436
|
+
height: 256px;
|
|
437
|
+
-webkit-user-drag: none;
|
|
438
|
+
user-select: none;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/* Marker */
|
|
442
|
+
[part="marker"] {
|
|
443
|
+
position: absolute;
|
|
444
|
+
top: 50%;
|
|
445
|
+
left: 50%;
|
|
446
|
+
width: var(--geo-map-marker-size, 32px);
|
|
447
|
+
height: var(--geo-map-marker-size, 32px);
|
|
448
|
+
transform: translate(-50%, -100%);
|
|
449
|
+
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
|
|
450
|
+
pointer-events: none;
|
|
451
|
+
z-index: 2;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
/* Caption (slot projection) */
|
|
455
|
+
[part="caption"] {
|
|
456
|
+
position: absolute;
|
|
457
|
+
bottom: 0;
|
|
458
|
+
left: 0;
|
|
459
|
+
right: 0;
|
|
460
|
+
background: var(--geo-map-caption-bg, rgba(255, 255, 255, 0.9));
|
|
461
|
+
padding: var(--geo-map-caption-padding, 0.5rem 0.75rem);
|
|
462
|
+
font-size: 0.875rem;
|
|
463
|
+
z-index: 3;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
[part="caption"]:empty,
|
|
467
|
+
[part="caption"]:not(:has(*)) {
|
|
468
|
+
display: none;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
@media (prefers-color-scheme: dark) {
|
|
472
|
+
[part="caption"] {
|
|
473
|
+
background: var(--geo-map-caption-bg, rgba(0, 0, 0, 0.75));
|
|
474
|
+
color: #e0e0e0;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
/* Attribution */
|
|
479
|
+
[part="attribution"] {
|
|
480
|
+
position: absolute;
|
|
481
|
+
bottom: 0;
|
|
482
|
+
right: 0;
|
|
483
|
+
padding: 2px 5px;
|
|
484
|
+
font-size: var(--geo-map-attribution-font-size, 0.625rem);
|
|
485
|
+
background: rgba(255, 255, 255, 0.7);
|
|
486
|
+
color: #333;
|
|
487
|
+
z-index: 4;
|
|
488
|
+
line-height: 1.4;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
[part="attribution"] a {
|
|
492
|
+
color: inherit;
|
|
493
|
+
text-decoration: none;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
[part="attribution"] a:hover {
|
|
497
|
+
text-decoration: underline;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/* When caption is present, shift attribution above it */
|
|
501
|
+
:host([data-has-caption]) [part="attribution"] {
|
|
502
|
+
bottom: auto;
|
|
503
|
+
top: 0;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
/* Overlay \u2014 full surface, appears on hover/focus */
|
|
507
|
+
[part="overlay"] {
|
|
508
|
+
position: absolute;
|
|
509
|
+
inset: 0;
|
|
510
|
+
z-index: 5;
|
|
511
|
+
display: flex;
|
|
512
|
+
align-items: center;
|
|
513
|
+
justify-content: center;
|
|
514
|
+
background: var(--geo-map-overlay-bg, rgba(0, 0, 0, 0.35));
|
|
515
|
+
color: var(--geo-map-overlay-color, #fff);
|
|
516
|
+
opacity: 0;
|
|
517
|
+
transition: opacity 0.2s ease;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
[part="overlay"]:hover,
|
|
521
|
+
[part="overlay"]:focus-within {
|
|
522
|
+
opacity: 1;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
/* Activate button inside overlay */
|
|
526
|
+
[part="activate"] {
|
|
527
|
+
background: none;
|
|
528
|
+
border: none;
|
|
529
|
+
color: inherit;
|
|
530
|
+
font: inherit;
|
|
531
|
+
font-size: 0.875rem;
|
|
532
|
+
font-weight: 500;
|
|
533
|
+
cursor: pointer;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
[part="activate"]:focus-visible {
|
|
537
|
+
outline: 2px solid #fff;
|
|
538
|
+
outline-offset: 4px;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
/* Interactive mode \u2014 tiles become absolutely positioned for panning */
|
|
542
|
+
:host([data-interactive-active]) [part="tiles"] {
|
|
543
|
+
display: block;
|
|
544
|
+
cursor: grab;
|
|
545
|
+
touch-action: none;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
:host([data-interactive-active]) [part="tiles"] img {
|
|
549
|
+
position: absolute;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
:host([data-interactive-active]) [part="tiles"][data-dragging] {
|
|
553
|
+
cursor: grabbing;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
:host([data-interactive-active]) [part="overlay"] {
|
|
557
|
+
display: none;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/* Static-only \u2014 hide overlay entirely */
|
|
561
|
+
:host([static-only]) [part="overlay"] {
|
|
562
|
+
display: none;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
/* Reduced motion \u2014 disable transitions */
|
|
566
|
+
@media (prefers-reduced-motion: reduce) {
|
|
567
|
+
[part="overlay"] {
|
|
568
|
+
transition: none;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
/* Error state */
|
|
573
|
+
[part="container"][data-state="error"] [part="tiles"] {
|
|
574
|
+
display: none;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
[part="container"][data-state="error"]::after {
|
|
578
|
+
content: attr(data-error);
|
|
579
|
+
position: absolute;
|
|
580
|
+
inset: 0;
|
|
581
|
+
display: flex;
|
|
582
|
+
align-items: center;
|
|
583
|
+
justify-content: center;
|
|
584
|
+
color: #666;
|
|
585
|
+
font-size: 0.875rem;
|
|
586
|
+
text-align: center;
|
|
587
|
+
padding: 1rem;
|
|
588
|
+
}
|
|
589
|
+
`;$i();function Dh(s){return`<svg viewBox="0 0 24 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
590
|
+
<path d="M12 0C5.373 0 0 5.373 0 12c0 9 12 24 12 24s12-15 12-24C24 5.373 18.627 0 12 0z" fill="${s}"/>
|
|
591
|
+
<circle cx="12" cy="12" r="5" fill="white" opacity="0.9"/>
|
|
592
|
+
</svg>`}var qi=class extends b{static get observedAttributes(){return["lat","lng","zoom","marker","marker-color","provider","interactive","static-only","src","place"]}#t=null;#e=!1;constructor(){super(),this.attachShadow({mode:"open"})}get lat(){return parseFloat(this.getAttribute("lat")??"")}get lng(){return parseFloat(this.getAttribute("lng")??"")}get zoom(){let t=parseInt(this.getAttribute("zoom")??"",10);return t>=1&&t<=19?t:15}get showMarker(){return this.getAttribute("marker")!=="false"}get markerColor(){return this.getAttribute("marker-color")||"#e74c3c"}get provider(){return this.getAttribute("provider")||"osm"}get interactive(){let t=this.getAttribute("interactive");return t==="eager"||t==="none"?t:"click"}get staticOnly(){return this.hasAttribute("static-only")}#s(){let t=parseFloat(this.getAttribute("lat")??""),e=parseFloat(this.getAttribute("lng")??"");if(!isNaN(t)&&!isNaN(e))return{lat:t,lng:e};let i=this.getAttribute("src");if(i){let a=this.#n(i);if(a)return a}let n=this.querySelector("address[data-lat][data-lng]");if(n){let a=parseFloat(n.dataset.lat??""),l=parseFloat(n.dataset.lng??"");if(!isNaN(a)&&!isNaN(l))return{lat:a,lng:l}}let r=this.getAttribute("place");if(r){let a=this.#i(r);if(a)return a}let o=document.querySelector('meta[name="geo.position"]');if(o){let l=(o.getAttribute("content")||"").split(";");if(l.length===2){let c=parseFloat(l[0]),h=parseFloat(l[1]);if(!isNaN(c)&&!isNaN(h))return{lat:c,lng:h}}}return null}#n(t){let e=document.getElementById(t);if(!e)return null;if(e.tagName==="ADDRESS"&&e.dataset.lat&&e.dataset.lng){let i=parseFloat(e.dataset.lat),n=parseFloat(e.dataset.lng);if(!isNaN(i)&&!isNaN(n))return{lat:i,lng:n}}return e.tagName==="SCRIPT"&&e.type==="application/ld+json"?this.#r(e):null}#i(t){let e=document.querySelectorAll('script[type="application/ld+json"]');for(let i of e)try{let n=JSON.parse(i.textContent);if(n.name===t){let r=n.geo;if(r){let o=parseFloat(r.latitude),a=parseFloat(r.longitude);if(!isNaN(o)&&!isNaN(a))return{lat:o,lng:a}}}}catch{}return null}#r(t){try{let i=JSON.parse(t.textContent).geo;if(i){let n=parseFloat(i.latitude),r=parseFloat(i.longitude);if(!isNaN(n)&&!isNaN(r))return{lat:n,lng:r}}}catch{}return null}setup(){this.render(),this.loadTiles(),this.#o()}attributeChangedCallback(t,e,i){e!==i&&this.isConnected&&(this.#t&&this.#c(),this.render(),this.loadTiles(),this.#o())}teardown(){this.#t&&(this.#t.destroy(),this.#t=null)}render(){let t=this.#s(),e=t?.lat??NaN,i=t?.lng??NaN,n=!isNaN(e)&&!isNaN(i);this.children.length>0?this.setAttribute("data-has-caption",""):this.removeAttribute("data-has-caption");let o=n?`Map of ${e.toFixed(4)}, ${i.toFixed(4)}`:"Map",a=this.showMarker&&n?`<div part="marker" aria-hidden="true">${Dh(this.markerColor)}</div>`:"",c=n&&this.interactive!=="none"&&!this.staticOnly?'<div part="overlay"><button part="activate" aria-label="Activate interactive map" tabindex="0">Click to interact</button></div>':"";this.shadowRoot.innerHTML=`
|
|
593
|
+
<style>${Mo}</style>
|
|
594
|
+
<div part="container">
|
|
595
|
+
<div part="tiles" role="img" aria-label="${o}"></div>
|
|
596
|
+
${a}
|
|
597
|
+
${c}
|
|
598
|
+
<div part="caption"><slot></slot></div>
|
|
599
|
+
<div part="attribution">
|
|
600
|
+
<a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener">© OpenStreetMap</a>
|
|
601
|
+
</div>
|
|
602
|
+
</div>
|
|
603
|
+
`}loadTiles(){let t=this.#s(),e=t?.lat??NaN,i=t?.lng??NaN;if(isNaN(e)||isNaN(i)){this.handleError("Missing or invalid lat/lng coordinates");return}let n=this.zoom,r=this.provider,{tileX:o,tileY:a,pixelX:l,pixelY:c}=$o(e,i,n),h=this.shadowRoot.querySelector('[part="tiles"]');if(!h)return;h.innerHTML="";let u=this,d=u.offsetWidth||400,p=u.offsetHeight||300,m=Math.round(d/2-256-l),f=Math.round(p/2-256-c);h.style.transform=`translate(${m}px, ${f}px)`;let v=0,y=0,w=9;for(let S=-1;S<=1;S++)for(let T=-1;T<=1;T++){let P=o+T,M=a+S,C=Le(r,n,P,M),N=document.createElement("img");N.src=C,N.alt="",N.loading="lazy",N.draggable=!1,N.addEventListener("load",()=>{v++,v+y===w&&this.dispatchEvent(new CustomEvent("geo-map:ready",{bubbles:!0,detail:{lat:e,lng:i,zoom:n}}))}),N.addEventListener("error",()=>{y++,y===w?this.handleError("Failed to load map tiles"):v+y===w&&this.dispatchEvent(new CustomEvent("geo-map:ready",{bubbles:!0,detail:{lat:e,lng:i,zoom:n}}))}),h.appendChild(N)}}#o(){let t=this.shadowRoot.querySelector('[part="overlay"]');if(!t)return;let e=t.querySelector('[part="activate"]');t.addEventListener("mouseenter",()=>this.#a(),{once:!0}),e&&e.addEventListener("focus",()=>this.#a(),{once:!0}),e&&e.addEventListener("click",()=>this.#l()),this.interactive==="eager"&&requestAnimationFrame(()=>this.#l())}#a(){if(this.#e)return;this.#e=!0;let t=this.provider,e;t==="carto-light"||t==="carto-dark"?e="https://basemaps.cartocdn.com":e="https://tile.openstreetmap.org";let i=document.createElement("link");i.rel="preconnect",i.href=e,i.crossOrigin="",document.head.appendChild(i)}async#l(){if(this.#t)return;let t=this.#s(),e=t?.lat??NaN,i=t?.lng??NaN;if(isNaN(e)||isNaN(i))return;let{MapInteraction:n}=await Promise.resolve().then(()=>(Do(),qo));this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.focus(),this.setAttribute("data-interactive-active",""),this.#t=new n({shadow:this.shadowRoot,host:this,lat:e,lng:i,zoom:this.zoom,provider:this.provider,onDeactivate:()=>this.#c()}),this.dispatchEvent(new CustomEvent("geo-map:activate",{bubbles:!0,detail:{lat:e,lng:i,zoom:this.zoom}}))}#c(){this.#t&&(this.#t.destroy(),this.#t=null,this.removeAttribute("data-interactive-active"),this.render(),this.loadTiles(),this.#o())}handleError(t){let e=this.shadowRoot.querySelector('[part="container"]');e&&(e.setAttribute("data-state","error"),e.setAttribute("data-error",t)),this.dispatchEvent(new CustomEvent("geo-map:error",{bubbles:!0,detail:{message:t}}))}};g("geo-map",qi);var Di=class extends b{static observedAttributes=["colors","names","layout","show-values","show-names","size"];setup(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}#t(){let t=this.getAttribute("colors")||"",e=this.getAttribute("names")||"",i=this.getAttribute("layout")||"inline",n=this.getAttribute("size")||"md",r=this.hasAttribute("show-values"),o=this.hasAttribute("show-names")||e.length>0,a=this.#s(t),l=e?e.split(",").map(p=>p.trim()):[],h={sm:48,md:80,lg:120}[n]||80,u="display:flex;flex-wrap:wrap;gap:var(--size-xs,0.5rem)";i==="grid"?u=`display:grid;grid-template-columns:repeat(auto-fill,minmax(${h}px,1fr));gap:var(--size-xs,0.5rem)`:i==="list"&&(u="display:flex;flex-direction:column;gap:var(--size-xs,0.5rem)");let d=a.map((p,m)=>{let f=l[m]||"",v=this.#n(p),y=i==="list"?"display:flex;flex-direction:row;align-items:center;gap:0.75rem":`display:flex;flex-direction:column;align-items:center;gap:0.25rem;max-inline-size:${h}px`,w=i==="list"?36:h;return`<div class="swatch-wrap" role="listitem" style="${y}">
|
|
604
|
+
<button type="button" class="color-box" data-index="${m}"
|
|
605
|
+
style="background:${p};color:${v};width:${w}px;height:${w}px;border:1px solid oklch(0% 0 0/0.15);border-radius:var(--radius-s,0.25rem);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;font-family:var(--font-mono,monospace);position:relative;overflow:hidden;flex-shrink:0"
|
|
606
|
+
title="Click to copy${f?": "+f:""}"
|
|
607
|
+
aria-label="${f||"Color "+(m+1)}: ${p}">
|
|
608
|
+
<span class="color-value" style="font-size:0.625rem;line-height:1.2;opacity:${r?"1":"0"};text-align:center;padding:2px 4px;word-break:break-all;transition:opacity 0.15s ease">${this.#e(p)}</span>
|
|
609
|
+
</button>
|
|
610
|
+
${o&&f?`<span style="font-size:var(--font-size-xs,0.75rem);color:var(--color-text-muted,#666);text-align:center;max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">${f}</span>`:""}
|
|
611
|
+
</div>`}).join("");this.innerHTML=`<div class="palette ${i}" role="list" aria-label="Color palette" style="${u}">${d}</div>`,this.querySelectorAll(".color-box").forEach(p=>{r||(p.addEventListener("pointerenter",()=>{let m=p.querySelector(".color-value");m&&(m.style.opacity="1")}),p.addEventListener("pointerleave",()=>{let m=p.querySelector(".color-value");m&&(m.style.opacity="0")})),p.addEventListener("click",()=>{let m=Number(p.dataset.index),f=a[m],v=l[m]||"";navigator.clipboard?.writeText(f),this.dispatchEvent(new CustomEvent("color-palette:select",{bubbles:!0,detail:{color:f,name:v,index:m}})),p.style.outline="3px solid currentColor",p.style.outlineOffset="2px",setTimeout(()=>{p.style.outline="",p.style.outlineOffset=""},600)})})}#e(t){if(t.startsWith("#"))return t;let e=t.match(/oklch\(\s*([\d.]+)%?\s+([\d.]+)\s+([\d.]+)/);return e?`${e[1]}% .${e[2].replace("0.","")}`:t.length>12?t.slice(0,12)+"\u2026":t}#s(t){if(!t)return[];let e=[],i=0,n="";for(let r of t)r==="("?i++:r===")"&&i--,r===","&&i===0?(e.push(n.trim()),n=""):n+=r;return n.trim()&&e.push(n.trim()),e}#n(t){let e=t.match(/oklch\(\s*([\d.]+)%?\s/);if(e){let i=parseFloat(e[1]);return(i>1?i/100:i)>.6?"#000":"#fff"}if(t.startsWith("#")){let i=t.replace("#",""),n=parseInt(i.substring(0,2),16)/255,r=parseInt(i.substring(2,4),16)/255,o=parseInt(i.substring(4,6),16)/255;return .2126*n+.7152*r+.0722*o>.4?"#000":"#fff"}return"#000"}};g("color-palette",Di);function _h(s,t,e){t/=100,e/=100;let i=o=>(o+s/30)%12,n=t*Math.min(e,1-e),r=o=>e-n*Math.max(-1,Math.min(i(o)-3,9-i(o),1));return{r:Math.round(r(0)*255),g:Math.round(r(8)*255),b:Math.round(r(4)*255)}}function Ih(s,t,e){s/=255,t/=255,e/=255;let i=Math.max(s,t,e),n=Math.min(s,t,e),r=(i+n)/2,o=0,a=0;if(i!==n){let l=i-n;switch(a=r>.5?l/(2-i-n):l/(i+n),i){case s:o=((t-e)/l+(t<e?6:0))/6;break;case t:o=((e-s)/l+2)/6;break;case e:o=((s-t)/l+4)/6;break}}return{h:Math.round(o*360),s:Math.round(a*100),l:Math.round(r*100)}}function _i(s){s=s.replace(/^#/,""),s.length===3&&(s=s[0]+s[0]+s[1]+s[1]+s[2]+s[2]);let t=parseInt(s,16);return{r:t>>16&255,g:t>>8&255,b:t&255}}function Bh(s,t,e){return"#"+[s,t,e].map(i=>Math.max(0,Math.min(255,Math.round(i))).toString(16).padStart(2,"0")).join("")}function _o(s){let{r:t,g:e,b:i}=_i(s);return Ih(t,e,i)}function I(s,t,e){let{r:i,g:n,b:r}=_h(s,t,e);return Bh(i,n,r)}var J=s=>(s%360+360)%360;function Rh(s,t,e){return{colors:[I(s,t,e),I(J(s+180),t,e)],names:["Base","Complement"]}}function Oh(s,t,e){return{colors:[I(J(s-30),t,e),I(s,t,e),I(J(s+30),t,e)],names:["Analog A","Base","Analog B"]}}function Ph(s,t,e){return{colors:[I(s,t,e),I(J(s+120),t,e),I(J(s+240),t,e)],names:["Base","Triad A","Triad B"]}}function Fh(s,t,e){return{colors:[I(s,t,e),I(J(s+150),t,e),I(J(s+210),t,e)],names:["Base","Split A","Split B"]}}function jh(s,t,e){return{colors:[I(s,t,e),I(J(s+90),t,e),I(J(s+180),t,e),I(J(s+270),t,e)],names:["Base","Tetrad A","Tetrad B","Tetrad C"]}}var zh=[{label:"50",l:96},{label:"100",l:90},{label:"200",l:80},{label:"300",l:70},{label:"400",l:60},{label:"500",l:50},{label:"600",l:40},{label:"700",l:30},{label:"800",l:22},{label:"900",l:15},{label:"950",l:10}];function Hh(s,t,e){let i=[],n=[];for(let r of zh){let o=r.l>85||r.l<20?Math.max(t*.6,5):t;i.push(I(s,Math.round(o),r.l)),n.push(r.label)}return{colors:i,names:n}}var Io={complementary:Rh,analogous:Oh,triadic:Ph,"split-complementary":Fh,tetradic:jh,monochromatic:Hh};function Bo(s,t){let{h:e,s:i,l:n}=_o(s);return(Io[t]||Io.complementary)(e,i,n)}var Ii=class extends b{static observedAttributes=["seed","harmony","include-seed","show-export","layout","size","show-values","show-names"];#t=null;#e="";#s=[];#n=[];setup(){this.#t=this.querySelector("color-picker")||this.querySelector('input[type="color"]'),this.#e=this.#i(),this.#e&&(this.#r(),this.#a(),this.#d())}attributeChangedCallback(){this.isConnected&&this.hasAttribute("data-upgraded")&&(this.#e=this.#i(),this.#e&&this.#r())}#i(){if(this.#t){let t=this.#t;if(t.tagName==="COLOR-PICKER"){let e=t.value;return e&&e!=="#000000"?e:t.querySelector('input[type="color"]')?.value||e||""}return t.value||""}return this.getAttribute("seed")||""}#r(){let t=this.getAttribute("harmony")||"complementary",e=this.getAttribute("layout")||"inline",i=this.getAttribute("size")||"md",n=this.hasAttribute("show-values"),r=this.hasAttribute("show-names"),o=this.hasAttribute("show-export"),{colors:a,names:l}=Bo(this.#e,t);this.#s=a,this.#n=l;let h={sm:48,md:80,lg:120}[i]||80,u="display:flex;flex-wrap:wrap;gap:var(--size-xs,0.5rem)";e==="grid"?u=`display:grid;grid-template-columns:repeat(auto-fill,minmax(${h}px,1fr));gap:var(--size-xs,0.5rem)`:e==="list"&&(u="display:flex;flex-direction:column;gap:var(--size-xs,0.5rem)");let d=a.map((v,y)=>{let w=l[y]||"",S=this.#c(v),T=e==="list"?"display:flex;flex-direction:row;align-items:center;gap:0.75rem":`display:flex;flex-direction:column;align-items:center;gap:0.25rem;max-inline-size:${h}px`,P=e==="list"?36:h,M=v.length>12?v.slice(0,12)+"\u2026":v;return`<div class="swatch-wrap" role="listitem" style="${T}">
|
|
612
|
+
<button type="button" class="color-box" data-index="${y}"
|
|
613
|
+
style="background:${v};color:${S};width:${P}px;height:${P}px;border:1px solid oklch(0% 0 0/0.15);border-radius:var(--radius-s,0.25rem);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;font-family:var(--font-mono,monospace);position:relative;overflow:hidden;flex-shrink:0"
|
|
614
|
+
title="Click to copy${w?": "+w:""}"
|
|
615
|
+
aria-label="${w||"Color "+(y+1)}: ${v}">
|
|
616
|
+
<span class="color-value" style="font-size:0.625rem;line-height:1.2;opacity:${n?"1":"0"};text-align:center;padding:2px 4px;word-break:break-all;transition:opacity 0.15s ease">${M}</span>
|
|
617
|
+
</button>
|
|
618
|
+
${r&&w?`<span style="font-size:var(--font-size-xs,0.75rem);color:var(--color-text-muted,#666);text-align:center;max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">${w}</span>`:""}
|
|
619
|
+
</div>`}).join(""),p="";o&&(p=`<div class="pg-export" role="toolbar" aria-label="Export palette" style="display:flex;gap:0.5rem;margin-block-start:var(--size-xs,0.5rem)">
|
|
620
|
+
<button type="button" class="pg-copy-hex" style="padding:0.25rem 0.75rem;border:1px solid var(--color-border,#ccc);border-radius:var(--radius-s,0.25rem);background:var(--color-surface,#fff);color:var(--color-text,#333);cursor:pointer;font-size:var(--font-size-xs,0.75rem);font-family:inherit">Copy Hex</button>
|
|
621
|
+
<button type="button" class="pg-copy-css" style="padding:0.25rem 0.75rem;border:1px solid var(--color-border,#ccc);border-radius:var(--radius-s,0.25rem);background:var(--color-surface,#fff);color:var(--color-text,#333);cursor:pointer;font-size:var(--font-size-xs,0.75rem);font-family:inherit">Copy CSS</button>
|
|
622
|
+
</div>`);let m=this.#t;for(let v of[...this.children])v!==m&&(v.classList?.contains("pg-seed-label")||v.remove());if(m&&!this.querySelector(".pg-seed-label")){let v=document.createElement("span");v.className="pg-seed-label",v.textContent="Seed Color",m.before(v)}let f=document.createElement("div");if(f.className=`palette ${e}`,f.setAttribute("role","list"),f.setAttribute("aria-label","Color palette"),f.style.cssText=u,f.innerHTML=d,m?m.after(f):this.prepend(f),p){let v=document.createElement("div");v.innerHTML=p,this.append(v.firstElementChild)}this.#o(f,a,l,n),o&&this.#l()}#o(t,e,i,n){t.querySelectorAll(".color-box").forEach(r=>{n||(r.addEventListener("pointerenter",()=>{let o=r.querySelector(".color-value");o&&(o.style.opacity="1")}),r.addEventListener("pointerleave",()=>{let o=r.querySelector(".color-value");o&&(o.style.opacity="0")})),r.addEventListener("click",()=>{let o=Number(r.dataset.index),a=e[o],l=i[o]||"";navigator.clipboard?.writeText(a),this.dispatchEvent(new CustomEvent("color-palette:select",{bubbles:!0,detail:{color:a,name:l,index:o}})),r.style.outline="3px solid currentColor",r.style.outlineOffset="2px",setTimeout(()=>{r.style.outline="",r.style.outlineOffset=""},600)})})}#a(){let t=this.#t;t&&(t.tagName==="COLOR-PICKER"?this.listen(t,"color-picker:change",e=>{this.#e=e.detail.hex,this.#r(),this.#d()}):this.listen(t,"input",()=>{this.#e=t.value,this.#r(),this.#d()}))}#l(){let t=this.querySelector(".pg-copy-hex"),e=this.querySelector(".pg-copy-css");t&&t.addEventListener("click",()=>{navigator.clipboard?.writeText(this.#s.join(", ")),this.#p(t,"Copy Hex")}),e&&e.addEventListener("click",()=>{let i=this.getAttribute("harmony")||"complementary",n=this.#h(i);navigator.clipboard?.writeText(n),this.#p(e,"Copy CSS")})}#c(t){if(t.startsWith("#")){let{r:e,g:i,b:n}=_i(t);return .2126*(e/255)+.7152*(i/255)+.0722*(n/255)>.4?"#000":"#fff"}return"#000"}#h(t){return t==="monochromatic"?this.#s.map((e,i)=>`--color-seed-${this.#n[i]||i+1}: ${e};`).join(`
|
|
623
|
+
`):this.#s.map((e,i)=>`--palette-${this.#n[i]?this.#n[i].toLowerCase().replace(/\s+/g,"-"):`${i+1}`}: ${e};`).join(`
|
|
624
|
+
`)}#p(t,e){t.textContent="Copied!",setTimeout(()=>{t.textContent=e},1500)}#d(){let t=this.getAttribute("harmony")||"complementary";this.dispatchEvent(new CustomEvent("palette-generator:generate",{bubbles:!0,detail:{colors:[...this.#s],harmony:t,seed:this.#e}}))}};g("palette-generator",Ii);var Bi=class extends b{static observedAttributes=["font-family","label","sample","show-scale","show-weights","show-characters","weights"];setup(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}#t(){let t=this.getAttribute("font-family")||"system-ui",e=this.getAttribute("label")||t.replace(/['"]/g,"").split(",")[0],i=this.getAttribute("sample")||"The quick brown fox jumps over the lazy dog",n=this.hasAttribute("show-scale"),r=this.hasAttribute("show-weights"),o=this.hasAttribute("show-characters"),l=(this.getAttribute("weights")||"300,400,500,600,700").split(",").map(h=>h.trim()),c="";if(c+=`<div class="specimen-header" style="font-family:${t}">
|
|
625
|
+
<span class="specimen-label">${e}</span>
|
|
626
|
+
<p class="specimen-sample" contenteditable="plaintext-only" spellcheck="false">${i}</p>
|
|
627
|
+
</div>`,o&&(c+=`<div class="specimen-chars" style="font-family:${t}">
|
|
628
|
+
<div class="char-row"><span class="char-label">Upper</span>${"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").map(h=>`<span>${h}</span>`).join("")}</div>
|
|
629
|
+
<div class="char-row"><span class="char-label">Lower</span>${"abcdefghijklmnopqrstuvwxyz".split("").map(h=>`<span>${h}</span>`).join("")}</div>
|
|
630
|
+
<div class="char-row"><span class="char-label">Digits</span>${"0123456789".split("").map(h=>`<span>${h}</span>`).join("")}</div>
|
|
631
|
+
<div class="char-row"><span class="char-label">Punct</span>${"!@#$%^&*()_+-=[]{}|;:,.<>?".split("").map(h=>`<span>${h==="<"?"<":h===">"?">":h==="&"?"&":h}</span>`).join("")}</div>
|
|
632
|
+
</div>`),r){c+='<div class="specimen-weights">';for(let h of l)c+=`<div class="weight-sample" style="font-family:${t};font-weight:${h}">
|
|
633
|
+
<span class="weight-label">${h}</span>
|
|
634
|
+
<span class="weight-text">Aa</span>
|
|
635
|
+
</div>`;c+="</div>"}if(n){let h=[{name:"xs",rem:.75},{name:"sm",rem:.875},{name:"md",rem:1},{name:"lg",rem:1.125},{name:"xl",rem:1.25},{name:"2xl",rem:1.5},{name:"3xl",rem:1.875},{name:"4xl",rem:2.25},{name:"5xl",rem:3}];c+='<div class="specimen-scale">';for(let u of h)c+=`<div class="scale-step" style="font-family:${t};font-size:${u.rem}rem">
|
|
636
|
+
<span class="scale-label">${u.name}</span>
|
|
637
|
+
<span class="scale-text">${i.substring(0,30)}</span>
|
|
638
|
+
</div>`;c+="</div>"}this.innerHTML=c}};g("type-specimen",Bi);var Ri=class extends b{static observedAttributes=["tokens","prefix","show-values","label"];setup(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}#t(){let t=this.getAttribute("tokens")||"3xs,2xs,xs,s,m,l,xl,2xl,3xl",e=this.getAttribute("prefix")||"--size-",i=this.getAttribute("show-values")!=="false",n=this.getAttribute("label")||"",r=t.split(",").map(a=>a.trim()),o="";n&&(o+=`<div style="font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-muted,#666);margin-block-end:0.75rem;font-family:var(--font-sans,system-ui)">${n}</div>`),o+=`<div role="list" aria-label="${n||"Spacing scale"}" style="display:flex;flex-direction:column;gap:0.25rem">`;for(let a of r){let l=`${e}${a}`;o+=`<div role="listitem" style="display:grid;grid-template-columns:3rem 1fr auto;align-items:center;gap:0.75rem;min-block-size:1.75rem">
|
|
639
|
+
<span style="font-family:var(--font-mono,monospace);font-size:0.875rem;color:var(--color-text-muted,#666);text-align:end">${a}</span>
|
|
640
|
+
<div class="scale-bar" style="display:block;block-size:var(--size-m,1rem);min-inline-size:2px;inline-size:var(${l});background:var(--color-interactive,oklch(55% 0.2 260));border-radius:var(--radius-s,0.25rem)" aria-hidden="true"></div>
|
|
641
|
+
${i?'<span class="scale-value" style="font-family:var(--font-mono,monospace);font-size:0.75rem;color:var(--color-text-muted,#666);font-variant-numeric:tabular-nums;min-inline-size:3.5rem;text-align:end"></span>':""}
|
|
642
|
+
</div>`}o+="</div>",this.innerHTML=o,i&&requestAnimationFrame(()=>{this.querySelectorAll(".scale-bar").forEach(a=>{let l=a.getBoundingClientRect().width,c=a.nextElementSibling;c&&(c.textContent=`${Math.round(l*100)/100}px`)})})}};g("spacing-specimen",Ri);var Ne=null;async function Xh(){return Ne||(Ne=await Promise.resolve().then(()=>(Pi(),Oi)),Ne)}var Fi=8,Jh=150,Po="vb-emoji-recent",ji=class extends b{#t;#e;#s;#n;#i;#r=!1;#o=[];#a=-1;#l=null;#c="";#h=null;#p=!1;#d=null;#u=null;async setup(){this.#h=await Xh(),this.#p||(this.#m(),this.#p=!0),this.#t&&this.listen(this.#t,"click",this.#y),this.listen(document,"click",this.#A),this.listen(document,"keydown",this.#k)}teardown(){this.#l&&clearTimeout(this.#l)}#m(){this.#t=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button"),this.#t||(this.#t=document.createElement("button"),this.#t.type="button",this.#t.textContent="\u{1F600}",this.#t.setAttribute("data-trigger",""),this.prepend(this.#t)),this.#t.setAttribute("aria-haspopup","dialog"),this.#t.setAttribute("aria-expanded","false"),this.#t.setAttribute("aria-label",this.#t.getAttribute("aria-label")||"Open emoji picker"),this.#b()}#b(){this.#e=document.createElement("div"),this.#e.classList.add("picker"),this.#e.setAttribute("role","dialog"),this.#e.setAttribute("aria-label","Emoji picker"),this.#e.hidden=!0,this.#s=document.createElement("input"),this.#s.type="search",this.#s.placeholder="Search emoji\u2026",this.#s.setAttribute("aria-label","Search emoji"),this.#s.addEventListener("input",this.#L),this.#s.addEventListener("keydown",this.#x),this.#e.appendChild(this.#s),this.#i=document.createElement("nav"),this.#i.classList.add("categories"),this.#i.setAttribute("role","tablist"),this.#i.setAttribute("aria-label","Emoji categories");for(let t of this.#h.EMOJI_GROUPS){let e=document.createElement("button");e.type="button",e.setAttribute("role","tab"),e.setAttribute("aria-selected",t===this.#h.EMOJI_GROUPS[0]?"true":"false"),e.setAttribute("data-group",t),e.setAttribute("aria-label",this.#h.EMOJI_GROUP_LABELS[t]),e.title=this.#h.EMOJI_GROUP_LABELS[t],e.textContent=this.#h.EMOJI_GROUP_ICONS[t],e.addEventListener("click",this.#E),this.#i.appendChild(e)}this.#e.appendChild(this.#i),this.#n=document.createElement("div"),this.#n.classList.add("grid"),this.#n.setAttribute("role","grid"),this.#n.setAttribute("aria-label","Emoji"),this.#n.addEventListener("keydown",this.#T),this.#e.appendChild(this.#n),this.appendChild(this.#e),this.#g()}#g(t=null){this.#n.innerHTML="",this.#o=[],this.#a=-1;let e=this.#D();if(!this.#c&&e.length>0){let n=document.createElement("div");n.classList.add("group-label"),n.textContent="Recently Used",n.setAttribute("data-group-heading","recent"),this.#n.appendChild(n);for(let r of e){let o=this.#h.EMOJI_MAP.get(r);o&&this.#f(o)}}let i=t||null;if(i)if(i.length===0){let n=document.createElement("div");n.classList.add("no-results"),n.textContent="No emoji found",this.#n.appendChild(n)}else for(let n of i)this.#f(n);else for(let n of this.#h.EMOJI_GROUPS){let r=document.createElement("div");r.classList.add("group-label"),r.textContent=this.#h.EMOJI_GROUP_LABELS[n],r.setAttribute("data-group-heading",n),this.#n.appendChild(r);let o=this.#h.getByGroup(n);for(let a of o)this.#f(a)}}#f(t){let e=document.createElement("button");e.type="button",e.setAttribute("role","gridcell"),e.setAttribute("tabindex","-1"),e.setAttribute("data-shortcode",t.shortcode),e.title=`${t.name} :${t.shortcode}:`,e.textContent=t.emoji,e.addEventListener("click",this.#S),this.#n.appendChild(e),this.#o.push(e)}#v(){let t=this.getAttribute("for");if(!t)return;let e=document.getElementById(t);if(e){if(e.tagName==="INPUT"||e.tagName==="TEXTAREA"){let i=e;this.#d={start:i.selectionStart??i.value.length,end:i.selectionEnd??i.value.length},this.#u=null}else if(e.isContentEditable){let i=window.getSelection();i&&i.rangeCount>0&&(this.#u=i.getRangeAt(0).cloneRange()),this.#d=null}}}#y=t=>{t.stopPropagation(),this.toggle()};#A=t=>{this.#r&&!this.contains(t.target)&&this.close()};#k=t=>{t.key==="Escape"&&this.#r&&(t.preventDefault(),this.close(),this.#t?.focus())};#L=()=>{this.#l&&clearTimeout(this.#l),this.#l=setTimeout(()=>{if(this.#c=this.#s.value.trim(),this.#c){let t=this.#h.searchEmoji(this.#c);this.#g(t)}else this.#g()},Jh)};#x=t=>{t.key==="ArrowDown"&&(t.preventDefault(),this.#o.length>0&&this.#w(0))};#E=t=>{let e=t.currentTarget.getAttribute("data-group");for(let n of this.#i.querySelectorAll('[role="tab"]'))n.setAttribute("aria-selected",n===t.currentTarget?"true":"false");this.#c&&(this.#s.value="",this.#c="",this.#g());let i=this.#n.querySelector(`[data-group-heading="${e}"]`);i&&i.scrollIntoView({block:"start",behavior:"smooth"})};#T=t=>{let e=this.#o.length;if(e!==0)switch(t.key){case"ArrowRight":t.preventDefault(),this.#w(this.#a+1);break;case"ArrowLeft":t.preventDefault(),this.#w(this.#a-1);break;case"ArrowDown":t.preventDefault(),this.#w(this.#a+Fi);break;case"ArrowUp":t.preventDefault(),this.#a<Fi?(this.#s.focus(),this.#a=-1):this.#w(this.#a-Fi);break;case"Home":t.preventDefault(),this.#w(0);break;case"End":t.preventDefault(),this.#w(e-1);break;case"Enter":case" ":t.preventDefault(),this.#a>=0&&this.#o[this.#a].click();break;case"Tab":this.close();break}};#S=t=>{let e=t.currentTarget.getAttribute("data-shortcode"),i=this.#h.EMOJI_MAP.get(e);i&&(this.#$(e),this.#q(i),this.dispatchEvent(new CustomEvent("emoji-picker:select",{bubbles:!0,detail:{shortcode:i.shortcode,emoji:i.emoji,name:i.name,keywords:i.keywords}})),this.close(),this.#C())};#w(t){let e=this.#o.length;e!==0&&(t<0&&(t=0),t>=e&&(t=e-1),this.#a=t,this.#o[t].focus())}#q(t){let e=this.getAttribute("for");if(!e)return;let i=document.getElementById(e);if(i){if(i.tagName==="INPUT"||i.tagName==="TEXTAREA"){let n=i,r=this.#d?.start??n.value.length,o=this.#d?.end??r,a=n.value.slice(0,r),l=n.value.slice(o);n.value=a+t.emoji+l;let c=r+t.emoji.length;n.setSelectionRange(c,c),this.#d={start:c,end:c},i.dispatchEvent(new Event("input",{bubbles:!0}))}else if(i.isContentEditable){i.focus();let n=window.getSelection();if(n&&this.#u){n.removeAllRanges(),n.addRange(this.#u);let r=n.getRangeAt(0);r.deleteContents();let o=document.createTextNode(t.emoji);r.insertNode(o),r.setStartAfter(o),r.collapse(!0),n.removeAllRanges(),n.addRange(r),this.#u=r.cloneRange()}else if(n){let r=document.createRange();r.selectNodeContents(i),r.collapse(!1);let o=document.createTextNode(t.emoji);r.insertNode(o),r.setStartAfter(o),r.collapse(!0),n.removeAllRanges(),n.addRange(r)}}}}#C(){let t=this.getAttribute("for");if(!t)return;let e=document.getElementById(t);e&&e.focus()}#D(){try{return JSON.parse(localStorage.getItem(Po)||"[]")}catch{return[]}}#$(t){let e=parseInt(this.getAttribute("recent-limit")??"24",10)||24,i=this.#D();i=i.filter(n=>n!==t),i.unshift(t),i.length>e&&(i.length=e);try{localStorage.setItem(Po,JSON.stringify(i))}catch{}}open(){this.#r||(this.#v(),this.#r=!0,this.setAttribute("open",""),this.#t?.setAttribute("aria-expanded","true"),this.#e.hidden=!1,this.#s.value="",this.#c="",this.#g(),requestAnimationFrame(()=>{this.#s.focus()}),this.dispatchEvent(new CustomEvent("emoji-picker:open",{bubbles:!0})))}close(){this.#r&&(this.#r=!1,this.removeAttribute("open"),this.#t?.setAttribute("aria-expanded","false"),this.#e.hidden=!0,this.dispatchEvent(new CustomEvent("emoji-picker:close",{bubbles:!0})))}toggle(){this.#r?this.close():this.open()}get isOpen(){return this.#r}};g("emoji-picker",ji);var Fo="vb-environment",zi={timeOfDay:!1,seasonal:!1},Zh=900*1e3;function ct(s,t,e){return s+(t-s)*Math.min(1,Math.max(0,e))}var ht={_timer:null,_baseHues:null,_timeOverride:null,_monthOverride:null,init(){let s=this.load();(s.timeOfDay||s.seasonal)&&(this._captureBaseHues(),this._update(),this._startLoop()),window.addEventListener("vb:theme-change",()=>{this._hasActiveSource()&&requestAnimationFrame(()=>{this._captureBaseHues(),this._update()})})},load(){try{let s=localStorage.getItem(Fo);return s?{...zi,...JSON.parse(s)}:{...zi}}catch{return{...zi}}},save(s){try{localStorage.setItem(Fo,JSON.stringify(s))}catch{}return s},setTimeOverride(s){this._timeOverride=s,this._hasActiveSource()&&this._update()},setMonthOverride(s){this._monthOverride=s,this._hasActiveSource()&&this._update()},setSource(s,t){let e={...this.load(),[s]:t};this.save(e),t?(this._captureBaseHues(),this._update(),this._startLoop()):this._hasActiveSource(e)?this._update():(this._clearModifiers(),this._stopLoop())},_hasActiveSource(s){let t=s||this.load();return t.timeOfDay||t.seasonal},_captureBaseHues(){let s=document.documentElement;s.style.removeProperty("--hue-primary"),s.style.removeProperty("--hue-secondary"),s.style.removeProperty("--hue-accent");let t=s.getAttribute("data-theme");if(t){let e=`[data-theme~="${t}"]`;for(let i of document.styleSheets)try{for(let n=0;n<i.cssRules.length;n++){let r=i.cssRules[n];if(r.selectorText?.includes(e)&&!r.selectorText.includes("dark")){let o=r.style?.getPropertyValue("--hue-primary");if(o){this._baseHues={primary:parseFloat(o)||260,secondary:parseFloat(r.style.getPropertyValue("--hue-secondary"))||200,accent:parseFloat(r.style.getPropertyValue("--hue-accent"))||30};return}}}}catch{}}this._baseHues={primary:260,secondary:200,accent:30}},_update(){let s=this.load(),t=0;s.timeOfDay&&(t+=this._getTimeOfDayOffset()),s.seasonal&&(t+=this._getSeasonalOffset());let e=document.documentElement;t!==0&&this._baseHues?(e.style.setProperty("--hue-primary",String(this._baseHues.primary+t)),e.style.setProperty("--hue-secondary",String(this._baseHues.secondary+t)),e.style.setProperty("--hue-accent",String(this._baseHues.accent+t*.5))):t===0&&this._clearModifiers()},_clearModifiers(){let s=document.documentElement;s.style.removeProperty("--hue-primary"),s.style.removeProperty("--hue-secondary"),s.style.removeProperty("--hue-accent")},_getTimeOfDayOffset(){let s=this._timeOverride??new Date().getHours()+new Date().getMinutes()/60;return s<5?-20:s<7?ct(-20,20,(s-5)/2):s<10?ct(20,5,(s-7)/3):s<14?ct(5,0,(s-10)/4):s<17?ct(0,-5,(s-14)/3):s<19?ct(-5,15,(s-17)/2):s<21?ct(15,-10,(s-19)/2):ct(-10,-20,(s-21)/8)},_getHemisphere(){return window.__VB_ENV_LOCATION?.hemisphere||"north"},_getSeasonalOffset(){let s=this._monthOverride??new Date().getMonth(),e=this._getHemisphere()==="south"?(s+6)%12:s;return e>=2&&e<=4?5:e>=5&&e<=7?10:e>=8&&e<=10?-5:-10},_startLoop(){this._timer||(this._timer=setInterval(()=>this._update(),Zh))},_stopLoop(){this._timer&&clearInterval(this._timer),this._timer=null}};var qe=null;function zo(){return"0.1.0"}function Qh(){let s=document.querySelectorAll('script[src*="vanilla-breeze"]'),t="/cdn/sw.js";for(let e of s){let i=e.getAttribute("src");if(i){let n=i.lastIndexOf("/");if(n!==-1){t=i.slice(0,n)+"/sw.js";break}}}return t}function Ho(){return qe||(qe=navigator.serviceWorker?.ready??Promise.reject(new Error("SW not supported"))),qe}function Vo(s){return new Promise((t,e)=>{navigator.serviceWorker?.controller?jo(navigator.serviceWorker.controller,s,t,e):Ho().then(i=>{let n=i.active||i.waiting||i.installing;n?jo(n,s,t,e):e(new Error("No active service worker"))}).catch(e)})}function jo(s,t,e,i){let n=new MessageChannel;n.port1.onmessage=r=>e(r.data),n.port1.onmessageerror=()=>i(new Error("Message error")),s.postMessage({type:t},[n.port2]),setTimeout(()=>i(new Error("SW message timeout")),5e3)}async function Uo(){return Vo("GET_STATUS")}async function Wo(){return Vo("CLEAR_CACHE")}async function Go(){let s=await Ho();return await s.update(),{updated:!!s.waiting}}function tu(){return typeof window>"u"||!("serviceWorker"in navigator)?!1:window.__VB_SERVICE_WORKER?!0:document.querySelector('meta[name="vb-service-worker"]')?.content==="true"}if(tu()){let s=Qh();window.addEventListener("load",()=>{qe=navigator.serviceWorker.register(s).catch(t=>{console.warn("[VB] Service worker registration failed:",t)})})}var Ct=null,Wi="vb-extensions",Ie={motionFx:!0,sounds:!1},Ko="vb-a11y-themes",Gi="vb-sticky",Yi=class extends b{#t=null;#e=null;#s=!1;setup(){this.#u(),this.#b(),this.#R(),this.listen(window,"vb:theme-change",this.#B),this.listen(window,"vb:extensions-change",this.#B),this.listen(window,"vb:a11y-themes-change",this.#B)}teardown(){}#n(t){return t!==""&&t!==void 0}#i(t){return t==="compact"?"compact":t==="spacious"?"spacious":"default"}#r(t,e){return t?e==="compact"?"compact":e==="spacious"?"spacious":"default":""}#o(){try{return localStorage.getItem(Gi)==="on"}catch{return!1}}#a(t){return t!==""&&t!==void 0}#l(t){return t==="flush"?"flush":t==="elevated"?"elevated":"default"}#c(t,e){return t?e==="flush"?"flush":e==="elevated"?"elevated":"default":""}#h(t){if(!t)return"card";let e=t.split(/\s+/);for(let i of e)if(i==="stretch"||i==="integrated")return i;return"card"}#p(t){return t?t.split(/\s+/).includes("fixed"):!1}#d(t,e){let i=[];return t&&t!=="card"&&i.push(t),e&&i.push("fixed"),i.join(" ")||"card"}#u(){this.#t=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button"),this.#t||(this.#t=document.createElement("button"),this.#t.setAttribute("data-trigger",""),this.#t.setAttribute("aria-label","Site settings"),this.#t.className="settings-trigger",this.#t.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg>',this.prepend(this.#t)),this.#t.setAttribute("aria-haspopup","dialog"),this.#t.setAttribute("aria-expanded","false"),this.#e=document.createElement("div"),this.#e.className="settings-panel",this.#e.setAttribute("role","dialog"),this.#e.setAttribute("aria-label","Site settings");let t=`settings-panel-${crypto.randomUUID().slice(0,8)}`;this.#e.id=t,this.#t.setAttribute("aria-controls",t),this.#e.innerHTML=this.#m(),this.appendChild(this.#e)}#m(){let{mode:t,brand:e,fluid:i,backdrop:n,backdropChrome:r,pageBgType:o,pageBgColor:a,pageBgGradStart:l,pageBgGradEnd:c,pageBgGradDir:h}=E.getState(),u=this.#I(),d=this.#V(),p=this.#n(i),m=this.#i(i),f=this.#a(n),v=this.#l(n);return`
|
|
643
|
+
<header class="settings-header">
|
|
644
|
+
<strong>Settings</strong>
|
|
645
|
+
<button type="button" class="settings-close" aria-label="Close settings">
|
|
646
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
|
|
647
|
+
</button>
|
|
648
|
+
</header>
|
|
649
|
+
|
|
650
|
+
<div class="settings-body">
|
|
651
|
+
<!-- Appearance -->
|
|
652
|
+
<details name="settings" open>
|
|
653
|
+
<summary>Appearance</summary>
|
|
654
|
+
<div class="settings-section">
|
|
655
|
+
<span class="settings-label">Color Mode</span>
|
|
656
|
+
<div class="segmented-control" role="radiogroup" aria-label="Color mode">
|
|
657
|
+
${[{id:"auto",name:"Auto",icon:"monitor"},{id:"light",name:"Light",icon:"sun"},{id:"dark",name:"Dark",icon:"moon"}].map(y=>`
|
|
658
|
+
<label class="segment">
|
|
659
|
+
<input type="radio" name="settings-mode" value="${y.id}" ${t===y.id?"checked":""} />
|
|
660
|
+
<span><icon-wc name="${y.icon}" size="xs"></icon-wc> ${y.name}</span>
|
|
661
|
+
</label>
|
|
662
|
+
`).join("")}
|
|
663
|
+
</div>
|
|
664
|
+
|
|
665
|
+
<label class="settings-label" for="settings-theme">Theme</label>
|
|
666
|
+
<select id="settings-theme" name="settings-theme">
|
|
667
|
+
${Dt.map(y=>`
|
|
668
|
+
<optgroup label="${y.label}">
|
|
669
|
+
${y.themes.map(w=>`
|
|
670
|
+
<option value="${w.id}" ${e===w.id?"selected":""}>${w.name}</option>
|
|
671
|
+
`).join("")}
|
|
672
|
+
</optgroup>
|
|
673
|
+
`).join("")}
|
|
674
|
+
</select>
|
|
675
|
+
</div>
|
|
676
|
+
</details>
|
|
677
|
+
|
|
678
|
+
<!-- Accessibility -->
|
|
679
|
+
<details name="settings">
|
|
680
|
+
<summary>Accessibility</summary>
|
|
681
|
+
<div class="settings-section">
|
|
682
|
+
<label class="toggle-row">
|
|
683
|
+
<span>High Contrast</span>
|
|
684
|
+
<input type="checkbox" name="a11y-high-contrast" data-switch="sm" data-a11y="a11y-high-contrast" ${u.includes("a11y-high-contrast")?"checked":""} />
|
|
685
|
+
</label>
|
|
686
|
+
<label class="toggle-row">
|
|
687
|
+
<span>Large Text</span>
|
|
688
|
+
<input type="checkbox" name="a11y-large-text" data-switch="sm" data-a11y="a11y-large-text" ${u.includes("a11y-large-text")?"checked":""} />
|
|
689
|
+
</label>
|
|
690
|
+
<label class="toggle-row">
|
|
691
|
+
<span>Dyslexia-Friendly</span>
|
|
692
|
+
<input type="checkbox" name="a11y-dyslexia" data-switch="sm" data-a11y="a11y-dyslexia" ${u.includes("a11y-dyslexia")?"checked":""} />
|
|
693
|
+
</label>
|
|
694
|
+
</div>
|
|
695
|
+
</details>
|
|
696
|
+
|
|
697
|
+
<!-- Layout -->
|
|
698
|
+
<details name="settings">
|
|
699
|
+
<summary>Layout</summary>
|
|
700
|
+
<div class="settings-section">
|
|
701
|
+
<label class="toggle-row">
|
|
702
|
+
<span>Fluid Scaling</span>
|
|
703
|
+
<input type="checkbox" name="fluid-scaling" data-switch="sm" data-fluid-toggle ${p?"checked":""} />
|
|
704
|
+
</label>
|
|
705
|
+
<div class="density-row" ${p?"":"hidden"}>
|
|
706
|
+
<span class="settings-label">Density</span>
|
|
707
|
+
<div class="segmented-control" role="radiogroup" aria-label="Density">
|
|
708
|
+
${["compact","default","spacious"].map(y=>`
|
|
709
|
+
<label class="segment">
|
|
710
|
+
<input type="radio" name="settings-density" value="${y}" ${m===y?"checked":""} />
|
|
711
|
+
<span>${y[0].toUpperCase()+y.slice(1)}</span>
|
|
712
|
+
</label>
|
|
713
|
+
`).join("")}
|
|
714
|
+
</div>
|
|
715
|
+
</div>
|
|
716
|
+
|
|
717
|
+
<label class="toggle-row">
|
|
718
|
+
<span>Canvas Backdrop</span>
|
|
719
|
+
<input type="checkbox" name="canvas-backdrop" data-switch="sm" data-backdrop-toggle ${f?"checked":""} />
|
|
720
|
+
</label>
|
|
721
|
+
<div class="backdrop-row" ${f?"":"hidden"}>
|
|
722
|
+
<span class="settings-label">Style</span>
|
|
723
|
+
<div class="segmented-control" role="radiogroup" aria-label="Backdrop style">
|
|
724
|
+
${["default","flush","elevated"].map(y=>`
|
|
725
|
+
<label class="segment">
|
|
726
|
+
<input type="radio" name="settings-backdrop" value="${y}" ${v===y?"checked":""} />
|
|
727
|
+
<span>${y[0].toUpperCase()+y.slice(1)}</span>
|
|
728
|
+
</label>
|
|
729
|
+
`).join("")}
|
|
730
|
+
</div>
|
|
731
|
+
</div>
|
|
732
|
+
<div class="backdrop-row" ${f?"":"hidden"}>
|
|
733
|
+
<span class="settings-label">Chrome</span>
|
|
734
|
+
<div class="segmented-control" role="radiogroup" aria-label="Backdrop chrome mode">
|
|
735
|
+
${["card","stretch","integrated"].map(y=>`
|
|
736
|
+
<label class="segment">
|
|
737
|
+
<input type="radio" name="settings-backdrop-chrome" value="${y}" ${this.#h(r)===y?"checked":""} />
|
|
738
|
+
<span>${y[0].toUpperCase()+y.slice(1)}</span>
|
|
739
|
+
</label>
|
|
740
|
+
`).join("")}
|
|
741
|
+
</div>
|
|
742
|
+
</div>
|
|
743
|
+
<div class="backdrop-row" ${f?"":"hidden"}>
|
|
744
|
+
<label class="toggle-row">
|
|
745
|
+
<span>Fixed Header</span>
|
|
746
|
+
<input type="checkbox" name="settings-backdrop-fixed" data-switch="sm" data-backdrop-fixed ${this.#p(r)?"checked":""} />
|
|
747
|
+
</label>
|
|
748
|
+
</div>
|
|
749
|
+
<div class="backdrop-row" ${f?"":"hidden"}>
|
|
750
|
+
<label class="settings-label" for="settings-page-bg">Page Background</label>
|
|
751
|
+
<select id="settings-page-bg" name="settings-page-bg">
|
|
752
|
+
<option value="" ${o===""?"selected":""}>Theme Default</option>
|
|
753
|
+
<option value="color" ${o==="color"?"selected":""}>Solid Color</option>
|
|
754
|
+
<option value="gradient" ${o==="gradient"?"selected":""}>Gradient</option>
|
|
755
|
+
</select>
|
|
756
|
+
</div>
|
|
757
|
+
<div class="page-bg-color-row backdrop-row" ${o==="color"&&f?"":"hidden"}>
|
|
758
|
+
<span class="settings-label">Color</span>
|
|
759
|
+
<input type="color" name="settings-page-bg-color" value="${a||"#1a1a2e"}" />
|
|
760
|
+
</div>
|
|
761
|
+
<div class="page-bg-grad-row backdrop-row" ${o==="gradient"&&f?"":"hidden"}>
|
|
762
|
+
<span class="settings-label">Start</span>
|
|
763
|
+
<input type="color" name="settings-page-bg-grad-start" value="${l||"#1a1a2e"}" />
|
|
764
|
+
<span class="settings-label">End</span>
|
|
765
|
+
<input type="color" name="settings-page-bg-grad-end" value="${c||"#16213e"}" />
|
|
766
|
+
</div>
|
|
767
|
+
<div class="page-bg-grad-dir-row backdrop-row" ${o==="gradient"&&f?"":"hidden"}>
|
|
768
|
+
<span class="settings-label">Direction</span>
|
|
769
|
+
<select name="settings-page-bg-grad-dir">
|
|
770
|
+
<option value="to bottom" ${(h||"to bottom")==="to bottom"?"selected":""}>Top \u2192 Bottom</option>
|
|
771
|
+
<option value="to right" ${h==="to right"?"selected":""}>Left \u2192 Right</option>
|
|
772
|
+
<option value="135deg" ${h==="135deg"?"selected":""}>Diagonal \u2198</option>
|
|
773
|
+
<option value="45deg" ${h==="45deg"?"selected":""}>Diagonal \u2197</option>
|
|
774
|
+
</select>
|
|
775
|
+
</div>
|
|
776
|
+
|
|
777
|
+
<label class="toggle-row">
|
|
778
|
+
<span>Sticky Navigation</span>
|
|
779
|
+
<input type="checkbox" name="sticky-nav" data-switch="sm" data-sticky-toggle ${this.#o()?"checked":""} />
|
|
780
|
+
</label>
|
|
781
|
+
</div>
|
|
782
|
+
</details>
|
|
783
|
+
|
|
784
|
+
<!-- Effects -->
|
|
785
|
+
<details name="settings">
|
|
786
|
+
<summary>Effects</summary>
|
|
787
|
+
<div class="settings-section">
|
|
788
|
+
<label class="toggle-row">
|
|
789
|
+
<span>Motion Effects</span>
|
|
790
|
+
<input type="checkbox" name="ext-motionFx" data-switch="sm" data-ext="motionFx" ${d.motionFx?"checked":""} />
|
|
791
|
+
</label>
|
|
792
|
+
<label class="toggle-row">
|
|
793
|
+
<span>Sound Effects</span>
|
|
794
|
+
<input type="checkbox" name="ext-sounds" data-switch="sm" data-ext="sounds" ${d.sounds?"checked":""} />
|
|
795
|
+
</label>
|
|
796
|
+
</div>
|
|
797
|
+
</details>
|
|
798
|
+
|
|
799
|
+
<!-- Environment -->
|
|
800
|
+
<details name="settings">
|
|
801
|
+
<summary>Environment</summary>
|
|
802
|
+
<div class="settings-section">
|
|
803
|
+
<label class="toggle-row">
|
|
804
|
+
<span>Time-of-Day Shifts</span>
|
|
805
|
+
<input type="checkbox" name="env-timeOfDay" data-switch="sm" data-env="timeOfDay" ${this.#H().timeOfDay?"checked":""} />
|
|
806
|
+
</label>
|
|
807
|
+
<label class="toggle-row">
|
|
808
|
+
<span>Seasonal Tinting</span>
|
|
809
|
+
<input type="checkbox" name="env-seasonal" data-switch="sm" data-env="seasonal" ${this.#H().seasonal?"checked":""} />
|
|
810
|
+
</label>
|
|
811
|
+
</div>
|
|
812
|
+
</details>
|
|
813
|
+
|
|
814
|
+
<!-- System -->
|
|
815
|
+
<details name="settings">
|
|
816
|
+
<summary>System</summary>
|
|
817
|
+
<div class="settings-section system-info">
|
|
818
|
+
<p class="system-version">Vanilla Breeze <code>v${zo()}</code></p>
|
|
819
|
+
<p class="system-sw-status" data-sw-status>Service Worker: <span>checking\u2026</span></p>
|
|
820
|
+
<footer class="system-actions">
|
|
821
|
+
<button type="button" data-action="clear-cache">Clear Cache</button>
|
|
822
|
+
<button type="button" data-action="check-update">Check for Updates</button>
|
|
823
|
+
</footer>
|
|
824
|
+
</div>
|
|
825
|
+
</details>
|
|
826
|
+
</div>
|
|
827
|
+
|
|
828
|
+
<footer class="settings-footer">
|
|
829
|
+
<button type="button" class="settings-reset">Reset to Defaults</button>
|
|
830
|
+
</footer>
|
|
831
|
+
`}#b(){this.#t.addEventListener("click",this.#g),this.listen(document,"click",this.#f),this.listen(document,"keydown",this.#v),this.#e.querySelector(".settings-close")?.addEventListener("click",()=>this.close()),this.#e.querySelectorAll('input[name="settings-mode"]').forEach(t=>{t.addEventListener("change",this.#y)}),this.#e.querySelector("#settings-theme")?.addEventListener("change",this.#A),this.#e.querySelector("input[data-fluid-toggle]")?.addEventListener("change",this.#k),this.#e.querySelectorAll('input[name="settings-density"]').forEach(t=>{t.addEventListener("change",this.#L)}),this.#e.querySelector("input[data-backdrop-toggle]")?.addEventListener("change",this.#x),this.#e.querySelectorAll('input[name="settings-backdrop"]').forEach(t=>{t.addEventListener("change",this.#E)}),this.#e.querySelectorAll('input[name="settings-backdrop-chrome"]').forEach(t=>{t.addEventListener("change",this.#T)}),this.#e.querySelector("input[data-backdrop-fixed]")?.addEventListener("change",this.#S),this.#e.querySelector("input[data-sticky-toggle]")?.addEventListener("change",this.#w),this.#e.querySelector('[name="settings-page-bg"]')?.addEventListener("change",this.#q),this.#e.querySelector('[name="settings-page-bg-color"]')?.addEventListener("input",this.#C),this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.addEventListener("input",this.#C),this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.addEventListener("input",this.#C),this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.addEventListener("change",this.#C),this.#e.querySelectorAll("input[data-a11y]").forEach(t=>{t.addEventListener("change",this.#D)}),this.#e.querySelectorAll("input[data-ext]").forEach(t=>{t.addEventListener("change",this.#$)}),this.#e.querySelectorAll("input[data-env]").forEach(t=>{t.addEventListener("change",this.#M)}),this.#e.querySelector(".settings-reset")?.addEventListener("click",this.#_),this.#e.querySelector('[data-action="clear-cache"]')?.addEventListener("click",this.#Y),this.#e.querySelector('[data-action="check-update"]')?.addEventListener("click",this.#K),this.#W()}#g=t=>{t.stopPropagation(),this.toggle()};#f=t=>{this.#s&&!this.contains(t.target)&&this.close()};#v=t=>{t.key==="Escape"&&this.#s&&(t.preventDefault(),this.close(),this.#t?.focus())};#y=t=>{E.setMode(t.target.value)};#A=async t=>{let e=t.target;e.disabled=!0;try{await E.setBrand(e.value),this.#z()}catch{console.warn("[VB] Theme load failed, using default")}finally{e.disabled=!1}};#k=t=>{let e=t.target.checked,i=this.#i(E.getState().fluid)||"default";E.setFluid(this.#r(e,i)),this.#F(e)};#L=t=>{E.setFluid(this.#r(!0,t.target.value))};#x=t=>{let e=t.target.checked,i=this.#l(E.getState().backdrop)||"default";E.setBackdrop(this.#c(e,i)),this.#j(e)};#E=t=>{E.setBackdrop(this.#c(!0,t.target.value))};#T=t=>{let e=this.#p(E.getState().backdropChrome);E.setBackdropChrome(this.#d(t.target.value,e))};#S=t=>{let e=this.#h(E.getState().backdropChrome);E.setBackdropChrome(this.#d(e,t.target.checked))};#w=async t=>{let e=t.target.checked;try{localStorage.setItem(Gi,e?"on":"off")}catch{}let i=document.querySelector("header");if(e){document.documentElement.dataset.sticky="",i&&(i.dataset.sticky="");let{initStickyManager:n}=await Promise.resolve().then(()=>(Yt(),_e));n()}else{delete document.documentElement.dataset.sticky,i&&delete i.dataset.sticky;let{destroyStickyManager:n}=await Promise.resolve().then(()=>(Yt(),_e));n()}};#q=t=>{let e=t.target.value;if(this.#N(e),e==="color"){let i=this.#e.querySelector('[name="settings-page-bg-color"]')?.value||"#1a1a2e";E.setPageBg({type:e,color:i})}else if(e==="gradient"){let i=this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.value||"#1a1a2e",n=this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.value||"#16213e",r=this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.value||"to bottom";E.setPageBg({type:e,gradStart:i,gradEnd:n,gradDir:r})}else E.setPageBg({})};#C=()=>{let t=this.#e.querySelector('[name="settings-page-bg"]')?.value||"";if(t==="color"){let e=this.#e.querySelector('[name="settings-page-bg-color"]')?.value||"";E.setPageBg({type:t,color:e})}else if(t==="gradient"){let e=this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.value||"",i=this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.value||"",n=this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.value||"to bottom";E.setPageBg({type:t,gradStart:e,gradEnd:i,gradDir:n})}};#D=t=>{let e=t.target.dataset.a11y,i=this.#I();if(t.target.checked&&!i.includes(e))i.push(e);else if(!t.target.checked){let n=i.indexOf(e);n!==-1&&i.splice(n,1)}this.#O(i),this.#P(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:i}))};#$=t=>{let e=t.target.dataset.ext,i=t.target.checked;this.#G(e,i),this.#U()};#M=t=>{let e=t.target.dataset.env,i=t.target.checked;ht.setSource(e,i)};#_=()=>{if(confirm("Reset all settings to defaults?")){E.reset(),this.#O([]),this.#P(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:[]}));try{localStorage.removeItem(Wi)}catch{}this.#U();try{localStorage.removeItem(Gi)}catch{}delete document.documentElement.dataset.sticky,Promise.resolve().then(()=>(Yt(),_e)).then(t=>t.destroyStickyManager()).catch(()=>{}),ht.setSource("timeOfDay",!1),ht.setSource("seasonal",!1),this.#R()}};#B=()=>{this.#R()};#R(){let{mode:t,brand:e,fluid:i,backdrop:n,backdropChrome:r,pageBgType:o,pageBgColor:a,pageBgGradStart:l,pageBgGradEnd:c,pageBgGradDir:h}=E.getState(),u=this.#I(),d=this.#V(),p=this.#n(i),m=this.#i(i),f=this.#a(n),v=this.#l(n),y=this.#e.querySelector(`input[name="settings-mode"][value="${t}"]`);y&&(y.checked=!0);let w=this.#e.querySelector("#settings-theme");w&&(w.value=e||"default");let S=this.#e.querySelector("input[data-fluid-toggle]");S&&(S.checked=p);let T=this.#e.querySelector(`input[name="settings-density"][value="${m}"]`);T&&(T.checked=!0),this.#F(p);let P=this.#e.querySelector("input[data-backdrop-toggle]");P&&(P.checked=f);let M=this.#e.querySelector(`input[name="settings-backdrop"][value="${v}"]`);M&&(M.checked=!0);let C=this.#h(r),N=this.#e.querySelector(`input[name="settings-backdrop-chrome"][value="${C}"]`);N&&(N.checked=!0);let q=this.#e.querySelector("input[data-backdrop-fixed]");q&&(q.checked=this.#p(r)),this.#j(f);let U=this.#e.querySelector('[name="settings-page-bg"]');U&&(U.value=o||"");let Mt=this.#e.querySelector('[name="settings-page-bg-color"]');Mt&&a&&(Mt.value=a);let vt=this.#e.querySelector('[name="settings-page-bg-grad-start"]');vt&&l&&(vt.value=l);let gr=this.#e.querySelector('[name="settings-page-bg-grad-end"]');gr&&c&&(gr.value=c);let br=this.#e.querySelector('[name="settings-page-bg-grad-dir"]');br&&h&&(br.value=h),f&&this.#N(o||""),this.#e.querySelectorAll("input[data-a11y]").forEach($t=>{let tt=$t;tt.checked=u.includes(tt.dataset.a11y)}),this.#e.querySelectorAll("input[data-ext]").forEach($t=>{let tt=$t,ae=tt.dataset.ext,ql=d[ae];tt.checked=ql??Ie[ae]});let vr=this.#e.querySelector("input[data-sticky-toggle]");vr&&(vr.checked=this.#o());let Nl=this.#H();this.#e.querySelectorAll("input[data-env]").forEach($t=>{let tt=$t,ae=tt.dataset.env;tt.checked=Nl[ae]??!1})}#F(t){let e=this.#e.querySelector(".density-row");e&&(e.hidden=!t)}#j(t){if(this.#e.querySelectorAll(".backdrop-row").forEach(e=>{e.hidden=!t}),t){let e=this.#e.querySelector('[name="settings-page-bg"]')?.value||"";this.#N(e)}}#N(t){let e=this.#e.querySelector(".page-bg-color-row"),i=this.#e.querySelector(".page-bg-grad-row"),n=this.#e.querySelector(".page-bg-grad-dir-row");e&&(e.hidden=t!=="color"),i&&(i.hidden=t!=="gradient"),n&&(n.hidden=t!=="gradient")}#I(){try{let t=localStorage.getItem(Ko);return t?JSON.parse(t):[]}catch{return[]}}#O(t){try{localStorage.setItem(Ko,JSON.stringify(t))}catch{}}#P(){let t=this.#I(),{brand:e}=E.getState(),i=document.documentElement,n=e!=="default"?[e,...t]:[...t];n.length?i.dataset.theme=n.join(" "):delete i.dataset.theme}#z(){this.#P()}#H(){return ht.load()}#V(){try{let t=localStorage.getItem(Wi);return t?{...Ie,...JSON.parse(t)}:{...Ie}}catch{return{...Ie}}}#G(t,e){try{let i=this.#V();i[t]=e,localStorage.setItem(Wi,JSON.stringify(i))}catch{}}async#U(){let t=this.#V(),e=document.documentElement;t.motionFx?delete e.dataset.motionReduced:e.dataset.motionReduced="",t.sounds?(Ct||(Ct=(await Promise.resolve().then(()=>(Ss(),xs))).SoundManager),Ct.init(),Ct.enable()):Ct&&Ct.disable(),window.dispatchEvent(new CustomEvent("vb:extensions-change",{detail:t}))}async#W(){let t=this.#e.querySelector("[data-sw-status] span");if(t){if(!("serviceWorker"in navigator)){t.textContent="Not supported";return}try{let i=(await Uo()).cachedURLs?.length??0;t.textContent=`Active (${i} cached files)`}catch{t.textContent="Not registered"}}}#Y=async t=>{let e=t.target;e.disabled=!0,e.textContent="Clearing\u2026";try{await Wo(),e.textContent="Cleared!",this.#W(),setTimeout(()=>{e.textContent="Clear Cache",e.disabled=!1},2e3)}catch{e.textContent="Failed",setTimeout(()=>{e.textContent="Clear Cache",e.disabled=!1},2e3)}};#K=async t=>{let e=t.target;e.disabled=!0,e.textContent="Checking\u2026";try{let{updated:i}=await Go();e.textContent=i?"Update available!":"Up to date",setTimeout(()=>{e.textContent="Check for Updates",e.disabled=!1},2e3)}catch{e.textContent="Failed",setTimeout(()=>{e.textContent="Check for Updates",e.disabled=!1},2e3)}};open(){this.#s||(this.#s=!0,this.setAttribute("open",""),this.#t?.setAttribute("aria-expanded","true"),this.#R(),this.#X())}#X(){let t=this.getBoundingClientRect(),e=this.#e;e.style.removeProperty("top"),e.style.removeProperty("bottom"),e.style.removeProperty("left"),e.style.removeProperty("right");let i=e.getBoundingClientRect(),n=window.innerWidth,r=window.innerHeight,o=t.top,a=r-t.bottom;o<i.height&&a>o?(e.style.top="calc(100% + 8px)",e.style.bottom="auto"):(e.style.bottom="calc(100% + 8px)",e.style.top="auto");let l=n-t.right,c=t.left,h=i.width;t.right<h&&c<l?(e.style.left="0",e.style.right="auto"):(e.style.right="0",e.style.left="auto")}close(){this.#s&&(this.#s=!1,this.removeAttribute("open"),this.#t?.setAttribute("aria-expanded","false"))}toggle(){this.#s?this.close():this.open()}};g("settings-panel",Yi);ht.init();z();var Be=null;async function su(){if(Be)return;Be=(await Promise.resolve().then(()=>(Pi(),Oi))).resolveEmoji}var iu="[data-emoji]",it=/:([a-z0-9_+-]+):/g,nu=new Set(["SCRIPT","STYLE","CODE","PRE","TEXTAREA"]),ru=new Set(["INPUT","TEXTAREA"]),ou=100;function au(s){if(s.hasAttribute("data-emoji-init"))return;if(s.setAttribute("data-emoji-init",""),ru.has(s.tagName)){lu(s);return}let t=s.getAttribute("data-emoji-unknown")||"keep";if(Xo(s,t),s.getAttribute("data-emoji-scan")==="observe"){let e=null;new MutationObserver(()=>{e&&clearTimeout(e),e=setTimeout(()=>{Xo(s,t),e=null},ou)}).observe(s,{childList:!0,subtree:!0,characterData:!0})}}function lu(s){let t=!1;s.addEventListener("compositionstart",()=>{t=!0}),s.addEventListener("compositionend",()=>{t=!1,Ki(s)}),s.addEventListener("input",()=>{t||Ki(s)}),s.value&&it.test(s.value)&&(it.lastIndex=0,Ki(s))}function Ki(s){let t=s.value;it.lastIndex=0;let e,i="",n=0,r=0,o=s.selectionStart??t.length,a=!1;for(;(e=it.exec(t))!==null;){let c=e[0],h=e[1],u=Be(h);if(i+=t.slice(n,e.index),u){i+=u.emoji,a=!0;let d=e.index+c.length;o>=d?r+=c.length-u.emoji.length:o>e.index&&(r+=o-e.index-u.emoji.length)}else i+=c;n=e.index+c.length}if(!a)return;i+=t.slice(n),s.value=i;let l=Math.max(0,o-r);s.setSelectionRange(l,l)}function Xo(s,t){let e=document.createTreeWalker(s,NodeFilter.SHOW_TEXT,{acceptNode(n){let r=n.parentElement;return!r||nu.has(r.tagName)||r.isContentEditable||r.hasAttribute("data-emoji-processed")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),i=[];for(;e.nextNode();)it.test(e.currentNode.textContent??"")&&i.push(e.currentNode),it.lastIndex=0;for(let n of i)cu(n,t)}function cu(s,t){let e=s.textContent;it.lastIndex=0;let i,n=0,r=[],o=!1;for(;(i=it.exec(e))!==null;){let a=i[1],l=Be(a);i.index>n&&r.push(e.slice(n,i.index)),l?(r.push(l.emoji),o=!0):t==="strip"?o=!0:r.push(i[0]),n=i.index+i[0].length}o&&(n<e.length&&r.push(e.slice(n)),s.textContent=r.join(""))}function hu(s){su().then(()=>au(s))}L(iu,hu);var Xi=":is(img, video, iframe, canvas)[data-mock]",uu={hero:{w:1200,h:400},card:{w:400,h:225},avatar:{w:48,h:48},product:{w:400,h:400},thumbnail:{w:150,h:150},logo:{w:200,h:50},og:{w:1200,h:630},banner:{w:728,h:90}};function Qo(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Jo(s,t,e){let i=Math.min(Math.max(s/15,12),32),n=s/2,r=t/2,o=e?Qo(e):"",a=o?`<text x="${n}" y="${r}" text-anchor="middle" dominant-baseline="middle" font-family="system-ui,sans-serif" font-size="${i}" fill="#6b7280">${o}</text>`:"",l=`<svg xmlns="http://www.w3.org/2000/svg" width="${s}" height="${t}" viewBox="0 0 ${s} ${t}"><rect width="${s}" height="${t}" fill="#f3f4f6"/><line x1="0" y1="0" x2="${s}" y2="${t}" stroke="#d1d5db"/><line x1="${s}" y1="0" x2="0" y2="${t}" stroke="#d1d5db"/>${a}</svg>`;return`data:image/svg+xml,${encodeURIComponent(l)}`}function du(s){let t=uu[s.dataset.mock],e=Number(s.getAttribute("width"))||t?.w||400,i=Number(s.getAttribute("height"))||t?.h||300;return{w:e,h:i}}function Ji(s){if(s.hasAttribute("data-mock-init"))return;s.setAttribute("data-mock-init","");let t=s.tagName.toLowerCase(),e=s.dataset.mock,{w:i,h:n}=du(s);if(t==="img"){if(e==="photo"){let r=s.dataset.seed,o=r?`https://picsum.photos/seed/${encodeURIComponent(r)}/${i}/${n}`:`https://picsum.photos/${i}/${n}`;s.getAttribute("src")||(s.setAttribute("src",o),s.setAttribute("loading","lazy"))}else if(e==="placehold"){if(!s.getAttribute("src")){let r=s.getAttribute("alt")||"",o=r?`?text=${encodeURIComponent(r)}`:"";s.setAttribute("src",`https://placehold.co/${i}x${n}${o}`),s.setAttribute("loading","lazy")}}else if(!s.getAttribute("src")){let r=s.getAttribute("alt")||`${i}\xD7${n}`;s.setAttribute("src",Jo(i,n,r))}}else if(t==="video"){if(!s.getAttribute("poster")){let r=s.getAttribute("alt")||s.getAttribute("title")||"Video";s.setAttribute("poster",Jo(i,n,`\u25B6 ${r}`))}}else if(t==="iframe"){if(!s.getAttribute("src")&&!s.getAttribute("srcdoc")){let r=s.getAttribute("title")||"Embedded content";s.setAttribute("srcdoc",`<!DOCTYPE html><html><body style="display:grid;place-items:center;height:100vh;margin:0;background:#f3f4f6;font-family:system-ui,sans-serif;color:#6b7280"><p>${Qo(r)}</p></body></html>`)}}else t==="canvas"&&pu(s,i,n)}function pu(s,t,e){s.width=t,s.height=e;let i=s.getContext("2d");if(!i)return;i.fillStyle="#f3f4f6",i.fillRect(0,0,t,e),i.strokeStyle="#d1d5db",i.lineWidth=1,i.beginPath(),i.moveTo(0,0),i.lineTo(t,e),i.moveTo(t,0),i.lineTo(0,e),i.stroke();let n=s.getAttribute("aria-label")||s.getAttribute("title")||`${t}\xD7${e}`,r=Math.min(Math.max(t/15,12),32);i.fillStyle="#6b7280",i.font=`${r}px system-ui, sans-serif`,i.textAlign="center",i.textBaseline="middle",i.fillText(n,t/2,e/2)}function Zo(s=document){s.querySelectorAll(Xi).forEach(Ji)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Zo()):Zo();var mu=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(Xi)&&Ji(i),i.querySelectorAll(Xi).forEach(n=>Ji(n))}});mu.observe(document.documentElement,{childList:!0,subtree:!0});var Zi="[data-lorem]",fu="Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium totam rem aperiam eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est qui dolorem ipsum quia dolor sit amet consectetur adipisci velit sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam quis nostrum exercitationem ullam corporis suscipit laboriosam nisi ut aliquid ex ea commodi consequatur. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur vel illum qui dolorem eum fugiat quo voluptas nulla pariatur. At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident similique sunt in culpa qui officia deserunt mollitia animi id est laborum et dolorum fuga.",gu="\u3053\u308C\u306F\u30C0\u30DF\u30FC\u30C6\u30AD\u30B9\u30C8\u3067\u3059\u3002\u30EC\u30A4\u30A2\u30A6\u30C8\u306E\u78BA\u8A8D\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u5B9F\u969B\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u5F8C\u3067\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u6587\u7AE0\u306F\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u30FC\u3068\u3057\u3066\u6A5F\u80FD\u3057\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30F3\u306E\u30D7\u30ED\u30C8\u30BF\u30A4\u30D7\u4F5C\u6210\u4E2D\u306B\u3001\u30C6\u30AD\u30B9\u30C8\u304C\u5FC5\u8981\u306A\u5834\u6240\u306B\u914D\u7F6E\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u65E5\u672C\u8A9E\u306E\u6587\u5B57\u306F\u7D04\u5343\u5E74\u524D\u306B\u4E2D\u56FD\u304B\u3089\u4F1D\u308F\u308A\u307E\u3057\u305F\u3002\u73FE\u4EE3\u306E\u65E5\u672C\u8A9E\u306F\u6F22\u5B57\u3001\u3072\u3089\u304C\u306A\u3001\u30AB\u30BF\u30AB\u30CA\u306E\u4E09\u7A2E\u985E\u306E\u6587\u5B57\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u30A6\u30A7\u30D6\u30C7\u30B6\u30A4\u30F3\u3067\u306F\u3001\u30C6\u30AD\u30B9\u30C8\u306E\u8AAD\u307F\u3084\u3059\u3055\u3068\u30EC\u30A4\u30A2\u30A6\u30C8\u306E\u30D0\u30E9\u30F3\u30B9\u304C\u91CD\u8981\u3067\u3059\u3002",bu="\u0647\u0630\u0627 \u0646\u0635 \u062A\u062C\u0631\u064A\u0628\u064A \u064A\u0633\u062A\u062E\u062F\u0645 \u0644\u0639\u0631\u0636 \u0627\u0644\u062A\u0635\u0645\u064A\u0645. \u064A\u0645\u0643\u0646 \u0627\u0633\u062A\u0628\u062F\u0627\u0644\u0647 \u0628\u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u0627\u0644\u0641\u0639\u0644\u064A \u0644\u0627\u062D\u0642\u0627. \u0627\u0644\u063A\u0631\u0636 \u0645\u0646\u0647 \u0647\u0648 \u0625\u0638\u0647\u0627\u0631 \u0643\u064A\u0641 \u0633\u064A\u0628\u062F\u0648 \u0627\u0644\u0646\u0635 \u0641\u064A \u0627\u0644\u0645\u0648\u0642\u0639. \u062A\u0635\u0645\u064A\u0645 \u0627\u0644\u0648\u064A\u0628 \u064A\u062A\u0637\u0644\u0628 \u0646\u0635\u0648\u0635\u0627 \u0646\u0627\u0626\u0628\u0629 \u0644\u0645\u0644\u0621 \u0627\u0644\u0641\u0631\u0627\u063A\u0627\u062A. \u0647\u0630\u0627 \u0627\u0644\u0646\u0635 \u0647\u0648 \u0628\u062F\u064A\u0644 \u0639\u0631\u0628\u064A \u0644\u0646\u0635 \u0644\u0648\u0631\u064A\u0645 \u0625\u064A\u0628\u0633\u0648\u0645 \u0627\u0644\u0644\u0627\u062A\u064A\u0646\u064A. \u064A\u0633\u0627\u0639\u062F \u0641\u064A \u0627\u062E\u062A\u0628\u0627\u0631 \u0627\u0644\u062A\u062E\u0637\u064A\u0637\u0627\u062A \u0648\u0627\u0644\u062E\u0637\u0648\u0637 \u0648\u0627\u0644\u0627\u062A\u062C\u0627\u0647 \u0645\u0646 \u0627\u0644\u064A\u0645\u064A\u0646 \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631. \u0627\u0644\u0644\u063A\u0629 \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0645\u0646 \u0623\u0643\u062B\u0631 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0646\u062A\u0634\u0627\u0631\u0627 \u0641\u064A \u0627\u0644\u0639\u0627\u0644\u0645.",vu="\u042D\u0442\u043E \u043F\u0440\u0438\u043C\u0435\u0440 \u0442\u0435\u043A\u0441\u0442\u0430 \u0434\u043B\u044F \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u043C\u0430\u043A\u0435\u0442\u0430. \u041E\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C \u0434\u043B\u044F \u043F\u0440\u043E\u0442\u043E\u0442\u0438\u043F\u043E\u0432. \u0420\u0435\u0430\u043B\u044C\u043D\u044B\u0439 \u043A\u043E\u043D\u0442\u0435\u043D\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u043F\u043E\u0437\u0436\u0435. \u0412\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043D \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0445 \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439 \u0434\u043B\u044F \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u043C\u0430\u043A\u0435\u0442\u043E\u0432. \u042D\u0442\u043E\u0442 \u0442\u0435\u043A\u0441\u0442 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0440\u0443\u0441\u0441\u043A\u043E\u044F\u0437\u044B\u0447\u043D\u043E\u0439 \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043E\u0439 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u043E\u043C\u0443 \u0442\u0435\u043A\u0441\u0442\u0443. \u041A\u0438\u0440\u0438\u043B\u043B\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0448\u0440\u0438\u0444\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u043C\u043D\u043E\u0433\u0438\u043C\u0438 \u044F\u0437\u044B\u043A\u0430\u043C\u0438 \u043C\u0438\u0440\u0430. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043A\u0430\u043A \u0432\u0430\u0448 \u0434\u0438\u0437\u0430\u0439\u043D \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0441 \u044D\u0442\u0438\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432.",ea={latin:fu,cjk:gu,arabic:bu,cyrillic:vu},yu={ja:"cjk",zh:"cjk",ko:"cjk",ar:"arabic",fa:"arabic",ur:"arabic",he:"arabic",ru:"cyrillic",uk:"cyrillic",bg:"cyrillic",sr:"cyrillic"};function Kt(s){let t=s.closest("[lang]")?.getAttribute("lang")?.split("-")[0]?.toLowerCase();return t&&yu[t]||"latin"}function wu(s){return s.split(/(?<=[.!?\u3002])\s*/).filter(Boolean)}function Qi(s){return s==="cjk"}function Au(s,t,e){if(Qi(e)){let r=[...s],o=[];for(let a=0;a<t;a++)o.push(r[a%r.length]);return o.join("")}let i=s.split(/\s+/),n=[];for(let r=0;r<t;r++)n.push(i[r%i.length]);return n.join(" ")}function Eu(s,t){let e=(s||"").trim();if(ea[e])return{mode:"words",count:Qi(e)?80:50,corpus:e};if(e==="heading")return{mode:"words",count:5,corpus:Kt(t)};let i=e.match(/^(\d+)\s+sentences?$/i);if(i)return{mode:"sentences",count:Number(i[1]),corpus:Kt(t)};let n=e.match(/^(\d+)\s+items?$/i);if(n)return{mode:"items",count:Number(n[1]),corpus:Kt(t)};let r=e.match(/^(\d+)$/);if(r)return{mode:"words",count:Number(r[1]),corpus:Kt(t)};let o=Kt(t);return{mode:"words",count:Qi(o)?80:50,corpus:o}}function ku(s){let t=ea[s.corpus],e=wu(t);if(s.mode==="sentences"){let i=[];for(let n=0;n<s.count;n++)i.push(e[n%e.length]);return i.join(" ")}if(s.mode==="items"){let i=[];for(let n=0;n<s.count;n++)i.push(e[n%e.length]);return i}return Au(t,s.count,s.corpus)}function tn(s){if(s.hasAttribute("data-lorem-init"))return;s.setAttribute("data-lorem-init","");let t=Eu(s.dataset.lorem??"",s),e=ku(t),i=s.tagName.toLowerCase();t.mode==="items"&&Array.isArray(e)&&(i==="ul"||i==="ol")?s.innerHTML=e.map(n=>`<li>${n}</li>`).join(""):Array.isArray(e)?s.textContent=e.join(" "):s.textContent=e,s.setAttribute("data-lorem-filled",""),s.setAttribute("translate","no")}function ta(s=document){s.querySelectorAll(Zi).forEach(tn)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ta()):ta();var xu=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(Zi)&&tn(i),i.querySelectorAll(Zi).forEach(n=>tn(n))}});xu.observe(document.documentElement,{childList:!0,subtree:!0});var en=".audio-standalone";function sn(s){if(s.hasAttribute("data-audio-playlist-init"))return;s.setAttribute("data-audio-playlist-init","");let t=s.querySelector("audio");if(!t)return;let e=s.querySelector(".track-list");e&&(t.addEventListener("ended",()=>{let i=e.querySelector("li[data-audio-active]");i&&(i.setAttribute("data-audio-played",""),i.removeAttribute("data-audio-active"))}),e.addEventListener("click",i=>{let n=i.target.closest("a[href]");if(!n)return;i.preventDefault(),t.src=n.href,t.play(),e.querySelectorAll("li").forEach(o=>o.removeAttribute("data-audio-active")),n.closest("li")?.setAttribute("data-audio-active","")}))}function sa(s=document){s.querySelectorAll(en).forEach(t=>sn(t))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>sa()):sa();var Su=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(en)&&sn(i),i.querySelectorAll(en).forEach(n=>sn(n))}});Su.observe(document.documentElement,{childList:!0,subtree:!0});var nn=class extends b{#t;#e;#s=null;setup(){this.#s===null&&(this.#s=this.getAttribute("label")||this.textContent.trim()||"Print this page");let t=this.#s,e=this.hasAttribute("raw-toggle");if(this.innerHTML="",e&&this.setAttribute("role","group"),this.#t=document.createElement("button"),this.#t.type="button",this.#t.textContent=t,this.listen(this.#t,"click",this.#n),this.append(this.#t),e){let i=document.createElement("label");this.#e=document.createElement("input"),this.#e.type="checkbox";let n=document.createElement("span");n.textContent="Print without VB styles",i.append(this.#e,n),this.append(i)}}teardown(){this.#t=null,this.#e=null}#n=()=>{let t=this.#e?.checked;if(t&&document.documentElement.setAttribute("data-print-raw",""),window.print(),t){let e=()=>{document.documentElement.removeAttribute("data-print-raw"),window.removeEventListener("afterprint",e),clearTimeout(i)};window.addEventListener("afterprint",e,{once:!0});let i=setTimeout(e,5e3)}}};g("print-page",nn);var rn=class extends b{#t=null;#e=null;#s=[];#n="";#i=0;#r=null;#o=null;#a=null;#l=null;#c=!1;#h=!1;#p=0;#d=null;#u=null;#m=null;#b=null;#g=null;#f=null;#v=null;static get observedAttributes(){return["speed","voice","for"]}attributeChangedCallback(t,e,i){if(e!==i&&(t==="for"&&(this.stop(),this.#L()),(t==="speed"||t==="voice")&&this.#c&&this.#w(),t==="speed"&&this.#g)){let n=this.#P(parseFloat(i)||1);this.#g.value=String(n),this.#f&&(this.#f.textContent=`${n}\xD7`)}}setup(){if(!("speechSynthesis"in window))return this.style.display="none",!1;this.#y(),this.#L(),this.#D(),this.#l=this.#F(),this.#l.then(t=>this.#j(t)),this.listen(window,"beforeunload",this.#H)}teardown(){this.stop(),this.#$()}play(){if(this.#h){this.resume();return}this.#c||this.#S(0)}pause(){!this.#c||this.#h||(speechSynthesis.pause(),this.#h=!0,this.#I(!0),this.#z("text-reader:pause"))}resume(){this.#h&&(speechSynthesis.resume(),this.#h=!1,this.#I(!1),this.#z("text-reader:resume"))}stop(){speechSynthesis.cancel(),this.#O(),this.#z("text-reader:stop")}get voices(){return this.#l||this.#F()}get speaking(){return this.#c}get paused(){return this.#h}get progress(){return this.#n.length?Math.min(this.#i/this.#n.length,1):0}#y(){let t=document.createElement("div");t.setAttribute("part","controls"),t.setAttribute("role","group"),t.setAttribute("aria-label","Article reader");let e=this.#A("play",this.getAttribute("label-play")||"Play","\u25B6");e.addEventListener("click",()=>this.play());let i=this.#A("pause",this.getAttribute("label-pause")||"Pause","\u23F8");i.hidden=!0,i.addEventListener("click",()=>this.pause());let n=this.#A("stop",this.getAttribute("label-stop")||"Stop","\u23F9");n.disabled=!0,n.addEventListener("click",()=>this.stop());let r=document.createElement("select");r.setAttribute("aria-label","Voice");let o=document.createElement("option");o.textContent="Loading voices\u2026",r.append(o),r.addEventListener("change",()=>{this.#c&&this.#w()});let a=document.createElement("label");a.setAttribute("data-speed-group","");let l=document.createElement("span");l.setAttribute("data-speed-value","");let c=this.#P(parseFloat(this.getAttribute("speed")??"1")||1);l.textContent=`${c}\xD7`;let h=document.createElement("input");h.type="range",h.min="0.5",h.max="2",h.step="0.1",h.value=String(c),h.setAttribute("aria-label","Speed"),h.addEventListener("input",()=>{let u=parseFloat(h.value);l.textContent=`${u}\xD7`,this.#c&&this.#w()}),a.append(l,h),this.#k("icon-play",e),this.#k("icon-pause",i),this.#k("icon-stop",n),t.append(e,i,n,r,a),this.prepend(t),this.#v=t,this.#d=e,this.#u=i,this.#m=n,this.#b=r,this.#g=h,this.#f=l}#A(t,e,i){let n=document.createElement("button");return n.type="button",n.setAttribute("part",`button ${t}`),n.setAttribute("aria-label",e),n.textContent=i,n}#k(t,e){let i=this.querySelector(`[slot="${t}"]`);i&&(i.removeAttribute("slot"),e.textContent="",e.append(i))}#L(){let t=this.getAttribute("for");if(!t){console.warn('<text-reader>: missing "for" attribute'),this.#x();return}if(this.#t=document.getElementById(t),!this.#t){console.warn(`<text-reader>: no element found with id="${t}"`),this.#x();return}this.#T(),this.#E()}#x(){this.#d&&(this.#d.disabled=!0),this.#m&&(this.#m.disabled=!0)}#E(){this.#d&&(this.#d.disabled=!1)}#T(){let t=this.#t;if(!t)return;let e=this.getAttribute("selectors")||"p,li",i=[...t.querySelectorAll(e)],n=o=>o.closest("pre")||o.closest("code")||o.closest('[aria-hidden="true"]');this.#s=[];let r=0;for(let o of i){if(n(o))continue;let a=o.textContent.trim();a&&(this.#s.push({element:o,text:a,speechStart:r,speechEnd:r+a.length}),r+=a.length+1)}this.#n=this.#s.map(o=>o.text).join(" ")}#S(t){if(!this.#n)return;let e=t>0?this.#n.slice(t):this.#n;if(!e.trim())return;let i=new SpeechSynthesisUtterance(e);i.rate=this.#P(parseFloat(this.#g?.value??"1")||1);let n=this.#b?.selectedOptions[0];if(n?.dataset.voiceUri){let r=speechSynthesis.getVoices().find(o=>o.voiceURI===n.dataset.voiceUri);r&&(i.voice=r)}i.onboundary=r=>{if(r.name!=="word")return;let o=t+r.charIndex;this.#i=o;let a=r.charLength;if(!a){let c=this.#n.slice(o).match(/^\S+/);a=c?c[0].length:1}this.#M(o,a),this.#z("text-reader:word",{word:this.#n.slice(o,o+a),charIndex:o,element:this.#B(o)?.element})},i.onend=()=>{let r=Date.now()-this.#p;this.#O(),this.#z("text-reader:end",{duration:r})},i.onerror=r=>{r.error==="interrupted"||r.error==="canceled"||(this.#O(),this.#z("text-reader:error",{error:r.error}))},this.#e=i,this.#c=!0,this.#h=!1,this.#p=Date.now(),this.#i=t,this.#N(!0),speechSynthesis.cancel(),speechSynthesis.speak(i),this.#q(),this.#z("text-reader:play",{voice:i.voice?.name,speed:i.rate})}#w(){let t=this.#i;speechSynthesis.cancel(),this.#C(),requestAnimationFrame(()=>this.#S(t))}#q(){this.#C(),this.#r=setInterval(()=>{if(!speechSynthesis.speaking){this.#C();return}speechSynthesis.pause(),speechSynthesis.resume()},1e4)}#C(){this.#r&&clearInterval(this.#r),this.#r=null}#D(){if(!CSS.highlights)return;let t=new CSSStyleSheet;t.replaceSync(`
|
|
832
|
+
::highlight(text-reader-word) {
|
|
833
|
+
background-color: var(--text-reader-highlight, Mark);
|
|
834
|
+
color: var(--text-reader-highlight-text, MarkText);
|
|
835
|
+
}
|
|
836
|
+
`),this.#o=t,document.adoptedStyleSheets=[...document.adoptedStyleSheets,t]}#$(){let t=this.#o;t&&(document.adoptedStyleSheets=document.adoptedStyleSheets.filter(e=>e!==t),this.#o=null),this.#_()}#M(t,e){if(!CSS.highlights||this.getAttribute("highlight")==="false")return;let i=this.#B(t);if(!i)return;let n=t-i.speechStart,r=this.#R(i.element,n,e);if(!r)return;let o=new Highlight(r);if(CSS.highlights.set("text-reader-word",o),this.#a=o,this.getAttribute("scroll")!=="false"){let a=r.getBoundingClientRect(),l=window.innerHeight;(a.top<0||a.bottom>l)&&i.element.scrollIntoView({behavior:"smooth",block:"nearest"})}}#_(){CSS.highlights&&CSS.highlights.delete("text-reader-word"),this.#a=null}#B(t){let e=this.#s,i=0,n=e.length-1;for(;i<=n;){let r=i+n>>>1,o=e[r];if(t<o.speechStart)n=r-1;else if(t>=o.speechEnd)i=r+1;else return o}return null}#R(t,e,i){let n=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),r=0;for(;n.nextNode();){let o=n.currentNode,a=o.textContent??"";if(!a.trim())continue;let l=a.length;if(r+l>e){let c=e-r,h=document.createRange();h.setStart(o,Math.min(c,l));let u=c+i;return u<=l?h.setEnd(o,u):h.setEnd(o,l),h}r+=l}return null}async#F(){let t=speechSynthesis.getVoices();return t.length>0?t:new Promise(e=>{let i=()=>{speechSynthesis.removeEventListener("voiceschanged",i),e(speechSynthesis.getVoices())};speechSynthesis.addEventListener("voiceschanged",i),setTimeout(()=>{speechSynthesis.removeEventListener("voiceschanged",i),e(speechSynthesis.getVoices())},3e3)})}#j(t){if(!this.#b||!t.length)return;let e=this.#b;e.innerHTML="";let i=document.documentElement.lang||"en",n=t.filter(l=>l.lang.startsWith(i)),r=t.filter(l=>!l.lang.startsWith(i)),o=[...n,...r],a=this.getAttribute("voice");for(let l of o){let c=document.createElement("option");c.textContent=`${l.name} (${l.lang})`,c.dataset.voiceUri=l.voiceURI,a&&l.voiceURI===a&&(c.selected=!0),e.append(c)}if(!a){let l=n.find(c=>c.default)||n[0];if(l){let c=[...e.options].find(h=>h.dataset.voiceUri===l.voiceURI);c&&(c.selected=!0)}}}#N(t){!this.#d||!this.#u||!this.#m||(t?(this.#d.hidden=!0,this.#u.hidden=!1,this.#m.disabled=!1):(this.#d.hidden=!1,this.#u.hidden=!0,this.#m.disabled=!0))}#I(t){!this.#d||!this.#u||(this.#d.hidden=!t,this.#u.hidden=t)}#O(){this.#c=!1,this.#h=!1,this.#i=0,this.#e=null,this.#C(),this.#_(),this.#N(!1)}#P(t){return Math.round(Math.max(.5,Math.min(2,t))*10)/10}#z(t,e={}){this.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0}))}#H=()=>{speechSynthesis.cancel()}};g("text-reader",rn);var on=class extends b{static formAssociated=!0;#t;#e;#s;#n;constructor(){super(),this.#t=this.attachInternals()}setup(){if(this.#e=this.querySelector(":scope > textarea, :scope textarea[data-grow]"),this.#s=this.querySelector("[data-send]"),!this.#e)return!1;this.listen(this.#e,"keydown",this.#i),this.listen(this.#e,"input",this.#r),this.#s&&this.listen(this.#s,"click",this.#o),this.#l(),this.#c(),this.hasAttribute("autofocus")&&requestAnimationFrame(()=>this.#e.focus())}teardown(){clearTimeout(this.#n)}#i=t=>{switch(t.key){case"Enter":t.shiftKey||(t.preventDefault(),this.#a());break;case"Escape":t.preventDefault(),this.reset();break}};#r=()=>{this.#l(),this.#c(),clearTimeout(this.#n),this.#n=setTimeout(()=>{this.dispatchEvent(new CustomEvent("chat-input:input",{bubbles:!0,detail:{value:this.value,length:this.value.length}}))},100)};#o=t=>{t.preventDefault(),this.#a()};#a(){let t=this.value.trim(),e=parseInt(this.getAttribute("minlength")??"1",10)||1;t.length<e||this.disabled||(this.dispatchEvent(new CustomEvent("chat-input:send",{bubbles:!0,detail:{message:t,from:null,model:null}})),this.reset())}#l(){let t=this.value;t?this.#t.setFormValue(t):this.#t.setFormValue(null)}#c(){let t=this.value,e=parseInt(this.getAttribute("maxlength")??"4000",10)||4e3;t.length>e?this.#t.setValidity({tooLong:!0},`Message exceeds ${e} characters`,this.#e):this.#t.setValidity({})}formResetCallback(){this.reset()}formStateRestoreCallback(t){!t||!this.#e||(this.#e.value=t,this.#l(),this.#c())}get value(){return this.#e?.value??""}set value(t){this.#e&&(this.#e.value=t,this.#e.dispatchEvent(new Event("input",{bubbles:!0})),this.#l(),this.#c())}get disabled(){return this.hasAttribute("disabled")}set disabled(t){t?(this.setAttribute("disabled",""),this.#e&&(this.#e.disabled=!0),this.#s&&(this.#s.disabled=!0)):(this.removeAttribute("disabled"),this.#e&&(this.#e.disabled=!1),this.#s&&(this.#s.disabled=!1))}focus(){this.#e?.focus()}reset(){this.#e&&(this.#e.value="",this.#e.dispatchEvent(new Event("input",{bubbles:!0})),this.#l(),this.#c())}static get observedAttributes(){return["disabled"]}attributeChangedCallback(t,e,i){if(t==="disabled"){let n=i!==null;this.#e&&(this.#e.disabled=n),this.#s&&(this.#s.disabled=n)}}};g("chat-input",on);Ot();var an=class extends b{#t=null;#e=null;#s=null;#n=new Map;#i=null;setup(){this.#r(),this.#o(),this.#c(),this.#a(),this.#f(),this.#h()}teardown(){}#r(){this.#t=this.querySelector(":scope > chat-thread"),this.#e=this.querySelector(":scope > chat-input"),this.#s=this.querySelector(":scope > header select[data-model-select]")}#o(){let t=this.querySelector(":scope > script[data-participants]");if(t)try{let e=JSON.parse(t.textContent);this.#n=new Map(Object.entries(e))}catch{console.warn("[chat-window] Invalid participant JSON")}}#a(){if(this.#t)for(let t of this.#t.querySelectorAll("chat-message[data-from]"))this.#l(t)}#l(t){let e=t.getAttribute("data-from");if(!e)return;let i=this.#n.get(e);i?.name?t.setAttribute("data-from-label",i.name):t.hasAttribute("data-from-label")||t.setAttribute("data-from-label",e)}#c(){if(!this.#s)return;let t=this.getAttribute("model");t?this.#s.value=t:this.#s.value&&this.setAttribute("model",this.#s.value)}#h(){this.listen(this,"chat-input:send",this.#p),this.#s&&this.listen(this.#s,"change",this.#d)}#p=async t=>{t.stopPropagation();let{message:e}=t.detail;if(!e||!this.#t)return;let i=this.#u("user",e,"user");this.#t.appendChild(i),this.#v(),this.#f();let n=this.#g(),r=this.#m(n);this.#t.appendChild(r),this.#v(),this.#e&&(this.#e.disabled=!0);let o=this.getAttribute("endpoint");if(o)try{let a=await this.#y(o,e);this.#b(r,a)}catch(a){this.#b(r,"<p>Sorry, something went wrong.</p>"),r.setAttribute("data-status","error"),this.dispatchEvent(new CustomEvent("chat-window:error",{bubbles:!0,detail:{error:a.message,status:a.status??0}}))}else this.dispatchEvent(new CustomEvent("chat-window:send",{bubbles:!0,detail:{message:e,typingElement:r}}));this.#e&&(this.#e.disabled=!1,this.#e.focus()),this.#v()};#d=()=>{let t=this.#s.value;this.setAttribute("model",t),this.dispatchEvent(new CustomEvent("chat-window:model-change",{bubbles:!0,detail:{model:t}}))};#u(t,e,i){let n=document.createElement("chat-message");n.setAttribute("data-role",t),i&&(n.setAttribute("data-from",i),this.#l(n));let r=document.createElement("chat-bubble");if(e.includes("<"))r.innerHTML=et(e);else{let o=document.createElement("p");o.textContent=e,r.appendChild(o)}return n.appendChild(r),n}#m(t){let e=document.createElement("chat-message");if(e.setAttribute("data-role","agent"),e.setAttribute("data-status","typing"),t){e.setAttribute("data-from",t),this.#l(e);let o=this.#n.get(t)?.name??t;e.setAttribute("aria-label",`${o} is typing`)}else e.setAttribute("aria-label","Agent is typing");let i=this.getAttribute("model");i&&e.setAttribute("data-model",i);let n=document.createElement("chat-bubble");return e.appendChild(n),e}#b(t,e){let i=t.querySelector("chat-bubble");i&&(i.innerHTML=et(e)),t.removeAttribute("data-status"),t.removeAttribute("aria-label")}#g(){for(let[t,e]of this.#n)if(e.role==="agent")return t;return null}#f(){if(!this.#t)return;this.#t.querySelector("chat-message")!==null?(this.#i&&(this.#i.remove(),this.#i=null),this.#t.hidden=!1):(this.#t.hidden=!0,this.#i||(this.#i=document.createElement("p"),this.#i.setAttribute("data-chat-empty",""),this.#i.textContent=this.getAttribute("empty-message")||"Send a message to start.",this.#t.insertAdjacentElement("afterend",this.#i)))}#v(){this.#t&&requestAnimationFrame(()=>{this.#t.scrollTop=this.#t.scrollHeight})}async#y(t,e){let i={message:e,model:this.getAttribute("model")||void 0},n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!n.ok){let o=new Error(`Chat request failed: ${n.status}`);throw o.status=n.status,o}let r=await n.json();return r.html??r.message??r.content??""}get model(){return this.getAttribute("model")??""}set model(t){this.setAttribute("model",t),this.#s&&(this.#s.value=t)}get participants(){return this.#n}set participants(t){this.#n=t instanceof Map?t:new Map(Object.entries(t)),this.#a()}clearThread(){if(this.#t){for(;this.#t.firstChild;)this.#t.removeChild(this.#t.firstChild);this.#f()}}appendMessage(t,e,i){if(!this.#t)return;let n=this.#u(t,e,i);this.#t.appendChild(n),this.#v(),this.#f()}};g("chat-window",an);var ln=new Map([["x",{label:"X",iconName:"twitter",buildUrl:({url:s,title:t})=>`https://x.com/intent/post?url=${H(s)}&text=${H(t)}`}],["twitter",{label:"X",iconName:"twitter",buildUrl:({url:s,title:t})=>`https://x.com/intent/post?url=${H(s)}&text=${H(t)}`}],["facebook",{label:"Facebook",iconName:"facebook",buildUrl:({url:s})=>`https://www.facebook.com/sharer/sharer.php?u=${H(s)}`}],["linkedin",{label:"LinkedIn",iconName:"linkedin",buildUrl:({url:s})=>`https://www.linkedin.com/sharing/share-offsite/?url=${H(s)}`}],["whatsapp",{label:"WhatsApp",iconName:"whatsapp",iconSet:"custom",buildUrl:({url:s,title:t})=>`https://wa.me/?text=${H(`${t} ${s}`)}`}],["telegram",{label:"Telegram",iconName:"telegram",iconSet:"custom",buildUrl:({url:s,title:t})=>`https://t.me/share/url?url=${H(s)}&text=${H(t)}`}],["bluesky",{label:"Bluesky",iconName:"bluesky",iconSet:"custom",buildUrl:({url:s,title:t})=>`https://bsky.app/intent/compose?text=${H(`${t} ${s}`)}`}],["mastodon",{label:"Mastodon",iconName:"mastodon",iconSet:"custom",buildUrl:({url:s,title:t},e="mastodon.social")=>`https://${e}/share?text=${H(`${t} ${s}`)}`}],["email",{label:"Email",iconName:"mail",buildUrl:({url:s,title:t,text:e})=>`mailto:?subject=${H(t)}&body=${H(`${e}
|
|
837
|
+
|
|
838
|
+
${s}`)}`}],["copy",{label:"Copy link",iconName:"link",buildUrl:()=>""}]]),cn="x,linkedin,bluesky,mastodon,whatsapp,email,copy";function H(s){return encodeURIComponent(s)}var hn=class extends b{#t;#e;#s;#n;#i=null;#r=null;get url(){return this.#t}set url(t){this.#t=t}get title(){return this.#e??""}set title(t){this.#e=t}get text(){return this.#s}set text(t){this.#s=t}setup(){this.#o(),this.#a(),this.#n==="native"?this.#l():this.#n==="hidden"?this.style.display="none":this.children.length>0?this.#h():this.#c(),this.setAttribute("data-tier-resolved",this.#n)}teardown(){this.removeAttribute("data-tier-resolved"),this.#i&&(clearTimeout(this.#i),this.#i=null),this.#r&&(this.#r.removeEventListener("click",this.#u),this.#r.remove(),this.#r=null),this.querySelector(".share-trigger")?.remove()}async share(){this.#n==="native"&&await this.#d()}#o(){this.#t=this.getAttribute("url")||document.querySelector('link[rel="canonical"]')?.getAttribute("href")||location.href,this.#e=this.getAttribute("title")||document.querySelector('meta[property="og:title"]')?.getAttribute("content")||document.title,this.#s=this.getAttribute("text")||document.querySelector('meta[name="description"]')?.getAttribute("content")||document.querySelector('meta[property="og:description"]')?.getAttribute("content")||""}#a(){let t=this.getAttribute("tier");if(t==="platforms"||t==="native"){t==="native"&&!navigator.share?this.#n="hidden":this.#n=t;return}if((this.getAttribute("platforms")||cn)==="native-only"){this.#n=typeof navigator.share=="function"?"native":"hidden";return}this.#n=typeof navigator.share=="function"?"native":"platforms"}#l(){let t=this.getAttribute("label")||"Share",e=document.createElement("button");e.type="button",e.className="share-trigger",e.setAttribute("aria-label","Share this page"),e.innerHTML=`<icon-wc name="share-2" size="sm" aria-hidden="true"></icon-wc><span class="share-label">${t}</span>`,e.addEventListener("click",this.#p),this.appendChild(e)}#c(){let t=(this.getAttribute("platforms")||cn).split(",").map(e=>e.trim()).filter(Boolean);this.#r=document.createElement("nav"),this.#r.setAttribute("aria-label","Share this page");for(let e of t){let i=ln.get(e);if(!i)continue;let n=document.createElement("button");n.type="button",n.dataset.platform=e,n.setAttribute("aria-label",e==="copy"?"Copy link":`Share on ${i.label}`);let r=i.iconSet?` set="${i.iconSet}"`:"";n.innerHTML=`<icon-wc name="${i.iconName}" size="sm"${r} aria-hidden="true"></icon-wc><span class="share-label">${i.label}</span>`,this.#r.appendChild(n)}this.#r.addEventListener("click",this.#u),this.appendChild(this.#r)}#h(){if(this.querySelector("nav"))this.#r=this.querySelector("nav");else{let i=document.createElement("nav");for(i.setAttribute("aria-label","Share this page");this.firstChild;)i.appendChild(this.firstChild);this.appendChild(i),this.#r=i}let t=this.querySelectorAll("a[data-platform]");for(let i of t){let n=i.getAttribute("href")||"";i.setAttribute("href",n.replace(/\{url\}/g,encodeURIComponent(this.#t||"")).replace(/\{title\}/g,encodeURIComponent(this.#e||"")).replace(/\{text\}/g,encodeURIComponent(this.#s||"")))}let e=this.querySelectorAll('[data-platform="copy"]');for(let i of e)i.addEventListener("click",this.#m);this.#r.addEventListener("click",this.#u)}#p=async()=>{await this.#d()};async#d(){let t={url:this.#t||"",title:this.#e||"",text:this.#s||""};this.dispatchEvent(new CustomEvent("share-wc:open",{detail:{platform:"native"},bubbles:!0}));try{if(navigator.canShare&&!navigator.canShare(t))throw new Error("Payload not shareable");await navigator.share(t),this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:"native"},bubbles:!0}))}catch(e){e.name!=="AbortError"&&this.dispatchEvent(new CustomEvent("share-wc:error",{detail:{platform:"native",error:e},bubbles:!0}))}}#u=t=>{let e=t.target.closest("[data-platform]");if(!e)return;let i=e.dataset.platform;if(i==="copy"){this.#m(t,e);return}if(e.tagName==="A"||!i)return;let n=ln.get(i);if(!n)return;this.dispatchEvent(new CustomEvent("share-wc:open",{detail:{platform:i},bubbles:!0}));let r={url:this.#t||"",title:this.#e||"",text:this.#s||""};if(i==="email")location.href=n.buildUrl(r);else if(i==="mastodon"){let o=this.getAttribute("mastodon-instance")||"mastodon.social",a=n.buildUrl(r,o);window.open(a,"_blank","noopener,noreferrer")}else window.open(n.buildUrl(r),"_blank","noopener,noreferrer");this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:i},bubbles:!0}))};#m=async(t,e)=>{let i=e||t?.target?.closest('[data-platform="copy"]');if(i)try{await navigator.clipboard.writeText(this.#t||""),i.dataset.state="copied";let n=i.querySelector(".share-label"),r=n?.textContent;n&&(n.textContent="Copied!");let o=i.querySelector("[aria-live]")||i;i.querySelector("[aria-live]")||i.setAttribute("aria-live","polite"),this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:"copy"},bubbles:!0})),this.#i&&clearTimeout(this.#i),this.#i=setTimeout(()=>{delete i.dataset.state,n&&r&&(n.textContent=r),i.removeAttribute("aria-live"),this.#i=null},2e3)}catch(n){this.dispatchEvent(new CustomEvent("share-wc:error",{detail:{platform:"copy",error:n},bubbles:!0}))}}};g("share-wc",hn);var un=class extends b{#t=null;#e=null;#s=!1;#n=null;#i=null;#r=null;#o=null;#a=null;#l=null;#c=null;#h=null;#p=null;setup(){if(this.#t=this.querySelector("audio"),!this.#t)return!1;this.#e=this.querySelector(".track-list"),this.#t.removeAttribute("controls");let t=!this.shadowRoot;this.#d(),t&&(this.#m(),this.#b(),this.#g()),this.#k(),this.hasAttribute("autoplay")&&this.#t.play().catch(()=>{}),this.#p=()=>{let e=this.shadowRoot?.querySelector(".player");e&&(e.style.display="none",e.offsetHeight,e.style.display="")},this.listen(window,"vb:theme-change",this.#p)}teardown(){this.#t&&this.#t.setAttribute("controls","")}#d(){if(this.shadowRoot)return;let t=this.attachShadow({mode:"open"});t.innerHTML=`
|
|
839
|
+
<style>${this.#u()}</style>
|
|
840
|
+
<div part="player" class="player">
|
|
841
|
+
<div part="controls" class="controls" role="group" aria-label="Audio controls">
|
|
842
|
+
<button part="play-button" class="play-btn" type="button" aria-label="Play">
|
|
843
|
+
<svg class="icon-play" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="20" height="20">
|
|
844
|
+
<path d="M8 5v14l11-7z"/>
|
|
845
|
+
</svg>
|
|
846
|
+
<svg class="icon-pause" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="20" height="20">
|
|
847
|
+
<path d="M6 19h4V5H6zm8-14v14h4V5z"/>
|
|
848
|
+
</svg>
|
|
849
|
+
</button>
|
|
850
|
+
<div class="timeline-group">
|
|
851
|
+
<div part="track-info" class="track-info">
|
|
852
|
+
<span class="track-title"></span>
|
|
853
|
+
<span class="time-display">
|
|
854
|
+
<time class="current-time">0:00</time>
|
|
855
|
+
<span class="time-sep"> / </span>
|
|
856
|
+
<time class="duration">0:00</time>
|
|
857
|
+
</span>
|
|
858
|
+
</div>
|
|
859
|
+
<div class="timeline-wrap">
|
|
860
|
+
<input part="timeline" type="range" class="timeline"
|
|
861
|
+
min="0" max="100" value="0" step="0.1"
|
|
862
|
+
aria-label="Seek">
|
|
863
|
+
<div class="timeline-fill"></div>
|
|
864
|
+
</div>
|
|
865
|
+
</div>
|
|
866
|
+
<div class="volume-wrap">
|
|
867
|
+
<button class="mute-btn" type="button" aria-label="Mute">
|
|
868
|
+
<svg class="icon-vol" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="16" height="16">
|
|
869
|
+
<path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02z"/>
|
|
870
|
+
</svg>
|
|
871
|
+
<svg class="icon-muted" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="16" height="16">
|
|
872
|
+
<path d="M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 0 0 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4 9.91 6.09 12 8.18V4z"/>
|
|
873
|
+
</svg>
|
|
874
|
+
</button>
|
|
875
|
+
<input part="volume" type="range" class="volume"
|
|
876
|
+
min="0" max="1" value="1" step="0.01"
|
|
877
|
+
aria-label="Volume">
|
|
878
|
+
</div>
|
|
879
|
+
</div>
|
|
880
|
+
<slot></slot>
|
|
881
|
+
</div>
|
|
882
|
+
`,this.#n=t.querySelector(".controls"),this.#i=t.querySelector(".play-btn"),this.#r=t.querySelector(".timeline"),this.#o=t.querySelector(".timeline-fill"),this.#a=t.querySelector(".volume"),this.#l=t.querySelector(".current-time"),this.#c=t.querySelector(".duration"),this.#h=t.querySelector(".track-title")}#u(){return`
|
|
883
|
+
:host {
|
|
884
|
+
display: block;
|
|
885
|
+
--_accent: var(--audio-player-accent, var(--color-primary, oklch(55% 0.2 260)));
|
|
886
|
+
--_bg: var(--audio-player-bg, var(--color-surface, #fff));
|
|
887
|
+
--_radius: var(--audio-player-radius, var(--radius-m, 0.5rem));
|
|
888
|
+
--_text: var(--audio-player-text, var(--color-text, inherit));
|
|
889
|
+
--_border: var(--audio-player-border, var(--color-border, #ddd));
|
|
890
|
+
--_shadow: var(--audio-player-shadow, none);
|
|
891
|
+
--_padding: var(--audio-player-padding, var(--size-xs, 0.5rem) var(--size-s, 0.75rem));
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
.player {
|
|
895
|
+
background: var(--_bg);
|
|
896
|
+
color: var(--_text);
|
|
897
|
+
border: var(--border-width-thin, 1px) solid var(--_border);
|
|
898
|
+
border-radius: var(--_radius);
|
|
899
|
+
box-shadow: var(--_shadow);
|
|
900
|
+
overflow: hidden;
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
.controls {
|
|
904
|
+
display: flex;
|
|
905
|
+
align-items: center;
|
|
906
|
+
gap: var(--size-xs, 0.5rem);
|
|
907
|
+
padding: var(--_padding);
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
/* \u2500\u2500 Play button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
911
|
+
.play-btn {
|
|
912
|
+
all: unset;
|
|
913
|
+
display: flex;
|
|
914
|
+
align-items: center;
|
|
915
|
+
justify-content: center;
|
|
916
|
+
width: 2.25rem;
|
|
917
|
+
height: 2.25rem;
|
|
918
|
+
border-radius: var(--radius-full, 50%);
|
|
919
|
+
background: var(--_accent);
|
|
920
|
+
color: var(--color-text-on-primary, white);
|
|
921
|
+
cursor: pointer;
|
|
922
|
+
flex-shrink: 0;
|
|
923
|
+
transition: background-color var(--duration-fast, 100ms) var(--ease-default, ease),
|
|
924
|
+
transform var(--duration-fast, 100ms) var(--ease-default, ease);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
.play-btn:hover {
|
|
928
|
+
background-color: var(--color-primary-hover, var(--_accent));
|
|
929
|
+
transform: scale(1.05);
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
.play-btn:active {
|
|
933
|
+
transform: scale(0.97);
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
.play-btn:focus-visible {
|
|
937
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--_accent));
|
|
938
|
+
outline-offset: 2px;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
.icon-pause { display: none; }
|
|
942
|
+
:host([state="playing"]) .icon-play { display: none; }
|
|
943
|
+
:host([state="playing"]) .icon-pause { display: block; }
|
|
944
|
+
|
|
945
|
+
/* \u2500\u2500 Timeline group \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
946
|
+
.timeline-group {
|
|
947
|
+
flex: 1;
|
|
948
|
+
min-width: 0;
|
|
949
|
+
display: flex;
|
|
950
|
+
flex-direction: column;
|
|
951
|
+
gap: var(--size-3xs, 2px);
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
.track-info {
|
|
955
|
+
display: flex;
|
|
956
|
+
justify-content: space-between;
|
|
957
|
+
align-items: center;
|
|
958
|
+
gap: var(--size-xs, 0.5rem);
|
|
959
|
+
font-size: var(--font-size-xs, 0.75rem);
|
|
960
|
+
line-height: 1.2;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
.track-title {
|
|
964
|
+
overflow: hidden;
|
|
965
|
+
white-space: nowrap;
|
|
966
|
+
text-overflow: ellipsis;
|
|
967
|
+
flex: 1;
|
|
968
|
+
font-weight: 500;
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
.time-display {
|
|
972
|
+
flex-shrink: 0;
|
|
973
|
+
font-family: var(--font-mono, ui-monospace, monospace);
|
|
974
|
+
font-variant-numeric: tabular-nums;
|
|
975
|
+
color: var(--color-text-muted, #666);
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
.time-sep { opacity: 0.5; }
|
|
979
|
+
|
|
980
|
+
.timeline-wrap {
|
|
981
|
+
position: relative;
|
|
982
|
+
height: 1.25rem;
|
|
983
|
+
display: flex;
|
|
984
|
+
align-items: center;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
.timeline-fill {
|
|
988
|
+
position: absolute;
|
|
989
|
+
left: 0;
|
|
990
|
+
top: 50%;
|
|
991
|
+
transform: translateY(-50%);
|
|
992
|
+
height: 4px;
|
|
993
|
+
background: var(--_accent);
|
|
994
|
+
pointer-events: none;
|
|
995
|
+
border-radius: var(--radius-full, 2px);
|
|
996
|
+
width: 0%;
|
|
997
|
+
transition: width var(--duration-instant, 50ms) linear;
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
.timeline {
|
|
1001
|
+
width: 100%;
|
|
1002
|
+
height: 1.25rem;
|
|
1003
|
+
appearance: none;
|
|
1004
|
+
background: transparent;
|
|
1005
|
+
cursor: pointer;
|
|
1006
|
+
position: relative;
|
|
1007
|
+
z-index: 1;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
.timeline::-webkit-slider-runnable-track {
|
|
1011
|
+
height: 4px;
|
|
1012
|
+
background: var(--_border);
|
|
1013
|
+
border-radius: var(--radius-full, 2px);
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
.timeline::-moz-range-track {
|
|
1017
|
+
height: 4px;
|
|
1018
|
+
background: var(--_border);
|
|
1019
|
+
border-radius: var(--radius-full, 2px);
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
.timeline::-webkit-slider-thumb {
|
|
1023
|
+
-webkit-appearance: none;
|
|
1024
|
+
width: 12px;
|
|
1025
|
+
height: 12px;
|
|
1026
|
+
border-radius: var(--radius-full, 50%);
|
|
1027
|
+
background: var(--_accent);
|
|
1028
|
+
border: var(--border-width-medium, 2px) solid var(--_bg);
|
|
1029
|
+
box-shadow: var(--shadow-sm, 0 1px 3px oklch(0% 0 0 / 0.2));
|
|
1030
|
+
cursor: pointer;
|
|
1031
|
+
margin-top: -4px;
|
|
1032
|
+
transition: transform var(--duration-fast, 100ms) var(--ease-default, ease);
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
.timeline:hover::-webkit-slider-thumb {
|
|
1036
|
+
transform: scale(1.2);
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
.timeline::-moz-range-thumb {
|
|
1040
|
+
width: 12px;
|
|
1041
|
+
height: 12px;
|
|
1042
|
+
border-radius: var(--radius-full, 50%);
|
|
1043
|
+
background: var(--_accent);
|
|
1044
|
+
border: var(--border-width-medium, 2px) solid var(--_bg);
|
|
1045
|
+
box-shadow: var(--shadow-sm, 0 1px 3px oklch(0% 0 0 / 0.2));
|
|
1046
|
+
cursor: pointer;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
.timeline::-moz-range-progress {
|
|
1050
|
+
height: 4px;
|
|
1051
|
+
background: var(--_accent);
|
|
1052
|
+
border-radius: var(--radius-full, 2px);
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
.timeline:focus-visible {
|
|
1056
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--_accent));
|
|
1057
|
+
outline-offset: 4px;
|
|
1058
|
+
border-radius: var(--radius-s, 2px);
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
/* \u2500\u2500 Volume \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1062
|
+
.volume-wrap {
|
|
1063
|
+
display: flex;
|
|
1064
|
+
align-items: center;
|
|
1065
|
+
gap: var(--size-2xs, 4px);
|
|
1066
|
+
flex: 0 0 80px;
|
|
1067
|
+
min-width: 0;
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
.mute-btn {
|
|
1071
|
+
all: unset;
|
|
1072
|
+
display: flex;
|
|
1073
|
+
align-items: center;
|
|
1074
|
+
justify-content: center;
|
|
1075
|
+
cursor: pointer;
|
|
1076
|
+
color: var(--color-text-muted, #666);
|
|
1077
|
+
flex-shrink: 0;
|
|
1078
|
+
transition: color var(--duration-fast, 100ms) var(--ease-default, ease);
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
.mute-btn:hover {
|
|
1082
|
+
color: var(--color-text, inherit);
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
.mute-btn:focus-visible {
|
|
1086
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--_accent));
|
|
1087
|
+
outline-offset: 2px;
|
|
1088
|
+
border-radius: var(--radius-s, 2px);
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
.icon-muted { display: none; }
|
|
1092
|
+
:host([muted]) .icon-vol { display: none; }
|
|
1093
|
+
:host([muted]) .icon-muted { display: block; }
|
|
1094
|
+
|
|
1095
|
+
.volume {
|
|
1096
|
+
flex: 1;
|
|
1097
|
+
min-width: 0;
|
|
1098
|
+
height: 1rem;
|
|
1099
|
+
appearance: none;
|
|
1100
|
+
background: transparent;
|
|
1101
|
+
cursor: pointer;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
.volume::-webkit-slider-runnable-track {
|
|
1105
|
+
height: 3px;
|
|
1106
|
+
background: linear-gradient(to right,
|
|
1107
|
+
var(--_accent) calc(var(--_vol, 1) * 100%),
|
|
1108
|
+
var(--_border) calc(var(--_vol, 1) * 100%));
|
|
1109
|
+
border-radius: var(--radius-full, 2px);
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
.volume::-moz-range-track {
|
|
1113
|
+
height: 3px;
|
|
1114
|
+
background: var(--_border);
|
|
1115
|
+
border-radius: var(--radius-full, 2px);
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
.volume::-moz-range-progress {
|
|
1119
|
+
height: 3px;
|
|
1120
|
+
background: var(--_accent);
|
|
1121
|
+
border-radius: var(--radius-full, 2px);
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
.volume::-webkit-slider-thumb {
|
|
1125
|
+
-webkit-appearance: none;
|
|
1126
|
+
width: 10px;
|
|
1127
|
+
height: 10px;
|
|
1128
|
+
border-radius: var(--radius-full, 50%);
|
|
1129
|
+
background: var(--_accent);
|
|
1130
|
+
border: none;
|
|
1131
|
+
cursor: pointer;
|
|
1132
|
+
margin-top: -3.5px;
|
|
1133
|
+
transition: transform var(--duration-fast, 100ms) var(--ease-default, ease);
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
.volume:hover::-webkit-slider-thumb {
|
|
1137
|
+
transform: scale(1.3);
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
.volume::-moz-range-thumb {
|
|
1141
|
+
width: 10px;
|
|
1142
|
+
height: 10px;
|
|
1143
|
+
border-radius: var(--radius-full, 50%);
|
|
1144
|
+
background: var(--_accent);
|
|
1145
|
+
border: none;
|
|
1146
|
+
cursor: pointer;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
.volume:focus-visible {
|
|
1150
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--_accent));
|
|
1151
|
+
outline-offset: 2px;
|
|
1152
|
+
border-radius: var(--radius-s, 2px);
|
|
1153
|
+
}
|
|
1154
|
+
|
|
1155
|
+
/* \u2500\u2500 Slot: hide native audio controls \u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1156
|
+
::slotted(audio) {
|
|
1157
|
+
display: none !important;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
/* \u2500\u2500 Reduced motion \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1161
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1162
|
+
.play-btn,
|
|
1163
|
+
.timeline-fill,
|
|
1164
|
+
.timeline::-webkit-slider-thumb,
|
|
1165
|
+
.volume::-webkit-slider-thumb,
|
|
1166
|
+
.mute-btn {
|
|
1167
|
+
transition: none;
|
|
1168
|
+
}
|
|
1169
|
+
.play-btn:hover,
|
|
1170
|
+
.play-btn:active,
|
|
1171
|
+
.timeline:hover::-webkit-slider-thumb,
|
|
1172
|
+
.volume:hover::-webkit-slider-thumb {
|
|
1173
|
+
transform: none;
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
`}#m(){this.#t.addEventListener("timeupdate",()=>this.#y()),this.#t.addEventListener("loadedmetadata",()=>this.#A()),this.#t.addEventListener("play",()=>{this.#s=!0,this.setAttribute("state","playing"),this.#i.setAttribute("aria-label","Pause"),this.#x("audio-player:play",{currentTime:this.#t.currentTime,src:this.#t.currentSrc})}),this.#t.addEventListener("pause",()=>{this.#s=!1,this.setAttribute("state","paused"),this.#i.setAttribute("aria-label","Play"),this.#x("audio-player:pause",{currentTime:this.#t.currentTime})}),this.#t.addEventListener("ended",()=>{this.#s=!1,this.setAttribute("state","ended"),this.#i.setAttribute("aria-label","Play");let t=this.#e?.querySelector("li[data-audio-active]");t&&t.setAttribute("data-audio-played",""),this.#e&&this.#v(),this.#x("audio-player:ended",{src:this.#t.currentSrc})})}#b(){this.#i.addEventListener("click",()=>{this.#s?this.#t.pause():this.#t.play().catch(()=>{})}),this.#r.addEventListener("input",()=>{this.#t.duration&&(this.#t.currentTime=Number(this.#r.value)/100*this.#t.duration)}),this.#a.addEventListener("input",()=>{this.#t.volume=Number(this.#a.value),this.#t.muted=!1,this.removeAttribute("muted"),this.#a.style.setProperty("--_vol",this.#a.value)});let t=this.shadowRoot?.querySelector(".mute-btn");t&&(t.addEventListener("click",()=>{this.#t.muted=!this.#t.muted,this.toggleAttribute("muted",this.#t.muted),this.#a.style.setProperty("--_vol",this.#t.muted?"0":this.#a.value)}),this.addEventListener("keydown",e=>{let i=e.target;if(!(i?.tagName==="INPUT"||i?.tagName==="TEXTAREA"))switch(e.key){case" ":e.preventDefault(),this.#s?this.#t.pause():this.#t.play().catch(()=>{});break;case"ArrowLeft":e.preventDefault(),this.#t.currentTime=Math.max(0,this.#t.currentTime-10);break;case"ArrowRight":e.preventDefault(),this.#t.currentTime=Math.min(this.#t.duration||0,this.#t.currentTime+10);break;case"m":case"M":this.#t.muted=!this.#t.muted,this.toggleAttribute("muted",this.#t.muted),this.#a.style.setProperty("--_vol",this.#t.muted?"0":this.#a.value);break}}),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"))}#g(){this.#e&&this.#e.addEventListener("click",t=>{let i=t.target?.closest("a[href]");i&&(t.preventDefault(),this.#f(i.href,i.closest("li")))})}#f(t,e){if(!this.#e)return;this.#e.querySelectorAll("li").forEach(n=>n.removeAttribute("data-audio-active")),e&&e.setAttribute("data-audio-active",""),this.#t.src=t,this.#t.play().catch(()=>{}),this.#k(),this.#x("audio-player:track-change",{src:t,title:e?.querySelector("a")?.textContent??""})}#v(){if(!this.#e)return;let t=[...this.#e.querySelectorAll("li")],e=t.findIndex(n=>n.hasAttribute("data-audio-active"));if(this.hasAttribute("shuffle")){let n=t.filter((r,o)=>o!==e);if(n.length){let r=n[Math.floor(Math.random()*n.length)],o=r.querySelector("a[href]");o&&this.#f(o.href,r)}return}let i=e+1;if(i<t.length){let n=t[i].querySelector("a[href]");n&&this.#f(n.href,t[i])}else if(this.hasAttribute("loop")){let n=t[0]?.querySelector("a[href]");n&&this.#f(n.href,t[0])}}#y(){let t=this.#t.currentTime,e=this.#t.duration||0,i=e?t/e*100:0;this.#l.textContent=this.#L(t),this.#r.value=String(i),this.#o.style.width=`${i}%`}#A(){let t=this.#t.duration||0;this.#c.textContent=this.#L(t)}#k(){if(!this.#h)return;if(this.#e){let e=this.#e.querySelector("li[data-audio-active] a");if(e){this.#h.textContent=e.textContent;return}}let t=this.#t.currentSrc||this.#t.querySelector("source")?.src||"";if(t){let e=t.split("/").pop().split("?")[0];this.#h.textContent=e.replace(/\.[^.]+$/,"").replace(/[-_]/g," ")}}#L(t){if(!Number.isFinite(t))return"0:00";let e=Math.floor(t/60),i=Math.floor(t%60).toString().padStart(2,"0");return`${e}:${i}`}#x(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}};g("audio-player",un);var dn=new Map;function Cu(){if(!dn.has("default"))try{dn.set("default",new AudioContext)}catch{return null}return dn.get("default")}var pn=new WeakMap;function Tu(s,t){if(pn.has(s))return pn.get(s);let e=t.createMediaElementSource(s);return pn.set(s,e),e}var mn=class extends b{#t=null;#e=null;#s=null;#n=null;#i=null;#r=null;#o=null;#a=null;#l=!0;#c=!1;#h=!1;#p=null;static get observedAttributes(){return["for","data-mode","data-fft-size"]}setup(){this.#h=window.matchMedia("(prefers-reduced-motion: reduce)").matches;let t=!this.shadowRoot;this.#d(),this.#u(),t&&(this.#k(),this.#L()),this.#p=()=>{let e=this.shadowRoot?.querySelector("canvas");e&&(e.style.display="none",e.offsetHeight,e.style.display="")},this.listen(window,"vb:theme-change",this.#p)}teardown(){this.#g(),this.#a?.disconnect()}attributeChangedCallback(t){t==="for"&&this.#u()}#d(){if(this.shadowRoot)return;let t=this.attachShadow({mode:"open"});t.innerHTML=`
|
|
1177
|
+
<style>
|
|
1178
|
+
:host {
|
|
1179
|
+
display: block;
|
|
1180
|
+
--_color: var(--audio-visualizer-color, var(--color-primary, oklch(55% 0.2 260)));
|
|
1181
|
+
--_bg: var(--audio-visualizer-bg, var(--color-surface-sunken, transparent));
|
|
1182
|
+
--_height: var(--audio-visualizer-height, 80px);
|
|
1183
|
+
--_radius: var(--audio-visualizer-radius, var(--radius-m, 0.5rem));
|
|
1184
|
+
}
|
|
1185
|
+
canvas {
|
|
1186
|
+
display: block;
|
|
1187
|
+
width: 100%;
|
|
1188
|
+
height: var(--_height);
|
|
1189
|
+
background: var(--_bg);
|
|
1190
|
+
border-radius: var(--_radius);
|
|
1191
|
+
}
|
|
1192
|
+
</style>
|
|
1193
|
+
<canvas aria-hidden="true"></canvas>
|
|
1194
|
+
`,this.#t=t.querySelector("canvas")}#u(){let t=this.getAttribute("for");t&&(this.#s=document.getElementById(t),!(!this.#s||this.#s.tagName!=="AUDIO")&&(this.#c||this.#s.addEventListener("play",()=>this.#m(),{once:!0})))}#m(){if(this.#c||(this.#c=!0,this.#n=Cu(),!this.#n))return;this.#n.state==="suspended"&&this.#n.resume();let t=parseInt(this.getAttribute("data-fft-size")||"256",10);this.#i=this.#n.createAnalyser(),this.#i.fftSize=t,this.#i.smoothingTimeConstant=.8,this.#r=Tu(this.#s,this.#n),this.#r.connect(this.#i),this.#i.connect(this.#n.destination),this.#b()}#b(){if(this.#h)return;let t=()=>{if(!this.#l||this.#h){this.#o=null;return}this.#o=requestAnimationFrame(t),this.#f()};this.#o=requestAnimationFrame(t)}#g(){this.#o&&(cancelAnimationFrame(this.#o),this.#o=null)}#f(){let t=this.#t,e=t.getContext("2d");if(!e)return;let i=t.width=t.offsetWidth*(window.devicePixelRatio||1),n=t.height=t.offsetHeight*(window.devicePixelRatio||1),r=getComputedStyle(this),o=r.getPropertyValue("--_color").trim()||"oklch(55% 0.2 260)",a=r.getPropertyValue("--_bg").trim();if(e.clearRect(0,0,i,n),a&&a!=="transparent"&&(e.fillStyle=a,e.fillRect(0,0,i,n)),!this.#i)return;let l=this.getAttribute("data-mode")||"bars",c=this.#i.frequencyBinCount,h=new Uint8Array(c);l==="waveform"?(this.#i.getByteTimeDomainData(h),this.#y(e,i,n,o,h)):l==="circle"?(this.#i.getByteFrequencyData(h),this.#A(e,i,n,o,h)):(this.#i.getByteFrequencyData(h),this.#v(e,i,n,o,h))}#v(t,e,i,n,r){let o=Math.min(r.length,64),a=e/o-1;t.fillStyle=n;for(let l=0;l<o;l++){let h=r[l]/255*i,u=l*(e/o);t.fillRect(u,i-h,a,h)}}#y(t,e,i,n,r){let o=e/r.length;t.strokeStyle=n,t.lineWidth=2,t.beginPath();for(let a=0;a<r.length;a++){let c=r[a]/128*i/2;a===0?t.moveTo(0,c):t.lineTo(a*o,c)}t.stroke()}#A(t,e,i,n,r){let o=e/2,a=i/2,l=Math.min(e,i)*.25,c=r.length;t.strokeStyle=n,t.lineWidth=2,t.beginPath();for(let h=0;h<c;h++){let u=h/c*Math.PI*2,d=r[h]/255*(l*.8),p=l+d,m=o+p*Math.cos(u),f=a+p*Math.sin(u);h===0?t.moveTo(m,f):t.lineTo(m,f)}t.closePath(),t.stroke()}#k(){this.#a=new IntersectionObserver(([t])=>{this.#l=t.isIntersecting,this.#l&&this.#c&&!this.#o&&!this.#h&&this.#b()}),this.#a.observe(this)}#L(){window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",t=>{this.#h=t.matches,t.matches?this.#g():this.#c&&this.#l&&this.#b()})}};g("audio-visualizer",mn);var ia=[.5,.75,1,1.25,1.5,2],Lu=3e3,fn=class extends b{#t=null;#e=null;#s=!1;#n=null;#i=null;#r=null;#o=null;#a=null;#l=null;#c=null;#h=null;#p=null;#d=null;#u=null;#m=null;#b=null;#g=null;#f=null;#v=2;#y=null;#A=null;setup(){if(this.#t=this.querySelector("video"),!this.#t)return!1;this.#e=this.querySelector(".track-list"),this.#t.removeAttribute("controls");let t=!this.shadowRoot;this.#k(),t&&(this.#x(),this.#E(),this.#q(),this.#T()),this.hasAttribute("muted")&&(this.#t.muted=!0,this.setAttribute("muted","")),this.hasAttribute("autoplay")&&this.#t.play().catch(()=>{}),this.#S(),this.#y=()=>{let e=this.shadowRoot?.querySelector(".player");e&&(e.style.display="none",e.offsetHeight,e.style.display="")},this.listen(window,"vb:theme-change",this.#y),this.#A=()=>{let e=!!document.fullscreenElement;this.toggleAttribute("data-fullscreen",e),this.#m.setAttribute("aria-label",e?"Exit fullscreen":"Fullscreen"),this.#P("video-player:fullscreen",{active:e})},this.listen(document,"fullscreenchange",this.#A),this.setAttribute("state","idle")}teardown(){this.#t&&this.#t.setAttribute("controls",""),this.#f!=null&&clearTimeout(this.#f)}#k(){if(this.shadowRoot)return;let t=this.attachShadow({mode:"open"});t.innerHTML=`
|
|
1195
|
+
<style>${this.#L()}</style>
|
|
1196
|
+
<div part="player" class="player">
|
|
1197
|
+
<slot></slot>
|
|
1198
|
+
<button part="play-overlay" class="play-overlay" type="button" aria-label="Play video">
|
|
1199
|
+
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="48" height="48">
|
|
1200
|
+
<path d="M8 5v14l11-7z"/>
|
|
1201
|
+
</svg>
|
|
1202
|
+
</button>
|
|
1203
|
+
<div class="buffer-indicator" aria-hidden="true">
|
|
1204
|
+
<svg viewBox="0 0 24 24" width="40" height="40" fill="none" stroke="currentColor" stroke-width="2">
|
|
1205
|
+
<circle cx="12" cy="12" r="10" opacity="0.3"/>
|
|
1206
|
+
<path d="M12 2a10 10 0 0 1 10 10" stroke-linecap="round"/>
|
|
1207
|
+
</svg>
|
|
1208
|
+
</div>
|
|
1209
|
+
<div class="controls-gradient" aria-hidden="true"></div>
|
|
1210
|
+
<div part="controls" class="controls" role="group" aria-label="Video controls">
|
|
1211
|
+
<div class="timeline-wrap">
|
|
1212
|
+
<input part="timeline" type="range" class="timeline"
|
|
1213
|
+
min="0" max="100" value="0" step="0.1"
|
|
1214
|
+
aria-label="Seek">
|
|
1215
|
+
<div class="timeline-buffer"></div>
|
|
1216
|
+
<div class="timeline-fill"></div>
|
|
1217
|
+
</div>
|
|
1218
|
+
<div class="controls-row">
|
|
1219
|
+
<button part="play-button" class="play-btn" type="button" aria-label="Play">
|
|
1220
|
+
<svg class="icon-play" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="20" height="20">
|
|
1221
|
+
<path d="M8 5v14l11-7z"/>
|
|
1222
|
+
</svg>
|
|
1223
|
+
<svg class="icon-pause" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="20" height="20">
|
|
1224
|
+
<path d="M6 19h4V5H6zm8-14v14h4V5z"/>
|
|
1225
|
+
</svg>
|
|
1226
|
+
</button>
|
|
1227
|
+
<button class="skip-back-btn" type="button" aria-label="Skip back 10 seconds">
|
|
1228
|
+
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="18" height="18">
|
|
1229
|
+
<path d="M11.99 5V1l-5 5 5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6h-2c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"/>
|
|
1230
|
+
<text x="12" y="15.5" text-anchor="middle" font-size="7" font-weight="700" fill="currentColor" font-family="system-ui">10</text>
|
|
1231
|
+
</svg>
|
|
1232
|
+
</button>
|
|
1233
|
+
<button class="skip-forward-btn" type="button" aria-label="Skip forward 10 seconds">
|
|
1234
|
+
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="18" height="18">
|
|
1235
|
+
<path d="M12.01 5V1l5 5-5 5V7c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6h2c0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8z"/>
|
|
1236
|
+
<text x="12" y="15.5" text-anchor="middle" font-size="7" font-weight="700" fill="currentColor" font-family="system-ui">10</text>
|
|
1237
|
+
</svg>
|
|
1238
|
+
</button>
|
|
1239
|
+
<div class="volume-wrap">
|
|
1240
|
+
<button class="mute-btn" type="button" aria-label="Mute">
|
|
1241
|
+
<svg class="icon-vol" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="18" height="18">
|
|
1242
|
+
<path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02z"/>
|
|
1243
|
+
</svg>
|
|
1244
|
+
<svg class="icon-muted" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="18" height="18">
|
|
1245
|
+
<path d="M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 0 0 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4 9.91 6.09 12 8.18V4z"/>
|
|
1246
|
+
</svg>
|
|
1247
|
+
</button>
|
|
1248
|
+
<input part="volume" type="range" class="volume"
|
|
1249
|
+
min="0" max="1" value="1" step="0.01"
|
|
1250
|
+
aria-label="Volume">
|
|
1251
|
+
</div>
|
|
1252
|
+
<span part="time-display" class="time-display">
|
|
1253
|
+
<time class="current-time">0:00</time>
|
|
1254
|
+
<span class="time-sep"> / </span>
|
|
1255
|
+
<time class="duration">0:00</time>
|
|
1256
|
+
</span>
|
|
1257
|
+
<span class="spacer"></span>
|
|
1258
|
+
<button part="speed-button" class="speed-btn" type="button" aria-label="Playback speed 1x">
|
|
1259
|
+
<span aria-live="polite">1x</span>
|
|
1260
|
+
</button>
|
|
1261
|
+
<button part="captions-button" class="captions-btn" type="button" aria-label="Captions" aria-pressed="false">
|
|
1262
|
+
<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="20" height="20">
|
|
1263
|
+
<path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"/>
|
|
1264
|
+
</svg>
|
|
1265
|
+
</button>
|
|
1266
|
+
<button part="fullscreen-button" class="fullscreen-btn" type="button" aria-label="Fullscreen">
|
|
1267
|
+
<svg class="icon-fs-enter" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="20" height="20">
|
|
1268
|
+
<path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/>
|
|
1269
|
+
</svg>
|
|
1270
|
+
<svg class="icon-fs-exit" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="20" height="20">
|
|
1271
|
+
<path d="M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"/>
|
|
1272
|
+
</svg>
|
|
1273
|
+
</button>
|
|
1274
|
+
</div>
|
|
1275
|
+
</div>
|
|
1276
|
+
<div class="sr-status" role="status" aria-live="polite"></div>
|
|
1277
|
+
</div>
|
|
1278
|
+
`,this.#n=t.querySelector(".controls"),this.#i=t.querySelector(".play-btn"),this.#r=t.querySelector(".play-overlay"),this.#o=t.querySelector(".timeline"),this.#a=t.querySelector(".timeline-fill"),this.#l=t.querySelector(".timeline-buffer"),this.#c=t.querySelector(".volume"),this.#h=t.querySelector(".current-time"),this.#p=t.querySelector(".duration"),this.#d=t.querySelector(".speed-btn"),this.#u=t.querySelector(".captions-btn"),this.#m=t.querySelector(".fullscreen-btn"),this.#b=t.querySelector(".buffer-indicator"),this.#g=t.querySelector(".sr-status"),this.#t.querySelector('track[kind="captions"], track[kind="subtitles"]')||(this.#u.hidden=!0)}#L(){return`
|
|
1279
|
+
:host {
|
|
1280
|
+
display: block;
|
|
1281
|
+
--_accent: var(--video-player-accent, var(--color-primary, oklch(55% 0.2 260)));
|
|
1282
|
+
--_controls-bg: var(--video-player-controls-bg, oklch(0% 0 0 / 0.75));
|
|
1283
|
+
--_controls-text: var(--video-player-controls-text, #fff);
|
|
1284
|
+
--_radius: var(--video-player-radius, var(--radius-m, 0.5rem));
|
|
1285
|
+
--_border: var(--video-player-border, none);
|
|
1286
|
+
--_shadow: var(--video-player-shadow, none);
|
|
1287
|
+
--_controls-padding: var(--video-player-controls-padding, var(--size-xs, 0.5rem) var(--size-s, 0.75rem));
|
|
1288
|
+
--_overlay-bg: var(--video-player-overlay-bg, oklch(0% 0 0 / 0.4));
|
|
1289
|
+
--_timeline-height: var(--video-player-timeline-height, 4px);
|
|
1290
|
+
--_timeline-buffer: var(--video-player-timeline-buffer, oklch(100% 0 0 / 0.3));
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
.player {
|
|
1294
|
+
position: relative;
|
|
1295
|
+
container-type: normal;
|
|
1296
|
+
background: #000;
|
|
1297
|
+
border: var(--_border);
|
|
1298
|
+
border-radius: var(--_radius);
|
|
1299
|
+
box-shadow: var(--_shadow);
|
|
1300
|
+
overflow: hidden;
|
|
1301
|
+
line-height: 0;
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
/* \u2500\u2500 Slotted video \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1305
|
+
::slotted(video) {
|
|
1306
|
+
display: block;
|
|
1307
|
+
width: 100%;
|
|
1308
|
+
height: auto;
|
|
1309
|
+
aspect-ratio: 16 / 9; /* fallback before metadata loads; intrinsic ratio overrides once known */
|
|
1310
|
+
}
|
|
1311
|
+
|
|
1312
|
+
::slotted(details) {
|
|
1313
|
+
line-height: 1.5;
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
/* \u2500\u2500 Play overlay \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1317
|
+
.play-overlay {
|
|
1318
|
+
all: unset;
|
|
1319
|
+
position: absolute;
|
|
1320
|
+
inset: 0;
|
|
1321
|
+
display: flex;
|
|
1322
|
+
align-items: center;
|
|
1323
|
+
justify-content: center;
|
|
1324
|
+
cursor: pointer;
|
|
1325
|
+
z-index: 2;
|
|
1326
|
+
transition: opacity var(--duration-fast, 200ms) var(--ease-default, ease);
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
.play-overlay svg {
|
|
1330
|
+
background: var(--_overlay-bg);
|
|
1331
|
+
border-radius: var(--radius-full, 50%);
|
|
1332
|
+
padding: 1rem;
|
|
1333
|
+
color: var(--_controls-text);
|
|
1334
|
+
transition: transform var(--duration-fast, 150ms) var(--ease-default, ease),
|
|
1335
|
+
background var(--duration-fast, 150ms) var(--ease-default, ease);
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1338
|
+
.play-overlay:hover svg {
|
|
1339
|
+
transform: scale(1.1);
|
|
1340
|
+
background: oklch(0% 0 0 / 0.6);
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
.play-overlay:focus-visible svg {
|
|
1344
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--_accent));
|
|
1345
|
+
outline-offset: 4px;
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
:host([state="playing"]) .play-overlay,
|
|
1349
|
+
:host([state="buffering"]) .play-overlay {
|
|
1350
|
+
opacity: 0;
|
|
1351
|
+
pointer-events: none;
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
:host([state="paused"]) .play-overlay {
|
|
1355
|
+
opacity: 0;
|
|
1356
|
+
pointer-events: none;
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
:host([state="ended"]) .play-overlay {
|
|
1360
|
+
opacity: 1;
|
|
1361
|
+
pointer-events: auto;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
/* \u2500\u2500 Buffer indicator \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1365
|
+
.buffer-indicator {
|
|
1366
|
+
position: absolute;
|
|
1367
|
+
inset: 0;
|
|
1368
|
+
display: flex;
|
|
1369
|
+
align-items: center;
|
|
1370
|
+
justify-content: center;
|
|
1371
|
+
pointer-events: none;
|
|
1372
|
+
z-index: 1;
|
|
1373
|
+
opacity: 0;
|
|
1374
|
+
color: var(--_controls-text);
|
|
1375
|
+
transition: opacity var(--duration-fast, 200ms) var(--ease-default, ease);
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1378
|
+
.buffer-indicator svg {
|
|
1379
|
+
animation: vp-spin 1s linear infinite;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
:host([state="buffering"]) .buffer-indicator {
|
|
1383
|
+
opacity: 1;
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
@keyframes vp-spin {
|
|
1387
|
+
to { transform: rotate(360deg); }
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
/* \u2500\u2500 Controls gradient \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1391
|
+
.controls-gradient {
|
|
1392
|
+
position: absolute;
|
|
1393
|
+
bottom: 0;
|
|
1394
|
+
left: 0;
|
|
1395
|
+
right: 0;
|
|
1396
|
+
height: 120px;
|
|
1397
|
+
background: linear-gradient(transparent, oklch(0% 0 0 / 0.7));
|
|
1398
|
+
pointer-events: none;
|
|
1399
|
+
z-index: 3;
|
|
1400
|
+
transition: opacity var(--duration-fast, 300ms) var(--ease-default, ease);
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
/* \u2500\u2500 Controls overlay \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1404
|
+
.controls {
|
|
1405
|
+
position: absolute;
|
|
1406
|
+
bottom: 0;
|
|
1407
|
+
left: 0;
|
|
1408
|
+
right: 0;
|
|
1409
|
+
z-index: 4;
|
|
1410
|
+
padding: var(--_controls-padding);
|
|
1411
|
+
color: var(--_controls-text);
|
|
1412
|
+
line-height: 1.4;
|
|
1413
|
+
transition: opacity var(--duration-fast, 300ms) var(--ease-default, ease),
|
|
1414
|
+
visibility var(--duration-fast, 300ms);
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
/* Controls hidden state */
|
|
1418
|
+
:host([state="playing"]:not([controls])) .controls,
|
|
1419
|
+
:host([state="playing"]:not([controls])) .controls-gradient {
|
|
1420
|
+
opacity: 0;
|
|
1421
|
+
visibility: hidden;
|
|
1422
|
+
}
|
|
1423
|
+
|
|
1424
|
+
:host([state="playing"]:not([controls])) {
|
|
1425
|
+
cursor: none;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
/* \u2500\u2500 Timeline \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1429
|
+
.timeline-wrap {
|
|
1430
|
+
position: relative;
|
|
1431
|
+
height: 1.25rem;
|
|
1432
|
+
display: flex;
|
|
1433
|
+
align-items: center;
|
|
1434
|
+
margin-block-end: var(--size-3xs, 2px);
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
.timeline-fill {
|
|
1438
|
+
position: absolute;
|
|
1439
|
+
left: 0;
|
|
1440
|
+
top: 50%;
|
|
1441
|
+
transform: translateY(-50%);
|
|
1442
|
+
height: var(--_timeline-height);
|
|
1443
|
+
background: var(--_accent);
|
|
1444
|
+
pointer-events: none;
|
|
1445
|
+
border-radius: var(--radius-full, 2px);
|
|
1446
|
+
width: 0%;
|
|
1447
|
+
z-index: 2;
|
|
1448
|
+
transition: width var(--duration-instant, 50ms) linear;
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1451
|
+
.timeline-buffer {
|
|
1452
|
+
position: absolute;
|
|
1453
|
+
left: 0;
|
|
1454
|
+
top: 50%;
|
|
1455
|
+
transform: translateY(-50%);
|
|
1456
|
+
height: var(--_timeline-height);
|
|
1457
|
+
background: var(--_timeline-buffer);
|
|
1458
|
+
pointer-events: none;
|
|
1459
|
+
border-radius: var(--radius-full, 2px);
|
|
1460
|
+
width: 0%;
|
|
1461
|
+
z-index: 1;
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
.timeline {
|
|
1465
|
+
width: 100%;
|
|
1466
|
+
height: 1.25rem;
|
|
1467
|
+
appearance: none;
|
|
1468
|
+
background: transparent;
|
|
1469
|
+
cursor: pointer;
|
|
1470
|
+
position: relative;
|
|
1471
|
+
z-index: 3;
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
.timeline::-webkit-slider-runnable-track {
|
|
1475
|
+
height: var(--_timeline-height);
|
|
1476
|
+
background: oklch(100% 0 0 / 0.2);
|
|
1477
|
+
border-radius: var(--radius-full, 2px);
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
.timeline::-moz-range-track {
|
|
1481
|
+
height: var(--_timeline-height);
|
|
1482
|
+
background: oklch(100% 0 0 / 0.2);
|
|
1483
|
+
border-radius: var(--radius-full, 2px);
|
|
1484
|
+
}
|
|
1485
|
+
|
|
1486
|
+
.timeline::-webkit-slider-thumb {
|
|
1487
|
+
-webkit-appearance: none;
|
|
1488
|
+
width: 14px;
|
|
1489
|
+
height: 14px;
|
|
1490
|
+
border-radius: var(--radius-full, 50%);
|
|
1491
|
+
background: var(--_accent);
|
|
1492
|
+
border: 2px solid var(--_controls-text);
|
|
1493
|
+
cursor: pointer;
|
|
1494
|
+
margin-top: -5px;
|
|
1495
|
+
transition: transform var(--duration-fast, 100ms) var(--ease-default, ease);
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
.timeline:hover::-webkit-slider-thumb {
|
|
1499
|
+
transform: scale(1.3);
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
.timeline::-moz-range-thumb {
|
|
1503
|
+
width: 14px;
|
|
1504
|
+
height: 14px;
|
|
1505
|
+
border-radius: var(--radius-full, 50%);
|
|
1506
|
+
background: var(--_accent);
|
|
1507
|
+
border: 2px solid var(--_controls-text);
|
|
1508
|
+
cursor: pointer;
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
.timeline:focus-visible {
|
|
1512
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--_accent));
|
|
1513
|
+
outline-offset: 4px;
|
|
1514
|
+
border-radius: var(--radius-s, 2px);
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
/* \u2500\u2500 Controls row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1518
|
+
.controls-row {
|
|
1519
|
+
display: flex;
|
|
1520
|
+
align-items: center;
|
|
1521
|
+
gap: var(--size-2xs, 4px);
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
.spacer { flex: 1; }
|
|
1525
|
+
|
|
1526
|
+
/* \u2500\u2500 Shared button reset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1527
|
+
.controls-row button {
|
|
1528
|
+
all: unset;
|
|
1529
|
+
display: flex;
|
|
1530
|
+
align-items: center;
|
|
1531
|
+
justify-content: center;
|
|
1532
|
+
width: 2rem;
|
|
1533
|
+
height: 2rem;
|
|
1534
|
+
border-radius: var(--radius-s, 4px);
|
|
1535
|
+
cursor: pointer;
|
|
1536
|
+
color: var(--_controls-text);
|
|
1537
|
+
transition: background var(--duration-fast, 100ms) var(--ease-default, ease);
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1540
|
+
.controls-row button:hover {
|
|
1541
|
+
background: oklch(100% 0 0 / 0.15);
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
.controls-row button:focus-visible {
|
|
1545
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--_accent));
|
|
1546
|
+
outline-offset: 2px;
|
|
1547
|
+
}
|
|
1548
|
+
|
|
1549
|
+
/* \u2500\u2500 Play button (controls row) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1550
|
+
.icon-pause { display: none; }
|
|
1551
|
+
:host([state="playing"]) .icon-play { display: none; }
|
|
1552
|
+
:host([state="playing"]) .icon-pause { display: block; }
|
|
1553
|
+
|
|
1554
|
+
/* \u2500\u2500 Fullscreen icons \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1555
|
+
.icon-fs-exit { display: none; }
|
|
1556
|
+
:host([data-fullscreen]) .icon-fs-enter { display: none; }
|
|
1557
|
+
:host([data-fullscreen]) .icon-fs-exit { display: block; }
|
|
1558
|
+
|
|
1559
|
+
/* \u2500\u2500 Mute icons \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1560
|
+
.icon-muted { display: none; }
|
|
1561
|
+
:host([muted]) .icon-vol { display: none; }
|
|
1562
|
+
:host([muted]) .icon-muted { display: block; }
|
|
1563
|
+
|
|
1564
|
+
/* \u2500\u2500 Volume \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1565
|
+
.volume-wrap {
|
|
1566
|
+
display: flex;
|
|
1567
|
+
align-items: center;
|
|
1568
|
+
gap: 0;
|
|
1569
|
+
flex: 0 0 auto;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
.volume {
|
|
1573
|
+
width: 60px;
|
|
1574
|
+
height: 1rem;
|
|
1575
|
+
appearance: none;
|
|
1576
|
+
background: transparent;
|
|
1577
|
+
cursor: pointer;
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
.volume::-webkit-slider-runnable-track {
|
|
1581
|
+
height: 3px;
|
|
1582
|
+
background: linear-gradient(to right,
|
|
1583
|
+
var(--_accent) calc(var(--_vol, 1) * 100%),
|
|
1584
|
+
oklch(100% 0 0 / 0.3) calc(var(--_vol, 1) * 100%));
|
|
1585
|
+
border-radius: var(--radius-full, 2px);
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
.volume::-moz-range-track {
|
|
1589
|
+
height: 3px;
|
|
1590
|
+
background: oklch(100% 0 0 / 0.3);
|
|
1591
|
+
border-radius: var(--radius-full, 2px);
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1594
|
+
.volume::-moz-range-progress {
|
|
1595
|
+
height: 3px;
|
|
1596
|
+
background: var(--_accent);
|
|
1597
|
+
border-radius: var(--radius-full, 2px);
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1600
|
+
.volume::-webkit-slider-thumb {
|
|
1601
|
+
-webkit-appearance: none;
|
|
1602
|
+
width: 10px;
|
|
1603
|
+
height: 10px;
|
|
1604
|
+
border-radius: var(--radius-full, 50%);
|
|
1605
|
+
background: var(--_controls-text);
|
|
1606
|
+
border: none;
|
|
1607
|
+
cursor: pointer;
|
|
1608
|
+
margin-top: -3.5px;
|
|
1609
|
+
transition: transform var(--duration-fast, 100ms) var(--ease-default, ease);
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
.volume:hover::-webkit-slider-thumb {
|
|
1613
|
+
transform: scale(1.3);
|
|
1614
|
+
}
|
|
1615
|
+
|
|
1616
|
+
.volume::-moz-range-thumb {
|
|
1617
|
+
width: 10px;
|
|
1618
|
+
height: 10px;
|
|
1619
|
+
border-radius: var(--radius-full, 50%);
|
|
1620
|
+
background: var(--_controls-text);
|
|
1621
|
+
border: none;
|
|
1622
|
+
cursor: pointer;
|
|
1623
|
+
}
|
|
1624
|
+
|
|
1625
|
+
.volume:focus-visible {
|
|
1626
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--_accent));
|
|
1627
|
+
outline-offset: 2px;
|
|
1628
|
+
border-radius: var(--radius-s, 2px);
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1631
|
+
/* \u2500\u2500 Time display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1632
|
+
.time-display {
|
|
1633
|
+
font-size: var(--font-size-xs, 0.75rem);
|
|
1634
|
+
font-family: var(--font-mono, ui-monospace, monospace);
|
|
1635
|
+
font-variant-numeric: tabular-nums;
|
|
1636
|
+
white-space: nowrap;
|
|
1637
|
+
padding-inline: var(--size-2xs, 4px);
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
.time-sep { opacity: 0.6; }
|
|
1641
|
+
|
|
1642
|
+
/* \u2500\u2500 Speed button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1643
|
+
.speed-btn {
|
|
1644
|
+
font-size: var(--font-size-xs, 0.75rem);
|
|
1645
|
+
font-weight: 600;
|
|
1646
|
+
min-width: 2.5rem;
|
|
1647
|
+
width: auto !important;
|
|
1648
|
+
}
|
|
1649
|
+
|
|
1650
|
+
/* \u2500\u2500 Captions button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1651
|
+
:host([captions]) .captions-btn {
|
|
1652
|
+
background: oklch(100% 0 0 / 0.2);
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
.captions-btn[hidden] { display: none; }
|
|
1656
|
+
|
|
1657
|
+
/* \u2500\u2500 Screen reader only \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1658
|
+
.sr-status {
|
|
1659
|
+
position: absolute;
|
|
1660
|
+
width: 1px;
|
|
1661
|
+
height: 1px;
|
|
1662
|
+
padding: 0;
|
|
1663
|
+
margin: -1px;
|
|
1664
|
+
overflow: hidden;
|
|
1665
|
+
clip: rect(0, 0, 0, 0);
|
|
1666
|
+
white-space: nowrap;
|
|
1667
|
+
border: 0;
|
|
1668
|
+
}
|
|
1669
|
+
|
|
1670
|
+
/* \u2500\u2500 Reduced motion \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
1671
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1672
|
+
.play-overlay svg,
|
|
1673
|
+
.buffer-indicator svg,
|
|
1674
|
+
.controls,
|
|
1675
|
+
.controls-gradient,
|
|
1676
|
+
.timeline-fill,
|
|
1677
|
+
.timeline::-webkit-slider-thumb,
|
|
1678
|
+
.volume::-webkit-slider-thumb,
|
|
1679
|
+
.controls-row button {
|
|
1680
|
+
transition: none;
|
|
1681
|
+
}
|
|
1682
|
+
|
|
1683
|
+
.buffer-indicator svg {
|
|
1684
|
+
animation: none;
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
.play-overlay:hover svg,
|
|
1688
|
+
.timeline:hover::-webkit-slider-thumb,
|
|
1689
|
+
.volume:hover::-webkit-slider-thumb {
|
|
1690
|
+
transform: none;
|
|
1691
|
+
}
|
|
1692
|
+
|
|
1693
|
+
/* Keep controls permanently visible */
|
|
1694
|
+
:host([state="playing"]:not([controls])) .controls,
|
|
1695
|
+
:host([state="playing"]:not([controls])) .controls-gradient {
|
|
1696
|
+
opacity: 1;
|
|
1697
|
+
visibility: visible;
|
|
1698
|
+
}
|
|
1699
|
+
|
|
1700
|
+
:host([state="playing"]:not([controls])) {
|
|
1701
|
+
cursor: auto;
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
`}#x(){this.#t.addEventListener("timeupdate",()=>this.#M()),this.#t.addEventListener("loadedmetadata",()=>this.#_()),this.#t.addEventListener("progress",()=>this.#B()),this.#t.addEventListener("play",()=>{this.#s=!0,this.setAttribute("state","playing"),this.#i.setAttribute("aria-label","Pause"),this.#O("Playing"),this.#P("video-player:play",{currentTime:this.#t.currentTime,src:this.#t.currentSrc})}),this.#t.addEventListener("pause",()=>{this.#s=!1,this.setAttribute("state","paused"),this.#i.setAttribute("aria-label","Play"),this.#S(),this.#O("Paused"),this.#P("video-player:pause",{currentTime:this.#t.currentTime})}),this.#t.addEventListener("ended",()=>{this.#s=!1,this.setAttribute("state","ended"),this.#i.setAttribute("aria-label","Play"),this.#S();let t=this.#e?.querySelector("li[data-video-active]");t&&t.setAttribute("data-video-played",""),this.#e&&this.#$(),this.#O("Ended"),this.#P("video-player:ended",{src:this.#t.currentSrc})}),this.#t.addEventListener("waiting",()=>{this.#s&&(this.setAttribute("state","buffering"),this.#O("Buffering"))}),this.#t.addEventListener("playing",()=>{this.getAttribute("state")==="buffering"&&this.setAttribute("state","playing")})}#E(){this.#r.addEventListener("click",r=>{r.stopPropagation(),this.#t.play().catch(()=>{})}),(this.shadowRoot?.querySelector(".player")).addEventListener("click",r=>{r.target.closest(".controls")||r.target.closest(".play-overlay")||(this.#s?this.#t.pause():this.#t.play().catch(()=>{}))}),this.#i.addEventListener("click",()=>{this.#s?this.#t.pause():this.#t.play().catch(()=>{})}),this.#o.addEventListener("input",()=>{this.#t.duration&&(this.#t.currentTime=Number(this.#o.value)/100*this.#t.duration)}),(this.shadowRoot?.querySelector(".skip-back-btn")).addEventListener("click",()=>{this.#t.currentTime=Math.max(0,this.#t.currentTime-10)}),(this.shadowRoot?.querySelector(".skip-forward-btn")).addEventListener("click",()=>{this.#t.currentTime=Math.min(this.#t.duration||0,this.#t.currentTime+10)}),this.#c.addEventListener("input",()=>{this.#t.volume=Number(this.#c.value),this.#t.muted=!1,this.removeAttribute("muted"),this.#c.style.setProperty("--_vol",this.#c.value)}),(this.shadowRoot?.querySelector(".mute-btn")).addEventListener("click",()=>{this.#t.muted=!this.#t.muted,this.toggleAttribute("muted",this.#t.muted),this.#c.style.setProperty("--_vol",this.#t.muted?"0":this.#c.value)}),this.#d.addEventListener("click",()=>{this.#v=(this.#v+1)%ia.length;let r=ia[this.#v];this.#t.playbackRate=r;let o=this.#d.querySelector("span");o.textContent=`${r}x`,this.#d.setAttribute("aria-label",`Playback speed ${r}x`),this.#P("video-player:speed",{rate:r})}),this.#u.addEventListener("click",()=>{let r=this.#F();if(!r)return;let o=r.mode==="showing";r.mode=o?"hidden":"showing";let a=!o;this.toggleAttribute("captions",a),this.#u.setAttribute("aria-pressed",String(a)),this.#P("video-player:captions",{active:a,label:r.label})}),this.#m.addEventListener("click",()=>this.#R()),this.addEventListener("keydown",r=>this.#j(r)),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0")}#T(){let t=this.shadowRoot?.querySelector(".player"),e=()=>{this.#S(),this.#f!=null&&clearTimeout(this.#f),this.#s&&(this.#f=setTimeout(()=>this.#w(),Lu))};t.addEventListener("mousemove",e),t.addEventListener("mouseenter",e),t.addEventListener("mouseleave",()=>{this.#s&&(this.#f!=null&&clearTimeout(this.#f),this.#f=setTimeout(()=>this.#w(),500))}),t.addEventListener("touchstart",()=>{this.hasAttribute("controls")?this.#w():e()},{passive:!0}),this.#n.addEventListener("mouseenter",()=>{this.#f!=null&&clearTimeout(this.#f),this.#S()}),this.#n.addEventListener("focusin",()=>{this.#f!=null&&clearTimeout(this.#f),this.#S()})}#S(){this.setAttribute("controls","")}#w(){this.removeAttribute("controls")}#q(){this.#e&&this.#e.addEventListener("click",t=>{let e=t.target.closest("a[href]");e&&(t.preventDefault(),this.#C(e.href,e.closest("li"),e))})}#C(t,e,i){this.#e.querySelectorAll("li").forEach(a=>a.removeAttribute("data-video-active")),e&&e.setAttribute("data-video-active",""),this.#t.src=t;let r=i?.getAttribute("data-poster");r&&(this.#t.poster=r);let o=i?.getAttribute("data-captions");this.#D(o),this.#t.play().catch(()=>{}),this.#P("video-player:track-change",{src:t,title:i?.textContent??""})}#D(t){if(this.#t.querySelectorAll("track[data-dynamic]").forEach(n=>n.remove()),t){let n=document.createElement("track");n.kind="captions",n.src=t,n.default=!0,n.setAttribute("data-dynamic",""),this.#t.appendChild(n),this.hasAttribute("captions")&&(n.track.mode="showing")}let i=this.#t.querySelector('track[kind="captions"], track[kind="subtitles"]');this.#u.hidden=!i}#$(){if(!this.#e)return;let t=[...this.#e.querySelectorAll("li")],e=t.findIndex(n=>n.hasAttribute("data-video-active"));if(this.hasAttribute("shuffle")){let n=t.filter((r,o)=>o!==e);if(n.length){let r=n[Math.floor(Math.random()*n.length)],o=r.querySelector("a[href]");o&&this.#C(o.href,r,o)}return}let i=e+1;if(i<t.length){let n=t[i].querySelector("a[href]");n&&this.#C(n.href,t[i],n)}else if(this.hasAttribute("loop")){let n=t[0]?.querySelector("a[href]");n&&this.#C(n.href,t[0],n)}}#M(){let t=this.#t.currentTime,e=this.#t.duration||0,i=e?t/e*100:0;this.#h.textContent=this.#N(t),this.#o.value=String(i),this.#o.setAttribute("aria-valuetext",this.#I(t)),this.#a.style.width=`${i}%`}#_(){let t=this.#t.duration||0;this.#p.textContent=this.#N(t)}#B(){let t=this.#t.buffered,e=this.#t.duration||0;if(t.length>0&&e){let i=t.end(t.length-1);this.#l.style.width=`${i/e*100}%`}}#R(){document.fullscreenElement?document.exitFullscreen():this.requestFullscreen().catch(()=>{this.#t.requestFullscreen?.().catch(()=>{})})}#F(){let t=this.#t.textTracks;for(let e=0;e<t.length;e++)if(t[e].kind==="captions"||t[e].kind==="subtitles")return t[e];return null}#j(t){if(!(t.target.tagName==="INPUT"||t.target.tagName==="TEXTAREA"))switch(t.key){case" ":case"k":case"K":t.preventDefault(),this.#s?this.#t.pause():this.#t.play().catch(()=>{});break;case"ArrowLeft":t.preventDefault(),this.#t.currentTime=Math.max(0,this.#t.currentTime-10),this.#S();break;case"ArrowRight":t.preventDefault(),this.#t.currentTime=Math.min(this.#t.duration||0,this.#t.currentTime+10),this.#S();break;case"ArrowUp":t.preventDefault(),this.#t.volume=Math.min(1,this.#t.volume+.05),this.#c.value=String(this.#t.volume),this.#c.style.setProperty("--_vol",String(this.#t.volume)),this.#S();break;case"ArrowDown":t.preventDefault(),this.#t.volume=Math.max(0,this.#t.volume-.05),this.#c.value=String(this.#t.volume),this.#c.style.setProperty("--_vol",String(this.#t.volume)),this.#S();break;case"m":case"M":this.#t.muted=!this.#t.muted,this.toggleAttribute("muted",this.#t.muted),this.#c.style.setProperty("--_vol",this.#t.muted?"0":this.#c.value);break;case"f":case"F":this.#R();break;case"c":case"C":this.#u.click();break;case"Escape":document.fullscreenElement&&document.exitFullscreen();break}}#N(t){if(!Number.isFinite(t))return"0:00";let e=Math.floor(t/3600),i=Math.floor(t%3600/60),n=Math.floor(t%60);return e>0?`${e}:${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`:`${i}:${String(n).padStart(2,"0")}`}#I(t){if(!Number.isFinite(t))return"0 seconds";let e=Math.floor(t/3600),i=Math.floor(t%3600/60),n=Math.floor(t%60),r=[];return e>0&&r.push(`${e} hour${e!==1?"s":""}`),i>0&&r.push(`${i} minute${i!==1?"s":""}`),r.push(`${n} second${n!==1?"s":""}`),r.join(" ")}#O(t){this.#g&&(this.#g.textContent=t)}#P(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}};g("video-player",fn);var gn=class extends b{#t=null;static get observedAttributes(){return["position"]}get#e(){return this.getAttribute("persist")||"consent-banner"}get#s(){let t=this.getAttribute("expires");return t==="0"||t==="never"?0:t?parseInt(t,10):365}setup(){if(this.#t=this.querySelector("dialog"),!this.#t)return!1;this.getAttribute("trigger")&&this.listen(document,"click",this.#a);let t=this.#l();if(t&&!this.#h(t))return this.getAttribute("trigger")?this.hidden=!0:this.remove(),!1;this.#n()}#n(){(this.getAttribute("position")||"bottom")==="center"?(this.#t.showModal(),this.#t.addEventListener("cancel",this.#r)):this.#t.show(),this.addEventListener("click",this.#o)}#i(){this.#t.removeEventListener("cancel",this.#r),this.removeEventListener("click",this.#o),this.#t.close(),this.getAttribute("trigger")?this.hidden=!0:this.remove()}#r=t=>{t.preventDefault()};#o=t=>{let e=t.target.closest("button[value]");if(!e)return;let i=e.value;if(!["accept","reject","save"].includes(i))return;let n=[...this.querySelectorAll('input[type="checkbox"]')],r={};i==="accept"?n.forEach(o=>{r[o.name]=!0}):i==="reject"?n.forEach(o=>{r[o.name]=!!o.disabled}):n.forEach(o=>{r[o.name]=o.checked}),this.#c({preferences:r,action:i,timestamp:Date.now()}),this.dispatchEvent(new CustomEvent("consent-banner:change",{bubbles:!0,detail:{preferences:r,action:i}})),this.#i()};#a=t=>{let e=this.getAttribute("trigger");if(!e||!t.target.closest(e))return;t.preventDefault();let n=this.#l();if(n?.preferences)for(let[r,o]of Object.entries(n.preferences)){let a=this.querySelector(`input[type="checkbox"][name="${CSS.escape(r)}"]`);a&&!a.disabled&&(a.checked=o)}this.hidden=!1,this.#n()};#l(){try{let t=localStorage.getItem(this.#e);return t?JSON.parse(t):null}catch{return null}}#c(t){try{localStorage.setItem(this.#e,JSON.stringify(t))}catch{}}#h(t){let e=this.#s;return e===0?!1:Date.now()-(t.timestamp||0)>e*864e5}static reset(t="consent-banner"){try{localStorage.removeItem(t)}catch{}}static getConsent(t="consent-banner"){try{let e=localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}}};g("consent-banner",gn);var Re="http://www.w3.org/2000/svg";function Mu(s){return s.trim().split(/[\s,]+/).map(Number)}function $u(s,t){let e=Mu(t);switch(s){case"rect":{let[i,n,r,o]=e;return{type:"rect",x:i,y:n,width:r-i,height:o-n}}case"circle":{let[i,n,r]=e;return{type:"circle",cx:i,cy:n,r}}case"poly":{let i=[];for(let n=0;n<e.length;n+=2)i.push([e[n],e[n+1]]);return{type:"poly",points:i}}default:return null}}function Nu(s){if(!s)return null;switch(s.type){case"rect":{let t=document.createElementNS(Re,"rect");return t.setAttribute("x",String(s.x)),t.setAttribute("y",String(s.y)),t.setAttribute("width",String(s.width)),t.setAttribute("height",String(s.height)),t}case"circle":{let t=document.createElementNS(Re,"circle");return t.setAttribute("cx",String(s.cx)),t.setAttribute("cy",String(s.cy)),t.setAttribute("r",String(s.r)),t}case"poly":{let t=document.createElementNS(Re,"polygon");return t.setAttribute("points",s.points.map(e=>e.join(",")).join(" ")),t}default:return null}}function qu(s){if(!s)return{x:0,y:0,width:0,height:0};switch(s.type){case"rect":return{x:s.x,y:s.y,width:s.width,height:s.height};case"circle":return{x:s.cx-s.r,y:s.cy-s.r,width:s.r*2,height:s.r*2};case"poly":{let t=100,e=100,i=0,n=0;for(let[r,o]of s.points)r<t&&(t=r),o<e&&(e=o),r>i&&(i=r),o>n&&(n=o);return{x:t,y:e,width:i-t,height:n-e}}default:return{x:0,y:0,width:0,height:0}}}var bn=class extends HTMLElement{get shape(){return this.getAttribute("shape")||"rect"}get coords(){return this.getAttribute("coords")||""}get label(){return this.getAttribute("label")||""}get href(){return this.getAttribute("href")}get target(){return this.getAttribute("target")||""}get tooltipMode(){return this.getAttribute("tooltip")||"hover"}get disabled(){return this.hasAttribute("disabled")}connectedCallback(){this.setAttribute("data-upgraded","")}disconnectedCallback(){this.removeAttribute("data-upgraded")}},vn=class extends b{#t=null;#e=null;#s=null;#n=[];#i=[];#r=null;#o=null;#a=null;setup(){if(this.#t=this.querySelector(":scope > img"),!this.#t){let t=this.getAttribute("src"),e=this.getAttribute("alt");if(t)this.#t=document.createElement("img"),this.#t.src=t,this.#t.alt=e||"",this.prepend(this.#t);else return!1}this.#t.classList.add("image-map-img"),this.#t.complete?this.#l():this.#t.addEventListener("load",()=>this.#l(),{once:!0})}teardown(){this.#o?.disconnect(),this.#h(),this.#e?.remove(),this.#s?.remove();for(let t of this.#i)t.anchor?.remove();this.#i=[],this.#n=[]}#l(){let t=[...this.querySelectorAll(":scope > map-area")];if(t.length===0){this.setAttribute("data-upgraded","");return}this.#e=document.createElementNS(Re,"svg"),this.#e.setAttribute("viewBox","0 0 100 100"),this.#e.setAttribute("preserveAspectRatio","none"),this.#e.setAttribute("aria-hidden","true"),this.#e.classList.add("image-map-overlay"),this.#s=document.createElement("div"),this.#s.className="image-map-tooltip",this.#s.setAttribute("role","tooltip"),this.#s.setAttribute("aria-live","polite"),this.#s.id=`imap-tip-${crypto.randomUUID().slice(0,8)}`;for(let e of t){let i=e,n=i.shape,r=i.coords,o=$u(n,r),a=Nu(o);if(!a)continue;let l=qu(o),c=i.href?document.createElement("a"):document.createElement("button");i.href&&(c.href=i.href,i.target&&(c.target=i.target)),c.className="image-map-anchor",c.setAttribute("aria-label",i.label),c.setAttribute("aria-describedby",this.#s.id),c.textContent=i.label,c.style.left=`${l.x}%`,c.style.top=`${l.y}%`,c.style.width=`${l.width}%`,c.style.height=`${l.height}%`,i.disabled&&(a.setAttribute("data-disabled",""),c.setAttribute("tabindex","-1"),c.setAttribute("aria-disabled","true"));let h=e.innerHTML,u={area:e,parsed:o,svgShape:a,anchor:c,contentHTML:h};if(!i.disabled){let d=i.tooltipMode;this.listen(a,"pointerenter",()=>{d==="hover"&&this.#c(u),a.setAttribute("data-hover",""),this.#u("image-map:area-enter",i)}),this.listen(a,"pointerleave",()=>{d==="hover"&&this.#h(),a.removeAttribute("data-hover"),this.#u("image-map:area-leave",i)}),this.listen(a,"click",()=>{d==="click"&&(this.#r===u?this.#h():this.#c(u)),this.#u("image-map:area-activate",i),i.href&&d!=="click"&&(i.target==="_blank"?window.open(i.href,"_blank","noopener"):window.location.href=i.href)}),this.listen(a,"touchstart",p=>{d==="hover"&&(this.#a!==u?(p.preventDefault(),this.#a=u,this.#c(u)):this.#a=null)},{passive:!1}),this.listen(c,"focus",()=>{this.#c(u),a.setAttribute("data-hover","")}),this.listen(c,"blur",()=>{this.#h(),a.removeAttribute("data-hover")})}this.#e.appendChild(a),this.#i.push(u),this.#n.push(c)}this.appendChild(this.#e);for(let e of this.#n)this.appendChild(e);this.appendChild(this.#s),this.listen(this,"keydown",this.#d),this.#o=new ResizeObserver(()=>{this.#r&&this.#p(this.#r.svgShape)}),this.#o.observe(this.#t),this.setAttribute("role","group"),this.hasAttribute("aria-label")||this.setAttribute("aria-label",this.#t.alt||"Image map"),this.setAttribute("data-upgraded","")}#c(t){this.#s&&(this.#r=t,this.#s.innerHTML=t.contentHTML,this.#s.setAttribute("data-visible",""),this.#p(t.svgShape))}#h(){this.#s&&(this.#r=null,this.#s.removeAttribute("data-visible"))}#p(t){if(!this.#s||!t)return;let e=t.getBoundingClientRect(),i=this.#s.getBoundingClientRect(),n=8,r=8,o=window.innerWidth,a=window.innerHeight,l,c,h=e.top-i.height-n;h>=r?(l=h,c=e.left+(e.width-i.width)/2):e.bottom+n+i.height<=a-r?(l=e.bottom+n,c=e.left+(e.width-i.width)/2):e.right+n+i.width<=o-r?(l=e.top+(e.height-i.height)/2,c=e.right+n):(l=e.top+(e.height-i.height)/2,c=e.left-i.width-n),c=Math.max(r,Math.min(c,o-i.width-r)),l=Math.max(r,Math.min(l,a-i.height-r)),this.#s.style.top=`${l}px`,this.#s.style.left=`${c}px`}#d=t=>{let e=this.#n.filter(n=>!n.hasAttribute("aria-disabled")),i=e.indexOf(document.activeElement);switch(t.key){case"ArrowDown":case"ArrowRight":{t.preventDefault();let n=i<e.length-1?i+1:0;e[n]?.focus();break}case"ArrowUp":case"ArrowLeft":{t.preventDefault();let n=i>0?i-1:e.length-1;e[n]?.focus();break}case"Escape":this.#h(),this.#a=null;break}};#u(t,e){this.dispatchEvent(new CustomEvent(t,{detail:{area:e},bubbles:!0}))}};g("map-area",bn);g("image-map",vn);var Du='<svg viewBox="0 0 68 48" width="68" height="48" aria-hidden="true" focusable="false"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="var(--color-error, #f00)"/><path d="M45 24 27 14v20z" fill="#fff"/></svg>',_u={hq:"hqdefault",mq:"mqdefault",sd:"sddefault",maxres:"maxresdefault"},yn=class extends b{#t;#e;setup(){if(this.#t=this.getAttribute("video-id"),this.#e=this.getAttribute("title")??"Play video",!this.#t)return console.warn("youtube-player: missing required video-id attribute"),!1;this.hasAttribute("autoplay")?this.#a():this.#i()}#s(){let t=new URLSearchParams({autoplay:"1"}),e=this.getAttribute("start");e&&t.set("start",e);let i=this.getAttribute("list");return i&&t.set("list",i),this.getAttribute("params")&&new URLSearchParams(this.getAttribute("params")).forEach((n,r)=>t.set(r,n)),`https://www.youtube-nocookie.com/embed/${this.#t}?${t}`}#n(){let t=this.getAttribute("thumbnail")??"hq";return`https://i.ytimg.com/vi/${this.#t}/${_u[t]??"hqdefault"}.jpg`}#i(){this.setAttribute("state","ready"),this.setAttribute("tabindex","0"),this.setAttribute("role","button"),this.setAttribute("aria-label",`Play ${this.#e}`),this.innerHTML=`<img src="${this.#n()}" alt="" loading="lazy" decoding="async"><button type="button" aria-label="Play ${this.#e}">${Du}</button>`,this.addEventListener("click",this.#r,{once:!0}),this.addEventListener("keydown",this.#o)}#r=()=>{this.removeEventListener("keydown",this.#o),this.#a()};#o=t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),this.removeEventListener("click",this.#r),this.#a())};#a(){this.setAttribute("state","active"),this.removeAttribute("tabindex"),this.removeAttribute("role"),this.removeAttribute("aria-label"),this.innerHTML=`<iframe src="${this.#s()}" title="${this.#e}" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen loading="lazy"></iframe>`,this.querySelector("iframe")?.focus()}};g("youtube-player",yn);var wn=new Map,An=new Map;function Oe(s){if(An.has(s))return An.get(s);let t=new Promise((e,i)=>{let n=document.createElement("script");n.src=s,n.async=!0,n.onload=()=>e(),n.onerror=()=>i(new Error(`Failed to load script: ${s}`)),document.head.appendChild(n)});return An.set(s,t),t}async function Pe(s,t,e={}){let i=new URLSearchParams({url:t,format:"json",...e}),n=await fetch(`${s}?${i}`);if(!n.ok)throw new Error(`oEmbed error ${n.status}`);return n.json()}function Iu(s){return s==="light"?"light":s==="dark"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var Bu="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",V=class extends b{static register(t,e){wn.set(t,e)}#t=null;#e="";#s=null;setup(){this.#e||(this.#e=this.innerHTML);let t=this.getAttribute("url");if(!t)return console.warn("social-embed: missing required url attribute"),!1;let e=this.getAttribute("provider"),i=e?wn.get(e):[...wn.values()].find(r=>r.canHandle?.(t));if(!i){this.setAttribute("state","unsupported");return}if(i.delegatesActivation){this.#i(i);return}this.setAttribute("state","idle");let n=this.getAttribute("activate")??"click";n==="eager"?this.#i(i):n==="visible"?(this.#t=new IntersectionObserver(r=>{r[0].isIntersecting&&(this.#t?.disconnect(),this.#i(i))},{rootMargin:"200px"}),this.#t.observe(this)):(this.#s=r=>{r.preventDefault(),this.#i(i)},this.addEventListener("click",this.#s,{once:!0}),this.addEventListener("keydown",this.#n),this.setAttribute("tabindex","0"),this.setAttribute("role","button"),this.setAttribute("aria-label","Load embed"))}teardown(){this.#t?.disconnect(),this.#s&&(this.removeEventListener("click",this.#s),this.#s=null),this.removeEventListener("keydown",this.#n)}#n=t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),this.click())};async#i(t){this.removeAttribute("tabindex"),this.removeAttribute("role"),this.removeAttribute("aria-label"),this.#s&&(this.removeEventListener("click",this.#s),this.#s=null),this.removeEventListener("keydown",this.#n);let e=this.getAttribute("url");this.setAttribute("state","loading"),this.#r("Loading embed\u2026");try{let i=Iu(this.getAttribute("theme")??"auto");await t.render(this,e,{theme:i}),this.setAttribute("state","loaded")}catch(i){console.warn("[social-embed] render failed:",i),this.innerHTML=this.#e,this.setAttribute("state","error"),this.#r("Embed failed to load.")}}#r(t){let e=this.querySelector("[data-embed-live]");e||(e=document.createElement("span"),e.setAttribute("data-embed-live",""),e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.setAttribute("style",Bu),this.prepend(e)),e.textContent=t}};g("social-embed",V);var Ru="https://embed.bsky.app/oembed",Ou={canHandle(s){return/bsky\.app\/profile\/[^/]+\/post\//.test(s)},async render(s,t){let e=await Pe(Ru,t);s.innerHTML=e.html}};V.register("bluesky",Ou);var Pu={canHandle(s){return/^https?:\/\/[^/]+\/@[^/]+\/\d+/.test(s)},async render(s,t){let e=new URL(t).origin,i=await Pe(`${e}/api/oembed`,t);s.innerHTML=i.html}};V.register("mastodon",Pu);var Fu="https://platform.x.com/widgets.js",ju={canHandle(s){return/(?:x\.com|twitter\.com)\/[^/]+\/status\/\d+/.test(s)},async render(s,t,{theme:e}){await Oe(Fu),s.innerHTML=`<blockquote class="twitter-tweet" data-theme="${e}"><a href="${t}"></a></blockquote>`,window.twttr?.widgets?.load&&window.twttr.widgets.load(s)}};V.register("x",ju);var zu="https://www.instagram.com/embed.js",Hu={canHandle(s){return/instagram\.com\/(p|reel|tv)\/[^/]+/.test(s)},async render(s,t){await Oe(zu),s.innerHTML=`<blockquote class="instagram-media" data-instgrm-permalink="${t}" data-instgrm-version="14"><a href="${t}"></a></blockquote>`,window.instgrm?.Embeds?.process&&window.instgrm.Embeds.process()}};V.register("instagram",Hu);function Vu(s){return s.match(/(?:youtube\.com\/(?:watch\?.*v=|shorts\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})/)?.[1]??null}var Uu={delegatesActivation:!0,canHandle(s){return/(?:youtube\.com\/(?:watch|shorts\/)|youtu\.be\/)/.test(s)},async render(s,t){let e=Vu(t);if(!e)throw new Error("Could not parse YouTube video ID");let i=document.createElement("youtube-player");i.dataset.id=e,i.dataset.title=s.dataset.title||"YouTube video",s.innerHTML="",s.appendChild(i)}};V.register("youtube",Uu);var Fe=new Set,En=class s extends b{#t="scroll";#e=0;#s=1;#n=2;#i="auto";#r=[0];#o=null;#a=null;#l=null;#c=null;#h=null;#p=!1;#d=0;#u=!1;#m=null;#b=null;static FONT_SIZES=["0.875rem","0.9375rem","1rem","1.0625rem","1.125rem","1.25rem"];static SNAP_DELAY=90;static STORAGE_KEY="vb-reader";setup(){this.#u||(this.#I(),this.#g(),this.#f(),this.#A(),this.#B(),this.#u=!0),this.#F(),this.#j(),this.#k(this.#t,!1),this.setAttribute("upgraded","")}teardown(){this.#h?.disconnect(),this.#h=null,this.removeAttribute("upgraded"),clearTimeout(this.#d),Fe.delete(this)}#g(){let t=this.getAttribute("mode");(t==="scroll"||t==="pages")&&(this.#t=t);let e=this.getAttribute("columns");e&&(this.#i=e)}#f(){let t=this.querySelector('[slot="chrome"]'),e=[...this.children].filter(c=>!c.matches('[slot="chrome"]')),i=document.createElement("header");i.className="reader-chrome",t?i.appendChild(t):i.innerHTML=this.#v();let n=document.createElement("div");n.className="reader-scroll";let r=document.createElement("div");r.className="reader-pager",r.setAttribute("role","region"),r.setAttribute("aria-label","Article pages");let o=document.createElement("div");o.className="reader-progress",o.setAttribute("aria-hidden","true");let a=document.createElement("nav");a.className="reader-page-nav",a.setAttribute("aria-label","Page navigation"),a.innerHTML=`
|
|
1705
|
+
<button class="reader-nav-btn" data-reader-action="prev-page" type="button" aria-label="Previous page">\u2190</button>
|
|
1706
|
+
<output class="reader-page-indicator" data-reader-output="page-indicator" aria-live="polite">1 / 1</output>
|
|
1707
|
+
<button class="reader-nav-btn" data-reader-action="next-page" type="button" aria-label="Next page">\u2192</button>
|
|
1708
|
+
`,e.forEach(c=>n.appendChild(c)),this.textContent="",this.appendChild(i),this.appendChild(o);let l=document.createElement("main");l.className="reader-book",l.style.position="relative",l.style.minHeight="0",l.style.overflow="hidden",l.appendChild(n),l.appendChild(r),l.appendChild(a),this.appendChild(l),this.#l=n,this.#a=r,this.#c=a}#v(){let t=this.#y(),e=this.getAttribute("font-controls")!=="false",i=this.getAttribute("col-controls")!=="false",n=`
|
|
1709
|
+
<div class="reader-chrome-copy">
|
|
1710
|
+
<span class="reader-chrome-kicker">Reader</span>
|
|
1711
|
+
<span class="reader-chrome-title">${this.#H(t)}</span>
|
|
1712
|
+
</div>
|
|
1713
|
+
<div class="reader-controls" role="toolbar" aria-label="Reading controls">
|
|
1714
|
+
<div class="reader-control-group" aria-label="Reading mode">
|
|
1715
|
+
<span class="reader-control-label">Mode</span>
|
|
1716
|
+
<button class="reader-seg-btn" data-reader-action="set-mode-scroll" data-reader-state="active" type="button" aria-pressed="true">Scroll</button>
|
|
1717
|
+
<button class="reader-seg-btn" data-reader-action="set-mode-pages" type="button" aria-pressed="false">Pages</button>
|
|
1718
|
+
</div>`;return e&&(n+=`
|
|
1719
|
+
<div class="reader-control-group" aria-label="Font size">
|
|
1720
|
+
<span class="reader-control-label">Type</span>
|
|
1721
|
+
<button class="reader-icon-btn" data-reader-action="font-decrease" type="button" aria-label="Decrease font size">A\u2212</button>
|
|
1722
|
+
<button class="reader-icon-btn" data-reader-action="font-increase" type="button" aria-label="Increase font size">A+</button>
|
|
1723
|
+
</div>`),i&&(n+=`
|
|
1724
|
+
<div class="reader-control-group" aria-label="Page columns">
|
|
1725
|
+
<span class="reader-control-label">Cols</span>
|
|
1726
|
+
<button class="reader-seg-btn" data-reader-action="set-columns" data-reader-value="auto" data-reader-state="active" type="button">Auto</button>
|
|
1727
|
+
<button class="reader-seg-btn" data-reader-action="set-columns" data-reader-value="1" type="button">1</button>
|
|
1728
|
+
<button class="reader-seg-btn" data-reader-action="set-columns" data-reader-value="2" type="button">2</button>
|
|
1729
|
+
<button class="reader-seg-btn" data-reader-action="set-columns" data-reader-value="3" type="button">3</button>
|
|
1730
|
+
</div>`),n+="</div>",n}#y(){if(this.getAttribute("reader-title"))return this.getAttribute("reader-title");let t=this.querySelector("h1");return t?t.textContent.trim():document.title||"Reader"}#A(){if(this.#o=this.#l.querySelector(":scope > layout-columns"),this.#o)return;let t=document.createElement("layout-columns");[...this.#l.children].forEach(i=>t.appendChild(i)),this.#l.appendChild(t),this.#o=t}#k(t,e=!0){let i=this.#w();if(this.#t=t,this.setAttribute("mode",t),t==="pages"){for(let r of Fe)r!==this&&r.#k("scroll",!1);Fe.add(this),this.#a.appendChild(this.#o),this.#a.style.display="block",this.#l.style.display="none",this.#c.style.display="flex",this.#x(),this.#$(),requestAnimationFrame(()=>{this.#E(i)})}else Fe.delete(this),this.#l.appendChild(this.#o),this.#a.style.display="none",this.#l.style.display="",this.#c.style.display="none",this.#o.style.removeProperty("column-count"),this.#o.style.removeProperty("column-width"),requestAnimationFrame(()=>{let r=this.#l.scrollHeight-this.#l.clientHeight;this.#l.scrollTop=r>0?i*r:0,this.#C()});this.#O(),this.#N(),this.#P("reader-view:mode",{mode:t})}#L(){if(this.#i!=="auto")return Number(this.#i);let t=this.#a?.clientWidth||window.innerWidth;return t>=1680?3:t>=960?2:1}#x(){let t=this.#L();this.#o.style.setProperty("column-count",String(t)),this.#o.style.setProperty("column-width","auto"),this.setAttribute("columns",this.#i)}#E(t=this.#w()){if(this.#t!=="pages")return;let e=this.#a,i=e.clientWidth||1,n=e.scrollWidth,r=Math.max(0,n-i),o=n/i,a=Math.max(1,Math.ceil(o-.01));this.#r=[];for(let l=0;l<a;l++){let c=l===a-1?r:Math.min(l*i,r);(!this.#r.length||c-this.#r[this.#r.length-1]>1)&&this.#r.push(c)}this.#s=Math.max(1,this.#r.length),this.#e=this.#s>1?Math.min(Math.round(t*(this.#s-1)),this.#s-1):0,this.#T(this.#e,!1)}#T(t,e=!0){this.#e=Math.max(0,Math.min(t,this.#s-1));let i=this.#r[this.#e]??0;this.#p=!0;let n=e&&!this.#z();this.#a.scrollTo({left:i,behavior:n?"smooth":"instant"}),this.#q(),setTimeout(()=>{this.#p=!1},n?220:0)}#S(t){let e=0,i=1/0;return this.#r.forEach((n,r)=>{let o=Math.abs(n-t);o<i&&(i=o,e=r)}),e}#w(){if(this.#t==="scroll"){if(!this.#l)return 0;let e=this.#l.scrollHeight-this.#l.clientHeight;return e>0?this.#l.scrollTop/e:0}if(!this.#a)return 0;let t=this.#a.scrollWidth-this.#a.clientWidth;return t>0?this.#a.scrollLeft/t:0}#q(){let t=this.#s>1?this.#e/(this.#s-1):1;this.#D(t),this.querySelectorAll('[data-reader-output="page-indicator"]').forEach(e=>{e.textContent=`${this.#e+1} / ${this.#s}`}),this.querySelectorAll('[data-reader-action="prev-page"]').forEach(e=>{e.toggleAttribute("disabled",this.#e===0)}),this.querySelectorAll('[data-reader-action="next-page"]').forEach(e=>{e.toggleAttribute("disabled",this.#e===this.#s-1)}),this.#P("reader-view:page",{page:this.#e+1,total:this.#s})}#C(){if(this.#t!=="scroll"||!this.#l)return;let t=this.#l.scrollHeight-this.#l.clientHeight,e=t>0?this.#l.scrollTop/t:1;this.#D(e)}#D(t){this.style.setProperty("--_progress",String(t))}#$(){this.#o&&(this.#o.style.fontSize=s.FONT_SIZES[this.#n])}#M(t){let e=this.#n+t;if(e<0||e>=s.FONT_SIZES.length)return;this.#n=e;let i=this.#w();this.#$(),this.#_(),this.#t==="pages"&&requestAnimationFrame(()=>this.#E(i)),this.#N(),this.#P("reader-view:font",{size:s.FONT_SIZES[this.#n],index:this.#n})}#_(){this.querySelectorAll('[data-reader-action="font-decrease"]').forEach(t=>{t.toggleAttribute("disabled",this.#n===0)}),this.querySelectorAll('[data-reader-action="font-increase"]').forEach(t=>{t.toggleAttribute("disabled",this.#n===s.FONT_SIZES.length-1)})}#B(){this.addEventListener("click",t=>{let e=t.target.closest("[data-reader-action]");if(!e)return;switch(e.dataset.readerAction){case"toggle-mode":this.#k(this.#t==="scroll"?"pages":"scroll");break;case"set-mode-scroll":this.#k("scroll");break;case"set-mode-pages":this.#k("pages");break;case"font-increase":this.#M(1);break;case"font-decrease":this.#M(-1);break;case"set-columns":{let n=this.#w();this.#i=e.dataset.readerValue??"auto",this.#x(),this.#O(),this.#t==="pages"&&requestAnimationFrame(()=>this.#E(n)),this.#N();break}case"prev-page":this.#T(this.#e-1);break;case"next-page":this.#T(this.#e+1);break}}),this.#l.addEventListener("scroll",()=>this.#C(),{passive:!0}),this.#a.addEventListener("scroll",()=>{if(this.#t!=="pages")return;let t=this.#S(this.#a.scrollLeft);t!==this.#e&&(this.#e=t,this.#q()),!this.#p&&(clearTimeout(this.#d),this.#d=setTimeout(()=>{this.#T(this.#S(this.#a.scrollLeft),!1)},s.SNAP_DELAY))},{passive:!0}),this.#m=this.#R.bind(this)}#R(t){if(this.#t==="pages"&&!t.target?.matches?.("input, textarea, select, button, a, [contenteditable]"))switch(t.key){case"ArrowRight":case"PageDown":case" ":t.preventDefault(),this.#T(this.#e+1);break;case"ArrowLeft":case"PageUp":t.preventDefault(),this.#T(this.#e-1);break;case"Home":t.preventDefault(),this.#T(0,!1);break;case"End":t.preventDefault(),this.#T(this.#s-1,!1);break}}#F(){this.#h=new ResizeObserver(()=>{this.#t==="pages"?requestAnimationFrame(()=>{this.#x(),this.#E(this.#w())}):this.#C()}),this.#h.observe(this.#a)}#j(){this.#m&&this.listen(document,"keydown",this.#m),window.visualViewport&&(this.#b=()=>{this.#t==="pages"&&requestAnimationFrame(()=>this.#E())},this.listen(window.visualViewport,"resize",this.#b),this.listen(window.visualViewport,"scroll",this.#b))}#N(){if(this.getAttribute("persist")==="false")return;let t=this.getAttribute("storage-key")||s.STORAGE_KEY;try{localStorage.setItem(t,JSON.stringify({mode:this.#t,sizeIdx:this.#n,columns:this.#i}))}catch{}}#I(){if(this.getAttribute("persist")==="false")return;let t=this.getAttribute("storage-key")||s.STORAGE_KEY;try{let e=JSON.parse(localStorage.getItem(t)??"null");if(!e)return;(e.mode==="scroll"||e.mode==="pages")&&(this.#t=e.mode),typeof e.sizeIdx=="number"&&e.sizeIdx>=0&&e.sizeIdx<s.FONT_SIZES.length&&(this.#n=e.sizeIdx),e.columns&&(this.#i=e.columns)}catch{}}#O(){this.querySelectorAll('[data-reader-action="set-mode-scroll"]').forEach(t=>{let e=this.#t==="scroll";t.setAttribute("data-reader-state",e?"active":""),t.setAttribute("aria-pressed",String(e))}),this.querySelectorAll('[data-reader-action="set-mode-pages"]').forEach(t=>{let e=this.#t==="pages";t.setAttribute("data-reader-state",e?"active":""),t.setAttribute("aria-pressed",String(e))}),this.querySelectorAll('[data-reader-action="set-columns"]').forEach(t=>{let e=t.dataset.readerValue===this.#i;t.setAttribute("data-reader-state",e?"active":"")}),this.#_(),this.querySelectorAll('[data-reader-output="mode-label"]').forEach(t=>{t.textContent=this.#t==="scroll"?"Scroll":"Pages"})}#P(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0,composed:!0}))}#z(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}#H(t){let e=document.createElement("div");return e.textContent=t,e.innerHTML}};customElements.define("reader-view",En);var kn=class extends b{setup(){this.#t()}#t(){if(this.querySelector('script[type="application/ld+json"]'))return;let t=this.#e();if(!t.author&&!t.datePublished)return;let e=document.createElement("script");e.type="application/ld+json",e.textContent=JSON.stringify({"@context":"https://schema.org","@type":"Article",...t}),this.append(e)}#e(){let t={},e=this.querySelectorAll("dt");for(let i of e){let n=i.nextElementSibling;if(!n||n.tagName!=="DD")continue;switch(i.textContent.trim().toLowerCase()){case"author":{let o=n.querySelector("a");t.author={"@type":"Person",name:n.textContent.trim(),...o?.href?{url:o.href}:{}};break}case"published":t.datePublished=n.querySelector("time")?.dateTime;break;case"updated":t.dateModified=n.querySelector("time")?.dateTime;break;case"version":t.version=n.textContent.trim();break;case"keywords":t.keywords=[...n.querySelectorAll("li")].map(o=>o.textContent.trim()).join(", ");break;case"trust":{let o=n.dataset.trust||n.textContent.trim();t.creditText=o;break}}}return t}};g("page-meta",kn);var xn=class extends b{setup(){this.querySelector("[data-controls]")||this.#t()}#t(){let t=document.createElement("nav");t.setAttribute("data-controls",""),t.setAttribute("aria-label","Change view controls"),t.innerHTML=`
|
|
1731
|
+
<button type="button" data-action="tracking" aria-pressed="true">
|
|
1732
|
+
Tracking
|
|
1733
|
+
</button>
|
|
1734
|
+
<button type="button" data-action="final" aria-pressed="false">
|
|
1735
|
+
Final
|
|
1736
|
+
</button>
|
|
1737
|
+
<button type="button" data-action="original" aria-pressed="false">
|
|
1738
|
+
Original
|
|
1739
|
+
</button>
|
|
1740
|
+
`,this.prepend(t),t.addEventListener("click",e=>{let n=e.target.closest("[data-action]")?.dataset.action;if(n){n==="tracking"?this.removeAttribute("view"):this.setAttribute("view",n);for(let r of t.querySelectorAll("button"))r.setAttribute("aria-pressed",r.dataset.action===n);this.dispatchEvent(new CustomEvent("change-set:view",{detail:{view:n},bubbles:!0}))}})}get view(){return this.getAttribute("view")??"tracking"}set view(t){t==="tracking"?this.removeAttribute("view"):this.setAttribute("view",t)}};g("change-set",xn);var Sn=class s extends b{setup(){this.hasAttribute("auto")&&this.#i(),this.#t(),this.#s(),this.#n()}#t(){for(let t of this.querySelectorAll("time[data-relative]")){let e=t.getAttribute("datetime");if(!e)continue;let i=s.#e(new Date(e));i&&(t.textContent=i)}}static#e(t){let i=Date.now()-t.getTime();if(i<0)return null;let n=Math.floor(i/1e3),r=Math.floor(n/60),o=Math.floor(r/60),a=Math.floor(o/24);return a>365?`${Math.floor(a/365)} year${Math.floor(a/365)!==1?"s":""} ago`:a>30?`${Math.floor(a/30)} month${Math.floor(a/30)!==1?"s":""} ago`:a>0?`${a} day${a!==1?"s":""} ago`:o>0?`${o} hour${o!==1?"s":""} ago`:r>0?`${r} minute${r!==1?"s":""} ago`:"just now"}#s(){let t=this.querySelector("[data-reading-time]");if(!t)return;let e=document.querySelectorAll("[data-signable]");if(!e.length)return;let i=0;for(let r of e){let o=r.textContent?.trim()||"";i+=o.split(/\s+/).filter(Boolean).length}let n=Math.max(1,Math.ceil(i/200));t.textContent=`~${n} min`}#n(){let t="declared",i=this.querySelector(".page-info-badge");i&&i.setAttribute("data-trust",t),this.dispatchEvent(new CustomEvent("page-info:verified",{detail:{status:t,tier:1},bubbles:!0}))}#i(){let t=f=>document.querySelector(`meta[name="${f}"]`)?.content,e=f=>document.querySelector(`meta[property="${f}"]`)?.content,i=t("author"),n=e("article:author"),r=t("last-modified"),o=t("content-version"),a=t("content-version-url"),l=t("content-provenance"),c=t("ai-tools"),h=t("human-review"),u=t("license"),d=t("license-url"),m={human:"Human written","human-ai-assisted":"Human-written, AI-assisted","ai-human-edited":"AI draft, human edited","ai-human-reviewed":"AI-generated, human-reviewed","ai-generated":"AI-generated",synthesized:"Synthesized from sources",translated:"Translated",migrated:"Migrated content"}[l]||l||"";this.innerHTML=`
|
|
1741
|
+
<details>
|
|
1742
|
+
<summary>
|
|
1743
|
+
${i?`
|
|
1744
|
+
<span class="page-info-author">
|
|
1745
|
+
${n?`<a href="${n}" rel="author">${i}</a>`:i}
|
|
1746
|
+
</span>
|
|
1747
|
+
<span class="page-info-sep" aria-hidden="true">·</span>
|
|
1748
|
+
`:""}
|
|
1749
|
+
${r?`
|
|
1750
|
+
<time datetime="${r}" data-relative>${r}</time>
|
|
1751
|
+
<span class="page-info-sep" aria-hidden="true">·</span>
|
|
1752
|
+
`:""}
|
|
1753
|
+
${m?`
|
|
1754
|
+
<span class="page-info-badge"
|
|
1755
|
+
data-provenance="${l||""}"
|
|
1756
|
+
data-trust="declared"
|
|
1757
|
+
aria-label="Content provenance: ${m}">
|
|
1758
|
+
${m}
|
|
1759
|
+
</span>
|
|
1760
|
+
`:""}
|
|
1761
|
+
</summary>
|
|
1762
|
+
<div class="page-info-panel">
|
|
1763
|
+
${i?`
|
|
1764
|
+
<section>
|
|
1765
|
+
<h2 class="page-info-section-heading">Author</h2>
|
|
1766
|
+
<p>${n?`<a href="${n}" rel="author">${i}</a>`:i}</p>
|
|
1767
|
+
</section>
|
|
1768
|
+
`:""}
|
|
1769
|
+
<section>
|
|
1770
|
+
<h2 class="page-info-section-heading">History</h2>
|
|
1771
|
+
<dl>
|
|
1772
|
+
${r?`<div><dt>Last updated</dt><dd><time datetime="${r}" data-relative>${r}</time></dd></div>`:""}
|
|
1773
|
+
${o?`<div><dt>Version</dt><dd>${a?`<a href="${a}">${o}</a>`:o}</dd></div>`:""}
|
|
1774
|
+
</dl>
|
|
1775
|
+
</section>
|
|
1776
|
+
${l?`
|
|
1777
|
+
<section>
|
|
1778
|
+
<h2 class="page-info-section-heading">How this was made</h2>
|
|
1779
|
+
<dl>
|
|
1780
|
+
<div><dt>Authorship</dt><dd>${m}</dd></div>
|
|
1781
|
+
${c?`<div><dt>AI tools used</dt><dd>${c}</dd></div>`:""}
|
|
1782
|
+
${h?`<div><dt>Human review</dt><dd>${h}</dd></div>`:""}
|
|
1783
|
+
${u?`<div><dt>License</dt><dd>${d?`<a href="${d}" rel="license">${u}</a>`:u}</dd></div>`:""}
|
|
1784
|
+
</dl>
|
|
1785
|
+
</section>
|
|
1786
|
+
`:""}
|
|
1787
|
+
</div>
|
|
1788
|
+
</details>
|
|
1789
|
+
`}};g("page-info",Sn);var Cn=class s extends b{setup(){if(this.querySelector("dl"))return;let t=this.dataset.for;if(!t)return;let e=document.getElementById(t);if(!e)return;let i=parseInt(this.dataset.wpm,10)||238,n=(this.dataset.show||"reading-time").split(",").map(h=>h.trim()),a=(e.textContent?.trim()||"").split(/\s+/).filter(Boolean).length,l=Math.max(1,Math.ceil(a/i)),c=document.createElement("dl");if(c.className="page-stats-list",n.includes("reading-time")&&c.appendChild(this.#t("Reading time",`<time datetime="PT${l}M">${l} min read</time>`)),n.includes("word-count")&&c.appendChild(this.#t("Word count",`${a.toLocaleString()} words`)),n.includes("last-modified")){let h=this.#e();if(h){let u=h.toISOString().split("T")[0],d=s.#s(h);c.appendChild(this.#t("Last updated",`<time datetime="${u}" data-relative>${d}</time>`))}}this.appendChild(c)}#t(t,e){let i=document.createElement("dl-item"),n=document.createElement("dt");n.className="sr-only",n.textContent=t;let r=document.createElement("dd");return r.innerHTML=e,i.appendChild(n),i.appendChild(r),i}#e(){let t=document.querySelector('meta[name="last-modified"]');if(t?.content){let i=new Date(t.content);if(!isNaN(i))return i}let e=new Date(document.lastModified);return isNaN(e)?null:e}static#s(t){let e=Date.now()-t.getTime();if(e<0)return t.toLocaleDateString();let i=Math.floor(e/1e3),n=Math.floor(i/60),r=Math.floor(n/60),o=Math.floor(r/24);return o>365?`${Math.floor(o/365)} year${Math.floor(o/365)!==1?"s":""} ago`:o>30?`${Math.floor(o/30)} month${Math.floor(o/30)!==1?"s":""} ago`:o>0?`${o} day${o!==1?"s":""} ago`:r>0?`${r} hour${r!==1?"s":""} ago`:n>0?`${n} minute${n!==1?"s":""} ago`:"just now"}};g("page-stats",Cn);var Wu=0,Tn=class extends b{#t=null;#e=null;#s=null;#n=!1;#i=null;setup(){this.hasAttribute("role")||this.setAttribute("role","toolbar"),this.getAttribute("aria-label")||this.setAttribute("aria-label","Page tools"),this.#r(),this.#o();let t=this.dataset.breakpoint||"48rem";this.#s=matchMedia(`(max-width: ${t})`),this.#a(this.#s),this.listen(this.#s,"change",e=>this.#a(e)),this.#i=new MutationObserver(e=>{for(let i of e)i.type==="childList"&&this.#n&&this.#h()}),this.#i.observe(this,{childList:!0})}teardown(){this.#i?.disconnect(),this.#i=null,this.#n&&this.#c(),this.#t?.remove(),this.#e?.remove(),this.#t=null,this.#e=null}get tools(){return Array.from(this.children).filter(t=>!t.hasAttribute("data-page-tools-internal"))}#r(){if((this.dataset.orientation||"auto")!=="auto")return;let i=(this.dataset.position||"sticky")==="inline"?"horizontal":"vertical";this.dataset.resolvedOrientation=i}#o(){let t=`pt-${++Wu}`,e=this.dataset.fabIcon||"ellipsis-vertical",i=this.dataset.fabLabel||"Page tools";this.#t=document.createElement("button"),this.#t.className="page-tools-fab",this.#t.setAttribute("data-page-tools-internal",""),this.#t.setAttribute("popovertarget",t),this.#t.setAttribute("aria-label",i),this.#t.hidden=!0,this.#t.innerHTML=`<icon-wc name="${e}" size="md"></icon-wc>`,this.#e=document.createElement("section"),this.#e.className="page-tools-popover",this.#e.setAttribute("data-page-tools-internal",""),this.#e.id=t,this.#e.setAttribute("popover",""),this.#e.setAttribute("aria-label",i),this.#e.hidden=!0,this.appendChild(this.#t),this.appendChild(this.#e),this.listen(this.#e,"toggle",n=>{n.newState==="closed"&&this.#t.focus()})}#a(t){t.matches??t?this.#l():this.#c()}#l(){if(this.#n)return;this.#n=!0;let t=this.tools;for(let e of t)this.#e.appendChild(e);this.#t.hidden=!1,this.#e.hidden=!1,this.dataset.collapsed=""}#c(){if(!this.#n)return;this.#n=!1,this.#e.matches(":popover-open")&&this.#e.hidePopover();let t=Array.from(this.#e.children);for(let e of t)this.insertBefore(e,this.#t);this.#t.hidden=!0,this.#e.hidden=!0,delete this.dataset.collapsed}#h(){let t=this.tools;for(let e of t)this.#e.appendChild(e)}};g("page-tools",Tn);var Ln=class extends b{#t=null;#e=null;setup(){this.#s(),this.#i()}teardown(){this.#e?.disconnect()}#s(){let t=this.getAttribute("placeholder")||"Filter terms\u2026",e=document.createElement("input");e.type="search",e.placeholder=t,e.setAttribute("aria-label",t),e.setAttribute("data-glossary-search",""),e.addEventListener("input",()=>this.#n(e.value));let i=this.querySelector("main");i?i.prepend(e):this.prepend(e),this.#t=e}#n(t){let e=t.toLowerCase().trim(),i=this.querySelectorAll('.glossary-section, section[id^="glossary-"]');for(let n of i){let r=n.querySelectorAll("dt"),o=!1;for(let a of r){let l=a.textContent?.toLowerCase()||"",c=!e||l.includes(e),h=a.nextElementSibling;a.hidden=!c,h?.tagName==="DD"&&(h.hidden=!c),c&&(o=!0)}n.hidden=!o}}#i(){let t=this.querySelectorAll(".glossary-jump a");if(!t.length)return;let e=this.querySelectorAll('.glossary-section, section[id^="glossary-"]');if(e.length){this.#e=new IntersectionObserver(i=>{for(let n of i)if(n.isIntersecting){let r=n.target.id;for(let o of t){let a=o.getAttribute("href")===`#${r}`;o.setAttribute("aria-current",a?"true":"false")}}},{rootMargin:"-20% 0px -60% 0px"});for(let i of e)this.#e.observe(i)}}};g("glossary-index",Ln);var Mn=class extends b{#t=null;#e=[];#s=null;setup(){let t=this.getAttribute("src");t?this.#u(t).then(()=>this.#n()):this.#n()}teardown(){this.#t?.disconnect()}#n(){this.#i(),this.#r(),this.#o();let t=this.getAttribute("letters")||"entries";t!=="none"&&this.#a(t==="all"),this.#c()}#i(){let t=this.querySelector('nav[aria-label="Site index"]');t&&(this.#e=[...t.querySelectorAll(":scope > section")])}#r(){let t=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let e of t){let i=e.querySelectorAll(":scope > ul > li"),n=0;for(let o of i){let l=o.querySelectorAll(".index-refs > li").length;n+=l;let c=o.querySelector(".index-term");if(c&&l>0&&!c.querySelector(".index-count")){let h=document.createElement("span");h.className="index-count",h.textContent=`(${l})`,c.after(h)}}let r=e.querySelector("h2");if(r&&n>0&&!r.querySelector(".index-count")){let o=document.createElement("span");o.className="index-count",o.textContent=`(${n})`,r.append(o)}}}#o(){let t=document.createElement("nav");t.setAttribute("data-index-controls",""),t.setAttribute("aria-label","Index controls");let e=this.getAttribute("placeholder")||"Filter index\u2026",i=document.createElement("input");i.type="search",i.placeholder=e,i.setAttribute("aria-label",e),i.setAttribute("data-index-search",""),i.addEventListener("input",()=>this.#h(i.value)),t.append(i);let n=document.createElement("select");n.setAttribute("aria-label","Search scope"),n.innerHTML=`
|
|
1790
|
+
<option value="topic">By Topic</option>
|
|
1791
|
+
<option value="all">All</option>
|
|
1792
|
+
`,this.getAttribute("filter")==="all"&&(n.value="all"),n.addEventListener("change",()=>this.#h(i.value)),this.#s=n,t.append(n);let o=document.createElement("select");o.setAttribute("aria-label","Sort order"),o.innerHTML=`
|
|
1793
|
+
<option value="alpha">Alphabetical</option>
|
|
1794
|
+
<option value="count">Most entries</option>
|
|
1795
|
+
`;let a=this.getAttribute("sort");a==="count"&&(o.value="count"),o.addEventListener("change",()=>this.#d(o.value)),t.append(o);let l=this.querySelector('nav[aria-label="Site index"]');l?l.before(t):this.prepend(t),a==="count"&&this.#d("count")}#a(t){let e=this.querySelector(".index-jump");e&&e.remove();let i=this.querySelectorAll('nav[aria-label="Site index"] > section'),n=new Set;for(let u of i){let d=u.id?.replace("index-","").toUpperCase();d&&n.add(d)}if(n.size===0)return;let r="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),o=t?r:[...n].sort(),a=document.createElement("nav");a.className="index-jump",a.setAttribute("aria-label","Jump to letter");let l=document.createElement("ol");l.className="inline";for(let u of o){let d=document.createElement("li");if(n.has(u)){let m=document.createElement("a");m.href=`#index-${u.toLowerCase()}`,m.textContent=u,d.append(m)}else{let m=document.createElement("span");m.textContent=u,m.setAttribute("aria-disabled","true"),d.append(m)}l.append(d)}a.append(l);let c=this.querySelector("[data-index-controls]"),h=this.querySelector('nav[aria-label="Site index"]');c?c.after(a):h?h.before(a):this.prepend(a),this.#l(a)}#l(t){let e=t.querySelectorAll("a");if(!e.length)return;let i=this.querySelectorAll('nav[aria-label="Site index"] > section');if(i.length){this.#t=new IntersectionObserver(n=>{for(let r of n)if(r.isIntersecting){let o=r.target.id;for(let a of e){let l=a.getAttribute("href")===`#${o}`;a.setAttribute("aria-current",l?"true":"false")}}},{rootMargin:"-20% 0px -60% 0px"});for(let n of i)this.#t.observe(n)}}#c(){let t=this.getAttribute("limit");if(!t)return;let e=parseInt(t,10);if(!e||e<1)return;let i=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let n of i){let r=[...n.querySelectorAll(":scope > ul > li")];if(r.length<=e)continue;let o=r.slice(e);for(let c of o)c.hidden=!0,c.setAttribute("data-index-overflow","");let a=document.createElement("button");a.type="button",a.setAttribute("data-index-expand",""),a.setAttribute("aria-expanded","false"),a.textContent=`Show ${o.length} more`,a.addEventListener("click",()=>{let c=a.getAttribute("aria-expanded")==="true";for(let h of o)h.hidden=c;a.setAttribute("aria-expanded",!c),a.textContent=c?`Show ${o.length} more`:"Show less"});let l=n.querySelector(":scope > ul");l&&l.after(a)}}#h(t){let e=t.toLowerCase().trim(),i=this.#s?.value||"topic",n=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let r of n){let o=r.querySelectorAll(":scope > ul > li"),a=!1;for(let l of o){let h=l.querySelector(".index-term")?.textContent?.toLowerCase()||"",u=!e||h.includes(e);if(!u&&i==="all"){let d=l.querySelectorAll(".index-refs a");for(let p of d)if(p.textContent.toLowerCase().includes(e)){u=!0;break}}l.hidden=!u,u&&(a=!0)}r.hidden=!a}this.#p()}#p(){let t=this.querySelector(".index-jump");if(!t)return;let e=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let i of e){let n=i.id?.replace("index-","").toUpperCase();if(!n)continue;let r=t.querySelector(`a[href="#index-${n.toLowerCase()}"]`);r&&(r.style.opacity=i.hidden?"0.3":"")}}#d(t){let e=this.querySelector('nav[aria-label="Site index"]');if(e){if(t==="alpha")for(let i of this.#e)e.append(i);else if(t==="count"){let i=[...e.querySelectorAll(":scope > section")];i.sort((n,r)=>{let o=n.querySelectorAll(".index-refs > li").length;return r.querySelectorAll(".index-refs > li").length-o});for(let n of i)e.append(n)}}}async#u(t){try{let e=await fetch(t);if(!e.ok)return;let i=await e.json();this.#m(i)}catch{}}#m(t){if(!Array.isArray(t))return;let e={};for(let r of t){let o=(r.term||"")[0]?.toUpperCase()||"#";e[o]||(e[o]=[]),e[o].push(r)}let i=document.createElement("nav");i.setAttribute("aria-label","Site index");for(let[r,o]of Object.entries(e).sort(([a],[l])=>a.localeCompare(l))){let a=document.createElement("section");a.id=`index-${r.toLowerCase()}`,a.innerHTML=`<h2>${r}</h2>`;let l=document.createElement("ul");for(let c of o){let h=document.createElement("li");h.innerHTML=`
|
|
1796
|
+
<span class="index-term">${c.term}</span>
|
|
1797
|
+
${c.refs?`<ul class="index-refs">${c.refs.map(u=>`<li><a href="${u.href}">${u.label}</a>${u.type?` <small>${u.type}</small>`:""}</li>`).join("")}</ul>`:""}
|
|
1798
|
+
`,l.append(h)}a.append(l),i.append(a)}let n=this.querySelector('nav[aria-label="Site index"]');n?n.replaceWith(i):this.append(i)}};g("site-index",Mn);function Gu(s){let t=(Date.now()-s.getTime())/1e3;if(t<0)return null;if(t<60)return"just now";if(t<3600){let i=Math.floor(t/60);return`${i} minute${i!==1?"s":""} ago`}if(t<86400){let i=Math.floor(t/3600);return`${i} hour${i!==1?"s":""} ago`}if(t<2592e3){let i=Math.floor(t/86400);return`${i} day${i!==1?"s":""} ago`}if(t<31536e3){let i=Math.floor(t/2592e3);return`${i} month${i!==1?"s":""} ago`}let e=Math.floor(t/31536e3);return`${e} year${e!==1?"s":""} ago`}function Xt(s=document){for(let t of s.querySelectorAll("time[data-relative]")){let e=t.getAttribute("datetime");if(!e)continue;let i=Gu(new Date(e));i&&(t.textContent=i)}}var na;function ra(){Xt(),na||(na=setInterval(()=>Xt(),6e4))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ra,{once:!0}):ra();var $n=class extends b{setup(){Xt(this),this.#t();let t=this.getAttribute("updates-src");t&&this.#r(t)}#t(){let t=document.createElement("nav");t.setAttribute("data-timeline-controls",""),t.setAttribute("aria-label","Timeline controls");let e=document.createElement("button");if(e.type="button",e.textContent="Oldest first",e.addEventListener("click",()=>{this.#s(),e.textContent=this.#e?"Latest first":"Oldest first"}),t.append(e),this.hasAttribute("versions")){let i=this.#n();if(i.length>0){let n=document.createElement("select");n.setAttribute("aria-label","Filter by version"),n.innerHTML='<option value="">All versions</option>'+i.map(r=>`<option value="${r}">${r}</option>`).join(""),n.addEventListener("change",()=>this.#i(n.value)),t.append(n)}}this.prepend(t)}#e=!1;#s(){this.#e=!this.#e;let t=this.querySelector(".changelog-entries")||this,e=[...t.children].filter(i=>i.tagName==="SECTION"||i.tagName==="ARTICLE");e.reverse();for(let i of e)t.append(i)}#n(){let t=this.querySelectorAll(".version-tag"),e=new Set;for(let i of t){let n=i.textContent.trim();n&&e.add(n)}return[...e]}#i(t){let e=this.querySelectorAll('section[id^="v"]');for(let i of e)i.hidden=t&&i.id!==t.replace(/\./g,"-").replace(/^v/,"v");if(!e.length){let i=this.querySelectorAll(".changelog-entries article");for(let n of i){let r=n.querySelector(".version-tag");n.hidden=t&&r?.textContent.trim()!==t}}}async#r(t){try{let e=await fetch(t);if(!e.ok)return;let i=await e.json();if(!Array.isArray(i)||!i.length)return;let n=document.createElement("section");n.setAttribute("aria-labelledby","recent-pages-heading"),n.innerHTML=`
|
|
1799
|
+
<h2 id="recent-pages-heading">Recently Updated Pages</h2>
|
|
1800
|
+
<ul class="recent-pages">
|
|
1801
|
+
${i.slice(0,10).map(o=>`
|
|
1802
|
+
<li>
|
|
1803
|
+
<a href="${o.href||o.url}">${o.title}</a>
|
|
1804
|
+
<time datetime="${o.modified||o.date}" data-relative>${o.modified||o.date}</time>
|
|
1805
|
+
</li>
|
|
1806
|
+
`).join("")}
|
|
1807
|
+
</ul>
|
|
1808
|
+
`;let r=this.querySelector(".changelog-entries")||this.querySelector("[data-timeline-controls]");r?r.after(n):this.append(n),Xt(n)}catch{}}};g("time-index",$n);var Nn=class extends b{setup(){this.#t(),this.#e(),this.#s(),this.getAttribute("src")&&this.#n()}#t(){let t=this.getAttribute("current")||window.location.pathname,e=this.querySelectorAll("a");for(let i of e)new URL(i.href,window.location.origin).pathname===t&&i.setAttribute("aria-current","page")}#e(){let t=this.querySelector('[aria-current="page"]');if(!t)return;let e=t.parentElement;for(;e&&e!==this;)e.tagName==="DETAILS"&&(e.open=!0),e=e.parentElement}#s(){let t=this.querySelectorAll("details");if(!t.length)return;let e=document.createElement("nav");e.setAttribute("data-sitemap-controls",""),e.setAttribute("aria-label","Sitemap controls");let i=document.createElement("button");i.type="button",i.textContent="Expand all",i.addEventListener("click",()=>{for(let r of t)r.open=!0});let n=document.createElement("button");n.type="button",n.textContent="Collapse all",n.addEventListener("click",()=>{for(let r of t)r.open=!1;this.#e()}),e.append(i,n),this.prepend(e)}async#n(){let t=this.getAttribute("src");if(t)try{let e=await fetch(t);if(!e.ok)return;let i=await e.json();this.#i(i)}catch{}}#i(t){if(!t||!Array.isArray(t.children))return;let e=document.createElement("nav");e.setAttribute("aria-label","Full site map"),e.append(this.#r(t.children));let i=this.querySelector("nav");i?i.replaceWith(e):this.append(e),this.#t(),this.#e()}#r(t){let e=document.createElement("ul");for(let i of t){let n=document.createElement("li");if(i.children?.length){let r=document.createElement("details"),o=document.createElement("summary");o.textContent=i.title,r.append(o),r.append(this.#r(i.children)),n.append(r)}else{let r=document.createElement("a");r.href=i.href||i.path,r.textContent=i.title,n.append(r)}e.append(n)}return e}};g("site-map",Nn);var je=CSS.supports("anchor-name","--x"),oa=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,qn=class extends HTMLElement{get target(){return this.dataset.target}get placement(){return this.dataset.placement??"auto"}get action(){return this.dataset.action??"none"}get actionHint(){return this.dataset.actionHint??null}get skippable(){return this.dataset.skippable!=="false"}get scrollBehavior(){return this.dataset.scroll??"smooth"}},Dn=class s extends b{#t=[];#e=0;#s=!1;#n=null;#i=null;#r=null;#o=null;#a=null;#l=null;#c=null;#h=null;static#p=null;static observedAttributes=["data-step"];setup(){if(this.#t=[...this.querySelectorAll("tour-step")],this.#t.length===0)return!1;let t=this.querySelector(".page-tour-start-btn");if(t&&this.listen(t,"click",e=>{e.preventDefault(),this.start()}),this.id&&this.listen(document,"click",e=>{e.target.closest(`[data-tour="${this.id}"]`)&&(e.preventDefault(),this.start())}),this.dataset.trigger==="auto"){let e=this.#B();e?.complete||e?.skipped?this.setAttribute("data-complete",""):setTimeout(()=>this.start(e?.step??0),400)}}teardown(){this.#s&&this.stop()}attributeChangedCallback(t,e,i){if(t==="data-step"&&this.#s&&e!==null){let n=parseInt(i,10);!Number.isNaN(n)&&n!==this.#e&&this.#y(n)}}start(t=0){s.#p&&s.#p!==this&&s.#p.stop(),this.#a=document.activeElement,this.#s=!0,s.#p=this,this.#d(),this.setAttribute("data-active",""),this.removeAttribute("data-complete"),this.#D("tour:start",{step:t}),this.#y(t)}stop(){this.#q(),this.#s=!1,this.removeAttribute("data-active"),s.#p===this&&(s.#p=null)}next(){!this.#s||this.#r?.querySelector('[data-action="next"]')?.hasAttribute("data-waiting")||(this.#e<this.#t.length-1?this.#y(this.#e+1,"next"):this.#w())}prev(){this.#s&&this.#e>0&&this.#y(this.#e-1,"prev")}goto(t){this.#s&&t>=0&&t<this.#t.length&&this.#y(t)}skip(){!this.#s||(this.dataset.mode??"passive")==="forced"||(this.#D("tour:skip",{step:this.#e}),this.#_({skipped:!0}),this.stop(),this.setAttribute("data-complete",""))}reset(){this.#R(),this.removeAttribute("data-complete"),this.dataset.step="0"}#d(){this.#n=document.createElement("div"),this.#n.className="page-tour-backdrop",this.#n.setAttribute("aria-hidden","true"),this.#n.addEventListener("click",()=>{(this.dataset.mode??"passive")!=="forced"&&this.skip()}),this.#i=document.createElement("div"),this.#i.className="page-tour-spotlight",this.#i.setAttribute("aria-hidden","true"),this.#r=document.createElement("div"),this.#r.className="page-tour-card",this.#r.setAttribute("popover","manual"),this.#r.setAttribute("role","dialog"),this.#r.setAttribute("aria-modal","true"),this.#r.setAttribute("aria-label",this.dataset.title??"Page Tour"),this.#r.addEventListener("keydown",t=>this.#k(t)),this.#r.addEventListener("click",t=>this.#x(t)),this.#o=document.createElement("div"),this.#o.setAttribute("aria-live","polite"),this.#o.setAttribute("aria-atomic","true"),this.#o.className="sr-only",this.#o.id=`page-tour-announcer-${crypto.randomUUID().slice(0,8)}`,this.append(this.#n,this.#i,this.#r,this.#o),this.#r.showPopover(),requestAnimationFrame(()=>{this.#n?.setAttribute("data-visible","")})}#u(t){let e=parseInt(this.dataset.spotlightPadding,10)||8,i=t.getBoundingClientRect();Object.assign(this.#i.style,{top:`${i.top-e}px`,left:`${i.left-e}px`,width:`${i.width+e*2}px`,height:`${i.height+e*2}px`})}#m(t,e){if(this.#r){if(je){this.#b(t,e);return}this.#g(t,e)}}#b(t,e){let i="--tour-target";t.style.anchorName=i,this.#r.style.positionAnchor=i,this.#r.style.position="fixed",this.#r.style.top="",this.#r.style.left="",this.#r.style.bottom="",this.#r.style.right="";let n="var(--tour-card-offset, 0.75rem)";switch(e==="auto"?this.#f(t):e){case"bottom":this.#r.style.top="anchor(bottom)",this.#r.style.left="anchor(center)",this.#r.style.translate="0 calc("+n+")";break;case"top":this.#r.style.bottom="anchor(top)",this.#r.style.left="anchor(center)",this.#r.style.translate="0 calc(-1 * "+n+")";break;case"right":this.#r.style.left="anchor(right)",this.#r.style.top="anchor(center)",this.#r.style.translate=n+" 0";break;case"left":this.#r.style.right="anchor(left)",this.#r.style.top="anchor(center)",this.#r.style.translate="calc(-1 * "+n+") 0";break}}#g(t,e){let i=t.getBoundingClientRect(),n=12,r=8,o=e==="auto"?this.#f(t):e;this.#r.style.position="fixed",this.#r.style.visibility="hidden",this.#r.style.top="0",this.#r.style.left="0",this.#r.style.translate="";let a=this.#r.getBoundingClientRect();this.#r.style.visibility="";let l,c,h=parseInt(this.dataset.spotlightPadding,10)||8;switch(o){case"bottom":l=i.bottom+h+n,c=i.left+(i.width-a.width)/2;break;case"top":l=i.top-h-n-a.height,c=i.left+(i.width-a.width)/2;break;case"right":l=i.top+(i.height-a.height)/2,c=i.right+h+n;break;case"left":l=i.top+(i.height-a.height)/2,c=i.left-h-n-a.width;break}c=Math.max(r,Math.min(c,window.innerWidth-a.width-r)),l=Math.max(r,Math.min(l,window.innerHeight-a.height-r)),Object.assign(this.#r.style,{top:`${l}px`,left:`${c}px`,translate:""})}#f(t){let e=t.getBoundingClientRect(),i=window.innerWidth,r=window.innerHeight-e.bottom,o=e.top,a=i-e.right,l=e.left,c=Math.max(r,o,a,l);return c===r?"bottom":c===o?"top":c===a?"right":"left"}#v(t,e){let i=this.#t.length,n=e===i-1,r=e===0,a=(this.dataset.mode??"passive")!=="forced",l=t.action!=="none";this.#r.innerHTML=`
|
|
1809
|
+
<div class="page-tour-progress" aria-hidden="true">
|
|
1810
|
+
${this.#t.map((c,h)=>`
|
|
1811
|
+
<span class="page-tour-pip" ${h===e?"data-active":""} ${h<e?"data-visited":""}></span>
|
|
1812
|
+
`).join("")}
|
|
1813
|
+
</div>
|
|
1814
|
+
<p class="page-tour-meta">
|
|
1815
|
+
<span class="page-tour-step-count">Step ${e+1} of ${i}</span>
|
|
1816
|
+
</p>
|
|
1817
|
+
<div class="page-tour-content">
|
|
1818
|
+
${t.innerHTML}
|
|
1819
|
+
</div>
|
|
1820
|
+
${l&&t.actionHint?`
|
|
1821
|
+
<p class="page-tour-action-hint">${t.actionHint}</p>
|
|
1822
|
+
`:""}
|
|
1823
|
+
<footer class="page-tour-footer">
|
|
1824
|
+
${a?`
|
|
1825
|
+
<button type="button" class="page-tour-skip" data-action="skip">
|
|
1826
|
+
${n?"Close":"Skip tour"}
|
|
1827
|
+
</button>
|
|
1828
|
+
`:""}
|
|
1829
|
+
<nav class="page-tour-nav" aria-label="Tour navigation">
|
|
1830
|
+
${r?"":`
|
|
1831
|
+
<button type="button" class="page-tour-prev" data-action="prev">
|
|
1832
|
+
Previous
|
|
1833
|
+
</button>
|
|
1834
|
+
`}
|
|
1835
|
+
<button
|
|
1836
|
+
type="button"
|
|
1837
|
+
class="page-tour-next"
|
|
1838
|
+
data-action="next"
|
|
1839
|
+
${l?"data-waiting":""}
|
|
1840
|
+
>
|
|
1841
|
+
${n?"Finish":"Next"}
|
|
1842
|
+
</button>
|
|
1843
|
+
</nav>
|
|
1844
|
+
</footer>
|
|
1845
|
+
`}#y(t,e="next"){if(this.#c?.abort(),this.#c=null,this.#e!==t){let c=this.#t[this.#e],h=c?document.querySelector(c.target):null;h&&(je&&(h.style.anchorName=""),h.removeAttribute("data-tour-target"))}this.#T(),this.#e=t;let i=this.#t[t],n=document.querySelector(i.target);if(!n){console.warn(`[page-tour] Target "${i.target}" not found, skipping step ${t}`),e==="next"&&t<this.#t.length-1?this.#y(t+1,"next"):e==="prev"&&t>0&&this.#y(t-1,"prev");return}n.setAttribute("data-tour-target","");let r=oa()?"instant":i.scrollBehavior;i.scrollBehavior!=="none"&&n.scrollIntoView({block:"nearest",behavior:r});let o=()=>{this.#u(n),this.#m(n,i.placement)};o(),setTimeout(o,oa()?0:300),this.#v(i,t),this.#r.hasAttribute("tabindex")||this.#r.setAttribute("tabindex","-1"),this.#r.focus(),requestAnimationFrame(()=>{let c=this.#r?.querySelector(".page-tour-content h3, .page-tour-content h2, .page-tour-content h4");c?(c.hasAttribute("tabindex")||c.setAttribute("tabindex","-1"),c.focus()):this.#r?.querySelector('[data-action="next"]')?.focus()});let l=i.querySelector("h3, h2, h4")?.textContent??`Step ${t+1}`;this.#C(`Step ${t+1} of ${this.#t.length}: ${l}`),this.dataset.step=String(t),i.action!=="none"&&this.#A(i),this.#E(n),this.#_({step:t}),this.#s&&this.#D("tour:step",{step:t,target:n,direction:e})}#A(t){let e=document.querySelector(t.target);if(!e)return;let i=this.#r?.querySelector('[data-action="next"]'),n=new AbortController;this.#c=n;let o={click:"click",focus:"focus",input:"input",change:"change"}[t.action];o?e.addEventListener(o,()=>{i?.removeAttribute("data-waiting"),this.#r?.querySelector(".page-tour-action-hint")?.remove(),i?.focus(),this.#D("tour:action",{step:this.#e,action:t.action}),n.abort()},{signal:n.signal,once:!0}):t.action==="custom"&&this.addEventListener("tour:action",()=>{i?.removeAttribute("data-waiting"),this.#r?.querySelector(".page-tour-action-hint")?.remove(),i?.focus(),n.abort()},{signal:n.signal,once:!0})}#k(t){let e=this.dataset.mode??"passive",n=this.#t[this.#e]?.action!=="none",o=this.#r?.querySelector('[data-action="next"]')?.hasAttribute("data-waiting");switch(t.key){case"Escape":e!=="forced"&&(t.preventDefault(),this.skip());break;case"ArrowRight":case"ArrowDown":t.preventDefault(),n&&o||this.next();break;case"ArrowLeft":case"ArrowUp":t.preventDefault(),this.prev();break;case"Home":t.preventDefault(),this.goto(0);break;case"End":t.preventDefault(),this.goto(this.#t.length-1);break;case"Tab":this.#L(t,n&&o);break}}#L(t,e){let i=[...this.#r.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')].filter(c=>!c.disabled&&c.offsetParent!==null),n=[];if(e){let c=this.#t[this.#e],h=document.querySelector(c.target);h&&(n=(h.matches("input, select, textarea, button, [href], [tabindex]")?[h]:[...h.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')]).filter(d=>!d.disabled&&d.offsetParent!==null))}let r=[...i,...n];if(r.length===0)return;let o=r[0],a=r[r.length-1],l=document.activeElement;t.shiftKey?(l===o||!r.includes(l))&&(t.preventDefault(),a.focus()):(l===a||!r.includes(l))&&(t.preventDefault(),o.focus())}#x(t){let e=t.target.closest("[data-action]");if(!e)return;switch(e.dataset.action){case"next":this.next();break;case"prev":this.prev();break;case"skip":this.skip();break}}#E(t){this.#l=new ResizeObserver(()=>{this.#S(t)}),this.#l.observe(t),this.listen(window,"scroll",()=>this.#S(t),{passive:!0})}#T(){this.#l&&(this.#l.disconnect(),this.#l=null),this.#h&&(cancelAnimationFrame(this.#h),this.#h=null)}#S(t){this.#h||(this.#h=requestAnimationFrame(()=>{if(this.#h=null,!this.#s)return;this.#u(t);let e=this.#t[this.#e];je||this.#g(t,e.placement)}))}#w(){this.#D("tour:complete",{steps:this.#t.length}),this.#_({complete:!0}),this.stop(),this.setAttribute("data-complete","")}#q(){this.#c?.abort(),this.#c=null,this.#T();let t=this.#t[this.#e],e=t?document.querySelector(t.target):null;e&&(je&&(e.style.anchorName=""),e.removeAttribute("data-tour-target")),this.#n?.remove(),this.#i?.remove(),this.#r?.hidePopover?.(),this.#r?.remove(),this.#o?.remove(),this.#n=null,this.#i=null,this.#r=null,this.#o=null,this.#a&&typeof this.#a.focus=="function"&&(this.#a.focus(),this.#a=null)}#C(t){this.#o&&(this.#o.textContent="",requestAnimationFrame(()=>{this.#o&&(this.#o.textContent=t)}))}#D(t,e){let i=t!=="tour:skip";this.dispatchEvent(new CustomEvent(t,{bubbles:!0,cancelable:i,detail:e}))}#$(){let t=this.dataset.persist??"session";return t==="session"?sessionStorage:t==="local"?localStorage:null}#M(){return`vb-tour-${this.dataset.persistKey??window.location.pathname}`}#_(t){let e=this.#$();if(!e)return;let i=this.#M(),n={};try{n=JSON.parse(e.getItem(i))??{}}catch{}e.setItem(i,JSON.stringify({...n,...t}))}#B(){let t=this.#$();if(!t)return null;try{return JSON.parse(t.getItem(this.#M()))}catch{return null}}#R(){let t=this.#$();t&&t.removeItem(this.#M())}};g("page-tour",Dn);g("tour-step",qn);var _n=class extends HTMLElement{static observedAttributes=["src","alt","wordmark","height"];connectedCallback(){this._originalText||(this._originalText=this._readTextContent()),this._render()}attributeChangedCallback(){this.isConnected&&this._render()}_render(){let t=this.getAttribute("src");if(!t){this._originalText&&this.querySelector("img")&&(this.replaceChildren(document.createTextNode(this._originalText)),this.removeAttribute("aria-label"));return}let e=this._originalText||this.getAttribute("alt")||"",i=this.hasAttribute("wordmark"),n=this.getAttribute("height"),r=this.querySelector("img"),o=this.querySelector(".brand-mark-wordmark");if(r?.getAttribute("src")===t){if(i&&!o){let l=document.createElement("span");l.className="brand-mark-wordmark",l.textContent=e,this.appendChild(l)}else!i&&o&&o.remove();return}let a=document.createElement("img");if(a.src=t,a.alt=i?"":e,a.decoding="async",n&&(a.height=parseInt(n,10)),i){let l=document.createElement("span");l.className="brand-mark-wordmark",l.textContent=e,this.replaceChildren(a,l)}else this.replaceChildren(a),this.getAttribute("alt")||this.setAttribute("aria-label",e)}_readTextContent(){let t="";for(let e of this.childNodes)(e.nodeType===Node.TEXT_NODE||e.nodeType===Node.ELEMENT_NODE&&e.tagName!=="IMG")&&(t+=e.textContent);return t.trim()}};customElements.define("brand-mark",_n);function ze(s){let t=s.getFullYear(),e=String(s.getMonth()+1).padStart(2,"0"),i=String(s.getDate()).padStart(2,"0");return`${t}-${e}-${i}`}function Jt(s){if(!s)return null;let[t,e,i]=s.split("-").map(Number);return new Date(t,e-1,i)}function aa(s,t){return new Date(s,t+1,0).getDate()}function Z(s,t){return s&&t&&s.getFullYear()===t.getFullYear()&&s.getMonth()===t.getMonth()&&s.getDate()===t.getDate()}function Yu(){try{let s=new Intl.Locale(navigator.language);if(s.weekInfo)return s.weekInfo.firstDay%7}catch{}return 0}function la(s){return s?typeof s=="string"?[{label:s}]:Array.isArray(s)?s:typeof s=="object"?[s]:[]:[]}var Ku=["Su","Mo","Tu","We","Th","Fr","Sa"],Xu=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Ju=Array.from({length:24},(s,t)=>{let e=t%12||12,i=t<12?"AM":"PM";return`${e}:00 ${i}`}),In=class extends b{#t;#e;#s;#n={};#i=new Set;#r=new Map;#o=null;#a=null;#l=null;#c=null;#h="none";#p="default";#d;#u;#m;#b;#g;#f;#v;#y=null;setup(){let t=new Date;this.#t=parseInt(this.getAttribute("data-month"),10)-1,isNaN(this.#t)&&(this.#t=t.getMonth()),this.#e=parseInt(this.getAttribute("data-year"),10),isNaN(this.#e)&&(this.#e=t.getFullYear()),this.#s=Yu(),this.#h=this.getAttribute("data-selection")||"none",this.#p=this.getAttribute("data-size")||"default";let e=this.getAttribute("data-events");if(e)try{this.#n=JSON.parse(e)}catch{}let i=this.getAttribute("data-disabled-dates");i&&i.split(",").forEach(r=>this.#i.add(r.trim()));let n=this.getAttribute("data-highlight-dates");n&&n.split(",").forEach(r=>{let[o,a]=r.trim().split(":");this.#r.set(o,a||null)}),this.#A(),this.#T()}#A(){this.#d=document.createElement("header"),this.#f=document.createElement("button"),this.#f.type="button",this.#f.setAttribute("aria-label","Previous month"),this.#f.textContent="\u2039",this.listen(this.#f,"click",()=>this.#L(-1)),this.#u=document.createElement("span"),this.#u.className="calendar-title",this.#u.setAttribute("aria-live","polite"),this.#m=document.createElement("span"),this.#m.className="calendar-month",this.#b=document.createElement("select"),this.#b.className="calendar-year",this.#b.setAttribute("aria-label","Year"),this.listen(this.#b,"change",()=>{this.#e=parseInt(this.#b.value,10),this.#T(),this.dispatchEvent(new CustomEvent("calendar:navigate",{bubbles:!0,detail:{year:this.#e,month:this.#t+1}}))});let t=document.createElement("span");t.className="calendar-year-wrap",t.appendChild(this.#b),this.#u.append(this.#m," ",t),this.#v=document.createElement("button"),this.#v.type="button",this.#v.setAttribute("aria-label","Next month"),this.#v.textContent="\u203A",this.listen(this.#v,"click",()=>this.#L(1)),this.#d.append(this.#f,this.#u,this.#v),this.appendChild(this.#d);let e=document.createElement("div");e.className="calendar-banner",e.setAttribute("aria-hidden","true"),this.appendChild(e),this.#g=document.createElement("table"),this.#g.setAttribute("role","grid");let i=document.createElement("thead"),n=document.createElement("tr");for(let r=0;r<7;r++){let o=(this.#s+r)%7,a=document.createElement("th");a.setAttribute("scope","col"),a.setAttribute("abbr",Xu[o]),a.textContent=Ku[o],n.appendChild(a)}i.appendChild(n),this.#g.appendChild(i),this.appendChild(this.#g),this.listen(this.#g,"keydown",r=>this.#q(r)),this.listen(this.#g,"click",r=>{let o=r.target.closest("button[data-date]");if(!o||o.disabled)return;let a=o.getAttribute("data-date");if(this.#h!=="none")this.#x(a);else{let l=la(this.#n[a]);l.length&&this.#S(a,l)}}),this.#h==="range"&&this.listen(this.#g,"mouseover",r=>{let o=r.target.closest("button[data-date]");o&&this.#a&&!this.#l&&(this.#c=Jt(o.getAttribute("data-date")),this.#E())})}#k(){this.#b.innerHTML="";let t=new Date().getFullYear(),e=t-10,i=t+10;for(let n=e;n<=i;n++){let r=document.createElement("option");r.value=n,r.textContent=n,n===this.#e&&(r.selected=!0),this.#b.appendChild(r)}}#L(t){this.#t+=t,this.#t<0&&(this.#t=11,this.#e--),this.#t>11&&(this.#t=0,this.#e++),this.#T(),this.dispatchEvent(new CustomEvent("calendar:navigate",{bubbles:!0,detail:{year:this.#e,month:this.#t+1}}))}#x(t){if(this.#h==="none")return;let e=Jt(t);this.#h==="single"?(this.#o=e,this.#E(),this.dispatchEvent(new CustomEvent("calendar:select",{bubbles:!0,detail:{value:t,date:e}}))):this.#h==="range"&&(!this.#a||this.#l?(this.#a=e,this.#l=null,this.#c=null):(this.#l=e,this.#a>this.#l&&([this.#a,this.#l]=[this.#l,this.#a]),this.#c=null,this.dispatchEvent(new CustomEvent("calendar:select",{bubbles:!0,detail:{start:ze(this.#a),end:ze(this.#l),startDate:this.#a,endDate:this.#l}}))),this.#E())}#E(){let t=this.#g.querySelector("tbody");if(!t)return;let e=this.#a,i=this.#l||this.#c;for(let n of t.querySelectorAll("td")){let r=n.querySelector("button[data-date]");if(!r)continue;let o=r.getAttribute("data-date"),a=Jt(o);if(n.removeAttribute("data-selected"),n.removeAttribute("data-range-start"),n.removeAttribute("data-range-end"),n.removeAttribute("data-in-range"),r.removeAttribute("aria-selected"),this.#h==="single"&&Z(a,this.#o)&&(n.setAttribute("data-selected",""),r.setAttribute("aria-selected","true")),this.#h==="range"&&e)if(i){let l=e<i?e:i,c=e<i?i:e;Z(a,l)&&n.setAttribute("data-range-start",""),Z(a,c)&&n.setAttribute("data-range-end",""),a>=l&&a<=c&&n.setAttribute("data-in-range","")}else Z(a,e)&&n.setAttribute("data-range-start","")}}#T(){let t=new Date,e=aa(this.#e,this.#t),i=this.#p==="large";try{let m=new Date(this.#e,this.#t,1),f=new Intl.DateTimeFormat(void 0,{month:"long"}).format(m);this.#m.textContent=f,this.#g.setAttribute("aria-label",`${f} ${this.#e}`)}catch{this.#m.textContent=String(this.#t+1)}this.#k(),this.setAttribute("data-month",String(this.#t+1)),this.setAttribute("data-year",String(this.#e));let n=this.#g.querySelector("tbody");n&&n.remove();let r=document.createElement("tbody"),o=1,a=document.createElement("tr");a.setAttribute("data-week",String(o));let c=(new Date(this.#e,this.#t,1).getDay()-this.#s+7)%7,h=aa(this.#e,this.#t-1);for(let m=0;m<c;m++){let f=h-c+1+m,v=document.createElement("td");v.setAttribute("data-outside-month","");let y=document.createElement("button");y.type="button",y.disabled=!0,y.setAttribute("tabindex","-1"),y.setAttribute("data-day",String(f));let w=document.createElement("span");w.className="day-number",w.textContent=String(f),y.appendChild(w),v.appendChild(y),a.appendChild(v)}let u=this.#a,d=this.#l||this.#c;for(let m=1;m<=e;m++){let f=new Date(this.#e,this.#t,m),v=ze(f),y=document.createElement("td"),w=document.createElement("button");w.type="button",w.setAttribute("data-date",v);let S=document.createElement("span");if(S.className="day-number",S.textContent=String(m),w.appendChild(S),w.setAttribute("data-day",String(m)),Z(f,t)&&(w.setAttribute("aria-current","date"),y.setAttribute("data-today","")),this.#h==="single"&&Z(f,this.#o)&&(w.setAttribute("aria-selected","true"),y.setAttribute("data-selected","")),this.#h==="range"&&u&&d){let M=u<d?u:d,C=u<d?d:u;Z(f,M)&&y.setAttribute("data-range-start",""),Z(f,C)&&y.setAttribute("data-range-end",""),f>=M&&f<=C&&y.setAttribute("data-in-range","")}else this.#h==="range"&&u&&Z(f,u)&&y.setAttribute("data-range-start","");this.#i.has(v)&&(w.setAttribute("aria-disabled","true"),w.disabled=!0),this.#r.has(v)&&w.setAttribute("data-highlight",this.#r.get(v)||"");let T=la(this.#n[v]);if(T.length){if(y.setAttribute("data-events",""),y.setAttribute("data-event-count",String(T.length)),i){let C=document.createElement("span");C.className="event-list";let N=2;if(T.slice(0,N).forEach(q=>{let U=document.createElement("span");if(U.className="event-item",q.color&&U.style.setProperty("--event-color",q.color),q.icon){let vt=document.createElement("icon-wc");vt.setAttribute("name",q.icon),vt.setAttribute("size","xs"),U.appendChild(vt)}let Mt=document.createElement("span");Mt.textContent=q.time?`${q.time} ${q.label}`:q.label,U.appendChild(Mt),C.appendChild(U)}),T.length>N){let q=document.createElement("span");q.className="event-more",q.textContent=`+${T.length-N} more`,C.appendChild(q)}w.appendChild(C)}else{let C=document.createElement("span");C.className="event-dots",C.setAttribute("aria-hidden","true");let N=Math.min(T.length,3);for(let q=0;q<N;q++){let U=document.createElement("span");U.setAttribute("data-event-dot",""),T[q].color&&U.style.setProperty("--event-color",T[q].color),C.appendChild(U)}y.appendChild(C)}let M=T.map(C=>C.time?`${C.time} \u2014 ${C.label}`:C.label);w.setAttribute("title",M.join(`
|
|
1846
|
+
`))}let P=m===1||Z(f,t);w.setAttribute("tabindex",P?"0":"-1"),y.insertBefore(w,y.firstChild),a.appendChild(y),(c+m)%7===0&&(r.appendChild(a),o++,a=document.createElement("tr"),a.setAttribute("data-week",String(o)))}let p=(c+e)%7;if(p>0){for(let m=1;m<=7-p;m++){let f=document.createElement("td");f.setAttribute("data-outside-month","");let v=document.createElement("button");v.type="button",v.disabled=!0,v.setAttribute("tabindex","-1"),v.setAttribute("data-day",String(m));let y=document.createElement("span");y.className="day-number",y.textContent=String(m),v.appendChild(y),f.appendChild(v),a.appendChild(f)}r.appendChild(a)}this.#g.appendChild(r)}#S(t,e){this.#w();let i=Jt(t),n=document.createElement("div");n.className="day-detail",n.setAttribute("role","dialog"),n.setAttribute("aria-label",`Events for ${t}`);let r=document.createElement("header"),o=document.createElement("h3");try{o.textContent=new Intl.DateTimeFormat(void 0,{weekday:"long",month:"long",day:"numeric",year:"numeric"}).format(i)}catch{o.textContent=t}let a=document.createElement("button");a.type="button",a.setAttribute("aria-label","Close"),a.textContent="\xD7",a.addEventListener("click",()=>this.#w()),r.append(o,a),n.appendChild(r);let l=document.createElement("ul");if(e.forEach(u=>{let d=document.createElement("li");u.color&&d.style.setProperty("--event-color",u.color);let p=document.createElement("span");p.className="detail-dot";let m=document.createElement("span");if(m.className="detail-content",u.icon){let y=document.createElement("icon-wc");y.setAttribute("name",u.icon),y.setAttribute("size","sm"),m.appendChild(y)}let f=document.createElement("span");f.className="detail-label",f.textContent=u.label||"";let v=u.time?document.createElement("span"):null;v&&(v.className="detail-time",v.textContent=u.time),m.append(f),v&&d.append(v),d.append(p,m),l.appendChild(d)}),n.appendChild(l),e.some(u=>u.time)){let u=document.createElement("div");u.className="day-hours";let d=new Map;if(e.forEach(p=>{if(!p.time)return;let m=parseInt(p.time.split(":")[0],10);d.has(m)||d.set(m,[]),d.get(m).push(p)}),d.size>0){let p=document.createElement("div");p.className="hour-grid";let m=[...d.keys()].sort((y,w)=>y-w),f=Math.max(0,m[0]-1),v=Math.min(23,m[m.length-1]+1);for(let y=f;y<=v;y++){let w=document.createElement("div");w.className="hour-row";let S=document.createElement("span");S.className="hour-label",S.textContent=Ju[y];let T=document.createElement("span");T.className="hour-content",(d.get(y)||[]).forEach(M=>{let C=document.createElement("span");if(C.className="hour-event",M.color&&C.style.setProperty("--event-color",M.color),M.icon){let N=document.createElement("icon-wc");N.setAttribute("name",M.icon),N.setAttribute("size","xs"),C.appendChild(N)}C.append(M.label||""),T.appendChild(C)}),w.append(S,T),p.appendChild(w)}u.appendChild(p),n.appendChild(u)}}this.appendChild(n),this.#y=n;let c=u=>{u.key==="Escape"&&this.#w()},h=u=>{n.contains(u.target)||this.#w()};this._detailCleanup=()=>{document.removeEventListener("keydown",c),document.removeEventListener("mousedown",h)},document.addEventListener("keydown",c),requestAnimationFrame(()=>{document.addEventListener("mousedown",h)}),this.dispatchEvent(new CustomEvent("calendar:day-open",{bubbles:!0,detail:{date:t,events:e}}))}#w(){this.#y&&(this._detailCleanup?.(),this._detailCleanup=null,this.#y.remove(),this.#y=null)}#q(t){let e=this.#g.querySelector('button[tabindex="0"]');if(!e)return;let i=e.getAttribute("data-date"),n=Jt(i);if(!n)return;let r;switch(t.key){case"ArrowRight":r=new Date(n),r.setDate(n.getDate()+1);break;case"ArrowLeft":r=new Date(n),r.setDate(n.getDate()-1);break;case"ArrowDown":r=new Date(n),r.setDate(n.getDate()+7);break;case"ArrowUp":r=new Date(n),r.setDate(n.getDate()-7);break;case"Enter":case" ":t.preventDefault(),e.disabled||this.#x(i);return;default:return}t.preventDefault(),(r.getMonth()!==this.#t||r.getFullYear()!==this.#e)&&(this.#t=r.getMonth(),this.#e=r.getFullYear(),this.#T());let o=ze(r),a=this.#g.querySelector(`button[data-date="${o}"]`);a&&(this.#g.querySelectorAll('button[tabindex="0"]').forEach(l=>l.setAttribute("tabindex","-1")),a.setAttribute("tabindex","0"),a.focus())}};g("calendar-wc",In);var Zu=CSS.supports("anchor-name","--test"),Qu=new Set(["BUTTON","A","AREA"]);function td(s){return document.documentElement.hasAttribute("data-interest-polyfill")?!0:"interestForElement"in HTMLButtonElement.prototype?Qu.has(s.tagName):!1}function Bn(s,t){if(td(s)){s.setAttribute("interestfor",t.id),t.addEventListener("toggle",c=>{c.newState==="open"&&He(s,t)});return}let e=null,i=null,n=t,r=()=>{clearTimeout(i),e=setTimeout(()=>{n.showPopover(),He(s,t)},200)},o=()=>{clearTimeout(e),i=setTimeout(()=>{n.hidePopover()},100)},a=()=>{clearTimeout(i),n.showPopover(),He(s,t)},l=()=>{clearTimeout(e),n.hidePopover()};s.addEventListener("mouseenter",r),s.addEventListener("mouseleave",o),s.addEventListener("focus",a),s.addEventListener("blur",l),t.addEventListener("mouseenter",()=>clearTimeout(i)),t.addEventListener("mouseleave",o)}function Rn(s,t){if(!Zu)return;let e=`--tooltip-anchor-${t.id}`;s.style.anchorName=e,t.style.positionAnchor=e,t.setAttribute("data-anchor","")}function ed(s){let t=s.getAttribute("title");if(!t)return;s.removeAttribute("title");let e=document.createElement("div");e.setAttribute("role","tooltip"),e.setAttribute("popover","hint"),e.id=`tooltip-${crypto.randomUUID().slice(0,8)}`,e.textContent=t;let i=s.dataset.tooltipPosition||"top";e.dataset.tooltipPosition=i;let n=document.createElement("span");n.className="tooltip-arrow",n.setAttribute("aria-hidden","true"),e.appendChild(n),s.after(e),s.setAttribute("aria-describedby",e.id),Rn(s,e),Bn(s,e)}function sd(s,t){let e=document.getElementById(t);e?.hasAttribute("popover")&&(s.hasAttribute("title")&&s.removeAttribute("title"),s.hasAttribute("aria-describedby")||s.setAttribute("aria-describedby",t),Rn(s,e),Bn(s,e))}function ca(s=document){s.querySelectorAll("[data-tooltip]").forEach(t=>{if(t.closest("tool-tip")||t.hasAttribute("data-tooltip-init"))return;t.setAttribute("data-tooltip-init","");let e=t.dataset.tooltip;e?sd(t,e):ed(t)}),s.querySelectorAll("[aria-describedby]").forEach(t=>{let e=t.getAttribute("aria-describedby")??"",i=document.getElementById(e);!i?.hasAttribute("popover")||!i.matches('[role="tooltip"]')||t.closest("tool-tip")||t.hasAttribute("data-tooltip-init")||(t.setAttribute("data-tooltip-init",""),Rn(t,i),Bn(t,i))}),s.querySelectorAll("[popovertarget]").forEach(t=>{let e=t.getAttribute("popovertarget")??"",i=document.getElementById(e);!i?.hasAttribute("popover")||!i.matches('[role="tooltip"]')||i.hasAttribute("data-tooltip-click-init")||(i.setAttribute("data-tooltip-click-init",""),i.addEventListener("toggle",n=>{n.newState==="open"&&He(t,i)}))})}function He(s,t){if(t.hasAttribute("data-anchor"))return;let e=s.getBoundingClientRect(),i=t.dataset.tooltipPosition||"top",n=8,r=t.getBoundingClientRect(),o,a;switch(i){case"bottom":o=e.bottom+n,a=e.left+(e.width-r.width)/2;break;case"left":o=e.top+(e.height-r.height)/2,a=e.left-r.width-n;break;case"right":o=e.top+(e.height-r.height)/2,a=e.right+n;break;default:o=e.top-r.height-n,a=e.left+(e.width-r.width)/2;break}let l=8;a=Math.max(l,Math.min(a,window.innerWidth-r.width-l)),o=Math.max(l,Math.min(o,window.innerHeight-r.height-l)),t.style.top=`${o}px`,t.style.left=`${a}px`}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ca()):ca();var jn="[data-highlights]",id="vb-highlights:",nd=["yellow","green","blue","pink"];var rd=typeof CSS<"u"&&"highlights"in CSS;function ha(s){let t=2166136261;for(let e=0;e<s.length;e++)t^=s.charCodeAt(e),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function od(){return"hn-"+crypto.randomUUID().slice(0,8)}function pa(s,t){return getComputedStyle(s).getPropertyValue(`--highlight-${t}`).trim()}var mt=null,Qt=0;function ad(s){if(mt){Qt++;return}mt=new CSSStyleSheet;let t=s.map(e=>`::highlight(hn-${e}) { background-color: var(--highlight-${e}); text-decoration-line: underline; text-decoration-color: var(--highlight-${e}); text-underline-offset: 2px; }`).join(`
|
|
1847
|
+
`);mt.replaceSync(t),document.adoptedStyleSheets=[...document.adoptedStyleSheets,mt],Qt=1}function ld(){Qt--,Qt<=0&&mt&&(document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s!==mt),mt=null,Qt=0)}var D=null,Ve=null;function cd(){return D||(D=document.createElement("div"),D.className="hn-toolbar",D.setAttribute("role","toolbar"),D.setAttribute("aria-label","Highlight tools"),D.setAttribute("popover","auto"),D.hidden=!0,document.body.appendChild(D),D.addEventListener("toggle",s=>{s.newState==="closed"&&(D.hidden=!0,Ve=null)}),D)}function On(s,t,e){let i=cd();i.innerHTML="",Ve=t;let n=t.colors,r=t.element,o=e?.color,a=document.createElement("div");if(a.className="hn-swatches",a.setAttribute("role","group"),a.setAttribute("aria-label","Highlight colors"),n.forEach((l,c)=>{let h=document.createElement("button");h.type="button",h.className="hn-swatch",h.dataset.color=l,h.setAttribute("aria-label",`Highlight ${l}${o===l?" (current)":""}`),h.setAttribute("tabindex",c===0?"0":"-1");let u=pa(r,l);u&&(h.style.backgroundColor=u),o===l&&h.setAttribute("aria-pressed","true"),h.addEventListener("click",()=>{e?t._changeColor(e.id,l):t._createFromSelection(l),Zt()}),a.appendChild(h)}),i.appendChild(a),e){let l=document.createElement("span");l.className="hn-separator",l.setAttribute("aria-hidden","true"),i.appendChild(l);let c=document.createElement("button");c.type="button",c.className="hn-action",c.textContent=e.note?"Edit Note":"Add Note",c.addEventListener("click",()=>{ma(t,e),Zt()}),i.appendChild(c);let h=document.createElement("button");h.type="button",h.className="hn-action hn-action-remove",h.textContent="Remove",h.addEventListener("click",()=>{t.removeHighlight(e.id),Zt()}),i.appendChild(h)}a.addEventListener("keydown",l=>{let c=[...a.querySelectorAll("button")],h=c.indexOf(document.activeElement);if(h<0)return;let u=-1;if(l.key==="ArrowRight"||l.key==="ArrowDown")l.preventDefault(),u=(h+1)%c.length;else if(l.key==="ArrowLeft"||l.key==="ArrowUp")l.preventDefault(),u=(h-1+c.length)%c.length;else if(l.key==="Escape"){Zt();return}u>=0&&(c[h].setAttribute("tabindex","-1"),c[u].setAttribute("tabindex","0"),c[u].focus())}),i.hidden=!1;try{i.showPopover()}catch{}hd(s),requestAnimationFrame(()=>{let l=i.querySelector(".hn-swatch");l&&l.focus()})}var R=null;function ma(s,t){pt();let e=s.element,i=dt(e,t.startOffset,t.endOffset);if(!i)return;R=document.createElement("div"),R.className="hn-note-panel",R.setAttribute("role","dialog"),R.setAttribute("aria-label","Private note");let n=document.createElement("header");n.className="hn-note-header",n.innerHTML="<small>PRIVATE NOTE</small>",R.appendChild(n);let r=document.createElement("blockquote");r.className="hn-note-quote",r.textContent=t.text.length>80?t.text.slice(0,80)+"\u2026":t.text,R.appendChild(r);let o=document.createElement("textarea");o.className="hn-note-textarea",o.placeholder="Add a note\u2026",o.value=t.note||"",o.rows=3,o.setAttribute("aria-label","Note for highlighted text"),R.appendChild(o);let a=document.createElement("footer");a.className="hn-note-actions";let l=document.createElement("button");l.type="button",l.className="hn-action hn-action-save",l.textContent="Save",l.addEventListener("click",()=>{s._updateNote(t.id,o.value.trim()),pt()});let c=document.createElement("button");c.type="button",c.className="hn-action",c.textContent="Cancel",c.addEventListener("click",()=>pt()),a.append(l,c),R.appendChild(a),o.addEventListener("keydown",d=>{d.key==="Escape"&&(d.preventDefault(),pt()),d.key==="Enter"&&(d.metaKey||d.ctrlKey)&&(d.preventDefault(),s._updateNote(t.id,o.value.trim()),pt())}),e.style.position="relative",e.appendChild(R);let h=i.getClientRects()[0],u=e.getBoundingClientRect();if(h){let d=h.top-u.top;R.style.top=`${d}px`}requestAnimationFrame(()=>{o.focus(),document.addEventListener("pointerdown",fa)})}function fa(s){R&&!R.contains(s.target)&&pt()}function pt(){R&&(document.removeEventListener("pointerdown",fa),R.remove(),R=null)}function hd(s){D&&requestAnimationFrame(()=>{let t=D.getBoundingClientRect(),e=t.width||200,i=t.height||40,n=s.top-i-8,r=s.left+s.width/2-e/2;n<8&&(n=s.bottom+8);let o=window.innerWidth-e-8;r=Math.max(8,Math.min(r,o)),D.style.top=`${n}px`,D.style.left=`${r}px`})}function Zt(){if(D){try{D.hidePopover()}catch{}D.hidden=!0,Ve=null}}var nt=null;function Pn(s){nt||(nt=document.createElement("div"),nt.setAttribute("aria-live","polite"),nt.setAttribute("aria-atomic","true"),nt.className="hn-sr-only",document.body.appendChild(nt)),nt.textContent="",requestAnimationFrame(()=>{nt.textContent=s})}function ua(s,t,e){let i=document.createTreeWalker(s,NodeFilter.SHOW_TEXT),n=0;for(;i.nextNode();){if(i.currentNode===t)return n+e;n+=(i.currentNode.textContent??"").length}return-1}function dt(s,t,e){let i=document.createTreeWalker(s,NodeFilter.SHOW_TEXT),n=0,r=null,o=0,a=null,l=0;for(;i.nextNode();){let c=i.currentNode,h=(c.textContent??"").length;if(!r&&n+h>t&&(r=c,o=t-n),n+h>=e){a=c,l=e-n;break}n+=h}if(!r||!a)return null;try{let c=document.createRange();return c.setStart(r,Math.min(o,(r.textContent??"").length)),c.setEnd(a,Math.min(l,(a.textContent??"").length)),c}catch{return null}}var zn=class{#t;#e;#s;#n;#i=[];#r=!rd;#o;#a;#l=!1;#c=[];constructor(t){this.#t=t,this.#n=t.hasAttribute("data-highlights-readonly");let e=t.dataset.highlights,i=e&&e!==""?e:location.pathname;this.#e=id+i;let n=t.dataset.highlightsColors;this.#s=n?n.split(",").map(r=>r.trim()).filter(Boolean):[...nd],this.#r||ad(this.#s),this.#u(),this.#b(),this.#n||(this.#o=this.#h.bind(this),this.#a=this.#p.bind(this),t.addEventListener("pointerup",this.#o),t.addEventListener("click",this.#a)),t.setAttribute("data-highlights-init","")}get colors(){return[...this.#s]}get element(){return this.#t}getHighlights(){return this.#i.map(t=>({...t}))}removeHighlight(t){let e=this.#i.findIndex(i=>i.id===t);e<0||(this.#i.splice(e,1),this.#m(),this.#b(),this.#A("highlights:removed",{id:t}),Pn("Highlight removed"))}clearAll(){this.#i=[],this.#m(),this.#b()}exportHighlights(){return JSON.stringify({version:1,highlights:this.#i})}importHighlights(t){try{let e=typeof t=="string"?JSON.parse(t):t;if(!e.highlights||!Array.isArray(e.highlights))return;this.#i=e.highlights,this.#m(),this.#b()}catch{}}destroy(){if(!this.#l){if(this.#l=!0,this.#o&&this.#t.removeEventListener("pointerup",this.#o),this.#a&&this.#t.removeEventListener("click",this.#a),this.#r)this.#t.querySelectorAll("mark[data-hn-id]").forEach(t=>{let e=t.parentNode;for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t),e.normalize()});else{for(let t of this.#s)CSS.highlights.delete(`hn-${t}`);ld()}this.#v(),this.#t.removeAttribute("data-highlights-init"),Ve===this&&Zt(),pt()}}#h(){requestAnimationFrame(()=>{if(this.#l)return;let t=window.getSelection();if(!t||t.isCollapsed||!t.toString().trim())return;let e=t.getRangeAt(0);if(!this.#t.contains(e.commonAncestorContainer))return;let i=e.getBoundingClientRect();On(i,this,null)})}#p(t){let e=t.target.closest?.(".hn-margin-annotation");if(e){let n=e.dataset.hnId,r=this.#i.find(o=>o.id===n);if(r){ma(this,r);return}}let i=t.target.closest?.("mark[data-hn-id]");if(i){let n=i.dataset.hnId,r=this.#i.find(o=>o.id===n);if(r){this.#A("highlights:clicked",{id:n});let o=i.getBoundingClientRect();On(o,this,r);return}}if(!this.#r){let n=this.#d(t.clientX,t.clientY);if(n){this.#A("highlights:clicked",{id:n.id});let r=dt(this.#t,n.startOffset,n.endOffset);r&&On(r.getBoundingClientRect(),this,n)}}}#d(t,e){for(let i of this.#i){let n=dt(this.#t,i.startOffset,i.endOffset);if(!n)continue;let r=n.getClientRects();for(let o of r)if(t>=o.left&&t<=o.right&&e>=o.top&&e<=o.bottom)return i}return null}_createFromSelection(t){let e=window.getSelection();if(!e||e.isCollapsed)return;let i=e.getRangeAt(0);if(!this.#t.contains(i.commonAncestorContainer))return;let n=ua(this.#t,i.startContainer,i.startOffset),r=ua(this.#t,i.endContainer,i.endOffset);if(n<0||r<0||n>=r)return;let o=e.toString().trim(),a={id:od(),startOffset:n,endOffset:r,text:o,color:t,note:"",created:Date.now()};this.#i.push(a),this.#m(),this.#b(),e.removeAllRanges(),this.#A("highlights:added",{id:a.id,text:o,color:t,note:""}),Pn("Highlight added")}_changeColor(t,e){let i=this.#i.find(n=>n.id===t);i&&(i.color=e,this.#m(),this.#b())}_updateNote(t,e){let i=this.#i.find(n=>n.id===t);i&&(i.note=e,this.#m(),this.#y(),this.#A("highlights:note-changed",{id:t,note:e}),Pn("Note saved"))}#u(){try{let t=localStorage.getItem(this.#e);if(!t)return;let e=JSON.parse(t);if(!e.highlights||!Array.isArray(e.highlights))return;let i=ha(this.#t.textContent);e.contentHash&&e.contentHash!==i?(this.#i=e.highlights.filter(n=>{let r=dt(this.#t,n.startOffset,n.endOffset);return r?r.toString().trim()===n.text:!1}),this.#m()):this.#i=e.highlights}catch{}}#m(){try{let t={version:1,contentHash:ha(this.#t.textContent),highlights:this.#i};localStorage.setItem(this.#e,JSON.stringify(t))}catch{}}#b(){this.#r?this.#f():this.#g(),this.#y()}#g(){let t=new Map;for(let e of this.#s)t.set(e,[]);for(let e of this.#i){let i=dt(this.#t,e.startOffset,e.endOffset);i&&t.has(e.color)&&t.get(e.color).push(i)}for(let[e,i]of t){let n=`hn-${e}`;i.length===0?CSS.highlights.delete(n):CSS.highlights.set(n,new Highlight(...i))}}#f(){this.#t.querySelectorAll("mark[data-hn-id]").forEach(e=>{let i=e.parentNode;for(;e.firstChild;)i.insertBefore(e.firstChild,e);i.removeChild(e)}),this.#t.normalize();let t=[...this.#i].sort((e,i)=>i.startOffset-e.startOffset);for(let e of t){let i=dt(this.#t,e.startOffset,e.endOffset);if(!i)continue;let n=pa(this.#t,e.color),r=document.createElement("mark");r.dataset.hnId=e.id,r.dataset.hnColor=e.color,n&&(r.style.backgroundColor=n,r.style.textDecorationColor=n);try{i.surroundContents(r)}catch{let o=i.extractContents();r.appendChild(o),i.insertNode(r)}}}#v(){for(let t of this.#c)t.remove();this.#c=[]}#y(){if(this.#v(),this.#i.length===0)return;getComputedStyle(this.#t).position==="static"&&(this.#t.style.position="relative");for(let e of this.#i){let i=dt(this.#t,e.startOffset,e.endOffset);if(!i)continue;let n=i.getClientRects();if(n.length===0)continue;let r=n[0],o=this.#t.getBoundingClientRect(),a=r.top-o.top,l=document.createElement("span");l.className="hn-margin-annotation",l.dataset.hnId=e.id,l.setAttribute("aria-hidden","true"),l.style.top=`${a}px`,e.note?(l.innerHTML='<span class="hn-note-indicator">*</span> You highlighted',l.classList.add("hn-has-note")):l.textContent="You highlighted",this.#t.appendChild(l),this.#c.push(l)}}#A(t,e={}){this.#t.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0}))}},Fn=new WeakMap;function Hn(s){if(Fn.has(s))return Fn.get(s);let t=new zn(s);return Fn.set(s,t),t}function da(s=document){s.querySelectorAll(jn).forEach(t=>{t.hasAttribute("data-highlights-init")||Hn(t)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>da()):da();var ud=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(jn)&&Hn(i),i.querySelectorAll(jn).forEach(n=>{n.hasAttribute("data-highlights-init")||Hn(n)})}});ud.observe(document.documentElement,{childList:!0,subtree:!0});var Vn="[data-vt-name]";function Un(s){s.hasAttribute("data-vt-name-init")||(s.setAttribute("data-vt-name-init",""),s.style.viewTransitionName=s.dataset.vtName)}function ga(s=document){s.querySelectorAll(Vn).forEach(Un)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ga()):ga();var dd=new MutationObserver(s=>{for(let t of s)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let i=e;i.matches(Vn)&&Un(i),i.querySelectorAll(Vn).forEach(Un)}});dd.observe(document.documentElement,{childList:!0,subtree:!0});function ba(s){document.querySelectorAll("browser-window").forEach(t=>{t.setAttribute("mode",s)}),document.querySelectorAll("code-block").forEach(t=>{t.setAttribute("theme",s)})}function va(){let{effectiveMode:s}=E.getState();ba(s),window.addEventListener("vb:theme-change",e=>{ba(e.detail.effectiveMode)}),new MutationObserver(e=>{let{effectiveMode:i}=E.getState();for(let n of e)for(let r of n.addedNodes){if(r.nodeType!==Node.ELEMENT_NODE)continue;let o=r;o.tagName==="BROWSER-WINDOW"?o.setAttribute("mode",i):o.tagName==="CODE-BLOCK"&&o.setAttribute("theme",i),o.querySelectorAll("browser-window").forEach(a=>{a.setAttribute("mode",i)}),o.querySelectorAll("code-block").forEach(a=>{a.setAttribute("theme",i)})}}).observe(document.body,{childList:!0,subtree:!0})}Yt();function ee(s){return[...s.querySelectorAll("input, select, textarea")].filter(t=>t.type!=="submit"&&t.type!=="button"&&t.type!=="hidden"&&!("honeypot"in t.dataset))}function Aa(s){return[...s.querySelectorAll("form-field[data-upgraded]")]}function pd(s){return s.labels?.[0]?.textContent?.trim()??s.getAttribute("aria-label")??s.name??s.id}function te(s,t){let e=s.dataset.match;if(!e)return;let i=t.querySelector(`#${CSS.escape(e)}`)??t.querySelector(`[name="${CSS.escape(e)}"]`);if(i){if(s.setCustomValidity(""),s.value&&i.value&&s.value!==i.value){let n=s.dataset.messageMatch??"Values do not match";s.setCustomValidity(n);let r=ya(s);r&&(r.textContent=n)}else if(s.validity.valid){let n=ya(s);n&&(n.textContent="")}}}function ya(s){let t=s.getAttribute("aria-describedby")?.split(/\s+/)??[];for(let i of t){let n=document.getElementById(i);if(n?.tagName==="OUTPUT"&&n.classList.contains("error"))return n}return s.closest("form-field")?.querySelector("output.error")??null}function wa(s){let e=[...s.querySelectorAll('input[type="checkbox"]')].filter(a=>a.checked).length,i=parseInt(s.dataset.minChecked??"0",10),n=parseInt(s.dataset.maxChecked??"999",10),r=s.querySelector(":scope > output"),o=null;return e<i&&(o=s.dataset.messageMinChecked??`Select at least ${i}`),e>n&&(o=s.dataset.messageMaxChecked??`Select no more than ${n}`),r&&(r.textContent=o??""),o?s.dataset.invalid="":delete s.dataset.invalid,!o}function Ea(s){let t=s.querySelector("[data-form-summary]");if(t)return{el:t,type:"authored"};let e=s.querySelector("output.error-summary");return e?{el:e,type:"legacy"}:null}function Ue(s,t,{focus:e=!1}={}){if(!t)return;let i=[];for(let n of ee(s))n.validity.valid||i.push({id:n.id||n.name,label:pd(n),message:n.validationMessage});for(let n of s.querySelectorAll("fieldset[data-invalid]")){let r=n.querySelector(":scope > output");i.push({id:n.id||"",label:n.querySelector("legend")?.textContent?.trim()??"Group",message:r?.textContent||"Invalid selection"})}if(i.length===0){ka(t);return}if(t.type==="authored"){let n=t.el.querySelector("[data-summary-list]");if(n){n.innerHTML="";for(let r of i){let o=document.createElement("li"),a=document.createElement("a");a.href=r.id?`#${r.id}`:"#",a.textContent=`${r.label}: ${r.message}`,o.appendChild(a),n.appendChild(o)}}t.el.removeAttribute("hidden"),t.el.dataset.visible=""}else{let n=i.length,r=i.map(o=>`<li><a href="${o.id?`#${o.id}`:"#"}">${o.label}: ${o.message}</a></li>`).join(`
|
|
1848
|
+
`);t.el.innerHTML=`<p>Please fix ${n} error${n===1?"":"s"}:</p>
|
|
1849
|
+
<ul>
|
|
1850
|
+
${r}
|
|
1851
|
+
</ul>`}e&&t.el.focus()}function ka(s){if(s)if(s.type==="authored"){delete s.el.dataset.visible;let t=s.el.querySelector("[data-summary-list]");t&&s.el.addEventListener("transitionend",()=>{s.el.dataset.visible||(t.innerHTML="")},{once:!0})}else s.el.innerHTML=""}function md(s){s&&s.el.addEventListener("click",t=>{let e=t.target.closest('a[href^="#"]');if(!e)return;t.preventDefault();let i=e.getAttribute("href").slice(1),n=document.getElementById(i);n&&(n.scrollIntoView({behavior:"smooth",block:"center"}),n.focus())})}function fd(s){for(let t of ee(s))t.focus({preventScroll:!0}),t.blur()}async function gd(s){let t=s.querySelector('[type="submit"]');s.dataset.submitting="",delete s.dataset.error,t&&t.setAttribute("aria-disabled","true");try{let e=new FormData(s),i=await fetch(s.action,{method:s.method||"post",body:e});if(delete s.dataset.submitting,t&&t.removeAttribute("aria-disabled"),!i.ok){if((i.headers.get("content-type")??"").includes("application/json")){let o=await i.json();if(o.errors){bd(s,o.errors);return}}throw new Error(`Server error: ${i.status}`)}s.dataset.success="";let n=s.querySelector("[data-form-success]");n&&(n.hidden=!1,n.focus())}catch{delete s.dataset.submitting,t&&t.removeAttribute("aria-disabled"),s.dataset.error="network"}}function bd(s,t){s.dataset.error="";let e=Aa(s),i=[];for(let n of e){let r=n.querySelector("input, textarea, select");if(!r)continue;let o=t[r.name];o&&(n.setError(o),i.push(n))}if(i.length>0){let n=Ea(s);Ue(s,n,{focus:!0})}for(let n of e)n.querySelector("input, textarea, select")?.addEventListener("input",()=>n.clearError(),{once:!0})}function Wn(s){if(s.hasAttribute("data-vb-enhanced"))return;s.setAttribute("novalidate",""),s.setAttribute("data-vb-enhanced","");let t=Ea(s);t&&md(t);for(let e of ee(s))if(e.dataset.match){e.addEventListener("input",()=>te(e,s)),e.addEventListener("blur",()=>te(e,s));let i=e.dataset.match,n=s.querySelector(`#${CSS.escape(i)}`)??s.querySelector(`[name="${CSS.escape(i)}"]`);n&&n.addEventListener("input",()=>te(e,s))}for(let e of s.querySelectorAll("fieldset[data-min-checked], fieldset[data-max-checked]"))e.addEventListener("change",()=>{wa(e),t&&Ue(s,t)});s.addEventListener("submit",e=>{e.preventDefault();let i=Aa(s);for(let a of i)a.validate();for(let a of ee(s))a.dataset.match&&te(a,s);for(let a of s.querySelectorAll("fieldset[data-min-checked], fieldset[data-max-checked]"))wa(a);if(fd(s),!(s.checkValidity()&&![...s.querySelectorAll("fieldset[data-invalid]")].length)){if(t)Ue(s,t,{focus:!0});else{let a=s.querySelector(":invalid");a&&(a.scrollIntoView({behavior:"smooth",block:"center"}),a.focus())}return}ka(t);let r=new CustomEvent("vb:beforesubmit",{bubbles:!0,cancelable:!0,detail:{form:s}});if(s.dispatchEvent(r),r.defaultPrevented)return;let o=s.dataset.submit??"native";if(o==="fetch")gd(s);else if(o==="event"){let a=new CustomEvent("vb:submit",{bubbles:!0,cancelable:!0,detail:new FormData(s)});s.dispatchEvent(a)}else s.submit()}),t&&s.addEventListener("input",()=>{requestAnimationFrame(()=>{for(let e of ee(s))e.dataset.match&&te(e,s);Ue(s,t)})})}function xa(){for(let t of document.querySelectorAll("form[data-validate]"))Wn(t);new MutationObserver(t=>{for(let e of t)for(let i of e.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let n=i;n.matches?.("form[data-validate]")&&Wn(n),n.querySelectorAll?.("form[data-validate]").forEach(r=>Wn(r))}}).observe(document.body,{childList:!0,subtree:!0})}var Sa='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/></svg>',vd='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"/><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"/><path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"/><path d="m2 2 20 20"/></svg>';function Gn(s){let t=s.querySelector('input[type="password"]');if(!t||s.dataset.enhanced==="password")return;s.dataset.enhanced="password";let e=document.createElement("div");e.className="password-wrapper",t.parentNode.insertBefore(e,t),e.appendChild(t);let i=document.createElement("button");i.type="button",i.className="password-toggle",i.setAttribute("aria-label","Show password"),i.setAttribute("aria-pressed","false"),i.innerHTML=Sa,e.appendChild(i),i.addEventListener("click",()=>{let n=t.type==="password";t.type=n?"text":"password",i.setAttribute("aria-pressed",String(n)),i.setAttribute("aria-label",n?"Hide password":"Show password"),i.innerHTML=n?vd:Sa})}function Yn(s){let t=s.querySelector('input[data-type="otp"], input[data-type="pin"]');if(!t||s.dataset.enhanced==="otp")return;s.dataset.enhanced="otp";let e=parseInt(t.dataset.length||"6",10);t.type="hidden",t.removeAttribute("inputmode"),t.removeAttribute("pattern");let i=document.createElement("div");i.className="otp-wrapper",t.parentNode.insertBefore(i,t.nextSibling);let n=[];for(let o=0;o<e;o++){let a=document.createElement("input");a.type="text",a.inputMode="numeric",a.maxLength=1,a.pattern="[0-9]",a.className="otp-digit",a.setAttribute("aria-label",`Digit ${o+1} of ${e}`),n.push(a),i.appendChild(a)}function r(){t.value=n.map(o=>o.value).join(""),t.dispatchEvent(new Event("input",{bubbles:!0}))}n.forEach((o,a)=>{o.addEventListener("input",l=>{let c=l.target.value;if(c&&!/^\d$/.test(c)){l.target.value="";return}c&&a<n.length-1&&n[a+1].focus(),r()}),o.addEventListener("keydown",l=>{l.key==="Backspace"&&!l.target.value&&a>0&&n[a-1].focus(),l.key==="ArrowLeft"&&a>0&&(l.preventDefault(),n[a-1].focus()),l.key==="ArrowRight"&&a<n.length-1&&(l.preventDefault(),n[a+1].focus())}),o.addEventListener("paste",l=>{l.preventDefault();let h=((l.clipboardData||window.clipboardData)?.getData("text")??"").replace(/\D/g,"").slice(0,e).split("");h.forEach((d,p)=>{n[p]&&(n[p].value=d)});let u=n.findIndex(d=>!d.value);u!==-1?n[u].focus():h.length>0&&n[Math.min(h.length-1,e-1)].focus(),r()}),o.addEventListener("focus",()=>{o.select()})}),s.addEventListener("click",o=>{o.target===s&&n[0].focus()})}function Kn(s){let t=s.querySelector("input[data-strength]");if(!t||s.dataset.enhanced==="strength")return;s.dataset.enhanced="strength";let e=t.dataset.rules||"length:8",i=yd(e),n=document.createElement("div");n.className="strength-meter";let r=document.createElement("meter");r.min=0,r.max=i.length,r.low=Math.ceil(i.length*.4),r.high=Math.ceil(i.length*.75),r.optimum=i.length,r.value=0,r.className="xs";let o=document.createElement("span");o.className="strength-label",o.textContent="",n.appendChild(r),n.appendChild(o);let a=document.createElement("ul");a.className="strength-rules",a.setAttribute("aria-label","Password requirements"),i.forEach(c=>{let h=document.createElement("li");h.dataset.rule=c.type,h.textContent=c.label,a.appendChild(h)}),(s.querySelector(".password-wrapper")||t).insertAdjacentElement("afterend",n),n.insertAdjacentElement("afterend",a),t.addEventListener("input",()=>{let c=t.value,h=0;i.forEach((d,p)=>{let m=wd(d,c),f=a.children[p];f.dataset.met=m?"":void 0,m?(f.setAttribute("data-met",""),h++):f.removeAttribute("data-met")}),r.value=h;let u=h/i.length;c.length===0?(o.textContent="",n.dataset.level=""):u<.4?(o.textContent="Weak",n.dataset.level="weak"):u<.75?(o.textContent="Fair",n.dataset.level="fair"):u<1?(o.textContent="Good",n.dataset.level="good"):(o.textContent="Strong",n.dataset.level="strong")})}function yd(s){return s.split(",").map(t=>{let[e,i]=t.trim().split(":");switch(e){case"length":return{type:e,param:parseInt(i)||8,label:`At least ${i||8} characters`};case"uppercase":return{type:e,label:"One uppercase letter"};case"lowercase":return{type:e,label:"One lowercase letter"};case"number":return{type:e,label:"One number"};case"special":return{type:e,label:"One special character"};default:return{type:e,label:e}}})}function wd(s,t){switch(s.type){case"length":return t.length>=(s.param||8);case"uppercase":return/[A-Z]/.test(t);case"lowercase":return/[a-z]/.test(t);case"number":return/\d/.test(t);case"special":return/[^A-Za-z0-9]/.test(t);default:return!1}}function Ad(){document.querySelectorAll('form-field:has(input[type="password"])').forEach(Gn)}function Ed(){document.querySelectorAll('form-field:has(input[data-type="otp"]), form-field:has(input[data-type="pin"])').forEach(Yn)}function kd(){document.querySelectorAll("form-field:has(input[data-strength])").forEach(Kn)}function Ca(){Ad(),Ed(),kd(),new MutationObserver(t=>{for(let e of t)for(let i of e.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let n=i;n.matches?.('form-field:has(input[type="password"])')&&Gn(n),(n.matches?.('form-field:has(input[data-type="otp"])')||n.matches?.('form-field:has(input[data-type="pin"])'))&&Yn(n),n.matches?.("form-field:has(input[data-strength])")&&Kn(n),n.querySelectorAll?.('form-field:has(input[type="password"])')?.forEach(Gn),n.querySelectorAll?.('form-field:has(input[data-type="otp"]), form-field:has(input[data-type="pin"])')?.forEach(Yn),n.querySelectorAll?.("form-field:has(input[data-strength])")?.forEach(Kn)}}).observe(document.body,{childList:!0,subtree:!0})}function xd(s){let t=Date.now(),e=s*7+t%9973&65535;return btoa(JSON.stringify({s,t,c:e}))}function Sd(s,t,e){let i=0,n=s.submitAt-(s.firstInteractionAt??s.submitAt),r=t.querySelector("[data-honeypot]");return r&&r.value.trim()&&(i+=80),[...t.querySelectorAll('input[type="text"], input[type="email"], input[type="tel"], textarea')].filter(a=>a.value.trim()&&!("honeypot"in a.dataset)).length>0&&s.keyboardEventCount===0&&(i+=30),s.fieldFocusCount===0&&(i+=40),!e&&!s.mouseMovedInForm&&(i+=20),n<1e3?i+=80:n<3e3&&(i+=50),Math.min(i,100)}function Cd(s){return new Promise((t,e)=>{let i=document.createElement("script");i.src=s,i.async=!0,i.onload=t,i.onerror=e,document.head.appendChild(i)})}async function Td(s,t){if(!document.querySelector("[data-cf-turnstile-loaded]"))try{await Cd("https://challenges.cloudflare.com/turnstile/v0/api.js"),document.head.dataset.cfTurnstileLoaded="";let e=document.createElement("div");e.className="cf-turnstile",e.dataset.sitekey=t,e.dataset.size="invisible",s.appendChild(e)}catch{}}function Xn(s){if(s.hasAttribute("data-bot-enhanced"))return;s.setAttribute("data-bot-enhanced","");let t={fieldFocusCount:0,keyboardEventCount:0,mouseMovedInForm:!1,firstInteractionAt:null,submitAt:null},e=navigator.maxTouchPoints>0;s.addEventListener("focusin",i=>{i.target.matches("input, textarea, select")&&!("honeypot"in i.target.dataset)&&(t.fieldFocusCount++,t.firstInteractionAt??=Date.now())},{capture:!0}),s.addEventListener("keydown",i=>{i.target.matches("input, textarea")&&t.keyboardEventCount++},{capture:!0}),e||s.addEventListener("mousemove",()=>{t.mouseMovedInForm=!0},{once:!0}),s.addEventListener("vb:beforesubmit",i=>{t.submitAt=Date.now();let n=Sd(t,s,e),r=s.querySelector("[data-bot-score-field]");if(r||(r=document.createElement("input"),r.type="hidden",r.name="_vb_score",r.dataset.botScoreField="",s.appendChild(r)),r.value=xd(n),n>=80){i.preventDefault(),s.dispatchEvent(new CustomEvent("vb:botblocked",{bubbles:!0,detail:{score:n}}));return}n>=60&&s.dataset.turnstileSitekey&&Td(s,s.dataset.turnstileSitekey)})}function Ta(){for(let t of document.querySelectorAll("form[data-bot-protection]"))Xn(t);new MutationObserver(t=>{for(let e of t)for(let i of e.addedNodes){if(i.nodeType!==Node.ELEMENT_NODE)continue;let n=i;n.matches?.("form[data-bot-protection]")&&Xn(n),n.querySelectorAll?.("form[data-bot-protection]").forEach(r=>Xn(r))}}).observe(document.body,{childList:!0,subtree:!0})}var Ld=window.matchMedia("(prefers-reduced-motion: reduce)");function La(){return Ld.matches||document.documentElement.hasAttribute("data-motion-reduced")}var Ma=0,A={_effects:new Map,_triggers:new Map,_transitions:new Map,_instances:new WeakMap,_triggerCleanups:new WeakMap,_transitionCleanups:new WeakMap,_observer:null,effect(s,t){this._effects.set(s,t),document.querySelectorAll("[data-effect]").forEach(e=>{(e.getAttribute("data-effect")||"").split(/\s+/).includes(s)&&this._initEffect(e,s)})},trigger(s,t){this._triggers.set(s,t)},transition(s,t){this._transitions.set(s,t)},uid(s){return s.id?s.id:(s._vbUid||(Ma++,s._vbUid=`vb-${Ma}`),s._vbUid)},theme(s,t){this._themes=this._themes||new Map,this._themes.set(s,t)},applyTheme(s,t=document.documentElement){let e=this._themes?.get(s);if(e)for(let[i,n]of Object.entries(e))t.style.setProperty(i,n)},swap(s){return document.startViewTransition?document.startViewTransition(s):s()},observe(s=document){if(s.querySelectorAll("[data-effect]").forEach(e=>this._processElement(e)),s.querySelectorAll("[data-stagger]").forEach(e=>this._processStagger(e)),s.querySelectorAll("[data-transition]").forEach(e=>this._processTransition(e)),this._observer)return;this._observer=new MutationObserver(e=>{for(let i of e){if(i.type==="childList"){for(let n of i.addedNodes)n.nodeType===Node.ELEMENT_NODE&&this._processTree(n);for(let n of i.removedNodes)n.nodeType===Node.ELEMENT_NODE&&this._cleanupTree(n)}if(i.type==="attributes"){let n=i.target;i.attributeName==="data-effect"&&this._reconcileEffects(n),i.attributeName==="data-trigger"&&this._reconcileTrigger(n),i.attributeName==="data-stagger"&&this._processStagger(n),i.attributeName==="data-transition"&&this._processTransition(n)}}});let t=s===document?document.body:s;this._observer.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-effect","data-trigger","data-stagger","data-transition"]})},disconnect(){this._observer&&(this._observer.disconnect(),this._observer=null)},params(s){let t=getComputedStyle(s);return{get(e){return t.getPropertyValue(`--vb-${e}`).trim()},getNumber(e,i=0){let n=t.getPropertyValue(`--vb-${e}`).trim();return n?parseFloat(n):i},hasClass(e){return s.classList.contains(e)}}},emit(s,t,e={}){s.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:e}))},prefersReducedMotion:La,_processTree(s){s.hasAttribute?.("data-effect")&&this._processElement(s),s.hasAttribute?.("data-stagger")&&this._processStagger(s),s.hasAttribute?.("data-transition")&&this._processTransition(s),s.querySelectorAll?.("[data-effect]").forEach(t=>this._processElement(t)),s.querySelectorAll?.("[data-stagger]").forEach(t=>this._processStagger(t)),s.querySelectorAll?.("[data-transition]").forEach(t=>this._processTransition(t))},_cleanupTree(s){s.hasAttribute?.("data-effect")&&this._cleanupElement(s),s.hasAttribute?.("data-transition")&&this._cleanupTransition(s),s.querySelectorAll?.("[data-effect]").forEach(t=>this._cleanupElement(t)),s.querySelectorAll?.("[data-transition]").forEach(t=>this._cleanupTransition(t))},_processElement(s){if(s.hasAttribute("data-effect-processed"))return;s.setAttribute("data-effect-processed","");let t=s.getAttribute("data-effect")?.split(/\s+/).filter(Boolean)||[];for(let e of t)this._initEffect(s,e);this._wireTrigger(s,t)},_initEffect(s,t){let e=this._effects.get(t);if(!e)return;let i=this._instances.get(s);if(i?.has(t))return;La();let n=e(s);n&&(i||(i=new Map,this._instances.set(s,i)),typeof n=="function"?i.set(t,{cleanup:n}):i.set(t,n))},_wireTrigger(s,t){let e=s.getAttribute("data-trigger");if(!e){this._activateEffects(s);return}let i=e.split(/\s+/).filter(Boolean);for(let n of i){let r=n.indexOf(":"),o=r>-1?n.slice(0,r):n,a=r>-1?n.slice(r+1):null,l=this._triggers.get(o);if(!l)continue;let c=l(s,()=>this._activateEffects(s),a);if(c){let h=this._triggerCleanups.get(s);if(h){let u=h;this._triggerCleanups.set(s,()=>{u(),c()})}else this._triggerCleanups.set(s,c)}}},_activateEffects(s){s.setAttribute("data-effect-active","");let t=this._instances.get(s);if(t)for(let[,e]of t)e.activate&&e.activate()},_cleanupElement(s){let t=this._instances.get(s);if(t){for(let[,i]of t)i.cleanup&&i.cleanup();this._instances.delete(s)}let e=this._triggerCleanups.get(s);e&&(e(),this._triggerCleanups.delete(s))},_reconcileEffects(s){let t=s.getAttribute("data-effect")?.split(/\s+/).filter(Boolean)||[],e=this._instances.get(s);if(e)for(let[i,n]of e)t.includes(i)||(n.cleanup&&n.cleanup(),e.delete(i));for(let i of t)e?.has(i)||this._initEffect(s,i);s.hasAttribute("data-effect-processed")||(s.setAttribute("data-effect-processed",""),this._wireTrigger(s,t))},_reconcileTrigger(s){let t=this._triggerCleanups.get(s);t&&(t(),this._triggerCleanups.delete(s));let e=s.getAttribute("data-effect")?.split(/\s+/).filter(Boolean)||[];this._wireTrigger(s,e)},_processStagger(s){let t=s.children;for(let e=0;e<t.length;e++)t[e].style.setProperty("--vb-stagger-index",String(e))},_processTransition(s){if(s.hasAttribute("data-transition-processed"))return;s.setAttribute("data-transition-processed","");let t=s.getAttribute("data-transition");if(!t)return;let e=this._transitions.get(t);if(e){let i=e(s);i&&this._transitionCleanups.set(s,i)}else s.style.viewTransitionName=`${t}-${this.uid(s)}`},_cleanupTransition(s){let t=this._transitionCleanups.get(s);t&&(t(),this._transitionCleanups.delete(s)),s.style.viewTransitionName=""}};typeof window<"u"&&(window.VB=A);A.trigger("scroll",(s,t)=>{if(A.prefersReducedMotion()){t();return}let e=new IntersectionObserver(([i])=>{i.isIntersecting&&(e.disconnect(),t())},{threshold:.1});return e.observe(s),()=>e.disconnect()});A.trigger("hover",(s,t)=>{function e(){s.removeAttribute("data-effect-active"),s.offsetWidth,t()}function i(){s.removeAttribute("data-effect-active")}return s.addEventListener("pointerenter",e),s.addEventListener("pointerleave",i),()=>{s.removeEventListener("pointerenter",e),s.removeEventListener("pointerleave",i)}});A.trigger("click",(s,t)=>{function e(){s.removeAttribute("data-effect-active"),s.offsetWidth,t()}return s.addEventListener("click",e),()=>s.removeEventListener("click",e)});A.trigger("time",(s,t,e)=>{let i=parseInt(e||"0",10),n=setTimeout(t,i);return()=>clearTimeout(n)});A.transition("morph",s=>{let t=`morph-${A.uid(s)}`;return s.style.viewTransitionName=t,()=>{s.style.viewTransitionName=""}});A.transition("slide",s=>{let t=`slide-${A.uid(s)}`;return s.style.viewTransitionName=t,s.style.viewTransitionClass="slide-left",()=>{s.style.viewTransitionName="",s.style.viewTransitionClass=""}});A.transition("fade",s=>{let t=`fade-${A.uid(s)}`;return s.style.viewTransitionName=t,s.style.viewTransitionClass="fade",()=>{s.style.viewTransitionName="",s.style.viewTransitionClass=""}});A.transition("scale",s=>{let t=`scale-${A.uid(s)}`;return s.style.viewTransitionName=t,s.style.viewTransitionClass="scale",()=>{s.style.viewTransitionName="",s.style.viewTransitionClass=""}});A.transition("stagger",s=>{let t=s.children;for(let e=0;e<t.length;e++){let i=t[e];i.style.viewTransitionName=`stagger-${A.uid(s)}-${e}`,i.style.viewTransitionClass="fade"}return()=>{for(let e=0;e<t.length;e++)t[e].style.viewTransitionName="",t[e].style.viewTransitionClass=""}});A.transition("none",s=>{let t=`none-${A.uid(s)}`;return s.style.viewTransitionName=t,s.style.viewTransitionClass="none",()=>{s.style.viewTransitionName="",s.style.viewTransitionClass=""}});A.effect("glitch",s=>{s.hasAttribute("data-effect-glitch-init")||(s.setAttribute("data-effect-glitch-init",""),s.setAttribute("data-glitch-text",s.textContent))});function Md(s){let t=s.textContent;s.setAttribute("aria-label",t),s.innerHTML="",t.split(/(\s+)/).forEach((i,n)=>{if(/^\s+$/.test(i)){s.appendChild(document.createTextNode(i));return}let r=document.createElement("span");r.className="vb-reveal-chunk",r.textContent=i,r.style.setProperty("--i",String(Math.floor(n/2))),r.setAttribute("aria-hidden","true"),s.appendChild(r)})}function $d(s){let t=s.textContent;s.setAttribute("aria-label",t);let e=document.createElement("div");e.style.cssText=getComputedStyle(s).cssText,e.style.position="absolute",e.style.visibility="hidden",e.style.whiteSpace="normal",document.body.appendChild(e);let i=t.split(/\s+/).filter(Boolean),n=[],r="";i.forEach(o=>{let a=r?r+" "+o:o;e.textContent=a,e.style.width=getComputedStyle(s).width,e.scrollWidth>e.clientWidth&&r?(n.push(r),r=o):r=a}),r&&n.push(r),document.body.removeChild(e),n.length===0&&n.push(t),s.innerHTML="",n.forEach((o,a)=>{let l=document.createElement("span");l.className="vb-reveal-chunk",l.textContent=o,l.style.setProperty("--i",String(a)),l.setAttribute("aria-hidden","true"),s.appendChild(l),a<n.length-1&&s.appendChild(document.createTextNode(" "))})}A.effect("reveal",s=>{if(s.hasAttribute("data-effect-reveal-init")||(s.setAttribute("data-effect-reveal-init",""),A.prefersReducedMotion()))return;let t=s.classList.contains("line")?"line":"word",e=A.params(s),i=e.get("reveal-delay")||"80ms",n=e.get("reveal-duration")||"400ms";return s.style.setProperty("--reveal-delay",i),s.style.setProperty("--reveal-duration",n),t==="line"?$d(s):Md(s),{activate(){s.setAttribute("data-effect-active","")},cleanup(){}}});function Nd(s){let t=s.textContent;s.setAttribute("aria-label",t),s.innerHTML="",t.split(/(\s+)/).forEach((i,n)=>{if(/^\s+$/.test(i)){s.appendChild(document.createTextNode(i));return}let r=document.createElement("span");r.className="vb-blur-chunk",r.textContent=i,r.style.setProperty("--i",String(Math.floor(n/2))),r.setAttribute("aria-hidden","true"),s.appendChild(r)})}function qd(s){let t=s.textContent;s.setAttribute("aria-label",t);let e=t.split(/\s+/).filter(Boolean),i=[],n="",r=s.offsetWidth,o=document.createElement("span");o.style.visibility="hidden",o.style.position="absolute",o.style.font=getComputedStyle(s).font,document.body.appendChild(o),e.forEach(a=>{let l=n?n+" "+a:a;o.textContent=l,o.offsetWidth>r&&n?(i.push(n),n=a):n=l}),n&&i.push(n),document.body.removeChild(o),i.length===0&&i.push(t),s.innerHTML="",i.forEach((a,l)=>{let c=document.createElement("span");c.className="vb-blur-chunk",c.textContent=a,c.style.setProperty("--i",String(l)),c.setAttribute("aria-hidden","true"),s.appendChild(c),l<i.length-1&&s.appendChild(document.createTextNode(" "))})}A.effect("blur-reveal",s=>{if(s.hasAttribute("data-effect-blur-reveal-init")||(s.setAttribute("data-effect-blur-reveal-init",""),A.prefersReducedMotion()))return;let t=s.classList.contains("line")?"line":"word",e=A.params(s).get("blur-reveal-delay")||"80ms";return s.style.setProperty("--blur-delay",e),t==="line"?qd(s):Nd(s),{activate(){s.setAttribute("data-effect-active","")},cleanup(){}}});A.effect("highlight",s=>{if(s.hasAttribute("data-effect-highlight-init"))return;s.setAttribute("data-effect-highlight-init","");let e=getComputedStyle(s).getPropertyValue("--vb-highlight-color").trim();return e&&s.style.setProperty("--highlight-color",e),A.prefersReducedMotion()&&s.setAttribute("data-effect-active",""),{activate(){s.setAttribute("data-effect-active","")},cleanup(){}}});function Dd(s,t,e,i){let n=0;function r(){n<=t.length?(s.firstChild.textContent=t.slice(0,n),n++,setTimeout(r,e)):i&&i()}r()}function _d(s,t,e){let i=s.firstChild.textContent,n=i.length;function r(){n>=0?(s.firstChild.textContent=i.slice(0,n),n--,setTimeout(r,t/2)):e&&e()}r()}function Id(s){let t=s.getAttribute("data-typewriter-text"),e=A.params(s),i=e.getNumber("typewriter-speed",50),n=e.getNumber("typewriter-delay",0),o=s.classList.contains("loop")?2e3:null;s.textContent="";let a=document.createTextNode("");if(s.appendChild(a),!s.classList.contains("no-cursor")){let h=document.createElement("span");h.className="vb-typewriter-cursor",h.textContent="|",h.setAttribute("aria-hidden","true"),s.appendChild(h)}function c(){Dd(s,t,i,()=>{o!==null&&setTimeout(()=>{_d(s,i,()=>{setTimeout(c,400)})},o)})}setTimeout(c,n)}A.effect("typewriter",s=>{if(s.hasAttribute("data-effect-typewriter-init"))return;s.setAttribute("data-effect-typewriter-init","");let t=s.textContent.trim();if(s.setAttribute("data-typewriter-text",t),s.setAttribute("aria-label",t),!A.prefersReducedMotion())return s.textContent="",{activate(){Id(s)},cleanup(){}}});var $a="!<>-_\\/[]{}=+*^?#";function Na(s){return s[Math.floor(Math.random()*s.length)]}function Bd(s){let t=s.getAttribute("data-scramble-text"),e=A.params(s),i=e.getNumber("scramble-duration",1500),n=e.get("scramble-chars")||$a,r=e.getNumber("scramble-speed",30),o=t.length,a=0,l=Math.ceil(i/r);function c(){let h=a/l,u=Math.floor(h*o),d="";for(let p=0;p<o;p++)p<u?d+=t[p]:t[p]===" "?d+=" ":d+=Na(n);s.textContent=d,a++,a<=l?setTimeout(c,r):s.textContent=t}c()}A.effect("scramble",s=>{if(s.hasAttribute("data-effect-scramble-init"))return;s.setAttribute("data-effect-scramble-init","");let t=s.textContent.trim();if(s.setAttribute("data-scramble-text",t),s.setAttribute("aria-label",t),A.prefersReducedMotion())return;let e=A.params(s).get("scramble-chars")||$a;return s.textContent=t.replace(/\S/g,()=>Na(e)),{activate(){Bd(s)},cleanup(){}}});function Rd(s){return s===1?1:1-Math.pow(2,-10*s)}function Od(s){let t=s.indexOf(".");return t===-1?0:s.length-t-1}function Pd(s,t){let e=s.getAttribute("data-locale")||st(),i=s.getAttribute("data-format-number");if(i!=null){let n={minimumFractionDigits:t,maximumFractionDigits:t};switch(i){case"currency":n.style="currency",n.currency=s.getAttribute("data-currency")||"USD";break;case"percent":n.style="percent";break;case"compact":n.notation="compact";break}try{return new Intl.NumberFormat(e,n)}catch{return null}}try{return new Intl.NumberFormat(e,{minimumFractionDigits:t,maximumFractionDigits:t})}catch{return null}}function Fd(s){let t=s.getAttribute("value");if(t==null)return;let e=Number(t);if(isNaN(e))return;let i=A.params(s),n=i.getNumber("ticker-start",0),r=i.getNumber("ticker-duration",1e3),o=i.get("ticker-decimals")?parseInt(i.get("ticker-decimals"),10):Od(t),a=Pd(s,o),l=e-n;if(l===0)return;let c=null;function h(u){c||(c=u);let d=u-c,p=Math.min(d/r,1),m=Rd(p),f=n+l*m;s.textContent=a?a.format(f):f.toFixed(o),p<1?requestAnimationFrame(h):(s.textContent=a?a.format(e):e.toFixed(o),s.hasAttribute("data-format-number")&&s.setAttribute("data-format-number-init",""))}requestAnimationFrame(h)}A.effect("ticker",s=>{if(!s.hasAttribute("data-effect-ticker-init")&&(s.setAttribute("data-effect-ticker-init",""),!A.prefersReducedMotion()))return{activate(){Fd(s)},cleanup(){}}});A.effect("animate-image",s=>{if(s.hasAttribute("data-effect-animate-image-init"))return;s.setAttribute("data-effect-animate-image-init","");let t=s,e=document.createElement("div");if(e.className="animate-image-wrapper",!t.parentNode)return;t.parentNode.insertBefore(e,t),e.appendChild(t);let i=document.createElement("button");i.type="button",i.className="animate-image-toggle",i.setAttribute("aria-label","Pause animation"),e.appendChild(i);let n=t.src,r=null,o=!1;function a(){let u=document.createElement("canvas");u.width=t.naturalWidth||t.width,u.height=t.naturalHeight||t.height;let d=u.getContext("2d");if(d){d.drawImage(t,0,0);try{r=u.toDataURL("image/png")}catch{r=null}}}function l(){o||(o=!0,t.setAttribute("data-animate-image-paused",""),i.setAttribute("aria-label","Play animation"),i.classList.add("paused"),r&&(t.src=r))}function c(){o&&(o=!1,t.removeAttribute("data-animate-image-paused"),i.setAttribute("aria-label","Pause animation"),i.classList.remove("paused"),t.src=n)}i.addEventListener("click",()=>o?c():l()),t.complete&&t.naturalWidth?a():t.addEventListener("load",a,{once:!0});let h=window.matchMedia("(prefers-reduced-motion: reduce)");return(h.matches||document.documentElement.dataset.motionReduced!==void 0)&&(t.complete?(a(),l()):t.addEventListener("load",()=>{a(),l()},{once:!0})),h.addEventListener("change",u=>{u.matches&&l()}),t.hasAttribute("data-animate-image-paused")&&(t.complete?(a(),o=!1,l()):t.addEventListener("load",()=>{a(),o=!1,l()},{once:!0})),{cleanup(){e.parentNode&&(e.parentNode.insertBefore(t,e),e.remove())}}});var jd=1e3;function qa(s){let t=document.createElement("div");t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),Object.assign(t.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:"0"}),t.textContent=s,document.body.appendChild(t),setTimeout(()=>t.remove(),jd)}function Da(s,t){s.dispatchEvent(new CustomEvent("rating:change",{bubbles:!0,detail:{value:t}}))}function zd(s){let t=s.querySelector('input[type="radio"]:checked');return t?t.value:"0"}A.effect("rating",s=>{if(s.hasAttribute("data-effect-rating-init")||(s.setAttribute("data-effect-rating-init",""),s.hasAttribute("data-rating-readonly")))return;let t=zd(s),e=!1;function i(o){let a=o.target.closest("label");if(!a)return;let l=a.querySelector('input[type="radio"]');l&&(e=l.checked&&l.value===t)}function n(o){if(!e)return;e=!1;let a=o.target.closest("label");if(!a)return;let l=a.querySelector('input[type="radio"]');l&&(l.checked=!1,t="0",Da(s,0),qa("Rating cleared"))}function r(o){o.target.type==="radio"&&(e||(t=o.target.value,Da(s,Number(o.target.value)),qa(`Rating: ${o.target.value} ${Number(o.target.value)===1?"star":"stars"}`)))}return s.addEventListener("mousedown",i),s.addEventListener("click",n),s.addEventListener("change",r),{cleanup(){s.removeEventListener("mousedown",i),s.removeEventListener("click",n),s.removeEventListener("change",r)}}});document.querySelector("[data-wizard]")&&Promise.resolve().then(()=>(Ba(),Ia));document.querySelector("[data-gesture]")&&Promise.resolve().then(()=>(me(),pe));document.querySelector("[data-markdown-editable]")&&Promise.resolve().then(()=>(el(),_p));document.querySelector("[data-scroll-hide]")&&Promise.resolve().then(()=>(sl(),Ip));document.querySelector("[data-focus-trap]")&&Promise.resolve().then(()=>(rl(),nl));document.querySelector("img[data-responsive]")&&Promise.resolve().then(()=>(cl(),ll));document.querySelector("button[data-loading]")&&Promise.resolve().then(()=>(dl(),ul));document.querySelector("[data-floating-label]")&&Promise.resolve().then(()=>(gl(),fl));document.querySelector("[data-hotkey]:not(kbd)")&&Promise.resolve().then(()=>(El(),Al));document.querySelector('progress[data-type="ring"]')&&Promise.resolve().then(()=>(Tl(),Cl));document.querySelector("[data-keyboard-aware]")&&Promise.resolve().then(()=>($l(),Ml));await E.init();document.documentElement.hasAttribute("data-sticky")&&Ui();A.observe();va();xa();Ca();Ta();export{A as VB,zl as activateBundle,g as registerComponent,jl as registerEffect};
|
|
1852
|
+
//# sourceMappingURL=vanilla-breeze.js.map
|