@3squared/forge-ui-3 0.13.1 → 0.14.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.
@@ -9,6 +9,7 @@ export interface ForgeTableProps extends DataTableProps {
9
9
  stickyHeader?: boolean;
10
10
  severity?: Severity;
11
11
  clearAll?: Function;
12
+ emptyMessage?: string;
12
13
  }
13
14
  declare function __VLS_template(): Partial<Record<NonNullable<keyof DataTableSlots>, (_: {}) => any>> & {
14
15
  "above-table"?(_: {}): any;
@@ -44,7 +44,11 @@ declare const _default: {
44
44
  clearicon: string;
45
45
  loadingIcon: string;
46
46
  itemGroupLabel: string;
47
- input: string;
47
+ input: ({ instance }: DropdownPassThroughMethodOptions<any>) => {
48
+ class: (string | {
49
+ 'filter-placeholder': boolean;
50
+ })[];
51
+ };
48
52
  };
49
53
  };
50
54
  export default _default;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@3squared/forge-ui-3",
3
3
  "repository": "https://github.com/3Squared/ForgeUI-3",
4
4
  "description": "ForgeUI 3 is Vue 3 UI Library which combines a variety of popular packages to create a consistent UI for your application.",
5
- "version": "0.13.1",
5
+ "version": "0.14.0",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
8
  "contributors": [
@@ -41,24 +41,24 @@
41
41
  "yup": "^1.4.0"
42
42
  },
43
43
  "devDependencies": {
44
- "@cypress/code-coverage": "3.12.45",
45
- "@vitejs/plugin-vue": "5.1.2",
44
+ "@cypress/code-coverage": "3.12.46",
45
+ "@vitejs/plugin-vue": "5.1.3",
46
46
  "@vitest/coverage-v8": "1.6.0",
47
47
  "@vitest/ui": "1.6.0",
48
- "cypress": "13.13.3",
48
+ "cypress": "13.14.1",
49
49
  "cypress-real-events": "1.13.0",
50
50
  "sass": "1.77.8",
51
51
  "typescript": "5.5.4",
52
52
  "unplugin-vue-components": "0.27.4",
53
53
  "rollup-plugin-visualizer": "5.12.0",
54
- "vite": "5.4.1",
54
+ "vite": "5.4.2",
55
55
  "vite-bundle-visualizer": "1.2.1",
56
56
  "vite-plugin-istanbul": "6.0.2",
57
57
  "vitest": "1.6.0",
58
58
  "vite-plugin-dts": "3.9.1"
59
59
  },
60
60
  "optionalDependencies": {
61
- "@rollup/rollup-linux-x64-gnu": "4.20.0"
61
+ "@rollup/rollup-linux-x64-gnu": "4.21.2"
62
62
  },
63
63
  "nyc": {
64
64
  "all": true,
@@ -1,289 +1,82 @@
1
- @import 'vue-multiselect/dist/vue-multiselect.css';
2
-
3
- .multiselect {
4
- cursor: pointer;
5
- box-sizing: content-box;
6
- display: block;
7
- position: relative;
8
- width: 100%;
9
- min-height: 31px !important;
10
- text-align: left;
11
- color: #35495e;
12
-
13
- &.is-invalid {
14
-
15
- .multiselect__select {
16
- right: 25px;
17
- z-index: 10;
18
- }
19
-
20
- .multiselect__clear-icon {
21
- right: 50px;
22
- z-index: 10;
23
- }
24
-
25
- .multiselect__tags,
26
- .multiselect__tags:hover,
27
- &:not(.multiselect--disabled):not(.multiselect--active) .multiselect__tags:hover {
28
- @extend .is-invalid;
29
- @extend .form-control;
30
- }
31
- }
32
- }
33
-
34
- .multiselect,
35
- .multiselect__input,
36
- .multiselect__single {
37
- font-family: inherit;
38
- font-size: 14px !important;
39
- font-weight: 400;
40
- touch-action: manipulation;
41
- }
42
-
43
- .multiselect__input:hover,
44
- .multiselect__single:hover {
45
- font-size: 14px;
46
- border-color: $input-border-color;
47
- }
48
-
49
- .multiselect__input:focus,
50
- .multiselect__single:focus {
51
- font-size: 14px;
52
- border-color: $input-border-color;
53
- outline: none;
54
- }
55
-
56
- .multiselect__input,
57
- .multiselect__single {
58
- position: relative;
59
- display: inline-block;
60
- min-height: 20px;
61
- line-height: 21px;
62
- border: none;
63
- border-radius: 5px;
64
- background: #fff;
65
- padding: 0 0 0 5px;
66
- width: calc(100%);
67
- transition: border 0.1s ease;
68
- box-sizing: border-box;
69
- margin-top: 3px !important;
70
- margin-bottom: 3px !important;
71
- vertical-align: top;
72
- }
73
-
74
- .multiselect--left .multiselect__content-wrapper {
75
- right: 0;
76
- }
77
-
78
- .multiselect--showClearSelection .multiselect__tags {
79
- padding: 2px 35px 0 2px !important;
80
- }
81
-
82
1
  @each $color, $value in $theme-colors {
83
2
  .forge-multiselect-#{$color} {
84
- .multiselect,
3
+ @extend .form-control;
4
+ display: flex !important;
5
+ position: relative;
6
+ cursor: pointer;
7
+
8
+ .multiselect__caret {
9
+ order: 3;
10
+ margin: auto 0 auto auto;
11
+
12
+ & > .multiselect__arrow.open {
13
+ transform: rotate(180deg);
14
+ }
15
+
16
+ & > .multiselect__clear:hover {
17
+ color: map-get($base-colors, "danger") !important;
18
+ }
19
+ }
20
+
85
21
  .multiselect__input,
86
22
  .multiselect__single {
87
- font-family: inherit;
88
- font-size: 14px !important;
89
- font-weight: 400;
90
- touch-action: manipulation;
91
- margin: 0 !important;
23
+ border: none;
24
+ outline: none;
92
25
  }
93
26
 
94
27
  .multiselect__placeholder {
95
- color: #000000;
96
- display: inline-block;
97
- margin-bottom: 0;
98
- padding-left: 5px;
99
- padding-top: 0;
100
- font-weight: 400;
101
- }
102
-
103
- .multiselect__select {
104
- line-height: 16px;
105
- display: block;
106
- position: absolute;
107
- box-sizing: border-box;
108
- width: 16px;
109
- height: 16px;
110
- right: 8px;
111
- top: 28%;
112
- padding: unset;
113
- margin: 0;
114
- margin-top: auto;
115
- margin-bottom: auto;
116
- text-decoration: none;
117
- text-align: center;
118
- cursor: pointer;
119
- transition: transform 0.2s ease;
120
- }
121
-
122
- .multiselect__clear-icon {
123
- position: absolute;
124
- right: 26px;
125
- top: 25%;
126
- cursor: pointer;
127
- transition: transform 0.2s ease;
128
- }
129
-
130
- .multiselect__clear-icon:focus,
131
- .multiselect__clear-icon:hover {
132
- color: #ff0000;
28
+ @extend .filter-placeholder;
133
29
  }
134
30
 
135
- .multiselect__tags {
136
- min-height: 31px;
137
- display: block;
138
- padding: 3px 26px 3px 3px;
139
- border-radius: 5px;
140
- border: 1px solid $input-border-color;
141
- background: #fff;
31
+ .multiselect__content {
32
+ display: inline-block;
33
+ width: 100%;
142
34
  }
143
35
 
144
36
  .multiselect__content-wrapper {
37
+ @extend .rounded;
145
38
  position: absolute;
146
- display: block;
147
- background: #fff;
148
- width: unset !important;
149
- min-width: 100%;
150
- font-weight: initial;
151
- min-height: unset;
152
- overflow: auto;
39
+ background: white;
153
40
  border: $input-border-width solid $input-border-color;
154
- z-index: 50;
155
- -webkit-overflow-scrolling: touch;
41
+ width: 100%;
42
+ left: 0;
43
+ top: 100%;
44
+
45
+ & > ul {
46
+ list-style: none;
47
+ padding: 0;
48
+ margin: 0;
49
+ }
50
+
51
+ & > .multiselect--left {
52
+ right: 0;
53
+ }
156
54
  }
157
55
 
158
- .multiselect__tag-icon {
159
- position: unset;
160
- margin-left: 8px;
161
- margin-right: 4px;
162
- }
163
-
164
56
  .multiselect__tag {
165
57
  @if($color == "brand") {
166
58
  background: map-get($subtle-colors, "brand-shade-1");
167
59
  } @else {
168
60
  background: map-get($subtle-colors, $color + "-subtle");
169
61
  }
170
- padding: 4px 3px 4px 10px;
62
+ padding: 0 3px 0 10px;
171
63
  border-radius: 21px;
172
64
  border: 1px solid $value;
173
65
  color: $value;
174
- margin: 2.5px;
66
+ margin-right: 5px;
175
67
  }
176
-
68
+
177
69
  .multiselect__option {
178
70
  display: block;
179
- padding: 0px;
180
- min-height: 26px;
181
- line-height: 21px;
182
- text-decoration: none;
183
- text-transform: none;
184
- vertical-align: middle;
185
- position: relative;
186
71
  cursor: pointer;
187
- white-space: nowrap;
188
- }
189
-
190
- .multiselect__option:after {
191
- top: 0;
192
- right: 0;
193
- position: absolute;
194
- line-height: 21px;
195
- padding-right: 12px;
196
- padding-left: 20px;
197
- font-size: 14px;
198
- }
199
-
200
- .multiselect__option--selected {
201
- background: white;
202
- color: black;
203
- font-weight: normal;
204
- }
205
-
206
- .multiselect__option--selected:after {
207
- content: "";
208
- color: silver;
209
- }
210
-
211
- .multiselect__option--selected.multiselect__option--highlight {
212
- background: lightgray;
213
- color: black;
214
- }
215
-
216
- .multiselect__option--selected.multiselect__option--highlight:after {
217
- background: lightgray;
218
- content: "";
219
- color: #fff;
220
72
  }
221
73
 
222
74
  .multiselect__option--highlight {
223
75
  background: lightgray;
224
- outline: none;
225
- color: black;
226
- }
227
-
228
- .multiselect__option--highlight:after {
229
- content: "";
230
- background: gray;
231
- color: white;
232
- }
233
-
234
- .multiselect__option--checkbox {
235
- accent-color: $value;
236
- }
237
-
238
- .multiselect__tag-icon:focus,
239
- .multiselect__tag-icon:hover {
240
- background: none;
241
- }
242
-
243
- .multiselect__tag-icon:focus:after,
244
- .multiselect__tag-icon:hover:after {
245
- color: map-get($theme-colors, 'danger') !important;
246
- }
247
-
248
- .multiselect__clear-icon {
249
- cursor: pointer;
250
- position: absolute;
251
- right: 20px;
252
- top: 1px;
253
- bottom: 0;
254
- font-weight: 400;
255
- font-style: initial;
256
- width: 22px;
257
- text-align: center;
258
- line-height: 21px;
259
- transition: all 0.2s ease;
260
- border-radius: 0;
261
- z-index: 1;
262
- }
263
-
264
- .multiselect__clear-icon:after {
265
- content: "×";
266
- color: $gray-800;
267
- font-size: 14px;
268
- }
269
-
270
- .multiselect__clear-icon:focus,
271
- .multiselect__clear-icon:hover {
272
- background: none;
273
- }
274
-
275
- .multiselect__clear-icon:focus:after,
276
- .multiselect__clear-icon:hover:after {
277
- color: map-get($theme-colors, 'danger') !important;
278
76
  }
279
77
  }
280
78
  }
281
79
 
282
- .filter-header-multiselect__check-icon {
283
- top: 1px;
284
- left: 1px;
285
- }
286
-
287
80
  [data-pc-section="box"] {
288
81
  display: none
289
82
  }