bard-tag_field 0.5.0 → 0.5.2
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.
- checksums.yaml +4 -4
- data/CLAUDE.md +9 -8
- data/Rakefile +4 -2
- data/app/assets/javascripts/input-tag.js +1 -0
- data/bard-tag_field.gemspec +5 -0
- data/cucumber.yml +1 -0
- data/input-tag/.gitignore +6 -2
- data/input-tag/CLAUDE.md +87 -0
- data/input-tag/LICENSE +21 -0
- data/input-tag/README.md +135 -0
- data/input-tag/TESTING.md +99 -0
- data/input-tag/bun.lock +821 -0
- data/input-tag/index.html +331 -0
- data/input-tag/package.json +52 -8
- data/input-tag/rollup.config.js +4 -4
- data/input-tag/src/input-tag.js +849 -0
- data/input-tag/src/taggle.js +546 -0
- data/input-tag/test/api-methods.test.js +684 -0
- data/input-tag/test/autocomplete.test.js +615 -0
- data/input-tag/test/basic-functionality.test.js +567 -0
- data/input-tag/test/dom-mutation.test.js +466 -0
- data/input-tag/test/edge-cases.test.js +524 -0
- data/input-tag/test/events.test.js +425 -0
- data/input-tag/test/form-integration.test.js +447 -0
- data/input-tag/test/input-tag.test.js +90 -0
- data/input-tag/test/lib/fail-only.mjs +24 -0
- data/input-tag/test/lib/test-utils.js +187 -0
- data/input-tag/test/nested-datalist.test.js +328 -0
- data/input-tag/test/value-label-separation.test.js +357 -0
- data/input-tag/web-test-runner.config.mjs +20 -0
- data/lib/bard/tag_field/cucumber.rb +13 -2
- data/lib/bard/tag_field/field.rb +3 -2
- data/lib/bard/tag_field/version.rb +1 -1
- metadata +97 -7
- data/app/assets/javascripts/input-tag.js +0 -1859
- data/input-tag/bun.lockb +0 -0
- data/input-tag/index.js +0 -1
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Input Tag Example</title>
|
|
7
|
+
<style>
|
|
8
|
+
body {
|
|
9
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
10
|
+
max-width: 1000px;
|
|
11
|
+
margin: 0 auto;
|
|
12
|
+
padding: 20px;
|
|
13
|
+
line-height: 1.6;
|
|
14
|
+
}
|
|
15
|
+
h1 { color: #2c3e50; }
|
|
16
|
+
h2 { color: #34495e; margin-top: 40px; }
|
|
17
|
+
h3 { color: #7f8c8d; margin-top: 25px; }
|
|
18
|
+
h4 { color: #95a5a6; }
|
|
19
|
+
p { color: #666; }
|
|
20
|
+
small {
|
|
21
|
+
display: block;
|
|
22
|
+
color: #999;
|
|
23
|
+
font-style: italic;
|
|
24
|
+
margin-top: 5px;
|
|
25
|
+
margin-bottom: 20px;
|
|
26
|
+
}
|
|
27
|
+
input-tag {
|
|
28
|
+
margin-bottom: 5px;
|
|
29
|
+
display: block;
|
|
30
|
+
}
|
|
31
|
+
.field-container {
|
|
32
|
+
margin-bottom: 25px;
|
|
33
|
+
border-left: 3px solid #e9ecef;
|
|
34
|
+
padding-left: 15px;
|
|
35
|
+
}
|
|
36
|
+
.data-display {
|
|
37
|
+
background: #f8f9fa;
|
|
38
|
+
border: 1px solid #e9ecef;
|
|
39
|
+
border-radius: 4px;
|
|
40
|
+
padding: 8px 12px;
|
|
41
|
+
font-family: 'Monaco', 'Consolas', monospace;
|
|
42
|
+
font-size: 12px;
|
|
43
|
+
color: #495057;
|
|
44
|
+
margin-top: 5px;
|
|
45
|
+
white-space: pre-wrap;
|
|
46
|
+
min-height: 20px;
|
|
47
|
+
}
|
|
48
|
+
.data-display.has-data {
|
|
49
|
+
border-left: 3px solid #28a745;
|
|
50
|
+
background: #f8fff9;
|
|
51
|
+
}
|
|
52
|
+
.data-display.empty {
|
|
53
|
+
color: #999;
|
|
54
|
+
font-style: italic;
|
|
55
|
+
}
|
|
56
|
+
.html-display {
|
|
57
|
+
background: #fff5f5;
|
|
58
|
+
border: 1px solid #ffe0e0;
|
|
59
|
+
border-radius: 4px;
|
|
60
|
+
padding: 8px 12px;
|
|
61
|
+
font-family: 'Monaco', 'Consolas', monospace;
|
|
62
|
+
font-size: 12px;
|
|
63
|
+
color: #666;
|
|
64
|
+
margin-top: 3px;
|
|
65
|
+
white-space: pre-wrap;
|
|
66
|
+
min-height: 20px;
|
|
67
|
+
}
|
|
68
|
+
.html-display.has-data {
|
|
69
|
+
border-left: 3px solid #e74c3c;
|
|
70
|
+
background: #fdf8f8;
|
|
71
|
+
}
|
|
72
|
+
.html-display.empty {
|
|
73
|
+
color: #bbb;
|
|
74
|
+
font-style: italic;
|
|
75
|
+
}
|
|
76
|
+
</style>
|
|
77
|
+
</head>
|
|
78
|
+
<body>
|
|
79
|
+
<h1>@botandrose/input-tag Examples</h1>
|
|
80
|
+
<p>Demonstrates both traditional flat value arrays and new value/label separation features.</p>
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
<h2>🆕 Value/Label Separation Examples</h2>
|
|
84
|
+
<p>These examples show tags where the displayed text is different from the form submission value (like HTML <option> elements).</p>
|
|
85
|
+
|
|
86
|
+
<form>
|
|
87
|
+
<div class="field-container">
|
|
88
|
+
<h3>Programming Languages with Descriptive Labels</h3>
|
|
89
|
+
<div class="html-display" data-field-html="languages"></div>
|
|
90
|
+
<div class="input-wrapper">
|
|
91
|
+
<input-tag name="languages" multiple>
|
|
92
|
+
<tag-option value="js">JavaScript - Dynamic scripting language</tag-option>
|
|
93
|
+
<tag-option value="ts">TypeScript - Typed JavaScript superset</tag-option>
|
|
94
|
+
<tag-option value="py">Python - High-level programming language</tag-option>
|
|
95
|
+
</input-tag>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="data-display" data-field="languages"></div>
|
|
98
|
+
<small>Form submits: "js", "ts", "py" but displays descriptive names</small>
|
|
99
|
+
</div>
|
|
100
|
+
</form>
|
|
101
|
+
|
|
102
|
+
<form>
|
|
103
|
+
<div class="field-container">
|
|
104
|
+
<h3>Single Selection with Value/Label</h3>
|
|
105
|
+
<div class="html-display" data-field-html="priority"></div>
|
|
106
|
+
<div class="input-wrapper">
|
|
107
|
+
<input-tag name="priority">
|
|
108
|
+
<tag-option value="1">🔥 High Priority</tag-option>
|
|
109
|
+
</input-tag>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="data-display" data-field="priority"></div>
|
|
112
|
+
<small>Form submits: "1" but displays: "🔥 High Priority"</small>
|
|
113
|
+
</div>
|
|
114
|
+
</form>
|
|
115
|
+
|
|
116
|
+
<form>
|
|
117
|
+
<div class="field-container">
|
|
118
|
+
<h3>Mixed Tags (Some with values, some text-only)</h3>
|
|
119
|
+
<div class="html-display" data-field-html="mixed"></div>
|
|
120
|
+
<div class="input-wrapper">
|
|
121
|
+
<input-tag name="mixed" multiple>
|
|
122
|
+
<tag-option value="urgent">⚡ Urgent Task</tag-option>
|
|
123
|
+
<tag-option value="reviewed">✅ Code Reviewed</tag-option>
|
|
124
|
+
<tag-option>Custom Note</tag-option>
|
|
125
|
+
</input-tag>
|
|
126
|
+
</div>
|
|
127
|
+
<div class="data-display" data-field="mixed"></div>
|
|
128
|
+
<small>Shows how value/label and text-only tags can coexist</small>
|
|
129
|
+
</div>
|
|
130
|
+
</form>
|
|
131
|
+
|
|
132
|
+
<h2>🎯 Autocomplete with Value/Label Separation</h2>
|
|
133
|
+
<p>Type to search by label text, select to add with proper value/label separation.</p>
|
|
134
|
+
|
|
135
|
+
<form>
|
|
136
|
+
<div class="field-container">
|
|
137
|
+
<h3>Frameworks (with descriptive labels)</h3>
|
|
138
|
+
<div class="html-display" data-field-html="frameworks"></div>
|
|
139
|
+
<div class="input-wrapper">
|
|
140
|
+
<input-tag name="frameworks" list="framework-suggestions" multiple></input-tag>
|
|
141
|
+
<datalist id="framework-suggestions">
|
|
142
|
+
<option value="react">React - Component-based UI library</option>
|
|
143
|
+
<option value="vue">Vue.js - Progressive JavaScript framework</option>
|
|
144
|
+
<option value="angular">Angular - Full-featured TypeScript framework</option>
|
|
145
|
+
<option value="svelte">Svelte - Compile-time optimized framework</option>
|
|
146
|
+
<option value="solid">SolidJS - Fine-grained reactive framework</option>
|
|
147
|
+
</datalist>
|
|
148
|
+
</div>
|
|
149
|
+
<div class="data-display" data-field="frameworks"></div>
|
|
150
|
+
<small>Try typing "react", "vue", "typescript", or "compile" to see label-based filtering</small>
|
|
151
|
+
</div>
|
|
152
|
+
</form>
|
|
153
|
+
|
|
154
|
+
<h2>📊 Traditional Flat Value Examples</h2>
|
|
155
|
+
<p>These examples use simple string values (no value/label separation).</p>
|
|
156
|
+
|
|
157
|
+
<form>
|
|
158
|
+
<div class="field-container">
|
|
159
|
+
<h3>Simple Tags (value = label)</h3>
|
|
160
|
+
<div class="html-display" data-field-html="simple_tags"></div>
|
|
161
|
+
<div class="input-wrapper">
|
|
162
|
+
<input-tag name="simple_tags" multiple>
|
|
163
|
+
<tag-option>javascript</tag-option>
|
|
164
|
+
<tag-option>python</tag-option>
|
|
165
|
+
<tag-option>ruby</tag-option>
|
|
166
|
+
</input-tag>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="data-display" data-field="simple_tags"></div>
|
|
169
|
+
<small>Traditional usage: form value equals display text</small>
|
|
170
|
+
</div>
|
|
171
|
+
</form>
|
|
172
|
+
|
|
173
|
+
<form>
|
|
174
|
+
<div class="field-container">
|
|
175
|
+
<h3>Simple Autocomplete (no value/label separation)</h3>
|
|
176
|
+
<div class="html-display" data-field-html="simple_autocomplete"></div>
|
|
177
|
+
<div class="input-wrapper">
|
|
178
|
+
<input-tag name="simple_autocomplete" list="simple-suggestions" multiple></input-tag>
|
|
179
|
+
<datalist id="simple-suggestions">
|
|
180
|
+
<option value="html">html</option>
|
|
181
|
+
<option value="css">css</option>
|
|
182
|
+
<option value="javascript">javascript</option>
|
|
183
|
+
<option value="nodejs">nodejs</option>
|
|
184
|
+
</datalist>
|
|
185
|
+
</div>
|
|
186
|
+
<div class="data-display" data-field="simple_autocomplete"></div>
|
|
187
|
+
<small>Traditional autocomplete where option value equals display text</small>
|
|
188
|
+
</div>
|
|
189
|
+
</form>
|
|
190
|
+
|
|
191
|
+
<h2>🆕 Nested Datalist Examples</h2>
|
|
192
|
+
<p>These examples show nested anonymous datalist elements inside the input-tag (no external datalist required).</p>
|
|
193
|
+
|
|
194
|
+
<form>
|
|
195
|
+
<div class="field-container">
|
|
196
|
+
<h3>Nested Datalist with Autocomplete</h3>
|
|
197
|
+
<div class="html-display" data-field-html="nested_frameworks"></div>
|
|
198
|
+
<div class="input-wrapper">
|
|
199
|
+
<input-tag name="nested_frameworks" multiple>
|
|
200
|
+
<datalist>
|
|
201
|
+
<option value="nextjs">Next.js - React Framework</option>
|
|
202
|
+
<option value="nuxt">Nuxt.js - Vue Framework</option>
|
|
203
|
+
<option value="gatsby">Gatsby - Static Site Generator</option>
|
|
204
|
+
<option value="remix">Remix - Full Stack Web Framework</option>
|
|
205
|
+
</datalist>
|
|
206
|
+
</input-tag>
|
|
207
|
+
</div>
|
|
208
|
+
<div class="data-display" data-field="nested_frameworks"></div>
|
|
209
|
+
<small>Uses nested anonymous datalist - no external datalist element needed!</small>
|
|
210
|
+
</div>
|
|
211
|
+
</form>
|
|
212
|
+
|
|
213
|
+
<form>
|
|
214
|
+
<div class="field-container">
|
|
215
|
+
<h3>Mixed: Predefined Tags + Nested Datalist</h3>
|
|
216
|
+
<div class="html-display" data-field-html="mixed_nested"></div>
|
|
217
|
+
<div class="input-wrapper">
|
|
218
|
+
<input-tag name="mixed_nested" multiple>
|
|
219
|
+
<tag-option value="html">HTML - Markup Language</tag-option>
|
|
220
|
+
<tag-option value="css">CSS - Styling Language</tag-option>
|
|
221
|
+
<datalist>
|
|
222
|
+
<option value="sass">Sass - CSS Preprocessor</option>
|
|
223
|
+
<option value="less">Less - CSS Preprocessor</option>
|
|
224
|
+
<option value="stylus">Stylus - Expressive CSS</option>
|
|
225
|
+
</datalist>
|
|
226
|
+
</input-tag>
|
|
227
|
+
</div>
|
|
228
|
+
<div class="data-display" data-field="mixed_nested"></div>
|
|
229
|
+
<small>Shows predefined tags plus nested datalist autocomplete options</small>
|
|
230
|
+
</div>
|
|
231
|
+
</form>
|
|
232
|
+
|
|
233
|
+
<h2>🔧 Advanced Examples</h2>
|
|
234
|
+
|
|
235
|
+
<form>
|
|
236
|
+
<div class="field-container">
|
|
237
|
+
<h3>Country Codes with Full Names</h3>
|
|
238
|
+
<div class="html-display" data-field-html="countries"></div>
|
|
239
|
+
<div class="input-wrapper">
|
|
240
|
+
<input-tag name="countries" list="country-suggestions" multiple></input-tag>
|
|
241
|
+
<datalist id="country-suggestions">
|
|
242
|
+
<option value="US">🇺🇸 United States</option>
|
|
243
|
+
<option value="CA">🇨🇦 Canada</option>
|
|
244
|
+
<option value="UK">🇬🇧 United Kingdom</option>
|
|
245
|
+
<option value="DE">🇩🇪 Germany</option>
|
|
246
|
+
<option value="JP">🇯🇵 Japan</option>
|
|
247
|
+
<option value="AU">🇦🇺 Australia</option>
|
|
248
|
+
</datalist>
|
|
249
|
+
</div>
|
|
250
|
+
<div class="data-display" data-field="countries"></div>
|
|
251
|
+
<small>Form submits ISO country codes but displays full country names with flags</small>
|
|
252
|
+
</div>
|
|
253
|
+
</form>
|
|
254
|
+
|
|
255
|
+
<form>
|
|
256
|
+
<div class="field-container">
|
|
257
|
+
<h3>Status with Color Indicators</h3>
|
|
258
|
+
<div class="html-display" data-field-html="status"></div>
|
|
259
|
+
<div class="input-wrapper">
|
|
260
|
+
<input-tag name="status" list="status-suggestions"></input-tag>
|
|
261
|
+
<datalist id="status-suggestions">
|
|
262
|
+
<option value="active">🟢 Active - Currently running</option>
|
|
263
|
+
<option value="pending">🟡 Pending - Waiting for approval</option>
|
|
264
|
+
<option value="inactive">🔴 Inactive - Not currently active</option>
|
|
265
|
+
<option value="maintenance">🔧 Maintenance - Under maintenance</option>
|
|
266
|
+
</datalist>
|
|
267
|
+
</div>
|
|
268
|
+
<div class="data-display" data-field="status"></div>
|
|
269
|
+
<small>Visual status indicators with detailed descriptions</small>
|
|
270
|
+
</div>
|
|
271
|
+
</form>
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
<script type="importmap">
|
|
276
|
+
{
|
|
277
|
+
"imports": {
|
|
278
|
+
"autocompleter": "https://unpkg.com/autocompleter@9.3.2/autocomplete.es.js",
|
|
279
|
+
"input-tag": "./src/input-tag.js",
|
|
280
|
+
"taggle": "./src/taggle.js"
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
</script>
|
|
284
|
+
<script type="module">import 'input-tag'</script>
|
|
285
|
+
<script>
|
|
286
|
+
// Function to update live FormData and HTML displays
|
|
287
|
+
function updateFieldDisplay(inputTag) {
|
|
288
|
+
const fieldName = inputTag.name;
|
|
289
|
+
const dataDisplay = document.querySelector(`[data-field="${fieldName}"]`);
|
|
290
|
+
const htmlDisplay = document.querySelector(`[data-field-html="${fieldName}"]`);
|
|
291
|
+
const form = inputTag.closest('form');
|
|
292
|
+
|
|
293
|
+
const formData = new FormData(form);
|
|
294
|
+
const isMultiple = inputTag.hasAttribute('multiple');
|
|
295
|
+
const value = isMultiple ? formData.getAll(fieldName) : formData.get(fieldName);
|
|
296
|
+
dataDisplay.textContent = `${fieldName}: ${JSON.stringify(value)}`;
|
|
297
|
+
dataDisplay.className = 'data-display has-data'
|
|
298
|
+
|
|
299
|
+
htmlDisplay.textContent = inputTag.parentNode.innerHTML.trim();
|
|
300
|
+
htmlDisplay.className = 'html-display has-data';
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
// Update all field displays
|
|
305
|
+
function updateAllDisplays() {
|
|
306
|
+
document.querySelectorAll('input-tag').forEach(updateFieldDisplay);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// Listen for changes and update displays
|
|
310
|
+
document.addEventListener('change', (e) => {
|
|
311
|
+
if (e.target.tagName === 'INPUT-TAG') {
|
|
312
|
+
updateFieldDisplay(e.target);
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
document.addEventListener('update', (e) => {
|
|
317
|
+
if (e.target.tagName === 'INPUT-TAG') {
|
|
318
|
+
setTimeout(() => updateFieldDisplay(e.target), 10);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
window.addEventListener('load', () => {
|
|
323
|
+
updateAllDisplays();
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
document.addEventListener('reset', () => {
|
|
327
|
+
setTimeout(updateAllDisplays, 100);
|
|
328
|
+
});
|
|
329
|
+
</script>
|
|
330
|
+
</body>
|
|
331
|
+
</html>
|
data/input-tag/package.json
CHANGED
|
@@ -1,16 +1,60 @@
|
|
|
1
1
|
{
|
|
2
|
+
"name": "@botandrose/input-tag",
|
|
3
|
+
"version": "0.4.2",
|
|
2
4
|
"type": "module",
|
|
5
|
+
"description": "A declarative, zero-dependency, framework-agnostic custom element for tag input with autocomplete",
|
|
6
|
+
"main": "src/input-tag.js",
|
|
7
|
+
"module": "src/input-tag.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"src",
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
3
12
|
"scripts": {
|
|
4
|
-
"
|
|
5
|
-
"
|
|
13
|
+
"build": "rollup -c",
|
|
14
|
+
"clean": "rm -rf dist",
|
|
15
|
+
"test": "web-test-runner",
|
|
16
|
+
"test:watch": "web-test-runner --watch",
|
|
17
|
+
"test:chrome": "web-test-runner --playwright --browsers chromium",
|
|
18
|
+
"test:chromium": "web-test-runner --playwright --browsers chromium",
|
|
19
|
+
"test:firefox": "web-test-runner --concurrency 1 --playwright --browsers firefox",
|
|
20
|
+
"test:webkit": "web-test-runner --playwright --browsers webkit",
|
|
21
|
+
"test:all": "web-test-runner --concurrency 1 --playwright --browsers chromium firefox webkit",
|
|
22
|
+
"test:coverage": "npm run test:chrome",
|
|
23
|
+
"test:ci": "npm run test:all -- --fail-only"
|
|
6
24
|
},
|
|
25
|
+
"packageManager": "bun@latest",
|
|
26
|
+
"keywords": [
|
|
27
|
+
"input",
|
|
28
|
+
"tag",
|
|
29
|
+
"taggle",
|
|
30
|
+
"autocomplete",
|
|
31
|
+
"custom-element",
|
|
32
|
+
"web-components",
|
|
33
|
+
"form",
|
|
34
|
+
"declarative",
|
|
35
|
+
"framework-agnostic"
|
|
36
|
+
],
|
|
37
|
+
"author": "Bot & Rose",
|
|
38
|
+
"license": "MIT",
|
|
7
39
|
"devDependencies": {
|
|
8
|
-
"@
|
|
9
|
-
"@
|
|
10
|
-
"rollup": "^
|
|
40
|
+
"@esm-bundle/chai": "^4.3.4",
|
|
41
|
+
"@open-wc/testing": "^4.0.0",
|
|
42
|
+
"@rollup/plugin-commonjs": "^28.0.0",
|
|
43
|
+
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
44
|
+
"@web/test-runner": "^0.18.0",
|
|
45
|
+
"@web/test-runner-playwright": "^0.11.1",
|
|
46
|
+
"rollup": "^4.0.0",
|
|
47
|
+
"sinon": "^21.0.0"
|
|
11
48
|
},
|
|
12
|
-
"
|
|
13
|
-
"
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "git",
|
|
51
|
+
"url": "git+https://github.com/botandrose/input-tag.git"
|
|
52
|
+
},
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/botandrose/input-tag/issues"
|
|
14
55
|
},
|
|
15
|
-
"
|
|
56
|
+
"homepage": "https://github.com/botandrose/input-tag#readme",
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"autocompleter": "^9.3.2"
|
|
59
|
+
}
|
|
16
60
|
}
|
data/input-tag/rollup.config.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import resolve from "@rollup/plugin-node-resolve"
|
|
2
|
-
import commonjs from
|
|
2
|
+
import commonjs from "@rollup/plugin-commonjs"
|
|
3
3
|
|
|
4
4
|
export default [
|
|
5
5
|
{
|
|
6
|
-
input: "./
|
|
6
|
+
input: "./src/input-tag.js",
|
|
7
7
|
output: [
|
|
8
8
|
{
|
|
9
|
-
file: "
|
|
9
|
+
file: "dist/input-tag.js",
|
|
10
10
|
format: "es",
|
|
11
11
|
},
|
|
12
12
|
],
|
|
@@ -16,4 +16,4 @@ export default [
|
|
|
16
16
|
commonjs(),
|
|
17
17
|
]
|
|
18
18
|
},
|
|
19
|
-
]
|
|
19
|
+
]
|