@viglet/viglet-design-system 2026.3.2 → 2026.3.3

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 (177) hide show
  1. package/README.md +277 -7
  2. package/dist/assets.cjs +1 -0
  3. package/dist/assets.es.js +2 -0
  4. package/dist/badge-locale-BxI9TwkE.js +579 -0
  5. package/dist/badge-locale-sIsBdP_e.cjs +7 -0
  6. package/dist/bento/bento-actions-menu.d.ts +42 -0
  7. package/dist/bento/bento-actions-menu.d.ts.map +1 -0
  8. package/dist/bento/bento-back-to-top.d.ts +11 -0
  9. package/dist/bento/bento-back-to-top.d.ts.map +1 -0
  10. package/dist/bento/bento-command-palette.d.ts +28 -0
  11. package/dist/bento/bento-command-palette.d.ts.map +1 -0
  12. package/dist/bento/bento-count-tile.d.ts +18 -0
  13. package/dist/bento/bento-count-tile.d.ts.map +1 -0
  14. package/dist/bento/bento-empty-state.d.ts +35 -0
  15. package/dist/bento/bento-empty-state.d.ts.map +1 -0
  16. package/dist/bento/bento-entity-shell.d.ts +123 -0
  17. package/dist/bento/bento-entity-shell.d.ts.map +1 -0
  18. package/dist/bento/bento-entity-tile.d.ts +40 -0
  19. package/dist/bento/bento-entity-tile.d.ts.map +1 -0
  20. package/dist/bento/bento-form-hero.d.ts +91 -0
  21. package/dist/bento/bento-form-hero.d.ts.map +1 -0
  22. package/dist/bento/bento-form-section.d.ts +31 -0
  23. package/dist/bento/bento-form-section.d.ts.map +1 -0
  24. package/dist/bento/bento-hero-icon-picker.d.ts +35 -0
  25. package/dist/bento/bento-hero-icon-picker.d.ts.map +1 -0
  26. package/dist/bento/bento-hero.d.ts +62 -0
  27. package/dist/bento/bento-hero.d.ts.map +1 -0
  28. package/dist/bento/bento-inline-edit.d.ts +52 -0
  29. package/dist/bento/bento-inline-edit.d.ts.map +1 -0
  30. package/dist/bento/bento-layout.d.ts +52 -0
  31. package/dist/bento/bento-layout.d.ts.map +1 -0
  32. package/dist/bento/bento-list-page.d.ts +124 -0
  33. package/dist/bento/bento-list-page.d.ts.map +1 -0
  34. package/dist/bento/bento-nav-rail.d.ts +32 -0
  35. package/dist/bento/bento-nav-rail.d.ts.map +1 -0
  36. package/dist/bento/bento-nav.d.ts +69 -0
  37. package/dist/bento/bento-nav.d.ts.map +1 -0
  38. package/dist/bento/bento-save-bar.d.ts +36 -0
  39. package/dist/bento/bento-save-bar.d.ts.map +1 -0
  40. package/dist/bento/bento-scroll-fade.d.ts +20 -0
  41. package/dist/bento/bento-scroll-fade.d.ts.map +1 -0
  42. package/dist/bento/bento-scroll-save-bar.d.ts +22 -0
  43. package/dist/bento/bento-scroll-save-bar.d.ts.map +1 -0
  44. package/dist/bento/bento-section-chrome.d.ts +60 -0
  45. package/dist/bento/bento-section-chrome.d.ts.map +1 -0
  46. package/dist/bento/bento-section.d.ts +27 -0
  47. package/dist/bento/bento-section.d.ts.map +1 -0
  48. package/dist/bento/bento-shortcuts-dialog.d.ts +15 -0
  49. package/dist/bento/bento-shortcuts-dialog.d.ts.map +1 -0
  50. package/dist/bento/bento-status-marker.d.ts +26 -0
  51. package/dist/bento/bento-status-marker.d.ts.map +1 -0
  52. package/dist/bento/bento-tile.d.ts +42 -0
  53. package/dist/bento/bento-tile.d.ts.map +1 -0
  54. package/dist/bento/bento-tones.d.ts +33 -0
  55. package/dist/bento/bento-tones.d.ts.map +1 -0
  56. package/dist/bento/bento-user-menu.d.ts +31 -0
  57. package/dist/bento/bento-user-menu.d.ts.map +1 -0
  58. package/dist/bento/index.d.ts +59 -0
  59. package/dist/bento/index.d.ts.map +1 -0
  60. package/dist/bento.cjs +1 -0
  61. package/dist/bento.css +442 -0
  62. package/dist/bento.es.js +1501 -0
  63. package/dist/breadcrumb.context-CTnZ4rD0.cjs +1 -0
  64. package/dist/breadcrumb.context-h2A2IEJ_.js +928 -0
  65. package/dist/components/badge-locale.d.ts.map +1 -1
  66. package/dist/components/error-boundary.d.ts.map +1 -1
  67. package/dist/components/language-select.d.ts.map +1 -1
  68. package/dist/components/router/blank-slate.d.ts +10 -0
  69. package/dist/components/router/blank-slate.d.ts.map +1 -1
  70. package/dist/components/router/grid.list.d.ts +13 -0
  71. package/dist/components/router/grid.list.d.ts.map +1 -1
  72. package/dist/components/router/internal.sidebar.d.ts +27 -2
  73. package/dist/components/router/internal.sidebar.d.ts.map +1 -1
  74. package/dist/components/router/loading-provider.d.ts +6 -1
  75. package/dist/components/router/loading-provider.d.ts.map +1 -1
  76. package/dist/components/router/nav-main.d.ts +10 -0
  77. package/dist/components/router/nav-main.d.ts.map +1 -1
  78. package/dist/components/router/nav-user.d.ts +13 -0
  79. package/dist/components/router/nav-user.d.ts.map +1 -1
  80. package/dist/components/router/page-content.d.ts +10 -0
  81. package/dist/components/router/page-content.d.ts.map +1 -1
  82. package/dist/components/router/page-header.d.ts +13 -0
  83. package/dist/components/router/page-header.d.ts.map +1 -1
  84. package/dist/components/router/page.d.ts +13 -0
  85. package/dist/components/router/page.d.ts.map +1 -1
  86. package/dist/components/router/sticky.page.header.d.ts +14 -0
  87. package/dist/components/router/sticky.page.header.d.ts.map +1 -1
  88. package/dist/components/router/sub.page.d.ts +15 -11
  89. package/dist/components/router/sub.page.d.ts.map +1 -1
  90. package/dist/components/router/sub.page.header.d.ts +13 -0
  91. package/dist/components/router/sub.page.header.d.ts.map +1 -1
  92. package/dist/components/startup-first/startup-first.d.ts.map +1 -1
  93. package/dist/components/ui/floating-formulas-bg.d.ts +8 -1
  94. package/dist/components/ui/floating-formulas-bg.d.ts.map +1 -1
  95. package/dist/components/ui/form.d.ts +2 -2
  96. package/dist/components/ui/form.d.ts.map +1 -1
  97. package/dist/components/ui/gradient-button.d.ts.map +1 -1
  98. package/dist/components/ui/gradient-switch.d.ts.map +1 -1
  99. package/dist/components/ui/icon-picker-dialog.d.ts +35 -0
  100. package/dist/components/ui/icon-picker-dialog.d.ts.map +1 -0
  101. package/dist/components/ui/index.d.ts +1 -0
  102. package/dist/components/ui/index.d.ts.map +1 -1
  103. package/dist/components/ui/section-card.d.ts +3 -3
  104. package/dist/components/ui/section-card.d.ts.map +1 -1
  105. package/dist/components/ui/sidebar.d.ts.map +1 -1
  106. package/dist/components/ui/slider.d.ts +1 -1
  107. package/dist/components/ui/slider.d.ts.map +1 -1
  108. package/dist/contexts/user.context.d.ts +24 -0
  109. package/dist/contexts/user.context.d.ts.map +1 -1
  110. package/dist/exports.json +404 -0
  111. package/dist/floating-formulas-bg.cjs +1 -0
  112. package/dist/floating-formulas-bg.css +21 -0
  113. package/dist/floating-formulas-bg.es.js +83 -56
  114. package/dist/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  115. package/dist/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
  116. package/dist/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
  117. package/dist/fonts/inter-greek-wght-normal.woff2 +0 -0
  118. package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  119. package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
  120. package/dist/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
  121. package/dist/fonts/plus-jakarta-sans-cyrillic-ext-wght-normal.woff2 +0 -0
  122. package/dist/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2 +0 -0
  123. package/dist/fonts/plus-jakarta-sans-latin-wght-normal.woff2 +0 -0
  124. package/dist/fonts/plus-jakarta-sans-vietnamese-wght-normal.woff2 +0 -0
  125. package/dist/fonts.css +126 -0
  126. package/dist/hooks/use-grid-adapter.d.ts.map +1 -1
  127. package/dist/hooks/use-mobile.d.ts +10 -0
  128. package/dist/hooks/use-mobile.d.ts.map +1 -1
  129. package/dist/hooks/use-sub-page-breadcrumb.d.ts.map +1 -1
  130. package/dist/i18n/index.d.ts +136 -0
  131. package/dist/i18n/index.d.ts.map +1 -1
  132. package/dist/i18n/locales/en/bento.json.d.ts +51 -0
  133. package/dist/i18n/locales/en/common.json.d.ts +7 -1
  134. package/dist/i18n/locales/en/forms.json.d.ts +15 -1
  135. package/dist/i18n/locales/en/nav.json.d.ts +3 -1
  136. package/dist/i18n/locales/pt/bento.json.d.ts +51 -0
  137. package/dist/i18n/locales/pt/common.json.d.ts +7 -1
  138. package/dist/i18n/locales/pt/forms.json.d.ts +15 -1
  139. package/dist/i18n/locales/pt/nav.json.d.ts +3 -1
  140. package/dist/i18n-DoNdMLEd.cjs +1 -0
  141. package/dist/{i18n-C94rDRaM.js → i18n-DuNITbWa.js} +155 -27
  142. package/dist/{i18n.cjs.js → i18n.cjs} +1 -1
  143. package/dist/i18n.es.js +1 -1
  144. package/dist/index.cjs +1 -0
  145. package/dist/index.d.ts +0 -1
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.es.js +492 -750
  148. package/dist/lib/axios.d.ts.map +1 -1
  149. package/dist/lib/export-xlsx.d.ts +7 -1
  150. package/dist/lib/export-xlsx.d.ts.map +1 -1
  151. package/dist/lib/react-markers.d.ts +17 -0
  152. package/dist/lib/react-markers.d.ts.map +1 -0
  153. package/dist/lib/utils.d.ts +22 -0
  154. package/dist/lib/utils.d.ts.map +1 -1
  155. package/dist/loading-provider-1mgM91iY.cjs +1 -0
  156. package/dist/loading-provider-CMnOuvdR.js +224 -0
  157. package/dist/preset.css +103 -3
  158. package/dist/products-DL_YYXkV.cjs +1 -0
  159. package/dist/products-Du9KB6Xl.js +9 -0
  160. package/dist/{rolldown-runtime-CMqjfN_6.cjs → rolldown-runtime-BocRIvOZ.cjs} +1 -1
  161. package/dist/router.cjs +1 -0
  162. package/dist/router.es.js +358 -555
  163. package/dist/user.context-kPAqKN4o.js +512 -0
  164. package/dist/user.context-r50nSWER.cjs +1 -0
  165. package/dist/viglet-design-system.css +1 -1
  166. package/dist/vite/boot-loader.d.ts +14 -4
  167. package/dist/vite/boot-loader.d.ts.map +1 -1
  168. package/dist/{vite.cjs.js → vite.cjs} +8 -8
  169. package/dist/vite.es.js +29 -16
  170. package/package.json +66 -22
  171. package/scripts/check-duplicates.mjs +198 -0
  172. package/dist/breadcrumb.context-C7VCfh49.js +0 -1501
  173. package/dist/breadcrumb.context-Td6Tjc_z.cjs +0 -7
  174. package/dist/floating-formulas-bg.cjs.js +0 -1
  175. package/dist/i18n-DN_2YzjB.cjs +0 -1
  176. package/dist/index.cjs.js +0 -1
  177. package/dist/router.cjs.js +0 -1
@@ -1,11 +1,35 @@
1
1
  import { VigUser } from '../models/user';
2
2
  import { default as React } from 'react';
3
+ /**
4
+ * Where the current user has got to.
5
+ *
6
+ * `user` alone could not say. It is initialised to `{} as VigUser`, so a
7
+ * consumer reading `user.name` gets `undefined` whether the request is in
8
+ * flight, the session expired, or the account genuinely has no name — three
9
+ * different screens, one indistinguishable value. Every consumer invented its
10
+ * own guess at which it was looking at; `BentoUserMenu` guessed "loading" from
11
+ * an absent username, and so rendered a skeleton for ever when the fetch failed.
12
+ */
13
+ export type VigUserStatus = "loading" | "ready" | "failed";
14
+ /**
15
+ * "loading" is the state before the first result, not "a request is in flight" —
16
+ * see `refreshUser`.
17
+ */
3
18
  interface UserContextValue {
4
19
  user: VigUser;
5
20
  refreshUser: () => void;
21
+ /** Which of the three states `user` is in. */
22
+ status: VigUserStatus;
23
+ /** What `fetchUser` rejected with, while `status` is "failed". */
24
+ error: unknown;
6
25
  }
7
26
  interface UserProviderProps {
8
27
  children: React.ReactNode;
28
+ /**
29
+ * Loads the current user. Rejecting puts the provider in `status: "failed"`
30
+ * with `error` set; the rejection is not rethrown, so a caller does not have
31
+ * to guard against it becoming an unhandled rejection.
32
+ */
9
33
  fetchUser: () => Promise<VigUser>;
10
34
  }
11
35
  export declare function UserProvider({ children, fetchUser }: UserProviderProps): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"user.context.d.ts","sourceRoot":"","sources":["../../src/contexts/user.context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,gBAAgB;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB;AAID,UAAU,iBAAiB;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAClC;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,qBActE;AAED,wBAAgB,cAAc,IAAI,gBAAgB,CAIjD"}
1
+ {"version":3,"file":"user.context.d.ts","sourceRoot":"","sources":["../../src/contexts/user.context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE1D;;;GAGG;AAEH,UAAU,gBAAgB;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,8CAA8C;IAC9C,MAAM,EAAE,aAAa,CAAA;IACrB,kEAAkE;IAClE,KAAK,EAAE,OAAO,CAAA;CACf;AAID,UAAU,iBAAiB;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;;OAIG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAClC;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,qBAkDtE;AAED,wBAAgB,cAAc,IAAI,gBAAgB,CAIjD"}
@@ -0,0 +1,404 @@
1
+ {
2
+ "name": "@viglet/viglet-design-system",
3
+ "version": "2026.3.3",
4
+ "generatedBy": "scripts/emit-exports.mjs",
5
+ "entries": {
6
+ ".": {
7
+ "specifier": "@viglet/viglet-design-system",
8
+ "values": [
9
+ "Accordion",
10
+ "AccordionContent",
11
+ "AccordionItem",
12
+ "AccordionTrigger",
13
+ "AppFooter",
14
+ "AppSwitcher",
15
+ "Avatar",
16
+ "AvatarFallback",
17
+ "AvatarImage",
18
+ "BackendStatusBanner",
19
+ "BackendStatusProvider",
20
+ "Badge",
21
+ "BadgeColorful",
22
+ "BadgeLocale",
23
+ "Breadcrumb",
24
+ "BreadcrumbEllipsis",
25
+ "BreadcrumbItem",
26
+ "BreadcrumbLink",
27
+ "BreadcrumbList",
28
+ "BreadcrumbPage",
29
+ "BreadcrumbProvider",
30
+ "BreadcrumbSeparator",
31
+ "Button",
32
+ "Card",
33
+ "CardAction",
34
+ "CardContent",
35
+ "CardDescription",
36
+ "CardFooter",
37
+ "CardHeader",
38
+ "CardTitle",
39
+ "Checkbox",
40
+ "Dialog",
41
+ "DialogClose",
42
+ "DialogContent",
43
+ "DialogDescription",
44
+ "DialogFooter",
45
+ "DialogHeader",
46
+ "DialogOverlay",
47
+ "DialogPortal",
48
+ "DialogTitle",
49
+ "DialogTrigger",
50
+ "Drawer",
51
+ "DrawerClose",
52
+ "DrawerContent",
53
+ "DrawerDescription",
54
+ "DrawerFooter",
55
+ "DrawerHeader",
56
+ "DrawerOverlay",
57
+ "DrawerPortal",
58
+ "DrawerTitle",
59
+ "DrawerTrigger",
60
+ "DropdownMenu",
61
+ "DropdownMenuCheckboxItem",
62
+ "DropdownMenuContent",
63
+ "DropdownMenuGroup",
64
+ "DropdownMenuItem",
65
+ "DropdownMenuLabel",
66
+ "DropdownMenuPortal",
67
+ "DropdownMenuRadioGroup",
68
+ "DropdownMenuRadioItem",
69
+ "DropdownMenuSeparator",
70
+ "DropdownMenuShortcut",
71
+ "DropdownMenuSub",
72
+ "DropdownMenuSubContent",
73
+ "DropdownMenuSubTrigger",
74
+ "DropdownMenuTrigger",
75
+ "ErrorBoundary",
76
+ "FloatingFormulasBg",
77
+ "Form",
78
+ "FormActions",
79
+ "FormControl",
80
+ "FormDescription",
81
+ "FormField",
82
+ "FormItem",
83
+ "FormItemTwoColumns",
84
+ "FormLabel",
85
+ "FormMessage",
86
+ "GlassCard",
87
+ "GradientButton",
88
+ "GradientSwitch",
89
+ "HoverCard",
90
+ "HoverCardContent",
91
+ "HoverCardTrigger",
92
+ "IconPickerDialog",
93
+ "Input",
94
+ "Label",
95
+ "LanguageSelect",
96
+ "LanguageSwitcher",
97
+ "Login",
98
+ "ModeToggle",
99
+ "ModeToggleSidebar",
100
+ "NavSecondary",
101
+ "NavigationMenu",
102
+ "NavigationMenuContent",
103
+ "NavigationMenuIndicator",
104
+ "NavigationMenuItem",
105
+ "NavigationMenuLink",
106
+ "NavigationMenuList",
107
+ "NavigationMenuTrigger",
108
+ "NavigationMenuViewport",
109
+ "Pagination",
110
+ "PaginationContent",
111
+ "PaginationEllipsis",
112
+ "PaginationItem",
113
+ "PaginationLink",
114
+ "PaginationNext",
115
+ "PaginationPrevious",
116
+ "Popover",
117
+ "PopoverAnchor",
118
+ "PopoverContent",
119
+ "PopoverTrigger",
120
+ "Progress",
121
+ "PulseRing",
122
+ "ResizableHandle",
123
+ "ResizablePanel",
124
+ "ResizablePanelGroup",
125
+ "SectionCard",
126
+ "Select",
127
+ "SelectContent",
128
+ "SelectGroup",
129
+ "SelectItem",
130
+ "SelectLabel",
131
+ "SelectScrollDownButton",
132
+ "SelectScrollUpButton",
133
+ "SelectSeparator",
134
+ "SelectTrigger",
135
+ "SelectValue",
136
+ "Separator",
137
+ "Sheet",
138
+ "SheetClose",
139
+ "SheetContent",
140
+ "SheetDescription",
141
+ "SheetFooter",
142
+ "SheetHeader",
143
+ "SheetTitle",
144
+ "SheetTrigger",
145
+ "Sidebar",
146
+ "SidebarContent",
147
+ "SidebarFooter",
148
+ "SidebarGroup",
149
+ "SidebarGroupAction",
150
+ "SidebarGroupContent",
151
+ "SidebarGroupLabel",
152
+ "SidebarHeader",
153
+ "SidebarInput",
154
+ "SidebarInset",
155
+ "SidebarMenu",
156
+ "SidebarMenuAction",
157
+ "SidebarMenuBadge",
158
+ "SidebarMenuButton",
159
+ "SidebarMenuItem",
160
+ "SidebarMenuSkeleton",
161
+ "SidebarMenuSub",
162
+ "SidebarMenuSubButton",
163
+ "SidebarMenuSubItem",
164
+ "SidebarProvider",
165
+ "SidebarRail",
166
+ "SidebarSeparator",
167
+ "SidebarTrigger",
168
+ "Skeleton",
169
+ "Slider",
170
+ "StartupFirst",
171
+ "Stepper",
172
+ "StickySaveBar",
173
+ "Switch",
174
+ "Table",
175
+ "TableBody",
176
+ "TableCaption",
177
+ "TableCell",
178
+ "TableFooter",
179
+ "TableHead",
180
+ "TableHeader",
181
+ "TableRow",
182
+ "Tabs",
183
+ "TabsContent",
184
+ "TabsList",
185
+ "TabsTrigger",
186
+ "Textarea",
187
+ "ThemeProvider",
188
+ "Toaster",
189
+ "Toggle",
190
+ "ToggleGroup",
191
+ "ToggleGroupItem",
192
+ "Tooltip",
193
+ "TooltipContent",
194
+ "TooltipProvider",
195
+ "TooltipTrigger",
196
+ "UserAvatar",
197
+ "UserMenu",
198
+ "UserProvider",
199
+ "VigletAppSwitcher",
200
+ "badgeVariants",
201
+ "buttonVariants",
202
+ "cn",
203
+ "exportToXlsx",
204
+ "getFlagEmoji",
205
+ "getHashedColor",
206
+ "getLocaleCountryCode",
207
+ "getUserInitials",
208
+ "gradientButtonVariants",
209
+ "initVigI18n",
210
+ "navigationMenuTriggerStyle",
211
+ "registerVigTranslations",
212
+ "reportBackendOffline",
213
+ "reportBackendOnline",
214
+ "setupAxiosInterceptors",
215
+ "toast",
216
+ "toggleVariants",
217
+ "truncateMiddle",
218
+ "useBackendStatus",
219
+ "useBreadcrumb",
220
+ "useBreadcrumbOptional",
221
+ "useCurrentUser",
222
+ "useDateLocale",
223
+ "useFormField",
224
+ "useGridAdapter",
225
+ "useIsMobile",
226
+ "useSidebar",
227
+ "useSubPageBreadcrumb",
228
+ "useTheme",
229
+ "vigDesignSystemTranslations"
230
+ ],
231
+ "types": [
232
+ "AppSwitcherItem",
233
+ "AppSwitcherProps",
234
+ "FloatingFormulasBgProps",
235
+ "GlassCardProps",
236
+ "IconPickerDialogProps",
237
+ "LanguageOption",
238
+ "LanguageSwitcherProps",
239
+ "LoginFeaturePillProps",
240
+ "LoginRootProps",
241
+ "PulseRingProps",
242
+ "StartupFirstHintProps",
243
+ "StartupFirstRootProps",
244
+ "StartupFirstStepsProps",
245
+ "StickySaveBarProps",
246
+ "StickySaveBarVariant",
247
+ "UserAvatarProps",
248
+ "UserMenuProps",
249
+ "UserMenuUser",
250
+ "VigBreadcrumbItem",
251
+ "VigGridItem",
252
+ "VigLocale",
253
+ "VigUser",
254
+ "VigletAppSwitcherProps",
255
+ "VigletAppSwitcherUrls",
256
+ "VigletProduct"
257
+ ]
258
+ },
259
+ "./bento": {
260
+ "specifier": "@viglet/viglet-design-system/bento",
261
+ "values": [
262
+ "AdaptiveSectionCard",
263
+ "BENTO_EMPHASIS_NEXT",
264
+ "BENTO_EMPHASIS_SPAN",
265
+ "BENTO_TONES",
266
+ "BENTO_TONE_CLASS",
267
+ "BentoActionsMenu",
268
+ "BentoBackLink",
269
+ "BentoBackToTop",
270
+ "BentoCommandPalette",
271
+ "BentoCountTile",
272
+ "BentoEmptyState",
273
+ "BentoEntityShell",
274
+ "BentoEntityTile",
275
+ "BentoFormHero",
276
+ "BentoFormSection",
277
+ "BentoHero",
278
+ "BentoHeroIconPicker",
279
+ "BentoInlineEdit",
280
+ "BentoListPage",
281
+ "BentoNavRail",
282
+ "BentoSaveBar",
283
+ "BentoScrollSaveBar",
284
+ "BentoSection",
285
+ "BentoShortcutsDialog",
286
+ "BentoStatusMarker",
287
+ "BentoTile",
288
+ "BentoTileGrid",
289
+ "BentoUserMenu",
290
+ "SectionCardChromeProvider",
291
+ "bentoChipClass",
292
+ "bentoNavTarget",
293
+ "resolveBentoLayout",
294
+ "toBentoLayoutEntries",
295
+ "useBentoScrollFade",
296
+ "useSectionChrome"
297
+ ],
298
+ "types": [
299
+ "AdaptiveSectionCardProps",
300
+ "BentoActionTone",
301
+ "BentoActionsMenuItem",
302
+ "BentoActionsMenuProps",
303
+ "BentoCommandPaletteProps",
304
+ "BentoCountTileProps",
305
+ "BentoEmphasis",
306
+ "BentoEmptyStateProps",
307
+ "BentoEntityShellProps",
308
+ "BentoEntityShellRenderArgs",
309
+ "BentoEntityTileProps",
310
+ "BentoFormHeroProps",
311
+ "BentoFormSectionProps",
312
+ "BentoHeroIconPickerProps",
313
+ "BentoHeroProps",
314
+ "BentoIdentity",
315
+ "BentoInlineEditProps",
316
+ "BentoLayoutEntry",
317
+ "BentoLayoutResponse",
318
+ "BentoLayoutSource",
319
+ "BentoListLayout",
320
+ "BentoListPageProps",
321
+ "BentoNavGroup",
322
+ "BentoNavItem",
323
+ "BentoNavRailProps",
324
+ "BentoNavSection",
325
+ "BentoNavSectionId",
326
+ "BentoSaveBarProps",
327
+ "BentoSectionProps",
328
+ "BentoShellFormState",
329
+ "BentoShortcutsDialogProps",
330
+ "BentoStatusMarkerProps",
331
+ "BentoTileGridProps",
332
+ "BentoTileProps",
333
+ "BentoTone",
334
+ "BentoUserMenuProps",
335
+ "ResolvedBentoItem",
336
+ "SectionChrome"
337
+ ]
338
+ },
339
+ "./assets": {
340
+ "specifier": "@viglet/viglet-design-system/assets",
341
+ "values": [
342
+ "dumontLogoUrl",
343
+ "productLogos",
344
+ "shioLogoUrl",
345
+ "turingLogoUrl",
346
+ "vigletLogoUrl"
347
+ ],
348
+ "types": [
349
+ "ProductId"
350
+ ]
351
+ },
352
+ "./i18n": {
353
+ "specifier": "@viglet/viglet-design-system/i18n",
354
+ "values": [
355
+ "i18n",
356
+ "initVigI18n",
357
+ "registerVigTranslations",
358
+ "vigDesignSystemTranslations"
359
+ ],
360
+ "types": []
361
+ },
362
+ "./router": {
363
+ "specifier": "@viglet/viglet-design-system/router",
364
+ "values": [
365
+ "BlankSlate",
366
+ "DialogDelete",
367
+ "GradientButtonLink",
368
+ "GridList",
369
+ "InternalSidebar",
370
+ "LoadProvider",
371
+ "NavMain",
372
+ "NavUser",
373
+ "Page",
374
+ "PageContent",
375
+ "PageHeader",
376
+ "StickyPageHeader",
377
+ "SubPage",
378
+ "SubPageHeader"
379
+ ],
380
+ "types": [
381
+ "VigBlockedByItem",
382
+ "VigGridItemActionProps"
383
+ ]
384
+ },
385
+ "./floating-formulas-bg": {
386
+ "specifier": "@viglet/viglet-design-system/floating-formulas-bg",
387
+ "values": [
388
+ "FloatingFormulasBg"
389
+ ],
390
+ "types": [
391
+ "FloatingFormulasBgProps"
392
+ ]
393
+ },
394
+ "./vite": {
395
+ "specifier": "@viglet/viglet-design-system/vite",
396
+ "values": [
397
+ "vigletBootLoader"
398
+ ],
399
+ "types": [
400
+ "VigletBootLoaderOptions"
401
+ ]
402
+ }
403
+ }
404
+ }
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react"),t=require("react/jsx-runtime");var n=[[480,.25],[640,.35],[768,.5],[1024,.7]];function r(){let e=window.innerWidth;for(let[t,r]of n)if(e<t)return r;return 1}function i(e){return window.addEventListener(`resize`,e,{passive:!0}),()=>window.removeEventListener(`resize`,e)}function a(){return(0,e.useSyncExternalStore)(i,r,()=>1)}var o=`H₂O.CO₂.NaCl.C₆H₁₂O₆.O₂.NH₃.CH₄.H₂SO₄.Fe₂O₃.CaCO₃.C₂H₅OH.HCl.NaOH.KMnO₄.N₂.SiO₂.Al₂O₃.MgO.ZnSO₄.Cu.H₂O₂.SO₃.PbO₂.BaSO₄.AgNO₃.K₂Cr₂O₇.Na₂CO₃.Mg(OH)₂.FeCl₃.CuSO₄.Ca(OH)₂.HNO₃.P₄O₁₀.Cl₂.Br₂`.split(`.`),s=[`ff-drift-a`,`ff-drift-b`,`ff-drift-c`,`ff-drift-d`,`ff-drift-e`],c=[{top:`8%`,left:`6%`,size:80,duration:18,delay:-2,drift:`ff-drift-b`,opacity:.3,path:`M10,40 L40,20 L70,40 M40,20 L40,5 M40,20 L25,8 M40,20 L55,8`},{top:`22%`,left:`75%`,size:100,duration:22,delay:-5,drift:`ff-drift-a`,opacity:.25,path:`M20,50 L50,30 L80,50 M50,30 L50,10 M20,50 L20,70 M80,50 L80,70 M50,30 L35,15 M50,30 L65,15`},{top:`60%`,left:`85%`,size:70,duration:16,delay:-1,drift:`ff-drift-b`,opacity:.28,path:`M15,35 L35,15 L55,35 L35,55 Z M35,15 L35,5 M55,35 L65,35`},{top:`70%`,left:`12%`,size:90,duration:20,delay:-4,drift:`ff-drift-a`,opacity:.25,path:`M10,45 L45,25 L80,45 M45,25 L45,5 M10,45 L10,65 M80,45 L80,65`},{top:`5%`,left:`42%`,size:60,duration:15,delay:-3,drift:`ff-drift-c`,opacity:.22,path:`M10,30 L30,10 L50,30 M30,10 L30,0 M10,30 L0,40 M50,30 L60,40`},{top:`45%`,left:`3%`,size:75,duration:19,delay:-6,drift:`ff-drift-a`,opacity:.25,path:`M20,40 L40,20 L60,40 M40,20 L40,5 M20,40 L5,50 M60,40 L75,50 M40,5 L30,0 M40,5 L50,0`},{top:`78%`,left:`52%`,size:85,duration:21,delay:-2,drift:`ff-drift-b`,opacity:.22,path:`M15,45 L42,20 L70,45 M42,20 L42,5 M15,45 L30,60 M70,45 L55,60`},{top:`32%`,left:`92%`,size:65,duration:17,delay:-5,drift:`ff-drift-a`,opacity:.25,path:`M10,35 L32,15 L55,35 M32,15 L32,3 M10,35 L10,50`},{top:`15%`,left:`28%`,size:70,duration:19,delay:-1,drift:`ff-drift-c`,opacity:.25,path:`M10,35 L35,10 L60,35 M35,10 L35,0 M10,35 L0,50 M60,35 L70,50`},{top:`50%`,left:`35%`,size:65,duration:16,delay:-7,drift:`ff-drift-b`,opacity:.2,path:`M10,30 L30,10 L50,30 L30,50 Z M30,10 L30,0`},{top:`40%`,left:`60%`,size:80,duration:20,delay:-3,drift:`ff-drift-a`,opacity:.22,path:`M15,40 L40,15 L65,40 M40,15 L40,3 M15,40 L5,55 M65,40 L75,55 M40,15 L28,5 M40,15 L52,5`},{top:`85%`,left:`78%`,size:60,duration:15,delay:-6,drift:`ff-drift-b`,opacity:.22,path:`M10,30 L30,10 L50,30 M30,10 L30,0 M10,30 L0,40 M50,30 L60,40`}];function l(e){let t=e;return()=>(t=(t*16807+0)%2147483647,(t-1)/2147483646)}function u(e){let t=new Set;for(let n of e)for(let e of n.split(/[\s_-]+/)){let n=e.trim();n.length>0&&t.add(n)}return Array.from(t)}function d(e){if(!e)return null;let t=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(e.trim());if(t){let[,e,n,r]=t;return`${Number.parseInt(e+e,16)}, ${Number.parseInt(n+n,16)}, ${Number.parseInt(r+r,16)}`}let n=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(e.trim());if(n){let[,e,t,r]=n;return`${Number.parseInt(e,16)}, ${Number.parseInt(t,16)}, ${Number.parseInt(r,16)}`}return null}function f(e){return e<.4?1:e<.8?2:3}function p(e){let t=2166136261;for(let n of e)for(let e=0;e<n.length;e+=1)t^=n.charCodeAt(e),t=Math.imul(t,16777619);return Math.abs(t)%2147483646+1}function m(e,t){let n=[...e];for(let e=n.length-1;e>0;--e){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}function h(e,t,n){let r=l(n);return m(e,r).slice(0,t).map(e=>({text:e,top:`${r()*85+2}%`,left:`${r()*88+2}%`,size:.8+r()*1.2,duration:10+r()*20,delay:-(r()*20),drift:s[Math.floor(r()*s.length)],opacity:.2+r()*.35}))}function g({itemCount:n=35,extraTokens:r,seed:i,color:s,colorDark:l,withFormulas:m=!0,withBonds:g=!0,withOrbs:_=!0,withLightning:v=!1,withExplosion:y=!1,withGrid:b=!0,motionPaused:x=!1,className:S}){let C=a(),w=Math.max(4,Math.round(n*C)),T=(0,e.useMemo)(()=>c.slice(0,Math.max(2,Math.round(c.length*C))),[C]),E=f(C),D=(0,e.useMemo)(()=>{let e=[...o,...r?u(r):[]];return h(e,w,i??p(e))},[w,r,i]),O={};s&&(O[`--ff-color`]=s),l?O[`--ff-color-dark`]=l:s&&(O[`--ff-color-dark`]=s);let k=d(s);k&&(O[`--ff-color-rgb`]=k);let A=d(l)??k;return A&&(O[`--ff-color-dark-rgb`]=A),(0,t.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none overflow-hidden ${x?`ff-paused`:``} ${S??``}`,style:O,"aria-hidden":`true`,children:[v&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--a1`}),(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--a2`}),(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--a3`}),(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--b1`}),(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--b2`}),(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--c1`}),(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--c2`}),(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--c3`}),y&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`div`,{className:`ff-lightning ff-lightning--nuke`}),(0,t.jsx)(`div`,{className:`ff-lightning--flood`})]})]}),_&&(0,t.jsxs)(t.Fragment,{children:[E>=1&&(0,t.jsx)(`div`,{className:`ff-orb ff-orb--1`}),E>=2&&(0,t.jsx)(`div`,{className:`ff-orb ff-orb--2`}),E>=3&&(0,t.jsx)(`div`,{className:`ff-orb ff-orb--3`})]}),b&&(0,t.jsx)(`div`,{className:`ff-grid`}),g&&T.map(e=>(0,t.jsxs)(`svg`,{className:`ff-bond ${e.drift}`,width:e.size,height:e.size,viewBox:`0 0 ${e.size} ${e.size}`,style:{top:e.top,left:e.left,animationDuration:`${e.duration}s`,animationDelay:`${e.delay}s`,opacity:e.opacity},children:[(0,t.jsx)(`path`,{d:e.path,fill:`none`,className:`ff-bond-line`,strokeWidth:`1.5`,strokeLinecap:`round`}),Array.from(e.path.matchAll(/[ML]\s*(\d+),(\d+)/g)).map((e,n)=>(0,t.jsx)(`circle`,{cx:e[1],cy:e[2],r:`2.5`,className:`ff-bond-node`},`node-${n}`))]},`bond-${e.top}-${e.left}`)),m&&D.map(e=>(0,t.jsx)(`span`,{className:`ff-term ${e.drift}`,style:{top:e.top,left:e.left,fontSize:`${e.size}rem`,animationDuration:`${e.duration}s`,animationDelay:`${e.delay}s`,opacity:e.opacity},children:e.text},`f-${e.text}-${e.top}-${e.left}`))]})}exports.FloatingFormulasBg=g;
@@ -99,6 +99,27 @@
99
99
  animation-play-state: paused !important;
100
100
  }
101
101
 
102
+ /* The same freeze, asked for by the reader rather than by the host. The backdrop
103
+ is decorative and drifts continuously, which is the shape of motion that costs
104
+ most: the static layers stay, the movement stops, and the lightning — a
105
+ repeated flash — is removed outright rather than merely paused mid-frame. The
106
+ rule is asserted in src/styles/reduced-motion.test.ts. */
107
+ @media (prefers-reduced-motion: reduce) {
108
+ .ff-term,
109
+ .ff-bond,
110
+ .ff-orb {
111
+ animation: none !important;
112
+ transition: none !important;
113
+ }
114
+
115
+ .ff-lightning,
116
+ .ff-lightning--nuke,
117
+ .ff-lightning--flood {
118
+ animation: none !important;
119
+ opacity: 0 !important;
120
+ }
121
+ }
122
+
102
123
  @keyframes ff-drift-a {
103
124
  0% { transform: translate(0, 0) scale(1) rotate(0deg); }
104
125
  20% { transform: translate(80px, -60px) scale(1.15) rotate(5deg); }