@fayz-ai/ui 0.21.0 → 0.22.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.
Files changed (50) hide show
  1. package/dist/{chunk-P3YTL3MF.js → chunk-7G3O54CC.js} +3 -3
  2. package/dist/{chunk-P3YTL3MF.js.map → chunk-7G3O54CC.js.map} +1 -1
  3. package/dist/{chunk-AIUHVTVK.js → chunk-DHNUZF2X.js} +4 -3
  4. package/dist/chunk-DHNUZF2X.js.map +1 -0
  5. package/dist/{chunk-EGHEU3U5.js → chunk-PQUS22JE.js} +19 -5
  6. package/dist/chunk-PQUS22JE.js.map +1 -0
  7. package/dist/{chunk-MBGTFL4I.js → chunk-SUSW4LSW.js} +37 -6
  8. package/dist/chunk-SUSW4LSW.js.map +1 -0
  9. package/dist/{chunk-OYH7CEMB.js → chunk-ZSOT7KTE.js} +12 -8
  10. package/dist/chunk-ZSOT7KTE.js.map +1 -0
  11. package/dist/dashboard/OnboardingWidget.d.ts +4 -1
  12. package/dist/dashboard/OnboardingWidget.d.ts.map +1 -1
  13. package/dist/dashboard/SidebarOnboarding.d.ts +11 -1
  14. package/dist/dashboard/SidebarOnboarding.d.ts.map +1 -1
  15. package/dist/dashboard/index.js +2 -2
  16. package/dist/icons.js +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +445 -87
  20. package/dist/index.js.map +1 -1
  21. package/dist/layout/ModulePage.d.ts.map +1 -1
  22. package/dist/layout/SaveBar.d.ts.map +1 -1
  23. package/dist/layout/Sidebar.d.ts.map +1 -1
  24. package/dist/layout/index.js +3 -3
  25. package/dist/primitives/header-tabs.d.ts +7 -1
  26. package/dist/primitives/header-tabs.d.ts.map +1 -1
  27. package/dist/primitives/index.js +3 -3
  28. package/dist/primitives/search-select.d.ts +3 -1
  29. package/dist/primitives/search-select.d.ts.map +1 -1
  30. package/dist/primitives/stock-entry-form.d.ts +4 -1
  31. package/dist/primitives/stock-entry-form.d.ts.map +1 -1
  32. package/dist/styles.css +75 -0
  33. package/dist/tour/PracticeOverlay.d.ts +12 -0
  34. package/dist/tour/PracticeOverlay.d.ts.map +1 -0
  35. package/dist/tour/TourSpotlight.d.ts.map +1 -1
  36. package/dist/tour/confetti.d.ts +17 -0
  37. package/dist/tour/confetti.d.ts.map +1 -0
  38. package/dist/tour/index.d.ts +3 -0
  39. package/dist/tour/index.d.ts.map +1 -1
  40. package/dist/tour/practice.store.d.ts +28 -0
  41. package/dist/tour/practice.store.d.ts.map +1 -0
  42. package/dist/tour/tour.store.d.ts +4 -0
  43. package/dist/tour/tour.store.d.ts.map +1 -1
  44. package/dist/tour/types.d.ts +17 -0
  45. package/dist/tour/types.d.ts.map +1 -1
  46. package/package.json +2 -2
  47. package/dist/chunk-AIUHVTVK.js.map +0 -1
  48. package/dist/chunk-EGHEU3U5.js.map +0 -1
  49. package/dist/chunk-MBGTFL4I.js.map +0 -1
  50. package/dist/chunk-OYH7CEMB.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ModulePage.d.ts","sourceRoot":"","sources":["../../src/layout/ModulePage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModulePage.d.ts","sourceRoot":"","sources":["../../src/layout/ModulePage.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SaveBar.d.ts","sourceRoot":"","sources":["../../src/layout/SaveBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAgB9B,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAA;IACd;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAkCD,wEAAwE;AACxE,wBAAgB,iBAAiB,IAAI,OAAO,CAM3C;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAoD1E;AAuBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAcxD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAc,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAcnJ;AAED,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,4BAkE5D"}
1
+ {"version":3,"file":"SaveBar.d.ts","sourceRoot":"","sources":["../../src/layout/SaveBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAgB9B,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAA;IACd;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAkCD,wEAAwE;AACxE,wBAAgB,iBAAiB,IAAI,OAAO,CAM3C;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAoD1E;AAuBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAcxD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAc,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAcnJ;AAED,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,4BAoE5D"}
@@ -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,7 +1,7 @@
1
- export { AppShellSkeleton, ContentSplit, ContentSplitTrigger, PageTrail, Takeover, navigateToCrumb, usePageTrail, usePageTrailParent, useTakeoverClose } from '../chunk-P3YTL3MF.js';
2
- export { AppShell, BackStyleProvider, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageRail, PageTransition, RailNavItem, SaveBar, SaveBarProvider, Sidebar, SubpageHeader, Topbar, bottomNavReachesAll, useBackHandler, useBackStyle, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition, useRailRow, useSaveBar } from '../chunk-EGHEU3U5.js';
1
+ export { AppShellSkeleton, ContentSplit, ContentSplitTrigger, PageTrail, Takeover, navigateToCrumb, usePageTrail, usePageTrailParent, useTakeoverClose } from '../chunk-7G3O54CC.js';
2
+ export { AppShell, BackStyleProvider, ModuleLayoutProvider, ModulePage, NavTransitionProvider, PageHeaderActions, PageRail, PageTransition, RailNavItem, SaveBar, SaveBarProvider, Sidebar, SubpageHeader, Topbar, bottomNavReachesAll, useBackHandler, useBackStyle, useModuleHeaderActionsSlot, useModuleHeaderSlot, useModuleLayout, useNavTransition, useRailRow, useSaveBar } from '../chunk-PQUS22JE.js';
3
3
  import '../chunk-HKGTF2YA.js';
4
4
  import '../chunk-OKZ6WQB3.js';
5
- export { ICON_MAP } from '../chunk-AIUHVTVK.js';
5
+ export { ICON_MAP } from '../chunk-DHNUZF2X.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
@@ -43,6 +43,12 @@ export interface HeaderTabsProps<T extends string = string> {
43
43
  * above and the band is only as tall as the labels.
44
44
  */
45
45
  fill?: boolean;
46
+ /**
47
+ * Stamp each tab with `data-tour="<anchorPrefix>.<value>"` so a guided tour
48
+ * can point at it. Only the MODULE nav band passes this ('modnav') — a
49
+ * record's own tab strip stays unanchored, so the namespace never collides.
50
+ */
51
+ anchorPrefix?: string;
46
52
  }
47
53
  /**
48
54
  * The list-header tab strip: plain text tabs where only the active one is
@@ -59,7 +65,7 @@ export interface HeaderTabsProps<T extends string = string> {
59
65
  * inline toggle (7d/30d) that inverts to a solid foreground pill — a choice you
60
66
  * flip inside a card; this switches what the page is showing.
61
67
  */
62
- export declare function HeaderTabs<T extends string = string>({ tabs, value, onChange, className, fill, ...rest }: HeaderTabsProps<T>): React.JSX.Element;
68
+ export declare function HeaderTabs<T extends string = string>({ tabs, value, onChange, className, fill, anchorPrefix, ...rest }: HeaderTabsProps<T>): React.JSX.Element;
63
69
  export interface PageTabsProps<T extends string = string> extends Omit<HeaderTabsProps<T>, 'className'> {
64
70
  /** Right side of the band (e.g. a status filter or a secondary action). */
65
71
  actions?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"header-tabs.d.ts","sourceRoot":"","sources":["../../src/primitives/header-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAClD,KAAK,EAAE,CAAC,CAAA;IACR,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACxD,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EACpD,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAChD,EAAE,eAAe,CAAC,CAAC,CAAC,qBAgFpB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IACrG,2EAA2E;IAC3E,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,qBAiBrG"}
1
+ {"version":3,"file":"header-tabs.d.ts","sourceRoot":"","sources":["../../src/primitives/header-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAClD,KAAK,EAAE,CAAC,CAAA;IACR,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACxD,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EACpD,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAC9D,EAAE,eAAe,CAAC,CAAC,CAAC,qBAkFpB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;IACrG,2EAA2E;IAC3E,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,qBAiBrG"}
@@ -1,9 +1,9 @@
1
- export { Badge, Breadcrumb, BulkActionBar, ChevronPager, CurrencyInput, DatePicker, DotBadge, DraftCommitBar, FilterCheckBox, FilterCheckList, FilterCheckRow, FilterChip, FilterSection, Hint, Input, ListView, Markdown, MarkdownEditor, MiniCalendar, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, MultiSelect, PageActionBar, PhoneField, PhoneLink, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, RefreshButton, RowActions, SearchCombobox, SearchField, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, StatTiles, StockEntryForm, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WHATSAPP_BRAND_COLOR, WhatsAppIcon, badgeVariants, formatPhone, normalizePhone, renderMarkdown, setActionsMenuLabel, setRowActionsLabel, toLocalISODate, toast, useRowSelection } from '../chunk-OYH7CEMB.js';
2
- export { HeaderTabs, PageHeader, PageHeaderCrumb, PageTabs, SegmentedControl, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from '../chunk-EGHEU3U5.js';
1
+ export { Badge, Breadcrumb, BulkActionBar, ChevronPager, CurrencyInput, DatePicker, DotBadge, DraftCommitBar, FilterCheckBox, FilterCheckList, FilterCheckRow, FilterChip, FilterSection, Hint, Input, ListView, Markdown, MarkdownEditor, MiniCalendar, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, MultiSelect, PageActionBar, PhoneField, PhoneLink, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, RefreshButton, RowActions, SearchCombobox, SearchField, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, StatTiles, StockEntryForm, Tabs, TabsContent, TabsList, TabsTrigger, Thumbnail, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WHATSAPP_BRAND_COLOR, WhatsAppIcon, badgeVariants, formatPhone, normalizePhone, renderMarkdown, setActionsMenuLabel, setRowActionsLabel, toLocalISODate, toast, useRowSelection } from '../chunk-ZSOT7KTE.js';
2
+ export { HeaderTabs, PageHeader, PageHeaderCrumb, PageTabs, SegmentedControl, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from '../chunk-PQUS22JE.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, PageToolbar, RangeControl, Skeleton, TableSkeleton, ToolbarAction, ToolbarButton } from '../chunk-E44WOPCR.js';
4
4
  import '../chunk-HKGTF2YA.js';
5
5
  export { ColorPalette, ConfirmDialog, ImageDrop, OptionCards, OptionChips, StepProgress, Switch, normalizeHex } from '../chunk-GLRLWBBF.js';
6
6
  export { Button, buttonVariants } from '../chunk-OKZ6WQB3.js';
7
- import '../chunk-AIUHVTVK.js';
7
+ import '../chunk-DHNUZF2X.js';
8
8
  //# sourceMappingURL=index.js.map
9
9
  //# sourceMappingURL=index.js.map
@@ -50,6 +50,8 @@ export interface SearchSelectProps {
50
50
  className?: string;
51
51
  /** Disabled state */
52
52
  disabled?: boolean;
53
+ /** Tour anchor stamped on the container (a guided tour points here). */
54
+ 'data-tour'?: string;
53
55
  }
54
- export declare function SearchSelect({ value, displayValue, onChange, onSearch, placeholder, label, required, debounce, minChars, noResultsLabel, searchingLabel, allowCreate, createLabel, clearLabel, onCreate, renderOption, loadOnOpen, className, disabled, }: SearchSelectProps): React.JSX.Element;
56
+ export declare function SearchSelect({ value, displayValue, onChange, onSearch, placeholder, label, required, debounce, minChars, noResultsLabel, searchingLabel, allowCreate, createLabel, clearLabel, onCreate, renderOption, loadOnOpen, className, disabled, 'data-tour': dataTour, }: SearchSelectProps): React.JSX.Element;
55
57
  //# sourceMappingURL=search-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-select.d.ts","sourceRoot":"","sources":["../../src/primitives/search-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,CAAA;CACX;AAED,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAA;IACjE,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAA;IACjF,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;0EACsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9D;;wEAEoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAMD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAyB,EACzB,KAAK,EACL,QAAQ,EACR,QAAc,EACd,QAAY,EACZ,cAAc,EACd,cAA+B,EAC/B,WAAW,EACX,WAAmB,EACnB,UAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,UAAiB,EACjB,SAAS,EACT,QAAQ,GACT,EAAE,iBAAiB,qBAySnB"}
1
+ {"version":3,"file":"search-select.d.ts","sourceRoot":"","sources":["../../src/primitives/search-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,CAAA;CACX;AAED,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAA;IACjE,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAA;IACjF,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;0EACsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9D;;wEAEoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAMD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAyB,EACzB,KAAK,EACL,QAAQ,EACR,QAAc,EACd,QAAY,EACZ,cAAc,EACd,cAA+B,EAC/B,WAAW,EACX,WAAmB,EACnB,UAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,UAAiB,EACjB,SAAS,EACT,QAAQ,EACR,WAAW,EAAE,QAAQ,GACtB,EAAE,iBAAiB,qBAySnB"}
@@ -26,6 +26,9 @@ export interface StockEntryFormProps {
26
26
  /** Current on-hand, to show the consequence while they type. */
27
27
  available: number;
28
28
  saving?: boolean;
29
+ /** An unresolved command may be retried, but its inputs must not change. */
30
+ readOnly?: boolean;
31
+ notice?: string;
29
32
  onSubmit: (entry: StockEntrySubmit) => void | Promise<void>;
30
33
  labels?: Partial<typeof DEFAULT_LABELS>;
31
34
  }
@@ -47,6 +50,6 @@ declare const DEFAULT_LABELS: {
47
50
  submit: string;
48
51
  submitting: string;
49
52
  };
50
- export declare function StockEntryForm({ verb, onVerbChange, onClose, verbs, reasons, available, saving, onSubmit, labels: overrides, }: StockEntryFormProps): React.JSX.Element;
53
+ export declare function StockEntryForm({ verb, onVerbChange, onClose, verbs, reasons, available, saving, readOnly, notice, onSubmit, labels: overrides, }: StockEntryFormProps): React.JSX.Element;
51
54
  export {};
52
55
  //# sourceMappingURL=stock-entry-form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stock-entry-form.d.ts","sourceRoot":"","sources":["../../src/primitives/stock-entry-form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAsB9B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAA;CACjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;IAChC,OAAO,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACrC,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,cAAc,CAAC,CAAA;CACxC;AAED,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;CAiBnB,CAAA;AAOD,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAY,EAAE,SAAS,EAC3D,MAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAC5C,EAAE,mBAAmB,qBAkKrB"}
1
+ {"version":3,"file":"stock-entry-form.d.ts","sourceRoot":"","sources":["../../src/primitives/stock-entry-form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAsB9B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAA;CACjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;IAChC,OAAO,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACrC,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,cAAc,CAAC,CAAA;CACxC;AAED,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;CAiBnB,CAAA;AAOD,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAY,EAAE,SAAS,EAC3D,MAAc,EAAE,QAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GACtE,EAAE,mBAAmB,qBAmKrB"}
package/dist/styles.css CHANGED
@@ -1083,6 +1083,14 @@ html {
1083
1083
  a soft halo that breathes instead: the movement is what says "this one, now",
1084
1084
  and it is the only thing moving on a dimmed screen, so it can be gentle.
1085
1085
  --------------------------------------------------------------------------- */
1086
+ /* Practice footprint — the next field's badge pulses to say "you, here, now". */
1087
+ @keyframes fz-practice-pulse {
1088
+ 0%, 100% { box-shadow: 0 0 0 0 hsl(var(--primary) / 0.5); }
1089
+ 50% { box-shadow: 0 0 0 6px hsl(var(--primary) / 0); }
1090
+ }
1091
+ .fz-practice-pulse { animation: fz-practice-pulse 1.5s ease-in-out infinite; }
1092
+ @media (prefers-reduced-motion: reduce) { .fz-practice-pulse { animation: none; } }
1093
+
1086
1094
  @keyframes fz-spotlight-breathe {
1087
1095
  0%, 100% { box-shadow: 0 0 0 2px hsl(var(--primary) / 0.55), 0 0 0 7px hsl(var(--primary) / 0.14); }
1088
1096
  50% { box-shadow: 0 0 0 3px hsl(var(--primary) / 0.75), 0 0 0 12px hsl(var(--primary) / 0.06); }
@@ -1099,6 +1107,73 @@ html {
1099
1107
  .fz-spotlight-ring { animation: none; }
1100
1108
  }
1101
1109
 
1110
+ /* The guiding cursor — the hand that walks somebody to the control.
1111
+ The translate is set inline by TourSpotlight; this transition is the whole
1112
+ journey. It sits above the dim and below nothing: z-index inherits from the
1113
+ overlay container, and pointer-events stay off so it can never eat the click
1114
+ it is pointing at. */
1115
+ .fz-tour-cursor {
1116
+ position: fixed;
1117
+ top: 0;
1118
+ left: 0;
1119
+ pointer-events: none;
1120
+ transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
1121
+ filter: drop-shadow(0 2px 6px rgb(0 0 0 / 0.45));
1122
+ will-change: transform;
1123
+ }
1124
+ /* Travelling: the cursor breathes — shrinks leaning into the move, swells as
1125
+ it glides — so it reads as a living hand, not a sprite being dragged. */
1126
+ @keyframes fz-tour-cursor-breathe {
1127
+ 0%, 100% { scale: 1; }
1128
+ 35% { scale: 0.84; }
1129
+ 70% { scale: 1.1; }
1130
+ }
1131
+ .fz-tour-cursor-travel svg { animation: fz-tour-cursor-breathe 700ms ease-in-out infinite; }
1132
+
1133
+ @keyframes fz-tour-cursor-tap {
1134
+ 0% { scale: 1; }
1135
+ 35% { scale: 0.82; }
1136
+ 100% { scale: 1; }
1137
+ }
1138
+ .fz-tour-cursor-arrived svg { animation: fz-tour-cursor-tap 420ms ease-out; }
1139
+
1140
+ /* The "click": two rings ripple out from the cursor tip on arrival, like a
1141
+ tap on a touchscreen. Pseudo-elements so they cost nothing while idle. */
1142
+ .fz-tour-cursor::before,
1143
+ .fz-tour-cursor::after {
1144
+ content: '';
1145
+ position: absolute;
1146
+ /* Centered on the cursor TIP (the translate origin sits at the SVG's
1147
+ top-left; the tip of the drawn arrow lands ~8px right, ~4px down). */
1148
+ left: -6px;
1149
+ top: -10px;
1150
+ width: 28px;
1151
+ height: 28px;
1152
+ border-radius: 9999px;
1153
+ border: 2px solid hsl(var(--primary) / 0.65);
1154
+ opacity: 0;
1155
+ scale: 0.3;
1156
+ pointer-events: none;
1157
+ }
1158
+ @keyframes fz-tour-ripple {
1159
+ 0% { opacity: 0.9; scale: 0.3; }
1160
+ 100% { opacity: 0; scale: 2.4; }
1161
+ }
1162
+ .fz-tour-cursor-arrived::before { animation: fz-tour-ripple 640ms ease-out; }
1163
+ .fz-tour-cursor-arrived::after { animation: fz-tour-ripple 640ms ease-out 150ms; }
1164
+ /* On a handover stop the cursor stays perched and nudges toward the control:
1165
+ the visual for "this one — go ahead". */
1166
+ @keyframes fz-tour-cursor-nudge {
1167
+ 0%, 100% { translate: 0 0; }
1168
+ 50% { translate: -5px -5px; }
1169
+ }
1170
+ .fz-tour-cursor-nudge svg { animation: fz-tour-cursor-nudge 1.6s ease-in-out 480ms infinite; }
1171
+ @media (prefers-reduced-motion: reduce) {
1172
+ .fz-tour-cursor { transition: none; }
1173
+ .fz-tour-cursor-arrived svg, .fz-tour-cursor-nudge svg, .fz-tour-cursor-travel svg { animation: none; }
1174
+ .fz-tour-cursor-arrived::before, .fz-tour-cursor-arrived::after { animation: none; }
1175
+ }
1176
+
1102
1177
  /* ---------------------------------------------------------------------------
1103
1178
  Takeover — a surface that covers the whole shell (see layout/Takeover.tsx).
1104
1179
 
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * The footprints. No dim, no cursor — the person is DRIVING now. Each field
4
+ * wears a numbered badge that turns into a check the moment they touch it; the
5
+ * one they should touch next pulses. Filling the last (Save) rains confetti
6
+ * from the bottom of the whole screen.
7
+ *
8
+ * Mounted once by the shell, next to TourSpotlight. Renders nothing until a
9
+ * practice run is active.
10
+ */
11
+ export declare function PracticeOverlay(): React.ReactPortal | null;
12
+ //# sourceMappingURL=PracticeOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PracticeOverlay.d.ts","sourceRoot":"","sources":["../../src/tour/PracticeOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B;;;;;;;;GAQG;AACH,wBAAgB,eAAe,6BAmG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"TourSpotlight.d.ts","sourceRoot":"","sources":["../../src/tour/TourSpotlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,cAAc,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,cAAc;;;;;;;;CAQnB,CAAA;AAmBD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,4BAyLtE"}
1
+ {"version":3,"file":"TourSpotlight.d.ts","sourceRoot":"","sources":["../../src/tour/TourSpotlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,cAAc,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,cAAc;;;;;;;;CAQnB,CAAA;AA4DD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,4BAuWtE"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Confetti — the reward at the end of a tour, dependency-free.
3
+ *
4
+ * A short burst on a full-screen canvas that removes itself. No library: the
5
+ * ui package ships in every app and this is ~40 lines of physics. Honours
6
+ * reduced-motion by doing nothing. Deterministic-ish randomness seeded off the
7
+ * call time is fine — this is decoration, never resumed.
8
+ */
9
+ export declare function fireConfetti(opts?: {
10
+ origin?: {
11
+ x: number;
12
+ y: number;
13
+ };
14
+ count?: number;
15
+ fromBottom?: boolean;
16
+ }): void;
17
+ //# sourceMappingURL=confetti.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confetti.d.ts","sourceRoot":"","sources":["../../src/tour/confetti.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAiGrH"}
@@ -1,4 +1,7 @@
1
1
  export { TourSpotlight, type TourSpotlightProps } from './TourSpotlight';
2
2
  export { useTourStore, setTourNavigator, getTourNavigator, currentStop, type TourState } from './tour.store';
3
3
  export { tourAnchor, type TourDef, type TourStopDef } from './types';
4
+ export { fireConfetti } from './confetti';
5
+ export { PracticeOverlay } from './PracticeOverlay';
6
+ export { usePracticeStore, nextPracticeStep, type PracticeStep, type PracticeState } from './practice.store';
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tour/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAC5G,OAAO,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tour/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAC5G,OAAO,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,28 @@
1
+ import type { PracticeStep } from './types';
2
+ /**
3
+ * Practice mode — the second half of a guided feature.
4
+ *
5
+ * The tour DRIVES: a cursor walks the person to the create screen. Practice
6
+ * WATCHES: numbered footprints pin to the real fields and the person fills them
7
+ * in themselves, each ticking as they go, the last one (Save) raining confetti.
8
+ * Watching teaches where things are; doing teaches how — this is the doing.
9
+ *
10
+ * A step is "done" the first time the person interacts inside its anchor
11
+ * (types, picks, clicks). Interaction, not a value check: it is robust across
12
+ * every field kind, and the goal is to fix the SEQUENCE in muscle memory, not
13
+ * to validate the form (the form validates itself on save).
14
+ */
15
+ export type { PracticeStep };
16
+ export interface PracticeState {
17
+ title: string | null;
18
+ steps: PracticeStep[];
19
+ /** Anchors already done, in the order they were completed. */
20
+ done: string[];
21
+ start: (title: string, steps: PracticeStep[]) => void;
22
+ markDone: (anchor: string) => void;
23
+ stop: () => void;
24
+ }
25
+ export declare const usePracticeStore: import("zustand").UseBoundStore<import("zustand").StoreApi<PracticeState>>;
26
+ /** The next footprint the person should touch — the first not-done step. */
27
+ export declare function nextPracticeStep(steps: PracticeStep[], done: string[]): PracticeStep | undefined;
28
+ //# sourceMappingURL=practice.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"practice.store.d.ts","sourceRoot":"","sources":["../../src/tour/practice.store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C;;;;;;;;;;;;GAYG;AAEH,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAA;IACrD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB;AAED,eAAO,MAAM,gBAAgB,4EAkB1B,CAAA;AAEH,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,GAAG,SAAS,CAEhG"}
@@ -9,12 +9,16 @@ export interface TourState {
9
9
  tourId: string;
10
10
  completed: boolean;
11
11
  } | null;
12
+ /** The most recent tour, running or not — what "restart" restarts. */
13
+ lastTour: TourDef | null;
12
14
  start: (tour: TourDef) => void;
13
15
  next: () => void;
14
16
  prev: () => void;
15
17
  goTo: (index: number) => void;
16
18
  /** `completed` distinguishes finishing from skipping; both close the overlay. */
17
19
  stop: (completed?: boolean) => void;
20
+ /** Start the last tour over from stop 1 — running (reset) or ended (revive). */
21
+ restart: () => void;
18
22
  }
19
23
  export declare const useTourStore: import("zustand").UseBoundStore<import("zustand").StoreApi<TourState>>;
20
24
  /** The stop on screen right now, if any. */
@@ -1 +1 @@
1
- {"version":3,"file":"tour.store.d.ts","sourceRoot":"","sources":["../../src/tour/tour.store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAcnD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAE/E;AACD,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAEvE;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IAC1D,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9B,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,iFAAiF;IACjF,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CACpC;AAED,eAAO,MAAM,YAAY,wEA8BtB,CAAA;AAEH,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAErE"}
1
+ {"version":3,"file":"tour.store.d.ts","sourceRoot":"","sources":["../../src/tour/tour.store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAenD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAE/E;AACD,wBAAgB,gBAAgB,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAEvE;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IAC1D,sEAAsE;IACtE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9B,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,iFAAiF;IACjF,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACnC,gFAAgF;IAChF,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,eAAO,MAAM,YAAY,wEA6CtB,CAAA;AAEH,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAErE"}
@@ -16,10 +16,27 @@ export interface TourStopDef {
16
16
  /** Wait for the person to use the control instead of offering "next". */
17
17
  waitForUser?: boolean;
18
18
  }
19
+ /**
20
+ * A field the person fills themselves after the tour drops them on the form.
21
+ * The one canonical shape for a practice footprint in the UI kit; `practice.store`
22
+ * and `PracticeOverlay` use this, and @fayz-ai/core mirrors it as `PracticeAction`.
23
+ */
24
+ export interface PracticeStep {
25
+ anchor: string;
26
+ label: string;
27
+ /** Completing this ends practice and fires the finale. */
28
+ final?: boolean;
29
+ }
19
30
  export interface TourDef {
20
31
  id: string;
21
32
  title?: string;
22
33
  stops: TourStopDef[];
34
+ /**
35
+ * What to do AFTER the tour arrives. The stops walk them to the create
36
+ * screen; these footprints let them fill it in themselves, ticking as they
37
+ * go. Completing the whole tour hands off to practice instead of just ending.
38
+ */
39
+ practice?: PracticeStep[];
23
40
  }
24
41
  /** Spread onto the element a tour points at: `<Button {...tourAnchor('shop.new')} />`. */
25
42
  export declare function tourAnchor(anchor: string): {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tour/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACxD,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAElE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tour/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACxD,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAElE"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "fayz": {
4
4
  "status": "beta"
5
5
  },
6
- "version": "0.21.0",
6
+ "version": "0.22.0",
7
7
  "description": "Fayz SDK UI — Radix + Tailwind component library with CRUD engine and layout shells",
8
8
  "type": "module",
9
9
  "sideEffects": [
@@ -79,7 +79,7 @@
79
79
  "clsx": "^2.1.0",
80
80
  "recharts": "^2.15.0",
81
81
  "tailwind-merge": "^2.4.0",
82
- "@fayz-ai/core": "^0.21.0"
82
+ "@fayz-ai/core": "^0.22.0"
83
83
  },
84
84
  "devDependencies": {
85
85
  "@types/react": "^18.3.0",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/primitives/brand-marks.tsx","../src/icons.ts"],"names":["ChefControlMark"],"mappings":"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","file":"chunk-AIUHVTVK.js","sourcesContent":["import * as React from 'react'\nimport type { LucideIcon } from 'lucide-react'\n\n// ---------------------------------------------------------------------------\n// The Control family's own product marks.\n//\n// Every other tile in the app switcher is a lucide glyph named by a row in\n// `app.apps`, which is fine for a product that has no mark of its own. It is\n// not fine for one that does: ChefControl's symbol has weight hierarchy — thin\n// crown, heavy base, the same contrast as the logotype beside it — and lucide's\n// `ChefHat` draws the same object at constant stroke. The launcher is where a\n// product is recognised rather than read, so the row that shows a stand-in is\n// the row that says \"this app has no brand\".\n//\n// They live in the registry rather than in each app because the switcher lists\n// SIBLINGS: StoreControl draws the Chef row too, and a mark that only the app\n// itself owns would leave the same product looking like two different products\n// depending on which window you opened the menu from.\n//\n// `fill=\"currentColor\"` and no stroke: the tile decides the ink (see AppMark),\n// the same way a surface decides the colour of the text beside it — one drawing\n// for the gold tile, the rail and the login card, with no per-surface file and\n// no `filter: invert`, which chews the anti-aliased edge.\n// ---------------------------------------------------------------------------\n\n/**\n * Typed as a lucide icon so it can sit in the same registry: the props a mark\n * actually reads are `className` and `style`, and the stroke props the callers\n * pass mean nothing to a filled path — harmless, and not worth a second\n * resolver to avoid.\n */\nexport const ChefControlMark = React.forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>>(\n function ChefControlMark(props, ref) {\n return (\n // The viewBox is the symbol's ink box, not the 1080 square of the source\n // file: cropped, the hat centres in a tile instead of floating in padding.\n <svg ref={ref} viewBox=\"140.2 147.83 799.59 784.35\" fill=\"currentColor\" aria-hidden {...props}>\n <path d=\"M871.42,305.72c-8.6-6.71-17.86-12.68-27.66-17.78-25.93-13.54-55.59-21.23-87.13-21.23-8.66,0-17.18.58-25.51,1.7-33.22-70.59-106.31-120.58-191.12-120.58s-157.93,49.99-191.12,120.61h-.03c-8.33-1.15-16.85-1.73-25.51-1.73-32.62,0-63.27,8.24-89.79,22.68-9.74,5.27-18.94,11.41-27.45,18.27-40.27,32.41-65.9,81.19-65.9,135.73,0,93.23,74.89,169.64,169.82,176.21,3.88,33.85,5.91,68.69,5.91,104.24,0,45.93-3.38,90.64-9.77,133.6-2,13.45-4.3,26.71-6.87,39.79,13.5-3.43,27.27-6.6,41.25-9.42,62.07-12.68,128.53-19.54,197.6-19.54s135.5,6.86,197.57,19.54c13.98,2.82,27.75,5.96,41.25,9.42-2.57-13.08-4.87-26.33-6.87-39.79-6.39-42.96-9.77-87.67-9.77-133.6,0-35.47,2-70.21,5.89-104.01,96.69-4.84,173.58-82,173.58-176.44,0-55.64-26.67-105.28-68.37-137.66ZM771.38,570.43c-4.87.51-9.77.75-14.76.75-8.36,0-16.55-.72-24.52-2.09-1.94,12.64-3.64,25.42-5.11,38.35-4.03,35.73-6.12,72.47-6.12,110.02,0,44.3,2.93,173.01,8.48,214.69-60.25-12.28-124.5-18.91-191.2-18.91s-130.99,6.63-191.24,18.94c5.56-41.67,8.48-170.42,8.48-214.71,0-37.34-2.09-73.9-6.06-109.45-1.43-12.93-3.14-25.72-5.11-38.35-6.81,1.02-13.8,1.52-20.88,1.52-6.27,0-12.46-.39-18.52-1.19-71.03-9.08-125.94-69.78-125.94-143.29,0-42.06,17.95-79.91,46.63-106.31,8.54-7.88,18.04-14.73,28.32-20.37,20.64-11.35,44.33-17.8,69.51-17.8,4.24,0,8.42.18,12.55.54,13.2,1.13,25.87,4.03,37.82,8.48,3.2-12.7,7.83-24.79,13.68-36.17,28.47-55.29,86.12-93.11,152.61-93.11s124.11,37.82,152.58,93.11c5.85,11.38,10.49,23.48,13.68,36.17,11.92-4.45,24.61-7.35,37.82-8.48,4.12-.36,8.3-.54,12.55-.54,24.07,0,46.75,5.88,66.7,16.28,10.34,5.41,19.95,12.01,28.62,19.66,30.14,26.47,49.17,65.3,49.17,108.55,0,74.8-56.87,136.36-129.73,143.74Z\" />\n </svg>\n )\n },\n) as unknown as LucideIcon\n\n/** Registry entries, by the name `app.apps.icon` carries for these products. */\nexport const BRAND_MARKS: Record<string, LucideIcon> = {\n ChefControlMark,\n}\n","import type { LucideIcon } from 'lucide-react'\nimport { BRAND_MARKS } from './primitives/brand-marks'\nimport {\n Activity, AlertTriangle, Apple, ArrowDownCircle, ArrowDownRight, ArrowLeftRight, ArrowUpCircle, ArrowUpRight,\n Award, BadgeDollarSign, Ban, Banknote, BarChart3, Beer, Bell, Bike, BookOpen,\n BookOpenCheck, Box, Boxes, Briefcase, Building2, Calendar, CalendarCheck, CalendarCheck2,\n CalendarClock, CalendarDays, CalendarPlus, CalendarRange, CalendarX, Camera, Cat, Check, CheckCircle,\n CheckSquare, ChefHat, ChevronDown, ChevronsUpDown, Circle, CircleCheck, CircleDollarSign, Clapperboard,\n ClipboardCheck, ClipboardList,\n Clock, Clock3, Command, Compass, Contact, CookingPot, CreditCard, Database, Disc3, Dog,\n DollarSign, DoorOpen, Egg, ExternalLink, Eye, FileCheck2, FileDown,\n FileText, Filter, Flame, FolderOpen, Gauge, Gift, GlassWater, Globe, GraduationCap, HandCoins, Handshake, Heart, Hourglass,\n FolderTree, Home, Image, Images, Inbox, Instagram, Landmark, Layers, LayoutDashboard, LayoutTemplate,\n Leaf, LeafyGreen, LineChart, Link, List, ListChecks, ListMusic, ListPlus, Lock, LogIn,\n Mail, Map, MapPin, Megaphone, MessageCircle, MessageSquare, Mic, MoreHorizontal,\n MousePointerClick, Music, Newspaper, Package, PackageCheck, Palette, PartyPopper, PawPrint,\n Pencil, Percent, Phone, PieChart, Plug, Plus, PlusCircle, Puzzle, Radio,\n Receipt, Repeat, RotateCcw, RotateCw, Ruler, Scale, ScanLine, Search, Send, Settings, Shield,\n ShieldCheck, ShoppingBag, ShoppingCart, Sigma, SlidersHorizontal, Smartphone, Soup, Sparkles, Star, Store, Tag,\n TableProperties, Tags, Target, Ticket, Timer, ToggleLeft, TreePalm, TrendingDown, TrendingUp, Trophy, Truck,\n User, UserCheck, UserCog, UserPlus, UserX, Users, UsersRound, Utensils, WandSparkles,\n Upload, UtensilsCrossed, Wallet, Warehouse, Wheat, Workflow, Wrench, X, XCircle,\n Zap,\n} from 'lucide-react'\n\n// ---------------------------------------------------------------------------\n// Central lucide icon registry. The SDK's manifest-driven surfaces resolve\n// icons by string name; a namespace import (`import * as LucideIcons`) defeats\n// tree-shaking and drags all ~1,500 icons (~500 KB min) into every bundle, so\n// the SDK ships this curated set instead — the union of every icon name the\n// SDK, plugins, and app templates reference. Apps using names outside the set\n// call registerIcons({ Name: Component }) with their own named imports.\n// ---------------------------------------------------------------------------\n\nconst registry: Record<string, LucideIcon> = {\n Activity, AlertTriangle, Apple, ArrowDownCircle, ArrowDownRight, ArrowLeftRight, ArrowUpCircle, ArrowUpRight,\n Award, BadgeDollarSign, Ban, Banknote, BarChart3, Beer, Bell, Bike, BookOpen,\n BookOpenCheck, Box, Boxes, Briefcase, Building2, Calendar, CalendarCheck, CalendarCheck2,\n CalendarClock, CalendarDays, CalendarPlus, CalendarRange, CalendarX, Camera, Cat, Check, CheckCircle,\n CheckSquare, ChefHat, ChevronDown, ChevronsUpDown, Circle, CircleCheck, CircleDollarSign, Clapperboard,\n ClipboardCheck, ClipboardList,\n Clock, Clock3, Command, Compass, Contact, CookingPot, CreditCard, Database, Disc3, Dog,\n DollarSign, DoorOpen, Egg, ExternalLink, Eye, FileCheck2, FileDown,\n FileText, Filter, Flame, FolderOpen, Gauge, Gift, GlassWater, Globe, GraduationCap, HandCoins, Handshake, Heart, Hourglass,\n FolderTree, Home, Image, Images, Inbox, Instagram, Landmark, Layers, LayoutDashboard, LayoutTemplate,\n Leaf, LeafyGreen, LineChart, Link, List, ListChecks, ListMusic, ListPlus, Lock, LogIn,\n Mail, Map, MapPin, Megaphone, MessageCircle, MessageSquare, Mic, MoreHorizontal,\n MousePointerClick, Music, Newspaper, Package, PackageCheck, Palette, PartyPopper, PawPrint,\n Pencil, Percent, Phone, PieChart, Plug, Plus, PlusCircle, Puzzle, Radio,\n Receipt, Repeat, RotateCcw, RotateCw, Ruler, Scale, ScanLine, Search, Send, Settings, Shield,\n ShieldCheck, ShoppingBag, ShoppingCart, Sigma, SlidersHorizontal, Smartphone, Soup, Sparkles, Star, Store, Tag,\n TableProperties, Tags, Target, Ticket, Timer, ToggleLeft, TreePalm, TrendingDown, TrendingUp, Trophy, Truck,\n User, UserCheck, UserCog, UserPlus, UserX, Users, UsersRound, Utensils, WandSparkles,\n Upload, UtensilsCrossed, Wallet, Warehouse, Wheat, Workflow, Wrench, X, XCircle,\n Zap,\n // The family's own product marks, resolvable by the same string names the\n // app registry stores — a product that HAS a mark should never be drawn by a\n // stand-in glyph in the launcher.\n ...BRAND_MARKS,\n}\n\n/** Add or override icons resolvable by string name (e.g. from app manifests). */\nexport function registerIcons(icons: Record<string, LucideIcon>): void {\n Object.assign(registry, icons)\n}\n\n/** Resolve a lucide icon by name; undefined when not registered. */\nexport function getLucideIcon(name: string): LucideIcon | undefined {\n return registry[name]\n}\n\n/** The registered icon map (live reference — do not mutate directly). */\nexport const ICON_MAP = registry\n"]}