noorui-rtl 0.4.2 → 0.4.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.
- package/CHANGELOG.md +78 -0
- package/CONTRIBUTING.md +1 -0
- package/README.md +4 -0
- package/dist/index.d.mts +16 -13
- package/dist/index.d.ts +16 -13
- package/dist/index.js +2870 -511
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2871 -512
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +4 -3
- package/styles/globals.css +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,84 @@ All notable changes to Noor UI will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.4.4] - 2025-12-06
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Popover Component**: Fixed RTL positioning issues by adding automatic direction detection (similar to DropdownMenu)
|
|
14
|
+
- Added MutationObserver to detect document direction changes
|
|
15
|
+
- Popover Root now automatically passes `dir` prop to Radix UI for proper RTL support
|
|
16
|
+
- Fixes notification popups, time pickers, and all popover-based components appearing on wrong side in RTL mode
|
|
17
|
+
- **NotificationCenter**: Fixed RTL positioning - popup now appears on correct side in RTL mode
|
|
18
|
+
- Updated align logic to `direction === 'rtl' ? 'start' : 'end'` for consistent right-side positioning
|
|
19
|
+
- **TimePicker & TimeRangePicker**: Fixed RTL positioning - popups now appear on correct side in RTL mode
|
|
20
|
+
- Updated align logic from `isRTL ? 'end' : 'start'` to `isRTL ? 'start' : 'end'`
|
|
21
|
+
- **Documentation Pages**: Fixed inconsistent section title spacing across component pages
|
|
22
|
+
- **number-input**: Fixed Use Cases, API Reference, and Features sections
|
|
23
|
+
- **date-picker**: Fixed Use Cases, Type Definition, API Reference (2x), and Features sections
|
|
24
|
+
- **time-picker**: Fixed Use Cases, Type Definition, API Reference (2x), and Features sections
|
|
25
|
+
- All sections now use standard pattern: `<section className="mb-16">` with `<h2 className="text-2xl font-bold tracking-tight mb-6">`
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
- **Popover Component**: Improved architecture to match DropdownMenu pattern for better RTL support
|
|
29
|
+
- **Component Documentation**: Standardized section spacing for consistent visual hierarchy
|
|
30
|
+
|
|
31
|
+
### Notes
|
|
32
|
+
This release focuses on fixing RTL positioning issues in portal-rendered components (Popover) and improving documentation consistency. All popover-based components (notifications, time pickers, etc.) now position correctly in RTL mode.
|
|
33
|
+
|
|
34
|
+
## [0.4.3] - 2025-12-05
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
- **Code Quality**: Resolved all React Hooks exhaustive-deps warnings (zero warnings achieved)
|
|
38
|
+
- **DataTable**: Wrapped `sampleUsers` in `useMemo` and added to dependency arrays in sorting, filtering, and pagination hooks
|
|
39
|
+
- **useRelativeTime Hook**: Wrapped `targetDate` in `useMemo` and `getRelativeTime` in `useCallback` with proper dependencies
|
|
40
|
+
- **Calendar**: Wrapped calendar days generation in `useMemo` with complete dependencies including `getHijriDate`
|
|
41
|
+
- **Translations**: Fixed missing i18n keys across 11+ experimental component pages
|
|
42
|
+
- Added `rtlDemo` object with `ltr` and `rtl` keys to common.ts (EN/AR)
|
|
43
|
+
- Added missing example keys: `fullFeatured`, `compactMode`, `withPresets`, `customPresets`, `withoutPresets`, `inContext`
|
|
44
|
+
- Fixed incorrect key references: `rtl` → `rtlSupport`, `interface` → `typeDefinitions`, `sizes` → `examples.sizes`, `inContext` → `examples.inContext`
|
|
45
|
+
- **NotificationCenter**: Fixed PropDefinition type error by changing `defaultValue` to `default` property
|
|
46
|
+
- **WorkflowCanvas & WorkflowNode**: Fixed missing imports for `useDirection` and `content` from i18n
|
|
47
|
+
- **ThinkingIndicator**: Fixed incorrect translation key references in examples section
|
|
48
|
+
- **ParameterSlider**: Fixed non-existent translation key reference
|
|
49
|
+
|
|
50
|
+
### Added
|
|
51
|
+
- **Website**: Added "Starters" link to main navigation (both desktop and mobile)
|
|
52
|
+
- **Website**: Added i18n translations for "Starters" menu item (English: "Starters", Arabic: "نماذج البداية")
|
|
53
|
+
- **Website**: Added /starters page to sitemap.ts for SEO (priority: 0.8, weekly updates)
|
|
54
|
+
- **SEO**: Added 3 OG images (bilingual, Arabic, English) at 1200×630px for social sharing
|
|
55
|
+
- **SEO**: Updated root layout metadata with comprehensive OpenGraph and Twitter Card metadata
|
|
56
|
+
- **Documentation**: Added OG image to main README.md for visual impact on GitHub
|
|
57
|
+
- **Documentation**: Added OG image to npm package README (packages/noorui/README.md)
|
|
58
|
+
- **Documentation**: Updated /starters page with Kitab Blog Starter information
|
|
59
|
+
- **Documentation**: Added Kitab live demo link (kitab.noorui.com) and GitHub repository
|
|
60
|
+
- **Documentation**: Updated README.md to include Starters page in documentation links
|
|
61
|
+
- **Documentation**: Updated ROADMAP.md to highlight Kitab as completed deliverable
|
|
62
|
+
- **Documentation**: Updated starters/README.md with full Kitab feature list
|
|
63
|
+
- **Code Standards**: Added ESLint disable comments for intentional img usage (component library design decision)
|
|
64
|
+
- NotificationCenter: Avatar display using dynamic user-provided URLs
|
|
65
|
+
- ListingCard: Product image display
|
|
66
|
+
- FileUpload: Image preview using blob URLs from FileReader
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
- **Website**: Improved visibility of /starters page through navigation integration
|
|
70
|
+
- **Starters Page**: Replaced placeholder "Blog Dashboard" with production-ready "Kitab - Blog Starter"
|
|
71
|
+
- **Starters Page**: Updated GitHub button to link to https://github.com/topics/noor-ui for broader project discovery
|
|
72
|
+
- **Roadmap**: Updated current status to "READY FOR PUBLIC LAUNCH" with technical pre-launch checklist completed
|
|
73
|
+
- **Roadmap**: Added Kitab to recent wins and next actions focused on marketing launch
|
|
74
|
+
- **Website**: Updated all version references from v0.4.2 to v0.4.3
|
|
75
|
+
- Homepage (app/page.tsx)
|
|
76
|
+
- English home translations (lib/i18n/en/home.ts)
|
|
77
|
+
- Arabic home translations (lib/i18n/ar/home.ts)
|
|
78
|
+
- Launch plan documentation (LAUNCH_PLAN.md - 7 references)
|
|
79
|
+
- Roadmap documentation (ROADMAP.md - 4 references)
|
|
80
|
+
- **Build Process**: Achieved zero build warnings and zero compilation errors
|
|
81
|
+
- **Code Quality**: Improved React performance patterns with proper memoization and callback usage
|
|
82
|
+
|
|
83
|
+
### Notes
|
|
84
|
+
This release focuses on code quality improvements and documentation completeness. All 74+ components maintain full RTL/LTR support with zero build warnings. The codebase is now optimized for production use with proper React performance patterns.
|
|
85
|
+
|
|
8
86
|
## [0.4.2] - 2025-11-29
|
|
9
87
|
|
|
10
88
|
### Added
|
package/CONTRIBUTING.md
CHANGED
package/README.md
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/noorui-rtl)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
+

|
|
9
|
+
|
|
8
10
|
Beautiful RTL-first React components for bilingual applications. Built with Radix UI, Tailwind CSS, and full Arabic/English support.
|
|
9
11
|
|
|
10
12
|
**[Documentation](https://noorui.com)** · **[Examples](https://noorui.com/examples)** · **[npm](https://www.npmjs.com/package/noorui-rtl)**
|
|
@@ -298,6 +300,7 @@ Full documentation, examples, and guides available at **[noorui.com](https://noo
|
|
|
298
300
|
- [Components](https://noorui.com/components)
|
|
299
301
|
- [RTL Guide](https://noorui.com/rtl-guide)
|
|
300
302
|
- [Examples](https://noorui.com/examples)
|
|
303
|
+
- [Starters](https://noorui.com/starters)
|
|
301
304
|
- [Design Tokens](https://noorui.com/tokens)
|
|
302
305
|
|
|
303
306
|
## 🤝 Contributing
|
|
@@ -318,6 +321,7 @@ Built with:
|
|
|
318
321
|
|
|
319
322
|
## 💬 Support
|
|
320
323
|
|
|
324
|
+
- 💬 Discord: [Join our community](https://discord.gg/gvrqU2WG)
|
|
321
325
|
- 📧 Email: info@ositaka.com
|
|
322
326
|
- 🐛 Issues: [GitHub Issues](https://github.com/ositaka/noor-ui/issues)
|
|
323
327
|
- 💬 Discussions: [GitHub Discussions](https://github.com/ositaka/noor-ui/discussions)
|
package/dist/index.d.mts
CHANGED
|
@@ -345,11 +345,11 @@ declare const CollapsibleContent: React$1.ForwardRefExoticComponent<CollapsibleP
|
|
|
345
345
|
|
|
346
346
|
declare const Command: React$1.ForwardRefExoticComponent<Omit<{
|
|
347
347
|
children?: React$1.ReactNode;
|
|
348
|
-
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
348
|
+
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
349
349
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
350
350
|
} & {
|
|
351
351
|
asChild?: boolean;
|
|
352
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
352
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
353
353
|
label?: string;
|
|
354
354
|
shouldFilter?: boolean;
|
|
355
355
|
filter?: (value: string, search: string, keywords?: string[]) => number;
|
|
@@ -373,45 +373,45 @@ declare const CommandInput: React$1.ForwardRefExoticComponent<Omit<Omit<Pick<Pic
|
|
|
373
373
|
} & React$1.RefAttributes<HTMLInputElement>, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
|
|
374
374
|
declare const CommandList: React$1.ForwardRefExoticComponent<Omit<{
|
|
375
375
|
children?: React$1.ReactNode;
|
|
376
|
-
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
376
|
+
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
377
377
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
378
378
|
} & {
|
|
379
379
|
asChild?: boolean;
|
|
380
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
380
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
381
381
|
label?: string;
|
|
382
382
|
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
383
383
|
declare const CommandEmpty: React$1.ForwardRefExoticComponent<Omit<{
|
|
384
384
|
children?: React$1.ReactNode;
|
|
385
|
-
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
385
|
+
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
386
386
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
387
387
|
} & {
|
|
388
388
|
asChild?: boolean;
|
|
389
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
389
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
390
390
|
declare const CommandGroup: React$1.ForwardRefExoticComponent<Omit<{
|
|
391
391
|
children?: React$1.ReactNode;
|
|
392
|
-
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
392
|
+
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
393
393
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
394
394
|
} & {
|
|
395
395
|
asChild?: boolean;
|
|
396
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
396
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
|
|
397
397
|
heading?: React$1.ReactNode;
|
|
398
398
|
value?: string;
|
|
399
399
|
forceMount?: boolean;
|
|
400
400
|
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
401
|
-
declare const CommandSeparator: React$1.ForwardRefExoticComponent<Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
401
|
+
declare const CommandSeparator: React$1.ForwardRefExoticComponent<Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
402
402
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
403
403
|
} & {
|
|
404
404
|
asChild?: boolean;
|
|
405
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
405
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
406
406
|
alwaysRender?: boolean;
|
|
407
407
|
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
408
408
|
declare const CommandItem: React$1.ForwardRefExoticComponent<Omit<{
|
|
409
409
|
children?: React$1.ReactNode;
|
|
410
|
-
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
410
|
+
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
411
411
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
412
412
|
} & {
|
|
413
413
|
asChild?: boolean;
|
|
414
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
414
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>>, "value" | "disabled" | "onSelect"> & {
|
|
415
415
|
disabled?: boolean;
|
|
416
416
|
onSelect?: (value: string) => void;
|
|
417
417
|
value?: string;
|
|
@@ -673,6 +673,9 @@ interface DataTableProps<T> {
|
|
|
673
673
|
totalPages?: number;
|
|
674
674
|
pageSize?: number;
|
|
675
675
|
onPageChange?: (page: number) => void;
|
|
676
|
+
nextLabel?: string;
|
|
677
|
+
previousLabel?: string;
|
|
678
|
+
pageLabel?: string;
|
|
676
679
|
mobileView?: 'table' | 'cards';
|
|
677
680
|
/** Show sort buttons on mobile cards */
|
|
678
681
|
mobileSorting?: boolean;
|
|
@@ -683,7 +686,7 @@ interface DataTableProps<T> {
|
|
|
683
686
|
hoverable?: boolean;
|
|
684
687
|
compact?: boolean;
|
|
685
688
|
}
|
|
686
|
-
declare function DataTable<T>({ data, columns, isLoading, sortBy: externalSortBy, sortDirection: externalSortDirection, onSort: externalOnSort, enableSorting, defaultSortBy, defaultSortDirection, searchable, searchPlaceholder, searchPlaceholderAr, searchValue, onSearchChange, pagination, currentPage, totalPages, pageSize, onPageChange, mobileView, mobileSorting, emptyMessage, emptyMessageAr, className, striped, hoverable, compact, }: DataTableProps<T>): React$1.JSX.Element;
|
|
689
|
+
declare function DataTable<T>({ data, columns, isLoading, sortBy: externalSortBy, sortDirection: externalSortDirection, onSort: externalOnSort, enableSorting, defaultSortBy, defaultSortDirection, searchable, searchPlaceholder, searchPlaceholderAr, searchValue, onSearchChange, pagination, currentPage, totalPages, pageSize, onPageChange, nextLabel, previousLabel, pageLabel, mobileView, mobileSorting, emptyMessage, emptyMessageAr, className, striped, hoverable, compact, }: DataTableProps<T>): React$1.JSX.Element;
|
|
687
690
|
|
|
688
691
|
interface DatePickerProps {
|
|
689
692
|
date?: Date;
|
package/dist/index.d.ts
CHANGED
|
@@ -345,11 +345,11 @@ declare const CollapsibleContent: React$1.ForwardRefExoticComponent<CollapsibleP
|
|
|
345
345
|
|
|
346
346
|
declare const Command: React$1.ForwardRefExoticComponent<Omit<{
|
|
347
347
|
children?: React$1.ReactNode;
|
|
348
|
-
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
348
|
+
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
349
349
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
350
350
|
} & {
|
|
351
351
|
asChild?: boolean;
|
|
352
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
352
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
353
353
|
label?: string;
|
|
354
354
|
shouldFilter?: boolean;
|
|
355
355
|
filter?: (value: string, search: string, keywords?: string[]) => number;
|
|
@@ -373,45 +373,45 @@ declare const CommandInput: React$1.ForwardRefExoticComponent<Omit<Omit<Pick<Pic
|
|
|
373
373
|
} & React$1.RefAttributes<HTMLInputElement>, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
|
|
374
374
|
declare const CommandList: React$1.ForwardRefExoticComponent<Omit<{
|
|
375
375
|
children?: React$1.ReactNode;
|
|
376
|
-
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
376
|
+
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
377
377
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
378
378
|
} & {
|
|
379
379
|
asChild?: boolean;
|
|
380
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
380
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
381
381
|
label?: string;
|
|
382
382
|
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
383
383
|
declare const CommandEmpty: React$1.ForwardRefExoticComponent<Omit<{
|
|
384
384
|
children?: React$1.ReactNode;
|
|
385
|
-
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
385
|
+
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
386
386
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
387
387
|
} & {
|
|
388
388
|
asChild?: boolean;
|
|
389
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
389
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
390
390
|
declare const CommandGroup: React$1.ForwardRefExoticComponent<Omit<{
|
|
391
391
|
children?: React$1.ReactNode;
|
|
392
|
-
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
392
|
+
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
393
393
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
394
394
|
} & {
|
|
395
395
|
asChild?: boolean;
|
|
396
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
396
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
|
|
397
397
|
heading?: React$1.ReactNode;
|
|
398
398
|
value?: string;
|
|
399
399
|
forceMount?: boolean;
|
|
400
400
|
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
401
|
-
declare const CommandSeparator: React$1.ForwardRefExoticComponent<Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
401
|
+
declare const CommandSeparator: React$1.ForwardRefExoticComponent<Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
402
402
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
403
403
|
} & {
|
|
404
404
|
asChild?: boolean;
|
|
405
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
405
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
406
406
|
alwaysRender?: boolean;
|
|
407
407
|
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
408
408
|
declare const CommandItem: React$1.ForwardRefExoticComponent<Omit<{
|
|
409
409
|
children?: React$1.ReactNode;
|
|
410
|
-
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React$1.HTMLAttributes<HTMLDivElement
|
|
410
|
+
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
411
411
|
ref?: React$1.Ref<HTMLDivElement>;
|
|
412
412
|
} & {
|
|
413
413
|
asChild?: boolean;
|
|
414
|
-
}, "asChild" | keyof React$1.HTMLAttributes<HTMLDivElement
|
|
414
|
+
}, "asChild" | "key" | keyof React$1.HTMLAttributes<HTMLDivElement>>, "value" | "disabled" | "onSelect"> & {
|
|
415
415
|
disabled?: boolean;
|
|
416
416
|
onSelect?: (value: string) => void;
|
|
417
417
|
value?: string;
|
|
@@ -673,6 +673,9 @@ interface DataTableProps<T> {
|
|
|
673
673
|
totalPages?: number;
|
|
674
674
|
pageSize?: number;
|
|
675
675
|
onPageChange?: (page: number) => void;
|
|
676
|
+
nextLabel?: string;
|
|
677
|
+
previousLabel?: string;
|
|
678
|
+
pageLabel?: string;
|
|
676
679
|
mobileView?: 'table' | 'cards';
|
|
677
680
|
/** Show sort buttons on mobile cards */
|
|
678
681
|
mobileSorting?: boolean;
|
|
@@ -683,7 +686,7 @@ interface DataTableProps<T> {
|
|
|
683
686
|
hoverable?: boolean;
|
|
684
687
|
compact?: boolean;
|
|
685
688
|
}
|
|
686
|
-
declare function DataTable<T>({ data, columns, isLoading, sortBy: externalSortBy, sortDirection: externalSortDirection, onSort: externalOnSort, enableSorting, defaultSortBy, defaultSortDirection, searchable, searchPlaceholder, searchPlaceholderAr, searchValue, onSearchChange, pagination, currentPage, totalPages, pageSize, onPageChange, mobileView, mobileSorting, emptyMessage, emptyMessageAr, className, striped, hoverable, compact, }: DataTableProps<T>): React$1.JSX.Element;
|
|
689
|
+
declare function DataTable<T>({ data, columns, isLoading, sortBy: externalSortBy, sortDirection: externalSortDirection, onSort: externalOnSort, enableSorting, defaultSortBy, defaultSortDirection, searchable, searchPlaceholder, searchPlaceholderAr, searchValue, onSearchChange, pagination, currentPage, totalPages, pageSize, onPageChange, nextLabel, previousLabel, pageLabel, mobileView, mobileSorting, emptyMessage, emptyMessageAr, className, striped, hoverable, compact, }: DataTableProps<T>): React$1.JSX.Element;
|
|
687
690
|
|
|
688
691
|
interface DatePickerProps {
|
|
689
692
|
date?: Date;
|