sprintify-ui 0.0.10 → 0.0.12

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 (103) hide show
  1. package/dist/sprintify-ui.es.js +5174 -6624
  2. package/dist/style.css +1 -1
  3. package/dist/tailwindcss/index.js +23 -0
  4. package/dist/types/src/components/BaseAutocomplete.vue.d.ts +0 -1
  5. package/dist/types/src/components/BaseAutocompleteFetch.vue.d.ts +0 -1
  6. package/dist/types/src/components/BaseBelongsTo.vue.d.ts +13 -3
  7. package/dist/types/src/components/BaseCharacterCounter.vue.d.ts +143 -0
  8. package/dist/types/src/components/BaseDataTable.vue.d.ts +95 -64
  9. package/dist/types/src/components/BaseDialog.vue.d.ts +8 -8
  10. package/dist/types/src/components/BaseFilePicker.vue.d.ts +3 -3
  11. package/dist/types/src/components/BaseInput.vue.d.ts +39 -5
  12. package/dist/types/src/components/BaseLoadingCover.vue.d.ts +84 -12
  13. package/dist/types/src/components/BaseMenuItem.vue.d.ts +4 -4
  14. package/dist/types/src/components/BaseModalCenter.vue.d.ts +8 -8
  15. package/dist/types/src/components/BaseModalSide.vue.d.ts +8 -8
  16. package/dist/types/src/components/BaseNavbarItemContent.vue.d.ts +4 -4
  17. package/dist/types/src/components/BasePagination.vue.d.ts +105 -13
  18. package/dist/types/src/components/BasePaginationSimple.vue.d.ts +2 -2
  19. package/dist/types/src/components/BaseSelect.vue.d.ts +130 -26
  20. package/dist/types/src/components/BaseSwitch.vue.d.ts +15 -8
  21. package/dist/types/src/components/BaseTabItem.vue.d.ts +26 -4
  22. package/dist/types/src/components/BaseTableColumn.vue.d.ts +4 -4
  23. package/dist/types/src/components/BaseTextareaAutoresize.vue.d.ts +175 -21
  24. package/dist/types/src/components/index.d.ts +24 -1
  25. package/dist/types/src/index.d.ts +4 -0
  26. package/dist/types/src/svg/BaseEmptyState.vue.d.ts +2 -0
  27. package/dist/types/src/{components/BaseSpinner.vue.d.ts → svg/BaseSpinnerLarge.vue.d.ts} +0 -0
  28. package/dist/types/src/svg/BaseSpinnerSmall.vue.d.ts +44 -0
  29. package/dist/types/src/types/types.d.ts +1 -1
  30. package/package.json +4 -2
  31. package/src/components/BaseAutocomplete.stories.js +7 -4
  32. package/src/components/BaseAutocomplete.vue +44 -15
  33. package/src/components/BaseAutocompleteFetch.stories.js +6 -3
  34. package/src/components/BaseAutocompleteFetch.vue +8 -3
  35. package/src/components/BaseBelongsTo.stories.js +9 -4
  36. package/src/components/BaseBelongsTo.vue +1 -0
  37. package/src/components/BaseCard.vue +1 -1
  38. package/src/components/BaseCharacterCounter.stories.js +30 -0
  39. package/src/components/BaseCharacterCounter.vue +60 -0
  40. package/src/components/BaseDataIterator.stories.js +102 -3
  41. package/src/components/BaseDataIterator.vue +75 -49
  42. package/src/components/BaseDataTable.stories.js +149 -2
  43. package/src/components/BaseDataTable.vue +34 -28
  44. package/src/components/BaseDataTableToggleColumns.vue +1 -1
  45. package/src/components/BaseDateSelect.vue +6 -2
  46. package/src/components/BaseDescriptionListItem.vue +40 -4
  47. package/src/components/BaseDialog.stories.js +51 -0
  48. package/src/components/BaseDialog.vue +13 -7
  49. package/src/components/BaseFilePicker.stories.js +51 -0
  50. package/src/components/BaseFilePicker.vue +6 -6
  51. package/src/components/BaseFileUploader.stories.js +80 -0
  52. package/src/components/BaseFileUploader.vue +16 -3
  53. package/src/components/BaseInput.stories.js +46 -0
  54. package/src/components/BaseInput.vue +10 -2
  55. package/src/components/BaseInputLabel.stories.js +31 -0
  56. package/src/components/BaseInputLabel.vue +1 -1
  57. package/src/components/BaseLoadingCover.stories.js +55 -0
  58. package/src/components/BaseLoadingCover.vue +27 -17
  59. package/src/components/BaseMenu.stories.js +125 -0
  60. package/src/components/BaseModalCenter.stories.js +61 -0
  61. package/src/components/BaseModalCenter.vue +2 -2
  62. package/src/components/BaseModalSide.stories.js +55 -0
  63. package/src/components/BaseModalSide.vue +2 -2
  64. package/src/components/BaseNavbar.stories.js +150 -0
  65. package/src/components/BaseNavbar.vue +3 -0
  66. package/src/components/BaseNavbarItem.vue +1 -0
  67. package/src/components/BaseNavbarItemContent.vue +3 -0
  68. package/src/components/BasePagination.stories.js +32 -0
  69. package/src/components/BasePagination.vue +126 -40
  70. package/src/components/BasePaginationSimple.vue +3 -3
  71. package/src/components/BasePanel.stories.js +56 -0
  72. package/src/components/BasePassword.stories.js +36 -0
  73. package/src/components/BasePassword.vue +11 -5
  74. package/src/components/BaseProcessRing.stories.js +27 -0
  75. package/src/components/BaseReadMore.stories.js +30 -0
  76. package/src/components/BaseReadMore.vue +1 -1
  77. package/src/components/BaseSelect.stories.js +67 -0
  78. package/src/components/BaseSelect.vue +144 -44
  79. package/src/components/BaseSideNavigation.stories.js +55 -0
  80. package/src/components/BaseSideNavigation.vue +7 -2
  81. package/src/components/BaseSideNavigationItem.vue +11 -3
  82. package/src/components/BaseSkeleton.stories.js +36 -0
  83. package/src/components/BaseSwitch.stories.js +101 -0
  84. package/src/components/BaseSwitch.vue +90 -12
  85. package/src/components/BaseSystemAlert.stories.js +63 -0
  86. package/src/components/BaseTabItem.vue +19 -6
  87. package/src/components/BaseTable.vue +42 -29
  88. package/src/components/BaseTableColumn.vue +2 -2
  89. package/src/components/BaseTabs.stories.js +54 -0
  90. package/src/components/BaseTabs.vue +3 -3
  91. package/src/components/BaseTextarea.stories.js +35 -0
  92. package/src/components/BaseTextarea.vue +1 -1
  93. package/src/components/BaseTextareaAutoresize.stories.js +49 -0
  94. package/src/components/BaseTextareaAutoresize.vue +83 -87
  95. package/src/components/index.ts +46 -0
  96. package/src/lang/en.json +1 -0
  97. package/src/lang/fr.json +1 -0
  98. package/src/svg/BaseEmptyState.vue +34 -0
  99. package/src/{components/BaseSpinner.vue → svg/BaseSpinnerLarge.vue} +0 -0
  100. package/src/svg/BaseSpinnerSmall.vue +9 -0
  101. package/src/types/types.ts +1 -1
  102. package/dist/types/src/components/BaseWordCount.vue.d.ts +0 -31
  103. package/src/components/BaseWordCount.vue +0 -36
@@ -1,4 +1,160 @@
1
- declare const _default: import("vue").DefineComponent<{
1
+ declare const _default: {
2
+ new (...args: any[]): {
3
+ $: import("vue").ComponentInternalInstance;
4
+ $data: {};
5
+ $props: Partial<{
6
+ modelValue: string;
7
+ placeholder: string;
8
+ disabled: boolean;
9
+ maxHeight: number;
10
+ submitOnEnter: boolean;
11
+ }> & Omit<Readonly<import("vue").ExtractPropTypes<{
12
+ modelValue: {
13
+ default: string;
14
+ type: StringConstructor;
15
+ };
16
+ placeholder: {
17
+ default: string;
18
+ type: StringConstructor;
19
+ };
20
+ name: {
21
+ required: true;
22
+ type: StringConstructor;
23
+ };
24
+ maxHeight: {
25
+ default: number;
26
+ type: NumberConstructor;
27
+ };
28
+ /**
29
+ * Setting this to true will trigger the 'submit' event while pressing Enter.
30
+ * Users will be able to add a line break while pressing Shift + Enter.
31
+ */
32
+ submitOnEnter: {
33
+ default: boolean;
34
+ type: BooleanConstructor;
35
+ };
36
+ disabled: {
37
+ default: boolean;
38
+ type: BooleanConstructor;
39
+ };
40
+ }>> & {
41
+ onFocus?: ((...args: any[]) => any) | undefined;
42
+ onInput?: ((...args: any[]) => any) | undefined;
43
+ onSubmit?: ((...args: any[]) => any) | undefined;
44
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
45
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "modelValue" | "placeholder" | "disabled" | "maxHeight" | "submitOnEnter">;
46
+ $attrs: {
47
+ [x: string]: unknown;
48
+ };
49
+ $refs: {
50
+ [x: string]: unknown;
51
+ };
52
+ $slots: Readonly<{
53
+ [name: string]: import("vue").Slot | undefined;
54
+ }>;
55
+ $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
56
+ $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
57
+ $emit: (event: "input" | "submit" | "update:modelValue" | "focus", ...args: any[]) => void;
58
+ $el: any;
59
+ $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
60
+ modelValue: {
61
+ default: string;
62
+ type: StringConstructor;
63
+ };
64
+ placeholder: {
65
+ default: string;
66
+ type: StringConstructor;
67
+ };
68
+ name: {
69
+ required: true;
70
+ type: StringConstructor;
71
+ };
72
+ maxHeight: {
73
+ default: number;
74
+ type: NumberConstructor;
75
+ };
76
+ /**
77
+ * Setting this to true will trigger the 'submit' event while pressing Enter.
78
+ * Users will be able to add a line break while pressing Shift + Enter.
79
+ */
80
+ submitOnEnter: {
81
+ default: boolean;
82
+ type: BooleanConstructor;
83
+ };
84
+ disabled: {
85
+ default: boolean;
86
+ type: BooleanConstructor;
87
+ };
88
+ }>> & {
89
+ onFocus?: ((...args: any[]) => any) | undefined;
90
+ onInput?: ((...args: any[]) => any) | undefined;
91
+ onSubmit?: ((...args: any[]) => any) | undefined;
92
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
93
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("input" | "submit" | "update:modelValue" | "focus")[], string, {
94
+ modelValue: string;
95
+ placeholder: string;
96
+ disabled: boolean;
97
+ maxHeight: number;
98
+ submitOnEnter: boolean;
99
+ }, {}, string> & {
100
+ beforeCreate?: ((() => void) | (() => void)[]) | undefined;
101
+ created?: ((() => void) | (() => void)[]) | undefined;
102
+ beforeMount?: ((() => void) | (() => void)[]) | undefined;
103
+ mounted?: ((() => void) | (() => void)[]) | undefined;
104
+ beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
105
+ updated?: ((() => void) | (() => void)[]) | undefined;
106
+ activated?: ((() => void) | (() => void)[]) | undefined;
107
+ deactivated?: ((() => void) | (() => void)[]) | undefined;
108
+ beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
109
+ beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
110
+ destroyed?: ((() => void) | (() => void)[]) | undefined;
111
+ unmounted?: ((() => void) | (() => void)[]) | undefined;
112
+ renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
113
+ renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
114
+ errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void)[]) | undefined;
115
+ };
116
+ $forceUpdate: () => void;
117
+ $nextTick: typeof import("vue").nextTick;
118
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
119
+ } & Readonly<import("vue").ExtractPropTypes<{
120
+ modelValue: {
121
+ default: string;
122
+ type: StringConstructor;
123
+ };
124
+ placeholder: {
125
+ default: string;
126
+ type: StringConstructor;
127
+ };
128
+ name: {
129
+ required: true;
130
+ type: StringConstructor;
131
+ };
132
+ maxHeight: {
133
+ default: number;
134
+ type: NumberConstructor;
135
+ };
136
+ /**
137
+ * Setting this to true will trigger the 'submit' event while pressing Enter.
138
+ * Users will be able to add a line break while pressing Shift + Enter.
139
+ */
140
+ submitOnEnter: {
141
+ default: boolean;
142
+ type: BooleanConstructor;
143
+ };
144
+ disabled: {
145
+ default: boolean;
146
+ type: BooleanConstructor;
147
+ };
148
+ }>> & {
149
+ onFocus?: ((...args: any[]) => any) | undefined;
150
+ onInput?: ((...args: any[]) => any) | undefined;
151
+ onSubmit?: ((...args: any[]) => any) | undefined;
152
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
153
+ } & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {};
154
+ __isFragment?: undefined;
155
+ __isTeleport?: undefined;
156
+ __isSuspense?: undefined;
157
+ } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
2
158
  modelValue: {
3
159
  default: string;
4
160
  type: StringConstructor;
@@ -11,34 +167,32 @@ declare const _default: import("vue").DefineComponent<{
11
167
  required: true;
12
168
  type: StringConstructor;
13
169
  };
14
- }, {
15
- mobile: boolean;
16
- }, unknown, {}, {
17
- onInput(e: any): void;
18
- updateReplicatedValue(value: string): void;
19
- onKeyDown(event: any): void;
20
- onKeyUp(event: any): void;
21
- onFocus(event: any): void;
22
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("input" | "submit" | "update:modelValue" | "focus")[], "input" | "submit" | "update:modelValue" | "focus", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
23
- modelValue: {
24
- default: string;
25
- type: StringConstructor;
170
+ maxHeight: {
171
+ default: number;
172
+ type: NumberConstructor;
26
173
  };
27
- placeholder: {
28
- default: string;
29
- type: StringConstructor;
174
+ /**
175
+ * Setting this to true will trigger the 'submit' event while pressing Enter.
176
+ * Users will be able to add a line break while pressing Shift + Enter.
177
+ */
178
+ submitOnEnter: {
179
+ default: boolean;
180
+ type: BooleanConstructor;
30
181
  };
31
- name: {
32
- required: true;
33
- type: StringConstructor;
182
+ disabled: {
183
+ default: boolean;
184
+ type: BooleanConstructor;
34
185
  };
35
186
  }>> & {
36
187
  onFocus?: ((...args: any[]) => any) | undefined;
37
188
  onInput?: ((...args: any[]) => any) | undefined;
38
189
  onSubmit?: ((...args: any[]) => any) | undefined;
39
190
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
40
- }, {
191
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("input" | "submit" | "update:modelValue" | "focus")[], "input" | "submit" | "update:modelValue" | "focus", {
41
192
  modelValue: string;
42
193
  placeholder: string;
43
- }>;
194
+ disabled: boolean;
195
+ maxHeight: number;
196
+ submitOnEnter: boolean;
197
+ }, {}, string> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
44
198
  export default _default;
@@ -25,9 +25,32 @@ import BaseDialog from './BaseDialog.vue';
25
25
  import BaseFilePicker from './BaseFilePicker.vue';
26
26
  import BaseFileUploader from './BaseFileUploader.vue';
27
27
  import { Icon as BaseIcon } from '@iconify/vue';
28
+ import BaseInput from './BaseInput.vue';
29
+ import BaseInputLabel from './BaseInputLabel.vue';
28
30
  import BaseLoadingCover from './BaseLoadingCover.vue';
29
31
  import BaseMenu from './BaseMenu.vue';
30
32
  import BaseMenuItem from './BaseMenuItem.vue';
33
+ import BaseModalCenter from './BaseModalCenter.vue';
34
+ import BaseModalSide from './BaseModalSide.vue';
35
+ import BaseNavbar from './BaseNavbar.vue';
36
+ import BaseNavbarItem from './BaseNavbarItem.vue';
37
+ import BaseNavbarItemContent from './BaseNavbarItemContent.vue';
38
+ import BasePagination from './BasePagination.vue';
39
+ import BasePanel from './BasePanel.vue';
40
+ import BasePassword from './BasePassword.vue';
41
+ import BaseProcessRing from './BaseProcessRing.vue';
42
+ import BaseReadMore from './BaseReadMore.vue';
43
+ import BaseSelect from './BaseSelect.vue';
44
+ import BaseSideNavigation from './BaseSideNavigation.vue';
45
+ import BaseSideNavigationItem from './BaseSideNavigationItem.vue';
46
+ import BaseSkeleton from './BaseSkeleton.vue';
47
+ import BaseSwitch from './BaseSwitch.vue';
48
+ import BaseSystemAlert from './BaseSystemAlert.vue';
49
+ import BaseTextarea from './BaseTextarea.vue';
50
+ import BaseTextareaAutoresize from './BaseTextareaAutoresize.vue';
51
+ import BaseCharacterCounter from './BaseCharacterCounter.vue';
52
+ import BaseTabs from './BaseTabs.vue';
53
+ import BaseTabItem from './BaseTabItem.vue';
31
54
  import BaseTable from './BaseTable.vue';
32
55
  import BaseTableColumn from './BaseTableColumn.vue';
33
- export { BaseAlert, BaseApp, BaseAppDialogs, BaseAppNotifications, BaseAutocomplete, BaseAutocompleteFetch, BaseAvatar, BaseBadge, BaseBelongsTo, BaseBoolean, BaseBreadcrumbs, BaseButton, BaseCard, BaseCardRow, BaseClipboard, BaseContainer, BaseCounter, BaseDataIterator, BaseDataTable, BaseDatePicker, BaseDateSelect, BaseDescriptionList, BaseDescriptionListItem, BaseDialog, BaseFilePicker, BaseFileUploader, BaseIcon, BaseLoadingCover, BaseMenu, BaseMenuItem, BaseTable, BaseTableColumn, };
56
+ export { BaseAlert, BaseApp, BaseAppDialogs, BaseAppNotifications, BaseAutocomplete, BaseAutocompleteFetch, BaseAvatar, BaseBadge, BaseBelongsTo, BaseBoolean, BaseBreadcrumbs, BaseButton, BaseCard, BaseCardRow, BaseClipboard, BaseContainer, BaseCounter, BaseDataIterator, BaseDataTable, BaseDatePicker, BaseDateSelect, BaseDescriptionList, BaseDescriptionListItem, BaseDialog, BaseFilePicker, BaseFileUploader, BaseIcon, BaseInput, BaseInputLabel, BaseLoadingCover, BaseMenu, BaseMenuItem, BaseModalCenter, BaseModalSide, BaseNavbar, BaseNavbarItem, BaseNavbarItemContent, BasePagination, BasePanel, BasePassword, BaseProcessRing, BaseReadMore, BaseSelect, BaseSideNavigation, BaseSideNavigationItem, BaseSkeleton, BaseSwitch, BaseSystemAlert, BaseTextarea, BaseTextareaAutoresize, BaseCharacterCounter, BaseTabs, BaseTabItem, BaseTable, BaseTableColumn, };
@@ -30,6 +30,7 @@ declare const messages: {
30
30
  month: string;
31
31
  next: string;
32
32
  next_month: string;
33
+ none: string;
33
34
  nothing_found: string;
34
35
  or: string;
35
36
  pagination_detail: string;
@@ -87,6 +88,7 @@ declare const messages: {
87
88
  month: string;
88
89
  next: string;
89
90
  next_month: string;
91
+ none: string;
90
92
  nothing_found: string;
91
93
  or: string;
92
94
  pagination_detail: string;
@@ -155,6 +157,7 @@ declare const config: {
155
157
  month: string;
156
158
  next: string;
157
159
  next_month: string;
160
+ none: string;
158
161
  nothing_found: string;
159
162
  or: string;
160
163
  pagination_detail: string;
@@ -212,6 +215,7 @@ declare const config: {
212
215
  month: string;
213
216
  next: string;
214
217
  next_month: string;
218
+ none: string;
215
219
  nothing_found: string;
216
220
  or: string;
217
221
  pagination_detail: string;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,44 @@
1
+ declare const _default: {
2
+ new (...args: any[]): {
3
+ $: import("vue").ComponentInternalInstance;
4
+ $data: {};
5
+ $props: Partial<{}> & Omit<Readonly<import("vue").ExtractPropTypes<{}>> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>;
6
+ $attrs: {
7
+ [x: string]: unknown;
8
+ };
9
+ $refs: {
10
+ [x: string]: unknown;
11
+ };
12
+ $slots: Readonly<{
13
+ [name: string]: import("vue").Slot | undefined;
14
+ }>;
15
+ $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
16
+ $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
17
+ $emit: (event: string, ...args: any[]) => void;
18
+ $el: any;
19
+ $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string> & {
20
+ beforeCreate?: ((() => void) | (() => void)[]) | undefined;
21
+ created?: ((() => void) | (() => void)[]) | undefined;
22
+ beforeMount?: ((() => void) | (() => void)[]) | undefined;
23
+ mounted?: ((() => void) | (() => void)[]) | undefined;
24
+ beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
25
+ updated?: ((() => void) | (() => void)[]) | undefined;
26
+ activated?: ((() => void) | (() => void)[]) | undefined;
27
+ deactivated?: ((() => void) | (() => void)[]) | undefined;
28
+ beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
29
+ beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
30
+ destroyed?: ((() => void) | (() => void)[]) | undefined;
31
+ unmounted?: ((() => void) | (() => void)[]) | undefined;
32
+ renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
33
+ renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
34
+ errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void)[]) | undefined;
35
+ };
36
+ $forceUpdate: () => void;
37
+ $nextTick: typeof import("vue").nextTick;
38
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
39
+ } & Readonly<import("vue").ExtractPropTypes<{}>> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {};
40
+ __isFragment?: undefined;
41
+ __isTeleport?: undefined;
42
+ __isSuspense?: undefined;
43
+ } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
44
+ export default _default;
@@ -77,7 +77,7 @@ export interface BaseTableColumn {
77
77
  searchable: boolean;
78
78
  sortable: boolean;
79
79
  visible: boolean;
80
- alwaysVisible: boolean;
80
+ toggle: boolean;
81
81
  optional: boolean;
82
82
  width: number;
83
83
  style: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sprintify-ui",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "scripts": {
5
5
  "build": "rimraf dist && vue-tsc && vite build",
6
6
  "docs:dev": "vitepress dev docs",
@@ -23,7 +23,8 @@
23
23
  "tailwindcss": "^3.0.0",
24
24
  "vue": "^3.0.0",
25
25
  "vue-i18n": "^9.0.0",
26
- "vue-router": "^4.0.0"
26
+ "vue-router": "^4.0.0",
27
+ "pikaday": "^1.8.2"
27
28
  },
28
29
  "dependencies": {
29
30
  "@headlessui/vue": "^1.7.4"
@@ -72,6 +73,7 @@
72
73
  "prettier-plugin-tailwindcss": "^0.1.13",
73
74
  "qs": "^6.11.0",
74
75
  "rimraf": "^3.0.2",
76
+ "rollup-plugin-analyzer": "^4.0.0",
75
77
  "scroll-lock": "^2.1.5",
76
78
  "tailwindcss": "^3.2.4",
77
79
  "typescript": "^4.4.4",
@@ -87,16 +87,19 @@ export const SlotFooter = (args) => {
87
87
  components: { BaseAutocomplete },
88
88
  setup() {
89
89
  const value = ref(null);
90
- return { args, value };
90
+ function onClick() {
91
+ alert(1);
92
+ }
93
+ return { args, value, onClick };
91
94
  },
92
95
  template: `
93
96
  <BaseAutocomplete
94
97
  v-model="value"
95
- v-bind="args"
98
+ v-bind="args"
96
99
  >
97
100
  <template #footer>
98
- <div class="text-center p-1 pt-2 mt-2 border-t">
99
- <button class="btn btn-sm w-full btn-slate-200-outline">This is the footer 💯</button>
101
+ <div class="text-center p-2 border-t">
102
+ <button @click=onClick class="btn btn-sm w-full btn-slate-200-outline">This is the footer 💯</button>
100
103
  </div>
101
104
  </template>
102
105
  </BaseAutocomplete>
@@ -50,7 +50,10 @@
50
50
  v-show="showDropdown"
51
51
  class="absolute top-1 z-[1] min-h-[110px] w-full overflow-hidden rounded border border-slate-300 bg-white shadow-md"
52
52
  >
53
- <div ref="dropdown" class="max-h-[214px] w-full overflow-y-auto p-1">
53
+ <div
54
+ ref="dropdown"
55
+ class="max-h-[214px] min-h-[75px] w-full overflow-y-auto"
56
+ >
54
57
  <slot v-if="filteredNormalizedOptions.length == 0" name="empty">
55
58
  <div
56
59
  class="flex items-center justify-center px-5 py-10 text-center text-slate-600"
@@ -59,7 +62,7 @@
59
62
  </div>
60
63
  </slot>
61
64
 
62
- <ul v-else>
65
+ <ul v-else class="p-1">
63
66
  <li
64
67
  v-for="option in filteredNormalizedOptions"
65
68
  :key="option.value"
@@ -70,7 +73,7 @@
70
73
  type="button"
71
74
  tabindex="-1"
72
75
  @click="onSelect(option)"
73
- @mousedown="dontLooseFocus"
76
+ @mousedown.prevent="dontLooseFocus"
74
77
  >
75
78
  <slot
76
79
  name="option"
@@ -91,12 +94,12 @@
91
94
  </button>
92
95
  </li>
93
96
  </ul>
97
+ </div>
94
98
 
95
- <slot
96
- :options="filteredNormalizedOptions"
97
- :dont-loose-focus="dontLooseFocus"
98
- name="footer"
99
- />
99
+ <div ref="footer">
100
+ <div v-if="$slots.footer" class="bg-white">
101
+ <slot :options="filteredNormalizedOptions" name="footer" />
102
+ </div>
100
103
  </div>
101
104
 
102
105
  <Transition>
@@ -131,7 +134,7 @@ import {
131
134
  Selection,
132
135
  NormalizedSelection,
133
136
  } from '@/types/types';
134
- import { useInfiniteScroll } from '@vueuse/core';
137
+ import { useInfiniteScroll, useMutationObserver } from '@vueuse/core';
135
138
  import BaseSkeleton from './BaseSkeleton.vue';
136
139
 
137
140
  const props = defineProps({
@@ -198,7 +201,7 @@ onMounted(() => {
198
201
  () => {
199
202
  emit('scrollBottom');
200
203
  },
201
- { distance: 10 }
204
+ { distance: 60 }
202
205
  );
203
206
  });
204
207
 
@@ -255,12 +258,18 @@ const filteredNormalizedOptions = computed((): NormalizedOption[] => {
255
258
  });
256
259
  });
257
260
 
258
- const dontLooseFocus = (event: Event, next: null | (() => void) = null) => {
259
- event.preventDefault();
261
+ function preventUnfocus(elements: HTMLElement[]) {
262
+ elements.forEach((e) => {
263
+ e.removeEventListener('mousedown', dontLooseFocus);
264
+ });
265
+ elements.forEach((e) => {
266
+ e.addEventListener('mousedown', dontLooseFocus);
267
+ });
268
+ }
269
+
270
+ const dontLooseFocus = (event: Event) => {
260
271
  inputElement.value?.focus();
261
- if (next) {
262
- next();
263
- }
272
+ event.preventDefault();
264
273
  };
265
274
 
266
275
  const onTextFocus = () => {
@@ -373,4 +382,24 @@ const setKeywords = (input: string) => {
373
382
  keywords.value = input;
374
383
  emit('typing', input);
375
384
  };
385
+
386
+ const footer = ref(null) as Ref<HTMLDivElement | null>;
387
+
388
+ function preventUnfocusOnFooter() {
389
+ const elements = (footer.value?.querySelectorAll('button, a') ??
390
+ []) as HTMLElement[];
391
+ preventUnfocus(elements);
392
+ }
393
+
394
+ onMounted(() => {
395
+ preventUnfocusOnFooter();
396
+ });
397
+
398
+ useMutationObserver(
399
+ footer,
400
+ () => {
401
+ preventUnfocusOnFooter();
402
+ },
403
+ { attributes: false, childList: true }
404
+ );
376
405
  </script>
@@ -79,7 +79,10 @@ export const SlotFooter = (args) => {
79
79
  components: { BaseAutocompleteFetch },
80
80
  setup() {
81
81
  const value = ref(null);
82
- return { args, value };
82
+ function onClick() {
83
+ alert(1);
84
+ }
85
+ return { args, value, onClick };
83
86
  },
84
87
  template: `
85
88
  <BaseAutocompleteFetch
@@ -87,8 +90,8 @@ export const SlotFooter = (args) => {
87
90
  v-bind="args"
88
91
  >
89
92
  <template #footer>
90
- <div class="text-center p-1 pt-2 mt-2 border-t">
91
- <button class="btn btn-sm w-full btn-slate-200-outline">This is the footer 💯</button>
93
+ <div class="text-center p-2 border-t">
94
+ <button @click=onClick class="btn btn-sm w-full btn-slate-200-outline">This is the footer 💯</button>
92
95
  </div>
93
96
  </template>
94
97
  </BaseAutocompleteFetch>
@@ -22,12 +22,17 @@
22
22
 
23
23
  <template #footer="footerProps">
24
24
  <slot name="footer" v-bind="footerProps" :keywords="keywords">
25
- <div v-if="createNewUrl" class="p-2">
25
+ <div
26
+ v-if="createNewUrl"
27
+ class="p-2"
28
+ :class="{
29
+ 'border-t border-slate-300': footerProps.options.length > 0,
30
+ }"
31
+ >
26
32
  <router-link
27
33
  :to="createNewUrl"
28
34
  target="_blank"
29
- class="btn flex items-center justify-center font-normal shadow"
30
- @mousedown="footerProps.dontLooseFocus"
35
+ class="btn btn-slate-200-outline flex items-center justify-center"
31
36
  >
32
37
  <BaseIcon
33
38
  icon="heroicons-solid:plus"
@@ -40,10 +40,12 @@ export const Disabled = (args) => {
40
40
  return {
41
41
  components: { BaseBelongsTo },
42
42
  setup() {
43
- return { args };
43
+ const value = ref(null);
44
+ return { args, value };
44
45
  },
45
46
  template: `<BaseBelongsTo
46
47
  v-bind="args"
48
+ v-model="value"
47
49
  :current-model="{title: 'Dark Vader', id: 1}"
48
50
  :disabled="true"
49
51
  ></BaseBelongsTo>`,
@@ -88,7 +90,10 @@ export const SlotFooter = (args) => {
88
90
  components: { BaseBelongsTo },
89
91
  setup() {
90
92
  const value = ref(null);
91
- return { args, value };
93
+ function onClick() {
94
+ alert(1);
95
+ }
96
+ return { args, value, onClick };
92
97
  },
93
98
  template: `
94
99
  <BaseBelongsTo
@@ -96,8 +101,8 @@ export const SlotFooter = (args) => {
96
101
  v-bind="args"
97
102
  >
98
103
  <template #footer>
99
- <div class="text-center p-1 pt-2 mt-2 border-t">
100
- <button class="btn btn-sm w-full btn-slate-200-outline">This is the footer 💯</button>
104
+ <div class="text-center p-2 border-t">
105
+ <button @click=onClick class="btn btn-sm w-full btn-slate-200-outline">This is the footer 💯</button>
101
106
  </div>
102
107
  </template>
103
108
  </BaseBelongsTo>
@@ -29,6 +29,7 @@ import { PropType } from 'vue';
29
29
  import { RouteLocationRaw } from 'vue-router';
30
30
  import { AxiosResponse } from 'axios';
31
31
  import { config } from '@/index';
32
+ import BaseAutocompleteFetch from './BaseAutocompleteFetch.vue';
32
33
 
33
34
  const props = defineProps({
34
35
  modelValue: {
@@ -4,7 +4,7 @@
4
4
  class="border-t border-b border-slate-300 bg-white"
5
5
  :class="{
6
6
  'rounded-lg border-r border-l shadow-sm': width != windowWidth,
7
- 'overflow-hidden': clipped,
7
+ 'relative isolate overflow-hidden': clipped,
8
8
  }"
9
9
  >
10
10
  <slot />
@@ -0,0 +1,30 @@
1
+ import BaseCharacterCounter from './BaseCharacterCounter.vue';
2
+ import BaseInput from './BaseInput.vue';
3
+
4
+ export default {
5
+ title: 'Components/BaseCharacterCounter',
6
+ component: BaseCharacterCounter,
7
+ args: {
8
+ text: 'Test',
9
+ max: 100,
10
+ min: 10,
11
+ },
12
+ };
13
+
14
+ const Template = (args) => ({
15
+ components: {
16
+ BaseCharacterCounter,
17
+ BaseInput,
18
+ },
19
+ setup() {
20
+ const text = ref('bla bla');
21
+ return { args, text };
22
+ },
23
+ template: `
24
+ <BaseInput v-model="text" name="test" class="w-full mb-1"></BaseInput>
25
+ <BaseCharacterCounter v-bind="args" :text="text" class="text-xs text-slate-500"></BaseCharacterCounter>
26
+ `,
27
+ });
28
+
29
+ export const Demo = Template.bind({});
30
+ Demo.args = {};