@bfrs/agentic-components 0.1.3 → 0.1.5

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.
@@ -39,7 +39,7 @@ import { Button, Input, Modal, DataTable, DateRangePicker, ToastProvider, useToa
39
39
 
40
40
  ## Design System Conventions
41
41
 
42
- - **Sizes** are always `"sm" | "md" | "lg"` — default is `"md"` unless noted
42
+ - **Control sizes** use `"xs" | "sm" | "md" | "lg"` where supported — default is `"md"` unless noted. Use `xs` for extra-compact dashboard toolbar/filter controls.
43
43
  - **Tones** are always `"neutral" | "primary" | "brand" | "success" | "warning" | "danger" | "info"`
44
44
  - **Variants** control visual style (filled vs. outline vs. ghost, etc.)
45
45
  - All interactive components forward refs and spread native HTML props
@@ -173,7 +173,7 @@ import { MagnifyingGlass } from "@phosphor-icons/react";
173
173
  | Prop | Type | Default |
174
174
  |------|------|---------|
175
175
  | `icon` | `PhosphorIconComponent` | **required** |
176
- | `size` | `"sm" \| "md" \| "lg" \| number` | `"md"` |
176
+ | `size` | `"xs" \| "sm" \| "md" \| "lg" \| number` | `"md"` |
177
177
  | `weight` | `"thin" \| "light" \| "regular" \| "bold" \| "fill" \| "duotone"` | `"regular"` |
178
178
  | `decorative` | `boolean` | `true` |
179
179
 
@@ -208,7 +208,7 @@ Primary interactive element. Covers all CTA patterns.
208
208
  | Prop | Type | Default |
209
209
  |------|------|---------|
210
210
  | `variant` | `"primary" \| "secondary" \| "tertiary" \| "outline" \| "ghost" \| "danger" \| "destructive" \| "link"` | `"primary"` |
211
- | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
211
+ | `size` | `"xs" \| "sm" \| "md" \| "lg"` | `"md"` |
212
212
  | `fullWidth` | `boolean` | `false` |
213
213
  | `leftIcon` | `ReactNode` | — |
214
214
  | `rightIcon` | `ReactNode` | — |
@@ -236,7 +236,7 @@ Square button for icon-only actions. Always provide `aria-label`.
236
236
  | `icon` | `ReactNode` | **required** |
237
237
  | `aria-label` | `string` | **required** |
238
238
  | `variant` | `"primary" \| "secondary" \| "outline" \| "ghost" \| "danger"` | `"ghost"` |
239
- | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
239
+ | `size` | `"xs" \| "sm" \| "md" \| "lg"` | `"md"` |
240
240
  | `loading` | `boolean` | `false` |
241
241
 
242
242
  ---
@@ -305,7 +305,7 @@ Standard text input.
305
305
 
306
306
  | Prop | Type | Default |
307
307
  |------|------|---------|
308
- | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
308
+ | `size` | `"xs" \| "sm" \| "md" \| "lg"` | `"md"` |
309
309
  | `error` | `boolean` | `false` |
310
310
  | `prefix` | `ReactNode` | — |
311
311
  | `suffix` | `ReactNode` | — |
@@ -387,7 +387,7 @@ const [range, setRange] = useState<DateRangeValue>({
387
387
  | `value` | `DateRangeValue` | — |
388
388
  | `onChange` | `(value: DateRangeValue) => void` | — |
389
389
  | `presets` | `DateRangePreset[]` | default presets |
390
- | `size` | `"sm" \| "md" \| "lg"` | `"sm"` |
390
+ | `size` | `"xs" \| "sm" \| "md" \| "lg"` | `"sm"` |
391
391
  | `maxRangeDays` | `number` | — |
392
392
  | `months` | `1 \| 2` | `2` |
393
393
  | `open` / `onOpenChange` | controlled popover state | — |
@@ -515,7 +515,7 @@ Small inline status label.
515
515
 
516
516
  | Prop | Type | Default |
517
517
  |------|------|---------|
518
- | `size` | `"sm" \| "md" \| "lg"` | `"sm"` |
518
+ | `size` | `"xs" \| "sm" \| "md" \| "lg"` | `"sm"` |
519
519
  | `variant` | `"default" \| "neutral" \| "primary" \| "brand" \| "success" \| "warning" \| "danger" \| "info"` | `"default"` |
520
520
  | `tone` | `"neutral" \| "primary" \| "brand" \| "success" \| "warning" \| "danger" \| "info"` | `"neutral"` |
521
521
  | `dot` | `boolean` | `false` |
@@ -543,6 +543,7 @@ Removable tag. Use in filter bars and multi-select UIs.
543
543
  |------|------|---------|
544
544
  | `variant` | `"default" \| "filled" \| "soft" \| "outline"` | `"default"` |
545
545
  | `tone` | `"neutral" \| "primary" \| "brand" \| "success" \| "warning" \| "danger" \| "info"` | `"neutral"` |
546
+ | `size` | `"xs" \| "sm" \| "md" \| "lg"` | `"sm"` |
546
547
  | `leftIcon` | `ReactNode` | — |
547
548
  | `removable` | `boolean` | `false` |
548
549
  | `onRemove` | `() => void` | — |
@@ -635,11 +636,13 @@ Shimmer placeholder while content loads. Match the variant to the shape of the r
635
636
  <Skeleton variant="card" /> // card-height block
636
637
  <Skeleton variant="avatar" /> // circle
637
638
  <Skeleton variant="block" /> // rectangular block
639
+ <Skeleton variant="text" animated={false} /> // static shimmer
638
640
  ```
639
641
 
640
642
  | Prop | Type | Default |
641
643
  |------|------|---------|
642
644
  | `variant` | `"text" \| "block" \| "card" \| "avatar"` | `"block"` |
645
+ | `animated` | `boolean` | `true` |
643
646
 
644
647
  ---
645
648
 
@@ -753,7 +756,7 @@ Context menu attached to a trigger. Items support destructive and checked states
753
756
  | `trigger` | `ReactNode` | **required** |
754
757
  | `items` | `{ label: string; onSelect: () => void; disabled?: boolean; destructive?: boolean; checked?: boolean }[]` | **required** |
755
758
  | `align` | `"start" \| "center" \| "end"` | `"end"` |
756
- | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
759
+ | `size` | `"xs" \| "sm" \| "md" \| "lg"` | `"md"` |
757
760
 
758
761
  ---
759
762
 
@@ -941,6 +944,7 @@ Tabbed content switcher.
941
944
  |------|------|---------|
942
945
  | `items` | `{ value: string; label: ReactNode; content?: ReactNode; badge?: ReactNode }[]` | — |
943
946
  | `variant` | `"line" \| "pill"` | `"line"` |
947
+ | `size` | `"xs" \| "sm" \| "md" \| "lg"` | `"md"` |
944
948
  | `defaultValue` | `string` | — |
945
949
  | `value` | `string` | — |
946
950
  | `onValueChange` | `(value: string) => void` | — |
@@ -1107,10 +1111,9 @@ Branded full-screen loading screen. Use during auth redirects and account setup.
1107
1111
  Rich business identity card with centered profile identity, metadata chips, and compact label-value details. Uses the standard card surface (faded green-grey gradient stroke, white gradient background, green-glow shadow) and the Figma-derived green header wash.
1108
1112
 
1109
1113
  Built-in loading behavior:
1110
- - `businessName=""` renders a shimmer placeholder in the name slot.
1111
- - Missing or empty `initials` renders a shimmer avatar circle when no `logoSrc` is provided.
1112
- - `sections={[]}` renders six shimmer detail rows.
1113
- - `value: undefined` renders the label and separator with a shimmer placeholder for that value.
1114
+ - Bootstrap loading with `businessName=""` and `sections={[]}` renders static shimmer placeholders for avatar, name, subtitle/email, order-volume chip, category chip, and six detail rows.
1115
+ - Missing or empty `initials` renders a static shimmer avatar circle when no `logoSrc` is provided.
1116
+ - Missing item values (`value: undefined`, `null`, `false`, or `""`) render skeletons for both the key and value. Field labels only appear once their values are present.
1114
1117
 
1115
1118
  ```tsx
1116
1119
  <BusinessInfoDisplayCard
@@ -3,8 +3,12 @@ import { VariantProps } from 'class-variance-authority';
3
3
  declare const skeletonVariants: (props?: ({
4
4
  variant?: "text" | "block" | "card" | "avatar" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
- export type SkeletonProps = HTMLAttributes<HTMLDivElement> & VariantProps<typeof skeletonVariants>;
6
+ export type SkeletonProps = HTMLAttributes<HTMLDivElement> & VariantProps<typeof skeletonVariants> & {
7
+ animated?: boolean;
8
+ };
7
9
  export declare const Skeleton: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
8
10
  variant?: "text" | "block" | "card" | "avatar" | null | undefined;
9
- } & import('class-variance-authority/types').ClassProp) | undefined) => string> & import('react').RefAttributes<HTMLDivElement>>;
11
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string> & {
12
+ animated?: boolean;
13
+ } & import('react').RefAttributes<HTMLDivElement>>;
10
14
  export {};