@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/dock.cjs.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("./ElementBase-EV6mVBUV.js"),F=1.92,C=148,R=1,D=20,
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("./ElementBase-EV6mVBUV.js"),F=1.92,C=148,R=1,D=20,k=.18,_="12px",x="12px 14px",v="56px",O=56,z={xs:{gap:"8px",padding:"8px 10px",itemSize:40,iconSize:18,itemRadius:14},sm:{gap:"10px",padding:"10px 12px",itemSize:48,iconSize:20,itemRadius:16},md:{gap:_,padding:x,itemSize:56,iconSize:24,itemRadius:18},lg:{gap:"14px",padding:"14px 16px",itemSize:64,iconSize:28,itemRadius:20},xl:{gap:"18px",padding:"16px 20px",itemSize:74,iconSize:32,itemRadius:24}},P={calm:{response:.11,damping:.82,spread:.62,lift:.82},smooth:{response:.16,damping:.78,spread:.82,lift:1},snappy:{response:.22,damping:.74,spread:.92,lift:1.06},bouncy:{response:.24,damping:.66,spread:1,lift:1.12}},E=new Set(["gap","padding","radius","item-size","variant","tone","size","elevation"]),N=new Set(["orientation","magnification","distance","idle-scale","lift","smoothing","animation","gap","padding","item-size"]),I=new Set(["label-mode","label-placement"]),V=new Set(["none","sm","md","lg","full"]),q=`
|
|
2
2
|
:host {
|
|
3
|
-
--ui-dock-gap: ${
|
|
4
|
-
--ui-dock-padding: ${
|
|
3
|
+
--ui-dock-gap: ${_};
|
|
4
|
+
--ui-dock-padding: ${x};
|
|
5
5
|
--ui-dock-radius: 24px;
|
|
6
|
-
--ui-dock-item-size: ${
|
|
6
|
+
--ui-dock-item-size: ${v};
|
|
7
7
|
--ui-dock-icon-size: 24px;
|
|
8
8
|
--ui-dock-item-radius: 18px;
|
|
9
9
|
--ui-dock-accent: var(--ui-color-primary, var(--ui-primary, #2563eb));
|
|
@@ -64,9 +64,9 @@
|
|
|
64
64
|
|
|
65
65
|
:host([size="md"]),
|
|
66
66
|
:host([size="2"]) {
|
|
67
|
-
--ui-dock-gap: ${
|
|
68
|
-
--ui-dock-padding: ${
|
|
69
|
-
--ui-dock-item-size: ${
|
|
67
|
+
--ui-dock-gap: ${_};
|
|
68
|
+
--ui-dock-padding: ${x};
|
|
69
|
+
--ui-dock-item-size: ${v};
|
|
70
70
|
--ui-dock-icon-size: 24px;
|
|
71
71
|
--ui-dock-item-radius: 18px;
|
|
72
72
|
--ui-dock-label-padding: 6px 10px;
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
:host([tone="neutral"]) {
|
|
119
|
-
--ui-dock-accent: #
|
|
119
|
+
--ui-dock-accent: #526175;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
:host([tone="info"]) {
|
|
@@ -124,11 +124,11 @@
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
:host([tone="success"]) {
|
|
127
|
-
--ui-dock-accent: var(--ui-color-success, #
|
|
127
|
+
--ui-dock-accent: var(--ui-color-success, #15803d);
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
:host([tone="warning"]) {
|
|
131
|
-
--ui-dock-accent: var(--ui-color-warning, #
|
|
131
|
+
--ui-dock-accent: var(--ui-color-warning, #b45309);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
:host([tone="danger"]) {
|
|
@@ -335,7 +335,7 @@
|
|
|
335
335
|
scroll-behavior: auto;
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
|
-
`;function
|
|
338
|
+
`;function g(s,e,t){return Math.min(t,Math.max(e,s))}function w(s,e){if(s==null||s.trim()==="")return e;const t=Number(s);return Number.isFinite(t)?t:e}function y(s,e){return Math.max(0,w(s,e))}function U(s,e){return g(w(s,e),.01,1)}function b(s){if(s==null||s.trim()==="")return null;const e=s.trim().split(/\s+/).filter(Boolean);return e.length?e.map(t=>/^-?\d+(\.\d+)?$/.test(t)?`${t}px`:t).join(" "):null}function $(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):window.setTimeout(()=>s(Date.now()),16)}function A(s){if(s!=null){if(typeof cancelAnimationFrame=="function"){cancelAnimationFrame(s);return}window.clearTimeout(s)}}function B(s){return s instanceof HTMLElement}function H(s){return s.hasAttribute("disabled")||s.getAttribute("aria-disabled")==="true"}function j(s){return s.hasAttribute("data-active")||s.getAttribute("aria-current")==="page"||s.getAttribute("aria-current")==="true"}function S(s,e){return s==="top"||s==="bottom"||s==="start"||s==="end"?s:e==="horizontal"?"top":"end"}function L(s,e,t){if(!s.length)return-1;let a=e;for(let n=0;n<s.length;n+=1)if(a=(a+t+s.length)%s.length,!s[a]?.disabled)return a;return-1}class M extends T.ElementBase{constructor(){super(),this._frameEl=null,this._slotEl=null,this._items=[],this._itemNames=new WeakMap,this._resizeObserver=null,this._mutationObserver=null,this._mediaQuery=null,this._raf=null,this._pointerActive=!1,this._pointerCoord=Number.NaN,this._focusedIndex=-1,this._rovingIndex=0,this._reducedMotion=!1,this._handleSlotChange=this._handleSlotChange.bind(this),this._handlePointerMove=this._handlePointerMove.bind(this),this._handlePointerLeave=this._handlePointerLeave.bind(this),this._handleFocusIn=this._handleFocusIn.bind(this),this._handleFocusOut=this._handleFocusOut.bind(this),this._handleKeyDown=this._handleKeyDown.bind(this),this._handleResize=this._handleResize.bind(this),this._handleLightDomMutation=this._handleLightDomMutation.bind(this),this._handleReducedMotionChange=this._handleReducedMotionChange.bind(this)}static get observedAttributes(){return["orientation","magnification","distance","idle-scale","lift","smoothing","animation","gap","padding","item-size","label-mode","label-placement","variant","tone","size","radius","elevation"]}connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role","toolbar"),this._observeLightDom(),this._bindReducedMotion(),this._syncHostStyles(),queueMicrotask(()=>this.refresh())}disconnectedCallback(){if(this._slotEl&&(this._slotEl.removeEventListener("slotchange",this._handleSlotChange),this._slotEl=null),this._frameEl&&(this._frameEl.removeEventListener("pointermove",this._handlePointerMove),this._frameEl.removeEventListener("pointerleave",this._handlePointerLeave),this._frameEl=null),this.removeEventListener("focusin",this._handleFocusIn),this.removeEventListener("focusout",this._handleFocusOut),this.removeEventListener("keydown",this._handleKeyDown),this._resizeObserver?.disconnect(),this._resizeObserver=null,this._mutationObserver?.disconnect(),this._mutationObserver=null,this._mediaQuery){try{this._mediaQuery.removeEventListener("change",this._handleReducedMotionChange)}catch{this._mediaQuery.removeListener(this._handleReducedMotionChange)}this._mediaQuery=null}A(this._raf),this._raf=null,super.disconnectedCallback()}refresh(){this._collectItems(),this._syncHostStyles(),this._measureItems(),this._syncTabIndices(),this._updateTargets(),this._queueAnimation()}focusItem(e){const t=typeof e=="number"?e:this._items.findIndex(a=>a.el.getAttribute("data-value")===String(e));t<0||t>=this._items.length||this._items[t]?.disabled||(this._focusedIndex=t,this._rovingIndex=t,this._syncTabIndices(),this._items[t]?.el.focus(),this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation())}clearActive(){this._pointerActive=!1,this._pointerCoord=Number.NaN,this._focusedIndex=-1,this._updateTargets(),this._queueAnimation()}attributeChangedCallback(e,t,a){!e||t===a||!this.isConnected||(E.has(e)&&this._syncHostStyles(),I.has(e)&&this._syncItemChrome(),(N.has(e)||I.has(e)||E.has(e))&&this.refresh())}shouldRenderOnAttributeChange(){return!1}render(){this.setContent(`
|
|
339
339
|
<style>${q}</style>
|
|
340
340
|
<div class="root" part="root">
|
|
341
341
|
<div class="frame" part="frame">
|
|
@@ -344,4 +344,4 @@
|
|
|
344
344
|
</div>
|
|
345
345
|
</div>
|
|
346
346
|
</div>
|
|
347
|
-
`),this._bindElements(),this._syncHostStyles(),this.refresh()}_bindElements(){const e=this.root.querySelector(".frame");e&&e!==this._frameEl&&(this._frameEl&&(this._frameEl.removeEventListener("pointermove",this._handlePointerMove),this._frameEl.removeEventListener("pointerleave",this._handlePointerLeave)),e.addEventListener("pointermove",this._handlePointerMove),e.addEventListener("pointerleave",this._handlePointerLeave),this._frameEl=e);const t=this.root.querySelector("slot");t&&t!==this._slotEl&&(this._slotEl&&this._slotEl.removeEventListener("slotchange",this._handleSlotChange),t.addEventListener("slotchange",this._handleSlotChange),this._slotEl=t),this.removeEventListener("focusin",this._handleFocusIn),this.removeEventListener("focusout",this._handleFocusOut),this.removeEventListener("keydown",this._handleKeyDown),this.addEventListener("focusin",this._handleFocusIn),this.addEventListener("focusout",this._handleFocusOut),this.addEventListener("keydown",this._handleKeyDown),this._ensureResizeObserver()}_observeLightDom(){this._mutationObserver||typeof MutationObserver>"u"||(this._mutationObserver=new MutationObserver(this._handleLightDomMutation),this._mutationObserver.observe(this,{childList:!0,subtree:!0,characterData:!0}))}_ensureResizeObserver(){this._resizeObserver||typeof ResizeObserver>"u"||(this._resizeObserver=new ResizeObserver(this._handleResize),this._resizeObserver.observe(this))}_bindReducedMotion(){if(typeof window>"u"||typeof window.matchMedia!="function")return;const e=window.matchMedia("(prefers-reduced-motion: reduce)");this._reducedMotion=e.matches,this._mediaQuery=e;try{e.addEventListener("change",this._handleReducedMotionChange)}catch{e.addListener(this._handleReducedMotionChange)}}_handleReducedMotionChange(e){this._reducedMotion=e.matches,this.refresh()}_handleSlotChange(){this.refresh()}_handleLightDomMutation(){this.refresh()}_handleResize(){this._measureItems(),this._updateTargets(),this._queueAnimation()}_handlePointerMove(e){if("pointerType"in e&&e.pointerType==="touch"||!this._frameEl)return;const t=this._frameEl.getBoundingClientRect(),n=this._orientation()==="horizontal"?e.clientX-t.left:e.clientY-t.top;this._pointerActive=!0,this._pointerCoord=n,this._measureItems(),this._updateTargets(),this._queueAnimation()}_handlePointerLeave(){this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation()}_handleFocusIn(e){const t=e.target?.closest?.("[data-ui-dock-item]");if(!t)return;const a=this._items.findIndex(n=>n.el===t);a<0||(this._focusedIndex=a,this._rovingIndex=a,this._syncTabIndices(),this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation())}_handleFocusOut(e){const t=e.relatedTarget;t&&this.contains(t)||(this._focusedIndex=-1,this._pointerActive||(this._updateTargets(),this._queueAnimation()))}_handleKeyDown(e){if(e.defaultPrevented||!this._items.length)return;const t=this._orientation(),a=t==="horizontal"?["ArrowLeft"]:["ArrowUp"],n=t==="horizontal"?["ArrowRight"]:["ArrowDown"];if(a.includes(e.key)){e.preventDefault();const i=A(this._items,this._rovingIndex,-1);i>=0&&this.focusItem(i);return}if(n.includes(e.key)){e.preventDefault();const i=A(this._items,this._rovingIndex,1);i>=0&&this.focusItem(i);return}if(e.key==="Home"){e.preventDefault();const i=this._items.findIndex(c=>!c.disabled);i>=0&&this.focusItem(i);return}if(e.key==="End"){e.preventDefault();for(let i=this._items.length-1;i>=0;i-=1)if(!this._items[i]?.disabled){this.focusItem(i);break}return}e.key==="Escape"&&this.clearActive()}_collectItems(){const e=new Map(this._items.map(n=>[n.el,n])),t=Array.from(this.children).filter(B).map(n=>{const i=e.get(n),c=n.querySelector("[data-ui-dock-icon]"),o=n.querySelector("[data-ui-dock-label]"),l=n.querySelector("[data-ui-dock-badge]");return{el:n,iconEl:c,labelEl:o,badgeEl:l,center:i?.center??0,currentScale:i?.currentScale??this._idleScale(),targetScale:i?.targetScale??this._idleScale(),currentLift:i?.currentLift??0,targetLift:i?.targetLift??0,labelVisible:i?.labelVisible??!1,disabled:H(n),sticky:j(n),scaleVelocity:i?.scaleVelocity??0,liftVelocity:i?.liftVelocity??0}});this._items=t;const a=this._items.findIndex(n=>n.sticky&&!n.disabled);a>=0?this._rovingIndex=a:(!this._items[this._rovingIndex]||this._items[this._rovingIndex]?.disabled)&&(this._rovingIndex=this._items.findIndex(n=>!n.disabled)),this._rovingIndex<0&&(this._rovingIndex=0),(this._focusedIndex>=this._items.length||this._items[this._focusedIndex]?.disabled)&&(this._focusedIndex=-1),this._syncItemChrome()}_syncItemChrome(){const e=I(this.getAttribute("label-placement"),this._orientation()),t=this._labelMode(),a=this._orientation();this._items.forEach(n=>{const{el:i,iconEl:c,labelEl:o,badgeEl:l,sticky:d}=n;if(i.setAttribute("data-ui-dock-item",""),i.style.setProperty("position","relative"),i.style.setProperty("display","inline-flex"),i.style.setProperty("align-items","center"),i.style.setProperty("justify-content","center"),i.style.setProperty("inline-size","var(--ui-dock-item-size)"),i.style.setProperty("block-size","var(--ui-dock-item-size)"),i.style.setProperty("min-inline-size","var(--ui-dock-item-size)"),i.style.setProperty("min-block-size","var(--ui-dock-item-size)"),i.style.setProperty("flex","0 0 var(--ui-dock-item-size)"),i.style.setProperty("box-sizing","border-box"),i.style.setProperty("background","transparent"),i.style.setProperty("border","none"),i.style.setProperty("padding","0"),i.style.setProperty("margin","0"),i.style.setProperty("color","inherit"),i.style.setProperty("text-decoration","none"),i.style.setProperty("outline","none"),i.style.setProperty("cursor",n.disabled?"not-allowed":"pointer"),i.style.setProperty("transform-origin",a==="horizontal"?"center bottom":"center center"),i.style.setProperty("touch-action","manipulation"),i.hasAttribute("tabindex")||(i.tabIndex=-1),!i.hasAttribute("aria-label")){const r=o?.textContent?.trim()||i.getAttribute("data-label")||i.getAttribute("title")||void 0;r&&i.setAttribute("aria-label",r)}d?i.setAttribute("data-dock-current","true"):i.removeAttribute("data-dock-current"),c&&(c.style.setProperty("display","inline-flex"),c.style.setProperty("align-items","center"),c.style.setProperty("justify-content","center"),c.style.setProperty("inline-size","100%"),c.style.setProperty("block-size","100%"),c.style.setProperty("border-radius","var(--ui-dock-item-radius)"),c.style.setProperty("background","var(--ui-dock-item-bg)"),c.style.setProperty("border","1px solid var(--ui-dock-item-border)"),c.style.setProperty("box-shadow","var(--ui-dock-item-shadow)"),c.style.setProperty("backdrop-filter","var(--ui-dock-item-backdrop)"),c.style.setProperty("font-size","var(--ui-dock-icon-size)"),c.style.setProperty("color","inherit"),c.style.setProperty("overflow","hidden"),c.style.setProperty("box-sizing","border-box")),o&&(o.setAttribute("aria-hidden","true"),o.style.setProperty("position","absolute"),o.style.setProperty("pointer-events","none"),o.style.setProperty("white-space","nowrap"),o.style.setProperty("padding","var(--ui-dock-label-padding)"),o.style.setProperty("border-radius","var(--ui-dock-label-radius)"),o.style.setProperty("background","var(--ui-dock-label-bg)"),o.style.setProperty("color","var(--ui-dock-label-color)"),o.style.setProperty("border","1px solid var(--ui-dock-label-border)"),o.style.setProperty("box-shadow","var(--ui-dock-label-shadow)"),o.style.setProperty("backdrop-filter","var(--ui-dock-label-backdrop)"),o.style.setProperty("font-size","var(--ui-dock-label-font-size)"),o.style.setProperty("font-weight","var(--ui-dock-label-font-weight)"),o.style.setProperty("line-height","1.2"),o.style.setProperty("letter-spacing","0.01em"),o.style.setProperty("min-inline-size","max-content"),o.style.setProperty("z-index","3"),o.style.setProperty("display",t==="none"?"none":"inline-flex"),o.style.removeProperty("top"),o.style.removeProperty("bottom"),o.style.removeProperty("left"),o.style.removeProperty("right"),e==="top"?(o.style.setProperty("left","50%"),o.style.setProperty("bottom","calc(100% + var(--ui-dock-label-offset))")):e==="bottom"?(o.style.setProperty("left","50%"),o.style.setProperty("top","calc(100% + var(--ui-dock-label-offset))")):e==="start"?(o.style.setProperty("right","calc(100% + var(--ui-dock-label-offset))"),o.style.setProperty("top","50%")):(o.style.setProperty("left","calc(100% + var(--ui-dock-label-offset))"),o.style.setProperty("top","50%"))),l&&(l.setAttribute("aria-hidden","true"),l.style.setProperty("position","absolute"),l.style.setProperty("inset-inline-end","-2px"),l.style.setProperty("inset-block-start","-2px"),l.style.setProperty("display","inline-flex"),l.style.setProperty("align-items","center"),l.style.setProperty("justify-content","center"),l.style.setProperty("min-inline-size","18px"),l.style.setProperty("min-block-size","18px"),l.style.setProperty("padding","0 6px"),l.style.setProperty("border-radius","999px"),l.style.setProperty("background","var(--ui-dock-accent)"),l.style.setProperty("color","#ffffff"),l.style.setProperty("font-size","11px"),l.style.setProperty("font-weight","700"),l.style.setProperty("box-shadow","0 8px 18px color-mix(in srgb, var(--ui-dock-accent) 32%, rgba(15, 23, 42, 0.18))"),l.style.setProperty("z-index","4"))})}_syncTabIndices(){const e=this._items.findIndex(t=>!t.disabled);e>=0&&(this._rovingIndex<0||this._items[this._rovingIndex]?.disabled)&&(this._rovingIndex=e),this._items.forEach((t,a)=>{if(t.disabled){t.el.tabIndex=-1;return}t.el.tabIndex=a===this._rovingIndex?0:-1})}_measureItems(){if(!this._frameEl)return;const e=this._frameEl.getBoundingClientRect(),t=this._orientation(),a=t==="horizontal"?e.left:e.top;this._items.forEach(n=>{const i=n.el.getBoundingClientRect();n.center=(t==="horizontal"?i.left+i.width/2:i.top+i.height/2)-a})}_updateTargets(){const e=this._idleScale(),t=Math.max(e,this._magnification()),a=Math.max(1,this._distance()),n=this._lift()*this._motion().lift,i=this._labelMode();this._items.forEach((c,o)=>{let l=e;if(c.sticky&&(l=Math.max(l,e+(t-e)*.08)),this._pointerActive&&Number.isFinite(this._pointerCoord)){const r=Math.abs(this._pointerCoord-c.center),u=p(1-r/a,0,1);l=Math.max(l,e+(t-e)*u*u)}o===this._focusedIndex&&(l=Math.max(l,t)),c.disabled&&(l=e);const d=t===e?0:(l-e)/(t-e);c.targetScale=p(l,e,t),c.targetLift=d*n,c.labelVisible=i==="always"||i!=="none"&&(o===this._focusedIndex||d>.18)}),this._updateRuntimeState()}_applyFrame(e=!1){const t=this._smoothing(),a=this._motion(),n=p(a.response+t*.12,.05,.42),i=p(a.damping+(t-_)*.14,.52,.9),c=this._orientation(),o=I(this.getAttribute("label-placement"),c),l=this._mainAxisOffsets(a.spread);let d=!1;this._items.forEach((r,u)=>{e?(r.currentScale=r.targetScale,r.currentLift=r.targetLift,r.scaleVelocity=0,r.liftVelocity=0):(r.scaleVelocity=r.scaleVelocity*i+(r.targetScale-r.currentScale)*n,r.liftVelocity=r.liftVelocity*i+(r.targetLift-r.currentLift)*n,r.currentScale+=r.scaleVelocity,r.currentLift+=r.liftVelocity,Math.abs(r.targetScale-r.currentScale)<.002&&Math.abs(r.scaleVelocity)<.002&&(r.currentScale=r.targetScale,r.scaleVelocity=0),Math.abs(r.targetLift-r.currentLift)<.002&&Math.abs(r.liftVelocity)<.002&&(r.currentLift=r.targetLift,r.liftVelocity=0)),(Math.abs(r.targetScale-r.currentScale)>=.002||Math.abs(r.targetLift-r.currentLift)>=.002||Math.abs(r.scaleVelocity)>=.002||Math.abs(r.liftVelocity)>=.002)&&(d=!0);const b=l[u]??0,w=c==="horizontal"?b:o==="start"?-r.currentLift*.28:r.currentLift*.28,M=c==="horizontal"?-r.currentLift:b;if(r.el.style.setProperty("transform",`translate3d(${w}px, ${M}px, 0) scale(${r.currentScale})`),r.el.style.setProperty("z-index",String(100+Math.round(r.currentScale*100)+u)),r.iconEl){const f=u===this._focusedIndex?"0 0 0 3px color-mix(in srgb, var(--ui-dock-focus-ring) 26%, transparent), ":r.sticky?"0 0 0 2px color-mix(in srgb, var(--ui-dock-accent) 22%, transparent), ":"";r.iconEl.style.setProperty("box-shadow",`${f}var(--ui-dock-item-shadow)`),r.iconEl.style.setProperty("border-color",r.sticky||u===this._focusedIndex?"color-mix(in srgb, var(--ui-dock-accent) 30%, var(--ui-dock-item-border))":"var(--ui-dock-item-border)")}if(r.labelEl){const f=r.labelVisible;r.labelEl.style.setProperty("opacity",f?"1":"0"),r.labelEl.style.setProperty("transform",this._labelTransform(o,f)),r.labelEl.style.setProperty("filter",f?"blur(0px)":"blur(6px)")}}),d&&this._queueAnimation()}_queueAnimation(){if(this._reducedMotion){E(this._raf),this._raf=null,this._applyFrame(!0);return}this._raf==null&&(this._raf=$(()=>{this._raf=null,this._applyFrame(!1)}))}_mainAxisOffsets(e){if(this._items.length<2)return this._items.map(()=>0);const t=this._resolvedItemSizePx(),a=this._resolvedGapPx(),n=t+a,i=[0];for(let o=1;o<this._items.length;o+=1){const l=this._items[o-1],d=this._items[o],r=t*l.currentScale/2,u=t*d.currentScale/2,b=Math.max(0,r+u-n);i[o]=i[o-1]+b*e}const c=i[i.length-1]/2;return i.map(o=>o-c)}_labelTransform(e,t){return e==="top"?t?"translate3d(-50%, 0, 0)":"translate3d(-50%, 6px, 0)":e==="bottom"?t?"translate3d(-50%, 0, 0)":"translate3d(-50%, -6px, 0)":e==="start"?t?"translate3d(0, -50%, 0)":"translate3d(6px, -50%, 0)":t?"translate3d(0, -50%, 0)":"translate3d(-6px, -50%, 0)"}_syncHostStyles(){const e=h(this.getAttribute("gap"));e?this.style.setProperty("--ui-dock-gap",e):this.style.removeProperty("--ui-dock-gap");const t=h(this.getAttribute("padding"));t?this.style.setProperty("--ui-dock-padding",t):this.style.removeProperty("--ui-dock-padding");const a=h(this.getAttribute("item-size"));a?(this.style.setProperty("--ui-dock-item-size",a),this.style.setProperty("--ui-dock-icon-size",`calc(${a} * 0.44)`)):(this.style.removeProperty("--ui-dock-item-size"),this.style.removeProperty("--ui-dock-icon-size"));const n=this.getAttribute("radius");if(n&&!V.has(n)){const i=h(n)||n;this.style.setProperty("--ui-dock-radius",i),this.style.setProperty("--ui-dock-item-radius",`calc(${i} * 0.82)`)}else this.style.removeProperty("--ui-dock-radius"),this.style.removeProperty("--ui-dock-item-radius")}_orientation(){return this.getAttribute("orientation")==="vertical"?"vertical":"horizontal"}_motion(){const e=this.getAttribute("animation");return e==="calm"||e==="snappy"||e==="bouncy"?v[e]:v.smooth}_labelMode(){const e=this.getAttribute("label-mode");return e==="always"||e==="none"?e:"hover"}_magnification(){return Math.max(this._idleScale(),m(this.getAttribute("magnification"),F))}_distance(){return m(this.getAttribute("distance"),C)}_idleScale(){return Math.max(.5,m(this.getAttribute("idle-scale"),R))}_lift(){return m(this.getAttribute("lift"),D)}_smoothing(){return U(this.getAttribute("smoothing"),_)}_sizeToken(){const e=this.getAttribute("size");return e==="xs"||e==="0"?"xs":e==="sm"||e==="1"?"sm":e==="lg"||e==="3"?"lg":e==="xl"||e==="4"?"xl":"md"}_resolvedItemSizePx(){const e=h(this.getAttribute("item-size"));if(e){const t=Number.parseFloat(e);if(Number.isFinite(t))return t}return k[this._sizeToken()]?.itemSize??O}_resolvedGapPx(){const e=h(this.getAttribute("gap"));if(e){const a=Number.parseFloat(e);if(Number.isFinite(a))return a}const t=k[this._sizeToken()];return t?Number.parseFloat(t.gap):Number.parseFloat(g)}_updateRuntimeState(){const e=this._focusedIndex>=0?"keyboard":this._pointerActive?"pointer":"idle";this.setAttribute("data-state",e)}}typeof customElements<"u"&&!customElements.get("ui-dock")&&customElements.define("ui-dock",L);exports.UIDock=L;
|
|
347
|
+
`),this._bindElements(),this._syncHostStyles(),this.refresh()}_bindElements(){const e=this.root.querySelector(".frame");e&&e!==this._frameEl&&(this._frameEl&&(this._frameEl.removeEventListener("pointermove",this._handlePointerMove),this._frameEl.removeEventListener("pointerleave",this._handlePointerLeave)),e.addEventListener("pointermove",this._handlePointerMove),e.addEventListener("pointerleave",this._handlePointerLeave),this._frameEl=e);const t=this.root.querySelector("slot");t&&t!==this._slotEl&&(this._slotEl&&this._slotEl.removeEventListener("slotchange",this._handleSlotChange),t.addEventListener("slotchange",this._handleSlotChange),this._slotEl=t),this.removeEventListener("focusin",this._handleFocusIn),this.removeEventListener("focusout",this._handleFocusOut),this.removeEventListener("keydown",this._handleKeyDown),this.addEventListener("focusin",this._handleFocusIn),this.addEventListener("focusout",this._handleFocusOut),this.addEventListener("keydown",this._handleKeyDown),this._ensureResizeObserver()}_observeLightDom(){this._mutationObserver||typeof MutationObserver>"u"||(this._mutationObserver=new MutationObserver(this._handleLightDomMutation),this._mutationObserver.observe(this,{childList:!0,subtree:!0,characterData:!0}))}_ensureResizeObserver(){this._resizeObserver||typeof ResizeObserver>"u"||(this._resizeObserver=new ResizeObserver(this._handleResize),this._resizeObserver.observe(this))}_bindReducedMotion(){if(typeof window>"u"||typeof window.matchMedia!="function")return;const e=window.matchMedia("(prefers-reduced-motion: reduce)");this._reducedMotion=e.matches,this._mediaQuery=e;try{e.addEventListener("change",this._handleReducedMotionChange)}catch{e.addListener(this._handleReducedMotionChange)}}_handleReducedMotionChange(e){this._reducedMotion=e.matches,this.refresh()}_handleSlotChange(){this.refresh()}_handleLightDomMutation(){this.refresh()}_handleResize(){this._measureItems(),this._updateTargets(),this._queueAnimation()}_handlePointerMove(e){if("pointerType"in e&&e.pointerType==="touch"||!this._frameEl)return;const t=this._frameEl.getBoundingClientRect(),n=this._orientation()==="horizontal"?e.clientX-t.left:e.clientY-t.top;this._pointerActive=!0,this._pointerCoord=n,this._measureItems(),this._updateTargets(),this._queueAnimation()}_handlePointerLeave(){this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation()}_handleFocusIn(e){const t=e.target?.closest?.("[data-ui-dock-item]");if(!t)return;const a=this._items.findIndex(n=>n.el===t);a<0||(this._focusedIndex=a,this._rovingIndex=a,this._syncTabIndices(),this._pointerActive=!1,this._pointerCoord=Number.NaN,this._updateTargets(),this._queueAnimation())}_handleFocusOut(e){const t=e.relatedTarget;t&&this.contains(t)||(this._focusedIndex=-1,this._pointerActive||(this._updateTargets(),this._queueAnimation()))}_handleKeyDown(e){if(e.defaultPrevented||!this._items.length)return;const t=this._orientation(),a=t==="horizontal"?["ArrowLeft"]:["ArrowUp"],n=t==="horizontal"?["ArrowRight"]:["ArrowDown"];if(a.includes(e.key)){e.preventDefault();const i=L(this._items,this._rovingIndex,-1);i>=0&&this.focusItem(i);return}if(n.includes(e.key)){e.preventDefault();const i=L(this._items,this._rovingIndex,1);i>=0&&this.focusItem(i);return}if(e.key==="Home"){e.preventDefault();const i=this._items.findIndex(c=>!c.disabled);i>=0&&this.focusItem(i);return}if(e.key==="End"){e.preventDefault();for(let i=this._items.length-1;i>=0;i-=1)if(!this._items[i]?.disabled){this.focusItem(i);break}return}e.key==="Escape"&&this.clearActive()}_collectItems(){const e=new Map(this._items.map(n=>[n.el,n])),t=Array.from(this.children).filter(B).map(n=>{const i=e.get(n),c=n.querySelector("[data-ui-dock-icon]"),o=n.querySelector("[data-ui-dock-label]"),l=n.querySelector("[data-ui-dock-badge]");return{el:n,iconEl:c,labelEl:o,badgeEl:l,center:i?.center??0,currentScale:i?.currentScale??this._idleScale(),targetScale:i?.targetScale??this._idleScale(),currentLift:i?.currentLift??0,targetLift:i?.targetLift??0,labelVisible:i?.labelVisible??!1,disabled:H(n),sticky:j(n),scaleVelocity:i?.scaleVelocity??0,liftVelocity:i?.liftVelocity??0}});this._items=t;const a=this._items.findIndex(n=>n.sticky&&!n.disabled);a>=0?this._rovingIndex=a:(!this._items[this._rovingIndex]||this._items[this._rovingIndex]?.disabled)&&(this._rovingIndex=this._items.findIndex(n=>!n.disabled)),this._rovingIndex<0&&(this._rovingIndex=0),(this._focusedIndex>=this._items.length||this._items[this._focusedIndex]?.disabled)&&(this._focusedIndex=-1),this._syncItemChrome()}_syncItemChrome(){const e=S(this.getAttribute("label-placement"),this._orientation()),t=this._labelMode(),a=this._orientation();this._items.forEach(n=>{const{el:i,iconEl:c,labelEl:o,badgeEl:l,sticky:h}=n;i.setAttribute("data-ui-dock-item",""),i.style.setProperty("position","relative"),i.style.setProperty("display","inline-flex"),i.style.setProperty("align-items","center"),i.style.setProperty("justify-content","center"),i.style.setProperty("inline-size","var(--ui-dock-item-size)"),i.style.setProperty("block-size","var(--ui-dock-item-size)"),i.style.setProperty("min-inline-size","var(--ui-dock-item-size)"),i.style.setProperty("min-block-size","var(--ui-dock-item-size)"),i.style.setProperty("flex","0 0 var(--ui-dock-item-size)"),i.style.setProperty("box-sizing","border-box"),i.style.setProperty("background","transparent"),i.style.setProperty("border","none"),i.style.setProperty("padding","0"),i.style.setProperty("margin","0"),i.style.setProperty("color","inherit"),i.style.setProperty("text-decoration","none"),i.style.setProperty("outline","none"),i.style.setProperty("cursor",n.disabled?"not-allowed":"pointer"),i.style.setProperty("transform-origin",a==="horizontal"?"center bottom":"center center"),i.style.setProperty("touch-action","manipulation"),i.hasAttribute("tabindex")||(i.tabIndex=-1);const r=i.getAttribute("aria-label"),d=this._itemNames.get(i),u=d&&d.composed===r?d.base:r||o?.textContent?.trim()||i.getAttribute("data-label")||i.getAttribute("title")||"",m=l?.textContent?.trim()??"",f=u&&m&&!u.includes(m)?`${u}, ${m}`:u;f&&(f!==r&&i.setAttribute("aria-label",f),this._itemNames.set(i,{base:u,composed:f})),h?i.setAttribute("data-dock-current","true"):i.removeAttribute("data-dock-current"),c&&(c.style.setProperty("display","inline-flex"),c.style.setProperty("align-items","center"),c.style.setProperty("justify-content","center"),c.style.setProperty("inline-size","100%"),c.style.setProperty("block-size","100%"),c.style.setProperty("border-radius","var(--ui-dock-item-radius)"),c.style.setProperty("background","var(--ui-dock-item-bg)"),c.style.setProperty("border","1px solid var(--ui-dock-item-border)"),c.style.setProperty("box-shadow","var(--ui-dock-item-shadow)"),c.style.setProperty("backdrop-filter","var(--ui-dock-item-backdrop)"),c.style.setProperty("font-size","var(--ui-dock-icon-size)"),c.style.setProperty("color","inherit"),c.style.setProperty("overflow","hidden"),c.style.setProperty("box-sizing","border-box")),o&&(o.setAttribute("aria-hidden","true"),o.style.setProperty("position","absolute"),o.style.setProperty("pointer-events","none"),o.style.setProperty("white-space","nowrap"),o.style.setProperty("padding","var(--ui-dock-label-padding)"),o.style.setProperty("border-radius","var(--ui-dock-label-radius)"),o.style.setProperty("background","var(--ui-dock-label-bg)"),o.style.setProperty("color","var(--ui-dock-label-color)"),o.style.setProperty("border","1px solid var(--ui-dock-label-border)"),o.style.setProperty("box-shadow","var(--ui-dock-label-shadow)"),o.style.setProperty("backdrop-filter","var(--ui-dock-label-backdrop)"),o.style.setProperty("font-size","var(--ui-dock-label-font-size)"),o.style.setProperty("font-weight","var(--ui-dock-label-font-weight)"),o.style.setProperty("line-height","1.2"),o.style.setProperty("letter-spacing","0.01em"),o.style.setProperty("min-inline-size","max-content"),o.style.setProperty("z-index","3"),o.style.setProperty("display",t==="none"?"none":"inline-flex"),o.style.removeProperty("top"),o.style.removeProperty("bottom"),o.style.removeProperty("left"),o.style.removeProperty("right"),e==="top"?(o.style.setProperty("left","50%"),o.style.setProperty("bottom","calc(100% + var(--ui-dock-label-offset))")):e==="bottom"?(o.style.setProperty("left","50%"),o.style.setProperty("top","calc(100% + var(--ui-dock-label-offset))")):e==="start"?(o.style.setProperty("right","calc(100% + var(--ui-dock-label-offset))"),o.style.setProperty("top","50%")):(o.style.setProperty("left","calc(100% + var(--ui-dock-label-offset))"),o.style.setProperty("top","50%"))),l&&(l.setAttribute("aria-hidden","true"),l.style.setProperty("position","absolute"),l.style.setProperty("inset-inline-end","-2px"),l.style.setProperty("inset-block-start","-2px"),l.style.setProperty("display","inline-flex"),l.style.setProperty("align-items","center"),l.style.setProperty("justify-content","center"),l.style.setProperty("min-inline-size","18px"),l.style.setProperty("min-block-size","18px"),l.style.setProperty("padding","0 6px"),l.style.setProperty("border-radius","999px"),l.style.setProperty("background","var(--ui-dock-accent)"),l.style.setProperty("color","#ffffff"),l.style.setProperty("font-size","11px"),l.style.setProperty("font-weight","700"),l.style.setProperty("box-shadow","0 8px 18px color-mix(in srgb, var(--ui-dock-accent) 32%, rgba(15, 23, 42, 0.18))"),l.style.setProperty("z-index","4"))})}_syncTabIndices(){const e=this._items.findIndex(t=>!t.disabled);e>=0&&(this._rovingIndex<0||this._items[this._rovingIndex]?.disabled)&&(this._rovingIndex=e),this._items.forEach((t,a)=>{if(t.disabled){t.el.tabIndex=-1;return}t.el.tabIndex=a===this._rovingIndex?0:-1})}_measureItems(){if(!this._frameEl)return;const e=this._frameEl.getBoundingClientRect(),t=this._orientation(),a=t==="horizontal"?e.left:e.top;this._items.forEach(n=>{const i=n.el.getBoundingClientRect();n.center=(t==="horizontal"?i.left+i.width/2:i.top+i.height/2)-a})}_updateTargets(){const e=this._idleScale(),t=Math.max(e,this._magnification()),a=Math.max(1,this._distance()),n=this._lift()*this._motion().lift,i=this._labelMode();this._items.forEach((c,o)=>{let l=e;if(c.sticky&&(l=Math.max(l,e+(t-e)*.08)),this._pointerActive&&Number.isFinite(this._pointerCoord)){const r=Math.abs(this._pointerCoord-c.center),d=g(1-r/a,0,1);l=Math.max(l,e+(t-e)*d*d)}o===this._focusedIndex&&(l=Math.max(l,t)),c.disabled&&(l=e);const h=t===e?0:(l-e)/(t-e);c.targetScale=g(l,e,t),c.targetLift=h*n,c.labelVisible=i==="always"||i!=="none"&&(o===this._focusedIndex||h>.18)}),this._updateRuntimeState()}_applyFrame(e=!1){const t=this._smoothing(),a=this._motion(),n=g(a.response+t*.12,.05,.42),i=g(a.damping+(t-k)*.14,.52,.9),c=this._orientation(),o=S(this.getAttribute("label-placement"),c),l=this._mainAxisOffsets(a.spread);let h=!1;this._items.forEach((r,d)=>{e?(r.currentScale=r.targetScale,r.currentLift=r.targetLift,r.scaleVelocity=0,r.liftVelocity=0):(r.scaleVelocity=r.scaleVelocity*i+(r.targetScale-r.currentScale)*n,r.liftVelocity=r.liftVelocity*i+(r.targetLift-r.currentLift)*n,r.currentScale+=r.scaleVelocity,r.currentLift+=r.liftVelocity,Math.abs(r.targetScale-r.currentScale)<.002&&Math.abs(r.scaleVelocity)<.002&&(r.currentScale=r.targetScale,r.scaleVelocity=0),Math.abs(r.targetLift-r.currentLift)<.002&&Math.abs(r.liftVelocity)<.002&&(r.currentLift=r.targetLift,r.liftVelocity=0)),(Math.abs(r.targetScale-r.currentScale)>=.002||Math.abs(r.targetLift-r.currentLift)>=.002||Math.abs(r.scaleVelocity)>=.002||Math.abs(r.liftVelocity)>=.002)&&(h=!0);const u=l[d]??0,m=c==="horizontal"?u:o==="start"?-r.currentLift*.28:r.currentLift*.28,f=c==="horizontal"?-r.currentLift:u;if(r.el.style.setProperty("transform",`translate3d(${m}px, ${f}px, 0) scale(${r.currentScale})`),r.el.style.setProperty("z-index",String(100+Math.round(r.currentScale*100)+d)),r.iconEl){const p=d===this._focusedIndex?"0 0 0 3px color-mix(in srgb, var(--ui-dock-focus-ring) 26%, transparent), ":r.sticky?"0 0 0 2px color-mix(in srgb, var(--ui-dock-accent) 22%, transparent), ":"";r.iconEl.style.setProperty("box-shadow",`${p}var(--ui-dock-item-shadow)`),r.iconEl.style.setProperty("border-color",r.sticky||d===this._focusedIndex?"color-mix(in srgb, var(--ui-dock-accent) 30%, var(--ui-dock-item-border))":"var(--ui-dock-item-border)")}if(r.labelEl){const p=r.labelVisible;r.labelEl.style.setProperty("opacity",p?"1":"0"),r.labelEl.style.setProperty("visibility",p?"visible":"hidden"),r.labelEl.style.setProperty("transform",this._labelTransform(o,p)),r.labelEl.style.setProperty("filter",p?"blur(0px)":"blur(6px)")}}),h&&this._queueAnimation()}_queueAnimation(){if(this._reducedMotion){A(this._raf),this._raf=null,this._applyFrame(!0);return}this._raf==null&&(this._raf=$(()=>{this._raf=null,this._applyFrame(!1)}))}_mainAxisOffsets(e){if(this._items.length<2)return this._items.map(()=>0);const t=this._resolvedItemSizePx(),a=this._resolvedGapPx(),n=t+a,i=[0];for(let o=1;o<this._items.length;o+=1){const l=this._items[o-1],h=this._items[o],r=t*l.currentScale/2,d=t*h.currentScale/2,u=Math.max(0,r+d-n);i[o]=i[o-1]+u*e}const c=i[i.length-1]/2;return i.map(o=>o-c)}_labelTransform(e,t){return e==="top"?t?"translate3d(-50%, 0, 0)":"translate3d(-50%, 6px, 0)":e==="bottom"?t?"translate3d(-50%, 0, 0)":"translate3d(-50%, -6px, 0)":e==="start"?t?"translate3d(0, -50%, 0)":"translate3d(6px, -50%, 0)":t?"translate3d(0, -50%, 0)":"translate3d(-6px, -50%, 0)"}_syncHostStyles(){const e=b(this.getAttribute("gap"));e?this.style.setProperty("--ui-dock-gap",e):this.style.removeProperty("--ui-dock-gap");const t=b(this.getAttribute("padding"));t?this.style.setProperty("--ui-dock-padding",t):this.style.removeProperty("--ui-dock-padding");const a=b(this.getAttribute("item-size"));a?(this.style.setProperty("--ui-dock-item-size",a),this.style.setProperty("--ui-dock-icon-size",`calc(${a} * 0.44)`)):(this.style.removeProperty("--ui-dock-item-size"),this.style.removeProperty("--ui-dock-icon-size"));const n=this.getAttribute("radius");if(n&&!V.has(n)){const i=b(n)||n;this.style.setProperty("--ui-dock-radius",i),this.style.setProperty("--ui-dock-item-radius",`calc(${i} * 0.82)`)}else this.style.removeProperty("--ui-dock-radius"),this.style.removeProperty("--ui-dock-item-radius")}_orientation(){return this.getAttribute("orientation")==="vertical"?"vertical":"horizontal"}_motion(){const e=this.getAttribute("animation");return e==="calm"||e==="snappy"||e==="bouncy"?P[e]:P.smooth}_labelMode(){const e=this.getAttribute("label-mode");return e==="always"||e==="none"?e:"hover"}_magnification(){return Math.max(this._idleScale(),y(this.getAttribute("magnification"),F))}_distance(){return y(this.getAttribute("distance"),C)}_idleScale(){return Math.max(.5,y(this.getAttribute("idle-scale"),R))}_lift(){return y(this.getAttribute("lift"),D)}_smoothing(){return U(this.getAttribute("smoothing"),k)}_sizeToken(){const e=this.getAttribute("size");return e==="xs"||e==="0"?"xs":e==="sm"||e==="1"?"sm":e==="lg"||e==="3"?"lg":e==="xl"||e==="4"?"xl":"md"}_resolvedItemSizePx(){const e=b(this.getAttribute("item-size"));if(e){const t=Number.parseFloat(e);if(Number.isFinite(t))return t}return z[this._sizeToken()]?.itemSize??O}_resolvedGapPx(){const e=b(this.getAttribute("gap"));if(e){const a=Number.parseFloat(e);if(Number.isFinite(a))return a}const t=z[this._sizeToken()];return t?Number.parseFloat(t.gap):Number.parseFloat(_)}_updateRuntimeState(){const e=this._focusedIndex>=0?"keyboard":this._pointerActive?"pointer":"idle";this.setAttribute("data-state",e)}}typeof customElements<"u"&&!customElements.get("ui-dock")&&customElements.define("ui-dock",M);exports.UIDock=M;
|
package/dist/dock.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { E as M } from "./ElementBase-YlTLMsGk.mjs";
|
|
2
|
-
const T = 1.92, F = 148, C = 1, R = 20,
|
|
2
|
+
const T = 1.92, F = 148, C = 1, R = 20, k = 0.18, _ = "12px", x = "12px 14px", v = "56px", D = 56, z = {
|
|
3
3
|
xs: {
|
|
4
4
|
gap: "8px",
|
|
5
5
|
padding: "8px 10px",
|
|
@@ -15,8 +15,8 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
15
15
|
itemRadius: 16
|
|
16
16
|
},
|
|
17
17
|
md: {
|
|
18
|
-
gap:
|
|
19
|
-
padding:
|
|
18
|
+
gap: _,
|
|
19
|
+
padding: x,
|
|
20
20
|
itemSize: 56,
|
|
21
21
|
iconSize: 24,
|
|
22
22
|
itemRadius: 18
|
|
@@ -35,7 +35,7 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
35
35
|
iconSize: 32,
|
|
36
36
|
itemRadius: 24
|
|
37
37
|
}
|
|
38
|
-
},
|
|
38
|
+
}, P = {
|
|
39
39
|
calm: {
|
|
40
40
|
response: 0.11,
|
|
41
41
|
damping: 0.82,
|
|
@@ -60,7 +60,7 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
60
60
|
spread: 1,
|
|
61
61
|
lift: 1.12
|
|
62
62
|
}
|
|
63
|
-
},
|
|
63
|
+
}, E = /* @__PURE__ */ new Set([
|
|
64
64
|
"gap",
|
|
65
65
|
"padding",
|
|
66
66
|
"radius",
|
|
@@ -69,7 +69,7 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
69
69
|
"tone",
|
|
70
70
|
"size",
|
|
71
71
|
"elevation"
|
|
72
|
-
]),
|
|
72
|
+
]), N = /* @__PURE__ */ new Set([
|
|
73
73
|
"orientation",
|
|
74
74
|
"magnification",
|
|
75
75
|
"distance",
|
|
@@ -80,12 +80,12 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
80
80
|
"gap",
|
|
81
81
|
"padding",
|
|
82
82
|
"item-size"
|
|
83
|
-
]),
|
|
83
|
+
]), I = /* @__PURE__ */ new Set(["label-mode", "label-placement"]), O = /* @__PURE__ */ new Set(["none", "sm", "md", "lg", "full"]), V = `
|
|
84
84
|
:host {
|
|
85
|
-
--ui-dock-gap: ${
|
|
86
|
-
--ui-dock-padding: ${
|
|
85
|
+
--ui-dock-gap: ${_};
|
|
86
|
+
--ui-dock-padding: ${x};
|
|
87
87
|
--ui-dock-radius: 24px;
|
|
88
|
-
--ui-dock-item-size: ${
|
|
88
|
+
--ui-dock-item-size: ${v};
|
|
89
89
|
--ui-dock-icon-size: 24px;
|
|
90
90
|
--ui-dock-item-radius: 18px;
|
|
91
91
|
--ui-dock-accent: var(--ui-color-primary, var(--ui-primary, #2563eb));
|
|
@@ -146,9 +146,9 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
146
146
|
|
|
147
147
|
:host([size="md"]),
|
|
148
148
|
:host([size="2"]) {
|
|
149
|
-
--ui-dock-gap: ${
|
|
150
|
-
--ui-dock-padding: ${
|
|
151
|
-
--ui-dock-item-size: ${
|
|
149
|
+
--ui-dock-gap: ${_};
|
|
150
|
+
--ui-dock-padding: ${x};
|
|
151
|
+
--ui-dock-item-size: ${v};
|
|
152
152
|
--ui-dock-icon-size: 24px;
|
|
153
153
|
--ui-dock-item-radius: 18px;
|
|
154
154
|
--ui-dock-label-padding: 6px 10px;
|
|
@@ -198,7 +198,7 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
:host([tone="neutral"]) {
|
|
201
|
-
--ui-dock-accent: #
|
|
201
|
+
--ui-dock-accent: #526175;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
:host([tone="info"]) {
|
|
@@ -206,11 +206,11 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
:host([tone="success"]) {
|
|
209
|
-
--ui-dock-accent: var(--ui-color-success, #
|
|
209
|
+
--ui-dock-accent: var(--ui-color-success, #15803d);
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
:host([tone="warning"]) {
|
|
213
|
-
--ui-dock-accent: var(--ui-color-warning, #
|
|
213
|
+
--ui-dock-accent: var(--ui-color-warning, #b45309);
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
:host([tone="danger"]) {
|
|
@@ -418,21 +418,21 @@ const T = 1.92, F = 148, C = 1, R = 20, _ = 0.18, g = "12px", y = "12px 14px", x
|
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
420
|
`;
|
|
421
|
-
function
|
|
421
|
+
function g(s, e, t) {
|
|
422
422
|
return Math.min(t, Math.max(e, s));
|
|
423
423
|
}
|
|
424
|
-
function
|
|
424
|
+
function w(s, e) {
|
|
425
425
|
if (s == null || s.trim() === "") return e;
|
|
426
426
|
const t = Number(s);
|
|
427
427
|
return Number.isFinite(t) ? t : e;
|
|
428
428
|
}
|
|
429
|
-
function
|
|
430
|
-
return Math.max(0,
|
|
429
|
+
function y(s, e) {
|
|
430
|
+
return Math.max(0, w(s, e));
|
|
431
431
|
}
|
|
432
432
|
function q(s, e) {
|
|
433
|
-
return
|
|
433
|
+
return g(w(s, e), 0.01, 1);
|
|
434
434
|
}
|
|
435
|
-
function
|
|
435
|
+
function b(s) {
|
|
436
436
|
if (s == null || s.trim() === "") return null;
|
|
437
437
|
const e = s.trim().split(/\s+/).filter(Boolean);
|
|
438
438
|
return e.length ? e.map((t) => /^-?\d+(\.\d+)?$/.test(t) ? `${t}px` : t).join(" ") : null;
|
|
@@ -440,7 +440,7 @@ function h(s) {
|
|
|
440
440
|
function U(s) {
|
|
441
441
|
return typeof requestAnimationFrame == "function" ? requestAnimationFrame(s) : window.setTimeout(() => s(Date.now()), 16);
|
|
442
442
|
}
|
|
443
|
-
function
|
|
443
|
+
function A(s) {
|
|
444
444
|
if (s != null) {
|
|
445
445
|
if (typeof cancelAnimationFrame == "function") {
|
|
446
446
|
cancelAnimationFrame(s);
|
|
@@ -458,10 +458,10 @@ function B(s) {
|
|
|
458
458
|
function H(s) {
|
|
459
459
|
return s.hasAttribute("data-active") || s.getAttribute("aria-current") === "page" || s.getAttribute("aria-current") === "true";
|
|
460
460
|
}
|
|
461
|
-
function
|
|
461
|
+
function S(s, e) {
|
|
462
462
|
return s === "top" || s === "bottom" || s === "start" || s === "end" ? s : e === "horizontal" ? "top" : "end";
|
|
463
463
|
}
|
|
464
|
-
function
|
|
464
|
+
function L(s, e, t) {
|
|
465
465
|
if (!s.length) return -1;
|
|
466
466
|
let a = e;
|
|
467
467
|
for (let n = 0; n < s.length; n += 1)
|
|
@@ -470,7 +470,7 @@ function A(s, e, t) {
|
|
|
470
470
|
}
|
|
471
471
|
class G extends M {
|
|
472
472
|
constructor() {
|
|
473
|
-
super(), this._frameEl = null, this._slotEl = null, this._items = [], this._resizeObserver = null, this._mutationObserver = null, this._mediaQuery = null, this._raf = null, this._pointerActive = !1, this._pointerCoord = Number.NaN, this._focusedIndex = -1, this._rovingIndex = 0, this._reducedMotion = !1, this._handleSlotChange = this._handleSlotChange.bind(this), this._handlePointerMove = this._handlePointerMove.bind(this), this._handlePointerLeave = this._handlePointerLeave.bind(this), this._handleFocusIn = this._handleFocusIn.bind(this), this._handleFocusOut = this._handleFocusOut.bind(this), this._handleKeyDown = this._handleKeyDown.bind(this), this._handleResize = this._handleResize.bind(this), this._handleLightDomMutation = this._handleLightDomMutation.bind(this), this._handleReducedMotionChange = this._handleReducedMotionChange.bind(this);
|
|
473
|
+
super(), this._frameEl = null, this._slotEl = null, this._items = [], this._itemNames = /* @__PURE__ */ new WeakMap(), this._resizeObserver = null, this._mutationObserver = null, this._mediaQuery = null, this._raf = null, this._pointerActive = !1, this._pointerCoord = Number.NaN, this._focusedIndex = -1, this._rovingIndex = 0, this._reducedMotion = !1, this._handleSlotChange = this._handleSlotChange.bind(this), this._handlePointerMove = this._handlePointerMove.bind(this), this._handlePointerLeave = this._handlePointerLeave.bind(this), this._handleFocusIn = this._handleFocusIn.bind(this), this._handleFocusOut = this._handleFocusOut.bind(this), this._handleKeyDown = this._handleKeyDown.bind(this), this._handleResize = this._handleResize.bind(this), this._handleLightDomMutation = this._handleLightDomMutation.bind(this), this._handleReducedMotionChange = this._handleReducedMotionChange.bind(this);
|
|
474
474
|
}
|
|
475
475
|
static get observedAttributes() {
|
|
476
476
|
return [
|
|
@@ -505,7 +505,7 @@ class G extends M {
|
|
|
505
505
|
}
|
|
506
506
|
this._mediaQuery = null;
|
|
507
507
|
}
|
|
508
|
-
|
|
508
|
+
A(this._raf), this._raf = null, super.disconnectedCallback();
|
|
509
509
|
}
|
|
510
510
|
refresh() {
|
|
511
511
|
this._collectItems(), this._syncHostStyles(), this._measureItems(), this._syncTabIndices(), this._updateTargets(), this._queueAnimation();
|
|
@@ -518,7 +518,7 @@ class G extends M {
|
|
|
518
518
|
this._pointerActive = !1, this._pointerCoord = Number.NaN, this._focusedIndex = -1, this._updateTargets(), this._queueAnimation();
|
|
519
519
|
}
|
|
520
520
|
attributeChangedCallback(e, t, a) {
|
|
521
|
-
!e || t === a || !this.isConnected || (
|
|
521
|
+
!e || t === a || !this.isConnected || (E.has(e) && this._syncHostStyles(), I.has(e) && this._syncItemChrome(), (N.has(e) || I.has(e) || E.has(e)) && this.refresh());
|
|
522
522
|
}
|
|
523
523
|
shouldRenderOnAttributeChange() {
|
|
524
524
|
return !1;
|
|
@@ -596,13 +596,13 @@ class G extends M {
|
|
|
596
596
|
const t = this._orientation(), a = t === "horizontal" ? ["ArrowLeft"] : ["ArrowUp"], n = t === "horizontal" ? ["ArrowRight"] : ["ArrowDown"];
|
|
597
597
|
if (a.includes(e.key)) {
|
|
598
598
|
e.preventDefault();
|
|
599
|
-
const i =
|
|
599
|
+
const i = L(this._items, this._rovingIndex, -1);
|
|
600
600
|
i >= 0 && this.focusItem(i);
|
|
601
601
|
return;
|
|
602
602
|
}
|
|
603
603
|
if (n.includes(e.key)) {
|
|
604
604
|
e.preventDefault();
|
|
605
|
-
const i =
|
|
605
|
+
const i = L(this._items, this._rovingIndex, 1);
|
|
606
606
|
i >= 0 && this.focusItem(i);
|
|
607
607
|
return;
|
|
608
608
|
}
|
|
@@ -648,14 +648,12 @@ class G extends M {
|
|
|
648
648
|
a >= 0 ? this._rovingIndex = a : (!this._items[this._rovingIndex] || this._items[this._rovingIndex]?.disabled) && (this._rovingIndex = this._items.findIndex((n) => !n.disabled)), this._rovingIndex < 0 && (this._rovingIndex = 0), (this._focusedIndex >= this._items.length || this._items[this._focusedIndex]?.disabled) && (this._focusedIndex = -1), this._syncItemChrome();
|
|
649
649
|
}
|
|
650
650
|
_syncItemChrome() {
|
|
651
|
-
const e =
|
|
651
|
+
const e = S(this.getAttribute("label-placement"), this._orientation()), t = this._labelMode(), a = this._orientation();
|
|
652
652
|
this._items.forEach((n) => {
|
|
653
|
-
const { el: i, iconEl: c, labelEl: o, badgeEl: l, sticky:
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
}
|
|
658
|
-
d ? i.setAttribute("data-dock-current", "true") : i.removeAttribute("data-dock-current"), c && (c.style.setProperty("display", "inline-flex"), c.style.setProperty("align-items", "center"), c.style.setProperty("justify-content", "center"), c.style.setProperty("inline-size", "100%"), c.style.setProperty("block-size", "100%"), c.style.setProperty("border-radius", "var(--ui-dock-item-radius)"), c.style.setProperty("background", "var(--ui-dock-item-bg)"), c.style.setProperty("border", "1px solid var(--ui-dock-item-border)"), c.style.setProperty("box-shadow", "var(--ui-dock-item-shadow)"), c.style.setProperty("backdrop-filter", "var(--ui-dock-item-backdrop)"), c.style.setProperty("font-size", "var(--ui-dock-icon-size)"), c.style.setProperty("color", "inherit"), c.style.setProperty("overflow", "hidden"), c.style.setProperty("box-sizing", "border-box")), o && (o.setAttribute("aria-hidden", "true"), o.style.setProperty("position", "absolute"), o.style.setProperty("pointer-events", "none"), o.style.setProperty("white-space", "nowrap"), o.style.setProperty("padding", "var(--ui-dock-label-padding)"), o.style.setProperty("border-radius", "var(--ui-dock-label-radius)"), o.style.setProperty("background", "var(--ui-dock-label-bg)"), o.style.setProperty("color", "var(--ui-dock-label-color)"), o.style.setProperty("border", "1px solid var(--ui-dock-label-border)"), o.style.setProperty("box-shadow", "var(--ui-dock-label-shadow)"), o.style.setProperty("backdrop-filter", "var(--ui-dock-label-backdrop)"), o.style.setProperty("font-size", "var(--ui-dock-label-font-size)"), o.style.setProperty("font-weight", "var(--ui-dock-label-font-weight)"), o.style.setProperty("line-height", "1.2"), o.style.setProperty("letter-spacing", "0.01em"), o.style.setProperty("min-inline-size", "max-content"), o.style.setProperty("z-index", "3"), o.style.setProperty("display", t === "none" ? "none" : "inline-flex"), o.style.removeProperty("top"), o.style.removeProperty("bottom"), o.style.removeProperty("left"), o.style.removeProperty("right"), e === "top" ? (o.style.setProperty("left", "50%"), o.style.setProperty("bottom", "calc(100% + var(--ui-dock-label-offset))")) : e === "bottom" ? (o.style.setProperty("left", "50%"), o.style.setProperty("top", "calc(100% + var(--ui-dock-label-offset))")) : e === "start" ? (o.style.setProperty("right", "calc(100% + var(--ui-dock-label-offset))"), o.style.setProperty("top", "50%")) : (o.style.setProperty("left", "calc(100% + var(--ui-dock-label-offset))"), o.style.setProperty("top", "50%"))), l && (l.setAttribute("aria-hidden", "true"), l.style.setProperty("position", "absolute"), l.style.setProperty("inset-inline-end", "-2px"), l.style.setProperty("inset-block-start", "-2px"), l.style.setProperty("display", "inline-flex"), l.style.setProperty("align-items", "center"), l.style.setProperty("justify-content", "center"), l.style.setProperty("min-inline-size", "18px"), l.style.setProperty("min-block-size", "18px"), l.style.setProperty("padding", "0 6px"), l.style.setProperty("border-radius", "999px"), l.style.setProperty("background", "var(--ui-dock-accent)"), l.style.setProperty("color", "#ffffff"), l.style.setProperty("font-size", "11px"), l.style.setProperty("font-weight", "700"), l.style.setProperty("box-shadow", "0 8px 18px color-mix(in srgb, var(--ui-dock-accent) 32%, rgba(15, 23, 42, 0.18))"), l.style.setProperty("z-index", "4"));
|
|
653
|
+
const { el: i, iconEl: c, labelEl: o, badgeEl: l, sticky: h } = n;
|
|
654
|
+
i.setAttribute("data-ui-dock-item", ""), i.style.setProperty("position", "relative"), i.style.setProperty("display", "inline-flex"), i.style.setProperty("align-items", "center"), i.style.setProperty("justify-content", "center"), i.style.setProperty("inline-size", "var(--ui-dock-item-size)"), i.style.setProperty("block-size", "var(--ui-dock-item-size)"), i.style.setProperty("min-inline-size", "var(--ui-dock-item-size)"), i.style.setProperty("min-block-size", "var(--ui-dock-item-size)"), i.style.setProperty("flex", "0 0 var(--ui-dock-item-size)"), i.style.setProperty("box-sizing", "border-box"), i.style.setProperty("background", "transparent"), i.style.setProperty("border", "none"), i.style.setProperty("padding", "0"), i.style.setProperty("margin", "0"), i.style.setProperty("color", "inherit"), i.style.setProperty("text-decoration", "none"), i.style.setProperty("outline", "none"), i.style.setProperty("cursor", n.disabled ? "not-allowed" : "pointer"), i.style.setProperty("transform-origin", a === "horizontal" ? "center bottom" : "center center"), i.style.setProperty("touch-action", "manipulation"), i.hasAttribute("tabindex") || (i.tabIndex = -1);
|
|
655
|
+
const r = i.getAttribute("aria-label"), d = this._itemNames.get(i), u = d && d.composed === r ? d.base : r || o?.textContent?.trim() || i.getAttribute("data-label") || i.getAttribute("title") || "", m = l?.textContent?.trim() ?? "", f = u && m && !u.includes(m) ? `${u}, ${m}` : u;
|
|
656
|
+
f && (f !== r && i.setAttribute("aria-label", f), this._itemNames.set(i, { base: u, composed: f })), h ? i.setAttribute("data-dock-current", "true") : i.removeAttribute("data-dock-current"), c && (c.style.setProperty("display", "inline-flex"), c.style.setProperty("align-items", "center"), c.style.setProperty("justify-content", "center"), c.style.setProperty("inline-size", "100%"), c.style.setProperty("block-size", "100%"), c.style.setProperty("border-radius", "var(--ui-dock-item-radius)"), c.style.setProperty("background", "var(--ui-dock-item-bg)"), c.style.setProperty("border", "1px solid var(--ui-dock-item-border)"), c.style.setProperty("box-shadow", "var(--ui-dock-item-shadow)"), c.style.setProperty("backdrop-filter", "var(--ui-dock-item-backdrop)"), c.style.setProperty("font-size", "var(--ui-dock-icon-size)"), c.style.setProperty("color", "inherit"), c.style.setProperty("overflow", "hidden"), c.style.setProperty("box-sizing", "border-box")), o && (o.setAttribute("aria-hidden", "true"), o.style.setProperty("position", "absolute"), o.style.setProperty("pointer-events", "none"), o.style.setProperty("white-space", "nowrap"), o.style.setProperty("padding", "var(--ui-dock-label-padding)"), o.style.setProperty("border-radius", "var(--ui-dock-label-radius)"), o.style.setProperty("background", "var(--ui-dock-label-bg)"), o.style.setProperty("color", "var(--ui-dock-label-color)"), o.style.setProperty("border", "1px solid var(--ui-dock-label-border)"), o.style.setProperty("box-shadow", "var(--ui-dock-label-shadow)"), o.style.setProperty("backdrop-filter", "var(--ui-dock-label-backdrop)"), o.style.setProperty("font-size", "var(--ui-dock-label-font-size)"), o.style.setProperty("font-weight", "var(--ui-dock-label-font-weight)"), o.style.setProperty("line-height", "1.2"), o.style.setProperty("letter-spacing", "0.01em"), o.style.setProperty("min-inline-size", "max-content"), o.style.setProperty("z-index", "3"), o.style.setProperty("display", t === "none" ? "none" : "inline-flex"), o.style.removeProperty("top"), o.style.removeProperty("bottom"), o.style.removeProperty("left"), o.style.removeProperty("right"), e === "top" ? (o.style.setProperty("left", "50%"), o.style.setProperty("bottom", "calc(100% + var(--ui-dock-label-offset))")) : e === "bottom" ? (o.style.setProperty("left", "50%"), o.style.setProperty("top", "calc(100% + var(--ui-dock-label-offset))")) : e === "start" ? (o.style.setProperty("right", "calc(100% + var(--ui-dock-label-offset))"), o.style.setProperty("top", "50%")) : (o.style.setProperty("left", "calc(100% + var(--ui-dock-label-offset))"), o.style.setProperty("top", "50%"))), l && (l.setAttribute("aria-hidden", "true"), l.style.setProperty("position", "absolute"), l.style.setProperty("inset-inline-end", "-2px"), l.style.setProperty("inset-block-start", "-2px"), l.style.setProperty("display", "inline-flex"), l.style.setProperty("align-items", "center"), l.style.setProperty("justify-content", "center"), l.style.setProperty("min-inline-size", "18px"), l.style.setProperty("min-block-size", "18px"), l.style.setProperty("padding", "0 6px"), l.style.setProperty("border-radius", "999px"), l.style.setProperty("background", "var(--ui-dock-accent)"), l.style.setProperty("color", "#ffffff"), l.style.setProperty("font-size", "11px"), l.style.setProperty("font-weight", "700"), l.style.setProperty("box-shadow", "0 8px 18px color-mix(in srgb, var(--ui-dock-accent) 32%, rgba(15, 23, 42, 0.18))"), l.style.setProperty("z-index", "4"));
|
|
659
657
|
});
|
|
660
658
|
}
|
|
661
659
|
_syncTabIndices() {
|
|
@@ -681,39 +679,39 @@ class G extends M {
|
|
|
681
679
|
this._items.forEach((c, o) => {
|
|
682
680
|
let l = e;
|
|
683
681
|
if (c.sticky && (l = Math.max(l, e + (t - e) * 0.08)), this._pointerActive && Number.isFinite(this._pointerCoord)) {
|
|
684
|
-
const r = Math.abs(this._pointerCoord - c.center),
|
|
685
|
-
l = Math.max(l, e + (t - e) *
|
|
682
|
+
const r = Math.abs(this._pointerCoord - c.center), d = g(1 - r / a, 0, 1);
|
|
683
|
+
l = Math.max(l, e + (t - e) * d * d);
|
|
686
684
|
}
|
|
687
685
|
o === this._focusedIndex && (l = Math.max(l, t)), c.disabled && (l = e);
|
|
688
|
-
const
|
|
689
|
-
c.targetScale =
|
|
686
|
+
const h = t === e ? 0 : (l - e) / (t - e);
|
|
687
|
+
c.targetScale = g(l, e, t), c.targetLift = h * n, c.labelVisible = i === "always" || i !== "none" && (o === this._focusedIndex || h > 0.18);
|
|
690
688
|
}), this._updateRuntimeState();
|
|
691
689
|
}
|
|
692
690
|
_applyFrame(e = !1) {
|
|
693
|
-
const t = this._smoothing(), a = this._motion(), n =
|
|
694
|
-
let
|
|
695
|
-
this._items.forEach((r,
|
|
696
|
-
e ? (r.currentScale = r.targetScale, r.currentLift = r.targetLift, r.scaleVelocity = 0, r.liftVelocity = 0) : (r.scaleVelocity = r.scaleVelocity * i + (r.targetScale - r.currentScale) * n, r.liftVelocity = r.liftVelocity * i + (r.targetLift - r.currentLift) * n, r.currentScale += r.scaleVelocity, r.currentLift += r.liftVelocity, Math.abs(r.targetScale - r.currentScale) < 2e-3 && Math.abs(r.scaleVelocity) < 2e-3 && (r.currentScale = r.targetScale, r.scaleVelocity = 0), Math.abs(r.targetLift - r.currentLift) < 2e-3 && Math.abs(r.liftVelocity) < 2e-3 && (r.currentLift = r.targetLift, r.liftVelocity = 0)), (Math.abs(r.targetScale - r.currentScale) >= 2e-3 || Math.abs(r.targetLift - r.currentLift) >= 2e-3 || Math.abs(r.scaleVelocity) >= 2e-3 || Math.abs(r.liftVelocity) >= 2e-3) && (
|
|
697
|
-
const
|
|
698
|
-
if (r.el.style.setProperty("transform", `translate3d(${
|
|
699
|
-
const
|
|
700
|
-
r.iconEl.style.setProperty("box-shadow", `${
|
|
691
|
+
const t = this._smoothing(), a = this._motion(), n = g(a.response + t * 0.12, 0.05, 0.42), i = g(a.damping + (t - k) * 0.14, 0.52, 0.9), c = this._orientation(), o = S(this.getAttribute("label-placement"), c), l = this._mainAxisOffsets(a.spread);
|
|
692
|
+
let h = !1;
|
|
693
|
+
this._items.forEach((r, d) => {
|
|
694
|
+
e ? (r.currentScale = r.targetScale, r.currentLift = r.targetLift, r.scaleVelocity = 0, r.liftVelocity = 0) : (r.scaleVelocity = r.scaleVelocity * i + (r.targetScale - r.currentScale) * n, r.liftVelocity = r.liftVelocity * i + (r.targetLift - r.currentLift) * n, r.currentScale += r.scaleVelocity, r.currentLift += r.liftVelocity, Math.abs(r.targetScale - r.currentScale) < 2e-3 && Math.abs(r.scaleVelocity) < 2e-3 && (r.currentScale = r.targetScale, r.scaleVelocity = 0), Math.abs(r.targetLift - r.currentLift) < 2e-3 && Math.abs(r.liftVelocity) < 2e-3 && (r.currentLift = r.targetLift, r.liftVelocity = 0)), (Math.abs(r.targetScale - r.currentScale) >= 2e-3 || Math.abs(r.targetLift - r.currentLift) >= 2e-3 || Math.abs(r.scaleVelocity) >= 2e-3 || Math.abs(r.liftVelocity) >= 2e-3) && (h = !0);
|
|
695
|
+
const u = l[d] ?? 0, m = c === "horizontal" ? u : o === "start" ? -r.currentLift * 0.28 : r.currentLift * 0.28, f = c === "horizontal" ? -r.currentLift : u;
|
|
696
|
+
if (r.el.style.setProperty("transform", `translate3d(${m}px, ${f}px, 0) scale(${r.currentScale})`), r.el.style.setProperty("z-index", String(100 + Math.round(r.currentScale * 100) + d)), r.iconEl) {
|
|
697
|
+
const p = d === this._focusedIndex ? "0 0 0 3px color-mix(in srgb, var(--ui-dock-focus-ring) 26%, transparent), " : r.sticky ? "0 0 0 2px color-mix(in srgb, var(--ui-dock-accent) 22%, transparent), " : "";
|
|
698
|
+
r.iconEl.style.setProperty("box-shadow", `${p}var(--ui-dock-item-shadow)`), r.iconEl.style.setProperty(
|
|
701
699
|
"border-color",
|
|
702
|
-
r.sticky ||
|
|
700
|
+
r.sticky || d === this._focusedIndex ? "color-mix(in srgb, var(--ui-dock-accent) 30%, var(--ui-dock-item-border))" : "var(--ui-dock-item-border)"
|
|
703
701
|
);
|
|
704
702
|
}
|
|
705
703
|
if (r.labelEl) {
|
|
706
|
-
const
|
|
707
|
-
r.labelEl.style.setProperty("opacity",
|
|
704
|
+
const p = r.labelVisible;
|
|
705
|
+
r.labelEl.style.setProperty("opacity", p ? "1" : "0"), r.labelEl.style.setProperty("visibility", p ? "visible" : "hidden"), r.labelEl.style.setProperty(
|
|
708
706
|
"transform",
|
|
709
|
-
this._labelTransform(o,
|
|
710
|
-
), r.labelEl.style.setProperty("filter",
|
|
707
|
+
this._labelTransform(o, p)
|
|
708
|
+
), r.labelEl.style.setProperty("filter", p ? "blur(0px)" : "blur(6px)");
|
|
711
709
|
}
|
|
712
|
-
}),
|
|
710
|
+
}), h && this._queueAnimation();
|
|
713
711
|
}
|
|
714
712
|
_queueAnimation() {
|
|
715
713
|
if (this._reducedMotion) {
|
|
716
|
-
|
|
714
|
+
A(this._raf), this._raf = null, this._applyFrame(!0);
|
|
717
715
|
return;
|
|
718
716
|
}
|
|
719
717
|
this._raf == null && (this._raf = U(() => {
|
|
@@ -724,8 +722,8 @@ class G extends M {
|
|
|
724
722
|
if (this._items.length < 2) return this._items.map(() => 0);
|
|
725
723
|
const t = this._resolvedItemSizePx(), a = this._resolvedGapPx(), n = t + a, i = [0];
|
|
726
724
|
for (let o = 1; o < this._items.length; o += 1) {
|
|
727
|
-
const l = this._items[o - 1],
|
|
728
|
-
i[o] = i[o - 1] +
|
|
725
|
+
const l = this._items[o - 1], h = this._items[o], r = t * l.currentScale / 2, d = t * h.currentScale / 2, u = Math.max(0, r + d - n);
|
|
726
|
+
i[o] = i[o - 1] + u * e;
|
|
729
727
|
}
|
|
730
728
|
const c = i[i.length - 1] / 2;
|
|
731
729
|
return i.map((o) => o - c);
|
|
@@ -734,15 +732,15 @@ class G extends M {
|
|
|
734
732
|
return e === "top" ? t ? "translate3d(-50%, 0, 0)" : "translate3d(-50%, 6px, 0)" : e === "bottom" ? t ? "translate3d(-50%, 0, 0)" : "translate3d(-50%, -6px, 0)" : e === "start" ? t ? "translate3d(0, -50%, 0)" : "translate3d(6px, -50%, 0)" : t ? "translate3d(0, -50%, 0)" : "translate3d(-6px, -50%, 0)";
|
|
735
733
|
}
|
|
736
734
|
_syncHostStyles() {
|
|
737
|
-
const e =
|
|
735
|
+
const e = b(this.getAttribute("gap"));
|
|
738
736
|
e ? this.style.setProperty("--ui-dock-gap", e) : this.style.removeProperty("--ui-dock-gap");
|
|
739
|
-
const t =
|
|
737
|
+
const t = b(this.getAttribute("padding"));
|
|
740
738
|
t ? this.style.setProperty("--ui-dock-padding", t) : this.style.removeProperty("--ui-dock-padding");
|
|
741
|
-
const a =
|
|
739
|
+
const a = b(this.getAttribute("item-size"));
|
|
742
740
|
a ? (this.style.setProperty("--ui-dock-item-size", a), this.style.setProperty("--ui-dock-icon-size", `calc(${a} * 0.44)`)) : (this.style.removeProperty("--ui-dock-item-size"), this.style.removeProperty("--ui-dock-icon-size"));
|
|
743
741
|
const n = this.getAttribute("radius");
|
|
744
|
-
if (n && !
|
|
745
|
-
const i =
|
|
742
|
+
if (n && !O.has(n)) {
|
|
743
|
+
const i = b(n) || n;
|
|
746
744
|
this.style.setProperty("--ui-dock-radius", i), this.style.setProperty("--ui-dock-item-radius", `calc(${i} * 0.82)`);
|
|
747
745
|
} else
|
|
748
746
|
this.style.removeProperty("--ui-dock-radius"), this.style.removeProperty("--ui-dock-item-radius");
|
|
@@ -752,47 +750,47 @@ class G extends M {
|
|
|
752
750
|
}
|
|
753
751
|
_motion() {
|
|
754
752
|
const e = this.getAttribute("animation");
|
|
755
|
-
return e === "calm" || e === "snappy" || e === "bouncy" ?
|
|
753
|
+
return e === "calm" || e === "snappy" || e === "bouncy" ? P[e] : P.smooth;
|
|
756
754
|
}
|
|
757
755
|
_labelMode() {
|
|
758
756
|
const e = this.getAttribute("label-mode");
|
|
759
757
|
return e === "always" || e === "none" ? e : "hover";
|
|
760
758
|
}
|
|
761
759
|
_magnification() {
|
|
762
|
-
return Math.max(this._idleScale(),
|
|
760
|
+
return Math.max(this._idleScale(), y(this.getAttribute("magnification"), T));
|
|
763
761
|
}
|
|
764
762
|
_distance() {
|
|
765
|
-
return
|
|
763
|
+
return y(this.getAttribute("distance"), F);
|
|
766
764
|
}
|
|
767
765
|
_idleScale() {
|
|
768
|
-
return Math.max(0.5,
|
|
766
|
+
return Math.max(0.5, y(this.getAttribute("idle-scale"), C));
|
|
769
767
|
}
|
|
770
768
|
_lift() {
|
|
771
|
-
return
|
|
769
|
+
return y(this.getAttribute("lift"), R);
|
|
772
770
|
}
|
|
773
771
|
_smoothing() {
|
|
774
|
-
return q(this.getAttribute("smoothing"),
|
|
772
|
+
return q(this.getAttribute("smoothing"), k);
|
|
775
773
|
}
|
|
776
774
|
_sizeToken() {
|
|
777
775
|
const e = this.getAttribute("size");
|
|
778
776
|
return e === "xs" || e === "0" ? "xs" : e === "sm" || e === "1" ? "sm" : e === "lg" || e === "3" ? "lg" : e === "xl" || e === "4" ? "xl" : "md";
|
|
779
777
|
}
|
|
780
778
|
_resolvedItemSizePx() {
|
|
781
|
-
const e =
|
|
779
|
+
const e = b(this.getAttribute("item-size"));
|
|
782
780
|
if (e) {
|
|
783
781
|
const t = Number.parseFloat(e);
|
|
784
782
|
if (Number.isFinite(t)) return t;
|
|
785
783
|
}
|
|
786
|
-
return
|
|
784
|
+
return z[this._sizeToken()]?.itemSize ?? D;
|
|
787
785
|
}
|
|
788
786
|
_resolvedGapPx() {
|
|
789
|
-
const e =
|
|
787
|
+
const e = b(this.getAttribute("gap"));
|
|
790
788
|
if (e) {
|
|
791
789
|
const a = Number.parseFloat(e);
|
|
792
790
|
if (Number.isFinite(a)) return a;
|
|
793
791
|
}
|
|
794
|
-
const t =
|
|
795
|
-
return t ? Number.parseFloat(t.gap) : Number.parseFloat(
|
|
792
|
+
const t = z[this._sizeToken()];
|
|
793
|
+
return t ? Number.parseFloat(t.gap) : Number.parseFloat(_);
|
|
796
794
|
}
|
|
797
795
|
_updateRuntimeState() {
|
|
798
796
|
const e = this._focusedIndex >= 0 ? "keyboard" : this._pointerActive ? "pointer" : "idle";
|