@alepha/ui 0.11.3 → 0.11.4

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 (44) hide show
  1. package/dist/AlephaMantineProvider-CtIV-8MV.mjs +150 -0
  2. package/dist/AlephaMantineProvider-CtIV-8MV.mjs.map +1 -0
  3. package/dist/AlephaMantineProvider-D-vu9aCD.mjs +3 -0
  4. package/dist/{index.d.ts → index.d.mts} +290 -226
  5. package/dist/index.d.mts.map +1 -0
  6. package/dist/{index.js → index.mjs} +651 -730
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +14 -12
  9. package/src/RootRouter.ts +1 -1
  10. package/src/components/buttons/ActionButton.tsx +542 -0
  11. package/src/components/buttons/BurgerButton.tsx +20 -0
  12. package/src/components/{DarkModeButton.tsx → buttons/DarkModeButton.tsx} +27 -14
  13. package/src/components/buttons/LanguageButton.tsx +28 -0
  14. package/src/components/buttons/OmnibarButton.tsx +32 -0
  15. package/src/components/buttons/ToggleSidebarButton.tsx +28 -0
  16. package/src/components/dialogs/AlertDialog.tsx +10 -10
  17. package/src/components/dialogs/ConfirmDialog.tsx +18 -18
  18. package/src/components/dialogs/PromptDialog.tsx +5 -3
  19. package/src/components/{Control.tsx → form/Control.tsx} +6 -3
  20. package/src/components/{ControlDate.tsx → form/ControlDate.tsx} +4 -1
  21. package/src/components/{ControlSelect.tsx → form/ControlSelect.tsx} +4 -1
  22. package/src/components/{TypeForm.tsx → form/TypeForm.tsx} +8 -6
  23. package/src/components/layout/AdminShell.tsx +97 -0
  24. package/src/components/{AlephaMantineProvider.tsx → layout/AlephaMantineProvider.tsx} +30 -10
  25. package/src/components/layout/AppBar.tsx +133 -0
  26. package/src/components/layout/Omnibar.tsx +43 -0
  27. package/src/components/layout/Sidebar.tsx +410 -0
  28. package/src/components/table/DataTable.tsx +63 -0
  29. package/src/constants/ui.ts +8 -0
  30. package/src/index.ts +89 -24
  31. package/src/services/DialogService.tsx +13 -32
  32. package/src/services/ToastService.tsx +16 -4
  33. package/src/utils/parseInput.ts +1 -1
  34. package/dist/AlephaMantineProvider-DDbIijPF.js +0 -96
  35. package/dist/AlephaMantineProvider-DDbIijPF.js.map +0 -1
  36. package/dist/AlephaMantineProvider-pOu8hOzK.js +0 -3
  37. package/dist/index.d.ts.map +0 -1
  38. package/dist/index.js.map +0 -1
  39. package/src/components/Action.tsx +0 -345
  40. package/src/components/DataTable.css +0 -199
  41. package/src/components/DataTable.tsx +0 -724
  42. package/src/components/Omnibar.tsx +0 -77
  43. package/src/components/Sidebar.css +0 -217
  44. package/src/components/Sidebar.tsx +0 -255
@@ -1,17 +1,16 @@
1
1
  import * as _alepha_core0 from "@alepha/core";
2
- import { TObject } from "@alepha/core";
2
+ import { Async, TObject } from "@alepha/core";
3
+ import { FormModel, InputField } from "@alepha/react-form";
3
4
  import * as _alepha_react0 from "@alepha/react";
4
- import { RouterGoOptions, UseActiveOptions } from "@alepha/react";
5
+ import { RouterGoOptions, UseActionReturn, UseActiveOptions } from "@alepha/react";
5
6
  import { ModalsProviderProps } from "@mantine/modals";
6
- import { AutocompleteProps, ButtonProps, ColorInputProps, ColorSchemeScriptProps, FileInputProps, Flex, MantineProviderProps, ModalProps, MultiSelectProps, NumberInputProps, PasswordInputProps, SegmentedControlProps, SelectProps, SwitchProps, TableProps, TagsInputProps, TextInputProps, TextareaProps, TooltipProps } from "@mantine/core";
7
- import * as react_jsx_runtime3 from "react/jsx-runtime";
8
- import React$1, { ComponentType, FC, ReactNode } from "react";
7
+ import { AppShellFooterProps, AppShellHeaderProps, AppShellMainProps, AppShellNavbarProps, AppShellProps, AutocompleteProps, ButtonProps, ColorInputProps, ColorSchemeScriptProps, FileInputProps, Flex, FlexProps, MantineBreakpoint, MantineProviderProps, MenuProps, MenuTargetProps, ModalProps, MultiSelectProps, NumberInputProps, PasswordInputProps, SegmentedControlProps, SelectProps, SwitchProps, TableProps, TableTrProps, TagsInputProps, Text, TextInputProps, TextareaProps, ThemeIconProps, TooltipProps } from "@mantine/core";
8
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
9
+ import { ComponentType, ReactNode } from "react";
9
10
  import * as _mantine_notifications0 from "@mantine/notifications";
10
11
  import { NotificationData, NotificationsProps } from "@mantine/notifications";
11
- import { FormModel, InputField } from "@alepha/react-form";
12
- import { NavigationProgressProps } from "@mantine/nprogress";
13
- import { SpotlightActionData } from "@mantine/spotlight";
14
12
  import { DateInputProps, DateTimePickerProps, TimeInputProps } from "@mantine/dates";
13
+ import { NavigationProgressProps } from "@mantine/nprogress";
15
14
 
16
15
  //#region src/utils/parseInput.d.ts
17
16
  interface GenericControlProps {
@@ -21,7 +20,7 @@ interface GenericControlProps {
21
20
  icon?: ReactNode;
22
21
  }
23
22
  //#endregion
24
- //#region src/components/ControlSelect.d.ts
23
+ //#region src/components/form/ControlSelect.d.ts
25
24
  type SelectValueLabel = string | {
26
25
  value: string;
27
26
  label: string;
@@ -48,9 +47,9 @@ interface ControlSelectProps extends GenericControlProps {
48
47
  *
49
48
  * Automatically detects enum values and array types from schema.
50
49
  */
51
- declare const ControlSelect: (props: ControlSelectProps) => react_jsx_runtime3.JSX.Element | null;
50
+ declare const ControlSelect: (props: ControlSelectProps) => react_jsx_runtime5.JSX.Element | null;
52
51
  //#endregion
53
- //#region src/components/Control.d.ts
52
+ //#region src/components/form/Control.d.ts
54
53
  interface ControlProps extends GenericControlProps {
55
54
  text?: TextInputProps;
56
55
  area?: boolean | TextareaProps;
@@ -86,13 +85,13 @@ interface ControlProps extends GenericControlProps {
86
85
  *
87
86
  * Automatically handles labels, descriptions, error messages, required state, and default icons.
88
87
  */
89
- declare const Control: (_props: ControlProps) => react_jsx_runtime3.JSX.Element | null;
88
+ declare const Control: (_props: ControlProps) => react_jsx_runtime5.JSX.Element | null;
90
89
  type CustomControlProps = {
91
90
  defaultValue: any;
92
91
  onChange: (value: any) => void;
93
92
  };
94
93
  //#endregion
95
- //#region src/components/Action.d.ts
94
+ //#region src/components/buttons/ActionButton.d.ts
96
95
  interface ActionMenuItem {
97
96
  /**
98
97
  * Menu item type
@@ -101,7 +100,7 @@ interface ActionMenuItem {
101
100
  /**
102
101
  * Label text for the menu item
103
102
  */
104
- label?: string;
103
+ label?: string | ReactNode;
105
104
  /**
106
105
  * Icon element to display before the label
107
106
  */
@@ -110,6 +109,10 @@ interface ActionMenuItem {
110
109
  * Click handler for menu items
111
110
  */
112
111
  onClick?: () => void;
112
+ /**
113
+ * Href for navigation menu items
114
+ */
115
+ href?: string;
113
116
  /**
114
117
  * Color for the menu item (e.g., "red" for danger actions)
115
118
  */
@@ -118,6 +121,10 @@ interface ActionMenuItem {
118
121
  * Nested submenu items
119
122
  */
120
123
  children?: ActionMenuItem[];
124
+ /**
125
+ * Whether the menu item is active
126
+ */
127
+ active?: boolean;
121
128
  }
122
129
  interface ActionMenuConfig {
123
130
  /**
@@ -136,6 +143,9 @@ interface ActionMenuConfig {
136
143
  * Menu shadow
137
144
  */
138
145
  shadow?: "xs" | "sm" | "md" | "lg" | "xl";
146
+ on?: "hover" | "click";
147
+ targetProps?: MenuTargetProps;
148
+ menuProps?: MenuProps;
139
149
  }
140
150
  interface ActionCommonProps extends ButtonProps {
141
151
  children?: ReactNode;
@@ -159,178 +169,53 @@ interface ActionCommonProps extends ButtonProps {
159
169
  title?: string;
160
170
  message: string;
161
171
  };
172
+ /**
173
+ * Icon to display on the left side of the button.
174
+ * If no children are provided, the button will be styled as an icon-only button.
175
+ */
176
+ icon?: ReactNode;
177
+ /**
178
+ * Additional props to pass to the ThemeIcon wrapping the icon.
179
+ */
180
+ themeIconProps?: ThemeIconProps;
162
181
  }
163
- type ActionProps = ActionCommonProps & (ActiveHrefProps | ActionClickProps | ActionSubmitProps | {});
164
- declare const Action: (_props: ActionProps) => react_jsx_runtime3.JSX.Element;
165
- interface ActionSubmitProps extends ButtonProps {
182
+ type ActionProps = ActionCommonProps & (ActionNavigationButtonProps | ActionClickButtonProps | ActionSubmitButtonProps | ActionHookButtonProps | {});
183
+ declare const ActionButton: (_props: ActionProps) => react_jsx_runtime5.JSX.Element;
184
+ interface ActionSubmitButtonProps extends ButtonProps {
166
185
  form: FormModel<any>;
167
186
  }
168
- interface ActionClickProps extends ButtonProps {
187
+ interface ActionHookButtonProps extends ButtonProps {
188
+ action: UseActionReturn<any[], any>;
189
+ }
190
+ interface ActionClickButtonProps extends ButtonProps {
169
191
  onClick: (e: any) => any;
170
192
  }
171
- interface ActiveHrefProps extends ButtonProps {
193
+ interface ActionNavigationButtonProps extends ButtonProps {
172
194
  href: string;
173
195
  active?: Partial<UseActiveOptions> | false;
174
196
  routerGoOptions?: RouterGoOptions;
197
+ classNameActive?: string;
198
+ variantActive?: ButtonProps["variant"];
199
+ target?: string;
175
200
  }
176
201
  //#endregion
177
- //#region src/components/Omnibar.d.ts
178
- interface OmnibarProps {
179
- actions?: SpotlightActionData[];
180
- shortcut?: string | string[];
181
- searchPlaceholder?: string;
182
- nothingFound?: ReactNode;
183
- }
184
- declare const Omnibar: (props: OmnibarProps) => react_jsx_runtime3.JSX.Element;
185
- //#endregion
186
- //#region src/components/AlephaMantineProvider.d.ts
187
- interface AlephaMantineProviderProps {
188
- children?: ReactNode;
189
- mantine?: MantineProviderProps;
190
- colorSchemeScript?: ColorSchemeScriptProps;
191
- navigationProgress?: NavigationProgressProps;
192
- notifications?: NotificationsProps;
193
- modals?: ModalsProviderProps;
194
- omnibar?: OmnibarProps;
195
- }
196
- declare const AlephaMantineProvider: (props: AlephaMantineProviderProps) => react_jsx_runtime3.JSX.Element;
197
- //#endregion
198
- //#region src/components/ControlDate.d.ts
199
- interface ControlDateProps extends GenericControlProps {
200
- date?: boolean | DateInputProps;
201
- datetime?: boolean | DateTimePickerProps;
202
- time?: boolean | TimeInputProps;
203
- }
204
- /**
205
- * ControlDate component for handling date, datetime, and time inputs.
206
- *
207
- * Features:
208
- * - DateInput for date format
209
- * - DateTimePicker for date-time format
210
- * - TimeInput for time format
211
- *
212
- * Automatically detects date formats from schema and renders appropriate picker.
213
- */
214
- declare const ControlDate: (props: ControlDateProps) => react_jsx_runtime3.JSX.Element | null;
215
- //#endregion
216
- //#region src/components/DarkModeButton.d.ts
202
+ //#region src/components/buttons/DarkModeButton.d.ts
217
203
  interface DarkModeButtonProps {
218
204
  mode?: "minimal" | "segmented";
219
- size?: string | number;
205
+ size?: MantineBreakpoint;
220
206
  variant?: "filled" | "light" | "outline" | "default" | "subtle" | "transparent";
207
+ fullWidth?: boolean;
208
+ segmentedProps?: Partial<SegmentedControlProps>;
209
+ actionProps?: Partial<ActionProps>;
221
210
  }
222
- declare const DarkModeButton: (props: DarkModeButtonProps) => react_jsx_runtime3.JSX.Element;
211
+ declare const DarkModeButton: (props: DarkModeButtonProps) => react_jsx_runtime5.JSX.Element;
223
212
  //#endregion
224
- //#region src/components/DataTable.d.ts
225
- type SortDirection = "asc" | "desc" | null;
226
- interface DataTableColumn<T = any> {
227
- accessor: keyof T | string;
228
- title?: string;
229
- width?: number | string;
230
- sortable?: boolean;
231
- filterable?: boolean;
232
- hidden?: boolean;
233
- render?: (value: any, record: T, index: number) => React$1.ReactNode;
234
- renderHeader?: () => React$1.ReactNode;
235
- align?: "left" | "center" | "right";
236
- ellipsis?: boolean;
237
- className?: string;
238
- headerClassName?: string;
239
- }
240
- interface DataTableSort {
241
- column: string;
242
- direction: SortDirection;
243
- }
244
- interface DataTableFilter {
245
- column: string;
246
- value: string;
247
- operator?: "contains" | "equals" | "startsWith" | "endsWith";
248
- }
249
- interface DataTableProps<T = any> extends Omit<TableProps, "data"> {
250
- data: T[];
251
- columns: DataTableColumn<T>[];
252
- loading?: boolean;
253
- emptyMessage?: string;
254
- selectable?: boolean;
255
- selectedRows?: T[];
256
- onRowSelect?: (rows: T[]) => void;
257
- sortable?: boolean;
258
- sort?: DataTableSort;
259
- onSortChange?: (sort: DataTableSort) => void;
260
- filterable?: boolean;
261
- filters?: DataTableFilter[];
262
- onFiltersChange?: (filters: DataTableFilter[]) => void;
263
- filterPlaceholder?: string;
264
- paginate?: boolean;
265
- page?: number;
266
- pageSize?: number;
267
- totalRecords?: number;
268
- pageSizeOptions?: number[];
269
- onPageChange?: (page: number) => void;
270
- onPageSizeChange?: (size: number) => void;
271
- rowActions?: (record: T, index: number) => React$1.ReactNode;
272
- onRowClick?: (record: T, index: number) => void;
273
- rowClassName?: (record: T, index: number) => string;
274
- showHeader?: boolean;
275
- showFooter?: boolean;
276
- stickyHeader?: boolean;
277
- striped?: boolean;
278
- highlightOnHover?: boolean;
279
- showToolbar?: boolean;
280
- title?: string;
281
- actions?: React$1.ReactNode;
282
- showColumnToggle?: boolean;
283
- showRefresh?: boolean;
284
- onRefresh?: () => void;
285
- showExport?: boolean;
286
- onExport?: () => void;
287
- height?: number | string;
288
- minHeight?: number | string;
289
- maxHeight?: number | string;
290
- }
291
- declare function DataTable<T = any>({
292
- data,
293
- columns: initialColumns,
294
- loading,
295
- emptyMessage,
296
- selectable,
297
- selectedRows,
298
- onRowSelect,
299
- sortable,
300
- sort,
301
- onSortChange,
302
- filterable,
303
- filters,
304
- onFiltersChange,
305
- filterPlaceholder,
306
- paginate,
307
- page,
308
- pageSize,
309
- totalRecords,
310
- pageSizeOptions,
311
- onPageChange,
312
- onPageSizeChange,
313
- rowActions,
314
- onRowClick,
315
- rowClassName,
316
- showHeader,
317
- showFooter,
318
- stickyHeader,
319
- striped,
320
- highlightOnHover,
321
- showToolbar,
322
- title,
323
- actions,
324
- showColumnToggle,
325
- showRefresh,
326
- onRefresh,
327
- showExport,
328
- onExport,
329
- height,
330
- minHeight,
331
- maxHeight,
332
- ...tableProps
333
- }: DataTableProps<T>): react_jsx_runtime3.JSX.Element;
213
+ //#region src/components/buttons/OmnibarButton.d.ts
214
+ interface OmnibarButtonProps {
215
+ actionProps?: ActionProps;
216
+ collapsed?: boolean;
217
+ }
218
+ declare const OmnibarButton: (props: OmnibarButtonProps) => react_jsx_runtime5.JSX.Element;
334
219
  //#endregion
335
220
  //#region src/services/DialogService.d.ts
336
221
  interface BaseDialogOptions extends Partial<ModalProps> {
@@ -387,6 +272,10 @@ declare class DialogService {
387
272
  * Open a custom dialog with provided content
388
273
  */
389
274
  open(options?: BaseDialogOptions): string;
275
+ /**
276
+ * Close the currently open dialog or a specific dialog by ID
277
+ */
278
+ close(modalId?: string): void;
390
279
  /**
391
280
  * Show a JSON editor/viewer dialog
392
281
  */
@@ -395,10 +284,6 @@ declare class DialogService {
395
284
  * Show a form dialog for structured input
396
285
  */
397
286
  form(options?: BaseDialogOptions): Promise<any>;
398
- /**
399
- * Close the currently open dialog or a specific dialog by ID
400
- */
401
- close(modalId?: string): void;
402
287
  /**
403
288
  * Show a loading/progress dialog with optional progress percentage
404
289
  */
@@ -409,64 +294,45 @@ declare class DialogService {
409
294
  * Show an image viewer/gallery dialog
410
295
  */
411
296
  image(src: string | string[], options?: BaseDialogOptions): void;
412
- /**
413
- * Show a table/data grid dialog for displaying tabular data
414
- */
415
- table(data: any[], options?: BaseDialogOptions & {
416
- columns?: any[];
417
- }): void;
418
- /**
419
- * Show a multi-step wizard dialog
420
- */
421
- wizard(steps: any[], options?: BaseDialogOptions): Promise<any>;
422
297
  }
423
298
  //#endregion
424
299
  //#region src/components/dialogs/AlertDialog.d.ts
425
- declare function AlertDialog({
300
+ declare const AlertDialog: ({
426
301
  options,
427
302
  onClose
428
- }: AlertDialogProps): react_jsx_runtime3.JSX.Element;
303
+ }: AlertDialogProps) => react_jsx_runtime5.JSX.Element;
429
304
  //#endregion
430
305
  //#region src/components/dialogs/ConfirmDialog.d.ts
431
- declare function ConfirmDialog({
306
+ declare const ConfirmDialog: ({
432
307
  options,
433
308
  onConfirm
434
- }: ConfirmDialogProps): react_jsx_runtime3.JSX.Element;
309
+ }: ConfirmDialogProps) => react_jsx_runtime5.JSX.Element;
435
310
  //#endregion
436
311
  //#region src/components/dialogs/PromptDialog.d.ts
437
- declare function PromptDialog({
312
+ declare const PromptDialog: ({
438
313
  options,
439
314
  onSubmit
440
- }: PromptDialogProps): react_jsx_runtime3.JSX.Element;
315
+ }: PromptDialogProps) => react_jsx_runtime5.JSX.Element;
441
316
  //#endregion
442
- //#region src/components/Sidebar.d.ts
443
- interface MenuItem {
444
- id: string;
445
- label: string;
446
- icon?: ReactNode;
447
- href?: string;
448
- activeStartsWith?: boolean;
449
- onClick?: () => void;
450
- children?: MenuItem[];
451
- }
452
- interface SidebarProps {
453
- menu: MenuItem[];
454
- defaultOpenIds?: string[];
455
- onItemClick?: (item: MenuItem) => void;
456
- showSearchButton?: boolean;
457
- onSearchClick?: () => void;
458
- }
459
- declare const Sidebar: FC<SidebarProps>;
460
- interface SidebarItemProps {
461
- item: MenuItem;
462
- level: number;
463
- openIds: Set<string>;
464
- onToggle: (id: string) => void;
465
- onItemClick?: (item: MenuItem) => void;
317
+ //#region src/components/form/ControlDate.d.ts
318
+ interface ControlDateProps extends GenericControlProps {
319
+ date?: boolean | DateInputProps;
320
+ datetime?: boolean | DateTimePickerProps;
321
+ time?: boolean | TimeInputProps;
466
322
  }
467
- declare const SidebarItem: React.FC<SidebarItemProps>;
323
+ /**
324
+ * ControlDate component for handling date, datetime, and time inputs.
325
+ *
326
+ * Features:
327
+ * - DateInput for date format
328
+ * - DateTimePicker for date-time format
329
+ * - TimeInput for time format
330
+ *
331
+ * Automatically detects date formats from schema and renders appropriate picker.
332
+ */
333
+ declare const ControlDate: (props: ControlDateProps) => react_jsx_runtime5.JSX.Element | null;
468
334
  //#endregion
469
- //#region src/components/TypeForm.d.ts
335
+ //#region src/components/form/TypeForm.d.ts
470
336
  interface TypeFormProps<T extends TObject> {
471
337
  form: FormModel<T>;
472
338
  columns?: number | {
@@ -481,8 +347,8 @@ interface TypeFormProps<T extends TObject> {
481
347
  controlProps?: Partial<Omit<ControlProps, "input">>;
482
348
  skipFormElement?: boolean;
483
349
  skipSubmitButton?: boolean;
484
- submitButtonProps?: Partial<Omit<ActionSubmitProps, "form">>;
485
- resetButtonProps?: Partial<Omit<ActionSubmitProps, "form">>;
350
+ submitButtonProps?: Partial<Omit<ActionSubmitButtonProps, "form">>;
351
+ resetButtonProps?: Partial<Omit<ActionSubmitButtonProps, "form">>;
486
352
  }
487
353
  /**
488
354
  * TypeForm component that automatically renders all form inputs based on schema.
@@ -509,7 +375,184 @@ interface TypeFormProps<T extends TObject> {
509
375
  * return <TypeForm form={form} columns={2} />;
510
376
  * ```
511
377
  */
512
- declare const TypeForm: <T extends TObject>(props: TypeFormProps<T>) => react_jsx_runtime3.JSX.Element | null;
378
+ declare const TypeForm: <T extends TObject>(props: TypeFormProps<T>) => react_jsx_runtime5.JSX.Element | null;
379
+ //#endregion
380
+ //#region src/components/buttons/LanguageButton.d.ts
381
+ interface LanguageButtonProps {
382
+ languages?: string[];
383
+ actionProps?: ActionProps;
384
+ }
385
+ //#endregion
386
+ //#region src/components/layout/AppBar.d.ts
387
+ type AppBarItem = AppBarElement | AppBarBurger | AppBarDark | AppBarSearch | AppBarLang | AppBarSpacer | AppBarDivider;
388
+ interface AppBarElement {
389
+ position: "left" | "center" | "right";
390
+ element: ReactNode;
391
+ }
392
+ interface AppBarBurger {
393
+ position: "left" | "center" | "right";
394
+ type: "burger";
395
+ }
396
+ interface AppBarDark {
397
+ position: "left" | "center" | "right";
398
+ type: "dark";
399
+ props?: DarkModeButtonProps;
400
+ }
401
+ interface AppBarSearch {
402
+ position: "left" | "center" | "right";
403
+ type: "search";
404
+ props?: OmnibarButtonProps;
405
+ }
406
+ interface AppBarLang {
407
+ position: "left" | "center" | "right";
408
+ type: "lang";
409
+ props?: LanguageButtonProps;
410
+ }
411
+ interface AppBarSpacer {
412
+ position: "left" | "center" | "right";
413
+ type: "spacer";
414
+ }
415
+ interface AppBarDivider {
416
+ position: "left" | "center" | "right";
417
+ type: "divider";
418
+ }
419
+ interface AppBarProps {
420
+ flexProps?: FlexProps;
421
+ items?: AppBarItem[];
422
+ }
423
+ declare const AppBar: (props: AppBarProps) => react_jsx_runtime5.JSX.Element;
424
+ //#endregion
425
+ //#region src/components/layout/Sidebar.d.ts
426
+ interface SidebarProps {
427
+ menu?: SidebarNode[];
428
+ top?: SidebarNode[];
429
+ bottom?: SidebarNode[];
430
+ onItemClick?: (item: SidebarMenuItem) => void;
431
+ onSearchClick?: () => void;
432
+ theme?: SidebarTheme;
433
+ flexProps?: Partial<FlexProps>;
434
+ collapsed?: boolean;
435
+ gap?: MantineBreakpoint;
436
+ }
437
+ declare const Sidebar: (props: SidebarProps) => react_jsx_runtime5.JSX.Element;
438
+ interface SidebarItemProps {
439
+ item: SidebarMenuItem;
440
+ level: number;
441
+ onItemClick?: (item: SidebarMenuItem) => void;
442
+ theme: SidebarTheme;
443
+ }
444
+ interface SidebarItemProps {
445
+ item: SidebarMenuItem;
446
+ level: number;
447
+ onItemClick?: (item: SidebarMenuItem) => void;
448
+ theme: SidebarTheme;
449
+ }
450
+ type SidebarNode = SidebarMenuItem | SidebarSpacer | SidebarDivider | SidebarSearch | SidebarElement | SidebarSection;
451
+ interface SidebarAbstractItem {
452
+ position?: "top" | "bottom";
453
+ }
454
+ interface SidebarElement extends SidebarAbstractItem {
455
+ element: ReactNode;
456
+ }
457
+ interface SidebarSpacer extends SidebarAbstractItem {
458
+ type: "spacer";
459
+ }
460
+ interface SidebarDivider extends SidebarAbstractItem {
461
+ type: "divider";
462
+ }
463
+ interface SidebarSearch extends SidebarAbstractItem {
464
+ type: "search";
465
+ }
466
+ interface SidebarSection extends SidebarAbstractItem {
467
+ type: "section";
468
+ label: string;
469
+ }
470
+ interface SidebarMenuItem extends SidebarAbstractItem {
471
+ label: string | ReactNode;
472
+ description?: string;
473
+ icon?: ReactNode;
474
+ href?: string;
475
+ activeStartsWith?: boolean;
476
+ onClick?: () => void;
477
+ children?: SidebarMenuItem[];
478
+ rightSection?: ReactNode;
479
+ theme?: SidebarButtonTheme;
480
+ actionProps?: ActionProps;
481
+ }
482
+ interface SidebarButtonTheme {
483
+ radius?: MantineBreakpoint;
484
+ size?: MantineBreakpoint;
485
+ }
486
+ interface SidebarTheme {
487
+ button?: SidebarButtonTheme;
488
+ search?: SidebarButtonTheme;
489
+ }
490
+ //#endregion
491
+ //#region src/components/layout/AdminShell.d.ts
492
+ interface AdminShellProps {
493
+ appShellProps?: Partial<AppShellProps>;
494
+ appShellMainProps?: Partial<AppShellMainProps>;
495
+ appShellHeaderProps?: Partial<AppShellHeaderProps>;
496
+ appShellNavbarProps?: Partial<AppShellNavbarProps>;
497
+ appShellFooterProps?: Partial<AppShellFooterProps>;
498
+ sidebarProps?: Partial<SidebarProps>;
499
+ appBarProps?: Partial<AppBarProps>;
500
+ header?: ReactNode;
501
+ footer?: ReactNode;
502
+ children?: ReactNode;
503
+ }
504
+ declare module "@alepha/core" {
505
+ interface State {
506
+ "alepha.ui.sidebar.opened"?: boolean;
507
+ "alepha.ui.sidebar.collapsed"?: boolean;
508
+ }
509
+ }
510
+ declare const AdminShell: (props: AdminShellProps) => react_jsx_runtime5.JSX.Element;
511
+ //#endregion
512
+ //#region src/components/layout/Omnibar.d.ts
513
+ interface OmnibarProps {
514
+ shortcut?: string | string[];
515
+ searchPlaceholder?: string;
516
+ nothingFound?: ReactNode;
517
+ }
518
+ declare const Omnibar: (props: OmnibarProps) => react_jsx_runtime5.JSX.Element;
519
+ //#endregion
520
+ //#region src/components/layout/AlephaMantineProvider.d.ts
521
+ interface AlephaMantineProviderProps {
522
+ children?: ReactNode;
523
+ mantine?: MantineProviderProps;
524
+ colorSchemeScript?: ColorSchemeScriptProps;
525
+ navigationProgress?: NavigationProgressProps;
526
+ notifications?: NotificationsProps;
527
+ modals?: ModalsProviderProps;
528
+ omnibar?: OmnibarProps;
529
+ }
530
+ declare const AlephaMantineProvider: (props: AlephaMantineProviderProps) => react_jsx_runtime5.JSX.Element;
531
+ //#endregion
532
+ //#region src/components/table/DataTable.d.ts
533
+ interface DataTableColumn<T extends object> {
534
+ label: string;
535
+ value: (item: T) => ReactNode;
536
+ }
537
+ interface DataTableProps<T extends object> {
538
+ items: T[] | (() => Async<T[]>);
539
+ columns: {
540
+ [key: string]: DataTableColumn<T>;
541
+ };
542
+ tableProps?: TableProps;
543
+ tableTrProps?: (item: T) => TableTrProps;
544
+ }
545
+ declare const DataTable: <T extends object>(props: DataTableProps<T>) => react_jsx_runtime5.JSX.Element;
546
+ //#endregion
547
+ //#region src/constants/ui.d.ts
548
+ declare const ui: {
549
+ colors: {
550
+ transparent: string;
551
+ background: string;
552
+ surface: string;
553
+ elevated: string;
554
+ };
555
+ };
513
556
  //#endregion
514
557
  //#region src/hooks/useDialog.d.ts
515
558
  /**
@@ -538,10 +581,10 @@ declare class ToastService {
538
581
  };
539
582
  readonly options: ToastServiceOptions;
540
583
  show(options: NotificationData): void;
541
- info(options: Partial<NotificationData>): void;
542
- success(options: Partial<NotificationData>): void;
543
- warning(options: Partial<NotificationData>): void;
544
- danger(options: Partial<NotificationData>): void;
584
+ info(options: Partial<NotificationData> | string): void;
585
+ success(options: Partial<NotificationData> | string): void;
586
+ warning(options: Partial<NotificationData> | string): void;
587
+ danger(options: Partial<NotificationData> | string): void;
545
588
  }
546
589
  //#endregion
547
590
  //#region src/hooks/useToast.d.ts
@@ -608,6 +651,27 @@ declare module "typebox" {
608
651
  $control?: Omit<ControlProps, "input">;
609
652
  }
610
653
  }
654
+ declare module "@alepha/react" {
655
+ interface PageDescriptorOptions {
656
+ /**
657
+ * Human-readable title for the page.
658
+ * - for Sidebar navigation
659
+ * - for Omnibar navigation
660
+ * (soon)
661
+ * - for Breadcrumbs
662
+ * - for document title (with AlephaReactHead)
663
+ */
664
+ label?: string;
665
+ /**
666
+ * Optional description of the page.
667
+ */
668
+ description?: string;
669
+ /**
670
+ * Optional icon for the page.
671
+ */
672
+ icon?: ReactNode;
673
+ }
674
+ }
611
675
  /**
612
676
  * Mantine
613
677
  *
@@ -615,5 +679,5 @@ declare module "typebox" {
615
679
  */
616
680
  declare const AlephaUI: _alepha_core0.Service<_alepha_core0.Module<{}>>;
617
681
  //#endregion
618
- export { Action, AlephaMantineProvider, AlephaUI, AlertDialog, type AlertDialogOptions, type AlertDialogProps, type BaseDialogOptions, ConfirmDialog, type ConfirmDialogOptions, type ConfirmDialogProps, Control, ControlDate, ControlSelect, DarkModeButton, DataTable, type DataTableColumn, type DataTableFilter, type DataTableProps, type DataTableSort, DialogService, Flex, ICON_SIZES, IconSize, type MenuItem, Omnibar, PromptDialog, type PromptDialogOptions, type PromptDialogProps, RootRouter, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, ToastService, TypeForm, capitalize, getDefaultIcon, prettyName, useDialog, useToast };
619
- //# sourceMappingURL=index.d.ts.map
682
+ export { ActionButton, type ActionClickButtonProps, type ActionCommonProps, type ActionMenuConfig, type ActionMenuItem, type ActionNavigationButtonProps, type ActionProps, type ActionSubmitButtonProps, AdminShell, AlephaMantineProvider, AlephaUI, AlertDialog, type AlertDialogOptions, type AlertDialogProps, AppBar, type AppBarBurger, type AppBarDark, type AppBarDivider, type AppBarElement, type AppBarItem, type AppBarLang, type AppBarProps, type AppBarSearch, type AppBarSpacer, type BaseDialogOptions, ConfirmDialog, type ConfirmDialogOptions, type ConfirmDialogProps, Control, ControlDate, ControlSelect, DarkModeButton, DataTable, type DataTableColumn, type DataTableProps, DialogService, Flex, ICON_SIZES, IconSize, Omnibar, OmnibarButton, PromptDialog, type PromptDialogOptions, type PromptDialogProps, RootRouter, Sidebar, type SidebarAbstractItem, type SidebarButtonTheme, type SidebarDivider, type SidebarElement, type SidebarItemProps, type SidebarMenuItem, type SidebarNode, type SidebarProps, type SidebarSearch, type SidebarSection, type SidebarSpacer, type SidebarTheme, Text, ToastService, TypeForm, capitalize, getDefaultIcon, prettyName, ui, useDialog, useToast };
683
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/utils/parseInput.ts","../src/components/form/ControlSelect.tsx","../src/components/form/Control.tsx","../src/components/buttons/ActionButton.tsx","../src/components/buttons/DarkModeButton.tsx","../src/components/buttons/OmnibarButton.tsx","../src/services/DialogService.tsx","../src/components/dialogs/AlertDialog.tsx","../src/components/dialogs/ConfirmDialog.tsx","../src/components/dialogs/PromptDialog.tsx","../src/components/form/ControlDate.tsx","../src/components/form/TypeForm.tsx","../src/components/buttons/LanguageButton.tsx","../src/components/layout/AppBar.tsx","../src/components/layout/Sidebar.tsx","../src/components/layout/AdminShell.tsx","../src/components/layout/Omnibar.tsx","../src/components/layout/AlephaMantineProvider.tsx","../src/components/table/DataTable.tsx","../src/constants/ui.ts","../src/hooks/useDialog.ts","../src/services/ToastService.tsx","../src/hooks/useToast.ts","../src/RootRouter.ts","../src/utils/icons.tsx","../src/utils/string.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}