vanilla-breeze 0.1.3 → 0.1.4
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/dist/cdn/components/accessibility-specimen.js +11 -0
- package/dist/cdn/components/accordion-wc.js +1 -1
- package/dist/cdn/components/activity-feed.js +2 -0
- package/dist/cdn/components/adr-wc.js +17 -17
- package/dist/cdn/components/ai-chat.js +28 -0
- package/dist/cdn/components/ai-summary.js +10 -0
- package/dist/cdn/components/analytics-panel.js +5 -5
- package/dist/cdn/components/audio-player.js +3 -3
- package/dist/cdn/components/audio-visualizer.js +2 -2
- package/dist/cdn/components/author-index.js +2 -2
- package/dist/cdn/components/brand-mark.js +1 -1
- package/dist/cdn/components/bread-crumb.js +2 -0
- package/dist/cdn/components/breakpoint-specimen.js +26 -0
- package/dist/cdn/components/burndown-chart.js +2 -0
- package/dist/cdn/components/calendar-wc.js +2 -2
- package/dist/cdn/components/capacity-plan.js +25 -0
- package/dist/cdn/components/card-list.js +1 -1
- package/dist/cdn/components/carousel-wc.js +1 -1
- package/dist/cdn/components/change-set.js +2 -2
- package/dist/cdn/components/chart-wc.js +58 -36
- package/dist/cdn/components/chat-input.js +1 -1
- package/dist/cdn/components/chat-window.js +1 -1
- package/dist/cdn/components/color-palette.js +9 -9
- package/dist/cdn/components/color-picker.js +1 -1
- package/dist/cdn/components/combo-box.js +1 -1
- package/dist/cdn/components/command-palette.js +1 -1
- package/dist/cdn/components/comment-box.js +60 -0
- package/dist/cdn/components/comment-thread.js +60 -0
- package/dist/cdn/components/comment-wc.js +1 -1
- package/dist/cdn/components/compare-surface.js +1 -1
- package/dist/cdn/components/component-sampler.js +2 -2
- package/dist/cdn/components/consent-banner.js +1 -1
- package/dist/cdn/components/content-lens.js +1 -1
- package/dist/cdn/components/content-swap.js +1 -1
- package/dist/cdn/components/context-menu.js +1 -1
- package/dist/cdn/components/data-table.js +1 -1
- package/dist/cdn/components/date-picker.js +1 -1
- package/dist/cdn/components/day-view.js +1 -1
- package/dist/cdn/components/diagram-wc.js +3 -0
- package/dist/cdn/components/drag-surface.js +1 -1
- package/dist/cdn/components/drop-down.js +1 -1
- package/dist/cdn/components/emoji-picker.js +1 -1
- package/dist/cdn/components/empathy-map.js +41 -43
- package/dist/cdn/components/flow-diagram.js +1 -1
- package/dist/cdn/components/font-pairer.js +81 -81
- package/dist/cdn/components/foot-notes.js +1 -1
- package/dist/cdn/components/form-field.js +1 -1
- package/dist/cdn/components/gantt-chart.js +1 -1
- package/dist/cdn/components/geo-map.js +25 -23
- package/dist/cdn/components/glossary-index.js +1 -1
- package/dist/cdn/components/glossary-wc.js +1 -1
- package/dist/cdn/components/gradient-builder.js +29 -29
- package/dist/cdn/components/heading-links.js +1 -1
- package/dist/cdn/components/highlight-wc.js +2 -2
- package/dist/cdn/components/image-gallery.js +1 -1
- package/dist/cdn/components/image-map.js +1 -1
- package/dist/cdn/components/impact-effort.js +1 -1
- package/dist/cdn/components/include-file.js +1 -1
- package/dist/cdn/components/iron-triangle.js +2 -0
- package/dist/cdn/components/kanban-board.js +1 -1
- package/dist/cdn/components/layout-specimen.js +35 -0
- package/dist/cdn/components/manifest.json +228 -100
- package/dist/cdn/components/markdown-editor.js +1 -1
- package/dist/cdn/components/markdown-viewer.js +12 -12
- package/dist/cdn/components/motion-specimen.js +12 -12
- package/dist/cdn/components/nav-bar.js +2 -0
- package/dist/cdn/components/note-wc.js +2 -2
- package/dist/cdn/components/notification-wc.js +4 -4
- package/dist/cdn/components/page-info.js +4 -4
- package/dist/cdn/components/page-stats.js +1 -1
- package/dist/cdn/components/page-toc.js +1 -1
- package/dist/cdn/components/page-tools.js +1 -1
- package/dist/cdn/components/page-tour.js +6 -6
- package/dist/cdn/components/pager-wc.js +2 -0
- package/dist/cdn/components/palette-generator.js +11 -11
- package/dist/cdn/components/poll-wc.js +2 -0
- package/dist/cdn/components/pop-over.js +2 -0
- package/dist/cdn/components/popularity-index.js +2 -2
- package/dist/cdn/components/print-page.js +1 -1
- package/dist/cdn/components/product-roadmap.js +3 -0
- package/dist/cdn/components/progress-tracker.js +2 -0
- package/dist/cdn/components/qr-code.js +1 -1
- package/dist/cdn/components/quadrant-grid.js +3 -0
- package/dist/cdn/components/quality-target.js +12 -0
- package/dist/cdn/components/reaction-bar.js +2 -0
- package/dist/cdn/components/reader-view.js +3 -3
- package/dist/cdn/components/reading-progress.js +2 -0
- package/dist/cdn/components/recently-visited.js +10 -10
- package/dist/cdn/components/requirement-card.js +122 -0
- package/dist/cdn/components/review-surface.js +34 -40
- package/dist/cdn/components/risk-register.js +25 -0
- package/dist/cdn/components/roadmap.js +3 -0
- package/dist/cdn/components/score-card.js +197 -0
- package/dist/cdn/components/selection-menu.js +1 -1
- package/dist/cdn/components/semantic-palette.js +15 -15
- package/dist/cdn/components/settings-panel.js +12 -12
- package/dist/cdn/components/share-wc.js +2 -2
- package/dist/cdn/components/short-cuts.js +1 -1
- package/dist/cdn/components/site-index.js +4 -4
- package/dist/cdn/components/site-map-wc.js +1 -1
- package/dist/cdn/components/site-map.js +1 -1
- package/dist/cdn/components/site-search.js +9 -9
- package/dist/cdn/components/slide-accept.js +1 -1
- package/dist/cdn/components/social-embed.js +1 -1
- package/dist/cdn/components/spacing-specimen.js +5 -5
- package/dist/cdn/components/split-surface.js +1 -1
- package/dist/cdn/components/star-rating.js +1 -1
- package/dist/cdn/components/status-wc.js +2 -0
- package/dist/cdn/components/stepper-wc.js +2 -0
- package/dist/cdn/components/story-map.js +1 -1
- package/dist/cdn/components/tab-set.js +1 -1
- package/dist/cdn/components/text-reader.js +2 -2
- package/dist/cdn/components/theme-catalog.js +28 -0
- package/dist/cdn/components/theme-export.js +20 -12
- package/dist/cdn/components/theme-import.js +44 -0
- package/dist/cdn/components/theme-picker.js +29 -26
- package/dist/cdn/components/time-index.js +2 -2
- package/dist/cdn/components/time-picker.js +1 -1
- package/dist/cdn/components/toast-msg.js +3 -3
- package/dist/cdn/components/token-specimen.js +14 -14
- package/dist/cdn/components/tool-tip.js +1 -1
- package/dist/cdn/components/topic-map.js +3 -3
- package/dist/cdn/components/traceability-matrix.js +3 -0
- package/dist/cdn/components/trust-filter.js +3 -3
- package/dist/cdn/components/type-specimen.js +15 -15
- package/dist/cdn/components/user-journey.js +63 -70
- package/dist/cdn/components/user-persona.js +75 -13
- package/dist/cdn/components/user-story.js +9 -8
- package/dist/cdn/components/version-switcher.js +17 -0
- package/dist/cdn/components/video-player.js +3 -3
- package/dist/cdn/components/watch-wc.js +2 -2
- package/dist/cdn/components/week-view.js +1 -1
- package/dist/cdn/components/work-item.js +29 -28
- package/dist/cdn/components/youtube-player.js +1 -1
- package/dist/cdn/packs/design-system.full.js +59 -51
- package/dist/cdn/packs/effects.full.js +1 -1
- package/dist/cdn/packs/icons.effects.js +1 -1
- package/dist/cdn/packs/icons.full.js +1 -1
- package/dist/cdn/packs/kawaii.full.css +1 -1
- package/dist/cdn/packs/kawaii.full.js +6 -6
- package/dist/cdn/packs/kawaii.theme.css +1 -1
- package/dist/cdn/packs/manifest.json +11 -11
- package/dist/cdn/packs/ui.full.css +1 -1
- package/dist/cdn/packs/ui.full.js +54 -51
- package/dist/cdn/packs/ux-planning.full.css +1 -1
- package/dist/cdn/packs/ux-planning.full.js +317 -241
- package/dist/cdn/themes/8bit.css +1 -1
- package/dist/cdn/themes/8bit.tokens.json +662 -0
- package/dist/cdn/themes/alpha1999-dark.tokens.json +693 -0
- package/dist/cdn/themes/alpha1999.css +1 -1
- package/dist/cdn/themes/alpha1999.tokens.json +869 -0
- package/dist/cdn/themes/anthropic.css +2 -0
- package/dist/cdn/themes/anthropic.tokens.json +564 -0
- package/dist/cdn/themes/art-deco-dark.tokens.json +407 -0
- package/dist/cdn/themes/art-deco.css +1 -1
- package/dist/cdn/themes/art-deco.tokens.json +581 -0
- package/dist/cdn/themes/bauhaus-dark.tokens.json +260 -0
- package/dist/cdn/themes/bauhaus.css +1 -1
- package/dist/cdn/themes/bauhaus.tokens.json +589 -0
- package/dist/cdn/themes/brutalist-dark.tokens.json +503 -0
- package/dist/cdn/themes/brutalist.tokens.json +677 -0
- package/dist/cdn/themes/catalog/atlassian.tokens.json +303 -0
- package/dist/cdn/themes/catalog/bootstrap.tokens.json +304 -0
- package/dist/cdn/themes/catalog/carbon.tokens.json +301 -0
- package/dist/cdn/themes/catalog/catppuccin-mocha.tokens.json +301 -0
- package/dist/cdn/themes/catalog/govuk.tokens.json +301 -0
- package/dist/cdn/themes/catalog/manifest.json +132 -0
- package/dist/cdn/themes/catalog/material.tokens.json +289 -0
- package/dist/cdn/themes/catalog/salesforce.tokens.json +301 -0
- package/dist/cdn/themes/catalog/tailwind.tokens.json +302 -0
- package/dist/cdn/themes/catppuccin-frappe.css +1 -1
- package/dist/cdn/themes/catppuccin-frappe.tokens.json +608 -0
- package/dist/cdn/themes/catppuccin-latte-dark.tokens.json +472 -0
- package/dist/cdn/themes/catppuccin-latte.css +1 -1
- package/dist/cdn/themes/catppuccin-latte.tokens.json +608 -0
- package/dist/cdn/themes/catppuccin-macchiato.css +1 -1
- package/dist/cdn/themes/catppuccin-macchiato.tokens.json +608 -0
- package/dist/cdn/themes/catppuccin-mocha.tokens.json +608 -0
- package/dist/cdn/themes/classic-dark.tokens.json +503 -0
- package/dist/cdn/themes/classic.tokens.json +640 -0
- package/dist/cdn/themes/claymorphism-dark.tokens.json +493 -0
- package/dist/cdn/themes/claymorphism.css +1 -1
- package/dist/cdn/themes/claymorphism.tokens.json +626 -0
- package/dist/cdn/themes/clinical-dark.tokens.json +472 -0
- package/dist/cdn/themes/clinical.tokens.json +608 -0
- package/dist/cdn/themes/cottagecore-dark.tokens.json +412 -0
- package/dist/cdn/themes/cottagecore.css +1 -1
- package/dist/cdn/themes/cottagecore.tokens.json +544 -0
- package/dist/cdn/themes/cyber.tokens.json +668 -0
- package/dist/cdn/themes/dawn-dark.tokens.json +472 -0
- package/dist/cdn/themes/dawn.css +1 -1
- package/dist/cdn/themes/dawn.tokens.json +608 -0
- package/dist/cdn/themes/dracula.tokens.json +534 -0
- package/dist/cdn/themes/dusk.tokens.json +533 -0
- package/dist/cdn/themes/editorial-dark.tokens.json +400 -0
- package/dist/cdn/themes/editorial.tokens.json +690 -0
- package/dist/cdn/themes/financial-dark.tokens.json +472 -0
- package/dist/cdn/themes/financial.css +1 -1
- package/dist/cdn/themes/financial.tokens.json +607 -0
- package/dist/cdn/themes/genai.tokens.json +534 -0
- package/dist/cdn/themes/glassmorphism-dark.tokens.json +489 -0
- package/dist/cdn/themes/glassmorphism.css +1 -1
- package/dist/cdn/themes/glassmorphism.tokens.json +632 -0
- package/dist/cdn/themes/government-dark.tokens.json +472 -0
- package/dist/cdn/themes/government.tokens.json +608 -0
- package/dist/cdn/themes/gruvbox-dark.tokens.json +472 -0
- package/dist/cdn/themes/gruvbox.tokens.json +608 -0
- package/dist/cdn/themes/high-noon-dark.tokens.json +397 -0
- package/dist/cdn/themes/high-noon.tokens.json +533 -0
- package/dist/cdn/themes/ibm.css +2 -0
- package/dist/cdn/themes/ibm.tokens.json +568 -0
- package/dist/cdn/themes/kawaii-dark.tokens.json +549 -0
- package/dist/cdn/themes/kawaii.css +1 -1
- package/dist/cdn/themes/kawaii.tokens.json +641 -0
- package/dist/cdn/themes/magna-dark.tokens.json +482 -0
- package/dist/cdn/themes/magna.css +1 -1
- package/dist/cdn/themes/magna.tokens.json +632 -0
- package/dist/cdn/themes/manifest.json +162 -62
- package/dist/cdn/themes/mcdonalds.css +2 -0
- package/dist/cdn/themes/mcdonalds.tokens.json +533 -0
- package/dist/cdn/themes/midnight.tokens.json +534 -0
- package/dist/cdn/themes/minimal-dark.tokens.json +294 -0
- package/dist/cdn/themes/minimal.tokens.json +494 -0
- package/dist/cdn/themes/modern-dark.tokens.json +490 -0
- package/dist/cdn/themes/modern.tokens.json +573 -0
- package/dist/cdn/themes/nes-dark.tokens.json +564 -0
- package/dist/cdn/themes/nes.css +1 -1
- package/dist/cdn/themes/nes.tokens.json +687 -0
- package/dist/cdn/themes/neumorphism-dark.tokens.json +471 -0
- package/dist/cdn/themes/neumorphism.css +1 -1
- package/dist/cdn/themes/neumorphism.tokens.json +589 -0
- package/dist/cdn/themes/nord-dark.tokens.json +484 -0
- package/dist/cdn/themes/nord.tokens.json +619 -0
- package/dist/cdn/themes/organic-dark.tokens.json +532 -0
- package/dist/cdn/themes/organic.tokens.json +685 -0
- package/dist/cdn/themes/rose-pine-dark.tokens.json +472 -0
- package/dist/cdn/themes/rose-pine.tokens.json +608 -0
- package/dist/cdn/themes/rough-dark.tokens.json +515 -0
- package/dist/cdn/themes/rough.css +1 -1
- package/dist/cdn/themes/rough.tokens.json +650 -0
- package/dist/cdn/themes/solarized-dark.tokens.json +397 -0
- package/dist/cdn/themes/solarized.tokens.json +532 -0
- package/dist/cdn/themes/starbucks.css +2 -0
- package/dist/cdn/themes/starbucks.tokens.json +593 -0
- package/dist/cdn/themes/startup-dark.tokens.json +522 -0
- package/dist/cdn/themes/startup.css +1 -1
- package/dist/cdn/themes/startup.tokens.json +607 -0
- package/dist/cdn/themes/super2026-dark.tokens.json +667 -0
- package/dist/cdn/themes/super2026.tokens.json +863 -0
- package/dist/cdn/themes/swiss-dark.tokens.json +390 -0
- package/dist/cdn/themes/swiss.tokens.json +750 -0
- package/dist/cdn/themes/terminal.css +1 -1
- package/dist/cdn/themes/terminal.tokens.json +689 -0
- package/dist/cdn/themes/tokyo-night-dark.tokens.json +472 -0
- package/dist/cdn/themes/tokyo-night.tokens.json +608 -0
- package/dist/cdn/themes/vaporwave-dark.tokens.json +413 -0
- package/dist/cdn/themes/vaporwave.tokens.json +549 -0
- package/dist/cdn/themes/win9x-dark.tokens.json +563 -0
- package/dist/cdn/themes/win9x.tokens.json +700 -0
- package/dist/cdn/vanilla-breeze-charts.css +1 -1
- package/dist/cdn/vanilla-breeze-charts.js +58 -36
- package/dist/cdn/vanilla-breeze-core.css +1 -1
- package/dist/cdn/vanilla-breeze-core.js +246 -51
- package/dist/cdn/vanilla-breeze-dev.js +1 -1
- package/dist/cdn/vanilla-breeze-extras.js +90 -80
- package/dist/cdn/vanilla-breeze.css +1 -1
- package/dist/cdn/vanilla-breeze.js +1363 -398
- package/package.json +10 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var S=window.matchMedia("(prefers-reduced-motion: reduce)");var A=new Map;function E(n,t,e={}){let i=e.priority??10,a={impl:t,bundle:e.bundle,contract:e.contract,priority:i},s=A.get(n);if(customElements.get(n)){if(!s||s.priority>=i){s&&s.priority===i&&s.impl!==t&&console.warn(`[VB Bundle] Tag <${n}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${n}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=i){s.priority===i&&console.warn(`[VB Bundle] Tag <${n}> already registered by "${s.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}A.set(n,a),customElements.define(n,t)}var m=class extends HTMLElement{#c=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0})))}disconnectedCallback(){for(let t of this.#c)t();this.#c=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,i,a){t.addEventListener(e,i,a),this.#c.push(()=>t.removeEventListener(e,i,a))}setup(){}teardown(){}};var C="popover"in HTMLElement.prototype;var x=["Su","Mo","Tu","We","Th","Fr","Sa"],k=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],D=["january","february","march","april","may","june","july","august","september","october","november","december"];function c(n){let t=n.getFullYear(),e=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");return`${t}-${e}-${i}`}function p(n){if(!n)return null;let[t,e,i]=n.split("-").map(Number);return new Date(t,e-1,i)}function b(n,t){return new Date(n,t+1,0).getDate()}function F(){try{let n=new Intl.Locale(navigator.language);if(n.weekInfo)return n.weekInfo.firstDay%7}catch{}return 0}function N(n){try{return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"long",day:"numeric"}).format(n)}catch{return c(n)}}function g(n,t){return n&&t&&n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()&&n.getDate()===t.getDate()}function T(){let n=new Map;D.forEach((t,e)=>{n.set(t,e),n.set(t.slice(0,3),e)});try{for(let t=0;t<12;t++){let e=new Intl.DateTimeFormat(void 0,{month:"long"}).format(new Date(2e3,t,1)).toLowerCase(),i=new Intl.DateTimeFormat(void 0,{month:"short"}).format(new Date(2e3,t,1)).toLowerCase().replace(".","");n.set(e,t),n.set(i,t)}}catch{}return n}var w=T();function y(n){let t=n.trim();if(!t)return{date:null,partial:null};if(/^\d{4}-\d{2}-\d{2}$/.test(t)){let r=p(t);return r&&!isNaN(r.getTime())?{date:r,partial:null}:{date:null,partial:null}}if(/^\d{4}\/\d{2}\/\d{2}$/.test(t)){let r=p(t.replace(/\//g,"-"));return r&&!isNaN(r.getTime())?{date:r,partial:null}:{date:null,partial:null}}let e=/^([a-z\u00C0-\u024F]+)\s+(\d{1,2}),?\s+(\d{4})$/i,i=t.match(e);if(i){let r=w.get(i[1].toLowerCase());if(r!==void 0){let h=new Date(Number(i[3]),r,Number(i[2]));if(!isNaN(h.getTime()))return{date:h,partial:null}}}let a=/^(\d{1,2})\s+([a-z\u00C0-\u024F]+)\s+(\d{4})$/i;if(i=t.match(a),i){let r=w.get(i[2].toLowerCase());if(r!==void 0){let h=new Date(Number(i[3]),r,Number(i[1]));if(!isNaN(h.getTime()))return{date:h,partial:null}}}let s=/^([a-z\u00C0-\u024F]+)\s+(\d{4})$/i;if(i=t.match(s),i){let r=w.get(i[1].toLowerCase());if(r!==void 0)return{date:null,partial:{year:Number(i[2]),month:r}}}return{date:null,partial:null}}var v=class extends m{static formAssociated=!0;#c;#r;#t;#p;#b;#s;#y;#f;#D;#u;#l=!1;#v=!1;#e=null;#n=null;#a;#i;#h=null;#o=null;#x=new Map;#k=new Map;#S;#A;constructor(){super(),this.#c=this.attachInternals()}setup(){if(this.#r=this.querySelector(':scope > input[type="date"]'),!this.#r)return!1;this.#h=p(this.#r.getAttribute("min")),this.#o=p(this.#r.getAttribute("max")),this.#A=F();let t=this.getAttribute("data-disabled-dates");t&&t.split(",").forEach(a=>{let[s,r]=a.trim().split(":");this.#x.set(s,r||null)});let e=this.getAttribute("data-highlight-dates");e&&e.split(",").forEach(a=>{let[s,r]=a.trim().split(":");this.#k.set(s,r||null)}),this.#e=p(this.#r.value),this.#S=this.#r.value;let i=new Date;this.#o&&i>this.#o&&(i=this.#o),this.#h&&i<this.#h&&(i=this.#h),this.#a=this.#e?this.#e.getFullYear():i.getFullYear(),this.#i=this.#e?this.#e.getMonth():i.getMonth(),this.#n=this.#e||i,this.#r.setAttribute("tabindex","-1"),this.#r.setAttribute("aria-hidden","true"),this.#r.style.cssText="position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden;",this.#I(),this.#B(),this.#g(),this.#E(),this.#C(),this.#v=C,this.#v&&this.#s.setAttribute("popover","manual"),this.listen(document,"click",this.#z),(this.#r.disabled||this.hasAttribute("disabled"))&&(this.setAttribute("data-disabled",""),this.#t.disabled=!0)}teardown(){window.removeEventListener("scroll",this.#w,{capture:!0}),window.removeEventListener("resize",this.#w)}#I(){this.#b=document.createElement("div"),this.#b.className="date-trigger",this.#t=document.createElement("input"),this.#t.type="text",this.#t.className="date-input",this.#t.setAttribute("role","combobox"),this.#t.setAttribute("aria-haspopup","dialog"),this.#t.setAttribute("aria-expanded","false"),this.#t.setAttribute("autocomplete","off"),this.#t.setAttribute("placeholder","Type a date\u2026"),this.#b.appendChild(this.#t),this.#p=document.createElement("button"),this.#p.type="button",this.#p.className="date-trigger-icon",this.#p.setAttribute("aria-label","Toggle calendar"),this.#p.setAttribute("tabindex","-1");let t=document.createElement("icon-wc");t.setAttribute("name","calendar"),t.setAttribute("size","sm"),t.setAttribute("aria-hidden","true"),this.#p.appendChild(t),this.#b.appendChild(this.#p),this.appendChild(this.#b),this.listen(this.#p,"click",e=>{e.stopPropagation(),this.#l?this.#m():this.#T(),this.#t.focus()}),this.listen(this.#t,"focus",()=>this.#t.select()),this.listen(this.#t,"input",this.#O),this.listen(this.#t,"keydown",this.#q),this.listen(this.#t,"blur",this.#R)}#B(){this.#y=`dp-${Math.random().toString(36).slice(2,8)}`,this.#s=document.createElement("div"),this.#s.className="calendar",this.#s.id=this.#y,this.#s.setAttribute("role","dialog"),this.#s.setAttribute("aria-modal","false"),this.#s.setAttribute("aria-label","Choose date"),this.#s.hidden=!0,this.#t.setAttribute("aria-controls",this.#y);let t=document.createElement("div");t.className="calendar-header";let e=document.createElement("button");e.type="button",e.className="calendar-nav",e.setAttribute("aria-label","Previous month");let i=document.createElement("icon-wc");i.setAttribute("name","chevron-left"),i.setAttribute("size","sm"),i.setAttribute("aria-hidden","true"),e.appendChild(i);let a=document.createElement("span");a.className="calendar-title",a.id=`${this.#y}-title`,a.setAttribute("aria-live","polite"),this.#D=document.createElement("span"),this.#D.className="calendar-month",this.#u=document.createElement("select"),this.#u.className="calendar-year",this.#u.setAttribute("aria-label","Year"),this.#Y(),a.appendChild(this.#D),a.appendChild(this.#u);let s=document.createElement("button");s.type="button",s.className="calendar-nav",s.setAttribute("aria-label","Next month");let r=document.createElement("icon-wc");r.setAttribute("name","chevron-right"),r.setAttribute("size","sm"),r.setAttribute("aria-hidden","true"),s.appendChild(r),t.appendChild(e),t.appendChild(a),t.appendChild(s),this.#s.appendChild(t);let h=document.createElement("table");h.setAttribute("role","grid"),h.setAttribute("aria-labelledby",`${this.#y}-title`);let d=document.createElement("thead"),u=document.createElement("tr");for(let l=0;l<7;l++){let o=(this.#A+l)%7,f=document.createElement("th");f.setAttribute("abbr",k[o]),f.setAttribute("scope","col"),f.textContent=x[o],u.appendChild(f)}d.appendChild(u),h.appendChild(d),this.#f=document.createElement("tbody"),h.appendChild(this.#f),this.#s.appendChild(h),this.appendChild(this.#s),this.#d(),this.listen(e,"click",()=>this.#L(-1)),this.listen(s,"click",()=>this.#L(1)),this.listen(this.#u,"change",()=>{this.#a=Number(this.#u.value);let l=b(this.#a,this.#i),o=Math.min(this.#n.getDate(),l);this.#n=new Date(this.#a,this.#i,o),this.#d()}),this.listen(this.#f,"click",this.#H),this.listen(this.#s,"keydown",this.#V)}#d(){try{this.#D.textContent=new Intl.DateTimeFormat(void 0,{month:"long"}).format(new Date(this.#a,this.#i,1))}catch{this.#D.textContent=D[this.#i].charAt(0).toUpperCase()+D[this.#i].slice(1)}this.#u.querySelector(`option[value="${this.#a}"]`)||this.#Y(),this.#u.value=String(this.#a),this.#f.innerHTML="";let t=b(this.#a,this.#i),i=(new Date(this.#a,this.#i,1).getDay()-this.#A+7)%7,a=new Date,s=document.createElement("tr");for(let h=0;h<i;h++)s.appendChild(document.createElement("td"));for(let h=1;h<=t;h++){let d=new Date(this.#a,this.#i,h),u=c(d),l=document.createElement("td"),o=document.createElement("button");o.type="button",o.setAttribute("data-date",u),o.textContent=String(h),g(d,a)&&o.setAttribute("aria-current","date"),g(d,this.#e)&&o.setAttribute("aria-selected","true");let f=this.#$(d,u);if(f.disabled&&(o.setAttribute("aria-disabled","true"),o.setAttribute("disabled",""),f.reason&&o.setAttribute("data-disabled-reason",f.reason)),this.#k.has(u)){let M=this.#k.get(u);o.setAttribute("data-highlight",M||"")}g(d,this.#n)?(o.setAttribute("tabindex","0"),g(d,this.#e)||o.setAttribute("data-focused","")):o.setAttribute("tabindex","-1"),l.appendChild(o),s.appendChild(l),(i+h)%7===0&&(this.#f.appendChild(s),s=document.createElement("tr"))}let r=(i+t)%7;if(r>0){for(let h=r;h<7;h++)s.appendChild(document.createElement("td"));this.#f.appendChild(s)}}#F(t,e){return this.#$(t,e).disabled}#$(t,e){return this.#x.has(e)?{disabled:!0,reason:this.#x.get(e)}:this.#h&&t<this.#h?{disabled:!0,reason:null}:this.#o&&t>this.#o?{disabled:!0,reason:null}:{disabled:!1,reason:null}}#Y(){this.#u.innerHTML="";let t=new Date().getFullYear(),e=this.#h?this.#h.getFullYear():t-100,i=this.#o?this.#o.getFullYear():t+10;for(let a=e;a<=i;a++){let s=document.createElement("option");s.value=String(a),s.textContent=String(a),this.#u.appendChild(s)}}#L(t){this.#i+=t,this.#i>11?(this.#i=0,this.#a++):this.#i<0&&(this.#i=11,this.#a--);let e=b(this.#a,this.#i),i=Math.min(this.#n.getDate(),e);this.#n=new Date(this.#a,this.#i,i),this.#d(),this.#N(this.#n)}#M(t){let e=c(t);this.#F(t,e)||(this.#e=t,this.#n=t,this.#g(),this.#E(),this.#C(),this.#d(),this.#m(),this.#t.focus(),this.dispatchEvent(new CustomEvent("date-picker:change",{bubbles:!0,detail:{value:e,date:new Date(t)}})))}#N(t){let e=c(t),i=this.#f.querySelector(`[data-date="${e}"]`);i&&(this.#f.querySelectorAll('button[tabindex="0"]').forEach(a=>{a.setAttribute("tabindex","-1")}),i.setAttribute("tabindex","0"),i.focus())}#g(){this.#e?this.#t.value=N(this.#e):this.#t.value=""}#T(){if(!this.#l){if(this.#l=!0,this.setAttribute("open",""),this.#t.setAttribute("aria-expanded","true"),this.#s.hidden=!1,this.#a=this.#n.getFullYear(),this.#i=this.#n.getMonth(),this.#d(),this.#v){try{this.#s.showPopover()}catch{}this.#P(),window.addEventListener("scroll",this.#w,{capture:!0,passive:!0}),window.addEventListener("resize",this.#w,{passive:!0})}this.dispatchEvent(new CustomEvent("date-picker:open",{bubbles:!0}))}}#m(){if(this.#l){if(this.#l=!1,this.removeAttribute("open"),this.#t.setAttribute("aria-expanded","false"),this.#s.hidden=!0,this.#v){try{this.#s.hidePopover()}catch{}window.removeEventListener("scroll",this.#w,{capture:!0}),window.removeEventListener("resize",this.#w)}this.dispatchEvent(new CustomEvent("date-picker:close",{bubbles:!0}))}}#P(){if(!this.#v)return;let t=this.#b.getBoundingClientRect(),e=this.#s.getBoundingClientRect(),i=4,a=8,s=window.innerHeight,r=window.innerWidth,h=s-t.bottom-a,d=t.top-a,u;h<e.height&&d>h?(u=t.top-e.height-i,this.#s.dataset.placement="top"):(u=t.bottom+i,delete this.#s.dataset.placement);let l=t.left;l+e.width>r-a&&(l=r-e.width-a),l<a&&(l=a),this.#s.style.setProperty("--calendar-top",`${u}px`),this.#s.style.setProperty("--calendar-left",`${l}px`)}#w=()=>{this.#l&&this.#P()};#O=()=>{let t=this.#t.value,{date:e,partial:i}=y(t);if(e)this.#n=e,this.#a=e.getFullYear(),this.#i=e.getMonth(),this.#d();else if(i){this.#a=i.year,this.#i=i.month;let a=b(i.year,i.month),s=Math.min(this.#n.getDate(),a);this.#n=new Date(i.year,i.month,s),this.#d()}!this.#l&&t.length>0&&this.#T()};#q=t=>{switch(t.key){case"Enter":{t.preventDefault(),t.stopPropagation();let{date:e}=y(this.#t.value);e&&!this.#F(e,c(e))&&this.#M(e);return}case"ArrowDown":t.preventDefault(),t.stopPropagation(),this.#l||this.#T(),requestAnimationFrame(()=>this.#N(this.#n));return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#l&&this.#m(),this.#g();return;case"Tab":this.#l&&this.#m();return}};#R=t=>{if(t.relatedTarget&&this.contains(t.relatedTarget))return;let e=this.#t.value.trim();if(e){let{date:i}=y(e);i&&!this.#F(i,c(i))&&(this.#e=i,this.#n=i,this.#E(),this.#C(),this.dispatchEvent(new CustomEvent("date-picker:change",{bubbles:!0,detail:{value:c(i),date:new Date(i)}})))}this.#g(),this.#l&&this.#m(),this.#r.dispatchEvent(new Event("blur",{bubbles:!0}))};#z=t=>{this.#l&&!this.contains(t.target)&&this.#m()};#H=t=>{let e=t.target.closest("button[data-date]");!e||e.hasAttribute("disabled")||this.#M(p(e.getAttribute("data-date")))};#V=t=>{if(t.key==="Tab"){this.#m();return}let e=this.#n,i;switch(t.key){case"ArrowRight":i=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1);break;case"ArrowLeft":i=new Date(e.getFullYear(),e.getMonth(),e.getDate()-1);break;case"ArrowDown":i=new Date(e.getFullYear(),e.getMonth(),e.getDate()+7);break;case"ArrowUp":i=new Date(e.getFullYear(),e.getMonth(),e.getDate()-7);break;case"PageDown":t.shiftKey?i=new Date(e.getFullYear()+1,e.getMonth(),e.getDate()):i=new Date(e.getFullYear(),e.getMonth()+1,e.getDate());break;case"PageUp":t.shiftKey?i=new Date(e.getFullYear()-1,e.getMonth(),e.getDate()):i=new Date(e.getFullYear(),e.getMonth()-1,e.getDate());break;case"Home":i=new Date(e.getFullYear(),e.getMonth(),e.getDate()-e.getDay()+this.#A);break;case"End":i=new Date(e.getFullYear(),e.getMonth(),e.getDate()+(6-e.getDay()+this.#A));break;case"Enter":case" ":t.preventDefault(),t.stopPropagation(),this.#M(e);return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#m(),this.#t.focus();return;default:return}t.preventDefault(),t.stopPropagation(),i&&(this.#h&&i<this.#h&&(i=this.#h),this.#o&&i>this.#o&&(i=this.#o),this.#n=i,(i.getMonth()!==this.#i||i.getFullYear()!==this.#a)&&(this.#i=i.getMonth(),this.#a=i.getFullYear(),this.#d()),this.#N(i))};#E(){let t=this.#e?c(this.#e):"";this.#c.setFormValue(t||null),this.#r.value=t,this.#r.dispatchEvent(new Event("input",{bubbles:!0}))}#C(){(this.hasAttribute("required")||this.#r.hasAttribute("required"))&&!this.#e?this.#c.setValidity({valueMissing:!0},"Please select a date",this.#t||this):this.#c.setValidity({})}formResetCallback(){this.#e=p(this.#S);let t=new Date;this.#n=this.#e||t,this.#a=this.#n.getFullYear(),this.#i=this.#n.getMonth(),this.#g(),this.#E(),this.#C(),this.#l&&this.#d()}formStateRestoreCallback(t){t&&(this.#e=p(t),this.#e&&(this.#n=this.#e,this.#a=this.#e.getFullYear(),this.#i=this.#e.getMonth(),this.#g(),this.#E(),this.#C()))}get value(){return this.#e?c(this.#e):""}set value(t){let e=p(t);e&&this.#M(e)}get min(){return this.#h?c(this.#h):""}set min(t){this.#h=t?p(t):null,this.#r&&this.#r.setAttribute("min",t||""),this.#d()}get max(){return this.#o?c(this.#o):""}set max(t){this.#o=t?p(t):null,this.#r&&this.#r.setAttribute("max",t||""),this.#d()}};E("date-picker",v);export{v as DatePicker};
|
|
1
|
+
var S=window.matchMedia("(prefers-reduced-motion: reduce)");var A=new Map;function E(a,t,i={}){let e=i.priority??10,s={impl:t,bundle:i.bundle,contract:i.contract,priority:e},n=A.get(a);if(customElements.get(a)){if(!n||n.priority>=e){n&&n.priority===e&&n.impl!==t&&console.warn(`[VB Bundle] Tag <${a}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${i.bundle}".`);return}console.warn(`[VB Bundle] Tag <${a}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${i.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=e){n.priority===e&&console.warn(`[VB Bundle] Tag <${a}> already registered by "${n.bundle}". Skipping "${i.bundle}" (first wins at equal priority).`);return}A.set(a,s),customElements.define(a,t)}var m=class extends HTMLElement{#c=[];#i;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#c)t();this.#c=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,i,e,s){t.addEventListener(i,e,s),this.#c.push(()=>t.removeEventListener(i,e,s))}setup(){}teardown(){}setState(t,i){this.#i||(this.#i=this.attachInternals());let e=this.#i.states;try{i?e.add(t):e.delete(t)}catch{let s=`--${t}`;i?e.add(s):e.delete(s)}}_adoptInternals(t){this.#i||(this.#i=t)}};var C="popover"in HTMLElement.prototype;var x=["Su","Mo","Tu","We","Th","Fr","Sa"],k=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],D=["january","february","march","april","may","june","july","august","september","october","november","december"];function d(a){let t=a.getFullYear(),i=String(a.getMonth()+1).padStart(2,"0"),e=String(a.getDate()).padStart(2,"0");return`${t}-${i}-${e}`}function p(a){if(!a)return null;let[t,i,e]=a.split("-").map(Number);return new Date(t,i-1,e)}function b(a,t){return new Date(a,t+1,0).getDate()}function F(){try{let a=new Intl.Locale(navigator.language);if(a.weekInfo)return a.weekInfo.firstDay%7}catch{}return 0}function N(a){try{return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"long",day:"numeric"}).format(a)}catch{return d(a)}}function g(a,t){return a&&t&&a.getFullYear()===t.getFullYear()&&a.getMonth()===t.getMonth()&&a.getDate()===t.getDate()}function T(){let a=new Map;D.forEach((t,i)=>{a.set(t,i),a.set(t.slice(0,3),i)});try{for(let t=0;t<12;t++){let i=new Intl.DateTimeFormat(void 0,{month:"long"}).format(new Date(2e3,t,1)).toLowerCase(),e=new Intl.DateTimeFormat(void 0,{month:"short"}).format(new Date(2e3,t,1)).toLowerCase().replace(".","");a.set(i,t),a.set(e,t)}}catch{}return a}var w=T();function y(a){let t=a.trim();if(!t)return{date:null,partial:null};if(/^\d{4}-\d{2}-\d{2}$/.test(t)){let r=p(t);return r&&!isNaN(r.getTime())?{date:r,partial:null}:{date:null,partial:null}}if(/^\d{4}\/\d{2}\/\d{2}$/.test(t)){let r=p(t.replace(/\//g,"-"));return r&&!isNaN(r.getTime())?{date:r,partial:null}:{date:null,partial:null}}let i=/^([a-z\u00C0-\u024F]+)\s+(\d{1,2}),?\s+(\d{4})$/i,e=t.match(i);if(e){let r=w.get(e[1].toLowerCase());if(r!==void 0){let h=new Date(Number(e[3]),r,Number(e[2]));if(!isNaN(h.getTime()))return{date:h,partial:null}}}let s=/^(\d{1,2})\s+([a-z\u00C0-\u024F]+)\s+(\d{4})$/i;if(e=t.match(s),e){let r=w.get(e[2].toLowerCase());if(r!==void 0){let h=new Date(Number(e[3]),r,Number(e[1]));if(!isNaN(h.getTime()))return{date:h,partial:null}}}let n=/^([a-z\u00C0-\u024F]+)\s+(\d{4})$/i;if(e=t.match(n),e){let r=w.get(e[1].toLowerCase());if(r!==void 0)return{date:null,partial:{year:Number(e[2]),month:r}}}return{date:null,partial:null}}var v=class extends m{static formAssociated=!0;#c;#i;#t;#p;#b;#a;#y;#f;#D;#u;#l=!1;#v=!1;#e=null;#n=null;#r=new Date().getFullYear();#s=new Date().getMonth();#h=null;#o=null;#x=new Map;#k=new Map;#S=null;#A=0;constructor(){super(),this.#c=this.attachInternals(),this._adoptInternals(this.#c)}setup(){if(this.#i=this.querySelector(':scope > input[type="date"]'),!this.#i)return!1;this.#h=p(this.#i.getAttribute("min")),this.#o=p(this.#i.getAttribute("max")),this.#A=F();let t=this.getAttribute("data-disabled-dates");t&&t.split(",").forEach(s=>{let[n,r]=s.trim().split(":");this.#x.set(n,r||"")});let i=this.getAttribute("data-highlight-dates");i&&i.split(",").forEach(s=>{let[n,r]=s.trim().split(":");this.#k.set(n,r||"")}),this.#e=p(this.#i.value),this.#S=this.#i.value;let e=new Date;return this.#o&&e>this.#o&&(e=this.#o),this.#h&&e<this.#h&&(e=this.#h),this.#r=this.#e?this.#e.getFullYear():e.getFullYear(),this.#s=this.#e?this.#e.getMonth():e.getMonth(),this.#n=this.#e||e,this.#i.setAttribute("tabindex","-1"),this.#i.setAttribute("aria-hidden","true"),this.#i.style.cssText="position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden;",this.#P(),this.#B(),this.#g(),this.#E(),this.#C(),this.#v=C,this.#v&&this.#a.setAttribute("popover","manual"),this.listen(document,"click",this.#z),(this.#i.disabled||this.hasAttribute("disabled"))&&(this.setAttribute("data-disabled",""),this.#t.disabled=!0),!0}teardown(){window.removeEventListener("scroll",this.#w,{capture:!0}),window.removeEventListener("resize",this.#w)}#P(){this.#b=document.createElement("div"),this.#b.className="date-trigger",this.#t=document.createElement("input"),this.#t.type="text",this.#t.className="date-input",this.#t.setAttribute("role","combobox"),this.#t.setAttribute("aria-haspopup","dialog"),this.#t.setAttribute("aria-expanded","false"),this.#t.setAttribute("autocomplete","off"),this.#t.setAttribute("placeholder","Type a date\u2026"),this.#b.appendChild(this.#t),this.#p=document.createElement("button"),this.#p.type="button",this.#p.className="date-trigger-icon",this.#p.setAttribute("aria-label","Toggle calendar"),this.#p.setAttribute("tabindex","-1");let t=document.createElement("icon-wc");t.setAttribute("name","calendar"),t.setAttribute("size","sm"),t.setAttribute("aria-hidden","true"),this.#p.appendChild(t),this.#b.appendChild(this.#p),this.appendChild(this.#b),this.listen(this.#p,"click",i=>{i.stopPropagation(),this.#l?this.#m():this.#T(),this.#t.focus()}),this.listen(this.#t,"focus",()=>this.#t.select()),this.listen(this.#t,"input",this.#O),this.listen(this.#t,"keydown",this.#q),this.listen(this.#t,"blur",this.#R)}#B(){this.#y=`dp-${Math.random().toString(36).slice(2,8)}`,this.#a=document.createElement("div"),this.#a.className="calendar",this.#a.id=this.#y,this.#a.setAttribute("role","dialog"),this.#a.setAttribute("aria-modal","false"),this.#a.setAttribute("aria-label","Choose date"),this.#a.hidden=!0,this.#t.setAttribute("aria-controls",this.#y);let t=document.createElement("div");t.className="calendar-header";let i=document.createElement("button");i.type="button",i.className="calendar-nav",i.setAttribute("aria-label","Previous month");let e=document.createElement("icon-wc");e.setAttribute("name","chevron-left"),e.setAttribute("size","sm"),e.setAttribute("aria-hidden","true"),i.appendChild(e);let s=document.createElement("span");s.className="calendar-title",s.id=`${this.#y}-title`,s.setAttribute("aria-live","polite"),this.#D=document.createElement("span"),this.#D.className="calendar-month",this.#u=document.createElement("select"),this.#u.className="calendar-year",this.#u.setAttribute("aria-label","Year"),this.#Y(),s.appendChild(this.#D),s.appendChild(this.#u);let n=document.createElement("button");n.type="button",n.className="calendar-nav",n.setAttribute("aria-label","Next month");let r=document.createElement("icon-wc");r.setAttribute("name","chevron-right"),r.setAttribute("size","sm"),r.setAttribute("aria-hidden","true"),n.appendChild(r),t.appendChild(i),t.appendChild(s),t.appendChild(n),this.#a.appendChild(t);let h=document.createElement("table");h.setAttribute("role","grid"),h.setAttribute("aria-labelledby",`${this.#y}-title`);let u=document.createElement("thead"),c=document.createElement("tr");for(let l=0;l<7;l++){let o=(this.#A+l)%7,f=document.createElement("th");f.setAttribute("abbr",k[o]),f.setAttribute("scope","col"),f.textContent=x[o],c.appendChild(f)}u.appendChild(c),h.appendChild(u),this.#f=document.createElement("tbody"),h.appendChild(this.#f),this.#a.appendChild(h),this.appendChild(this.#a),this.#d(),this.listen(i,"click",()=>this.#L(-1)),this.listen(n,"click",()=>this.#L(1)),this.listen(this.#u,"change",()=>{this.#r=Number(this.#u.value);let l=b(this.#r,this.#s),o=Math.min(this.#n?.getDate()??1,l);this.#n=new Date(this.#r,this.#s,o),this.#d()}),this.listen(this.#f,"click",this.#H),this.listen(this.#a,"keydown",this.#V)}#d(){try{this.#D.textContent=new Intl.DateTimeFormat(void 0,{month:"long"}).format(new Date(this.#r,this.#s,1))}catch{this.#D.textContent=D[this.#s].charAt(0).toUpperCase()+D[this.#s].slice(1)}this.#u.querySelector(`option[value="${this.#r}"]`)||this.#Y(),this.#u.value=String(this.#r),this.#f.innerHTML="";let t=b(this.#r,this.#s),e=(new Date(this.#r,this.#s,1).getDay()-this.#A+7)%7,s=new Date,n=document.createElement("tr");for(let h=0;h<e;h++)n.appendChild(document.createElement("td"));for(let h=1;h<=t;h++){let u=new Date(this.#r,this.#s,h),c=d(u),l=document.createElement("td"),o=document.createElement("button");o.type="button",o.setAttribute("data-date",c),o.textContent=String(h),g(u,s)&&o.setAttribute("aria-current","date"),g(u,this.#e)&&o.setAttribute("aria-selected","true");let f=this.#$(u,c);if(f.disabled&&(o.setAttribute("aria-disabled","true"),o.setAttribute("disabled",""),f.reason&&o.setAttribute("data-disabled-reason",f.reason)),this.#k.has(c)){let M=this.#k.get(c);o.setAttribute("data-highlight",M||"")}g(u,this.#n)?(o.setAttribute("tabindex","0"),g(u,this.#e)||o.setAttribute("data-focused","")):o.setAttribute("tabindex","-1"),l.appendChild(o),n.appendChild(l),(e+h)%7===0&&(this.#f.appendChild(n),n=document.createElement("tr"))}let r=(e+t)%7;if(r>0){for(let h=r;h<7;h++)n.appendChild(document.createElement("td"));this.#f.appendChild(n)}}#F(t,i){return this.#$(t,i).disabled}#$(t,i){return this.#x.has(i)?{disabled:!0,reason:this.#x.get(i)}:this.#h&&t<this.#h?{disabled:!0,reason:null}:this.#o&&t>this.#o?{disabled:!0,reason:null}:{disabled:!1,reason:null}}#Y(){this.#u.innerHTML="";let t=new Date().getFullYear(),i=this.#h?this.#h.getFullYear():t-100,e=this.#o?this.#o.getFullYear():t+10;for(let s=i;s<=e;s++){let n=document.createElement("option");n.value=String(s),n.textContent=String(s),this.#u.appendChild(n)}}#L(t){this.#s+=t,this.#s>11?(this.#s=0,this.#r++):this.#s<0&&(this.#s=11,this.#r--);let i=b(this.#r,this.#s),e=Math.min(this.#n?.getDate()??1,i);this.#n=new Date(this.#r,this.#s,e),this.#d(),this.#N(this.#n)}#M(t,i="internal"){let e=d(t);this.#F(t,e)||this.#e&&d(this.#e)===e||(this.#e=t,this.#n=t,this.#g(),this.#E(),this.#C(),this.#d(),this.#m(),this.#t.focus(),this.dispatchEvent(new CustomEvent("date-picker:change",{bubbles:!0,detail:{value:e,date:new Date(t),source:i}})))}#N(t){let i=d(t),e=this.#f.querySelector(`[data-date="${i}"]`);e&&(this.#f.querySelectorAll('button[tabindex="0"]').forEach(s=>{s.setAttribute("tabindex","-1")}),e.setAttribute("tabindex","0"),e.focus())}#g(){this.#e?this.#t.value=N(this.#e):this.#t.value=""}#T(){if(!this.#l){if(this.#l=!0,this.setAttribute("open",""),this.#t.setAttribute("aria-expanded","true"),this.#a.hidden=!1,this.#n&&(this.#r=this.#n.getFullYear(),this.#s=this.#n.getMonth()),this.#d(),this.#v){try{this.#a.showPopover()}catch{}this.#I(),window.addEventListener("scroll",this.#w,{capture:!0,passive:!0}),window.addEventListener("resize",this.#w,{passive:!0})}this.dispatchEvent(new CustomEvent("date-picker:open",{bubbles:!0}))}}#m(){if(this.#l){if(this.#l=!1,this.removeAttribute("open"),this.#t.setAttribute("aria-expanded","false"),this.#a.hidden=!0,this.#v){try{this.#a.hidePopover()}catch{}window.removeEventListener("scroll",this.#w,{capture:!0}),window.removeEventListener("resize",this.#w)}this.dispatchEvent(new CustomEvent("date-picker:close",{bubbles:!0}))}}#I(){if(!this.#v)return;let t=this.#b.getBoundingClientRect(),i=this.#a.getBoundingClientRect(),e=4,s=8,n=window.innerHeight,r=window.innerWidth,h=n-t.bottom-s,u=t.top-s,c;h<i.height&&u>h?(c=t.top-i.height-e,this.#a.dataset.placement="top"):(c=t.bottom+e,delete this.#a.dataset.placement);let l=t.left;l+i.width>r-s&&(l=r-i.width-s),l<s&&(l=s),this.#a.style.setProperty("--calendar-top",`${c}px`),this.#a.style.setProperty("--calendar-left",`${l}px`)}#w=()=>{this.#l&&this.#I()};#O=()=>{let t=this.#t.value,{date:i,partial:e}=y(t);if(i)this.#n=i,this.#r=i.getFullYear(),this.#s=i.getMonth(),this.#d();else if(e){this.#r=e.year,this.#s=e.month;let s=b(e.year,e.month),n=Math.min(this.#n?.getDate()??1,s);this.#n=new Date(e.year,e.month,n),this.#d()}!this.#l&&t.length>0&&this.#T()};#q=t=>{switch(t.key){case"Enter":{t.preventDefault(),t.stopPropagation();let{date:i}=y(this.#t.value);i&&!this.#F(i,d(i))&&this.#M(i);return}case"ArrowDown":t.preventDefault(),t.stopPropagation(),this.#l||this.#T(),requestAnimationFrame(()=>this.#N(this.#n));return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#l&&this.#m(),this.#g();return;case"Tab":this.#l&&this.#m();return}};#R=t=>{if(t.relatedTarget&&this.contains(t.relatedTarget))return;let i=this.#t.value.trim();if(i){let{date:e}=y(i);e&&!this.#F(e,d(e))&&(this.#e=e,this.#n=e,this.#E(),this.#C(),this.dispatchEvent(new CustomEvent("date-picker:change",{bubbles:!0,detail:{value:d(e),date:new Date(e)}})))}this.#g(),this.#l&&this.#m(),this.#i.dispatchEvent(new Event("blur",{bubbles:!0}))};#z=t=>{this.#l&&!this.contains(t.target)&&this.#m()};#H=t=>{let e=t.target?.closest("button[data-date]");if(!e||e.hasAttribute("disabled"))return;let s=p(e.getAttribute("data-date"));s&&this.#M(s)};#V=t=>{if(t.key==="Tab"){this.#m();return}let i=this.#n;if(!i)return;let e;switch(t.key){case"ArrowRight":e=new Date(i.getFullYear(),i.getMonth(),i.getDate()+1);break;case"ArrowLeft":e=new Date(i.getFullYear(),i.getMonth(),i.getDate()-1);break;case"ArrowDown":e=new Date(i.getFullYear(),i.getMonth(),i.getDate()+7);break;case"ArrowUp":e=new Date(i.getFullYear(),i.getMonth(),i.getDate()-7);break;case"PageDown":t.shiftKey?e=new Date(i.getFullYear()+1,i.getMonth(),i.getDate()):e=new Date(i.getFullYear(),i.getMonth()+1,i.getDate());break;case"PageUp":t.shiftKey?e=new Date(i.getFullYear()-1,i.getMonth(),i.getDate()):e=new Date(i.getFullYear(),i.getMonth()-1,i.getDate());break;case"Home":e=new Date(i.getFullYear(),i.getMonth(),i.getDate()-i.getDay()+this.#A);break;case"End":e=new Date(i.getFullYear(),i.getMonth(),i.getDate()+(6-i.getDay()+this.#A));break;case"Enter":case" ":t.preventDefault(),t.stopPropagation(),this.#M(i);return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#m(),this.#t.focus();return;default:return}t.preventDefault(),t.stopPropagation(),e&&(this.#h&&e<this.#h&&(e=this.#h),this.#o&&e>this.#o&&(e=this.#o),this.#n=e,(e.getMonth()!==this.#s||e.getFullYear()!==this.#r)&&(this.#s=e.getMonth(),this.#r=e.getFullYear(),this.#d()),this.#N(e))};#E(){let t=this.#e?d(this.#e):"";this.#c.setFormValue(t||null),this.#i.value=t,this.#i.dispatchEvent(new Event("input",{bubbles:!0}))}#C(){(this.hasAttribute("required")||this.#i.hasAttribute("required"))&&!this.#e?this.#c.setValidity({valueMissing:!0},"Please select a date",this.#t||this):this.#c.setValidity({})}formResetCallback(){this.#e=p(this.#S);let t=new Date;this.#n=this.#e||t,this.#r=this.#n.getFullYear(),this.#s=this.#n.getMonth(),this.#g(),this.#E(),this.#C(),this.#l&&this.#d()}formStateRestoreCallback(t){t&&(this.#e=p(t),this.#e&&(this.#n=this.#e,this.#r=this.#e.getFullYear(),this.#s=this.#e.getMonth(),this.#g(),this.#E(),this.#C()))}get value(){return this.#e?d(this.#e):""}set value(t){let i=p(t);i&&this.#M(i,"api")}get min(){return this.#h?d(this.#h):""}set min(t){this.#h=t?p(t):null,this.#i&&this.#i.setAttribute("min",t||""),this.#d()}get max(){return this.#o?d(this.#o):""}set max(t){this.#o=t?p(t):null,this.#i&&this.#i.setAttribute("max",t||""),this.#d()}};E("date-picker",v);export{v as DatePicker};
|
|
2
2
|
//# sourceMappingURL=date-picker.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var b=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let e of this.#t)e();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,n,t,s){e.addEventListener(n,t,s),this.#t.push(()=>e.removeEventListener(n,t,s))}setup(){}teardown(){}setState(e,n){this.#e||(this.#e=this.attachInternals());let t=this.#e.states;try{n?t.add(e):t.delete(e)}catch{let s=`--${e}`;n?t.add(s):t.delete(s)}}_adoptInternals(e){this.#e||(this.#e=e)}};var q=window.matchMedia("(prefers-reduced-motion: reduce)");var w=new Map;function x(h,e,n={}){let t=n.priority??10,s={impl:e,bundle:n.bundle,contract:n.contract,priority:t},r=w.get(h);if(customElements.get(h)){if(!r||r.priority>=t){r&&r.priority===t&&r.impl!==e&&console.warn(`[VB Bundle] Tag <${h}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${n.bundle}".`);return}console.warn(`[VB Bundle] Tag <${h}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${n.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=t){r.priority===t&&console.warn(`[VB Bundle] Tag <${h}> already registered by "${r.bundle}". Skipping "${n.bundle}" (first wins at equal priority).`);return}w.set(h,s),customElements.define(h,e)}var v=class extends b{#t=null;setup(){if(this.#t=this.querySelector("ol"),!this.#t&&this.dataset.startHour==="auto"&&this.#e(),!this.#t)return!1;let e=this.#t;this.#n(),this.listen(e,"click",t=>{let r=t.target?.closest("calendar-event");r&&this.dispatchEvent(new CustomEvent("day-view:event-click",{bubbles:!0,detail:{time:r.querySelector("time[datetime]")?.getAttribute("datetime"),text:r.textContent?.trim()??"",element:r,category:r.dataset.category,duration:r.dataset.duration}}))}),this.listen(e,"keydown",t=>{let s=t,p=s.target?.closest("calendar-event");if(!p)return;let i=[...e.querySelectorAll("calendar-event")],a=i.indexOf(p);if(a===-1)return;let c;s.key==="ArrowDown"&&a<i.length-1&&(c=i[a+1]),s.key==="ArrowUp"&&a>0&&(c=i[a-1]),c&&(s.preventDefault(),c.setAttribute("tabindex","0"),p.setAttribute("tabindex","-1"),c.focus())});let n=e.querySelector("calendar-event");return n&&n.setAttribute("tabindex","0"),!0}#e(){let e=[...this.querySelectorAll(":scope > calendar-event")];if(e.length===0)return;let n=new Map,t=[];if(e.forEach(d=>{let o=d,l=o.querySelector("time[datetime]");if(!l){t.push(o);return}let g=l.getAttribute("datetime");if(!g){t.push(o);return}let f=g.split(":"),u=parseInt(f[0],10),m=parseInt(f[1]||"0",10);if(isNaN(u)){t.push(o);return}m>=30&&!o.dataset.start&&(o.dataset.start="30"),n.has(u)||n.set(u,[]),n.get(u).push(o)}),t.length>0){let d=document.createElement("ul");d.className="all-day-events",t.forEach(o=>{let l=document.createElement("li");l.appendChild(o),d.appendChild(l)}),this.prepend(d)}let s=[...n.keys()].sort((d,o)=>d-o);if(s.length===0)return;let r=Math.max(0,s[0]-1),p=Math.min(23,s[s.length-1]+1),i=this.closest("[lang]")?.lang||navigator.language,a=new Intl.DateTimeFormat(i,{hour:"numeric"}),c=document.createElement("ol");for(let d=r;d<=p;d++){let o=document.createElement("li"),l=document.createElement("time"),g=String(d).padStart(2,"0");l.setAttribute("datetime",`${g}:00`),l.textContent=a.format(new Date(2026,0,1,d));let f=document.createElement("hour-view"),u=n.get(d)||[];u.length>1&&(f.dataset.overlap=""),u.forEach(m=>f.appendChild(m)),o.append(l,f),c.appendChild(o)}this.appendChild(c),this.#t=c}teardown(){this.querySelectorAll("calendar-event.dv-spanning").forEach(e=>{e.style.cssText="",e.classList.remove("dv-spanning")})}refresh(){this.teardown(),this.#n()}get events(){return[...this.querySelectorAll("calendar-event")].map(e=>{let n=e;return{time:n.querySelector("time[datetime]")?.getAttribute("datetime")||void 0,text:n.textContent?.trim()??"",category:n.dataset.category||void 0,duration:n.dataset.duration||void 0,href:n.querySelector("a[href]")?.getAttribute("href")||void 0}})}set events(e){let n=Array.isArray(e)?e:[];for(;this.firstChild;)this.firstChild.remove();this.dataset.startHour="auto";for(let t of n){let s=document.createElement("calendar-event");if(t.category&&(s.dataset.category=t.category),t.duration&&(s.dataset.duration=String(t.duration)),t.time){let r=document.createElement("time");r.setAttribute("datetime",t.time),r.textContent=t.time,s.appendChild(r),s.appendChild(document.createTextNode(" "))}if(t.href){let r=document.createElement("a");r.href=t.href,r.textContent=t.text||"",s.appendChild(r)}else s.appendChild(document.createTextNode(t.text||""));this.appendChild(s)}this.teardown(),this.removeAttribute("data-upgraded"),this.setup(),this.dispatchEvent(new CustomEvent("day-view:events-changed",{detail:{events:n,source:"property"},bubbles:!0}))}#n(){let e=this.#t;if(!e)return;let n=e.querySelectorAll("calendar-event[data-duration]");n.length!==0&&requestAnimationFrame(()=>{let t=e.getBoundingClientRect(),s=new Map,r=64;e.querySelectorAll(":scope > li").forEach(i=>{let a=i.querySelector(":scope > time");if(!a)return;let c=a.getAttribute("datetime");if(!c)return;let d=parseInt(c.split(":")[0],10),o=i.getBoundingClientRect();s.set(d,{top:o.top-t.top,height:o.height}),r=a.getBoundingClientRect().width});let p=[];n.forEach(i=>{let a=i,c=a.closest("ol > li");if(!c)return;let o=c.querySelector(":scope > time")?.getAttribute("datetime");if(!o)return;let l=parseInt(o.split(":")[0],10),g=parseInt(a.dataset.start||"0",10),f=a.dataset.duration??"",u=60,m=f.match(/(\d+)h/),E=f.match(/(\d+)m/);(m||E)&&(u=(m?parseInt(m[1],10)*60:0)+(E?parseInt(E[1],10):0));let y=s.get(l);if(!y)return;let A=g/60,C=y.top+y.height*A,S=y.height*(u/60);p.push({event:a,top:C,height:S})}),p.forEach(({event:i,top:a,height:c})=>{i.style.position="absolute",i.style.top=a+"px",i.style.height=c+"px",i.style.left=r+4+"px",i.style.right="4px",i.classList.add("dv-spanning")})})}};x("day-view",v);export{v as DayView};
|
|
2
2
|
//# sourceMappingURL=day-view.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var B=window.matchMedia("(prefers-reduced-motion: reduce)");var w=new Map;function C(i,t,e={}){let o=e.priority??10,s={impl:t,bundle:e.bundle,contract:e.contract,priority:o},r=w.get(i);if(customElements.get(i)){if(!r||r.priority>=o){r&&r.priority===o&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${i}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=o){r.priority===o&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${r.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}w.set(i,s),customElements.define(i,t)}var g=class extends HTMLElement{#c=[];#r;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#c)t();this.#c=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,o,s){t.addEventListener(e,o,s),this.#c.push(()=>t.removeEventListener(e,o,s))}setup(){}teardown(){}setState(t,e){this.#r||(this.#r=this.attachInternals());let o=this.#r.states;try{e?o.add(t):o.delete(t)}catch{let s=`--${t}`;e?o.add(s):o.delete(s)}}_adoptInternals(t){this.#r||(this.#r=t)}};function n(i,t,e){return i.getPropertyValue(t).trim()||e}function d(i,t){if(!t)return t;let e=document.createElement("span");e.style.color=t,e.style.position="absolute",e.style.visibility="hidden",e.style.pointerEvents="none",(i.parentElement||document.body).appendChild(e);let o=getComputedStyle(e).color;if(e.remove(),!o)return t;let s=d,r=s._canvas||(s._canvas=document.createElement("canvas"));r.width=r.height=1;let l=s._ctx||(s._ctx=r.getContext("2d",{willReadFrequently:!0}));l.clearRect(0,0,1,1),l.fillStyle=o,l.fillRect(0,0,1,1);let[a,u,f,m]=l.getImageData(0,0,1,1).data;return m===255?`rgb(${a},${u},${f})`:`rgba(${a},${u},${f},${(m/255).toFixed(3)})`}function S(i){let t=getComputedStyle(i),e=d(i,n(t,"--color-text","#1a1a1a")),o=d(i,n(t,"--color-surface","#ffffff")),s=d(i,n(t,"--color-surface-raised",n(t,"--color-surface","#ffffff"))),r=d(i,n(t,"--color-border","#e0e0e0")),l=d(i,n(t,"--color-primary",n(t,"--color-interactive","#3b82f6"))),a=d(i,n(t,"--color-secondary",n(t,"--color-surface-raised","#f8f9fa"))),u=d(i,n(t,"--color-accent",n(t,"--color-primary","#3b82f6"))),f=d(i,n(t,"--color-text-muted",n(t,"--color-text","#1a1a1a"))),m=n(t,"--font-sans",'system-ui, -apple-system, "Segoe UI", sans-serif'),x=n(t,"--font-size-md","14px"),p=[l,u,a],h={};for(let c=0;c<12;c++)h[`cScale${c}`]=p[c%p.length],h[`cScaleLabel${c}`]=e,h[`cScalePeer${c}`]=r,h[`cScaleInv${c}`]=o;let b={};for(let c=0;c<8;c++)b[`git${c}`]=p[c%p.length],b[`gitInv${c}`]=o,b[`gitBranchLabel${c}`]=e;return{primaryColor:l,primaryBorderColor:r,primaryTextColor:e,nodeTextColor:e,secondaryColor:a,secondaryBorderColor:r,secondaryTextColor:e,tertiaryColor:u,tertiaryBorderColor:r,tertiaryTextColor:e,background:o,mainBkg:o,secondBkg:s,tertiaryBkg:s,lineColor:r,nodeBorder:r,gridColor:r,defaultLinkColor:f,clusterBkg:s,clusterBorder:r,actorBkg:o,actorBorder:r,actorTextColor:e,actorLineColor:r,signalColor:e,signalTextColor:e,labelBoxBkgColor:s,labelBoxBorderColor:r,labelTextColor:e,loopTextColor:e,noteBkgColor:s,noteBorderColor:r,noteTextColor:e,edgeLabelBackground:o,titleColor:e,fontFamily:m,fontSize:x,...h,...b}}function v(i,t={}){return{startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:t.themeBase||"base",themeVariables:S(i)}}var $="https://cdn.jsdelivr.net/npm/mermaid@11.14.0/dist/mermaid.esm.min.mjs",E=new Map;function T(i){let t=i||typeof window<"u"&&window.VB_MERMAID_URL||$,e=E.get(t);return e||(e=import(t).then(o=>o.default||o),E.set(t,e)),e}var y=class i extends g{static#c=0;static#r=0;#t=null;#i=null;#e=null;#o=null;#s=null;#n=!1;setup(){this.hasAttribute("type")||this.setAttribute("type","mermaid");let t=this.getAttribute("min-height");t&&(this.style.minBlockSize=t);let e=this.querySelector(":scope > pre");e&&(this.#i=document.createElement("template"),this.#i.appendChild(e.cloneNode(!0)),this.#t=this.#h(e),this.setAttribute("data-rendering",""));let o=this.querySelector(":scope > .dwc-figure");o&&(this.#e=o,this.#n=!0,this.removeAttribute("data-rendering")),this.listen(window,"vb:theme-change",()=>{this.#s&&clearTimeout(this.#s),this.#s=setTimeout(()=>{this.#n&&this.#a()},50)});let s=this.getAttribute("src");s?this.#f(s).then(()=>this.#d()):this.#t&&this.#d()}teardown(){if(this.#o&&(this.#o.disconnect(),this.#o=null),this.#s&&(clearTimeout(this.#s),this.#s=null),this.#e&&(this.#e.remove(),this.#e=null),this.#i){let t=this.#i.content.firstElementChild;t&&!this.querySelector(":scope > pre")&&this.appendChild(t.cloneNode(!0))}this.#n=!1}#d(){if(this.getAttribute("loading")!=="lazy"){this.#a();return}if(!("IntersectionObserver"in window)){this.#a();return}this.#o=new IntersectionObserver(t=>{for(let e of t)if(e.isIntersecting){this.#o?.disconnect(),this.#o=null,this.#a();break}},{rootMargin:"200px"}),this.#o.observe(this)}async#a(){if(!this.#t)return;let t=this.getAttribute("type")||"mermaid";if(t!=="mermaid"){this.#l(new Error(`Unsupported diagram type "${t}". v1 supports "mermaid" only.`));return}try{let e=await T(this.dataset.mermaidSrc),o=v(this,{themeBase:this.dataset.themeBase||"base"});e.initialize(o);let s=`diagram-wc-${++i.#c}`,{svg:r}=await e.render(s,this.#t);this.#u(r),this.#n=!0,this.removeAttribute("data-rendering"),this.removeAttribute("data-error"),this.querySelector(":scope > .dwc-error")?.remove(),this.dispatchEvent(new CustomEvent("diagram-wc:ready",{bubbles:!0,detail:{svg:r,type:t,source:this.#t}}))}catch(e){this.removeAttribute("data-rendering"),this.#n||this.setAttribute("data-error",""),this.#l(e)}}#u(t){let e=document.createElement("figure");e.className="dwc-figure",e.setAttribute("role","img");let o=this.getAttribute("caption")||`${this.getAttribute("type")||"diagram"} diagram`;e.setAttribute("aria-label",o),e.innerHTML=t;let s=this.getAttribute("caption");if(s){let a=document.createElement("figcaption");a.className="dwc-caption",a.textContent=s,e.appendChild(a)}let r=this.#e,l=()=>{r&&r.isConnected?r.replaceWith(e):this.appendChild(e),this.querySelector(":scope > pre")?.remove(),this.#e=e};if(r?.isConnected&&"startViewTransition"in document&&!matchMedia("(prefers-reduced-motion: reduce)").matches){let a=`dwc-vt-${++i.#r}`;r.style.viewTransitionName=a,e.style.viewTransitionName=a,document.startViewTransition(l).finished.finally(()=>{e.style.viewTransitionName=""})}else l()}#l(t){if(!this.#n){if(!this.querySelector(":scope > pre")&&this.#i){let s=this.#i.content.firstElementChild;s&&this.appendChild(s.cloneNode(!0))}this.#e&&(this.#e.remove(),this.#e=null)}this.querySelector(":scope > .dwc-error")?.remove();let e=document.createElement("p");e.className="dwc-error",e.setAttribute("role","status");let o=(t.message||String(t)).split(`
|
|
2
|
+
`)[0].slice(0,240);e.textContent=`Diagram syntax error: ${o}`,this.appendChild(e),this.dispatchEvent(new CustomEvent("diagram-wc:error",{bubbles:!0,detail:{error:t,source:this.#t,type:this.getAttribute("type")}}))}#h(t){let e=t.querySelector("code");return(e?e.textContent:t.textContent)||""}async#f(t){try{let e=await fetch(t);if(!e.ok)throw new Error(`HTTP ${e.status}`);this.#t=await e.text()}catch(e){this.#l(e)}}get source(){return this.#t||""}set source(t){let e=String(t||"");e!==this.#t&&(this.#t=e,this.#e&&(this.#e.remove(),this.#e=null),this.querySelector(":scope > .dwc-error")?.remove(),this.dispatchEvent(new CustomEvent("diagram-wc:source-changed",{bubbles:!0,detail:{source:e}})),this.#a())}get svg(){return this.#e?.querySelector("svg")?.outerHTML||""}};C("diagram-wc",y);export{y as DiagramWc};
|
|
3
|
+
//# sourceMappingURL=diagram-wc.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var p=window.matchMedia("(prefers-reduced-motion: reduce)");var g=new Map;function b(o,t,e={}){let r=e.priority??10,i={impl:t,bundle:e.bundle,contract:e.contract,priority:r},n=g.get(o);if(customElements.get(o)){if(!n||n.priority>=r){n&&n.priority===r&&n.impl!==t&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${o}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=r){n.priority===r&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${n.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}g.set(o,i),customElements.define(o,t)}var h=class extends HTMLElement{#t=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0})))}disconnectedCallback(){for(let t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,r,i){t.addEventListener(e,r,i),this.#t.push(()=>t.removeEventListener(e,r,i))}setup(){}teardown(){}};var f=class o extends h{#t=null;#e=null;#c=!1;#l=null;setup(){this.setAttribute("role","list"),this.#c=window.matchMedia("(prefers-reduced-motion: reduce)").matches,this.#f(),this.#g(),this.#E(),this.#h()}teardown(){this.#t&&(this.#t.remove(),this.#t=null),o.#r?.source===this&&(o.#r=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)}#h(){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")}#f(){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)}#n(t){let e=this.#t;e&&(e.textContent="",requestAnimationFrame(()=>{e.textContent=t}))}#g(){this.listen(this,"pointerdown",t=>{this.#l=t.target}),this.listen(this,"dragstart",this.#b.bind(this)),this.listen(this,"dragover",this.#p.bind(this)),this.listen(this,"dragleave",this.#m.bind(this)),this.listen(this,"drop",this.#v.bind(this)),this.listen(this,"dragend",this.#A.bind(this))}#b(t){let e=t.target.closest('[draggable="true"]');if(!e||e.parentElement!==this||this.hasAttribute("disabled"))return;let r=e.querySelector("[data-drag-handle]");if(r&&!r.contains(this.#l)){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 i=this.#s(e);o.#r={item:e,source:this,originalIndex:i},this.dispatchEvent(new CustomEvent("drag-surface:reorder-start",{bubbles:!0}))}#p(t){let e=o.#r;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 r=this.orientation==="horizontal"?t.clientX:t.clientY;this.#C(r)}#m(t){t.relatedTarget&&!this.contains(t.relatedTarget)&&(this.removeAttribute("data-drag-over"),this.#d())}#v(t){t.preventDefault(),this.removeAttribute("data-drag-over"),this.#d();let e=o.#r;if(!e)return;let{item:r,source:i,originalIndex:n}=e,d=this.orientation==="horizontal"?t.clientX:t.clientY,u=this.#x(d);if(i===this){this.#a(r,u),this.#i();let c=this.#s(r);this.#o(r),this.dispatchEvent(new CustomEvent("drag-surface:reorder",{bubbles:!0,detail:{item:r,itemId:r.dataset.id,oldIndex:n,newIndex:c,order:this.sortedOrder}}))}else this.#a(r,u),this.#i(),i.#i(),this.#o(r),this.dispatchEvent(new CustomEvent("drag-surface:transfer",{bubbles:!0,detail:{item:r,itemId:r.dataset.id,fromSurface:i,toSurface:this,newIndex:this.#s(r),fromOrder:i.sortedOrder,toOrder:this.sortedOrder}}))}#A(){let t=o.#r;t?.item&&t.item.removeAttribute("data-dragging"),this.removeAttribute("data-drag-over"),this.#d(),o.#r=null,this.dispatchEvent(new CustomEvent("drag-surface:reorder-end",{bubbles:!0}))}#E(){this.listen(this,"keydown",this.#
|
|
1
|
+
var p=window.matchMedia("(prefers-reduced-motion: reduce)");var g=new Map;function b(o,t,e={}){let r=e.priority??10,i={impl:t,bundle:e.bundle,contract:e.contract,priority:r},n=g.get(o);if(customElements.get(o)){if(!n||n.priority>=r){n&&n.priority===r&&n.impl!==t&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${o}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=r){n.priority===r&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${n.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}g.set(o,i),customElements.define(o,t)}var h=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,r,i){t.addEventListener(e,r,i),this.#t.push(()=>t.removeEventListener(e,r,i))}setup(){}teardown(){}setState(t,e){this.#e||(this.#e=this.attachInternals());let r=this.#e.states;try{e?r.add(t):r.delete(t)}catch{let i=`--${t}`;e?r.add(i):r.delete(i)}}_adoptInternals(t){this.#e||(this.#e=t)}};var f=class o extends h{#t=null;#e=null;#c=!1;#l=null;setup(){this.setAttribute("role","list"),this.#c=window.matchMedia("(prefers-reduced-motion: reduce)").matches,this.#f(),this.#g(),this.#E(),this.#h()}teardown(){this.#t&&(this.#t.remove(),this.#t=null),o.#r?.source===this&&(o.#r=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)}#h(){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")}#f(){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)}#n(t){let e=this.#t;e&&(e.textContent="",requestAnimationFrame(()=>{e.textContent=t}))}#g(){this.listen(this,"pointerdown",t=>{this.#l=t.target}),this.listen(this,"dragstart",this.#b.bind(this)),this.listen(this,"dragover",this.#p.bind(this)),this.listen(this,"dragleave",this.#m.bind(this)),this.listen(this,"drop",this.#v.bind(this)),this.listen(this,"dragend",this.#A.bind(this))}#b(t){let e=t.target.closest('[draggable="true"]');if(!e||e.parentElement!==this||this.hasAttribute("disabled"))return;let r=e.querySelector("[data-drag-handle]");if(r&&!r.contains(this.#l)){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 i=this.#s(e);o.#r={item:e,source:this,originalIndex:i},this.dispatchEvent(new CustomEvent("drag-surface:reorder-start",{bubbles:!0}))}#p(t){let e=o.#r;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 r=this.orientation==="horizontal"?t.clientX:t.clientY;this.#C(r)}#m(t){t.relatedTarget&&!this.contains(t.relatedTarget)&&(this.removeAttribute("data-drag-over"),this.#d())}#v(t){t.preventDefault(),this.removeAttribute("data-drag-over"),this.#d();let e=o.#r;if(!e)return;let{item:r,source:i,originalIndex:n}=e,d=this.orientation==="horizontal"?t.clientX:t.clientY,u=this.#x(d);if(i===this){this.#a(r,u),this.#i();let c=this.#s(r);this.#o(r),this.dispatchEvent(new CustomEvent("drag-surface:reorder",{bubbles:!0,detail:{item:r,itemId:r.dataset.id,oldIndex:n,newIndex:c,order:this.sortedOrder}}))}else this.#a(r,u),this.#i(),i.#i(),this.#o(r),this.dispatchEvent(new CustomEvent("drag-surface:transfer",{bubbles:!0,detail:{item:r,itemId:r.dataset.id,fromSurface:i,toSurface:this,newIndex:this.#s(r),fromOrder:i.sortedOrder,toOrder:this.sortedOrder}}))}#A(){let t=o.#r;t?.item&&t.item.removeAttribute("data-dragging"),this.removeAttribute("data-drag-over"),this.#d(),o.#r=null,this.dispatchEvent(new CustomEvent("drag-surface:reorder-end",{bubbles:!0}))}#E(){this.listen(this,"keydown",this.#y.bind(this))}#y(t){let e=t.target.closest('[draggable="true"]');if(!e||e.parentElement!==this||this.hasAttribute("disabled"))return;let r=e.getAttribute("aria-grabbed")==="true",i=this.orientation==="horizontal",n=i?"ArrowLeft":"ArrowUp",d=i?"ArrowRight":"ArrowDown";if(t.key===" "||t.key==="Enter"){if(t.preventDefault(),r){e.setAttribute("aria-grabbed","false"),this.removeAttribute("data-reorder-mode"),this.#i(),this.#o(e);let a=this.#s(e),s=this.draggableChildren;this.#n(`${this.#u(e)}, dropped at position ${a+1} of ${s.length}`),this.dispatchEvent(new CustomEvent("drag-surface:reorder",{bubbles:!0,detail:{item:e,itemId:e.dataset.id,oldIndex:this.#e,newIndex:a,order:this.sortedOrder}})),this.dispatchEvent(new CustomEvent("drag-surface:reorder-end",{bubbles:!0})),this.#e=null}else{this.#e=this.#s(e),e.setAttribute("aria-grabbed","true"),this.setAttribute("data-reorder-mode","");let a=this.draggableChildren;this.#n(`${this.#u(e)}, grabbed. Position ${this.#e+1} of ${a.length}. Use arrow keys to move, Enter to drop, Escape to cancel.`),this.dispatchEvent(new CustomEvent("drag-surface:reorder-start",{bubbles:!0}))}return}if(!r&&(t.key===n||t.key===d)){t.preventDefault();let a=this.draggableChildren,s=a.indexOf(e),l=t.key===n?Math.max(0,s-1):Math.min(a.length-1,s+1);l!==s&&a[l].focus();return}if(r&&(t.key===n||t.key===d)){t.preventDefault();let a=this.draggableChildren,s=a.indexOf(e),l=t.key===n?Math.max(0,s-1):Math.min(a.length-1,s+1);l!==s&&(this.#a(e,l),e.focus(),this.#n(`Position ${l+1} of ${a.length}`));return}let u=i?"ArrowUp":"ArrowLeft",c=i?"ArrowDown":"ArrowRight";if(r&&(t.key===u||t.key===c)){if(t.preventDefault(),!this.group)return;let a=t.key===c?1:-1,s=this.#w(a);if(!s)return;s.appendChild(e),s.#i(),this.#i(),s.#o(e),e.focus();let l=s.getAttribute("aria-label")||"next surface";s.#n(`Moved to ${l}`),s.dispatchEvent(new CustomEvent("drag-surface:transfer",{bubbles:!0,detail:{item:e,itemId:e.dataset.id,fromSurface:this,toSurface:s,newIndex:s.draggableChildren.indexOf(e),fromOrder:this.sortedOrder,toOrder:s.sortedOrder}})),this.removeAttribute("data-reorder-mode"),s.setAttribute("data-reorder-mode",""),this.#e=null;return}if(r&&t.key==="Escape"){t.preventDefault(),e.setAttribute("aria-grabbed","false"),this.removeAttribute("data-reorder-mode"),this.#e!=null&&(this.#a(e,this.#e),e.focus()),this.#n("Reorder cancelled"),this.dispatchEvent(new CustomEvent("drag-surface:reorder-end",{bubbles:!0})),this.#e=null;return}!r&&t.key==="Escape"&&(t.preventDefault(),e.blur())}#o(t){t.setAttribute("data-just-dropped",""),t.addEventListener("animationend",()=>{t.removeAttribute("data-just-dropped")},{once:!0}),setTimeout(()=>t.removeAttribute("data-just-dropped"),500)}#w(t){if(!this.group)return null;let e=[...document.querySelectorAll(`drag-surface[group="${this.group}"]`)];if(e.length<2)return null;e.sort((n,d)=>{let u=n.getBoundingClientRect(),c=d.getBoundingClientRect();return u.left-c.left||u.top-c.top});let r=e.indexOf(this);return e[r+t]||null}#u(t){return t.dataset.id||t.textContent.trim().slice(0,40)}#s(t){return this.draggableChildren.indexOf(t)}#a(t,e){let i=this.draggableChildren.filter(n=>n!==t)[e]||null;i?this.insertBefore(t,i):this.appendChild(t)}#i(){this.draggableChildren.forEach((t,e)=>{t.dataset.sortOrder=String(e+1)})}#x(t){let e=this.orientation==="horizontal",r=this.draggableChildren.filter(i=>!i.hasAttribute("data-dragging"));for(let i=0;i<r.length;i++){let n=r[i].getBoundingClientRect(),d=e?n.left+n.width/2:n.top+n.height/2;if(t<d)return i}return r.length}#C(t){this.#d();let e=this.orientation==="horizontal",r=this.draggableChildren.filter(i=>!i.hasAttribute("data-dragging"));for(let i=0;i<r.length;i++){let n=r[i].getBoundingClientRect(),d=e?n.left+n.width/2:n.top+n.height/2;if(t<d){r[i].setAttribute("data-drop-target","before");return}}r.length>0&&r[r.length-1].setAttribute("data-drop-target","after")}#d(){for(let t of this.querySelectorAll("[data-drop-target]"))t.removeAttribute("data-drop-target")}static#r=null};b("drag-surface",f);export{f as DragSurface};
|
|
2
2
|
//# sourceMappingURL=drag-surface.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var a=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,s,e,i){t.addEventListener(s,e,i),this.#t.push(()=>t.removeEventListener(s,e,i))}setup(){}teardown(){}setState(t,s){this.#e||(this.#e=this.attachInternals());let e=this.#e.states;try{s?e.add(t):e.delete(t)}catch{let i=`--${t}`;s?e.add(i):e.delete(i)}}_adoptInternals(t){this.#e||(this.#e=t)}};var v=window.matchMedia("(prefers-reduced-motion: reduce)");var p=new Map;function h(r,t,s={}){let e=s.priority??10,i={impl:t,bundle:s.bundle,contract:s.contract,priority:e},o=p.get(r);if(customElements.get(r)){if(!o||o.priority>=e){o&&o.priority===e&&o.impl!==t&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${o.bundle}" (priority ${o.priority}). Skipping "${s.bundle}".`);return}console.warn(`[VB Bundle] Tag <${r}> defined by "${o.bundle}" cannot be replaced (customElements.define is permanent). "${s.bundle}" has higher priority but arrived late.`);return}if(o&&o.priority>=e){o.priority===e&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${o.bundle}". Skipping "${s.bundle}" (first wins at equal priority).`);return}p.set(r,i),customElements.define(r,t)}var l=CSS.supports("anchor-name","--x"),m=CSS.supports("position-area","bottom"),b=0,c=class extends a{#t=null;#e=null;#s=null;#i=null;setup(){this.id||(this.id=`pop-over-${++b}`);let t=this.dataset.mode||"auto";this.hasAttribute("popover")||this.setAttribute("popover",t),this.#n(),this.#r(),this.#s=s=>{let e=s.newState==="open"?"show":"hide";this.dispatchEvent(new CustomEvent(`pop-over:${e}`,{detail:{state:s.newState},bubbles:!0,composed:!0})),!l&&s.newState==="open"&&this.#t&&this.#o()},this.listen(this,"beforetoggle",this.#s),l||(this.#i=()=>{this.matches(":popover-open")&&this.#t&&this.#o()},this.listen(window,"resize",this.#i),this.listen(window,"scroll",this.#i,{capture:!0,passive:!0}))}show(){this.matches(":popover-open")||this.showPopover()}hide(){this.matches(":popover-open")&&this.hidePopover()}toggle(){this.matches(":popover-open")?this.hide():this.show()}get open(){return this.matches(":popover-open")}#n(){let t=this.dataset.anchor;t?this.#t=document.getElementById(t)||document.querySelector(t):this.#t=document.querySelector(`[popovertarget="${CSS.escape(this.id)}"]`)}#r(){if(!(!this.#t||!l)&&(this.#e=`--pop-over-anchor-${this.id}`,this.#t.style.setProperty("anchor-name",this.#e),this.style.setProperty("position-anchor",this.#e),this.setAttribute("data-anchor-name",this.#e||""),!m)){let t=this.dataset.position||"bottom";this.#a(t)}}#a(t){let s="var(--_pop-over-offset, var(--size-xs))",e={top:{bottom:`calc(anchor(top) + ${s})`,left:"anchor(left)"},bottom:{top:`calc(anchor(bottom) + ${s})`,left:"anchor(left)"},left:{right:`calc(anchor(left) + ${s})`,top:"anchor(top)"},right:{left:`calc(anchor(right) + ${s})`,top:"anchor(top)"}},i=t.split("-")[0],o=e[i]||e.bottom;Object.entries(o).forEach(([n,f])=>this.style.setProperty(n,f))}#o(){if(!this.#t)return;let t=this.#t.getBoundingClientRect(),s=this.dataset.position||"bottom",e=this.#l(),i,o;switch(s.split("-")[0]){case"top":i=t.top-this.offsetHeight-e,o=t.left;break;case"left":i=t.top,o=t.left-this.offsetWidth-e;break;case"right":i=t.top,o=t.right+e;break;default:i=t.bottom+e,o=t.left;break}s.endsWith("-end")&&(s.startsWith("top")||s.startsWith("bottom")?o=t.right-this.offsetWidth:i=t.bottom-this.offsetHeight),this.style.position="fixed",this.style.top=`${Math.round(i)}px`,this.style.left=`${Math.round(o)}px`,this.style.margin="0"}#l(){let t={none:0,xs:4,s:8,m:16,l:24};return t[this.dataset.offset]??t.xs}};h("pop-over",c);var d=0,u=class extends a{#t;#e;#s;#i=[];#n=-1;#r=!1;#a=!1;#o=null;setup(){let t=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button");if(!t)return!1;this.#t=t;let s=this.querySelector('menu, ul[role="menu"]');if(!s)return!1;this.#e=s,this.#a=this.hasAttribute("hover"),this.#t.id||(this.#t.id=`dropdown-trigger-${++d}`);let e=this.querySelector(":scope > pop-over[data-dropdown-host]");return e?this.#s=e:(this.#s=document.createElement("pop-over"),this.#s.setAttribute("data-dropdown-host",""),this.#s.id=`dropdown-${++d}`,this.#s.dataset.mode=this.#a?"manual":"auto",this.#s.dataset.position=this.getAttribute("position")||"bottom-start",this.#s.dataset.anchor=this.#t.id,this.#s.appendChild(this.#e),this.appendChild(this.#s)),this.#s.dataset.mode=this.#a?"manual":"auto",this.#s.dataset.position=this.getAttribute("position")||"bottom-start",this.#s.dataset.anchor=this.#t.id,this.#e.parentElement!==this.#s&&this.#s.appendChild(this.#e),this.#t.setAttribute("aria-haspopup","menu"),this.#t.setAttribute("aria-expanded","false"),this.#e.id||(this.#e.id=`dropdown-menu-${++d}`),this.#t.setAttribute("aria-controls",this.#e.id),this.#e.setAttribute("role","menu"),this.#l(),this.#a?(this.listen(this,"mouseenter",this.#d),this.listen(this,"mouseleave",this.#u),this.listen(this.#t,"focus",this.#p),this.listen(this.#t,"blur",this.#f)):this.listen(this.#t,"click",this.#c),this.listen(this.#t,"keydown",this.#m),this.listen(this.#e,"keydown",this.#b),this.listen(this.#s,"pop-over:hide",this.#w),this.listen(this.#s,"pop-over:show",this.#y),this.#a&&this.listen(document,"keydown",this.#g),!0}teardown(){this.#o&&clearTimeout(this.#o)}get items(){if(!this.#e)return[];let t=[];for(let s of this.#e.querySelectorAll(":scope > li")){if(s.matches('[role="separator"]')||s.querySelector("hr")){t.push({separator:!0});continue}let e=s.querySelector('button, a, [role="menuitem"]');e&&t.push({label:e.textContent.trim().replace(/\s+/g," "),value:e.getAttribute("data-value")||void 0,href:e.tagName==="A"?e.getAttribute("href"):void 0,disabled:e.disabled||e.hasAttribute("data-disabled")||void 0})}return t}set items(t){let s=Array.isArray(t)?t:[],e=this.querySelector('menu, ul[role="menu"]');for(e||(e=document.createElement("menu"),this.appendChild(e));e.firstChild;)e.firstChild.remove();for(let i of s){let o=document.createElement("li");if(i.separator)o.setAttribute("role","separator");else{let n=i.href?document.createElement("a"):document.createElement("button");i.href&&n.setAttribute("href",i.href),i.value&&n.setAttribute("data-value",i.value),i.disabled&&(n.tagName==="BUTTON"?n.disabled=!0:n.setAttribute("data-disabled","")),n.textContent=i.label||"",o.appendChild(n)}e.appendChild(o)}this.teardown(),this.removeAttribute("data-upgraded"),this.setup(),this.dispatchEvent(new CustomEvent("drop-down:items-changed",{detail:{items:s,source:"property"},bubbles:!0}))}#l(){this.#i=Array.from(this.#e.querySelectorAll('button, a, [role="menuitem"]')).filter(t=>!t.disabled&&!t.closest('[role="separator"]')),this.#i.forEach(t=>{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.#v)}),this.#e.querySelectorAll('li:empty, [role="separator"], hr').forEach(t=>{t.setAttribute("role","separator")})}#c=t=>{t.stopPropagation(),this.toggle()};#d=()=>{this.#o&&(clearTimeout(this.#o),this.#o=null,this.setState("hover-grace-pending",!1)),this.open()};#u=()=>{this.setState("hover-grace-pending",!0),this.#o=setTimeout(()=>{this.setState("hover-grace-pending",!1),this.close()},100)};#p=()=>{this.#o&&(clearTimeout(this.#o),this.#o=null,this.setState("hover-grace-pending",!1)),this.open()};#f=t=>{this.#e?.contains(t.relatedTarget)||(this.setState("hover-grace-pending",!0),this.#o=setTimeout(()=>{this.setState("hover-grace-pending",!1),this.contains(document.activeElement)||this.close()},100))};#m=t=>{switch(t.key){case"ArrowDown":case"Down":t.preventDefault(),this.open(),this.#h(0);break;case"ArrowUp":case"Up":t.preventDefault(),this.open(),this.#h(this.#i.length-1);break}};#b=t=>{switch(t.key){case"ArrowDown":case"Down":t.preventDefault(),this.#h(this.#n+1);break;case"ArrowUp":case"Up":t.preventDefault(),this.#h(this.#n-1);break;case"Home":t.preventDefault(),this.#h(0);break;case"End":t.preventDefault(),this.#h(this.#i.length-1);break;case"Tab":this.close();break;case"Enter":case" ":t.preventDefault(),this.#n>=0&&this.#i[this.#n].click();break}};#g=t=>{t.key==="Escape"&&this.#r&&(t.preventDefault(),this.close(),this.#t?.focus())};#v=t=>{t.defaultPrevented||(this.close(),this.#t?.focus())};#y=()=>{this.#r||(this.#r=!0,this.setAttribute("open",""),this.#t?.setAttribute("aria-expanded","true"),this.#n=-1,this.dispatchEvent(new CustomEvent("drop-down:open",{bubbles:!0})))};#w=()=>{this.#r&&(this.#r=!1,this.removeAttribute("open"),this.#t?.setAttribute("aria-expanded","false"),this.#n=-1,this.dispatchEvent(new CustomEvent("drop-down:close",{bubbles:!0})))};#h(t){this.#i.length!==0&&(t<0&&(t=this.#i.length-1),t>=this.#i.length&&(t=0),this.#n=t,this.#i[t].focus())}open(){this.#r||!this.#s||this.#s.show()}close(){!this.#r||!this.#s||this.#s.hide()}toggle(){this.#r?this.close():this.open()}get isOpen(){return this.#r}};h("drop-down",u);export{u as DropDown};
|
|
2
2
|
//# sourceMappingURL=drop-down.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var E=Object.defineProperty;var S=(i,e)=>()=>(i&&(e=i(i=0)),e);var A=(i,e)=>{for(var o in e)E(i,o,{get:e[o],enumerable:!0})};var b={};A(b,{EMOJI_ALIASES:()=>k,EMOJI_GROUPS:()=>F,EMOJI_GROUP_ICONS:()=>M,EMOJI_GROUP_LABELS:()=>C,EMOJI_MAP:()=>n,getByGroup:()=>T,resolveEmoji:()=>x,searchEmoji:()=>R});function f(i){for(let[e,o,t,r]of i){if(n.has(e))continue;let s={shortcode:e,emoji:o,name:t,keywords:[],group:r};n.set(e,s),m.push(s)}}function x(i){let e=n.get(i);if(e)return e;let o=k.get(i);return o&&n.get(o)||null}function T(i){let e=l.filter(t=>t.group===i),o=m.filter(t=>t.group===i);return o.length>0?e.concat(o):e}function R(i){let e=i.toLowerCase().trim(),o=m.length>0?l.concat(m):l;return e?o.filter(t=>t.shortcode.includes(e)||t.name.toLowerCase().includes(e)||t.keywords&&t.keywords.some(r=>r.includes(e))):o}var l,n,k,F,C,M,m,j=S(()=>{l=[{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"}],n=new Map(l.map(i=>[i.shortcode,i])),k=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"]]),F=["smileys","people","animals","food","travel","activities","objects","symbols","flags"],C={smileys:"Smileys & Emotion",people:"People & Body",animals:"Animals & Nature",food:"Food & Drink",travel:"Travel & Places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"},M={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}"},m=[];globalThis.__vbEmojiRegister=f;globalThis.__vbEmojiExtended&&(f(globalThis.__vbEmojiExtended),delete globalThis.__vbEmojiExtended)});var I=window.matchMedia("(prefers-reduced-motion: reduce)");var y=new Map;function w(i,e,o={}){let t=o.priority??10,r={impl:e,bundle:o.bundle,contract:o.contract,priority:t},s=y.get(i);if(customElements.get(i)){if(!s||s.priority>=t){s&&s.priority===t&&s.impl!==e&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${o.bundle}".`);return}console.warn(`[VB Bundle] Tag <${i}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${o.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=t){s.priority===t&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${s.bundle}". Skipping "${o.bundle}" (first wins at equal priority).`);return}y.set(i,r),customElements.define(i,e)}var c=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0})))}disconnectedCallback(){for(let e of this.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,o,t,r){e.addEventListener(o,t,r),this.#e.push(()=>e.removeEventListener(o,t,r))}setup(){}teardown(){}};var h=null;async function B(){return h||(h=await Promise.resolve().then(()=>(j(),b)),h)}var p=8,O=150,v="vb-emoji-recent",g=class extends c{#e;#s;#o;#t;#n;#a=!1;#d=[];#i=-1;#m=null;#c="";#r=null;#y=!1;#h=null;#u=null;async setup(){this.#r=await B(),this.#y||(this.#k(),this.#y=!0),this.#e&&this.listen(this.#e,"click",this.#j),this.listen(document,"click",this.#v),this.listen(document,"keydown",this.#_)}teardown(){this.#m&&clearTimeout(this.#m)}#k(){this.#e=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button"),this.#e||(this.#e=document.createElement("button"),this.#e.type="button",this.#e.textContent="\u{1F600}",this.#e.setAttribute("data-trigger",""),this.prepend(this.#e)),this.#e.setAttribute("aria-haspopup","dialog"),this.#e.setAttribute("aria-expanded","false"),this.#e.setAttribute("aria-label",this.#e.getAttribute("aria-label")||"Open emoji picker"),this.#f()}#f(){this.#s=document.createElement("div"),this.#s.classList.add("picker"),this.#s.setAttribute("role","dialog"),this.#s.setAttribute("aria-label","Emoji picker"),this.#s.hidden=!0,this.#o=document.createElement("input"),this.#o.type="search",this.#o.placeholder="Search emoji\u2026",this.#o.setAttribute("aria-label","Search emoji"),this.#o.addEventListener("input",this.#E),this.#o.addEventListener("keydown",this.#S),this.#s.appendChild(this.#o),this.#n=document.createElement("nav"),this.#n.classList.add("categories"),this.#n.setAttribute("role","tablist"),this.#n.setAttribute("aria-label","Emoji categories");for(let e of this.#r.EMOJI_GROUPS){let o=document.createElement("button");o.type="button",o.setAttribute("role","tab"),o.setAttribute("aria-selected",e===this.#r.EMOJI_GROUPS[0]?"true":"false"),o.setAttribute("data-group",e),o.setAttribute("aria-label",this.#r.EMOJI_GROUP_LABELS[e]),o.title=this.#r.EMOJI_GROUP_LABELS[e],o.textContent=this.#r.EMOJI_GROUP_ICONS[e],o.addEventListener("click",this.#A),this.#n.appendChild(o)}this.#s.appendChild(this.#n),this.#t=document.createElement("div"),this.#t.classList.add("grid"),this.#t.setAttribute("role","grid"),this.#t.setAttribute("aria-label","Emoji"),this.#t.addEventListener("keydown",this.#F),this.#s.appendChild(this.#t),this.appendChild(this.#s),this.#p()}#p(e=null){this.#t.innerHTML="",this.#d=[],this.#i=-1;let o=this.#w();if(!this.#c&&o.length>0){let r=document.createElement("div");r.classList.add("group-label"),r.textContent="Recently Used",r.setAttribute("data-group-heading","recent"),this.#t.appendChild(r);for(let s of o){let a=this.#r.EMOJI_MAP.get(s);a&&this.#g(a)}}let t=e||null;if(t)if(t.length===0){let r=document.createElement("div");r.classList.add("no-results"),r.textContent="No emoji found",this.#t.appendChild(r)}else for(let r of t)this.#g(r);else for(let r of this.#r.EMOJI_GROUPS){let s=document.createElement("div");s.classList.add("group-label"),s.textContent=this.#r.EMOJI_GROUP_LABELS[r],s.setAttribute("data-group-heading",r),this.#t.appendChild(s);let a=this.#r.getByGroup(r);for(let u of a)this.#g(u)}}#g(e){let o=document.createElement("button");o.type="button",o.setAttribute("role","gridcell"),o.setAttribute("tabindex","-1"),o.setAttribute("data-shortcode",e.shortcode),o.title=`${e.name} :${e.shortcode}:`,o.textContent=e.emoji,o.addEventListener("click",this.#C),this.#t.appendChild(o),this.#d.push(o)}#b(){let e=this.getAttribute("for");if(!e)return;let o=document.getElementById(e);if(o){if(o.tagName==="INPUT"||o.tagName==="TEXTAREA"){let t=o;this.#h={start:t.selectionStart??t.value.length,end:t.selectionEnd??t.value.length},this.#u=null}else if(o.isContentEditable){let t=window.getSelection();t&&t.rangeCount>0&&(this.#u=t.getRangeAt(0).cloneRange()),this.#h=null}}}#j=e=>{e.stopPropagation(),this.toggle()};#v=e=>{this.#a&&!this.contains(e.target)&&this.close()};#_=e=>{e.key==="Escape"&&this.#a&&(e.preventDefault(),this.close(),this.#e?.focus())};#E=()=>{this.#m&&clearTimeout(this.#m),this.#m=setTimeout(()=>{if(this.#c=this.#o.value.trim(),this.#c){let e=this.#r.searchEmoji(this.#c);this.#p(e)}else this.#p()},O)};#S=e=>{e.key==="ArrowDown"&&(e.preventDefault(),this.#d.length>0&&this.#l(0))};#A=e=>{let o=e.currentTarget.getAttribute("data-group");for(let r of this.#n.querySelectorAll('[role="tab"]'))r.setAttribute("aria-selected",r===e.currentTarget?"true":"false");this.#c&&(this.#o.value="",this.#c="",this.#p());let t=this.#t.querySelector(`[data-group-heading="${o}"]`);t&&t.scrollIntoView({block:"start",behavior:"smooth"})};#F=e=>{let o=this.#d.length;if(o!==0)switch(e.key){case"ArrowRight":e.preventDefault(),this.#l(this.#i+1);break;case"ArrowLeft":e.preventDefault(),this.#l(this.#i-1);break;case"ArrowDown":e.preventDefault(),this.#l(this.#i+p);break;case"ArrowUp":e.preventDefault(),this.#i<p?(this.#o.focus(),this.#i=-1):this.#l(this.#i-p);break;case"Home":e.preventDefault(),this.#l(0);break;case"End":e.preventDefault(),this.#l(o-1);break;case"Enter":case" ":e.preventDefault(),this.#i>=0&&this.#d[this.#i].click();break;case"Tab":this.close();break}};#C=e=>{let o=e.currentTarget.getAttribute("data-shortcode"),t=this.#r.EMOJI_MAP.get(o);t&&(this.#T(o),this.#M(t),this.dispatchEvent(new CustomEvent("emoji-picker:select",{bubbles:!0,detail:{shortcode:t.shortcode,emoji:t.emoji,name:t.name,keywords:t.keywords}})),this.close(),this.#x())};#l(e){let o=this.#d.length;o!==0&&(e<0&&(e=0),e>=o&&(e=o-1),this.#i=e,this.#d[e].focus())}#M(e){let o=this.getAttribute("for");if(!o)return;let t=document.getElementById(o);if(t){if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"){let r=t,s=this.#h?.start??r.value.length,a=this.#h?.end??s,u=r.value.slice(0,s),_=r.value.slice(a);r.value=u+e.emoji+_;let d=s+e.emoji.length;r.setSelectionRange(d,d),this.#h={start:d,end:d},t.dispatchEvent(new Event("input",{bubbles:!0}))}else if(t.isContentEditable){t.focus();let r=window.getSelection();if(r&&this.#u){r.removeAllRanges(),r.addRange(this.#u);let s=r.getRangeAt(0);s.deleteContents();let a=document.createTextNode(e.emoji);s.insertNode(a),s.setStartAfter(a),s.collapse(!0),r.removeAllRanges(),r.addRange(s),this.#u=s.cloneRange()}else if(r){let s=document.createRange();s.selectNodeContents(t),s.collapse(!1);let a=document.createTextNode(e.emoji);s.insertNode(a),s.setStartAfter(a),s.collapse(!0),r.removeAllRanges(),r.addRange(s)}}}}#x(){let e=this.getAttribute("for");if(!e)return;let o=document.getElementById(e);o&&o.focus()}#w(){try{return JSON.parse(localStorage.getItem(v)||"[]")}catch{return[]}}#T(e){let o=parseInt(this.getAttribute("recent-limit")??"24",10)||24,t=this.#w();t=t.filter(r=>r!==e),t.unshift(e),t.length>o&&(t.length=o);try{localStorage.setItem(v,JSON.stringify(t))}catch{}}open(){this.#a||(this.#b(),this.#a=!0,this.setAttribute("open",""),this.#e?.setAttribute("aria-expanded","true"),this.#s.hidden=!1,this.#o.value="",this.#c="",this.#p(),requestAnimationFrame(()=>{this.#o.focus()}),this.dispatchEvent(new CustomEvent("emoji-picker:open",{bubbles:!0})))}close(){this.#a&&(this.#a=!1,this.removeAttribute("open"),this.#e?.setAttribute("aria-expanded","false"),this.#s.hidden=!0,this.dispatchEvent(new CustomEvent("emoji-picker:close",{bubbles:!0})))}toggle(){this.#a?this.close():this.open()}get isOpen(){return this.#a}};w("emoji-picker",g);export{g as EmojiPicker};
|
|
1
|
+
var E=Object.defineProperty;var S=(i,e)=>()=>(i&&(e=i(i=0)),e);var A=(i,e)=>{for(var o in e)E(i,o,{get:e[o],enumerable:!0})};var b={};A(b,{EMOJI_ALIASES:()=>k,EMOJI_GROUPS:()=>F,EMOJI_GROUP_ICONS:()=>M,EMOJI_GROUP_LABELS:()=>C,EMOJI_MAP:()=>n,getByGroup:()=>T,resolveEmoji:()=>x,searchEmoji:()=>R});function f(i){for(let[e,o,t,r]of i){if(n.has(e))continue;let s={shortcode:e,emoji:o,name:t,keywords:[],group:r};n.set(e,s),m.push(s)}}function x(i){let e=n.get(i);if(e)return e;let o=k.get(i);return o&&n.get(o)||null}function T(i){let e=l.filter(t=>t.group===i),o=m.filter(t=>t.group===i);return o.length>0?e.concat(o):e}function R(i){let e=i.toLowerCase().trim(),o=m.length>0?l.concat(m):l;return e?o.filter(t=>t.shortcode.includes(e)||t.name.toLowerCase().includes(e)||t.keywords&&t.keywords.some(r=>r.includes(e))):o}var l,n,k,F,C,M,m,j=S(()=>{l=[{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"}],n=new Map(l.map(i=>[i.shortcode,i])),k=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"]]),F=["smileys","people","animals","food","travel","activities","objects","symbols","flags"],C={smileys:"Smileys & Emotion",people:"People & Body",animals:"Animals & Nature",food:"Food & Drink",travel:"Travel & Places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"},M={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}"},m=[];globalThis.__vbEmojiRegister=f;globalThis.__vbEmojiExtended&&(f(globalThis.__vbEmojiExtended),delete globalThis.__vbEmojiExtended)});var P=window.matchMedia("(prefers-reduced-motion: reduce)");var y=new Map;function w(i,e,o={}){let t=o.priority??10,r={impl:e,bundle:o.bundle,contract:o.contract,priority:t},s=y.get(i);if(customElements.get(i)){if(!s||s.priority>=t){s&&s.priority===t&&s.impl!==e&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${o.bundle}".`);return}console.warn(`[VB Bundle] Tag <${i}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${o.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=t){s.priority===t&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${s.bundle}". Skipping "${o.bundle}" (first wins at equal priority).`);return}y.set(i,r),customElements.define(i,e)}var c=class extends HTMLElement{#e=[];#o;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let e of this.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,o,t,r){e.addEventListener(o,t,r),this.#e.push(()=>e.removeEventListener(o,t,r))}setup(){}teardown(){}setState(e,o){this.#o||(this.#o=this.attachInternals());let t=this.#o.states;try{o?t.add(e):t.delete(e)}catch{let r=`--${e}`;o?t.add(r):t.delete(r)}}_adoptInternals(e){this.#o||(this.#o=e)}};var h=null;async function B(){return h||(h=await Promise.resolve().then(()=>(j(),b)),h)}var p=8,O=150,v="vb-emoji-recent",g=class extends c{#e;#o;#t;#r;#n;#a=!1;#d=[];#i=-1;#m=null;#c="";#s=null;#y=!1;#h=null;#u=null;setup(){return this.#k(),!0}async#k(){this.#s=await B(),this.#y||(this.#f(),this.#y=!0),this.#e&&this.listen(this.#e,"click",this.#v),this.listen(document,"click",this.#_),this.listen(document,"keydown",this.#E)}teardown(){this.#m&&(clearTimeout(this.#m),this.setState("search-pending",!1))}#f(){this.#e=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button"),this.#e||(this.#e=document.createElement("button"),this.#e.type="button",this.#e.textContent="\u{1F600}",this.#e.setAttribute("data-trigger",""),this.prepend(this.#e)),this.#e.setAttribute("aria-haspopup","dialog"),this.#e.setAttribute("aria-expanded","false"),this.#e.setAttribute("aria-label",this.#e.getAttribute("aria-label")||"Open emoji picker"),this.#b()}#b(){this.#o=document.createElement("div"),this.#o.classList.add("picker"),this.#o.setAttribute("role","dialog"),this.#o.setAttribute("aria-label","Emoji picker"),this.#o.hidden=!0,this.#t=document.createElement("input"),this.#t.type="search",this.#t.placeholder="Search emoji\u2026",this.#t.setAttribute("aria-label","Search emoji"),this.#t.addEventListener("input",this.#S),this.#t.addEventListener("keydown",this.#A),this.#o.appendChild(this.#t),this.#n=document.createElement("nav"),this.#n.classList.add("categories"),this.#n.setAttribute("role","tablist"),this.#n.setAttribute("aria-label","Emoji categories");for(let e of this.#s.EMOJI_GROUPS){let o=document.createElement("button");o.type="button",o.setAttribute("role","tab"),o.setAttribute("aria-selected",e===this.#s.EMOJI_GROUPS[0]?"true":"false"),o.setAttribute("data-group",e),o.setAttribute("aria-label",this.#s.EMOJI_GROUP_LABELS[e]),o.title=this.#s.EMOJI_GROUP_LABELS[e],o.textContent=this.#s.EMOJI_GROUP_ICONS[e],o.addEventListener("click",this.#F),this.#n.appendChild(o)}this.#o.appendChild(this.#n),this.#r=document.createElement("div"),this.#r.classList.add("grid"),this.#r.setAttribute("role","grid"),this.#r.setAttribute("aria-label","Emoji"),this.#r.addEventListener("keydown",this.#C),this.#o.appendChild(this.#r),this.appendChild(this.#o),this.#p()}#p(e=null){this.#r.innerHTML="",this.#d=[],this.#i=-1;let o=this.#w();if(!this.#c&&o.length>0){let r=document.createElement("div");r.classList.add("group-label"),r.textContent="Recently Used",r.setAttribute("data-group-heading","recent"),this.#r.appendChild(r);for(let s of o){let a=this.#s.EMOJI_MAP.get(s);a&&this.#g(a)}}let t=e||null;if(t)if(t.length===0){let r=document.createElement("div");r.classList.add("no-results"),r.textContent="No emoji found",this.#r.appendChild(r)}else for(let r of t)this.#g(r);else for(let r of this.#s.EMOJI_GROUPS){let s=document.createElement("div");s.classList.add("group-label"),s.textContent=this.#s.EMOJI_GROUP_LABELS[r],s.setAttribute("data-group-heading",r),this.#r.appendChild(s);let a=this.#s.getByGroup(r);for(let u of a)this.#g(u)}}#g(e){let o=document.createElement("button");o.type="button",o.setAttribute("role","gridcell"),o.setAttribute("tabindex","-1"),o.setAttribute("data-shortcode",e.shortcode),o.title=`${e.name} :${e.shortcode}:`,o.textContent=e.emoji,o.addEventListener("click",this.#M),this.#r.appendChild(o),this.#d.push(o)}#j(){let e=this.getAttribute("for");if(!e)return;let o=document.getElementById(e);if(o){if(o.tagName==="INPUT"||o.tagName==="TEXTAREA"){let t=o;this.#h={start:t.selectionStart??t.value.length,end:t.selectionEnd??t.value.length},this.#u=null}else if(o.isContentEditable){let t=window.getSelection();t&&t.rangeCount>0&&(this.#u=t.getRangeAt(0).cloneRange()),this.#h=null}}}#v=e=>{e.stopPropagation(),this.toggle()};#_=e=>{this.#a&&!this.contains(e.target)&&this.close()};#E=e=>{e.key==="Escape"&&this.#a&&(e.preventDefault(),this.close(),this.#e?.focus())};#S=()=>{this.#m&&clearTimeout(this.#m),this.setState("search-pending",!0),this.#m=setTimeout(()=>{if(this.setState("search-pending",!1),this.#c=this.#t.value.trim(),this.#c){let e=this.#s.searchEmoji(this.#c);this.#p(e)}else this.#p()},O)};#A=e=>{e.key==="ArrowDown"&&(e.preventDefault(),this.#d.length>0&&this.#l(0))};#F=e=>{let o=e.currentTarget.getAttribute("data-group");for(let r of this.#n.querySelectorAll('[role="tab"]'))r.setAttribute("aria-selected",r===e.currentTarget?"true":"false");this.#c&&(this.#t.value="",this.#c="",this.#p());let t=this.#r.querySelector(`[data-group-heading="${o}"]`);t&&t.scrollIntoView({block:"start",behavior:"smooth"})};#C=e=>{let o=this.#d.length;if(o!==0)switch(e.key){case"ArrowRight":e.preventDefault(),this.#l(this.#i+1);break;case"ArrowLeft":e.preventDefault(),this.#l(this.#i-1);break;case"ArrowDown":e.preventDefault(),this.#l(this.#i+p);break;case"ArrowUp":e.preventDefault(),this.#i<p?(this.#t.focus(),this.#i=-1):this.#l(this.#i-p);break;case"Home":e.preventDefault(),this.#l(0);break;case"End":e.preventDefault(),this.#l(o-1);break;case"Enter":case" ":e.preventDefault(),this.#i>=0&&this.#d[this.#i].click();break;case"Tab":this.close();break}};#M=e=>{let o=e.currentTarget.getAttribute("data-shortcode"),t=this.#s.EMOJI_MAP.get(o);t&&(this.#R(o),this.#x(t),this.dispatchEvent(new CustomEvent("emoji-picker:select",{bubbles:!0,detail:{shortcode:t.shortcode,emoji:t.emoji,name:t.name,keywords:t.keywords}})),this.close(),this.#T())};#l(e){let o=this.#d.length;o!==0&&(e<0&&(e=0),e>=o&&(e=o-1),this.#i=e,this.#d[e].focus())}#x(e){let o=this.getAttribute("for");if(!o)return;let t=document.getElementById(o);if(t){if(t.tagName==="INPUT"||t.tagName==="TEXTAREA"){let r=t,s=this.#h?.start??r.value.length,a=this.#h?.end??s,u=r.value.slice(0,s),_=r.value.slice(a);r.value=u+e.emoji+_;let d=s+e.emoji.length;r.setSelectionRange(d,d),this.#h={start:d,end:d},t.dispatchEvent(new Event("input",{bubbles:!0}))}else if(t.isContentEditable){t.focus();let r=window.getSelection();if(r&&this.#u){r.removeAllRanges(),r.addRange(this.#u);let s=r.getRangeAt(0);s.deleteContents();let a=document.createTextNode(e.emoji);s.insertNode(a),s.setStartAfter(a),s.collapse(!0),r.removeAllRanges(),r.addRange(s),this.#u=s.cloneRange()}else if(r){let s=document.createRange();s.selectNodeContents(t),s.collapse(!1);let a=document.createTextNode(e.emoji);s.insertNode(a),s.setStartAfter(a),s.collapse(!0),r.removeAllRanges(),r.addRange(s)}}}}#T(){let e=this.getAttribute("for");if(!e)return;let o=document.getElementById(e);o&&o.focus()}#w(){try{return JSON.parse(localStorage.getItem(v)||"[]")}catch{return[]}}#R(e){let o=parseInt(this.getAttribute("recent-limit")??"24",10)||24,t=this.#w();t=t.filter(r=>r!==e),t.unshift(e),t.length>o&&(t.length=o);try{localStorage.setItem(v,JSON.stringify(t))}catch{}}open(){this.#a||(this.#j(),this.#a=!0,this.setAttribute("open",""),this.#e?.setAttribute("aria-expanded","true"),this.#o.hidden=!1,this.#t.value="",this.#c="",this.#p(),requestAnimationFrame(()=>{this.#t.focus()}),this.dispatchEvent(new CustomEvent("emoji-picker:open",{bubbles:!0})))}close(){this.#a&&(this.#a=!1,this.removeAttribute("open"),this.#e?.setAttribute("aria-expanded","false"),this.#o.hidden=!0,this.dispatchEvent(new CustomEvent("emoji-picker:close",{bubbles:!0})))}toggle(){this.#a?this.close():this.open()}get isOpen(){return this.#a}};w("emoji-picker",g);export{g as EmojiPicker};
|
|
2
2
|
//# sourceMappingURL=emoji-picker.js.map
|