@crewlethq/ui 0.4.4 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/README.md +888 -24
  2. package/dist/Accordion/index.js +2 -2
  3. package/dist/AddPill/index.js +1 -1
  4. package/dist/{AddPill-DFWXYLIQ.css → AddPill-IJQYCY6C.css} +9 -0
  5. package/dist/AppShell/AppShell.d.ts +26 -5
  6. package/dist/AppShell/index.js +3 -3
  7. package/dist/{AppShell-NVE6LHNI.css → AppShell-XARELGIH.css} +178 -25
  8. package/dist/Avatar/Avatar.d.ts +85 -40
  9. package/dist/Avatar/AvatarStack.d.ts +76 -0
  10. package/dist/Avatar/index.d.ts +5 -2
  11. package/dist/Avatar/index.js +1 -1
  12. package/dist/Avatar-XID7Z74C.css +200 -0
  13. package/dist/AvatarStack-GEJBNV7E.css +72 -0
  14. package/dist/BrandLockup/index.js +1 -1
  15. package/dist/{BrandLockup-6ISDEHPJ.css → BrandLockup-JKGXFCZF.css} +25 -19
  16. package/dist/Button/Button.d.ts +7 -2
  17. package/dist/Button/index.js +1 -1
  18. package/dist/{Button-D4J6B4MA.css → Button-X4B2TJAQ.css} +50 -19
  19. package/dist/Callout/index.js +1 -1
  20. package/dist/Canvas/index.js +4 -4
  21. package/dist/Card/Card.d.ts +9 -5
  22. package/dist/Card/index.js +1 -1
  23. package/dist/{Card-RLR254LD.css → Card-GLP7SUV6.css} +25 -18
  24. package/dist/Charts/BarList.d.ts +18 -1
  25. package/dist/Charts/ChartTooltip.d.ts +68 -0
  26. package/dist/Charts/StackedBar.d.ts +25 -7
  27. package/dist/Charts/StackedColumns.d.ts +112 -0
  28. package/dist/Charts/TimeSeries.d.ts +33 -2
  29. package/dist/Charts/dataColor.d.ts +22 -14
  30. package/dist/Charts/index.d.ts +6 -0
  31. package/dist/Charts/index.js +1 -1
  32. package/dist/Charts/useChartHover.d.ts +56 -0
  33. package/dist/Charts-B3YEF7R4.css +742 -0
  34. package/dist/Checkbox/index.js +1 -1
  35. package/dist/{Checkbox-VGW26YLQ.css → Checkbox-BOXQ747I.css} +2 -2
  36. package/dist/CodeBlock/index.js +4 -4
  37. package/dist/Combobox/index.js +5 -5
  38. package/dist/CommandPalette/CommandPalette.d.ts +97 -6
  39. package/dist/CommandPalette/index.d.ts +1 -1
  40. package/dist/CommandPalette/index.js +9 -7
  41. package/dist/CommandPalette-C5AMKGN2.css +259 -0
  42. package/dist/Copyable/index.js +3 -3
  43. package/dist/DataTable/index.js +7 -7
  44. package/dist/{DataTable-37UWTRN6.css → DataTable-OLHPF7D4.css} +35 -38
  45. package/dist/DataView/index.js +16 -16
  46. package/dist/{DataView-256YF32J.css → DataView-N6JX464S.css} +5 -4
  47. package/dist/DateTimePicker/index.js +5 -5
  48. package/dist/DiffList/index.js +1 -1
  49. package/dist/Disclosure/index.js +2 -2
  50. package/dist/EntityChip/EntityChip.d.ts +9 -12
  51. package/dist/EntityChip/index.d.ts +1 -1
  52. package/dist/EntityChip/index.js +2 -2
  53. package/dist/ErrorBoundary/index.js +2 -2
  54. package/dist/{ErrorBoundary-ME36CQTA.css → ErrorBoundary-U2PA3LY2.css} +4 -4
  55. package/dist/IconButton/index.js +1 -1
  56. package/dist/{IconButton-VQGNMJDI.css → IconButton-TVEUWK6L.css} +2 -2
  57. package/dist/ImageUpload/ImageUpload.d.ts +10 -7
  58. package/dist/ImageUpload/index.js +2 -2
  59. package/dist/{ImageUpload-HKFIZR6D.css → ImageUpload-YCHJMUGX.css} +24 -10
  60. package/dist/Input/index.js +2 -2
  61. package/dist/Kbd/Kbd.d.ts +14 -4
  62. package/dist/Kbd/index.js +1 -1
  63. package/dist/Kbd-JPLDVJIP.css +71 -0
  64. package/dist/Layer/index.js +1 -1
  65. package/dist/Link/index.js +1 -1
  66. package/dist/List/index.js +1 -1
  67. package/dist/{List-XTHESXLR.css → List-MYJIV6MP.css} +12 -2
  68. package/dist/ListInput/index.js +6 -6
  69. package/dist/Listbox/index.js +2 -2
  70. package/dist/Listbox/useListbox.d.ts +2 -0
  71. package/dist/{Listbox-ZXYYNN6U.css → Listbox-6WJNJQVQ.css} +32 -7
  72. package/dist/Menu/index.js +4 -4
  73. package/dist/Meter/Meter.d.ts +103 -16
  74. package/dist/Meter/index.d.ts +2 -2
  75. package/dist/Meter/index.js +1 -1
  76. package/dist/{Meter-SKOOXQBC.css → Meter-5VCSFMZW.css} +46 -7
  77. package/dist/Modal/index.js +4 -4
  78. package/dist/{Modal-XYQJ4BL6.css → Modal-JAYBS2KS.css} +13 -4
  79. package/dist/OrgLabel/OrgLabel.d.ts +60 -24
  80. package/dist/OrgLabel/index.d.ts +1 -1
  81. package/dist/OrgLabel/index.js +2 -1
  82. package/dist/{OrgLabel-D7U6QJZD.css → OrgLabel-CR233G34.css} +9 -18
  83. package/dist/OrgNode/index.js +3 -2
  84. package/dist/OrgTable/OrgTable.d.ts +2 -2
  85. package/dist/OrgTable/index.js +8 -7
  86. package/dist/Popover/index.js +2 -2
  87. package/dist/PricingCard/index.js +3 -3
  88. package/dist/{PricingCard-JFI7RYXP.css → PricingCard-7EFXRSD2.css} +4 -5
  89. package/dist/SearchTrigger/SearchTrigger.d.ts +23 -4
  90. package/dist/SearchTrigger/index.d.ts +1 -1
  91. package/dist/SearchTrigger/index.js +1 -1
  92. package/dist/SearchTrigger-Z5D4AAY7.css +112 -0
  93. package/dist/SegmentedControl/index.js +2 -2
  94. package/dist/SegmentedMeter/SegmentedMeter.d.ts +107 -0
  95. package/dist/SegmentedMeter/index.d.ts +3 -0
  96. package/dist/SegmentedMeter/index.js +2 -0
  97. package/dist/SegmentedMeter-KQNML2TW.css +109 -0
  98. package/dist/Select/index.js +3 -3
  99. package/dist/Shortcut/index.js +2 -2
  100. package/dist/SidebarNav/SidebarNav.d.ts +85 -25
  101. package/dist/SidebarNav/index.d.ts +1 -1
  102. package/dist/SidebarNav/index.js +1 -1
  103. package/dist/SidebarNav-X5NLZNWA.css +424 -0
  104. package/dist/StatCard/StatCard.d.ts +59 -12
  105. package/dist/StatCard/index.d.ts +1 -1
  106. package/dist/StatCard/index.js +1 -1
  107. package/dist/StatCard-KPAFD4E2.css +204 -0
  108. package/dist/StatGroup/index.js +1 -1
  109. package/dist/{StatGroup-TGB6AEKM.css → StatGroup-HVG6O62W.css} +8 -9
  110. package/dist/StatusDot/StatusDot.d.ts +24 -6
  111. package/dist/StatusDot/index.js +1 -1
  112. package/dist/StatusDot-7OMCQCZF.css +186 -0
  113. package/dist/Stepper/Stepper.d.ts +78 -0
  114. package/dist/Stepper/index.d.ts +3 -0
  115. package/dist/Stepper/index.js +4 -0
  116. package/dist/Stepper-HW4JM3YH.css +176 -0
  117. package/dist/Tabs/index.js +1 -1
  118. package/dist/{Tabs-MJ2E3VPK.css → Tabs-XCNPHA7B.css} +46 -26
  119. package/dist/Tag/Tag.d.ts +29 -22
  120. package/dist/Tag/index.js +2 -2
  121. package/dist/{Tag-VNZEYLB6.css → Tag-GBE7LQJP.css} +82 -83
  122. package/dist/TagsInput/index.js +7 -7
  123. package/dist/ThemeSwitcher/ThemeSwitcher.d.ts +53 -21
  124. package/dist/ThemeSwitcher/index.d.ts +3 -3
  125. package/dist/ThemeSwitcher/index.js +4 -3
  126. package/dist/ThemeSwitcher/preferences.d.ts +19 -5
  127. package/dist/ThemeToggle/ThemeToggle.d.ts +40 -0
  128. package/dist/ThemeToggle/index.d.ts +2 -0
  129. package/dist/ThemeToggle/index.js +5 -0
  130. package/dist/TimeWindowPicker/index.js +8 -8
  131. package/dist/Toaster/index.js +2 -2
  132. package/dist/Toolbar/index.js +2 -2
  133. package/dist/{Toolbar-IP6LXN45.css → Toolbar-HUOSMNTH.css} +3 -1
  134. package/dist/Tooltip/index.js +2 -2
  135. package/dist/Tree/index.d.ts +2 -2
  136. package/dist/Tree/index.js +1 -1
  137. package/dist/Tree/layout.d.ts +103 -28
  138. package/dist/TreeCanvas/TreeCanvas.d.ts +60 -14
  139. package/dist/TreeCanvas/index.d.ts +1 -1
  140. package/dist/TreeCanvas/index.js +6 -6
  141. package/dist/TreeCanvas/motion.d.ts +3 -2
  142. package/dist/{TreeCanvas-WBNQPHC7.css → TreeCanvas-HVOV4SQN.css} +154 -30
  143. package/dist/TreeGrid/index.js +4 -4
  144. package/dist/{chunk-F6OE5FH3.js → chunk-2FPENTCF.js} +1 -1
  145. package/dist/chunk-4AK52VHB.js +88 -0
  146. package/dist/{chunk-7EM5T4ME.js → chunk-4IQD3HUQ.js} +2 -2
  147. package/dist/{chunk-YODNNSZL.js → chunk-4PZ6FJKW.js} +43 -13
  148. package/dist/{chunk-F27EPQ7D.js → chunk-4UQ7SMPK.js} +1 -1
  149. package/dist/chunk-5QWIJSQM.js +73 -0
  150. package/dist/{chunk-KIC7BZYJ.js → chunk-6MU7HNB4.js} +6 -5
  151. package/dist/{chunk-S2XHHEW4.js → chunk-74KMX7YH.js} +4 -4
  152. package/dist/{chunk-WNI2WSJF.js → chunk-7KBNFFM3.js} +1 -1
  153. package/dist/{chunk-EFSG7HNU.js → chunk-AUS5FNQE.js} +1 -1
  154. package/dist/{chunk-CMEE37QJ.js → chunk-BMYPGGPV.js} +4 -4
  155. package/dist/{chunk-H4FBTAYS.js → chunk-BNCCEER3.js} +8 -8
  156. package/dist/chunk-C5WJUZVR.js +56 -0
  157. package/dist/{chunk-5WS6L6FA.js → chunk-CAIHUYXV.js} +9 -9
  158. package/dist/{chunk-5KSRXHOW.js → chunk-CQY5NTRS.js} +1 -1
  159. package/dist/{chunk-MW356IVK.js → chunk-D6EVJUGU.js} +2 -2
  160. package/dist/{chunk-7PEFUMQJ.js → chunk-DHPUMOTX.js} +2 -2
  161. package/dist/{chunk-HZ5XZNPS.js → chunk-DS2C73RJ.js} +3 -3
  162. package/dist/{chunk-GKHAKGOF.js → chunk-DSUY5F4E.js} +3 -3
  163. package/dist/{chunk-Q4ZPPART.js → chunk-EFYPAJT3.js} +3 -3
  164. package/dist/{chunk-PATXSJGR.js → chunk-ERVO6OUF.js} +17 -17
  165. package/dist/{chunk-BZYDZBAN.js → chunk-ETYEBKR4.js} +3 -3
  166. package/dist/{chunk-CC67MUUO.js → chunk-FD5UEN6X.js} +30 -30
  167. package/dist/{chunk-5SDBMKUO.js → chunk-FIFNP6PL.js} +3 -3
  168. package/dist/{chunk-7HPRF5XN.js → chunk-FUF52K7E.js} +98 -16
  169. package/dist/{chunk-5KPQ6D7N.js → chunk-FZVJDJFN.js} +2 -2
  170. package/dist/chunk-IA232OTU.js +156 -0
  171. package/dist/{chunk-2EOKFKHX.js → chunk-IG27QX7Q.js} +7 -7
  172. package/dist/chunk-IKB6HFGK.js +55 -0
  173. package/dist/{chunk-T43A26SD.js → chunk-IPVQKAHO.js} +6 -6
  174. package/dist/{chunk-3EYF6HKB.js → chunk-IVFJD7WY.js} +28 -9
  175. package/dist/{chunk-XJWXPRSK.js → chunk-JGRNTBF2.js} +11 -11
  176. package/dist/chunk-K3OWD7BJ.js +121 -0
  177. package/dist/{chunk-6KCO2D5C.js → chunk-KD4H66L6.js} +7 -20
  178. package/dist/{chunk-SFZOKW2G.js → chunk-KJ34ZBBI.js} +8 -3
  179. package/dist/{chunk-AQTBF4EB.js → chunk-LFHCXZO5.js} +5 -5
  180. package/dist/{chunk-LWKJQTOM.js → chunk-MICH6QSJ.js} +1 -1
  181. package/dist/chunk-N3DPO6HG.js +226 -0
  182. package/dist/{chunk-S4GZWSKR.js → chunk-OM5E3TTK.js} +1 -1
  183. package/dist/{chunk-3QRYCPXQ.js → chunk-OPKIKM35.js} +6 -6
  184. package/dist/{chunk-5EKIWVOR.js → chunk-PGRPNDWM.js} +2 -2
  185. package/dist/{chunk-FSOW3ARP.js → chunk-PQNILU27.js} +9 -9
  186. package/dist/{chunk-QNCVHRZL.js → chunk-QVAFL2LE.js} +1 -1
  187. package/dist/{chunk-Q3B66TJM.js → chunk-QY7UU5ZB.js} +1 -1
  188. package/dist/{chunk-ITHXJHBB.js → chunk-R25RGPUB.js} +1 -0
  189. package/dist/{chunk-KLJCCMF3.js → chunk-R6735B37.js} +2 -2
  190. package/dist/{chunk-3ZP55QZE.js → chunk-R6FBDTP3.js} +4 -4
  191. package/dist/{chunk-7FZ53WDJ.js → chunk-RIAZM6L3.js} +1 -1
  192. package/dist/chunk-RJM4QCGG.js +550 -0
  193. package/dist/{chunk-NTRZGNEX.js → chunk-S3BCVWTU.js} +215 -46
  194. package/dist/chunk-S7KW47IQ.js +121 -0
  195. package/dist/{chunk-KNYYCWMK.js → chunk-SJQ546ID.js} +4 -4
  196. package/dist/{chunk-D35VTV2Z.js → chunk-SV7QAONL.js} +1 -1
  197. package/dist/{chunk-IAJLHVUA.js → chunk-TIWAHZZ6.js} +1 -1
  198. package/dist/{chunk-2PRH365R.js → chunk-UA7O3KKJ.js} +1 -1
  199. package/dist/{chunk-NPZY6YYL.js → chunk-UG5ZMAXW.js} +6 -6
  200. package/dist/{chunk-NDCATSW7.js → chunk-V34H2YCY.js} +1 -1
  201. package/dist/chunk-WIATRXEJ.js +22 -0
  202. package/dist/{chunk-5C5YMZQU.js → chunk-WOFOMTGB.js} +16 -10
  203. package/dist/{chunk-QYOFACSP.js → chunk-WSOFKOLP.js} +3 -3
  204. package/dist/{chunk-MNAXYY3R.js → chunk-WUVZDFHS.js} +31 -11
  205. package/dist/{chunk-DB2VDLVR.js → chunk-YIMOT5OO.js} +10 -10
  206. package/dist/{chunk-2ZQMA2WB.js → chunk-ZPSOF6VL.js} +2 -2
  207. package/dist/generated/index.d.ts +3 -0
  208. package/dist/generated/index.js +70 -66
  209. package/dist/index.js +70 -66
  210. package/dist/styles.css +2538 -741
  211. package/dist/utils/index.d.ts +1 -1
  212. package/dist/utils/tone.d.ts +7 -12
  213. package/package.json +4 -4
  214. package/scripts/check-css-literals.mjs +159 -23
  215. package/scripts/check-css-variables.mjs +5 -3
  216. package/scripts/css-source.mjs +97 -5
  217. package/dist/Avatar-P2KRQM2B.css +0 -156
  218. package/dist/Charts-D7G2BSXH.css +0 -277
  219. package/dist/CommandPalette-CSJDUCQA.css +0 -115
  220. package/dist/Kbd-W66MXQI5.css +0 -61
  221. package/dist/SearchTrigger-QXOYAUUY.css +0 -79
  222. package/dist/SidebarNav-QGSFKZYA.css +0 -319
  223. package/dist/StatCard-KYPKZUWX.css +0 -111
  224. package/dist/StatusDot-HA2L2FSX.css +0 -84
  225. package/dist/chunk-22O7LAW2.js +0 -41
  226. package/dist/chunk-AJNCATWZ.js +0 -144
  227. package/dist/chunk-F4PJZ4ED.js +0 -245
  228. package/dist/chunk-PNFASD6F.js +0 -98
  229. package/dist/chunk-PZSWF74H.js +0 -15
  230. package/dist/chunk-R66KLW7S.js +0 -143
  231. /package/dist/{chunk-ZCR6YGQ4.js → chunk-PKIN4IMB.js} +0 -0
@@ -1,2 +1,2 @@
1
- export { Checkbox } from '../chunk-2PRH365R.js';
1
+ export { Checkbox } from '../chunk-UA7O3KKJ.js';
2
2
  import '../chunk-ODEQTPFM.js';
@@ -44,8 +44,8 @@
44
44
  flex: 0 0 auto;
45
45
  /*
46
46
  * THE TICK IS THE ACCENT, which is what "here, this one" means everywhere
47
- * else in the system. It used to read --color-brand-primary, which is white
48
- * in the dark theme: a white tick on a white box.
47
+ * else in the system. It used to read the monochrome brand fill, which was
48
+ * white in the dark theme: a white tick on a white box.
49
49
  */
50
50
  accent-color: var(--color-brand-accent);
51
51
  cursor: pointer;
@@ -1,7 +1,7 @@
1
- export { CodeBlock } from '../chunk-D35VTV2Z.js';
2
- import '../chunk-3QRYCPXQ.js';
1
+ export { CodeBlock } from '../chunk-SV7QAONL.js';
2
+ import '../chunk-OPKIKM35.js';
3
3
  import '../chunk-5VNUYO76.js';
4
- import '../chunk-F27EPQ7D.js';
5
- import '../chunk-BZYDZBAN.js';
4
+ import '../chunk-4UQ7SMPK.js';
5
+ import '../chunk-ETYEBKR4.js';
6
6
  import '../chunk-BZFWDIV6.js';
7
7
  import '../chunk-ODEQTPFM.js';
@@ -1,8 +1,8 @@
1
- export { Combobox } from '../chunk-MW356IVK.js';
2
- import '../chunk-KIC7BZYJ.js';
3
- import '../chunk-GKHAKGOF.js';
1
+ export { Combobox } from '../chunk-D6EVJUGU.js';
2
+ import '../chunk-6MU7HNB4.js';
3
+ import '../chunk-DSUY5F4E.js';
4
4
  import '../chunk-PQADV6P6.js';
5
- import '../chunk-ITHXJHBB.js';
6
- import '../chunk-F27EPQ7D.js';
5
+ import '../chunk-R25RGPUB.js';
6
+ import '../chunk-4UQ7SMPK.js';
7
7
  import '../chunk-BZFWDIV6.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -5,8 +5,18 @@ export interface CommandPaletteItem {
5
5
  /** A glyph, drawn beside the label. Decorative: the label carries the words. */
6
6
  icon?: ReactNode;
7
7
  label: ReactNode;
8
- /** What the row is, at its end: a path, a kind, a state. */
8
+ /**
9
+ * What the row is, read straight after its label in the quiet ink: a path, a
10
+ * state, who owns it. It runs on the label's line and is cut with it.
11
+ */
9
12
  hint?: ReactNode;
13
+ /**
14
+ * What sits at the row's END: a short fact (the space a page is in) or a
15
+ * `Kbd` naming the accelerator that runs the row from anywhere in the
16
+ * surface. It only DRAWS the key: the chord itself is the application's, on
17
+ * the palette's `onKeyDown`, like the chord that opens it.
18
+ */
19
+ meta?: ReactNode;
10
20
  onSelect: () => void;
11
21
  }
12
22
  export interface CommandPaletteGroup {
@@ -15,6 +25,41 @@ export interface CommandPaletteGroup {
15
25
  label: string;
16
26
  items: CommandPaletteItem[];
17
27
  }
28
+ /** One scope the search can be narrowed to: a tab over the results. */
29
+ export interface CommandPaletteScope {
30
+ /** Stable identity: the value `scope`, `onScopeChange` and `groupsScope` carry. */
31
+ id: string;
32
+ label: string;
33
+ /** How many results the scope holds, drawn as a `Count` beside its label. */
34
+ count?: number | undefined;
35
+ }
36
+ /**
37
+ * Scopes come as a SET or not at all. A scope row without its controlled value
38
+ * is a tablist with nothing selected; one without `groupsScope` is a palette
39
+ * that cannot tell the results it was handed from the results it asked for,
40
+ * which is the one thing the row makes possible to get wrong.
41
+ */
42
+ export type CommandPaletteScopeProps = {
43
+ scopes?: undefined;
44
+ scope?: undefined;
45
+ onScopeChange?: undefined;
46
+ groupsScope?: undefined;
47
+ scopesLabel?: undefined;
48
+ } | {
49
+ /** The scopes, in the order the row draws them and Tab walks them. */
50
+ scopes: CommandPaletteScope[];
51
+ /** The scope the reader has chosen. */
52
+ scope: string;
53
+ onScopeChange: (scope: string) => void;
54
+ /**
55
+ * THE SCOPE `groups` WAS COMPUTED FOR. While it is not `scope`, the rows
56
+ * are withheld and the list says it is searching, so results that arrive
57
+ * after the reader moved on are never offered under the scope they left.
58
+ */
59
+ groupsScope: string;
60
+ /** Names the row of scopes. */
61
+ scopesLabel?: string | undefined;
62
+ };
18
63
  /**
19
64
  * Rest props reach the Modal's frame, which is what lets an application put
20
65
  * its own chord on the surface (see the component doc).
@@ -25,7 +70,7 @@ export interface CommandPaletteGroup {
25
70
  * the three ARIA relationships, which the Modal decides: `label` names this
26
71
  * surface and its field together.
27
72
  */
28
- export interface CommandPaletteProps extends Omit<HTMLAttributes<HTMLElement>, 'children' | 'role' | 'onSubmit' | 'aria-label' | 'aria-labelledby' | 'aria-describedby'> {
73
+ export type CommandPaletteProps = Omit<HTMLAttributes<HTMLElement>, 'children' | 'role' | 'onSubmit' | 'aria-label' | 'aria-labelledby' | 'aria-describedby'> & CommandPaletteScopeProps & {
29
74
  open: boolean;
30
75
  onClose: () => void;
31
76
  /** Names the surface and its field. */
@@ -35,13 +80,32 @@ export interface CommandPaletteProps extends Omit<HTMLAttributes<HTMLElement>, '
35
80
  /** What is offered right now. The caller does the searching and the ranking. */
36
81
  groups: CommandPaletteGroup[];
37
82
  placeholder?: string | undefined;
38
- /** The hints under the results, usually `Kbd` keycaps. */
83
+ /**
84
+ * What the surface says BEFORE its results, outside the list: an answer
85
+ * written from what the rows point at, a notice about the search itself.
86
+ * It is a polite live region, so what arrives in it is read without moving
87
+ * the highlight, and it is never an option: Enter still takes the row the
88
+ * arrows are on.
89
+ */
90
+ lead?: ReactNode;
91
+ /** The key legend under the results, usually `Kbd` keycaps with a word each. */
39
92
  footer?: ReactNode;
93
+ /**
94
+ * Draws an `Esc` keycap at the END of the field, the approved design's
95
+ * reminder of how the surface closes. Off by default: it names a key, so
96
+ * it belongs on a surface a keyboard reaches, and an application that also
97
+ * opens the palette from a touch target decides whether that is the one
98
+ * every reader of it has. The key itself always closes the surface; this
99
+ * only draws it.
100
+ */
101
+ escapeHint?: boolean | undefined;
40
102
  /** Said when the query matches nothing. Name the kind of nothing it is. */
41
103
  emptyMessage?: string | undefined;
104
+ /** Said while the rows handed over answer a scope the reader has left. */
105
+ pendingMessage?: string | undefined;
42
106
  /** Names the result list itself. */
43
107
  resultsLabel?: string | undefined;
44
- }
108
+ };
45
109
  /**
46
110
  * One search surface for a whole product: screens, records, and any id pasted
47
111
  * out of a log.
@@ -58,6 +122,31 @@ export interface CommandPaletteProps extends Omit<HTMLAttributes<HTMLElement>, '
58
122
  * instead put up to forty tab stops between the field and itself, and the
59
123
  * highlight moved in silence.
60
124
  *
125
+ * THE SCOPES ARE TABS NOBODY TABS TO. Focus never leaves the field, so the
126
+ * scope row is driven FROM it: Tab and Shift+Tab step through the scopes, and
127
+ * so do the left and right arrows while the field is empty (with text in it
128
+ * they move the caret, which is their job first). Each is still a real `tab` in
129
+ * a real `tablist` whose `tabpanel` is the results, and a press on one picks it
130
+ * without taking focus from the field. What the row costs is Tab's usual job,
131
+ * which in a surface whose only stop is the field was wrapping focus back to
132
+ * where it already was. The change is SAID, in a hidden status line, because a
133
+ * tab selected from somewhere else is otherwise silent.
134
+ *
135
+ * A SCOPE THAT HAS MOVED ON WITHHOLDS THE ROWS OF THE ONE BEFORE. A caller that
136
+ * searches asynchronously still holds the last scope's results for as long as
137
+ * the next search takes, and a palette that drew them would put an agent under
138
+ * "Tasks" and let Enter open it. So the rows say which scope they answer
139
+ * (`groupsScope`), and until that is the chosen one the list is busy and
140
+ * offers nothing. A query that moved on WITHIN a scope is not held back the
141
+ * same way: the rows for "flak" are a fair answer while "flaky" is in flight.
142
+ *
143
+ * THE LEAD IS NOT IN THE LIST. A listbox takes options and groups, and an
144
+ * answer written above the rows is neither, so it sits outside, in its own
145
+ * polite live region, mounted empty so the first words to arrive are read. It
146
+ * shares the one scroller with the rows, because an answer tall enough to need
147
+ * scrolling would otherwise squeeze the list to nothing. Anything a reader
148
+ * should be able to ACT on belongs in a row, where the arrows reach it.
149
+ *
61
150
  * THE LIST IS THE SURFACE'S OWN BODY, not a popup above it (`popup: false`).
62
151
  * Registered as a popup, the list would take Escape from the stack and take the
63
152
  * veil's press on `pointerdown`, closing the palette before that press's click
@@ -72,6 +161,8 @@ export interface CommandPaletteProps extends Omit<HTMLAttributes<HTMLElement>, '
72
161
  * THE CHORD THAT OPENS IT IS THE APPLICATION'S, not this component's. Pass an
73
162
  * `onKeyDown`: it reaches the frame, which is every key pressed inside the
74
163
  * surface, and closing from there is one line the caller already has the
75
- * definition for.
164
+ * definition for. The accelerators a row's `meta` draws are the same: an Enter
165
+ * held with Command, Control or Option is never taken as Enter on the
166
+ * highlighted row, so ⌘Enter reaches the caller alone.
76
167
  */
77
- export declare function CommandPalette({ open, ...rest }: CommandPaletteProps): import("react").JSX.Element | null;
168
+ export declare function CommandPalette(props: CommandPaletteProps): import("react").JSX.Element | null;
@@ -1,3 +1,3 @@
1
1
  import './CommandPalette.css';
2
2
  export { CommandPalette } from './CommandPalette.js';
3
- export type { CommandPaletteGroup, CommandPaletteItem, CommandPaletteProps } from './CommandPalette.js';
3
+ export type { CommandPaletteGroup, CommandPaletteItem, CommandPaletteProps, CommandPaletteScope, CommandPaletteScopeProps, } from './CommandPalette.js';
@@ -1,11 +1,13 @@
1
- export { CommandPalette } from '../chunk-AJNCATWZ.js';
2
- import '../chunk-KIC7BZYJ.js';
3
- import '../chunk-GKHAKGOF.js';
4
- import '../chunk-2EOKFKHX.js';
1
+ export { CommandPalette } from '../chunk-N3DPO6HG.js';
2
+ import '../chunk-KJ34ZBBI.js';
3
+ import '../chunk-IG27QX7Q.js';
4
+ import '../chunk-6MU7HNB4.js';
5
+ import '../chunk-DSUY5F4E.js';
6
+ import '../chunk-BHHIIK3M.js';
5
7
  import '../chunk-PQADV6P6.js';
6
8
  import '../chunk-7RPGY3JE.js';
7
- import '../chunk-ITHXJHBB.js';
8
- import '../chunk-F27EPQ7D.js';
9
- import '../chunk-BZYDZBAN.js';
9
+ import '../chunk-R25RGPUB.js';
10
+ import '../chunk-4UQ7SMPK.js';
11
+ import '../chunk-ETYEBKR4.js';
10
12
  import '../chunk-BZFWDIV6.js';
11
13
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,259 @@
1
+ /*
2
+ * The command palette: a field, an optional row of scopes, one scroller
3
+ * holding the lead and the list, and a key legend.
4
+ *
5
+ * It is a Modal with its body's padding dropped, so the bands run edge to edge
6
+ * and the field reads as the surface rather than as a question on a form.
7
+ * The rows are the listbox register (`Listbox.css`), because a result here and
8
+ * a completion in a field are the same thing to a reader and the raised row
9
+ * that marks the active one has to mean the same in both.
10
+ *
11
+ * THE TWO OVERRIDES BELOW NAME BOTH CLASSES ON PURPOSE. A single class would
12
+ * tie with the rule it is overriding (`.crewlet-modal--md`,
13
+ * `.crewlet-input--command`), and a tie is broken by the order the stylesheets
14
+ * happen to be concatenated in, which is alphabetical over filenames.
15
+ */
16
+
17
+ .crewlet-modal.crewlet-palette {
18
+ /*
19
+ * THE APPROVED DESIGN'S SURFACE: 720px wide, and as tall as its artboard
20
+ * draws it with an answer leading five rows, 664px of a 900px window. It was
21
+ * 620 by min(60dvh, 520px), sized for a list alone, and a lead that size
22
+ * over it left room for three rows. 74dvh is that artboard's 664/900; the
23
+ * 680px cap is the same surface with one more row, so a tall window does
24
+ * not turn a launcher read in one glance into a page.
25
+ */
26
+ --crewlet-modal-width: 720px;
27
+
28
+ max-height: min(74dvh, 680px);
29
+ }
30
+
31
+ /*
32
+ * THE BODY LAYS THE THREE BANDS OUT, and the RESULTS are what scrolls.
33
+ *
34
+ * A Modal's body is a block that scrolls its whole content, which is right for
35
+ * a dialog read top to bottom and wrong here: the field would ride up out of
36
+ * view as the arrows walked the list, and the list, sized to its own content,
37
+ * would never overflow, so the row the listbox brings into view by scrolling
38
+ * that element would have nowhere to go.
39
+ */
40
+ .crewlet-palette .crewlet-modal__body {
41
+ display: flex;
42
+ flex-direction: column;
43
+ overflow: hidden;
44
+ }
45
+
46
+ /*
47
+ * The field, drawn as the surface's own top band: no box of its own, the full
48
+ * height of a large row, and the question asked at the reading size rather
49
+ * than at a control's. It is the first thing on the surface and the only thing
50
+ * with focus, so it is the surface's headline as much as its input.
51
+ */
52
+ /*
53
+ * THE ROW'S TWO ENDS ARE INSET ONE STEP LESS THAN THE BANDS BELOW IT. The
54
+ * search glyph and the Esc keycap each carry a slot inset of their own (the
55
+ * glyph's, a step less than text's, see Input.css), so at the bands' 16px the
56
+ * glyph stood 24px in and the keycap 28px from the edge; at 12px they stand
57
+ * 20px and 16px in, where the approved palette draws them, and the query still
58
+ * starts on the line the design's does.
59
+ */
60
+ .crewlet-input.crewlet-palette__field {
61
+ flex-shrink: 0;
62
+ min-height: var(--size-row-lg);
63
+ padding-inline: var(--spacing-3);
64
+ border: none;
65
+ border-bottom: 1px solid var(--color-border-default);
66
+ border-radius: 0;
67
+ background: transparent;
68
+ }
69
+
70
+ .crewlet-input.crewlet-palette__field .crewlet-input__control {
71
+ font-size: var(--font-size-md);
72
+ }
73
+
74
+ .crewlet-input.crewlet-palette__field .crewlet-input__trailing {
75
+ padding-right: var(--spacing-1);
76
+ }
77
+
78
+ /*
79
+ * THE FOOT IS THE KEYBOARD'S OWN BAND, at the micro register rather than the
80
+ * modal footer's. A modal's foot carries buttons and is sized for them; this
81
+ * one carries a line of keycaps saying what the arrows, Enter and Escape do,
82
+ * and at a dialog's padding that line reads as an action row nobody can press.
83
+ *
84
+ * Both classes are named for the same reason the two rules below are: a single
85
+ * class ties with `.crewlet-modal__footer`, and a tie is broken by the order
86
+ * the stylesheets are concatenated in.
87
+ */
88
+ .crewlet-palette .crewlet-modal__footer {
89
+ gap: var(--spacing-4);
90
+ padding: var(--spacing-2) var(--spacing-4);
91
+ /* The SHEET rung under the card the results sit on, as the design draws the
92
+ legend: a band a step back from the surface, so it reads as the frame's
93
+ edge rather than as one more row. */
94
+ background: var(--color-surface-background);
95
+ }
96
+
97
+ .crewlet-palette .crewlet-modal__footer-start {
98
+ gap: var(--spacing-4);
99
+ font-size: var(--font-size-xs);
100
+ }
101
+
102
+ /*
103
+ * THE SCOPES: a strip of words under the field, the current one in the primary
104
+ * ink over a bar in the same ink. Not `Tabs`, whose tabs are a roving tab stop:
105
+ * these are never focused (the field drives them), so the row has no ring to
106
+ * draw and no slider to measure, and the bar is each tab's own edge.
107
+ */
108
+ .crewlet-palette__scopes {
109
+ flex-shrink: 0;
110
+ display: flex;
111
+ align-items: stretch;
112
+ gap: var(--spacing-4);
113
+ min-height: var(--size-row-md);
114
+ padding-inline: var(--spacing-4);
115
+ border-bottom: 1px solid var(--color-border-default);
116
+ overflow-x: auto;
117
+ scrollbar-width: none;
118
+ }
119
+
120
+ .crewlet-palette__scopes::-webkit-scrollbar {
121
+ display: none;
122
+ }
123
+
124
+ .crewlet-palette__scope {
125
+ flex: none;
126
+ display: inline-flex;
127
+ align-items: center;
128
+ gap: var(--spacing-2);
129
+ padding: 0 var(--spacing-1);
130
+ border: none;
131
+ /* The bar is drawn on every tab and coloured only on the chosen one, so a
132
+ choice moves no label by the bar's width. */
133
+ border-bottom: 2px solid transparent;
134
+ background: none;
135
+ color: var(--color-text-tertiary);
136
+ font: inherit;
137
+ font-size: var(--font-size-xs);
138
+ font-weight: var(--font-weight-medium);
139
+ white-space: nowrap;
140
+ cursor: pointer;
141
+ }
142
+
143
+ .crewlet-palette__scope:hover,
144
+ .crewlet-palette__scope.is-active {
145
+ color: var(--color-text-primary);
146
+ }
147
+
148
+ .crewlet-palette__scope.is-active {
149
+ border-bottom-color: var(--color-text-primary);
150
+ }
151
+
152
+ /*
153
+ * THE ONE SCROLLER: the lead and the list move together, and the listbox
154
+ * keeps the highlighted row in view inside this element.
155
+ */
156
+ .crewlet-palette__results {
157
+ flex: 1 1 auto;
158
+ min-height: 0;
159
+ overflow-y: auto;
160
+ overscroll-behavior: contain;
161
+ padding: var(--spacing-1);
162
+ }
163
+
164
+ /*
165
+ * THE LEAD: an answer on the raised rung above the rows, in the secondary ink
166
+ * at a reading leading, because it is prose read once rather than a row run
167
+ * past. Empty, it draws nothing: the region is mounted so a screen reader sees
168
+ * its first words arrive, and an empty box would be a band saying nothing.
169
+ */
170
+ .crewlet-palette__lead:not(:empty) {
171
+ display: flex;
172
+ flex-direction: column;
173
+ gap: var(--spacing-2);
174
+ margin: var(--spacing-2) var(--spacing-3) var(--spacing-1);
175
+ padding: var(--spacing-3) var(--spacing-4);
176
+ border-radius: var(--radius-lg);
177
+ background: var(--color-surface-elevated);
178
+ color: var(--color-text-secondary);
179
+ line-height: var(--font-line-height-relaxed);
180
+ }
181
+
182
+ /*
183
+ * The glyph takes the ROW'S colour rather than a quiet step of its own, so the
184
+ * row under the arrows lifts to the primary ink in one piece. Pinned to the
185
+ * tertiary step it stayed grey inside the highlight, which read as a glyph
186
+ * that had failed to load.
187
+ */
188
+ .crewlet-palette__icon {
189
+ display: inline-flex;
190
+ flex-shrink: 0;
191
+ }
192
+
193
+ /*
194
+ * THE LABEL AND ITS HINT ARE ONE LINE, cut together: the hint reads as the
195
+ * rest of the label's sentence ("ENG-420 Flaky e2e, Todo, unassigned"), and
196
+ * the row's end is kept for its meta. A hint pushed to the end as well would
197
+ * put two quiet columns side by side, and neither would say which it was.
198
+ */
199
+ .crewlet-palette__text {
200
+ flex: 1 1 auto;
201
+ min-width: 0;
202
+ overflow: hidden;
203
+ text-overflow: ellipsis;
204
+ white-space: nowrap;
205
+ }
206
+
207
+ .crewlet-palette__label {
208
+ font-weight: var(--font-weight-medium);
209
+ }
210
+
211
+ /* The quiet ink on every row, the highlighted one included, as the approved
212
+ palette draws it: the rest of the label's sentence, a step under the label
213
+ it follows. The tertiary step clears 4.5:1 on the raised row as on the card,
214
+ so the highlight has no reason to lift it. */
215
+ .crewlet-palette__hint {
216
+ color: var(--color-text-tertiary);
217
+ }
218
+
219
+ /*
220
+ * The row's end: a short fact or an accelerator's keycap. Never cut and never
221
+ * wrapped, so a column of keycaps stands in one line down the list.
222
+ */
223
+ .crewlet-palette__meta {
224
+ display: inline-flex;
225
+ flex-shrink: 0;
226
+ align-items: center;
227
+ margin-left: auto;
228
+ color: var(--color-text-tertiary);
229
+ font-size: var(--font-size-xs);
230
+ white-space: nowrap;
231
+ }
232
+
233
+ /*
234
+ * An honest empty state: it says which kind of nothing this is, and the
235
+ * component takes the sentence from the caller for that reason.
236
+ */
237
+ .crewlet-palette__empty {
238
+ margin: 0;
239
+ padding: var(--spacing-5) var(--spacing-4);
240
+ color: var(--color-text-tertiary);
241
+ font-size: var(--font-size-compact);
242
+ text-align: center;
243
+ }
244
+
245
+ /*
246
+ * FORCED COLORS draws a transparent border in the system's own ink, so every
247
+ * scope would wear the chosen one's bar. The bar is kept where it means
248
+ * something and painted out everywhere else, in the two colours the mode
249
+ * leaves as the author wrote them.
250
+ */
251
+ @media (forced-colors: active) {
252
+ .crewlet-palette__scope {
253
+ border-bottom-color: Canvas;
254
+ }
255
+
256
+ .crewlet-palette__scope.is-active {
257
+ border-bottom-color: CanvasText;
258
+ }
259
+ }
@@ -1,6 +1,6 @@
1
- export { CopyButton, Copyable } from '../chunk-3QRYCPXQ.js';
1
+ export { CopyButton, Copyable } from '../chunk-OPKIKM35.js';
2
2
  import '../chunk-5VNUYO76.js';
3
- import '../chunk-F27EPQ7D.js';
4
- import '../chunk-BZYDZBAN.js';
3
+ import '../chunk-4UQ7SMPK.js';
4
+ import '../chunk-ETYEBKR4.js';
5
5
  import '../chunk-BZFWDIV6.js';
6
6
  import '../chunk-ODEQTPFM.js';
@@ -1,14 +1,14 @@
1
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-PATXSJGR.js';
2
- import '../chunk-T43A26SD.js';
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-ERVO6OUF.js';
2
+ import '../chunk-IPVQKAHO.js';
3
3
  import '../chunk-EUCC37WY.js';
4
- import '../chunk-2PRH365R.js';
4
+ import '../chunk-IG27QX7Q.js';
5
5
  import '../chunk-AV2DXAEL.js';
6
+ import '../chunk-UA7O3KKJ.js';
6
7
  import '../chunk-5VNUYO76.js';
7
- import '../chunk-2EOKFKHX.js';
8
8
  import '../chunk-PQADV6P6.js';
9
9
  import '../chunk-7RPGY3JE.js';
10
- import '../chunk-ITHXJHBB.js';
11
- import '../chunk-F27EPQ7D.js';
12
- import '../chunk-BZYDZBAN.js';
10
+ import '../chunk-R25RGPUB.js';
11
+ import '../chunk-4UQ7SMPK.js';
12
+ import '../chunk-ETYEBKR4.js';
13
13
  import '../chunk-BZFWDIV6.js';
14
14
  import '../chunk-ODEQTPFM.js';
@@ -1267,7 +1267,7 @@ body.crewlet-data-table-resizing {
1267
1267
  display: inline-block;
1268
1268
  height: var(--spacing-3);
1269
1269
  border-radius: var(--radius-xs);
1270
- background: var(--color-surface-elevated, var(--color-surface-muted));
1270
+ background: var(--color-surface-elevated);
1271
1271
  animation: crewlet-data-table-skeleton-pulse var(--crewlet-data-table-skeleton-duration) var(--motion-easing-in-out) infinite;
1272
1272
  vertical-align: middle;
1273
1273
  }
@@ -1973,52 +1973,49 @@ body.crewlet-data-table-resizing {
1973
1973
  The component states its own, rather than leaning on the document
1974
1974
  baseline: this stylesheet also ships to an application that imports the
1975
1975
  component and not the baseline. The skeleton stops PULSING and keeps its
1976
- bars, which is what says the rows have not arrived.
1977
-
1978
- THE SETTINGS FRAME IS NAMED SEPARATELY BECAUSE IT IS NOT IN THE TABLE. It
1979
- is a Modal, which portals onto the layer host, so a descendant selector
1980
- rooted at .crewlet-data-table reaches none of it: the chip row and every
1981
- column row kept their transitions under the preference in exactly the
1982
- application this rule exists for. */
1976
+ bars, which is what says the rows have not arrived. */
1983
1977
  /*
1984
- * EVERY PART OF THE TABLE, INCLUDING THE ONES DRAWN SOMEWHERE ELSE. The list
1985
- * is not the root and its descendants: two of these live in the settings
1986
- * frame, which is a dialog portaled to the layer host, and the chrome row is
1987
- * drawn on a card's header wherever the table fills one. A preference
1988
- * cancelled through the root alone leaves exactly those pieces animating,
1989
- * which is the one place a reader who asked for stillness is least able to
1990
- * connect it back to a table.
1978
+ * EVERY MOTION THIS FILE STARTS IS STOPPED BY NAME, the same selector as the
1979
+ * rule that starts it and after it, so the two tie on specificity and the stop
1980
+ * wins on source order. The package's literal check holds the pairing
1981
+ * selector for selector.
1982
+ *
1983
+ * A CATCH-ALL IS WHAT THIS REPLACED, and it lost twice. Written as
1984
+ * `.crewlet-data-table *` it was one class against rules of two, so the row
1985
+ * hover, the sort control, the action button and the pager and cog all kept
1986
+ * their transitions; doubled to `.crewlet-data-table.crewlet-data-table *` it
1987
+ * was two classes, and the row's own rule is two classes AND two elements
1988
+ * (`… tbody tr`), so the row still eased its hover for a reader who had asked
1989
+ * for stillness. The document-wide rule in @crewlethq/tokens covers every
1990
+ * one of them with `!important` wherever that sheet is loaded, which is the
1991
+ * only reason nobody saw it.
1992
+ *
1993
+ * Naming the rules also reaches the pieces a descendant selector cannot: the
1994
+ * page-size and column rows are in the settings frame, a Modal portaled onto
1995
+ * the layer host, and the chrome row is drawn on a card's header wherever the
1996
+ * table fills one.
1991
1997
  */
1992
1998
  @media (prefers-reduced-motion: reduce) {
1993
- /*
1994
- * EACH NAME IS WRITTEN TWICE, which is not a typo: a selector repeating one
1995
- * class matches exactly what it matched and counts for twice as much. A
1996
- * cancellation is only a cancellation if it outranks what it cancels, and
1997
- * this one did not: written once, `.crewlet-data-table *` is one class where
1998
- * the rules it had to beat are two, so the row hover, the sort control, the
1999
- * action button and the pager and cog all kept their transitions for a
2000
- * reader who had asked for stillness. The document-wide rule in
2001
- * @crewlethq/tokens covered it with `!important` wherever that sheet is
2002
- * loaded, which is the only reason nobody saw it; this rule exists for the
2003
- * document that loads the components alone, and it has to stand on its own.
2004
- */
2005
- .crewlet-data-table.crewlet-data-table,
2006
- .crewlet-data-table.crewlet-data-table *,
2007
- .crewlet-data-table.crewlet-data-table *::before,
2008
- .crewlet-data-table.crewlet-data-table *::after,
2009
- .crewlet-data-table__chrome.crewlet-data-table__chrome,
2010
- .crewlet-data-table__chrome.crewlet-data-table__chrome *,
2011
- .crewlet-data-table__chrome.crewlet-data-table__chrome *::before,
2012
- .crewlet-data-table__chrome.crewlet-data-table__chrome *::after,
2013
- .crewlet-data-table__items-per-page-btn.crewlet-data-table__items-per-page-btn,
2014
- .crewlet-data-table__column-toggle-item.crewlet-data-table__column-toggle-item {
2015
- animation: none;
1999
+ .crewlet-data-table--default .crewlet-data-table__table tbody tr,
2000
+ .crewlet-data-table--default .crewlet-data-table__th--sortable,
2001
+ .crewlet-data-table--default .crewlet-data-table__sort-icon,
2002
+ .crewlet-data-table--default .crewlet-data-table__action-btn,
2003
+ .crewlet-data-table--default .crewlet-data-table__header-btn,
2004
+ .crewlet-data-table__items-per-page-btn,
2005
+ .crewlet-data-table__column-toggle-item,
2006
+ .crewlet-data-table__chrome .crewlet-data-table__page-btn,
2007
+ .crewlet-data-table__chrome .crewlet-data-table__settings-btn,
2008
+ .crewlet-data-table__expand-all-btn,
2009
+ .crewlet-data-table__chevron,
2010
+ .crewlet-data-table__resizer::before,
2011
+ .crewlet-data-table__copy-cell-button {
2016
2012
  transition: none;
2017
2013
  }
2018
2014
 
2019
2015
  /* The bars stay; only the pulse goes. A skeleton that vanished under a
2020
2016
  motion preference would take the answer to "has this loaded" with it. */
2021
2017
  .crewlet-data-table__skeleton-bar {
2018
+ animation: none;
2022
2019
  opacity: 0.6;
2023
2020
  }
2024
2021
  }
@@ -1,25 +1,25 @@
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-CC67MUUO.js';
2
- import '../chunk-5EKIWVOR.js';
3
- import '../chunk-3CZ7XAVY.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-FD5UEN6X.js';
2
+ import '../chunk-PGRPNDWM.js';
4
3
  import '../chunk-HOXGBLEY.js';
5
- import '../chunk-SFZOKW2G.js';
6
- import '../chunk-PATXSJGR.js';
7
- import '../chunk-T43A26SD.js';
4
+ import '../chunk-3CZ7XAVY.js';
5
+ import '../chunk-KJ34ZBBI.js';
6
+ import '../chunk-ERVO6OUF.js';
7
+ import '../chunk-IPVQKAHO.js';
8
8
  import '../chunk-EUCC37WY.js';
9
- import '../chunk-DB2VDLVR.js';
10
- import '../chunk-EFSG7HNU.js';
11
- import '../chunk-GXQ3B46I.js';
12
- import '../chunk-2PRH365R.js';
9
+ import '../chunk-IG27QX7Q.js';
10
+ import '../chunk-YIMOT5OO.js';
11
+ import '../chunk-AUS5FNQE.js';
13
12
  import '../chunk-AV2DXAEL.js';
13
+ import '../chunk-GXQ3B46I.js';
14
+ import '../chunk-UA7O3KKJ.js';
14
15
  import '../chunk-5VNUYO76.js';
15
- import '../chunk-KIC7BZYJ.js';
16
- import '../chunk-GKHAKGOF.js';
17
- import '../chunk-2EOKFKHX.js';
16
+ import '../chunk-6MU7HNB4.js';
17
+ import '../chunk-DSUY5F4E.js';
18
18
  import '../chunk-BHHIIK3M.js';
19
19
  import '../chunk-PQADV6P6.js';
20
20
  import '../chunk-7RPGY3JE.js';
21
- import '../chunk-ITHXJHBB.js';
22
- import '../chunk-F27EPQ7D.js';
23
- import '../chunk-BZYDZBAN.js';
21
+ import '../chunk-R25RGPUB.js';
22
+ import '../chunk-4UQ7SMPK.js';
23
+ import '../chunk-ETYEBKR4.js';
24
24
  import '../chunk-BZFWDIV6.js';
25
25
  import '../chunk-ODEQTPFM.js';