@finema/core 2.61.0 → 3.0.0

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.
package/dist/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finema/core",
3
- "version": "2.61.0",
3
+ "version": "3.0.0",
4
4
  "configKey": "core",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
package/dist/module.mjs CHANGED
@@ -4,7 +4,7 @@ import * as lodash from 'lodash-es';
4
4
  import * as theme from '../dist/runtime/theme/index.js';
5
5
 
6
6
  const name = "@finema/core";
7
- const version = "2.61.0";
7
+ const version = "3.0.0";
8
8
 
9
9
  const nuxtAppOptions = {
10
10
  head: {
@@ -25,6 +25,7 @@ import FormInputTextarea from "./InputTextarea/index.vue";
25
25
  import FormInputText from "./InputText/index.vue";
26
26
  import FormInputSearch from "./InputSearch/index.vue";
27
27
  import FormInputNumber from "./InputNumber/index.vue";
28
+ import FormInputCurrency from "./InputCurrency/index.vue";
28
29
  import FormInputToggle from "./InputToggle/index.vue";
29
30
  import FormInputCheckbox from "./InputCheckbox/index.vue";
30
31
  import FormInputSelect from "./InputSelect/index.vue";
@@ -89,6 +90,10 @@ const componentMap = {
89
90
  props: {}
90
91
  },
91
92
  // Example: Map to FormInputText or a specific Number input if exists
93
+ [INPUT_TYPES.CURRENCY]: {
94
+ component: FormInputCurrency,
95
+ props: {}
96
+ },
92
97
  [INPUT_TYPES.PASSWORD]: {
93
98
  component: FormInputText,
94
99
  props: {
@@ -0,0 +1,13 @@
1
+ import type { ICurrencyFieldProps } from '#core/components/Form/InputCurrency/types';
2
+ declare const __VLS_export: import("vue").DefineComponent<ICurrencyFieldProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ change: (...args: any[]) => void;
4
+ }, string, import("vue").PublicProps, Readonly<ICurrencyFieldProps> & Readonly<{
5
+ onChange?: ((...args: any[]) => any) | undefined;
6
+ }>, {
7
+ step: number;
8
+ options: import("#core/components/Form/InputCurrency/types").SelectOption[];
9
+ disableWheelChange: boolean;
10
+ defaultCurrency: string;
11
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,119 @@
1
+ <template>
2
+ <FieldWrapper
3
+ v-bind="wrapperProps"
4
+ :error-message="undefined"
5
+ >
6
+ <div
7
+ :class="['inline-flex w-full items-center -space-x-px rounded-lg ring-1', {
8
+ 'ring-error': wrapperProps.errorMessage,
9
+ 'ring-gray-300': !wrapperProps.errorMessage
10
+ }]"
11
+ >
12
+ <p class="pl-3 text-lg">
13
+ {{ currencySymbol }}
14
+ </p>
15
+ <InputNumber
16
+ :model-value="value.value"
17
+ :disabled="wrapperProps.disabled"
18
+ :name="name"
19
+ :placeholder="wrapperProps.placeholder"
20
+ :autofocus="!!autoFocus"
21
+ :readonly="readonly"
22
+ :min="min"
23
+ :max="max"
24
+ :step="step"
25
+ :format-options="formatOptions"
26
+ :increment="false"
27
+ :decrement="false"
28
+ variant="none"
29
+ @update:model-value="onAmountChange"
30
+ />
31
+ <Select
32
+ :model-value="value.currency"
33
+ :items="options"
34
+ :disabled="wrapperProps.disabled"
35
+ value-key="value"
36
+ label-key="label"
37
+ variant="none"
38
+ size="xl"
39
+ class="cursor-pointer"
40
+ @update:model-value="onCurrencyChange"
41
+ >
42
+ <template #default="{ modelValue }">
43
+ {{ options.find((item) => item.value === modelValue)?.label || modelValue }}
44
+ </template>
45
+ </Select>
46
+ </div>
47
+ <p
48
+ v-if="wrapperProps.errorMessage"
49
+ class="text-error mt-2"
50
+ >
51
+ {{ wrapperProps.errorMessage }}
52
+ </p>
53
+ </FieldWrapper>
54
+ </template>
55
+
56
+ <script setup>
57
+ import { computed } from "vue";
58
+ import FieldWrapper from "#core/components/Form/FieldWrapper.vue";
59
+ import { useFieldHOC } from "#core/composables/useForm";
60
+ const emits = defineEmits(["change"]);
61
+ const props = defineProps({
62
+ min: { type: Number, required: false },
63
+ max: { type: Number, required: false },
64
+ step: { type: Number, required: false, default: 0.01 },
65
+ options: { type: Array, required: false, default: () => [
66
+ {
67
+ value: "THB",
68
+ label: "THB",
69
+ symbol: "\u0E3F"
70
+ },
71
+ {
72
+ value: "USD",
73
+ label: "USD",
74
+ symbol: "$"
75
+ }
76
+ ] },
77
+ defaultCurrency: { type: String, required: false, default: "THB" },
78
+ formatOptions: { type: null, required: false },
79
+ disableWheelChange: { type: Boolean, required: false, default: false },
80
+ form: { type: Object, required: false },
81
+ name: { type: String, required: true },
82
+ errorMessage: { type: String, required: false },
83
+ label: { type: null, required: false },
84
+ description: { type: String, required: false },
85
+ hint: { type: String, required: false },
86
+ rules: { type: null, required: false },
87
+ autoFocus: { type: Boolean, required: false },
88
+ placeholder: { type: String, required: false },
89
+ disabled: { type: Boolean, required: false },
90
+ readonly: { type: Boolean, required: false },
91
+ required: { type: Boolean, required: false },
92
+ help: { type: String, required: false },
93
+ ui: { type: null, required: false }
94
+ });
95
+ const {
96
+ value,
97
+ wrapperProps,
98
+ handleChange
99
+ } = useFieldHOC(props);
100
+ const currencySymbol = computed(() => props.options.find((item) => item.value === value.value.currency)?.symbol);
101
+ const updateValue = (payload) => {
102
+ const newValue = {
103
+ ...value.value,
104
+ ...payload
105
+ };
106
+ handleChange(newValue);
107
+ emits("change", newValue);
108
+ };
109
+ const onAmountChange = (newAmount) => {
110
+ updateValue({
111
+ value: newAmount
112
+ });
113
+ };
114
+ const onCurrencyChange = (newCurrency) => {
115
+ updateValue({
116
+ currency: newCurrency
117
+ });
118
+ };
119
+ </script>
@@ -0,0 +1,13 @@
1
+ import type { ICurrencyFieldProps } from '#core/components/Form/InputCurrency/types';
2
+ declare const __VLS_export: import("vue").DefineComponent<ICurrencyFieldProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ change: (...args: any[]) => void;
4
+ }, string, import("vue").PublicProps, Readonly<ICurrencyFieldProps> & Readonly<{
5
+ onChange?: ((...args: any[]) => any) | undefined;
6
+ }>, {
7
+ step: number;
8
+ options: import("#core/components/Form/InputCurrency/types").SelectOption[];
9
+ disableWheelChange: boolean;
10
+ defaultCurrency: string;
11
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,23 @@
1
+ import type { IFieldProps, IFormFieldBase, INPUT_TYPES } from '#core/components/Form/types';
2
+ import type { SelectMenuItem } from '@nuxt/ui';
3
+ export type SelectOption = SelectMenuItem & {
4
+ label: string;
5
+ value: string;
6
+ symbol: string;
7
+ };
8
+ export interface ICurrencyValue {
9
+ value: number;
10
+ currency: string;
11
+ }
12
+ export interface ICurrencyFieldProps extends IFieldProps {
13
+ min?: number;
14
+ max?: number;
15
+ step?: number;
16
+ options?: SelectOption[];
17
+ defaultCurrency?: string;
18
+ formatOptions?: Intl.NumberFormatOptions;
19
+ disableWheelChange?: boolean;
20
+ }
21
+ export type ICurrencyField = IFormFieldBase<INPUT_TYPES.CURRENCY, ICurrencyFieldProps, {
22
+ change?: (value: ICurrencyValue) => void;
23
+ }>;
@@ -5,6 +5,8 @@ declare const __VLS_export: import("vue").DefineComponent<INumberFieldProps, {},
5
5
  onChange?: ((...args: any[]) => any) | undefined;
6
6
  }>, {
7
7
  orientation: "horizontal" | "vertical";
8
+ increment: boolean | import("@nuxt/ui").ButtonProps;
9
+ decrement: boolean | import("@nuxt/ui").ButtonProps;
8
10
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
11
  declare const _default: typeof __VLS_export;
10
12
  export default _default;
@@ -8,8 +8,8 @@
8
8
  :autofocus="!!autoFocus"
9
9
  :readonly="readonly"
10
10
  :orientation="orientation"
11
- :increment-disabled="incrementDisabled"
12
- :decrement-disabled="decrementDisabled"
11
+ :increment="increment"
12
+ :decrement="decrement"
13
13
  :min="min"
14
14
  :max="max"
15
15
  :step="step"
@@ -27,8 +27,8 @@ import FieldWrapper from "#core/components/Form/FieldWrapper.vue";
27
27
  const emits = defineEmits(["change"]);
28
28
  const props = defineProps({
29
29
  orientation: { type: String, required: false, default: "vertical" },
30
- incrementDisabled: { type: Boolean, required: false },
31
- decrementDisabled: { type: Boolean, required: false },
30
+ increment: { type: Boolean, required: false, skipCheck: true, default: false },
31
+ decrement: { type: Boolean, required: false, skipCheck: true, default: false },
32
32
  min: { type: Number, required: false },
33
33
  max: { type: Number, required: false },
34
34
  step: { type: Number, required: false },
@@ -5,6 +5,8 @@ declare const __VLS_export: import("vue").DefineComponent<INumberFieldProps, {},
5
5
  onChange?: ((...args: any[]) => any) | undefined;
6
6
  }>, {
7
7
  orientation: "horizontal" | "vertical";
8
+ increment: boolean | import("@nuxt/ui").ButtonProps;
9
+ decrement: boolean | import("@nuxt/ui").ButtonProps;
8
10
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
11
  declare const _default: typeof __VLS_export;
10
12
  export default _default;
@@ -1,9 +1,9 @@
1
1
  import type { IFieldProps, IFormFieldBase, INPUT_TYPES } from '#core/components/Form/types';
2
- import type { InputNumberProps } from '#ui/components/InputNumber.vue';
2
+ import type { InputNumberProps } from '@nuxt/ui';
3
3
  export interface INumberFieldProps extends IFieldProps {
4
4
  orientation?: InputNumberProps['orientation'];
5
- incrementDisabled?: InputNumberProps['incrementDisabled'];
6
- decrementDisabled?: InputNumberProps['decrementDisabled'];
5
+ increment?: InputNumberProps['increment'];
6
+ decrement?: InputNumberProps['decrement'];
7
7
  min?: InputNumberProps['min'];
8
8
  max?: InputNumberProps['max'];
9
9
  step?: InputNumberProps['step'];
@@ -1,5 +1,5 @@
1
1
  import type { IFieldProps, IFormFieldBase, INPUT_TYPES } from '#core/components/Form/types';
2
- import type { SelectMenuItem } from '#ui/components/SelectMenu.vue';
2
+ import type { SelectMenuItem } from '@nuxt/ui';
3
3
  export type SelectOption = SelectMenuItem & {
4
4
  label?: string;
5
5
  value?: any;
@@ -18,10 +18,12 @@ import type { IRadioField } from '#core/components/Form/InputRadio/types';
18
18
  import type { IWYSIWYGField } from '#core/components/Form/InputWYSIWYG/types';
19
19
  import type { IComponentField } from '#core/components/Form/InputComponent/types';
20
20
  import type { ITagsField } from '#core/components/Form/InputTags/types';
21
+ import type { ICurrencyField } from '#core/components/Form/InputCurrency/types';
21
22
  export declare enum INPUT_TYPES {
22
23
  TEXT = "TEXT",
23
24
  SEARCH = "SEARCH",
24
25
  NUMBER = "NUMBER",
26
+ CURRENCY = "CURRENCY",
25
27
  TEXTAREA = "TEXTAREA",
26
28
  PASSWORD = "PASSWORD",
27
29
  EMAIL = "EMAIL",
@@ -73,7 +75,7 @@ export interface IFormFieldBase<I extends INPUT_TYPES, P extends IFieldProps, O>
73
75
  props: P;
74
76
  on?: O;
75
77
  }
76
- export type IFormField = ITextField | ISearchField | INumberField | ITextareaField | IToggleField | ISelectField | ICheckboxField | ISelectMultipleField | IRadioField | IDateTimeField | ITimeField | IMonthField | IDateTimeRangeField | IUploadDropzoneField | IUploadDropzoneAutoField | IWYSIWYGField | IComponentField | ITagsField | IFormFieldBase<INPUT_TYPES.COMPONENT, any, any>;
78
+ export type IFormField = ITextField | ISearchField | INumberField | ICurrencyField | ITextareaField | IToggleField | ISelectField | ICheckboxField | ISelectMultipleField | IRadioField | IDateTimeField | ITimeField | IMonthField | IDateTimeRangeField | IUploadDropzoneField | IUploadDropzoneAutoField | IWYSIWYGField | IComponentField | ITagsField | IFormFieldBase<INPUT_TYPES.COMPONENT, any, any>;
77
79
  export interface IFileValue {
78
80
  url: string;
79
81
  path?: string;
@@ -2,6 +2,7 @@ export var INPUT_TYPES = /* @__PURE__ */ ((INPUT_TYPES2) => {
2
2
  INPUT_TYPES2["TEXT"] = "TEXT";
3
3
  INPUT_TYPES2["SEARCH"] = "SEARCH";
4
4
  INPUT_TYPES2["NUMBER"] = "NUMBER";
5
+ INPUT_TYPES2["CURRENCY"] = "CURRENCY";
5
6
  INPUT_TYPES2["TEXTAREA"] = "TEXTAREA";
6
7
  INPUT_TYPES2["PASSWORD"] = "PASSWORD";
7
8
  INPUT_TYPES2["EMAIL"] = "EMAIL";
@@ -1,4 +1,15 @@
1
1
  export declare class TimeHelper {
2
+ static getConfig: () => {
3
+ dateFormat: string;
4
+ dateTimeFormat: string;
5
+ dateTimeFormatDisplay: string;
6
+ dateFormatDisplay: string;
7
+ timeFormat: string;
8
+ isThaiYear: boolean;
9
+ isThaiMonth: boolean;
10
+ timeZone: string;
11
+ locale: string;
12
+ };
2
13
  static thaiFormat: (dateStr: Date, formatStr: string, forceThai?: boolean) => string;
3
14
  static displayDate: (time: string | Date | null | undefined) => string | null;
4
15
  static displayDateTime: (time: string | Date | null | undefined) => string | null;
@@ -2,36 +2,41 @@ import { addYears, format, formatISO, isDate, isValid } from "date-fns";
2
2
  import * as locales from "date-fns/locale";
3
3
  import { formatInTimeZone } from "date-fns-tz";
4
4
  import { useCoreConfig } from "#core/composables/useConfig";
5
- const dateFormat = useCoreConfig().date_format_system;
6
- const dateFormatDisplay = useCoreConfig().date_format;
7
- const dateTimeFormat = useCoreConfig().date_time_format_system;
8
- const dateTimeFormatDisplay = useCoreConfig().date_time_format;
9
- const timeFormat = useCoreConfig().time_format;
10
- const isThaiYear = useCoreConfig().is_thai_year;
11
- const isThaiMonth = useCoreConfig().is_thai_month;
12
- const timeZone = useCoreConfig().time_zone;
13
- const locale = useCoreConfig().locale;
14
5
  const getTime = (time) => {
15
6
  return isDate(time) ? time : new Date(time);
16
7
  };
17
8
  export class TimeHelper {
9
+ static getConfig = () => {
10
+ const config = useCoreConfig();
11
+ return {
12
+ dateFormat: config.date_format_system,
13
+ dateTimeFormat: config.date_time_format_system,
14
+ dateTimeFormatDisplay: config.date_time_format,
15
+ dateFormatDisplay: config.date_format,
16
+ timeFormat: config.time_format,
17
+ isThaiYear: config.is_thai_year,
18
+ isThaiMonth: config.is_thai_month,
19
+ timeZone: config.time_zone,
20
+ locale: config.locale
21
+ };
22
+ };
18
23
  static thaiFormat = (dateStr, formatStr, forceThai = false) => {
19
24
  let newDateStr = dateStr;
20
25
  const options = {};
21
- if (isThaiYear || forceThai) {
26
+ if (this.getConfig().isThaiYear || forceThai) {
22
27
  newDateStr = addYears(dateStr, 543);
23
28
  }
24
- if (isThaiMonth || forceThai) {
29
+ if (this.getConfig().isThaiMonth || forceThai) {
25
30
  options.locale = locales.th;
26
31
  }
27
- return formatInTimeZone(newDateStr, timeZone, formatStr, options);
32
+ return formatInTimeZone(newDateStr, this.getConfig().timeZone, formatStr, options);
28
33
  };
29
34
  static displayDate = (time) => {
30
35
  if (!time) {
31
36
  return null;
32
37
  }
33
38
  const parsedTime = getTime(time);
34
- const newTime = locale === "th" ? TimeHelper.thaiFormat(parsedTime, dateFormatDisplay) : format(parsedTime, dateFormatDisplay);
39
+ const newTime = this.getConfig().locale === "th" ? TimeHelper.thaiFormat(parsedTime, this.getConfig().dateFormatDisplay) : format(parsedTime, this.getConfig().dateFormatDisplay);
35
40
  return isValid(parsedTime) ? newTime : time;
36
41
  };
37
42
  static displayDateTime = (time) => {
@@ -39,7 +44,7 @@ export class TimeHelper {
39
44
  return null;
40
45
  }
41
46
  const parsedTime = getTime(time);
42
- const newTime = locale === "th" ? TimeHelper.thaiFormat(parsedTime, dateTimeFormatDisplay) : format(parsedTime, dateTimeFormatDisplay);
47
+ const newTime = this.getConfig().locale === "th" ? TimeHelper.thaiFormat(parsedTime, this.getConfig().dateTimeFormatDisplay) : format(parsedTime, this.getConfig().dateTimeFormatDisplay);
43
48
  return isValid(parsedTime) ? newTime : time;
44
49
  };
45
50
  static displayDateThai = (time) => {
@@ -47,7 +52,7 @@ export class TimeHelper {
47
52
  return null;
48
53
  }
49
54
  const parsedTime = getTime(time);
50
- const newTime = TimeHelper.thaiFormat(parsedTime, dateFormatDisplay, true);
55
+ const newTime = TimeHelper.thaiFormat(parsedTime, this.getConfig().dateFormatDisplay, true);
51
56
  return isValid(parsedTime) ? newTime : time;
52
57
  };
53
58
  static displayDateTimeThai = (time) => {
@@ -55,7 +60,7 @@ export class TimeHelper {
55
60
  return null;
56
61
  }
57
62
  const parsedTime = getTime(time);
58
- const newTime = TimeHelper.thaiFormat(parsedTime, dateTimeFormatDisplay, true);
63
+ const newTime = TimeHelper.thaiFormat(parsedTime, this.getConfig().dateTimeFormatDisplay, true);
59
64
  return isValid(parsedTime) ? newTime : time;
60
65
  };
61
66
  static displayDateRange = (startDate, endDate) => {
@@ -67,8 +72,8 @@ export class TimeHelper {
67
72
  }
68
73
  const parsedStartDate = getTime(startDate);
69
74
  const parsedEndDate = getTime(endDate);
70
- const newStartDate = TimeHelper.thaiFormat(parsedStartDate, dateFormatDisplay);
71
- const newEndDate = TimeHelper.thaiFormat(parsedEndDate, dateFormatDisplay);
75
+ const newStartDate = TimeHelper.thaiFormat(parsedStartDate, this.getConfig().dateFormatDisplay);
76
+ const newEndDate = TimeHelper.thaiFormat(parsedEndDate, this.getConfig().dateFormatDisplay);
72
77
  return {
73
78
  startDate: isValid(parsedStartDate) ? newStartDate : startDate,
74
79
  endDate: isValid(parsedEndDate) ? newEndDate : endDate
@@ -80,7 +85,7 @@ export class TimeHelper {
80
85
  }
81
86
  try {
82
87
  const parsedTime = getTime(time);
83
- const newTime = formatInTimeZone(parsedTime, "UTC", dateTimeFormat);
88
+ const newTime = formatInTimeZone(parsedTime, "UTC", this.getConfig().dateTimeFormat);
84
89
  return isValid(parsedTime) ? newTime : time;
85
90
  } catch (e) {
86
91
  return time.toString();
@@ -92,16 +97,16 @@ export class TimeHelper {
92
97
  }
93
98
  try {
94
99
  const parsedTime = getTime(time);
95
- const newTime = formatInTimeZone(parsedTime, timeZone, dateTimeFormat);
100
+ const newTime = formatInTimeZone(parsedTime, this.getConfig().timeZone, this.getConfig().dateTimeFormat);
96
101
  return isValid(parsedTime) ? newTime : time;
97
102
  } catch (e) {
98
103
  return time.toString();
99
104
  }
100
105
  };
101
- static getCurrentDate = (customFormat = dateFormat) => {
106
+ static getCurrentDate = (customFormat = this.getConfig().dateFormat) => {
102
107
  return format(/* @__PURE__ */ new Date(), customFormat);
103
108
  };
104
- static getDateFormTime = (time, customFormat = dateFormat) => {
109
+ static getDateFormTime = (time, customFormat = this.getConfig().dateFormat) => {
105
110
  if (!time) {
106
111
  return null;
107
112
  }
@@ -109,7 +114,7 @@ export class TimeHelper {
109
114
  const newTime = format(parsedTime, customFormat);
110
115
  return isValid(parsedTime) ? newTime : time;
111
116
  };
112
- static getDateFormTimeWithLocal = (time, customFormat = dateFormat) => {
117
+ static getDateFormTimeWithLocal = (time, customFormat = this.getConfig().dateFormat) => {
113
118
  if (!time) {
114
119
  return null;
115
120
  }
@@ -127,7 +132,7 @@ export class TimeHelper {
127
132
  }
128
133
  try {
129
134
  const parsedTime = getTime(time);
130
- const testTime = format(parsedTime, dateTimeFormat);
135
+ const testTime = format(parsedTime, this.getConfig().dateTimeFormat);
131
136
  if (!isValid(parsedTime) || testTime === "Invalid Date") {
132
137
  return time;
133
138
  }
@@ -141,7 +146,7 @@ export class TimeHelper {
141
146
  return null;
142
147
  }
143
148
  const parsedTime = getTime(time);
144
- const newTime = format(parsedTime, dateTimeFormat);
149
+ const newTime = format(parsedTime, this.getConfig().dateTimeFormat);
145
150
  return isValid(parsedTime) ? newTime : time;
146
151
  };
147
152
  static getTimeFormTime = (time) => {
@@ -149,11 +154,11 @@ export class TimeHelper {
149
154
  return null;
150
155
  }
151
156
  const parsedTime = getTime(time);
152
- const newTime = format(parsedTime, timeFormat);
157
+ const newTime = format(parsedTime, this.getConfig().timeFormat);
153
158
  return isValid(parsedTime) ? newTime : time;
154
159
  };
155
160
  static getCurrentDateTime = () => {
156
- return format(/* @__PURE__ */ new Date(), dateTimeFormat);
161
+ return format(/* @__PURE__ */ new Date(), this.getConfig().dateTimeFormat);
157
162
  };
158
163
  static toDate = (str) => {
159
164
  if (!str) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finema/core",
3
- "version": "2.61.0",
3
+ "version": "3.0.0",
4
4
  "repository": "https://gitlab.finema.co/finema/ui-kit",
5
5
  "license": "MIT",
6
6
  "author": "Finema Dev Core Team",