@avakhula/ui 0.0.505 → 0.0.510-alpha-spa.1

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 (187) hide show
  1. package/.babelrc.json +0 -0
  2. package/.eslintrc.cjs +0 -0
  3. package/.nvmrc +0 -0
  4. package/.storybook/main.js +0 -0
  5. package/.storybook/preview-head.html +0 -0
  6. package/.storybook/preview.js +0 -0
  7. package/dist/index.css +1 -0
  8. package/dist/index.es.js +22382 -0
  9. package/dist/index.umd.js +238 -0
  10. package/package.json +11 -10
  11. package/src/App.vue +16 -127
  12. package/src/assets/scss/mixins/dropdown-list-item.scss +9 -4
  13. package/src/assets/scss/mixins/tooltip-position.scss +7 -0
  14. package/src/assets/scss/mixins.scss +2 -2
  15. package/src/assets/scss/style.scss +4 -4
  16. package/src/assets/scss/typography.scss +3 -3
  17. package/src/assets/scss/variables/colors.json +0 -0
  18. package/src/assets/scss/variables/colors.scss +0 -0
  19. package/src/assets/scss/variables/shadows.json +0 -0
  20. package/src/assets/scss/variables/shadows.scss +0 -0
  21. package/src/components/Accordion/Accordion.scss +3 -3
  22. package/src/components/Accordion/Accordion.stories.js +0 -0
  23. package/src/components/Accordion/Accordion.vue +2 -2
  24. package/src/components/Accordion/Acordion.spec.js +0 -0
  25. package/src/components/Accordion/readme.mdx +0 -0
  26. package/src/components/Alert/Alert.spec.js +0 -0
  27. package/src/components/Alert/Alert.stories.js +0 -0
  28. package/src/components/Alert/Alert.vue +6 -1
  29. package/src/components/Alert/alert.scss +8 -3
  30. package/src/components/Alert/constants.js +0 -0
  31. package/src/components/Alert/readme.mdx +0 -0
  32. package/src/components/Avatar/Avatar.stories.js +5 -1
  33. package/src/components/Avatar/Avatar.vue +27 -4
  34. package/src/components/Avatar/constants.js +6 -0
  35. package/src/components/Badge/Badge.spec.js +0 -0
  36. package/src/components/Badge/Badge.vue +2 -2
  37. package/src/components/Badge/readme.mdx +0 -0
  38. package/src/components/Breadcrumbs/Breadcrumbs.vue +24 -9
  39. package/src/components/Breadcrumbs/breadcrumbs.scss +5 -5
  40. package/src/components/Breadcrumbs/breadcrumbs.stories.js +0 -0
  41. package/src/components/Button/Button.spec.js +0 -0
  42. package/src/components/Button/Button.vue +20 -4
  43. package/src/components/Button/button.scss +8 -3
  44. package/src/components/Button/readme.mdx +0 -0
  45. package/src/components/ButtonGroup/ButtonGroup.stories.js +0 -0
  46. package/src/components/ButtonGroup/readme.mdx +0 -0
  47. package/src/components/Chips/Chips.stories.js +30 -0
  48. package/src/components/Chips/Chips.vue +125 -0
  49. package/src/components/Dropdown/Dropdown.spec.js +0 -0
  50. package/src/components/Dropdown/Dropdown.stories.js +0 -0
  51. package/src/components/Dropdown/Dropdown.vue +3 -3
  52. package/src/components/Dropdown/DropdownDivider.vue +1 -1
  53. package/src/components/Dropdown/DropdownItem.vue +27 -5
  54. package/src/components/Dropdown/DropdownList.stories.js +0 -0
  55. package/src/components/Dropdown/DropdownList.vue +6 -2
  56. package/src/components/Dropdown/readme.mdx +0 -0
  57. package/src/components/Form/CharactersCount.vue +12 -9
  58. package/src/components/Form/Checkbox/Checkbox.scss +4 -4
  59. package/src/components/Form/Checkbox/Checkbox.stories.js +0 -0
  60. package/src/components/Form/Checkbox/Checkbox.vue +25 -12
  61. package/src/components/Form/Checkbox/readme.mdx +0 -0
  62. package/src/components/Form/CheckboxGroup/CheckboxGroup.stories.js +0 -0
  63. package/src/components/Form/CheckboxGroup/CheckboxGroup.vue +15 -0
  64. package/src/components/Form/CheckboxGroup/readme.mdx +2 -0
  65. package/src/components/Form/DatePicker/DatePicker.scss +356 -265
  66. package/src/components/Form/DatePicker/DatePicker.stories.js +0 -0
  67. package/src/components/Form/DatePicker/DatePicker.vue +73 -18
  68. package/src/components/Form/DatePicker/readme.mdx +0 -0
  69. package/src/components/Form/FormGroup/FormGroup.vue +5 -5
  70. package/src/components/Form/FormGroup/FormGroupSet.vue +1 -1
  71. package/src/components/Form/Input/Input.stories.js +0 -0
  72. package/src/components/Form/Input/Input.vue +120 -14
  73. package/src/components/Form/Input/constants.js +0 -0
  74. package/src/components/Form/Input/input.scss +64 -5
  75. package/src/components/Form/Input/readme.mdx +0 -0
  76. package/src/components/Form/Label/Label.stories.js +0 -0
  77. package/src/components/Form/Label/Label.vue +24 -12
  78. package/src/components/Form/Label/readme.mdx +0 -0
  79. package/src/components/Form/PhoneInput/PhoneInput.stories.js +0 -0
  80. package/src/components/Form/PhoneInput/PhoneInput.vue +77 -28
  81. package/src/components/Form/PhoneInput/phoneInput.scss +42 -10
  82. package/src/components/Form/PhoneInput/readme.mdx +0 -0
  83. package/src/components/Form/Radio/Radio.stories.js +0 -0
  84. package/src/components/Form/Radio/Radio.vue +17 -45
  85. package/src/components/Form/Radio/radio.scss +8 -5
  86. package/src/components/Form/Radio/readme.mdx +0 -0
  87. package/src/components/Form/TextEditor/TextEditor.stories.js +0 -0
  88. package/src/components/Form/TextEditor/TextEditor.vue +92 -138
  89. package/src/components/Form/TextEditor/Toolbar.vue +723 -0
  90. package/src/components/Form/TextEditor/icons/toolbarIcons.js +8 -0
  91. package/src/components/Form/TextEditor/plugins/imageBlot.js +23 -0
  92. package/src/components/Form/TextEditor/readme.mdx +0 -0
  93. package/src/components/Form/TextEditor/setupTextEditor.js +71 -0
  94. package/src/components/Form/TextEditor/textEditor.scss +15 -339
  95. package/src/components/Form/Textarea/Textarea.spec.js +0 -0
  96. package/src/components/Form/Textarea/Textarea.stories.js +0 -0
  97. package/src/components/Form/Textarea/Textarea.vue +28 -10
  98. package/src/components/Form/Textarea/readme.mdx +0 -0
  99. package/src/components/Form/Textarea/textarea.scss +33 -5
  100. package/src/components/Form/Toggle/Toggle.stories.js +0 -0
  101. package/src/components/Form/Toggle/Toggle.vue +1 -1
  102. package/src/components/Form/Toggle/readme.mdx +0 -0
  103. package/src/components/Form/Toggle/toggle.scss +3 -3
  104. package/src/components/IconButton/IconButton.scss +13 -2
  105. package/src/components/IconButton/IconButton.vue +11 -4
  106. package/src/components/IconButton/readme.mdx +0 -0
  107. package/src/components/List.vue +1 -1
  108. package/src/components/Modal/Modal.stories.js +0 -0
  109. package/src/components/Modal/Modal.vue +109 -40
  110. package/src/components/Modal/constants.js +0 -0
  111. package/src/components/Modal/readme.mdx +0 -0
  112. package/src/components/Pagination/LimitSelector.vue +5 -0
  113. package/src/components/Pagination/Pagination.vue +37 -5
  114. package/src/components/Pagination/pagination.scss +20 -4
  115. package/src/components/Panel/Panel.stories.js +0 -0
  116. package/src/components/Panel/Panel.vue +72 -6
  117. package/src/components/Popover/Popover.vue +27 -10
  118. package/src/components/Popover/constants.js +0 -0
  119. package/src/components/Popover/popover.scss +4 -4
  120. package/src/components/Popover/readme.mdx +0 -0
  121. package/src/components/ProgressBar/ProgressBar.vue +1 -1
  122. package/src/components/ProgressBar/constants.js +0 -0
  123. package/src/components/ProgressBar/progressBar.scss +1 -1
  124. package/src/components/ProgressBar/readme.mdx +0 -0
  125. package/src/components/Sorting/Sorting.stories.js +0 -0
  126. package/src/components/Sorting/Sorting.vue +25 -27
  127. package/src/components/Sorting/sorting.scss +5 -5
  128. package/src/components/SplitButton/SplitButton.stories.js +0 -0
  129. package/src/components/SplitButton/SplitButton.vue +52 -9
  130. package/src/components/SplitButton/SplitButtonItem.vue +14 -2
  131. package/src/components/SplitButton/readme.mdx +0 -0
  132. package/src/components/SplitButton/splitButton.scss +3 -3
  133. package/src/components/StatusIndicator/StatusIndicator.stories.js +0 -0
  134. package/src/components/StatusIndicator/StatusIndicator.vue +2 -2
  135. package/src/components/StatusIndicator/constants.js +0 -0
  136. package/src/components/StatusIndicator/icons.js +0 -0
  137. package/src/components/StatusIndicator/readme.mdx +0 -0
  138. package/src/components/Table/Cells/Cell.vue +2 -2
  139. package/src/components/Table/Cells/CheckboxCell.vue +0 -0
  140. package/src/components/Table/Row.vue +1 -1
  141. package/src/components/Table/Table.stories.js +0 -0
  142. package/src/components/Table/Table.vue +0 -0
  143. package/src/components/Tabs/Tab.vue +4 -0
  144. package/src/components/Tabs/TabDropdown.vue +1 -1
  145. package/src/components/Tabs/Tabs.stories.js +0 -0
  146. package/src/components/Tabs/Tabs.vue +21 -6
  147. package/src/components/Tabs/tabs.scss +12 -6
  148. package/src/components/TagPill/TagPill.stories.js +0 -0
  149. package/src/components/TagPill/TagPill.vue +8 -2
  150. package/src/components/TagPill/readme.mdx +0 -0
  151. package/src/components/ToggleTip/ToggleTip.vue +1 -1
  152. package/src/components/ToggleTip/constants.js +0 -0
  153. package/src/components/ToggleTip/readme.mdx +0 -0
  154. package/src/components/ToggleTip/toggleTip.scss +5 -5
  155. package/src/components/Tooltip/Tooltip.vue +4 -4
  156. package/src/components/Tooltip/readme.mdx +0 -0
  157. package/src/components/TreeSelect/Option.vue +59 -25
  158. package/src/components/TreeSelect/Select.stories.js +0 -0
  159. package/src/components/TreeSelect/Select.vue +283 -148
  160. package/src/components/TreeSelect/TreeSelect.stories.js +0 -0
  161. package/src/components/TreeSelect/mixins/InfinityLoaderMixin.js +40 -0
  162. package/src/components/TreeSelect/scss/option.scss +37 -6
  163. package/src/components/TreeSelect/scss/select.scss +97 -6
  164. package/src/constants/keyCodes.js +1 -0
  165. package/src/directives/outside/outside.stories.js +0 -0
  166. package/src/directives/outside/readme.mdx +0 -0
  167. package/src/directives/tooltip/TooltipController.js +2 -0
  168. package/src/directives/tooltip/readme.mdx +0 -0
  169. package/src/directives/tooltip/textOverflowTooltip.js +3 -1
  170. package/src/directives/tooltip/tooltip.js +61 -0
  171. package/src/directives/tooltip/tooltip.stories.js +0 -0
  172. package/src/helpers/debounce.js +23 -0
  173. package/src/helpers/removeEvents.js +0 -0
  174. package/src/helpers/stripHtml.js +4 -0
  175. package/src/index.js +7 -0
  176. package/src/main.js +0 -0
  177. package/src/mixins/expandAnimation.js +0 -0
  178. package/src/scripts/parseScssVariables.js +0 -0
  179. package/src/stories/link.readme.mdx +0 -0
  180. package/src/stories/variables/colors.stories.js +0 -0
  181. package/src/stories/variables/shadows.stories.js +0 -0
  182. package/static/docks/button.pdf +0 -0
  183. package/static/favicon.ico +0 -0
  184. package/vite.config.js +3 -9
  185. package/dist/index.js +0 -20786
  186. package/dist/index.umd.cjs +0 -227
  187. package/dist/style.css +0 -1
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@avakhula/ui",
3
- "version": "0.0.505",
4
- "main": "dist/index.js",
5
- "module": "dist/index.umd.cjs",
3
+ "version": "0.0.510-alpha-spa.01",
4
+ "main": "dist/index.umd.js",
5
+ "module": "dist/index.es.js",
6
6
  "source": "src/index.js",
7
7
  "type": "module",
8
8
  "private": false,
@@ -11,7 +11,7 @@
11
11
  "registry": "https://registry.npmjs.org/"
12
12
  },
13
13
  "scripts": {
14
- "dev": "vite",
14
+ "dev": "vite --port 3006",
15
15
  "build": "vite build",
16
16
  "preview": "vite preview",
17
17
  "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --ignore-path .gitignore",
@@ -21,10 +21,11 @@
21
21
  "build-storybook": "storybook build"
22
22
  },
23
23
  "dependencies": {
24
- "@floating-ui/dom": "^1.5.4",
24
+ "@tanstack/vue-virtual": "^3.13.12",
25
25
  "@vueup/vue-quill": "^1.2.0",
26
26
  "mitt": "^3.0.0",
27
- "vue": "^3.2.45"
27
+ "quill-placeholder-module": "^0.3.1",
28
+ "vue": "3.4.6"
28
29
  },
29
30
  "devDependencies": {
30
31
  "@babel/core": "^7.20.7",
@@ -55,12 +56,12 @@
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
- "vue-tel-input": "^8.1.1"
65
+ "vue-tel-input": "^9.1.4"
65
66
  }
66
67
  }
package/src/App.vue CHANGED
@@ -1,135 +1,24 @@
1
1
  <template>
2
- <ib-select :options="opt">
3
- <template v-slot:triggerContent="{ selectedCount }">
4
- {{ selectedCount }}
5
- </template>
6
- </ib-select>
2
+ <div style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh;">
7
3
 
8
- </template>
4
+ <ib-textarea
5
+ @blur="console.log('test')"
6
+ >
9
7
 
10
- <script>
11
- import IbSelect from "./components/TreeSelect/Select.vue";
12
- const testData1 = [
13
- {
14
- id: "1",
15
- title: "A Education",
16
- is_category: true,
17
- initiallyVisible: true,
18
- visible: true,
19
- isDisabled: false,
20
- checked: true,
21
- isChildrenVisible: true,
22
- },
23
- {
24
- id: "2",
25
- title: "Education 2",
26
- is_category: true,
27
- initiallyVisible: true,
28
- visible: true,
29
- isDisabled: false,
30
- checked: false,
31
- isChildrenVisible: true,
32
- },
33
- {
34
- id: "3",
35
- title: "Education 3",
36
- is_category: true,
37
- initiallyVisible: true,
38
- visible: true,
39
- isDisabled: false,
40
- checked: false,
41
- isChildrenVisible: true,
42
- },
43
- {
44
- id: "4",
45
- title: "Education 4",
46
- is_category: true,
47
- initiallyVisible: true,
48
- visible: true,
49
- isDisabled: false,
50
- checked: false,
51
- isChildrenVisible: true,
52
- },
53
- {
54
- id: "5",
55
- title: "Education 5",
56
- is_category: true,
57
- initiallyVisible: true,
58
- visible: true,
59
- isDisabled: false,
60
- checked: false,
61
- isChildrenVisible: true,
62
- },
8
+ <template #actions>
9
+ <button>test</button>
10
+ </template>
11
+ </ib-textarea>
12
+ </div>
63
13
 
64
- {
65
- id: "6",
66
- title: "Education 6",
67
- is_category: true,
68
- initiallyVisible: true,
69
- visible: true,
70
- isDisabled: false,
71
- checked: false,
72
- isChildrenVisible: true,
73
- },
14
+ </template>
74
15
 
75
- {
76
- id: "7",
77
- title: "Education 7",
78
- is_category: true,
79
- initiallyVisible: true,
80
- visible: true,
81
- isDisabled: false,
82
- checked: false,
83
- isChildrenVisible: true,
84
- },
16
+ <script>
17
+ import IbTextarea from "./components/Form/Textarea/Textarea.vue";
85
18
 
86
- {
87
- id: "8",
88
- title: "Education 8",
89
- is_category: true,
90
- initiallyVisible: true,
91
- visible: true,
92
- isDisabled: false,
93
- checked: false,
94
- isChildrenVisible: true,
95
- },
96
- {
97
- id: "9",
98
- title: "Education 9",
99
- is_category: true,
100
- initiallyVisible: true,
101
- visible: true,
102
- isDisabled: false,
103
- checked: false,
104
- isChildrenVisible: true,
105
- },
106
- {
107
- id: "10",
108
- title: "Education 10",
109
- is_category: true,
110
- initiallyVisible: true,
111
- visible: true,
112
- isDisabled: false,
113
- checked: false,
114
- isChildrenVisible: true,
115
- },
116
- {
117
- id: "11",
118
- title: "Education 11",
119
- is_category: true,
120
- initiallyVisible: true,
121
- visible: true,
122
- isDisabled: false,
123
- checked: false,
124
- isChildrenVisible: true,
125
- },
126
- ];
127
19
  export default {
128
- data() {
129
- return {
130
- opt: testData1,
131
- }
20
+ components: {
21
+ IbTextarea,
132
22
  },
133
- components: {IbSelect}
134
- }
135
- </script>
23
+ };
24
+ </script>
@@ -1,11 +1,11 @@
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 {
7
7
  @include Ib-H4-regular;
8
- padding: 8.5px 15px 13px;
8
+ padding: 8.5px 15px;
9
9
  background-color: transparent;
10
10
  border: none;
11
11
  border-left: 2px solid transparent;
@@ -36,6 +36,11 @@
36
36
  background-color: $gray-100;
37
37
  }
38
38
 
39
+ &:disabled {
40
+ cursor: not-allowed;
41
+ color: $neutral-500;
42
+ }
43
+
39
44
  &:focus {
40
45
  @include focus();
41
46
  }
@@ -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,
@@ -147,9 +147,9 @@
147
147
  }
148
148
 
149
149
  .Ib-P1-medium {
150
- @include Ib-P1-regular;
150
+ @include Ib-P1-medium;
151
151
  }
152
152
 
153
153
  .Ib-P1-regular {
154
- @include Ib-P1-medium;
155
- }
154
+ @include Ib-P1-regular;
155
+ }
File without changes
File without changes
File without changes
File without changes
@@ -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
  }
File without changes
@@ -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>
File without changes
File without changes
File without changes
File without changes
@@ -6,6 +6,7 @@
6
6
  <b v-if="title?.length" class="ib-alert-title">
7
7
  {{ title }}
8
8
  </b>
9
+ <slot name="title"></slot>
9
10
  </span>
10
11
 
11
12
  <span class="text-content">
@@ -54,6 +55,10 @@ export default {
54
55
  type: String,
55
56
  default: "",
56
57
  },
58
+ additionalTitleText: {
59
+ type: String,
60
+ default: "",
61
+ },
57
62
  },
58
63
  mounted() {
59
64
  this.checkHeight();
@@ -146,5 +151,5 @@ export default {
146
151
  </script>
147
152
 
148
153
  <style lang="scss" scoped>
149
- @import "./alert.scss";
154
+ @use "./alert.scss" as *;
150
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;
@@ -82,6 +82,7 @@ $alert-success-secondary-color: $green-50;
82
82
 
83
83
  .text-content {
84
84
  @include Ib-H5-regular;
85
+ margin-left: 3px;
85
86
  }
86
87
 
87
88
  &.large {
@@ -109,6 +110,7 @@ $alert-success-secondary-color: $green-50;
109
110
  margin-bottom: 5px;
110
111
  padding-left: 0!important;
111
112
  word-break: break-word;
113
+ margin-left: 3px;
112
114
  }
113
115
 
114
116
  & + .close-button {
@@ -138,10 +140,13 @@ $alert-success-secondary-color: $green-50;
138
140
  }
139
141
 
140
142
  &-title {
141
- margin-right: 5px;
142
143
  @include Ib-H4-medium;
143
144
  }
144
145
 
146
+ &-additional-text {
147
+ margin-right: 5px;
148
+ }
149
+
145
150
  &-icon {
146
151
  display: inline-block;
147
152
  font-size: 20px;
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  import Avatar from "./Avatar.vue";
2
- import { avatarSizes } from "./constants";
2
+ import { avatarSizes, avatarTypes } from "./constants";
3
3
 
4
4
  export default {
5
5
  title: "Avatar",
@@ -9,6 +9,10 @@ export default {
9
9
  control: { type: "select" },
10
10
  options: Object.values(avatarSizes),
11
11
  },
12
+ type: {
13
+ control: { type: "select" },
14
+ options: Object.values(avatarTypes),
15
+ },
12
16
  },
13
17
  };
14
18
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  <script>
28
28
  import IbIcon from "../Icon.vue";
29
- import { avatarSizes } from "./constants";
29
+ import { avatarSizes, avatarTypes } from "./constants";
30
30
 
31
31
  export default {
32
32
  name: "IbAvatar",
@@ -51,10 +51,14 @@ export default {
51
51
  type: String,
52
52
  default: avatarSizes.M,
53
53
  },
54
+ type: {
55
+ type: String,
56
+ default: avatarTypes.CIRCLE,
57
+ },
54
58
  },
55
59
  computed: {
56
60
  classList() {
57
- const classList = ["avatar", `avatar-size-${this.size}`];
61
+ const classList = ["avatar", `avatar-size-${this.size}`, `avatar-type-${this.type}`];
58
62
  return classList;
59
63
  },
60
64
  validateName() {
@@ -74,8 +78,8 @@ export default {
74
78
  </script>
75
79
 
76
80
  <style scoped lang="scss">
77
- @import "../../assets/scss/typography.scss";
78
- @import "../../assets/scss/variables/colors.scss";
81
+ @use "../../assets/scss/typography.scss" as *;
82
+ @use "../../assets/scss/variables/colors.scss" as *;
79
83
 
80
84
  $avatar-border: $blue-200;
81
85
  .avatar {
@@ -86,15 +90,34 @@ $avatar-border: $blue-200;
86
90
  justify-content: center;
87
91
  object-fit: cover;
88
92
 
93
+ &.avatar-type-circle {
94
+ border-radius: 100%;
95
+ }
96
+
97
+ &.avatar-type-square {
98
+ border-radius: 4px;
99
+ }
100
+
89
101
  &.avatar-size {
90
102
  &-m {
91
103
  width: 34px;
104
+ min-width: 34px;
92
105
  height: 34px;
106
+ min-height: 34px;
93
107
  }
94
108
 
95
109
  &-l {
96
110
  width: 74px;
111
+ min-width: 74px;
97
112
  height: 74px;
113
+ min-height: 74px;
114
+ }
115
+
116
+ &-xl {
117
+ width: 87px;
118
+ min-width: 87px;
119
+ height: 87px;
120
+ min-height: 87px;
98
121
  }
99
122
  }
100
123
 
@@ -1,4 +1,10 @@
1
1
  export const avatarSizes = {
2
2
  M: "m",
3
3
  L: "l",
4
+ XL: "xl",
4
5
  };
6
+
7
+ export const avatarTypes = {
8
+ SQUARE: "square",
9
+ CIRCLE: "circle",
10
+ };
File without changes
@@ -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;
File without changes
@@ -8,15 +8,25 @@
8
8
  v-for="(item, index) in items"
9
9
  :key="index"
10
10
  >
11
- <a
12
- class="ib-link"
13
- :href="item.url"
14
- v-if="(index !== last && index > items.length - 4) || index === 0"
15
- >
16
- {{ item.title }}
17
- </a>
11
+ <template v-if="(index !== last && index > items.length - 4) || index === 0">
12
+ <a
13
+ v-if="item.url"
14
+ class="ib-link"
15
+ :href="item.url"
16
+ >
17
+ {{ item.title }}
18
+ </a>
18
19
 
19
- <p v-if="index === last">
20
+ <router-link
21
+ v-else
22
+ class="ib-link"
23
+ :to="item.to"
24
+ >
25
+ {{ item.title }}
26
+ </router-link>
27
+ </template>
28
+
29
+ <p v-if="index === last && item.title" v-overflow-tooltip.bottomCenter="item.title">
20
30
  {{ item.title }}
21
31
  </p>
22
32
 
@@ -60,6 +70,8 @@ import IbDropdownList from "../Dropdown/DropdownList.vue";
60
70
  import IbDropdownItem from "../Dropdown/DropdownItem.vue";
61
71
  import IbTooltip from "../Tooltip/Tooltip.vue";
62
72
 
73
+ import { TextOverflowTooltipDirective as OverflowTooltip } from "../../directives/tooltip/textOverflowTooltip";
74
+
63
75
  export default {
64
76
  name: "IbBreadcrumbs",
65
77
  props: {
@@ -90,9 +102,12 @@ export default {
90
102
  IbDropdownList,
91
103
  IbTooltip,
92
104
  },
105
+ directives: {
106
+ OverflowTooltip,
107
+ },
93
108
  };
94
109
  </script>
95
110
 
96
111
  <style scoped lang="scss">
97
- @import "./breadcrumbs.scss";
112
+ @use "./breadcrumbs.scss" as *;
98
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
+ }
File without changes
File without changes
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <component
3
- :is="href.length ? 'a' : 'button'"
3
+ :is="component"
4
+ v-bind="attrs"
4
5
  @click="onClick($event)"
5
6
  @mouseenter="onMouseenter"
6
7
  @mouseleave="onMouseleave"
7
- v-bind="attrs"
8
8
  >
9
9
  <slot name="icon"></slot>
10
10
  <slot></slot>
@@ -61,6 +61,9 @@ export default {
61
61
  type: String,
62
62
  default: "",
63
63
  },
64
+ to: {
65
+ type: [String, Object],
66
+ },
64
67
  linkMethod: {
65
68
  type: String,
66
69
  default: "get",
@@ -123,6 +126,15 @@ export default {
123
126
  },
124
127
  },
125
128
  computed: {
129
+ component() {
130
+ if (this.href.length) {
131
+ return "a";
132
+ } else if (this.to) {
133
+ return "router-link";
134
+ } else {
135
+ return "button";
136
+ }
137
+ },
126
138
  classes() {
127
139
  const classList = ["ib-button"];
128
140
  classList.push(`ib-btn-${this.kind}`);
@@ -135,7 +147,7 @@ export default {
135
147
  classList.push("ib-btn-block");
136
148
  }
137
149
 
138
- if (this.href.length) {
150
+ if (this.href.length || this.to) {
139
151
  classList.push("ib-btn-link");
140
152
  }
141
153
 
@@ -155,6 +167,10 @@ export default {
155
167
  attrsList.href = this.href;
156
168
  }
157
169
 
170
+ if(this.to) {
171
+ attrsList.to = this.to;
172
+ }
173
+
158
174
  return attrsList;
159
175
  },
160
176
  hasIcon() {
@@ -172,5 +188,5 @@ export default {
172
188
  </script>
173
189
 
174
190
  <style lang="scss">
175
- @import "./button.scss";
191
+ @use "./button.scss" as *;
176
192
  </style>