@v1nt1248/3nclient-lib 0.2.55 → 0.2.57

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.
Files changed (74) hide show
  1. package/dist/components/ui3n-autocomplete/types.d.ts +1 -1
  2. package/dist/components/ui3n-autocomplete/ui3n-autocomplete.vue.d.ts +3 -3
  3. package/dist/components/ui3n-badge/ui3n-badge-simple.vue.d.ts +3 -3
  4. package/dist/components/ui3n-badge/ui3n-badge.vue.d.ts +2 -2
  5. package/dist/components/ui3n-breadcrumbs/types.d.ts +1 -1
  6. package/dist/components/ui3n-breadcrumbs/ui3n-breadcrumb.vue.d.ts +3 -3
  7. package/dist/components/ui3n-breadcrumbs/ui3n-breadcrumbs.vue.d.ts +2 -2
  8. package/dist/components/ui3n-button/ui3n-button.vue.d.ts +3 -3
  9. package/dist/components/ui3n-checkbox/types.d.ts +1 -1
  10. package/dist/components/ui3n-checkbox/ui3n-checkbox.vue.d.ts +3 -3
  11. package/dist/components/ui3n-chip/types.d.ts +1 -1
  12. package/dist/components/ui3n-chip/ui3n-chip.vue.d.ts +3 -3
  13. package/dist/components/ui3n-dialog/types.d.ts +1 -1
  14. package/dist/components/ui3n-dialog/ui3n-dialog.vue.d.ts +4 -4
  15. package/dist/components/ui3n-drop-files/types.d.ts +1 -1
  16. package/dist/components/ui3n-drop-files/ui3n-drop-files.vue.d.ts +3 -3
  17. package/dist/components/ui3n-editable/ui3n-editable.vue.d.ts +3 -3
  18. package/dist/components/ui3n-editable/useContentEditable.d.ts +2 -2
  19. package/dist/components/ui3n-emoji/ui3n-emoji.vue.d.ts +3 -3
  20. package/dist/components/ui3n-icon/ui3n-icon.vue.d.ts +3 -3
  21. package/dist/components/ui3n-input/ui3n-input.vue.d.ts +6 -6
  22. package/dist/components/ui3n-input-file/ui3n-input-file.vue.d.ts +3 -3
  23. package/dist/components/ui3n-list/types.d.ts +1 -1
  24. package/dist/components/ui3n-list/ui3n-list.vue.d.ts +3 -3
  25. package/dist/components/ui3n-menu/types.d.ts +2 -1
  26. package/dist/components/ui3n-menu/ui3n-menu.vue.d.ts +12 -11
  27. package/dist/components/ui3n-notification/ui3n-notification.vue.d.ts +2 -2
  28. package/dist/components/ui3n-progress/ui3n-progress-circular.vue.d.ts +2 -2
  29. package/dist/components/ui3n-progress/ui3n-progress-linear.vue.d.ts +2 -2
  30. package/dist/components/ui3n-radio-group/types.d.ts +1 -1
  31. package/dist/components/ui3n-radio-group/ui3n-radio-group.vue.d.ts +3 -3
  32. package/dist/components/ui3n-radio-group/ui3n-radio.vue.d.ts +3 -3
  33. package/dist/components/ui3n-slider/ui3n-slider.vue.d.ts +3 -3
  34. package/dist/components/ui3n-step-line-bar/ui3n-step-line-bar.vue.d.ts +2 -2
  35. package/dist/components/ui3n-switch/types.d.ts +1 -1
  36. package/dist/components/ui3n-switch/ui3n-switch.vue.d.ts +3 -3
  37. package/dist/components/ui3n-table/composables/useTable.d.ts +5 -5
  38. package/dist/components/ui3n-table/types.d.ts +1 -1
  39. package/dist/components/ui3n-table/ui3n-table-sort-icon.vue.d.ts +1 -1
  40. package/dist/components/ui3n-table/ui3n-table.vue.d.ts +3 -3
  41. package/dist/components/ui3n-tabs/types.d.ts +1 -1
  42. package/dist/components/ui3n-tabs/ui3n-tabs.vue.d.ts +3 -3
  43. package/dist/components/ui3n-text/ui3n-text.vue.d.ts +3 -3
  44. package/dist/components/ui3n-tooltip/types.d.ts +1 -1
  45. package/dist/components/ui3n-tooltip/ui3n-tooltip.vue.d.ts +3 -3
  46. package/dist/components/ui3n-virtual-scroll/types.d.ts +1 -1
  47. package/dist/components/ui3n-virtual-scroll/ui3n-virtual-scroll.vue.d.ts +3 -3
  48. package/dist/directives/ui3n-click-outside.d.ts +1 -1
  49. package/dist/directives/ui3n-html.d.ts +1 -1
  50. package/dist/directives/ui3n-long-press.d.ts +1 -1
  51. package/dist/directives/ui3n-resize.d.ts +1 -1
  52. package/dist/directives/ui3n-ripple.d.ts +1 -1
  53. package/dist/directives/ui3n-title.d.ts +1 -1
  54. package/dist/index.d.ts +2 -2
  55. package/dist/plugins/dialogs/dialogs.d.ts +1 -1
  56. package/dist/plugins/dialogs/store-dialogs.d.ts +1 -1
  57. package/dist/plugins/dialogs/types.d.ts +1 -1
  58. package/dist/plugins/i18n/i18n.d.ts +1 -1
  59. package/dist/plugins/i18n/types.d.ts +1 -1
  60. package/dist/plugins/notifications/notifications.d.ts +1 -1
  61. package/dist/plugins/notifications/types.d.ts +1 -1
  62. package/dist/plugins/vue-bus/types.d.ts +1 -1
  63. package/dist/plugins/vue-bus/vue-bus.d.ts +1 -1
  64. package/dist/style.css +1 -1
  65. package/dist/types/components.types.d.ts +1 -1
  66. package/dist/types/directives.types.d.ts +1 -1
  67. package/dist/ui3n-components.d.ts +1 -1
  68. package/dist/ui3n-components.js +5628 -5629
  69. package/dist/ui3n-plugins.d.ts +2 -2
  70. package/dist/ui3n-plugins.js +866 -866
  71. package/dist/utils/ui/has-slot-content.d.ts +1 -1
  72. package/package.json +6 -6
  73. package/src/components/ui3n-menu/types.ts +1 -0
  74. package/src/components/ui3n-menu/ui3n-menu.vue +26 -19
@@ -1,2 +1,2 @@
1
- import { Slot } from 'vue';
1
+ import { Slot } from '../../../vue/dist/vue.esm-bundler.js';
2
2
  export declare function hasSlotContent(slot?: Slot, slotProps?: {}): boolean;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@v1nt1248/3nclient-lib",
3
3
  "license": "AGPL-3.0-or-later",
4
4
  "author": "v1nt1248",
5
- "version": "0.2.55",
5
+ "version": "0.2.57",
6
6
  "description": "Library for 3NWeb clients",
7
7
  "type": "module",
8
8
  "files": [
@@ -61,7 +61,7 @@
61
61
  },
62
62
  "peerDependencies": {
63
63
  "pinia": "3.0.3",
64
- "vue": "3.5.21"
64
+ "vue": "3.5.22"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@eslint/eslintrc": "^3.3.1",
@@ -74,7 +74,7 @@
74
74
  "@vitejs/plugin-vue": "6.0.1",
75
75
  "@vue/compiler-core": "3.5.21",
76
76
  "@vue/eslint-config-typescript": "14.6.0",
77
- "@vue/runtime-core": "3.5.21",
77
+ "@vue/runtime-core": "3.5.22",
78
78
  "@vuedx/typescript-plugin-vue": "0.7.6",
79
79
  "eslint": "9.34.0",
80
80
  "eslint-config-prettier": "10.1.8",
@@ -103,11 +103,11 @@
103
103
  "vite-plugin-dts": "4.5.4",
104
104
  "vite-plugin-vue-devtools": "^7.7.7",
105
105
  "vitepress": "1.6.4",
106
- "vue": "3.5.21",
106
+ "vue": "3.5.22",
107
107
  "vue-eslint-parser": "^10.2.0",
108
- "vue-tsc": "3.0.6"
108
+ "vue-tsc": "3.1.1"
109
109
  },
110
- "packageManager": "pnpm@10.16.0",
110
+ "packageManager": "pnpm@10.18.2",
111
111
  "pnpm": {
112
112
  "peerDependencyRules": {
113
113
  "ignoreMissing": [
@@ -5,6 +5,7 @@ export interface Ui3nMenuProps {
5
5
  triggerElement?: HTMLElement;
6
6
  positionStrategy?: 'absolute' | 'fixed';
7
7
  positionAutoupdate?: boolean;
8
+ allowFlip?: boolean;
8
9
  offsetX?: number;
9
10
  offsetY?: number;
10
11
  contentBorderRadius?: number | number[];
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import { computed, ref, watch } from 'vue';
2
+ import { computed, ref, watch, useTemplateRef } from 'vue';
3
3
  import { autoUpdate, flip, useFloating, offset, shift } from '@floating-ui/vue';
4
4
  import { default as vClickOutside } from '../../directives/ui3n-click-outside';
5
5
  import type { Ui3nMenuEmits, Ui3nMenuProps, Ui3nMenuSlots, Ui3nMenuExpose } from './types';
@@ -10,6 +10,7 @@
10
10
  offsetX: 0,
11
11
  offsetY: 0,
12
12
  contentBorderRadius: 4,
13
+ allowFlip: true,
13
14
  zIndex: 1000,
14
15
  closeOnClick: true,
15
16
  closeOnClickOutside: true,
@@ -18,9 +19,8 @@
18
19
  const emits = defineEmits<Ui3nMenuEmits>();
19
20
  defineSlots<Ui3nMenuSlots>();
20
21
 
21
- const menuElement = ref<HTMLDivElement | null>(null);
22
- const menuTriggerElement = ref<HTMLDivElement | null>(null);
23
- const menuContentElement = ref<HTMLDivElement | null>(null);
22
+ const menuTriggerElement = useTemplateRef<HTMLDivElement>('menu-trigger-element');
23
+ const menuContentElement = useTemplateRef<HTMLDivElement>('menu-content-element');
24
24
  const isShow = ref(false);
25
25
 
26
26
  const outerTriggerElement = ref<Nullable<HTMLElement>>(props.triggerElement || null);
@@ -37,6 +37,24 @@
37
37
  });
38
38
  const zIndexCss = computed(() => props.zIndex);
39
39
 
40
+ const middleware = [
41
+ offset({
42
+ mainAxis: props.offsetY,
43
+ crossAxis: props.offsetX + 2,
44
+ }),
45
+ ];
46
+
47
+ if (props.allowFlip) {
48
+ middleware.push(
49
+ flip({
50
+ fallbackAxisSideDirection: 'end',
51
+ fallbackPlacements: ['top-end', 'bottom-end'],
52
+ }),
53
+ );
54
+ }
55
+
56
+ middleware.push(shift());
57
+
40
58
  const {
41
59
  floatingStyles,
42
60
  isPositioned,
@@ -47,18 +65,7 @@
47
65
  {
48
66
  placement: 'bottom-start',
49
67
  strategy: props.positionStrategy,
50
- middleware: [
51
- offset({
52
- mainAxis: props.offsetY,
53
- crossAxis: props.offsetX + 2,
54
- }),
55
- flip({
56
- fallbackAxisSideDirection: 'end',
57
- flipAlignment: false,
58
- fallbackPlacements: ['bottom-end'],
59
- }),
60
- shift(),
61
- ],
68
+ middleware,
62
69
  whileElementsMounted: props.positionAutoupdate || props.positionStrategy === 'fixed' ? autoUpdate : undefined,
63
70
  });
64
71
 
@@ -128,11 +135,11 @@
128
135
 
129
136
  <template>
130
137
  <div
131
- ref="menuElement"
138
+ ref="menu-element"
132
139
  :class="$style.ui3nMenu"
133
140
  >
134
141
  <div
135
- ref="menuTriggerElement"
142
+ ref="menu-trigger-element"
136
143
  :class="[$style.ui3nMenuTrigger, disabled && $style.ui3nMenuTriggerDisabled]"
137
144
  @click.stop="toggleMenu"
138
145
  >
@@ -141,7 +148,7 @@
141
148
 
142
149
  <div
143
150
  v-if="isShow"
144
- ref="menuContentElement"
151
+ ref="menu-content-element"
145
152
  v-click-outside="onClickOutside"
146
153
  :style="floatingStyles"
147
154
  :class="$style.ui3nMenuContent"