@crewlethq/ui 0.4.4 → 0.5.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.
- package/README.md +888 -24
- package/dist/Accordion/index.js +2 -2
- package/dist/AddPill/index.js +1 -1
- package/dist/{AddPill-DFWXYLIQ.css → AddPill-IJQYCY6C.css} +9 -0
- package/dist/AppShell/AppShell.d.ts +26 -5
- package/dist/AppShell/index.js +3 -3
- package/dist/{AppShell-NVE6LHNI.css → AppShell-XARELGIH.css} +178 -25
- package/dist/Avatar/Avatar.d.ts +85 -40
- package/dist/Avatar/AvatarStack.d.ts +76 -0
- package/dist/Avatar/index.d.ts +5 -2
- package/dist/Avatar/index.js +1 -1
- package/dist/Avatar-XID7Z74C.css +200 -0
- package/dist/AvatarStack-GEJBNV7E.css +72 -0
- package/dist/BrandLockup/index.js +1 -1
- package/dist/{BrandLockup-6ISDEHPJ.css → BrandLockup-JKGXFCZF.css} +25 -19
- package/dist/Button/Button.d.ts +7 -2
- package/dist/Button/index.js +1 -1
- package/dist/{Button-D4J6B4MA.css → Button-X4B2TJAQ.css} +50 -19
- package/dist/Callout/index.js +1 -1
- package/dist/Canvas/index.js +4 -4
- package/dist/Card/Card.d.ts +9 -5
- package/dist/Card/index.js +1 -1
- package/dist/{Card-RLR254LD.css → Card-GLP7SUV6.css} +25 -18
- package/dist/Charts/BarList.d.ts +18 -1
- package/dist/Charts/ChartTooltip.d.ts +68 -0
- package/dist/Charts/StackedBar.d.ts +25 -7
- package/dist/Charts/StackedColumns.d.ts +112 -0
- package/dist/Charts/TimeSeries.d.ts +33 -2
- package/dist/Charts/dataColor.d.ts +22 -14
- package/dist/Charts/index.d.ts +6 -0
- package/dist/Charts/index.js +1 -1
- package/dist/Charts/useChartHover.d.ts +56 -0
- package/dist/Charts-B3YEF7R4.css +742 -0
- package/dist/Checkbox/index.js +1 -1
- package/dist/{Checkbox-VGW26YLQ.css → Checkbox-BOXQ747I.css} +2 -2
- package/dist/CodeBlock/index.js +4 -4
- package/dist/Combobox/index.js +5 -5
- package/dist/CommandPalette/CommandPalette.d.ts +97 -6
- package/dist/CommandPalette/index.d.ts +1 -1
- package/dist/CommandPalette/index.js +9 -7
- package/dist/CommandPalette-C5AMKGN2.css +259 -0
- package/dist/Copyable/index.js +3 -3
- package/dist/DataTable/index.js +7 -7
- package/dist/{DataTable-37UWTRN6.css → DataTable-OLHPF7D4.css} +35 -38
- package/dist/DataView/index.js +15 -15
- package/dist/{DataView-256YF32J.css → DataView-N6JX464S.css} +5 -4
- package/dist/DateTimePicker/index.js +5 -5
- package/dist/DiffList/index.js +1 -1
- package/dist/Disclosure/index.js +2 -2
- package/dist/EntityChip/EntityChip.d.ts +9 -12
- package/dist/EntityChip/index.d.ts +1 -1
- package/dist/EntityChip/index.js +2 -2
- package/dist/ErrorBoundary/index.js +2 -2
- package/dist/{ErrorBoundary-ME36CQTA.css → ErrorBoundary-U2PA3LY2.css} +4 -4
- package/dist/IconButton/index.js +1 -1
- package/dist/{IconButton-VQGNMJDI.css → IconButton-TVEUWK6L.css} +2 -2
- package/dist/ImageUpload/ImageUpload.d.ts +10 -7
- package/dist/ImageUpload/index.js +2 -2
- package/dist/{ImageUpload-HKFIZR6D.css → ImageUpload-YCHJMUGX.css} +24 -10
- package/dist/Input/index.js +2 -2
- package/dist/Kbd/Kbd.d.ts +14 -4
- package/dist/Kbd/index.js +1 -1
- package/dist/Kbd-JPLDVJIP.css +71 -0
- package/dist/Layer/index.js +1 -1
- package/dist/Link/index.js +1 -1
- package/dist/List/index.js +1 -1
- package/dist/{List-XTHESXLR.css → List-MYJIV6MP.css} +12 -2
- package/dist/ListInput/index.js +6 -6
- package/dist/Listbox/index.js +2 -2
- package/dist/Listbox/useListbox.d.ts +2 -0
- package/dist/{Listbox-ZXYYNN6U.css → Listbox-6WJNJQVQ.css} +32 -7
- package/dist/Menu/index.js +4 -4
- package/dist/Meter/Meter.d.ts +103 -16
- package/dist/Meter/index.d.ts +2 -2
- package/dist/Meter/index.js +1 -1
- package/dist/{Meter-SKOOXQBC.css → Meter-5VCSFMZW.css} +46 -7
- package/dist/Modal/index.js +4 -4
- package/dist/{Modal-XYQJ4BL6.css → Modal-JAYBS2KS.css} +13 -4
- package/dist/OrgLabel/OrgLabel.d.ts +60 -24
- package/dist/OrgLabel/index.d.ts +1 -1
- package/dist/OrgLabel/index.js +2 -1
- package/dist/{OrgLabel-D7U6QJZD.css → OrgLabel-CR233G34.css} +9 -18
- package/dist/OrgNode/index.js +3 -2
- package/dist/OrgTable/OrgTable.d.ts +2 -2
- package/dist/OrgTable/index.js +8 -7
- package/dist/Popover/index.js +2 -2
- package/dist/PricingCard/index.js +3 -3
- package/dist/{PricingCard-JFI7RYXP.css → PricingCard-7EFXRSD2.css} +4 -5
- package/dist/SearchTrigger/SearchTrigger.d.ts +23 -4
- package/dist/SearchTrigger/index.d.ts +1 -1
- package/dist/SearchTrigger/index.js +1 -1
- package/dist/SearchTrigger-Z5D4AAY7.css +112 -0
- package/dist/SegmentedControl/index.js +2 -2
- package/dist/SegmentedMeter/SegmentedMeter.d.ts +107 -0
- package/dist/SegmentedMeter/index.d.ts +3 -0
- package/dist/SegmentedMeter/index.js +2 -0
- package/dist/SegmentedMeter-KQNML2TW.css +109 -0
- package/dist/Select/index.js +3 -3
- package/dist/Shortcut/index.js +2 -2
- package/dist/SidebarNav/SidebarNav.d.ts +85 -25
- package/dist/SidebarNav/index.d.ts +1 -1
- package/dist/SidebarNav/index.js +1 -1
- package/dist/SidebarNav-X5NLZNWA.css +424 -0
- package/dist/StatCard/StatCard.d.ts +59 -12
- package/dist/StatCard/index.d.ts +1 -1
- package/dist/StatCard/index.js +1 -1
- package/dist/StatCard-KPAFD4E2.css +204 -0
- package/dist/StatGroup/index.js +1 -1
- package/dist/{StatGroup-TGB6AEKM.css → StatGroup-HVG6O62W.css} +8 -9
- package/dist/StatusDot/StatusDot.d.ts +24 -6
- package/dist/StatusDot/index.js +1 -1
- package/dist/StatusDot-7OMCQCZF.css +186 -0
- package/dist/Stepper/Stepper.d.ts +78 -0
- package/dist/Stepper/index.d.ts +3 -0
- package/dist/Stepper/index.js +4 -0
- package/dist/Stepper-HW4JM3YH.css +176 -0
- package/dist/Tabs/index.js +1 -1
- package/dist/{Tabs-MJ2E3VPK.css → Tabs-XCNPHA7B.css} +46 -26
- package/dist/Tag/Tag.d.ts +29 -22
- package/dist/Tag/index.js +2 -2
- package/dist/{Tag-VNZEYLB6.css → Tag-GBE7LQJP.css} +82 -83
- package/dist/TagsInput/index.js +7 -7
- package/dist/ThemeSwitcher/ThemeSwitcher.d.ts +53 -21
- package/dist/ThemeSwitcher/index.d.ts +3 -3
- package/dist/ThemeSwitcher/index.js +4 -3
- package/dist/ThemeSwitcher/preferences.d.ts +19 -5
- package/dist/ThemeToggle/ThemeToggle.d.ts +40 -0
- package/dist/ThemeToggle/index.d.ts +2 -0
- package/dist/ThemeToggle/index.js +5 -0
- package/dist/TimeWindowPicker/index.js +8 -8
- package/dist/Toaster/index.js +2 -2
- package/dist/Toolbar/index.js +2 -2
- package/dist/{Toolbar-IP6LXN45.css → Toolbar-HUOSMNTH.css} +3 -1
- package/dist/Tooltip/index.js +2 -2
- package/dist/Tree/index.d.ts +2 -2
- package/dist/Tree/index.js +1 -1
- package/dist/Tree/layout.d.ts +103 -28
- package/dist/TreeCanvas/TreeCanvas.d.ts +60 -14
- package/dist/TreeCanvas/index.d.ts +1 -1
- package/dist/TreeCanvas/index.js +6 -6
- package/dist/TreeCanvas/motion.d.ts +3 -2
- package/dist/{TreeCanvas-WBNQPHC7.css → TreeCanvas-HVOV4SQN.css} +154 -30
- package/dist/TreeGrid/index.js +4 -4
- package/dist/{chunk-F6OE5FH3.js → chunk-2FPENTCF.js} +1 -1
- package/dist/chunk-4AK52VHB.js +88 -0
- package/dist/{chunk-7EM5T4ME.js → chunk-4IQD3HUQ.js} +2 -2
- package/dist/{chunk-YODNNSZL.js → chunk-4PZ6FJKW.js} +43 -13
- package/dist/{chunk-F27EPQ7D.js → chunk-4UQ7SMPK.js} +1 -1
- package/dist/chunk-5QWIJSQM.js +73 -0
- package/dist/{chunk-KIC7BZYJ.js → chunk-6MU7HNB4.js} +6 -5
- package/dist/{chunk-S2XHHEW4.js → chunk-74KMX7YH.js} +4 -4
- package/dist/{chunk-WNI2WSJF.js → chunk-7KBNFFM3.js} +1 -1
- package/dist/{chunk-EFSG7HNU.js → chunk-AUS5FNQE.js} +1 -1
- package/dist/{chunk-CMEE37QJ.js → chunk-BMYPGGPV.js} +4 -4
- package/dist/{chunk-H4FBTAYS.js → chunk-BNCCEER3.js} +8 -8
- package/dist/chunk-C5WJUZVR.js +56 -0
- package/dist/{chunk-5WS6L6FA.js → chunk-CAIHUYXV.js} +9 -9
- package/dist/{chunk-5KSRXHOW.js → chunk-CQY5NTRS.js} +1 -1
- package/dist/{chunk-MW356IVK.js → chunk-D6EVJUGU.js} +2 -2
- package/dist/{chunk-7PEFUMQJ.js → chunk-DHPUMOTX.js} +2 -2
- package/dist/{chunk-HZ5XZNPS.js → chunk-DS2C73RJ.js} +3 -3
- package/dist/{chunk-GKHAKGOF.js → chunk-DSUY5F4E.js} +3 -3
- package/dist/{chunk-Q4ZPPART.js → chunk-EFYPAJT3.js} +3 -3
- package/dist/{chunk-PATXSJGR.js → chunk-ERVO6OUF.js} +17 -17
- package/dist/{chunk-BZYDZBAN.js → chunk-ETYEBKR4.js} +3 -3
- package/dist/{chunk-CC67MUUO.js → chunk-FD5UEN6X.js} +30 -30
- package/dist/{chunk-5SDBMKUO.js → chunk-FIFNP6PL.js} +3 -3
- package/dist/{chunk-7HPRF5XN.js → chunk-FUF52K7E.js} +98 -16
- package/dist/{chunk-5KPQ6D7N.js → chunk-FZVJDJFN.js} +2 -2
- package/dist/chunk-IA232OTU.js +156 -0
- package/dist/{chunk-2EOKFKHX.js → chunk-IG27QX7Q.js} +7 -7
- package/dist/chunk-IKB6HFGK.js +55 -0
- package/dist/{chunk-T43A26SD.js → chunk-IPVQKAHO.js} +6 -6
- package/dist/{chunk-3EYF6HKB.js → chunk-IVFJD7WY.js} +28 -9
- package/dist/{chunk-XJWXPRSK.js → chunk-JGRNTBF2.js} +11 -11
- package/dist/chunk-K3OWD7BJ.js +121 -0
- package/dist/{chunk-6KCO2D5C.js → chunk-KD4H66L6.js} +7 -20
- package/dist/{chunk-SFZOKW2G.js → chunk-KJ34ZBBI.js} +8 -3
- package/dist/{chunk-AQTBF4EB.js → chunk-LFHCXZO5.js} +5 -5
- package/dist/{chunk-LWKJQTOM.js → chunk-MICH6QSJ.js} +1 -1
- package/dist/chunk-N3DPO6HG.js +226 -0
- package/dist/{chunk-S4GZWSKR.js → chunk-OM5E3TTK.js} +1 -1
- package/dist/{chunk-3QRYCPXQ.js → chunk-OPKIKM35.js} +6 -6
- package/dist/{chunk-5EKIWVOR.js → chunk-PGRPNDWM.js} +2 -2
- package/dist/{chunk-FSOW3ARP.js → chunk-PQNILU27.js} +9 -9
- package/dist/{chunk-QNCVHRZL.js → chunk-QVAFL2LE.js} +1 -1
- package/dist/{chunk-Q3B66TJM.js → chunk-QY7UU5ZB.js} +1 -1
- package/dist/{chunk-ITHXJHBB.js → chunk-R25RGPUB.js} +1 -0
- package/dist/{chunk-KLJCCMF3.js → chunk-R6735B37.js} +2 -2
- package/dist/{chunk-3ZP55QZE.js → chunk-R6FBDTP3.js} +4 -4
- package/dist/{chunk-7FZ53WDJ.js → chunk-RIAZM6L3.js} +1 -1
- package/dist/chunk-RJM4QCGG.js +550 -0
- package/dist/{chunk-NTRZGNEX.js → chunk-S3BCVWTU.js} +215 -46
- package/dist/chunk-S7KW47IQ.js +121 -0
- package/dist/{chunk-KNYYCWMK.js → chunk-SJQ546ID.js} +4 -4
- package/dist/{chunk-D35VTV2Z.js → chunk-SV7QAONL.js} +1 -1
- package/dist/{chunk-IAJLHVUA.js → chunk-TIWAHZZ6.js} +1 -1
- package/dist/{chunk-2PRH365R.js → chunk-UA7O3KKJ.js} +1 -1
- package/dist/{chunk-NPZY6YYL.js → chunk-UG5ZMAXW.js} +6 -6
- package/dist/{chunk-NDCATSW7.js → chunk-V34H2YCY.js} +1 -1
- package/dist/chunk-WIATRXEJ.js +22 -0
- package/dist/{chunk-5C5YMZQU.js → chunk-WOFOMTGB.js} +16 -10
- package/dist/{chunk-QYOFACSP.js → chunk-WSOFKOLP.js} +3 -3
- package/dist/{chunk-MNAXYY3R.js → chunk-WUVZDFHS.js} +31 -11
- package/dist/{chunk-DB2VDLVR.js → chunk-YIMOT5OO.js} +10 -10
- package/dist/{chunk-2ZQMA2WB.js → chunk-ZPSOF6VL.js} +2 -2
- package/dist/generated/index.d.ts +3 -0
- package/dist/generated/index.js +69 -65
- package/dist/index.js +69 -65
- package/dist/styles.css +2538 -741
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/tone.d.ts +7 -12
- package/package.json +4 -4
- package/scripts/check-css-literals.mjs +159 -23
- package/scripts/check-css-variables.mjs +5 -3
- package/scripts/css-source.mjs +97 -5
- package/dist/Avatar-P2KRQM2B.css +0 -156
- package/dist/Charts-D7G2BSXH.css +0 -277
- package/dist/CommandPalette-CSJDUCQA.css +0 -115
- package/dist/Kbd-W66MXQI5.css +0 -61
- package/dist/SearchTrigger-QXOYAUUY.css +0 -79
- package/dist/SidebarNav-QGSFKZYA.css +0 -319
- package/dist/StatCard-KYPKZUWX.css +0 -111
- package/dist/StatusDot-HA2L2FSX.css +0 -84
- package/dist/chunk-22O7LAW2.js +0 -41
- package/dist/chunk-AJNCATWZ.js +0 -144
- package/dist/chunk-F4PJZ4ED.js +0 -245
- package/dist/chunk-PNFASD6F.js +0 -98
- package/dist/chunk-PZSWF74H.js +0 -15
- package/dist/chunk-R66KLW7S.js +0 -143
- /package/dist/{chunk-ZCR6YGQ4.js → chunk-PKIN4IMB.js} +0 -0
package/dist/Checkbox/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Checkbox } from '../chunk-
|
|
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
|
|
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;
|
package/dist/CodeBlock/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { CodeBlock } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { CodeBlock } from '../chunk-SV7QAONL.js';
|
|
2
|
+
import '../chunk-OPKIKM35.js';
|
|
3
3
|
import '../chunk-5VNUYO76.js';
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-4UQ7SMPK.js';
|
|
5
|
+
import '../chunk-ETYEBKR4.js';
|
|
6
6
|
import '../chunk-BZFWDIV6.js';
|
|
7
7
|
import '../chunk-ODEQTPFM.js';
|
package/dist/Combobox/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { Combobox } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
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-
|
|
6
|
-
import '../chunk-
|
|
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
|
-
/**
|
|
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
|
|
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
|
-
/**
|
|
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(
|
|
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-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
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-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
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
|
+
}
|
package/dist/Copyable/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { CopyButton, Copyable } from '../chunk-
|
|
1
|
+
export { CopyButton, Copyable } from '../chunk-OPKIKM35.js';
|
|
2
2
|
import '../chunk-5VNUYO76.js';
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-4UQ7SMPK.js';
|
|
4
|
+
import '../chunk-ETYEBKR4.js';
|
|
5
5
|
import '../chunk-BZFWDIV6.js';
|
|
6
6
|
import '../chunk-ODEQTPFM.js';
|
package/dist/DataTable/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
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-
|
|
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-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
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
|
|
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
|
|
1985
|
-
*
|
|
1986
|
-
*
|
|
1987
|
-
*
|
|
1988
|
-
*
|
|
1989
|
-
*
|
|
1990
|
-
*
|
|
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
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
.crewlet-data-
|
|
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
|
}
|
package/dist/DataView/index.js
CHANGED
|
@@ -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-
|
|
2
|
-
import '../chunk-
|
|
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-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
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-
|
|
10
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-IG27QX7Q.js';
|
|
10
|
+
import '../chunk-YIMOT5OO.js';
|
|
11
|
+
import '../chunk-AUS5FNQE.js';
|
|
11
12
|
import '../chunk-GXQ3B46I.js';
|
|
12
|
-
import '../chunk-2PRH365R.js';
|
|
13
13
|
import '../chunk-AV2DXAEL.js';
|
|
14
|
+
import '../chunk-UA7O3KKJ.js';
|
|
14
15
|
import '../chunk-5VNUYO76.js';
|
|
15
|
-
import '../chunk-
|
|
16
|
-
import '../chunk-
|
|
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-
|
|
22
|
-
import '../chunk-
|
|
23
|
-
import '../chunk-
|
|
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';
|