@histoire/controls 0.2.3 → 0.3.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.
package/dist/style.css CHANGED
@@ -1,598 +1 @@
1
- .resize-observer[data-v-b329ee4c]{
2
- position:absolute;
3
- top:0;
4
- left:0;
5
- z-index:-1;
6
- width:100%;
7
- height:100%;
8
- border:none;
9
- background-color:transparent;
10
- pointer-events:none;
11
- display:block;
12
- overflow:hidden;
13
- opacity:0
14
- }
15
-
16
- .resize-observer[data-v-b329ee4c] object{
17
- display:block;
18
- position:absolute;
19
- top:0;
20
- left:0;
21
- height:100%;
22
- width:100%;
23
- overflow:hidden;
24
- pointer-events:none;
25
- z-index:-1
26
- }
27
-
28
- .v-popper__popper{
29
- z-index:10000;
30
- top:0;
31
- left:0
32
- }
33
-
34
- .v-popper__popper.v-popper__popper--hidden{
35
- visibility:hidden;
36
- opacity:0;
37
- transition:opacity .15s,visibility .15s;
38
- pointer-events:none
39
- }
40
-
41
- .v-popper__popper.v-popper__popper--shown{
42
- visibility:visible;
43
- opacity:1;
44
- transition:opacity .15s
45
- }
46
-
47
- .v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{
48
- transition:none!important
49
- }
50
-
51
- .v-popper__backdrop{
52
- position:absolute;
53
- top:0;
54
- left:0;
55
- width:100%;
56
- height:100%;
57
- display:none
58
- }
59
-
60
- .v-popper__inner{
61
- position:relative;
62
- box-sizing:border-box;
63
- overflow-y:auto
64
- }
65
-
66
- .v-popper__inner>div{
67
- position:relative;
68
- z-index:1;
69
- max-width:inherit;
70
- max-height:inherit
71
- }
72
-
73
- .v-popper__arrow-container{
74
- position:absolute;
75
- width:10px;
76
- height:10px
77
- }
78
-
79
- .v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{
80
- display:none
81
- }
82
-
83
- .v-popper__arrow-inner,.v-popper__arrow-outer{
84
- border-style:solid;
85
- position:absolute;
86
- top:0;
87
- left:0;
88
- width:0;
89
- height:0
90
- }
91
-
92
- .v-popper__arrow-inner{
93
- visibility:hidden;
94
- border-width:7px
95
- }
96
-
97
- .v-popper__arrow-outer{
98
- border-width:6px
99
- }
100
-
101
- .v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{
102
- left:-2px
103
- }
104
-
105
- .v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{
106
- left:-1px
107
- }
108
-
109
- .v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{
110
- border-bottom-width:0;
111
- border-left-color:transparent!important;
112
- border-right-color:transparent!important;
113
- border-bottom-color:transparent!important
114
- }
115
-
116
- .v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{
117
- top:-2px
118
- }
119
-
120
- .v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{
121
- top:0
122
- }
123
-
124
- .v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{
125
- border-top-width:0;
126
- border-left-color:transparent!important;
127
- border-right-color:transparent!important;
128
- border-top-color:transparent!important
129
- }
130
-
131
- .v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{
132
- top:-4px
133
- }
134
-
135
- .v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{
136
- top:-6px
137
- }
138
-
139
- .v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{
140
- top:-2px
141
- }
142
-
143
- .v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{
144
- top:-1px
145
- }
146
-
147
- .v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{
148
- border-left-width:0;
149
- border-left-color:transparent!important;
150
- border-top-color:transparent!important;
151
- border-bottom-color:transparent!important
152
- }
153
-
154
- .v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{
155
- left:-4px
156
- }
157
-
158
- .v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{
159
- left:-6px
160
- }
161
-
162
- .v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{
163
- right:-10px
164
- }
165
-
166
- .v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{
167
- border-right-width:0;
168
- border-top-color:transparent!important;
169
- border-right-color:transparent!important;
170
- border-bottom-color:transparent!important
171
- }
172
-
173
- .v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{
174
- left:-2px
175
- }
176
-
177
- .v-popper--theme-dropdown .v-popper__inner{
178
- background:#fff;
179
- color:#000;
180
- border-radius:6px;
181
- border:1px solid #ddd;
182
- box-shadow:0 6px 30px #0000001a
183
- }
184
-
185
- .v-popper--theme-dropdown .v-popper__arrow-inner{
186
- visibility:visible;
187
- border-color:#fff
188
- }
189
-
190
- .v-popper--theme-dropdown .v-popper__arrow-outer{
191
- border-color:#ddd
192
- }
193
-
194
- .v-popper--theme-tooltip .v-popper__inner{
195
- background:rgba(0,0,0,.8);
196
- color:#fff;
197
- border-radius:6px;
198
- padding:7px 12px 6px
199
- }
200
-
201
- .v-popper--theme-tooltip .v-popper__arrow-outer{
202
- border-color:#000c
203
- }
204
-
205
- *, ::before, ::after{
206
- --tw-translate-x:0;
207
- --tw-translate-y:0;
208
- --tw-rotate:0;
209
- --tw-skew-x:0;
210
- --tw-skew-y:0;
211
- --tw-scale-x:1;
212
- --tw-scale-y:1;
213
- --tw-pan-x: ;
214
- --tw-pan-y: ;
215
- --tw-pinch-zoom: ;
216
- --tw-scroll-snap-strictness:proximity;
217
- --tw-ordinal: ;
218
- --tw-slashed-zero: ;
219
- --tw-numeric-figure: ;
220
- --tw-numeric-spacing: ;
221
- --tw-numeric-fraction: ;
222
- --tw-ring-inset: ;
223
- --tw-ring-offset-width:0px;
224
- --tw-ring-offset-color:#fff;
225
- --tw-ring-color:rgb(59 130 246 / 0.5);
226
- --tw-ring-offset-shadow:0 0 #0000;
227
- --tw-ring-shadow:0 0 #0000;
228
- --tw-shadow:0 0 #0000;
229
- --tw-shadow-colored:0 0 #0000;
230
- --tw-blur: ;
231
- --tw-brightness: ;
232
- --tw-contrast: ;
233
- --tw-grayscale: ;
234
- --tw-hue-rotate: ;
235
- --tw-invert: ;
236
- --tw-saturate: ;
237
- --tw-sepia: ;
238
- --tw-drop-shadow: ;
239
- --tw-backdrop-blur: ;
240
- --tw-backdrop-brightness: ;
241
- --tw-backdrop-contrast: ;
242
- --tw-backdrop-grayscale: ;
243
- --tw-backdrop-hue-rotate: ;
244
- --tw-backdrop-invert: ;
245
- --tw-backdrop-opacity: ;
246
- --tw-backdrop-saturate: ;
247
- --tw-backdrop-sepia:
248
- }
249
-
250
- .htw-absolute{
251
- position:absolute
252
- }
253
-
254
- .htw-relative{
255
- position:relative
256
- }
257
-
258
- .htw-inset-0{
259
- top:0px;
260
- right:0px;
261
- bottom:0px;
262
- left:0px
263
- }
264
-
265
- .htw-z-10{
266
- z-index:10
267
- }
268
-
269
- .htw-m-4{
270
- margin:1rem
271
- }
272
-
273
- .htw-my-0{
274
- margin-top:0px;
275
- margin-bottom:0px
276
- }
277
-
278
- .-htw-my-1{
279
- margin-top:-0.25rem;
280
- margin-bottom:-0.25rem
281
- }
282
-
283
- .htw-box-border{
284
- box-sizing:border-box
285
- }
286
-
287
- .htw-block{
288
- display:block
289
- }
290
-
291
- .htw-flex{
292
- display:flex
293
- }
294
-
295
- .htw-grid{
296
- display:grid
297
- }
298
-
299
- .htw-hidden{
300
- display:none
301
- }
302
-
303
- .htw-h-4{
304
- height:1rem
305
- }
306
-
307
- .htw-h-\[16px\]{
308
- height:16px
309
- }
310
-
311
- .htw-h-\[100px\]{
312
- height:100px
313
- }
314
-
315
- .htw-h-16{
316
- height:4rem
317
- }
318
-
319
- .htw-min-h-\[26px\]{
320
- min-height:26px
321
- }
322
-
323
- .htw-w-4{
324
- width:1rem
325
- }
326
-
327
- .htw-w-28{
328
- width:7rem
329
- }
330
-
331
- .htw-w-\[16px\]{
332
- width:16px
333
- }
334
-
335
- .htw-w-16{
336
- width:4rem
337
- }
338
-
339
- .htw-w-full{
340
- width:100%
341
- }
342
-
343
- .htw-shrink-0{
344
- flex-shrink:0
345
- }
346
-
347
- .htw-grow{
348
- flex-grow:1
349
- }
350
-
351
- .htw-cursor-pointer{
352
- cursor:pointer
353
- }
354
-
355
- .htw-cursor-ew-resize{
356
- cursor:ew-resize
357
- }
358
-
359
- .htw-cursor-text{
360
- cursor:text
361
- }
362
-
363
- .htw-select-none{
364
- -webkit-user-select:none;
365
- -moz-user-select:none;
366
- -ms-user-select:none;
367
- user-select:none
368
- }
369
-
370
- .htw-resize-y{
371
- resize:vertical
372
- }
373
-
374
- .htw-grid-cols-\[repeat\(auto-fill\,minmax\(100px\,1fr\)\)\]{
375
- grid-template-columns:repeat(auto-fill,minmax(100px,1fr))
376
- }
377
-
378
- .htw-flex-col{
379
- flex-direction:column
380
- }
381
-
382
- .htw-flex-wrap{
383
- flex-wrap:wrap
384
- }
385
-
386
- .htw-items-end{
387
- align-items:flex-end
388
- }
389
-
390
- .htw-items-center{
391
- align-items:center
392
- }
393
-
394
- .htw-gap-2{
395
- gap:0.5rem
396
- }
397
-
398
- .htw-gap-4{
399
- gap:1rem
400
- }
401
-
402
- .htw-gap-1{
403
- gap:0.25rem
404
- }
405
-
406
- .htw-overflow-hidden{
407
- overflow:hidden
408
- }
409
-
410
- .htw-text-ellipsis{
411
- text-overflow:ellipsis
412
- }
413
-
414
- .htw-whitespace-nowrap{
415
- white-space:nowrap
416
- }
417
-
418
- .htw-rounded-sm{
419
- border-radius:0.25rem
420
- }
421
-
422
- .htw-rounded{
423
- border-radius:0.375rem
424
- }
425
-
426
- .htw-rounded-full{
427
- border-radius:9999px
428
- }
429
-
430
- .htw-border{
431
- border-width:1px
432
- }
433
-
434
- .htw-border-8{
435
- border-width:8px
436
- }
437
-
438
- .htw-border-2{
439
- border-width:2px
440
- }
441
-
442
- .htw-border-solid{
443
- border-style:solid
444
- }
445
-
446
- .htw-border-primary-500{
447
- --tw-border-opacity:1;
448
- border-color:rgb(16 185 129 / var(--tw-border-opacity))
449
- }
450
-
451
- .htw-border-black\/25{
452
- border-color:rgb(0 0 0 / 0.25)
453
- }
454
-
455
- .htw-bg-transparent{
456
- background-color:transparent
457
- }
458
-
459
- .htw-stroke-white{
460
- stroke:#fff
461
- }
462
-
463
- .htw-stroke-2{
464
- stroke-width:2
465
- }
466
-
467
- .htw-p-2{
468
- padding:0.5rem
469
- }
470
-
471
- .htw-py-1{
472
- padding-top:0.25rem;
473
- padding-bottom:0.25rem
474
- }
475
-
476
- .htw-px-2{
477
- padding-left:0.5rem;
478
- padding-right:0.5rem
479
- }
480
-
481
- .htw-pl-2{
482
- padding-left:0.5rem
483
- }
484
-
485
- .htw-text-5xl{
486
- font-size:3rem;
487
- line-height:1
488
- }
489
-
490
- .htw-text-white{
491
- --tw-text-opacity:1;
492
- color:rgb(255 255 255 / var(--tw-text-opacity))
493
- }
494
-
495
- .htw-text-inherit{
496
- color:inherit
497
- }
498
-
499
- .htw-opacity-50{
500
- opacity:0.5
501
- }
502
-
503
- .htw-outline-none{
504
- outline:2px solid transparent;
505
- outline-offset:2px
506
- }
507
-
508
- .htw-transition-border{
509
- transition-property:border;
510
- transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
511
- transition-duration:150ms
512
- }
513
-
514
- .htw-transition-all{
515
- transition-property:all;
516
- transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);
517
- transition-duration:150ms
518
- }
519
-
520
- .htw-transition-none{
521
- transition-property:none
522
- }
523
-
524
- .htw-delay-150{
525
- transition-delay:150ms
526
- }
527
-
528
- .htw-duration-150{
529
- transition-duration:150ms
530
- }
531
-
532
- .htw-duration-200{
533
- transition-duration:200ms
534
- }
535
-
536
- .htw-ease-out{
537
- transition-timing-function:cubic-bezier(0, 0, 0.2, 1)
538
- }
539
-
540
- .htw-ease-in-out{
541
- transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)
542
- }
543
-
544
- body {
545
- font-size: 18px;
546
- }
547
-
548
- .htw-dark body{
549
- --tw-text-opacity:1;
550
- color:rgb(244 244 245 / var(--tw-text-opacity))
551
- }
552
-
553
- @media (min-width: 640px) {
554
- body {
555
- font-size: 14px;
556
- }
557
- }
558
-
559
- .hover\:htw-bg-primary-100:hover{
560
- --tw-bg-opacity:1;
561
- background-color:rgb(209 250 229 / var(--tw-bg-opacity))
562
- }
563
-
564
- .hover\:htw-text-primary-500:hover{
565
- --tw-text-opacity:1;
566
- color:rgb(16 185 129 / var(--tw-text-opacity))
567
- }
568
-
569
- .hover\:htw-opacity-100:hover{
570
- opacity:1
571
- }
572
-
573
- .focus\:htw-border-primary-500:focus{
574
- --tw-border-opacity:1;
575
- border-color:rgb(16 185 129 / var(--tw-border-opacity))
576
- }
577
-
578
- .htw-group:hover .group-hover\:htw-block{
579
- display:block
580
- }
581
-
582
- .htw-group:active .group-active\:htw-bg-gray-500\/20{
583
- background-color:rgb(113 113 122 / 0.2)
584
- }
585
-
586
- .htw-dark .dark\:htw-border-white\/25{
587
- border-color:rgb(255 255 255 / 0.25)
588
- }
589
-
590
- .htw-dark .dark\:hover\:htw-bg-primary-800:hover{
591
- --tw-bg-opacity:1;
592
- background-color:rgb(6 95 70 / var(--tw-bg-opacity))
593
- }
594
-
595
- .htw-dark .dark\:focus\:htw-border-primary-500:focus{
596
- --tw-border-opacity:1;
597
- border-color:rgb(16 185 129 / var(--tw-border-opacity))
598
- }
1
+ .htw-bind-col-size{grid-template-columns:repeat(auto-fill,minmax(var(--histoire-col-size),1fr))}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@histoire/controls",
3
- "version": "0.2.3",
3
+ "version": "0.3.0",
4
4
  "description": "Prebuilt controls components",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -44,22 +44,22 @@
44
44
  "autoprefixer": "^10.4.4",
45
45
  "concurrently": "^7.1.0",
46
46
  "floating-vue": "^2.0.0-beta.14",
47
- "histoire": "^0.2.2",
47
+ "histoire": "0.3.0",
48
48
  "postcss": "^8.4.12",
49
49
  "postcss-import": "^14.1.0",
50
50
  "tailwindcss": "^3.0.23",
51
51
  "typescript": "^4.6.3",
52
52
  "vite": "^2.9.1",
53
53
  "vue": "^3.2.31",
54
- "vue-tsc": "^0.33.9"
54
+ "vue-tsc": "^0.34.10"
55
55
  },
56
56
  "scripts": {
57
- "build": "rimraf dist && vite build && pnpm run build:types && pnpm run build:css",
58
- "build:css": "tailwindcss -i src/style/main.css -o ./dist/style.css -c tailwind.config.cjs --postcss postcss.config.cjs",
57
+ "build": "rimraf dist && pnpm run build:css && vite build && pnpm run build:types",
58
+ "build:css": "tailwindcss -i src/style/main.css -o ./dist/style-standalone.css -c tailwind.config.cjs --postcss postcss.config.cjs",
59
59
  "build:types": "vue-tsc --declaration --emitDeclarationOnly",
60
60
  "watch": "concurrently \"vite build --watch\" \"pnpm run build:types -- --watch\"",
61
61
  "watch:full": "concurrently \"vite build --watch\" \"pnpm run build:css -- --watch\" \"pnpm run build:types -- --watch\"",
62
- "test:open": "peeky open",
62
+ "test:open": "peeky open --port 5010",
63
63
  "test": "peeky run",
64
64
  "story:dev": "histoire dev",
65
65
  "story:build": "histoire build"
@@ -377,5 +377,14 @@ const colors = {
377
377
  />
378
378
  </template>
379
379
  </Variant>
380
+
381
+ <Variant title="long names">
382
+ <HstColorShades
383
+ v-for="(shades, key) of colors"
384
+ :key="key"
385
+ :shades="shades"
386
+ :get-name="shade => `${'\'very-'.repeat(5)}long-${key}-${shade}`"
387
+ />
388
+ </Variant>
380
389
  </Story>
381
390
  </template>
@@ -6,12 +6,11 @@ export default {
6
6
 
7
7
  <script lang="ts" setup>
8
8
  import { computed, ref } from 'vue'
9
+ import { VTooltip as vTooltip } from 'floating-vue'
9
10
  import HstCopyIcon from '../HstCopyIcon.vue'
10
11
 
11
12
  const props = defineProps<{
12
13
  shades: Record<string, string>
13
- // @TODO report eslint bug
14
- // eslint-disable-next-line func-call-spacing
15
14
  getName?: (key: string, color: string) => string
16
15
  search?: string
17
16
  }>()
@@ -37,17 +36,21 @@ const displayedShades = computed(() => {
37
36
  }
38
37
  return list
39
38
  })
39
+
40
+ const hover = ref<string>(null)
40
41
  </script>
41
42
 
42
43
  <template>
43
44
  <div
44
45
  v-if="displayedShades.length"
45
- class="htw-grid htw-gap-4 htw-grid-cols-[repeat(auto-fill,minmax(100px,1fr))] htw-m-4"
46
+ class="htw-grid htw-gap-4 htw-grid-cols-[repeat(auto-fill,minmax(200px,1fr))] htw-m-4"
46
47
  >
47
48
  <div
48
49
  v-for="shade of displayedShades"
49
50
  :key="shade.key"
50
- class="htw-flex htw-flex-col htw-gap-2 htw-group"
51
+ class="htw-flex htw-flex-col htw-gap-2"
52
+ @mouseenter="hover = shade.key"
53
+ @mouseleave="hover = null"
51
54
  >
52
55
  <slot
53
56
  :color="shade.color"
@@ -61,17 +64,25 @@ const displayedShades = computed(() => {
61
64
  </slot>
62
65
  <div>
63
66
  <div class="htw-flex htw-gap-1">
64
- <pre class="htw-my-0">{{ shade.name }}</pre>
67
+ <pre
68
+ v-tooltip="shade.name.length > 23 ? shade.name : ''"
69
+ class="htw-my-0 htw-truncate htw-shrink"
70
+ >{{ shade.name }}</pre>
65
71
  <HstCopyIcon
72
+ v-if="hover === shade.key"
66
73
  :content="shade.name"
67
- class="htw-hidden group-hover:htw-block"
74
+ class="htw-flex-none"
68
75
  />
69
76
  </div>
70
77
  <div class="htw-flex htw-gap-1">
71
- <pre class="htw-my-0 htw-opacity-50">{{ shade.color }}</pre>
78
+ <pre
79
+ v-tooltip="shade.color.length > 23 ? shade.color : ''"
80
+ class="htw-my-0 htw-opacity-50 htw-truncate htw-shrink"
81
+ >{{ shade.color }}</pre>
72
82
  <HstCopyIcon
83
+ v-if="hover === shade.key"
73
84
  :content="shade.color"
74
- class="htw-hidden group-hover:htw-block"
85
+ class="htw-flex-none"
75
86
  />
76
87
  </div>
77
88
  </div>