@webority/ui-elements 0.54.0 → 0.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/WuiAutocomplete-CE7wT-Vc.js +13 -0
- package/dist/{WuiCommandPalette-B5OB6lsf.js → WuiCommandPalette-CcmFOWNc.js} +1 -1
- package/dist/{WuiCountrySelect-GJrl6sUP.js → WuiCountrySelect-D92rrSvW.js} +1 -1
- package/dist/{WuiDatePicker-CI7wLkmd.js → WuiDatePicker-_BzQ2m1e.js} +1 -1
- package/dist/{WuiDateRange-B5sO9usZ.js → WuiDateRange-CrVodISl.js} +1 -1
- package/dist/WuiMultiSelect-WUNCdkzW.js +25 -0
- package/dist/{WuiPhone-CSUVhYSb.js → WuiPhone-DtuXp6o2.js} +7 -7
- package/dist/{WuiSelect-DcbtqI9s.js → WuiSelect-CT8tgsxL.js} +1 -1
- package/dist/WuiTour-DW3kPaR9.js +488 -0
- package/dist/elements/autocomplete.js +1 -1
- package/dist/elements/command-palette.js +1 -1
- package/dist/elements/country-select.js +1 -1
- package/dist/elements/date-range.js +1 -1
- package/dist/elements/datepicker.js +1 -1
- package/dist/elements/multiselect.js +1 -1
- package/dist/elements/phone.js +1 -1
- package/dist/elements/select.js +1 -1
- package/dist/elements/tour.js +1 -1
- package/dist/helpers.js +1 -1
- package/dist/{optionLabel-DOZb8ERB.js → optionLabel-BBaur8Bs.js} +1 -1
- package/dist/types/chatClient.d.ts +4 -4
- package/dist/ui-chat-core.js +1 -1
- package/dist/ui-chat.global.js +1 -1
- package/dist/ui-chat.js +1 -1
- package/dist/ui-elements.global.js +401 -82
- package/dist/ui-elements.js +1 -1
- package/dist/ui-tour.global.js +1 -1
- package/package.json +1 -1
- package/dist/WuiAutocomplete-DvXHihD6.js +0 -13
- package/dist/WuiMultiSelect-BCZE2VHM.js +0 -25
- package/dist/WuiTour-CUWrh5MD.js +0 -169
package/dist/WuiTour-CUWrh5MD.js
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./elementBase-BlsR4tqa.js";import{n as t,r as n,t as r}from"./anchorOverlay-WcDeH46q.js";import{t as i}from"./tourOpenMark-nPeAJFSo.js";var a=`
|
|
2
|
-
:host {
|
|
3
|
-
all: initial;
|
|
4
|
-
${Object.entries({"--wui-z-tour":`1550`,"--wui-radius-sm":`8px`,"--wui-radius-lg":`14px`,"--wui-shadow-overlay":`0 8px 28px -6px rgba(7, 20, 55, 0.14)`,"--color-primary":`#4F46E5`,"--color-primary-hover":`#4338CA`,"--color-primary-ink":`#4F46E5`,"--color-focus-ring":`#4F46E5`,"--wui-focus-ring-width":`2px`,"--wui-focus-ring-offset":`2px`,"--color-primary-text":`#FFFFFF`,"--color-scrim-strong":`color-mix(in srgb, #071437 62%, transparent)`,"--color-surface":`#FFFFFF`,"--color-text":`#071437`,"--color-text-muted":`#4B5675`,"--color-border":`#EBEDF3`}).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
5
|
-
`)}
|
|
6
|
-
}
|
|
7
|
-
*, *::before, *::after {
|
|
8
|
-
box-sizing: border-box;
|
|
9
|
-
}
|
|
10
|
-
[hidden] {
|
|
11
|
-
display: none !important;
|
|
12
|
-
}
|
|
13
|
-
.visually-hidden {
|
|
14
|
-
position: absolute !important;
|
|
15
|
-
width: 1px !important;
|
|
16
|
-
height: 1px !important;
|
|
17
|
-
padding: 0 !important;
|
|
18
|
-
margin: -1px !important;
|
|
19
|
-
overflow: hidden !important;
|
|
20
|
-
clip: rect(0, 0, 0, 0) !important;
|
|
21
|
-
white-space: nowrap !important;
|
|
22
|
-
border: 0 !important;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.btn {
|
|
26
|
-
display: inline-block;
|
|
27
|
-
margin: 0;
|
|
28
|
-
padding: 0.25rem 0.5rem;
|
|
29
|
-
border: 1px solid transparent;
|
|
30
|
-
border-radius: 0.375rem;
|
|
31
|
-
background: transparent;
|
|
32
|
-
font: inherit;
|
|
33
|
-
font-size: 0.875rem;
|
|
34
|
-
font-weight: 500;
|
|
35
|
-
line-height: 1.5;
|
|
36
|
-
text-align: center;
|
|
37
|
-
text-decoration: none;
|
|
38
|
-
white-space: nowrap;
|
|
39
|
-
cursor: pointer;
|
|
40
|
-
}
|
|
41
|
-
.btn:focus-visible {
|
|
42
|
-
outline: 2px solid var(--color-primary);
|
|
43
|
-
outline-offset: 2px;
|
|
44
|
-
}
|
|
45
|
-
.btn-primary {
|
|
46
|
-
background: var(--color-primary);
|
|
47
|
-
border-color: var(--color-primary);
|
|
48
|
-
color: var(--color-primary-text);
|
|
49
|
-
}
|
|
50
|
-
.btn-primary:hover {
|
|
51
|
-
background: var(--color-primary-hover);
|
|
52
|
-
border-color: var(--color-primary-hover);
|
|
53
|
-
}
|
|
54
|
-
.btn-outline-secondary {
|
|
55
|
-
border-color: var(--color-text-muted);
|
|
56
|
-
color: var(--color-text-muted);
|
|
57
|
-
}
|
|
58
|
-
.btn-outline-secondary:hover {
|
|
59
|
-
background: var(--color-bg-muted);
|
|
60
|
-
color: var(--color-text);
|
|
61
|
-
}
|
|
62
|
-
.btn-link {
|
|
63
|
-
font-weight: 400;
|
|
64
|
-
color: var(--color-primary-ink);
|
|
65
|
-
text-decoration: underline;
|
|
66
|
-
}
|
|
67
|
-
.btn-link:hover {
|
|
68
|
-
color: var(--color-primary-hover);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.wui-tour-layer {
|
|
72
|
-
position: fixed;
|
|
73
|
-
inset: 0;
|
|
74
|
-
z-index: var(--wui-z-tour);
|
|
75
|
-
pointer-events: none;
|
|
76
|
-
font-family: "Webority Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
77
|
-
font-size: 16px;
|
|
78
|
-
font-weight: 400;
|
|
79
|
-
line-height: 1.5;
|
|
80
|
-
color: var(--color-text);
|
|
81
|
-
text-align: start;
|
|
82
|
-
}
|
|
83
|
-
.wui-tour-spot {
|
|
84
|
-
position: fixed;
|
|
85
|
-
border-radius: var(--wui-radius-sm);
|
|
86
|
-
box-shadow:
|
|
87
|
-
0 0 0 2px var(--color-primary),
|
|
88
|
-
0 0 0 100vmax var(--color-scrim-strong);
|
|
89
|
-
pointer-events: none;
|
|
90
|
-
}
|
|
91
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
92
|
-
.wui-tour-spot {
|
|
93
|
-
transition:
|
|
94
|
-
top 160ms ease,
|
|
95
|
-
left 160ms ease,
|
|
96
|
-
width 160ms ease,
|
|
97
|
-
height 160ms ease;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
.wui-tour-card {
|
|
101
|
-
display: flex;
|
|
102
|
-
flex-direction: column;
|
|
103
|
-
gap: 8px;
|
|
104
|
-
width: min(360px, 100vw - 16px);
|
|
105
|
-
padding: 16px;
|
|
106
|
-
overflow-y: auto;
|
|
107
|
-
background: var(--color-surface);
|
|
108
|
-
color: var(--color-text);
|
|
109
|
-
border: 1px solid var(--color-border);
|
|
110
|
-
border-radius: var(--wui-radius-lg);
|
|
111
|
-
corner-shape: squircle;
|
|
112
|
-
box-shadow: var(--wui-shadow-overlay);
|
|
113
|
-
pointer-events: auto;
|
|
114
|
-
}
|
|
115
|
-
.wui-tour-card:focus {
|
|
116
|
-
outline: none;
|
|
117
|
-
}
|
|
118
|
-
.wui-tour-card:focus-visible {
|
|
119
|
-
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
120
|
-
outline-offset: var(--wui-focus-ring-offset);
|
|
121
|
-
}
|
|
122
|
-
.wui-tour-position {
|
|
123
|
-
margin: 0;
|
|
124
|
-
font-size: 12px;
|
|
125
|
-
color: var(--color-text-muted);
|
|
126
|
-
}
|
|
127
|
-
.wui-tour-title {
|
|
128
|
-
margin: 0;
|
|
129
|
-
font-size: 16px;
|
|
130
|
-
font-weight: 600;
|
|
131
|
-
}
|
|
132
|
-
.wui-tour-text {
|
|
133
|
-
margin: 0;
|
|
134
|
-
font-size: 14px;
|
|
135
|
-
color: var(--color-text-muted);
|
|
136
|
-
}
|
|
137
|
-
.wui-tour-actions {
|
|
138
|
-
display: flex;
|
|
139
|
-
align-items: center;
|
|
140
|
-
justify-content: space-between;
|
|
141
|
-
gap: 8px;
|
|
142
|
-
margin-top: 4px;
|
|
143
|
-
}
|
|
144
|
-
.wui-tour-nav {
|
|
145
|
-
display: flex;
|
|
146
|
-
gap: 8px;
|
|
147
|
-
}
|
|
148
|
-
.wui-tour-skip {
|
|
149
|
-
color: var(--color-text-muted);
|
|
150
|
-
}
|
|
151
|
-
.wui-tour-back,
|
|
152
|
-
.wui-tour-next {
|
|
153
|
-
min-width: 64px;
|
|
154
|
-
}
|
|
155
|
-
`,o=`wui-tour-step`,s=`wui-tour-host`,c=`wui-tour-seen:`,l={back:`Back`,next:`Next`,skip:`Skip`,done:`Done`},u={back:`back-label`,next:`next-label`,skip:`skip-label`,done:`done-label`},d=4,f=4,p=0;function m(e=c,t=globalThis.localStorage){return{isSeen:async n=>t.getItem(e+n)===`1`,markSeen:async n=>{t.setItem(e+n,`1`)}}}var h=e=>!e?.isConnected||getComputedStyle(e).visibility===`hidden`?!1:e.getClientRects().length>0,g=e=>!!e&&(e.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName)),_=()=>{let e=document.activeElement;for(;e?.shadowRoot?.activeElement;)e=e.shadowRoot.activeElement;return e},v=null;function y(e){if(`adoptedStyleSheets`in e&&typeof CSSStyleSheet==`function`&&`replaceSync`in CSSStyleSheet.prototype){v||(v=new CSSStyleSheet,v.replaceSync(a)),e.adoptedStyleSheets=[v];return}let t=document.createElement(`style`);t.textContent=a,e.appendChild(t)}var b=class extends e{static get observedAttributes(){return[`open`]}constructor(){super(),this.seenStore=null,this.onBeforeStep=null,this._run=0,this._running=!1,this._layer=null,this._outer=null,this._shadow=null}connectedCallback(){this.hasAttribute(`open`)&&this.start()}disconnectedCallback(){this.stop()}attributeChangedCallback(e,t,n){e!==`open`||!this.isConnected||(n===null?this.stop():this.start())}get tourId(){return this.getAttribute(`tour-id`)||``}set tourId(e){e==null||e===``?this.removeAttribute(`tour-id`):this.setAttribute(`tour-id`,String(e))}get isolated(){return this.hasAttribute(`isolated`)}set isolated(e){this.toggleAttribute(`isolated`,e===!0||e===``||e===`true`)}_stepList(){return Array.from(this.querySelectorAll(`:scope > ${o}`),e=>({target:e.getAttribute(`target`)||``,title:e.getAttribute(`title`)||void 0,description:e.textContent.trim()}))}_store(){return this.seenStore?this.seenStore:this.getAttribute(`seen-store`)===`local`?m():globalThis.window?.WUI?.tour?.seenStore||null}_label(e){return this.getAttribute(u[e])||l[e]}async start(){if(this._running)return;this._running=!0;let e=++this._run;this.hasAttribute(`open`)||this.setAttribute(`open`,``);try{await this._start(e)}catch(t){throw e===this._run&&(this._running=!1),t}}async _start(e){this._steps=this._stepList();let t=this._store();if(t&&!this.tourId)throw Error(`<wui-tour> needs a tour-id to use a seen store.`);if(t&&await t.isSeen(this.tourId)){e===this._run&&this._finish(`alreadySeen`);return}this._returnFocus=document.activeElement;let n=await this._locate(0,1,e);if(e===this._run){if(!n){this._finish(`noTargets`);return}this._firstIndex=n.index,this._build(),this._show(n)}}next(){return this._move(1)}back(){return!this._current||this._current.index<=this._firstIndex?Promise.resolve():this._move(-1)}async goTo(e){if(this._current){if(!Number.isInteger(e)||e<0||e>=this._steps.length)throw RangeError(`<wui-tour> has no step ${e}; it has ${this._steps.length}.`);await this._go(e,1)}}stop(){this._running&&(this._run++,this._teardown(),this._running=!1,this.hasAttribute(`open`)&&this.removeAttribute(`open`))}async _locate(e,t,n){let r=this._steps;for(let i=e;i>=0&&i<r.length;i+=t){let e=r[i];if(await this._beforeStep(e,i),n!==this._run)return null;if(!e.target)return{index:i,target:null};let t=document.querySelector(e.target);if(h(t))return{index:i,target:t}}return null}async _beforeStep(e,t){let n=[];this.dispatchEvent(new CustomEvent(`wui-tour:beforestep`,{bubbles:!0,detail:{step:e,index:t,wait:e=>n.push(e)}})),await Promise.all(n),typeof this.onBeforeStep==`function`&&await this.onBeforeStep(e,t)}_build(){let e=`wui-tour-${++p}`,n=document.createElement(`div`);n.className=`wui-tour-layer`,n.innerHTML=`
|
|
156
|
-
<div class="wui-tour-spot" aria-hidden="true"></div>
|
|
157
|
-
<div class="wui-tour-card" role="dialog" aria-modal="true" tabindex="-1" aria-labelledby="${e}-title" aria-describedby="${e}-text">
|
|
158
|
-
<p class="wui-tour-position"></p>
|
|
159
|
-
<h2 class="wui-tour-title" id="${e}-title"></h2>
|
|
160
|
-
<p class="wui-tour-text" id="${e}-text"></p>
|
|
161
|
-
<div class="wui-tour-actions">
|
|
162
|
-
<button type="button" class="btn btn-sm btn-link wui-tour-skip"></button>
|
|
163
|
-
<div class="wui-tour-nav">
|
|
164
|
-
<button type="button" class="btn btn-sm btn-outline-secondary wui-tour-back"></button>
|
|
165
|
-
<button type="button" class="btn btn-sm btn-primary wui-tour-next"></button>
|
|
166
|
-
</div>
|
|
167
|
-
</div>
|
|
168
|
-
</div>
|
|
169
|
-
<div class="visually-hidden" role="status" aria-live="polite"></div>`;let r=n;this._shadow=null,this.isolated&&(r=document.createElement(s),this._shadow=r.attachShadow({mode:`open`}),y(this._shadow),this._shadow.appendChild(n)),document.body.appendChild(r),document.documentElement.setAttribute(i,``),this._outer=r,this._layer=n,this._spot=n.querySelector(`.wui-tour-spot`),this._card=n.querySelector(`.wui-tour-card`),this._live=n.querySelector(`[role=status]`),this._card.querySelector(`.wui-tour-skip`).addEventListener(`click`,()=>this._close(`skipped`)),this._card.querySelector(`.wui-tour-back`).addEventListener(`click`,()=>this._move(-1)),this._card.querySelector(`.wui-tour-next`).addEventListener(`click`,()=>this._move(1)),this._shadow&&this._card.removeAttribute(`aria-modal`),this._onKey=e=>this._key(e),this._onFocusIn=e=>{this._layer&&!this._layer.contains(e.target)&&this._card.focus()},document.addEventListener(`keydown`,this._onKey,!0),this._shadow||document.addEventListener(`focusin`,this._onFocusIn),t(r,()=>this._place())}_active(){return this._shadow?this._shadow.activeElement:document.activeElement}_show(e){this._current=e;let{index:t,target:n}=e,r=this._steps[t],i=this._steps,a=t===i.length-1,o=this._card;o.querySelector(`.wui-tour-position`).textContent=`Step ${t+1} of ${i.length}`;let s=o.querySelector(`.wui-tour-title`);s.textContent=r.title||``,s.hidden=!r.title,o.querySelector(`.wui-tour-text`).textContent=r.description||``,o.querySelector(`.wui-tour-skip`).textContent=this._label(`skip`),o.querySelector(`.wui-tour-back`).textContent=this._label(`back`),o.querySelector(`.wui-tour-back`).hidden=t<=this._firstIndex,o.querySelector(`.wui-tour-next`).textContent=this._label(a?`done`:`next`),this._live.textContent=[`Step ${t+1} of ${i.length}`,r.title,r.description].filter(Boolean).join(`. `),this._scrollTo(n),this._place();let c=this._active();(o.contains(c)?!c.hidden:this._shadow!==null&&g(_()))||o.focus(),this.dispatchEvent(new CustomEvent(`wui-tour:step`,{bubbles:!0,detail:{step:r,index:t}}))}_scrollTo(e){if(!e?.scrollIntoView)return;this._card.style.maxHeight=``;let t=this._card.offsetHeight+f*2;if(e.getBoundingClientRect().height+d*2+t*2<=window.innerHeight){e.scrollIntoView({block:`center`,inline:`nearest`});return}let n=e.style.scrollMarginTop;e.style.scrollMarginTop=`${t+d}px`,e.scrollIntoView({block:`start`,inline:`nearest`}),e.style.scrollMarginTop=n}_place(){if(!this._current||!this._layer)return;let e=this._spot.style,t=this._card.style;if(!this._current.target){e.top=`50%`,e.left=`50%`,e.width=`0px`,e.height=`0px`,e.boxShadow=`0 0 0 100vmax var(--color-scrim-strong)`,this._card.classList.remove(`drop-up`),t.position=`fixed`,t.top=`50%`,t.left=`50%`,t.transform=`translate(-50%, -50%)`,t.maxHeight=`calc(100vh - 16px)`;return}e.boxShadow=``,t.transform=``;let n=this._current.target.getBoundingClientRect(),i={top:n.top-d,left:n.left-d,width:n.width+d*2,height:n.height+d*2,bottom:n.bottom+d,right:n.right+d};e.top=`${i.top}px`,e.left=`${i.left}px`,e.width=`${i.width}px`,e.height=`${i.height}px`;let a=this._card.scrollTop;t.maxHeight=``;let o=this._card.offsetHeight,s=window.innerHeight-f*2,c=Math.max(i.top,window.innerHeight-i.bottom)-f*2,l=Math.min(n.bottom,window.innerHeight)-Math.max(n.top,0);o<=c+1||l<Math.min(o,s)+f*2?r({getBoundingClientRect:()=>i},this._card,{clampHeight:!0}):this._placeOver(n,o,s),this._card.scrollTop=a}_placeOver(e,t,n){let r=this._card;r.classList.remove(`drop-up`),r.style.position=`fixed`,r.style.maxHeight=t>n?`${Math.max(n,0)}px`:``;let i=Math.min(e.bottom,window.innerHeight)-f;r.style.top=`${Math.max(f,i-Math.min(t,n))}px`;let a=Math.min(e.left+f,window.innerWidth-r.offsetWidth-f);r.style.left=`${Math.max(f,a)}px`}async _move(e){this._current&&await this._go(this._current.index+e,e)}async _go(e,t){if(!this._current||this._moving)return;this._moving=!0;let n=this._run;try{let r=await this._locate(e,t,n);if(n!==this._run)return;r?this._show(r):t>0&&await this._close(`finished`)}finally{this._moving=!1}}_key(e){if(!(!this._layer||e.altKey||e.ctrlKey||e.metaKey)){if(e.key===`Escape`)e.preventDefault(),e.stopPropagation(),this._close(`skipped`);else if(e.key===`ArrowRight`||e.key===`ArrowLeft`){if(this._shadow&&g(e.composedPath?.()[0]??e.target))return;e.preventDefault(),e.key===`ArrowRight`?this._move(1):this._current.index>this._firstIndex&&this._move(-1)}else if(e.key===`Tab`&&!this._shadow){let t=Array.from(this._card.querySelectorAll(`button`)).filter(e=>!e.hidden),n=t[0],r=t[t.length-1],i=this._active();!this._card.contains(i)||e.shiftKey&&(i===n||i===this._card)?(e.preventDefault(),(e.shiftKey?r:n).focus()):!e.shiftKey&&i===r&&(e.preventDefault(),n.focus())}}}_teardown(){if(!this._layer)return;document.removeEventListener(`keydown`,this._onKey,!0),document.removeEventListener(`focusin`,this._onFocusIn);let e=!this._shadow||this._shadow.activeElement!==null||!document.activeElement||document.activeElement===document.body;n(this._outer),this._outer.remove(),document.documentElement.removeAttribute(i),this._outer=null,this._shadow=null,this._layer=null,this._current=null;let t=this._returnFocus;this._returnFocus=null,e&&t?.isConnected&&t.focus?.()}async _close(e){let t=this._run;this._teardown();let n=this._store();try{n&&t===this._run&&await n.markSeen(this.tourId)}finally{this._finish(e)}}_finish(e){this._run++,this._running=!1,this.hasAttribute(`open`)&&this.removeAttribute(`open`),this.dispatchEvent(new CustomEvent(`wui-tour:close`,{bubbles:!0,detail:{reason:e}}))}};export{m as n,b as t};
|