@crewlethq/ui 0.76.1 → 0.77.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 (115) hide show
  1. package/README.md +8 -0
  2. package/dist/AgentHandoffPanel/index.js +4 -4
  3. package/dist/AppShell/index.js +3 -3
  4. package/dist/ArrangeList/index.js +4 -4
  5. package/dist/ArtifactBar/index.js +6 -6
  6. package/dist/ArtifactCard/index.js +4 -4
  7. package/dist/ArtifactPanel/index.js +1 -1
  8. package/dist/AvatarPicker/index.js +6 -6
  9. package/dist/Canvas/index.js +2 -2
  10. package/dist/CanvasBoard/index.js +4 -4
  11. package/dist/CanvasToolbar/index.js +3 -3
  12. package/dist/CheckGrid/CheckGrid.d.ts +62 -0
  13. package/dist/CheckGrid/index.d.ts +3 -0
  14. package/dist/CheckGrid/index.js +11 -0
  15. package/dist/CheckGrid-B3SRTHOJ.css +287 -0
  16. package/dist/Checkbox/index.js +3 -3
  17. package/dist/ChoiceCards/ChoiceCards.d.ts +20 -6
  18. package/dist/ChoiceCards/index.d.ts +1 -1
  19. package/dist/ChoiceCards/index.js +1 -1
  20. package/dist/{ChoiceCards-HAGJMK6Q.css → ChoiceCards-TVMBO3HZ.css} +60 -5
  21. package/dist/ColorField/index.js +3 -3
  22. package/dist/Combobox/index.js +3 -3
  23. package/dist/CommandPalette/index.js +3 -3
  24. package/dist/CommentThread/index.js +5 -5
  25. package/dist/Composer/index.js +3 -3
  26. package/dist/ConfirmField/index.js +3 -3
  27. package/dist/ContrastHelp/index.js +1 -1
  28. package/dist/DataGrid/index.js +4 -4
  29. package/dist/DataTable/index.js +5 -5
  30. package/dist/DataView/index.js +7 -7
  31. package/dist/DateTimePicker/index.js +2 -2
  32. package/dist/DocTabsEditor/index.js +4 -4
  33. package/dist/{Editor-BXOWAV46.js → Editor-MPNGVAWD.js} +3 -3
  34. package/dist/HuePicker/index.js +5 -5
  35. package/dist/Input/index.js +2 -2
  36. package/dist/LinkInterstitial/index.js +1 -1
  37. package/dist/ListInput/index.js +3 -3
  38. package/dist/MarkdownEditor/index.js +5 -5
  39. package/dist/Menu/index.js +2 -2
  40. package/dist/MergeConflicts/index.js +5 -5
  41. package/dist/Modal/index.js +1 -1
  42. package/dist/OrgTable/index.js +1 -1
  43. package/dist/PresenterView/index.js +1 -1
  44. package/dist/PrincipalPicker/index.js +4 -4
  45. package/dist/ProposalCard/index.js +4 -4
  46. package/dist/RichEditor/index.js +1 -1
  47. package/dist/SegmentedControl/index.js +4 -4
  48. package/dist/SetupWizard/index.js +2 -2
  49. package/dist/ShareDialog/index.js +1 -1
  50. package/dist/SheetColumnEditor/index.js +8 -8
  51. package/dist/SheetGrid/index.js +3 -3
  52. package/dist/SidePanel/index.js +1 -1
  53. package/dist/SlideFilmstrip/index.js +3 -3
  54. package/dist/Switcher/index.js +3 -3
  55. package/dist/Tabs/index.js +3 -3
  56. package/dist/TagsInput/index.js +2 -2
  57. package/dist/ThemeSwitcher/index.js +5 -5
  58. package/dist/TimeRangePicker/index.js +6 -6
  59. package/dist/TimeWindowPicker/index.js +3 -3
  60. package/dist/TreeCanvas/index.js +3 -3
  61. package/dist/TreeGrid/index.js +1 -1
  62. package/dist/ValueField/index.js +4 -4
  63. package/dist/VersionCompare/index.js +5 -5
  64. package/dist/{chunk-TKUAGWNR.js → chunk-2GBG7KPK.js} +1 -1
  65. package/dist/{chunk-IPBSCJIZ.js → chunk-2LIGIIE2.js} +3 -3
  66. package/dist/{chunk-5CEQ3HLH.js → chunk-3NYVPLPW.js} +1 -1
  67. package/dist/{chunk-SK5SLGZH.js → chunk-4HO3NX3B.js} +1 -1
  68. package/dist/{chunk-45M73G5A.js → chunk-4Y7PLU4I.js} +1 -1
  69. package/dist/{chunk-YQDRJZ5J.js → chunk-62GVKZJI.js} +1 -1
  70. package/dist/{chunk-RIAPCEB5.js → chunk-72Y5DBSY.js} +2 -2
  71. package/dist/{chunk-ZW5SRQ5M.js → chunk-A5HENOP2.js} +1 -1
  72. package/dist/{chunk-57AKYFML.js → chunk-A6NUAQFW.js} +1 -1
  73. package/dist/{chunk-MKFEVHSR.js → chunk-B7NX425Z.js} +16 -3
  74. package/dist/{chunk-GHQG4VZA.js → chunk-BRFIUUXX.js} +2 -2
  75. package/dist/{chunk-E35HYQMK.js → chunk-CZUIPICC.js} +1 -1
  76. package/dist/{chunk-DSMQTED5.js → chunk-DCAT5OAX.js} +1 -1
  77. package/dist/{chunk-HWPP22XG.js → chunk-E6ETTJWX.js} +4 -4
  78. package/dist/{chunk-ZMIVQGAB.js → chunk-ELNUZDFK.js} +4 -4
  79. package/dist/{chunk-TJIBTHWJ.js → chunk-EVOGHRFN.js} +2 -2
  80. package/dist/{chunk-6EWNMSS4.js → chunk-FRLUJAFK.js} +1 -1
  81. package/dist/{chunk-LMQG3VPG.js → chunk-GKWZTTFV.js} +1 -1
  82. package/dist/{chunk-UY3FWQWG.js → chunk-HDLUG3MA.js} +2 -2
  83. package/dist/{chunk-TPCBPGSB.js → chunk-HMOGLAXY.js} +1 -1
  84. package/dist/chunk-HUIYSNBS.js +65 -0
  85. package/dist/{chunk-2STOSJT3.js → chunk-HYGCGN37.js} +1 -1
  86. package/dist/{chunk-6THG44LI.js → chunk-KQQWGWCC.js} +1 -1
  87. package/dist/{chunk-OCGIQGYJ.js → chunk-KXYZ5XS2.js} +2 -2
  88. package/dist/{chunk-TPIMOGOZ.js → chunk-LJSQT5NJ.js} +1 -1
  89. package/dist/{chunk-HZDI2CCS.js → chunk-LXB4CABM.js} +2 -2
  90. package/dist/{chunk-LCZULGMB.js → chunk-MKWURHR5.js} +1 -1
  91. package/dist/{chunk-FQI62PIZ.js → chunk-ODAZIKZF.js} +2 -2
  92. package/dist/{chunk-I3G5FJ54.js → chunk-P34YWECQ.js} +1 -1
  93. package/dist/{chunk-OOLMTUCO.js → chunk-SOERZJVJ.js} +1 -1
  94. package/dist/{chunk-KL6A7JGH.js → chunk-SQ7GYC4K.js} +1 -1
  95. package/dist/{chunk-T24HBEU6.js → chunk-TL74TBDR.js} +1 -1
  96. package/dist/{chunk-ADGNISEI.js → chunk-U4ICCJJP.js} +2 -2
  97. package/dist/{chunk-IQMWMT4V.js → chunk-UEEWK7SO.js} +2 -2
  98. package/dist/{chunk-JQEXAH7G.js → chunk-VDIKDCNE.js} +1 -1
  99. package/dist/{chunk-MP7DGKB6.js → chunk-VJ6SSEMG.js} +1 -1
  100. package/dist/{chunk-CFTBESST.js → chunk-WM3U4ARK.js} +1 -1
  101. package/dist/{chunk-BKXUZCZX.js → chunk-WOTGQVHZ.js} +1 -1
  102. package/dist/{chunk-ZKLEAK7M.js → chunk-XL2RXAPT.js} +1 -1
  103. package/dist/{chunk-PMBJMNBX.js → chunk-YLYIVN72.js} +1 -1
  104. package/dist/generated/index.d.ts +1 -0
  105. package/dist/generated/index.js +76 -75
  106. package/dist/index.js +76 -75
  107. package/dist/styles.css +351 -6
  108. package/package.json +3 -3
  109. package/dist/{chunk-FB3TCNQP.js → chunk-6Q7RW2JJ.js} +1 -1
  110. package/dist/{chunk-PCBPDMNU.js → chunk-CDFQ7MQK.js} +0 -0
  111. package/dist/{chunk-OBPINJNO.js → chunk-EMCVX5FY.js} +1 -1
  112. package/dist/{chunk-OQG4P5KU.js → chunk-KNAHKQD4.js} +1 -1
  113. package/dist/{chunk-5EFLA6BW.js → chunk-PD2GOJ5V.js} +1 -1
  114. package/dist/{chunk-HPI5J6AR.js → chunk-SWLVR54P.js} +1 -1
  115. package/dist/{chunk-WK4FQPYW.js → chunk-TD6LHL7M.js} +1 -1
package/dist/styles.css CHANGED
@@ -9908,6 +9908,296 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
9908
9908
  }
9909
9909
 
9910
9910
 
9911
+ /* CheckGrid-B3SRTHOJ.css */
9912
+ /*
9913
+ * CheckGrid: checkboxes where rows meet columns.
9914
+ *
9915
+ * WIDE, every column stands side by side under a header row: the row names'
9916
+ * track (at least 10rem) and one equal track per column (7.5rem), so the
9917
+ * columns of every row line up without a subgrid. A column's name beside each
9918
+ * box is said and not drawn, since the header draws it once.
9919
+ *
9920
+ * NARROW, each row stacks: its name on a line of its own, then its boxes
9921
+ * wrapping, each with its column's name drawn beside it; the header row is
9922
+ * gone. No column is cut off behind a sideways scroll. WHERE IS NARROW is the
9923
+ * grid's own width, by a container query, so a narrow column on a wide screen
9924
+ * stacks too: under the width every column needs, the name's track plus each
9925
+ * column's track and gap. A container query cannot read a custom property in
9926
+ * its condition, so that width is written once per column count below, up to
9927
+ * the six the grid stands side by side for (`MOST_COLUMNS`); a grid of more
9928
+ * always stacks.
9929
+ */
9930
+ .crewlet-check-grid {
9931
+ --crewlet-check-grid-name: 10rem;
9932
+ --crewlet-check-grid-column: 7.5rem;
9933
+ container: crewlet-check-grid / inline-size;
9934
+ display: flex;
9935
+ flex-direction: column;
9936
+ gap: var(--spacing-2);
9937
+ min-width: 0;
9938
+ }
9939
+
9940
+ .crewlet-check-grid__table {
9941
+ display: flex;
9942
+ flex-direction: column;
9943
+ gap: var(--spacing-1);
9944
+ }
9945
+
9946
+ .crewlet-check-grid__head,
9947
+ .crewlet-check-grid__row {
9948
+ display: grid;
9949
+ grid-template-columns:
9950
+ minmax(var(--crewlet-check-grid-name), 1fr)
9951
+ repeat(var(--crewlet-check-grid-columns, 3), var(--crewlet-check-grid-column));
9952
+ column-gap: var(--spacing-3);
9953
+ align-items: center;
9954
+ }
9955
+
9956
+ /* A column's name over its boxes: its glyph and its word, wrapping inside its track. */
9957
+ .crewlet-check-grid__column {
9958
+ display: inline-flex;
9959
+ align-items: center;
9960
+ justify-content: center;
9961
+ gap: var(--spacing-1);
9962
+ color: var(--color-text-secondary);
9963
+ font-size: var(--font-size-xs);
9964
+ text-align: center;
9965
+ }
9966
+
9967
+ /* A row's name: its picture and its words, at the start. */
9968
+ .crewlet-check-grid__name {
9969
+ display: inline-flex;
9970
+ align-items: center;
9971
+ gap: var(--spacing-2);
9972
+ min-width: 0;
9973
+ color: var(--color-text-primary);
9974
+ font-size: var(--font-size-sm);
9975
+ }
9976
+
9977
+ .crewlet-check-grid__media {
9978
+ display: inline-flex;
9979
+ flex: none;
9980
+ }
9981
+
9982
+ /* Each box's cell stands centred under its column's name. */
9983
+ .crewlet-check-grid__row > .crewlet-check-grid__cell {
9984
+ display: inline-flex;
9985
+ justify-self: center;
9986
+ }
9987
+
9988
+ /* WIDE: the column's name beside a box is said (it names the box) and not drawn. */
9989
+ .crewlet-check-grid__box .crewlet-checkbox__text {
9990
+ position: absolute;
9991
+ width: 1px;
9992
+ height: 1px;
9993
+ margin: -1px;
9994
+ overflow: hidden;
9995
+ clip-path: inset(50%);
9996
+ white-space: nowrap;
9997
+ }
9998
+
9999
+ /* Why a column refuses a box, once, under the grid. */
10000
+ .crewlet-check-grid__notes {
10001
+ display: flex;
10002
+ flex-direction: column;
10003
+ gap: var(--spacing-1);
10004
+ margin: 0;
10005
+ padding: 0;
10006
+ color: var(--color-text-secondary);
10007
+ font-size: var(--font-size-xs);
10008
+ list-style: none;
10009
+ }
10010
+
10011
+ /* NARROW, by column count: under the name's track plus each column's track and gap. */
10012
+ @container crewlet-check-grid (width < 18.25rem) {
10013
+ .crewlet-check-grid--1 .crewlet-check-grid__head {
10014
+ display: none;
10015
+ }
10016
+
10017
+ .crewlet-check-grid--1 .crewlet-check-grid__row {
10018
+ display: flex;
10019
+ flex-wrap: wrap;
10020
+ column-gap: var(--spacing-3);
10021
+ padding-block: var(--spacing-1);
10022
+ }
10023
+
10024
+ .crewlet-check-grid--1 .crewlet-check-grid__name {
10025
+ flex-basis: 100%;
10026
+ }
10027
+
10028
+ .crewlet-check-grid--1 .crewlet-check-grid__box .crewlet-checkbox__text {
10029
+ position: static;
10030
+ width: auto;
10031
+ height: auto;
10032
+ margin: 0;
10033
+ overflow: visible;
10034
+ clip-path: none;
10035
+ white-space: normal;
10036
+ }
10037
+ }
10038
+
10039
+ @container crewlet-check-grid (width < 26.5rem) {
10040
+ .crewlet-check-grid--2 .crewlet-check-grid__head {
10041
+ display: none;
10042
+ }
10043
+
10044
+ .crewlet-check-grid--2 .crewlet-check-grid__row {
10045
+ display: flex;
10046
+ flex-wrap: wrap;
10047
+ column-gap: var(--spacing-3);
10048
+ padding-block: var(--spacing-1);
10049
+ }
10050
+
10051
+ .crewlet-check-grid--2 .crewlet-check-grid__name {
10052
+ flex-basis: 100%;
10053
+ }
10054
+
10055
+ .crewlet-check-grid--2 .crewlet-check-grid__box .crewlet-checkbox__text {
10056
+ position: static;
10057
+ width: auto;
10058
+ height: auto;
10059
+ margin: 0;
10060
+ overflow: visible;
10061
+ clip-path: none;
10062
+ white-space: normal;
10063
+ }
10064
+ }
10065
+
10066
+ @container crewlet-check-grid (width < 34.75rem) {
10067
+ .crewlet-check-grid--3 .crewlet-check-grid__head {
10068
+ display: none;
10069
+ }
10070
+
10071
+ .crewlet-check-grid--3 .crewlet-check-grid__row {
10072
+ display: flex;
10073
+ flex-wrap: wrap;
10074
+ column-gap: var(--spacing-3);
10075
+ padding-block: var(--spacing-1);
10076
+ }
10077
+
10078
+ .crewlet-check-grid--3 .crewlet-check-grid__name {
10079
+ flex-basis: 100%;
10080
+ }
10081
+
10082
+ .crewlet-check-grid--3 .crewlet-check-grid__box .crewlet-checkbox__text {
10083
+ position: static;
10084
+ width: auto;
10085
+ height: auto;
10086
+ margin: 0;
10087
+ overflow: visible;
10088
+ clip-path: none;
10089
+ white-space: normal;
10090
+ }
10091
+ }
10092
+
10093
+ @container crewlet-check-grid (width < 43rem) {
10094
+ .crewlet-check-grid--4 .crewlet-check-grid__head {
10095
+ display: none;
10096
+ }
10097
+
10098
+ .crewlet-check-grid--4 .crewlet-check-grid__row {
10099
+ display: flex;
10100
+ flex-wrap: wrap;
10101
+ column-gap: var(--spacing-3);
10102
+ padding-block: var(--spacing-1);
10103
+ }
10104
+
10105
+ .crewlet-check-grid--4 .crewlet-check-grid__name {
10106
+ flex-basis: 100%;
10107
+ }
10108
+
10109
+ .crewlet-check-grid--4 .crewlet-check-grid__box .crewlet-checkbox__text {
10110
+ position: static;
10111
+ width: auto;
10112
+ height: auto;
10113
+ margin: 0;
10114
+ overflow: visible;
10115
+ clip-path: none;
10116
+ white-space: normal;
10117
+ }
10118
+ }
10119
+
10120
+ @container crewlet-check-grid (width < 51.25rem) {
10121
+ .crewlet-check-grid--5 .crewlet-check-grid__head {
10122
+ display: none;
10123
+ }
10124
+
10125
+ .crewlet-check-grid--5 .crewlet-check-grid__row {
10126
+ display: flex;
10127
+ flex-wrap: wrap;
10128
+ column-gap: var(--spacing-3);
10129
+ padding-block: var(--spacing-1);
10130
+ }
10131
+
10132
+ .crewlet-check-grid--5 .crewlet-check-grid__name {
10133
+ flex-basis: 100%;
10134
+ }
10135
+
10136
+ .crewlet-check-grid--5 .crewlet-check-grid__box .crewlet-checkbox__text {
10137
+ position: static;
10138
+ width: auto;
10139
+ height: auto;
10140
+ margin: 0;
10141
+ overflow: visible;
10142
+ clip-path: none;
10143
+ white-space: normal;
10144
+ }
10145
+ }
10146
+
10147
+ @container crewlet-check-grid (width < 59.5rem) {
10148
+ .crewlet-check-grid--6 .crewlet-check-grid__head {
10149
+ display: none;
10150
+ }
10151
+
10152
+ .crewlet-check-grid--6 .crewlet-check-grid__row {
10153
+ display: flex;
10154
+ flex-wrap: wrap;
10155
+ column-gap: var(--spacing-3);
10156
+ padding-block: var(--spacing-1);
10157
+ }
10158
+
10159
+ .crewlet-check-grid--6 .crewlet-check-grid__name {
10160
+ flex-basis: 100%;
10161
+ }
10162
+
10163
+ .crewlet-check-grid--6 .crewlet-check-grid__box .crewlet-checkbox__text {
10164
+ position: static;
10165
+ width: auto;
10166
+ height: auto;
10167
+ margin: 0;
10168
+ overflow: visible;
10169
+ clip-path: none;
10170
+ white-space: normal;
10171
+ }
10172
+ }
10173
+
10174
+ /* More columns than the grid stands side by side for: always stacked. */
10175
+ .crewlet-check-grid--many .crewlet-check-grid__head {
10176
+ display: none;
10177
+ }
10178
+
10179
+ .crewlet-check-grid--many .crewlet-check-grid__row {
10180
+ display: flex;
10181
+ flex-wrap: wrap;
10182
+ column-gap: var(--spacing-3);
10183
+ padding-block: var(--spacing-1);
10184
+ }
10185
+
10186
+ .crewlet-check-grid--many .crewlet-check-grid__name {
10187
+ flex-basis: 100%;
10188
+ }
10189
+
10190
+ .crewlet-check-grid--many .crewlet-check-grid__box .crewlet-checkbox__text {
10191
+ position: static;
10192
+ width: auto;
10193
+ height: auto;
10194
+ margin: 0;
10195
+ overflow: visible;
10196
+ clip-path: none;
10197
+ white-space: normal;
10198
+ }
10199
+
10200
+
9911
10201
  /* Checkbox-GAMV2XD7.css */
9912
10202
  /*
9913
10203
  * Checkbox: a box, its label and its consequence as one target.
@@ -10353,7 +10643,7 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
10353
10643
  }
10354
10644
 
10355
10645
 
10356
- /* ChoiceCards-HAGJMK6Q.css */
10646
+ /* ChoiceCards-TVMBO3HZ.css */
10357
10647
  /*
10358
10648
  * Choices a person compares, as cards in a grid that wraps. The chosen card
10359
10649
  * takes the selected fill and the strong boundary, as a chosen ChoiceList row
@@ -10369,9 +10659,9 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
10369
10659
  * with Runs. Facts run together as one line of meta wrapped differently in
10370
10660
  * each card, and three cards read as three different shapes.
10371
10661
  *
10372
- * A card is at least 20rem (24rem at `lg`), the width a fact's name and a
10373
- * short value keep to one line in: a form's column holds one to a row, and a
10374
- * wider surface two or three, aligned.
10662
+ * A card is at least 20rem (15rem at `sm`, 24rem at `lg`), the width a fact's
10663
+ * name and a short value keep to one line in: a form's column holds one to a
10664
+ * row, and a wider surface two or three, aligned.
10375
10665
  */
10376
10666
  .crewlet-choice-cards {
10377
10667
  --crewlet-choice-cards-min: 20rem;
@@ -10388,6 +10678,10 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
10388
10678
  row-gap: 0;
10389
10679
  }
10390
10680
 
10681
+ .crewlet-choice-cards--sm {
10682
+ --crewlet-choice-cards-min: 15rem;
10683
+ }
10684
+
10391
10685
  .crewlet-choice-cards--lg {
10392
10686
  --crewlet-choice-cards-min: 24rem;
10393
10687
  }
@@ -10507,11 +10801,19 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
10507
10801
  outline: 2px solid transparent;
10508
10802
  }
10509
10803
 
10510
- /* The first line: the picture, the name and its tag, stopping short of the radio. */
10804
+ /*
10805
+ * The first line: the picture, the name and its tag, stopping short of the
10806
+ * radio. Where the name and the tag do not fit side by side, the tag moves to
10807
+ * a line of its own rather than breaking the name mid-phrase. The lines stand
10808
+ * at the row's top, so where a card beside it takes two, the name stays level
10809
+ * with its radio.
10810
+ */
10511
10811
  .crewlet-choice-cards__title {
10512
10812
  display: flex;
10813
+ flex-wrap: wrap;
10814
+ align-content: flex-start;
10513
10815
  align-items: center;
10514
- gap: var(--spacing-2);
10816
+ gap: var(--spacing-1) var(--spacing-2);
10515
10817
  grid-row: 1;
10516
10818
  min-width: 0;
10517
10819
  min-height: var(--crewlet-choice-cards-title);
@@ -10538,7 +10840,17 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
10538
10840
  border-color: var(--color-border-strong);
10539
10841
  }
10540
10842
 
10843
+ /*
10844
+ * THE NAME IS THE TITLE LINE'S STRUT: at least the title step tall, its words
10845
+ * centred in it. The title wraps (a tag that does not fit takes a line of its
10846
+ * own) and its lines stand at the row's top, so a line is only as tall as what
10847
+ * is on it; without the strut a name in the document's 18.85px line sat 3.5px
10848
+ * above the radio, which is centred on the title step.
10849
+ */
10541
10850
  .crewlet-choice-cards__label {
10851
+ display: flex;
10852
+ align-items: center;
10853
+ min-block-size: var(--crewlet-choice-cards-title);
10542
10854
  min-width: 0;
10543
10855
  color: var(--color-text-primary);
10544
10856
  font-weight: var(--font-weight-medium);
@@ -10620,6 +10932,39 @@ button.crewlet-histogram__bar[data-empty]:focus-visible > .crewlet-histogram__fi
10620
10932
  font-size: var(--font-size-xs);
10621
10933
  }
10622
10934
 
10935
+ /*
10936
+ * COMPACT: the same lines in less room, for three cards side by side in a
10937
+ * form's wide column. The padding and the gaps between cards step down one
10938
+ * (a card's own lines already keep the smallest), the picture is capped at
10939
+ * the `lg` glyph step, and the description takes the facts' size. Every line
10940
+ * stays: a description and a disabled card's reason wrap in full, since a
10941
+ * reason cut short is a dead end with no way to read why.
10942
+ */
10943
+ .crewlet-choice-cards--compact {
10944
+ /* The largest picture a compact card draws: the icons package's `lg` glyph step (GLYPH_SIZES.lg, 20px). */
10945
+ --crewlet-choice-cards-compact-media: 1.25rem;
10946
+ column-gap: var(--spacing-2);
10947
+ }
10948
+
10949
+ .crewlet-choice-cards--compact .crewlet-choice-cards__card {
10950
+ margin-block-end: var(--spacing-2);
10951
+ padding: var(--spacing-2);
10952
+ }
10953
+
10954
+ .crewlet-choice-cards--compact .crewlet-choice-cards__radio {
10955
+ inset-block-start: calc(var(--spacing-2) + (var(--crewlet-choice-cards-title) - var(--crewlet-choice-cards-radio)) / 2);
10956
+ inset-inline-end: var(--spacing-2);
10957
+ }
10958
+
10959
+ /* The picture at most the `lg` glyph step, whatever size the caller drew it at, a wrapped mark included. */
10960
+ .crewlet-choice-cards--compact .crewlet-choice-cards__media svg {
10961
+ inline-size: var(--crewlet-choice-cards-compact-media);
10962
+ block-size: var(--crewlet-choice-cards-compact-media);
10963
+ }
10964
+
10965
+ .crewlet-choice-cards--compact .crewlet-choice-cards__description {
10966
+ font-size: var(--font-size-xs);
10967
+ }
10623
10968
 
10624
10969
  /*
10625
10970
  * WHERE SUBGRID IS SUPPORTED, every card spans the same rows of the group and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.76.1",
3
+ "version": "0.77.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.76.1",
46
- "@crewlethq/tokens": "0.76.1",
45
+ "@crewlethq/icons": "0.77.0",
46
+ "@crewlethq/tokens": "0.77.0",
47
47
  "prosemirror-commands": "1.7.2",
48
48
  "prosemirror-gapcursor": "1.4.1",
49
49
  "prosemirror-history": "1.5.1",
@@ -2,8 +2,8 @@ import { characterCountState, CharacterCount } from './chunk-PGCLHYVP.js';
2
2
  import { useHeadingLevel, headingTag, HeadingLevelProvider, nextHeadingLevel } from './chunk-PQADV6P6.js';
3
3
  import { announce } from './chunk-2G355KDJ.js';
4
4
  import { isComposing } from './chunk-H5XTJ7GJ.js';
5
- import { IconButton } from './chunk-UAUP6XGK.js';
6
5
  import { useFocusModality } from './chunk-NUZHC6MM.js';
6
+ import { IconButton } from './chunk-UAUP6XGK.js';
7
7
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
8
8
  import { cx } from './chunk-ODEQTPFM.js';
9
9
  import './Input-WSMB7JG2.css';
File without changes
@@ -3,8 +3,8 @@ import { Tooltip } from './chunk-I33UIUZD.js';
3
3
  import { Kbd } from './chunk-ANTAQAR4.js';
4
4
  import { Button } from './chunk-DGXZ635L.js';
5
5
  import { LAYER_REPOSITION_EVENT, LayerHost } from './chunk-OMV5W53A.js';
6
- import { IconButton } from './chunk-UAUP6XGK.js';
7
6
  import { returnFocus } from './chunk-NUZHC6MM.js';
7
+ import { IconButton } from './chunk-UAUP6XGK.js';
8
8
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
9
9
  import { cx } from './chunk-ODEQTPFM.js';
10
10
  import './Canvas-4QJHVLJ4.css';
@@ -1,8 +1,8 @@
1
1
  import { Button } from './chunk-DGXZ635L.js';
2
2
  import { useLayerContainer, viewportBounds, LAYER_GAP, anchorGone, placePopup, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
3
3
  import { usePopupLayer } from './chunk-H5XTJ7GJ.js';
4
- import { IconButton } from './chunk-UAUP6XGK.js';
5
4
  import { returnFocus } from './chunk-NUZHC6MM.js';
5
+ import { IconButton } from './chunk-UAUP6XGK.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './Menu-I4SNXHOT.css';
8
8
  import { useId, useState, useRef, useCallback, useLayoutEffect, useEffect } from 'react';
@@ -1,5 +1,5 @@
1
- import { Stepper } from './chunk-RJWO2PC5.js';
2
1
  import { PageHeader } from './chunk-FPDIHEM4.js';
2
+ import { Stepper } from './chunk-RJWO2PC5.js';
3
3
  import { Disclosure } from './chunk-222VILSP.js';
4
4
  import { useHeadingLevel, nextHeadingLevel, headingTag, HeadingLevelProvider } from './chunk-PQADV6P6.js';
5
5
  import { useMediaMatch } from './chunk-RTPQDNW3.js';
@@ -1,8 +1,8 @@
1
1
  import { today, CalendarGrid, shiftMonth, compareDays } from './chunk-EE3DJMSQ.js';
2
2
  import { Popover } from './chunk-KHJIEPZV.js';
3
3
  import { Button } from './chunk-DGXZ635L.js';
4
- import { IconButton } from './chunk-UAUP6XGK.js';
5
4
  import { useFocusModality } from './chunk-NUZHC6MM.js';
5
+ import { IconButton } from './chunk-UAUP6XGK.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './DateTimePicker-PM6TIRIX.css';
8
8
  import { useMemo, useState, useEffect } from 'react';
@@ -2,8 +2,8 @@ import { useListbox } from './chunk-7KHM2FZH.js';
2
2
  import { Tag } from './chunk-VERJCAJ4.js';
3
3
  import { announce } from './chunk-2G355KDJ.js';
4
4
  import { isComposing } from './chunk-H5XTJ7GJ.js';
5
- import { IconButton } from './chunk-UAUP6XGK.js';
6
5
  import { useFocusModality } from './chunk-NUZHC6MM.js';
6
+ import { IconButton } from './chunk-UAUP6XGK.js';
7
7
  import { cx } from './chunk-ODEQTPFM.js';
8
8
  import './TagsInput-MZXEHKJD.css';
9
9
  import { forwardRef, useState, useRef, useId, useImperativeHandle, useEffect, useMemo, useLayoutEffect } from 'react';