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 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