@appcorp/stellar-solutions-modules 0.1.34 → 0.1.35

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.
Files changed (157) hide show
  1. package/README.md +128 -19
  2. package/components/theme-switcher.d.ts +4 -0
  3. package/components/theme-switcher.js +60 -0
  4. package/components/ui/badge.d.ts +9 -0
  5. package/components/ui/badge.js +82 -0
  6. package/components/ui/button.d.ts +10 -0
  7. package/components/ui/button.js +91 -0
  8. package/components/ui/checkbox.d.ts +9 -0
  9. package/components/ui/checkbox.js +87 -0
  10. package/components/ui/drawer.d.ts +13 -0
  11. package/components/ui/drawer.js +115 -0
  12. package/components/ui/dropdown-menu.d.ts +25 -0
  13. package/components/ui/dropdown-menu.js +148 -0
  14. package/components/ui/enhanced-table-footer-action.d.ts +34 -0
  15. package/components/ui/enhanced-table-footer-action.js +117 -0
  16. package/components/ui/enhanced-table-footer-page.d.ts +32 -0
  17. package/components/ui/enhanced-table-footer-page.js +140 -0
  18. package/components/ui/enhanced-table-footer-pagination.d.ts +38 -0
  19. package/components/ui/enhanced-table-footer-pagination.js +122 -0
  20. package/components/ui/enhanced-table-header-action.d.ts +7 -0
  21. package/components/ui/enhanced-table-header-action.js +21 -0
  22. package/components/ui/enhanced-table-header-search.d.ts +12 -0
  23. package/components/ui/enhanced-table-header-search.js +17 -0
  24. package/components/ui/enhanced-table.d.ts +65 -0
  25. package/components/ui/enhanced-table.js +87 -0
  26. package/components/ui/input.d.ts +8 -0
  27. package/components/ui/input.js +86 -0
  28. package/components/ui/label.d.ts +7 -0
  29. package/components/ui/label.js +68 -0
  30. package/components/ui/popover.d.ts +7 -0
  31. package/components/ui/popover.js +82 -0
  32. package/components/ui/select.d.ts +15 -0
  33. package/components/ui/select.js +127 -0
  34. package/components/ui/sonner.d.ts +4 -0
  35. package/components/ui/sonner.js +54 -0
  36. package/components/ui/switch.d.ts +9 -0
  37. package/components/ui/switch.js +89 -0
  38. package/components/ui/table.d.ts +10 -0
  39. package/components/ui/table.js +101 -0
  40. package/global-modules/bank/actions.d.ts +200 -0
  41. package/global-modules/bank/actions.js +124 -0
  42. package/global-modules/bank/bank.d.ts +2 -0
  43. package/global-modules/bank/bank.js +87 -0
  44. package/global-modules/bank/constants.d.ts +45 -0
  45. package/global-modules/bank/constants.js +98 -0
  46. package/global-modules/bank/context.d.ts +41 -0
  47. package/global-modules/bank/context.js +419 -0
  48. package/global-modules/bank/drawer.d.ts +31 -0
  49. package/global-modules/bank/drawer.js +114 -0
  50. package/global-modules/bank/form.d.ts +22 -0
  51. package/global-modules/bank/form.js +68 -0
  52. package/global-modules/bank/reducer.d.ts +25 -0
  53. package/global-modules/bank/reducer.js +161 -0
  54. package/global-modules/bank/types.d.ts +217 -0
  55. package/global-modules/bank/types.js +81 -0
  56. package/global-modules/bank/validate.d.ts +13 -0
  57. package/global-modules/bank/validate.js +22 -0
  58. package/global-modules/branch/actions.d.ts +154 -37
  59. package/global-modules/branch/actions.js +148 -6
  60. package/global-modules/branch/branch.d.ts +2 -2
  61. package/global-modules/branch/branch.js +46 -32
  62. package/global-modules/branch/constants.d.ts +34 -24
  63. package/global-modules/branch/constants.js +101 -122
  64. package/global-modules/branch/context.d.ts +33 -2
  65. package/global-modules/branch/context.js +195 -164
  66. package/global-modules/branch/drawer.d.ts +26 -3
  67. package/global-modules/branch/drawer.js +101 -6
  68. package/global-modules/branch/form.d.ts +15 -1
  69. package/global-modules/branch/form.js +54 -71
  70. package/global-modules/branch/reducer.d.ts +23 -2
  71. package/global-modules/branch/reducer.js +148 -118
  72. package/global-modules/branch/types.d.ts +196 -69
  73. package/global-modules/branch/types.js +66 -7
  74. package/global-modules/branch/validate.d.ts +1 -1
  75. package/global-modules/branch/validate.js +15 -11
  76. package/global-modules/payment-mode/actions.d.ts +154 -37
  77. package/global-modules/payment-mode/actions.js +148 -6
  78. package/global-modules/payment-mode/constants.d.ts +34 -17
  79. package/global-modules/payment-mode/constants.js +90 -66
  80. package/global-modules/payment-mode/context.d.ts +33 -2
  81. package/global-modules/payment-mode/context.js +185 -163
  82. package/global-modules/payment-mode/drawer.d.ts +26 -3
  83. package/global-modules/payment-mode/drawer.js +104 -9
  84. package/global-modules/payment-mode/form.d.ts +16 -2
  85. package/global-modules/payment-mode/form.js +45 -74
  86. package/global-modules/payment-mode/payment-mode.d.ts +25 -2
  87. package/global-modules/payment-mode/payment-mode.js +90 -23
  88. package/global-modules/payment-mode/reducer.d.ts +23 -2
  89. package/global-modules/payment-mode/reducer.js +140 -114
  90. package/global-modules/payment-mode/types.d.ts +327 -112
  91. package/global-modules/payment-mode/types.js +162 -11
  92. package/global-modules/payment-mode/validate.d.ts +1 -1
  93. package/global-modules/payment-mode/validate.js +7 -5
  94. package/global-modules/preferences/actions.d.ts +126 -27
  95. package/global-modules/preferences/actions.js +128 -4
  96. package/global-modules/preferences/constants.d.ts +46 -31
  97. package/global-modules/preferences/constants.js +129 -66
  98. package/global-modules/preferences/context.d.ts +2 -2
  99. package/global-modules/preferences/context.js +43 -43
  100. package/global-modules/preferences/currency.js +15 -10
  101. package/global-modules/preferences/preferences.d.ts +2 -2
  102. package/global-modules/preferences/preferences.js +3 -5
  103. package/global-modules/preferences/validate.d.ts +1 -1
  104. package/global-modules/preferences/validate.js +7 -7
  105. package/global-modules/tax/actions.d.ts +155 -38
  106. package/global-modules/tax/actions.js +149 -7
  107. package/global-modules/tax/constants.d.ts +31 -39
  108. package/global-modules/tax/constants.js +83 -114
  109. package/global-modules/tax/context.d.ts +33 -2
  110. package/global-modules/tax/context.js +146 -132
  111. package/global-modules/tax/drawer.d.ts +26 -3
  112. package/global-modules/tax/drawer.js +101 -6
  113. package/global-modules/tax/form.d.ts +20 -3
  114. package/global-modules/tax/form.js +101 -74
  115. package/global-modules/tax/reducer.d.ts +23 -2
  116. package/global-modules/tax/reducer.js +143 -24
  117. package/global-modules/tax/tax.d.ts +25 -2
  118. package/global-modules/tax/tax.js +92 -28
  119. package/global-modules/tax/types.d.ts +332 -102
  120. package/global-modules/tax/types.js +179 -11
  121. package/global-modules/tax/validate.d.ts +1 -1
  122. package/global-modules/tax/validate.js +9 -8
  123. package/hooks/use-rtl.d.ts +44 -0
  124. package/hooks/use-rtl.js +75 -0
  125. package/lib/themes.d.ts +147 -0
  126. package/lib/themes.js +150 -0
  127. package/lib/toast-utils.d.ts +44 -0
  128. package/lib/toast-utils.js +212 -0
  129. package/lib/utils.d.ts +2 -0
  130. package/lib/utils.js +12 -0
  131. package/package.json +21 -4
  132. package/supabase/supabase.d.ts +80 -1
  133. package/supabase/supabase.js +281 -6
  134. package/global-modules/branch/form-elements.d.ts +0 -3
  135. package/global-modules/branch/form-elements.js +0 -41
  136. package/global-modules/payment-mode/form-elements.d.ts +0 -3
  137. package/global-modules/payment-mode/form-elements.js +0 -41
  138. package/global-modules/preferences/bank.d.ts +0 -2
  139. package/global-modules/preferences/bank.js +0 -11
  140. package/global-modules/preferences/branch-drawer.js +0 -36
  141. package/global-modules/preferences/branch-form-elements.js +0 -30
  142. package/global-modules/preferences/branch-form.d.ts +0 -0
  143. package/global-modules/preferences/branch-form.js +0 -33
  144. package/global-modules/preferences/branch.d.ts +0 -0
  145. package/global-modules/preferences/branch.js +0 -106
  146. package/global-modules/preferences/payment-mode-drawer.d.ts +0 -0
  147. package/global-modules/preferences/payment-mode-drawer.js +0 -36
  148. package/global-modules/preferences/payment-mode-form-elements.d.ts +0 -0
  149. package/global-modules/preferences/payment-mode-form-elements.js +0 -30
  150. package/global-modules/preferences/payment-mode-form.d.ts +0 -0
  151. package/global-modules/preferences/payment-mode-form.js +0 -33
  152. package/global-modules/preferences/payment-mode.d.ts +0 -0
  153. package/global-modules/preferences/payment-mode.js +0 -94
  154. package/global-modules/tax/form-elements.d.ts +0 -3
  155. package/global-modules/tax/form-elements.js +0 -41
  156. /package/{global-modules/preferences/branch-drawer.d.ts → constants.d.ts} +0 -0
  157. /package/{global-modules/preferences/branch-form-elements.d.ts → constants.js} +0 -0
@@ -1,22 +1,190 @@
1
1
  "use strict";
2
+ /**
3
+ * Tax Module Types
4
+ *
5
+ * This module defines all TypeScript interfaces, types, and enums for the Tax feature.
6
+ * Provides type safety and clear contracts for all tax-related operations.
7
+ *
8
+ * Type Categories:
9
+ * - Context Types (React context and state management)
10
+ * - Entity Types (Backend data structures)
11
+ * - State Types (Frontend component state)
12
+ * - API Types (Request/response interfaces)
13
+ * - UI Types (Drawer and component enums)
14
+ * - Utility Types (Helper and computed types)
15
+ *
16
+ * Advanced Features:
17
+ * - Tax management with rate calculations
18
+ * - CRUD operations support
19
+ * - Enhanced search and pagination
20
+ *
21
+ * Naming Conventions:
22
+ * - Interfaces: PascalCase with descriptive suffixes (Type, State, Args)
23
+ * - Enums: UPPER_SNAKE_CASE for values, PascalCase for enum names
24
+ * - Types: PascalCase following interface conventions
25
+ */
2
26
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PREFERENCE_MODAL = exports.TAX_DRAWER = exports.PAYMENT_TYPE = void 0;
4
- // export enum PAYMENT_MODE {
5
- // BANK_TRANSFER = 'BANK_TRANSFER',
6
- // CASH = 'CASH',
7
- // CHEQUE = 'CHEQUE',
8
- // OTHER = 'OTHER',
9
- // }
27
+ exports.PREFERENCE_MODAL = exports.formatTaxRate = exports.calculateTaxAmount = exports.getTaxRateAsNumber = exports.getTaxDisplayName = exports.isTaxDefault = exports.isTaxEnabled = exports.isFetchTaxesArgs = exports.isPaymentType = exports.isTaxDrawer = exports.isTaxTypeBE = exports.PAYMENT_TYPE = exports.TAX_DRAWER = void 0;
28
+ // ============================================================================
29
+ // UI ENUMS (Component State Definitions)
30
+ // ============================================================================
31
+ /**
32
+ * Tax Drawer Types
33
+ *
34
+ * Enumeration of all available drawer states for tax UI.
35
+ */
36
+ var TAX_DRAWER;
37
+ (function (TAX_DRAWER) {
38
+ TAX_DRAWER["FORM_DRAWER"] = "FORM_DRAWER";
39
+ })(TAX_DRAWER || (exports.TAX_DRAWER = TAX_DRAWER = {}));
40
+ /**
41
+ * Payment Types
42
+ *
43
+ * Enumeration of payment type classifications.
44
+ */
10
45
  var PAYMENT_TYPE;
11
46
  (function (PAYMENT_TYPE) {
12
47
  PAYMENT_TYPE["FULL_PAYMENT"] = "FULL_PAYMENT";
13
48
  PAYMENT_TYPE["PARTIAL_PAYMENT"] = "PARTIAL_PAYMENT";
14
49
  })(PAYMENT_TYPE || (exports.PAYMENT_TYPE = PAYMENT_TYPE = {}));
15
- var TAX_DRAWER;
16
- (function (TAX_DRAWER) {
17
- TAX_DRAWER["FORM_DRAWER"] = "FORM_DRAWER";
18
- })(TAX_DRAWER || (exports.TAX_DRAWER = TAX_DRAWER = {}));
50
+ // ============================================================================
51
+ // TYPE GUARDS (Runtime Type Checking)
52
+ // ============================================================================
53
+ /**
54
+ * Type guard to check if object is a valid TaxTypeBE
55
+ */
56
+ var isTaxTypeBE = function (obj) {
57
+ return (typeof obj === "object" &&
58
+ obj !== null &&
59
+ "id" in obj &&
60
+ "taxName" in obj &&
61
+ "taxRate" in obj &&
62
+ typeof obj.enabled === "boolean" &&
63
+ typeof obj.isDefault === "boolean");
64
+ };
65
+ exports.isTaxTypeBE = isTaxTypeBE;
66
+ /**
67
+ * Type guard to check if string is a valid tax drawer type
68
+ */
69
+ var isTaxDrawer = function (value) {
70
+ return Object.values(TAX_DRAWER).includes(value);
71
+ };
72
+ exports.isTaxDrawer = isTaxDrawer;
73
+ /**
74
+ * Type guard to check if string is a valid payment type
75
+ */
76
+ var isPaymentType = function (value) {
77
+ return Object.values(PAYMENT_TYPE).includes(value);
78
+ };
79
+ exports.isPaymentType = isPaymentType;
80
+ /**
81
+ * Type guard to check if object has valid tax filter structure
82
+ */
83
+ var isFetchTaxesArgs = function (obj) {
84
+ return (typeof obj === "object" &&
85
+ obj !== null &&
86
+ typeof obj.currentPage === "number" &&
87
+ typeof obj.pageLimit === "number");
88
+ };
89
+ exports.isFetchTaxesArgs = isFetchTaxesArgs;
90
+ // ============================================================================
91
+ // UTILITY FUNCTIONS (Type Helpers)
92
+ // ============================================================================
93
+ /**
94
+ * Check if tax is enabled
95
+ */
96
+ var isTaxEnabled = function (tax) {
97
+ return tax.enabled;
98
+ };
99
+ exports.isTaxEnabled = isTaxEnabled;
100
+ /**
101
+ * Check if tax is default
102
+ */
103
+ var isTaxDefault = function (tax) {
104
+ return tax.isDefault;
105
+ };
106
+ exports.isTaxDefault = isTaxDefault;
107
+ /**
108
+ * Get tax display name
109
+ */
110
+ var getTaxDisplayName = function (tax) {
111
+ return tax.taxName;
112
+ };
113
+ exports.getTaxDisplayName = getTaxDisplayName;
114
+ /**
115
+ * Get tax rate as number
116
+ */
117
+ var getTaxRateAsNumber = function (tax) {
118
+ return parseFloat(tax.taxRate) || 0;
119
+ };
120
+ exports.getTaxRateAsNumber = getTaxRateAsNumber;
121
+ /**
122
+ * Calculate tax amount
123
+ */
124
+ var calculateTaxAmount = function (amount, tax) {
125
+ var rate = (0, exports.getTaxRateAsNumber)(tax);
126
+ return (amount * rate) / 100;
127
+ };
128
+ exports.calculateTaxAmount = calculateTaxAmount;
129
+ /**
130
+ * Format tax rate for display
131
+ */
132
+ var formatTaxRate = function (tax) {
133
+ return "".concat(tax.taxRate, "%");
134
+ };
135
+ exports.formatTaxRate = formatTaxRate;
136
+ /**
137
+ * Legacy Preference Modal Enum
138
+ * TODO: Move to preferences module
139
+ */
19
140
  var PREFERENCE_MODAL;
20
141
  (function (PREFERENCE_MODAL) {
21
142
  PREFERENCE_MODAL["DUMMY"] = "DUMMY";
22
143
  })(PREFERENCE_MODAL || (exports.PREFERENCE_MODAL = PREFERENCE_MODAL = {}));
144
+ // ============================================================================
145
+ // OPTIMIZATION SUMMARY
146
+ // ============================================================================
147
+ /*
148
+ * Tax Types File Optimizations Applied:
149
+ *
150
+ * 1. **Comprehensive Documentation**
151
+ * - Added detailed JSDoc comments for all interfaces and types
152
+ * - Organized types into logical categories with clear section headers
153
+ * - Explained purpose and usage for each type definition
154
+ *
155
+ * 2. **Enhanced Type Safety**
156
+ * - Added utility types for common operations (form fields, required fields, etc.)
157
+ * - Implemented runtime type guards for validation
158
+ * - Used more specific Record<string, string> for errors
159
+ * - Added comprehensive API response types for better backend integration
160
+ *
161
+ * 3. **Improved Organization**
162
+ * - Grouped related types into logical sections (Context, Entity, State, API, UI, Utility)
163
+ * - Separated tax specific types from legacy types
164
+ * - Consistent naming conventions throughout
165
+ * - Clear separation between entity, state, and utility types
166
+ *
167
+ * 4. **Developer Experience**
168
+ * - Utility types for common development tasks
169
+ * - Type guards for runtime validation
170
+ * - Helper functions for tax manipulation (calculateTaxAmount, formatTaxRate, etc.)
171
+ * - Comprehensive interfaces with clear field descriptions
172
+ * - Better IDE support through detailed type definitions
173
+ *
174
+ * 5. **Legacy Type Management**
175
+ * - Moved unrelated types to legacy section with TODO comments
176
+ * - Clear migration path for future refactoring
177
+ * - Maintained backward compatibility while organizing properly
178
+ *
179
+ * 6. **Tax-Specific Enhancements**
180
+ * - Tax utility functions (calculateTaxAmount, formatTaxRate, isTaxEnabled, etc.)
181
+ * - Comprehensive API types for all operations
182
+ * - Enhanced form and state type definitions
183
+ * - Tax-specific validation and utility types
184
+ *
185
+ * 7. **Maintainability**
186
+ * - Modular type structure for easy extension
187
+ * - Clear relationships between different type categories
188
+ * - Self-documenting code with comprehensive comments
189
+ * - Consistent patterns for future type additions
190
+ */
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
  export declare const formValidation: z.ZodObject<{
3
3
  taxName: z.ZodString;
4
4
  taxRate: z.ZodString;
@@ -2,16 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formValidation = void 0;
4
4
  var zod_1 = require("zod");
5
- var constants_1 = require("./constants");
5
+ // Validation error messages
6
+ var validationMessages = {
7
+ taxName: "Tax name is required",
8
+ taxRate: "Tax rate is required",
9
+ preferenceId: "Preference ID is required",
10
+ };
6
11
  exports.formValidation = zod_1.z.object({
7
- taxName: zod_1.z
8
- .string()
9
- .nonempty(constants_1.validationError.taxName),
10
- taxRate: zod_1.z
11
- .string()
12
- .nonempty(constants_1.validationError.taxRate),
12
+ taxName: zod_1.z.string().nonempty(validationMessages.taxName),
13
+ taxRate: zod_1.z.string().nonempty(validationMessages.taxRate),
13
14
  enabled: zod_1.z.boolean(),
14
15
  isDefault: zod_1.z.boolean(),
15
16
  description: zod_1.z.string().optional(),
16
- preferenceId: zod_1.z.string().nonempty(constants_1.validationError.preferenceId),
17
+ preferenceId: zod_1.z.string().nonempty(validationMessages.preferenceId),
17
18
  });
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Hook to detect RTL (Right-to-Left) layout based on current locale
3
+ * @returns {boolean} true if current locale requires RTL layout (Urdu), false otherwise
4
+ */
5
+ export declare const useRTL: () => boolean;
6
+ /**
7
+ * Hook to get RTL-aware CSS classes
8
+ *
9
+ * @returns Object containing common RTL-aware class combinations
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * const rtlClasses = useRTLClasses();
14
+ *
15
+ * // For icon buttons (ensures proper centering in RTL)
16
+ * <Button size="icon" className={`h-8 w-8 ${rtlClasses.iconButton}`}>
17
+ * <Icon />
18
+ * </Button>
19
+ *
20
+ * // For buttons with icon and text
21
+ * <Button className={rtlClasses.iconWithText("left")}>
22
+ * <Icon />
23
+ * <span>Button Text</span>
24
+ * </Button>
25
+ * ```
26
+ */
27
+ export declare const useRTLClasses: () => {
28
+ isRTL: boolean;
29
+ container: string;
30
+ direction: string;
31
+ flexRow: string;
32
+ flexRowReverse: string;
33
+ textAlign: string;
34
+ textAlignReverse: string;
35
+ marginLeft: string;
36
+ marginRight: string;
37
+ paddingLeft: (size: string) => string;
38
+ paddingRight: (size: string) => string;
39
+ gap: (size: string) => string;
40
+ roundedLeft: string;
41
+ roundedRight: string;
42
+ iconButton: string;
43
+ iconWithText: (iconPosition?: "left" | "right") => "flex items-center flex-row-reverse gap-2" | "flex items-center gap-2";
44
+ };
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useRTLClasses = exports.useRTL = void 0;
4
+ var next_intl_1 = require("next-intl");
5
+ /**
6
+ * Hook to detect RTL (Right-to-Left) layout based on current locale
7
+ * @returns {boolean} true if current locale requires RTL layout (Urdu), false otherwise
8
+ */
9
+ var useRTL = function () {
10
+ var locale = (0, next_intl_1.useLocale)();
11
+ return locale === "ur";
12
+ };
13
+ exports.useRTL = useRTL;
14
+ /**
15
+ * Hook to get RTL-aware CSS classes
16
+ *
17
+ * @returns Object containing common RTL-aware class combinations
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * const rtlClasses = useRTLClasses();
22
+ *
23
+ * // For icon buttons (ensures proper centering in RTL)
24
+ * <Button size="icon" className={`h-8 w-8 ${rtlClasses.iconButton}`}>
25
+ * <Icon />
26
+ * </Button>
27
+ *
28
+ * // For buttons with icon and text
29
+ * <Button className={rtlClasses.iconWithText("left")}>
30
+ * <Icon />
31
+ * <span>Button Text</span>
32
+ * </Button>
33
+ * ```
34
+ */
35
+ var useRTLClasses = function () {
36
+ var isRTL = (0, exports.useRTL)();
37
+ return {
38
+ isRTL: isRTL,
39
+ // Container classes
40
+ container: isRTL ? "rtl" : "ltr",
41
+ direction: isRTL ? "rtl" : "ltr",
42
+ // Flex classes
43
+ flexRow: isRTL ? "flex-row-reverse" : "flex-row",
44
+ flexRowReverse: isRTL ? "flex-row" : "flex-row-reverse",
45
+ // Text alignment
46
+ textAlign: isRTL ? "text-right" : "text-left",
47
+ textAlignReverse: isRTL ? "text-left" : "text-right",
48
+ // Margin classes
49
+ marginLeft: isRTL ? "mr-auto" : "ml-auto",
50
+ marginRight: isRTL ? "ml-auto" : "mr-auto",
51
+ // Padding classes
52
+ paddingLeft: function (size) { return (isRTL ? "pr-".concat(size) : "pl-".concat(size)); },
53
+ paddingRight: function (size) { return (isRTL ? "pl-".concat(size) : "pr-".concat(size)); },
54
+ // Gap and spacing
55
+ gap: function (size) { return "gap-".concat(size); },
56
+ // Border radius (for buttons, cards, etc.)
57
+ roundedLeft: isRTL ? "rounded-r" : "rounded-l",
58
+ roundedRight: isRTL ? "rounded-l" : "rounded-r",
59
+ // Icon button classes for proper centering in RTL
60
+ iconButton: "flex items-center justify-center border",
61
+ // Icon with text combinations
62
+ iconWithText: function (iconPosition) {
63
+ if (iconPosition === void 0) { iconPosition = "left"; }
64
+ if (iconPosition === "left") {
65
+ return isRTL
66
+ ? "flex items-center flex-row-reverse gap-2"
67
+ : "flex items-center gap-2";
68
+ }
69
+ return isRTL
70
+ ? "flex items-center gap-2"
71
+ : "flex items-center flex-row-reverse gap-2";
72
+ },
73
+ };
74
+ };
75
+ exports.useRTLClasses = useRTLClasses;
@@ -0,0 +1,147 @@
1
+ export declare const themes: {
2
+ readonly light: {
3
+ readonly name: "light";
4
+ readonly displayName: "Light";
5
+ readonly colors: {
6
+ readonly background: "oklch(1 0 0)";
7
+ readonly foreground: "oklch(0.145 0 0)";
8
+ readonly card: "oklch(1 0 0)";
9
+ readonly "card-foreground": "oklch(0.145 0 0)";
10
+ readonly popover: "oklch(1 0 0)";
11
+ readonly "popover-foreground": "oklch(0.145 0 0)";
12
+ readonly primary: "oklch(0.205 0 0)";
13
+ readonly "primary-foreground": "oklch(0.985 0 0)";
14
+ readonly secondary: "oklch(0.97 0 0)";
15
+ readonly "secondary-foreground": "oklch(0.205 0 0)";
16
+ readonly muted: "oklch(0.97 0 0)";
17
+ readonly "muted-foreground": "oklch(0.556 0 0)";
18
+ readonly accent: "oklch(0.97 0 0)";
19
+ readonly "accent-foreground": "oklch(0.205 0 0)";
20
+ readonly destructive: "oklch(0.577 0.245 27.325)";
21
+ readonly border: "oklch(0.922 0 0)";
22
+ readonly input: "oklch(0.922 0 0)";
23
+ readonly ring: "oklch(0.708 0 0)";
24
+ };
25
+ };
26
+ readonly dark: {
27
+ readonly name: "dark";
28
+ readonly displayName: "Dark";
29
+ readonly colors: {
30
+ readonly background: "oklch(0.145 0 0)";
31
+ readonly foreground: "oklch(0.985 0 0)";
32
+ readonly card: "oklch(0.205 0 0)";
33
+ readonly "card-foreground": "oklch(0.985 0 0)";
34
+ readonly popover: "oklch(0.205 0 0)";
35
+ readonly "popover-foreground": "oklch(0.985 0 0)";
36
+ readonly primary: "oklch(0.922 0 0)";
37
+ readonly "primary-foreground": "oklch(0.205 0 0)";
38
+ readonly secondary: "oklch(0.269 0 0)";
39
+ readonly "secondary-foreground": "oklch(0.985 0 0)";
40
+ readonly muted: "oklch(0.269 0 0)";
41
+ readonly "muted-foreground": "oklch(0.708 0 0)";
42
+ readonly accent: "oklch(0.269 0 0)";
43
+ readonly "accent-foreground": "oklch(0.985 0 0)";
44
+ readonly destructive: "oklch(0.704 0.191 22.216)";
45
+ readonly border: "oklch(1 0 0 / 10%)";
46
+ readonly input: "oklch(1 0 0 / 15%)";
47
+ readonly ring: "oklch(0.556 0 0)";
48
+ };
49
+ };
50
+ readonly blue: {
51
+ readonly name: "blue";
52
+ readonly displayName: "Blue";
53
+ readonly colors: {
54
+ readonly background: "oklch(0.99 0.005 246.049)";
55
+ readonly foreground: "oklch(0.15 0.02 247.858)";
56
+ readonly card: "oklch(0.99 0.005 246.049)";
57
+ readonly "card-foreground": "oklch(0.15 0.02 247.858)";
58
+ readonly popover: "oklch(0.99 0.005 246.049)";
59
+ readonly "popover-foreground": "oklch(0.15 0.02 247.858)";
60
+ readonly primary: "oklch(0.492 0.215 265.75)";
61
+ readonly "primary-foreground": "oklch(0.985 0.003 106.423)";
62
+ readonly secondary: "oklch(0.956 0.013 253.559)";
63
+ readonly "secondary-foreground": "oklch(0.15 0.02 247.858)";
64
+ readonly muted: "oklch(0.956 0.013 253.559)";
65
+ readonly "muted-foreground": "oklch(0.533 0.015 252.096)";
66
+ readonly accent: "oklch(0.956 0.013 253.559)";
67
+ readonly "accent-foreground": "oklch(0.15 0.02 247.858)";
68
+ readonly destructive: "oklch(0.577 0.245 27.325)";
69
+ readonly border: "oklch(0.898 0.013 252.096)";
70
+ readonly input: "oklch(0.898 0.013 252.096)";
71
+ readonly ring: "oklch(0.492 0.215 265.75)";
72
+ };
73
+ };
74
+ readonly green: {
75
+ readonly name: "green";
76
+ readonly displayName: "Green";
77
+ readonly colors: {
78
+ readonly background: "oklch(0.99 0.01 142.425)";
79
+ readonly foreground: "oklch(0.15 0.025 142.425)";
80
+ readonly card: "oklch(0.99 0.01 142.425)";
81
+ readonly "card-foreground": "oklch(0.15 0.025 142.425)";
82
+ readonly popover: "oklch(0.99 0.01 142.425)";
83
+ readonly "popover-foreground": "oklch(0.15 0.025 142.425)";
84
+ readonly primary: "oklch(0.4 0.177 150.861)";
85
+ readonly "primary-foreground": "oklch(0.985 0.007 106.423)";
86
+ readonly secondary: "oklch(0.956 0.02 142.425)";
87
+ readonly "secondary-foreground": "oklch(0.15 0.025 142.425)";
88
+ readonly muted: "oklch(0.956 0.02 142.425)";
89
+ readonly "muted-foreground": "oklch(0.533 0.022 142.425)";
90
+ readonly accent: "oklch(0.956 0.02 142.425)";
91
+ readonly "accent-foreground": "oklch(0.15 0.025 142.425)";
92
+ readonly destructive: "oklch(0.577 0.245 27.325)";
93
+ readonly border: "oklch(0.898 0.02 142.425)";
94
+ readonly input: "oklch(0.898 0.02 142.425)";
95
+ readonly ring: "oklch(0.4 0.177 150.861)";
96
+ };
97
+ };
98
+ readonly purple: {
99
+ readonly name: "purple";
100
+ readonly displayName: "Purple";
101
+ readonly colors: {
102
+ readonly background: "oklch(0.99 0.008 285.257)";
103
+ readonly foreground: "oklch(0.15 0.025 285.257)";
104
+ readonly card: "oklch(0.99 0.008 285.257)";
105
+ readonly "card-foreground": "oklch(0.15 0.025 285.257)";
106
+ readonly popover: "oklch(0.99 0.008 285.257)";
107
+ readonly "popover-foreground": "oklch(0.15 0.025 285.257)";
108
+ readonly primary: "oklch(0.45 0.224 293.334)";
109
+ readonly "primary-foreground": "oklch(0.985 0.003 106.423)";
110
+ readonly secondary: "oklch(0.956 0.015 285.257)";
111
+ readonly "secondary-foreground": "oklch(0.15 0.025 285.257)";
112
+ readonly muted: "oklch(0.956 0.015 285.257)";
113
+ readonly "muted-foreground": "oklch(0.533 0.025 285.257)";
114
+ readonly accent: "oklch(0.956 0.015 285.257)";
115
+ readonly "accent-foreground": "oklch(0.15 0.025 285.257)";
116
+ readonly destructive: "oklch(0.577 0.245 27.325)";
117
+ readonly border: "oklch(0.898 0.015 285.257)";
118
+ readonly input: "oklch(0.898 0.015 285.257)";
119
+ readonly ring: "oklch(0.45 0.224 293.334)";
120
+ };
121
+ };
122
+ readonly orange: {
123
+ readonly name: "orange";
124
+ readonly displayName: "Orange";
125
+ readonly colors: {
126
+ readonly background: "oklch(0.99 0.01 70.67)";
127
+ readonly foreground: "oklch(0.15 0.025 70.67)";
128
+ readonly card: "oklch(0.99 0.01 70.67)";
129
+ readonly "card-foreground": "oklch(0.15 0.025 70.67)";
130
+ readonly popover: "oklch(0.99 0.01 70.67)";
131
+ readonly "popover-foreground": "oklch(0.15 0.025 70.67)";
132
+ readonly primary: "oklch(0.5 0.207 60.234)";
133
+ readonly "primary-foreground": "oklch(0.985 0.005 106.423)";
134
+ readonly secondary: "oklch(0.956 0.02 70.67)";
135
+ readonly "secondary-foreground": "oklch(0.15 0.025 70.67)";
136
+ readonly muted: "oklch(0.956 0.02 70.67)";
137
+ readonly "muted-foreground": "oklch(0.533 0.025 70.67)";
138
+ readonly accent: "oklch(0.956 0.02 70.67)";
139
+ readonly "accent-foreground": "oklch(0.15 0.025 70.67)";
140
+ readonly destructive: "oklch(0.577 0.245 27.325)";
141
+ readonly border: "oklch(0.898 0.02 70.67)";
142
+ readonly input: "oklch(0.898 0.02 70.67)";
143
+ readonly ring: "oklch(0.5 0.207 60.234)";
144
+ };
145
+ };
146
+ };
147
+ export type ThemeName = keyof typeof themes;
package/lib/themes.js ADDED
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.themes = void 0;
4
+ // Theme configurations for multiple color schemes
5
+ exports.themes = {
6
+ light: {
7
+ name: "light",
8
+ displayName: "Light",
9
+ colors: {
10
+ background: "oklch(1 0 0)",
11
+ foreground: "oklch(0.145 0 0)",
12
+ card: "oklch(1 0 0)",
13
+ "card-foreground": "oklch(0.145 0 0)",
14
+ popover: "oklch(1 0 0)",
15
+ "popover-foreground": "oklch(0.145 0 0)",
16
+ primary: "oklch(0.205 0 0)",
17
+ "primary-foreground": "oklch(0.985 0 0)",
18
+ secondary: "oklch(0.97 0 0)",
19
+ "secondary-foreground": "oklch(0.205 0 0)",
20
+ muted: "oklch(0.97 0 0)",
21
+ "muted-foreground": "oklch(0.556 0 0)",
22
+ accent: "oklch(0.97 0 0)",
23
+ "accent-foreground": "oklch(0.205 0 0)",
24
+ destructive: "oklch(0.577 0.245 27.325)",
25
+ border: "oklch(0.922 0 0)",
26
+ input: "oklch(0.922 0 0)",
27
+ ring: "oklch(0.708 0 0)",
28
+ },
29
+ },
30
+ dark: {
31
+ name: "dark",
32
+ displayName: "Dark",
33
+ colors: {
34
+ background: "oklch(0.145 0 0)",
35
+ foreground: "oklch(0.985 0 0)",
36
+ card: "oklch(0.205 0 0)",
37
+ "card-foreground": "oklch(0.985 0 0)",
38
+ popover: "oklch(0.205 0 0)",
39
+ "popover-foreground": "oklch(0.985 0 0)",
40
+ primary: "oklch(0.922 0 0)",
41
+ "primary-foreground": "oklch(0.205 0 0)",
42
+ secondary: "oklch(0.269 0 0)",
43
+ "secondary-foreground": "oklch(0.985 0 0)",
44
+ muted: "oklch(0.269 0 0)",
45
+ "muted-foreground": "oklch(0.708 0 0)",
46
+ accent: "oklch(0.269 0 0)",
47
+ "accent-foreground": "oklch(0.985 0 0)",
48
+ destructive: "oklch(0.704 0.191 22.216)",
49
+ border: "oklch(1 0 0 / 10%)",
50
+ input: "oklch(1 0 0 / 15%)",
51
+ ring: "oklch(0.556 0 0)",
52
+ },
53
+ },
54
+ blue: {
55
+ name: "blue",
56
+ displayName: "Blue",
57
+ colors: {
58
+ background: "oklch(0.99 0.005 246.049)",
59
+ foreground: "oklch(0.15 0.02 247.858)",
60
+ card: "oklch(0.99 0.005 246.049)",
61
+ "card-foreground": "oklch(0.15 0.02 247.858)",
62
+ popover: "oklch(0.99 0.005 246.049)",
63
+ "popover-foreground": "oklch(0.15 0.02 247.858)",
64
+ primary: "oklch(0.492 0.215 265.75)",
65
+ "primary-foreground": "oklch(0.985 0.003 106.423)",
66
+ secondary: "oklch(0.956 0.013 253.559)",
67
+ "secondary-foreground": "oklch(0.15 0.02 247.858)",
68
+ muted: "oklch(0.956 0.013 253.559)",
69
+ "muted-foreground": "oklch(0.533 0.015 252.096)",
70
+ accent: "oklch(0.956 0.013 253.559)",
71
+ "accent-foreground": "oklch(0.15 0.02 247.858)",
72
+ destructive: "oklch(0.577 0.245 27.325)",
73
+ border: "oklch(0.898 0.013 252.096)",
74
+ input: "oklch(0.898 0.013 252.096)",
75
+ ring: "oklch(0.492 0.215 265.75)",
76
+ },
77
+ },
78
+ green: {
79
+ name: "green",
80
+ displayName: "Green",
81
+ colors: {
82
+ background: "oklch(0.99 0.01 142.425)",
83
+ foreground: "oklch(0.15 0.025 142.425)",
84
+ card: "oklch(0.99 0.01 142.425)",
85
+ "card-foreground": "oklch(0.15 0.025 142.425)",
86
+ popover: "oklch(0.99 0.01 142.425)",
87
+ "popover-foreground": "oklch(0.15 0.025 142.425)",
88
+ primary: "oklch(0.4 0.177 150.861)",
89
+ "primary-foreground": "oklch(0.985 0.007 106.423)",
90
+ secondary: "oklch(0.956 0.02 142.425)",
91
+ "secondary-foreground": "oklch(0.15 0.025 142.425)",
92
+ muted: "oklch(0.956 0.02 142.425)",
93
+ "muted-foreground": "oklch(0.533 0.022 142.425)",
94
+ accent: "oklch(0.956 0.02 142.425)",
95
+ "accent-foreground": "oklch(0.15 0.025 142.425)",
96
+ destructive: "oklch(0.577 0.245 27.325)",
97
+ border: "oklch(0.898 0.02 142.425)",
98
+ input: "oklch(0.898 0.02 142.425)",
99
+ ring: "oklch(0.4 0.177 150.861)",
100
+ },
101
+ },
102
+ purple: {
103
+ name: "purple",
104
+ displayName: "Purple",
105
+ colors: {
106
+ background: "oklch(0.99 0.008 285.257)",
107
+ foreground: "oklch(0.15 0.025 285.257)",
108
+ card: "oklch(0.99 0.008 285.257)",
109
+ "card-foreground": "oklch(0.15 0.025 285.257)",
110
+ popover: "oklch(0.99 0.008 285.257)",
111
+ "popover-foreground": "oklch(0.15 0.025 285.257)",
112
+ primary: "oklch(0.45 0.224 293.334)",
113
+ "primary-foreground": "oklch(0.985 0.003 106.423)",
114
+ secondary: "oklch(0.956 0.015 285.257)",
115
+ "secondary-foreground": "oklch(0.15 0.025 285.257)",
116
+ muted: "oklch(0.956 0.015 285.257)",
117
+ "muted-foreground": "oklch(0.533 0.025 285.257)",
118
+ accent: "oklch(0.956 0.015 285.257)",
119
+ "accent-foreground": "oklch(0.15 0.025 285.257)",
120
+ destructive: "oklch(0.577 0.245 27.325)",
121
+ border: "oklch(0.898 0.015 285.257)",
122
+ input: "oklch(0.898 0.015 285.257)",
123
+ ring: "oklch(0.45 0.224 293.334)",
124
+ },
125
+ },
126
+ orange: {
127
+ name: "orange",
128
+ displayName: "Orange",
129
+ colors: {
130
+ background: "oklch(0.99 0.01 70.67)",
131
+ foreground: "oklch(0.15 0.025 70.67)",
132
+ card: "oklch(0.99 0.01 70.67)",
133
+ "card-foreground": "oklch(0.15 0.025 70.67)",
134
+ popover: "oklch(0.99 0.01 70.67)",
135
+ "popover-foreground": "oklch(0.15 0.025 70.67)",
136
+ primary: "oklch(0.5 0.207 60.234)",
137
+ "primary-foreground": "oklch(0.985 0.005 106.423)",
138
+ secondary: "oklch(0.956 0.02 70.67)",
139
+ "secondary-foreground": "oklch(0.15 0.025 70.67)",
140
+ muted: "oklch(0.956 0.02 70.67)",
141
+ "muted-foreground": "oklch(0.533 0.025 70.67)",
142
+ accent: "oklch(0.956 0.02 70.67)",
143
+ "accent-foreground": "oklch(0.15 0.025 70.67)",
144
+ destructive: "oklch(0.577 0.245 27.325)",
145
+ border: "oklch(0.898 0.02 70.67)",
146
+ input: "oklch(0.898 0.02 70.67)",
147
+ ring: "oklch(0.5 0.207 60.234)",
148
+ },
149
+ },
150
+ };