@crewlethq/ui 0.27.0 → 0.28.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.
Files changed (77) hide show
  1. package/README.md +27 -1
  2. package/dist/AppShell/index.js +3 -3
  3. package/dist/ArrangeGrid/ArrangeGrid.d.ts +22 -0
  4. package/dist/ArrangeGrid/index.d.ts +3 -0
  5. package/dist/ArrangeGrid/index.js +2 -0
  6. package/dist/ArrangeGrid-XM4ZFTED.css +17 -0
  7. package/dist/ArrangeGroup/index.js +1 -1
  8. package/dist/{ArrangeGroup-SHFHA7BE.css → ArrangeGroup-GY5YMP6E.css} +3 -4
  9. package/dist/Canvas/index.js +2 -2
  10. package/dist/CanvasBoard/index.js +4 -4
  11. package/dist/Charts/index.js +1 -1
  12. package/dist/{Charts-JYW4X5ZL.css → Charts-RY4JN5FC.css} +12 -0
  13. package/dist/CommandPalette/index.js +3 -3
  14. package/dist/DataTable/DataTable.d.ts +9 -0
  15. package/dist/DataTable/index.js +4 -4
  16. package/dist/DataView/index.js +9 -9
  17. package/dist/DatasetSource/index.js +1 -1
  18. package/dist/{DatasetSource-47LBDMPR.css → DatasetSource-XFPZBRXL.css} +12 -4
  19. package/dist/DateTimePicker/index.js +3 -3
  20. package/dist/FollowBanner/index.js +2 -2
  21. package/dist/LinkInterstitial/index.js +3 -3
  22. package/dist/Menu/index.js +2 -2
  23. package/dist/Modal/index.js +2 -2
  24. package/dist/Note/Note.d.ts +10 -0
  25. package/dist/Note/index.js +1 -1
  26. package/dist/{Note-RT4L6VUT.css → Note-ONSKKTOA.css} +10 -0
  27. package/dist/PeopleRail/index.js +1 -1
  28. package/dist/PresenceStack/index.js +1 -1
  29. package/dist/PresenterView/index.js +3 -3
  30. package/dist/ShareDialog/index.js +4 -4
  31. package/dist/SheetGrid/index.js +4 -4
  32. package/dist/SlideCompare/index.js +3 -3
  33. package/dist/SlideFilmstrip/index.js +2 -2
  34. package/dist/SlideGrid/index.js +2 -2
  35. package/dist/SlideStage/index.js +1 -1
  36. package/dist/SlideStage/useSlideKeys.d.ts +9 -0
  37. package/dist/Switcher/index.js +4 -4
  38. package/dist/TimeWindowPicker/index.js +3 -3
  39. package/dist/TreeCanvas/index.js +3 -3
  40. package/dist/WidgetFrame/WidgetFrame.d.ts +14 -1
  41. package/dist/WidgetFrame/index.js +1 -1
  42. package/dist/WidgetFrame-LRZIL62O.css +206 -0
  43. package/dist/{chunk-TD2MIINY.js → chunk-3C3BRIMY.js} +1 -1
  44. package/dist/{chunk-MLT2HBPN.js → chunk-77DRMDXR.js} +7 -2
  45. package/dist/{chunk-BQYQWJPK.js → chunk-AAOH2P6Y.js} +8 -2
  46. package/dist/{chunk-33Z2SEDQ.js → chunk-ALMSY7RL.js} +1 -1
  47. package/dist/{chunk-35XVR5JQ.js → chunk-B4EBHPK3.js} +2 -2
  48. package/dist/chunk-CJKMURZO.js +31 -0
  49. package/dist/{chunk-INTEH4F3.js → chunk-CT4EZF62.js} +2 -2
  50. package/dist/{chunk-SVW3VG72.js → chunk-EBJREOKS.js} +5 -4
  51. package/dist/{chunk-GTLJXJ3U.js → chunk-HCKJGBQH.js} +1 -1
  52. package/dist/{chunk-5OY4LJFH.js → chunk-HVNTQ36V.js} +2 -2
  53. package/dist/{chunk-3D7PSL2L.js → chunk-JODJS7MR.js} +2 -2
  54. package/dist/{chunk-URUGEAFB.js → chunk-JQLTG4KH.js} +1 -1
  55. package/dist/{chunk-UOPHR5CE.js → chunk-LR5QTFOE.js} +1 -1
  56. package/dist/{chunk-VCRFFIYI.js → chunk-O63MWA4G.js} +18 -13
  57. package/dist/{chunk-CTHM6YSJ.js → chunk-OGAAHVF6.js} +1 -1
  58. package/dist/chunk-QBA5B2Z5.js +17 -0
  59. package/dist/{chunk-RSC7UJCR.js → chunk-S6VG5ZFZ.js} +1 -1
  60. package/dist/{chunk-OJRDEVHV.js → chunk-VOMYRJV5.js} +4 -4
  61. package/dist/{chunk-BFQK7CYJ.js → chunk-WENCSQ47.js} +1 -1
  62. package/dist/{chunk-ZZDY4XL7.js → chunk-ZB5O3ELS.js} +12 -12
  63. package/dist/{chunk-L2OQRPXJ.js → chunk-ZR5VN5IV.js} +1 -1
  64. package/dist/generated/index.d.ts +1 -0
  65. package/dist/generated/index.js +62 -61
  66. package/dist/index.js +62 -61
  67. package/dist/styles.css +148 -20
  68. package/package.json +3 -3
  69. package/dist/WidgetFrame-4EFJOJMW.css +0 -127
  70. package/dist/chunk-63WJLRB2.js +0 -24
  71. package/dist/{chunk-UFKUWVMV.js → chunk-2HIOJ4YZ.js} +1 -1
  72. package/dist/{chunk-F4DPAJCN.js → chunk-I3KKZ2O3.js} +1 -1
  73. package/dist/{chunk-FW7HN6AP.js → chunk-LDJ3J4TQ.js} +1 -1
  74. package/dist/{chunk-SLRKS5PF.js → chunk-NWW4IQJU.js} +0 -0
  75. package/dist/{chunk-KZOGQXSP.js → chunk-OJ45PPCV.js} +1 -1
  76. package/dist/{chunk-LREN6TUG.js → chunk-UZ6MA2V6.js} +2 -2
  77. package/dist/{chunk-WG5WUFBX.js → chunk-Y5NQ2LMS.js} +1 -1
package/dist/styles.css CHANGED
@@ -1704,7 +1704,27 @@ button.crewlet-account-row__who:focus-visible {
1704
1704
  }
1705
1705
 
1706
1706
 
1707
- /* ArrangeGroup-SHFHA7BE.css */
1707
+ /* ArrangeGrid-XM4ZFTED.css */
1708
+ /*
1709
+ * ArrangeGrid: the page grid a board's blocks stand on. Equal columns, the
1710
+ * board's gap between them, and each block stretched to its row's height, so
1711
+ * the cards in one row share their bottom edge.
1712
+ */
1713
+ .crewlet-arrange-grid {
1714
+ display: grid;
1715
+ grid-template-columns: repeat(var(--crewlet-arrange-columns, 12), minmax(0, 1fr));
1716
+ gap: var(--crewlet-arrange-board-gap, var(--spacing-4));
1717
+ align-items: stretch;
1718
+ }
1719
+
1720
+ /* More room between rows while the page is arranged: each block's toolbar
1721
+ sits on its top edge, half in the gap above it. */
1722
+ .crewlet-arrange-board.is-editing .crewlet-arrange-grid {
1723
+ row-gap: var(--spacing-5);
1724
+ }
1725
+
1726
+
1727
+ /* ArrangeGroup-GY5YMP6E.css */
1708
1728
  /*
1709
1729
  * ArrangeGroup: a titled band of blocks. The hue is the header's; the body
1710
1730
  * stays the page's ground, so the cards inside keep their own contrast.
@@ -1839,11 +1859,10 @@ button.crewlet-account-row__who:focus-visible {
1839
1859
  margin-inline-start: auto;
1840
1860
  }
1841
1861
 
1862
+ /* The body is the page's grid (ArrangeGrid's `.crewlet-arrange-grid`), inside
1863
+ the group: the same columns and gap, so a block is one width on the page
1864
+ and in a group. */
1842
1865
  .crewlet-arrange-group__body {
1843
- display: grid;
1844
- grid-template-columns: repeat(var(--crewlet-arrange-columns, 12), minmax(0, 1fr));
1845
- gap: var(--spacing-4);
1846
- align-items: stretch;
1847
1866
  padding: var(--spacing-4);
1848
1867
  min-height: 5rem;
1849
1868
  }
@@ -4761,7 +4780,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
4761
4780
  }
4762
4781
 
4763
4782
 
4764
- /* Charts-JYW4X5ZL.css */
4783
+ /* Charts-RY4JN5FC.css */
4765
4784
  /* The chart kit: a legend, a ranked bar list, a stacked bar, stacked
4766
4785
  columns, an activity strip, a time series and the reading layer they share. Hand-drawn rather than a charting library, for one reason that
4767
4786
  decides it: every mark here reads tokens, in two themes, at the contrast
@@ -5197,11 +5216,23 @@ a.crewlet-breadcrumb__crumb:focus-visible {
5197
5216
  height: 0;
5198
5217
  font-family: var(--font-family-mono);
5199
5218
  font-size: var(--font-size-2xs);
5219
+ line-height: var(--font-line-height-tight);
5200
5220
  color: var(--color-text-tertiary);
5201
5221
  font-variant-numeric: tabular-nums;
5202
5222
  white-space: nowrap;
5203
5223
  }
5204
5224
 
5225
+ /*
5226
+ * THE TOP TICK STANDS ON THE PLOT'S TOP EDGE, centred on it, so half its line
5227
+ * sits above the plot. Under a head row that half falls in the row; with no
5228
+ * head it fell outside the figure, and a container that clips its content
5229
+ * (a dashboard widget's body) cut the axis's top value in half. The figure
5230
+ * keeps that half line above the plot itself.
5231
+ */
5232
+ .crewlet-stacked-columns--headless {
5233
+ padding-block-start: calc(var(--font-size-2xs) * var(--font-line-height-tight) / 2);
5234
+ }
5235
+
5205
5236
  .crewlet-stacked-columns__plot {
5206
5237
  position: relative;
5207
5238
  display: flex;
@@ -9703,7 +9734,7 @@ body.crewlet-data-table-resizing {
9703
9734
  }
9704
9735
 
9705
9736
 
9706
- /* DatasetSource-47LBDMPR.css */
9737
+ /* DatasetSource-XFPZBRXL.css */
9707
9738
  /*
9708
9739
  * DatasetSource: one entry of a dashboard's Sources rail. The title and its
9709
9740
  * source kind, the definition, then where the rows stand, how many there are
@@ -9767,7 +9798,9 @@ button.crewlet-dataset-source__summary:focus-visible {
9767
9798
  overflow: hidden;
9768
9799
  color: var(--color-text-primary);
9769
9800
  font-size: var(--font-size-sm);
9770
- font-weight: var(--font-weight-semibold);
9801
+ /* Medium, not semibold: the rail is the board's footnotes, and a column of
9802
+ semibold titles beside it outweighed the figures' own. */
9803
+ font-weight: var(--font-weight-medium);
9771
9804
  line-height: var(--font-line-height-snug);
9772
9805
  text-overflow: ellipsis;
9773
9806
  white-space: nowrap;
@@ -9799,9 +9832,15 @@ button.crewlet-dataset-source__summary:focus-visible {
9799
9832
  color: var(--color-text-secondary);
9800
9833
  }
9801
9834
 
9802
- /* The separators are drawn, not typed, so a screen reader hears the facts alone. */
9803
- .crewlet-dataset-source__rows::before,
9804
- .crewlet-dataset-source__refresh::before {
9835
+ /* How the rows are kept current, on the quiet step under the facts. */
9836
+ .crewlet-dataset-source__refresh {
9837
+ color: var(--color-text-tertiary);
9838
+ font-size: var(--font-size-xs);
9839
+ line-height: var(--font-line-height-snug);
9840
+ }
9841
+
9842
+ /* The separator is drawn, not typed, so a screen reader hears the facts alone. */
9843
+ .crewlet-dataset-source__rows::before {
9805
9844
  content: '\00b7' / '';
9806
9845
  margin-inline-end: var(--spacing-2);
9807
9846
  }
@@ -15152,7 +15191,7 @@ svg.crewlet-datetime__chevron {
15152
15191
  }
15153
15192
 
15154
15193
 
15155
- /* Note-RT4L6VUT.css */
15194
+ /* Note-ONSKKTOA.css */
15156
15195
  /*
15157
15196
  * Note: words on a coloured paper. Each hue pairs its fill with its own ink.
15158
15197
  */
@@ -15196,6 +15235,16 @@ svg.crewlet-datetime__chevron {
15196
15235
  letter-spacing: var(--font-letter-spacing-tight);
15197
15236
  }
15198
15237
 
15238
+ /* The note's name, at a card title's step, in the note's own ink. */
15239
+ .crewlet-note__heading {
15240
+ margin: 0 0 var(--spacing-2);
15241
+ font-size: var(--font-size-sm);
15242
+ font-weight: var(--font-weight-semibold);
15243
+ letter-spacing: var(--font-letter-spacing-tight);
15244
+ line-height: var(--font-line-height-snug);
15245
+ text-wrap: balance;
15246
+ }
15247
+
15199
15248
  /* Prose inside takes the note's ink, links included. */
15200
15249
  .crewlet-note :is(p, li, h2, h3, h4, strong, em) {
15201
15250
  color: inherit;
@@ -26678,7 +26727,7 @@ svg.crewlet-time-window__tick {
26678
26727
  }
26679
26728
 
26680
26729
 
26681
- /* WidgetFrame-4EFJOJMW.css */
26730
+ /* WidgetFrame-LRZIL62O.css */
26682
26731
  /*
26683
26732
  * WidgetFrame: one figure on a dashboard. A title row, the figure filling the
26684
26733
  * height the host's frame gives it, and the citation line at the foot.
@@ -26688,24 +26737,44 @@ svg.crewlet-time-window__tick {
26688
26737
  box-sizing: border-box;
26689
26738
  display: flex;
26690
26739
  flex-direction: column;
26691
- gap: var(--spacing-2);
26740
+ gap: var(--spacing-3);
26692
26741
  min-width: 0;
26693
26742
  height: 100%;
26694
26743
  min-height: 0;
26695
- padding: var(--spacing-3) var(--spacing-4);
26744
+ /* THE CARD'S OWN INSET, set on each part rather than on the frame, so a
26745
+ flush figure can give up its sides while the title and the citation keep
26746
+ theirs. */
26747
+ padding-block: var(--spacing-4);
26748
+ /* THE CARD RECIPE: the ground, the hairline and the corner every card on a
26749
+ board stands on, so a figure and the cards around it are one object. */
26696
26750
  border: 1px solid var(--color-border-default);
26697
26751
  border-radius: var(--radius-lg);
26698
- background: var(--color-surface-elevated);
26752
+ background: var(--color-surface-subtle);
26753
+ /* Measured by its own width, for the citation below. */
26754
+ container: crewlet-widget-frame / inline-size;
26755
+ }
26756
+
26757
+ .crewlet-widget-frame__head,
26758
+ .crewlet-widget-frame__body,
26759
+ .crewlet-widget-frame__cite {
26760
+ padding-inline: var(--spacing-4);
26699
26761
  }
26700
26762
 
26701
26763
  .crewlet-widget-frame__head {
26702
26764
  display: flex;
26703
- align-items: center;
26765
+ align-items: flex-start;
26704
26766
  gap: var(--spacing-2);
26705
26767
  min-width: 0;
26706
26768
  }
26707
26769
 
26770
+ /*
26771
+ * THE TITLE IS THE FIGURE'S ONLY NAME, so it is read whole: it takes a second
26772
+ * line before it gives up a word, and only a title longer than two lines ends
26773
+ * in an ellipsis. Cut at one line, a frame three columns wide named "Tokens,
26774
+ * last 14 days" as "Tokens, last 14 da".
26775
+ */
26708
26776
  .crewlet-widget-frame__title {
26777
+ display: -webkit-box;
26709
26778
  flex: 1;
26710
26779
  min-width: 0;
26711
26780
  margin: 0;
@@ -26714,15 +26783,21 @@ svg.crewlet-time-window__tick {
26714
26783
  font-size: var(--font-size-sm);
26715
26784
  font-weight: var(--font-weight-semibold);
26716
26785
  line-height: var(--font-line-height-snug);
26717
- text-overflow: ellipsis;
26718
- white-space: nowrap;
26786
+ overflow-wrap: anywhere;
26787
+ text-wrap: pretty;
26788
+ -webkit-box-orient: vertical;
26789
+ -webkit-line-clamp: 2;
26790
+ line-clamp: 2;
26719
26791
  }
26720
26792
 
26793
+ /* The controls stand on the title's first line: the box is one line of the
26794
+ title tall and the control is centred in it, whatever its own height. */
26721
26795
  .crewlet-widget-frame__actions {
26722
26796
  display: inline-flex;
26723
26797
  flex: none;
26724
26798
  align-items: center;
26725
26799
  gap: var(--spacing-1);
26800
+ height: calc(var(--font-size-sm) * var(--font-line-height-snug));
26726
26801
  }
26727
26802
 
26728
26803
  .crewlet-widget-frame__body {
@@ -26732,6 +26807,24 @@ svg.crewlet-time-window__tick {
26732
26807
  overflow: auto;
26733
26808
  }
26734
26809
 
26810
+ /* A flush figure reaches the frame's sides, and a table's cells take the
26811
+ frame's inset, so its first column starts under the title and its row
26812
+ rules meet the border. */
26813
+ .crewlet-widget-frame--flush .crewlet-widget-frame__body {
26814
+ padding-inline: 0;
26815
+ }
26816
+
26817
+ .crewlet-widget-frame--flush .crewlet-data-table--compact {
26818
+ --crewlet-data-table-cell-pad-x: var(--spacing-4);
26819
+ }
26820
+
26821
+ /* A stat tile drawn flush as the figure stands on the frame's inset; its own
26822
+ is for a column of a StatGroup, and inside a frame it doubled the space
26823
+ around the label and under the value. */
26824
+ .crewlet-widget-frame__body .crewlet-statcard--flush {
26825
+ padding: 0;
26826
+ }
26827
+
26735
26828
  .crewlet-widget-frame__blocked {
26736
26829
  display: flex;
26737
26830
  align-items: flex-start;
@@ -26754,10 +26847,16 @@ svg.crewlet-time-window__tick {
26754
26847
  min-width: 0;
26755
26848
  }
26756
26849
 
26850
+ /*
26851
+ * ONE LINE: the dataset's title gives up its tail before the time leaves the
26852
+ * line. Allowed to wrap, a long title was cut and its "as of" fell to a line
26853
+ * of its own that began with the separator.
26854
+ */
26757
26855
  .crewlet-widget-frame__cite-text,
26758
26856
  .crewlet-widget-frame__cite-button {
26759
26857
  display: inline-flex;
26760
- flex-wrap: wrap;
26858
+ flex-wrap: nowrap;
26859
+ max-width: 100%;
26761
26860
  align-items: center;
26762
26861
  gap: 0 var(--spacing-1);
26763
26862
  min-width: 0;
@@ -26789,6 +26888,8 @@ svg.crewlet-time-window__tick {
26789
26888
  }
26790
26889
 
26791
26890
  .crewlet-widget-frame__source {
26891
+ flex: 0 1 auto;
26892
+ min-width: 0;
26792
26893
  overflow: hidden;
26793
26894
  color: var(--color-text-secondary);
26794
26895
  font-weight: var(--font-weight-medium);
@@ -26802,7 +26903,34 @@ svg.crewlet-time-window__tick {
26802
26903
  margin-inline-end: var(--spacing-1);
26803
26904
  }
26804
26905
 
26906
+ .crewlet-widget-frame__when {
26907
+ flex: none;
26908
+ white-space: nowrap;
26909
+ }
26910
+
26911
+ /*
26912
+ * A NARROW FRAME STACKS ITS CITATION: the dataset's title on one line and
26913
+ * when it was true under it, with no separator to begin a line. Side by side
26914
+ * in a frame three columns wide, the title kept four letters ("Open w...").
26915
+ */
26916
+ @container crewlet-widget-frame (width < 18rem) {
26917
+ .crewlet-widget-frame__cite-text,
26918
+ .crewlet-widget-frame__cite-button {
26919
+ flex-direction: column;
26920
+ align-items: flex-start;
26921
+ }
26922
+
26923
+ .crewlet-widget-frame__source {
26924
+ max-width: 100%;
26925
+ }
26926
+
26927
+ .crewlet-widget-frame__when::before {
26928
+ content: none;
26929
+ }
26930
+ }
26931
+
26805
26932
  .crewlet-widget-frame__stale {
26806
26933
  display: inline-flex;
26934
+ flex: none;
26807
26935
  color: var(--color-feedback-warning-ink);
26808
26936
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
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.27.0",
46
- "@crewlethq/tokens": "0.27.0",
45
+ "@crewlethq/icons": "0.28.0",
46
+ "@crewlethq/tokens": "0.28.0",
47
47
  "uqr": "0.1.3"
48
48
  },
49
49
  "peerDependencies": {
@@ -1,127 +0,0 @@
1
- /*
2
- * WidgetFrame: one figure on a dashboard. A title row, the figure filling the
3
- * height the host's frame gives it, and the citation line at the foot.
4
- */
5
-
6
- .crewlet-widget-frame {
7
- box-sizing: border-box;
8
- display: flex;
9
- flex-direction: column;
10
- gap: var(--spacing-2);
11
- min-width: 0;
12
- height: 100%;
13
- min-height: 0;
14
- padding: var(--spacing-3) var(--spacing-4);
15
- border: 1px solid var(--color-border-default);
16
- border-radius: var(--radius-lg);
17
- background: var(--color-surface-elevated);
18
- }
19
-
20
- .crewlet-widget-frame__head {
21
- display: flex;
22
- align-items: center;
23
- gap: var(--spacing-2);
24
- min-width: 0;
25
- }
26
-
27
- .crewlet-widget-frame__title {
28
- flex: 1;
29
- min-width: 0;
30
- margin: 0;
31
- overflow: hidden;
32
- color: var(--color-text-primary);
33
- font-size: var(--font-size-sm);
34
- font-weight: var(--font-weight-semibold);
35
- line-height: var(--font-line-height-snug);
36
- text-overflow: ellipsis;
37
- white-space: nowrap;
38
- }
39
-
40
- .crewlet-widget-frame__actions {
41
- display: inline-flex;
42
- flex: none;
43
- align-items: center;
44
- gap: var(--spacing-1);
45
- }
46
-
47
- .crewlet-widget-frame__body {
48
- flex: 1;
49
- min-width: 0;
50
- min-height: 0;
51
- overflow: auto;
52
- }
53
-
54
- .crewlet-widget-frame__blocked {
55
- display: flex;
56
- align-items: flex-start;
57
- gap: var(--spacing-2);
58
- margin: 0;
59
- color: var(--color-text-secondary);
60
- font-size: var(--font-size-sm);
61
- line-height: var(--font-line-height-normal);
62
- }
63
-
64
- .crewlet-widget-frame__blocked-glyph {
65
- display: inline-flex;
66
- flex: none;
67
- padding-top: 2px;
68
- color: var(--color-text-tertiary);
69
- }
70
-
71
- .crewlet-widget-frame__cite {
72
- display: flex;
73
- min-width: 0;
74
- }
75
-
76
- .crewlet-widget-frame__cite-text,
77
- .crewlet-widget-frame__cite-button {
78
- display: inline-flex;
79
- flex-wrap: wrap;
80
- align-items: center;
81
- gap: 0 var(--spacing-1);
82
- min-width: 0;
83
- color: var(--color-text-tertiary);
84
- font-size: var(--font-size-xs);
85
- line-height: var(--font-line-height-snug);
86
- }
87
-
88
- .crewlet-widget-frame__cite-button {
89
- margin: 0;
90
- padding: 0;
91
- border: 0;
92
- border-radius: var(--radius-xs);
93
- background: none;
94
- font: inherit;
95
- font-size: var(--font-size-xs);
96
- text-align: start;
97
- cursor: pointer;
98
- }
99
-
100
- .crewlet-widget-frame__cite-button:hover .crewlet-widget-frame__source {
101
- color: var(--color-text-primary);
102
- text-decoration: underline;
103
- }
104
-
105
- .crewlet-widget-frame__cite-button:focus-visible {
106
- outline: 2px solid var(--color-focus);
107
- outline-offset: var(--size-focus-ring-inset-offset);
108
- }
109
-
110
- .crewlet-widget-frame__source {
111
- overflow: hidden;
112
- color: var(--color-text-secondary);
113
- font-weight: var(--font-weight-medium);
114
- text-overflow: ellipsis;
115
- white-space: nowrap;
116
- }
117
-
118
- /* The separator is drawn, not typed, so a screen reader hears the facts alone. */
119
- .crewlet-widget-frame__when::before {
120
- content: '\00b7' / '';
121
- margin-inline-end: var(--spacing-1);
122
- }
123
-
124
- .crewlet-widget-frame__stale {
125
- display: inline-flex;
126
- color: var(--color-feedback-warning-ink);
127
- }
@@ -1,24 +0,0 @@
1
- import { cx } from './chunk-ODEQTPFM.js';
2
- import './Note-RT4L6VUT.css';
3
- import { forwardRef } from 'react';
4
- import { jsx } from 'react/jsx-runtime';
5
-
6
- var Note = forwardRef(function Note2({ tone = "amber", align = "start", size = "md", className, children, ...rest }, ref) {
7
- return /* @__PURE__ */ jsx(
8
- "div",
9
- {
10
- ref,
11
- className: cx(
12
- "crewlet-note",
13
- `crewlet-note--${tone}`,
14
- align === "center" && "crewlet-note--center",
15
- size === "lg" && "crewlet-note--lg",
16
- className
17
- ),
18
- ...rest,
19
- children
20
- }
21
- );
22
- });
23
-
24
- export { Note };
@@ -1,6 +1,6 @@
1
- import { Button } from './chunk-OG6CL3EB.js';
2
1
  import { useLayerContainer, viewportBounds, LAYER_GAP, outsideBounds, placePopup, LAYER_REPOSITION_EVENT } from './chunk-HMPFGIWM.js';
3
2
  import { usePopupLayer } from './chunk-R25RGPUB.js';
3
+ import { Button } from './chunk-OG6CL3EB.js';
4
4
  import { IconButton } from './chunk-4FQT6ZAY.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
6
6
  import './Menu-KEKAD3BZ.css';
@@ -1,7 +1,7 @@
1
1
  import { HeadingLevelProvider } from './chunk-PQADV6P6.js';
2
- import { Button } from './chunk-OG6CL3EB.js';
3
2
  import { useLayerContainer } from './chunk-HMPFGIWM.js';
4
3
  import { focusables, useModalLayer, useBodyScrollLock } from './chunk-R25RGPUB.js';
4
+ import { Button } from './chunk-OG6CL3EB.js';
5
5
  import { IconButton } from './chunk-4FQT6ZAY.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './Modal-XOSV6FAH.css';
@@ -1,6 +1,6 @@
1
1
  import { Callout } from './chunk-SVSCLHHI.js';
2
- import { Button } from './chunk-OG6CL3EB.js';
3
2
  import { isComposing } from './chunk-R25RGPUB.js';
3
+ import { Button } from './chunk-OG6CL3EB.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
5
5
  import { useEffect } from 'react';
6
6
  import { EyeGlyph, UserGlyph } from '@crewlethq/icons/glyphs';
File without changes
@@ -1,6 +1,6 @@
1
1
  import { LayerNodeBridge } from './chunk-VYOKRN2I.js';
2
- import { Button } from './chunk-OG6CL3EB.js';
3
2
  import { LAYER_REPOSITION_EVENT, LayerHost } from './chunk-HMPFGIWM.js';
3
+ import { Button } from './chunk-OG6CL3EB.js';
4
4
  import { IconButton } from './chunk-4FQT6ZAY.js';
5
5
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,9 +1,9 @@
1
1
  import { Select } from './chunk-FC4YTTFJ.js';
2
+ import { Popover } from './chunk-BWRGFKJP.js';
2
3
  import { today, shiftMonth, CalendarGrid, compareDays } from './chunk-GXQ3B46I.js';
3
4
  import { Input } from './chunk-6QFAK2WV.js';
4
- import { Popover } from './chunk-BWRGFKJP.js';
5
- import { Button } from './chunk-OG6CL3EB.js';
6
5
  import { isComposing } from './chunk-R25RGPUB.js';
6
+ import { Button } from './chunk-OG6CL3EB.js';
7
7
  import { IconButton } from './chunk-4FQT6ZAY.js';
8
8
  import { cx } from './chunk-ODEQTPFM.js';
9
9
  import './TimeWindowPicker-T763GLXH.css';
@@ -1,5 +1,5 @@
1
- import { today, CalendarGrid, shiftMonth, compareDays } from './chunk-GXQ3B46I.js';
2
1
  import { Popover } from './chunk-BWRGFKJP.js';
2
+ import { today, CalendarGrid, shiftMonth, compareDays } from './chunk-GXQ3B46I.js';
3
3
  import { Button } from './chunk-OG6CL3EB.js';
4
4
  import { IconButton } from './chunk-4FQT6ZAY.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';