@fayz-ai/ui 0.11.0 → 0.12.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.
@@ -11,7 +11,7 @@ export interface AppShellSkeletonProps {
11
11
  label: string;
12
12
  className?: string;
13
13
  }
14
- /** Ring spinner in the rail's foreground tone. Static under reduced motion —
14
+ /** Ring spinner in the page's foreground tone. Static under reduced motion —
15
15
  * the ring alone still reads as "busy", a frozen spinner reads as "stuck". */
16
16
  export declare function BootSpinner({ className }: {
17
17
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/layout/Sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/layout/Sidebar.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { AppShell, AppShellSkeleton, BackStyleProvider, ContentSplit, ContentSplitTrigger, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageTrail, PageTransition, Sidebar, SubpageHeader, Topbar, navigateToCrumb, useBackStyle, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition, usePageTrail, usePageTrailParent } from '../chunk-QSHA2Q27.js';
1
+ export { AppShell, AppShellSkeleton, BackStyleProvider, ContentSplit, ContentSplitTrigger, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageTrail, PageTransition, Sidebar, SubpageHeader, Topbar, navigateToCrumb, useBackStyle, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition, usePageTrail, usePageTrailParent } from '../chunk-ZDRHCKRK.js';
2
2
  export { SaveBar, SaveBarProvider, useBackHandler, useSaveBar } from '../chunk-VAKWUUVC.js';
3
3
  import '../chunk-ZBQ772DU.js';
4
4
  import '../chunk-OKZ6WQB3.js';
@@ -18,6 +18,7 @@ export { PageHeader, PageHeaderCrumb, type PageHeaderProps } from './page-header
18
18
  export { SearchField, ChevronPager, type SearchFieldProps, type ChevronPagerProps } from './list-chrome';
19
19
  export { BulkActionBar, type BulkAction, type BulkActionBarProps } from './bulk-action-bar';
20
20
  export { Thumbnail, type ThumbnailProps, type ThumbnailSize } from './thumbnail';
21
+ export { RefreshButton, type RefreshButtonProps } from './refresh-button';
21
22
  export { PhoneField, formatPhone, type PhoneFieldProps } from './phone-field';
22
23
  export { StatTiles, type StatTilesProps, type StatTileData } from './stat-tiles';
23
24
  export { Switch, type SwitchProps } from './switch';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { Badge, Breadcrumb, BulkActionBar, ChevronPager, ConfirmDialog, CurrencyInput, DatePicker, FilterChip, Hint, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, PhoneField, PhoneLink, Popover, PopoverContent, PopoverTrigger, SearchCombobox, SearchField, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, StatTiles, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, formatPhone, normalizePhone, renderMarkdown, toast } from '../chunk-XRDCYOND.js';
1
+ export { Badge, Breadcrumb, BulkActionBar, ChevronPager, ConfirmDialog, CurrencyInput, DatePicker, FilterChip, Hint, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, PhoneField, PhoneLink, Popover, PopoverContent, PopoverTrigger, RefreshButton, SearchCombobox, SearchField, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, StatTiles, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, formatPhone, normalizePhone, renderMarkdown, toast } from '../chunk-7BHG3XGJ.js';
2
2
  export { HeaderTabs, PageHeader, PageHeaderCrumb, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from '../chunk-VAKWUUVC.js';
3
3
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, DataTable, Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, SegmentedControl, Skeleton, TableSkeleton } from '../chunk-JGJNRNQW.js';
4
4
  export { Button, buttonVariants } from '../chunk-OKZ6WQB3.js';
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ export interface RefreshButtonProps {
3
+ /** Runs the actual refresh. The button spins for as long as this pends. */
4
+ onRefresh: () => void | Promise<void>;
5
+ /** True when the data on screen was answered from a local cache. */
6
+ fromCache?: boolean;
7
+ /** Accessible label / native tooltip when the data is live. */
8
+ label: string;
9
+ /** Label when `fromCache` — defaults to `label`. */
10
+ labelCached?: string;
11
+ className?: string;
12
+ 'data-testid'?: string;
13
+ }
14
+ export declare function RefreshButton({ onRefresh, fromCache, label, labelCached, className, ...rest }: RefreshButtonProps): React.JSX.Element;
15
+ export declare namespace RefreshButton {
16
+ var displayName: string;
17
+ }
18
+ //# sourceMappingURL=refresh-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-button.d.ts","sourceRoot":"","sources":["../../src/primitives/refresh-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAc9B,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,kBAAkB,qBAuCjH;yBAvCe,aAAa"}
package/dist/styles.css CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  @layer base {
6
6
  :root {
7
+ /* Tells the browser which canvas to paint before any CSS of ours applies —
8
+ without it a dark-mode reload flashes a white frame. */
9
+ color-scheme: light;
10
+
7
11
  /* Polaris "Sail" light — page #f1f1f1, cards #ffffff, near-black brand #303030 */
8
12
  --primary: 0 0% 18.8%;
9
13
  --primary-foreground: 0 0% 100%;
@@ -102,6 +106,8 @@
102
106
  }
103
107
 
104
108
  .dark {
109
+ color-scheme: dark;
110
+
105
111
  /* "Sail midnight" — Polaris dark */
106
112
  --primary: 0 0% 100%;
107
113
  --primary-foreground: 0 0% 10.2%;
@@ -279,6 +285,166 @@
279
285
  }
280
286
  }
281
287
 
288
+ /* ---------------------------------------------------------------------------
289
+ * The assistant's floating material.
290
+ *
291
+ * The FAB and the docked composer are the same object in two shapes, so they
292
+ * are one surface: a tinted fill (the caller's, usually bg-primary), a blurred
293
+ * backdrop, a lit top edge and a shadow deep enough to read as floating ABOVE
294
+ * the page rather than pasted onto it.
295
+ *
296
+ * It lives in CSS, not in utility classes, for two reasons: every app gets it
297
+ * without adding Tailwind content globs, and a glass theme extends it through
298
+ * --glass-inner-highlight instead of forking it.
299
+ * ------------------------------------------------------------------------ */
300
+ .fayz-assistant-surface {
301
+ position: relative;
302
+ border: 1px solid rgb(255 255 255 / 0.22);
303
+ /* Tinted glass: the page reads through the fill, the blur keeps it from being
304
+ legible through it. 0.84 is the floor — below that the white label starts
305
+ losing more contrast than the effect is worth. The utility class the caller
306
+ passes (bg-primary) stays as the opaque fallback for browsers, or builds,
307
+ that never see this rule. */
308
+ background-color: hsl(var(--primary) / 0.84);
309
+ backdrop-filter: blur(28px) saturate(1.8);
310
+ -webkit-backdrop-filter: blur(28px) saturate(1.8);
311
+ background-clip: padding-box;
312
+ box-shadow:
313
+ 0 10px 36px -10px rgb(0 0 0 / 0.45),
314
+ 0 2px 6px -3px rgb(0 0 0 / 0.3),
315
+ inset 0 1px 0 rgb(255 255 255 / 0.32),
316
+ var(--glass-inner-highlight);
317
+ transition: box-shadow 200ms ease-out, transform 200ms cubic-bezier(0.22, 1, 0.36, 1);
318
+ }
319
+
320
+ /* The sheen. Negative z-index paints it over the fill but UNDER the icons and
321
+ text, so the highlight lights the surface instead of washing out its label. */
322
+ .fayz-assistant-surface::after {
323
+ content: '';
324
+ position: absolute;
325
+ inset: 0;
326
+ z-index: -1;
327
+ border-radius: inherit;
328
+ pointer-events: none;
329
+ /* Kept to the top third: a sheen that reaches the middle lightens the fill
330
+ exactly where the label sits, and the label pays for it in contrast. */
331
+ background: linear-gradient(
332
+ to bottom,
333
+ rgb(255 255 255 / 0.2),
334
+ rgb(255 255 255 / 0.04) 30%,
335
+ transparent 52%
336
+ );
337
+ }
338
+
339
+ /* Folding back into the FAB, the bar's contents leave first.
340
+ *
341
+ * The send button sits at the collapsing end, so it was the last thing on screen
342
+ * — an arrow carried all the way into the corner and then swapped for a sparkle.
343
+ * Dropping it early means what lands in the corner is an empty capsule, which is
344
+ * what the FAB actually is. */
345
+ .fayz-assistant-leaving .fayz-assistant-send,
346
+ .fayz-assistant-leaving svg,
347
+ .fayz-assistant-leaving input {
348
+ opacity: 0;
349
+ transition: opacity 120ms ease-in;
350
+ }
351
+
352
+ /* An invitation, not an alarm.
353
+ *
354
+ * The bar carries a halo of its own colour: it breathes a few times on arrival,
355
+ * then rests at a static glow for as long as it is open. Hovering or focusing it
356
+ * ends the pulse for good — the attention it was asking for has been paid, and a
357
+ * thing that keeps pulsing after you look at it is just noise in the corner of
358
+ * the eye. Sits at z-index -2, BEHIND the fill, so only the spill shows. */
359
+ .fayz-assistant-glow::before {
360
+ content: '';
361
+ position: absolute;
362
+ inset: 0;
363
+ z-index: -2;
364
+ border-radius: inherit;
365
+ pointer-events: none;
366
+ box-shadow:
367
+ 0 0 0 1px hsl(var(--primary) / 0.3),
368
+ 0 0 28px 3px hsl(var(--primary) / 0.42);
369
+ opacity: 0.32;
370
+ transition: opacity 220ms ease-out;
371
+ animation: fayz-assistant-breathe 3.4s ease-in-out 3;
372
+ }
373
+
374
+ @keyframes fayz-assistant-breathe {
375
+ 0%,
376
+ 100% {
377
+ opacity: 0.32;
378
+ }
379
+ 50% {
380
+ opacity: 0.78;
381
+ }
382
+ }
383
+
384
+ .fayz-assistant-glow:hover::before,
385
+ .fayz-assistant-glow:focus-within::before {
386
+ animation: none;
387
+ opacity: 0.52;
388
+ }
389
+
390
+ @media (prefers-reduced-motion: reduce) {
391
+ .fayz-assistant-glow::before {
392
+ animation: none;
393
+ }
394
+ }
395
+
396
+ /* The composer's own text. Stated here, not as utilities, because the label and
397
+ the send button are the two things that MUST survive: an app whose Tailwind
398
+ build does not scan this package would otherwise draw a grey placeholder and
399
+ a primary-on-primary arrow — an invisible button on a tinted bar. */
400
+ .fayz-assistant-surface input {
401
+ color: hsl(var(--primary-foreground));
402
+ }
403
+
404
+ .fayz-assistant-surface input::placeholder {
405
+ color: hsl(var(--primary-foreground));
406
+ opacity: 0.92;
407
+ }
408
+
409
+ .fayz-assistant-send {
410
+ display: inline-flex;
411
+ align-items: center;
412
+ justify-content: center;
413
+ flex: none;
414
+ width: 2rem;
415
+ height: 2rem;
416
+ border-radius: 9999px;
417
+ /* Fully opaque: the bar around it is translucent now, so anything less here
418
+ lets the page print through the button twice over. */
419
+ background: hsl(var(--primary-foreground));
420
+ color: hsl(var(--primary));
421
+ transition: background-color 150ms ease-out, transform 150ms ease-out;
422
+ }
423
+
424
+ /* Something to send: the button gains weight, the way a primary action should. */
425
+ .fayz-assistant-send[data-ready='true'] {
426
+ box-shadow: 0 1px 3px rgb(0 0 0 / 0.18);
427
+ }
428
+
429
+ .fayz-assistant-send:active {
430
+ transform: scale(0.94);
431
+ }
432
+
433
+ .fayz-assistant-surface:hover,
434
+ .fayz-assistant-surface:focus-within {
435
+ box-shadow:
436
+ 0 18px 50px -12px rgb(0 0 0 / 0.5),
437
+ 0 3px 8px -3px rgb(0 0 0 / 0.32),
438
+ inset 0 1px 0 rgb(255 255 255 / 0.42),
439
+ var(--glass-inner-highlight);
440
+ }
441
+
442
+ @media (prefers-reduced-motion: reduce) {
443
+ .fayz-assistant-surface {
444
+ transition: none;
445
+ }
446
+ }
447
+
282
448
  .fayz-glass-field,
283
449
  input.bg-card,
284
450
  textarea.bg-card,
@@ -323,6 +489,27 @@ select.bg-card,
323
489
  to { opacity: 1; transform: translateY(0); }
324
490
  }
325
491
 
492
+ /* Shell entrance — a veil in the theme background laid over the just-mounted
493
+ shell, fading out so the product appears in one quick crossfade instead of
494
+ popping in over the boot spinner. The background is what the HTML boot
495
+ screen and AppShellSkeleton already painted, so boot stays ONE image:
496
+ same surface → same surface → app fading in on top of it. */
497
+ .shell-enter::after {
498
+ content: '';
499
+ position: fixed;
500
+ inset: 0;
501
+ z-index: 100;
502
+ background: hsl(var(--background));
503
+ pointer-events: none;
504
+ animation: shell-enter-veil 350ms ease 50ms forwards;
505
+ }
506
+ @keyframes shell-enter-veil {
507
+ to { opacity: 0; visibility: hidden; }
508
+ }
509
+ @media (prefers-reduced-motion: reduce) {
510
+ .shell-enter::after { animation-duration: 0ms; animation-delay: 0ms; }
511
+ }
512
+
326
513
  /* Radix animation utilities (replaces tailwindcss-animate plugin) */
327
514
  .animate-in {
328
515
  animation-name: enter;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "fayz": {
4
4
  "status": "beta"
5
5
  },
6
- "version": "0.11.0",
6
+ "version": "0.12.0",
7
7
  "description": "Fayz SDK UI — Radix + Tailwind component library with CRUD engine and layout shells",
8
8
  "type": "module",
9
9
  "sideEffects": [
@@ -75,7 +75,7 @@
75
75
  "clsx": "^2.1.0",
76
76
  "recharts": "^2.15.0",
77
77
  "tailwind-merge": "^2.4.0",
78
- "@fayz-ai/core": "^0.11.0"
78
+ "@fayz-ai/core": "^0.12.0"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@types/react": "^18.3.0",