noorui-rtl 0.4.4 → 0.4.6
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 +39 -13
- package/README.md +1 -1
- package/dist/index.js +12 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +12 -9
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +21 -22
- package/styles/globals.css +0 -12
- package/styles/package.css +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -7,17 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### To Be Fixed
|
|
11
|
+
- **Popover Component**: RTL positioning issues in portal-rendered components
|
|
12
|
+
- NotificationCenter popup appears on wrong side in RTL mode
|
|
13
|
+
- TimePicker & TimeRangePicker popups appear on wrong side in RTL mode
|
|
14
|
+
- Need to add automatic direction detection (similar to DropdownMenu pattern)
|
|
15
|
+
|
|
16
|
+
## [0.4.6] - 2025-12-08
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- **Calendar Component**: Fixed form submission issue when used inside forms
|
|
20
|
+
- Added `type="button"` to all navigation buttons (previous month, next month, today)
|
|
21
|
+
- Added `type="button"` to all date selection buttons
|
|
22
|
+
- Prevents unintended form submissions when selecting dates or navigating months
|
|
23
|
+
- Resolves issue where clicking calendar buttons would trigger parent form submit handlers
|
|
24
|
+
|
|
25
|
+
### Notes
|
|
26
|
+
This is a critical bugfix for forms containing Calendar components in range or single selection mode. Previously, clicking any button within the Calendar would trigger form submission, causing premature validation and unexpected behavior.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## [0.4.5] - 2025-12-07
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
- **Cozy Theme**: Removed opinionated spacing and padding rules for more flexibility
|
|
34
|
+
- Removed forced `margin-bottom: 1.5rem` from headings (h1, h2, h3, h4)
|
|
35
|
+
- Removed forced `padding: 2rem !important` from all card components
|
|
36
|
+
- Removed forced button padding (`padding: .75rem 1.5rem`)
|
|
37
|
+
- Theme now respects component-level spacing defaults
|
|
38
|
+
- Updated both `globals.css` and `package.css` for consistency
|
|
39
|
+
|
|
40
|
+
### Notes
|
|
41
|
+
This release makes the Cozy theme less opinionated and more flexible, allowing developers to use standard component spacing without theme overrides.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
10
45
|
## [0.4.4] - 2025-12-06
|
|
11
46
|
|
|
12
47
|
### 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
48
|
- **Documentation Pages**: Fixed inconsistent section title spacing across component pages
|
|
22
49
|
- **number-input**: Fixed Use Cases, API Reference, and Features sections
|
|
23
50
|
- **date-picker**: Fixed Use Cases, Type Definition, API Reference (2x), and Features sections
|
|
@@ -25,11 +52,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
25
52
|
- All sections now use standard pattern: `<section className="mb-16">` with `<h2 className="text-2xl font-bold tracking-tight mb-6">`
|
|
26
53
|
|
|
27
54
|
### Changed
|
|
28
|
-
- **Popover Component**: Improved architecture to match DropdownMenu pattern for better RTL support
|
|
29
55
|
- **Component Documentation**: Standardized section spacing for consistent visual hierarchy
|
|
30
56
|
|
|
31
57
|
### Notes
|
|
32
|
-
This release focuses on
|
|
58
|
+
This release focuses on improving documentation consistency and visual hierarchy across all component pages.
|
|
33
59
|
|
|
34
60
|
## [0.4.3] - 2025-12-05
|
|
35
61
|
|
|
@@ -234,7 +260,7 @@ This release focuses on code quality improvements and documentation completeness
|
|
|
234
260
|
- Updated homepage URL to noorui.com
|
|
235
261
|
|
|
236
262
|
### Added
|
|
237
|
-
- Complete barrel export with all
|
|
263
|
+
- Complete barrel export with all 74+ components
|
|
238
264
|
- CHANGELOG.md, CONTRIBUTING.md documentation
|
|
239
265
|
- Improved package files configuration
|
|
240
266
|
|
|
@@ -271,7 +297,7 @@ Major update to Noor UI with significant component additions and improvements.
|
|
|
271
297
|
|
|
272
298
|
**Features**
|
|
273
299
|
- Complete RTL support with logical properties
|
|
274
|
-
-
|
|
300
|
+
- 74+ production-ready and experimental components
|
|
275
301
|
- Full TypeScript support with type definitions
|
|
276
302
|
- Radix UI primitives for accessibility
|
|
277
303
|
- Tailwind CSS with design tokens
|
|
@@ -280,7 +306,7 @@ Major update to Noor UI with significant component additions and improvements.
|
|
|
280
306
|
- WCAG AA compliant
|
|
281
307
|
|
|
282
308
|
### Changed
|
|
283
|
-
- Updated package structure to include all
|
|
309
|
+
- Updated package structure to include all 74+ components
|
|
284
310
|
- Improved TypeScript types and exports
|
|
285
311
|
- Enhanced documentation
|
|
286
312
|
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Beautiful RTL-first React components for bilingual applications. Built with Radi
|
|
|
14
14
|
## ✨ Features
|
|
15
15
|
|
|
16
16
|
- 🌍 **RTL-First**: Perfect Arabic/Persian support with logical properties
|
|
17
|
-
- 🎨 **
|
|
17
|
+
- 🎨 **74+ Components**: Complete UI toolkit for modern applications
|
|
18
18
|
- ♿ **Accessible**: WCAG AA compliant with full keyboard navigation
|
|
19
19
|
- 🎯 **TypeScript**: Full type safety and IntelliSense support
|
|
20
20
|
- 🎭 **Themeable**: Light/dark mode with customizable design tokens
|
package/dist/index.js
CHANGED
|
@@ -3375,7 +3375,7 @@ var home = {
|
|
|
3375
3375
|
},
|
|
3376
3376
|
recentWins: {
|
|
3377
3377
|
title: "Recent Wins",
|
|
3378
|
-
performance: "NPM package published (noorui-rtl v0.4.
|
|
3378
|
+
performance: "NPM package published (noorui-rtl v0.4.5)",
|
|
3379
3379
|
skeletons: "74+ production-ready components with full documentation",
|
|
3380
3380
|
components: "10+ complete demo projects (Blog, Marketplace, AI workflows)",
|
|
3381
3381
|
rebranding: "Full RTL/LTR support for ALL RTL languages (Arabic, Hebrew, Urdu, Farsi) + WCAG AA accessibility"
|
|
@@ -11779,7 +11779,7 @@ var home2 = {
|
|
|
11779
11779
|
},
|
|
11780
11780
|
recentWins: {
|
|
11781
11781
|
title: "\u0627\u0644\u0625\u0646\u062C\u0627\u0632\u0627\u062A \u0627\u0644\u0623\u062E\u064A\u0631\u0629",
|
|
11782
|
-
performance: "\u062A\u0645 \u0646\u0634\u0631 \u062D\u0632\u0645\u0629 NPM (noorui-rtl v0.4.
|
|
11782
|
+
performance: "\u062A\u0645 \u0646\u0634\u0631 \u062D\u0632\u0645\u0629 NPM (noorui-rtl v0.4.5)",
|
|
11783
11783
|
skeletons: "\u0623\u0643\u062B\u0631 \u0645\u0646 74 \u0645\u0643\u0648\u0646 \u062C\u0627\u0647\u0632 \u0644\u0644\u0625\u0646\u062A\u0627\u062C \u0645\u0639 \u062A\u0648\u062B\u064A\u0642 \u0643\u0627\u0645\u0644",
|
|
11784
11784
|
components: "\u0623\u0643\u062B\u0631 \u0645\u0646 10 \u0645\u0634\u0627\u0631\u064A\u0639 \u0639\u0631\u0636 \u0643\u0627\u0645\u0644\u0629 (\u0645\u062F\u0648\u0646\u0629\u060C \u0633\u0648\u0642\u060C \u0633\u064A\u0631 \u0639\u0645\u0644 AI)",
|
|
11785
11785
|
rebranding: "\u062F\u0639\u0645 \u0643\u0627\u0645\u0644 \u0644\u062C\u0645\u064A\u0639 \u0627\u0644\u0644\u063A\u0627\u062A RTL (\u0627\u0644\u0639\u0631\u0628\u064A\u0629\u060C \u0627\u0644\u0639\u0628\u0631\u064A\u0629\u060C \u0627\u0644\u0623\u0631\u062F\u064A\u0629\u060C \u0627\u0644\u0641\u0627\u0631\u0633\u064A\u0629) + \u0625\u0645\u0643\u0627\u0646\u064A\u0629 \u0627\u0644\u0648\u0635\u0648\u0644 WCAG AA"
|
|
@@ -17691,7 +17691,7 @@ var components_experimental2 = {
|
|
|
17691
17691
|
},
|
|
17692
17692
|
tokenCounterComponent: {
|
|
17693
17693
|
title: "\u0639\u062F\u0627\u062F \u0627\u0644\u0631\u0645\u0648\u0632",
|
|
17694
|
-
description: "\u0639\
|
|
17694
|
+
description: "\u0639\u0631\u0636 \u0648\u062A\u062A\u0628\u0639 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0627\u0644\u0631\u0645\u0648\u0632 \u0645\u0639 \u062A\u0642\u062F\u064A\u0631 \u0627\u0644\u062A\u0643\u0644\u0641\u0629 \u0644\u062A\u0641\u0627\u0639\u0644\u0627\u062A \u0646\u0645\u0648\u0630\u062C \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A. \u064A\u062A\u0636\u0645\u0646 \u0634\u0631\u064A\u0637 \u0627\u0644\u062A\u0642\u062F\u0645\u060C \u0627\u0644\u062A\u0641\u0635\u064A\u0644 \u062D\u0633\u0628 \u0627\u0644\u0625\u062F\u062E\u0627\u0644/\u0627\u0644\u0625\u062E\u0631\u0627\u062C\u060C \u0648\u0627\u0644\u062A\u062D\u0630\u064A\u0631\u0627\u062A \u0627\u0644\u0645\u0631\u0626\u064A\u0629 \u0639\u0646\u062F \u0627\u0644\u0627\u0642\u062A\u0631\u0627\u0628 \u0645\u0646 \u0627\u0644\u062D\u062F\u0648\u062F.",
|
|
17695
17695
|
preview: "\u0645\u0639\u0627\u064A\u0646\u0629",
|
|
17696
17696
|
installation: "\u0627\u0644\u062A\u062B\u0628\u064A\u062A",
|
|
17697
17697
|
usage: "\u0627\u0644\u0627\u0633\u062A\u062E\u062F\u0627\u0645",
|
|
@@ -17725,12 +17725,12 @@ var components_experimental2 = {
|
|
|
17725
17725
|
},
|
|
17726
17726
|
accessibility: {
|
|
17727
17727
|
title: "\u0625\u0645\u0643\u0627\u0646\u064A\u0629 \u0627\u0644\u0648\u0635\u0648\u0644",
|
|
17728
|
-
|
|
17729
|
-
|
|
17730
|
-
warningAnnouncements: "\u0625\u0639\u0644\u0627\u0646\u0627\u062A \u0627\u0644\u062A\u062D\u0630\u064A\u0631",
|
|
17731
|
-
warningAnnouncementsDesc: "\u064A\u062A\u0645 \u0627\u0644\u0625\u0639\u0644\u0627\u0646 \u0639\u0646 \u062A\u062D\u0630\u064A\u0631\u0627\u062A \u0627\u0644\u062D\u062F \u0628\u0634\u0643\u0644 \u0628\u0627\u0631\u0632 \u0645\u0639 \u0633\u0645\u0627\u062A ARIA \u0627\u0644\u0645\u0646\u0627\u0633\u0628\u0629.",
|
|
17728
|
+
screenReader: "\u0642\u0627\u0631\u0626 \u0627\u0644\u0634\u0627\u0634\u0629",
|
|
17729
|
+
screenReaderDesc: "\u064A\u062A\u0636\u0645\u0646 \u0627\u0644\u0645\u0643\u0648\u0646 \u062A\u0633\u0645\u064A\u0627\u062A \u0648\u0646\u0635\u0627\u0626\u062D \u0623\u062F\u0648\u0627\u062A \u0648\u0635\u0641\u064A\u0629. \u064A\u062A\u0645 \u062A\u0646\u0633\u064A\u0642 \u0639\u062F\u062F \u0627\u0644\u0631\u0645\u0648\u0632 \u0648\u0627\u0644\u062A\u0643\u0627\u0644\u064A\u0641 \u0628\u062A\u0646\u0633\u064A\u0642 \u0627\u0644\u0623\u0631\u0642\u0627\u0645 \u0627\u0644\u0645\u0646\u0627\u0633\u0628 \u0644\u0642\u0627\u0631\u0626\u0627\u062A \u0627\u0644\u0634\u0627\u0634\u0629.",
|
|
17732
17730
|
visualIndicators: "\u0627\u0644\u0645\u0624\u0634\u0631\u0627\u062A \u0627\u0644\u0628\u0635\u0631\u064A\u0629",
|
|
17733
|
-
visualIndicatorsDesc: "\u062A\
|
|
17731
|
+
visualIndicatorsDesc: "\u062A\u0634\u064A\u0631 \u0625\u0634\u0627\u0631\u0627\u062A \u0628\u0635\u0631\u064A\u0629 \u0645\u062A\u0639\u062F\u062F\u0629 \u0625\u0644\u0649 \u0627\u0644\u062D\u0627\u0644\u0629: \u0644\u0648\u0646 \u0634\u0631\u064A\u0637 \u0627\u0644\u062A\u0642\u062F\u0645\u060C \u0634\u0627\u0631\u0629 \u0627\u0644\u062A\u062D\u0630\u064A\u0631\u060C \u0648\u062A\u063A\u064A\u064A\u0631\u0627\u062A \u0644\u0648\u0646 \u0627\u0644\u062D\u062F\u0648\u062F. \u0647\u0630\u0627 \u064A\u0636\u0645\u0646 \u0623\u0646 \u0627\u0644\u062A\u062D\u0630\u064A\u0631\u0627\u062A \u0645\u0631\u0626\u064A\u0629 \u062D\u062A\u0649 \u062F\u0648\u0646 \u0627\u0644\u0627\u0639\u062A\u0645\u0627\u062F \u0641\u0642\u0637 \u0639\u0644\u0649 \u0627\u0644\u0644\u0648\u0646.",
|
|
17732
|
+
tooltips: "\u0646\u0635\u0627\u0626\u062D \u0627\u0644\u0623\u062F\u0648\u0627\u062A",
|
|
17733
|
+
tooltipsDesc: "\u062A\u0648\u0641\u0631 \u0623\u064A\u0642\u0648\u0646\u0629 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0633\u064A\u0627\u0642\u064B\u0627 \u062D\u0648\u0644 \u0627\u0644\u0631\u0645\u0648\u0632. \u062A\u0642\u0648\u0645 \u0646\u0635\u064A\u062D\u0629 \u0627\u0644\u062A\u0643\u0644\u0641\u0629 \u0628\u062A\u0641\u0635\u064A\u0644 \u062A\u0643\u0627\u0644\u064A\u0641 \u0627\u0644\u0625\u062F\u062E\u0627\u0644/\u0627\u0644\u0625\u062E\u0631\u0627\u062C \u0628\u0634\u0643\u0644 \u0645\u0646\u0641\u0635\u0644 \u0644\u0644\u0634\u0641\u0627\u0641\u064A\u0629."
|
|
17734
17734
|
},
|
|
17735
17735
|
rtl: {
|
|
17736
17736
|
title: "\u0627\u0639\u062A\u0628\u0627\u0631\u0627\u062A RTL",
|
|
@@ -18273,6 +18273,7 @@ var Calendar2 = React74__namespace.forwardRef(
|
|
|
18273
18273
|
return /* @__PURE__ */ React74__namespace.createElement("div", { ref, className: cn("w-full p-4", className), ...props }, /* @__PURE__ */ React74__namespace.createElement("div", { className: "flex items-center justify-between mb-4" }, /* @__PURE__ */ React74__namespace.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React74__namespace.createElement(
|
|
18274
18274
|
Button,
|
|
18275
18275
|
{
|
|
18276
|
+
type: "button",
|
|
18276
18277
|
variant: "outline",
|
|
18277
18278
|
size: "icon",
|
|
18278
18279
|
onClick: isRTL ? goToNextMonth : goToPreviousMonth,
|
|
@@ -18282,13 +18283,14 @@ var Calendar2 = React74__namespace.forwardRef(
|
|
|
18282
18283
|
), /* @__PURE__ */ React74__namespace.createElement(
|
|
18283
18284
|
Button,
|
|
18284
18285
|
{
|
|
18286
|
+
type: "button",
|
|
18285
18287
|
variant: "outline",
|
|
18286
18288
|
size: "icon",
|
|
18287
18289
|
onClick: isRTL ? goToPreviousMonth : goToNextMonth,
|
|
18288
18290
|
className: "h-8 w-8"
|
|
18289
18291
|
},
|
|
18290
18292
|
/* @__PURE__ */ React74__namespace.createElement(lucideReact.ChevronRight, { className: "h-4 w-4" })
|
|
18291
|
-
)), /* @__PURE__ */ React74__namespace.createElement("div", { className: "text-center" }, /* @__PURE__ */ React74__namespace.createElement("h2", { className: "text-lg font-semibold" }, monthName), showHijri && hijriMonthYear && /* @__PURE__ */ React74__namespace.createElement("p", { className: "text-sm text-muted-foreground" }, hijriMonthYear)), /* @__PURE__ */ React74__namespace.createElement(Button, { variant: "outline", size: "sm", onClick: goToToday }, t.ui.components.today)), /* @__PURE__ */ React74__namespace.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React74__namespace.createElement("div", { className: "grid grid-cols-7 gap-1" }, weekDays.map((day, index) => /* @__PURE__ */ React74__namespace.createElement(
|
|
18293
|
+
)), /* @__PURE__ */ React74__namespace.createElement("div", { className: "text-center" }, /* @__PURE__ */ React74__namespace.createElement("h2", { className: "text-lg font-semibold" }, monthName), showHijri && hijriMonthYear && /* @__PURE__ */ React74__namespace.createElement("p", { className: "text-sm text-muted-foreground" }, hijriMonthYear)), /* @__PURE__ */ React74__namespace.createElement(Button, { type: "button", variant: "outline", size: "sm", onClick: goToToday }, t.ui.components.today)), /* @__PURE__ */ React74__namespace.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React74__namespace.createElement("div", { className: "grid grid-cols-7 gap-1" }, weekDays.map((day, index) => /* @__PURE__ */ React74__namespace.createElement(
|
|
18292
18294
|
"div",
|
|
18293
18295
|
{
|
|
18294
18296
|
key: index,
|
|
@@ -18308,6 +18310,7 @@ var Calendar2 = React74__namespace.forwardRef(
|
|
|
18308
18310
|
return /* @__PURE__ */ React74__namespace.createElement(
|
|
18309
18311
|
"button",
|
|
18310
18312
|
{
|
|
18313
|
+
type: "button",
|
|
18311
18314
|
key: index,
|
|
18312
18315
|
onClick: () => handleDateClick(gregorian),
|
|
18313
18316
|
disabled: isDisabled,
|