@v1nt1248/3nclient-lib 0.3.8 → 0.3.11

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 (84) hide show
  1. package/README.md +3 -2
  2. package/dist/components/ui3n-autocomplete/types.d.ts +100 -0
  3. package/dist/components/ui3n-badge/types.d.ts +14 -0
  4. package/dist/components/ui3n-badge/ui3n-badge.vue.d.ts +2 -4
  5. package/dist/components/ui3n-breadcrumbs/types.d.ts +50 -0
  6. package/dist/components/ui3n-breadcrumbs/ui3n-breadcrumbs.vue.d.ts +2 -4
  7. package/dist/components/ui3n-button/types.d.ts +21 -0
  8. package/dist/components/ui3n-button/ui3n-button.vue.d.ts +2 -4
  9. package/dist/components/ui3n-checkbox/types.d.ts +44 -0
  10. package/dist/components/ui3n-chip/types.d.ts +49 -0
  11. package/dist/components/ui3n-dialog/types.d.ts +103 -0
  12. package/dist/components/ui3n-drop-files/types.d.ts +31 -0
  13. package/dist/components/ui3n-editable/types.d.ts +102 -0
  14. package/dist/components/ui3n-emoji/types.d.ts +13 -0
  15. package/dist/components/ui3n-icon/types.d.ts +10 -0
  16. package/dist/components/ui3n-input/types.d.ts +85 -0
  17. package/dist/components/ui3n-input-file/types.d.ts +29 -0
  18. package/dist/components/ui3n-list/types.d.ts +35 -0
  19. package/dist/components/ui3n-menu/types.d.ts +89 -0
  20. package/dist/components/ui3n-notification/types.d.ts +28 -0
  21. package/dist/components/ui3n-progress/types.d.ts +49 -0
  22. package/dist/components/ui3n-radio-group/types.d.ts +78 -0
  23. package/dist/components/ui3n-selector/types.d.ts +95 -0
  24. package/dist/components/ui3n-slider/types.d.ts +51 -0
  25. package/dist/components/ui3n-step-line-bar/types.d.ts +12 -0
  26. package/dist/components/ui3n-switch/types.d.ts +31 -0
  27. package/dist/components/ui3n-table/types.d.ts +198 -0
  28. package/dist/components/ui3n-tabs/types.d.ts +38 -0
  29. package/dist/components/ui3n-text/types.d.ts +56 -0
  30. package/dist/components/ui3n-tooltip/types.d.ts +69 -0
  31. package/dist/components/ui3n-virtual-scroll/types.d.ts +18 -0
  32. package/dist/constants/general.d.ts +0 -1
  33. package/dist/constants/plugins-keys.d.ts +0 -2
  34. package/dist/index.d.ts +0 -8
  35. package/dist/plugins/index.d.ts +1 -4
  36. package/dist/style.css +1 -1
  37. package/dist/ui3n-components.js +14949 -14627
  38. package/dist/ui3n-plugins.d.ts +3 -11
  39. package/dist/ui3n-plugins.js +338 -367
  40. package/dist/ui3n-utils.js +422 -439
  41. package/dist/utils/copy-to-clipboard.d.ts +1 -0
  42. package/dist/utils/execute-function.d.ts +29 -0
  43. package/dist/utils/index.d.ts +3 -0
  44. package/dist/utils/remove-whitespace-in-string.d.ts +1 -0
  45. package/dist/utils/ui/get-element-color.d.ts +1 -1
  46. package/package.json +29 -26
  47. package/src/components/ui3n-autocomplete/types.ts +100 -0
  48. package/src/components/ui3n-badge/types.ts +16 -0
  49. package/src/components/ui3n-badge/ui3n-badge-simple.vue +10 -9
  50. package/src/components/ui3n-badge/ui3n-badge.vue +37 -36
  51. package/src/components/ui3n-breadcrumbs/types.ts +51 -0
  52. package/src/components/ui3n-breadcrumbs/ui3n-breadcrumb.vue +69 -69
  53. package/src/components/ui3n-breadcrumbs/ui3n-breadcrumbs.vue +7 -8
  54. package/src/components/ui3n-button/types.ts +23 -0
  55. package/src/components/ui3n-button/ui3n-button.vue +27 -29
  56. package/src/components/ui3n-checkbox/types.ts +44 -0
  57. package/src/components/ui3n-checkbox/ui3n-checkbox.vue +16 -23
  58. package/src/components/ui3n-chip/types.ts +51 -0
  59. package/src/components/ui3n-dialog/types.ts +103 -0
  60. package/src/components/ui3n-drop-files/types.ts +31 -0
  61. package/src/components/ui3n-editable/types.ts +102 -0
  62. package/src/components/ui3n-editable/useContentEditable.ts +4 -2
  63. package/src/components/ui3n-emoji/types.ts +13 -0
  64. package/src/components/ui3n-icon/types.ts +10 -0
  65. package/src/components/ui3n-input/types.ts +85 -0
  66. package/src/components/ui3n-input/ui3n-input.vue +15 -3
  67. package/src/components/ui3n-input-file/types.ts +29 -0
  68. package/src/components/ui3n-list/types.ts +35 -0
  69. package/src/components/ui3n-menu/types.ts +89 -0
  70. package/src/components/ui3n-notification/types.ts +28 -0
  71. package/src/components/ui3n-progress/types.ts +49 -0
  72. package/src/components/ui3n-radio-group/types.ts +78 -0
  73. package/src/components/ui3n-selector/types.ts +96 -1
  74. package/src/components/ui3n-slider/types.ts +51 -0
  75. package/src/components/ui3n-step-line-bar/types.ts +12 -0
  76. package/src/components/ui3n-switch/types.ts +31 -0
  77. package/src/components/ui3n-table/types.ts +204 -0
  78. package/src/components/ui3n-tabs/types.ts +38 -0
  79. package/src/components/ui3n-text/types.ts +56 -0
  80. package/src/components/ui3n-tooltip/types.ts +69 -0
  81. package/src/components/ui3n-virtual-scroll/types.ts +18 -0
  82. package/dist/plugins/i18n/i18n.d.ts +0 -9
  83. package/dist/plugins/i18n/store-i18n.d.ts +0 -7
  84. package/dist/plugins/i18n/types.d.ts +0 -9
@@ -1,17 +1,48 @@
1
1
  import { VNode } from 'vue';
2
2
 
3
+ /**
4
+ * Drop files component properties
5
+ */
3
6
  export interface Ui3nDropFilesProps {
7
+ /**
8
+ * Drop files title
9
+ */
4
10
  title?: string;
11
+ /**
12
+ * Drop files text
13
+ */
5
14
  text?: string;
15
+ /**
16
+ * Additional text
17
+ */
6
18
  additionalText?: string;
19
+ /**
20
+ * Whether to permanently display the component
21
+ * @default false
22
+ */
7
23
  permanentDisplay?: boolean;
8
24
  }
9
25
 
26
+ /**
27
+ * Drop files component emits
28
+ */
10
29
  export interface Ui3nDropFilesEmits {
30
+ /**
31
+ * Called when files are selected
32
+ */
11
33
  (e: 'select', fileList: FileList): void;
12
34
  }
13
35
 
36
+ /**
37
+ * Drop files component slots
38
+ */
14
39
  export interface Ui3nDropFilesSlots {
40
+ /**
41
+ * Default slot
42
+ */
15
43
  default: () => VNode;
44
+ /**
45
+ * Additional text slot
46
+ */
16
47
  'additional-text': () => VNode;
17
48
  }
@@ -1,43 +1,145 @@
1
1
  import type { Nullable } from '@/types';
2
2
 
3
+ /**
4
+ * Properties of the Ui3nContentEditable component
5
+ */
3
6
  export interface Ui3nContentEditableProps {
7
+ /**
8
+ * Current value of the editable content
9
+ */
4
10
  modelValue: string;
11
+ /**
12
+ * Placeholder text
13
+ */
5
14
  placeholder?: string;
15
+ /**
16
+ * Maximum length of the text
17
+ */
6
18
  maxLength?: number;
19
+ /**
20
+ * Component disabled flag
21
+ */
7
22
  disabled?: boolean;
23
+ /**
24
+ * Flag for automatic selection of all text on focus
25
+ */
8
26
  selectAllOnFocus?: boolean;
27
+ /**
28
+ * Multiline mode flag
29
+ */
9
30
  isMultiline?: boolean;
31
+ /**
32
+ * Flag to prevent empty values
33
+ */
10
34
  disallowEmptyValue?: boolean;
35
+ /**
36
+ * Debounce delay in milliseconds
37
+ */
11
38
  debounceDelay?: number;
12
39
  }
13
40
 
41
+ /**
42
+ * Events of the Ui3nContentEditable component
43
+ */
14
44
  export interface Ui3nContentEditableEmits {
45
+ /**
46
+ * Component initialization event
47
+ */
15
48
  (event: 'init', value: HTMLElement): void;
49
+ /**
50
+ * Model value update event
51
+ */
16
52
  (event: 'update:modelValue', value: Nullable<string>): void;
53
+ /**
54
+ * Input event
55
+ */
17
56
  (event: 'input', value: Nullable<string>): void;
57
+ /**
58
+ * Value change event
59
+ */
18
60
  (event: 'change', value: Nullable<string>): void;
61
+ /**
62
+ * Click event
63
+ */
19
64
  (event: 'click', value: MouseEvent): void;
65
+ /**
66
+ * Keydown event
67
+ */
20
68
  (event: 'keydown', value: KeyboardEvent): void;
69
+ /**
70
+ * Focusin event
71
+ */
21
72
  (event: 'focusin', value: FocusEvent): void;
73
+ /**
74
+ * Focusout event
75
+ */
22
76
  (event: 'focusout', value: FocusEvent): void;
23
77
  }
24
78
 
79
+ /**
80
+ * Properties of the Ui3nEditable component
81
+ */
25
82
  export interface Ui3nEditableProps {
83
+ /**
84
+ * Current value of the editable content
85
+ */
26
86
  modelValue: string;
87
+ /**
88
+ * Placeholder text
89
+ */
27
90
  placeholder?: string;
91
+ /**
92
+ * Maximum length of the text
93
+ */
28
94
  maxLength?: number;
95
+ /**
96
+ * Maximum width of the component
97
+ */
29
98
  maxWidth?: string | number;
99
+ /**
100
+ * Tooltip width
101
+ */
30
102
  tooltipWidth?: number;
103
+ /**
104
+ * Component disabled flag
105
+ */
31
106
  disabled?: boolean;
107
+ /**
108
+ * Flag for automatic selection of all text on focus
109
+ */
32
110
  selectAllOnFocus?: boolean;
111
+ /**
112
+ * Flag to prevent empty values
113
+ */
33
114
  disallowEmptyValue?: boolean;
34
115
  }
35
116
 
117
+ /**
118
+ * Events of the Ui3nEditable component
119
+ */
36
120
  export interface Ui3nEditableEmits {
121
+ /**
122
+ * Model value update event
123
+ */
37
124
  (event: 'update:modelValue', value: Nullable<string>): void;
125
+ /**
126
+ * Edit mode toggle event
127
+ */
38
128
  (event: 'toggle:editMode', value: boolean): void;
129
+ /**
130
+ * Edit completion event
131
+ */
39
132
  (event: 'done'): void;
133
+ /**
134
+ * Edit cancellation event
135
+ */
40
136
  (event: 'cancel'): void;
137
+ /**
138
+ * Focusin event
139
+ */
41
140
  (event: 'focusin', value: FocusEvent): void;
141
+ /**
142
+ * Focusout event
143
+ */
42
144
  (event: 'focusout'): void;
43
145
  }
@@ -3,7 +3,7 @@ import debounce from 'lodash/debounce';
3
3
  import sanitizeHtml from 'sanitize-html';
4
4
  import { selectAll } from '@/utils';
5
5
  import type { Nullable } from '@/types';
6
- import type { Ui3nContentEditableEmits, Ui3nContentEditableProps } from '@/components/ui3n-editable/types';
6
+ import type { Ui3nContentEditableEmits, Ui3nContentEditableProps } from './types';
7
7
 
8
8
  export function useContentEditable(props: Ui3nContentEditableProps, emits: Ui3nContentEditableEmits) {
9
9
  const el = ref<Nullable<HTMLElement>>(null);
@@ -130,7 +130,9 @@ export function useContentEditable(props: Ui3nContentEditableProps, emits: Ui3nC
130
130
  }
131
131
 
132
132
  onMounted(() => {
133
- el.value && emits('init', el.value);
133
+ if (el.value) {
134
+ emits('init', el.value);
135
+ }
134
136
  });
135
137
 
136
138
  watch(
@@ -1,9 +1,22 @@
1
1
  export interface Ui3nEmojiProps {
2
+ /**
3
+ * Emoji to display
4
+ */
2
5
  emoji: string;
6
+ /**
7
+ * Emoji size
8
+ */
3
9
  size?: string | number;
10
+ /**
11
+ * Whether emoji is readonly
12
+ * @default false
13
+ */
4
14
  readonly?: boolean;
5
15
  }
6
16
 
7
17
  export interface Ui3nEmojiEmits {
18
+ /**
19
+ * Called when emoji is clicked
20
+ */
8
21
  (ev: 'click', value: Event): void;
9
22
  }
@@ -1,15 +1,25 @@
1
1
  export interface Ui3nIconProps {
2
+ /** Icon name */
2
3
  icon: string;
4
+ /** Icon title */
3
5
  title?: string;
6
+ /** Icon size */
4
7
  size?: string | number;
8
+ /** Icon width */
5
9
  width?: string | number;
10
+ /** Icon height */
6
11
  height?: string | number;
12
+ /** Icon color */
7
13
  color?: string;
14
+ /** Flip icon horizontally */
8
15
  horizontalFlip?: boolean;
16
+ /** Flip icon vertically */
9
17
  verticalFlip?: boolean;
18
+ /** Icon rotation in degrees */
10
19
  rotate?: number;
11
20
  }
12
21
 
13
22
  export interface Ui3nIconEmits {
23
+ /** Called when the icon is clicked */
14
24
  (ev: 'click', value: Event): void;
15
25
  }
@@ -1,29 +1,105 @@
1
1
  export interface Ui3nInputProps {
2
+ /**
3
+ * Input value
4
+ */
2
5
  modelValue: string;
6
+ /**
7
+ * Input label
8
+ */
3
9
  label?: string;
10
+ /**
11
+ * Input type
12
+ * @default 'text'
13
+ */
4
14
  type?: 'text' | 'password';
15
+ /**
16
+ * Input placeholder
17
+ */
5
18
  placeholder?: string;
19
+ /**
20
+ * Whether input is clearable
21
+ * @default false
22
+ */
6
23
  clearable?: boolean;
24
+ /**
25
+ * Whether input is autofocus
26
+ * @default false
27
+ */
7
28
  autofocus?: boolean;
29
+ /**
30
+ * Input icon
31
+ */
8
32
  icon?: string;
33
+ /**
34
+ * Input icon color
35
+ */
9
36
  iconColor?: string;
37
+ /**
38
+ * Validation rules
39
+ */
10
40
  rules?: Array<(v: unknown) => boolean | string>;
41
+ /**
42
+ * Whether to validate at startup
43
+ * @default false
44
+ */
11
45
  validateAtStartup?: boolean;
46
+ /**
47
+ * Whether to hide bottom space
48
+ * @default false
49
+ */
12
50
  hideBottomSpace?: boolean;
51
+ /**
52
+ * Display state mode
53
+ */
13
54
  displayStateMode?: 'error' | 'success';
55
+ /**
56
+ * Whether to display state with icon
57
+ * @default false
58
+ */
14
59
  displayStateWithIcon?: boolean;
60
+ /**
61
+ * Display state message
62
+ */
15
63
  displayStateMessage?: string;
64
+ /**
65
+ * Whether input is disabled
66
+ * @default false
67
+ */
16
68
  disabled?: boolean;
17
69
  }
18
70
 
19
71
  export interface Ui3nInputEmits {
72
+ /**
73
+ * Called when input is initialized
74
+ */
20
75
  (event: 'init', value: HTMLInputElement): void;
76
+ /**
77
+ * Called when input value changes
78
+ */
21
79
  (event: 'input', value: string): void;
80
+ /**
81
+ * Called when key is pressed
82
+ */
22
83
  (event: 'keydown', value: KeyboardEvent): void;
84
+ /**
85
+ * Called when input is focused
86
+ */
23
87
  (event: 'focus', value: Event): void;
88
+ /**
89
+ * Called when input loses focus
90
+ */
24
91
  (event: 'blur', value: Event): void;
92
+ /**
93
+ * Called when input is cleared
94
+ */
25
95
  (event: 'clear'): void;
96
+ /**
97
+ * Called when input value changes
98
+ */
26
99
  (event: 'change', value: string): void;
100
+ /**
101
+ * Called when Enter key is pressed
102
+ */
27
103
  (
28
104
  event: 'enter',
29
105
  value: {
@@ -34,7 +110,16 @@ export interface Ui3nInputEmits {
34
110
  metaKey: boolean;
35
111
  },
36
112
  ): void;
113
+ /**
114
+ * Called when Escape key is pressed
115
+ */
37
116
  (event: 'escape', value: Event): void;
117
+ /**
118
+ * Called when model value updates
119
+ */
38
120
  (event: 'update:modelValue', value: string): void;
121
+ /**
122
+ * Called when validation status updates
123
+ */
39
124
  (event: 'update:valid', value: boolean): void;
40
125
  }
@@ -13,6 +13,8 @@
13
13
  const isFocused = ref(false);
14
14
  const errorMessage = ref('');
15
15
 
16
+ const isInitialized = ref(false);
17
+
16
18
  const cssIconColor = computed(() => {
17
19
  if (props.disabled) {
18
20
  return 'var(--color-icon-control-primary-disabled)';
@@ -109,9 +111,12 @@
109
111
  }
110
112
 
111
113
  emits('init', inputElement.value!);
112
- if (props.validateAtStartup) {
114
+ if (props.validateAtStartup && !isInitialized.value) {
113
115
  validate(text.value);
114
116
  }
117
+ if (!isInitialized.value) {
118
+ isInitialized.value = true;
119
+ }
115
120
  });
116
121
 
117
122
  watch(
@@ -119,7 +124,14 @@
119
124
  (val, oldVal) => {
120
125
  if ((val ?? '') !== (oldVal ?? '')) {
121
126
  text.value = val ?? '';
122
- validate(text.value);
127
+
128
+ if ((props.validateAtStartup && !isInitialized.value) || isInitialized.value) {
129
+ validate(text.value);
130
+ }
131
+
132
+ if (!isInitialized.value) {
133
+ isInitialized.value = true;
134
+ }
123
135
  }
124
136
  },
125
137
  { immediate: true },
@@ -193,7 +205,7 @@
193
205
  />
194
206
 
195
207
  <div
196
- v-if="(isDirty && errorMessage) || (displayStateMode && displayStateMessage)"
208
+ v-if="(text && errorMessage) || (isDirty && errorMessage) || (displayStateMode && displayStateMessage)"
197
209
  :class="[
198
210
  $style.ui3nInputFieldMessage,
199
211
  (errorMessage || (displayStateMode === 'error' && displayStateMessage)) && $style.ui3nInputErrorMessage,
@@ -1,14 +1,43 @@
1
1
  export interface Ui3nInputFileProps {
2
+ /**
3
+ * Selected files
4
+ */
2
5
  modelValue?: File[] | FileList;
6
+ /**
7
+ * Button text
8
+ */
3
9
  buttonText?: string;
10
+ /**
11
+ * Whether multiple files can be selected
12
+ * @default false
13
+ */
4
14
  multiple?: boolean;
15
+ /**
16
+ * Maximum number of files
17
+ */
5
18
  maxNumberOfFiles?: number | string;
19
+ /**
20
+ * Maximum file size in bytes
21
+ */
6
22
  maxFileSize?: number;
23
+ /**
24
+ * Allowed file types
25
+ */
7
26
  allowedFileTypes?: string;
27
+ /**
28
+ * Whether input is disabled
29
+ * @default false
30
+ */
8
31
  disabled?: boolean;
9
32
  }
10
33
 
11
34
  export interface Ui3nInputFileEmits {
35
+ /**
36
+ * Called when model value updates
37
+ */
12
38
  (event: 'update:modelValue', value: File[] | FileList): void;
39
+ /**
40
+ * Called when error occurs
41
+ */
13
42
  (event: 'error', value: string): void;
14
43
  }
@@ -1,18 +1,53 @@
1
1
  import { VNode } from 'vue';
2
2
 
3
+ /**
4
+ * List component properties
5
+ */
3
6
  export interface Ui3nListProps<T> {
7
+ /**
8
+ * List title
9
+ */
4
10
  title?: string;
11
+ /**
12
+ * Whether to stick to top
13
+ * @default false
14
+ */
5
15
  sticky?: boolean;
16
+ /**
17
+ * List items
18
+ */
6
19
  items: T[];
20
+ /**
21
+ * Key field for items
22
+ */
7
23
  keyField?: keyof T;
24
+ /**
25
+ * Whether list is disabled
26
+ * @default false
27
+ */
8
28
  disabled?: boolean;
9
29
  }
10
30
 
31
+ /**
32
+ * List component emits
33
+ */
11
34
  export interface Ui3nListEmits<T> {
35
+ /**
36
+ * Emitted when item is selected
37
+ */
12
38
  (ev: 'select', value: { value: T; index: number }): void;
13
39
  }
14
40
 
41
+ /**
42
+ * List component slots
43
+ */
15
44
  export interface Ui3nListSlots<T> {
45
+ /**
46
+ * Title slot
47
+ */
16
48
  title?: () => VNode;
49
+ /**
50
+ * Item slot
51
+ */
17
52
  item?: ({ item, index }: { item: T; index: number }) => VNode;
18
53
  }
@@ -1,36 +1,125 @@
1
1
  import type { Ref, VNode } from 'vue';
2
2
 
3
+ /**
4
+ * Menu component properties
5
+ */
3
6
  export interface Ui3nMenuProps {
7
+ /**
8
+ * Menu open state
9
+ */
4
10
  modelValue?: boolean;
11
+ /**
12
+ * Trigger element
13
+ */
5
14
  triggerElement?: HTMLElement;
15
+ /**
16
+ * Position strategy
17
+ * @default 'absolute'
18
+ */
6
19
  positionStrategy?: 'absolute' | 'fixed';
20
+ /**
21
+ * Whether to update position automatically
22
+ * @default true
23
+ */
7
24
  positionAutoupdate?: boolean;
25
+ /**
26
+ * Whether to allow flipping
27
+ * @default true
28
+ */
8
29
  allowFlip?: boolean;
30
+ /**
31
+ * Offset X
32
+ * @default 0
33
+ */
9
34
  offsetX?: number;
35
+ /**
36
+ * Offset Y
37
+ * @default 0
38
+ */
10
39
  offsetY?: number;
40
+ /**
41
+ * Content border radius
42
+ */
11
43
  contentBorderRadius?: number | number[];
44
+ /**
45
+ * Content styles
46
+ */
12
47
  contentStyles?: Record<string, string>;
48
+ /**
49
+ * Z-index
50
+ */
13
51
  zIndex?: number;
52
+ /**
53
+ * Whether to close on click
54
+ * @default true
55
+ */
14
56
  closeOnClick?: boolean;
57
+ /**
58
+ * Whether to close on click outside
59
+ * @default true
60
+ */
15
61
  closeOnClickOutside?: boolean;
62
+ /**
63
+ * Whether menu is disabled
64
+ * @default false
65
+ */
16
66
  disabled?: boolean;
17
67
  }
18
68
 
69
+ /**
70
+ * Menu component emits
71
+ */
19
72
  export interface Ui3nMenuEmits {
73
+ /**
74
+ * Emitted when menu opens
75
+ */
20
76
  (ev: 'open'): void;
77
+ /**
78
+ * Emitted when menu is opened
79
+ */
21
80
  (ev: 'opened'): void;
81
+ /**
82
+ * Emitted when menu closes
83
+ */
22
84
  (ev: 'close'): void;
85
+ /**
86
+ * Emitted when menu is closed
87
+ */
23
88
  (ev: 'closed'): void;
89
+ /**
90
+ * Emitted when click outside
91
+ */
24
92
  (ev: 'click-outside'): void;
93
+ /**
94
+ * Emitted when model value updates
95
+ */
25
96
  (ev: 'update:modelValue', value: boolean): void;
26
97
  }
27
98
 
99
+ /**
100
+ * Menu component slots
101
+ */
28
102
  export interface Ui3nMenuSlots {
103
+ /**
104
+ * Default slot
105
+ */
29
106
  default: () => VNode;
107
+ /**
108
+ * Menu slot
109
+ */
30
110
  menu?: () => VNode;
31
111
  }
32
112
 
113
+ /**
114
+ * Menu component expose
115
+ */
33
116
  export interface Ui3nMenuExpose {
117
+ /**
118
+ * Whether menu is positioned
119
+ */
34
120
  isPositioned: Readonly<Ref<boolean>>;
121
+ /**
122
+ * Update position
123
+ */
35
124
  update: () => void;
36
125
  }
@@ -1,11 +1,39 @@
1
1
  export interface Ui3nNotificationProps {
2
+ /**
3
+ * Notification ID
4
+ */
2
5
  id?: string;
6
+ /**
7
+ * Notification type
8
+ */
3
9
  type?: 'success' | 'warning' | 'info' | 'error';
10
+ /**
11
+ * Notification content
12
+ */
4
13
  content: string;
14
+ /**
15
+ * Notification position
16
+ */
5
17
  position?: 'left' | 'center' | 'right';
18
+ /**
19
+ * Notification duration in milliseconds
20
+ */
6
21
  duration?: number;
22
+ /**
23
+ * Whether to display icon
24
+ * @default false
25
+ */
7
26
  withIcon?: boolean;
27
+ /**
28
+ * Teleport target
29
+ */
8
30
  teleport?: string;
31
+ /**
32
+ * Called when notification opens
33
+ */
9
34
  onOpen?: () => void;
35
+ /**
36
+ * Called when notification closes
37
+ */
10
38
  onClose?: () => void;
11
39
  }