@crewlethq/ui 0.86.1 → 0.88.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 (108) hide show
  1. package/dist/AgentHandoffPanel/index.js +1 -1
  2. package/dist/AppShell/index.js +3 -3
  3. package/dist/ArrangeList/index.js +2 -2
  4. package/dist/ArtifactBar/index.js +4 -4
  5. package/dist/AuthLayout/index.js +2 -2
  6. package/dist/AvatarPicker/index.js +1 -1
  7. package/dist/BriefCard/index.js +3 -3
  8. package/dist/Canvas/index.js +1 -1
  9. package/dist/CanvasBoard/index.js +1 -1
  10. package/dist/CanvasToolbar/index.js +1 -1
  11. package/dist/CommandPalette/index.js +1 -1
  12. package/dist/CommentThread/index.js +3 -3
  13. package/dist/ContrastHelp/index.js +1 -1
  14. package/dist/DataTable/index.js +1 -1
  15. package/dist/DataView/index.js +4 -4
  16. package/dist/DatasetSource/index.js +2 -2
  17. package/dist/DateTimePicker/index.js +3 -3
  18. package/dist/DeepWorkCard/index.js +3 -3
  19. package/dist/DeliveryReceipt/DeliveryReceipt.d.ts +85 -0
  20. package/dist/DeliveryReceipt/index.d.ts +4 -0
  21. package/dist/DeliveryReceipt/index.js +3 -0
  22. package/dist/DeliveryReceipt-RMZW2DMT.css +46 -0
  23. package/dist/DocTabsEditor/index.js +1 -1
  24. package/dist/EntityList/index.js +3 -3
  25. package/dist/FollowBanner/index.js +1 -1
  26. package/dist/HuePicker/index.js +1 -1
  27. package/dist/InlineEditor/index.js +1 -1
  28. package/dist/LinkInterstitial/index.js +3 -3
  29. package/dist/List/List.d.ts +14 -1
  30. package/dist/List/index.js +1 -1
  31. package/dist/{List-JOELBLTU.css → List-ZZF6ZHRT.css} +32 -0
  32. package/dist/ListInput/index.js +1 -1
  33. package/dist/MarkdownEditor/index.js +1 -1
  34. package/dist/MentionMenu/index.js +2 -2
  35. package/dist/Menu/index.js +1 -1
  36. package/dist/MergeConflicts/index.js +1 -1
  37. package/dist/Modal/index.js +1 -1
  38. package/dist/OpenInAppCard/index.js +4 -4
  39. package/dist/PeekRail/index.js +1 -1
  40. package/dist/PersonRow/PersonRow.d.ts +7 -0
  41. package/dist/PersonRow/index.js +1 -1
  42. package/dist/{PersonRow-V5GTPNVP.css → PersonRow-ZR6US2QJ.css} +25 -0
  43. package/dist/PresenterView/index.js +1 -1
  44. package/dist/ProposalCard/index.js +3 -3
  45. package/dist/RailList/index.js +2 -2
  46. package/dist/RefusalCard/index.js +3 -3
  47. package/dist/ResultTableCard/index.js +3 -3
  48. package/dist/RichEditor/index.js +1 -1
  49. package/dist/RoomRow/RoomRow.d.ts +41 -0
  50. package/dist/RoomRow/index.d.ts +4 -0
  51. package/dist/RoomRow/index.js +4 -0
  52. package/dist/RoomRow-3OTEY6GK.css +55 -0
  53. package/dist/SegmentedControl/index.js +1 -1
  54. package/dist/SelectionBar/index.js +1 -1
  55. package/dist/ShareDialog/index.js +1 -1
  56. package/dist/SheetColumnEditor/index.js +1 -1
  57. package/dist/SheetGrid/index.js +4 -4
  58. package/dist/SlideCompare/index.js +1 -1
  59. package/dist/SlideFilmstrip/index.js +1 -1
  60. package/dist/StatusCard/index.js +2 -2
  61. package/dist/Switch/Switch.d.ts +14 -0
  62. package/dist/Switch/index.js +2 -1
  63. package/dist/{Switch-AUYLQLTN.css → Switch-XJE34BZH.css} +15 -0
  64. package/dist/Switcher/index.js +1 -1
  65. package/dist/TableCells/index.js +2 -2
  66. package/dist/Tabs/index.js +1 -1
  67. package/dist/ThemeSwitcher/index.js +1 -1
  68. package/dist/ThreadSummary/index.js +2 -2
  69. package/dist/TimeRangePicker/index.js +1 -1
  70. package/dist/TimeWindowPicker/index.js +3 -3
  71. package/dist/TreeCanvas/index.js +1 -1
  72. package/dist/VersionCompare/index.js +1 -1
  73. package/dist/{chunk-3XDT5ZWL.js → chunk-3N3XK2G5.js} +27 -9
  74. package/dist/{chunk-M33DABTW.js → chunk-3W67EZR4.js} +1 -1
  75. package/dist/{chunk-7ELFH3RJ.js → chunk-4FZDH5U6.js} +1 -1
  76. package/dist/{chunk-EALRMP7N.js → chunk-6TD2PCZB.js} +8 -3
  77. package/dist/{chunk-XTJHMP3W.js → chunk-75EGNXPZ.js} +1 -1
  78. package/dist/{chunk-AUSFKGKL.js → chunk-7RUF3QZ2.js} +1 -1
  79. package/dist/{chunk-PS5ZYIA6.js → chunk-A7UOYLK3.js} +12 -3
  80. package/dist/{chunk-XRWHDW6F.js → chunk-FA5JAF6X.js} +1 -1
  81. package/dist/{chunk-3BRXEMYT.js → chunk-G7SAFRSJ.js} +2 -2
  82. package/dist/{chunk-2L4WHYMT.js → chunk-MHDFQCE2.js} +1 -1
  83. package/dist/{chunk-35CKF77R.js → chunk-MUV2Q5E3.js} +1 -1
  84. package/dist/chunk-NGJWRR7E.js +106 -0
  85. package/dist/{chunk-2O5CMV76.js → chunk-OIRUBOPW.js} +1 -1
  86. package/dist/{chunk-G4EHZHKM.js → chunk-QL2L7Y7Z.js} +2 -2
  87. package/dist/{chunk-XYSSFI5C.js → chunk-QYONTCIN.js} +1 -1
  88. package/dist/chunk-Z34W5TM6.js +40 -0
  89. package/dist/generated/index.d.ts +2 -0
  90. package/dist/generated/index.js +83 -81
  91. package/dist/index.js +83 -81
  92. package/dist/styles.css +182 -3
  93. package/package.json +3 -3
  94. package/dist/{Editor-5D5Z3LBQ.js → Editor-VE6T3LQL.js} +2 -2
  95. package/dist/{chunk-HKUZ2GYX.js → chunk-2OUH2HDS.js} +1 -1
  96. package/dist/{chunk-MYAARF4Z.js → chunk-7CQSTVLI.js} +1 -1
  97. package/dist/{chunk-BN5FEJL5.js → chunk-DSMRQC7G.js} +1 -1
  98. package/dist/{chunk-7K6LVM5I.js → chunk-EWJKLSMD.js} +1 -1
  99. package/dist/{chunk-QPYGJ7R7.js → chunk-F4VDXWFY.js} +1 -1
  100. package/dist/{chunk-ORONAXSF.js → chunk-FX4FJMT4.js} +1 -1
  101. package/dist/{chunk-FLW5U7YS.js → chunk-FXSCAP36.js} +1 -1
  102. package/dist/{chunk-3CALM534.js → chunk-KMAVYQYO.js} +1 -1
  103. package/dist/{chunk-REWKR3S4.js → chunk-M576OESX.js} +1 -1
  104. package/dist/{chunk-46FIBJCV.js → chunk-OM6SKOXM.js} +2 -2
  105. package/dist/{chunk-IAP7APOX.js → chunk-S3DJKSJY.js} +1 -1
  106. package/dist/{chunk-3H6OZUZ3.js → chunk-SGG3NJ7A.js} +1 -1
  107. package/dist/{chunk-T3S3D4FC.js → chunk-UPFIZO4B.js} +1 -1
  108. /package/dist/{chunk-PAGITACP.js → chunk-VNACAMDK.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  export { PEEK_RAIL_LABELS, PEEK_RAIL_MAX_WIDTH, PEEK_RAIL_MIN_WIDTH, PEEK_RAIL_WIDTH, PeekHost, PeekNeighbours, PeekRail, isPlainPress, peekClickHandler, peekRowActivation, usePeekNeighbours, usePeekOrder, usePeekStep } from '../chunk-CDNZTCP2.js';
2
2
  import '../chunk-PIYJNCN7.js';
3
3
  import '../chunk-DGXZ635L.js';
4
- import '../chunk-XSPCITPN.js';
5
4
  import '../chunk-2YTOOH3A.js';
5
+ import '../chunk-XSPCITPN.js';
6
6
  import '../chunk-UAUP6XGK.js';
7
7
  import '../chunk-UT6CW3C7.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -36,6 +36,13 @@ export interface PersonRowButtonProps extends PersonRowLook, Omit<ButtonHTMLAttr
36
36
  selected?: boolean | undefined;
37
37
  /** Pressing the row. */
38
38
  onSelect?: (() => void) | undefined;
39
+ /**
40
+ * A control of the row's own at its end (a `Switch` that sets how this
41
+ * member follows a room), drawn BESIDE the row's button rather than inside
42
+ * it: a control inside a button cannot be reached by Tab, and is read as
43
+ * part of the row's name. Pressing the row still does what `onSelect` says.
44
+ */
45
+ action?: ReactNode;
39
46
  }
40
47
  export interface PersonRowOptionProps extends PersonRowLook, Omit<LiHTMLAttributes<HTMLLIElement>, 'children'> {
41
48
  /**
@@ -1,2 +1,2 @@
1
- export { PersonRow } from '../chunk-EALRMP7N.js';
1
+ export { PersonRow } from '../chunk-6TD2PCZB.js';
2
2
  import '../chunk-ODEQTPFM.js';
@@ -147,6 +147,31 @@
147
147
  color: var(--color-text-on-accent);
148
148
  }
149
149
 
150
+ /*
151
+ * A ROW WITH A CONTROL OF ITS OWN (`action`): the row's button takes the room
152
+ * and the control stands after it on the row's middle, outside the button's
153
+ * hover, so the two read as two controls.
154
+ */
155
+ .crewlet-person-row-group {
156
+ display: flex;
157
+ align-items: center;
158
+ gap: var(--spacing-1);
159
+ min-width: 0;
160
+ }
161
+
162
+ .crewlet-person-row-group > .crewlet-person-row {
163
+ flex: 1 1 0;
164
+ min-width: 0;
165
+ }
166
+
167
+ .crewlet-person-row__action {
168
+ display: inline-flex;
169
+ flex: none;
170
+ align-items: center;
171
+ gap: var(--spacing-2);
172
+ padding-inline-end: var(--spacing-2);
173
+ }
174
+
150
175
  /*
151
176
  * FORCED COLORS repaints every background to Canvas, which took the chosen
152
177
  * tint and the arrows' row with it. An outline is the one mark the mode
@@ -3,8 +3,8 @@ import '../chunk-5AJR6X75.js';
3
3
  import '../chunk-O6EV6GKI.js';
4
4
  import '../chunk-RK4XPHVG.js';
5
5
  import '../chunk-DGXZ635L.js';
6
- import '../chunk-XSPCITPN.js';
7
6
  import '../chunk-OMV5W53A.js';
7
+ import '../chunk-XSPCITPN.js';
8
8
  import '../chunk-TUEM2XIW.js';
9
9
  import '../chunk-4ITETIGZ.js';
10
10
  import '../chunk-UAUP6XGK.js';
@@ -1,11 +1,11 @@
1
- export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from '../chunk-M33DABTW.js';
1
+ export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from '../chunk-3W67EZR4.js';
2
2
  import '../chunk-ZWCK4N4L.js';
3
3
  import '../chunk-3MFRTZH6.js';
4
4
  import '../chunk-LR4IWUWQ.js';
5
- import '../chunk-FLW5U7YS.js';
6
- import '../chunk-LBGKLYBY.js';
5
+ import '../chunk-FXSCAP36.js';
7
6
  import '../chunk-U2IQNDDR.js';
8
7
  import '../chunk-AV2DXAEL.js';
8
+ import '../chunk-LBGKLYBY.js';
9
9
  import '../chunk-YQ7Q52XU.js';
10
10
  import '../chunk-CYQBDZ6M.js';
11
11
  import '../chunk-NAHA62WD.js';
@@ -1,6 +1,6 @@
1
- export { RAIL_LIST_LABELS, RailList } from '../chunk-REWKR3S4.js';
2
- import '../chunk-BRK3HXGZ.js';
1
+ export { RAIL_LIST_LABELS, RailList } from '../chunk-M576OESX.js';
3
2
  import '../chunk-3IWZVEXA.js';
3
+ import '../chunk-BRK3HXGZ.js';
4
4
  import '../chunk-O5CEG7TQ.js';
5
5
  import '../chunk-YGRTX67J.js';
6
6
  import '../chunk-TEV5REGB.js';
@@ -1,8 +1,8 @@
1
- export { REFUSAL_CARD_LABELS, RefusalCard } from '../chunk-7ELFH3RJ.js';
2
- import '../chunk-FLW5U7YS.js';
3
- import '../chunk-LBGKLYBY.js';
1
+ export { REFUSAL_CARD_LABELS, RefusalCard } from '../chunk-4FZDH5U6.js';
2
+ import '../chunk-FXSCAP36.js';
4
3
  import '../chunk-U2IQNDDR.js';
5
4
  import '../chunk-AV2DXAEL.js';
5
+ import '../chunk-LBGKLYBY.js';
6
6
  import '../chunk-CYQBDZ6M.js';
7
7
  import '../chunk-D2GT3CR4.js';
8
8
  import '../chunk-PQADV6P6.js';
@@ -1,12 +1,12 @@
1
- export { RESULT_TABLE_CARD_LABELS, RESULT_TABLE_COLLAPSED_ROWS, RESULT_TABLE_MAX_ROWS, ResultTableCard } from '../chunk-2L4WHYMT.js';
1
+ export { RESULT_TABLE_CARD_LABELS, RESULT_TABLE_COLLAPSED_ROWS, RESULT_TABLE_MAX_ROWS, ResultTableCard } from '../chunk-MHDFQCE2.js';
2
2
  import '../chunk-75NQV4R4.js';
3
3
  import '../chunk-EHFQMY3B.js';
4
4
  import '../chunk-YNRKVY7X.js';
5
5
  import '../chunk-DTIW4CHZ.js';
6
- import '../chunk-FLW5U7YS.js';
7
- import '../chunk-LBGKLYBY.js';
6
+ import '../chunk-FXSCAP36.js';
8
7
  import '../chunk-U2IQNDDR.js';
9
8
  import '../chunk-AV2DXAEL.js';
9
+ import '../chunk-LBGKLYBY.js';
10
10
  import '../chunk-CYQBDZ6M.js';
11
11
  import '../chunk-DGXZ635L.js';
12
12
  import '../chunk-XSPCITPN.js';
@@ -1,4 +1,4 @@
1
- export { RichEditor, preloadRichEditor } from '../chunk-AUSFKGKL.js';
1
+ export { RichEditor, preloadRichEditor } from '../chunk-7RUF3QZ2.js';
2
2
  export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-2DMTW2Y3.js';
3
3
  import '../chunk-KOJPDCGQ.js';
4
4
  import '../chunk-KBZO4B33.js';
@@ -0,0 +1,41 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type ListItemProps } from '../List/index.js';
3
+ export interface RoomRowProps extends Omit<ListItemProps, 'children' | 'href' | 'onClick' | 'asChild' | 'leading' | 'trailing' | 'tone' | 'dangerLabel'> {
4
+ /** The room's own address: the whole row opens it. */
5
+ href: string;
6
+ /**
7
+ * The room's kind, as its glyph at the small step (a hash, a lock, a team's
8
+ * mark). Decorative: the name says which room it is, and a kind that matters
9
+ * to the reader is said in `tags` or `facts`.
10
+ */
11
+ mark: ReactNode;
12
+ /** The room's name. A long one wraps rather than running under the action. */
13
+ name: ReactNode;
14
+ /** Small labels after the name: `Tag`s such as "Joined" or "Archived". */
15
+ tags?: ReactNode;
16
+ /** What the room is about now. One line, cut with an ellipsis. */
17
+ topic?: ReactNode;
18
+ /**
19
+ * The quiet facts under it, in order: how many are in it, when it last
20
+ * spoke, a sentence about who may join. Joined with a middle dot that a
21
+ * screen reader skips; an empty or missing fact is left out.
22
+ */
23
+ facts?: readonly ReactNode[] | undefined;
24
+ }
25
+ /**
26
+ * A room as a directory of rooms lists it: its kind's mark and its name with
27
+ * its state, what it is about, a line of facts, and one control at the row's
28
+ * end (Join, Open) beside the row's own link.
29
+ *
30
+ * A LIST ROW, NOT A CARD. It is `List.Item` with its words arranged for a
31
+ * room, so a list of rooms is drawn by `List` (`variant="divided"`) and takes
32
+ * the list's hairlines, hover and focus ring, and a row is the same height as
33
+ * every other list in the product.
34
+ *
35
+ * TWO CONTROLS, NEVER ONE INSIDE THE OTHER. The whole row is a link to the
36
+ * room; the action stands beside it (`List.Item`'s `action`), so Tab reaches
37
+ * each and the link's name is the room's words without "Join" in it. What
38
+ * pressing the action came to, when it needs saying, is the row's `note`,
39
+ * under both.
40
+ */
41
+ export declare function RoomRow({ href, mark, name, tags, topic, facts, className, ...rest }: RoomRowProps): import("react").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import '../ChatMessage/ChatScale.css';
2
+ import './RoomRow.css';
3
+ export { RoomRow } from './RoomRow.js';
4
+ export type { RoomRowProps } from './RoomRow.js';
@@ -0,0 +1,4 @@
1
+ export { RoomRow } from '../chunk-Z34W5TM6.js';
2
+ import '../chunk-A7UOYLK3.js';
3
+ import '../chunk-UT6CW3C7.js';
4
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,55 @@
1
+ /*
2
+ * RoomRow: a room as a directory of rooms lists it, on List.Item.
3
+ *
4
+ * The row's words stack: the name line, the topic, the facts. They take the
5
+ * conversation's own scale (ChatScale.css), so a room's name in a directory
6
+ * is the size it is in the room's header and its messages.
7
+ */
8
+
9
+ .crewlet-room-row > .crewlet-list__row > .crewlet-list__content {
10
+ display: flex;
11
+ flex: 1;
12
+ flex-direction: column;
13
+ gap: var(--spacing-1);
14
+ }
15
+
16
+ /* A room's name wraps rather than pushing past the row: one unbroken name (a
17
+ slug with no hyphen) otherwise runs over its own tag and into the action. */
18
+ .crewlet-room-row__name {
19
+ display: inline-flex;
20
+ flex-wrap: wrap;
21
+ align-items: center;
22
+ gap: var(--spacing-2);
23
+ min-height: var(--spacing-5);
24
+ min-width: 0;
25
+ overflow-wrap: anywhere;
26
+ font-size: var(--crewlet-chat-text);
27
+ font-weight: var(--font-weight-medium);
28
+ }
29
+
30
+ .crewlet-room-row__mark {
31
+ display: inline-flex;
32
+ flex: none;
33
+ color: var(--color-text-secondary);
34
+ }
35
+
36
+ .crewlet-room-row__title {
37
+ min-width: 0;
38
+ }
39
+
40
+ .crewlet-room-row__topic {
41
+ overflow: hidden;
42
+ color: var(--color-text-secondary);
43
+ font-size: var(--crewlet-chat-text);
44
+ text-overflow: ellipsis;
45
+ white-space: nowrap;
46
+ }
47
+
48
+ .crewlet-room-row__facts {
49
+ color: var(--color-text-secondary);
50
+ font-size: var(--crewlet-chat-meta);
51
+ }
52
+
53
+ .crewlet-room-row__sep {
54
+ color: var(--color-text-tertiary);
55
+ }
@@ -6,9 +6,9 @@ import '../chunk-CYQBDZ6M.js';
6
6
  import '../chunk-TGGYSQRD.js';
7
7
  import '../chunk-L72URIHR.js';
8
8
  import '../chunk-DGXZ635L.js';
9
- import '../chunk-XSPCITPN.js';
10
9
  import '../chunk-OMV5W53A.js';
11
10
  import '../chunk-2YTOOH3A.js';
11
+ import '../chunk-XSPCITPN.js';
12
12
  import '../chunk-TUEM2XIW.js';
13
13
  import '../chunk-4ITETIGZ.js';
14
14
  import '../chunk-UAUP6XGK.js';
@@ -1,8 +1,8 @@
1
1
  export { SelectionBar } from '../chunk-XA2QKGBJ.js';
2
2
  import '../chunk-NXFTCPF6.js';
3
3
  import '../chunk-DGXZ635L.js';
4
- import '../chunk-XSPCITPN.js';
5
4
  import '../chunk-OMV5W53A.js';
5
+ import '../chunk-XSPCITPN.js';
6
6
  import '../chunk-TUEM2XIW.js';
7
7
  import '../chunk-4ITETIGZ.js';
8
8
  import '../chunk-2G355KDJ.js';
@@ -12,9 +12,9 @@ import '../chunk-XZY6S3UC.js';
12
12
  import '../chunk-YJQXESOJ.js';
13
13
  import '../chunk-L72URIHR.js';
14
14
  import '../chunk-DGXZ635L.js';
15
- import '../chunk-XSPCITPN.js';
16
15
  import '../chunk-OMV5W53A.js';
17
16
  import '../chunk-2YTOOH3A.js';
17
+ import '../chunk-XSPCITPN.js';
18
18
  import '../chunk-TUEM2XIW.js';
19
19
  import '../chunk-4ITETIGZ.js';
20
20
  import '../chunk-UAUP6XGK.js';
@@ -17,9 +17,9 @@ import '../chunk-O7N6W52M.js';
17
17
  import '../chunk-PGCLHYVP.js';
18
18
  import '../chunk-CMAZZY2I.js';
19
19
  import '../chunk-DGXZ635L.js';
20
- import '../chunk-XSPCITPN.js';
21
20
  import '../chunk-OMV5W53A.js';
22
21
  import '../chunk-2YTOOH3A.js';
22
+ import '../chunk-XSPCITPN.js';
23
23
  import '../chunk-TUEM2XIW.js';
24
24
  import '../chunk-4ITETIGZ.js';
25
25
  import '../chunk-UAUP6XGK.js';
@@ -1,4 +1,4 @@
1
- export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-46FIBJCV.js';
1
+ export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-OM6SKOXM.js';
2
2
  import '../chunk-UEOEBOBR.js';
3
3
  import '../chunk-CENOOTAV.js';
4
4
  import '../chunk-MMCYH5LB.js';
@@ -6,19 +6,19 @@ import '../chunk-EFX2YC5T.js';
6
6
  import '../chunk-VB3FVKNI.js';
7
7
  import '../chunk-LFSIKGRQ.js';
8
8
  import '../chunk-Z7JYG5TF.js';
9
- import '../chunk-LBGKLYBY.js';
10
9
  import '../chunk-EC6EUIAD.js';
11
10
  import '../chunk-AYKXMIOR.js';
12
11
  import '../chunk-YTLWOHOY.js';
13
12
  import '../chunk-XZY6S3UC.js';
13
+ import '../chunk-LBGKLYBY.js';
14
14
  import '../chunk-CYQBDZ6M.js';
15
+ import '../chunk-TGGYSQRD.js';
15
16
  import '../chunk-7ZSEUO5Q.js';
16
17
  import '../chunk-HTS5RJ7S.js';
17
- import '../chunk-TGGYSQRD.js';
18
18
  import '../chunk-L72URIHR.js';
19
19
  import '../chunk-DGXZ635L.js';
20
- import '../chunk-XSPCITPN.js';
21
20
  import '../chunk-OMV5W53A.js';
21
+ import '../chunk-XSPCITPN.js';
22
22
  import '../chunk-TUEM2XIW.js';
23
23
  import '../chunk-4ITETIGZ.js';
24
24
  import '../chunk-UAUP6XGK.js';
@@ -1,8 +1,8 @@
1
1
  export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-XJMES7AE.js';
2
2
  import '../chunk-O6EV6GKI.js';
3
3
  import '../chunk-DGXZ635L.js';
4
- import '../chunk-XSPCITPN.js';
5
4
  import '../chunk-OMV5W53A.js';
5
+ import '../chunk-XSPCITPN.js';
6
6
  import '../chunk-TUEM2XIW.js';
7
7
  import '../chunk-4ITETIGZ.js';
8
8
  import '../chunk-UT6CW3C7.js';
@@ -6,8 +6,8 @@ import '../chunk-TGGYSQRD.js';
6
6
  import '../chunk-L72URIHR.js';
7
7
  import '../chunk-CMAZZY2I.js';
8
8
  import '../chunk-DGXZ635L.js';
9
- import '../chunk-XSPCITPN.js';
10
9
  import '../chunk-OMV5W53A.js';
10
+ import '../chunk-XSPCITPN.js';
11
11
  import '../chunk-TUEM2XIW.js';
12
12
  import '../chunk-4ITETIGZ.js';
13
13
  import '../chunk-UAUP6XGK.js';
@@ -1,7 +1,7 @@
1
- export { StatusCard } from '../chunk-FLW5U7YS.js';
2
- import '../chunk-LBGKLYBY.js';
1
+ export { StatusCard } from '../chunk-FXSCAP36.js';
3
2
  import '../chunk-U2IQNDDR.js';
4
3
  import '../chunk-AV2DXAEL.js';
4
+ import '../chunk-LBGKLYBY.js';
5
5
  import '../chunk-CYQBDZ6M.js';
6
6
  import '../chunk-D2GT3CR4.js';
7
7
  import '../chunk-PQADV6P6.js';
@@ -8,6 +8,20 @@ export interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
8
8
  framed?: boolean;
9
9
  /** The new state, for a caller that does not want to read it off an event. */
10
10
  onCheckedChange?: (checked: boolean) => void;
11
+ /**
12
+ * The label stays the switch's name and is not drawn: for a switch at the
13
+ * end of a row whose own words already say what it sets (a member's row in
14
+ * a room, "Answers when named"). The track alone is drawn.
15
+ */
16
+ labelHidden?: boolean | undefined;
17
+ /**
18
+ * Why the switch cannot be moved, as a sentence. It is drawn dimmed and
19
+ * does not move, and stays a tab stop whose reason is read after its name
20
+ * (`aria-describedby`), where a natively disabled control is skipped by Tab
21
+ * and says nothing. Pair it with a `Tooltip` to show the sentence to a
22
+ * pointer. Leave it out for a switch that can move.
23
+ */
24
+ disabledReason?: string | undefined;
11
25
  }
12
26
  /**
13
27
  * A setting that is on or off, and takes effect as it is switched.
@@ -1,2 +1,3 @@
1
- export { Switch } from '../chunk-3XDT5ZWL.js';
1
+ export { Switch } from '../chunk-3N3XK2G5.js';
2
+ import '../chunk-UT6CW3C7.js';
2
3
  import '../chunk-ODEQTPFM.js';
@@ -172,6 +172,21 @@
172
172
  border-radius: var(--radius-lg);
173
173
  }
174
174
 
175
+ /*
176
+ * THE TRACK ALONE, for a switch whose label is its name and not drawn: no
177
+ * gap after it and no padding to centre a line of text that is not there, so
178
+ * it stands on the middle of the row it ends.
179
+ */
180
+ .crewlet-switch--label-hidden {
181
+ align-items: center;
182
+ gap: 0;
183
+ padding-block: 0;
184
+ }
185
+
186
+ .crewlet-switch--label-hidden .crewlet-switch__track {
187
+ margin-block: 0;
188
+ }
189
+
175
190
  .crewlet-switch.is-disabled,
176
191
  .crewlet-switch.is-disabled .crewlet-switch__control {
177
192
  cursor: not-allowed;
@@ -9,8 +9,8 @@ import '../chunk-L72URIHR.js';
9
9
  import '../chunk-O7N6W52M.js';
10
10
  import '../chunk-PGCLHYVP.js';
11
11
  import '../chunk-DGXZ635L.js';
12
- import '../chunk-XSPCITPN.js';
13
12
  import '../chunk-OMV5W53A.js';
13
+ import '../chunk-XSPCITPN.js';
14
14
  import '../chunk-TUEM2XIW.js';
15
15
  import '../chunk-4ITETIGZ.js';
16
16
  import '../chunk-UAUP6XGK.js';
@@ -1,11 +1,11 @@
1
- export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell, TableTwoLineCell } from '../chunk-3CALM534.js';
1
+ export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell, TableTwoLineCell } from '../chunk-KMAVYQYO.js';
2
2
  import '../chunk-O5CEG7TQ.js';
3
3
  import '../chunk-QF5UNP4T.js';
4
- import '../chunk-LBGKLYBY.js';
5
4
  import '../chunk-EJNJMHQG.js';
6
5
  import '../chunk-RE3FBGQQ.js';
7
6
  import '../chunk-YTLWOHOY.js';
8
7
  import '../chunk-XZY6S3UC.js';
8
+ import '../chunk-LBGKLYBY.js';
9
9
  import '../chunk-CYQBDZ6M.js';
10
10
  import '../chunk-UT6CW3C7.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -4,9 +4,9 @@ import '../chunk-CYQBDZ6M.js';
4
4
  import '../chunk-TGGYSQRD.js';
5
5
  import '../chunk-L72URIHR.js';
6
6
  import '../chunk-DGXZ635L.js';
7
- import '../chunk-XSPCITPN.js';
8
7
  import '../chunk-OMV5W53A.js';
9
8
  import '../chunk-2YTOOH3A.js';
9
+ import '../chunk-XSPCITPN.js';
10
10
  import '../chunk-TUEM2XIW.js';
11
11
  import '../chunk-4ITETIGZ.js';
12
12
  import '../chunk-UAUP6XGK.js';
@@ -9,9 +9,9 @@ import '../chunk-CYQBDZ6M.js';
9
9
  import '../chunk-TGGYSQRD.js';
10
10
  import '../chunk-L72URIHR.js';
11
11
  import '../chunk-DGXZ635L.js';
12
- import '../chunk-XSPCITPN.js';
13
12
  import '../chunk-OMV5W53A.js';
14
13
  import '../chunk-2YTOOH3A.js';
14
+ import '../chunk-XSPCITPN.js';
15
15
  import '../chunk-TUEM2XIW.js';
16
16
  import '../chunk-4ITETIGZ.js';
17
17
  import '../chunk-UAUP6XGK.js';
@@ -1,6 +1,6 @@
1
- export { THREAD_SUMMARY_LABELS, ThreadSummary } from '../chunk-QPYGJ7R7.js';
2
- import '../chunk-LBGKLYBY.js';
1
+ export { THREAD_SUMMARY_LABELS, ThreadSummary } from '../chunk-F4VDXWFY.js';
3
2
  import '../chunk-YTLWOHOY.js';
4
3
  import '../chunk-XZY6S3UC.js';
4
+ import '../chunk-LBGKLYBY.js';
5
5
  import '../chunk-CYQBDZ6M.js';
6
6
  import '../chunk-ODEQTPFM.js';
@@ -11,9 +11,9 @@ import '../chunk-L72URIHR.js';
11
11
  import '../chunk-O7N6W52M.js';
12
12
  import '../chunk-PGCLHYVP.js';
13
13
  import '../chunk-DGXZ635L.js';
14
- import '../chunk-XSPCITPN.js';
15
14
  import '../chunk-OMV5W53A.js';
16
15
  import '../chunk-2YTOOH3A.js';
16
+ import '../chunk-XSPCITPN.js';
17
17
  import '../chunk-TUEM2XIW.js';
18
18
  import '../chunk-4ITETIGZ.js';
19
19
  import '../chunk-UAUP6XGK.js';
@@ -1,15 +1,15 @@
1
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-T3S3D4FC.js';
1
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-UPFIZO4B.js';
2
2
  import '../chunk-3IWZVEXA.js';
3
3
  import '../chunk-YGRTX67J.js';
4
- import '../chunk-EE3DJMSQ.js';
5
4
  import '../chunk-EC6EUIAD.js';
5
+ import '../chunk-EE3DJMSQ.js';
6
6
  import '../chunk-L72URIHR.js';
7
7
  import '../chunk-O7N6W52M.js';
8
8
  import '../chunk-PGCLHYVP.js';
9
9
  import '../chunk-DGXZ635L.js';
10
- import '../chunk-XSPCITPN.js';
11
10
  import '../chunk-OMV5W53A.js';
12
11
  import '../chunk-2YTOOH3A.js';
12
+ import '../chunk-XSPCITPN.js';
13
13
  import '../chunk-TUEM2XIW.js';
14
14
  import '../chunk-4ITETIGZ.js';
15
15
  import '../chunk-UAUP6XGK.js';
@@ -8,8 +8,8 @@ import '../chunk-HTS5RJ7S.js';
8
8
  import '../chunk-L72URIHR.js';
9
9
  import '../chunk-CMAZZY2I.js';
10
10
  import '../chunk-DGXZ635L.js';
11
- import '../chunk-XSPCITPN.js';
12
11
  import '../chunk-OMV5W53A.js';
12
+ import '../chunk-XSPCITPN.js';
13
13
  import '../chunk-TUEM2XIW.js';
14
14
  import '../chunk-4ITETIGZ.js';
15
15
  import '../chunk-UAUP6XGK.js';
@@ -9,9 +9,9 @@ import '../chunk-TGGYSQRD.js';
9
9
  import '../chunk-L72URIHR.js';
10
10
  import '../chunk-PPUR46MK.js';
11
11
  import '../chunk-DGXZ635L.js';
12
- import '../chunk-XSPCITPN.js';
13
12
  import '../chunk-OMV5W53A.js';
14
13
  import '../chunk-2YTOOH3A.js';
14
+ import '../chunk-XSPCITPN.js';
15
15
  import '../chunk-TUEM2XIW.js';
16
16
  import '../chunk-4ITETIGZ.js';
17
17
  import '../chunk-UAUP6XGK.js';
@@ -1,5 +1,6 @@
1
+ import { VisuallyHidden } from './chunk-UT6CW3C7.js';
1
2
  import { cx } from './chunk-ODEQTPFM.js';
2
- import './Switch-AUYLQLTN.css';
3
+ import './Switch-XJE34BZH.css';
3
4
  import { forwardRef, useId } from 'react';
4
5
  import { jsxs, jsx } from 'react/jsx-runtime';
5
6
 
@@ -9,6 +10,9 @@ var Switch = forwardRef(function Switch2({
9
10
  framed = false,
10
11
  onCheckedChange,
11
12
  onChange,
13
+ onClick,
14
+ labelHidden = false,
15
+ disabledReason,
12
16
  className = "",
13
17
  disabled,
14
18
  id,
@@ -19,13 +23,20 @@ var Switch = forwardRef(function Switch2({
19
23
  const inputId = id ?? generatedId;
20
24
  const labelId = `${inputId}-label`;
21
25
  const descriptionId = description ? `${inputId}-description` : void 0;
26
+ const reasonId = disabledReason ? `${inputId}-reason` : void 0;
27
+ const inert = disabledReason !== void 0 && disabledReason !== "";
28
+ const text = /* @__PURE__ */ jsxs("span", { className: "crewlet-switch__text", children: [
29
+ /* @__PURE__ */ jsx("span", { className: "crewlet-switch__label", id: labelId, children: label }),
30
+ description ? /* @__PURE__ */ jsx("span", { className: "crewlet-switch__description", id: descriptionId, children: description }) : null
31
+ ] });
22
32
  return /* @__PURE__ */ jsxs(
23
33
  "label",
24
34
  {
25
35
  className: cx(
26
36
  "crewlet-switch",
27
37
  framed && "crewlet-switch--framed",
28
- disabled && "is-disabled",
38
+ labelHidden && "crewlet-switch--label-hidden",
39
+ (disabled || inert) && "is-disabled",
29
40
  className
30
41
  ),
31
42
  children: [
@@ -40,20 +51,27 @@ var Switch = forwardRef(function Switch2({
40
51
  className: "crewlet-switch__control",
41
52
  disabled,
42
53
  "aria-labelledby": labelId,
43
- "aria-describedby": cx(descriptionId, describedBy) || void 0,
54
+ "aria-describedby": cx(descriptionId, reasonId, describedBy) || void 0,
55
+ "aria-disabled": inert || void 0,
56
+ ...rest,
57
+ onClick: (event) => {
58
+ if (inert) {
59
+ if (rest.checked === void 0) event.preventDefault();
60
+ return;
61
+ }
62
+ onClick?.(event);
63
+ },
44
64
  onChange: (event) => {
65
+ if (inert) return;
45
66
  onChange?.(event);
46
67
  onCheckedChange?.(event.target.checked);
47
- },
48
- ...rest
68
+ }
49
69
  }
50
70
  ),
51
71
  /* @__PURE__ */ jsx("span", { className: "crewlet-switch__thumb", "aria-hidden": "true" })
52
72
  ] }),
53
- /* @__PURE__ */ jsxs("span", { className: "crewlet-switch__text", children: [
54
- /* @__PURE__ */ jsx("span", { className: "crewlet-switch__label", id: labelId, children: label }),
55
- description ? /* @__PURE__ */ jsx("span", { className: "crewlet-switch__description", id: descriptionId, children: description }) : null
56
- ] })
73
+ labelHidden ? /* @__PURE__ */ jsx(VisuallyHidden, { children: text }) : text,
74
+ inert ? /* @__PURE__ */ jsx(VisuallyHidden, { id: reasonId, children: disabledReason }) : null
57
75
  ]
58
76
  }
59
77
  );
@@ -1,6 +1,6 @@
1
1
  import { RefusalStrip, ReceiptStrip } from './chunk-ZWCK4N4L.js';
2
2
  import { ChangeList } from './chunk-3MFRTZH6.js';
3
- import { StatusCard } from './chunk-FLW5U7YS.js';
3
+ import { StatusCard } from './chunk-FXSCAP36.js';
4
4
  import { Checkbox } from './chunk-YQ7Q52XU.js';
5
5
  import { Disclosure } from './chunk-NAHA62WD.js';
6
6
  import { Button } from './chunk-DGXZ635L.js';
@@ -1,4 +1,4 @@
1
- import { StatusCard } from './chunk-FLW5U7YS.js';
1
+ import { StatusCard } from './chunk-FXSCAP36.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
3
  import './RefusalCard-UM67F5HB.css';
4
4
  import { LockGlyph } from '@crewlethq/icons/glyphs';