@bagelink/vue 1.4.171 → 1.4.174

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "1.4.171",
4
+ "version": "1.4.174",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -109,16 +109,18 @@ function hide() {
109
109
  ddownRef?.hide()
110
110
  }
111
111
 
112
- const { isMobile } = useDevice()
112
+ const { isMobile, innerWidth } = useDevice()
113
113
 
114
114
  const shouldDisablePositioning = $computed(() => {
115
115
  return disablePlacement && isMobile
116
116
  })
117
117
 
118
- // Convert hover triggers to click on mobile devices
118
+ // Convert hover triggers to click on small screens (tablets and mobile)
119
+ const isSmallScreen = $computed(() => innerWidth.value < 910)
120
+
119
121
  const computedTriggers = $computed((): TriggerEvent[] => {
120
- if (isMobile && triggers.includes('hover')) {
121
- // Replace hover with click on mobile
122
+ if (isSmallScreen && triggers.includes('hover')) {
123
+ // Replace hover with click on small screens
122
124
  return triggers.map(trigger => trigger === 'hover' ? 'click' : trigger) as TriggerEvent[]
123
125
  }
124
126
  return triggers
@@ -127,8 +129,8 @@ const computedTriggers = $computed((): TriggerEvent[] => {
127
129
  // Intelligent trigger configuration
128
130
  const computedShowTriggers = $computed((): TriggerEvent[] => {
129
131
  if (showTriggers !== undefined) {
130
- // Also convert hover to click in showTriggers on mobile
131
- if (isMobile && showTriggers.includes('hover')) {
132
+ // Also convert hover to click in showTriggers on small screens
133
+ if (isSmallScreen && showTriggers.includes('hover')) {
132
134
  return showTriggers.map(trigger => trigger === 'hover' ? 'click' : trigger) as TriggerEvent[]
133
135
  }
134
136
  return showTriggers
@@ -138,8 +140,8 @@ const computedShowTriggers = $computed((): TriggerEvent[] => {
138
140
 
139
141
  const computedHideTriggers = $computed((): TriggerEvent[] => {
140
142
  if (hideTriggers !== undefined) {
141
- // Also convert hover to click in hideTriggers on mobile
142
- if (isMobile && hideTriggers.includes('hover')) {
143
+ // Also convert hover to click in hideTriggers on small screens
144
+ if (isSmallScreen && hideTriggers.includes('hover')) {
143
145
  return hideTriggers.map(trigger => trigger === 'hover' ? 'click' : trigger) as TriggerEvent[]
144
146
  }
145
147
  return hideTriggers
@@ -149,8 +151,8 @@ const computedHideTriggers = $computed((): TriggerEvent[] => {
149
151
  return ['click'] as TriggerEvent[]
150
152
  }
151
153
  // For hover dropdowns, add click to hide triggers for better UX
152
- // But on mobile, hover becomes click, so we handle it differently
153
- if (computedTriggers.includes('hover')) {
154
+ // But on small screens, hover becomes click, so we handle it differently
155
+ if (triggers.includes('hover')) {
154
156
  return [...computedTriggers, 'click'] as TriggerEvent[]
155
157
  }
156
158
  return computedTriggers
@@ -159,8 +161,8 @@ const computedHideTriggers = $computed((): TriggerEvent[] => {
159
161
  const computedPopperTriggers = $computed((): TriggerEvent[] => {
160
162
  if (popperTriggers.length > 0) return popperTriggers
161
163
  // For hover dropdowns, enable hover on popper to keep it open
162
- // But on mobile, don't add hover triggers since we convert to click
163
- if (computedTriggers.includes('hover') && !isMobile) {
164
+ // But on small screens, don't add hover triggers since we convert to click
165
+ if (triggers.includes('hover') && !isSmallScreen) {
164
166
  return ['hover'] as TriggerEvent[]
165
167
  }
166
168
  return []
@@ -170,8 +172,8 @@ const computedPopperTriggers = $computed((): TriggerEvent[] => {
170
172
  const computedPopperShowTriggers = $computed((): TriggerEvent[] | undefined => {
171
173
  const hasExplicitShowTriggers = Array.isArray(popperShowTriggers) && popperShowTriggers.length > 0
172
174
  if (hasExplicitShowTriggers) return popperShowTriggers
173
- // Only add hover for popper on desktop
174
- if (computedTriggers.includes('hover') && !isMobile) return ['hover'] as TriggerEvent[]
175
+ // Only add hover for popper on large screens
176
+ if (triggers.includes('hover') && !isSmallScreen) return ['hover'] as TriggerEvent[]
175
177
  return undefined
176
178
  })
177
179
 
@@ -179,8 +181,8 @@ const computedPopperHideTriggers = $computed((): TriggerEvent[] => {
179
181
  const hasExplicitHideTriggers = Array.isArray(popperHideTriggers) && popperHideTriggers.length > 0
180
182
  if (hasExplicitHideTriggers) return popperHideTriggers
181
183
  // For hover dropdowns, make sure popper hides on mouseout
182
- // But only on desktop where hover is meaningful
183
- if (computedTriggers.includes('hover') && !isMobile) {
184
+ // But only on large screens where hover is meaningful
185
+ if (triggers.includes('hover') && !isSmallScreen) {
184
186
  return ['hover'] as TriggerEvent[]
185
187
  }
186
188
  return []
@@ -190,11 +192,11 @@ const computedAutoHide = $computed(() => autoHide)
190
192
 
191
193
  const computedDelay = $computed((): number | { show: number, hide: number } | undefined => {
192
194
  if (delay !== undefined) return delay
193
- // For hover dropdowns, add a hide delay (but only on desktop)
194
- if (computedTriggers.includes('hover') && !isMobile) {
195
+ // For hover dropdowns, add a hide delay (but only on large screens)
196
+ if (triggers.includes('hover') && !isSmallScreen) {
195
197
  return { show: 0, hide: 10 } // 10ms delay before hiding
196
198
  }
197
- // For click dropdowns (including mobile), no delay
199
+ // For click dropdowns (including small screens), no delay
198
200
  return 0
199
201
  })
200
202