@dimaan/ui 0.0.12 → 0.0.14
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.cjs +452 -82
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +388 -107
- package/dist/index.d.ts +388 -107
- package/dist/index.js +426 -85
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { HTMLAttributes, ReactNode, ButtonHTMLAttributes, ReactElement, InputHTMLAttributes, ChangeEvent, ComponentPropsWithoutRef, FieldsetHTMLAttributes, Ref, TextareaHTMLAttributes } from 'react';
|
|
3
|
+
import { HTMLAttributes, ReactNode, ButtonHTMLAttributes, ReactElement, InputHTMLAttributes, ChangeEvent, ComponentPropsWithoutRef, FormEventHandler, FieldsetHTMLAttributes, Ref, TextareaHTMLAttributes } from 'react';
|
|
4
4
|
import { LinkProps } from 'react-router-dom';
|
|
5
|
+
import { Locale } from 'react-day-picker';
|
|
5
6
|
import * as RadixDropdown from '@radix-ui/react-dropdown-menu';
|
|
6
7
|
import { FieldValues, FieldPath, Control } from 'react-hook-form';
|
|
7
8
|
import * as RadixRadioGroup from '@radix-ui/react-radio-group';
|
|
@@ -296,6 +297,152 @@ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'typ
|
|
|
296
297
|
}
|
|
297
298
|
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
298
299
|
|
|
300
|
+
type DatePickerVariant = 'default' | 'filled' | 'ghost';
|
|
301
|
+
type DatePickerSize = 'sm' | 'md' | 'lg';
|
|
302
|
+
declare const datePickerTriggerVariantClass: Record<DatePickerVariant, string>;
|
|
303
|
+
/**
|
|
304
|
+
* Wider end-padding leaves room for the calendar icon and optional clear button.
|
|
305
|
+
* Logical properties keep RTL working free.
|
|
306
|
+
*/
|
|
307
|
+
declare const datePickerTriggerSizeClass: Record<DatePickerSize, string>;
|
|
308
|
+
declare const datePickerTriggerBaseClass = "group/datepicker relative inline-flex w-full items-center text-foreground outline-none transition-[background-color,border-color,box-shadow] focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-1 focus-visible:ring-offset-background aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-visible:ring-destructive/40 disabled:pointer-events-none disabled:opacity-50 cursor-pointer";
|
|
309
|
+
/** Empty-state trigger text (placeholder color). */
|
|
310
|
+
declare const datePickerPlaceholderClass = "truncate text-muted-foreground";
|
|
311
|
+
/** Filled-state trigger text. */
|
|
312
|
+
declare const datePickerValueClass = "truncate text-foreground";
|
|
313
|
+
/** Popover content (the open calendar panel). */
|
|
314
|
+
declare const datePickerContentClass = "z-50 overflow-hidden rounded-md border border-border bg-popover p-3 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
315
|
+
/** Wrapper applied to the `<DayPicker>` root via its `className` prop. */
|
|
316
|
+
declare const datePickerCalendarClass = "text-sm";
|
|
317
|
+
/** Month/year caption row. */
|
|
318
|
+
declare const datePickerCaptionClass = "flex items-center justify-between gap-2 pb-2 text-sm font-semibold";
|
|
319
|
+
/** Prev/Next nav buttons. */
|
|
320
|
+
declare const datePickerNavButtonClass = "inline-flex h-7 w-7 items-center justify-center rounded-md border border-input bg-background text-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50";
|
|
321
|
+
/** Day cell wrapper (`td`). */
|
|
322
|
+
declare const datePickerDayWrapperClass = "p-0 text-center";
|
|
323
|
+
/**
|
|
324
|
+
* Day button — base style for every clickable day. Modifier states (selected,
|
|
325
|
+
* today, outside-month, disabled) are applied to the wrapping day **cell** by
|
|
326
|
+
* react-day-picker and target the button via descendant selectors below.
|
|
327
|
+
*/
|
|
328
|
+
declare const datePickerDayBaseClass = "inline-flex h-8 w-8 items-center justify-center rounded-md text-sm text-foreground font-normal transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40";
|
|
329
|
+
/** Day cell modifier — applied to the currently selected day. Targets the inner button. */
|
|
330
|
+
declare const datePickerSelectedClass = "[&_button]:bg-primary [&_button]:text-primary-foreground [&_button]:hover:bg-primary [&_button]:hover:text-primary-foreground";
|
|
331
|
+
/** Day cell modifier — applied to today. */
|
|
332
|
+
declare const datePickerTodayClass = "[&_button]:font-semibold [&_button]:ring-1 [&_button]:ring-inset [&_button]:ring-ring/40";
|
|
333
|
+
/** Day cell modifier — applied to days from the previous / next month. */
|
|
334
|
+
declare const datePickerOutsideClass = "[&_button]:text-muted-foreground [&_button]:opacity-60";
|
|
335
|
+
/** Day cell modifier — applied to days outside min/max bounds (or custom matcher). */
|
|
336
|
+
declare const datePickerDisabledClass = "[&_button]:pointer-events-none [&_button]:opacity-40";
|
|
337
|
+
/** Weekday header cells. */
|
|
338
|
+
declare const datePickerWeekdayClass = "h-8 w-8 text-center text-xs font-medium text-muted-foreground";
|
|
339
|
+
/** Week row. */
|
|
340
|
+
declare const datePickerWeekClass = "flex w-full";
|
|
341
|
+
/** Weekdays row. */
|
|
342
|
+
declare const datePickerWeekdaysClass = "flex w-full";
|
|
343
|
+
/** Month grid (`table`). */
|
|
344
|
+
declare const datePickerMonthGridClass = "w-full border-collapse";
|
|
345
|
+
/** Months container. */
|
|
346
|
+
declare const datePickerMonthsClass = "flex flex-col gap-3";
|
|
347
|
+
/** Single month wrapper. */
|
|
348
|
+
declare const datePickerMonthClass = "flex flex-col gap-2";
|
|
349
|
+
/** Nav row (wraps prev/next buttons). */
|
|
350
|
+
declare const datePickerNavClass = "flex items-center gap-1";
|
|
351
|
+
|
|
352
|
+
interface DatePickerProps {
|
|
353
|
+
variant?: DatePickerVariant;
|
|
354
|
+
/** Visual size. Named `inputSize` to mirror `Input`'s `inputSize`. */
|
|
355
|
+
inputSize?: DatePickerSize;
|
|
356
|
+
/** Controlled ISO `YYYY-MM-DD` value. Pass `''` to clear. */
|
|
357
|
+
value?: string;
|
|
358
|
+
/** Uncontrolled initial ISO value. */
|
|
359
|
+
defaultValue?: string;
|
|
360
|
+
/** Fires with the new ISO string (or `''` when cleared). */
|
|
361
|
+
onValueChange?: (value: string) => void;
|
|
362
|
+
/**
|
|
363
|
+
* Synthetic-event handler for `react-hook-form`'s `field.onChange`. Both this
|
|
364
|
+
* and `onValueChange` fire on selection / clearing.
|
|
365
|
+
*/
|
|
366
|
+
onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
367
|
+
/** Called when focus leaves the trigger. */
|
|
368
|
+
onBlur?: () => void;
|
|
369
|
+
/** Native form name — rendered as a hidden input so submissions include the value. */
|
|
370
|
+
name?: string;
|
|
371
|
+
/** Override id (otherwise auto-generated). */
|
|
372
|
+
id?: string;
|
|
373
|
+
/** Disables the trigger and prevents the popover from opening. */
|
|
374
|
+
disabled?: boolean;
|
|
375
|
+
/** Marks the underlying value as required (for form validation). */
|
|
376
|
+
required?: boolean;
|
|
377
|
+
/** Disable dates strictly before this ISO date. */
|
|
378
|
+
min?: string;
|
|
379
|
+
/** Disable dates strictly after this ISO date. */
|
|
380
|
+
max?: string;
|
|
381
|
+
/** Placeholder shown when no date is selected. */
|
|
382
|
+
placeholder?: string;
|
|
383
|
+
/** Show an × button to clear the selection. Defaults to `true`. */
|
|
384
|
+
clearable?: boolean;
|
|
385
|
+
/** Accessible label for the clear button. Defaults to `'Clear date'`. */
|
|
386
|
+
clearLabel?: string;
|
|
387
|
+
/**
|
|
388
|
+
* Locale for calendar month / weekday names. Import from
|
|
389
|
+
* `react-day-picker/locale` (e.g. `import { arSA } from 'react-day-picker/locale'`).
|
|
390
|
+
* Defaults to English when omitted.
|
|
391
|
+
*/
|
|
392
|
+
locale?: Locale;
|
|
393
|
+
/**
|
|
394
|
+
* `Intl.DateTimeFormat` options for the trigger display. Defaults to
|
|
395
|
+
* `{ dateStyle: 'medium' }`.
|
|
396
|
+
*/
|
|
397
|
+
formatOptions?: Intl.DateTimeFormatOptions;
|
|
398
|
+
/** Popover side. */
|
|
399
|
+
side?: 'top' | 'bottom' | 'left' | 'right';
|
|
400
|
+
/** Popover alignment. */
|
|
401
|
+
align?: 'start' | 'center' | 'end';
|
|
402
|
+
'aria-invalid'?: boolean | 'true' | 'false';
|
|
403
|
+
'aria-describedby'?: string;
|
|
404
|
+
'aria-label'?: string;
|
|
405
|
+
/** Class applied to the trigger button. */
|
|
406
|
+
className?: string;
|
|
407
|
+
/** Class applied to the popover content (calendar panel). */
|
|
408
|
+
contentClassName?: string;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Modern date picker built on `@radix-ui/react-popover` + `react-day-picker`.
|
|
412
|
+
* Renders a `Select`-shaped trigger button + a calendar popup. **No
|
|
413
|
+
* label/helperText/error props by design** (ADR-007: Field owns all form
|
|
414
|
+
* layout). Wrap in `<Field label="…">` for label + helper + error wiring.
|
|
415
|
+
*
|
|
416
|
+
* Values are ISO `YYYY-MM-DD` strings — directly compatible with `zod.string().date()`
|
|
417
|
+
* and native form submission via the optional hidden `<input>` (when `name` is set).
|
|
418
|
+
*
|
|
419
|
+
* @example Inside a Field (RHF + Zod)
|
|
420
|
+
* ```tsx
|
|
421
|
+
* <Field name="dob" label="Date of birth" required>
|
|
422
|
+
* <DatePicker max={todayIso} />
|
|
423
|
+
* </Field>
|
|
424
|
+
* ```
|
|
425
|
+
*
|
|
426
|
+
* @example Bare with Arabic month names
|
|
427
|
+
* ```tsx
|
|
428
|
+
* import { arSA } from 'react-day-picker/locale';
|
|
429
|
+
*
|
|
430
|
+
* <DatePicker
|
|
431
|
+
* value={from}
|
|
432
|
+
* onValueChange={setFrom}
|
|
433
|
+
* locale={arSA}
|
|
434
|
+
* placeholder="اختر تاريخ"
|
|
435
|
+
* aria-label="من تاريخ"
|
|
436
|
+
* />
|
|
437
|
+
* ```
|
|
438
|
+
*
|
|
439
|
+
* @example Bounded range
|
|
440
|
+
* ```tsx
|
|
441
|
+
* <DatePicker min="2026-01-01" max="2026-12-31" />
|
|
442
|
+
* ```
|
|
443
|
+
*/
|
|
444
|
+
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
445
|
+
|
|
299
446
|
type DropdownMenuItemVariant = 'default' | 'destructive';
|
|
300
447
|
declare const dropdownMenuContentClass = "z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
301
448
|
declare const dropdownMenuItemBaseClass = "relative flex w-full cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0";
|
|
@@ -528,6 +675,208 @@ type FieldProps<TValues extends FieldValues = FieldValues, TName extends FieldPa
|
|
|
528
675
|
*/
|
|
529
676
|
declare function Field<TValues extends FieldValues = FieldValues, TName extends FieldPath<TValues> = FieldPath<TValues>>(props: FieldProps<TValues, TName>): ReactElement;
|
|
530
677
|
|
|
678
|
+
type PageHeaderHeadingLevel = 'h1' | 'h2' | 'h3' | 'h4';
|
|
679
|
+
/** Props passed to the routing-library `render` slot of the back button. */
|
|
680
|
+
interface PageHeaderBackRenderProps {
|
|
681
|
+
to?: LinkProps['to'];
|
|
682
|
+
className?: string;
|
|
683
|
+
children: ReactNode;
|
|
684
|
+
onClick?: () => void;
|
|
685
|
+
}
|
|
686
|
+
interface PageHeaderBackProps {
|
|
687
|
+
/** Visible label next to the arrow. Defaults to `"Back"`. */
|
|
688
|
+
label?: ReactNode;
|
|
689
|
+
/** Target to — renders a React Router `<Link>`. */
|
|
690
|
+
to?: LinkProps['to'];
|
|
691
|
+
/** Click handler — renders a `<button>` (or wraps the `render` element). */
|
|
692
|
+
onClick?: () => void;
|
|
693
|
+
/** Routing-library render prop (e.g. wrap a different link component). Wins over `to`. */
|
|
694
|
+
render?: (props: PageHeaderBackRenderProps) => ReactElement;
|
|
695
|
+
}
|
|
696
|
+
interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
|
|
697
|
+
/** Page title (required). */
|
|
698
|
+
title: ReactNode;
|
|
699
|
+
/** Optional secondary text under the title. */
|
|
700
|
+
description?: ReactNode;
|
|
701
|
+
/** Slot above the title for breadcrumbs (e.g. `<Breadcrumbs items={…} />` or your own JSX). */
|
|
702
|
+
breadcrumbs?: ReactNode;
|
|
703
|
+
/** Optional back button rendered above the title row. */
|
|
704
|
+
back?: PageHeaderBackProps;
|
|
705
|
+
/** Slot on the trailing side of the title row — buttons, dropdowns, etc. */
|
|
706
|
+
actions?: ReactNode;
|
|
707
|
+
/** Heading level for the title element. Defaults to `'h1'`. */
|
|
708
|
+
as?: PageHeaderHeadingLevel;
|
|
709
|
+
/** Add a bottom border separator. Default: `false`. */
|
|
710
|
+
bordered?: boolean;
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* Top-of-page header — title, optional description, breadcrumbs, back button,
|
|
714
|
+
* and actions slot. The first thing a user sees on any list / detail / form
|
|
715
|
+
* page in a dashboard.
|
|
716
|
+
*
|
|
717
|
+
* Designed to drop directly into `<DashboardContent>` (or any padded page
|
|
718
|
+
* container). Has no outer padding of its own — the surrounding layout owns
|
|
719
|
+
* spacing.
|
|
720
|
+
*
|
|
721
|
+
* @example List page header with primary action
|
|
722
|
+
* ```tsx
|
|
723
|
+
* <PageHeader
|
|
724
|
+
* title="Users"
|
|
725
|
+
* description="Manage your team members and their roles."
|
|
726
|
+
* actions={<Button onClick={openCreate}>Add user</Button>}
|
|
727
|
+
* bordered
|
|
728
|
+
* />
|
|
729
|
+
* ```
|
|
730
|
+
*
|
|
731
|
+
* @example Detail page header with back button
|
|
732
|
+
* ```tsx
|
|
733
|
+
* <PageHeader
|
|
734
|
+
* title={user.name}
|
|
735
|
+
* description={user.email}
|
|
736
|
+
* back={{
|
|
737
|
+
* label: 'Users',
|
|
738
|
+
* to: '/users',
|
|
739
|
+
* }}
|
|
740
|
+
* actions={
|
|
741
|
+
* <>
|
|
742
|
+
* <Button variant="outline">Edit</Button>
|
|
743
|
+
* <Button variant="destructive">Delete</Button>
|
|
744
|
+
* </>
|
|
745
|
+
* }
|
|
746
|
+
* />
|
|
747
|
+
* ```
|
|
748
|
+
*
|
|
749
|
+
* @example With breadcrumbs slot
|
|
750
|
+
* ```tsx
|
|
751
|
+
* <PageHeader
|
|
752
|
+
* breadcrumbs={
|
|
753
|
+
* <nav aria-label="Breadcrumb">
|
|
754
|
+
* <ol className="flex items-center gap-1">
|
|
755
|
+
* <li><Link to="/">Home</Link></li>
|
|
756
|
+
* <li>/</li>
|
|
757
|
+
* <li>Users</li>
|
|
758
|
+
* </ol>
|
|
759
|
+
* </nav>
|
|
760
|
+
* }
|
|
761
|
+
* title="Users"
|
|
762
|
+
* />
|
|
763
|
+
* ```
|
|
764
|
+
*/
|
|
765
|
+
declare const PageHeader: react.ForwardRefExoticComponent<PageHeaderProps & react.RefAttributes<HTMLElement>>;
|
|
766
|
+
|
|
767
|
+
declare const pageHeaderBaseClass = "flex w-full flex-col gap-3";
|
|
768
|
+
/** Adds a bottom border separator below the header. */
|
|
769
|
+
declare const pageHeaderBorderedClass = "border-b border-border pb-4";
|
|
770
|
+
declare const pageHeaderTitleRowClass = "flex flex-wrap items-start justify-between gap-3 sm:gap-4";
|
|
771
|
+
declare const pageHeaderTitleBlockClass = "min-w-0 flex-1 space-y-1";
|
|
772
|
+
declare const pageHeaderTitleClass = "text-2xl font-semibold tracking-tight text-foreground";
|
|
773
|
+
declare const pageHeaderDescriptionClass = "text-sm text-muted-foreground";
|
|
774
|
+
declare const pageHeaderActionsClass = "flex shrink-0 flex-wrap items-center gap-2";
|
|
775
|
+
declare const pageHeaderBackClass = "inline-flex items-center gap-1.5 self-start text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded-md";
|
|
776
|
+
declare const pageHeaderBackIconClass = "size-4 shrink-0 rtl:rotate-180";
|
|
777
|
+
declare const pageHeaderBreadcrumbsClass = "text-xs text-muted-foreground";
|
|
778
|
+
|
|
779
|
+
interface FormPageProps {
|
|
780
|
+
/** Page title (required). Rendered as an `<h1>` by `PageHeader`. */
|
|
781
|
+
title: ReactNode;
|
|
782
|
+
/** Optional secondary text under the title. */
|
|
783
|
+
description?: ReactNode;
|
|
784
|
+
/** Optional back-button config — forwarded straight to `PageHeader.back`. */
|
|
785
|
+
back?: PageHeaderBackProps;
|
|
786
|
+
/** Page-header bottom border separator. Defaults to `true` for form pages. */
|
|
787
|
+
bordered?: boolean;
|
|
788
|
+
/** Form-submit handler. Wire RHF via `form.handleSubmit(onSave)`. */
|
|
789
|
+
onSubmit: FormEventHandler<HTMLFormElement>;
|
|
790
|
+
/**
|
|
791
|
+
* Show skeleton placeholders in the body while the initial record is being
|
|
792
|
+
* fetched (typical for the edit page). The action bar still renders so the
|
|
793
|
+
* consumer can offer a "Cancel" exit; the consumer is responsible for
|
|
794
|
+
* disabling submit buttons while loading.
|
|
795
|
+
*/
|
|
796
|
+
isLoading?: boolean;
|
|
797
|
+
/** Number of skeleton rows shown while loading. Defaults to `6`. */
|
|
798
|
+
loadingRowCount?: number;
|
|
799
|
+
/**
|
|
800
|
+
* Action slot rendered inside a sticky bar at the bottom of the form
|
|
801
|
+
* (Cancel / Save / Save & continue, …). Pass `null` to hide the bar
|
|
802
|
+
* entirely (rare — usually you want at least a save button).
|
|
803
|
+
*/
|
|
804
|
+
actions: ReactNode;
|
|
805
|
+
/** Form body. Compose `<Field>` + your chosen controls, grouped however you like. */
|
|
806
|
+
children: ReactNode;
|
|
807
|
+
/** Class applied to the outer wrapper. */
|
|
808
|
+
className?: string;
|
|
809
|
+
/** Class applied to the `<form>` element. */
|
|
810
|
+
formClassName?: string;
|
|
811
|
+
/** Class applied to the body container that wraps `children`. */
|
|
812
|
+
bodyClassName?: string;
|
|
813
|
+
/** Class applied to the sticky action bar. */
|
|
814
|
+
actionsClassName?: string;
|
|
815
|
+
}
|
|
816
|
+
/**
|
|
817
|
+
* Declarative form-page template — composes `PageHeader` + a scrollable form
|
|
818
|
+
* body + a sticky action bar into a single component. **RHF-agnostic**:
|
|
819
|
+
* `onSubmit` is a plain event handler, so consumers wire react-hook-form (or
|
|
820
|
+
* any other library) by passing `form.handleSubmit(onSave)`.
|
|
821
|
+
*
|
|
822
|
+
* The component expects its parent to provide the scroll context — in the
|
|
823
|
+
* default `<AppShell>` setup, that's `<DashboardContent>`. The sticky bar
|
|
824
|
+
* relies on `position: sticky` against that scroll container.
|
|
825
|
+
*
|
|
826
|
+
* @example Inside a `<FormProvider>` (RHF + Zod)
|
|
827
|
+
* ```tsx
|
|
828
|
+
* const form = useForm<UserDraft>({ resolver: zodResolver(schema), defaultValues });
|
|
829
|
+
*
|
|
830
|
+
* return (
|
|
831
|
+
* <FormProvider {...form}>
|
|
832
|
+
* <FormPage
|
|
833
|
+
* title="New user"
|
|
834
|
+
* description="Invite a teammate to your workspace."
|
|
835
|
+
* back={{ to: '/users' }}
|
|
836
|
+
* onSubmit={form.handleSubmit(onSave)}
|
|
837
|
+
* actions={
|
|
838
|
+
* <>
|
|
839
|
+
* <Button type="button" variant="outline" onClick={() => navigate(-1)}>
|
|
840
|
+
* Cancel
|
|
841
|
+
* </Button>
|
|
842
|
+
* <Button type="submit" disabled={form.formState.isSubmitting}>
|
|
843
|
+
* Save
|
|
844
|
+
* </Button>
|
|
845
|
+
* </>
|
|
846
|
+
* }
|
|
847
|
+
* >
|
|
848
|
+
* <div className="grid gap-4 md:grid-cols-2">
|
|
849
|
+
* <Field name="name" label="Full name" required><Input /></Field>
|
|
850
|
+
* <Field name="email" label="Email" required><Input type="email" /></Field>
|
|
851
|
+
* </div>
|
|
852
|
+
* </FormPage>
|
|
853
|
+
* </FormProvider>
|
|
854
|
+
* );
|
|
855
|
+
* ```
|
|
856
|
+
*
|
|
857
|
+
* @example Edit mode with `isLoading`
|
|
858
|
+
* ```tsx
|
|
859
|
+
* <FormPage title="Edit user" isLoading={query.isLoading} onSubmit={…} actions={…}>
|
|
860
|
+
* {…fields…}
|
|
861
|
+
* </FormPage>
|
|
862
|
+
* ```
|
|
863
|
+
*/
|
|
864
|
+
declare function FormPage({ title, description, back, bordered, onSubmit, isLoading, loadingRowCount, actions, children, className, formClassName, bodyClassName, actionsClassName, }: FormPageProps): react_jsx_runtime.JSX.Element;
|
|
865
|
+
|
|
866
|
+
/** Outermost wrapper of `FormPage` — vertical flex column that fills its parent. */
|
|
867
|
+
declare const formPageBaseClass = "flex w-full flex-col gap-6";
|
|
868
|
+
/** Scrollable body region between the header and the sticky action bar. */
|
|
869
|
+
declare const formPageBodyClass = "flex-1";
|
|
870
|
+
/**
|
|
871
|
+
* Sticky action bar at the bottom of the form. Sits on a `bg-background`
|
|
872
|
+
* surface with a top border so it visually separates from the form body when
|
|
873
|
+
* the consumer scrolls. The parent (typically `<DashboardContent>`) is
|
|
874
|
+
* expected to be the scroll container.
|
|
875
|
+
*/
|
|
876
|
+
declare const formPageActionsBarClass = "sticky bottom-0 -mx-6 -mb-6 mt-6 flex items-center justify-end gap-2 border-t border-border bg-background/95 px-6 py-3 backdrop-blur supports-[backdrop-filter]:bg-background/80";
|
|
877
|
+
/** One skeleton row rendered while `isLoading` is true. */
|
|
878
|
+
declare const formPageSkeletonRowClass = "h-10 w-full animate-pulse rounded-md bg-muted";
|
|
879
|
+
|
|
531
880
|
type DashboardHeaderProps = HTMLAttributes<HTMLElement>;
|
|
532
881
|
declare function DashboardHeader({ className, children, ...props }: DashboardHeaderProps): react_jsx_runtime.JSX.Element;
|
|
533
882
|
|
|
@@ -848,7 +1197,7 @@ interface ListPageEmptyState {
|
|
|
848
1197
|
icon?: ReactNode;
|
|
849
1198
|
title?: ReactNode;
|
|
850
1199
|
description?: ReactNode;
|
|
851
|
-
/** Override the default
|
|
1200
|
+
/** Override the default action button. Pass `null` to hide entirely. */
|
|
852
1201
|
action?: ReactNode | null;
|
|
853
1202
|
}
|
|
854
1203
|
interface ListPageLabels {
|
|
@@ -858,10 +1207,14 @@ interface ListPageLabels {
|
|
|
858
1207
|
searchAriaLabel?: string;
|
|
859
1208
|
/** Default "Reset filters" button label. */
|
|
860
1209
|
reset?: string;
|
|
861
|
-
/** Default
|
|
1210
|
+
/** Default "no results matching filters" title. */
|
|
862
1211
|
emptyTitle?: string;
|
|
863
|
-
/** Default
|
|
1212
|
+
/** Default "no results matching filters" description. */
|
|
864
1213
|
emptyDescription?: string;
|
|
1214
|
+
/** Default "no data at all" title (shown when `data` is empty + no filters active). */
|
|
1215
|
+
noDataTitle?: string;
|
|
1216
|
+
/** Default "no data at all" description. */
|
|
1217
|
+
noDataDescription?: string;
|
|
865
1218
|
}
|
|
866
1219
|
interface ListPageProps<T> {
|
|
867
1220
|
title: ReactNode;
|
|
@@ -873,12 +1226,28 @@ interface ListPageProps<T> {
|
|
|
873
1226
|
data: T[];
|
|
874
1227
|
columns: Column<T>[];
|
|
875
1228
|
getRowId: (row: T) => string;
|
|
1229
|
+
/** Show skeleton rows in the table area while data is fetching. */
|
|
1230
|
+
isLoading?: boolean;
|
|
1231
|
+
/** Number of skeleton rows rendered while loading. Defaults to the table page size. */
|
|
1232
|
+
loadingRowCount?: number;
|
|
876
1233
|
/** Keys on `T` to search. Search input only renders when this is provided. */
|
|
877
1234
|
searchKeys?: Array<keyof T>;
|
|
878
1235
|
filters?: ListPageFilter<T>[];
|
|
879
1236
|
enableRowSelection?: boolean;
|
|
880
1237
|
bulkActions?: (selected: T[]) => ReactNode;
|
|
1238
|
+
/**
|
|
1239
|
+
* Shown when filters/search are active but match zero rows. Falls back to a
|
|
1240
|
+
* "No results — try clearing the search or adjusting the filters" prompt
|
|
1241
|
+
* with a reset button.
|
|
1242
|
+
*/
|
|
881
1243
|
emptyState?: ListPageEmptyState;
|
|
1244
|
+
/**
|
|
1245
|
+
* Shown when `data` is empty AND no filters/search are active (first-run
|
|
1246
|
+
* state). Falls back to a friendly "No data yet" message with an Inbox
|
|
1247
|
+
* icon. When `actions` is set, you typically want to encourage creation
|
|
1248
|
+
* via this slot's `action`.
|
|
1249
|
+
*/
|
|
1250
|
+
noDataState?: ListPageEmptyState;
|
|
882
1251
|
labels?: ListPageLabels;
|
|
883
1252
|
className?: string;
|
|
884
1253
|
}
|
|
@@ -891,6 +1260,11 @@ interface ListPageProps<T> {
|
|
|
891
1260
|
* sync, drop down to the underlying primitives directly (see the
|
|
892
1261
|
* `RecipeListPage` playground page for the manual composition pattern).
|
|
893
1262
|
*
|
|
1263
|
+
* **Three rendering branches in the table area:**
|
|
1264
|
+
* - `isLoading` → Table with skeleton rows (filter bar stays interactive).
|
|
1265
|
+
* - `data` empty AND no filters active → `noDataState` (first-run prompt).
|
|
1266
|
+
* - filters return zero rows → `emptyState` (with a reset action by default).
|
|
1267
|
+
*
|
|
894
1268
|
* @example Basic — Users list
|
|
895
1269
|
* ```tsx
|
|
896
1270
|
* <ListPage
|
|
@@ -898,6 +1272,7 @@ interface ListPageProps<T> {
|
|
|
898
1272
|
* description="Manage your team members."
|
|
899
1273
|
* actions={<Button onClick={openCreate}>Add user</Button>}
|
|
900
1274
|
* data={users}
|
|
1275
|
+
* isLoading={query.isLoading}
|
|
901
1276
|
* columns={USER_COLUMNS}
|
|
902
1277
|
* getRowId={(u) => u.id}
|
|
903
1278
|
* searchKeys={['name', 'email']}
|
|
@@ -915,6 +1290,11 @@ interface ListPageProps<T> {
|
|
|
915
1290
|
* ]}
|
|
916
1291
|
* enableRowSelection
|
|
917
1292
|
* bulkActions={(rows) => <Button variant="destructive">Delete ({rows.length})</Button>}
|
|
1293
|
+
* noDataState={{
|
|
1294
|
+
* title: 'No users yet',
|
|
1295
|
+
* description: 'Invite your first team member to get started.',
|
|
1296
|
+
* action: <Button onClick={openCreate}>Add user</Button>,
|
|
1297
|
+
* }}
|
|
918
1298
|
* />
|
|
919
1299
|
* ```
|
|
920
1300
|
*
|
|
@@ -927,112 +1307,13 @@ interface ListPageProps<T> {
|
|
|
927
1307
|
* reset: 'إعادة الفلاتر',
|
|
928
1308
|
* emptyTitle: 'لا توجد نتائج',
|
|
929
1309
|
* emptyDescription: 'حاول مسح البحث أو تغيير الفلاتر.',
|
|
1310
|
+
* noDataTitle: 'لا توجد بيانات بعد',
|
|
1311
|
+
* noDataDescription: 'لم يتم إضافة أي شيء هنا حتى الآن.',
|
|
930
1312
|
* }}
|
|
931
1313
|
* />
|
|
932
1314
|
* ```
|
|
933
1315
|
*/
|
|
934
|
-
declare function ListPage<T>({ title, description, bordered, actions, data, columns, getRowId, searchKeys, filters, enableRowSelection, bulkActions, emptyState, labels: labelsProp, className, }: ListPageProps<T>): react_jsx_runtime.JSX.Element;
|
|
935
|
-
|
|
936
|
-
type PageHeaderHeadingLevel = 'h1' | 'h2' | 'h3' | 'h4';
|
|
937
|
-
/** Props passed to the routing-library `render` slot of the back button. */
|
|
938
|
-
interface PageHeaderBackRenderProps {
|
|
939
|
-
to?: LinkProps['to'];
|
|
940
|
-
className?: string;
|
|
941
|
-
children: ReactNode;
|
|
942
|
-
onClick?: () => void;
|
|
943
|
-
}
|
|
944
|
-
interface PageHeaderBackProps {
|
|
945
|
-
/** Visible label next to the arrow. Defaults to `"Back"`. */
|
|
946
|
-
label?: ReactNode;
|
|
947
|
-
/** Target to — renders a React Router `<Link>`. */
|
|
948
|
-
to?: LinkProps['to'];
|
|
949
|
-
/** Click handler — renders a `<button>` (or wraps the `render` element). */
|
|
950
|
-
onClick?: () => void;
|
|
951
|
-
/** Routing-library render prop (e.g. wrap a different link component). Wins over `to`. */
|
|
952
|
-
render?: (props: PageHeaderBackRenderProps) => ReactElement;
|
|
953
|
-
}
|
|
954
|
-
interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
|
|
955
|
-
/** Page title (required). */
|
|
956
|
-
title: ReactNode;
|
|
957
|
-
/** Optional secondary text under the title. */
|
|
958
|
-
description?: ReactNode;
|
|
959
|
-
/** Slot above the title for breadcrumbs (e.g. `<Breadcrumbs items={…} />` or your own JSX). */
|
|
960
|
-
breadcrumbs?: ReactNode;
|
|
961
|
-
/** Optional back button rendered above the title row. */
|
|
962
|
-
back?: PageHeaderBackProps;
|
|
963
|
-
/** Slot on the trailing side of the title row — buttons, dropdowns, etc. */
|
|
964
|
-
actions?: ReactNode;
|
|
965
|
-
/** Heading level for the title element. Defaults to `'h1'`. */
|
|
966
|
-
as?: PageHeaderHeadingLevel;
|
|
967
|
-
/** Add a bottom border separator. Default: `false`. */
|
|
968
|
-
bordered?: boolean;
|
|
969
|
-
}
|
|
970
|
-
/**
|
|
971
|
-
* Top-of-page header — title, optional description, breadcrumbs, back button,
|
|
972
|
-
* and actions slot. The first thing a user sees on any list / detail / form
|
|
973
|
-
* page in a dashboard.
|
|
974
|
-
*
|
|
975
|
-
* Designed to drop directly into `<DashboardContent>` (or any padded page
|
|
976
|
-
* container). Has no outer padding of its own — the surrounding layout owns
|
|
977
|
-
* spacing.
|
|
978
|
-
*
|
|
979
|
-
* @example List page header with primary action
|
|
980
|
-
* ```tsx
|
|
981
|
-
* <PageHeader
|
|
982
|
-
* title="Users"
|
|
983
|
-
* description="Manage your team members and their roles."
|
|
984
|
-
* actions={<Button onClick={openCreate}>Add user</Button>}
|
|
985
|
-
* bordered
|
|
986
|
-
* />
|
|
987
|
-
* ```
|
|
988
|
-
*
|
|
989
|
-
* @example Detail page header with back button
|
|
990
|
-
* ```tsx
|
|
991
|
-
* <PageHeader
|
|
992
|
-
* title={user.name}
|
|
993
|
-
* description={user.email}
|
|
994
|
-
* back={{
|
|
995
|
-
* label: 'Users',
|
|
996
|
-
* to: '/users',
|
|
997
|
-
* }}
|
|
998
|
-
* actions={
|
|
999
|
-
* <>
|
|
1000
|
-
* <Button variant="outline">Edit</Button>
|
|
1001
|
-
* <Button variant="destructive">Delete</Button>
|
|
1002
|
-
* </>
|
|
1003
|
-
* }
|
|
1004
|
-
* />
|
|
1005
|
-
* ```
|
|
1006
|
-
*
|
|
1007
|
-
* @example With breadcrumbs slot
|
|
1008
|
-
* ```tsx
|
|
1009
|
-
* <PageHeader
|
|
1010
|
-
* breadcrumbs={
|
|
1011
|
-
* <nav aria-label="Breadcrumb">
|
|
1012
|
-
* <ol className="flex items-center gap-1">
|
|
1013
|
-
* <li><Link to="/">Home</Link></li>
|
|
1014
|
-
* <li>/</li>
|
|
1015
|
-
* <li>Users</li>
|
|
1016
|
-
* </ol>
|
|
1017
|
-
* </nav>
|
|
1018
|
-
* }
|
|
1019
|
-
* title="Users"
|
|
1020
|
-
* />
|
|
1021
|
-
* ```
|
|
1022
|
-
*/
|
|
1023
|
-
declare const PageHeader: react.ForwardRefExoticComponent<PageHeaderProps & react.RefAttributes<HTMLElement>>;
|
|
1024
|
-
|
|
1025
|
-
declare const pageHeaderBaseClass = "flex w-full flex-col gap-3";
|
|
1026
|
-
/** Adds a bottom border separator below the header. */
|
|
1027
|
-
declare const pageHeaderBorderedClass = "border-b border-border pb-4";
|
|
1028
|
-
declare const pageHeaderTitleRowClass = "flex flex-wrap items-start justify-between gap-3 sm:gap-4";
|
|
1029
|
-
declare const pageHeaderTitleBlockClass = "min-w-0 flex-1 space-y-1";
|
|
1030
|
-
declare const pageHeaderTitleClass = "text-2xl font-semibold tracking-tight text-foreground";
|
|
1031
|
-
declare const pageHeaderDescriptionClass = "text-sm text-muted-foreground";
|
|
1032
|
-
declare const pageHeaderActionsClass = "flex shrink-0 flex-wrap items-center gap-2";
|
|
1033
|
-
declare const pageHeaderBackClass = "inline-flex items-center gap-1.5 self-start text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded-md";
|
|
1034
|
-
declare const pageHeaderBackIconClass = "size-4 shrink-0 rtl:rotate-180";
|
|
1035
|
-
declare const pageHeaderBreadcrumbsClass = "text-xs text-muted-foreground";
|
|
1316
|
+
declare function ListPage<T>({ title, description, bordered, actions, data, columns, getRowId, isLoading, loadingRowCount, searchKeys, filters, enableRowSelection, bulkActions, emptyState, noDataState, labels: labelsProp, className, }: ListPageProps<T>): react_jsx_runtime.JSX.Element;
|
|
1036
1317
|
|
|
1037
1318
|
type RadioGroupSize = 'sm' | 'md' | 'lg';
|
|
1038
1319
|
/** Outer circle (radio button itself) — sized + bordered. */
|
|
@@ -1273,4 +1554,4 @@ declare function useDirection(): Direction;
|
|
|
1273
1554
|
|
|
1274
1555
|
declare function cn(...inputs: ClassValue[]): string;
|
|
1275
1556
|
|
|
1276
|
-
export { AppShell, type AppShellBrand, type AppShellNavGroup, type AppShellNavItem, type AppShellProps, Avatar, type AvatarProps, Badge, type BadgeProps, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, type CheckboxSize, type Column, type ColumnAlign, DashboardContent, type DashboardContentProps, DashboardHeader, type DashboardHeaderProps, DashboardLayout, type DashboardLayoutContextValue, type DashboardLayoutProps, DashboardMain, type DashboardMainProps, type Direction, DropdownMenu, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, type DropdownMenuItemVariant, DropdownMenuLabel, type DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuShortcut, type DropdownMenuShortcutProps, DropdownMenuTrigger, EmptyState, type EmptyStateProps, type EmptyStateSize, Field, type FieldOrientation, type FieldProps, type FieldRHFProps, HeaderActions, type HeaderActionsProps, HeaderCollapseTrigger, type HeaderCollapseTriggerProps, HeaderMobileTrigger, type HeaderMobileTriggerProps, HeaderSearch, type HeaderSearchProps, HeaderTitle, type HeaderTitleProps, Input, type InputProps, type InputSize, type InputVariant, type LanguageOption, LanguageSwitcher, type LanguageSwitcherProps, ListPage, type ListPageEmptyState, type ListPageFilter, type ListPageLabels, type ListPageProps, PageHeader, type PageHeaderBackProps, type PageHeaderBackRenderProps, type PageHeaderHeadingLevel, type PageHeaderProps, type PaginationState, RadioGroup, RadioGroupItem, type RadioGroupOption, type RadioGroupOrientation, type RadioGroupProps, type RadioGroupSize, type RowSelectionState, Select, type SelectOption, type SelectProps, type SelectSize, type SelectVariant, Sidebar, SidebarFooter, type SidebarFooterProps, SidebarGroup, type SidebarGroupProps, SidebarHeader, type SidebarHeaderProps, SidebarNav, SidebarNavGroup, type SidebarNavGroupProps, SidebarNavItem, type SidebarNavItemProps, type SidebarNavItemRenderProps, type SidebarNavProps, type SidebarProps, type SortDirection, type SortState, type SortableValue, Switch, type SwitchProps, type SwitchSize, Table, type TableProps, type TableSize, type TableSizeClasses, Textarea, type TextareaProps, type TextareaResize, type TextareaSize, type TextareaVariant, badgeBaseClass, badgeDotSizeClass, badgeSizeClass, badgeVariantClass, buttonBaseClass, buttonSizeClass, buttonVariantClass, cn, dropdownMenuContentClass, dropdownMenuItemBaseClass, dropdownMenuItemInsetClass, dropdownMenuItemVariantClass, dropdownMenuLabelClass, dropdownMenuSeparatorClass, dropdownMenuShortcutClass, emptyStateActionsSpacingClass, emptyStateBaseClass, emptyStateContainerSizeClass, emptyStateDescriptionSizeClass, emptyStateIconWrapperBaseClass, emptyStateIconWrapperSizeClass, emptyStateTitleSizeClass, inputBaseClass, inputSizeClass, inputVariantClass, pageHeaderActionsClass, pageHeaderBackClass, pageHeaderBackIconClass, pageHeaderBaseClass, pageHeaderBorderedClass, pageHeaderBreadcrumbsClass, pageHeaderDescriptionClass, pageHeaderTitleBlockClass, pageHeaderTitleClass, pageHeaderTitleRowClass, radioGroupBaseClass, radioGroupOrientationClass, radioIndicatorBaseClass, radioIndicatorDotClass, radioIndicatorSizeClass, radioItemBaseClass, radioItemSizeClass, radioLabelSizeClass, radioOptionRowClass, selectBaseClass, selectSizeClass, selectVariantClass, switchThumbBaseClass, switchThumbClass, switchTrackBaseClass, switchTrackClass, alignClass as tableAlignClass, tableBaseClass, selectedRowClass as tableSelectedRowClass, tableSizeClass, sortIconClass as tableSortIconClass, textareaBaseClass, textareaResizeClass, textareaSizeClass, textareaVariantClass, useDashboardLayout, useDirection };
|
|
1557
|
+
export { AppShell, type AppShellBrand, type AppShellNavGroup, type AppShellNavItem, type AppShellProps, Avatar, type AvatarProps, Badge, type BadgeProps, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, type CheckboxSize, type Column, type ColumnAlign, DashboardContent, type DashboardContentProps, DashboardHeader, type DashboardHeaderProps, DashboardLayout, type DashboardLayoutContextValue, type DashboardLayoutProps, DashboardMain, type DashboardMainProps, DatePicker, type DatePickerProps, type DatePickerSize, type DatePickerVariant, type Direction, DropdownMenu, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, type DropdownMenuItemVariant, DropdownMenuLabel, type DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuShortcut, type DropdownMenuShortcutProps, DropdownMenuTrigger, EmptyState, type EmptyStateProps, type EmptyStateSize, Field, type FieldOrientation, type FieldProps, type FieldRHFProps, FormPage, type FormPageProps, HeaderActions, type HeaderActionsProps, HeaderCollapseTrigger, type HeaderCollapseTriggerProps, HeaderMobileTrigger, type HeaderMobileTriggerProps, HeaderSearch, type HeaderSearchProps, HeaderTitle, type HeaderTitleProps, Input, type InputProps, type InputSize, type InputVariant, type LanguageOption, LanguageSwitcher, type LanguageSwitcherProps, ListPage, type ListPageEmptyState, type ListPageFilter, type ListPageLabels, type ListPageProps, PageHeader, type PageHeaderBackProps, type PageHeaderBackRenderProps, type PageHeaderHeadingLevel, type PageHeaderProps, type PaginationState, RadioGroup, RadioGroupItem, type RadioGroupOption, type RadioGroupOrientation, type RadioGroupProps, type RadioGroupSize, type RowSelectionState, Select, type SelectOption, type SelectProps, type SelectSize, type SelectVariant, Sidebar, SidebarFooter, type SidebarFooterProps, SidebarGroup, type SidebarGroupProps, SidebarHeader, type SidebarHeaderProps, SidebarNav, SidebarNavGroup, type SidebarNavGroupProps, SidebarNavItem, type SidebarNavItemProps, type SidebarNavItemRenderProps, type SidebarNavProps, type SidebarProps, type SortDirection, type SortState, type SortableValue, Switch, type SwitchProps, type SwitchSize, Table, type TableProps, type TableSize, type TableSizeClasses, Textarea, type TextareaProps, type TextareaResize, type TextareaSize, type TextareaVariant, badgeBaseClass, badgeDotSizeClass, badgeSizeClass, badgeVariantClass, buttonBaseClass, buttonSizeClass, buttonVariantClass, cn, datePickerCalendarClass, datePickerCaptionClass, datePickerContentClass, datePickerDayBaseClass, datePickerDayWrapperClass, datePickerDisabledClass, datePickerMonthClass, datePickerMonthGridClass, datePickerMonthsClass, datePickerNavButtonClass, datePickerNavClass, datePickerOutsideClass, datePickerPlaceholderClass, datePickerSelectedClass, datePickerTodayClass, datePickerTriggerBaseClass, datePickerTriggerSizeClass, datePickerTriggerVariantClass, datePickerValueClass, datePickerWeekClass, datePickerWeekdayClass, datePickerWeekdaysClass, dropdownMenuContentClass, dropdownMenuItemBaseClass, dropdownMenuItemInsetClass, dropdownMenuItemVariantClass, dropdownMenuLabelClass, dropdownMenuSeparatorClass, dropdownMenuShortcutClass, emptyStateActionsSpacingClass, emptyStateBaseClass, emptyStateContainerSizeClass, emptyStateDescriptionSizeClass, emptyStateIconWrapperBaseClass, emptyStateIconWrapperSizeClass, emptyStateTitleSizeClass, formPageActionsBarClass, formPageBaseClass, formPageBodyClass, formPageSkeletonRowClass, inputBaseClass, inputSizeClass, inputVariantClass, pageHeaderActionsClass, pageHeaderBackClass, pageHeaderBackIconClass, pageHeaderBaseClass, pageHeaderBorderedClass, pageHeaderBreadcrumbsClass, pageHeaderDescriptionClass, pageHeaderTitleBlockClass, pageHeaderTitleClass, pageHeaderTitleRowClass, radioGroupBaseClass, radioGroupOrientationClass, radioIndicatorBaseClass, radioIndicatorDotClass, radioIndicatorSizeClass, radioItemBaseClass, radioItemSizeClass, radioLabelSizeClass, radioOptionRowClass, selectBaseClass, selectSizeClass, selectVariantClass, switchThumbBaseClass, switchThumbClass, switchTrackBaseClass, switchTrackClass, alignClass as tableAlignClass, tableBaseClass, selectedRowClass as tableSelectedRowClass, tableSizeClass, sortIconClass as tableSortIconClass, textareaBaseClass, textareaResizeClass, textareaSizeClass, textareaVariantClass, useDashboardLayout, useDirection };
|