noorui-rtl 0.4.0 → 0.4.1
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 +31 -0
- package/LICENSE +21 -0
- package/dist/index.d.mts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +800 -191
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +791 -182
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,37 @@ 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
|
+
## [0.4.1] - 2025-11-29
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Calendar**: New `showIslamicHolidays` prop for automatic Islamic holiday highlighting. When enabled with `showHijri={true}`, displays event dots on 10 major Islamic holidays including:
|
|
12
|
+
- Islamic New Year (Muharram 1)
|
|
13
|
+
- Day of Ashura (Muharram 10)
|
|
14
|
+
- Prophet's Birthday (Rabi' al-Awwal 12)
|
|
15
|
+
- Isra and Mi'raj (Rajab 27)
|
|
16
|
+
- Laylat al-Bara'ah (Sha'ban 15)
|
|
17
|
+
- Start of Ramadan (Ramadan 1)
|
|
18
|
+
- Laylat al-Qadr (Ramadan 27)
|
|
19
|
+
- Eid al-Fitr (Shawwal 1)
|
|
20
|
+
- Day of Arafah (Dhu al-Hijjah 9)
|
|
21
|
+
- Eid al-Adha (Dhu al-Hijjah 10)
|
|
22
|
+
- **HijriDate**: Exported `ISLAMIC_HOLIDAYS` array and `getIslamicHoliday()` function for external use
|
|
23
|
+
- **Documentation**: Added "Islamic Holidays" feature card and interactive example to Calendar component page
|
|
24
|
+
- **Documentation**: Created book-content workspace with 3 complete RTL lessons (Keyboard Shortcuts, Positioning vs Direction, Transform Animations)
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- **ContextMenuShortcut**: Fixed keyboard shortcuts reversing in RTL mode (e.g., "K⌘" instead of "⌘K"). Implemented nested span structure where outer span handles positioning with logical properties and inner span uses `dir="ltr"` for text direction
|
|
28
|
+
- **DropdownMenuShortcut**: Fixed keyboard shortcuts reversing in RTL mode with same nested span pattern
|
|
29
|
+
- **CommandShortcut**: Fixed keyboard shortcuts reversing in RTL mode with same nested span pattern
|
|
30
|
+
- **Switch**: Fixed toggle thumb sliding in wrong direction in RTL mode. Added RTL transform variants (`rtl:-translate-x-4`) for proper animation direction
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
- Updated Calendar component documentation with new Islamic holidays feature
|
|
34
|
+
- Updated roadmap page with completed RTL fixes and Islamic holidays enhancement
|
|
35
|
+
- Enhanced RTL guide page with "Lessons Learned" section featuring 3 documented patterns
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
8
39
|
## [0.4.0] - 2025-11-28
|
|
9
40
|
|
|
10
41
|
### Added
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2025 Nuno Marques
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.mts
CHANGED
|
@@ -231,6 +231,8 @@ interface CalendarProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'on
|
|
|
231
231
|
onSelect?: (date: Date | DateRange | undefined) => void;
|
|
232
232
|
/** Show Hijri dates */
|
|
233
233
|
showHijri?: boolean;
|
|
234
|
+
/** Show Islamic holidays (requires showHijri) */
|
|
235
|
+
showIslamicHolidays?: boolean;
|
|
234
236
|
/** Calendar events to display */
|
|
235
237
|
events?: CalendarEvent[];
|
|
236
238
|
/** Disabled dates */
|
|
@@ -417,7 +419,7 @@ declare const CommandItem: React$1.ForwardRefExoticComponent<Omit<{
|
|
|
417
419
|
forceMount?: boolean;
|
|
418
420
|
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
419
421
|
declare const CommandShortcut: {
|
|
420
|
-
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
422
|
+
({ className, children, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
421
423
|
displayName: string;
|
|
422
424
|
};
|
|
423
425
|
|
|
@@ -497,7 +499,7 @@ declare const ContextMenuLabel: React$1.ForwardRefExoticComponent<Omit<ContextMe
|
|
|
497
499
|
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
498
500
|
declare const ContextMenuSeparator: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
499
501
|
declare const ContextMenuShortcut: {
|
|
500
|
-
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
502
|
+
({ className, children, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
501
503
|
displayName: string;
|
|
502
504
|
};
|
|
503
505
|
|
|
@@ -743,7 +745,7 @@ declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<Dropdown
|
|
|
743
745
|
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
744
746
|
declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
745
747
|
declare const DropdownMenuShortcut: {
|
|
746
|
-
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
748
|
+
({ className, children, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
747
749
|
displayName: string;
|
|
748
750
|
};
|
|
749
751
|
|
package/dist/index.d.ts
CHANGED
|
@@ -231,6 +231,8 @@ interface CalendarProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'on
|
|
|
231
231
|
onSelect?: (date: Date | DateRange | undefined) => void;
|
|
232
232
|
/** Show Hijri dates */
|
|
233
233
|
showHijri?: boolean;
|
|
234
|
+
/** Show Islamic holidays (requires showHijri) */
|
|
235
|
+
showIslamicHolidays?: boolean;
|
|
234
236
|
/** Calendar events to display */
|
|
235
237
|
events?: CalendarEvent[];
|
|
236
238
|
/** Disabled dates */
|
|
@@ -417,7 +419,7 @@ declare const CommandItem: React$1.ForwardRefExoticComponent<Omit<{
|
|
|
417
419
|
forceMount?: boolean;
|
|
418
420
|
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
419
421
|
declare const CommandShortcut: {
|
|
420
|
-
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
422
|
+
({ className, children, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
421
423
|
displayName: string;
|
|
422
424
|
};
|
|
423
425
|
|
|
@@ -497,7 +499,7 @@ declare const ContextMenuLabel: React$1.ForwardRefExoticComponent<Omit<ContextMe
|
|
|
497
499
|
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
498
500
|
declare const ContextMenuSeparator: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
499
501
|
declare const ContextMenuShortcut: {
|
|
500
|
-
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
502
|
+
({ className, children, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
501
503
|
displayName: string;
|
|
502
504
|
};
|
|
503
505
|
|
|
@@ -743,7 +745,7 @@ declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<Dropdown
|
|
|
743
745
|
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
744
746
|
declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
745
747
|
declare const DropdownMenuShortcut: {
|
|
746
|
-
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
748
|
+
({ className, children, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
747
749
|
displayName: string;
|
|
748
750
|
};
|
|
749
751
|
|