@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
|
@@ -182,10 +182,11 @@
|
|
|
182
182
|
* and without the boundary a reader reads them as a row of the table's own.
|
|
183
183
|
*
|
|
184
184
|
* A SOLID HAIRLINE. The fence was dashed, and a dashed edge MEANS SOMETHING
|
|
185
|
-
* ELSE here: it
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
185
|
+
* ELSE here: it marks a place nothing fills yet, an empty card slot, a unit
|
|
186
|
+
* with no lead, the ghost of a node being added. A fence round chips that are
|
|
187
|
+
* there is not one of those, and two meanings for one stroke is how a reader
|
|
188
|
+
* learns neither. Every boundary in this system is the same hairline; what
|
|
189
|
+
* differs is where it is drawn.
|
|
189
190
|
*/
|
|
190
191
|
.crewlet-filter-axis-bar {
|
|
191
192
|
display: flex;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-YIMOT5OO.js';
|
|
2
|
+
import '../chunk-AUS5FNQE.js';
|
|
3
3
|
import '../chunk-GXQ3B46I.js';
|
|
4
4
|
import '../chunk-7RPGY3JE.js';
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-R25RGPUB.js';
|
|
6
|
+
import '../chunk-4UQ7SMPK.js';
|
|
7
|
+
import '../chunk-ETYEBKR4.js';
|
|
8
8
|
import '../chunk-BZFWDIV6.js';
|
|
9
9
|
import '../chunk-ODEQTPFM.js';
|
package/dist/DiffList/index.js
CHANGED
package/dist/Disclosure/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { Disclosure } from '../chunk-
|
|
2
|
-
export { DisclosureAnatomy } from '../chunk-
|
|
1
|
+
export { Disclosure } from '../chunk-MICH6QSJ.js';
|
|
2
|
+
export { DisclosureAnatomy } from '../chunk-FZVJDJFN.js';
|
|
3
3
|
import '../chunk-BHHIIK3M.js';
|
|
4
4
|
import '../chunk-PQADV6P6.js';
|
|
5
5
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
-
import { type AvatarSizeStep } from '../Avatar/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Whether the engine runs this one.
|
|
5
|
-
*
|
|
6
|
-
* `human` draws the badge with a dashed edge, which is structure and not
|
|
7
|
-
* status: a human seat is a real seat that no agent occupies. It is carried by
|
|
8
|
-
* the edge rather than by a hue, so the status hues keep meaning only what
|
|
9
|
-
* they mean.
|
|
10
|
-
*/
|
|
11
|
-
export type EntityChipVariant = 'agent' | 'human';
|
|
2
|
+
import { type AvatarKind, type AvatarSizeStep } from '../Avatar/index.js';
|
|
12
3
|
export interface EntityChipProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
13
4
|
/** Who or what this is. Drawn as initials and read as the chip's own text. */
|
|
14
5
|
name: string;
|
|
@@ -19,7 +10,13 @@ export interface EntityChipProps extends Omit<HTMLAttributes<HTMLElement>, 'chil
|
|
|
19
10
|
* this look on a router's own Link while keeping its navigation.
|
|
20
11
|
*/
|
|
21
12
|
asChild?: boolean | undefined;
|
|
22
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Whether the engine runs this one: an `agent` (the default) is drawn as a
|
|
15
|
+
* squircle, a `human` seat as a circle, which is `Avatar`'s own kind. That is
|
|
16
|
+
* structure rather than status, so it is carried by the outline rather than
|
|
17
|
+
* by a hue and the state hues keep meaning only what they mean.
|
|
18
|
+
*/
|
|
19
|
+
kind?: AvatarKind | undefined;
|
|
23
20
|
/** The badge's step. The name takes the surrounding text size either way. */
|
|
24
21
|
size?: AvatarSizeStep | undefined;
|
|
25
22
|
children?: ReactNode;
|
|
@@ -37,4 +34,4 @@ export interface EntityChipProps extends Omit<HTMLAttributes<HTMLElement>, 'chil
|
|
|
37
34
|
* The badge is DECORATIVE here: the name is printed right beside it, and a
|
|
38
35
|
* badge that was also read would make every row say the name twice.
|
|
39
36
|
*/
|
|
40
|
-
export declare function EntityChip({ name, href, asChild,
|
|
37
|
+
export declare function EntityChip({ name, href, asChild, kind, size, className, children, ...rest }: EntityChipProps): import("react").JSX.Element;
|
package/dist/EntityChip/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { EntityChip } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { EntityChip } from '../chunk-WSOFKOLP.js';
|
|
2
|
+
import '../chunk-IA232OTU.js';
|
|
3
3
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
flex-direction: column;
|
|
11
11
|
align-items: flex-start;
|
|
12
12
|
gap: var(--spacing-3);
|
|
13
|
-
/* The
|
|
14
|
-
the product, and one drawn without the
|
|
15
|
-
text where the screen should have been.
|
|
13
|
+
/* The card's own recipe and its body inset: a fallback is still a panel of
|
|
14
|
+
the product, and one drawn without the card's ground and hairline read as
|
|
15
|
+
a block of unstyled text where the screen should have been. Flat, as
|
|
16
|
+
every card is. */
|
|
16
17
|
padding: var(--spacing-4);
|
|
17
18
|
border: 1px solid var(--color-border-default);
|
|
18
19
|
border-radius: var(--radius-lg);
|
|
19
20
|
background: var(--color-surface-subtle);
|
|
20
|
-
box-shadow: var(--shadow-xs), var(--shadow-hairline);
|
|
21
21
|
max-width: var(--size-measure);
|
|
22
22
|
}
|
|
23
23
|
|
package/dist/IconButton/index.js
CHANGED
|
@@ -88,13 +88,13 @@
|
|
|
88
88
|
*/
|
|
89
89
|
.crewlet-icon-btn--secondary {
|
|
90
90
|
background: var(--color-surface-subtle);
|
|
91
|
-
border-color: var(--color-border-
|
|
91
|
+
border-color: var(--color-border-strong);
|
|
92
92
|
color: var(--color-text-primary);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
.crewlet-icon-btn--secondary:hover:not(:disabled):not([aria-disabled='true']) {
|
|
96
96
|
background: var(--color-surface-elevated);
|
|
97
|
-
border-color: var(--color-border-hover);
|
|
97
|
+
border-color: var(--color-border-strong-hover);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
.crewlet-icon-btn--secondary:active:not(:disabled):not([aria-disabled='true']) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'react';
|
|
2
|
-
import { type
|
|
2
|
+
import { type AvatarKind } from '../Avatar/index.js';
|
|
3
3
|
export interface ImageUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
4
4
|
/** Current image source. When set, the control shows the image and the overlay label reads "Change". */
|
|
5
5
|
src?: string | undefined;
|
|
@@ -8,11 +8,14 @@ export interface ImageUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
8
8
|
/** Rendered width and height in pixels. */
|
|
9
9
|
size?: number | undefined;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* The picture is an Avatar, so it takes the Avatar's kind, and with it the
|
|
12
|
+
* outline the preview, the fallback, the trigger and the overlay are all
|
|
13
|
+
* drawn in. `agent`, the default as it is Avatar's, is the squircle, which
|
|
14
|
+
* is also the outline for a mark that is not a person, a company's logo
|
|
15
|
+
* among them: a wide mark cropped into a circle loses its ends. `human` is
|
|
16
|
+
* a person's round picture.
|
|
14
17
|
*/
|
|
15
|
-
|
|
18
|
+
kind?: AvatarKind | undefined;
|
|
16
19
|
/** When true, the control is display only: no overlay, no remove button, no file picker. */
|
|
17
20
|
readOnly?: boolean | undefined;
|
|
18
21
|
/** When true, the control shows a spinner and ignores interaction while an upload is in flight. */
|
|
@@ -29,9 +32,9 @@ export interface ImageUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
29
32
|
* current image (or an initials fallback), an overlay with a camera icon and
|
|
30
33
|
* an "Upload" or "Change" label (shown on hover, or always while no image is
|
|
31
34
|
* set), a hidden file input, a remove button, and an uploading state. One
|
|
32
|
-
* primitive covers both
|
|
35
|
+
* primitive covers both a logo in the squircle and a person's round picture.
|
|
33
36
|
*
|
|
34
37
|
* The selection callback hands back the raw File rather than a data URL because
|
|
35
38
|
* the upload now happens over the network.
|
|
36
39
|
*/
|
|
37
|
-
export declare const ImageUpload: ({ src, name, size,
|
|
40
|
+
export declare const ImageUpload: ({ src, name, size, kind, readOnly, uploading, accept, onSelect, onRemove, className, style, ...rest }: ImageUploadProps) => import("react").JSX.Element;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ImageUpload } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ImageUpload } from '../chunk-CAIHUYXV.js';
|
|
2
|
+
import '../chunk-IA232OTU.js';
|
|
3
3
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
of the six places that read it: a fallback repeated six times is six
|
|
18
18
|
places for the default to drift apart. */
|
|
19
19
|
--crewlet-image-upload-size: 64px;
|
|
20
|
-
/* The corner that box takes, set per instance beside the size
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
/* The corner that box takes, set per instance beside the size from Avatar's
|
|
21
|
+
own `avatarCorner`, which is the one statement of the ladder a script can
|
|
22
|
+
read. There is deliberately NO default here: the only right value is a
|
|
23
|
+
proportion of the size, and a stylesheet can only restate that proportion,
|
|
24
|
+
which is how the trigger and the picture under it came apart before. */
|
|
24
25
|
position: relative;
|
|
25
26
|
display: inline-flex;
|
|
26
27
|
flex-shrink: 0;
|
|
@@ -40,21 +41,34 @@
|
|
|
40
41
|
cursor: pointer;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
/*
|
|
44
|
-
.
|
|
45
|
-
.crewlet-image-upload--
|
|
44
|
+
/* The kind modifiers keep the trigger, the overlay and the Avatar outlines in
|
|
45
|
+
step. A person's picture is a circle. */
|
|
46
|
+
.crewlet-image-upload--human .crewlet-image-upload__trigger,
|
|
47
|
+
.crewlet-image-upload--human .crewlet-image-upload__overlay {
|
|
46
48
|
border-radius: var(--radius-circle);
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
/* THE SAME CORNER THE PICTURE INSIDE TAKES, which is why it is a variable
|
|
50
|
-
rather than a step: Avatar moves
|
|
52
|
+
rather than a step: Avatar moves an agent badge's corner with its box, so a
|
|
51
53
|
trigger pinned to one step is rounder or squarer than the badge under it at
|
|
52
54
|
every size but one, and the badge's corners show through the overlay. */
|
|
53
|
-
.crewlet-image-upload--
|
|
54
|
-
.crewlet-image-upload--
|
|
55
|
+
.crewlet-image-upload--agent .crewlet-image-upload__trigger,
|
|
56
|
+
.crewlet-image-upload--agent .crewlet-image-upload__overlay {
|
|
55
57
|
border-radius: var(--crewlet-image-upload-corner);
|
|
56
58
|
}
|
|
57
59
|
|
|
60
|
+
/* AND THE SAME SQUIRCLE, where the browser draws one, for the same reason:
|
|
61
|
+
Avatar.css states why its squircle is a whole one at the circle token, and
|
|
62
|
+
this is that rule for the two frames over the picture. The suite holds the
|
|
63
|
+
two blocks to one declaration list. */
|
|
64
|
+
@supports (corner-shape: squircle) {
|
|
65
|
+
.crewlet-image-upload--agent .crewlet-image-upload__trigger,
|
|
66
|
+
.crewlet-image-upload--agent .crewlet-image-upload__overlay {
|
|
67
|
+
corner-shape: squircle;
|
|
68
|
+
border-radius: var(--radius-circle);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
58
72
|
.crewlet-image-upload__trigger:disabled {
|
|
59
73
|
cursor: default;
|
|
60
74
|
}
|
package/dist/Input/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-
|
|
1
|
+
export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-DSUY5F4E.js';
|
|
2
2
|
import '../chunk-PQADV6P6.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-4UQ7SMPK.js';
|
|
4
4
|
import '../chunk-BZFWDIV6.js';
|
|
5
5
|
import '../chunk-ODEQTPFM.js';
|
package/dist/Kbd/Kbd.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* Whether the reader is on an Apple platform, where Command is the command key.
|
|
4
4
|
*
|
|
@@ -19,9 +19,12 @@ export interface KbdProps extends HTMLAttributes<HTMLElement> {
|
|
|
19
19
|
* A shortcut as the keys it is pressed with, in order: `['Mod', 'Shift',
|
|
20
20
|
* 'z']`. `Mod` is the platform's command key, so one hint is right on both.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* The chord is drawn as ONE cap, in the platform's own notation: `⌘⇧Z` on
|
|
23
|
+
* an Apple platform, where the menus print a chord's symbols run together,
|
|
24
|
+
* and `Ctrl+Shift+Z` everywhere else, where they print them joined by a
|
|
25
|
+
* plus. The cap is drawn hidden and ONE SENTENCE is read instead: "Command
|
|
26
|
+
* plus Shift plus Z". A screen reader given the glyphs reads "place of
|
|
27
|
+
* interest sign Z", which names nothing anybody presses.
|
|
25
28
|
*/
|
|
26
29
|
keys?: readonly string[] | undefined;
|
|
27
30
|
/** Overrides platform detection, for a suite or a screenshot. */
|
|
@@ -36,5 +39,12 @@ export interface KbdProps extends HTMLAttributes<HTMLElement> {
|
|
|
36
39
|
* `keys` is a whole shortcut, which needs the platform mapping and the spoken
|
|
37
40
|
* sentence. A hint that says Ctrl+Z to somebody on a Mac names a key they do
|
|
38
41
|
* not press.
|
|
42
|
+
*
|
|
43
|
+
* A CHORD IS ONE CAP. The keys of a shortcut are pressed together, so they
|
|
44
|
+
* are printed together, `⌘K` as the approved design draws every shortcut it
|
|
45
|
+
* shows; a cap per key read as a sequence to press one after another. Each
|
|
46
|
+
* key is still its own `kbd` inside the cap, which is how a key combination
|
|
47
|
+
* is marked up. Two shortcuts are two `Kbd`s: `↑` and `↓` beside "to move" are
|
|
48
|
+
* two keys that each do it, not a chord.
|
|
39
49
|
*/
|
|
40
50
|
export declare const Kbd: ({ subtle, keys, apple, className, children, ...rest }: KbdProps) => import("react").JSX.Element;
|
package/dist/Kbd/index.js
CHANGED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A keycap: the key's name on a small raised tile.
|
|
3
|
+
*
|
|
4
|
+
* THE APPROVED DESIGN'S CAP: the raised rung inside the strong hairline, at
|
|
5
|
+
* the smallest radius, in the mono face at the micro step and the tertiary
|
|
6
|
+
* ink. The raised fill is what makes it a KEY rather than a word in a box, so
|
|
7
|
+
* the cap is flat on every side: the heavier bottom edge it used to carry was
|
|
8
|
+
* a second way of saying "raised" that the fill now says, and it stood the
|
|
9
|
+
* cap a pixel taller than the line it sits in.
|
|
10
|
+
*/
|
|
11
|
+
.crewlet-kbd {
|
|
12
|
+
display: inline-flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
min-width: 18px;
|
|
16
|
+
padding: 0 var(--spacing-1);
|
|
17
|
+
border-radius: var(--radius-xs);
|
|
18
|
+
border: 1px solid var(--color-border-strong);
|
|
19
|
+
background: var(--color-surface-elevated);
|
|
20
|
+
/*
|
|
21
|
+
* The MONO face, not the surrounding one. A keycap is a literal: the reader
|
|
22
|
+
* is being told which character is printed on a key, and a proportional face
|
|
23
|
+
* draws `l`, `I` and `1` as three widths of the same mark.
|
|
24
|
+
*/
|
|
25
|
+
font-family: var(--font-family-mono);
|
|
26
|
+
font-variant-ligatures: none;
|
|
27
|
+
font-size: var(--font-size-2xs);
|
|
28
|
+
/* THE DOCUMENT'S OWN LEADING, because a cap is drawn INSIDE a line of text
|
|
29
|
+
and not beside it: a hint at the end of a search field, a key named in a
|
|
30
|
+
sentence, a shortcut in a menu row. Tightened it stood a pixel under the
|
|
31
|
+
line it sits in and the row it was in wobbled by that pixel wherever a
|
|
32
|
+
cap appeared and wherever one did not. */
|
|
33
|
+
line-height: var(--font-line-height-body);
|
|
34
|
+
color: var(--color-text-tertiary);
|
|
35
|
+
white-space: nowrap;
|
|
36
|
+
vertical-align: middle;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* A key inside a CHORD's cap. The whole chord is one cap, so each key in it
|
|
41
|
+
* is text on that cap and nothing more, run together with the next as the
|
|
42
|
+
* platform prints a chord. It is a `kbd` of its own because that is what a key
|
|
43
|
+
* inside a key combination is, and a user agent's `kbd` rule would otherwise
|
|
44
|
+
* set its own face and size on it.
|
|
45
|
+
*/
|
|
46
|
+
.crewlet-kbd__key {
|
|
47
|
+
font: inherit;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/*
|
|
51
|
+
* A quieter cap: FLATTER, not fainter. The opacity this replaces multiplied
|
|
52
|
+
* the ink as well as the frame, and 0.7 of a text step measures 3.43:1 on the
|
|
53
|
+
* panel, so a hint printing the key a reader is told to press was the one
|
|
54
|
+
* thing on the row they could not read. The cap gives up its raised fill and
|
|
55
|
+
* takes the plain hairline instead, and keeps the tertiary ink, which is
|
|
56
|
+
* measured at 4.5:1 on every surface the package paints on.
|
|
57
|
+
*/
|
|
58
|
+
.crewlet-kbd--subtle {
|
|
59
|
+
border-color: var(--color-border-default);
|
|
60
|
+
background: none;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/*
|
|
64
|
+
* A whole shortcut: the cap drawn, and one sentence read instead of it. The
|
|
65
|
+
* cap is hidden from assistive technology by the component; this only lays
|
|
66
|
+
* it out.
|
|
67
|
+
*/
|
|
68
|
+
.crewlet-kbd-combo {
|
|
69
|
+
display: inline-flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
}
|
package/dist/Layer/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-7RPGY3JE.js';
|
|
2
|
-
export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-
|
|
2
|
+
export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-R25RGPUB.js';
|
|
3
3
|
import '../chunk-ODEQTPFM.js';
|
package/dist/Link/index.js
CHANGED
package/dist/List/index.js
CHANGED
|
@@ -144,14 +144,24 @@
|
|
|
144
144
|
* A row that failed. The rail is the scannable half and the glyph beside it is
|
|
145
145
|
* the honest one: a reader who cannot tell the rail's hue from the row above
|
|
146
146
|
* still meets a mark and a word.
|
|
147
|
+
*
|
|
148
|
+
* Both take the danger INK step, not the fill, because both are drawn on the
|
|
149
|
+
* row, and the row is sometimes the accent tint: a failed row can also be the
|
|
150
|
+
* one the reader is on. The fill is measured to 3:1 on the opaque surfaces and
|
|
151
|
+
* no further, so a fill rail on a selected or hovered row clears it only by
|
|
152
|
+
* the luck of the current palette (the red this list drew measured 3.00:1 on
|
|
153
|
+
* a hovered row inside a raised surface in dark); the ink clears 4.5:1 on
|
|
154
|
+
* every row ground, the accent tint included, which is where the palette
|
|
155
|
+
* suite holds a row's state rail (DATA_MARKS) and where the DataTable suite's
|
|
156
|
+
* sheet scan now holds this one.
|
|
147
157
|
*/
|
|
148
158
|
.crewlet-list__item--danger > .crewlet-list__row {
|
|
149
|
-
box-shadow: inset 2px 0 0 var(--color-feedback-danger);
|
|
159
|
+
box-shadow: inset 2px 0 0 var(--color-feedback-danger-ink);
|
|
150
160
|
}
|
|
151
161
|
|
|
152
162
|
.crewlet-list__danger-mark {
|
|
153
163
|
flex: none;
|
|
154
|
-
color: var(--color-feedback-danger);
|
|
164
|
+
color: var(--color-feedback-danger-ink);
|
|
155
165
|
}
|
|
156
166
|
|
|
157
167
|
@media (prefers-reduced-motion: reduce) {
|
package/dist/ListInput/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { ListInput } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { ListInput } from '../chunk-PQNILU27.js';
|
|
2
|
+
import '../chunk-KJ34ZBBI.js';
|
|
3
|
+
import '../chunk-DSUY5F4E.js';
|
|
4
4
|
import '../chunk-PQADV6P6.js';
|
|
5
|
-
import '../chunk-7RPGY3JE.js';
|
|
6
|
-
import '../chunk-ITHXJHBB.js';
|
|
7
|
-
import '../chunk-F27EPQ7D.js';
|
|
8
5
|
import '../chunk-RSAQOKH3.js';
|
|
6
|
+
import '../chunk-7RPGY3JE.js';
|
|
7
|
+
import '../chunk-R25RGPUB.js';
|
|
8
|
+
import '../chunk-4UQ7SMPK.js';
|
|
9
9
|
import '../chunk-BZFWDIV6.js';
|
|
10
10
|
import '../chunk-ODEQTPFM.js';
|
package/dist/Listbox/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { TYPE_AHEAD_WINDOW, useListbox, useOptionKeys } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { TYPE_AHEAD_WINDOW, useListbox, useOptionKeys } from '../chunk-6MU7HNB4.js';
|
|
2
|
+
import '../chunk-R25RGPUB.js';
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
* so the highlight stays on a row that exists instead of jumping to the top.
|
|
18
18
|
* - ENTER TAKES THE HIGHLIGHTED OPTION and is prevented, because the field is
|
|
19
19
|
* usually inside a form that submits on Enter, and choosing is not saving.
|
|
20
|
+
* Enter held with Command, Control or Option is not Enter: it is left to
|
|
21
|
+
* whatever owns that chord.
|
|
20
22
|
* Tab takes it too where the list is a completion (`tabCommits`); a
|
|
21
23
|
* multi-select leaves Tab to move focus, as every form control does.
|
|
22
24
|
* - ESCAPE CLOSES THE LIST AND NOTHING ELSE. It stops there, so the dialog or
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
* The SECONDARY step, not the primary one. A list of candidates is read by
|
|
63
63
|
* running the eye down it for the one that matches, and rows drawn at full
|
|
64
64
|
* strength all shout at once; the row the reader is actually on is the one
|
|
65
|
-
* that
|
|
66
|
-
*
|
|
65
|
+
* that lifts to the primary ink. The step is held at 4.5:1 on every ground a
|
|
66
|
+
* row can sit on, so quieter is not fainter.
|
|
67
67
|
*/
|
|
68
68
|
color: var(--color-text-secondary);
|
|
69
69
|
font-size: var(--font-size-compact);
|
|
@@ -75,14 +75,39 @@
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
/*
|
|
78
|
-
* The active row, whether the arrows put it there or a hover did
|
|
79
|
-
*
|
|
80
|
-
*
|
|
78
|
+
* The active row, whether the arrows put it there or a hover did: the RAISED
|
|
79
|
+
* rung with the label lifted to the primary ink, as the approved palette draws
|
|
80
|
+
* it. Every list here opens on a card (a popover, a dialog), and raised is held
|
|
81
|
+
* dE 3 off the card by @crewlethq/tokens because a chip or a well has no border
|
|
82
|
+
* of its own, which is what this row is; every text step clears 4.5:1 on it.
|
|
83
|
+
*
|
|
84
|
+
* It used to be the accent's soft tint with the accent ink. The accent is the
|
|
85
|
+
* primary action's fill and the focus ring, so a violet row under the arrows
|
|
86
|
+
* read as a second primary on every surface that offers a list, the same
|
|
87
|
+
* reason the rail's current row stopped wearing it. What the accent still
|
|
88
|
+
* marks in a list is a CHOICE made (a multi-select's tick), not where the
|
|
89
|
+
* arrows are.
|
|
81
90
|
*/
|
|
82
91
|
.crewlet-listbox__option[aria-selected='true'],
|
|
83
92
|
.crewlet-listbox__option:hover {
|
|
84
|
-
background: var(--color-
|
|
85
|
-
color: var(--color-
|
|
93
|
+
background: var(--color-surface-elevated);
|
|
94
|
+
color: var(--color-text-primary);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/*
|
|
98
|
+
* FORCED COLORS repaints every author background to Canvas, which took the
|
|
99
|
+
* highlight with it: the arrows moved through a list in which no row looked
|
|
100
|
+
* any different, in every Select, Combobox and command palette. An outline is
|
|
101
|
+
* the one mark the mode keeps, drawn inside the row so the list's own clip
|
|
102
|
+
* does not cut it, in the system's colour for exactly this.
|
|
103
|
+
*/
|
|
104
|
+
@media (forced-colors: active) {
|
|
105
|
+
.crewlet-listbox__option[aria-selected='true'] {
|
|
106
|
+
outline-style: solid;
|
|
107
|
+
outline-width: 2px;
|
|
108
|
+
outline-color: Highlight;
|
|
109
|
+
outline-offset: -2px;
|
|
110
|
+
}
|
|
86
111
|
}
|
|
87
112
|
|
|
88
113
|
.crewlet-listbox__option[aria-disabled='true'] {
|
package/dist/Menu/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { Menu } from '../chunk-
|
|
1
|
+
export { Menu } from '../chunk-IPVQKAHO.js';
|
|
2
2
|
import '../chunk-7RPGY3JE.js';
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-R25RGPUB.js';
|
|
4
|
+
import '../chunk-4UQ7SMPK.js';
|
|
5
|
+
import '../chunk-ETYEBKR4.js';
|
|
6
6
|
import '../chunk-BZFWDIV6.js';
|
|
7
7
|
import '../chunk-ODEQTPFM.js';
|