rei-kit 0.18.2 → 0.20.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/pwa.js CHANGED
@@ -1,6 +1,6 @@
1
- import { a as addDays, f as todayKey, i as needsIosInstall, r as isInstalled, t as SettingsGroup_default } from "./SettingsGroup-DtEB_Hrd.js";
2
- import { n as BaseButton_default, t as SettingsRow_default } from "./SettingsRow-3lPRJbBZ.js";
1
+ import { a as addDays, f as todayKey, i as needsIosInstall, r as isInstalled, t as SettingsGroup_default } from "./SettingsGroup-JsD19V81.js";
3
2
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
3
+ import { n as BaseButton_default, t as SettingsRow_default } from "./SettingsRow-3lPRJbBZ.js";
4
4
  import { Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, ref, resolveDynamicComponent, toDisplayString, unref, withCtx } from "vue";
5
5
  import { CheckCircle2, Download, RefreshCw, Share, X } from "lucide-vue-next";
6
6
  //#region src/pwa/use-install.ts
package/dist/styles.css CHANGED
@@ -213,6 +213,412 @@
213
213
  opacity: 0;
214
214
  }
215
215
 
216
+ .rk-avatar[data-v-47586bec] {
217
+ display: grid;
218
+ place-items: center;
219
+ flex-shrink: 0;
220
+ overflow: hidden;
221
+ border-radius: var(--radius-cell);
222
+ border: 1px solid color-mix(in srgb, var(--color-hair) 70%, transparent);
223
+ background: var(--color-surface);
224
+ color: var(--color-ink-soft);
225
+ }
226
+ .is-sm[data-v-47586bec] {
227
+ width: 1.75rem;
228
+ height: 1.75rem;
229
+ }
230
+ .is-md[data-v-47586bec] {
231
+ width: 2.25rem;
232
+ height: 2.25rem;
233
+ }
234
+ .is-lg[data-v-47586bec] {
235
+ width: 3rem;
236
+ height: 3rem;
237
+ }
238
+ .rk-avatar-img[data-v-47586bec] {
239
+ width: 100%;
240
+ height: 100%;
241
+ object-fit: cover;
242
+ }
243
+ .rk-avatar-initials[data-v-47586bec] {
244
+ font-size: 0.75rem;
245
+ font-weight: 600;
246
+ line-height: 1;
247
+ color: var(--color-ink);
248
+ }
249
+ .is-lg .rk-avatar-initials[data-v-47586bec] {
250
+ font-size: 1rem;
251
+ }
252
+ .rk-avatar-figure[data-v-47586bec] {
253
+ width: 65%;
254
+ height: 65%;
255
+ }
256
+
257
+ .rk-menu[data-v-8ad05b3d] {
258
+ position: relative;
259
+ display: inline-flex;
260
+ }
261
+ .rk-menu-trigger[data-v-8ad05b3d] {
262
+ display: inline-flex;
263
+ border-radius: var(--radius-cell);
264
+ }
265
+ .rk-menu-trigger[data-v-8ad05b3d]:focus-visible {
266
+ outline: 2px solid var(--color-primary);
267
+ outline-offset: 2px;
268
+ }
269
+ .rk-menu-panel[data-v-8ad05b3d] {
270
+ position: absolute;
271
+ top: calc(100% + 0.5rem);
272
+ z-index: 50;
273
+ min-width: 12rem;
274
+ overflow: hidden;
275
+ border-radius: var(--radius-card);
276
+ border: 1px solid color-mix(in srgb, var(--color-hair) 70%, transparent);
277
+ background: var(--color-surface);
278
+ padding: 0.375rem;
279
+ box-shadow: 0 10px 24px -8px rgb(0 0 0 / 0.25);
280
+ }
281
+ .rk-menu-panel.is-end[data-v-8ad05b3d] {
282
+ right: 0;
283
+ }
284
+ .rk-menu-panel.is-start[data-v-8ad05b3d] {
285
+ left: 0;
286
+ }
287
+
288
+ /* The items belong to the caller, so this styles them by role rather than by
289
+ class: whatever they render, it lines up. */
290
+ .rk-menu-panel[data-v-8ad05b3d] [role='menuitem'] {
291
+ display: block;
292
+ width: 100%;
293
+ border-radius: var(--radius-cell);
294
+ padding: 0.5rem 0.75rem;
295
+ text-align: left;
296
+ font-size: 0.875rem;
297
+ color: var(--color-ink);
298
+ transition: background-color 150ms;
299
+ }
300
+ .rk-menu-panel[data-v-8ad05b3d] [role='menuitem']:hover {
301
+ background: var(--color-muted);
302
+ }
303
+ .rk-menu-panel[data-v-8ad05b3d] [role='menuitem']:focus-visible {
304
+ outline: 2px solid var(--color-primary);
305
+ outline-offset: -2px;
306
+ }
307
+ .rk-menu-panel[data-v-8ad05b3d] hr {
308
+ margin: 0.375rem 0;
309
+ height: 1px;
310
+ border: 0;
311
+ background: color-mix(in srgb, var(--color-hair) 70%, transparent);
312
+ }
313
+
314
+ .rk-combo[data-v-52b21155] {
315
+ position: relative;
316
+ display: flex;
317
+ flex-direction: column;
318
+ gap: 0.375rem;
319
+ }
320
+ .rk-combo-label[data-v-52b21155] {
321
+ font-size: 0.875rem;
322
+ font-weight: 500;
323
+ color: var(--color-ink);
324
+ }
325
+ .rk-combo-field[data-v-52b21155] {
326
+ position: relative;
327
+ display: flex;
328
+ align-items: center;
329
+ }
330
+
331
+ /* 16px, like every other text control here: iOS zooms the viewport when it
332
+ focuses a field under 16px and never zooms back. */
333
+ .rk-combo-input[data-v-52b21155] {
334
+ width: 100%;
335
+ height: 2.75rem;
336
+ border-radius: var(--radius-card);
337
+ border: 1px solid var(--color-hair);
338
+ background: var(--color-surface);
339
+ padding: 0 2rem 0 0.75rem;
340
+ font-size: 1rem;
341
+ color: var(--color-ink);
342
+ }
343
+ .rk-combo-input[data-v-52b21155]:focus-visible {
344
+ outline: 2px solid var(--color-primary);
345
+ outline-offset: -1px;
346
+ }
347
+ .rk-combo-input[data-v-52b21155]:disabled {
348
+ opacity: 0.5;
349
+ }
350
+ .rk-combo-toggle[data-v-52b21155] {
351
+ position: absolute;
352
+ right: 0.5rem;
353
+ color: var(--color-ink-soft);
354
+ font-size: 0.75rem;
355
+ }
356
+ .rk-combo-list[data-v-52b21155] {
357
+ position: absolute;
358
+ top: calc(100% - 1.25rem);
359
+ z-index: 50;
360
+ max-height: 14rem;
361
+ width: 100%;
362
+ overflow-y: auto;
363
+ border-radius: var(--radius-card);
364
+ border: 1px solid var(--color-hair);
365
+ background: var(--color-surface);
366
+ padding: 0.25rem;
367
+ box-shadow: 0 10px 24px -8px rgb(0 0 0 / 0.25);
368
+ }
369
+ .rk-combo-option[data-v-52b21155] {
370
+ cursor: pointer;
371
+ border-radius: var(--radius-cell);
372
+ padding: 0.5rem 0.625rem;
373
+ font-size: 0.875rem;
374
+ color: var(--color-ink);
375
+ }
376
+ .rk-combo-option.is-highlighted[data-v-52b21155] {
377
+ background: var(--color-muted);
378
+ }
379
+ .rk-combo-option.is-selected[data-v-52b21155] {
380
+ font-weight: 600;
381
+ }
382
+ .rk-combo-empty[data-v-52b21155] {
383
+ padding: 0.75rem 0.625rem;
384
+ font-size: 0.875rem;
385
+ color: var(--color-ink-soft);
386
+ }
387
+ .rk-combo-error[data-v-52b21155] {
388
+ font-size: 0.75rem;
389
+ color: var(--color-negative);
390
+ }
391
+ .rk-combo-hint[data-v-52b21155] {
392
+ font-size: 0.75rem;
393
+ color: var(--color-ink-soft);
394
+ }
395
+
396
+ .rk-slider[data-v-0a408519] {
397
+ display: flex;
398
+ flex-direction: column;
399
+ gap: 0.5rem;
400
+ }
401
+ .rk-slider-head[data-v-0a408519] {
402
+ display: flex;
403
+ align-items: baseline;
404
+ justify-content: space-between;
405
+ gap: 1rem;
406
+ }
407
+ .rk-slider-label[data-v-0a408519] {
408
+ font-size: 0.875rem;
409
+ font-weight: 500;
410
+ color: var(--color-ink);
411
+ }
412
+ .rk-slider-value[data-v-0a408519] {
413
+ font-size: 0.875rem;
414
+ color: var(--color-ink-soft);
415
+ font-variant-numeric: tabular-nums;
416
+ }
417
+ .rk-slider-input[data-v-0a408519] {
418
+ width: 100%;
419
+ height: 1.25rem;
420
+ appearance: none;
421
+ background: transparent;
422
+ cursor: pointer;
423
+ }
424
+ .rk-slider-input[data-v-0a408519]:disabled {
425
+ opacity: 0.5;
426
+ cursor: default;
427
+ }
428
+
429
+ /* The two engines will not accept these in one rule: an unknown pseudo-element
430
+ invalidates the whole selector, so WebKit and Firefox are written twice. */
431
+ .rk-slider-input[data-v-0a408519]::-webkit-slider-runnable-track {
432
+ height: 0.375rem;
433
+ border-radius: 9999px;
434
+ background: linear-gradient(
435
+ to right,
436
+ var(--color-primary) var(--rk-slider-filled, 0%),
437
+ var(--color-hair) var(--rk-slider-filled, 0%)
438
+ );
439
+ }
440
+ .rk-slider-input[data-v-0a408519]::-moz-range-track {
441
+ height: 0.375rem;
442
+ border-radius: 9999px;
443
+ background: var(--color-hair);
444
+ }
445
+ .rk-slider-input[data-v-0a408519]::-moz-range-progress {
446
+ height: 0.375rem;
447
+ border-radius: 9999px;
448
+ background: var(--color-primary);
449
+ }
450
+ .rk-slider-input[data-v-0a408519]::-webkit-slider-thumb {
451
+ appearance: none;
452
+ margin-top: -0.4375rem;
453
+ width: 1.25rem;
454
+ height: 1.25rem;
455
+ border-radius: 9999px;
456
+ background: #fff;
457
+ border: 2px solid var(--color-primary);
458
+ box-shadow: 0 1px 3px rgb(0 0 0 / 0.25);
459
+ }
460
+ .rk-slider-input[data-v-0a408519]::-moz-range-thumb {
461
+ width: 1.25rem;
462
+ height: 1.25rem;
463
+ border: 2px solid var(--color-primary);
464
+ border-radius: 9999px;
465
+ background: #fff;
466
+ box-shadow: 0 1px 3px rgb(0 0 0 / 0.25);
467
+ }
468
+ .rk-slider-input[data-v-0a408519]:focus-visible::-webkit-slider-thumb {
469
+ outline: 2px solid var(--color-primary);
470
+ outline-offset: 2px;
471
+ }
472
+ .rk-slider-input[data-v-0a408519]:focus-visible::-moz-range-thumb {
473
+ outline: 2px solid var(--color-primary);
474
+ outline-offset: 2px;
475
+ }
476
+ .rk-slider-hint[data-v-0a408519] {
477
+ font-size: 0.75rem;
478
+ color: var(--color-ink-soft);
479
+ }
480
+
481
+ .rk-spin-wrap[data-v-842da62c] {
482
+ display: inline-flex;
483
+ align-items: center;
484
+ }
485
+ .rk-spin[data-v-842da62c] {
486
+ display: block;
487
+ border-radius: 9999px;
488
+ border: 2px solid color-mix(in srgb, currentColor 20%, transparent);
489
+ border-top-color: currentColor;
490
+ animation: rk-spin-842da62c 700ms linear infinite;
491
+ }
492
+ .rk-spin-label[data-v-842da62c] {
493
+ position: absolute;
494
+ width: 1px;
495
+ height: 1px;
496
+ overflow: hidden;
497
+ clip-path: inset(50%);
498
+ white-space: nowrap;
499
+ }
500
+ @keyframes rk-spin-842da62c {
501
+ to {
502
+ transform: rotate(360deg);
503
+ }
504
+ }
505
+
506
+ /* Still moving, because a spinner that does not move says the app has hung --
507
+ but a slow fade rather than a fast rotation. */
508
+ @media (prefers-reduced-motion: reduce) {
509
+ .rk-spin[data-v-842da62c] {
510
+ animation: rk-pulse-842da62c 1.4s ease-in-out infinite;
511
+ }
512
+ @keyframes rk-pulse-842da62c {
513
+ 50% {
514
+ opacity: 0.35;
515
+ }
516
+ }
517
+ }
518
+
519
+ .rk-switch[data-v-a9f65b91] {
520
+ position: relative;
521
+ display: inline-flex;
522
+ flex-shrink: 0;
523
+ align-items: center;
524
+ width: 2.75rem;
525
+ height: 1.625rem;
526
+ border-radius: 9999px;
527
+ background: var(--color-hair);
528
+ transition: background-color 180ms ease;
529
+ }
530
+ .rk-switch.is-on[data-v-a9f65b91] {
531
+ background: var(--color-primary);
532
+ }
533
+ .rk-switch[data-v-a9f65b91]:focus-visible {
534
+ outline: 2px solid var(--color-primary);
535
+ outline-offset: 2px;
536
+ }
537
+ .rk-switch[data-v-a9f65b91]:disabled {
538
+ opacity: 0.5;
539
+ pointer-events: none;
540
+ }
541
+ .rk-switch-knob[data-v-a9f65b91] {
542
+ position: absolute;
543
+ left: 0.1875rem;
544
+ width: 1.25rem;
545
+ height: 1.25rem;
546
+ border-radius: 9999px;
547
+ background: #fff;
548
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.25);
549
+ transition: transform 180ms cubic-bezier(0.32, 0.72, 0, 1);
550
+ }
551
+ .rk-switch.is-on .rk-switch-knob[data-v-a9f65b91] {
552
+ transform: translateX(1.125rem);
553
+ }
554
+ @media (prefers-reduced-motion: reduce) {
555
+ .rk-switch[data-v-a9f65b91],
556
+ .rk-switch-knob[data-v-a9f65b91] {
557
+ transition: none;
558
+ }
559
+ }
560
+
561
+ .rk-table-scroll[data-v-89958b5a] {
562
+ overflow-x: auto;
563
+ }
564
+ .rk-table-scroll[data-v-89958b5a]:focus-visible {
565
+ outline: 2px solid var(--color-primary);
566
+ outline-offset: 2px;
567
+ border-radius: var(--radius-cell);
568
+ }
569
+ .rk-table[data-v-89958b5a] {
570
+ width: 100%;
571
+ border-collapse: collapse;
572
+ font-size: 0.875rem;
573
+ }
574
+ .rk-table-caption[data-v-89958b5a] {
575
+ padding-bottom: 0.75rem;
576
+ text-align: left;
577
+ font-size: 0.8125rem;
578
+ color: var(--color-ink-soft);
579
+ }
580
+
581
+ /* Off screen rather than `display: none`, which is not announced at all. */
582
+ .rk-table-caption-hidden[data-v-89958b5a] {
583
+ position: absolute;
584
+ width: 1px;
585
+ height: 1px;
586
+ overflow: hidden;
587
+ clip-path: inset(50%);
588
+ white-space: nowrap;
589
+ }
590
+ .rk-table th[data-v-89958b5a] {
591
+ border-bottom: 1px solid var(--color-hair);
592
+ padding: 0.625rem 0.75rem;
593
+ text-align: left;
594
+ font-weight: 500;
595
+ color: var(--color-ink-soft);
596
+ white-space: nowrap;
597
+ }
598
+ .rk-table td[data-v-89958b5a] {
599
+ border-bottom: 1px solid color-mix(in srgb, var(--color-hair) 50%, transparent);
600
+ padding: 0.75rem;
601
+ color: var(--color-ink);
602
+ vertical-align: top;
603
+ }
604
+ .rk-table tbody tr:last-child td[data-v-89958b5a] {
605
+ border-bottom: 0;
606
+ }
607
+
608
+ /* Numbers line up on their last digit, which is the one being compared. */
609
+ .is-end[data-v-89958b5a] {
610
+ text-align: right;
611
+ font-variant-numeric: tabular-nums;
612
+ }
613
+ .is-nowrap[data-v-89958b5a] {
614
+ white-space: nowrap;
615
+ }
616
+ .rk-table-empty[data-v-89958b5a] {
617
+ padding: 2rem 0.75rem;
618
+ text-align: center;
619
+ color: var(--color-ink-soft);
620
+ }
621
+
216
622
  /* Movement is small and downward from the top, upward from the bottom — the
217
623
  direction it came from either way. */
218
624
  .toast-enter-active[data-v-f1a3439c],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rei-kit",
3
- "version": "0.18.2",
3
+ "version": "0.20.0",
4
4
  "description": "Vue 3 and Tailwind 4 design system and shared runtime. Extracted from Hibi.",
5
5
  "license": "MIT",
6
6
  "author": "Ramazan Doğan",
@@ -49,8 +49,8 @@
49
49
  "dev": "vite build --watch",
50
50
  "build": "run-s type-check build-only",
51
51
  "build-only": "vite build && node scripts/verify-bundle.mjs",
52
- "showcase": "vite --config vite.showcase.config.ts",
53
- "showcase:build": "vite build --config vite.showcase.config.ts",
52
+ "showcase": "node scripts/extract-props.mjs && vite --config vite.showcase.config.ts",
53
+ "showcase:build": "node scripts/extract-props.mjs && vite build --config vite.showcase.config.ts",
54
54
  "type-check": "vue-tsc --build",
55
55
  "test:unit": "vitest",
56
56
  "test:ci": "vitest run",