@create-flow/common-ui 0.3.7 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,18 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ComponentType } from 'react';
2
+ import React$1, { ComponentType } from 'react';
3
+ import { AuthUser, IAMConsoleProps } from '@create-flow/auth-ui';
4
+ export { AuthUser, UserType } from '@create-flow/auth-ui';
5
+ export { L as LOCALE_AFFINITY, b as buildFallbackChain, e as extractLocaleFromRequest, i as interpolate, n as normalizeLocale } from './i18n-utils-CgB_5LxG.js';
3
6
 
4
7
  declare function Hello(): react_jsx_runtime.JSX.Element;
5
8
 
6
- type UserType = "guest" | "regular";
7
- interface AuthUser {
8
- id: string;
9
- name?: string | null;
10
- email?: string | null;
11
- image?: string | null;
12
- type: UserType;
13
- appId: string;
14
- isGuest: boolean;
15
- }
16
9
  interface NavItem {
17
10
  href: string;
18
11
  label: string;
@@ -25,13 +18,1427 @@ interface SidebarProps {
25
18
  user?: AuthUser;
26
19
  appId?: string;
27
20
  authHost?: string;
21
+ authToken?: string;
28
22
  navItems?: NavItem[];
29
23
  title?: string;
30
24
  logoutRedirectTo?: string;
31
25
  profileHref?: string;
32
26
  settingsHref?: string;
27
+ siteSettingsHref?: string;
33
28
  onLogout?: () => void;
29
+ /** Custom link component for client-side navigation (e.g. Next.js Link). Defaults to "a". */
30
+ linkComponent?: React.ElementType;
31
+ /** Current pathname for active-link highlighting. When provided, overrides internal detection. */
32
+ currentPathname?: string;
33
+ /** Optional element rendered above the UserMenu at the bottom of the sidebar. */
34
+ bottomSlot?: React.ReactNode;
35
+ /** When true, sidebar starts collapsed and expands on hover, collapses on mouse leave. */
36
+ autoCollapse?: boolean;
37
+ /** URL for the app favicon/logo. Shown in a circular border at the top when sidebar is collapsed. */
38
+ faviconUrl?: string;
39
+ }
40
+ declare function Sidebar({ user, appId, authHost, authToken, navItems, title, logoutRedirectTo, profileHref, settingsHref, siteSettingsHref, onLogout, linkComponent: LinkComponent, currentPathname, bottomSlot, autoCollapse, faviconUrl, }: SidebarProps): react_jsx_runtime.JSX.Element;
41
+
42
+ declare enum AppTheme {
43
+ Light = "light",
44
+ Dark = "dark",
45
+ Flat = "flat",
46
+ Dusk = "dusk",
47
+ Ember = "ember",
48
+ Retro = "retro",
49
+ Minimal = "minimal"
50
+ }
51
+ declare enum VisibilityLevel {
52
+ Visible = "visible",
53
+ ViewOnly = "viewOnly",
54
+ Invisible = "invisible"
55
+ }
56
+ interface ModuleRoleSetting {
57
+ visibilityLevel: string;
58
+ isEnabled: boolean;
59
+ }
60
+ interface ModuleRoleConfig {
61
+ moduleName: string;
62
+ roles: Record<string, ModuleRoleSetting>;
63
+ }
64
+ interface ModuleOption {
65
+ name: string;
66
+ enabled: boolean;
67
+ isTrial: boolean;
68
+ trialEndsAt: number | null;
69
+ plan: string;
70
+ }
71
+ interface RoleInfo {
72
+ id: string;
73
+ name: string;
74
+ }
75
+ declare enum FilePermission {
76
+ Manage = "manage",
77
+ Read = "read",
78
+ None = "none"
79
+ }
80
+ interface FileUploadSettings {
81
+ enabled: boolean;
82
+ maxFileSizeBytes: number;
83
+ userUploadQuotaMb: number;
84
+ everyonePermission: FilePermission;
85
+ rolePermissions: Record<string, FilePermission>;
86
+ groupPermissions: Record<string, FilePermission>;
87
+ }
88
+ declare const defaultFileUploadSettings: FileUploadSettings;
89
+ interface AppSettings {
90
+ supportedLocales: string[];
91
+ defaultTheme: string;
92
+ moduleRoles: ModuleRoleConfig[];
93
+ fileUpload?: FileUploadSettings;
94
+ }
95
+ interface SiteSettingsProps {
96
+ appId: string;
97
+ host?: string;
98
+ authHost?: string;
99
+ authToken?: string;
100
+ onSessionExpired?: () => void;
101
+ onThemeChange?: (theme: string) => void;
102
+ /** Override display labels for specific modules (module name → label string). */
103
+ moduleLabels?: Record<string, string>;
104
+ }
105
+ declare function SiteSettings({ appId, host, authHost, authToken: authTokenProp, onSessionExpired, onThemeChange, moduleLabels, }: SiteSettingsProps): react_jsx_runtime.JSX.Element | null;
106
+
107
+ interface ApiKeyTierManagerProps {
108
+ appId: string;
109
+ host?: string;
110
+ authToken?: string;
111
+ onSessionExpired?: () => void;
112
+ }
113
+ declare function ApiKeyTierManager({ appId, host: hostProp, authToken, onSessionExpired }: ApiKeyTierManagerProps): react_jsx_runtime.JSX.Element;
114
+
115
+ interface ApiKeyDashboardProps {
116
+ appId: string;
117
+ host?: string;
118
+ authToken?: string;
119
+ isAdmin?: boolean;
120
+ onSessionExpired?: () => void;
121
+ }
122
+ declare function ApiKeyDashboard({ appId, host: hostProp, authToken, isAdmin, onSessionExpired }: ApiKeyDashboardProps): react_jsx_runtime.JSX.Element;
123
+
124
+ interface ApiKeyManagerProps {
125
+ appId: string;
126
+ host?: string;
127
+ authToken?: string;
128
+ onSessionExpired?: () => void;
129
+ }
130
+ declare function ApiKeyManager({ appId, host: hostProp, authToken, onSessionExpired }: ApiKeyManagerProps): react_jsx_runtime.JSX.Element;
131
+
132
+ interface ApiKeyUsageProps {
133
+ appId: string;
134
+ host?: string;
135
+ authToken?: string;
136
+ onSessionExpired?: () => void;
137
+ }
138
+ declare function ApiKeyUsage({ appId, host: hostProp, authToken, onSessionExpired }: ApiKeyUsageProps): react_jsx_runtime.JSX.Element;
139
+
140
+ declare enum FileUploadVariant {
141
+ Dropzone = "dropzone",
142
+ Compact = "compact",
143
+ Inline = "inline"
144
+ }
145
+ interface UploadedFile {
146
+ id: string;
147
+ fileName: string;
148
+ mimeType: string;
149
+ sizeBytes: number;
150
+ moduleName: string;
151
+ featureName: string;
152
+ createdAt: string;
153
+ }
154
+ interface FileUploadProps {
155
+ /** Required: the app this upload belongs to */
156
+ appId: string;
157
+ /** Module name for quota resolution (e.g. "inventory") */
158
+ moduleName?: string;
159
+ /** Feature name for quota resolution (e.g. "product-image") */
160
+ featureName?: string;
161
+ /** Override the backend host URL */
162
+ host?: string;
163
+ /** Bearer token for API auth (alternative to cookie-based auth) */
164
+ authToken?: string;
165
+ /** Visual style of the uploader */
166
+ variant?: FileUploadVariant;
167
+ /** Custom label text for the upload area */
168
+ label?: string;
169
+ /** Custom description/helper text */
170
+ description?: string;
171
+ /** Whether to show the list of uploaded files below the uploader */
172
+ showFileList?: boolean;
173
+ /** Whether the component is disabled */
174
+ disabled?: boolean;
175
+ /** Custom class name for the root element */
176
+ className?: string;
177
+ /** Called after a file is successfully uploaded */
178
+ onUpload?: (file: UploadedFile) => void;
179
+ /** Called when multiple files are uploaded (batch) */
180
+ onUploadComplete?: (files: UploadedFile[]) => void;
181
+ /** Called when a file is removed from the uploaded list */
182
+ onRemove?: (fileId: string) => void;
183
+ /** Called when a validation or upload error occurs */
184
+ onError?: (error: string) => void;
185
+ /** Called when files are selected (before upload) */
186
+ onFilesSelected?: (files: File[]) => void;
187
+ }
188
+ declare function FileUpload({ appId, moduleName, featureName, host: hostProp, authToken, variant, label, description, showFileList, disabled, className, onUpload, onUploadComplete, onRemove, onError, onFilesSelected, }: FileUploadProps): react_jsx_runtime.JSX.Element;
189
+
190
+ interface InventoryRoleCapabilities {
191
+ viewDashboard: boolean;
192
+ filterDashboard: boolean;
193
+ viewTransactions: boolean;
194
+ createTransactions: boolean;
195
+ editTransactions: boolean;
196
+ consumptionOnly: boolean;
197
+ viewAudit: boolean;
198
+ manageMasterData: boolean;
199
+ runImports: boolean;
200
+ manageLotStatus: boolean;
201
+ performLotOperations: boolean;
202
+ manageLotQuality: boolean;
203
+ }
204
+
205
+ interface InventorySubcategoriesProps {
206
+ appId: string;
207
+ authHost?: string;
208
+ authToken?: string;
209
+ capabilities?: Partial<InventoryRoleCapabilities>;
210
+ /** When provided, only shows subcategories for this category and locks the category in the create form. */
211
+ categoryId?: string;
212
+ }
213
+ declare function InventorySubcategories({ appId, authHost, authToken, capabilities, categoryId: lockedCategoryId, }: InventorySubcategoriesProps): react_jsx_runtime.JSX.Element;
214
+
215
+ interface InventoryItemsProps {
216
+ appId: string;
217
+ authHost?: string;
218
+ authToken?: string;
219
+ capabilities?: Partial<InventoryRoleCapabilities>;
220
+ /** When set, only shows items belonging to subcategories under this material group */
221
+ categoryId?: string;
222
+ initialSubcategory?: string;
223
+ initialShowStale?: boolean;
224
+ onStateChange?: (state: Record<string, string | number | boolean | null>) => void;
225
+ uomMode?: string;
226
+ defaultUomId?: string | null;
227
+ }
228
+ declare function InventoryItems({ appId, authHost, authToken, capabilities, categoryId, initialSubcategory, initialShowStale, onStateChange, uomMode, defaultUomId, }: InventoryItemsProps): react_jsx_runtime.JSX.Element;
229
+
230
+ interface InventoryLotsProps {
231
+ appId: string;
232
+ authHost?: string;
233
+ authToken?: string;
234
+ capabilities?: Partial<InventoryRoleCapabilities>;
235
+ initialItem?: string;
236
+ onStateChange?: (state: Record<string, string | null>) => void;
237
+ onViewDetail?: (lotId: string) => void;
238
+ }
239
+ declare function InventoryLots({ appId, authHost, authToken, capabilities, initialItem, onStateChange, onViewDetail, }: InventoryLotsProps): react_jsx_runtime.JSX.Element;
240
+
241
+ interface InventoryPricesProps {
242
+ appId: string;
243
+ authHost?: string;
244
+ authToken?: string;
245
+ capabilities?: Partial<InventoryRoleCapabilities>;
246
+ currency?: string;
247
+ pageSize?: number;
248
+ initialItemId?: string;
249
+ initialPage?: number;
250
+ onStateChange?: (state: Record<string, string | number | null>) => void;
251
+ }
252
+ declare function InventoryPrices({ appId, authHost, authToken, capabilities, currency: defaultCurrency, pageSize, initialItemId, initialPage, onStateChange, }: InventoryPricesProps): react_jsx_runtime.JSX.Element;
253
+
254
+ interface InventoryEntryProps {
255
+ appId: string;
256
+ authHost?: string;
257
+ authToken?: string;
258
+ capabilities?: Partial<InventoryRoleCapabilities>;
259
+ currency?: string;
260
+ warehousesEnabled?: boolean;
261
+ categoryId?: string;
262
+ initialSearch?: string;
263
+ initialSubcategory?: string;
264
+ initialStartDate?: string;
265
+ initialEndDate?: string;
266
+ initialSortBy?: string;
267
+ initialSortOrder?: "asc" | "desc";
268
+ initialPage?: number;
269
+ initialPageSize?: number;
270
+ onStateChange?: (state: Record<string, string | number | null>) => void;
271
+ hideCategoryColumn?: boolean;
272
+ }
273
+ declare function InventoryEntry({ appId, authHost, authToken, capabilities, currency: defaultCurrency, warehousesEnabled, categoryId, initialSearch, initialSubcategory, initialStartDate, initialEndDate, initialSortBy, initialSortOrder, initialPage, initialPageSize, onStateChange, hideCategoryColumn, }: InventoryEntryProps): react_jsx_runtime.JSX.Element;
274
+
275
+ type InventoryChartType = "categoryTrend" | "itemComposition" | "itemTrend" | "priceTrend";
276
+ interface InventoryChartProps {
277
+ appId: string;
278
+ authHost?: string;
279
+ authToken?: string;
280
+ type: InventoryChartType;
281
+ category: string;
282
+ startMonth?: string;
283
+ endMonth?: string;
284
+ subcategory?: string;
285
+ item?: string;
286
+ basisMonth?: string;
287
+ subcategoryId?: string;
288
+ subcategoryIds?: string[];
289
+ height?: number;
290
+ title?: string;
291
+ colorMap?: Record<string, string>;
292
+ /** Per-subcategory color palettes for composition donut charts */
293
+ subcategoryColorMap?: Record<string, string[]>;
294
+ /** Controls the display order of subcategory donuts in composition charts */
295
+ subcategoryOrder?: string[];
296
+ showControls?: boolean;
297
+ onStartMonthChange?: (v: string) => void;
298
+ onEndMonthChange?: (v: string) => void;
299
+ onSubcategoryChange?: (v: string) => void;
300
+ capabilities?: Partial<InventoryRoleCapabilities>;
301
+ currency?: string;
302
+ hideKpis?: boolean;
303
+ }
304
+ declare function InventoryChart({ appId, authHost, authToken, type, category, startMonth: startMonthProp, endMonth: endMonthProp, subcategory, item, basisMonth, subcategoryId, subcategoryIds, height, title, colorMap, subcategoryColorMap, subcategoryOrder, showControls, onStartMonthChange, onEndMonthChange, onSubcategoryChange, capabilities, currency: defaultCurrency, hideKpis, }: InventoryChartProps): react_jsx_runtime.JSX.Element | null;
305
+
306
+ interface InventoryKpisProps {
307
+ appId: string;
308
+ authHost?: string;
309
+ authToken?: string;
310
+ capabilities?: Partial<InventoryRoleCapabilities>;
311
+ currency?: string;
312
+ subcategoryId?: string;
313
+ subcategoryIds?: string[];
314
+ title?: string;
315
+ columns?: number;
316
+ }
317
+ declare function InventoryKpis({ appId, authHost, authToken, capabilities, currency: defaultCurrency, subcategoryId, subcategoryIds, title, columns, }: InventoryKpisProps): react_jsx_runtime.JSX.Element | null;
318
+
319
+ /**
320
+ * Per-app inventory field label customization.
321
+ * Apps fetch their labels from the database via GET /inventory/field-labels,
322
+ * then use generateFieldLabelOverrides() to produce i18n key overrides.
323
+ */
324
+ interface InventoryFieldLabels {
325
+ categoryLabel: string;
326
+ subcategoryLabel: string;
327
+ itemNameLabel: string;
328
+ itemSkuLabel: string;
329
+ inboundLabel: string;
330
+ outboundLabel: string;
331
+ onHandLabel: string;
332
+ lotLabel: string;
333
+ receiptTypeLabel: string;
334
+ issueTypeLabel: string;
335
+ quantityLabel: string;
336
+ unitPriceLabel: string;
337
+ purchaseOrderLabel: string;
338
+ entryDateLabel: string;
339
+ transactionTypeLabel: string;
340
+ quantityUnit: string;
341
+ priceUnit: string;
342
+ currency: string;
343
+ uomMode: string;
344
+ defaultUomId?: string | null;
345
+ }
346
+ declare const DEFAULT_FIELD_LABELS: InventoryFieldLabels;
347
+ /**
348
+ * Converts a camelCase or snake_case field name to human-readable words.
349
+ * e.g., "inboundQuantity" → "Inbound Quantity", "entry_date" → "Entry Date"
350
+ */
351
+ declare function humanizeFieldName(field: string): string;
352
+ /**
353
+ * Maps internal field names (as stored in audit snapshots) to human-readable labels.
354
+ * Uses field labels from DB when available, falls back to humanizeFieldName.
355
+ */
356
+ declare function generateFieldNameLabels(labels?: InventoryFieldLabels | null): Record<string, string>;
357
+ /**
358
+ * Generates i18n key overrides from field labels.
359
+ * Returns an empty object if all labels match defaults (lets client locale files handle it).
360
+ * Pass the result to I18nProvider's translationOverrides prop to customize
361
+ * all inventory component labels at once.
362
+ */
363
+ declare function generateFieldLabelOverrides(labels: Partial<InventoryFieldLabels>): Record<string, string>;
364
+
365
+ interface InventoryAuditLogProps {
366
+ appId: string;
367
+ authHost?: string;
368
+ authToken?: string;
369
+ capabilities?: Partial<InventoryRoleCapabilities>;
370
+ entityType?: string;
371
+ entityId?: string;
372
+ embedded?: boolean;
373
+ initialEntityType?: string;
374
+ initialAction?: string;
375
+ initialStartDate?: string;
376
+ initialEndDate?: string;
377
+ initialPage?: number;
378
+ initialPageSize?: number;
379
+ onStateChange?: (state: Record<string, string | number | null>) => void;
380
+ /** Map of user UUID → display name. When provided, shows names instead of UUIDs. */
381
+ userNames?: Record<string, string>;
382
+ /** Field labels for humanizing audit diff field names. */
383
+ fieldLabels?: InventoryFieldLabels | null;
384
+ }
385
+ declare function InventoryAuditLog({ appId, authHost, authToken, capabilities, entityType: fixedEntityType, entityId: fixedEntityId, embedded, initialEntityType, initialAction, initialStartDate, initialEndDate, initialPage, initialPageSize, onStateChange, userNames, fieldLabels, }: InventoryAuditLogProps): react_jsx_runtime.JSX.Element | null;
386
+
387
+ interface InventoryStockSummaryProps {
388
+ appId: string;
389
+ authHost?: string;
390
+ authToken?: string;
391
+ capabilities?: Partial<InventoryRoleCapabilities>;
392
+ warehousesEnabled?: boolean;
393
+ onItemClick?: (itemId: string, itemLabel: string) => void;
394
+ categoryId?: string;
395
+ pageSize?: number;
396
+ initialSearch?: string;
397
+ initialPage?: number;
398
+ onStateChange?: (state: Record<string, string | number | null>) => void;
399
+ hideCategoryColumn?: boolean;
400
+ }
401
+ declare function InventoryStockSummary({ appId, authHost, authToken, capabilities, warehousesEnabled, onItemClick, categoryId, pageSize, initialSearch, initialPage, onStateChange, hideCategoryColumn, }: InventoryStockSummaryProps): react_jsx_runtime.JSX.Element | null;
402
+
403
+ interface InventoryStockCountProps {
404
+ appId: string;
405
+ authHost?: string;
406
+ authToken?: string;
407
+ capabilities?: Partial<InventoryRoleCapabilities>;
408
+ }
409
+ declare function InventoryStockCount({ appId, authHost, authToken, capabilities, }: InventoryStockCountProps): react_jsx_runtime.JSX.Element | null;
410
+
411
+ interface InventoryItemDetailProps {
412
+ appId: string;
413
+ authHost?: string;
414
+ authToken?: string;
415
+ capabilities?: Partial<InventoryRoleCapabilities>;
416
+ itemId: string;
417
+ itemLabel?: string;
418
+ onBack?: () => void;
419
+ initialPage?: number;
420
+ onStateChange?: (state: Record<string, number>) => void;
421
+ }
422
+ declare function InventoryItemDetail({ appId, authHost, authToken, itemId, itemLabel, onBack, initialPage, onStateChange, }: InventoryItemDetailProps): react_jsx_runtime.JSX.Element;
423
+
424
+ interface InventoryMovementSummaryProps {
425
+ appId: string;
426
+ authHost?: string;
427
+ authToken?: string;
428
+ capabilities?: Partial<InventoryRoleCapabilities>;
429
+ categoryId?: string;
430
+ pageSize?: number;
431
+ initialPeriod?: string;
432
+ initialCustomStart?: string;
433
+ initialCustomEnd?: string;
434
+ initialPage?: number;
435
+ onStateChange?: (state: Record<string, string | number | null>) => void;
436
+ hideCategoryColumn?: boolean;
437
+ }
438
+ declare function InventoryMovementSummary({ appId, authHost, authToken, capabilities, categoryId, pageSize, initialPeriod, initialCustomStart, initialCustomEnd, initialPage, onStateChange, hideCategoryColumn, }: InventoryMovementSummaryProps): react_jsx_runtime.JSX.Element | null;
439
+
440
+ interface InventoryUomSettingsProps {
441
+ appId: string;
442
+ authHost?: string;
443
+ authToken?: string;
444
+ capabilities?: Partial<InventoryRoleCapabilities>;
445
+ fieldLabels?: InventoryFieldLabels | null;
446
+ onFieldChange?: (key: string, value: string) => void;
447
+ }
448
+ declare function InventoryUomSettings({ appId, authHost, authToken, fieldLabels, onFieldChange, }: InventoryUomSettingsProps): react_jsx_runtime.JSX.Element;
449
+
450
+ interface InventoryFieldLabelSettingsProps {
451
+ fieldLabels?: InventoryFieldLabels | null;
452
+ onFieldChange?: (key: string, value: string) => void;
453
+ }
454
+ declare function InventoryFieldLabelSettings({ fieldLabels, onFieldChange, }: InventoryFieldLabelSettingsProps): react_jsx_runtime.JSX.Element;
455
+
456
+ interface InventorySettingsPanelProps {
457
+ appId: string;
458
+ authHost?: string;
459
+ authToken?: string;
460
+ capabilities?: Partial<InventoryRoleCapabilities>;
461
+ warehousesEnabled?: boolean;
462
+ onSaved?: () => void;
463
+ }
464
+ declare function InventorySettingsPanel({ appId, authHost, authToken, capabilities, warehousesEnabled, onSaved, }: InventorySettingsPanelProps): react_jsx_runtime.JSX.Element;
465
+
466
+ interface InventoryWarehouseSettingsProps {
467
+ appId: string;
468
+ authHost?: string;
469
+ authToken?: string;
470
+ capabilities?: Partial<InventoryRoleCapabilities>;
471
+ }
472
+ declare function InventoryWarehouseSettings({ appId, authHost, authToken, capabilities, }: InventoryWarehouseSettingsProps): react_jsx_runtime.JSX.Element;
473
+
474
+ interface InventorySerialNumbersProps {
475
+ appId: string;
476
+ authHost?: string;
477
+ authToken?: string;
478
+ capabilities?: Partial<InventoryRoleCapabilities>;
479
+ initialItem?: string;
480
+ }
481
+ declare function InventorySerialNumbers({ appId, authHost, authToken, capabilities, initialItem, }: InventorySerialNumbersProps): react_jsx_runtime.JSX.Element;
482
+
483
+ interface InventoryReorderRulesProps {
484
+ appId: string;
485
+ authHost?: string;
486
+ authToken?: string;
487
+ capabilities?: Partial<InventoryRoleCapabilities>;
488
+ }
489
+ declare function InventoryReorderRules({ appId, authHost, authToken, capabilities, }: InventoryReorderRulesProps): react_jsx_runtime.JSX.Element;
490
+
491
+ interface InventoryExpiryAlertsProps {
492
+ appId: string;
493
+ authHost?: string;
494
+ authToken?: string;
495
+ capabilities?: Partial<InventoryRoleCapabilities>;
496
+ }
497
+ declare function InventoryExpiryAlerts({ appId, authHost, authToken, }: InventoryExpiryAlertsProps): react_jsx_runtime.JSX.Element;
498
+
499
+ interface InventoryLotDetailProps {
500
+ appId: string;
501
+ authHost?: string;
502
+ authToken?: string;
503
+ capabilities?: Partial<InventoryRoleCapabilities>;
504
+ lotId: string;
505
+ onBack?: () => void;
506
+ }
507
+ declare function InventoryLotDetail({ appId, authHost, authToken, capabilities, lotId, onBack, }: InventoryLotDetailProps): react_jsx_runtime.JSX.Element;
508
+
509
+ interface InventoryLotStatusChangeProps {
510
+ appId: string;
511
+ authHost?: string;
512
+ authToken?: string;
513
+ lotId: string;
514
+ currentStatus: string;
515
+ onComplete?: () => void;
516
+ onCancel?: () => void;
517
+ }
518
+ declare function InventoryLotStatusChange({ appId, authHost, authToken, lotId, currentStatus, onComplete, onCancel, }: InventoryLotStatusChangeProps): react_jsx_runtime.JSX.Element;
519
+
520
+ interface InventoryLotSplitProps {
521
+ appId: string;
522
+ authHost?: string;
523
+ authToken?: string;
524
+ lotId: string;
525
+ lotNumber: string;
526
+ currentQty: number;
527
+ onComplete?: () => void;
528
+ onCancel?: () => void;
529
+ }
530
+ declare function InventoryLotSplit({ appId, authHost, authToken, lotId, lotNumber, currentQty, onComplete, onCancel, }: InventoryLotSplitProps): react_jsx_runtime.JSX.Element;
531
+
532
+ interface InventoryLotMergeProps {
533
+ appId: string;
534
+ authHost?: string;
535
+ authToken?: string;
536
+ onComplete?: () => void;
537
+ onCancel?: () => void;
538
+ }
539
+ declare function InventoryLotMerge({ appId, authHost, authToken, onComplete, onCancel, }: InventoryLotMergeProps): react_jsx_runtime.JSX.Element;
540
+
541
+ interface InventoryLotAttributesProps {
542
+ appId: string;
543
+ authHost?: string;
544
+ authToken?: string;
545
+ capabilities?: Partial<InventoryRoleCapabilities>;
546
+ lotId: string;
547
+ }
548
+ declare function InventoryLotAttributes({ appId, authHost, authToken, capabilities, lotId, }: InventoryLotAttributesProps): react_jsx_runtime.JSX.Element;
549
+
550
+ interface InventoryLotAttributeDefinitionsProps {
551
+ appId: string;
552
+ authHost?: string;
553
+ authToken?: string;
554
+ capabilities?: Partial<InventoryRoleCapabilities>;
555
+ }
556
+ declare function InventoryLotAttributeDefinitions({ appId, authHost, authToken, capabilities, }: InventoryLotAttributeDefinitionsProps): react_jsx_runtime.JSX.Element;
557
+
558
+ interface InventoryLotGenealogyProps {
559
+ appId: string;
560
+ authHost?: string;
561
+ authToken?: string;
562
+ lotId: string;
563
+ }
564
+ declare function InventoryLotGenealogy({ appId, authHost, authToken, lotId, }: InventoryLotGenealogyProps): react_jsx_runtime.JSX.Element;
565
+
566
+ interface InventoryLotDocumentTrailProps {
567
+ appId: string;
568
+ authHost?: string;
569
+ authToken?: string;
570
+ lotId: string;
571
+ }
572
+ declare function InventoryLotDocumentTrail({ appId, authHost, authToken, lotId, }: InventoryLotDocumentTrailProps): react_jsx_runtime.JSX.Element;
573
+
574
+ interface InventoryLotQualityProps {
575
+ appId: string;
576
+ authHost?: string;
577
+ authToken?: string;
578
+ capabilities?: Partial<InventoryRoleCapabilities>;
579
+ lotId: string;
580
+ }
581
+ declare function InventoryLotQuality({ appId, authHost, authToken, capabilities, lotId, }: InventoryLotQualityProps): react_jsx_runtime.JSX.Element;
582
+
583
+ interface InventoryLotCertificatesProps {
584
+ appId: string;
585
+ authHost?: string;
586
+ authToken?: string;
587
+ capabilities?: Partial<InventoryRoleCapabilities>;
588
+ lotId: string;
589
+ }
590
+ declare function InventoryLotCertificates({ appId, authHost, authToken, capabilities, lotId, }: InventoryLotCertificatesProps): react_jsx_runtime.JSX.Element;
591
+
592
+ interface InventoryLotDeterminationProps {
593
+ appId: string;
594
+ authHost?: string;
595
+ authToken?: string;
596
+ capabilities?: Partial<InventoryRoleCapabilities>;
597
+ }
598
+ declare function InventoryLotDetermination({ appId, authHost, authToken, capabilities, }: InventoryLotDeterminationProps): react_jsx_runtime.JSX.Element;
599
+
600
+ interface InventoryLotDashboardProps {
601
+ appId: string;
602
+ authHost?: string;
603
+ authToken?: string;
604
+ capabilities?: Partial<InventoryRoleCapabilities>;
605
+ }
606
+ declare function InventoryLotDashboard({ appId, authHost, authToken, capabilities, }: InventoryLotDashboardProps): react_jsx_runtime.JSX.Element;
607
+
608
+ interface InventoryLotSettingsProps {
609
+ appId: string;
610
+ authHost?: string;
611
+ authToken?: string;
612
+ capabilities?: Partial<InventoryRoleCapabilities>;
613
+ }
614
+ declare function InventoryLotSettings({ appId, authHost, authToken, capabilities, }: InventoryLotSettingsProps): react_jsx_runtime.JSX.Element;
615
+
616
+ interface InventoryQualityHoldProps {
617
+ appId: string;
618
+ authHost?: string;
619
+ authToken?: string;
620
+ capabilities?: Partial<InventoryRoleCapabilities>;
621
+ }
622
+ declare function InventoryQualityHold({ appId, authHost, authToken, capabilities, }: InventoryQualityHoldProps): react_jsx_runtime.JSX.Element;
623
+
624
+ interface LocaleInfo {
625
+ code: string;
626
+ name: string;
627
+ nativeName: string;
628
+ direction: 'ltr' | 'rtl';
629
+ }
630
+ interface I18nContextValue {
631
+ locale: string;
632
+ setLocale: (locale: string) => void;
633
+ t: (key: string, vars?: Record<string, string | number>) => string;
634
+ availableLocales: LocaleInfo[];
635
+ isRtl: boolean;
636
+ }
637
+ declare function findBestLocale(raw: string): string;
638
+ interface I18nProviderProps {
639
+ defaultLocale?: string;
640
+ /** When set, only these locale codes appear in availableLocales (from SiteSettings). */
641
+ supportedLocales?: string[];
642
+ /**
643
+ * Client-specific translation overrides. When a key exists in both
644
+ * translationOverrides and common-ui's built-in translations, the
645
+ * override wins. This allows client apps to customize field labels
646
+ * (e.g., "Material Group" instead of generic "Group") without
647
+ * modifying the shared library.
648
+ */
649
+ translationOverrides?: Record<string, string>;
650
+ children: React$1.ReactNode;
651
+ onLocaleChange?: (locale: string) => void;
652
+ }
653
+ declare function I18nProvider({ defaultLocale, supportedLocales, translationOverrides, children, onLocaleChange, }: I18nProviderProps): react_jsx_runtime.JSX.Element;
654
+ declare function useI18n(): I18nContextValue;
655
+
656
+ declare const DEFAULT_BE_HOST = "https://be.create-flow.ai";
657
+ declare const DEFAULT_AUTH_HOST = "https://auth.create-flow.ai";
658
+
659
+ /**
660
+ * Canonical module identifier registry.
661
+ *
662
+ * Each key is the module identifier as stored in the database (e.g., in
663
+ * `app.modules[].name` and `app.settings.moduleRoles[].moduleName`).
664
+ *
665
+ * Usage:
666
+ * import { ModuleId, MODULE_LABELS, MODULE_ICONS } from "@create-flow/common-ui"
667
+ * const label = t(MODULE_LABELS[ModuleId.Inventory]) // → "Inventory"
668
+ * const Icon = MODULE_ICONS[ModuleId.Inventory] // → BoxIcon component
669
+ */
670
+ declare enum ModuleId {
671
+ Inventory = "inventory",
672
+ CostEvaluation = "cost-evaluation",
673
+ Procurement = "procurement",
674
+ Bom = "bom",
675
+ SerialNumbers = "serial-numbers",
676
+ PurchaseOrders = "purchase-orders",
677
+ Agent = "agent",
678
+ Iam = "iam",
679
+ ApiKeys = "api-keys"
680
+ }
681
+ /**
682
+ * Maps each ModuleId to a translation key under the `modules.*` namespace.
683
+ */
684
+ declare const MODULE_LABELS: Record<ModuleId, string>;
685
+ /**
686
+ * Returns the translation key for a module name string.
687
+ * Falls back to a generic key if the module is not in the registry.
688
+ */
689
+ declare function getModuleLabel(moduleName: string): string;
690
+ type IconComponent = ComponentType<{
691
+ className?: string;
692
+ }>;
693
+ /** Default icon for modules not in the registry. */
694
+ declare function GridIcon({ className }: {
695
+ className?: string;
696
+ }): react_jsx_runtime.JSX.Element;
697
+ /**
698
+ * Maps each ModuleId to its associated icon component.
699
+ */
700
+ declare const MODULE_ICONS: Record<ModuleId, IconComponent>;
701
+ /**
702
+ * Returns the icon component for a module name string.
703
+ * Falls back to GridIcon if the module is not in the registry.
704
+ */
705
+ declare function getModuleIcon(moduleName: string): IconComponent;
706
+
707
+ interface AgentModuleAccess {
708
+ moduleName: string;
709
+ visible: boolean;
710
+ enabled: boolean;
711
+ }
712
+ interface AgentChatProps {
713
+ appId: string;
714
+ authHost?: string;
715
+ authToken?: string | null;
716
+ initialChatId?: string | null;
717
+ /** List of enabled modules with access permissions for the current user. */
718
+ modules?: AgentModuleAccess[];
719
+ /** Called when the user selects or creates a chat. Client app uses this to update URL. */
720
+ onChatChange?: (chatId: string | null) => void;
721
+ /** Copilot icon URL for light themes (dark icon on light bg) */
722
+ copilotIconLight?: string;
723
+ /** Copilot icon URL for dark themes (light icon on dark bg) */
724
+ copilotIconDark?: string;
725
+ }
726
+ declare function AgentChat({ appId, authHost, authToken, initialChatId, modules, onChatChange, copilotIconLight, copilotIconDark }: AgentChatProps): react_jsx_runtime.JSX.Element;
727
+
728
+ interface AgentSettingsProps {
729
+ appId: string;
730
+ host?: string;
731
+ authToken?: string;
732
+ }
733
+ declare function AgentSettings({ appId, host, authToken, }: AgentSettingsProps): react_jsx_runtime.JSX.Element;
734
+
735
+ interface UserAgentPromptsProps {
736
+ appId: string;
737
+ host?: string;
738
+ authHost?: string;
739
+ authToken?: string;
740
+ }
741
+ declare function UserAgentPrompts({ appId, host, authHost, authToken, }: UserAgentPromptsProps): react_jsx_runtime.JSX.Element;
742
+
743
+ interface AdvancedIAMConsoleProps extends Omit<IAMConsoleProps, "extraTabs"> {
744
+ /** common-be host URL — used for agent system prompt API and module check */
745
+ host?: string;
746
+ }
747
+ declare function AdvancedIAMConsole({ appId, authHost, authToken, host, ...rest }: AdvancedIAMConsoleProps): react_jsx_runtime.JSX.Element;
748
+
749
+ interface ProcurementRoleCapabilities {
750
+ viewDashboard: boolean;
751
+ viewVendors: boolean;
752
+ manageVendors: boolean;
753
+ createRequisitions: boolean;
754
+ approveRequisitions: boolean;
755
+ viewPurchaseOrders: boolean;
756
+ createPurchaseOrders: boolean;
757
+ approvePurchaseOrders: boolean;
758
+ receiveGoods: boolean;
759
+ viewInvoices: boolean;
760
+ manageInvoices: boolean;
761
+ approveInvoices: boolean;
762
+ manageBudgets: boolean;
763
+ viewReports: boolean;
764
+ manageApprovalRules: boolean;
765
+ manageContracts: boolean;
766
+ }
767
+
768
+ interface ProcurementVendorsProps {
769
+ appId: string;
770
+ authHost?: string;
771
+ authToken?: string;
772
+ capabilities?: Partial<ProcurementRoleCapabilities>;
773
+ }
774
+ declare function ProcurementVendors({ appId, authHost, authToken, capabilities, }: ProcurementVendorsProps): react_jsx_runtime.JSX.Element | null;
775
+
776
+ interface ProcurementVendorDetailProps {
777
+ appId: string;
778
+ authHost?: string;
779
+ authToken?: string;
780
+ capabilities?: Partial<ProcurementRoleCapabilities>;
781
+ vendorId: string;
782
+ onBack?: () => void;
783
+ }
784
+ declare function ProcurementVendorDetail({ appId, authHost, authToken, capabilities, vendorId, onBack, }: ProcurementVendorDetailProps): react_jsx_runtime.JSX.Element;
785
+
786
+ interface ProcurementRequisitionsProps {
787
+ appId: string;
788
+ authHost?: string;
789
+ authToken?: string;
790
+ capabilities?: Partial<ProcurementRoleCapabilities>;
791
+ }
792
+ declare function ProcurementRequisitions({ appId, authHost, authToken, capabilities, }: ProcurementRequisitionsProps): react_jsx_runtime.JSX.Element;
793
+
794
+ interface ProcurementRequisitionDetailProps {
795
+ appId: string;
796
+ authHost?: string;
797
+ authToken?: string;
798
+ capabilities?: Partial<ProcurementRoleCapabilities>;
799
+ requisitionId: string;
800
+ onBack?: () => void;
801
+ }
802
+ declare function ProcurementRequisitionDetail({ appId, authHost, authToken, capabilities, requisitionId, onBack, }: ProcurementRequisitionDetailProps): react_jsx_runtime.JSX.Element;
803
+
804
+ interface ProcurementPurchaseOrdersProps {
805
+ appId: string;
806
+ authHost?: string;
807
+ authToken?: string;
808
+ capabilities?: Partial<ProcurementRoleCapabilities>;
809
+ }
810
+ declare function ProcurementPurchaseOrders({ appId, authHost, authToken, capabilities, }: ProcurementPurchaseOrdersProps): react_jsx_runtime.JSX.Element | null;
811
+
812
+ interface ProcurementPurchaseOrderDetailProps {
813
+ appId: string;
814
+ authHost?: string;
815
+ authToken?: string;
816
+ capabilities?: Partial<ProcurementRoleCapabilities>;
817
+ purchaseOrderId: string;
818
+ onBack?: () => void;
819
+ }
820
+ declare function ProcurementPurchaseOrderDetail({ appId, authHost, authToken, capabilities, purchaseOrderId, onBack, }: ProcurementPurchaseOrderDetailProps): react_jsx_runtime.JSX.Element;
821
+
822
+ interface ProcurementGoodsReceiptsProps {
823
+ appId: string;
824
+ authHost?: string;
825
+ authToken?: string;
826
+ capabilities?: Partial<ProcurementRoleCapabilities>;
827
+ }
828
+ declare function ProcurementGoodsReceipts({ appId, authHost, authToken, capabilities, }: ProcurementGoodsReceiptsProps): react_jsx_runtime.JSX.Element;
829
+
830
+ interface ProcurementInvoicesProps {
831
+ appId: string;
832
+ authHost?: string;
833
+ authToken?: string;
834
+ capabilities?: Partial<ProcurementRoleCapabilities>;
835
+ }
836
+ declare function ProcurementInvoices({ appId, authHost, authToken, capabilities, }: ProcurementInvoicesProps): react_jsx_runtime.JSX.Element | null;
837
+
838
+ interface ProcurementInvoiceDetailProps {
839
+ appId: string;
840
+ authHost?: string;
841
+ authToken?: string;
842
+ capabilities?: Partial<ProcurementRoleCapabilities>;
843
+ invoiceId: string;
844
+ onBack?: () => void;
845
+ }
846
+ declare function ProcurementInvoiceDetail({ appId, authHost, authToken, capabilities, invoiceId, onBack, }: ProcurementInvoiceDetailProps): react_jsx_runtime.JSX.Element;
847
+
848
+ interface ProcurementBudgetsProps {
849
+ appId: string;
850
+ authHost?: string;
851
+ authToken?: string;
852
+ capabilities?: Partial<ProcurementRoleCapabilities>;
853
+ }
854
+ declare function ProcurementBudgets({ appId, authHost, authToken, capabilities, }: ProcurementBudgetsProps): react_jsx_runtime.JSX.Element;
855
+
856
+ interface ProcurementApprovalInboxProps {
857
+ appId: string;
858
+ authHost?: string;
859
+ authToken?: string;
860
+ capabilities?: Partial<ProcurementRoleCapabilities>;
861
+ userId?: string;
862
+ }
863
+ declare function ProcurementApprovalInbox({ appId, authHost, authToken, capabilities, userId, }: ProcurementApprovalInboxProps): react_jsx_runtime.JSX.Element;
864
+
865
+ interface ProcurementApprovalRulesProps {
866
+ appId: string;
867
+ authHost?: string;
868
+ authToken?: string;
869
+ capabilities?: Partial<ProcurementRoleCapabilities>;
870
+ }
871
+ declare function ProcurementApprovalRules({ appId, authHost, authToken, capabilities, }: ProcurementApprovalRulesProps): react_jsx_runtime.JSX.Element;
872
+
873
+ interface ProcurementDashboardProps {
874
+ appId: string;
875
+ authHost?: string;
876
+ authToken?: string;
877
+ capabilities?: Partial<ProcurementRoleCapabilities>;
878
+ currency?: string;
879
+ }
880
+ declare function ProcurementDashboard({ appId, authHost, authToken, capabilities, currency: defaultCurrency, }: ProcurementDashboardProps): react_jsx_runtime.JSX.Element | null;
881
+
882
+ interface ProcurementKpisProps {
883
+ appId: string;
884
+ authHost?: string;
885
+ authToken?: string;
886
+ capabilities?: Partial<ProcurementRoleCapabilities>;
887
+ currency?: string;
888
+ }
889
+ declare function ProcurementKpis({ appId, authHost, authToken, capabilities, currency: defaultCurrency, }: ProcurementKpisProps): react_jsx_runtime.JSX.Element | null;
890
+
891
+ interface ProcurementSettingsPanelProps {
892
+ appId: string;
893
+ authHost?: string;
894
+ authToken?: string;
895
+ capabilities?: Partial<ProcurementRoleCapabilities>;
896
+ }
897
+ declare function ProcurementSettingsPanel({ appId, authHost, authToken, capabilities, }: ProcurementSettingsPanelProps): react_jsx_runtime.JSX.Element;
898
+
899
+ interface ProcurementContractsProps {
900
+ appId: string;
901
+ authHost?: string;
902
+ authToken?: string;
903
+ capabilities?: Partial<ProcurementRoleCapabilities>;
904
+ }
905
+ declare function ProcurementContracts({ appId, authHost, authToken, capabilities, }: ProcurementContractsProps): react_jsx_runtime.JSX.Element;
906
+
907
+ interface ProcurementSourcingProps {
908
+ appId: string;
909
+ authHost?: string;
910
+ authToken?: string;
911
+ capabilities?: Partial<ProcurementRoleCapabilities>;
912
+ }
913
+ declare function ProcurementSourcing({ appId, authHost, authToken, capabilities, }: ProcurementSourcingProps): react_jsx_runtime.JSX.Element;
914
+
915
+ interface ProcurementVendorScorecardProps {
916
+ appId: string;
917
+ authHost?: string;
918
+ authToken?: string;
919
+ capabilities?: Partial<ProcurementRoleCapabilities>;
920
+ vendorId: string;
921
+ }
922
+ declare function ProcurementVendorScorecard({ appId, authHost, authToken, capabilities, vendorId, }: ProcurementVendorScorecardProps): react_jsx_runtime.JSX.Element;
923
+
924
+ interface BomRoleCapabilities {
925
+ viewBoms: boolean;
926
+ manageBoms: boolean;
927
+ approveBoms: boolean;
928
+ manageWorkCenters: boolean;
929
+ manageEcos: boolean;
930
+ approveEcos: boolean;
931
+ viewCosts: boolean;
932
+ manageCosts: boolean;
933
+ runBomExplosion: boolean;
934
+ importExport: boolean;
935
+ manageUnbuilds: boolean;
936
+ }
937
+
938
+ interface BomListProps {
939
+ appId: string;
940
+ authHost?: string;
941
+ authToken?: string;
942
+ capabilities?: Partial<BomRoleCapabilities>;
943
+ onSelectBom?: (bomId: string) => void;
944
+ }
945
+ declare function BomList({ appId, authHost, authToken, capabilities, onSelectBom, }: BomListProps): react_jsx_runtime.JSX.Element;
946
+
947
+ interface BomDetailProps {
948
+ appId: string;
949
+ authHost?: string;
950
+ authToken?: string;
951
+ capabilities?: Partial<BomRoleCapabilities>;
952
+ bomId: string;
953
+ onBack?: () => void;
954
+ }
955
+ declare function BomDetail({ appId, authHost, authToken, capabilities, bomId, onBack, }: BomDetailProps): react_jsx_runtime.JSX.Element;
956
+
957
+ interface BomExplosionTreeProps {
958
+ appId: string;
959
+ authHost?: string;
960
+ authToken?: string;
961
+ capabilities?: Partial<BomRoleCapabilities>;
962
+ bomId: string;
963
+ quantity?: number;
964
+ }
965
+ declare function BomExplosionTree({ appId, authHost, authToken, bomId, quantity, }: BomExplosionTreeProps): react_jsx_runtime.JSX.Element;
966
+
967
+ interface BomCostSummaryProps {
968
+ appId: string;
969
+ authHost?: string;
970
+ authToken?: string;
971
+ capabilities?: Partial<BomRoleCapabilities>;
972
+ bomId: string;
973
+ }
974
+ declare function BomCostSummary({ appId, authHost, authToken, capabilities, bomId, }: BomCostSummaryProps): react_jsx_runtime.JSX.Element;
975
+
976
+ interface BomWhereUsedProps {
977
+ appId: string;
978
+ authHost?: string;
979
+ authToken?: string;
980
+ capabilities?: Partial<BomRoleCapabilities>;
981
+ }
982
+ declare function BomWhereUsed({ appId, authHost, authToken, }: BomWhereUsedProps): react_jsx_runtime.JSX.Element;
983
+
984
+ interface BomComparisonProps {
985
+ appId: string;
986
+ authHost?: string;
987
+ authToken?: string;
988
+ capabilities?: Partial<BomRoleCapabilities>;
989
+ }
990
+ declare function BomComparison({ appId, authHost, authToken, }: BomComparisonProps): react_jsx_runtime.JSX.Element;
991
+
992
+ interface BomWorkCentersProps {
993
+ appId: string;
994
+ authHost?: string;
995
+ authToken?: string;
996
+ capabilities?: Partial<BomRoleCapabilities>;
997
+ }
998
+ declare function BomWorkCenters({ appId, authHost, authToken, capabilities, }: BomWorkCentersProps): react_jsx_runtime.JSX.Element;
999
+
1000
+ interface BomRoutingTemplatesProps {
1001
+ appId: string;
1002
+ authHost?: string;
1003
+ authToken?: string;
1004
+ capabilities?: Partial<BomRoleCapabilities>;
1005
+ }
1006
+ declare function BomRoutingTemplates({ appId, authHost, authToken, capabilities, }: BomRoutingTemplatesProps): react_jsx_runtime.JSX.Element;
1007
+
1008
+ interface BomEcoListProps {
1009
+ appId: string;
1010
+ authHost?: string;
1011
+ authToken?: string;
1012
+ capabilities?: Partial<BomRoleCapabilities>;
1013
+ onSelectEco?: (ecoId: string) => void;
1014
+ }
1015
+ declare function BomEcoList({ appId, authHost, authToken, capabilities, onSelectEco, }: BomEcoListProps): react_jsx_runtime.JSX.Element;
1016
+
1017
+ interface BomEcoDetailProps {
1018
+ appId: string;
1019
+ authHost?: string;
1020
+ authToken?: string;
1021
+ capabilities?: Partial<BomRoleCapabilities>;
1022
+ ecoId: string;
1023
+ onBack?: () => void;
1024
+ }
1025
+ declare function BomEcoDetail({ appId, authHost, authToken, capabilities, ecoId, onBack, }: BomEcoDetailProps): react_jsx_runtime.JSX.Element;
1026
+
1027
+ interface BomDashboardProps {
1028
+ appId: string;
1029
+ authHost?: string;
1030
+ authToken?: string;
1031
+ capabilities?: Partial<BomRoleCapabilities>;
1032
+ }
1033
+ declare function BomDashboard({ appId, authHost, authToken, }: BomDashboardProps): react_jsx_runtime.JSX.Element;
1034
+
1035
+ interface BomUpdateToolProps {
1036
+ appId: string;
1037
+ authHost?: string;
1038
+ authToken?: string;
1039
+ capabilities?: Partial<BomRoleCapabilities>;
1040
+ }
1041
+ declare function BomUpdateTool({ appId, authHost, authToken, capabilities, }: BomUpdateToolProps): react_jsx_runtime.JSX.Element;
1042
+
1043
+ interface BomSettingsPanelProps {
1044
+ appId: string;
1045
+ authHost?: string;
1046
+ authToken?: string;
1047
+ capabilities?: Partial<BomRoleCapabilities>;
1048
+ }
1049
+ declare function BomSettingsPanel({ appId, authHost, authToken, capabilities, }: BomSettingsPanelProps): react_jsx_runtime.JSX.Element;
1050
+
1051
+ interface BomUnbuildOrdersProps {
1052
+ appId: string;
1053
+ authHost?: string;
1054
+ authToken?: string;
1055
+ capabilities?: Partial<BomRoleCapabilities>;
1056
+ }
1057
+ declare function BomUnbuildOrders({ appId, authHost, authToken, capabilities, }: BomUnbuildOrdersProps): react_jsx_runtime.JSX.Element;
1058
+
1059
+ interface SerialNumberRoleCapabilities {
1060
+ viewSerials: boolean;
1061
+ manageSerials: boolean;
1062
+ manageWarranties: boolean;
1063
+ manageService: boolean;
1064
+ checkOutSerials: boolean;
1065
+ viewTraceability: boolean;
1066
+ manageProfiles: boolean;
1067
+ importExport: boolean;
1068
+ manageMaintenanceSchedules?: boolean;
1069
+ manageReservations?: boolean;
1070
+ }
1071
+
1072
+ interface SerialNumberListProps {
1073
+ appId: string;
1074
+ authHost?: string;
1075
+ authToken?: string;
1076
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1077
+ onSelectSerial?: (serialId: string) => void;
1078
+ }
1079
+ declare function SerialNumberList({ appId, authHost, authToken, capabilities, onSelectSerial, }: SerialNumberListProps): react_jsx_runtime.JSX.Element;
1080
+
1081
+ interface SerialNumberDetailProps {
1082
+ appId: string;
1083
+ authHost?: string;
1084
+ authToken?: string;
1085
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1086
+ serialId: string;
1087
+ onBack?: () => void;
1088
+ }
1089
+ declare function SerialNumberDetail({ appId, authHost, authToken, capabilities, serialId, onBack, }: SerialNumberDetailProps): react_jsx_runtime.JSX.Element;
1090
+
1091
+ interface SerialNumberCheckoutProps {
1092
+ appId: string;
1093
+ authHost?: string;
1094
+ authToken?: string;
1095
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1096
+ serialId: string;
1097
+ open: boolean;
1098
+ onClose: () => void;
1099
+ onComplete?: () => void;
1100
+ }
1101
+ declare function SerialNumberCheckout({ appId, authHost, authToken, serialId, open, onClose, onComplete, }: SerialNumberCheckoutProps): react_jsx_runtime.JSX.Element;
1102
+
1103
+ interface SerialNumberWarrantiesProps {
1104
+ appId: string;
1105
+ authHost?: string;
1106
+ authToken?: string;
1107
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1108
+ serialId: string;
1109
+ }
1110
+ declare function SerialNumberWarranties({ appId, authHost, authToken, capabilities, serialId, }: SerialNumberWarrantiesProps): react_jsx_runtime.JSX.Element;
1111
+
1112
+ interface SerialNumberServiceHistoryProps {
1113
+ appId: string;
1114
+ authHost?: string;
1115
+ authToken?: string;
1116
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1117
+ serialId: string;
1118
+ }
1119
+ declare function SerialNumberServiceHistory({ appId, authHost, authToken, capabilities, serialId, }: SerialNumberServiceHistoryProps): react_jsx_runtime.JSX.Element;
1120
+
1121
+ interface SerialNumberTraceabilityProps {
1122
+ appId: string;
1123
+ authHost?: string;
1124
+ authToken?: string;
1125
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1126
+ }
1127
+ declare function SerialNumberTraceability({ appId, authHost, authToken, }: SerialNumberTraceabilityProps): react_jsx_runtime.JSX.Element;
1128
+
1129
+ interface SerialNumberDashboardProps {
1130
+ appId: string;
1131
+ authHost?: string;
1132
+ authToken?: string;
1133
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1134
+ }
1135
+ declare function SerialNumberDashboard({ appId, authHost, authToken, }: SerialNumberDashboardProps): react_jsx_runtime.JSX.Element | null;
1136
+
1137
+ interface SerialNumberSettingsProps {
1138
+ appId: string;
1139
+ authHost?: string;
1140
+ authToken?: string;
1141
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1142
+ }
1143
+ declare function SerialNumberSettings({ appId, authHost, authToken, capabilities, }: SerialNumberSettingsProps): react_jsx_runtime.JSX.Element;
1144
+
1145
+ interface SerialNumberStatusLabelsProps {
1146
+ appId: string;
1147
+ authHost?: string;
1148
+ authToken?: string;
1149
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1150
+ }
1151
+ declare function SerialNumberStatusLabels({ appId, authHost, authToken, capabilities, }: SerialNumberStatusLabelsProps): react_jsx_runtime.JSX.Element;
1152
+
1153
+ interface SerialNumberMaintenanceSchedulesProps {
1154
+ appId: string;
1155
+ authHost?: string;
1156
+ authToken?: string;
1157
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1158
+ }
1159
+ declare function SerialNumberMaintenanceSchedules({ appId, authHost, authToken, capabilities, }: SerialNumberMaintenanceSchedulesProps): react_jsx_runtime.JSX.Element;
1160
+
1161
+ interface SerialNumberMaintenanceVisitsProps {
1162
+ appId: string;
1163
+ authHost?: string;
1164
+ authToken?: string;
1165
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1166
+ }
1167
+ declare function SerialNumberMaintenanceVisits({ appId, authHost, authToken, capabilities, }: SerialNumberMaintenanceVisitsProps): react_jsx_runtime.JSX.Element;
1168
+
1169
+ interface SerialNumberReservationsProps {
1170
+ appId: string;
1171
+ authHost?: string;
1172
+ authToken?: string;
1173
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1174
+ }
1175
+ declare function SerialNumberReservations({ appId, authHost, authToken, capabilities, }: SerialNumberReservationsProps): react_jsx_runtime.JSX.Element;
1176
+
1177
+ interface SerialNumberBehavioralSettingsProps {
1178
+ appId: string;
1179
+ authHost?: string;
1180
+ authToken?: string;
1181
+ capabilities?: Partial<SerialNumberRoleCapabilities>;
1182
+ }
1183
+ declare function SerialNumberBehavioralSettings({ appId, authHost, authToken, capabilities, }: SerialNumberBehavioralSettingsProps): react_jsx_runtime.JSX.Element;
1184
+
1185
+ interface PurchaseOrderRoleCapabilities {
1186
+ viewPurchaseOrders?: boolean;
1187
+ createPurchaseOrders?: boolean;
1188
+ approvePurchaseOrders?: boolean;
1189
+ receiveGoods?: boolean;
1190
+ manageInvoices?: boolean;
1191
+ manageVendors?: boolean;
1192
+ managePriceLists?: boolean;
1193
+ manageSettings?: boolean;
1194
+ viewReports?: boolean;
1195
+ amendPurchaseOrders?: boolean;
1196
+ }
1197
+
1198
+ interface PurchaseOrderListProps {
1199
+ appId: string;
1200
+ authHost?: string;
1201
+ authToken?: string;
1202
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1203
+ onSelect?: (poId: string) => void;
1204
+ }
1205
+ declare function PurchaseOrderList({ appId, authHost, authToken, capabilities, onSelect, }: PurchaseOrderListProps): react_jsx_runtime.JSX.Element;
1206
+
1207
+ interface PurchaseOrderDetailProps {
1208
+ appId: string;
1209
+ authHost?: string;
1210
+ authToken?: string;
1211
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1212
+ poId: string;
1213
+ onBack?: () => void;
1214
+ }
1215
+ declare function PurchaseOrderDetail({ appId, authHost, authToken, capabilities, poId, onBack, }: PurchaseOrderDetailProps): react_jsx_runtime.JSX.Element | null;
1216
+
1217
+ interface PurchaseOrderVendorsProps {
1218
+ appId: string;
1219
+ authHost?: string;
1220
+ authToken?: string;
1221
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1222
+ }
1223
+ declare function PurchaseOrderVendors({ appId, authHost, authToken, capabilities, }: PurchaseOrderVendorsProps): react_jsx_runtime.JSX.Element;
1224
+
1225
+ interface PurchaseOrderReceiptsProps {
1226
+ appId: string;
1227
+ authHost?: string;
1228
+ authToken?: string;
1229
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1230
+ }
1231
+ declare function PurchaseOrderReceipts({ appId, authHost, authToken, capabilities, }: PurchaseOrderReceiptsProps): react_jsx_runtime.JSX.Element;
1232
+
1233
+ interface PurchaseOrderInvoicesProps {
1234
+ appId: string;
1235
+ authHost?: string;
1236
+ authToken?: string;
1237
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1238
+ }
1239
+ declare function PurchaseOrderInvoices({ appId, authHost, authToken, capabilities, }: PurchaseOrderInvoicesProps): react_jsx_runtime.JSX.Element;
1240
+
1241
+ interface PurchaseOrderDashboardProps {
1242
+ appId: string;
1243
+ authHost?: string;
1244
+ authToken?: string;
1245
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1246
+ }
1247
+ declare function PurchaseOrderDashboard({ appId, authHost, authToken, }: PurchaseOrderDashboardProps): react_jsx_runtime.JSX.Element | null;
1248
+
1249
+ interface PurchaseOrderSettingsProps {
1250
+ appId: string;
1251
+ authHost?: string;
1252
+ authToken?: string;
1253
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1254
+ }
1255
+ declare function PurchaseOrderSettings({ appId, authHost, authToken, }: PurchaseOrderSettingsProps): react_jsx_runtime.JSX.Element;
1256
+
1257
+ interface PurchaseOrderRfqProps {
1258
+ appId: string;
1259
+ authHost?: string;
1260
+ authToken?: string;
1261
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1262
+ }
1263
+ declare function PurchaseOrderRfq({ appId, authHost, authToken, capabilities, }: PurchaseOrderRfqProps): react_jsx_runtime.JSX.Element;
1264
+
1265
+ interface PurchaseOrderLandedCostsProps {
1266
+ appId: string;
1267
+ authHost?: string;
1268
+ authToken?: string;
1269
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1270
+ }
1271
+ declare function PurchaseOrderLandedCosts({ appId, authHost, authToken, capabilities, }: PurchaseOrderLandedCostsProps): react_jsx_runtime.JSX.Element;
1272
+
1273
+ interface PurchaseOrderSchedulingAgreementsProps {
1274
+ appId: string;
1275
+ authHost?: string;
1276
+ authToken?: string;
1277
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1278
+ }
1279
+ declare function PurchaseOrderSchedulingAgreements({ appId, authHost, authToken, capabilities, }: PurchaseOrderSchedulingAgreementsProps): react_jsx_runtime.JSX.Element;
1280
+
1281
+ interface PurchaseOrderBudgetsProps {
1282
+ appId: string;
1283
+ authHost?: string;
1284
+ authToken?: string;
1285
+ capabilities?: Partial<PurchaseOrderRoleCapabilities>;
1286
+ }
1287
+ declare function PurchaseOrderBudgets({ appId, authHost, authToken, capabilities, }: PurchaseOrderBudgetsProps): react_jsx_runtime.JSX.Element;
1288
+
1289
+ interface ActionMenuProps {
1290
+ children: React.ReactNode;
1291
+ align?: "start" | "end";
1292
+ }
1293
+ declare function ActionMenu({ children, align }: ActionMenuProps): react_jsx_runtime.JSX.Element;
1294
+ interface ActionMenuItemProps {
1295
+ onClick?: (e: React.MouseEvent) => void;
1296
+ className?: string;
1297
+ disabled?: boolean;
1298
+ children: React.ReactNode;
1299
+ }
1300
+ declare function ActionMenuItem({ onClick, className, disabled, children }: ActionMenuItemProps): react_jsx_runtime.JSX.Element;
1301
+ declare function ActionMenuSeparator(): react_jsx_runtime.JSX.Element;
1302
+
1303
+ interface CategoryItem {
1304
+ id: string;
1305
+ name: string;
1306
+ parentId: string | null;
1307
+ }
1308
+ interface CategoryPickerProps {
1309
+ categories: CategoryItem[];
1310
+ value: string;
1311
+ onChange: (value: string) => void;
1312
+ placeholder?: string;
1313
+ }
1314
+ declare function CategoryPicker({ categories, value, onChange, placeholder }: CategoryPickerProps): react_jsx_runtime.JSX.Element;
1315
+
1316
+ interface ConfirmDialogProps {
1317
+ open: boolean;
1318
+ onClose: () => void;
1319
+ onConfirm: () => void;
1320
+ title: string;
1321
+ message: string;
1322
+ confirmLabel?: string;
1323
+ loading?: boolean;
1324
+ }
1325
+ declare function ConfirmDialog({ open, onClose, onConfirm, title, message, confirmLabel, loading, }: ConfirmDialogProps): react_jsx_runtime.JSX.Element;
1326
+
1327
+ interface CurrencyAmountInputProps {
1328
+ value: string;
1329
+ currency: string;
1330
+ onChange: (raw: string) => void;
1331
+ required?: boolean;
1332
+ }
1333
+ declare function CurrencyAmountInput({ value, currency, onChange, required, }: CurrencyAmountInputProps): react_jsx_runtime.JSX.Element;
1334
+
1335
+ declare const DEFAULT_CURRENCIES: readonly ["USD", "EUR", "GBP", "JPY", "CAD", "AUD", "CHF", "CNY", "INR", "BRL"];
1336
+ interface CurrencySelectProps {
1337
+ value: string;
1338
+ onChange: (value: string) => void;
1339
+ currencies?: readonly string[];
1340
+ className?: string;
1341
+ }
1342
+ declare function CurrencySelect({ value, onChange, currencies, className }: CurrencySelectProps): react_jsx_runtime.JSX.Element;
1343
+
1344
+ interface Column<T> {
1345
+ key: string;
1346
+ label: string;
1347
+ sortable?: boolean;
1348
+ render?: (item: T) => React.ReactNode;
1349
+ }
1350
+ interface DataTableProps<T> {
1351
+ columns: Column<T>[];
1352
+ data: T[];
1353
+ onSort?: (key: string, order: "asc" | "desc") => void;
1354
+ sortBy?: string;
1355
+ sortOrder?: "asc" | "desc";
1356
+ emptyMessage?: string;
1357
+ /** When provided, renders a card layout on mobile (below md:) and hides the table. */
1358
+ mobileRender?: (item: T, index: number) => React.ReactNode;
1359
+ }
1360
+ declare function DataTable<T extends Record<string, unknown>>({ columns, data, onSort, sortBy, sortOrder, emptyMessage, mobileRender, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
1361
+
1362
+ interface DateRangePickerProps {
1363
+ startDate: string;
1364
+ endDate: string;
1365
+ onStartChange: (value: string) => void;
1366
+ onEndChange: (value: string) => void;
1367
+ label?: string;
1368
+ }
1369
+ declare function DateRangePicker({ startDate, endDate, onStartChange, onEndChange, label }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
1370
+
1371
+ interface FilterBarProps {
1372
+ search: string;
1373
+ onSearchChange: (value: string) => void;
1374
+ searchPlaceholder?: string;
1375
+ dateRangeSeparator?: string;
1376
+ filters?: {
1377
+ key: string;
1378
+ label: string;
1379
+ options: {
1380
+ value: string;
1381
+ label: string;
1382
+ }[];
1383
+ value: string;
1384
+ onChange: (value: string) => void;
1385
+ }[];
1386
+ dateRange?: {
1387
+ startDate: string;
1388
+ endDate: string;
1389
+ onStartChange: (value: string) => void;
1390
+ onEndChange: (value: string) => void;
1391
+ };
1392
+ }
1393
+ declare function FilterBar({ search, onSearchChange, searchPlaceholder, dateRangeSeparator, filters, dateRange }: FilterBarProps): react_jsx_runtime.JSX.Element;
1394
+
1395
+ interface FormDialogProps {
1396
+ open: boolean;
1397
+ onClose: () => void;
1398
+ title: string;
1399
+ children: React.ReactNode;
1400
+ }
1401
+ declare function FormDialog({ open, onClose, title, children }: FormDialogProps): react_jsx_runtime.JSX.Element;
1402
+
1403
+ interface PaginationProps {
1404
+ page: number;
1405
+ totalPages: number;
1406
+ onPageChange: (page: number) => void;
1407
+ prevLabel?: string;
1408
+ nextLabel?: string;
1409
+ }
1410
+ declare function Pagination({ page, totalPages, onPageChange, prevLabel, nextLabel }: PaginationProps): react_jsx_runtime.JSX.Element | null;
1411
+
1412
+ interface StatCardProps {
1413
+ title: string;
1414
+ value: string | number;
1415
+ subtitle?: string;
1416
+ icon?: React.ReactNode;
1417
+ }
1418
+ declare function StatCard({ title, value, subtitle, icon }: StatCardProps): react_jsx_runtime.JSX.Element;
1419
+
1420
+ declare function StatusBadge({ status }: {
1421
+ status: string;
1422
+ }): react_jsx_runtime.JSX.Element;
1423
+
1424
+ interface StyledSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {
1425
+ children: React.ReactNode;
1426
+ }
1427
+ declare function StyledSelect({ children, className, ...props }: StyledSelectProps): react_jsx_runtime.JSX.Element;
1428
+
1429
+ interface PickerOption {
1430
+ id: string;
1431
+ name: string;
1432
+ }
1433
+ interface VendorPickerProps {
1434
+ vendors: PickerOption[];
1435
+ value: string;
1436
+ onChange: (value: string) => void;
1437
+ onCreateVendor?: (name: string) => Promise<PickerOption | null>;
1438
+ placeholder?: string;
1439
+ searchPlaceholder?: string;
1440
+ emptyMessage?: string;
34
1441
  }
35
- declare function Sidebar({ user: userProp, appId, authHost, navItems, title, logoutRedirectTo, profileHref, settingsHref, onLogout, }: SidebarProps): react_jsx_runtime.JSX.Element | null;
1442
+ declare function VendorPicker({ vendors, value, onChange, onCreateVendor, placeholder, searchPlaceholder, emptyMessage }: VendorPickerProps): react_jsx_runtime.JSX.Element;
36
1443
 
37
- export { type AuthUser, Hello, type NavItem, Sidebar, type SidebarProps, type UserType };
1444
+ export { ActionMenu, ActionMenuItem, ActionMenuSeparator, AdvancedIAMConsole, type AdvancedIAMConsoleProps, AgentChat, type AgentChatProps, type AgentModuleAccess, AgentSettings, type AgentSettingsProps, ApiKeyDashboard, type ApiKeyDashboardProps, ApiKeyManager, type ApiKeyManagerProps, ApiKeyTierManager, type ApiKeyTierManagerProps, ApiKeyUsage, type ApiKeyUsageProps, type AppSettings, AppTheme, BomComparison, type BomComparisonProps, BomCostSummary, type BomCostSummaryProps, BomDashboard, type BomDashboardProps, BomDetail, type BomDetailProps, BomEcoDetail, type BomEcoDetailProps, BomEcoList, type BomEcoListProps, BomExplosionTree, type BomExplosionTreeProps, BomList, type BomListProps, type BomRoleCapabilities, BomRoutingTemplates, type BomRoutingTemplatesProps, BomSettingsPanel, type BomSettingsPanelProps, BomUnbuildOrders, type BomUnbuildOrdersProps, BomUpdateTool, type BomUpdateToolProps, BomWhereUsed, type BomWhereUsedProps, BomWorkCenters, type BomWorkCentersProps, type CategoryItem, CategoryPicker, type Column, ConfirmDialog, CurrencyAmountInput, CurrencySelect, DEFAULT_AUTH_HOST, DEFAULT_BE_HOST, DEFAULT_CURRENCIES, DEFAULT_FIELD_LABELS, DataTable, DateRangePicker, FilePermission, FileUpload, type FileUploadProps, type FileUploadSettings, FileUploadVariant, FilterBar, FormDialog, GridIcon, Hello, type I18nContextValue, I18nProvider, type I18nProviderProps, InventoryAuditLog, type InventoryAuditLogProps, InventorySubcategories as InventoryCategories, type InventorySubcategoriesProps as InventoryCategoriesProps, InventoryChart, type InventoryChartProps, type InventoryChartType, InventoryEntry, type InventoryEntryProps, InventoryExpiryAlerts, type InventoryExpiryAlertsProps, InventoryFieldLabelSettings, type InventoryFieldLabelSettingsProps, type InventoryFieldLabels, InventoryItemDetail, type InventoryItemDetailProps, InventoryItems, type InventoryItemsProps, InventoryKpis, type InventoryKpisProps, InventoryLotAttributeDefinitions, type InventoryLotAttributeDefinitionsProps, InventoryLotAttributes, type InventoryLotAttributesProps, InventoryLotCertificates, type InventoryLotCertificatesProps, InventoryLotDashboard, type InventoryLotDashboardProps, InventoryLotDetail, type InventoryLotDetailProps, InventoryLotDetermination, type InventoryLotDeterminationProps, InventoryLotDocumentTrail, type InventoryLotDocumentTrailProps, InventoryLotGenealogy, type InventoryLotGenealogyProps, InventoryLotMerge, type InventoryLotMergeProps, InventoryLotQuality, type InventoryLotQualityProps, InventoryLotSettings, type InventoryLotSettingsProps, InventoryLotSplit, type InventoryLotSplitProps, InventoryLotStatusChange, type InventoryLotStatusChangeProps, InventoryLots, type InventoryLotsProps, InventoryMovementSummary, type InventoryMovementSummaryProps, InventoryPrices, type InventoryPricesProps, InventoryQualityHold, type InventoryQualityHoldProps, InventoryReorderRules, type InventoryReorderRulesProps, type InventoryRoleCapabilities, InventorySerialNumbers, type InventorySerialNumbersProps, InventorySettingsPanel, type InventorySettingsPanelProps, InventoryStockCount, type InventoryStockCountProps, InventoryStockSummary, type InventoryStockSummaryProps, InventorySubcategories, type InventorySubcategoriesProps, InventoryUomSettings, type InventoryUomSettingsProps, InventoryWarehouseSettings, type InventoryWarehouseSettingsProps, type LocaleInfo, MODULE_ICONS, MODULE_LABELS, ModuleId, type ModuleOption, type ModuleRoleConfig, type ModuleRoleSetting, type NavItem, Pagination, type PickerOption, ProcurementApprovalInbox, type ProcurementApprovalInboxProps, ProcurementApprovalRules, type ProcurementApprovalRulesProps, ProcurementBudgets, type ProcurementBudgetsProps, ProcurementContracts, type ProcurementContractsProps, ProcurementDashboard, type ProcurementDashboardProps, ProcurementGoodsReceipts, type ProcurementGoodsReceiptsProps, ProcurementInvoiceDetail, type ProcurementInvoiceDetailProps, ProcurementInvoices, type ProcurementInvoicesProps, ProcurementKpis, type ProcurementKpisProps, ProcurementPurchaseOrderDetail, type ProcurementPurchaseOrderDetailProps, ProcurementPurchaseOrders, type ProcurementPurchaseOrdersProps, ProcurementRequisitionDetail, type ProcurementRequisitionDetailProps, ProcurementRequisitions, type ProcurementRequisitionsProps, type ProcurementRoleCapabilities, ProcurementSettingsPanel, type ProcurementSettingsPanelProps, ProcurementSourcing, type ProcurementSourcingProps, ProcurementVendorDetail, type ProcurementVendorDetailProps, ProcurementVendorScorecard, type ProcurementVendorScorecardProps, ProcurementVendors, type ProcurementVendorsProps, PurchaseOrderBudgets, type PurchaseOrderBudgetsProps, PurchaseOrderDashboard, type PurchaseOrderDashboardProps, PurchaseOrderDetail, type PurchaseOrderDetailProps, PurchaseOrderInvoices, type PurchaseOrderInvoicesProps, PurchaseOrderLandedCosts, type PurchaseOrderLandedCostsProps, PurchaseOrderList, type PurchaseOrderListProps, PurchaseOrderReceipts, type PurchaseOrderReceiptsProps, PurchaseOrderRfq, type PurchaseOrderRfqProps, type PurchaseOrderRoleCapabilities, PurchaseOrderSchedulingAgreements, type PurchaseOrderSchedulingAgreementsProps, PurchaseOrderSettings, type PurchaseOrderSettingsProps, PurchaseOrderVendors, type PurchaseOrderVendorsProps, type RoleInfo, SerialNumberBehavioralSettings, type SerialNumberBehavioralSettingsProps, SerialNumberCheckout, type SerialNumberCheckoutProps, SerialNumberDashboard, type SerialNumberDashboardProps, SerialNumberDetail, type SerialNumberDetailProps, SerialNumberList, type SerialNumberListProps, SerialNumberMaintenanceSchedules, type SerialNumberMaintenanceSchedulesProps, SerialNumberMaintenanceVisits, type SerialNumberMaintenanceVisitsProps, SerialNumberReservations, type SerialNumberReservationsProps, type SerialNumberRoleCapabilities, SerialNumberServiceHistory, type SerialNumberServiceHistoryProps, SerialNumberSettings, type SerialNumberSettingsProps, SerialNumberStatusLabels, type SerialNumberStatusLabelsProps, SerialNumberTraceability, type SerialNumberTraceabilityProps, SerialNumberWarranties, type SerialNumberWarrantiesProps, Sidebar, type SidebarProps, SiteSettings, type SiteSettingsProps, StatCard, StatusBadge, StyledSelect, type UploadedFile, UserAgentPrompts, type UserAgentPromptsProps, VendorPicker, VisibilityLevel, defaultFileUploadSettings, findBestLocale, generateFieldLabelOverrides, generateFieldNameLabels, getModuleIcon, getModuleLabel, humanizeFieldName, useI18n };