@avakhula/ui 0.1.20 → 0.1.21

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 (86) hide show
  1. package/dist/index.css +1 -0
  2. package/dist/index.js +13675 -12688
  3. package/dist/index.umd.cjs +92 -84
  4. package/package.json +6 -5
  5. package/src/assets/scss/mixins/dropdown-list-item.scss +3 -3
  6. package/src/assets/scss/mixins/tooltip-position.scss +7 -0
  7. package/src/assets/scss/mixins.scss +2 -2
  8. package/src/assets/scss/style.scss +4 -4
  9. package/src/components/Accordion/Accordion.scss +3 -3
  10. package/src/components/Accordion/Accordion.vue +2 -2
  11. package/src/components/Alert/Alert.vue +1 -1
  12. package/src/components/Alert/alert.scss +2 -2
  13. package/src/components/Avatar/Avatar.vue +2 -2
  14. package/src/components/Badge/Badge.vue +2 -2
  15. package/src/components/Breadcrumbs/Breadcrumbs.vue +7 -2
  16. package/src/components/Breadcrumbs/breadcrumbs.scss +5 -5
  17. package/src/components/Button/Button.vue +2 -2
  18. package/src/components/Button/button.scss +3 -3
  19. package/src/components/Chips/Chips.vue +3 -3
  20. package/src/components/Dropdown/Dropdown.spec.js +0 -0
  21. package/src/components/Dropdown/Dropdown.vue +104 -27
  22. package/src/components/Dropdown/DropdownDivider.vue +1 -1
  23. package/src/components/Dropdown/DropdownItem.vue +1 -1
  24. package/src/components/Dropdown/DropdownList.vue +11 -1
  25. package/src/components/Form/CharactersCount.vue +2 -2
  26. package/src/components/Form/Checkbox/Checkbox.scss +4 -4
  27. package/src/components/Form/Checkbox/Checkbox.vue +1 -1
  28. package/src/components/Form/DatePicker/DatePicker.scss +4 -4
  29. package/src/components/Form/DatePicker/DatePicker.vue +1 -1
  30. package/src/components/Form/FormGroup/FormGroup.vue +2 -2
  31. package/src/components/Form/FormGroup/FormGroupSet.vue +1 -1
  32. package/src/components/Form/Input/Input.vue +7 -4
  33. package/src/components/Form/Input/input.scss +3 -3
  34. package/src/components/Form/Label/Label.vue +2 -2
  35. package/src/components/Form/PhoneInput/PhoneInput.vue +56 -21
  36. package/src/components/Form/PhoneInput/phoneInput.scss +4 -4
  37. package/src/components/Form/Radio/Radio.vue +1 -1
  38. package/src/components/Form/Radio/radio.scss +3 -3
  39. package/src/components/Form/TextEditor/TextEditor.vue +27 -168
  40. package/src/components/Form/TextEditor/Toolbar.vue +723 -0
  41. package/src/components/Form/TextEditor/icons/toolbarIcons.js +8 -0
  42. package/src/components/Form/TextEditor/plugins/imageBlot.js +23 -0
  43. package/src/components/Form/TextEditor/setupTextEditor.js +71 -0
  44. package/src/components/Form/TextEditor/textEditor.scss +9 -357
  45. package/src/components/Form/Textarea/Textarea.spec.js +0 -0
  46. package/src/components/Form/Textarea/Textarea.vue +2 -1
  47. package/src/components/Form/Textarea/textarea.scss +3 -3
  48. package/src/components/Form/Toggle/Toggle.vue +1 -1
  49. package/src/components/Form/Toggle/toggle.scss +3 -3
  50. package/src/components/IconButton/IconButton.scss +2 -2
  51. package/src/components/IconButton/IconButton.vue +6 -4
  52. package/src/components/List.vue +1 -1
  53. package/src/components/Modal/Modal.vue +85 -49
  54. package/src/components/Pagination/Pagination.vue +28 -3
  55. package/src/components/Pagination/pagination.scss +20 -4
  56. package/src/components/Panel/Panel.vue +4 -4
  57. package/src/components/Popover/Popover.vue +7 -2
  58. package/src/components/Popover/popover.scss +3 -3
  59. package/src/components/ProgressBar/ProgressBar.vue +1 -1
  60. package/src/components/ProgressBar/progressBar.scss +1 -1
  61. package/src/components/Sorting/Sorting.vue +1 -1
  62. package/src/components/Sorting/sorting.scss +5 -5
  63. package/src/components/SplitButton/SplitButton.vue +1 -1
  64. package/src/components/SplitButton/SplitButtonItem.vue +1 -1
  65. package/src/components/SplitButton/splitButton.scss +3 -3
  66. package/src/components/StatusIndicator/StatusIndicator.vue +2 -2
  67. package/src/components/Table/Cells/Cell.vue +2 -2
  68. package/src/components/Table/Cells/CheckboxCell.vue +0 -0
  69. package/src/components/Table/Row.vue +1 -1
  70. package/src/components/Table/Table.stories.js +0 -0
  71. package/src/components/Table/Table.vue +0 -0
  72. package/src/components/Tabs/TabDropdown.vue +1 -1
  73. package/src/components/Tabs/Tabs.vue +9 -5
  74. package/src/components/Tabs/tabs.scss +4 -4
  75. package/src/components/TagPill/TagPill.vue +2 -2
  76. package/src/components/ToggleTip/ToggleTip.vue +1 -1
  77. package/src/components/ToggleTip/toggleTip.scss +5 -5
  78. package/src/components/Tooltip/Tooltip.vue +3 -3
  79. package/src/components/TreeSelect/Option.vue +16 -14
  80. package/src/components/TreeSelect/Select.vue +199 -132
  81. package/src/components/TreeSelect/scss/option.scss +6 -6
  82. package/src/components/TreeSelect/scss/select.scss +53 -4
  83. package/src/directives/tooltip/tooltip.js +46 -0
  84. package/src/index.js +6 -1
  85. package/vite.config.js +0 -0
  86. package/dist/style.css +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avakhula/ui",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.umd.cjs",
6
6
  "source": "src/index.js",
@@ -21,10 +21,11 @@
21
21
  "build-storybook": "storybook build"
22
22
  },
23
23
  "dependencies": {
24
+ "@tanstack/vue-virtual": "^3.13.12",
24
25
  "@vueup/vue-quill": "^1.2.0",
25
26
  "mitt": "^3.0.0",
26
27
  "quill-placeholder-module": "^0.3.1",
27
- "vue": "^3.2.45"
28
+ "vue": "3.4.6"
28
29
  },
29
30
  "devDependencies": {
30
31
  "@babel/core": "^7.20.7",
@@ -55,11 +56,11 @@
55
56
  "prettier": "^2.7.1",
56
57
  "react": "^18.2.0",
57
58
  "react-dom": "^18.2.0",
58
- "sass": "^1.57.1",
59
+ "sass": "^1.97.1",
59
60
  "sass-loader": "^13.2.0",
60
61
  "storybook": "^7.1.0",
61
- "vite": "^4.0.0",
62
- "vitest": "^0.28.4",
62
+ "vite": "^6.3.2",
63
+ "vitest": "^1.6.0",
63
64
  "vue-loader": "^16.8.3",
64
65
  "vue-tel-input": "^9.1.4"
65
66
  }
@@ -1,6 +1,6 @@
1
- @import "../variables/colors.scss";
2
- @import "../typography.scss";
3
- @import "../mixins.scss";
1
+ @use "../variables/colors.scss" as *;
2
+ @use "../typography.scss" as *;
3
+ @use "../mixins.scss" as *;
4
4
 
5
5
  @mixin DropdownListItem {
6
6
  .ib-dropdown-item {
@@ -1,3 +1,10 @@
1
+ @use "../variables/colors.scss" as *;
2
+ @use "../variables/shadows.scss" as *;
3
+
4
+ $background: $white;
5
+ $textColor: $neutral-900;
6
+ $shadow: $ib-shadow-3;
7
+
1
8
  @mixin TooltipPosition {
2
9
  &::before {
3
10
  content: "";
@@ -1,4 +1,4 @@
1
- @import "./variables/colors.scss";
1
+ @use "./variables/colors.scss" as *;
2
2
 
3
3
  @mixin outline($offset: -2px, $color: $blue-700) {
4
4
  outline-offset: $offset;
@@ -18,4 +18,4 @@
18
18
  -webkit-box-orient: vertical;
19
19
  -webkit-line-clamp: $lines;
20
20
  overflow: hidden;
21
- }
21
+ }
@@ -1,7 +1,7 @@
1
- @import "./reset.scss";
2
- @import "./mixins.scss";
3
- @import "./variables/colors.scss";
4
- @import "./typography.scss";
1
+ @use "./reset.scss" as *;
2
+ @use "./mixins.scss" as *;
3
+ @use "./variables/colors.scss" as *;
4
+ @use "./typography.scss" as *;
5
5
 
6
6
  body,
7
7
  textarea::placeholder,
@@ -1,5 +1,5 @@
1
- @import "../../assets/scss/variables/colors.scss";
2
- @import "../../assets/scss/mixins.scss";
1
+ @use "../../assets/scss/variables/colors.scss" as *;
2
+ @use "../../assets/scss/mixins.scss" as *;
3
3
 
4
4
 
5
5
  $title-bg: $gray-200;
@@ -79,7 +79,7 @@ $content-bg: $gray-50;
79
79
  overflow: hidden;
80
80
  transition: height 0.3s, padding-top 0.3s, padding-bottom 0.3s;
81
81
  background-color: $content-bg;
82
-
82
+
83
83
  .accordion-content-wrapper {
84
84
  padding: 10px 15px 15px;
85
85
  }
@@ -76,6 +76,8 @@ export default {
76
76
  </script>
77
77
 
78
78
  <style lang="scss" scoped>
79
+ @use "./Accordion.scss" as *;
80
+
79
81
  .expand-enter-active,
80
82
  .expand-leave-active {
81
83
  transition: height 1s ease-in-out;
@@ -86,6 +88,4 @@ export default {
86
88
  .expand-leave-to {
87
89
  height: 0;
88
90
  }
89
-
90
- @import "./Accordion.scss";
91
91
  </style>
@@ -151,5 +151,5 @@ export default {
151
151
  </script>
152
152
 
153
153
  <style lang="scss" scoped>
154
- @import "./alert.scss";
154
+ @use "./alert.scss" as *;
155
155
  </style>
@@ -1,5 +1,5 @@
1
- @import "../../assets/scss/variables/colors.scss";
2
- @import "../../assets/scss//typography.scss";
1
+ @use "../../assets/scss/variables/colors.scss" as *;
2
+ @use "../../assets/scss//typography.scss" as *;
3
3
 
4
4
  $alert-content-color: $neutral-900;
5
5
  $alert-alert-primary-color: $red-800;
@@ -78,8 +78,8 @@ export default {
78
78
  </script>
79
79
 
80
80
  <style scoped lang="scss">
81
- @import "../../assets/scss/typography.scss";
82
- @import "../../assets/scss/variables/colors.scss";
81
+ @use "../../assets/scss/typography.scss" as *;
82
+ @use "../../assets/scss/variables/colors.scss" as *;
83
83
 
84
84
  $avatar-border: $blue-200;
85
85
  .avatar {
@@ -34,8 +34,8 @@ export default {
34
34
  </script>
35
35
 
36
36
  <style lang="scss" scoped>
37
- @import "../../assets/scss/typography.scss";
38
- @import "../../assets/scss/variables/colors.scss";
37
+ @use "../../assets/scss/typography.scss" as *;
38
+ @use "../../assets/scss/variables/colors.scss" as *;
39
39
 
40
40
  $badge-bg: $blue-800;
41
41
  $badge-color: $white;
@@ -26,7 +26,7 @@
26
26
  </router-link>
27
27
  </template>
28
28
 
29
- <p v-if="index === last">
29
+ <p v-if="index === last && item.title" v-overflow-tooltip.bottomCenter="item.title">
30
30
  {{ item.title }}
31
31
  </p>
32
32
 
@@ -70,6 +70,8 @@ import IbDropdownList from "../Dropdown/DropdownList.vue";
70
70
  import IbDropdownItem from "../Dropdown/DropdownItem.vue";
71
71
  import IbTooltip from "../Tooltip/Tooltip.vue";
72
72
 
73
+ import { TextOverflowTooltipDirective as OverflowTooltip } from "../../directives/tooltip/textOverflowTooltip";
74
+
73
75
  export default {
74
76
  name: "IbBreadcrumbs",
75
77
  props: {
@@ -100,9 +102,12 @@ export default {
100
102
  IbDropdownList,
101
103
  IbTooltip,
102
104
  },
105
+ directives: {
106
+ OverflowTooltip,
107
+ },
103
108
  };
104
109
  </script>
105
110
 
106
111
  <style scoped lang="scss">
107
- @import "./breadcrumbs.scss";
112
+ @use "./breadcrumbs.scss" as *;
108
113
  </style>
@@ -1,7 +1,7 @@
1
- @import "../../assets/scss/variables/colors.scss";
2
- @import "../../assets/scss/typography.scss";
3
- @import "../../assets/scss/mixins.scss";
4
- @import "../../assets/scss/reset.scss";
1
+ @use "../../assets/scss/variables/colors.scss" as *;
2
+ @use "../../assets/scss/typography.scss" as *;
3
+ @use "../../assets/scss/mixins.scss" as *;
4
+ @use "../../assets/scss/reset.scss" as *;
5
5
 
6
6
 
7
7
  .breadcrumb {
@@ -74,4 +74,4 @@
74
74
  }
75
75
  }
76
76
  }
77
- }
77
+ }
@@ -166,7 +166,7 @@ export default {
166
166
  if (this.href.length) {
167
167
  attrsList.href = this.href;
168
168
  }
169
-
169
+
170
170
  if(this.to) {
171
171
  attrsList.to = this.to;
172
172
  }
@@ -188,5 +188,5 @@ export default {
188
188
  </script>
189
189
 
190
190
  <style lang="scss">
191
- @import "./button.scss";
191
+ @use "./button.scss" as *;
192
192
  </style>
@@ -1,6 +1,6 @@
1
- @import "../../assets/scss/variables/colors.scss";
2
- @import "../../assets/scss/typography.scss";
3
- @import "../../assets/scss/mixins.scss";
1
+ @use "../../assets/scss/variables/colors.scss" as *;
2
+ @use "../../assets/scss/typography.scss" as *;
3
+ @use "../../assets/scss/mixins.scss" as *;
4
4
 
5
5
  // Primary button colors
6
6
  $primary-btn-background: $blue-800;
@@ -53,9 +53,9 @@ export default {
53
53
  };
54
54
  </script>
55
55
  <style lang="scss" scoped>
56
- @import "../../assets/scss/variables/colors.scss";
57
- @import "../../assets/scss/typography.scss";
58
- @import "../../assets/scss/mixins.scss";
56
+ @use "../../assets/scss/variables/colors.scss" as *;
57
+ @use "../../assets/scss/typography.scss" as *;
58
+ @use "../../assets/scss/mixins.scss" as *;
59
59
 
60
60
  .ib-chips {
61
61
  @include Ib-H4-medium;
File without changes
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="ib-dropdown" v-outside="close">
2
+ <div class="ib-dropdown" v-outside="closeOnOutsideClick">
3
3
  <span
4
4
  class="dropdown-trigger"
5
5
  ref="dropdown"
@@ -21,23 +21,46 @@
21
21
  <slot name="trigger" v-bind:is-opened="isOpenedState"></slot>
22
22
  </span>
23
23
 
24
- <div
25
- ref="body"
26
- :class="'ib-dropdown-menu ' + classes"
27
- v-if="!destroyOnHide || isOpenedState"
28
- v-show="isOpenedState"
24
+ <Teleport
25
+ :to="attachToBody ? 'body' : attachTo"
26
+ v-if="attachToBody || attachTo"
29
27
  >
30
- <div class="dropdown-body" @click="closeOnClickIfRequired">
31
- <slot name="body" v-bind:is-opened-state="isOpenedState"></slot>
32
-
33
- <span class="close" @click="close" v-if="showCloseIcon">
34
- <slot name="close"></slot>
35
- </span>
28
+ <div
29
+ ref="body"
30
+ :class="'ib-dropdown-menu is-teleported ' + classes"
31
+ v-if="!destroyOnHide || isOpenedState"
32
+ v-show="isOpenedState"
33
+ >
34
+ <div class="dropdown-body" @click="closeOnClickIfRequired">
35
+ <slot name="body" v-bind:is-opened-state="isOpenedState"></slot>
36
+ <span class="close" @click="close" v-if="showCloseIcon">
37
+ <slot name="close"></slot>
38
+ </span>
39
+ </div>
40
+ <div class="footer-slot">
41
+ <slot name="footer"></slot>
42
+ </div>
36
43
  </div>
37
- <div class="footer-slot">
38
- <slot name="footer"></slot>
44
+ </Teleport>
45
+
46
+ <template v-else>
47
+ <div
48
+ ref="body"
49
+ :class="'ib-dropdown-menu ' + classes"
50
+ v-if="!destroyOnHide || isOpenedState"
51
+ v-show="isOpenedState"
52
+ >
53
+ <div class="dropdown-body" @click="closeOnClickIfRequired">
54
+ <slot name="body" v-bind:is-opened-state="isOpenedState"></slot>
55
+ <span class="close" @click="close" v-if="showCloseIcon">
56
+ <slot name="close"></slot>
57
+ </span>
58
+ </div>
59
+ <div class="footer-slot">
60
+ <slot name="footer"></slot>
61
+ </div>
39
62
  </div>
40
- </div>
63
+ </template>
41
64
 
42
65
  <div class="before" @click="close">
43
66
  <slot name="before"></slot>
@@ -55,6 +78,7 @@ import {
55
78
  import { EVENT_NAME_CLICK } from "../../constants/events";
56
79
  import { OutsideDirective as Outside } from "../../directives/outside/outside";
57
80
  import { verticalPosition, horizontalPosition } from "./constants";
81
+ import { computePosition, flip, shift, offset } from "@floating-ui/dom";
58
82
 
59
83
  export default {
60
84
  name: "IbDropdown",
@@ -95,6 +119,14 @@ export default {
95
119
  type: Boolean,
96
120
  default: false,
97
121
  },
122
+ attachToBody: {
123
+ type: Boolean,
124
+ default: false,
125
+ },
126
+ attachTo: {
127
+ type: String,
128
+ default: null,
129
+ },
98
130
  },
99
131
  watch: {
100
132
  isOpened(value) {
@@ -122,6 +154,39 @@ export default {
122
154
  };
123
155
  },
124
156
  methods: {
157
+ async updatePosition() {
158
+ const trigger = this.$refs.dropdown;
159
+ const body = this.$refs.body;
160
+
161
+ if (!trigger || !body) return;
162
+
163
+ const placementMap = {
164
+ bottom: { v: "bottom", h: "left" },
165
+ top: { v: "top", h: "left" },
166
+ };
167
+
168
+ const verticalPlacement = this.vertical === "top" ? "top" : "bottom";
169
+ const horizontalAlignment =
170
+ this.horizontal === "right"
171
+ ? "end"
172
+ : this.horizontal === "center"
173
+ ? ""
174
+ : "start";
175
+
176
+ const placement = horizontalAlignment
177
+ ? `${verticalPlacement}-${horizontalAlignment}`
178
+ : verticalPlacement;
179
+
180
+ const { x, y } = await computePosition(trigger, body, {
181
+ placement,
182
+ middleware: [offset(3), flip(), shift({ padding: 8 })],
183
+ });
184
+
185
+ Object.assign(body.style, {
186
+ left: `${x}px`,
187
+ top: `${y}px`,
188
+ });
189
+ },
125
190
  onKeydown(e) {
126
191
  if (e.keyCode === ENTER_KEY_CODE || e.keyCode === SPACE_KEY_CODE) {
127
192
  e.preventDefault();
@@ -147,14 +212,16 @@ export default {
147
212
  }
148
213
  },
149
214
  open() {
150
- if (this.disabled) {
151
- return;
152
- }
153
-
154
- this.isOpenedState = true;
155
- this.$emit("open");
156
- this.$globalEvents.$emit("dropdown:open", this);
157
- },
215
+ if (this.disabled) return;
216
+ this.isOpenedState = true;
217
+ this.$emit('open');
218
+ this.$globalEvents.$emit('dropdown:open', this);
219
+ this.$nextTick(() => {
220
+ if (this.attachToBody || this.attachTo) {
221
+ this.updatePosition();
222
+ }
223
+ });
224
+ },
158
225
  close() {
159
226
  if (this.isOpenedState) {
160
227
  if (this.disabled) {
@@ -164,6 +231,13 @@ export default {
164
231
  this.$emit("close");
165
232
  }
166
233
  },
234
+ closeOnOutsideClick(event) {
235
+ if (this.$refs.body && this.$refs.body.contains(event.target)) {
236
+ return;
237
+ }
238
+
239
+ this.close();
240
+ },
167
241
  debouncedOpen() {
168
242
  this.timeout = setTimeout(() => {
169
243
  this.open();
@@ -179,6 +253,10 @@ export default {
179
253
  }
180
254
  },
181
255
  closeOnEventOutside(e) {
256
+ if (this.$refs.body && this.$refs.body.contains(e.target)) {
257
+ return;
258
+ }
259
+
182
260
  if (!this.$el.contains(e.target)) {
183
261
  this.close();
184
262
  }
@@ -221,8 +299,8 @@ export default {
221
299
  </script>
222
300
 
223
301
  <style scoped lang="scss">
224
- @import "../../assets/scss/variables/colors.scss";
225
- @import "../../assets/scss/variables/shadows.scss";
302
+ @use "../../assets/scss/variables/colors.scss" as *;
303
+ @use "../../assets/scss/variables/shadows.scss" as *;
226
304
 
227
305
  $menu-shadow: $ib-shadow-4;
228
306
  $menu-bg: $white;
@@ -250,7 +328,6 @@ $menu-bg: $white;
250
328
  position: absolute;
251
329
  display: block;
252
330
  background-color: $menu-bg;
253
- min-width: 100%;
254
331
  width: fit-content;
255
332
 
256
333
  .dropdown-body {
@@ -286,7 +363,7 @@ $menu-bg: $white;
286
363
  }
287
364
  </style>
288
365
  <style lang="scss">
289
- @import "../../assets/scss/variables/colors.scss";
366
+ @use "../../assets/scss/variables/colors.scss" as *;
290
367
 
291
368
  .dropdown-trigger {
292
369
  &.active {
@@ -5,7 +5,7 @@
5
5
  <script></script>
6
6
 
7
7
  <style lang="scss" scoped>
8
- @import "../../assets/scss/variables/colors.scss";
8
+ @use "../../assets/scss/variables/colors.scss" as *;
9
9
 
10
10
  .dropdown-divider {
11
11
  height: 1px;
@@ -60,7 +60,7 @@ export default {
60
60
  </script>
61
61
 
62
62
  <style lang="scss" scoped>
63
- @import "../../assets/scss/mixins/dropdown-list-item.scss";
63
+ @use "../../assets/scss/mixins/dropdown-list-item.scss" as *;
64
64
  @include DropdownListItem;
65
65
 
66
66
  .dropdown-item-wrapper {
@@ -6,6 +6,8 @@
6
6
  :isOpened="isOpened"
7
7
  :closeOnClick="closeOnClick"
8
8
  :disabled="disabled"
9
+ :attachToBody="attachToBody"
10
+ :attachTo="attachTo"
9
11
  v-bind="$attrs"
10
12
  ref="dropdown"
11
13
  @all="proxyEvents"
@@ -54,6 +56,14 @@ export default {
54
56
  type: String,
55
57
  default: "",
56
58
  },
59
+ attachToBody: {
60
+ type: Boolean,
61
+ default: false,
62
+ },
63
+ attachTo: {
64
+ type: String,
65
+ default: null,
66
+ },
57
67
  },
58
68
  methods: {
59
69
  proxyEvents(eventInfo) {
@@ -77,7 +87,7 @@ export default {
77
87
  };
78
88
  </script>
79
89
  <style lang="scss">
80
- @import "../../assets/scss/variables/colors.scss";
90
+ @use "../../assets/scss/variables/colors.scss" as *;
81
91
 
82
92
  .dropdown-list-wrapper {
83
93
  .list {
@@ -30,8 +30,8 @@ export default {
30
30
  </script>
31
31
 
32
32
  <style lang="scss" scoped>
33
- @import "../../assets/scss/variables/colors.scss";
34
- @import "../../assets/scss/typography.scss";
33
+ @use "../../assets/scss/variables/colors.scss" as *;
34
+ @use "../../assets/scss/typography.scss" as *;
35
35
 
36
36
  $textarea-character-count-color: $gray-600;
37
37
  $textarea-character-count-limited-color: $red-900;
@@ -1,6 +1,6 @@
1
- @import "../../../assets/scss/variables/colors.scss";
2
- @import "../../../assets/scss/typography.scss";
3
- @import "../../../assets/scss/mixins.scss";
1
+ @use "../../../assets/scss/variables/colors.scss" as *;
2
+ @use "../../../assets/scss/typography.scss" as *;
3
+ @use "../../../assets/scss/mixins.scss" as *;
4
4
 
5
5
  $checkbox-bg-disabled: $gray-100;
6
6
  $checkbox-filed-bg-disabled: $neutral-500;
@@ -45,7 +45,7 @@ $checkbox-bg-indeterminate: $blue-800;
45
45
  align-items: center;
46
46
  cursor: pointer;
47
47
  }
48
-
48
+
49
49
  /* Hide default HTML checkbox */
50
50
  input {
51
51
  display: none;
@@ -171,5 +171,5 @@ export default {
171
171
  </script>
172
172
 
173
173
  <style lang="scss" scoped>
174
- @import "./Checkbox.scss";
174
+ @use "./Checkbox.scss" as *;
175
175
  </style>
@@ -1,7 +1,7 @@
1
- @import "../../../assets/scss/mixins.scss";
2
- @import "../../../assets/scss/typography.scss";
3
- @import "../../../assets/scss/variables/colors.scss";
4
- @import "../../../assets/scss/variables/shadows.scss";
1
+ @use "../../../assets/scss/mixins.scss" as *;
2
+ @use "../../../assets/scss/typography.scss" as *;
3
+ @use "../../../assets/scss/variables/colors.scss" as *;
4
+ @use "../../../assets/scss/variables/shadows.scss" as *;
5
5
 
6
6
  $datepicker-shadow: $ib-shadow-3;
7
7
  $datepicker-bg: $white;
@@ -335,5 +335,5 @@ export default {
335
335
  };
336
336
  </script>
337
337
  <style lang="scss">
338
- @import "./DatePicker.scss";
338
+ @use "./DatePicker.scss" as *;
339
339
  </style>
@@ -22,8 +22,8 @@ export default {
22
22
  </script>
23
23
 
24
24
  <style lang="scss">
25
- @import "../../../assets/scss/typography.scss";
26
- @import "../../../assets/scss/variables/colors.scss";
25
+ @use "../../../assets/scss/typography.scss" as *;
26
+ @use "../../../assets/scss/variables/colors.scss" as *;
27
27
 
28
28
  .ib-form-group {
29
29
  display: flex;
@@ -35,7 +35,7 @@ export default {
35
35
  </script>
36
36
 
37
37
  <style lang="scss">
38
- @import "../../../assets/scss/typography.scss";
38
+ @use "../../../assets/scss/typography.scss" as *;
39
39
  .ib-form-group-set {
40
40
  max-width: 476px;
41
41
  width: fit-content;
@@ -242,6 +242,10 @@ export default {
242
242
  type: Number,
243
243
  default: Infinity,
244
244
  },
245
+ toFixed: {
246
+ type: Number,
247
+ default: 0,
248
+ }
245
249
  },
246
250
  data() {
247
251
  return {
@@ -280,7 +284,7 @@ export default {
280
284
  },
281
285
  decrement() {
282
286
  if (this.actualValue > this.min) {
283
- this.actualValue = +this.actualValue - this.step;
287
+ this.actualValue = (+this.actualValue - +this.step).toFixed(this.toFixed);
284
288
  }
285
289
 
286
290
  this.$emit("update:modelValue", this.actualValue);
@@ -289,8 +293,7 @@ export default {
289
293
  },
290
294
  increment() {
291
295
  if (this.actualValue < this.max) {
292
-
293
- this.actualValue = +this.actualValue + this.step;
296
+ this.actualValue = (+this.actualValue + +this.step).toFixed(this.toFixed);
294
297
  }
295
298
 
296
299
  this.$emit("update:modelValue", this.actualValue);
@@ -380,5 +383,5 @@ export default {
380
383
  </script>
381
384
 
382
385
  <style lang="scss" scoped>
383
- @import "./input.scss";
386
+ @use "./input.scss" as *;
384
387
  </style>
@@ -1,6 +1,6 @@
1
- @import "../../../assets/scss/variables/colors.scss";
2
- @import "../../../assets/scss/typography.scss";
3
- @import "../../../assets/scss/mixins.scss";
1
+ @use "../../../assets/scss/variables/colors.scss" as *;
2
+ @use "../../../assets/scss/typography.scss" as *;
3
+ @use "../../../assets/scss/mixins.scss" as *;
4
4
 
5
5
  $input-bg: $gray-100;
6
6
  $input-color: $neutral-900;
@@ -84,8 +84,8 @@ export default {
84
84
  </script>
85
85
 
86
86
  <style lang="scss" scoped>
87
- @import "../../../assets/scss/typography.scss";
88
- @import "../../../assets/scss/variables/colors.scss";
87
+ @use "../../../assets/scss/typography.scss" as *;
88
+ @use "../../../assets/scss/variables/colors.scss" as *;
89
89
 
90
90
  .ib-label {
91
91
  @include Ib-H4-regular;