@crewlethq/ui 0.22.0 → 0.24.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 (69) hide show
  1. package/README.md +21 -1
  2. package/dist/ArrangeList/index.js +3 -3
  3. package/dist/ArtifactCard/ArtifactCard.d.ts +3 -2
  4. package/dist/ArtifactCard/index.js +1 -1
  5. package/dist/AvatarPicker/index.js +4 -4
  6. package/dist/Checkbox/index.js +2 -2
  7. package/dist/Combobox/index.js +2 -2
  8. package/dist/CommandPalette/index.js +2 -2
  9. package/dist/CommentThread/index.js +3 -3
  10. package/dist/Composer/index.js +2 -2
  11. package/dist/ConfirmField/index.js +2 -2
  12. package/dist/DataTable/index.js +3 -3
  13. package/dist/DataView/index.js +5 -5
  14. package/dist/DateTimePicker/index.js +1 -1
  15. package/dist/{DateTimePicker-NJ6XH2TE.css → DateTimePicker-HG2KQXQ6.css} +1 -1
  16. package/dist/HuePicker/index.js +3 -3
  17. package/dist/Input/index.js +1 -1
  18. package/dist/{Input-3KVSNUO5.css → Input-GBZSFXLU.css} +16 -9
  19. package/dist/LinkInterstitial/index.js +2 -2
  20. package/dist/ListInput/index.js +2 -2
  21. package/dist/MarkdownEditor/index.js +4 -4
  22. package/dist/{MarkdownEditor-ZLSHTOIZ.css → MarkdownEditor-WOKV7CLK.css} +3 -2
  23. package/dist/OrgTable/index.js +2 -2
  24. package/dist/PrincipalPicker/index.js +3 -3
  25. package/dist/SegmentedControl/index.js +3 -3
  26. package/dist/Switcher/index.js +2 -2
  27. package/dist/{Switcher-B44Q4WF4.css → Switcher-K3EPA2RB.css} +10 -4
  28. package/dist/Tabs/index.js +1 -1
  29. package/dist/{Tabs-ITJYJFMU.css → Tabs-CJGO35BH.css} +12 -5
  30. package/dist/TagsInput/index.js +1 -1
  31. package/dist/{TagsInput-P2HS5QL4.css → TagsInput-XMXTI5Q4.css} +1 -1
  32. package/dist/ThemeSwitcher/index.js +4 -4
  33. package/dist/TimeWindowPicker/index.js +2 -2
  34. package/dist/{TimeWindowPicker-BZ5HHATU.css → TimeWindowPicker-T763GLXH.css} +1 -1
  35. package/dist/TreeGrid/index.js +1 -1
  36. package/dist/{TreeGrid-FBX3MSJA.css → TreeGrid-UCPV37XB.css} +12 -0
  37. package/dist/VersionCompare/index.js +4 -4
  38. package/dist/{chunk-7ZNKEPLN.js → chunk-2CQLNML5.js} +1 -1
  39. package/dist/{chunk-BXSGT3YC.js → chunk-35UKQ33X.js} +1 -1
  40. package/dist/{chunk-TODND5AD.js → chunk-6J35F334.js} +7 -4
  41. package/dist/{chunk-Q55TXPA3.js → chunk-6QFAK2WV.js} +1 -1
  42. package/dist/{chunk-26PEPONN.js → chunk-7QL2OFP6.js} +1 -1
  43. package/dist/{chunk-6A7P6II6.js → chunk-AMNN4WDX.js} +1 -1
  44. package/dist/{chunk-73QBUUYX.js → chunk-APS747CR.js} +1 -1
  45. package/dist/{chunk-QQGWES46.js → chunk-CS65QSIJ.js} +3 -3
  46. package/dist/{chunk-YSJYWQSP.js → chunk-D5JZN3ML.js} +1 -1
  47. package/dist/{chunk-YSY6UJ4F.js → chunk-FGYET26P.js} +1 -1
  48. package/dist/{chunk-4HRB62EA.js → chunk-GTLJXJ3U.js} +1 -1
  49. package/dist/{chunk-I6NZKJGK.js → chunk-IASV5UCP.js} +1 -1
  50. package/dist/{chunk-2ONWEDQT.js → chunk-IPM2E6UI.js} +1 -1
  51. package/dist/{chunk-KYEXTEJ3.js → chunk-JCSXFAXG.js} +3 -3
  52. package/dist/{chunk-7X5WOECO.js → chunk-KG6XRG5Z.js} +2 -2
  53. package/dist/{chunk-NUZC6PJX.js → chunk-LREN6TUG.js} +2 -2
  54. package/dist/{chunk-VYY56AMX.js → chunk-M54K52ZU.js} +1 -1
  55. package/dist/{chunk-XU4ZUGLE.js → chunk-OQT7GSKJ.js} +1 -1
  56. package/dist/{chunk-IC64IWOO.js → chunk-PBNP7H2C.js} +1 -1
  57. package/dist/{chunk-LOLELDBW.js → chunk-QS4ZGTEU.js} +1 -1
  58. package/dist/{chunk-VJLYGPPE.js → chunk-RIEDQSA4.js} +1 -1
  59. package/dist/{chunk-AIVZVKYZ.js → chunk-SJCKMSQK.js} +1 -1
  60. package/dist/{chunk-T7ICFXEC.js → chunk-U63Y5OCW.js} +1 -1
  61. package/dist/{chunk-T5TFZ2JB.js → chunk-VEB5ERRE.js} +1 -1
  62. package/dist/{chunk-RE6ED5TO.js → chunk-WG5WUFBX.js} +1 -1
  63. package/dist/{chunk-4LDTQWS7.js → chunk-XJFOOXCF.js} +1 -1
  64. package/dist/{chunk-JEDWC3GI.js → chunk-ZITJKF6Z.js} +1 -1
  65. package/dist/generated/index.js +33 -33
  66. package/dist/index.js +33 -33
  67. package/dist/styles.css +64 -31
  68. package/package.json +3 -3
  69. package/dist/{chunk-L2OQRPXJ.js → chunk-ZM7HLFOA.js} +1 -1
package/README.md CHANGED
@@ -203,6 +203,26 @@ places:
203
203
  - A surface that pans or zooms dispatches `LAYER_REPOSITION_EVENT` on its host
204
204
  when the content beneath it moves, and every panel anchored inside follows.
205
205
 
206
+ ## Changes in 0.24.0
207
+
208
+ **The `markdown` artifact kind is now `doc`**, as the engine names it (`artifacts.KindDoc`). `ArtifactKind`, `ARTIFACT_KINDS`, `ArtifactKindGlyph` and `ArtifactCard` take `doc`, and the card's default label for it is "Doc".
209
+
210
+ What to change: pass `kind="doc"` wherever you passed `kind="markdown"`, and rename the `markdown` key of a custom `labels.kinds` to `doc`.
211
+
212
+ **`ArtifactKind` names every kind the engine ships**: `html`, `doc`, `slides`, `design`, `dashboard` and `sheet`, in the engine's order (`artifacts.Kinds`), which `ARTIFACT_KINDS` lists. Each draws its own glyph where a card has no preview (`slides` a presentation, `design` a palette, `dashboard` a dashboard layout), and its own default label ("Slides", "Design", "Dashboard"). A custom `labels.kinds` passes only the kinds it renames. `@crewlethq/icons` adds `PresentationGlyph`.
213
+
214
+ What to change: a `Record<ArtifactKind, ...>` of your own needs the three new keys.
215
+
216
+ ## Changes in 0.23.0
217
+
218
+ **A text field's edge is quieter.** `Input`, the textarea, `TagsInput`, `MarkdownEditor` and the typed boxes inside `DateTimePicker` and `TimeWindowPicker` draw `--color-border-field` (new in `@crewlethq/tokens` 0.23.0): the secondary button's edge lifted only as far as 3:1 on the surfaces a field stands on, rather than the control boundary that was the brightest edge on the page. Under the pointer the edge steps up to `--color-border-control`; it used to step down to the hover hairline and fade. Checkboxes, switches and editors inside a row keep `--color-border-control`.
219
+
220
+ **A chosen chip draws the accent's soft pair.** The chip that is on in a `Tabs` chip row, and the current row of a `Switcher`, take `--color-brand-accent-soft` with a `--color-brand-accent-soft-strong` hairline, as a chosen `FilterChip` does, instead of a full-strength accent ring. A switcher row the arrows or the pointer are on keeps the listbox's own fill.
221
+
222
+ **Inside a flush card the `TreeGrid` draws no frame of its own.** The card is the frame, so the grid's border, corner and ground step aside and its rows run to the card's edges, its footer included.
223
+
224
+ What to change: nothing.
225
+
206
226
  ## Changes in 0.22.0
207
227
 
208
228
  **`Menu` takes `width`** (`'content'`, the default, or `'trigger'`). `'trigger'` keeps the panel no narrower than its trigger, so a trigger that spans a column opens a menu that covers it edge to edge, and still lets it grow past the trigger when a row needs the room.
@@ -357,7 +377,7 @@ What to change: a screen that leaned on `max` to clear old failures now keeps th
357
377
 
358
378
  **Toasts are the first release's strip again**: a dark strip on `--color-surface-background` with the large shadow and the rim light, a 12px corner, a 20px mark, a slide in from the right, and the countdown as a wash behind the words that drains from the right. A variant spends its hue on its mark (the feedback ink step) and its wash (the feedback soft step) only, so a failure is a rose mark on a faint rose wash with a rose action, never red words on a red edge. Reduced motion keeps the strip still and draws no wash.
359
379
 
360
- **A picker's boundary is a button's.** `Select`, `DateTimePicker` and `TimeWindowPicker` draw their trigger on `--color-border-strong`, as the secondary button does, and step to `--color-border-strong-hover` under the pointer. Text boxes, checkboxes and switches keep `--color-border-control` at 3:1, as do the typed boxes inside the pickers' panels.
380
+ **A picker's boundary is a button's.** `Select`, `DateTimePicker` and `TimeWindowPicker` draw their trigger on `--color-border-strong`, as the secondary button does, and step to `--color-border-strong-hover` under the pointer. Text boxes and the typed boxes inside the pickers' panels draw `--color-border-field` (see 0.23.0); checkboxes and switches keep `--color-border-control` at 3:1.
361
381
 
362
382
  **A `Select` list that leads with marks ends its rows with the tick**, so a swatch, an avatar or a glyph starts at the panel's edge. A list of words keeps the tick's column first.
363
383
 
@@ -1,8 +1,8 @@
1
- export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-AIVZVKYZ.js';
1
+ export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-SJCKMSQK.js';
2
2
  import '../chunk-A722MUNR.js';
3
3
  import '../chunk-XJ2QEBMM.js';
4
- import '../chunk-I6NZKJGK.js';
5
- import '../chunk-Q55TXPA3.js';
4
+ import '../chunk-IASV5UCP.js';
5
+ import '../chunk-6QFAK2WV.js';
6
6
  import '../chunk-PQADV6P6.js';
7
7
  import '../chunk-RSAQOKH3.js';
8
8
  import '../chunk-4FQT6ZAY.js';
@@ -4,8 +4,9 @@ import { type AvatarStackMember } from '../Avatar/index.js';
4
4
  import { type Principal } from '../Principal/index.js';
5
5
  import { type TimeValue } from '../RelativeTime/index.js';
6
6
  /** What an artifact is, as the engine names it (`artifacts.Kind`), which decides how it is drawn. */
7
- export type ArtifactKind = 'html' | 'markdown' | 'sheet';
8
- export declare const ARTIFACT_KINDS: readonly ["html", "markdown", "sheet"];
7
+ export type ArtifactKind = 'html' | 'doc' | 'slides' | 'design' | 'dashboard' | 'sheet';
8
+ /** Every kind, in the engine's order (`artifacts.Kinds`). */
9
+ export declare const ARTIFACT_KINDS: readonly ["html", "doc", "slides", "design", "dashboard", "sheet"];
9
10
  /** The glyph a kind is drawn with, wherever a kind is drawn, at a glyph size step or in px. */
10
11
  export declare function ArtifactKindGlyph({ kind, size }: {
11
12
  kind: ArtifactKind;
@@ -1,4 +1,4 @@
1
- export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from '../chunk-TODND5AD.js';
1
+ export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from '../chunk-6J35F334.js';
2
2
  import '../chunk-4KP4RC3O.js';
3
3
  import '../chunk-3CZ7XAVY.js';
4
4
  import '../chunk-EUCC37WY.js';
@@ -1,7 +1,7 @@
1
- export { AvatarPicker } from '../chunk-T7ICFXEC.js';
2
- import '../chunk-XU4ZUGLE.js';
3
- import '../chunk-26PEPONN.js';
4
- import '../chunk-4LDTQWS7.js';
1
+ export { AvatarPicker } from '../chunk-U63Y5OCW.js';
2
+ import '../chunk-OQT7GSKJ.js';
3
+ import '../chunk-7QL2OFP6.js';
4
+ import '../chunk-XJFOOXCF.js';
5
5
  import '../chunk-BWRGFKJP.js';
6
6
  import '../chunk-AYKXMIOR.js';
7
7
  import '../chunk-5PSXBL73.js';
@@ -1,5 +1,5 @@
1
- export { Checkbox, CheckboxGroup } from '../chunk-I6NZKJGK.js';
2
- import '../chunk-Q55TXPA3.js';
1
+ export { Checkbox, CheckboxGroup } from '../chunk-IASV5UCP.js';
2
+ import '../chunk-6QFAK2WV.js';
3
3
  import '../chunk-PQADV6P6.js';
4
4
  import '../chunk-4FQT6ZAY.js';
5
5
  import '../chunk-BZFWDIV6.js';
@@ -1,6 +1,6 @@
1
- export { Combobox } from '../chunk-LOLELDBW.js';
1
+ export { Combobox } from '../chunk-QS4ZGTEU.js';
2
2
  import '../chunk-F73MC7EZ.js';
3
- import '../chunk-Q55TXPA3.js';
3
+ import '../chunk-6QFAK2WV.js';
4
4
  import '../chunk-PQADV6P6.js';
5
5
  import '../chunk-R25RGPUB.js';
6
6
  import '../chunk-4FQT6ZAY.js';
@@ -1,8 +1,8 @@
1
- export { CommandPalette } from '../chunk-4HRB62EA.js';
1
+ export { CommandPalette } from '../chunk-GTLJXJ3U.js';
2
2
  import '../chunk-F4DPAJCN.js';
3
3
  import '../chunk-F73MC7EZ.js';
4
4
  import '../chunk-SMBKXWML.js';
5
- import '../chunk-Q55TXPA3.js';
5
+ import '../chunk-6QFAK2WV.js';
6
6
  import '../chunk-PQADV6P6.js';
7
7
  import '../chunk-BHHIIK3M.js';
8
8
  import '../chunk-OG6CL3EB.js';
@@ -1,8 +1,8 @@
1
- export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-IC64IWOO.js';
1
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-PBNP7H2C.js';
2
2
  import '../chunk-WI6K5M5X.js';
3
- import '../chunk-VJLYGPPE.js';
3
+ import '../chunk-RIEDQSA4.js';
4
4
  import '../chunk-SMBKXWML.js';
5
- import '../chunk-Q55TXPA3.js';
5
+ import '../chunk-6QFAK2WV.js';
6
6
  import '../chunk-4KP4RC3O.js';
7
7
  import '../chunk-3CZ7XAVY.js';
8
8
  import '../chunk-EUCC37WY.js';
@@ -1,6 +1,6 @@
1
- export { COMPOSER_COUNTER_AT, Composer } from '../chunk-VJLYGPPE.js';
1
+ export { COMPOSER_COUNTER_AT, Composer } from '../chunk-RIEDQSA4.js';
2
2
  import '../chunk-SMBKXWML.js';
3
- import '../chunk-Q55TXPA3.js';
3
+ import '../chunk-6QFAK2WV.js';
4
4
  import '../chunk-PQADV6P6.js';
5
5
  import '../chunk-4FQT6ZAY.js';
6
6
  import '../chunk-BZFWDIV6.js';
@@ -1,6 +1,6 @@
1
- export { ConfirmField, confirmMatches } from '../chunk-YSY6UJ4F.js';
1
+ export { ConfirmField, confirmMatches } from '../chunk-FGYET26P.js';
2
2
  import '../chunk-5CLW2CXT.js';
3
- import '../chunk-Q55TXPA3.js';
3
+ import '../chunk-6QFAK2WV.js';
4
4
  import '../chunk-PQADV6P6.js';
5
5
  import '../chunk-4FQT6ZAY.js';
6
6
  import '../chunk-BZFWDIV6.js';
@@ -1,9 +1,9 @@
1
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-BXSGT3YC.js';
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-35UKQ33X.js';
2
2
  import '../chunk-STJ7QBC3.js';
3
3
  import '../chunk-DTIW4CHZ.js';
4
4
  import '../chunk-F4DPAJCN.js';
5
- import '../chunk-I6NZKJGK.js';
6
- import '../chunk-Q55TXPA3.js';
5
+ import '../chunk-IASV5UCP.js';
6
+ import '../chunk-6QFAK2WV.js';
7
7
  import '../chunk-EUCC37WY.js';
8
8
  import '../chunk-AV2DXAEL.js';
9
9
  import '../chunk-PQADV6P6.js';
@@ -1,16 +1,16 @@
1
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-KYEXTEJ3.js';
1
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-JCSXFAXG.js';
2
2
  import '../chunk-HOXGBLEY.js';
3
3
  import '../chunk-PGRPNDWM.js';
4
- import '../chunk-RE6ED5TO.js';
5
- import '../chunk-BXSGT3YC.js';
4
+ import '../chunk-35UKQ33X.js';
5
+ import '../chunk-WG5WUFBX.js';
6
6
  import '../chunk-STJ7QBC3.js';
7
7
  import '../chunk-DTIW4CHZ.js';
8
8
  import '../chunk-F4DPAJCN.js';
9
9
  import '../chunk-F73MC7EZ.js';
10
10
  import '../chunk-SMBKXWML.js';
11
11
  import '../chunk-GXQ3B46I.js';
12
- import '../chunk-I6NZKJGK.js';
13
- import '../chunk-Q55TXPA3.js';
12
+ import '../chunk-IASV5UCP.js';
13
+ import '../chunk-6QFAK2WV.js';
14
14
  import '../chunk-3CZ7XAVY.js';
15
15
  import '../chunk-EUCC37WY.js';
16
16
  import '../chunk-BWRGFKJP.js';
@@ -1,4 +1,4 @@
1
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-RE6ED5TO.js';
1
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-WG5WUFBX.js';
2
2
  import '../chunk-GXQ3B46I.js';
3
3
  import '../chunk-BWRGFKJP.js';
4
4
  import '../chunk-OG6CL3EB.js';
@@ -159,7 +159,7 @@ svg.crewlet-datetime__chevron {
159
159
  font-variant-numeric: tabular-nums;
160
160
  color: var(--color-text-primary);
161
161
  background: var(--color-surface-subtle);
162
- border: 1px solid var(--color-border-control);
162
+ border: 1px solid var(--color-border-field);
163
163
  /* A box is a box: the corner every field in the package wears. */
164
164
  border-radius: var(--radius-md);
165
165
  outline: none;
@@ -1,7 +1,7 @@
1
1
  import '../chunk-FFMCMSJB.js';
2
- export { HuePicker } from '../chunk-XU4ZUGLE.js';
3
- import '../chunk-26PEPONN.js';
4
- import '../chunk-4LDTQWS7.js';
2
+ export { HuePicker } from '../chunk-OQT7GSKJ.js';
3
+ import '../chunk-7QL2OFP6.js';
4
+ import '../chunk-XJFOOXCF.js';
5
5
  import '../chunk-AYKXMIOR.js';
6
6
  import '../chunk-CBOICT64.js';
7
7
  import '../chunk-BHHIIK3M.js';
@@ -1,4 +1,4 @@
1
- export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-Q55TXPA3.js';
1
+ export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-6QFAK2WV.js';
2
2
  import '../chunk-PQADV6P6.js';
3
3
  import '../chunk-4FQT6ZAY.js';
4
4
  import '../chunk-BZFWDIV6.js';
@@ -11,12 +11,14 @@
11
11
  * with padding on all four sides a 32px field drew 39px tall, so a field, the
12
12
  * button beside it and the select beside that were three heights.
13
13
  *
14
- * THE BOUNDARY IS --color-border-control, not the default border. A text
15
- * box, a checkbox and a switch are the three things on a page whose OUTLINE
16
- * is the control: with the ordinary hairline they measured 1.27:1 in light
17
- * and 1.75:1 in dark, which is a box a reader has to already know is there.
18
- * It is the one place this register does not follow the product's own
19
- * stylesheet, which draws every field on the panel hairline.
14
+ * THE BOUNDARY IS --color-border-field, not the default border. A text box
15
+ * is one of the few things on a page whose OUTLINE is the control: with the
16
+ * ordinary hairline it measured 1.27:1 in light and 1.75:1 in dark, which is
17
+ * a box a reader has to already know is there. The field step is the strong
18
+ * border lifted only as far as 3:1 on the rungs a field stands on, so it
19
+ * clears that floor without being the brightest edge on the page, which the
20
+ * control boundary was: held to every row composite a checkbox meets, it
21
+ * measured 4.9:1 on the card a search box nearly always sits on.
20
22
  *
21
23
  * AND A FOCUSED FIELD SHOWS ONE RING, drawn as an outline over that boundary.
22
24
  * Every field in this package states that rule for itself and states it the
@@ -40,7 +42,7 @@
40
42
  width: 100%;
41
43
  min-height: var(--size-control-md);
42
44
  background-color: var(--color-surface-subtle);
43
- border: 1px solid var(--color-border-control);
45
+ border: 1px solid var(--color-border-field);
44
46
  border-radius: var(--radius-md);
45
47
  /* The boundary is the only thing that moves here. The ring is an outline,
46
48
  which takes no transition, and nothing else paints a shadow. */
@@ -55,8 +57,13 @@
55
57
 
56
58
  .crewlet-input--sm { min-height: var(--size-control-sm); }
57
59
 
60
+ /*
61
+ * UNDER THE POINTER THE EDGE STEPS UP, to the control boundary. The hover
62
+ * border is a hairline step, darker than the field's own edge, so a field
63
+ * that took it faded as the pointer reached it.
64
+ */
58
65
  .crewlet-input:hover {
59
- border-color: var(--color-border-hover);
66
+ border-color: var(--color-border-control);
60
67
  }
61
68
 
62
69
  /*
@@ -344,7 +351,7 @@
344
351
  line-height: var(--font-line-height-normal);
345
352
  color: var(--color-text-primary);
346
353
  background-color: var(--color-surface-subtle);
347
- border: 1px solid var(--color-border-control);
354
+ border: 1px solid var(--color-border-field);
348
355
  border-radius: var(--radius-md);
349
356
  transition: border-color var(--motion-duration-fast) var(--motion-easing-default);
350
357
  box-sizing: border-box;
@@ -1,6 +1,6 @@
1
- export { LinkInterstitial, openExternal } from '../chunk-L2OQRPXJ.js';
2
- import '../chunk-F4DPAJCN.js';
1
+ export { LinkInterstitial, openExternal } from '../chunk-ZM7HLFOA.js';
3
2
  import '../chunk-5CLW2CXT.js';
3
+ import '../chunk-F4DPAJCN.js';
4
4
  import '../chunk-SVSCLHHI.js';
5
5
  import '../chunk-PQADV6P6.js';
6
6
  import '../chunk-OG6CL3EB.js';
@@ -1,6 +1,6 @@
1
- export { ListInput } from '../chunk-YSJYWQSP.js';
1
+ export { ListInput } from '../chunk-D5JZN3ML.js';
2
2
  import '../chunk-SMBKXWML.js';
3
- import '../chunk-Q55TXPA3.js';
3
+ import '../chunk-6QFAK2WV.js';
4
4
  import '../chunk-PQADV6P6.js';
5
5
  import '../chunk-HMPFGIWM.js';
6
6
  import '../chunk-R25RGPUB.js';
@@ -1,8 +1,8 @@
1
- export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-QQGWES46.js';
2
- import '../chunk-VYY56AMX.js';
1
+ export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-CS65QSIJ.js';
2
+ import '../chunk-M54K52ZU.js';
3
3
  import '../chunk-PGRPNDWM.js';
4
- import '../chunk-26PEPONN.js';
5
- import '../chunk-4LDTQWS7.js';
4
+ import '../chunk-7QL2OFP6.js';
5
+ import '../chunk-XJFOOXCF.js';
6
6
  import '../chunk-CBOICT64.js';
7
7
  import '../chunk-BHHIIK3M.js';
8
8
  import '../chunk-HMPFGIWM.js';
@@ -19,14 +19,15 @@
19
19
  display: flex;
20
20
  flex-direction: column;
21
21
  min-width: 0;
22
- border: 1px solid var(--color-border-control);
22
+ border: 1px solid var(--color-border-field);
23
23
  border-radius: var(--radius-md);
24
24
  background: var(--color-surface-subtle);
25
25
  transition: border-color var(--motion-duration-fast) var(--motion-easing-default);
26
26
  }
27
27
 
28
28
  .crewlet-markdown-editor:hover {
29
- border-color: var(--color-border-hover);
29
+ /* A step up from the field's edge, as every field takes (see Input.css). */
30
+ border-color: var(--color-border-control);
30
31
  }
31
32
 
32
33
  .crewlet-markdown-editor:has(.crewlet-markdown-editor__field:focus-visible) {
@@ -1,5 +1,5 @@
1
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-6A7P6II6.js';
2
- import '../chunk-T5TFZ2JB.js';
1
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-AMNN4WDX.js';
2
+ import '../chunk-VEB5ERRE.js';
3
3
  import '../chunk-MY374UUD.js';
4
4
  import '../chunk-AKEZ3G5V.js';
5
5
  import '../chunk-VYOKRN2I.js';
@@ -1,7 +1,7 @@
1
- export { PrincipalPicker } from '../chunk-JEDWC3GI.js';
2
- import '../chunk-LOLELDBW.js';
1
+ export { PrincipalPicker } from '../chunk-ZITJKF6Z.js';
2
+ import '../chunk-QS4ZGTEU.js';
3
3
  import '../chunk-F73MC7EZ.js';
4
- import '../chunk-Q55TXPA3.js';
4
+ import '../chunk-6QFAK2WV.js';
5
5
  import '../chunk-4KP4RC3O.js';
6
6
  import '../chunk-UAN5NE7M.js';
7
7
  import '../chunk-5OM447RW.js';
@@ -1,6 +1,6 @@
1
- import '../chunk-VYY56AMX.js';
2
- export { SegmentedControl } from '../chunk-26PEPONN.js';
3
- import '../chunk-4LDTQWS7.js';
1
+ import '../chunk-M54K52ZU.js';
2
+ export { SegmentedControl } from '../chunk-7QL2OFP6.js';
3
+ import '../chunk-XJFOOXCF.js';
4
4
  import '../chunk-CBOICT64.js';
5
5
  import '../chunk-BHHIIK3M.js';
6
6
  import '../chunk-BZFWDIV6.js';
@@ -1,8 +1,8 @@
1
- export { Switcher } from '../chunk-7X5WOECO.js';
1
+ export { Switcher } from '../chunk-KG6XRG5Z.js';
2
2
  import '../chunk-W5J7R5EB.js';
3
3
  import '../chunk-F4DPAJCN.js';
4
4
  import '../chunk-F73MC7EZ.js';
5
- import '../chunk-Q55TXPA3.js';
5
+ import '../chunk-6QFAK2WV.js';
6
6
  import '../chunk-BWRGFKJP.js';
7
7
  import '../chunk-FYTIJM2T.js';
8
8
  import '../chunk-PQADV6P6.js';
@@ -218,17 +218,23 @@ svg.crewlet-switcher-trigger__chevron {
218
218
  }
219
219
 
220
220
  /*
221
- * THE CURRENT SUBJECT, outlined by its own accent hairline inside the row: an
221
+ * THE CURRENT SUBJECT, in the accent's soft pair: the tint, and the line
222
+ * paired with it drawn inside the row, as a chosen chip is (see Tabs.css). An
222
223
  * outline rather than a shadow, so forced-colours mode keeps it. The row the
223
- * arrows are on takes the raised fill as every listbox row does; both can land
224
- * on one row, and it never gains a second border.
224
+ * arrows are on takes the raised fill as every listbox row does, and keeps it
225
+ * when it is the current row too, so the tint never hides where the arrows
226
+ * are; that row keeps the line, and it never gains a second border.
225
227
  */
226
228
  .crewlet-listbox__option.crewlet-switcher__option.is-current {
227
229
  color: var(--color-text-primary);
228
- outline: 1px solid var(--color-brand-accent);
230
+ outline: 1px solid var(--color-brand-accent-soft-strong);
229
231
  outline-offset: -1px;
230
232
  }
231
233
 
234
+ .crewlet-listbox__option.crewlet-switcher__option.is-current:not([aria-selected='true']):not(:hover) {
235
+ background: var(--color-brand-accent-soft);
236
+ }
237
+
232
238
  /* A HELD ROW answers no pointer: no fill under it, and the reason in the quiet
233
239
  ink at its end says why. */
234
240
  .crewlet-listbox__option.crewlet-switcher__option[aria-disabled='true'] {
@@ -1,4 +1,4 @@
1
- export { TabPanel, Tabs, tabId } from '../chunk-4LDTQWS7.js';
1
+ export { TabPanel, Tabs, tabId } from '../chunk-XJFOOXCF.js';
2
2
  import '../chunk-CBOICT64.js';
3
3
  import '../chunk-BHHIIK3M.js';
4
4
  import '../chunk-BZFWDIV6.js';
@@ -305,8 +305,9 @@
305
305
  * QUIET CHIPS WITH NO WELL: the lenses of an object or a scope, set beside its
306
306
  * name in a page's bar. A well round them was a second box beside the name the
307
307
  * lenses are about, and a raised chip inside it a second highlight. Here the
308
- * chip that is on is drawn by its own border in the accent and nothing else,
309
- * which is the kit's one way of saying "this one is chosen".
308
+ * chip that is on is drawn in the accent's soft pair, the tint and the line
309
+ * paired with it, which is how the kit says "this one is chosen" on a chip
310
+ * (FilterChip draws the same pair).
310
311
  */
311
312
  .crewlet-tabs--chip {
312
313
  display: inline-flex;
@@ -334,11 +335,17 @@
334
335
  background: none;
335
336
  }
336
337
 
337
- /* An outline rather than a border, so a chip turning on does not move its
338
- neighbours by a pixel, and forced-colors mode keeps it. */
338
+ /*
339
+ * THE SOFT PAIR, not the solid accent. A full-strength accent ring round a
340
+ * chip is the brightest edge in the bar, louder than the name the lenses are
341
+ * about; the soft tint says which chip is on and the paired line gives it an
342
+ * edge. An outline rather than a border, so a chip turning on does not move
343
+ * its neighbours by a pixel, and forced-colors mode keeps it.
344
+ */
339
345
  .crewlet-tabs--chip .crewlet-tabs__tab.is-active {
346
+ background: var(--color-brand-accent-soft);
340
347
  color: var(--color-text-primary);
341
- outline: 1px solid var(--color-brand-accent);
348
+ outline: 1px solid var(--color-brand-accent-soft-strong);
342
349
  outline-offset: -1px;
343
350
  }
344
351
 
@@ -1,4 +1,4 @@
1
- export { TagsInput } from '../chunk-7ZNKEPLN.js';
1
+ export { TagsInput } from '../chunk-2CQLNML5.js';
2
2
  import '../chunk-GFV4LJHH.js';
3
3
  import '../chunk-WIATRXEJ.js';
4
4
  import '../chunk-F73MC7EZ.js';
@@ -49,7 +49,7 @@
49
49
  line-height: var(--font-line-height-normal);
50
50
  color: var(--color-text-primary);
51
51
  background-color: var(--color-surface-subtle);
52
- border: 1px solid var(--color-border-control);
52
+ border: 1px solid var(--color-border-field);
53
53
  border-radius: var(--radius-md);
54
54
  outline: none;
55
55
  /* The boundary is the only thing that moves. The ring is an outline, which
@@ -1,9 +1,9 @@
1
- export { DensitySwitcher, ThemeSwitcher } from '../chunk-2ONWEDQT.js';
1
+ export { DensitySwitcher, ThemeSwitcher } from '../chunk-IPM2E6UI.js';
2
2
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
3
- import '../chunk-VYY56AMX.js';
3
+ import '../chunk-M54K52ZU.js';
4
4
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
5
- import '../chunk-26PEPONN.js';
6
- import '../chunk-4LDTQWS7.js';
5
+ import '../chunk-7QL2OFP6.js';
6
+ import '../chunk-XJFOOXCF.js';
7
7
  import '../chunk-CBOICT64.js';
8
8
  import '../chunk-BHHIIK3M.js';
9
9
  import '../chunk-BZFWDIV6.js';
@@ -1,8 +1,8 @@
1
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-NUZC6PJX.js';
1
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-LREN6TUG.js';
2
2
  import '../chunk-FC4YTTFJ.js';
3
3
  import '../chunk-F73MC7EZ.js';
4
4
  import '../chunk-GXQ3B46I.js';
5
- import '../chunk-Q55TXPA3.js';
5
+ import '../chunk-6QFAK2WV.js';
6
6
  import '../chunk-BWRGFKJP.js';
7
7
  import '../chunk-PQADV6P6.js';
8
8
  import '../chunk-OG6CL3EB.js';
@@ -300,7 +300,7 @@ svg.crewlet-time-window__tick {
300
300
  min-height: var(--size-control-sm);
301
301
  padding: 0 var(--spacing-2);
302
302
  background: var(--color-surface-subtle);
303
- border: 1px solid var(--color-border-control);
303
+ border: 1px solid var(--color-border-field);
304
304
  border-radius: var(--radius-md);
305
305
  font-family: var(--font-family-mono);
306
306
  font-size: var(--font-size-compact);
@@ -1,4 +1,4 @@
1
- export { TreeGrid } from '../chunk-T5TFZ2JB.js';
1
+ export { TreeGrid } from '../chunk-VEB5ERRE.js';
2
2
  import '../chunk-MY374UUD.js';
3
3
  import '../chunk-VYOKRN2I.js';
4
4
  import '../chunk-HMPFGIWM.js';
@@ -44,6 +44,18 @@
44
44
  border-radius: var(--radius-lg);
45
45
  }
46
46
 
47
+ /*
48
+ * INSIDE A FLUSH CARD THE CARD IS THE FRAME. A flush card exists so that a
49
+ * table's rows reach its edges (Card.css), and a grid that drew its own border
50
+ * and corner there was a second rounded box one pixel inside the first, with
51
+ * the card's footer hanging outside it. The rows keep their own hairlines.
52
+ */
53
+ .crewlet-card--flush .crewlet-tree-grid__grid {
54
+ background: none;
55
+ border: none;
56
+ border-radius: 0;
57
+ }
58
+
47
59
  .crewlet-tree-grid__row {
48
60
  display: grid;
49
61
  grid-template-columns: var(--crewlet-tree-grid-columns, minmax(0, 1fr));
@@ -1,8 +1,8 @@
1
- export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-73QBUUYX.js';
2
- import '../chunk-VYY56AMX.js';
1
+ export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-APS747CR.js';
2
+ import '../chunk-M54K52ZU.js';
3
3
  import '../chunk-BVWSLXTY.js';
4
- import '../chunk-26PEPONN.js';
5
- import '../chunk-4LDTQWS7.js';
4
+ import '../chunk-7QL2OFP6.js';
5
+ import '../chunk-XJFOOXCF.js';
6
6
  import '../chunk-CBOICT64.js';
7
7
  import '../chunk-RA2ULG6H.js';
8
8
  import '../chunk-PQADV6P6.js';
@@ -4,7 +4,7 @@ import { isComposing } from './chunk-R25RGPUB.js';
4
4
  import { announce } from './chunk-RSAQOKH3.js';
5
5
  import { IconButton } from './chunk-4FQT6ZAY.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
- import './TagsInput-P2HS5QL4.css';
7
+ import './TagsInput-XMXTI5Q4.css';
8
8
  import { forwardRef, useState, useRef, useId, useImperativeHandle, useEffect, useMemo, useLayoutEffect } from 'react';
9
9
  import { CheckGlyph, ChevronLeftGlyph, ChevronRightGlyph } from '@crewlethq/icons/glyphs';
10
10
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
1
  import { useClipboard } from './chunk-STJ7QBC3.js';
2
2
  import { Modal } from './chunk-F4DPAJCN.js';
3
- import { Checkbox } from './chunk-I6NZKJGK.js';
3
+ import { Checkbox } from './chunk-IASV5UCP.js';
4
4
  import { EmptyValue } from './chunk-EUCC37WY.js';
5
5
  import { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
6
6
  import { Menu } from './chunk-UFKUWVMV.js';
@@ -6,13 +6,16 @@ import { VisuallyHidden } from './chunk-BZFWDIV6.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './ArtifactCard-EXVAEBV6.css';
8
8
  import { useId } from 'react';
9
- import { TableGlyph, FileTextGlyph, FileCodeGlyph, PinGlyph } from '@crewlethq/icons/glyphs';
9
+ import { TableGlyph, LayoutDashboardGlyph, PaletteGlyph, PresentationGlyph, FileTextGlyph, FileCodeGlyph, PinGlyph } from '@crewlethq/icons/glyphs';
10
10
  import { jsx, jsxs } from 'react/jsx-runtime';
11
11
 
12
- var ARTIFACT_KINDS = ["html", "markdown", "sheet"];
12
+ var ARTIFACT_KINDS = ["html", "doc", "slides", "design", "dashboard", "sheet"];
13
13
  var KIND_GLYPHS = {
14
14
  html: FileCodeGlyph,
15
- markdown: FileTextGlyph,
15
+ doc: FileTextGlyph,
16
+ slides: PresentationGlyph,
17
+ design: PaletteGlyph,
18
+ dashboard: LayoutDashboardGlyph,
16
19
  sheet: TableGlyph
17
20
  };
18
21
  function ArtifactKindGlyph({ kind, size = "md" }) {
@@ -20,7 +23,7 @@ function ArtifactKindGlyph({ kind, size = "md" }) {
20
23
  return /* @__PURE__ */ jsx(Drawn, { size });
21
24
  }
22
25
  var LABELS = {
23
- kinds: { html: "Page", markdown: "Document", sheet: "Sheet" },
26
+ kinds: { html: "Page", doc: "Doc", slides: "Slides", design: "Design", dashboard: "Dashboard", sheet: "Sheet" },
24
27
  pinned: "Pinned",
25
28
  version: (version) => `v${version}`,
26
29
  changes: (count) => count === 1 ? "1 change since you looked" : `${count} changes since you looked`,
@@ -2,7 +2,7 @@ import { useHeadingLevel, headingTag, HeadingLevelProvider, nextHeadingLevel } f
2
2
  import { IconButton } from './chunk-4FQT6ZAY.js';
3
3
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
5
- import './Input-3KVSNUO5.css';
5
+ import './Input-GBZSFXLU.css';
6
6
  import { forwardRef, useRef, useState, useImperativeHandle, useEffect, useId } from 'react';
7
7
  import { XGlyph } from '@crewlethq/icons/glyphs';
8
8
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { tabId } from './chunk-4LDTQWS7.js';
1
+ import { tabId } from './chunk-XJFOOXCF.js';
2
2
  import { useRoving, tabStop } from './chunk-CBOICT64.js';
3
3
  import { Count } from './chunk-BHHIIK3M.js';
4
4
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
@@ -1,4 +1,4 @@
1
- import { TreeGrid } from './chunk-T5TFZ2JB.js';
1
+ import { TreeGrid } from './chunk-VEB5ERRE.js';
2
2
  import { createTreeModel, treeParent } from './chunk-MY374UUD.js';
3
3
  import { OrgLabel } from './chunk-AKEZ3G5V.js';
4
4
  import { AddPill } from './chunk-TROLVEZY.js';