@crewlethq/ui 0.33.0 → 0.34.1
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/README.md +18 -0
- package/dist/ArtifactBar/index.js +6 -4
- package/dist/ArtifactCard/ArtifactCard.d.ts +51 -11
- package/dist/ArtifactCard/index.d.ts +2 -2
- package/dist/ArtifactCard/index.js +3 -1
- package/dist/ArtifactCard-XHRLAL7C.css +289 -0
- package/dist/ArtifactCover/index.js +4 -2
- package/dist/ArtifactIcon/index.js +4 -2
- package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +53 -0
- package/dist/ArtifactKindIllustration/index.d.ts +3 -0
- package/dist/ArtifactKindIllustration/index.js +3 -0
- package/dist/ArtifactKindIllustration-4NG6IE3C.css +211 -0
- package/dist/Canvas/index.js +2 -2
- package/dist/CanvasBoard/index.js +4 -4
- package/dist/CanvasToolbar/index.js +3 -3
- package/dist/ChangeMark/index.js +3 -3
- package/dist/FactList/index.js +2 -2
- package/dist/LivePreview/LivePreview.d.ts +83 -0
- package/dist/LivePreview/budget.d.ts +50 -0
- package/dist/LivePreview/index.d.ts +5 -0
- package/dist/LivePreview/index.js +2 -0
- package/dist/LivePreview-SRO7KHO4.css +65 -0
- package/dist/OrgTable/index.js +1 -1
- package/dist/RichEditor/index.js +2 -2
- package/dist/SandboxedFrame/index.js +2 -2
- package/dist/Select/Select.d.ts +10 -0
- package/dist/Select/index.d.ts +1 -1
- package/dist/Select/index.js +1 -1
- package/dist/{Select-2P7AWUE4.css → Select-A54YS5EP.css} +29 -0
- package/dist/ShareDialog/index.js +2 -2
- package/dist/SheetGrid/SheetGrid.d.ts +4 -2
- package/dist/SheetGrid/index.js +4 -4
- package/dist/{SheetGrid-AKPUCK67.css → SheetGrid-GDPCCZ4V.css} +52 -11
- package/dist/SheetModel/index.js +1 -1
- package/dist/SheetModel/labels.d.ts +1 -1
- package/dist/Switcher/index.js +2 -2
- package/dist/TimeWindowPicker/index.js +2 -2
- package/dist/Tooltip/Tooltip.d.ts +12 -1
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.js +1 -1
- package/dist/TreeCanvas/index.js +3 -3
- package/dist/{chunk-22UEIXZE.js → chunk-3P4Y5RX6.js} +1 -1
- package/dist/{chunk-GLSOD5Z4.js → chunk-3Y56GQPM.js} +1 -1
- package/dist/{chunk-5FYPE5GL.js → chunk-6ZJ3N7QI.js} +5 -2
- package/dist/{chunk-2DHMVB5J.js → chunk-AORVEG5V.js} +1 -1
- package/dist/{chunk-UQGFHNDI.js → chunk-BQ7AKL2N.js} +3 -2
- package/dist/{chunk-ORT5IKHP.js → chunk-CCLNGVCM.js} +1 -1
- package/dist/{chunk-UNXLTJU7.js → chunk-CFAJP777.js} +1 -1
- package/dist/{chunk-G4ZW7A2W.js → chunk-EWAFN2IU.js} +33 -34
- package/dist/{chunk-7WHDPLVJ.js → chunk-HOIZ6MIS.js} +1 -1
- package/dist/{chunk-Z6GFMI2Z.js → chunk-IUD5VA2Z.js} +2 -2
- package/dist/chunk-KF6YGL4B.js +160 -0
- package/dist/{chunk-HH2GKAAE.js → chunk-PLDUNXAO.js} +1 -1
- package/dist/{chunk-ZNBLFCQS.js → chunk-SGHIAGPR.js} +2 -2
- package/dist/chunk-UDQW6UK7.js +129 -0
- package/dist/{chunk-4IJS5CPF.js → chunk-UHJQDFKQ.js} +1 -1
- package/dist/{chunk-J6ZSH3F5.js → chunk-VI5FWDZW.js} +2 -2
- package/dist/{chunk-MDNVHIB2.js → chunk-WPX6A5BV.js} +2 -2
- package/dist/chunk-XTOVADJU.js +170 -0
- package/dist/generated/index.d.ts +2 -0
- package/dist/generated/index.js +47 -45
- package/dist/index.js +47 -45
- package/dist/styles.css +544 -27
- package/package.json +3 -3
- package/dist/ArtifactCard-AS5Z4CVI.css +0 -124
- package/dist/chunk-DFZMYB5X.js +0 -108
- package/dist/{chunk-3U7S6ZUN.js → chunk-356JNSER.js} +1 -1
- package/dist/{chunk-MTMKIUWF.js → chunk-E4NNGC6X.js} +1 -1
- package/dist/{chunk-O37AQNLK.js → chunk-GMU6SQ6B.js} +1 -1
- /package/dist/{chunk-2JJIN6JN.js → chunk-YCARLYI6.js} +0 -0
package/dist/styles.css
CHANGED
|
@@ -2414,11 +2414,12 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2414
2414
|
}
|
|
2415
2415
|
|
|
2416
2416
|
|
|
2417
|
-
/* ArtifactCard-
|
|
2417
|
+
/* ArtifactCard-XHRLAL7C.css */
|
|
2418
2418
|
/*
|
|
2419
2419
|
* A card in a gallery: the preview on top at a fixed ratio, so a grid of them
|
|
2420
|
-
* lines up whatever each preview is,
|
|
2421
|
-
*
|
|
2420
|
+
* lines up whatever each preview is, the kind's badge over its foot, then the
|
|
2421
|
+
* title and one quiet line. `compact` is a row with the kind's glyph in place
|
|
2422
|
+
* of the preview, drawn on Card.
|
|
2422
2423
|
*/
|
|
2423
2424
|
|
|
2424
2425
|
/*
|
|
@@ -2444,17 +2445,6 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2444
2445
|
padding: var(--spacing-3);
|
|
2445
2446
|
}
|
|
2446
2447
|
|
|
2447
|
-
.crewlet-artifact-card__preview {
|
|
2448
|
-
display: flex;
|
|
2449
|
-
align-items: center;
|
|
2450
|
-
justify-content: center;
|
|
2451
|
-
aspect-ratio: 16 / 9;
|
|
2452
|
-
overflow: hidden;
|
|
2453
|
-
border-bottom: 1px solid var(--color-border-default);
|
|
2454
|
-
background: var(--color-surface-inset);
|
|
2455
|
-
color: var(--color-text-tertiary);
|
|
2456
|
-
}
|
|
2457
|
-
|
|
2458
2448
|
.crewlet-artifact-card__glyph {
|
|
2459
2449
|
display: inline-flex;
|
|
2460
2450
|
color: var(--color-text-tertiary);
|
|
@@ -2540,6 +2530,181 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2540
2530
|
font-weight: var(--font-weight-medium);
|
|
2541
2531
|
}
|
|
2542
2532
|
|
|
2533
|
+
/* ---- the gallery card ---- */
|
|
2534
|
+
|
|
2535
|
+
/*
|
|
2536
|
+
* A SOFT PANE WITH A GENEROUS CORNER. The card is the card rung with its
|
|
2537
|
+
* hairline, rounded a step past a plain card's because the preview inside it
|
|
2538
|
+
* is a picture, and a picture in a tight corner reads as a screenshot pasted
|
|
2539
|
+
* into a box. Hover lifts the edge and the shadow, never the colour.
|
|
2540
|
+
*/
|
|
2541
|
+
.crewlet-artifact-card--card {
|
|
2542
|
+
position: relative;
|
|
2543
|
+
display: flex;
|
|
2544
|
+
flex-direction: column;
|
|
2545
|
+
min-width: 0;
|
|
2546
|
+
border: 1px solid var(--color-border-default);
|
|
2547
|
+
border-radius: var(--radius-xl);
|
|
2548
|
+
background: var(--color-surface-subtle);
|
|
2549
|
+
transition:
|
|
2550
|
+
border-color var(--motion-duration-base) var(--motion-easing-out),
|
|
2551
|
+
box-shadow var(--motion-duration-base) var(--motion-easing-out),
|
|
2552
|
+
transform var(--motion-duration-base) var(--motion-easing-out);
|
|
2553
|
+
}
|
|
2554
|
+
|
|
2555
|
+
.crewlet-artifact-card--card:hover {
|
|
2556
|
+
border-color: var(--color-border-hover);
|
|
2557
|
+
box-shadow: var(--shadow-card);
|
|
2558
|
+
transform: translateY(-1px);
|
|
2559
|
+
}
|
|
2560
|
+
|
|
2561
|
+
.crewlet-artifact-card--card:has(.crewlet-artifact-card__link:focus-visible) {
|
|
2562
|
+
outline: 2px solid var(--color-focus);
|
|
2563
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
2564
|
+
}
|
|
2565
|
+
|
|
2566
|
+
.crewlet-artifact-card__link {
|
|
2567
|
+
display: flex;
|
|
2568
|
+
flex-direction: column;
|
|
2569
|
+
min-width: 0;
|
|
2570
|
+
border-radius: inherit;
|
|
2571
|
+
color: inherit;
|
|
2572
|
+
text-decoration: none;
|
|
2573
|
+
outline: none;
|
|
2574
|
+
}
|
|
2575
|
+
|
|
2576
|
+
.crewlet-artifact-card__preview {
|
|
2577
|
+
position: relative;
|
|
2578
|
+
display: flex;
|
|
2579
|
+
aspect-ratio: 16 / 9;
|
|
2580
|
+
overflow: hidden;
|
|
2581
|
+
border-bottom: 1px solid var(--color-border-default);
|
|
2582
|
+
border-radius: var(--radius-xl) var(--radius-xl) 0 0;
|
|
2583
|
+
background: var(--color-surface-inset);
|
|
2584
|
+
}
|
|
2585
|
+
|
|
2586
|
+
.crewlet-artifact-card__preview > * {
|
|
2587
|
+
flex: 1 1 auto;
|
|
2588
|
+
min-width: 0;
|
|
2589
|
+
}
|
|
2590
|
+
|
|
2591
|
+
.crewlet-artifact-card--trashed .crewlet-artifact-card__preview > * {
|
|
2592
|
+
opacity: 0.5;
|
|
2593
|
+
filter: grayscale(1);
|
|
2594
|
+
}
|
|
2595
|
+
|
|
2596
|
+
.crewlet-artifact-card--card .crewlet-artifact-card__body {
|
|
2597
|
+
gap: var(--spacing-1);
|
|
2598
|
+
padding: 0 var(--spacing-5) var(--spacing-5);
|
|
2599
|
+
}
|
|
2600
|
+
|
|
2601
|
+
/*
|
|
2602
|
+
* THE KIND'S BADGE STANDS ON THE PREVIEW'S FOOT, half over the picture and
|
|
2603
|
+
* half over the card, the glyph in the kind's ink: what the artifact is, read
|
|
2604
|
+
* before its title, in the one place every card has it.
|
|
2605
|
+
*/
|
|
2606
|
+
.crewlet-artifact-card__badge {
|
|
2607
|
+
position: relative;
|
|
2608
|
+
display: inline-flex;
|
|
2609
|
+
flex: none;
|
|
2610
|
+
align-items: center;
|
|
2611
|
+
justify-content: center;
|
|
2612
|
+
align-self: flex-start;
|
|
2613
|
+
width: 40px;
|
|
2614
|
+
height: 40px;
|
|
2615
|
+
margin-top: -22px;
|
|
2616
|
+
margin-bottom: var(--spacing-2);
|
|
2617
|
+
border: 1px solid var(--color-border-default);
|
|
2618
|
+
border-radius: var(--radius-lg);
|
|
2619
|
+
background: var(--color-surface-background);
|
|
2620
|
+
box-shadow: var(--shadow-sm);
|
|
2621
|
+
color: var(--crewlet-kind-ink, var(--color-text-secondary));
|
|
2622
|
+
}
|
|
2623
|
+
|
|
2624
|
+
.crewlet-artifact-card--card .crewlet-artifact-card__title {
|
|
2625
|
+
font-size: var(--font-size-lg);
|
|
2626
|
+
font-weight: var(--font-weight-medium);
|
|
2627
|
+
line-height: 1.35;
|
|
2628
|
+
}
|
|
2629
|
+
|
|
2630
|
+
.crewlet-artifact-card--card .crewlet-artifact-card__facts {
|
|
2631
|
+
font-size: var(--font-size-sm);
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2634
|
+
.crewlet-artifact-card__meta {
|
|
2635
|
+
flex-wrap: nowrap;
|
|
2636
|
+
white-space: nowrap;
|
|
2637
|
+
}
|
|
2638
|
+
|
|
2639
|
+
.crewlet-artifact-card__access {
|
|
2640
|
+
display: inline-flex;
|
|
2641
|
+
flex: none;
|
|
2642
|
+
align-items: center;
|
|
2643
|
+
}
|
|
2644
|
+
|
|
2645
|
+
.crewlet-artifact-card__meta > .crewlet-artifact-card__owner {
|
|
2646
|
+
flex: 0 1 auto;
|
|
2647
|
+
overflow: hidden;
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2650
|
+
.crewlet-artifact-card__owner-name {
|
|
2651
|
+
overflow: hidden;
|
|
2652
|
+
text-overflow: ellipsis;
|
|
2653
|
+
}
|
|
2654
|
+
|
|
2655
|
+
.crewlet-artifact-card__meta > :last-child {
|
|
2656
|
+
flex: none;
|
|
2657
|
+
}
|
|
2658
|
+
|
|
2659
|
+
/*
|
|
2660
|
+
* THE CARD'S OWN CONTROLS, over the preview's top corner and outside the
|
|
2661
|
+
* link: hidden until the card is hovered or holds focus, so a gallery rests
|
|
2662
|
+
* as pictures, and always there on a screen with no hover.
|
|
2663
|
+
*/
|
|
2664
|
+
.crewlet-artifact-card__actions {
|
|
2665
|
+
position: absolute;
|
|
2666
|
+
top: var(--spacing-3);
|
|
2667
|
+
right: var(--spacing-3);
|
|
2668
|
+
display: inline-flex;
|
|
2669
|
+
gap: var(--spacing-1);
|
|
2670
|
+
border-radius: var(--radius-md);
|
|
2671
|
+
background: var(--color-surface-background);
|
|
2672
|
+
box-shadow: var(--shadow-sm);
|
|
2673
|
+
opacity: 0;
|
|
2674
|
+
transition: opacity var(--motion-duration-fast) var(--motion-easing-out);
|
|
2675
|
+
}
|
|
2676
|
+
|
|
2677
|
+
.crewlet-artifact-card--card:hover .crewlet-artifact-card__actions,
|
|
2678
|
+
.crewlet-artifact-card--card:focus-within .crewlet-artifact-card__actions,
|
|
2679
|
+
.crewlet-artifact-card__actions:has([aria-expanded='true']) {
|
|
2680
|
+
opacity: 1;
|
|
2681
|
+
}
|
|
2682
|
+
|
|
2683
|
+
@media (hover: none) {
|
|
2684
|
+
.crewlet-artifact-card__actions {
|
|
2685
|
+
opacity: 1;
|
|
2686
|
+
}
|
|
2687
|
+
}
|
|
2688
|
+
|
|
2689
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2690
|
+
.crewlet-artifact-card--card,
|
|
2691
|
+
.crewlet-artifact-card__actions {
|
|
2692
|
+
transition: none;
|
|
2693
|
+
}
|
|
2694
|
+
|
|
2695
|
+
.crewlet-artifact-card--card:hover {
|
|
2696
|
+
transform: none;
|
|
2697
|
+
}
|
|
2698
|
+
}
|
|
2699
|
+
|
|
2700
|
+
.crewlet-artifact-card--skeleton {
|
|
2701
|
+
pointer-events: none;
|
|
2702
|
+
}
|
|
2703
|
+
|
|
2704
|
+
.crewlet-artifact-card--skeleton .crewlet-artifact-card__badge {
|
|
2705
|
+
box-shadow: none;
|
|
2706
|
+
}
|
|
2707
|
+
|
|
2543
2708
|
|
|
2544
2709
|
/* ArtifactCover-D4MBEJ5H.css */
|
|
2545
2710
|
/* The frame every native cover shares (DocCover, SheetCover, DashboardCover):
|
|
@@ -2611,6 +2776,220 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
2611
2776
|
}
|
|
2612
2777
|
|
|
2613
2778
|
|
|
2779
|
+
/* ArtifactKindIllustration-4NG6IE3C.css */
|
|
2780
|
+
/*
|
|
2781
|
+
* A kind's drawing, its tinted ground and the Make something new tile.
|
|
2782
|
+
*
|
|
2783
|
+
* Every colour is the kind's token, `--color-artifact-kind-<kind>` and its
|
|
2784
|
+
* Fill and Line steps, set once per kind on `--crewlet-kind-*` and read by
|
|
2785
|
+
* every rule below, so the drawing, the ground and the tile repaint together
|
|
2786
|
+
* with the theme.
|
|
2787
|
+
*/
|
|
2788
|
+
|
|
2789
|
+
.crewlet-kind--doc { --crewlet-kind-hue: var(--color-artifact-kind-doc); --crewlet-kind-fill: var(--color-artifact-kind-doc-fill); --crewlet-kind-line: var(--color-artifact-kind-doc-line); --crewlet-kind-ink: var(--color-artifact-kind-doc-ink); }
|
|
2790
|
+
.crewlet-kind--slides { --crewlet-kind-hue: var(--color-artifact-kind-slides); --crewlet-kind-fill: var(--color-artifact-kind-slides-fill); --crewlet-kind-line: var(--color-artifact-kind-slides-line); --crewlet-kind-ink: var(--color-artifact-kind-slides-ink); }
|
|
2791
|
+
.crewlet-kind--design { --crewlet-kind-hue: var(--color-artifact-kind-design); --crewlet-kind-fill: var(--color-artifact-kind-design-fill); --crewlet-kind-line: var(--color-artifact-kind-design-line); --crewlet-kind-ink: var(--color-artifact-kind-design-ink); }
|
|
2792
|
+
.crewlet-kind--dashboard { --crewlet-kind-hue: var(--color-artifact-kind-dashboard); --crewlet-kind-fill: var(--color-artifact-kind-dashboard-fill); --crewlet-kind-line: var(--color-artifact-kind-dashboard-line); --crewlet-kind-ink: var(--color-artifact-kind-dashboard-ink); }
|
|
2793
|
+
.crewlet-kind--html { --crewlet-kind-hue: var(--color-artifact-kind-html); --crewlet-kind-fill: var(--color-artifact-kind-html-fill); --crewlet-kind-line: var(--color-artifact-kind-html-line); --crewlet-kind-ink: var(--color-artifact-kind-html-ink); }
|
|
2794
|
+
.crewlet-kind--sheet { --crewlet-kind-hue: var(--color-artifact-kind-sheet); --crewlet-kind-fill: var(--color-artifact-kind-sheet-fill); --crewlet-kind-line: var(--color-artifact-kind-sheet-line); --crewlet-kind-ink: var(--color-artifact-kind-sheet-ink); }
|
|
2795
|
+
|
|
2796
|
+
/* ---- the drawing ---- */
|
|
2797
|
+
|
|
2798
|
+
.crewlet-kind-illustration {
|
|
2799
|
+
display: block;
|
|
2800
|
+
width: 100%;
|
|
2801
|
+
height: 100%;
|
|
2802
|
+
overflow: visible;
|
|
2803
|
+
}
|
|
2804
|
+
|
|
2805
|
+
/* THE FOUR WEIGHTS, each the kind's hue at a fixed opacity: the body is a
|
|
2806
|
+
translucent pane with a hairline edge, lines are content, a soft block is
|
|
2807
|
+
a picture or a bar, and the mark is the one solid thing the eye lands on. */
|
|
2808
|
+
.crewlet-kind-illustration .b {
|
|
2809
|
+
fill: var(--crewlet-kind-hue);
|
|
2810
|
+
fill-opacity: 0.14;
|
|
2811
|
+
stroke: var(--crewlet-kind-hue);
|
|
2812
|
+
stroke-opacity: 0.5;
|
|
2813
|
+
stroke-width: 1.5;
|
|
2814
|
+
}
|
|
2815
|
+
|
|
2816
|
+
.crewlet-kind-illustration .l {
|
|
2817
|
+
fill: var(--crewlet-kind-hue);
|
|
2818
|
+
fill-opacity: 0.45;
|
|
2819
|
+
}
|
|
2820
|
+
|
|
2821
|
+
.crewlet-kind-illustration .s {
|
|
2822
|
+
fill: var(--crewlet-kind-hue);
|
|
2823
|
+
fill-opacity: 0.62;
|
|
2824
|
+
}
|
|
2825
|
+
|
|
2826
|
+
.crewlet-kind-illustration .m {
|
|
2827
|
+
fill: var(--crewlet-kind-hue);
|
|
2828
|
+
}
|
|
2829
|
+
|
|
2830
|
+
/* A rule across the body (a window's bar, a grid's lines). */
|
|
2831
|
+
.crewlet-kind-illustration .r {
|
|
2832
|
+
fill: none;
|
|
2833
|
+
stroke: var(--crewlet-kind-hue);
|
|
2834
|
+
stroke-opacity: 0.3;
|
|
2835
|
+
stroke-width: 1.5;
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2838
|
+
/* A stroke drawn as a glyph: the angle brackets of a page of code. */
|
|
2839
|
+
.crewlet-kind-illustration .k {
|
|
2840
|
+
fill: none;
|
|
2841
|
+
stroke: var(--crewlet-kind-hue);
|
|
2842
|
+
stroke-linecap: round;
|
|
2843
|
+
stroke-linejoin: round;
|
|
2844
|
+
stroke-width: 5;
|
|
2845
|
+
}
|
|
2846
|
+
|
|
2847
|
+
.crewlet-kind-illustration .k--soft {
|
|
2848
|
+
stroke-opacity: 0.55;
|
|
2849
|
+
}
|
|
2850
|
+
|
|
2851
|
+
/* Cut out of a solid mark in the ground's colour: a checkbox's tick. */
|
|
2852
|
+
.crewlet-kind-illustration .c {
|
|
2853
|
+
fill: none;
|
|
2854
|
+
stroke: var(--color-surface-background);
|
|
2855
|
+
stroke-linecap: round;
|
|
2856
|
+
stroke-linejoin: round;
|
|
2857
|
+
stroke-width: 1.4;
|
|
2858
|
+
}
|
|
2859
|
+
|
|
2860
|
+
.crewlet-kind-illustration .c--fill {
|
|
2861
|
+
fill: var(--crewlet-kind-hue);
|
|
2862
|
+
fill-opacity: 0.4;
|
|
2863
|
+
stroke: none;
|
|
2864
|
+
}
|
|
2865
|
+
|
|
2866
|
+
/* ---- the ground ---- */
|
|
2867
|
+
|
|
2868
|
+
/*
|
|
2869
|
+
* THE KIND'S FILL OVER THE CARD, brightest at the top and settling into the
|
|
2870
|
+
* card at the foot, the way light falls on a tinted pane: a flat fill read as
|
|
2871
|
+
* a coloured box, and a hue strong enough to read on its own fought the
|
|
2872
|
+
* previews beside it.
|
|
2873
|
+
*/
|
|
2874
|
+
.crewlet-kind-ground {
|
|
2875
|
+
display: flex;
|
|
2876
|
+
align-items: center;
|
|
2877
|
+
justify-content: center;
|
|
2878
|
+
box-sizing: border-box;
|
|
2879
|
+
width: 100%;
|
|
2880
|
+
height: 100%;
|
|
2881
|
+
padding: 8% 10%;
|
|
2882
|
+
background:
|
|
2883
|
+
linear-gradient(180deg, var(--crewlet-kind-fill) 0%, transparent 115%),
|
|
2884
|
+
var(--color-surface-subtle);
|
|
2885
|
+
}
|
|
2886
|
+
|
|
2887
|
+
.crewlet-kind-ground > .crewlet-kind-illustration {
|
|
2888
|
+
max-width: 12rem;
|
|
2889
|
+
max-height: 100%;
|
|
2890
|
+
}
|
|
2891
|
+
|
|
2892
|
+
/* ---- the tile ---- */
|
|
2893
|
+
|
|
2894
|
+
.crewlet-kind-tile {
|
|
2895
|
+
display: flex;
|
|
2896
|
+
flex-direction: column;
|
|
2897
|
+
gap: var(--spacing-2);
|
|
2898
|
+
min-width: 0;
|
|
2899
|
+
color: var(--color-text-primary);
|
|
2900
|
+
text-decoration: none;
|
|
2901
|
+
outline: none;
|
|
2902
|
+
}
|
|
2903
|
+
|
|
2904
|
+
/*
|
|
2905
|
+
* A FRAME AROUND A PANE: the tile is a hairline ring with the tinted ground
|
|
2906
|
+
* set inside it a few pixels in, one radius step tighter, so the pane reads
|
|
2907
|
+
* as sitting in a holder rather than as a coloured rectangle.
|
|
2908
|
+
*/
|
|
2909
|
+
.crewlet-kind-tile__frame {
|
|
2910
|
+
display: block;
|
|
2911
|
+
box-sizing: border-box;
|
|
2912
|
+
aspect-ratio: 4 / 3;
|
|
2913
|
+
padding: 5px;
|
|
2914
|
+
border: 1px solid var(--color-border-default);
|
|
2915
|
+
border-radius: var(--radius-2xl);
|
|
2916
|
+
background: var(--color-surface-subtle);
|
|
2917
|
+
transition:
|
|
2918
|
+
border-color var(--motion-duration-base) var(--motion-easing-out),
|
|
2919
|
+
box-shadow var(--motion-duration-base) var(--motion-easing-out);
|
|
2920
|
+
}
|
|
2921
|
+
|
|
2922
|
+
.crewlet-kind-tile__ground {
|
|
2923
|
+
border-radius: var(--radius-xl);
|
|
2924
|
+
box-shadow: inset 0 0 0 1px var(--crewlet-kind-line);
|
|
2925
|
+
overflow: hidden;
|
|
2926
|
+
}
|
|
2927
|
+
|
|
2928
|
+
.crewlet-kind-tile__ground > .crewlet-kind-illustration {
|
|
2929
|
+
transition: transform var(--motion-duration-base) var(--motion-easing-out);
|
|
2930
|
+
}
|
|
2931
|
+
|
|
2932
|
+
.crewlet-kind-tile__label {
|
|
2933
|
+
display: flex;
|
|
2934
|
+
align-items: center;
|
|
2935
|
+
gap: var(--spacing-2);
|
|
2936
|
+
min-width: 0;
|
|
2937
|
+
padding-inline: var(--spacing-1);
|
|
2938
|
+
}
|
|
2939
|
+
|
|
2940
|
+
.crewlet-kind-tile__name {
|
|
2941
|
+
overflow: hidden;
|
|
2942
|
+
font-size: var(--font-size-md);
|
|
2943
|
+
font-weight: var(--font-weight-medium);
|
|
2944
|
+
line-height: 1.3;
|
|
2945
|
+
text-overflow: ellipsis;
|
|
2946
|
+
white-space: nowrap;
|
|
2947
|
+
}
|
|
2948
|
+
|
|
2949
|
+
.crewlet-kind-tile__badge {
|
|
2950
|
+
flex: none;
|
|
2951
|
+
padding: 1px var(--spacing-2);
|
|
2952
|
+
border-radius: var(--radius-sm);
|
|
2953
|
+
background: var(--crewlet-kind-fill);
|
|
2954
|
+
color: var(--color-text-secondary);
|
|
2955
|
+
font-size: var(--font-size-xs);
|
|
2956
|
+
font-weight: var(--font-weight-medium);
|
|
2957
|
+
}
|
|
2958
|
+
|
|
2959
|
+
a.crewlet-kind-tile:hover .crewlet-kind-tile__frame {
|
|
2960
|
+
border-color: var(--color-border-hover);
|
|
2961
|
+
}
|
|
2962
|
+
|
|
2963
|
+
a.crewlet-kind-tile:hover .crewlet-kind-tile__ground > .crewlet-kind-illustration {
|
|
2964
|
+
transform: translateY(-2px) scale(1.03);
|
|
2965
|
+
}
|
|
2966
|
+
|
|
2967
|
+
.crewlet-kind-tile:focus-visible .crewlet-kind-tile__frame {
|
|
2968
|
+
outline: 2px solid var(--color-focus);
|
|
2969
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
2970
|
+
}
|
|
2971
|
+
|
|
2972
|
+
.crewlet-kind-tile--disabled {
|
|
2973
|
+
cursor: not-allowed;
|
|
2974
|
+
}
|
|
2975
|
+
|
|
2976
|
+
.crewlet-kind-tile--disabled .crewlet-kind-tile__ground,
|
|
2977
|
+
.crewlet-kind-tile--disabled .crewlet-kind-tile__name {
|
|
2978
|
+
opacity: 0.55;
|
|
2979
|
+
}
|
|
2980
|
+
|
|
2981
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2982
|
+
.crewlet-kind-tile__frame,
|
|
2983
|
+
.crewlet-kind-tile__ground > .crewlet-kind-illustration {
|
|
2984
|
+
transition: none;
|
|
2985
|
+
}
|
|
2986
|
+
|
|
2987
|
+
a.crewlet-kind-tile:hover .crewlet-kind-tile__ground > .crewlet-kind-illustration {
|
|
2988
|
+
transform: none;
|
|
2989
|
+
}
|
|
2990
|
+
}
|
|
2991
|
+
|
|
2992
|
+
|
|
2614
2993
|
/* ArtifactPanel-HW3SU7CP.css */
|
|
2615
2994
|
/*
|
|
2616
2995
|
* The workspace is a row: the artifact's body, then at most one panel. The
|
|
@@ -15482,6 +15861,74 @@ svg.crewlet-datetime__chevron {
|
|
|
15482
15861
|
}
|
|
15483
15862
|
|
|
15484
15863
|
|
|
15864
|
+
/* LivePreview-SRO7KHO4.css */
|
|
15865
|
+
/*
|
|
15866
|
+
* A live preview: the stand-in and the live layer stacked in one box. The box
|
|
15867
|
+
* takes its size from its parent (a card's preview area), so it fills it and
|
|
15868
|
+
* clips whatever the content lays out past its edge.
|
|
15869
|
+
*/
|
|
15870
|
+
|
|
15871
|
+
.crewlet-live-preview {
|
|
15872
|
+
position: relative;
|
|
15873
|
+
display: block;
|
|
15874
|
+
width: 100%;
|
|
15875
|
+
height: 100%;
|
|
15876
|
+
overflow: hidden;
|
|
15877
|
+
contain: layout paint;
|
|
15878
|
+
}
|
|
15879
|
+
|
|
15880
|
+
.crewlet-live-preview__fallback {
|
|
15881
|
+
position: absolute;
|
|
15882
|
+
inset: 0;
|
|
15883
|
+
display: flex;
|
|
15884
|
+
transition: opacity var(--motion-duration-base) var(--motion-easing-out);
|
|
15885
|
+
}
|
|
15886
|
+
|
|
15887
|
+
.crewlet-live-preview__live {
|
|
15888
|
+
position: absolute;
|
|
15889
|
+
inset: 0;
|
|
15890
|
+
display: block;
|
|
15891
|
+
overflow: hidden;
|
|
15892
|
+
opacity: 0;
|
|
15893
|
+
pointer-events: none;
|
|
15894
|
+
user-select: none;
|
|
15895
|
+
transition: opacity var(--motion-duration-base) var(--motion-easing-out);
|
|
15896
|
+
}
|
|
15897
|
+
|
|
15898
|
+
/* LAID OUT AT ITS OWN SIZE from the top left corner, and scaled from there:
|
|
15899
|
+
to the box's width, its top left the box's, or whole and centred. */
|
|
15900
|
+
.crewlet-preview-scale {
|
|
15901
|
+
position: absolute;
|
|
15902
|
+
inset: 0;
|
|
15903
|
+
display: block;
|
|
15904
|
+
overflow: hidden;
|
|
15905
|
+
}
|
|
15906
|
+
|
|
15907
|
+
.crewlet-preview-scale__layer {
|
|
15908
|
+
position: absolute;
|
|
15909
|
+
top: 0;
|
|
15910
|
+
left: 0;
|
|
15911
|
+
display: block;
|
|
15912
|
+
overflow: hidden;
|
|
15913
|
+
transform-origin: 0 0;
|
|
15914
|
+
}
|
|
15915
|
+
|
|
15916
|
+
.crewlet-live-preview[data-state='ready'] > .crewlet-live-preview__live {
|
|
15917
|
+
opacity: 1;
|
|
15918
|
+
}
|
|
15919
|
+
|
|
15920
|
+
.crewlet-live-preview[data-state='ready'] > .crewlet-live-preview__fallback {
|
|
15921
|
+
opacity: 0;
|
|
15922
|
+
}
|
|
15923
|
+
|
|
15924
|
+
@media (prefers-reduced-motion: reduce) {
|
|
15925
|
+
.crewlet-live-preview__fallback,
|
|
15926
|
+
.crewlet-live-preview__live {
|
|
15927
|
+
transition: none;
|
|
15928
|
+
}
|
|
15929
|
+
}
|
|
15930
|
+
|
|
15931
|
+
|
|
15485
15932
|
/* MarkdownEditor-WOKV7CLK.css */
|
|
15486
15933
|
/*
|
|
15487
15934
|
* Writing markdown (MarkdownEditor.tsx): the bar, the source or its preview,
|
|
@@ -20656,7 +21103,7 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
20656
21103
|
}
|
|
20657
21104
|
|
|
20658
21105
|
|
|
20659
|
-
/* Select-
|
|
21106
|
+
/* Select-A54YS5EP.css */
|
|
20660
21107
|
/*
|
|
20661
21108
|
* Select: one chrome over two controls, and the product's only dropdown.
|
|
20662
21109
|
*
|
|
@@ -20756,6 +21203,35 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
20756
21203
|
border-color: var(--color-feedback-danger);
|
|
20757
21204
|
}
|
|
20758
21205
|
|
|
21206
|
+
/*
|
|
21207
|
+
* QUIET: no boundary and no fill at rest, the hover overlay under the
|
|
21208
|
+
* pointer, and the ring on focus as every field draws it. It sizes to its
|
|
21209
|
+
* answer with no floor, since a quiet picker in a toolbar reads as its words.
|
|
21210
|
+
* A quiet filter that is on takes the accent's soft fill under its accent ink,
|
|
21211
|
+
* so "this narrows the list" still shows without a box around it.
|
|
21212
|
+
*/
|
|
21213
|
+
.crewlet-select--quiet {
|
|
21214
|
+
--crewlet-select-auto-min-width: 0px;
|
|
21215
|
+
|
|
21216
|
+
border-color: transparent;
|
|
21217
|
+
background-color: transparent;
|
|
21218
|
+
}
|
|
21219
|
+
|
|
21220
|
+
.crewlet-select--quiet:hover {
|
|
21221
|
+
border-color: transparent;
|
|
21222
|
+
background-color: var(--color-surface-hover);
|
|
21223
|
+
}
|
|
21224
|
+
|
|
21225
|
+
.crewlet-select--quiet.is-open {
|
|
21226
|
+
background-color: var(--color-surface-hover);
|
|
21227
|
+
}
|
|
21228
|
+
|
|
21229
|
+
.crewlet-select--quiet.is-active,
|
|
21230
|
+
.crewlet-select--quiet.is-active:hover {
|
|
21231
|
+
border-color: transparent;
|
|
21232
|
+
background-color: var(--color-brand-accent-soft);
|
|
21233
|
+
}
|
|
21234
|
+
|
|
20759
21235
|
/* A refused picker keeps its colour while the reader is in it: the ring
|
|
20760
21236
|
covers the boundary, so a focus-coloured one would paint out the refusal.
|
|
20761
21237
|
See Input.css. */
|
|
@@ -21254,7 +21730,7 @@ svg.crewlet-select__chevron {
|
|
|
21254
21730
|
}
|
|
21255
21731
|
|
|
21256
21732
|
|
|
21257
|
-
/* SheetGrid-
|
|
21733
|
+
/* SheetGrid-GDPCCZ4V.css */
|
|
21258
21734
|
/*
|
|
21259
21735
|
* The editable sheet (SheetGrid.tsx) and its cells (cells.tsx).
|
|
21260
21736
|
*
|
|
@@ -21451,25 +21927,56 @@ svg.crewlet-select__chevron {
|
|
|
21451
21927
|
box-shadow: 0 0 0 2px var(--crewlet-presence-hue);
|
|
21452
21928
|
}
|
|
21453
21929
|
|
|
21930
|
+
/* THE GUTTER: one centred stack, so the number and the row's actions button
|
|
21931
|
+
take exactly the same place and swapping one for the other moves nothing.
|
|
21932
|
+
Its width is the component's fixed track (SHEET_ROW_NUMBER_WIDTH), which
|
|
21933
|
+
holds five tabular digits, so row 9 and row 10000 stand in one column. */
|
|
21454
21934
|
.crewlet-sheet-grid__rownum {
|
|
21935
|
+
display: grid;
|
|
21936
|
+
grid-template-areas: 'gutter';
|
|
21937
|
+
place-items: center;
|
|
21455
21938
|
color: var(--color-text-tertiary);
|
|
21456
21939
|
font-size: var(--font-size-xs);
|
|
21457
21940
|
font-variant-numeric: tabular-nums;
|
|
21458
21941
|
}
|
|
21459
21942
|
|
|
21460
|
-
|
|
21461
|
-
|
|
21943
|
+
.crewlet-sheet-grid__rownum-number,
|
|
21944
|
+
.crewlet-sheet-grid__row-actions {
|
|
21945
|
+
grid-area: gutter;
|
|
21946
|
+
}
|
|
21947
|
+
|
|
21948
|
+
/* THE ACTIONS BUTTON IS ALWAYS THERE, drawn clear until it is wanted, so a
|
|
21949
|
+
tap on the number opens the row's menu on a screen with no pointer to
|
|
21950
|
+
hover with. It shows, and the number gives way to it, under the pointer,
|
|
21951
|
+
on the row holding focus (the active cell, or the button itself) and while
|
|
21952
|
+
its menu is open. A row the reader has not entered keeps its number. */
|
|
21462
21953
|
.crewlet-sheet-grid__row-actions {
|
|
21463
|
-
position: absolute;
|
|
21464
|
-
top: 50%;
|
|
21465
|
-
inset-inline-end: 0;
|
|
21466
21954
|
display: inline-flex;
|
|
21467
|
-
|
|
21955
|
+
opacity: 0;
|
|
21956
|
+
}
|
|
21957
|
+
|
|
21958
|
+
.crewlet-sheet-grid__row:is(:hover, :focus-within) > .crewlet-sheet-grid__rownum > .crewlet-sheet-grid__row-actions,
|
|
21959
|
+
.crewlet-sheet-grid__rownum--open > .crewlet-sheet-grid__row-actions {
|
|
21960
|
+
opacity: 1;
|
|
21468
21961
|
}
|
|
21469
21962
|
|
|
21470
|
-
|
|
21471
|
-
|
|
21472
|
-
|
|
21963
|
+
.crewlet-sheet-grid__row:is(:hover, :focus-within) > .crewlet-sheet-grid__rownum--actions > .crewlet-sheet-grid__rownum-number,
|
|
21964
|
+
.crewlet-sheet-grid__rownum--open > .crewlet-sheet-grid__rownum-number {
|
|
21965
|
+
visibility: hidden;
|
|
21966
|
+
}
|
|
21967
|
+
|
|
21968
|
+
/* THE SELECTED ROWS' NUMBERS are marked as their cells are, and on the same
|
|
21969
|
+
condition (the reader is in the grid, or the selection spans more than one
|
|
21970
|
+
cell), the way a spreadsheet lights the row headers of a selection. The
|
|
21971
|
+
tint is laid over the gutter's own ground, which a sticky gutter needs: a
|
|
21972
|
+
translucent tint alone lets the values scrolling under it show through. */
|
|
21973
|
+
.crewlet-sheet-grid__grid:is(:focus-within, .crewlet-sheet-grid__grid--range) .crewlet-sheet-grid__rownum--selected {
|
|
21974
|
+
background: linear-gradient(var(--color-brand-accent-soft), var(--color-brand-accent-soft)) var(--color-surface-background);
|
|
21975
|
+
color: var(--color-brand-accent-ink);
|
|
21976
|
+
}
|
|
21977
|
+
|
|
21978
|
+
/* The active cell's history is the reader's tool while they are in the grid,
|
|
21979
|
+
not a mark on a sheet nobody has entered. */
|
|
21473
21980
|
.crewlet-sheet-grid__grid:not(:focus-within) .crewlet-sheet-grid__cell--history:not(:hover) > .crewlet-sheet-grid__history {
|
|
21474
21981
|
visibility: hidden;
|
|
21475
21982
|
}
|
|
@@ -21512,9 +22019,11 @@ svg.crewlet-select__chevron {
|
|
|
21512
22019
|
/* THE SELECTION IS TINTED WHILE THE READER IS IN THE GRID, or while it
|
|
21513
22020
|
spans more than one cell. A grid nobody has entered still holds its first
|
|
21514
22021
|
cell as the active one (the keys start there), and tinting it drew a stray
|
|
21515
|
-
highlight on every sheet as it opened.
|
|
22022
|
+
highlight on every sheet as it opened. The tint is laid over the cell's
|
|
22023
|
+
own ground: alone, a translucent tint on a frozen cell let the values
|
|
22024
|
+
scrolling under it show through. */
|
|
21516
22025
|
.crewlet-sheet-grid__grid:is(:focus-within, .crewlet-sheet-grid__grid--range) .crewlet-sheet-grid__cell--selected {
|
|
21517
|
-
background: var(--color-brand-accent-soft);
|
|
22026
|
+
background: linear-gradient(var(--color-brand-accent-soft), var(--color-brand-accent-soft)) var(--color-surface-background);
|
|
21518
22027
|
}
|
|
21519
22028
|
|
|
21520
22029
|
/* THE FROZEN EDGE once the grid is scrolled sideways: the columns that stay
|
|
@@ -22015,6 +22524,14 @@ svg.crewlet-select__chevron {
|
|
|
22015
22524
|
color: HighlightText;
|
|
22016
22525
|
}
|
|
22017
22526
|
|
|
22527
|
+
/* A selected row's number takes the selection's ink on the page's ground:
|
|
22528
|
+
on a Highlight ground the browser's backplate behind the digits drew
|
|
22529
|
+
them as a solid block. */
|
|
22530
|
+
.crewlet-sheet-grid__grid:is(:focus-within, .crewlet-sheet-grid__grid--range) .crewlet-sheet-grid__rownum--selected {
|
|
22531
|
+
background: Canvas;
|
|
22532
|
+
color: Highlight;
|
|
22533
|
+
}
|
|
22534
|
+
|
|
22018
22535
|
.crewlet-sheet-grid__rownum--present::before {
|
|
22019
22536
|
background: Highlight;
|
|
22020
22537
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewlethq/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.1",
|
|
4
4
|
"description": "Crewlet shared React components built on @crewlethq/tokens and @crewlethq/icons.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"clean": "rm -rf dist src/generated"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@crewlethq/icons": "0.
|
|
46
|
-
"@crewlethq/tokens": "0.
|
|
45
|
+
"@crewlethq/icons": "0.34.1",
|
|
46
|
+
"@crewlethq/tokens": "0.34.1",
|
|
47
47
|
"prosemirror-commands": "1.7.2",
|
|
48
48
|
"prosemirror-gapcursor": "1.4.1",
|
|
49
49
|
"prosemirror-history": "1.5.1",
|