@stackone/malachite 0.66.0 → 0.67.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/dist/index.d.ts CHANGED
@@ -261,6 +261,46 @@ declare interface CardProps {
261
261
  };
262
262
  }
263
263
 
264
+ /** A horizontally scrolling radiogroup of cards — the "pick one of these" strip. */
265
+ export declare const CardStrip: default_2.FC<CardStripProps> & {
266
+ AddTile: default_2.FC<CardStripAddTileProps>;
267
+ };
268
+
269
+ export declare interface CardStripAddTileProps {
270
+ /** Visible label, e.g. "Add Profile". Also names the button for assistive tech. */
271
+ label: string;
272
+ /** Defaults to a plus. */
273
+ icon?: default_2.ReactNode;
274
+ onClick: () => void;
275
+ disabled?: boolean;
276
+ className?: string;
277
+ }
278
+
279
+ export declare interface CardStripProps {
280
+ /** The selected card's value, matched against each radio child's `data-value`. */
281
+ value: string;
282
+ onChange: (value: string) => void;
283
+ /** Cards. Any element with `role="radio"` and a `data-value` joins the group; a
284
+ * `CardStrip.AddTile` must be a direct child or it scrolls with the cards. */
285
+ children: default_2.ReactNode;
286
+ /** Pinned, non-scrolling slot before the cards (the Library card in the profile picker). */
287
+ leading?: default_2.ReactNode;
288
+ /** Circular scroll affordances, shown only on an edge that can actually scroll. */
289
+ arrows?: boolean;
290
+ /** Fade the cards out at any edge they scroll past. */
291
+ fadeEdges?: boolean;
292
+ /** Snap cards to the leading edge as the strip scrolls. */
293
+ snap?: boolean;
294
+ /** Whether a selection change scrolls the selected card into view. Set `false` when the
295
+ * value comes from a URL: `scrollIntoView` walks every scrollable ancestor, so a
296
+ * deep-linked strip below the fold jumps the page on load. */
297
+ scrollSelectedIntoView?: boolean;
298
+ 'aria-label'?: string;
299
+ 'aria-labelledby'?: string;
300
+ className?: string;
301
+ style?: default_2.CSSProperties;
302
+ }
303
+
264
304
  export declare const Checkbox: default_2.FC<CheckboxProps>;
265
305
 
266
306
  export declare interface CheckboxProps {
@@ -434,6 +474,7 @@ export declare const CustomIcons: {
434
474
  InfoCircleFilled: FC<IconProps>;
435
475
  IntegrationsIcon: FC<IconProps>;
436
476
  KeyIcon: FC<IconProps>;
477
+ LibraryIcon: FC<IconProps>;
437
478
  LogsIcon: FC<IconProps>;
438
479
  MagicWandIcon: FC<IconProps>;
439
480
  ManageTeamIcon: FC<IconProps>;
@@ -611,7 +652,10 @@ declare interface FlexProps {
611
652
  className?: string;
612
653
  }
613
654
 
614
- export declare type FontSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
655
+ /** Which of the three theme typefaces to render in. Defaults to the sans body face. */
656
+ declare type FontFamily = 'sans' | 'heading' | 'body';
657
+
658
+ export declare type FontSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge';
615
659
 
616
660
  export declare type FontWeight = 'normal' | 'semi-bold' | 'bold';
617
661
 
@@ -815,6 +859,7 @@ export declare interface MalachiteTheme {
815
859
  medium: string;
816
860
  large: string;
817
861
  xlarge: string;
862
+ xxlarge: string;
818
863
  };
819
864
  iconSizes: {
820
865
  xsmall: string;
@@ -827,6 +872,8 @@ export declare interface MalachiteTheme {
827
872
  md: string;
828
873
  lg: string;
829
874
  xl: string;
875
+ xxl: string;
876
+ xxxl: string;
830
877
  };
831
878
  shadows: {
832
879
  sm: string;
@@ -974,6 +1021,23 @@ export declare interface MalachiteTheme {
974
1021
  selectedForeground: string;
975
1022
  selectedShadow: string;
976
1023
  };
1024
+ selectableCard: {
1025
+ selectedBackground: string;
1026
+ selectedShadow: string;
1027
+ accent: string;
1028
+ mutedForeground: string;
1029
+ hoverBackground: string;
1030
+ hoverRule: string;
1031
+ pendingForeground: string;
1032
+ };
1033
+ cardStrip: {
1034
+ background: string;
1035
+ divider: string;
1036
+ fade: string;
1037
+ bottomRule: string;
1038
+ arrowBackground: string;
1039
+ arrowBorder: string;
1040
+ };
977
1041
  dropdown: {
978
1042
  border: string;
979
1043
  borderActive: string;
@@ -1268,6 +1332,8 @@ export declare interface PartialMalachiteTheme {
1268
1332
  pillButton?: Partial<MalachiteTheme['colors']['pillButton']>;
1269
1333
  toggle?: Partial<MalachiteTheme['colors']['toggle']>;
1270
1334
  segmentedControl?: Partial<MalachiteTheme['colors']['segmentedControl']>;
1335
+ selectableCard?: Partial<MalachiteTheme['colors']['selectableCard']>;
1336
+ cardStrip?: Partial<MalachiteTheme['colors']['cardStrip']>;
1271
1337
  dropdown?: Partial<MalachiteTheme['colors']['dropdown']>;
1272
1338
  tag?: Partial<MalachiteTheme['colors']['tag']>;
1273
1339
  numberTag?: Partial<MalachiteTheme['colors']['numberTag']>;
@@ -1434,6 +1500,55 @@ export declare interface SegmentedControlProps<T extends string = string> {
1434
1500
 
1435
1501
  export declare type SegmentedControlSize = 'small' | 'medium';
1436
1502
 
1503
+ /** A fixed-size card that behaves as one option in a radio group: a card-shaped `Surface.Row`. */
1504
+ export declare const SelectableCard: default_2.FC<SelectableCardProps>;
1505
+
1506
+ export declare interface SelectableCardProps {
1507
+ /** Identifies the card inside its group; handed back to `onSelect`. */
1508
+ value: string;
1509
+ title: string;
1510
+ /** Leading glyph on the title line, e.g. a library/book icon. */
1511
+ titleIcon?: default_2.ReactNode;
1512
+ /** `display` is the larger, lighter treatment the design gives the browse card; profile… */
1513
+ titleSize?: 'default' | 'display';
1514
+ /** Small label above the title ("Profile", "Explore"). */
1515
+ eyebrow?: string;
1516
+ /** Status pill rendered next to the eyebrow — or in its place when there is no eyebrow. */
1517
+ status?: SelectableCardStatus;
1518
+ /** Supporting copy under the title, clamped to two lines. */
1519
+ description?: string;
1520
+ /** Bottom-left summary ("16 Actions", "10 Selected"). */
1521
+ countLabel?: string;
1522
+ /** Bottom-right cluster (markers, an ActionMenu…). */
1523
+ footerActions?: default_2.ReactNode;
1524
+ selected?: boolean;
1525
+ /** Wording shown beside the radio when selected. */
1526
+ selectedLabel?: string;
1527
+ /** Wording shown in the same slot on hover, inviting the click. */
1528
+ hoverLabel?: string;
1529
+ /** Replaces the card's content with a centred in-progress message and an amber rule, for a… */
1530
+ loading?: boolean;
1531
+ loadingLabel?: string;
1532
+ loadingHint?: string;
1533
+ /** Dims the card and blocks selection. */
1534
+ disabled?: boolean;
1535
+ /** Dims the card without blocking selection. */
1536
+ dimmed?: boolean;
1537
+ onSelect?: (value: string) => void;
1538
+ /** Tab stop for the card. */
1539
+ tabIndex?: number;
1540
+ /** Replaces the generated accessible name (eyebrow + title + status). */
1541
+ 'aria-label'?: string;
1542
+ className?: string;
1543
+ style?: default_2.CSSProperties;
1544
+ }
1545
+
1546
+ export declare interface SelectableCardStatus {
1547
+ label: string;
1548
+ /** Maps to Tag's palette — `default` (grey) for "Disabled", `warning` (amber) for "Draft". */
1549
+ type?: TagType;
1550
+ }
1551
+
1437
1552
  /**
1438
1553
  * ShadowEscape renders its children OUTSIDE the Shadow DOM to avoid React hook issues.
1439
1554
  * This is used internally by form components to escape Shadow DOM boundaries.
@@ -1936,6 +2051,11 @@ export declare type TextColor = 'primary' | 'secondary' | 'dimmed' | 'placeholde
1936
2051
  export declare interface TextProps {
1937
2052
  color?: TextColor;
1938
2053
  size?: FontSize;
2054
+ /**
2055
+ * Typeface. Defaults to `sans` (Inter), the library's body face. `heading` is Stack Sans
2056
+ * Text and `body` is Geist — both are loaded on mount and declared in the theme.
2057
+ */
2058
+ font?: FontFamily;
1939
2059
  underline?: boolean;
1940
2060
  fontWeight?: FontWeight;
1941
2061
  children: default_2.ReactNode;
package/dist/index.js CHANGED
@@ -1,87 +1,89 @@
1
- import { A as s, c as t, d as o, e as i, B as r, f as n, g as l, h as p, i as T, j as d, k as m, l as S, m as c, n as h, o as u, D as g, p as C, q as w, r as y, F, s as x, t as f, u as v, v as k, w as B, x as L, y as P, z as b, I as A, K as D, L as z, E as R, M, G as I, N, O as V, P as j, H as q, J as E, Q as G, R as H, S as J, T as K, U as O, V as W, W as Q, X as U, Y as X, Z as Y, $ as Z, a0 as $, a1 as _, a2 as aa, a3 as ea, a4 as sa, a5 as ta, a6 as oa, a7 as ia, a8 as ra, a9 as na, aa as la, ab as pa, ac as Ta, ad as da, ae as ma, af as Sa, ag as ca, ah as ha, ai as ua, aj as ga, ak as Ca, al as wa, am as ya, an as Fa, ao as xa, ap as fa, aq as va, ar as ka, as as Ba, at as La, au as Pa, av as ba, aw as Aa } from "./index-D4HkgA7h.js";
1
+ import { A as s, c as t, d as o, e as r, B as i, f as l, g as n, h as p, i as d, j as T, k as S, l as m, m as c, n as h, o as u, p as g, D as C, q as y, r as w, s as x, F, t as f, u as v, v as k, w as B, x as L, y as P, z as b, E as A, I as D, K as z, L as R, G as M, M as I, H as N, N as V, O as j, P as q, J as E, Q as G, R as H, S as J, T as K, U as O, V as W, W as Q, X as U, Y as X, Z as Y, $ as Z, a0 as $, a1 as _, a2 as aa, a3 as ea, a4 as sa, a5 as ta, a6 as oa, a7 as ra, a8 as ia, a9 as la, aa as na, ab as pa, ac as da, ad as Ta, ae as Sa, af as ma, ag as ca, ah as ha, ai as ua, aj as ga, ak as Ca, al as ya, am as wa, an as xa, ao as Fa, ap as fa, aq as va, ar as ka, as as Ba, at as La, au as Pa, av as ba, aw as Aa, ax as Da, ay as za } from "./index-DP5h64uw.js";
2
2
  export {
3
3
  s as Accordion,
4
4
  t as ActionMenu,
5
5
  o as Alert,
6
- i as Avatar,
7
- r as BaseFormComponent,
8
- n as Button,
9
- l as ButtonList,
6
+ r as Avatar,
7
+ i as BaseFormComponent,
8
+ l as Button,
9
+ n as ButtonList,
10
10
  p as Card,
11
+ d as CardStrip,
11
12
  T as Checkbox,
12
- d as ClampText,
13
+ S as ClampText,
13
14
  m as CodeBlock,
14
- S as CollapsibleSection,
15
- c as Confetti,
16
- h as ConnectionHeader,
17
- u as CustomIcons,
18
- g as DefinitionRow,
19
- C as Divider,
15
+ c as CollapsibleSection,
16
+ h as Confetti,
17
+ u as ConnectionHeader,
18
+ g as CustomIcons,
19
+ C as DefinitionRow,
20
+ y as Divider,
20
21
  w as DividerVariant,
21
- y as Dropdown,
22
+ x as Dropdown,
22
23
  F as Flex,
23
- x as FlexAlign,
24
- f as FlexDirection,
25
- v as FlexGapSize,
26
- k as FlexJustify,
27
- B as FooterLinks,
28
- L as FooterNav,
29
- P as Form,
30
- b as FormItem,
31
- A as Input,
32
- D as KeyValueList,
33
- z as Link,
34
- R as LoadingBar,
35
- M as MalachiteContext,
36
- I as MultiSelect,
37
- N as NumberTag,
38
- V as OverflowRow,
39
- j as Padded,
40
- q as PaddingSize,
41
- E as PillButton,
42
- G as PreviewTree,
43
- H as PreviewTreeRow,
44
- J as Progress,
45
- K as Radio,
46
- O as Search,
47
- W as SegmentedControl,
48
- Q as ShadowEscape,
49
- U as SidePanel,
50
- X as SidePanelNavFooter,
51
- Y as Skeleton,
52
- Z as Spacer,
53
- $ as SpacingSize,
54
- _ as Spinner,
55
- aa as SplitScreenLayout,
56
- ea as StatBadge,
57
- sa as Statistic,
58
- ta as StatusBadge,
59
- oa as Stepper,
60
- ia as Surface,
61
- ra as SurfaceRow,
62
- na as Swatch,
63
- la as Table,
64
- pa as Tabs,
65
- Ta as Tag,
66
- da as TextArea,
67
- ma as ThemeScope,
68
- Sa as Toggle,
69
- ca as Toolbar,
70
- ha as Tooltip,
71
- ua as TruncatedTooltip,
72
- ga as Typography,
73
- Ca as WizardLayout,
74
- wa as applyCustomTheme,
75
- ya as applyDarkTheme,
76
- Fa as applyLightTheme,
77
- xa as applyTheme,
78
- fa as applyThemeVars,
79
- va as darkTheme,
80
- ka as defaultTheme,
81
- Ba as getCurrentTheme,
82
- La as getCurrentThemeMode,
83
- Pa as initializeTheme,
84
- ba as resetTheme,
85
- Aa as toggleTheme
24
+ f as FlexAlign,
25
+ v as FlexDirection,
26
+ k as FlexGapSize,
27
+ B as FlexJustify,
28
+ L as FooterLinks,
29
+ P as FooterNav,
30
+ b as Form,
31
+ A as FormItem,
32
+ D as Input,
33
+ z as KeyValueList,
34
+ R as Link,
35
+ M as LoadingBar,
36
+ I as MalachiteContext,
37
+ N as MultiSelect,
38
+ V as NumberTag,
39
+ j as OverflowRow,
40
+ q as Padded,
41
+ E as PaddingSize,
42
+ G as PillButton,
43
+ H as PreviewTree,
44
+ J as PreviewTreeRow,
45
+ K as Progress,
46
+ O as Radio,
47
+ W as Search,
48
+ Q as SegmentedControl,
49
+ U as SelectableCard,
50
+ X as ShadowEscape,
51
+ Y as SidePanel,
52
+ Z as SidePanelNavFooter,
53
+ $ as Skeleton,
54
+ _ as Spacer,
55
+ aa as SpacingSize,
56
+ ea as Spinner,
57
+ sa as SplitScreenLayout,
58
+ ta as StatBadge,
59
+ oa as Statistic,
60
+ ra as StatusBadge,
61
+ ia as Stepper,
62
+ la as Surface,
63
+ na as SurfaceRow,
64
+ pa as Swatch,
65
+ da as Table,
66
+ Ta as Tabs,
67
+ Sa as Tag,
68
+ ma as TextArea,
69
+ ca as ThemeScope,
70
+ ha as Toggle,
71
+ ua as Toolbar,
72
+ ga as Tooltip,
73
+ Ca as TruncatedTooltip,
74
+ ya as Typography,
75
+ wa as WizardLayout,
76
+ xa as applyCustomTheme,
77
+ Fa as applyDarkTheme,
78
+ fa as applyLightTheme,
79
+ va as applyTheme,
80
+ ka as applyThemeVars,
81
+ Ba as darkTheme,
82
+ La as defaultTheme,
83
+ Pa as getCurrentTheme,
84
+ ba as getCurrentThemeMode,
85
+ Aa as initializeTheme,
86
+ Da as resetTheme,
87
+ za as toggleTheme
86
88
  };
87
89
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackone/malachite",
3
- "version": "0.66.0",
3
+ "version": "0.67.0",
4
4
  "description": "StackOne's themeable React component library — Shadow DOM isolated, scoped Tailwind, theme-token driven.",
5
5
  "license": "MIT",
6
6
  "author": "StackOne",