@editora/ui-core 0.1.21 → 0.1.22
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/accordion.cjs.js +3 -3
- package/dist/accordion.esm.js +3 -3
- package/dist/alert-dialog.cjs.js +32 -32
- package/dist/alert-dialog.esm.js +95 -75
- package/dist/alert.cjs.js +6 -6
- package/dist/alert.esm.js +6 -6
- package/dist/animated-list.cjs.js +4 -4
- package/dist/animated-list.esm.js +4 -4
- package/dist/animated-text.cjs.js +4 -4
- package/dist/animated-text.esm.js +4 -4
- package/dist/app-header.cjs.js +3 -3
- package/dist/app-header.esm.js +3 -3
- package/dist/aspect-ratio.cjs.js +3 -3
- package/dist/aspect-ratio.esm.js +3 -3
- package/dist/avatar.cjs.js +14 -14
- package/dist/avatar.esm.js +31 -29
- package/dist/badge.cjs.js +4 -4
- package/dist/badge.esm.js +4 -4
- package/dist/block-controls.cjs.js +4 -4
- package/dist/block-controls.esm.js +4 -4
- package/dist/box.cjs.js +2 -2
- package/dist/box.esm.js +2 -2
- package/dist/breadcrumb.cjs.js +5 -5
- package/dist/breadcrumb.esm.js +5 -5
- package/dist/button.cjs.js +1 -1
- package/dist/button.esm.js +1 -1
- package/dist/{calendar-DLY4acgn.mjs → calendar-DbxYRdlv.mjs} +227 -183
- package/dist/{calendar-Dkof-FTK.js → calendar-Qa-cFOp3.js} +74 -35
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.esm.js +1 -1
- package/dist/card.cjs.js +8 -8
- package/dist/card.esm.js +63 -20
- package/dist/chart.cjs.js +4 -4
- package/dist/chart.esm.js +6 -6
- package/dist/checkbox.cjs.js +2 -2
- package/dist/checkbox.esm.js +2 -2
- package/dist/collapsible.cjs.js +7 -7
- package/dist/collapsible.esm.js +7 -7
- package/dist/color-picker.cjs.js +30 -10
- package/dist/color-picker.esm.js +82 -60
- package/dist/combobox.cjs.js +29 -27
- package/dist/combobox.esm.js +51 -45
- package/dist/command.cjs.js +2 -2
- package/dist/command.esm.js +2 -2
- package/dist/components/ui-alert-dialog.d.ts +1 -0
- package/dist/components/ui-alert-dialog.d.ts.map +1 -1
- package/dist/components/ui-avatar.d.ts +1 -0
- package/dist/components/ui-avatar.d.ts.map +1 -1
- package/dist/components/ui-button.d.ts +1 -0
- package/dist/components/ui-button.d.ts.map +1 -1
- package/dist/components/ui-calendar.d.ts.map +1 -1
- package/dist/components/ui-card.d.ts +3 -0
- package/dist/components/ui-card.d.ts.map +1 -1
- package/dist/components/ui-checkbox.d.ts.map +1 -1
- package/dist/components/ui-color-picker.d.ts.map +1 -1
- package/dist/components/ui-combobox.d.ts.map +1 -1
- package/dist/components/ui-data-table.d.ts.map +1 -1
- package/dist/components/ui-date-field.d.ts.map +1 -1
- package/dist/components/ui-date-picker.d.ts.map +1 -1
- package/dist/components/ui-date-range-picker.d.ts.map +1 -1
- package/dist/components/ui-date-range-time-picker.d.ts.map +1 -1
- package/dist/components/ui-date-time-picker.d.ts.map +1 -1
- package/dist/components/ui-dock.d.ts +1 -0
- package/dist/components/ui-dock.d.ts.map +1 -1
- package/dist/components/ui-drawer.d.ts.map +1 -1
- package/dist/components/ui-dropdown.d.ts.map +1 -1
- package/dist/components/ui-field.d.ts.map +1 -1
- package/dist/components/ui-file-upload.d.ts.map +1 -1
- package/dist/components/ui-gantt.d.ts.map +1 -1
- package/dist/components/ui-input.d.ts.map +1 -1
- package/dist/components/ui-menu.d.ts.map +1 -1
- package/dist/components/ui-multi-select.d.ts.map +1 -1
- package/dist/components/ui-number-field.d.ts.map +1 -1
- package/dist/components/ui-password-field.d.ts.map +1 -1
- package/dist/components/ui-pin-input.d.ts +1 -0
- package/dist/components/ui-pin-input.d.ts.map +1 -1
- package/dist/components/ui-placement-grid.d.ts.map +1 -1
- package/dist/components/ui-progress.d.ts.map +1 -1
- package/dist/components/ui-radio.d.ts.map +1 -1
- package/dist/components/ui-rating.d.ts +1 -0
- package/dist/components/ui-rating.d.ts.map +1 -1
- package/dist/components/ui-select.d.ts.map +1 -1
- package/dist/components/ui-sortable.d.ts.map +1 -1
- package/dist/components/ui-switch.d.ts.map +1 -1
- package/dist/components/ui-table.d.ts.map +1 -1
- package/dist/components/ui-tabs.d.ts +1 -0
- package/dist/components/ui-tabs.d.ts.map +1 -1
- package/dist/components/ui-tags-input.d.ts +1 -0
- package/dist/components/ui-tags-input.d.ts.map +1 -1
- package/dist/components/ui-textarea.d.ts.map +1 -1
- package/dist/components/ui-time-field.d.ts.map +1 -1
- package/dist/components/ui-toggle-group.d.ts.map +1 -1
- package/dist/components/ui-toggle.d.ts.map +1 -1
- package/dist/components/ui-tree.d.ts.map +1 -1
- package/dist/components/ui-wizard.d.ts.map +1 -1
- package/dist/context-menu.cjs.js +3 -3
- package/dist/context-menu.esm.js +4 -4
- package/dist/control-name-BmoI1m3a.js +1 -0
- package/dist/control-name-Bpj7F34X.mjs +48 -0
- package/dist/data-table.cjs.js +5 -2
- package/dist/data-table.esm.js +145 -142
- package/dist/date-field.cjs.js +5 -5
- package/dist/date-field.esm.js +34 -31
- package/dist/date-picker.cjs.js +16 -16
- package/dist/date-picker.esm.js +48 -44
- package/dist/date-range-picker.cjs.js +5 -5
- package/dist/date-range-picker.esm.js +120 -118
- package/dist/date-range-time-picker.cjs.js +22 -22
- package/dist/date-range-time-picker.esm.js +88 -84
- package/dist/date-time-picker.cjs.js +23 -23
- package/dist/date-time-picker.esm.js +102 -98
- package/dist/{date-time-utils-Dmost5Ee.js → date-time-utils-BzfTpeU-.js} +1 -1
- package/dist/{date-time-utils-y1N2gvG2.mjs → date-time-utils-Cps2aSu2.mjs} +1 -1
- package/dist/description.cjs.js +3 -3
- package/dist/description.esm.js +3 -3
- package/dist/dialog.cjs.js +2 -2
- package/dist/dialog.esm.js +2 -2
- package/dist/dock.cjs.js +12 -12
- package/dist/dock.esm.js +72 -74
- package/dist/drawer.cjs.js +19 -19
- package/dist/drawer.esm.js +58 -58
- package/dist/dropdown.cjs.js +13 -13
- package/dist/dropdown.esm.js +49 -48
- package/dist/empty-state.cjs.js +3 -3
- package/dist/empty-state.esm.js +3 -3
- package/dist/field-error.cjs.js +1 -1
- package/dist/field-error.esm.js +1 -1
- package/dist/field.cjs.js +12 -12
- package/dist/field.esm.js +84 -75
- package/dist/fieldset.cjs.js +4 -4
- package/dist/fieldset.esm.js +4 -4
- package/dist/file-upload.cjs.js +3 -3
- package/dist/file-upload.esm.js +5 -3
- package/dist/floating-toolbar.cjs.js +8 -8
- package/dist/floating-toolbar.esm.js +9 -9
- package/dist/form.cjs.js +11 -11
- package/dist/form.esm.js +11 -11
- package/dist/gantt.cjs.js +43 -32
- package/dist/gantt.esm.js +99 -88
- package/dist/icon-cloud.cjs.js +3 -3
- package/dist/icon-cloud.esm.js +3 -3
- package/dist/icon.cjs.js +1 -1
- package/dist/icon.esm.js +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +121 -118
- package/dist/inline-edit.cjs.js +1 -1
- package/dist/inline-edit.esm.js +1 -1
- package/dist/input.cjs.js +14 -14
- package/dist/input.esm.js +39 -32
- package/dist/label.cjs.js +3 -3
- package/dist/label.esm.js +3 -3
- package/dist/{listbox-B6QgECax.js → listbox-CTpRpuF7.js} +1 -1
- package/dist/{listbox-DJamVeFj.mjs → listbox-hMVOhKHC.mjs} +1 -1
- package/dist/listbox.cjs.js +1 -1
- package/dist/listbox.esm.js +1 -1
- package/dist/marquee.cjs.js +3 -3
- package/dist/marquee.esm.js +3 -3
- package/dist/{menu-item-styles-CbNUEwP2.js → menu-item-styles-B4onAr4C.js} +3 -3
- package/dist/{menu-item-styles-CZiPwPwl.mjs → menu-item-styles-IGSFLAHu.mjs} +3 -3
- package/dist/menu.cjs.js +7 -7
- package/dist/menu.esm.js +29 -28
- package/dist/menubar.cjs.js +1 -1
- package/dist/menubar.esm.js +2 -2
- package/dist/meter.cjs.js +1 -1
- package/dist/meter.esm.js +1 -1
- package/dist/multi-select.cjs.js +17 -17
- package/dist/multi-select.esm.js +51 -43
- package/dist/navigation-menu.cjs.js +1 -1
- package/dist/navigation-menu.esm.js +1 -1
- package/dist/number-field.cjs.js +11 -13
- package/dist/number-field.esm.js +29 -27
- package/dist/number-ticker.cjs.js +4 -4
- package/dist/number-ticker.esm.js +4 -4
- package/dist/odometer.cjs.js +2 -2
- package/dist/odometer.esm.js +2 -2
- package/dist/orbiter.cjs.js +3 -3
- package/dist/orbiter.esm.js +3 -3
- package/dist/pagination.cjs.js +1 -1
- package/dist/pagination.esm.js +1 -1
- package/dist/password-field.cjs.js +23 -23
- package/dist/password-field.esm.js +48 -47
- package/dist/pin-input.cjs.js +8 -6
- package/dist/pin-input.esm.js +21 -15
- package/dist/placement-grid.cjs.js +4 -4
- package/dist/placement-grid.esm.js +58 -58
- package/dist/plugin-panel.cjs.js +1 -1
- package/dist/plugin-panel.esm.js +1 -1
- package/dist/popover.cjs.js +5 -5
- package/dist/popover.esm.js +4 -4
- package/dist/primitives/control-name.d.ts +30 -0
- package/dist/primitives/control-name.d.ts.map +1 -0
- package/dist/primitives/trigger.d.ts +2 -0
- package/dist/primitives/trigger.d.ts.map +1 -0
- package/dist/progress.cjs.js +4 -4
- package/dist/progress.esm.js +20 -18
- package/dist/quick-actions.cjs.js +3 -3
- package/dist/quick-actions.esm.js +3 -3
- package/dist/radio-group.cjs.js +1 -1
- package/dist/radio-group.esm.js +1 -1
- package/dist/radio.cjs.js +2 -2
- package/dist/radio.esm.js +2 -2
- package/dist/rating.cjs.js +17 -16
- package/dist/rating.esm.js +91 -92
- package/dist/{runtime-D1gFh1fS.mjs → runtime-CFnK53iC.mjs} +133 -94
- package/dist/runtime-DwE-tizc.js +1 -0
- package/dist/runtime.cjs.js +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.esm.js +29 -26
- package/dist/select.cjs.js +20 -19
- package/dist/select.esm.js +36 -32
- package/dist/selection-popup.cjs.js +2 -2
- package/dist/selection-popup.esm.js +2 -2
- package/dist/separator.cjs.js +7 -7
- package/dist/separator.esm.js +7 -7
- package/dist/sidebar.cjs.js +7 -7
- package/dist/sidebar.esm.js +7 -7
- package/dist/skeleton.cjs.js +7 -7
- package/dist/skeleton.esm.js +7 -7
- package/dist/slider.cjs.js +3 -3
- package/dist/slider.esm.js +3 -3
- package/dist/slot.cjs.js +3 -3
- package/dist/slot.esm.js +3 -3
- package/dist/sortable.cjs.js +41 -42
- package/dist/sortable.esm.js +98 -99
- package/dist/spinning-text.cjs.js +3 -3
- package/dist/spinning-text.esm.js +3 -3
- package/dist/split-button.cjs.js +1 -1
- package/dist/split-button.esm.js +1 -1
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.esm.js +1 -1
- package/dist/switch.cjs.js +10 -12
- package/dist/switch.esm.js +10 -12
- package/dist/table.cjs.js +9 -6
- package/dist/table.esm.js +46 -43
- package/dist/tabs.cjs.js +20 -21
- package/dist/tabs.esm.js +70 -66
- package/dist/tags-input.cjs.js +9 -9
- package/dist/tags-input.esm.js +32 -25
- package/dist/textarea.cjs.js +10 -10
- package/dist/textarea.esm.js +30 -21
- package/dist/theme.d.ts +18 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/time-field.cjs.js +5 -5
- package/dist/time-field.esm.js +21 -18
- package/dist/time-picker.cjs.js +4 -4
- package/dist/time-picker.esm.js +5 -5
- package/dist/timeline.cjs.js +2 -2
- package/dist/timeline.esm.js +4 -4
- package/dist/toast.cjs.js +6 -6
- package/dist/toast.esm.js +13 -13
- package/dist/toggle-group.cjs.js +5 -6
- package/dist/toggle-group.esm.js +63 -60
- package/dist/toggle.cjs.js +18 -18
- package/dist/toggle.esm.js +32 -31
- package/dist/tooltip.cjs.js +4 -4
- package/dist/tooltip.esm.js +4 -4
- package/dist/transfer-list.cjs.js +3 -3
- package/dist/transfer-list.esm.js +3 -3
- package/dist/tree-7qbVnpGp.js +39 -0
- package/dist/{tree-B3kE8ESs.mjs → tree-Deoft-kO.mjs} +34 -33
- package/dist/tree.cjs.js +1 -1
- package/dist/tree.esm.js +1 -1
- package/dist/trigger-BjnxLCeQ.mjs +9 -0
- package/dist/trigger-DkPsKxsP.js +1 -0
- package/dist/{ui-button-rXQOS9QJ.js → ui-button-BInsgSbr.js} +27 -26
- package/dist/{ui-button-Q0GNNWKC.mjs → ui-button-rfiuUnUD.mjs} +65 -48
- package/dist/{ui-icon-YI6lyuqU.mjs → ui-icon-BSi_GtqO.mjs} +2 -2
- package/dist/{ui-icon-BzVNC_lr.js → ui-icon-Bvt9oIIR.js} +5 -5
- package/dist/wizard.cjs.js +12 -13
- package/dist/wizard.esm.js +17 -15
- package/package.json +1 -1
- package/dist/runtime-CTaOSmBj.js +0 -1
- package/dist/tree-Dx_kv_ih.js +0 -39
package/dist/pin-input.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const A=require("./ElementBase-EV6mVBUV.js"),E=require("./control-name-BmoI1m3a.js");let I=0;const w=`
|
|
2
2
|
:host {
|
|
3
3
|
--ui-pin-gap: 10px;
|
|
4
4
|
--ui-pin-slot-width: 48px;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
--ui-pin-radius: 14px;
|
|
7
7
|
--ui-pin-bg: var(--ui-color-surface, var(--ui-surface, #ffffff));
|
|
8
8
|
--ui-pin-color: var(--ui-color-text, var(--ui-text, #0f172a));
|
|
9
|
-
--ui-pin-muted: var(--ui-color-muted, var(--ui-muted, #
|
|
9
|
+
--ui-pin-muted: var(--ui-color-muted, var(--ui-muted, #526175));
|
|
10
10
|
--ui-pin-border-color: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 70%, transparent);
|
|
11
11
|
--ui-pin-error: var(--ui-color-danger, var(--ui-error, #dc2626));
|
|
12
12
|
--ui-pin-focus: var(--ui-color-focus-ring, var(--ui-focus-ring, #2563eb));
|
|
@@ -81,8 +81,10 @@
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
.slot {
|
|
84
|
+
/* Full width when there is room, narrower rather than overflowing when the row is too long to fit. */
|
|
85
|
+
flex: 0 1 var(--ui-pin-slot-width);
|
|
84
86
|
inline-size: var(--ui-pin-slot-width);
|
|
85
|
-
min-inline-size:
|
|
87
|
+
min-inline-size: 0;
|
|
86
88
|
block-size: var(--ui-pin-slot-height);
|
|
87
89
|
box-sizing: border-box;
|
|
88
90
|
border: 1px solid var(--ui-pin-border-color);
|
|
@@ -170,8 +172,8 @@
|
|
|
170
172
|
box-shadow: none;
|
|
171
173
|
}
|
|
172
174
|
}
|
|
173
|
-
`;function
|
|
174
|
-
<style>${
|
|
175
|
+
`;function C(a){return Number.isFinite(a)?Math.max(1,Math.min(12,Math.floor(a))):6}function u(a){return C(Number(a.getAttribute("length")||6))}function d(a,t){return a.id||(a.id=`${t}-${Math.random().toString(36).slice(2,9)}`),a.id}function k(a,t){const i=a.trim();if(!i)return"";const e=i.slice(-1);return t==="numeric"?/^[0-9]$/.test(e)?e:"":t==="alpha"?/^[a-z]$/i.test(e)?e.toUpperCase():"":/^[a-z0-9]$/i.test(e)?e.toUpperCase():""}function b(a,t){return Array.from(a).map(i=>k(i,t)).filter(Boolean)}class p extends A.ElementBase{constructor(){super(...arguments),this._pinUid=`ui-pin-input-${++I}`,this._value="",this._suppressValueAttr=!1,this._formUnregister=null,this._rootEl=null,this._metaEl=null,this._labelEl=null,this._descriptionEl=null,this._groupEl=null,this._errorEl=null,this._inputs=[],this._onFocus=t=>{const i=t.currentTarget;try{i.select()}catch{}},this._onInput=t=>{if(this._disabled()||this._readOnly())return;const i=t.currentTarget,e=Number(i.getAttribute("data-index")||0);this._fillFromIndex(e,i.value,"input")},this._onPaste=t=>{if(this._disabled()||this._readOnly())return;const i=t.currentTarget,e=Number(i.getAttribute("data-index")||0),r=t.clipboardData?.getData("text")||"";r&&(t.preventDefault(),this._fillFromIndex(e,r,"paste"))},this._onKeyDown=t=>{const i=t.currentTarget,e=Number(i.getAttribute("data-index")||0),r=Array.from({length:u(this)},(s,o)=>this._value[o]||"");if(t.key==="ArrowLeft"){t.preventDefault(),this.focusIndex(e-1);return}if(t.key==="ArrowRight"){t.preventDefault(),this.focusIndex(e+1);return}if(t.key==="Home"){t.preventDefault(),this.focusIndex(0);return}if(t.key==="End"){t.preventDefault(),this.focusIndex(this._inputs.length-1);return}if(t.key==="Backspace"){if(t.preventDefault(),r[e]){r[e]="",this._applyValue(r.join(""),"keyboard",!0),this.focusIndex(e);return}e>0&&(r[e-1]="",this._applyValue(r.join(""),"keyboard",!0),this.focusIndex(e-1));return}if(t.key==="Delete"){t.preventDefault(),r[e]="",this._applyValue(r.join(""),"keyboard",!0),this.focusIndex(e);return}}}static get observedAttributes(){return["aria-description","aria-describedby","value","length","name","label","description","error","disabled","readonly","required","mask","placeholder-char","mode","size","density","shape","invalid"]}get value(){return this._value}set value(t){this._applyValue(String(t??""),"api",!1)}clear(){this._applyValue("","clear",!0),this.focusIndex(0)}focusIndex(t=0){const i=this._inputs[Math.max(0,Math.min(t,this._inputs.length-1))];if(i)try{i.focus({preventScroll:!0}),i.select()}catch{i.focus(),i.select()}}focusFirst(){this.focusIndex(0)}connectedCallback(){super.connectedCallback(),this._registerWithForm()}disconnectedCallback(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null),super.disconnectedCallback()}attributeChangedCallback(t,i,e){if(i!==e){if(t==="name"&&this.isConnected&&this._registerWithForm(),t==="value"&&!this._suppressValueAttr&&(this._value=this._sanitizeValue(e||"")),t==="length"&&this.isConnected){this.invalidateContentCache(),this.requestRender();return}this._rootEl&&this._syncUi()}}shouldRenderOnAttributeChange(t){return t==="length"}render(){const t=u(this),i=Array.from({length:t},(e,r)=>{const s=this.hasAttribute("mask")?"password":"text",o=r===0?"one-time-code":"off",l=this._mode()==="numeric"?"numeric":"text";return`<input class="slot" part="slot" data-index="${r}" type="${s}" inputmode="${l}" autocomplete="${o}" maxlength="1" />`}).join("");this.setContent(`
|
|
176
|
+
<style>${w}</style>
|
|
175
177
|
<div class="root">
|
|
176
178
|
<div class="meta" hidden>
|
|
177
179
|
<div class="label" hidden><span class="label-text"></span><span class="required" hidden>*</span></div>
|
|
@@ -182,4 +184,4 @@
|
|
|
182
184
|
<div class="error" hidden></div>
|
|
183
185
|
</div>
|
|
184
186
|
</div>
|
|
185
|
-
`),this._rootEl=this.root.querySelector(".root"),this._metaEl=this.root.querySelector(".meta"),this._labelEl=this.root.querySelector(".label"),this._descriptionEl=this.root.querySelector(".description"),this._groupEl=this.root.querySelector(".group"),this._errorEl=this.root.querySelector(".error"),this._inputs=Array.from(this.root.querySelectorAll(".slot")),this._inputs.forEach(e=>{e.addEventListener("input",this._onInput),e.addEventListener("keydown",this._onKeyDown),e.addEventListener("paste",this._onPaste),e.addEventListener("focus",this._onFocus)}),this._value=this._sanitizeValue(this.getAttribute("value")||this._value),this._syncUi()}_mode(){const t=(this.getAttribute("mode")||"numeric").toLowerCase();return t==="alpha"?"alpha":t==="alphanumeric"?"alphanumeric":"numeric"}_disabled(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}_readOnly(){return this.hasAttribute("readonly")}_placeholderChar(){const t=this.getAttribute("placeholder-char");return t&&t.length?t[0]:""}_sanitizeValue(t){const i=u(this);return b(t,this._mode()).join("").slice(0,i)}_setValueAttr(t){this._suppressValueAttr=!0;try{t?this.getAttribute("value")!==t&&this.setAttribute("value",t):this.removeAttribute("value")}finally{this._suppressValueAttr=!1}}_emit(t,i){this.dispatchEvent(new CustomEvent(t,{detail:i,bubbles:!0,composed:!0}))}_applyValue(t,i,e){const r=this._sanitizeValue(t),s=this._value;if(r===s){this._syncUi();return}this._value=r,this._setValueAttr(r),this._syncUi(),e&&(this._emit("input",{value:r,previousValue:s,source:i}),this._emit("change",{value:r,previousValue:s,source:i}),r.length===u(this)&&this._emit("complete",{value:r,length:r.length,source:i}))}_fillFromIndex(t,i,e){const r=b(i,this._mode());if(!r.length){this._syncUi();return}const s=Array.from({length:u(this)},(l,h)=>this._value[h]||"");let o=Math.max(0,Math.min(t,s.length-1));r.forEach(l=>{o>=s.length||(s[o]=l,o+=1)}),this._applyValue(s.join(""),e,!0),this.focusIndex(Math.min(o,s.length-1))}_syncUi(){if(!this._groupEl||!this._labelEl||!this._descriptionEl||!this._errorEl||!this._metaEl)return;const t=Array.from({length:u(this)},(n,c)=>this._value[c]||""),i=this._placeholderChar(),e=this.getAttribute("label")||"",r=this.getAttribute("description")||"",s=this.getAttribute("error")||"",o=this.hasAttribute("required"),l=this._labelEl.querySelector(".label-text"),h=this._labelEl.querySelector(".required");l&&(l.textContent=e),h&&h.toggleAttribute("hidden",!o),this._labelEl.toggleAttribute("hidden",!e),this._descriptionEl.textContent=r,this._descriptionEl.toggleAttribute("hidden",!r),this._errorEl.textContent=s,this._errorEl.toggleAttribute("hidden",!s),this._metaEl.toggleAttribute("hidden",!e&&!r);const f=e?d(this._labelEl,"ui-pin-label"):"",v=r?d(this._descriptionEl,"ui-pin-description"):"",y=s?d(this._errorEl,"ui-pin-error"):"",m=[v,y].filter(Boolean).join(" ");this._inputs.forEach((n,c)=>{const g=t[c]||"";n.value=g,n.setAttribute("data-filled",g?"true":"false"),n.placeholder=i,n.disabled=this._disabled(),n.readOnly=this._readOnly(),n.setAttribute("aria-label",`Digit ${c+1} of ${t.length}`),f?n.setAttribute("aria-labelledby",f):n.removeAttribute("aria-labelledby"),m?n.setAttribute("aria-describedby",m):n.removeAttribute("aria-describedby"),s||this.hasAttribute("invalid")?n.setAttribute("aria-invalid","true"):n.removeAttribute("aria-invalid"),n.inputMode=this._mode()==="numeric"?"numeric":"text",n.pattern=this._mode()==="numeric"?"[0-9]*":this._mode()==="alpha"?"[A-Za-z]*":"[A-Za-z0-9]*"})}_registerWithForm(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null);try{const r=this.getRootNode().host?.closest?.("ui-form")||null||this.closest("ui-form"),s=this.getAttribute("name");r&&typeof r.registerField=="function"&&s&&(this._formUnregister=r.registerField(s,{name:s,getValue:()=>this.value,setValue:o=>{o==null||o===""?this.removeAttribute("value"):this.setAttribute("value",String(o))},validate:async()=>this.hasAttribute("required")&&this.value.length<u(this)?{valid:!1,message:"Enter the full verification code."}:{valid:!0,message:void 0},setError:o=>{o?(this.setAttribute("error",o),this.toggleAttribute("invalid",!0)):(this.removeAttribute("error"),this.removeAttribute("invalid")),this._syncUi()}}))}catch{}}}class _ extends p{}typeof customElements<"u"&&!customElements.get("ui-pin-input")&&customElements.define("ui-pin-input",p);typeof customElements<"u"&&!customElements.get("ui-otp-input")&&customElements.define("ui-otp-input",_);exports.UIOtpInput=_;exports.UIPinInput=p;
|
|
187
|
+
`),this._rootEl=this.root.querySelector(".root"),this._metaEl=this.root.querySelector(".meta"),this._labelEl=this.root.querySelector(".label"),this._descriptionEl=this.root.querySelector(".description"),this._groupEl=this.root.querySelector(".group"),this._errorEl=this.root.querySelector(".error"),this._inputs=Array.from(this.root.querySelectorAll(".slot")),this._inputs.forEach(e=>{e.addEventListener("input",this._onInput),e.addEventListener("keydown",this._onKeyDown),e.addEventListener("paste",this._onPaste),e.addEventListener("focus",this._onFocus)}),this._value=this._sanitizeValue(this.getAttribute("value")||this._value),this._syncUi()}_mode(){const t=(this.getAttribute("mode")||"numeric").toLowerCase();return t==="alpha"?"alpha":t==="alphanumeric"?"alphanumeric":"numeric"}_disabled(){return this.hasAttribute("disabled")&&this.getAttribute("disabled")!=="false"}_readOnly(){return this.hasAttribute("readonly")}_placeholderChar(){const t=this.getAttribute("placeholder-char");return t&&t.length?t[0]:""}_sanitizeValue(t){const i=u(this);return b(t,this._mode()).join("").slice(0,i)}_setValueAttr(t){this._suppressValueAttr=!0;try{t?this.getAttribute("value")!==t&&this.setAttribute("value",t):this.removeAttribute("value")}finally{this._suppressValueAttr=!1}}_emit(t,i){this.dispatchEvent(new CustomEvent(t,{detail:i,bubbles:!0,composed:!0}))}_applyValue(t,i,e){const r=this._sanitizeValue(t),s=this._value;if(r===s){this._syncUi();return}this._value=r,this._setValueAttr(r),this._syncUi(),e&&(this._emit("input",{value:r,previousValue:s,source:i}),this._emit("change",{value:r,previousValue:s,source:i}),r.length===u(this)&&this._emit("complete",{value:r,length:r.length,source:i}))}_fillFromIndex(t,i,e){const r=b(i,this._mode());if(!r.length){this._syncUi();return}const s=Array.from({length:u(this)},(l,h)=>this._value[h]||"");let o=Math.max(0,Math.min(t,s.length-1));r.forEach(l=>{o>=s.length||(s[o]=l,o+=1)}),this._applyValue(s.join(""),e,!0),this.focusIndex(Math.min(o,s.length-1))}_syncUi(){if(!this._groupEl||!this._labelEl||!this._descriptionEl||!this._errorEl||!this._metaEl)return;const t=Array.from({length:u(this)},(n,c)=>this._value[c]||""),i=this._placeholderChar(),e=this.getAttribute("label")||"",r=this.getAttribute("description")||"",s=this.getAttribute("error")||"",o=this.hasAttribute("required"),l=this._labelEl.querySelector(".label-text"),h=this._labelEl.querySelector(".required");l&&(l.textContent=e),h&&h.toggleAttribute("hidden",!o),this._labelEl.toggleAttribute("hidden",!e),this._descriptionEl.textContent=r,this._descriptionEl.toggleAttribute("hidden",!r),this._errorEl.textContent=s,this._errorEl.toggleAttribute("hidden",!s),this._metaEl.toggleAttribute("hidden",!e&&!r);const f=e?d(this._labelEl,"ui-pin-label"):"",v=r?d(this._descriptionEl,"ui-pin-description"):"",y=s?d(this._errorEl,"ui-pin-error"):"",x=E.syncExternalDescription(this._inputs[0],this,this._pinUid)||"",m=[v,y,x].filter(Boolean).join(" ");this._inputs.forEach((n,c)=>{const g=t[c]||"";n.value=g,n.setAttribute("data-filled",g?"true":"false"),n.placeholder=i,n.disabled=this._disabled(),n.readOnly=this._readOnly(),n.setAttribute("aria-label",`Digit ${c+1} of ${t.length}`),f?n.setAttribute("aria-labelledby",f):n.removeAttribute("aria-labelledby"),m?n.setAttribute("aria-describedby",m):n.removeAttribute("aria-describedby"),s||this.hasAttribute("invalid")?n.setAttribute("aria-invalid","true"):n.removeAttribute("aria-invalid"),n.inputMode=this._mode()==="numeric"?"numeric":"text",n.pattern=this._mode()==="numeric"?"[0-9]*":this._mode()==="alpha"?"[A-Za-z]*":"[A-Za-z0-9]*"})}_registerWithForm(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null);try{const r=this.getRootNode().host?.closest?.("ui-form")||null||this.closest("ui-form"),s=this.getAttribute("name");r&&typeof r.registerField=="function"&&s&&(this._formUnregister=r.registerField(s,{name:s,getValue:()=>this.value,setValue:o=>{o==null||o===""?this.removeAttribute("value"):this.setAttribute("value",String(o))},validate:async()=>this.hasAttribute("required")&&this.value.length<u(this)?{valid:!1,message:"Enter the full verification code."}:{valid:!0,message:void 0},setError:o=>{o?(this.setAttribute("error",o),this.toggleAttribute("invalid",!0)):(this.removeAttribute("error"),this.removeAttribute("invalid")),this._syncUi()}}))}catch{}}}class _ extends p{}typeof customElements<"u"&&!customElements.get("ui-pin-input")&&customElements.define("ui-pin-input",p);typeof customElements<"u"&&!customElements.get("ui-otp-input")&&customElements.define("ui-otp-input",_);exports.UIOtpInput=_;exports.UIPinInput=p;
|
package/dist/pin-input.esm.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { E as
|
|
2
|
-
|
|
1
|
+
import { E as y } from "./ElementBase-YlTLMsGk.mjs";
|
|
2
|
+
import { c as A } from "./control-name-Bpj7F34X.mjs";
|
|
3
|
+
let E = 0;
|
|
4
|
+
const I = `
|
|
3
5
|
:host {
|
|
4
6
|
--ui-pin-gap: 10px;
|
|
5
7
|
--ui-pin-slot-width: 48px;
|
|
@@ -7,7 +9,7 @@ const y = `
|
|
|
7
9
|
--ui-pin-radius: 14px;
|
|
8
10
|
--ui-pin-bg: var(--ui-color-surface, var(--ui-surface, #ffffff));
|
|
9
11
|
--ui-pin-color: var(--ui-color-text, var(--ui-text, #0f172a));
|
|
10
|
-
--ui-pin-muted: var(--ui-color-muted, var(--ui-muted, #
|
|
12
|
+
--ui-pin-muted: var(--ui-color-muted, var(--ui-muted, #526175));
|
|
11
13
|
--ui-pin-border-color: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 70%, transparent);
|
|
12
14
|
--ui-pin-error: var(--ui-color-danger, var(--ui-error, #dc2626));
|
|
13
15
|
--ui-pin-focus: var(--ui-color-focus-ring, var(--ui-focus-ring, #2563eb));
|
|
@@ -82,8 +84,10 @@ const y = `
|
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
.slot {
|
|
87
|
+
/* Full width when there is room, narrower rather than overflowing when the row is too long to fit. */
|
|
88
|
+
flex: 0 1 var(--ui-pin-slot-width);
|
|
85
89
|
inline-size: var(--ui-pin-slot-width);
|
|
86
|
-
min-inline-size:
|
|
90
|
+
min-inline-size: 0;
|
|
87
91
|
block-size: var(--ui-pin-slot-height);
|
|
88
92
|
box-sizing: border-box;
|
|
89
93
|
border: 1px solid var(--ui-pin-border-color);
|
|
@@ -172,27 +176,27 @@ const y = `
|
|
|
172
176
|
}
|
|
173
177
|
}
|
|
174
178
|
`;
|
|
175
|
-
function
|
|
179
|
+
function w(a) {
|
|
176
180
|
return Number.isFinite(a) ? Math.max(1, Math.min(12, Math.floor(a))) : 6;
|
|
177
181
|
}
|
|
178
182
|
function u(a) {
|
|
179
|
-
return
|
|
183
|
+
return w(Number(a.getAttribute("length") || 6));
|
|
180
184
|
}
|
|
181
185
|
function d(a, t) {
|
|
182
186
|
return a.id || (a.id = `${t}-${Math.random().toString(36).slice(2, 9)}`), a.id;
|
|
183
187
|
}
|
|
184
|
-
function
|
|
188
|
+
function C(a, t) {
|
|
185
189
|
const i = a.trim();
|
|
186
190
|
if (!i) return "";
|
|
187
191
|
const e = i.slice(-1);
|
|
188
192
|
return t === "numeric" ? /^[0-9]$/.test(e) ? e : "" : t === "alpha" ? /^[a-z]$/i.test(e) ? e.toUpperCase() : "" : /^[a-z0-9]$/i.test(e) ? e.toUpperCase() : "";
|
|
189
193
|
}
|
|
190
194
|
function g(a, t) {
|
|
191
|
-
return Array.from(a).map((i) =>
|
|
195
|
+
return Array.from(a).map((i) => C(i, t)).filter(Boolean);
|
|
192
196
|
}
|
|
193
|
-
class b extends
|
|
197
|
+
class b extends y {
|
|
194
198
|
constructor() {
|
|
195
|
-
super(...arguments), this._value = "", this._suppressValueAttr = !1, this._formUnregister = null, this._rootEl = null, this._metaEl = null, this._labelEl = null, this._descriptionEl = null, this._groupEl = null, this._errorEl = null, this._inputs = [], this._onFocus = (t) => {
|
|
199
|
+
super(...arguments), this._pinUid = `ui-pin-input-${++E}`, this._value = "", this._suppressValueAttr = !1, this._formUnregister = null, this._rootEl = null, this._metaEl = null, this._labelEl = null, this._descriptionEl = null, this._groupEl = null, this._errorEl = null, this._inputs = [], this._onFocus = (t) => {
|
|
196
200
|
const i = t.currentTarget;
|
|
197
201
|
try {
|
|
198
202
|
i.select();
|
|
@@ -240,6 +244,8 @@ class b extends x {
|
|
|
240
244
|
}
|
|
241
245
|
static get observedAttributes() {
|
|
242
246
|
return [
|
|
247
|
+
"aria-description",
|
|
248
|
+
"aria-describedby",
|
|
243
249
|
"value",
|
|
244
250
|
"length",
|
|
245
251
|
"name",
|
|
@@ -303,7 +309,7 @@ class b extends x {
|
|
|
303
309
|
return `<input class="slot" part="slot" data-index="${r}" type="${s}" inputmode="${l}" autocomplete="${o}" maxlength="1" />`;
|
|
304
310
|
}).join("");
|
|
305
311
|
this.setContent(`
|
|
306
|
-
<style>${
|
|
312
|
+
<style>${I}</style>
|
|
307
313
|
<div class="root">
|
|
308
314
|
<div class="meta" hidden>
|
|
309
315
|
<div class="label" hidden><span class="label-text"></span><span class="required" hidden>*</span></div>
|
|
@@ -371,7 +377,7 @@ class b extends x {
|
|
|
371
377
|
if (!this._groupEl || !this._labelEl || !this._descriptionEl || !this._errorEl || !this._metaEl) return;
|
|
372
378
|
const t = Array.from({ length: u(this) }, (n, c) => this._value[c] || ""), i = this._placeholderChar(), e = this.getAttribute("label") || "", r = this.getAttribute("description") || "", s = this.getAttribute("error") || "", o = this.hasAttribute("required"), l = this._labelEl.querySelector(".label-text"), h = this._labelEl.querySelector(".required");
|
|
373
379
|
l && (l.textContent = e), h && h.toggleAttribute("hidden", !o), this._labelEl.toggleAttribute("hidden", !e), this._descriptionEl.textContent = r, this._descriptionEl.toggleAttribute("hidden", !r), this._errorEl.textContent = s, this._errorEl.toggleAttribute("hidden", !s), this._metaEl.toggleAttribute("hidden", !e && !r);
|
|
374
|
-
const p = e ? d(this._labelEl, "ui-pin-label") : "", _ = r ? d(this._descriptionEl, "ui-pin-description") : "", v = s ? d(this._errorEl, "ui-pin-error") : "", f = [_, v].filter(Boolean).join(" ");
|
|
380
|
+
const p = e ? d(this._labelEl, "ui-pin-label") : "", _ = r ? d(this._descriptionEl, "ui-pin-description") : "", v = s ? d(this._errorEl, "ui-pin-error") : "", x = A(this._inputs[0], this, this._pinUid) || "", f = [_, v, x].filter(Boolean).join(" ");
|
|
375
381
|
this._inputs.forEach((n, c) => {
|
|
376
382
|
const m = t[c] || "";
|
|
377
383
|
n.value = m, n.setAttribute("data-filled", m ? "true" : "false"), n.placeholder = i, n.disabled = this._disabled(), n.readOnly = this._readOnly(), n.setAttribute("aria-label", `Digit ${c + 1} of ${t.length}`), p ? n.setAttribute("aria-labelledby", p) : n.removeAttribute("aria-labelledby"), f ? n.setAttribute("aria-describedby", f) : n.removeAttribute("aria-describedby"), s || this.hasAttribute("invalid") ? n.setAttribute("aria-invalid", "true") : n.removeAttribute("aria-invalid"), n.inputMode = this._mode() === "numeric" ? "numeric" : "text", n.pattern = this._mode() === "numeric" ? "[0-9]*" : this._mode() === "alpha" ? "[A-Za-z]*" : "[A-Za-z0-9]*";
|
|
@@ -396,11 +402,11 @@ class b extends x {
|
|
|
396
402
|
}
|
|
397
403
|
}
|
|
398
404
|
}
|
|
399
|
-
class
|
|
405
|
+
class k extends b {
|
|
400
406
|
}
|
|
401
407
|
typeof customElements < "u" && !customElements.get("ui-pin-input") && customElements.define("ui-pin-input", b);
|
|
402
|
-
typeof customElements < "u" && !customElements.get("ui-otp-input") && customElements.define("ui-otp-input",
|
|
408
|
+
typeof customElements < "u" && !customElements.get("ui-otp-input") && customElements.define("ui-otp-input", k);
|
|
403
409
|
export {
|
|
404
|
-
|
|
410
|
+
k as UIOtpInput,
|
|
405
411
|
b as UIPinInput
|
|
406
412
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("./ElementBase-EV6mVBUV.js"),v={sm:"var(--ui-breakpoint-sm, 640px)",md:"var(--ui-breakpoint-md, 768px)",lg:"var(--ui-breakpoint-lg, 1024px)",xl:"var(--ui-breakpoint-xl, 1280px)"},p=["display","columns","rows","gap","rowgap","columngap","autoflow","autorows","autocolumns","align","justify","place","aligncontent","justifycontent","placecontent"],w={xs:"var(--ui-space-xs, 4px)",sm:"var(--ui-space-sm, 8px)",md:"var(--ui-space-md, 12px)",lg:"var(--ui-space-lg, 20px)",xl:"var(--ui-space-xl, 28px)"},I=["data-row","data-column","data-row-span","data-column-span","data-value","data-selected","data-disabled","hidden"],A=`
|
|
2
2
|
:host {
|
|
3
3
|
--ui-placement-display: grid;
|
|
4
4
|
--ui-placement-columns: 1fr;
|
|
@@ -94,6 +94,6 @@
|
|
|
94
94
|
--ui-placement-focus-ring: Highlight;
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
`;function
|
|
98
|
-
`)}_items(){return Array.from(this.children).filter(t=>t instanceof HTMLElement&&t.hasAttribute("data-ui-placement-item"))}_resolveItem(t){const e=this._items();return typeof t=="number"?e[t]||null:e.find(s=>(s.getAttribute("data-value")||s.id||"")===t)||null}_fallbackColumnCount(){return d(this.getAttribute("columns"))||1}_computeItems(){const t=this._fallbackColumnCount();let e=0;return this._items().map((s,r)=>{let
|
|
99
|
-
${t}`:""}</style><slot></slot>`)}shouldRenderOnAttributeChange(t,e,s){return!0}}typeof customElements<"u"&&!customElements.get("ui-placement-grid")&&customElements.define("ui-placement-grid",
|
|
97
|
+
`;function f(u){if(!u)return null;const t=u.trim();if(!t.startsWith("{"))return null;try{const e=JSON.parse(t);return!e||typeof e!="object"?null:e}catch{return null}}function h(u){return w[u]||u}function d(u){if(!u)return null;const t=Number.parseInt(u,10);return!Number.isFinite(t)||t<1?null:t}function g(u,t){switch(u){case"display":return{"--ui-placement-display":t};case"columns":return{"--ui-placement-columns":t};case"rows":return{"--ui-placement-rows":t};case"gap":return{"--ui-placement-gap":h(t)};case"rowgap":return{"--ui-placement-row-gap":h(t)};case"columngap":return{"--ui-placement-column-gap":h(t)};case"autoflow":return{"--ui-placement-auto-flow":t};case"autorows":return{"--ui-placement-auto-rows":t};case"autocolumns":return{"--ui-placement-auto-columns":t};case"align":return{"--ui-placement-align-items":t};case"justify":return{"--ui-placement-justify-items":t};case"place":return{"--ui-placement-place-items":t};case"aligncontent":return{"--ui-placement-align-content":t};case"justifycontent":return{"--ui-placement-justify-content":t};case"placecontent":return{"--ui-placement-place-content":t};default:return{}}}class _ extends b.ElementBase{constructor(){super(...arguments),this._lastClassname="",this._appliedInlineProps=new Set,this._mutationObserver=null,this._suppressMutations=!1,this._focusedValue=null,this._dragItem=null,this._dragOverItem=null,this._onKeyDownBound=t=>this._onKeyDown(t),this._onClickBound=t=>this._onClick(t),this._onDragStartBound=t=>this._onDragStart(t),this._onDragOverBound=t=>this._onDragOver(t),this._onDropBound=t=>this._onDrop(t),this._onDragEndBound=()=>this._clearDragState()}static get observedAttributes(){return["classname","headless","interactive","draggable","order",...p]}connectedCallback(){super.connectedCallback(),this._observeMutations(),this.addEventListener("keydown",this._onKeyDownBound),this.addEventListener("click",this._onClickBound),this.addEventListener("dragstart",this._onDragStartBound),this.addEventListener("dragover",this._onDragOverBound),this.addEventListener("drop",this._onDropBound),this.addEventListener("dragend",this._onDragEndBound)}disconnectedCallback(){this.removeEventListener("keydown",this._onKeyDownBound),this.removeEventListener("click",this._onClickBound),this.removeEventListener("dragstart",this._onDragStartBound),this.removeEventListener("dragover",this._onDragOverBound),this.removeEventListener("drop",this._onDropBound),this.removeEventListener("dragend",this._onDragEndBound),this._mutationObserver?.disconnect(),this._mutationObserver=null,this._clearDragState(),super.disconnectedCallback()}refresh(){this.requestRender()}focusItem(t){const e=this._resolveItem(t);e&&this._setFocusedItem(e,!0)}moveItem(t,e,s){const r=this._resolveItem(t);r&&this._moveItemTo(r,Math.max(1,e),Math.max(1,s),"api")}_observeMutations(){this._mutationObserver||(this._mutationObserver=new MutationObserver(()=>{this._suppressMutations||this.requestRender()}),this._mutationObserver.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...I]}))}_syncLegacyClassname(){const t=this.getAttribute("classname")||"";t!==this._lastClassname&&(this._lastClassname&&this._lastClassname.split(/\s+/).forEach(e=>{e&&this.classList.remove(e)}),t&&t.split(/\s+/).forEach(e=>{e&&this.classList.add(e)}),this._lastClassname=t)}_applyInlineStyles(){this._appliedInlineProps.forEach(t=>this.style.removeProperty(t)),this._appliedInlineProps.clear(),p.forEach(t=>{const e=this.getAttribute(t);if(!e||f(e))return;const s=g(t,e);Object.entries(s).forEach(([r,a])=>{this.style.setProperty(r,a),this._appliedInlineProps.add(r)})})}_buildResponsiveCss(){const t={},e={sm:{},md:{},lg:{},xl:{}};p.forEach(i=>{const o=this.getAttribute(i),n=f(o);if(!n)return;const l=(c,m)=>{Object.assign(c,g(i,m))};typeof n.initial=="string"&&l(t,n.initial),typeof n.sm=="string"&&l(e.sm,n.sm),typeof n.md=="string"&&l(e.md,n.md),typeof n.lg=="string"&&l(e.lg,n.lg),typeof n.xl=="string"&&l(e.xl,n.xl)});const s=(i,o)=>{const n=Object.entries(o);return n.length?`${i} { ${n.map(([l,c])=>`${l}: ${c};`).join(" ")} }`:""},r=[],a=s(":host",t);return a&&r.push(a),Object.keys(e).forEach(i=>{const o=s(":host",e[i]);o&&r.push(`@media (min-width: ${v[i]}) { ${o} }`)}),r.join(`
|
|
98
|
+
`)}_items(){return Array.from(this.children).filter(t=>t instanceof HTMLElement&&t.hasAttribute("data-ui-placement-item"))}_resolveItem(t){const e=this._items();return typeof t=="number"?e[t]||null:e.find(s=>(s.getAttribute("data-value")||s.id||"")===t)||null}_fallbackColumnCount(){return d(this.getAttribute("columns"))||1}_computeItems(){const t=this._fallbackColumnCount();let e=0;return this._items().map((s,r)=>{let a=d(s.getAttribute("data-row")),i=d(s.getAttribute("data-column"));const o=d(s.getAttribute("data-row-span"))||1,n=d(s.getAttribute("data-column-span"))||1;if(a==null||i==null){const l=e++,c=Math.floor(l/t)+1,m=l%t+1;a==null&&(a=c),i==null&&(i=m)}return{el:s,index:r,row:a,column:i,rowSpan:o,columnSpan:n,value:s.getAttribute("data-value")||s.id||String(r),disabled:s.hasAttribute("disabled")||s.hasAttribute("data-disabled"),selected:s.hasAttribute("data-selected")}})}_order(){return this.getAttribute("order")==="row-major"?"row-major":"dom"}_isInteractive(){return this.hasAttribute("interactive")||this.hasAttribute("draggable")}_isDraggable(){return this.hasAttribute("draggable")}_sortMeta(t){return[...t].sort((e,s)=>e.row!==s.row?e.row-s.row:e.column!==s.column?e.column-s.column:e.index-s.index)}_syncHostSemantics(t){this._isInteractive()?this.hasAttribute("role")||(this.setAttribute("role","list"),this.setAttribute("data-ui-placement-role","")):this.hasAttribute("data-ui-placement-role")&&(this.removeAttribute("role"),this.removeAttribute("data-ui-placement-role")),(!this._isInteractive()||this.hasAttribute("data-ui-placement-role"))&&(this.removeAttribute("aria-rowcount"),this.removeAttribute("aria-colcount"))}_setFocusedItem(t,e=!1){const s=this._items(),r=t||s[0]||null;this._focusedValue=r&&(r.getAttribute("data-value")||r.id)||null,s.forEach(a=>{this._isInteractive()?a.tabIndex=a===r?0:-1:a.removeAttribute("tabindex")}),e&&r&&r.focus({preventScroll:!0})}_syncItems(){const t=this._computeItems(),e=this._order()==="row-major"?this._sortMeta(t):t;this._suppressMutations=!0;try{this._order()==="row-major"&&e.forEach(r=>this.appendChild(r.el)),this._syncHostSemantics(e);const s=e.find(r=>r.value===this._focusedValue)?.el||e[0]?.el||null;e.forEach(r=>{if(r.el.style.gridColumn=`${r.column} / span ${r.columnSpan}`,r.el.style.gridRow=`${r.row} / span ${r.rowSpan}`,r.el.style.minInlineSize="0",r.el.style.boxSizing="border-box",this._isInteractive()){r.el.hasAttribute("role")||(r.el.setAttribute("role","listitem"),r.el.setAttribute("data-ui-placement-item-role",""));const a=e.indexOf(r)+1;r.el.hasAttribute("data-ui-placement-item-role")&&(r.el.setAttribute("aria-posinset",String(a)),r.el.setAttribute("aria-setsize",String(e.length)),r.selected?r.el.setAttribute("aria-current","true"):r.el.removeAttribute("aria-current")),r.disabled?r.el.setAttribute("aria-disabled","true"):r.el.removeAttribute("aria-disabled")}else r.el.hasAttribute("data-ui-placement-item-role")&&(r.el.removeAttribute("role"),r.el.removeAttribute("data-ui-placement-item-role")),r.el.removeAttribute("aria-posinset"),r.el.removeAttribute("aria-setsize"),r.el.removeAttribute("aria-current"),r.el.removeAttribute("aria-disabled");this._isDraggable()&&!r.disabled?(r.el.setAttribute("data-draggable",""),r.el.setAttribute("draggable","true")):(r.el.removeAttribute("data-draggable"),r.el.removeAttribute("draggable"))}),this._setFocusedItem(s,!1)}finally{this._suppressMutations=!1}}_findItemFromTarget(t){if(!(t instanceof Element))return null;const e=t.closest("[data-ui-placement-item]");return e instanceof HTMLElement&&this.contains(e)?e:null}_metaForItem(t){return this._computeItems().find(e=>e.el===t)||null}_intervalsOverlap(t,e,s,r){const a=t+e-1,i=s+r-1;return t<=i&&s<=a}_findNeighbor(t,e){const s=this._computeItems().filter(i=>!i.disabled&&i.el!==t.el);if(!s.length)return null;const r=s.filter(i=>e==="left"||e==="right"?this._intervalsOverlap(t.row,t.rowSpan,i.row,i.rowSpan)?e==="left"?i.column<t.column:i.column>t.column:!1:this._intervalsOverlap(t.column,t.columnSpan,i.column,i.columnSpan)?e==="up"?i.row<t.row:i.row>t.row:!1);if(!r.length){const i=this._order()==="row-major"?this._sortMeta(this._computeItems()):this._computeItems(),o=i.findIndex(l=>l.el===t.el);return i[o+(e==="left"||e==="up"?-1:1)]?.el||null}return r.sort((i,o)=>{if(e==="left"||e==="right"){const c=Math.abs(i.column-t.column),m=Math.abs(o.column-t.column);return c!==m?c-m:Math.abs(i.row-t.row)-Math.abs(o.row-t.row)}const n=Math.abs(i.row-t.row),l=Math.abs(o.row-t.row);return n!==l?n-l:Math.abs(i.column-t.column)-Math.abs(o.column-t.column)})[0]?.el||null}_moveItemTo(t,e,s,r){const a=this._metaForItem(t);!a||a.disabled||(t.setAttribute("data-row",String(e)),t.setAttribute("data-column",String(s)),this.dispatchEvent(new CustomEvent("itemmove",{bubbles:!0,composed:!0,detail:{value:a.value,reason:r,from:{row:a.row,column:a.column},to:{row:e,column:s}}})),this.requestRender())}_swapItems(t,e,s){const r=this._metaForItem(t),a=this._metaForItem(e);!r||!a||(t.setAttribute("data-row",String(a.row)),t.setAttribute("data-column",String(a.column)),e.setAttribute("data-row",String(r.row)),e.setAttribute("data-column",String(r.column)),this.dispatchEvent(new CustomEvent("itemmove",{bubbles:!0,composed:!0,detail:{value:r.value,targetValue:a.value,reason:s,from:{row:r.row,column:r.column},to:{row:a.row,column:a.column}}})),this.requestRender())}_onClick(t){if(!this._isInteractive())return;const e=this._findItemFromTarget(t.target);e&&this._setFocusedItem(e,!1)}_onKeyDown(t){if(!this._isInteractive())return;const e=this._findItemFromTarget(t.target);if(!e)return;const s=this._metaForItem(e);if(!s||s.disabled)return;const r=t.key,a=r==="ArrowLeft"||r==="ArrowRight"||r==="ArrowUp"||r==="ArrowDown";if(t.altKey&&this._isDraggable()&&a){t.preventDefault();const o=r==="ArrowDown"?1:r==="ArrowUp"?-1:0,n=r==="ArrowRight"?1:r==="ArrowLeft"?-1:0;this._moveItemTo(e,Math.max(1,s.row+o),Math.max(1,s.column+n),"keyboard"),this._setFocusedItem(e,!0);return}let i=null;if(r==="ArrowLeft")i=this._findNeighbor(s,"left");else if(r==="ArrowRight")i=this._findNeighbor(s,"right");else if(r==="ArrowUp")i=this._findNeighbor(s,"up");else if(r==="ArrowDown")i=this._findNeighbor(s,"down");else if(r==="Home")i=(this._order()==="row-major"?this._sortMeta(this._computeItems()):this._computeItems())[0]?.el||null;else if(r==="End"){const o=this._order()==="row-major"?this._sortMeta(this._computeItems()):this._computeItems();i=o[o.length-1]?.el||null}i&&(t.preventDefault(),this._setFocusedItem(i,!0))}_onDragStart(t){if(!this._isDraggable())return;const e=this._findItemFromTarget(t.target);!e||e.hasAttribute("data-disabled")||(this._dragItem=e,e.setAttribute("data-dragging",""),t.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e.getAttribute("data-value")||e.id||"")))}_onDragOver(t){if(!this._dragItem)return;const e=this._findItemFromTarget(t.target);!e||e===this._dragItem||(t.preventDefault(),this._dragOverItem&&this._dragOverItem!==e&&this._dragOverItem.removeAttribute("data-drag-over"),this._dragOverItem=e,e.setAttribute("data-drag-over",""))}_onDrop(t){if(!this._dragItem)return;const e=this._findItemFromTarget(t.target);t.preventDefault(),e&&e!==this._dragItem&&(this._swapItems(this._dragItem,e,"pointer"),this._setFocusedItem(this._dragItem,!1)),this._clearDragState()}_clearDragState(){this._dragItem&&this._dragItem.removeAttribute("data-dragging"),this._dragOverItem&&this._dragOverItem.removeAttribute("data-drag-over"),this._dragItem=null,this._dragOverItem=null}render(){this._syncLegacyClassname(),this._applyInlineStyles(),this._syncItems();const t=this._buildResponsiveCss();this.setContent(`<style>${A}${t?`
|
|
99
|
+
${t}`:""}</style><slot></slot>`)}shouldRenderOnAttributeChange(t,e,s){return!0}}typeof customElements<"u"&&!customElements.get("ui-placement-grid")&&customElements.define("ui-placement-grid",_);exports.UIPlacementGrid=_;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { E as
|
|
2
|
-
const
|
|
1
|
+
import { E as _ } from "./ElementBase-YlTLMsGk.mjs";
|
|
2
|
+
const b = {
|
|
3
3
|
sm: "var(--ui-breakpoint-sm, 640px)",
|
|
4
4
|
md: "var(--ui-breakpoint-md, 768px)",
|
|
5
5
|
lg: "var(--ui-breakpoint-lg, 1024px)",
|
|
@@ -187,7 +187,7 @@ function g(u, t) {
|
|
|
187
187
|
return {};
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
|
-
class I extends
|
|
190
|
+
class I extends _ {
|
|
191
191
|
constructor() {
|
|
192
192
|
super(...arguments), this._lastClassname = "", this._appliedInlineProps = /* @__PURE__ */ new Set(), this._mutationObserver = null, this._suppressMutations = !1, this._focusedValue = null, this._dragItem = null, this._dragOverItem = null, this._onKeyDownBound = (t) => this._onKeyDown(t), this._onClickBound = (t) => this._onClick(t), this._onDragStartBound = (t) => this._onDragStart(t), this._onDragOverBound = (t) => this._onDragOver(t), this._onDropBound = (t) => this._onDrop(t), this._onDragEndBound = () => this._clearDragState();
|
|
193
193
|
}
|
|
@@ -234,8 +234,8 @@ class I extends b {
|
|
|
234
234
|
const e = this.getAttribute(t);
|
|
235
235
|
if (!e || f(e)) return;
|
|
236
236
|
const s = g(t, e);
|
|
237
|
-
Object.entries(s).forEach(([r,
|
|
238
|
-
this.style.setProperty(r,
|
|
237
|
+
Object.entries(s).forEach(([r, a]) => {
|
|
238
|
+
this.style.setProperty(r, a), this._appliedInlineProps.add(r);
|
|
239
239
|
});
|
|
240
240
|
});
|
|
241
241
|
}
|
|
@@ -246,21 +246,21 @@ class I extends b {
|
|
|
246
246
|
lg: {},
|
|
247
247
|
xl: {}
|
|
248
248
|
};
|
|
249
|
-
p.forEach((
|
|
250
|
-
const o = this.getAttribute(
|
|
249
|
+
p.forEach((i) => {
|
|
250
|
+
const o = this.getAttribute(i), n = f(o);
|
|
251
251
|
if (!n) return;
|
|
252
252
|
const l = (c, m) => {
|
|
253
|
-
Object.assign(c, g(
|
|
253
|
+
Object.assign(c, g(i, m));
|
|
254
254
|
};
|
|
255
255
|
typeof n.initial == "string" && l(t, n.initial), typeof n.sm == "string" && l(e.sm, n.sm), typeof n.md == "string" && l(e.md, n.md), typeof n.lg == "string" && l(e.lg, n.lg), typeof n.xl == "string" && l(e.xl, n.xl);
|
|
256
256
|
});
|
|
257
|
-
const s = (
|
|
257
|
+
const s = (i, o) => {
|
|
258
258
|
const n = Object.entries(o);
|
|
259
|
-
return n.length ? `${
|
|
260
|
-
}, r = [],
|
|
261
|
-
return
|
|
262
|
-
const o = s(":host", e[
|
|
263
|
-
o && r.push(`@media (min-width: ${
|
|
259
|
+
return n.length ? `${i} { ${n.map(([l, c]) => `${l}: ${c};`).join(" ")} }` : "";
|
|
260
|
+
}, r = [], a = s(":host", t);
|
|
261
|
+
return a && r.push(a), Object.keys(e).forEach((i) => {
|
|
262
|
+
const o = s(":host", e[i]);
|
|
263
|
+
o && r.push(`@media (min-width: ${b[i]}) { ${o} }`);
|
|
264
264
|
}), r.join(`
|
|
265
265
|
`);
|
|
266
266
|
}
|
|
@@ -280,17 +280,17 @@ class I extends b {
|
|
|
280
280
|
const t = this._fallbackColumnCount();
|
|
281
281
|
let e = 0;
|
|
282
282
|
return this._items().map((s, r) => {
|
|
283
|
-
let
|
|
283
|
+
let a = d(s.getAttribute("data-row")), i = d(s.getAttribute("data-column"));
|
|
284
284
|
const o = d(s.getAttribute("data-row-span")) || 1, n = d(s.getAttribute("data-column-span")) || 1;
|
|
285
|
-
if (
|
|
285
|
+
if (a == null || i == null) {
|
|
286
286
|
const l = e++, c = Math.floor(l / t) + 1, m = l % t + 1;
|
|
287
|
-
|
|
287
|
+
a == null && (a = c), i == null && (i = m);
|
|
288
288
|
}
|
|
289
289
|
return {
|
|
290
290
|
el: s,
|
|
291
291
|
index: r,
|
|
292
|
-
row:
|
|
293
|
-
column:
|
|
292
|
+
row: a,
|
|
293
|
+
column: i,
|
|
294
294
|
rowSpan: o,
|
|
295
295
|
columnSpan: n,
|
|
296
296
|
value: s.getAttribute("data-value") || s.id || String(r),
|
|
@@ -312,18 +312,12 @@ class I extends b {
|
|
|
312
312
|
return [...t].sort((e, s) => e.row !== s.row ? e.row - s.row : e.column !== s.column ? e.column - s.column : e.index - s.index);
|
|
313
313
|
}
|
|
314
314
|
_syncHostSemantics(t) {
|
|
315
|
-
this._isInteractive() ?
|
|
316
|
-
"aria-rowcount",
|
|
317
|
-
String(t.reduce((e, s) => Math.max(e, s.row + s.rowSpan - 1), 0))
|
|
318
|
-
), this.setAttribute(
|
|
319
|
-
"aria-colcount",
|
|
320
|
-
String(t.reduce((e, s) => Math.max(e, s.column + s.columnSpan - 1), this._fallbackColumnCount()))
|
|
321
|
-
)) : this.hasAttribute("data-ui-placement-role") && (this.removeAttribute("role"), this.removeAttribute("data-ui-placement-role"), this.removeAttribute("aria-rowcount"), this.removeAttribute("aria-colcount"));
|
|
315
|
+
this._isInteractive() ? this.hasAttribute("role") || (this.setAttribute("role", "list"), this.setAttribute("data-ui-placement-role", "")) : this.hasAttribute("data-ui-placement-role") && (this.removeAttribute("role"), this.removeAttribute("data-ui-placement-role")), (!this._isInteractive() || this.hasAttribute("data-ui-placement-role")) && (this.removeAttribute("aria-rowcount"), this.removeAttribute("aria-colcount"));
|
|
322
316
|
}
|
|
323
317
|
_setFocusedItem(t, e = !1) {
|
|
324
318
|
const s = this._items(), r = t || s[0] || null;
|
|
325
|
-
this._focusedValue = r && (r.getAttribute("data-value") || r.id) || null, s.forEach((
|
|
326
|
-
this._isInteractive() ?
|
|
319
|
+
this._focusedValue = r && (r.getAttribute("data-value") || r.id) || null, s.forEach((a) => {
|
|
320
|
+
this._isInteractive() ? a.tabIndex = a === r ? 0 : -1 : a.removeAttribute("tabindex");
|
|
327
321
|
}), e && r && r.focus({ preventScroll: !0 });
|
|
328
322
|
}
|
|
329
323
|
_syncItems() {
|
|
@@ -333,7 +327,13 @@ class I extends b {
|
|
|
333
327
|
this._order() === "row-major" && e.forEach((r) => this.appendChild(r.el)), this._syncHostSemantics(e);
|
|
334
328
|
const s = e.find((r) => r.value === this._focusedValue)?.el || e[0]?.el || null;
|
|
335
329
|
e.forEach((r) => {
|
|
336
|
-
r.el.style.gridColumn = `${r.column} / span ${r.columnSpan}`, r.el.style.gridRow = `${r.row} / span ${r.rowSpan}`, r.el.style.minInlineSize = "0", r.el.style.boxSizing = "border-box", this._isInteractive()
|
|
330
|
+
if (r.el.style.gridColumn = `${r.column} / span ${r.columnSpan}`, r.el.style.gridRow = `${r.row} / span ${r.rowSpan}`, r.el.style.minInlineSize = "0", r.el.style.boxSizing = "border-box", this._isInteractive()) {
|
|
331
|
+
r.el.hasAttribute("role") || (r.el.setAttribute("role", "listitem"), r.el.setAttribute("data-ui-placement-item-role", ""));
|
|
332
|
+
const a = e.indexOf(r) + 1;
|
|
333
|
+
r.el.hasAttribute("data-ui-placement-item-role") && (r.el.setAttribute("aria-posinset", String(a)), r.el.setAttribute("aria-setsize", String(e.length)), r.selected ? r.el.setAttribute("aria-current", "true") : r.el.removeAttribute("aria-current")), r.disabled ? r.el.setAttribute("aria-disabled", "true") : r.el.removeAttribute("aria-disabled");
|
|
334
|
+
} else
|
|
335
|
+
r.el.hasAttribute("data-ui-placement-item-role") && (r.el.removeAttribute("role"), r.el.removeAttribute("data-ui-placement-item-role")), r.el.removeAttribute("aria-posinset"), r.el.removeAttribute("aria-setsize"), r.el.removeAttribute("aria-current"), r.el.removeAttribute("aria-disabled");
|
|
336
|
+
this._isDraggable() && !r.disabled ? (r.el.setAttribute("data-draggable", ""), r.el.setAttribute("draggable", "true")) : (r.el.removeAttribute("data-draggable"), r.el.removeAttribute("draggable"));
|
|
337
337
|
}), this._setFocusedItem(s, !1);
|
|
338
338
|
} finally {
|
|
339
339
|
this._suppressMutations = !1;
|
|
@@ -348,53 +348,53 @@ class I extends b {
|
|
|
348
348
|
return this._computeItems().find((e) => e.el === t) || null;
|
|
349
349
|
}
|
|
350
350
|
_intervalsOverlap(t, e, s, r) {
|
|
351
|
-
const
|
|
352
|
-
return t <=
|
|
351
|
+
const a = t + e - 1, i = s + r - 1;
|
|
352
|
+
return t <= i && s <= a;
|
|
353
353
|
}
|
|
354
354
|
_findNeighbor(t, e) {
|
|
355
|
-
const s = this._computeItems().filter((
|
|
355
|
+
const s = this._computeItems().filter((i) => !i.disabled && i.el !== t.el);
|
|
356
356
|
if (!s.length) return null;
|
|
357
|
-
const r = s.filter((
|
|
357
|
+
const r = s.filter((i) => e === "left" || e === "right" ? this._intervalsOverlap(t.row, t.rowSpan, i.row, i.rowSpan) ? e === "left" ? i.column < t.column : i.column > t.column : !1 : this._intervalsOverlap(t.column, t.columnSpan, i.column, i.columnSpan) ? e === "up" ? i.row < t.row : i.row > t.row : !1);
|
|
358
358
|
if (!r.length) {
|
|
359
|
-
const
|
|
360
|
-
return
|
|
359
|
+
const i = this._order() === "row-major" ? this._sortMeta(this._computeItems()) : this._computeItems(), o = i.findIndex((l) => l.el === t.el);
|
|
360
|
+
return i[o + (e === "left" || e === "up" ? -1 : 1)]?.el || null;
|
|
361
361
|
}
|
|
362
|
-
return r.sort((
|
|
362
|
+
return r.sort((i, o) => {
|
|
363
363
|
if (e === "left" || e === "right") {
|
|
364
|
-
const c = Math.abs(
|
|
365
|
-
return c !== m ? c - m : Math.abs(
|
|
364
|
+
const c = Math.abs(i.column - t.column), m = Math.abs(o.column - t.column);
|
|
365
|
+
return c !== m ? c - m : Math.abs(i.row - t.row) - Math.abs(o.row - t.row);
|
|
366
366
|
}
|
|
367
|
-
const n = Math.abs(
|
|
368
|
-
return n !== l ? n - l : Math.abs(
|
|
367
|
+
const n = Math.abs(i.row - t.row), l = Math.abs(o.row - t.row);
|
|
368
|
+
return n !== l ? n - l : Math.abs(i.column - t.column) - Math.abs(o.column - t.column);
|
|
369
369
|
})[0]?.el || null;
|
|
370
370
|
}
|
|
371
371
|
_moveItemTo(t, e, s, r) {
|
|
372
|
-
const
|
|
373
|
-
!
|
|
372
|
+
const a = this._metaForItem(t);
|
|
373
|
+
!a || a.disabled || (t.setAttribute("data-row", String(e)), t.setAttribute("data-column", String(s)), this.dispatchEvent(
|
|
374
374
|
new CustomEvent("itemmove", {
|
|
375
375
|
bubbles: !0,
|
|
376
376
|
composed: !0,
|
|
377
377
|
detail: {
|
|
378
|
-
value:
|
|
378
|
+
value: a.value,
|
|
379
379
|
reason: r,
|
|
380
|
-
from: { row:
|
|
380
|
+
from: { row: a.row, column: a.column },
|
|
381
381
|
to: { row: e, column: s }
|
|
382
382
|
}
|
|
383
383
|
})
|
|
384
384
|
), this.requestRender());
|
|
385
385
|
}
|
|
386
386
|
_swapItems(t, e, s) {
|
|
387
|
-
const r = this._metaForItem(t),
|
|
388
|
-
!r || !
|
|
387
|
+
const r = this._metaForItem(t), a = this._metaForItem(e);
|
|
388
|
+
!r || !a || (t.setAttribute("data-row", String(a.row)), t.setAttribute("data-column", String(a.column)), e.setAttribute("data-row", String(r.row)), e.setAttribute("data-column", String(r.column)), this.dispatchEvent(
|
|
389
389
|
new CustomEvent("itemmove", {
|
|
390
390
|
bubbles: !0,
|
|
391
391
|
composed: !0,
|
|
392
392
|
detail: {
|
|
393
393
|
value: r.value,
|
|
394
|
-
targetValue:
|
|
394
|
+
targetValue: a.value,
|
|
395
395
|
reason: s,
|
|
396
396
|
from: { row: r.row, column: r.column },
|
|
397
|
-
to: { row:
|
|
397
|
+
to: { row: a.row, column: a.column }
|
|
398
398
|
}
|
|
399
399
|
})
|
|
400
400
|
), this.requestRender());
|
|
@@ -410,24 +410,24 @@ class I extends b {
|
|
|
410
410
|
if (!e) return;
|
|
411
411
|
const s = this._metaForItem(e);
|
|
412
412
|
if (!s || s.disabled) return;
|
|
413
|
-
const r = t.key,
|
|
414
|
-
if (t.altKey && this._isDraggable() &&
|
|
413
|
+
const r = t.key, a = r === "ArrowLeft" || r === "ArrowRight" || r === "ArrowUp" || r === "ArrowDown";
|
|
414
|
+
if (t.altKey && this._isDraggable() && a) {
|
|
415
415
|
t.preventDefault();
|
|
416
416
|
const o = r === "ArrowDown" ? 1 : r === "ArrowUp" ? -1 : 0, n = r === "ArrowRight" ? 1 : r === "ArrowLeft" ? -1 : 0;
|
|
417
417
|
this._moveItemTo(e, Math.max(1, s.row + o), Math.max(1, s.column + n), "keyboard"), this._setFocusedItem(e, !0);
|
|
418
418
|
return;
|
|
419
419
|
}
|
|
420
|
-
let
|
|
421
|
-
if (r === "ArrowLeft")
|
|
422
|
-
else if (r === "ArrowRight")
|
|
423
|
-
else if (r === "ArrowUp")
|
|
424
|
-
else if (r === "ArrowDown")
|
|
425
|
-
else if (r === "Home")
|
|
420
|
+
let i = null;
|
|
421
|
+
if (r === "ArrowLeft") i = this._findNeighbor(s, "left");
|
|
422
|
+
else if (r === "ArrowRight") i = this._findNeighbor(s, "right");
|
|
423
|
+
else if (r === "ArrowUp") i = this._findNeighbor(s, "up");
|
|
424
|
+
else if (r === "ArrowDown") i = this._findNeighbor(s, "down");
|
|
425
|
+
else if (r === "Home") i = (this._order() === "row-major" ? this._sortMeta(this._computeItems()) : this._computeItems())[0]?.el || null;
|
|
426
426
|
else if (r === "End") {
|
|
427
427
|
const o = this._order() === "row-major" ? this._sortMeta(this._computeItems()) : this._computeItems();
|
|
428
|
-
|
|
428
|
+
i = o[o.length - 1]?.el || null;
|
|
429
429
|
}
|
|
430
|
-
|
|
430
|
+
i && (t.preventDefault(), this._setFocusedItem(i, !0));
|
|
431
431
|
}
|
|
432
432
|
_onDragStart(t) {
|
|
433
433
|
if (!this._isDraggable()) return;
|
package/dist/plugin-panel.cjs.js
CHANGED
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
<header class="header" part="header" style="display:flex;align-items:flex-start;gap:10px;padding:12px 14px 0;">
|
|
122
122
|
<div style="min-width:0;display:grid;gap:4px;flex:1 1 auto;">
|
|
123
123
|
${e?`<strong part="title" style="font-size:14px;line-height:1.3;">${e}</strong>`:""}
|
|
124
|
-
${t?`<p part="description" style="margin:0;font-size:12px;line-height:1.4;color:var(--ui-color-muted, #
|
|
124
|
+
${t?`<p part="description" style="margin:0;font-size:12px;line-height:1.4;color:var(--ui-color-muted, #526175);">${t}</p>`:""}
|
|
125
125
|
</div>
|
|
126
126
|
${i?'<button type="button" class="dismiss" part="dismiss-button" aria-label="Close panel" style="border:none;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:4px 6px;">Close</button>':""}
|
|
127
127
|
</header>
|
package/dist/plugin-panel.esm.js
CHANGED
|
@@ -155,7 +155,7 @@ class o extends a {
|
|
|
155
155
|
<header class="header" part="header" style="display:flex;align-items:flex-start;gap:10px;padding:12px 14px 0;">
|
|
156
156
|
<div style="min-width:0;display:grid;gap:4px;flex:1 1 auto;">
|
|
157
157
|
${e ? `<strong part="title" style="font-size:14px;line-height:1.3;">${e}</strong>` : ""}
|
|
158
|
-
${t ? `<p part="description" style="margin:0;font-size:12px;line-height:1.4;color:var(--ui-color-muted, #
|
|
158
|
+
${t ? `<p part="description" style="margin:0;font-size:12px;line-height:1.4;color:var(--ui-color-muted, #526175);">${t}</p>` : ""}
|
|
159
159
|
</div>
|
|
160
160
|
${i ? '<button type="button" class="dismiss" part="dismiss-button" aria-label="Close panel" style="border:none;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:4px 6px;">Close</button>' : ""}
|
|
161
161
|
</header>
|
package/dist/popover.cjs.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
color-mix(in srgb, var(--ui-color-surface-elevated, #f8fafc) 24%, var(--ui-color-surface, #ffffff)) 100%
|
|
9
9
|
);
|
|
10
10
|
--ui-popover-text: var(--ui-color-text, #0f172a);
|
|
11
|
-
--ui-popover-muted: var(--ui-color-muted, #
|
|
11
|
+
--ui-popover-muted: var(--ui-color-muted, #526175);
|
|
12
12
|
--ui-popover-border-color: color-mix(in srgb, var(--ui-color-border, #cbd5e1) 70%, transparent);
|
|
13
13
|
--ui-popover-border: 1px solid var(--ui-popover-border-color);
|
|
14
14
|
--ui-popover-shadow:
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.popover-shell[data-tone="neutral"] {
|
|
48
|
-
--ui-popover-accent: var(--ui-color-muted, #
|
|
48
|
+
--ui-popover-accent: var(--ui-color-muted, #526175);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
.popover-shell[data-tone="brand"],
|
|
@@ -54,11 +54,11 @@
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
.popover-shell[data-tone="success"] {
|
|
57
|
-
--ui-popover-accent: var(--ui-color-success, #
|
|
57
|
+
--ui-popover-accent: var(--ui-color-success, #15803d);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
.popover-shell[data-tone="warning"] {
|
|
61
|
-
--ui-popover-accent: var(--ui-color-warning, #
|
|
61
|
+
--ui-popover-accent: var(--ui-color-warning, #b45309);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
.popover-shell[data-tone="danger"] {
|
|
@@ -283,4 +283,4 @@
|
|
|
283
283
|
box-shadow: none;
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
|
-
`;class d extends h.ElementBase{constructor(){super(),this._portalEl=null,this._panelEl=null,this._positioner=null,this._layer=null,this._isOpen=!1,this._restoreFocusEl=null,this._contentObserver=null,this._hostObserver=null,this._syncPortalScheduled=!1,this._onHostClick=this._handleHostClick.bind(this)}static get observedAttributes(){return["open","placement","offset","flip","shift","close-on-escape","close-on-outside","variant","tone","size","radius","elevation"]}attributeChangedCallback(e,t,r){if(t!==r){if(e==="open"){this._syncOpenState();return}this._isOpen&&this._portalEl?.isConnected&&(e==="placement"||e==="offset"||e==="flip"||e==="shift"||e==="variant"||e==="tone"||e==="size"||e==="radius"||e==="elevation"?this._mountPortal():(e==="close-on-escape"||e==="close-on-outside")&&this._syncDismissableLayer())}}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onHostClick),this._observeHost(),this._syncOpenState()}disconnectedCallback(){this.removeEventListener("click",this._onHostClick),this._hostObserver?.disconnect(),this._hostObserver=null,this._teardownPortal(),super.disconnectedCallback()}_handleHostClick(e){const t=this._getTrigger();if(!t)return;const r=typeof e.composedPath=="function"?e.composedPath():[],o=e.target instanceof Node?e.target:null;(r.includes(t)||o&&(t===o||t.contains(o)))&&this.toggle()}open(){this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.hasAttribute("open")?this.close():this.open()}updatePosition(){this._positioner?.update()}_getTrigger(){return this.querySelector('[slot="trigger"]')}_buildPortalContent(){const e=document.createElement("div");e.className="popover-shell",e.style.pointerEvents="auto";const t=this.getAttribute("variant");t&&(e.dataset.variant=t);const r=this.getAttribute("tone");r&&(e.dataset.tone=r);const o=this.getAttribute("size");o&&(e.dataset.size=o);const
|
|
286
|
+
`;class d extends h.ElementBase{constructor(){super(),this._portalEl=null,this._panelEl=null,this._positioner=null,this._layer=null,this._isOpen=!1,this._restoreFocusEl=null,this._contentObserver=null,this._hostObserver=null,this._syncPortalScheduled=!1,this._onHostClick=this._handleHostClick.bind(this)}static get observedAttributes(){return["open","placement","offset","flip","shift","close-on-escape","close-on-outside","variant","tone","size","radius","elevation"]}attributeChangedCallback(e,t,r){if(t!==r){if(e==="open"){this._syncOpenState();return}this._isOpen&&this._portalEl?.isConnected&&(e==="placement"||e==="offset"||e==="flip"||e==="shift"||e==="variant"||e==="tone"||e==="size"||e==="radius"||e==="elevation"?this._mountPortal():(e==="close-on-escape"||e==="close-on-outside")&&this._syncDismissableLayer())}}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onHostClick),this._observeHost(),this._syncOpenState()}disconnectedCallback(){this.removeEventListener("click",this._onHostClick),this._hostObserver?.disconnect(),this._hostObserver=null,this._teardownPortal(),super.disconnectedCallback()}_handleHostClick(e){const t=this._getTrigger();if(!t)return;const r=typeof e.composedPath=="function"?e.composedPath():[],o=e.target instanceof Node?e.target:null;(r.includes(t)||o&&(t===o||t.contains(o)))&&this.toggle()}open(){this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.hasAttribute("open")?this.close():this.open()}updatePosition(){this._positioner?.update()}_getTrigger(){return this.querySelector('[slot="trigger"]')}_buildPortalContent(){const e=document.createElement("div");e.className="popover-shell",e.style.pointerEvents="auto";const t=this.getAttribute("variant");t&&(e.dataset.variant=t);const r=this.getAttribute("tone");r&&(e.dataset.tone=r);const o=this.getAttribute("size");o&&(e.dataset.size=o);const s=this.getAttribute("elevation");s&&(e.dataset.elevation=s);const a=this.getAttribute("radius");if(a&&a.trim()){const p=a.trim(),v=/^-?\d+(\.\d+)?$/.test(p)?`${p}px`:p;e.style.setProperty("--ui-popover-radius",v)}const l=document.createElement("style");l.textContent=m,e.appendChild(l);const i=document.createElement("div");i.className="panel show",this._panelEl=i;const c=document.createElement("div");c.className="arrow",i.appendChild(c);const u=this.querySelector('[slot="content"]'),n=document.createElement("div");return n.className="content",u&&n.appendChild(u.cloneNode(!0)),i.appendChild(n),e.appendChild(i),e}_getContentSource(){return this.querySelector('[slot="content"]')}_placement(){const e=this.getAttribute("placement");return e||"bottom"}_offset(){const e=Number(this.getAttribute("offset"));return Number.isFinite(e)?e:8}_closeOnEscape(){return this.getAttribute("close-on-escape")!=="false"}_closeOnOutside(){return this.getAttribute("close-on-outside")!=="false"}_syncDismissableLayer(){const e=this._getTrigger();!e||!this._panelEl||(this._layer?.destroy(),this._layer=b.createDismissableLayer({node:this._panelEl,trigger:e,closeOnEscape:this._closeOnEscape(),closeOnPointerOutside:this._closeOnOutside(),onDismiss:()=>this.close()}))}_teardownPortal(){if(this._contentObserver?.disconnect(),this._contentObserver=null,this._layer?.destroy(),this._layer=null,this._positioner?.destroy(),this._positioner=null,this._panelEl=null,this._portalEl?.parentElement)try{this._portalEl.parentElement.removeChild(this._portalEl)}catch{}this._portalEl=null}_schedulePortalSync(){this._syncPortalScheduled||!this._isOpen||(this._syncPortalScheduled=!0,queueMicrotask(()=>{this._syncPortalScheduled=!1,this._isOpen&&this._mountPortal()}))}_observeContent(){this._contentObserver?.disconnect(),this._contentObserver=null;const e=this._getContentSource();!e||typeof MutationObserver>"u"||(this._contentObserver=new MutationObserver(()=>this._schedulePortalSync()),this._contentObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))}_observeHost(){this._hostObserver?.disconnect(),this._hostObserver=null,!(typeof MutationObserver>"u")&&(this._hostObserver=new MutationObserver(()=>this._schedulePortalSync()),this._hostObserver.observe(this,{childList:!0,subtree:!1}))}_mountPortal(){const e=this._getTrigger();if(!e)return;this._teardownPortal(),this._portalEl=this._buildPortalContent();const t=f.createPortalContainer();t&&(t.appendChild(this._portalEl),this._observeContent(),this._positioner=g.createPositioner({anchor:e,floating:this._portalEl,placement:this._placement(),offset:this._offset(),shift:this.getAttribute("shift")!=="false",flip:this.getAttribute("flip")!=="false",arrow:this._portalEl.querySelector(".arrow")}),this._syncDismissableLayer())}_syncOpenState(){const e=this.hasAttribute("open");if(e===this._isOpen){e&&(!this._portalEl||!this._portalEl.isConnected?this._mountPortal():this._positioner?.update());return}if(this._isOpen=e,e){this._restoreFocusEl=document.activeElement instanceof HTMLElement?document.activeElement:null,this._mountPortal(),this.dispatchEvent(new CustomEvent("open",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("open-change",{detail:{open:!0},bubbles:!0,composed:!0}));return}this._teardownPortal(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("open-change",{detail:{open:!1},bubbles:!0,composed:!0}));const t=this._getTrigger(),r=this._restoreFocusEl;this._restoreFocusEl=null;const o=(t&&t.isConnected?t:r)||null;if(o&&o.isConnected)try{o.focus()}catch{}}render(){this.setContent('<slot name="trigger"></slot>')}shouldRenderOnAttributeChange(e,t,r){return!1}}typeof customElements<"u"&&!customElements.get("ui-popover")&&customElements.define("ui-popover",d);exports.UIPopover=d;
|