sprintify-ui 0.0.11 → 0.0.13

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 (96) hide show
  1. package/README.md +8 -7
  2. package/dist/sprintify-ui.es.js +5911 -3760
  3. package/dist/style.css +1 -1
  4. package/dist/tailwindcss/index.js +1 -2
  5. package/dist/types/src/components/BaseCharacterCounter.vue.d.ts +143 -0
  6. package/dist/types/src/components/BaseHasMany.vue.d.ts +277 -0
  7. package/dist/types/src/components/BaseInput.vue.d.ts +39 -5
  8. package/dist/types/src/components/BaseLoadingCover.vue.d.ts +72 -0
  9. package/dist/types/src/components/{BaseMediaLibraryItem.vue.d.ts → BaseMediaItem.vue.d.ts} +26 -4
  10. package/dist/types/src/components/BaseMediaLibrary.vue.d.ts +23 -15
  11. package/dist/types/src/components/BaseMediaPreview.vue.d.ts +97 -0
  12. package/dist/types/src/components/BaseModalCenter.vue.d.ts +8 -8
  13. package/dist/types/src/components/BaseModalSide.vue.d.ts +8 -8
  14. package/dist/types/src/components/BasePagination.vue.d.ts +105 -13
  15. package/dist/types/src/components/BaseSelect.vue.d.ts +130 -26
  16. package/dist/types/src/components/BaseSideNavigationItem.vue.d.ts +20 -1
  17. package/dist/types/src/components/BaseSwitch.vue.d.ts +15 -8
  18. package/dist/types/src/components/BaseTabItem.vue.d.ts +45 -4
  19. package/dist/types/src/components/BaseTagAutocomplete.vue.d.ts +25 -17
  20. package/dist/types/src/components/BaseTagAutocompleteFetch.vue.d.ts +37 -21
  21. package/dist/types/src/components/BaseTextareaAutoresize.vue.d.ts +175 -21
  22. package/dist/types/src/components/index.d.ts +30 -1
  23. package/dist/types/src/index.d.ts +4 -0
  24. package/package.json +1 -1
  25. package/src/components/BaseAppDialogs.vue +2 -2
  26. package/src/components/BaseAppNotifications.vue +1 -1
  27. package/src/components/BaseAutocomplete.vue +16 -18
  28. package/src/components/BaseBelongsTo.vue +1 -0
  29. package/src/components/BaseCharacterCounter.stories.js +30 -0
  30. package/src/components/BaseCharacterCounter.vue +60 -0
  31. package/src/components/BaseClipboard.vue +1 -1
  32. package/src/components/BaseDataIterator.stories.js +2 -2
  33. package/src/components/BaseDataIterator.vue +32 -38
  34. package/src/components/BaseDataTable.stories.js +2 -2
  35. package/src/components/BaseFileUploader.vue +4 -0
  36. package/src/components/BaseHasMany.vue +92 -0
  37. package/src/components/BaseInput.stories.js +46 -0
  38. package/src/components/BaseInput.vue +10 -2
  39. package/src/components/BaseInputLabel.stories.js +31 -0
  40. package/src/components/BaseInputLabel.vue +1 -1
  41. package/src/components/BaseLoadingCover.stories.js +55 -0
  42. package/src/components/BaseLoadingCover.vue +19 -1
  43. package/src/components/BaseMediaItem.stories.js +41 -0
  44. package/src/components/BaseMediaItem.vue +71 -0
  45. package/src/components/BaseMediaLibrary.stories.js +80 -0
  46. package/src/components/BaseMediaLibrary.vue +67 -68
  47. package/src/components/BaseMediaPreview.stories.js +72 -0
  48. package/src/components/BaseMediaPreview.vue +90 -0
  49. package/src/components/BaseMenu.stories.js +125 -0
  50. package/src/components/BaseMenu.vue +1 -1
  51. package/src/components/BaseModalCenter.stories.js +61 -0
  52. package/src/components/BaseModalCenter.vue +2 -2
  53. package/src/components/BaseModalSide.stories.js +55 -0
  54. package/src/components/BaseModalSide.vue +2 -2
  55. package/src/components/BaseNavbar.stories.js +150 -0
  56. package/src/components/BaseNavbar.vue +3 -0
  57. package/src/components/BaseNavbarItem.vue +1 -0
  58. package/src/components/BaseNavbarItemContent.vue +3 -0
  59. package/src/components/BasePagination.stories.js +32 -0
  60. package/src/components/BasePagination.vue +126 -40
  61. package/src/components/BasePanel.stories.js +56 -0
  62. package/src/components/BasePassword.stories.js +36 -0
  63. package/src/components/BasePassword.vue +11 -5
  64. package/src/components/BaseProcessRing.stories.js +27 -0
  65. package/src/components/BaseReadMore.stories.js +30 -0
  66. package/src/components/BaseReadMore.vue +1 -1
  67. package/src/components/BaseSelect.stories.js +67 -0
  68. package/src/components/BaseSelect.vue +144 -44
  69. package/src/components/BaseSideNavigation.stories.js +55 -0
  70. package/src/components/BaseSideNavigation.vue +7 -2
  71. package/src/components/BaseSideNavigationItem.vue +21 -5
  72. package/src/components/BaseSkeleton.stories.js +36 -0
  73. package/src/components/BaseSwitch.stories.js +101 -0
  74. package/src/components/BaseSwitch.vue +90 -12
  75. package/src/components/BaseSystemAlert.stories.js +63 -0
  76. package/src/components/BaseTabItem.vue +29 -6
  77. package/src/components/BaseTable.vue +2 -2
  78. package/src/components/BaseTabs.stories.js +54 -0
  79. package/src/components/BaseTabs.vue +3 -3
  80. package/src/components/BaseTagAutocomplete.stories.js +129 -0
  81. package/src/components/BaseTagAutocomplete.vue +155 -57
  82. package/src/components/BaseTagAutocompleteFetch.stories.js +130 -0
  83. package/src/components/BaseTagAutocompleteFetch.vue +36 -25
  84. package/src/components/BaseTextarea.stories.js +35 -0
  85. package/src/components/BaseTextarea.vue +1 -1
  86. package/src/components/BaseTextareaAutoresize.stories.js +49 -0
  87. package/src/components/BaseTextareaAutoresize.vue +83 -87
  88. package/src/components/HasMany.stories.js +135 -0
  89. package/src/components/index.ts +58 -0
  90. package/src/lang/en.json +2 -1
  91. package/src/lang/fr.json +2 -1
  92. package/dist/types/src/components/BasePaginationSimple.vue.d.ts +0 -25
  93. package/dist/types/src/components/BaseWordCount.vue.d.ts +0 -31
  94. package/src/components/BaseMediaLibraryItem.vue +0 -92
  95. package/src/components/BasePaginationSimple.vue +0 -60
  96. package/src/components/BaseWordCount.vue +0 -36
@@ -12,6 +12,7 @@ import BaseBreadcrumbs from './BaseBreadcrumbs.vue';
12
12
  import BaseButton from './BaseButton.vue';
13
13
  import BaseCard from './BaseCard.vue';
14
14
  import BaseCardRow from './BaseCardRow.vue';
15
+ import BaseCharacterCounter from './BaseCharacterCounter.vue';
15
16
  import BaseClipboard from './BaseClipboard.vue';
16
17
  import BaseContainer from './BaseContainer.vue';
17
18
  import BaseCounter from './BaseCounter.vue';
@@ -24,12 +25,40 @@ import BaseDescriptionListItem from './BaseDescriptionListItem.vue';
24
25
  import BaseDialog from './BaseDialog.vue';
25
26
  import BaseFilePicker from './BaseFilePicker.vue';
26
27
  import BaseFileUploader from './BaseFileUploader.vue';
28
+ import BaseHasMany from './BaseHasMany.vue';
27
29
  import { Icon as BaseIcon } from '@iconify/vue';
30
+ import BaseInput from './BaseInput.vue';
31
+ import BaseInputLabel from './BaseInputLabel.vue';
28
32
  import BaseLoadingCover from './BaseLoadingCover.vue';
33
+ import BaseMediaItem from './BaseMediaItem.vue';
34
+ import BaseMediaLibrary from './BaseMediaLibrary.vue';
35
+ import BaseMediaPreview from './BaseMediaPreview.vue';
29
36
  import BaseMenu from './BaseMenu.vue';
30
37
  import BaseMenuItem from './BaseMenuItem.vue';
38
+ import BaseModalCenter from './BaseModalCenter.vue';
39
+ import BaseModalSide from './BaseModalSide.vue';
40
+ import BaseNavbar from './BaseNavbar.vue';
41
+ import BaseNavbarItem from './BaseNavbarItem.vue';
42
+ import BaseNavbarItemContent from './BaseNavbarItemContent.vue';
43
+ import BasePagination from './BasePagination.vue';
44
+ import BasePanel from './BasePanel.vue';
45
+ import BasePassword from './BasePassword.vue';
46
+ import BaseProcessRing from './BaseProcessRing.vue';
47
+ import BaseReadMore from './BaseReadMore.vue';
48
+ import BaseSelect from './BaseSelect.vue';
49
+ import BaseSideNavigation from './BaseSideNavigation.vue';
50
+ import BaseSideNavigationItem from './BaseSideNavigationItem.vue';
51
+ import BaseSkeleton from './BaseSkeleton.vue';
52
+ import BaseSwitch from './BaseSwitch.vue';
53
+ import BaseSystemAlert from './BaseSystemAlert.vue';
54
+ import BaseTabs from './BaseTabs.vue';
55
+ import BaseTabItem from './BaseTabItem.vue';
56
+ import BaseTagAutocomplete from './BaseTagAutocomplete.vue';
57
+ import BaseTagAutocompleteFetch from './BaseTagAutocompleteFetch.vue';
31
58
  import BaseTable from './BaseTable.vue';
32
59
  import BaseTableColumn from './BaseTableColumn.vue';
60
+ import BaseTextarea from './BaseTextarea.vue';
61
+ import BaseTextareaAutoresize from './BaseTextareaAutoresize.vue';
33
62
 
34
63
  export {
35
64
  BaseAlert,
@@ -46,6 +75,7 @@ export {
46
75
  BaseButton,
47
76
  BaseCard,
48
77
  BaseCardRow,
78
+ BaseCharacterCounter,
49
79
  BaseClipboard,
50
80
  BaseContainer,
51
81
  BaseCounter,
@@ -58,10 +88,38 @@ export {
58
88
  BaseDialog,
59
89
  BaseFilePicker,
60
90
  BaseFileUploader,
91
+ BaseHasMany,
61
92
  BaseIcon,
93
+ BaseInput,
94
+ BaseInputLabel,
62
95
  BaseLoadingCover,
96
+ BaseMediaItem,
97
+ BaseMediaLibrary,
98
+ BaseMediaPreview,
63
99
  BaseMenu,
64
100
  BaseMenuItem,
101
+ BaseModalCenter,
102
+ BaseModalSide,
103
+ BaseNavbar,
104
+ BaseNavbarItem,
105
+ BaseNavbarItemContent,
106
+ BasePagination,
107
+ BasePanel,
108
+ BasePassword,
109
+ BaseProcessRing,
110
+ BaseReadMore,
111
+ BaseSelect,
112
+ BaseSideNavigation,
113
+ BaseSideNavigationItem,
114
+ BaseSkeleton,
115
+ BaseSwitch,
116
+ BaseSystemAlert,
117
+ BaseTabs,
118
+ BaseTabItem,
119
+ BaseTagAutocomplete,
120
+ BaseTagAutocompleteFetch,
65
121
  BaseTable,
66
122
  BaseTableColumn,
123
+ BaseTextarea,
124
+ BaseTextareaAutoresize,
67
125
  };
package/src/lang/en.json CHANGED
@@ -23,6 +23,7 @@
23
23
  "month": "Month",
24
24
  "next": "Next",
25
25
  "next_month": "Next month",
26
+ "none": "None",
26
27
  "nothing_found": "Nothing found",
27
28
  "or": "or",
28
29
  "pagination_detail": "{page} records of {total}",
@@ -52,6 +53,6 @@
52
53
  "year": "Year",
53
54
  "yes_delete": "Yes, delete",
54
55
  "you_can_upload_up_to_n_files": "You can upload one file at most|You can upload up to {count} files",
55
- "you_cannot_select_more_than_x_items": "You can't select more than one item|You can't select more than {x} items"
56
+ "you_cannot_select_more_than_x_items": "You can't select more than one item|You can't select more than {count} items"
56
57
  }
57
58
  }
package/src/lang/fr.json CHANGED
@@ -23,6 +23,7 @@
23
23
  "month": "Mois",
24
24
  "next": "Suivant",
25
25
  "next_month": "Mois prochain",
26
+ "none": "Aucun",
26
27
  "nothing_found": "Rien n'a été trouvé",
27
28
  "or": "ou",
28
29
  "pagination_detail": "{page} items de {total}",
@@ -52,6 +53,6 @@
52
53
  "year": "An",
53
54
  "yes_delete": "Oui, supprimer",
54
55
  "you_can_upload_up_to_n_files": "Vous pouvez télécharger un fichier au maximum|Vous pouvez télécharger jusqu'à {count} fichiers",
55
- "you_cannot_select_more_than_x_items": "Vous ne pouvez pas sélectionner plus de un élément|Vous ne pouvez pas sélectionner plus de {x} éléments"
56
+ "you_cannot_select_more_than_x_items": "Vous ne pouvez pas sélectionner plus de un élément|Vous ne pouvez pas sélectionner plus de {count} éléments"
56
57
  }
57
58
  }
@@ -1,25 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{
2
- modelValue: {
3
- required: true;
4
- type: NumberConstructor;
5
- };
6
- lastPage: {
7
- required: true;
8
- type: NumberConstructor;
9
- };
10
- }, unknown, unknown, {}, {
11
- next(): void;
12
- previous(): void;
13
- }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "model-value:update"[], "model-value:update", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
14
- modelValue: {
15
- required: true;
16
- type: NumberConstructor;
17
- };
18
- lastPage: {
19
- required: true;
20
- type: NumberConstructor;
21
- };
22
- }>> & {
23
- "onModel-value:update"?: ((...args: any[]) => any) | undefined;
24
- }, {}>;
25
- export default _default;
@@ -1,31 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{
2
- text: {
3
- required: true;
4
- type: StringConstructor;
5
- };
6
- min: {
7
- default: undefined;
8
- type: NumberConstructor;
9
- };
10
- max: {
11
- default: undefined;
12
- type: NumberConstructor;
13
- };
14
- }, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
15
- text: {
16
- required: true;
17
- type: StringConstructor;
18
- };
19
- min: {
20
- default: undefined;
21
- type: NumberConstructor;
22
- };
23
- max: {
24
- default: undefined;
25
- type: NumberConstructor;
26
- };
27
- }>>, {
28
- max: number;
29
- min: number;
30
- }>;
31
- export default _default;
@@ -1,92 +0,0 @@
1
- <template>
2
- <div class="w-full rounded-lg border border-slate-200">
3
- <div class="flex space-x-5 p-4">
4
- <div
5
- class="h-20 w-20 shrink-0 rounded border border-slate-200 bg-slate-900"
6
- >
7
- <component
8
- :is="url ? 'a' : 'div'"
9
- :href="url"
10
- target="_blank"
11
- class="flex h-full w-full items-center justify-center overflow-hidden"
12
- >
13
- <img
14
- v-if="type == 'image' && url"
15
- :src="url"
16
- class="h-full w-full object-contain object-center"
17
- :alt="name"
18
- />
19
- <img
20
- v-else-if="type == 'image' && 'data_url' in media"
21
- :src="media.data_url"
22
- class="h-full w-full object-contain object-center"
23
- :alt="name"
24
- />
25
- <span v-else class="leading-tight text-slate-600">{{
26
- extension
27
- }}</span>
28
- </component>
29
- </div>
30
- <div class="grow overflow-hidden">
31
- <div class="leading-normal">
32
- <p class="mb-1 truncate text-sm font-medium leading-tight">
33
- {{ name }}
34
- </p>
35
- <p class="text-sm leading-tight text-slate-500">
36
- {{ size }}
37
- </p>
38
- <button
39
- type="button"
40
- class="mt-2 appearance-none text-sm underline"
41
- @click="$emit('delete')"
42
- >
43
- {{ capitalize($t('sui.remove')) }}
44
- </button>
45
- </div>
46
- </div>
47
- </div>
48
- </div>
49
- </template>
50
-
51
- <script lang="ts" setup>
52
- import { Media } from '@/types/Media';
53
- import { UploadedFile } from '@/types/UploadedFile';
54
- import { PropType } from 'vue';
55
- import { capitalize } from 'lodash';
56
- import { fileSizeFormat } from 'src/utils';
57
-
58
- defineEmits(['delete']);
59
-
60
- const props = defineProps({
61
- media: {
62
- required: true,
63
- type: Object as PropType<Media | UploadedFile>,
64
- },
65
- });
66
-
67
- const name = computed(() => {
68
- return props.media.file_name;
69
- });
70
-
71
- const size = computed(() => {
72
- return fileSizeFormat(props.media.size);
73
- });
74
-
75
- const type = computed(() => {
76
- const parts = props.media.mime_type.split('/');
77
- return parts[0];
78
- });
79
-
80
- const extension = computed(() => {
81
- const parts = props.media.mime_type.split('/');
82
- return parts[parts.length - 1];
83
- });
84
-
85
- const url = computed(() => {
86
- if ('url' in props.media) {
87
- return props.media.url;
88
- }
89
-
90
- return null;
91
- });
92
- </script>
@@ -1,60 +0,0 @@
1
- <template>
2
- <nav
3
- v-if="lastPage > 1 || lastPage < modelValue"
4
- class="flex items-center space-x-1 sm:px-0"
5
- >
6
- <button
7
- type="button"
8
- :disabled="modelValue == 1"
9
- class="flex h-8 w-8 items-center justify-center rounded-md border border-slate-300 text-sm font-medium text-slate-400 outline-none hover:enabled:border-slate-400 hover:enabled:text-slate-700 disabled:cursor-not-allowed disabled:border-transparent disabled:opacity-60"
10
- @click="previous()"
11
- >
12
- <BaseIcon
13
- class="h-5 w-5 text-slate-400"
14
- icon="heroicons-solid:chevron-left"
15
- />
16
- </button>
17
- <button
18
- :disabled="modelValue >= lastPage"
19
- class="flex h-8 w-8 items-center justify-center rounded-md border border-slate-300 text-sm font-medium text-slate-400 outline-none hover:enabled:border-slate-400 hover:enabled:text-slate-700 disabled:cursor-not-allowed disabled:border-transparent disabled:opacity-60"
20
- @click="next()"
21
- >
22
- <BaseIcon
23
- class="h-5 w-5 text-slate-400"
24
- icon="heroicons-solid:chevron-right"
25
- />
26
- </button>
27
- </nav>
28
- </template>
29
-
30
- <script lang="ts">
31
- import { defineComponent } from 'vue';
32
-
33
- export default defineComponent({
34
- props: {
35
- modelValue: {
36
- required: true,
37
- type: Number,
38
- },
39
- lastPage: {
40
- required: true,
41
- type: Number,
42
- },
43
- },
44
- emits: ['model-value:update'],
45
- methods: {
46
- next() {
47
- if (this.modelValue >= this.lastPage) {
48
- return;
49
- }
50
- this.$emit('model-value:update', this.modelValue + 1);
51
- },
52
- previous() {
53
- if (this.modelValue == 1) {
54
- return;
55
- }
56
- this.$emit('model-value:update', this.modelValue - 1);
57
- },
58
- },
59
- });
60
- </script>
@@ -1,36 +0,0 @@
1
- <template>
2
- <div
3
- v-if="max && (!min || text.length >= min)"
4
- class="text-sm"
5
- :class="{
6
- 'text-slate-500': text.length <= max,
7
- 'text-red-600': text.length > max,
8
- }"
9
- >
10
- {{ text.length }}/{{ max }}
11
- </div>
12
- <div v-if="min && text.length < min" class="text-sm text-red-600">
13
- {{ $t('sui.min_x_characters', { x: min }) }} ({{ text.length }}/{{ min }})
14
- </div>
15
- </template>
16
-
17
- <script lang="ts">
18
- import { defineComponent } from 'vue';
19
-
20
- export default defineComponent({
21
- props: {
22
- text: {
23
- required: true,
24
- type: String,
25
- },
26
- min: {
27
- default: undefined,
28
- type: Number,
29
- },
30
- max: {
31
- default: undefined,
32
- type: Number,
33
- },
34
- },
35
- });
36
- </script>