sprintify-ui 0.6.32 → 0.6.34

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 (93) hide show
  1. package/dist/sprintify-ui.es.js +13449 -13183
  2. package/dist/style.css +1 -1
  3. package/dist/tailwindcss/button.js +261 -0
  4. package/dist/tailwindcss/index.js +16 -301
  5. package/dist/tailwindcss/input.js +24 -0
  6. package/dist/tailwindcss/overlay.js +13 -0
  7. package/dist/tailwindcss/theme.js +46 -0
  8. package/dist/types/src/components/BaseActionItemButton.vue.d.ts +2 -2
  9. package/dist/types/src/components/BaseAddressForm.vue.d.ts +10 -0
  10. package/dist/types/src/components/BaseAutocomplete.vue.d.ts +10 -10
  11. package/dist/types/src/components/BaseAutocompleteDrawer.vue.d.ts +3 -3
  12. package/dist/types/src/components/BaseAutocompleteFetch.vue.d.ts +6 -6
  13. package/dist/types/src/components/BaseAvatarGroup.vue.d.ts +1 -1
  14. package/dist/types/src/components/BaseBelongsTo.vue.d.ts +6 -6
  15. package/dist/types/src/components/BaseBelongsToFetch.vue.d.ts +6 -6
  16. package/dist/types/src/components/BaseButton.vue.d.ts +12 -12
  17. package/dist/types/src/components/BaseButtonGroup.vue.d.ts +24 -24
  18. package/dist/types/src/components/BaseCalendar.vue.d.ts +1 -1
  19. package/dist/types/src/components/BaseColor.vue.d.ts +19 -0
  20. package/dist/types/src/components/BaseDataIterator.vue.d.ts +1 -1
  21. package/dist/types/src/components/BaseDataIteratorSectionColumns.vue.d.ts +4 -4
  22. package/dist/types/src/components/BaseDataTable.vue.d.ts +1 -1
  23. package/dist/types/src/components/BaseDropdownAutocomplete.vue.d.ts +1 -1
  24. package/dist/types/src/components/BaseField.vue.d.ts +13 -3
  25. package/dist/types/src/components/BaseInput.vue.d.ts +53 -4
  26. package/dist/types/src/components/BaseInputError.vue.d.ts +14 -1
  27. package/dist/types/src/components/BaseInputLabel.vue.d.ts +15 -5
  28. package/dist/types/src/components/BaseLayoutSidebarConfigurable.vue.d.ts +1 -1
  29. package/dist/types/src/components/BaseLayoutStackedConfigurable.vue.d.ts +1 -1
  30. package/dist/types/src/components/BaseLoadingCover.vue.d.ts +1 -1
  31. package/dist/types/src/components/BaseMediaGallery.vue.d.ts +1 -1
  32. package/dist/types/src/components/BaseMediaListItem.vue.d.ts +1 -1
  33. package/dist/types/src/components/BaseMediaPictures.vue.d.ts +1 -1
  34. package/dist/types/src/components/BaseMediaPicturesItem.vue.d.ts +1 -1
  35. package/dist/types/src/components/BaseMenu.vue.d.ts +1 -1
  36. package/dist/types/src/components/BaseMenuItem.vue.d.ts +1 -1
  37. package/dist/types/src/components/BaseNavbar.vue.d.ts +1 -1
  38. package/dist/types/src/components/BaseNavbarItemContent.vue.d.ts +1 -1
  39. package/dist/types/src/components/BaseNavbarSideItemContent.vue.d.ts +1 -1
  40. package/dist/types/src/components/BasePassword.vue.d.ts +13 -0
  41. package/dist/types/src/components/BaseSelect.vue.d.ts +27 -0
  42. package/dist/types/src/components/BaseSideNavigation.vue.d.ts +3 -3
  43. package/dist/types/src/components/BaseSwitch.vue.d.ts +1 -1
  44. package/dist/types/src/components/BaseTable.vue.d.ts +1 -1
  45. package/dist/types/src/components/BaseTabs.vue.d.ts +3 -3
  46. package/dist/types/src/components/BaseTagAutocomplete.vue.d.ts +3 -3
  47. package/dist/types/src/components/BaseTextarea.vue.d.ts +18 -0
  48. package/dist/types/src/components/BaseTextareaAutoresize.vue.d.ts +9 -0
  49. package/dist/types/src/composables/field.d.ts +3 -0
  50. package/dist/types/src/composables/inputSize.d.ts +6 -0
  51. package/dist/types/src/utils/sizes.d.ts +19 -0
  52. package/package.json +1 -1
  53. package/src/assets/form.css +1 -1
  54. package/src/components/BaseAddressForm.stories.js +7 -2
  55. package/src/components/BaseAddressForm.vue +64 -37
  56. package/src/components/BaseAutocomplete.stories.js +1 -1
  57. package/src/components/BaseAutocomplete.vue +86 -96
  58. package/src/components/BaseAutocompleteDrawer.vue +3 -2
  59. package/src/components/BaseAutocompleteFetch.stories.js +1 -1
  60. package/src/components/BaseAutocompleteFetch.vue +3 -2
  61. package/src/components/BaseBelongsTo.stories.js +1 -1
  62. package/src/components/BaseBelongsTo.vue +3 -2
  63. package/src/components/BaseBelongsToFetch.vue +3 -2
  64. package/src/components/BaseButton.stories.js +21 -0
  65. package/src/components/BaseButton.vue +42 -6
  66. package/src/components/BaseButtonGroup.stories.js +31 -1
  67. package/src/components/BaseButtonGroup.vue +46 -33
  68. package/src/components/BaseColor.stories.js +22 -0
  69. package/src/components/BaseColor.vue +28 -25
  70. package/src/components/BaseDataTable.vue +5 -5
  71. package/src/components/BaseDataTableRowAction.vue +6 -6
  72. package/src/components/BaseDatePicker.vue +6 -3
  73. package/src/components/BaseDraggable.vue +5 -1
  74. package/src/components/BaseDropdown.stories.js +2 -3
  75. package/src/components/BaseDropdownAutocomplete.vue +2 -2
  76. package/src/components/BaseField.vue +19 -8
  77. package/src/components/BaseInput.stories.js +36 -2
  78. package/src/components/BaseInput.vue +199 -74
  79. package/src/components/BaseInputError.vue +32 -2
  80. package/src/components/BaseInputLabel.vue +36 -9
  81. package/src/components/BasePassword.stories.js +25 -0
  82. package/src/components/BasePassword.vue +35 -55
  83. package/src/components/BaseSelect.stories.js +34 -0
  84. package/src/components/BaseSelect.vue +57 -8
  85. package/src/components/BaseTagAutocomplete.vue +3 -2
  86. package/src/components/BaseTextarea.stories.js +25 -0
  87. package/src/components/BaseTextarea.vue +34 -3
  88. package/src/components/BaseTextareaAutoresize.stories.js +27 -2
  89. package/src/components/BaseTextareaAutoresize.vue +27 -8
  90. package/src/components/BaseTimelineItem.stories.js +1 -3
  91. package/src/composables/field.ts +20 -0
  92. package/src/composables/inputSize.ts +29 -0
  93. package/src/utils/sizes.ts +21 -0
@@ -48,8 +48,8 @@ declare const _default: import("vue").DefineComponent<{
48
48
  }>> & {
49
49
  onRemove?: ((...args: any[]) => any) | undefined;
50
50
  }, {
51
- disabled: boolean;
52
51
  size: number;
52
+ disabled: boolean;
53
53
  showRemove: boolean;
54
54
  draggable: boolean;
55
55
  }, {}>;
@@ -51,9 +51,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
51
51
  type: (ObjectConstructor | ArrayConstructor | StringConstructor)[];
52
52
  };
53
53
  }>>, {
54
+ size: "xs" | "sm" | "md";
54
55
  placement: "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end";
55
56
  width: number;
56
- size: "xs" | "sm" | "md";
57
57
  items: ActionItem[];
58
58
  twButton: string | Record<string, any> | unknown[];
59
59
  twMenu: string | string[];
@@ -63,8 +63,8 @@ declare const _default: import("vue").DefineComponent<{
63
63
  label: string;
64
64
  color: ActionColors;
65
65
  icon: string;
66
+ size: "xs" | "sm" | "md";
66
67
  description: string;
67
68
  count: number;
68
- size: "xs" | "sm" | "md";
69
69
  }, {}>;
70
70
  export default _default;
@@ -47,8 +47,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
47
47
  }>>, {
48
48
  dark: boolean;
49
49
  class: string | string[];
50
- height: number;
51
50
  size: "xs" | "sm" | "md";
51
+ height: number;
52
52
  breakpoint: number;
53
53
  }, {}>, {
54
54
  navbar?(_: {
@@ -54,7 +54,7 @@ declare const _default: import("vue").DefineComponent<{
54
54
  active: boolean;
55
55
  label: string;
56
56
  icon: string;
57
- count: number;
58
57
  size: "xs" | "sm" | "md";
58
+ count: number;
59
59
  }, {}>;
60
60
  export default _default;
@@ -54,7 +54,7 @@ declare const _default: import("vue").DefineComponent<{
54
54
  active: boolean;
55
55
  label: string;
56
56
  icon: string;
57
- count: number;
58
57
  size: "xs" | "sm" | "md";
58
+ count: number;
59
59
  }, {}>;
60
60
  export default _default;
@@ -10,6 +10,10 @@ declare const _default: import("vue").DefineComponent<{
10
10
  default: boolean;
11
11
  type: BooleanConstructor;
12
12
  };
13
+ size: {
14
+ default: undefined;
15
+ type: PropType<"xs" | "sm" | "md">;
16
+ };
13
17
  name: {
14
18
  default: undefined;
15
19
  type: StringConstructor;
@@ -30,6 +34,8 @@ declare const _default: import("vue").DefineComponent<{
30
34
  focus: typeof focus;
31
35
  blur: typeof blur;
32
36
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
37
+ blur: (...args: any[]) => void;
38
+ focus: (...args: any[]) => void;
33
39
  "update:modelValue": (...args: any[]) => void;
34
40
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
35
41
  modelValue: {
@@ -40,6 +46,10 @@ declare const _default: import("vue").DefineComponent<{
40
46
  default: boolean;
41
47
  type: BooleanConstructor;
42
48
  };
49
+ size: {
50
+ default: undefined;
51
+ type: PropType<"xs" | "sm" | "md">;
52
+ };
43
53
  name: {
44
54
  default: undefined;
45
55
  type: StringConstructor;
@@ -57,10 +67,13 @@ declare const _default: import("vue").DefineComponent<{
57
67
  type: BooleanConstructor;
58
68
  };
59
69
  }>> & {
70
+ onFocus?: ((...args: any[]) => any) | undefined;
71
+ onBlur?: ((...args: any[]) => any) | undefined;
60
72
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
61
73
  }, {
62
74
  required: boolean;
63
75
  name: string;
76
+ size: "xs" | "sm" | "md";
64
77
  modelValue: string | null;
65
78
  placeholder: string;
66
79
  disabled: boolean;
@@ -10,6 +10,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
10
10
  default: undefined;
11
11
  type: StringConstructor;
12
12
  };
13
+ class: {
14
+ default: string;
15
+ type: PropType<string | string[]>;
16
+ };
17
+ size: {
18
+ default: undefined;
19
+ type: PropType<"xs" | "sm" | "md">;
20
+ };
13
21
  placeholder: {
14
22
  default: string;
15
23
  type: StringConstructor;
@@ -38,6 +46,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
38
46
  default: undefined;
39
47
  type: StringConstructor;
40
48
  };
49
+ visibleFocus: {
50
+ default: boolean;
51
+ type: BooleanConstructor;
52
+ };
41
53
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
42
54
  "update:modelValue": (...args: any[]) => void;
43
55
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -49,6 +61,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
49
61
  default: undefined;
50
62
  type: StringConstructor;
51
63
  };
64
+ class: {
65
+ default: string;
66
+ type: PropType<string | string[]>;
67
+ };
68
+ size: {
69
+ default: undefined;
70
+ type: PropType<"xs" | "sm" | "md">;
71
+ };
52
72
  placeholder: {
53
73
  default: string;
54
74
  type: StringConstructor;
@@ -77,16 +97,23 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
77
97
  default: undefined;
78
98
  type: StringConstructor;
79
99
  };
100
+ visibleFocus: {
101
+ default: boolean;
102
+ type: BooleanConstructor;
103
+ };
80
104
  }>> & {
81
105
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
82
106
  }, {
107
+ class: string | string[];
83
108
  required: boolean;
84
109
  name: string;
110
+ size: "xs" | "sm" | "md";
85
111
  options: Option[];
86
112
  modelValue: SelectOption | undefined;
87
113
  placeholder: string;
88
114
  disabled: boolean;
89
115
  hasError: boolean;
116
+ visibleFocus: boolean;
90
117
  labelKey: string;
91
118
  valueKey: string;
92
119
  }, {}>, {
@@ -1,15 +1,15 @@
1
1
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
2
  size: {
3
- type: import("vue").PropType<"xs" | "sm" | "lg" | "md">;
3
+ type: import("vue").PropType<"xs" | "sm" | "md" | "lg">;
4
4
  default: string;
5
5
  };
6
6
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
7
7
  size: {
8
- type: import("vue").PropType<"xs" | "sm" | "lg" | "md">;
8
+ type: import("vue").PropType<"xs" | "sm" | "md" | "lg">;
9
9
  default: string;
10
10
  };
11
11
  }>>, {
12
- size: "xs" | "sm" | "lg" | "md";
12
+ size: "xs" | "sm" | "md" | "lg";
13
13
  }, {}>, {
14
14
  default?(_: {}): any;
15
15
  }>;
@@ -81,10 +81,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
81
81
  required: boolean;
82
82
  name: string;
83
83
  color: "dark" | "light" | "danger" | "success" | "warning" | "primary" | "info";
84
+ size: "base" | "xs" | "sm" | "lg" | "xl";
84
85
  modelValue: string | number | boolean | null | undefined;
85
86
  disabled: boolean;
86
87
  hasError: boolean;
87
- size: "base" | "xs" | "sm" | "lg" | "xl";
88
88
  checkedIcon: string;
89
89
  unCheckedIcon: string;
90
90
  }, {}>, {
@@ -199,8 +199,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
199
199
  "onCell-click"?: ((...args: any[]) => any) | undefined;
200
200
  }, {
201
201
  data: Row[];
202
- loading: boolean;
203
202
  size: "sm" | "md";
203
+ loading: boolean;
204
204
  sortField: string;
205
205
  sortDirection: string;
206
206
  visibleColumns: number[];
@@ -1,15 +1,15 @@
1
1
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
2
  size: {
3
- type: import("vue").PropType<"xs" | "sm" | "lg" | "md">;
3
+ type: import("vue").PropType<"xs" | "sm" | "md" | "lg">;
4
4
  default: string;
5
5
  };
6
6
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
7
7
  size: {
8
- type: import("vue").PropType<"xs" | "sm" | "lg" | "md">;
8
+ type: import("vue").PropType<"xs" | "sm" | "md" | "lg">;
9
9
  default: string;
10
10
  };
11
11
  }>>, {
12
- size: "xs" | "sm" | "lg" | "md";
12
+ size: "xs" | "sm" | "md" | "lg";
13
13
  }, {}>, {
14
14
  default?(_: {}): any;
15
15
  }>;
@@ -64,7 +64,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
64
64
  };
65
65
  size: {
66
66
  default: string;
67
- type: PropType<"base" | "xs" | "sm">;
67
+ type: PropType<"xs" | "sm" | "md">;
68
68
  };
69
69
  dropdownShow: {
70
70
  default: string;
@@ -149,7 +149,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
149
149
  };
150
150
  size: {
151
151
  default: string;
152
- type: PropType<"base" | "xs" | "sm">;
152
+ type: PropType<"xs" | "sm" | "md">;
153
153
  };
154
154
  dropdownShow: {
155
155
  default: string;
@@ -173,6 +173,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
173
173
  filter: (option: NormalizedOption) => boolean;
174
174
  required: boolean;
175
175
  name: string;
176
+ size: "xs" | "sm" | "md";
176
177
  inline: boolean;
177
178
  placeholder: string;
178
179
  disabled: boolean;
@@ -180,7 +181,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
180
181
  max: number;
181
182
  loading: boolean;
182
183
  loadingBottom: boolean;
183
- size: "base" | "xs" | "sm";
184
184
  dropdownShow: "always" | "focus";
185
185
  focusOnMount: boolean;
186
186
  twContainer: string | string[];
@@ -10,6 +10,14 @@ declare const _default: import("vue").DefineComponent<{
10
10
  type: StringConstructor;
11
11
  default: string;
12
12
  };
13
+ size: {
14
+ default: undefined;
15
+ type: PropType<"xs" | "sm" | "md">;
16
+ };
17
+ class: {
18
+ default: string;
19
+ type: PropType<string | string[]>;
20
+ };
13
21
  autocomplete: {
14
22
  default: boolean;
15
23
  type: BooleanConstructor;
@@ -56,6 +64,14 @@ declare const _default: import("vue").DefineComponent<{
56
64
  type: StringConstructor;
57
65
  default: string;
58
66
  };
67
+ size: {
68
+ default: undefined;
69
+ type: PropType<"xs" | "sm" | "md">;
70
+ };
71
+ class: {
72
+ default: string;
73
+ type: PropType<string | string[]>;
74
+ };
59
75
  autocomplete: {
60
76
  default: boolean;
61
77
  type: BooleanConstructor;
@@ -91,9 +107,11 @@ declare const _default: import("vue").DefineComponent<{
91
107
  }>> & {
92
108
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
93
109
  }, {
110
+ class: string | string[];
94
111
  type: string;
95
112
  required: boolean;
96
113
  name: string;
114
+ size: "xs" | "sm" | "md";
97
115
  modelValue: string | null | undefined;
98
116
  autocomplete: boolean;
99
117
  preventSubmit: boolean;
@@ -18,6 +18,10 @@ declare const _default: import("vue").DefineComponent<{
18
18
  default: boolean;
19
19
  type: BooleanConstructor;
20
20
  };
21
+ size: {
22
+ default: undefined;
23
+ type: PropType<"xs" | "sm" | "md">;
24
+ };
21
25
  maxHeight: {
22
26
  default: number;
23
27
  type: NumberConstructor;
@@ -71,6 +75,10 @@ declare const _default: import("vue").DefineComponent<{
71
75
  default: boolean;
72
76
  type: BooleanConstructor;
73
77
  };
78
+ size: {
79
+ default: undefined;
80
+ type: PropType<"xs" | "sm" | "md">;
81
+ };
74
82
  maxHeight: {
75
83
  default: number;
76
84
  type: NumberConstructor;
@@ -106,6 +114,7 @@ declare const _default: import("vue").DefineComponent<{
106
114
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
107
115
  }, {
108
116
  required: boolean;
117
+ size: "xs" | "sm" | "md";
109
118
  modelValue: string | null;
110
119
  placeholder: string;
111
120
  disabled: boolean;
@@ -1,9 +1,11 @@
1
+ import { Size } from '@/utils/sizes';
1
2
  import { Ref } from 'vue';
2
3
  interface Config {
3
4
  name: Ref<string | null | undefined>;
4
5
  required: Ref<boolean>;
5
6
  hasError: Ref<boolean | undefined>;
6
7
  emit: any;
8
+ size?: Ref<Size | undefined>;
7
9
  errorType?: string;
8
10
  labelClass?: string;
9
11
  }
@@ -12,6 +14,7 @@ export declare function useField(config: Config): {
12
14
  nameInternal: import("vue").ComputedRef<string>;
13
15
  hasErrorInternal: import("vue").ComputedRef<boolean>;
14
16
  errorMessageInternal: import("vue").ComputedRef<string | null | undefined>;
17
+ sizeInternal: import("vue").ComputedRef<"xs" | "sm" | "md">;
15
18
  emitUpdate: (value: any) => void;
16
19
  enableForm: () => void;
17
20
  disableForm: () => void;
@@ -0,0 +1,6 @@
1
+ import { Size } from "@/utils/sizes";
2
+ import { MaybeRef } from "vue";
3
+ declare function useInputSize(size: MaybeRef<Size | '' | undefined | null>): {
4
+ size: import("vue").ComputedRef<"xs" | "sm" | "md">;
5
+ };
6
+ export { useInputSize };
@@ -0,0 +1,19 @@
1
+ declare const sizes: {
2
+ xs: {
3
+ fontSize: string;
4
+ height: string;
5
+ iconSize: string;
6
+ };
7
+ sm: {
8
+ fontSize: string;
9
+ height: string;
10
+ iconSize: string;
11
+ };
12
+ md: {
13
+ fontSize: string;
14
+ height: string;
15
+ iconSize: string;
16
+ };
17
+ };
18
+ type Size = keyof typeof sizes;
19
+ export { sizes, Size };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sprintify-ui",
3
- "version": "0.6.32",
3
+ "version": "0.6.34",
4
4
  "scripts": {
5
5
  "build": "rimraf dist && vue-tsc && vite build",
6
6
  "build-fast": "rimraf dist && vite build",
@@ -2,5 +2,5 @@
2
2
 
3
3
  input,
4
4
  textarea {
5
- @apply placeholder:text-slate-500 placeholder:font-light;
5
+ @apply placeholder:text-slate-400 placeholder:font-light;
6
6
  }
@@ -4,7 +4,12 @@ import ShowValue from '../../.storybook/components/ShowValue.vue';
4
4
  export default {
5
5
  title: 'Form/BaseAddressForm',
6
6
  component: BaseAddressForm,
7
- argTypes: {},
7
+ argTypes: {
8
+ size: {
9
+ control: { type: 'select' },
10
+ options: ['xs', 'sm', 'md'],
11
+ },
12
+ },
8
13
  args: {
9
14
  countries: [
10
15
  { name: 'United States', id: 'us' },
@@ -37,7 +42,7 @@ const Template = (args) => ({
37
42
  address_2: 'Suite 100',
38
43
  city: 'Montreal',
39
44
  country: 'ca',
40
- region: 'qc',
45
+ region: 'ca-qc',
41
46
  postal_code: 'H2X 4E3',
42
47
  },
43
48
  });
@@ -1,41 +1,49 @@
1
1
  <template>
2
- <BaseField
3
- :label="t('sui.address')"
4
- :name="`${namePrefix}address_1`"
5
- class="mb-2"
6
- :required="required"
2
+ <div
3
+ class="grid grid-cols-2"
4
+ :class="baseClasses"
7
5
  >
8
- <BaseInput
9
- ref="address1Ref"
10
- :model-value="normalizedModelValue.address_1 ?? ''"
11
- :placeholder="t('sui.address_1_placeholder')"
12
- class="w-full"
13
- prevent-submit
14
- name="address_search_field"
15
- :autocomplete="false"
16
- @update:model-value="update('address_1', $event)"
17
- />
18
- </BaseField>
19
-
20
- <BaseField
21
- :name="`${namePrefix}address_2`"
22
- class="mb-4"
23
- :required="false"
24
- >
25
- <BaseInput
26
- :model-value="normalizedModelValue.address_2 ?? ''"
27
- :placeholder="t('sui.address_2_description')"
28
- class="w-full"
29
- @update:model-value="update('address_2', $event)"
30
- />
31
- </BaseField>
32
-
33
- <div class="sm:flex sm:space-x-3">
6
+ <div class="flex flex-col gap-1 col-span-2">
7
+ <BaseField
8
+ :label="t('sui.address')"
9
+ :name="`${namePrefix}address_1`"
10
+ class="col-span-2"
11
+ :required="required"
12
+ :size="size"
13
+ >
14
+ <BaseInput
15
+ ref="address1Ref"
16
+ :model-value="normalizedModelValue.address_1 ?? ''"
17
+ :placeholder="t('sui.address_1_placeholder')"
18
+ class="w-full"
19
+ prevent-submit
20
+ name="address_search_field"
21
+ :autocomplete="false"
22
+ @update:model-value="update('address_1', $event)"
23
+ />
24
+ </BaseField>
25
+
26
+ <BaseField
27
+ :name="`${namePrefix}address_2`"
28
+ class="col-span-2"
29
+ :required="false"
30
+ :size="size"
31
+ >
32
+ <BaseInput
33
+ :model-value="normalizedModelValue.address_2 ?? ''"
34
+ :placeholder="t('sui.address_2_description')"
35
+ class="w-full"
36
+ @update:model-value="update('address_2', $event)"
37
+ />
38
+ </BaseField>
39
+ </div>
40
+
34
41
  <BaseField
35
42
  :label="t('sui.city')"
36
43
  :required="required"
37
44
  :name="`${namePrefix}city`"
38
- class="mb-4 flex-1"
45
+ class="col-span-2 || sm:col-span-1"
46
+ :size="size"
39
47
  >
40
48
  <BaseInput
41
49
  :model-value="normalizedModelValue.city ?? ''"
@@ -43,11 +51,13 @@
43
51
  @update:model-value="update('city', $event)"
44
52
  />
45
53
  </BaseField>
54
+
46
55
  <BaseField
47
56
  :label="t('sui.postal_code_zip_code')"
48
57
  :required="required"
49
58
  :name="`${namePrefix}postal_code`"
50
- class="mb-4 flex-1"
59
+ class="col-span-2 || sm:col-span-1"
60
+ :size="size"
51
61
  >
52
62
  <BaseInput
53
63
  :model-value="normalizedModelValue.postal_code ?? ''"
@@ -55,14 +65,14 @@
55
65
  @update:model-value="update('postal_code', $event)"
56
66
  />
57
67
  </BaseField>
58
- </div>
59
- <div class="sm:flex sm:space-x-3">
68
+
60
69
  <BaseField
61
70
  v-if="!props.hideCountry"
62
71
  :label="t('sui.country')"
63
72
  :name="`${namePrefix}country`"
64
73
  :required="required"
65
- class="mb-4 flex-1"
74
+ class="col-span-2 || sm:col-span-1"
75
+ :size="size"
66
76
  >
67
77
  <BaseSelect
68
78
  :model-value="normalizedModelValue.country ?? ''"
@@ -74,17 +84,20 @@
74
84
  @update:model-value="update('country', $event)"
75
85
  />
76
86
  </BaseField>
87
+
77
88
  <BaseField
78
89
  v-if="!props.hideRegion"
79
90
  :label="t('sui.region')"
80
91
  :name="`${namePrefix}region`"
81
92
  :required="required"
82
- class="mb-4 flex-1"
93
+ class="col-span-2 || sm:col-span-1"
94
+ :size="size"
83
95
  >
84
96
  <BaseSelect
85
97
  :model-value="normalizedModelValue.region ?? ''"
86
98
  class="w-full"
87
99
  :options="regions"
100
+ :placeholder="t('sui.region')"
88
101
  label-key="name"
89
102
  value-key="id"
90
103
  @update:model-value="update('region', $event)"
@@ -103,6 +116,8 @@ import BaseInput from './BaseInput.vue';
103
116
  import BaseSelect from './BaseSelect.vue';
104
117
  import { t } from '@/i18n';
105
118
  import { config } from '..';
119
+ import { Size } from '@/utils/sizes';
120
+ import { useInputSize } from '@/composables/inputSize';
106
121
 
107
122
  const DEFAULT_COUNTRY = 'ca';
108
123
 
@@ -123,6 +138,7 @@ const props = withDefaults(
123
138
  countries?: Country[];
124
139
  regions?: Region[];
125
140
  restrictCountry?: boolean;
141
+ size?: Size;
126
142
  hideRegion?: boolean;
127
143
  hideCountry?: boolean;
128
144
  }>(),
@@ -138,6 +154,7 @@ const props = withDefaults(
138
154
  return [];
139
155
  },
140
156
  restrictCountry: false,
157
+ size: undefined,
141
158
  hideRegion: false,
142
159
  hideCountry: false,
143
160
  }
@@ -145,6 +162,8 @@ const props = withDefaults(
145
162
 
146
163
  const emit = defineEmits(['update:model-value']);
147
164
 
165
+ const { size } = useInputSize(computed(() => props.size));
166
+
148
167
  const normalizedModelValue = computed((): Address => {
149
168
  const form = cloneDeep(props.modelValue ?? {}) as Address;
150
169
  form.address_1 = form.address_1 ?? '';
@@ -322,4 +341,12 @@ function fillAddress() {
322
341
  emit('update:model-value', newForm);
323
342
  });
324
343
  }
344
+
345
+ const baseClasses = computed(() => {
346
+ return {
347
+ 'xs': 'gap-y-2 gap-x-1',
348
+ 'sm': 'gap-y-2.5 gap-x-1.5',
349
+ 'md': 'gap-y-3 gap-x-2',
350
+ }[size.value]
351
+ });
325
352
  </script>
@@ -3,7 +3,7 @@ import BaseAutocomplete from './BaseAutocomplete.vue';
3
3
  import ShowValue from '@/../.storybook/components/ShowValue.vue';
4
4
  import { computed } from 'vue';
5
5
 
6
- const sizes = ['xs', 'sm', 'base'];
6
+ const sizes = ['xs', 'sm', 'md'];
7
7
 
8
8
  export default {
9
9
  title: 'Form/BaseAutocomplete',