@dataloop-ai/components 0.18.16 → 0.18.18

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": "@dataloop-ai/components",
3
- "version": "0.18.16",
3
+ "version": "0.18.18",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./models": "./models.ts",
@@ -77,7 +77,7 @@ import { colorNames } from '../../../utils/css-color-names'
77
77
  import { useSizeObserver } from '../../../hooks/use-size-observer'
78
78
  import { v4 } from 'uuid'
79
79
  import { ButtonColors } from './types'
80
- import { transformOptions } from '../../shared/types'
80
+ import { DlTransformOptions } from '../../shared/types'
81
81
  import { stringStyleToRecord } from '../../../utils'
82
82
  import { textTransform } from '../../../utils/string'
83
83
  import { isString } from 'lodash'
@@ -153,7 +153,7 @@ export default defineComponent({
153
153
  type: String,
154
154
  default: 'default',
155
155
  validator: (value: string): boolean =>
156
- transformOptions.includes(value)
156
+ DlTransformOptions.includes(value)
157
157
  },
158
158
  /**
159
159
  * Doesn't allow the button's text to be wrapped along multiple rows
@@ -63,7 +63,7 @@ import {
63
63
  setRemoveIconWidth
64
64
  } from './utils'
65
65
  import { v4 } from 'uuid'
66
- import { transformOptions } from '../../shared/types'
66
+ import { DlTransformOptions } from '../../shared/types'
67
67
 
68
68
  export default defineComponent({
69
69
  name: 'DlChip',
@@ -87,7 +87,7 @@ export default defineComponent({
87
87
  type: String,
88
88
  default: 'default',
89
89
  validator: (value: string): boolean =>
90
- transformOptions.includes(value)
90
+ DlTransformOptions.includes(value)
91
91
  },
92
92
  overflow: { type: Boolean, default: false },
93
93
  fit: { type: Boolean, default: false }
@@ -188,7 +188,7 @@ import {
188
188
  Ref
189
189
  } from 'vue-demi'
190
190
  import { v4 } from 'uuid'
191
- import { transformOptions } from '../../shared/types'
191
+ import { DlTransformOptions } from '../../shared/types'
192
192
 
193
193
  export default defineComponent({
194
194
  name: 'DlDropdownButton',
@@ -241,7 +241,7 @@ export default defineComponent({
241
241
  type: String,
242
242
  default: 'default',
243
243
  validator: (value: string): boolean =>
244
- transformOptions.includes(value)
244
+ DlTransformOptions.includes(value)
245
245
  },
246
246
  outlined: Boolean,
247
247
  padding: { type: String, default: '5px' },
@@ -4,203 +4,238 @@
4
4
  :style="cssVars"
5
5
  :class="rootContainerClasses"
6
6
  >
7
- <div :class="wrapperClasses">
7
+ <div class="row">
8
8
  <div
9
- v-show="!!title.length || !!tooltip.length"
10
- :class="{
11
- 'dl-text-input__title-container': true,
12
- 'dl-text-input__title-container--s': isSmall
13
- }"
9
+ :class="`${
10
+ isSmall ? 'col' : 'row full-width full-height'
11
+ } top`"
12
+ :style="`${isSmall ? 'flex-grow: 0; max-width: 25%;' : ''}`"
14
13
  >
15
- <label
16
- v-show="!!title.length"
17
- class="dl-text-input__title"
18
- >
19
- {{ title
20
- }}<span
21
- v-show="required"
22
- :class="asteriskClasses"
23
- > *</span>
24
- {{ !required && optional ? ' (Optional)' : null }}
25
- </label>
26
- <span v-show="!!tooltip.length">
27
- <dl-icon
28
- class="dl-text-input__tooltip-icon"
29
- icon="icon-dl-info"
30
- size="12px"
31
- />
32
- <dl-tooltip>
33
- {{ tooltip }}
34
- </dl-tooltip>
35
- </span>
36
- </div>
37
- <div
38
- v-if="!!topMessage.length && !isSmall"
39
- class="break"
40
- />
41
- <div
42
- v-show="!!topMessage.length"
43
- :class="{
44
- 'dl-text-input__top-message-container': true,
45
- 'dl-text-input__top-message-container--s': isSmall
46
- }"
47
- >
48
- <dl-info-error-message
49
- v-show="!!topMessage.length"
50
- position="above"
51
- :value="topMessage"
52
- />
53
- </div>
54
- <div class="dl-text-input__input-wrapper">
55
- <input
56
- ref="input"
57
- :value="modelValue"
58
- :class="inputClasses"
59
- :placeholder="placeholder"
60
- :maxlength="maxLength"
61
- :type="showPass ? 'text' : type"
62
- :disabled="disabled"
63
- :readonly="readonly"
64
- @input="onChange"
65
- @focus="onFocus"
66
- @blur="debouncedBlur()"
67
- @keyup.enter="onKeyPress"
68
- >
69
- <div
70
- v-show="hasPrepend"
71
- :class="[
72
- ...adornmentClasses,
73
- 'dl-text-input__adornment-container--pos-left'
74
- ]"
75
- >
76
- <slot name="prepend" />
77
- </div>
78
14
  <div
79
- v-show="hasAppend"
80
- :class="[
81
- ...adornmentClasses,
82
- 'dl-text-input__adornment-container--pos-right'
83
- ]"
15
+ v-if="!!title.length || !!tooltip.length"
16
+ :class="{
17
+ 'dl-text-input__title-container': true,
18
+ 'dl-text-input__title-container--s': isSmall
19
+ }"
84
20
  >
85
- <slot name="append" />
86
- <span v-show="showClearButton">
87
- <dl-button
88
- ref="input-clear-button"
89
- icon="icon-dl-close"
90
- size="s"
91
- text-color="dl-color-darker"
92
- flat
93
- fluid
94
- @click="onClear"
95
- />
96
- <dl-tooltip v-if="clearButtonTooltip">
97
- Remove text
98
- </dl-tooltip>
99
- </span>
100
- <span v-show="showShowPassButton">
101
- <dl-button
102
- ref="input-show-pass-button"
103
- :icon="passShowIcon"
104
- size="s"
105
- text-color="dl-color-darker"
106
- flat
107
- fluid
108
- @click="onPassShowClick"
21
+ <label
22
+ v-if="!!title.length"
23
+ class="dl-text-input__title"
24
+ :style="`${isSmall ? 'width: 90%' : 'width: 100%'}`"
25
+ >
26
+ <dl-ellipsis>
27
+ {{ title
28
+ }}<span
29
+ v-if="required"
30
+ :class="asteriskClasses"
31
+ >
32
+ *</span>
33
+ {{ !required && optional ? ' (Optional)' : null }}
34
+ </dl-ellipsis>
35
+ </label>
36
+ <span v-if="!!tooltip.length">
37
+ <dl-icon
38
+ class="dl-text-input__tooltip-icon"
39
+ icon="icon-dl-info"
40
+ size="12px"
109
41
  />
110
42
  <dl-tooltip>
111
- {{ showPass ? 'Hide' : 'Show' }}
43
+ {{ tooltip }}
112
44
  </dl-tooltip>
113
45
  </span>
114
46
  </div>
47
+ <div
48
+ v-if="!!topMessage.length && !isSmall"
49
+ class="break"
50
+ />
115
51
  <div
116
- v-show="hasAction"
117
- :class="[
118
- ...adornmentClasses,
119
- 'dl-text-input__adornment-container--pos-right-out'
120
- ]"
52
+ v-if="!!topMessage.length"
53
+ :class="{
54
+ 'dl-text-input__top-message-container': true,
55
+ 'dl-text-input__top-message-container--s': isSmall
56
+ }"
121
57
  >
122
- <slot name="action" />
58
+ <dl-info-error-message
59
+ v-if="!!topMessage.length"
60
+ position="above"
61
+ :value="topMessage"
62
+ />
123
63
  </div>
124
- <dl-menu
125
- v-if="showSuggestItems"
126
- v-model="isMenuOpen"
127
- auto-close
128
- no-focus
129
- :offset="[0, 3]"
130
- fit-container
131
- :fit-content="fitContent"
132
- :arrow-nav-items="suggestItems"
133
- @click="onMenuShow"
134
- @highlightedIndex="setHighlightedIndex"
135
- @handleSelectedItem="handleSelectedItem"
136
- >
137
- <dl-list
138
- bordered
139
- :style="{ maxWidth: suggestMenuWidth }"
64
+ </div>
65
+ <div
66
+ :class="`${
67
+ isSmall ? 'col' : 'row'
68
+ } bottom-section full-width full-height`"
69
+ >
70
+ <div class="row center full-width full-height">
71
+ <div style="flex-grow: 1; height: 100%; position: relative">
72
+ <input
73
+ ref="input"
74
+ :value="modelValue"
75
+ :class="inputClasses"
76
+ :placeholder="placeholder"
77
+ :maxlength="maxLength"
78
+ :type="showPass ? 'text' : type"
79
+ :disabled="disabled"
80
+ :readonly="readonly"
81
+ @input="onChange"
82
+ @focus="onFocus"
83
+ @blur="debouncedBlur"
84
+ @keyup.enter="onKeyPress"
85
+ >
86
+ <div
87
+ v-if="hasPrepend"
88
+ :class="[
89
+ ...adornmentClasses,
90
+ 'dl-text-input__adornment-container--pos-left'
91
+ ]"
92
+ >
93
+ <slot name="prepend" />
94
+ </div>
95
+ <div
96
+ v-if="hasAppend"
97
+ :class="[
98
+ ...adornmentClasses,
99
+ 'dl-text-input__adornment-container--pos-right'
100
+ ]"
101
+ >
102
+ <slot name="append" />
103
+ <span v-if="showClearButton && focused">
104
+ <dl-button
105
+ ref="input-clear-button"
106
+ icon="icon-dl-close"
107
+ size="s"
108
+ text-color="dl-color-darker"
109
+ flat
110
+ fluid
111
+ @click="onClear"
112
+ />
113
+ <dl-tooltip v-if="clearButtonTooltip">
114
+ Remove text
115
+ </dl-tooltip>
116
+ </span>
117
+ <span v-if="showShowPassButton">
118
+ <dl-button
119
+ ref="input-show-pass-button"
120
+ :icon="passShowIcon"
121
+ size="s"
122
+ text-color="dl-color-darker"
123
+ flat
124
+ fluid
125
+ @click="onPassShowClick"
126
+ />
127
+ <dl-tooltip>
128
+ {{ showPass ? 'Hide' : 'Show' }}
129
+ </dl-tooltip>
130
+ </span>
131
+ </div>
132
+ </div>
133
+ <div
134
+ v-if="hasAction"
135
+ style="
136
+ width: fit-content;
137
+ display: flex;
138
+ align-items: center;
139
+ margin-left: 10px;
140
+ "
141
+ >
142
+ <slot name="action" />
143
+ </div>
144
+ <dl-menu
145
+ v-if="showSuggestItems"
146
+ v-model="isMenuOpen"
147
+ auto-close
148
+ no-focus
149
+ :offset="[0, 3]"
150
+ fit-container
151
+ :fit-content="fitContent"
152
+ :arrow-nav-items="suggestItems"
153
+ @click="onMenuShow"
154
+ @highlightedIndex="setHighlightedIndex"
155
+ @handleSelectedItem="handleSelectedItem"
140
156
  >
141
- <dl-list-item
142
- v-for="(item, suggestIndex) in suggestItems"
143
- :key="item"
144
- clickable
145
- style="font-size: 12px"
146
- :highlighted="suggestIndex === highlightedIndex"
147
- @click="onClick($event, item)"
157
+ <dl-list
158
+ bordered
159
+ :style="{ maxWidth: suggestMenuWidth }"
148
160
  >
149
- <span
150
- v-for="(word, index) in getSuggestWords(
151
- item,
152
- modelValue
153
- )"
154
- :key="JSON.stringify(word) + index"
155
- :class="{
156
- 'dl-text-input__suggestion--highlighted':
157
- word.highlighted
158
- }"
161
+ <dl-list-item
162
+ v-for="(item, suggestIndex) in suggestItems"
163
+ :key="item"
164
+ clickable
165
+ style="font-size: 12px"
166
+ :highlighted="suggestIndex === highlightedIndex"
167
+ @click="onClick($event, item)"
159
168
  >
160
- <span v-show="word.value[0] === ' '">&nbsp;</span>
161
- {{ word.value }}
162
169
  <span
163
- v-show="
164
- word.value[word.value.length - 1] ===
165
- ' '
166
- "
167
- >&nbsp;</span>
168
- </span>
169
- </dl-list-item>
170
- </dl-list>
171
- </dl-menu>
172
- <div
173
- v-if="bottomMessage"
174
- class="dl-text-input__bottom-message-container"
175
- >
176
- <dl-info-error-message
177
- v-if="!!infoMessage.length && !error && !warning"
178
- position="below"
179
- :value="infoMessage"
180
- />
181
- <dl-info-error-message
182
- v-if="error && !!errorMessage && !!errorMessage.length"
183
- position="below"
184
- error
185
- :value="errorMessage"
186
- />
187
- <dl-info-error-message
188
- v-if="
189
- warning &&
190
- !!warningMessage &&
191
- !!warningMessage.length &&
192
- !error
193
- "
194
- position="below"
195
- warning
196
- :value="warningMessage"
197
- />
198
- <span
199
- v-if="showCounter && maxLength && maxLength > 0"
200
- class="dl-text-input__counter"
170
+ v-for="(word, index) in getSuggestWords(
171
+ item,
172
+ modelValue
173
+ )"
174
+ :key="JSON.stringify(word) + index"
175
+ :class="{
176
+ 'dl-text-input__suggestion--highlighted':
177
+ word.highlighted
178
+ }"
179
+ >
180
+ <span v-if="word.value[0] === ' '">&nbsp;</span>
181
+ {{ word.value }}
182
+ <span
183
+ v-if="
184
+ word.value[
185
+ word.value.length - 1
186
+ ] === ' '
187
+ "
188
+ >&nbsp;</span>
189
+ </span>
190
+ </dl-list-item>
191
+ </dl-list>
192
+ </dl-menu>
193
+ </div>
194
+ <div class="row bottom full-width full-height">
195
+ <div
196
+ v-if="bottomMessage"
197
+ class="row full-width dl-text-input__bottom-message-container"
198
+ style="justify-content: space-between"
201
199
  >
202
- {{ characterCounter }}
203
- </span>
200
+ <div>
201
+ <dl-info-error-message
202
+ v-if="
203
+ !!infoMessage.length && !error && !warning
204
+ "
205
+ position="below"
206
+ :value="infoMessage"
207
+ />
208
+ <dl-info-error-message
209
+ v-else-if="
210
+ error &&
211
+ !!errorMessage &&
212
+ !!errorMessage.length
213
+ "
214
+ position="below"
215
+ error
216
+ :value="errorMessage"
217
+ />
218
+ <dl-info-error-message
219
+ v-else-if="
220
+ warning &&
221
+ !!warningMessage &&
222
+ !!warningMessage.length &&
223
+ !error
224
+ "
225
+ position="below"
226
+ warning
227
+ :value="warningMessage"
228
+ />
229
+ </div>
230
+ <div>
231
+ <span
232
+ v-if="showCounter && maxLength && maxLength > 0"
233
+ class="dl-text-input__counter"
234
+ >
235
+ {{ characterCounter }}
236
+ </span>
237
+ </div>
238
+ </div>
204
239
  </div>
205
240
  </div>
206
241
  </div>
@@ -212,7 +247,7 @@ import { debounce } from 'lodash'
212
247
  import { computed, defineComponent, PropType, ref } from 'vue-demi'
213
248
  import { DlInfoErrorMessage, DlTooltip } from '../../shared'
214
249
  import { DlListItem } from '../../basic'
215
- import { DlMenu, DlIcon, DlList } from '../../essential'
250
+ import { DlMenu, DlIcon, DlList, DlEllipsis } from '../../essential'
216
251
  import { DlButton } from '../../basic'
217
252
  import { InputSizes, TInputSizes } from '../../../utils/input-sizes'
218
253
  import { v4 } from 'uuid'
@@ -226,7 +261,8 @@ export default defineComponent({
226
261
  DlInfoErrorMessage,
227
262
  DlMenu,
228
263
  DlList,
229
- DlListItem
264
+ DlListItem,
265
+ DlEllipsis
230
266
  },
231
267
  model: {
232
268
  prop: 'modelValue',
@@ -716,11 +752,6 @@ export default defineComponent({
716
752
  }
717
753
  }
718
754
 
719
- &__input-wrapper {
720
- position: relative;
721
- width: 100%;
722
- }
723
-
724
755
  &__input {
725
756
  border: 1px solid var(--dl-color-separator);
726
757
  border-radius: 2px;
@@ -12,7 +12,7 @@
12
12
  import { v4 } from 'uuid'
13
13
  import { defineComponent, PropType } from 'vue-demi'
14
14
  import { getColor } from '../../../utils'
15
- import { transformOptions } from '../../shared/types'
15
+ import { DlTransformOptions } from '../../shared/types'
16
16
 
17
17
  type Variant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p'
18
18
 
@@ -35,7 +35,7 @@ export default defineComponent({
35
35
  type: String,
36
36
  default: 'default',
37
37
  validator: (value: string): boolean =>
38
- transformOptions.includes(value)
38
+ DlTransformOptions.includes(value)
39
39
  },
40
40
  bold: Boolean,
41
41
  color: {
@@ -1,4 +1,4 @@
1
- export const transformOptions: string[] = [
1
+ export const DlTransformOptions: string[] = [
2
2
  'none',
3
3
  'capitalize',
4
4
  'uppercase',
@@ -21,7 +21,6 @@
21
21
  show-counter
22
22
  :max-length="20"
23
23
  />
24
-
25
24
  <dl-input
26
25
  v-model="saveInputValue"
27
26
  style="width: 220px"
@@ -31,13 +30,11 @@
31
30
  >
32
31
  <template #append>
33
32
  <dl-icon
34
- style="margin-bottom: 5px"
35
33
  icon="icon-dl-save"
36
34
  size="12px"
37
35
  />
38
36
  </template>
39
37
  </dl-input>
40
-
41
38
  <dl-input
42
39
  v-model="passFieldValue"
43
40
  title="Password"
@@ -60,6 +57,8 @@
60
57
  info-message="This won't show, error is true"
61
58
  optional
62
59
  />
60
+
61
+ <p>size S with long text</p>
63
62
  <dl-input
64
63
  v-model="warningFieldValue"
65
64
  title="Warning Example"
@@ -92,7 +91,6 @@
92
91
  error
93
92
  error-message="Error message is the strongest."
94
93
  />
95
-
96
94
  <dl-input
97
95
  style="width: 440px"
98
96
  placeholder="Select option"
@@ -121,7 +119,6 @@
121
119
  size="m"
122
120
  />
123
121
  </div>
124
-
125
122
  <dl-input
126
123
  title="Readonly"
127
124
  style="width: 220px"
@@ -129,6 +126,23 @@
129
126
  size="m"
130
127
  readonly
131
128
  />
129
+
130
+ <p>input in a limited size and action slot size m</p>
131
+ <div style="align-items: center; width: 250px; overflow: hidden">
132
+ <dl-input
133
+ class="input-parts"
134
+ placeholder="Select option"
135
+ >
136
+ <template #action>
137
+ <dl-button
138
+ dense
139
+ flat
140
+ icon="icon-dl-add"
141
+ size="m"
142
+ />
143
+ </template>
144
+ </dl-input>
145
+ </div>
132
146
  </div>
133
147
  </template>
134
148
  <script lang="ts">