@avakhula/ui 0.1.5 → 0.1.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avakhula/ui",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.umd.cjs",
6
6
  "source": "src/index.js",
package/src/App.vue CHANGED
@@ -1,36 +1,135 @@
1
1
  <template>
2
- <div class="page">
2
+ <ib-select :options="opt">
3
+ <template v-slot:triggerContent="{ selectedCount }">
4
+ {{ selectedCount }} test hello
5
+ </template>
6
+ </ib-select>
3
7
 
4
- <sorting view="table-sorting" toggle-tip-title="hello" :table-name="'table'" :title="'test'">
5
-
6
- <!-- <template #toggleTipBody>
7
- <p>
8
- test
9
- </p>
10
- </template>
8
+ </template>
11
9
 
12
- <template #toggleTipButtons>
13
- <p>
14
- test
15
- </p>
16
- </template> -->
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
+ },
17
63
 
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
+ },
18
74
 
19
- </sorting>
20
- </div>
21
- </template>
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
+ },
22
85
 
23
- <script>
24
- import Sorting from './components/Sorting/Sorting.vue';
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
+ ];
25
127
  export default {
26
- components: {
27
- Sorting
28
- }
29
- }
30
- </script>
31
-
32
- <style lang="scss">
33
- .page {
34
- padding: 200px;
128
+ data() {
129
+ return {
130
+ opt: testData1,
131
+ }
132
+ },
133
+ components: {IbSelect}
35
134
  }
36
- </style>
135
+ </script>
@@ -95,6 +95,7 @@ $alert-success-secondary-color: $green-50;
95
95
  margin-top: 5px;
96
96
  margin-bottom: 5px;
97
97
  padding-left: 0;
98
+ word-break: break-word;
98
99
  }
99
100
  }
100
101
 
@@ -107,6 +108,7 @@ $alert-success-secondary-color: $green-50;
107
108
  @include Ib-P1-regular;
108
109
  margin-bottom: 5px;
109
110
  padding-left: 0!important;
111
+ word-break: break-word;
110
112
  }
111
113
 
112
114
  & + .close-button {
@@ -5,13 +5,13 @@
5
5
  $checkbox-bg-disabled: $gray-100;
6
6
  $checkbox-filed-bg-disabled: $neutral-500;
7
7
  $checkbox-border-disabled: $neutral-500;
8
- $checkbox-border: $gray-500;
8
+ $checkbox-border: $gray-600;
9
9
  $checkbox-bg: transparent;
10
10
  $checkbox-checkmark: $neutral-900;
11
11
  $checkbox-border-hover: $blue-300;
12
12
  $checkbox-bg-hover: $blue-100;
13
13
  $checkbox-border-active: transparent;
14
- $checkbox-bg-active: $blue-300;
14
+ $checkbox-bg-active: $blue-200;
15
15
  $checkbox-text-color-disabled: $neutral-500;
16
16
  $checkbox-bg-error: transparent;
17
17
  $checkbox-border-error: $red-800;
@@ -11,7 +11,7 @@ $radio-bg-hover: $blue-100;
11
11
  $radio-bg-active: $blue-200;
12
12
  $radio-bg-disabled: $gray-100;
13
13
  $radio-bg-error: transparent;
14
- $radio-border: $gray-500;
14
+ $radio-border: $gray-600;
15
15
  $radio-border-hover: $blue-300;
16
16
  $radio-border-active: $blue-200;
17
17
  $radio-border-disabled: $neutral-500;
@@ -11,7 +11,7 @@
11
11
  <div>
12
12
  <button
13
13
  class="sorting-label"
14
- v-tooltip:[tooltipPosition]="tooltipContent"
14
+ v-tooltip:[sortingTooltipPosition]="sortingTooltipContent"
15
15
  :class="{
16
16
  'sorting-label-active': isOpenToggleTip && hasToggleTip,
17
17
  'has-action': tooltipText?.length || hasToggleTip
@@ -161,6 +161,20 @@ export default {
161
161
  }
162
162
  return null;
163
163
  },
164
+ sortingTooltipPosition() {
165
+ if (this.hasToggleTip) {
166
+ return 'bottomCenter'
167
+ }
168
+
169
+ return this.tooltipPosition;
170
+ },
171
+ sortingTooltipContent() {
172
+ if (this.hasToggleTip) {
173
+ return lang('click_to_view_details', this.langComponents?.COMPONENT_SYSTEM);
174
+ }
175
+
176
+ return this.tooltipContent;
177
+ },
164
178
  tooltipIconText() {
165
179
  if (this.currentTypeSort === this.sortingTypes.TYPE_ASC) {
166
180
  return lang("sort_descending", this.langComponents?.COMPONENT_SELECT);
@@ -3,7 +3,12 @@
3
3
  {{ errorMessage }}
4
4
  </ib-alert>
5
5
 
6
- <div class="tree-select" :class="classList">
6
+ <div
7
+ class="tree-select"
8
+ :class="{
9
+ ...classList, 'tree-select-custom-trigger-content': hasTriggerContent
10
+ }"
11
+ >
7
12
  <ib-dropdown
8
13
  :disabled="isLoading"
9
14
  :is-resizable="isResizable"
@@ -30,40 +35,49 @@
30
35
  :aria-activedescendant="focusedOptionId"
31
36
  :class="{
32
37
  'tree-choice-opened': isOpened,
33
- 'has-clear-button': !showClearButton,
38
+ 'has-clear-button': showClearButton,
34
39
  'tree-choice-error': errorMessage,
35
40
  }"
36
41
  >
37
- <template v-if="htmlOptionTitle">
38
- <span
39
- :class="{ placeholder: !selectStatus }"
40
- v-html="selectStatus || placeholder"
41
- ></span>
42
+
43
+ <template v-if="hasTriggerContent">
44
+ <slot v-bind:selected-count="selectedKeys.length" name="triggerContent"></slot>
42
45
  </template>
46
+
43
47
  <template v-else>
44
- <span :class="{ placeholder: !selectStatus }">
45
- {{ selectStatus || placeholder }}
46
- </span>
48
+ <template v-if="htmlOptionTitle">
49
+ <span
50
+ :class="{ placeholder: !selectStatus }"
51
+ v-html="selectStatus || placeholder"
52
+ ></span>
53
+ </template>
54
+ <template v-else>
55
+ <span :class="{ placeholder: !selectStatus }">
56
+ {{ selectStatus || placeholder }}
57
+ </span>
58
+ </template>
47
59
  </template>
48
- </div>
49
- <ib-icon-button
50
- v-if="showClearButton"
51
- kind="ghost"
52
- class="button-clear"
53
- @click.prevent="clearValue"
54
- @keypress.enter.stop.prevent
55
- @keydown.enter.stop.prevent
56
- @keyup.enter.prevent="clearValue"
57
- :help-text="clearButtonMessage"
58
- v-show="Object.keys(selected).length"
59
- >
60
- <ib-icon name="close-outline"></ib-icon>
61
- </ib-icon-button>
62
60
 
63
- <ib-icon
64
- :name="isOpened ? 'chevron-up-outline' : 'chevron-down-outline'"
65
- :classes="'tree-select-caret'"
66
- />
61
+ <ib-icon-button
62
+ v-if="showClearButton"
63
+ kind="ghost"
64
+ class="button-clear"
65
+ @click.prevent="clearValue"
66
+ @keypress.enter.stop.prevent
67
+ @keydown.enter.stop.prevent
68
+ @keyup.enter.prevent="clearValue"
69
+ :help-text="clearButtonMessage"
70
+ v-show="Object.keys(selected).length"
71
+ >
72
+ <ib-icon name="close-outline"></ib-icon>
73
+ </ib-icon-button>
74
+
75
+ <ib-icon
76
+ :name="isOpened ? 'chevron-up-outline' : 'chevron-down-outline'"
77
+ :classes="'tree-select-caret'"
78
+ />
79
+ </div>
80
+
67
81
  </template>
68
82
 
69
83
  <template v-slot:body>
@@ -930,6 +944,9 @@ export default {
930
944
  hasTrigger() {
931
945
  return !!this.$slots.trigger;
932
946
  },
947
+ hasTriggerContent() {
948
+ return !!this.$slots.triggerContent;
949
+ },
933
950
  hasEmptyMessage() {
934
951
  return !!this.$slots.emptyMessage;
935
952
  },
@@ -27,6 +27,10 @@ $tree-search-border-color: $gray-600;
27
27
  .tree-select {
28
28
  width: 100%;
29
29
 
30
+ &.tree-select-custom-trigger-content {
31
+ width: fit-content;
32
+ }
33
+
30
34
  .ib-dropdown {
31
35
  width: 100%;
32
36
  }
@@ -51,6 +55,7 @@ $tree-search-border-color: $gray-600;
51
55
  display: flex;
52
56
  align-items: center;
53
57
  justify-content: center;
58
+ font-size: 16px;
54
59
  }
55
60
 
56
61
  &:hover {
@@ -77,12 +82,16 @@ $tree-search-border-color: $gray-600;
77
82
  justify-content: space-between;
78
83
  overflow: hidden;
79
84
  position: relative;
80
- padding-right: 40px;
85
+ padding-right: 30px;
81
86
  border-bottom: 1px solid $choice-border-color;
82
87
  transition: background-color 0.3s, border-color 0.3s, border-radius 0.3s;
83
88
 
84
89
  &.has-clear-button {
85
- padding-right: 30px;
90
+ padding-right: 60px;
91
+ }
92
+
93
+ &.tree-choice-custom-content {
94
+ width: fit-content;
86
95
  }
87
96
 
88
97
  span {