@vaneui/ui 0.2.1-alpha.20250901145733.e9c8d4d → 0.2.2-alpha.20250907183237.5f63365

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 (156) hide show
  1. package/dist/index.esm.js +280 -441
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.js +280 -440
  4. package/dist/index.js.map +1 -1
  5. package/dist/playground/src/App.d.ts +2 -0
  6. package/dist/playground/src/index.d.ts +2 -0
  7. package/dist/{components → src/components}/tests/utils/propOmissionTestUtils.d.ts +4 -9
  8. package/dist/src/components/tests/visual-decoration.test.d.ts +1 -0
  9. package/dist/{components → src/components}/themedComponent.d.ts +4 -2
  10. package/dist/src/components/ui/badge.d.ts +2 -0
  11. package/dist/src/components/ui/button.d.ts +2 -0
  12. package/dist/src/components/ui/card.d.ts +2 -0
  13. package/dist/{components → src/components}/ui/checkbox.d.ts +3 -4
  14. package/dist/src/components/ui/chip.d.ts +2 -0
  15. package/dist/src/components/ui/classes/radiusClasses.d.ts +3 -0
  16. package/dist/{components → src/components}/ui/code.d.ts +3 -4
  17. package/dist/src/components/ui/col.d.ts +2 -0
  18. package/dist/src/components/ui/container.d.ts +2 -0
  19. package/dist/{components → src/components}/ui/divider.d.ts +3 -4
  20. package/dist/src/components/ui/grid.d.ts +4 -0
  21. package/dist/{components → src/components}/ui/img.d.ts +3 -4
  22. package/dist/{components → src/components}/ui/label.d.ts +3 -4
  23. package/dist/{components → src/components}/ui/props/keys.d.ts +6 -5
  24. package/dist/src/components/ui/row.d.ts +2 -0
  25. package/dist/src/components/ui/section.d.ts +2 -0
  26. package/dist/src/components/ui/stack.d.ts +2 -0
  27. package/dist/src/components/ui/theme/appearance/appearanceTheme.d.ts +20 -0
  28. package/dist/{components → src/components}/ui/theme/appearance/genericVariantTheme.d.ts +4 -7
  29. package/dist/src/components/ui/theme/appearance/shadowAppearanceTheme.d.ts +21 -0
  30. package/dist/src/components/ui/theme/layout/borderTheme.d.ts +9 -0
  31. package/dist/src/components/ui/theme/layout/directionTheme.d.ts +10 -0
  32. package/dist/src/components/ui/theme/layout/displayTheme.d.ts +17 -0
  33. package/dist/src/components/ui/theme/layout/hideTheme.d.ts +11 -0
  34. package/dist/src/components/ui/theme/layout/itemsTheme.d.ts +11 -0
  35. package/dist/src/components/ui/theme/layout/justifyTheme.d.ts +14 -0
  36. package/dist/src/components/ui/theme/layout/overflowTheme.d.ts +21 -0
  37. package/dist/src/components/ui/theme/layout/positionTheme.d.ts +11 -0
  38. package/dist/{components → src/components}/ui/theme/layout/radiusTheme.d.ts +1 -6
  39. package/dist/src/components/ui/theme/layout/ringTheme.d.ts +9 -0
  40. package/dist/src/components/ui/theme/layout/wrapTheme.d.ts +9 -0
  41. package/dist/src/components/ui/theme/list/listStyleTheme.d.ts +8 -0
  42. package/dist/src/components/ui/theme/size/breakpointTheme.d.ts +11 -0
  43. package/dist/{components → src/components}/ui/theme/size/gapTheme.d.ts +6 -4
  44. package/dist/{components → src/components}/ui/theme/size/paddingTheme.d.ts +6 -4
  45. package/dist/{components → src/components}/ui/theme/size/plTheme.d.ts +0 -3
  46. package/dist/{components → src/components}/ui/theme/size/pxTheme.d.ts +0 -3
  47. package/dist/{components → src/components}/ui/theme/size/pyTheme.d.ts +0 -3
  48. package/dist/{components → src/components}/ui/theme/size/sizeTheme.d.ts +6 -3
  49. package/dist/src/components/ui/theme/typography/fontFamilyTheme.d.ts +8 -0
  50. package/dist/src/components/ui/theme/typography/fontStyleTheme.d.ts +8 -0
  51. package/dist/src/components/ui/theme/typography/fontWeightTheme.d.ts +15 -0
  52. package/dist/src/components/ui/theme/typography/textAlignTheme.d.ts +10 -0
  53. package/dist/src/components/ui/theme/typography/textDecorationTheme.d.ts +10 -0
  54. package/dist/src/components/ui/theme/typography/textTransformTheme.d.ts +10 -0
  55. package/dist/{components → src/components}/ui/theme/typographyTheme.d.ts +1 -1
  56. package/dist/{components → src/components}/ui/typography.d.ts +9 -10
  57. package/dist/{components → src/components}/utils/componentUtils.d.ts +1 -1
  58. package/package.json +9 -2
  59. package/dist/components/examples/ref-usage-examples.d.ts +0 -29
  60. package/dist/components/examples/theme-types-strictness-compile-check.d.ts +0 -5
  61. package/dist/components/ui/badge.d.ts +0 -3
  62. package/dist/components/ui/button.d.ts +0 -3
  63. package/dist/components/ui/card.d.ts +0 -3
  64. package/dist/components/ui/chip.d.ts +0 -3
  65. package/dist/components/ui/classes/radiusClasses.d.ts +0 -5
  66. package/dist/components/ui/col.d.ts +0 -3
  67. package/dist/components/ui/container.d.ts +0 -3
  68. package/dist/components/ui/grid.d.ts +0 -5
  69. package/dist/components/ui/row.d.ts +0 -3
  70. package/dist/components/ui/section.d.ts +0 -3
  71. package/dist/components/ui/stack.d.ts +0 -3
  72. package/dist/components/ui/theme/appearance/appearanceTheme.d.ts +0 -11
  73. package/dist/components/ui/theme/appearance/shadowAppearanceTheme.d.ts +0 -13
  74. package/dist/components/ui/theme/layout/borderTheme.d.ts +0 -10
  75. package/dist/components/ui/theme/layout/directionTheme.d.ts +0 -10
  76. package/dist/components/ui/theme/layout/displayTheme.d.ts +0 -10
  77. package/dist/components/ui/theme/layout/hideTheme.d.ts +0 -10
  78. package/dist/components/ui/theme/layout/itemsTheme.d.ts +0 -10
  79. package/dist/components/ui/theme/layout/justifyTheme.d.ts +0 -10
  80. package/dist/components/ui/theme/layout/overflowTheme.d.ts +0 -10
  81. package/dist/components/ui/theme/layout/positionTheme.d.ts +0 -10
  82. package/dist/components/ui/theme/layout/ringTheme.d.ts +0 -10
  83. package/dist/components/ui/theme/layout/wrapTheme.d.ts +0 -10
  84. package/dist/components/ui/theme/list/listStyleTheme.d.ts +0 -10
  85. package/dist/components/ui/theme/size/breakpointTheme.d.ts +0 -10
  86. package/dist/components/ui/theme/typography/fontFamilyTheme.d.ts +0 -9
  87. package/dist/components/ui/theme/typography/fontStyleTheme.d.ts +0 -10
  88. package/dist/components/ui/theme/typography/fontWeightTheme.d.ts +0 -10
  89. package/dist/components/ui/theme/typography/textAlignTheme.d.ts +0 -10
  90. package/dist/components/ui/theme/typography/textDecorationTheme.d.ts +0 -10
  91. package/dist/components/ui/theme/typography/textTransformTheme.d.ts +0 -10
  92. /package/dist/{components → src/components}/complex/sharer.d.ts +0 -0
  93. /package/dist/{components → src/components}/tests/badge.test.d.ts +0 -0
  94. /package/dist/{components → src/components}/tests/button.test.d.ts +0 -0
  95. /package/dist/{components → src/components}/tests/card.test.d.ts +0 -0
  96. /package/dist/{components → src/components}/tests/checkbox.test.d.ts +0 -0
  97. /package/dist/{components → src/components}/tests/chip.test.d.ts +0 -0
  98. /package/dist/{components → src/components}/tests/code.test.d.ts +0 -0
  99. /package/dist/{components → src/components}/tests/col.test.d.ts +0 -0
  100. /package/dist/{components → src/components}/tests/componentThemeCoverage.test.d.ts +0 -0
  101. /package/dist/{components → src/components}/tests/container.test.d.ts +0 -0
  102. /package/dist/{components → src/components}/tests/deepMerge.test.d.ts +0 -0
  103. /package/dist/{components → src/components}/tests/divider.test.d.ts +0 -0
  104. /package/dist/{components → src/components}/tests/extra-classes.test.d.ts +0 -0
  105. /package/dist/{components → src/components}/tests/grid.test.d.ts +0 -0
  106. /package/dist/{components → src/components}/tests/grid2.test.d.ts +0 -0
  107. /package/dist/{components → src/components}/tests/img.test.d.ts +0 -0
  108. /package/dist/{components → src/components}/tests/label.test.d.ts +0 -0
  109. /package/dist/{components → src/components}/tests/link.test.d.ts +0 -0
  110. /package/dist/{components → src/components}/tests/linkable.test.d.ts +0 -0
  111. /package/dist/{components → src/components}/tests/list.test.d.ts +0 -0
  112. /package/dist/{components → src/components}/tests/nested-theme-providers-simple.test.d.ts +0 -0
  113. /package/dist/{components → src/components}/tests/nested-theme-providers.test.d.ts +0 -0
  114. /package/dist/{components/tests/prop-filtering.test.d.ts → src/components/tests/pickFirstTruthyKeyByCategory.test.d.ts} +0 -0
  115. /package/dist/{components/tests/prop-types-validation.test.d.ts → src/components/tests/prop-filtering.test.d.ts} +0 -0
  116. /package/dist/{components → src/components}/tests/prop-omission-edge-cases.test.d.ts +0 -0
  117. /package/dist/{components → src/components}/tests/prop-omission.test.d.ts +0 -0
  118. /package/dist/{components/tests/theme-collections.test.d.ts → src/components/tests/prop-types-validation.test.d.ts} +0 -0
  119. /package/dist/{components → src/components}/tests/ref-support-comprehensive.test.d.ts +0 -0
  120. /package/dist/{components → src/components}/tests/ref-support.test.d.ts +0 -0
  121. /package/dist/{components → src/components}/tests/row.test.d.ts +0 -0
  122. /package/dist/{components → src/components}/tests/section.test.d.ts +0 -0
  123. /package/dist/{components → src/components}/tests/stack.test.d.ts +0 -0
  124. /package/dist/{components → src/components}/tests/text.test.d.ts +0 -0
  125. /package/dist/{components/tests/visual-decoration.test.d.ts → src/components/tests/theme-collections.test.d.ts} +0 -0
  126. /package/dist/{components → src/components}/tests/theme-override.test.d.ts +0 -0
  127. /package/dist/{components → src/components}/tests/theme-types-strictness.test.d.ts +0 -0
  128. /package/dist/{components → src/components}/tests/title.test.d.ts +0 -0
  129. /package/dist/{components → src/components}/themeContext.d.ts +0 -0
  130. /package/dist/{components → src/components}/ui/classes/appearanceClasses.d.ts +0 -0
  131. /package/dist/{components → src/components}/ui/classes/typographyClasses.d.ts +0 -0
  132. /package/dist/{components → src/components}/ui/layout.d.ts +0 -0
  133. /package/dist/{components → src/components}/ui/props/index.d.ts +0 -0
  134. /package/dist/{components → src/components}/ui/props/props.d.ts +0 -0
  135. /package/dist/{components → src/components}/ui/theme/badgeTheme.d.ts +0 -0
  136. /package/dist/{components → src/components}/ui/theme/buttonTheme.d.ts +0 -0
  137. /package/dist/{components → src/components}/ui/theme/cardTheme.d.ts +0 -0
  138. /package/dist/{components → src/components}/ui/theme/checkboxTheme.d.ts +0 -0
  139. /package/dist/{components → src/components}/ui/theme/chipTheme.d.ts +0 -0
  140. /package/dist/{components → src/components}/ui/theme/codeTheme.d.ts +0 -0
  141. /package/dist/{components → src/components}/ui/theme/colTheme.d.ts +0 -0
  142. /package/dist/{components → src/components}/ui/theme/common/ComponentTheme.d.ts +0 -0
  143. /package/dist/{components → src/components}/ui/theme/common/baseTheme.d.ts +0 -0
  144. /package/dist/{components → src/components}/ui/theme/containerTheme.d.ts +0 -0
  145. /package/dist/{components → src/components}/ui/theme/defaults.d.ts +0 -0
  146. /package/dist/{components → src/components}/ui/theme/dividerTheme.d.ts +0 -0
  147. /package/dist/{components → src/components}/ui/theme/gridTheme.d.ts +0 -0
  148. /package/dist/{components → src/components}/ui/theme/imgTheme.d.ts +0 -0
  149. /package/dist/{components → src/components}/ui/theme/labelTheme.d.ts +0 -0
  150. /package/dist/{components → src/components}/ui/theme/rowTheme.d.ts +0 -0
  151. /package/dist/{components → src/components}/ui/theme/sectionTheme.d.ts +0 -0
  152. /package/dist/{components → src/components}/ui/theme/stackTheme.d.ts +0 -0
  153. /package/dist/{components → src/components}/utils/deepMerge.d.ts +0 -0
  154. /package/dist/{components → src/components}/utils/deepPartial.d.ts +0 -0
  155. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  156. /package/dist/{setupTests.d.ts → src/setupTests.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -34,6 +34,11 @@ const COMPONENT_PROPS_CATEGORY = [
34
34
  ...VARIANT,
35
35
  'mode',
36
36
  ];
37
+ /**
38
+ * Describes what the @ComponentKeys.appearance can be applied to
39
+ * @see ComponentKeys.appearance
40
+ */
41
+ const APPEARANCE_CATEGORY = ['text', 'border', 'ring', 'shadow', 'bg', 'accent'];
37
42
  const ComponentKeys = {
38
43
  appearance: ['default', 'accent', 'primary', 'secondary', 'tertiary', 'success', 'danger', 'warning', 'info', 'link'],
39
44
  border: ['border', 'noBorder'],
@@ -120,244 +125,163 @@ const ComponentCategories = {
120
125
  };
121
126
 
122
127
  class HideTheme extends BaseTheme {
123
- constructor(initialConfig) {
124
- super();
125
- ComponentKeys.hide.forEach((key) => {
126
- var _a;
127
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : HideTheme.defaultClasses[key];
128
- });
128
+ constructor() {
129
+ super(...arguments);
130
+ this.xsHide = "max-xs:hidden";
131
+ this.smHide = "max-sm:hidden";
132
+ this.mdHide = "max-md:hidden";
133
+ this.lgHide = "max-lg:hidden";
134
+ this.xlHide = "max-xl:hidden";
129
135
  }
130
136
  getClasses(extractedKeys) {
131
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.hide;
132
- return [key ? this[key] : ''];
137
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.hide) ? this[extractedKeys.hide] : ''];
133
138
  }
134
139
  }
135
- HideTheme.defaultClasses = {
136
- xsHide: "max-xs:hidden",
137
- smHide: "max-sm:hidden",
138
- mdHide: "max-md:hidden",
139
- lgHide: "max-lg:hidden",
140
- xlHide: "max-xl:hidden"
141
- };
142
140
 
143
141
  class ItemsTheme extends BaseTheme {
144
- constructor(initialConfig) {
145
- super();
146
- ComponentKeys.items.forEach((key) => {
147
- var _a;
148
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : ItemsTheme.defaultClasses[key];
149
- });
142
+ constructor() {
143
+ super(...arguments);
144
+ this.itemsStart = "items-start";
145
+ this.itemsEnd = "items-end";
146
+ this.itemsCenter = "items-center";
147
+ this.itemsBaseline = "items-baseline";
148
+ this.itemsStretch = "items-stretch";
150
149
  }
151
150
  getClasses(extractedKeys) {
152
- const pickedKey = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.items;
153
- return [pickedKey && this[pickedKey] ? this[pickedKey] : ''];
151
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.items) && this[extractedKeys.items] ? this[extractedKeys.items] : ''];
154
152
  }
155
153
  }
156
- ItemsTheme.defaultClasses = {
157
- itemsStart: "items-start",
158
- itemsEnd: "items-end",
159
- itemsCenter: "items-center",
160
- itemsBaseline: "items-baseline",
161
- itemsStretch: "items-stretch",
162
- };
163
154
 
164
155
  class JustifyTheme extends BaseTheme {
165
- constructor(initialConfig) {
166
- super();
167
- ComponentKeys.justify.forEach((key) => {
168
- var _a;
169
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : JustifyTheme.defaultClasses[key];
170
- });
156
+ constructor() {
157
+ super(...arguments);
158
+ this.justifyStart = "justify-start";
159
+ this.justifyEnd = "justify-end";
160
+ this.justifyCenter = "justify-center";
161
+ this.justifyBetween = "justify-between";
162
+ this.justifyAround = "justify-around";
163
+ this.justifyEvenly = "justify-evenly";
164
+ this.justifyStretch = "justify-stretch";
165
+ this.justifyBaseline = "justify-baseline";
171
166
  }
172
167
  getClasses(extractedKeys) {
173
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.justify;
174
- return [key ? this[key] : ''];
168
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.justify) ? this[extractedKeys.justify] : ''];
175
169
  }
176
170
  }
177
- JustifyTheme.defaultClasses = {
178
- justifyStart: "justify-start",
179
- justifyEnd: "justify-end",
180
- justifyCenter: "justify-center",
181
- justifyBetween: "justify-between",
182
- justifyAround: "justify-around",
183
- justifyEvenly: "justify-evenly",
184
- justifyStretch: "justify-stretch",
185
- justifyBaseline: "justify-baseline",
186
- };
187
171
 
188
172
  class PositionTheme extends BaseTheme {
189
- constructor(initialConfig) {
190
- super();
191
- ComponentKeys.position.forEach((key) => {
192
- var _a;
193
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : PositionTheme.defaultClasses[key];
194
- });
173
+ constructor() {
174
+ super(...arguments);
175
+ this.relative = "relative";
176
+ this.absolute = "absolute";
177
+ this.fixed = "fixed";
178
+ this.sticky = "sticky";
179
+ this.static = "static";
195
180
  }
196
181
  getClasses(extractedKeys) {
197
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.position;
198
- return [key ? this[key] : ''];
182
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.position) ? this[extractedKeys.position] : ''];
199
183
  }
200
184
  }
201
- PositionTheme.defaultClasses = {
202
- relative: "relative",
203
- absolute: "absolute",
204
- fixed: "fixed",
205
- sticky: "sticky",
206
- static: "static"
207
- };
208
185
 
209
186
  class FontStyleTheme extends BaseTheme {
210
- constructor(initial) {
211
- super();
212
- ComponentKeys.fontStyle.forEach((key) => {
213
- var _a;
214
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : FontStyleTheme.defaultClasses[key];
215
- });
187
+ constructor() {
188
+ super(...arguments);
189
+ this.italic = "italic";
190
+ this.notItalic = "not-italic";
216
191
  }
217
192
  getClasses(extractedKeys) {
218
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontStyle;
219
- return [key ? this[key] : '']; // No default for font style
193
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontStyle) ? this[extractedKeys.fontStyle] : ''];
220
194
  }
221
195
  }
222
- FontStyleTheme.defaultClasses = {
223
- italic: "italic",
224
- notItalic: "not-italic",
225
- };
226
196
 
227
197
  class FontFamilyTheme extends BaseTheme {
228
- constructor(initial) {
229
- super();
230
- ComponentKeys.fontFamily.forEach((key) => {
231
- var _a;
232
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : FontFamilyTheme.defaultClasses[key];
233
- });
198
+ constructor() {
199
+ super(...arguments);
200
+ this.sans = "font-sans";
201
+ this.serif = "font-serif";
202
+ this.mono = "font-mono";
234
203
  }
235
204
  getClasses(extractedKeys) {
236
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontFamily;
237
- if (key === undefined)
238
- return [];
239
- return [this[key]];
205
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontFamily) ? [this[extractedKeys.fontFamily]] : [];
240
206
  }
241
207
  }
242
- FontFamilyTheme.defaultClasses = {
243
- sans: "font-sans",
244
- serif: "font-serif",
245
- mono: "font-mono",
246
- };
247
208
 
248
209
  class FontWeightTheme extends BaseTheme {
249
- constructor(initial) {
250
- super();
251
- ComponentKeys.fontWeight.forEach((key) => {
252
- var _a;
253
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : FontWeightTheme.defaultClasses[key];
254
- });
210
+ constructor() {
211
+ super(...arguments);
212
+ this.thin = "font-thin";
213
+ this.extralight = "font-extralight";
214
+ this.light = "font-light";
215
+ this.normal = "font-normal";
216
+ this.medium = "font-medium";
217
+ this.semibold = "font-semibold";
218
+ this.bold = "font-bold";
219
+ this.extrabold = "font-extrabold";
220
+ this.black = "font-black";
255
221
  }
256
222
  getClasses(extractedKeys) {
257
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontWeight;
258
- if (key === undefined)
259
- return [];
260
- return [this[key]];
223
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontWeight) ? [this[extractedKeys.fontWeight]] : [];
261
224
  }
262
225
  }
263
- FontWeightTheme.defaultClasses = {
264
- thin: "font-thin",
265
- extralight: "font-extralight",
266
- light: "font-light",
267
- normal: "font-normal",
268
- medium: "font-medium",
269
- semibold: "font-semibold",
270
- bold: "font-bold",
271
- extrabold: "font-extrabold",
272
- black: "font-black",
273
- };
274
226
 
275
227
  class TextDecorationTheme extends BaseTheme {
276
- constructor(initial) {
277
- super();
278
- ComponentKeys.textDecoration.forEach((key) => {
279
- var _a;
280
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : TextDecorationTheme.defaultClasses[key];
281
- });
228
+ constructor() {
229
+ super(...arguments);
230
+ this.underline = "underline";
231
+ this.lineThrough = "line-through";
232
+ this.noUnderline = "no-underline";
233
+ this.overline = "overline";
282
234
  }
283
235
  getClasses(extractedKeys) {
284
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textDecoration;
285
- return [key ? this[key] : '']; // No default for text decoration
236
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textDecoration) ? this[extractedKeys.textDecoration] : ''];
286
237
  }
287
238
  }
288
- TextDecorationTheme.defaultClasses = {
289
- underline: "underline",
290
- lineThrough: "line-through",
291
- noUnderline: "no-underline",
292
- overline: "overline",
293
- };
294
239
 
295
240
  class TextTransformTheme extends BaseTheme {
296
- constructor(initial) {
297
- super();
298
- ComponentKeys.textTransform.forEach((key) => {
299
- var _a;
300
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : TextTransformTheme.defaultClasses[key];
301
- });
241
+ constructor() {
242
+ super(...arguments);
243
+ this.uppercase = "uppercase";
244
+ this.lowercase = "lowercase";
245
+ this.capitalize = "capitalize";
246
+ this.normalCase = "normal-case";
302
247
  }
303
248
  getClasses(extractedKeys) {
304
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textTransform;
305
- return [key ? this[key] : '']; // No default for text transform
249
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textTransform) ? this[extractedKeys.textTransform] : ''];
306
250
  }
307
251
  }
308
- TextTransformTheme.defaultClasses = {
309
- uppercase: "uppercase",
310
- lowercase: "lowercase",
311
- capitalize: "capitalize",
312
- normalCase: "normal-case",
313
- };
314
252
 
315
253
  class TextAlignTheme extends BaseTheme {
316
- constructor(initial) {
317
- super();
318
- ComponentKeys.textAlign.forEach((key) => {
319
- var _a;
320
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : TextAlignTheme.defaultClasses[key];
321
- });
254
+ constructor() {
255
+ super(...arguments);
256
+ this.textLeft = "text-left";
257
+ this.textCenter = "text-center";
258
+ this.textRight = "text-right";
259
+ this.textJustify = "text-justify";
322
260
  }
323
261
  getClasses(extractedKeys) {
324
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textAlign;
325
- return [key ? this[key] : '']; // No default for text align
262
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textAlign) ? this[extractedKeys.textAlign] : ''];
326
263
  }
327
264
  }
328
- TextAlignTheme.defaultClasses = {
329
- textLeft: "text-left",
330
- textCenter: "text-center",
331
- textRight: "text-right",
332
- textJustify: "text-justify",
333
- };
334
265
 
335
266
  class DisplayTheme extends BaseTheme {
336
- constructor(initialConfig) {
337
- super();
338
- ComponentKeys.display.forEach((key) => {
339
- var _a;
340
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : DisplayTheme.defaultClasses[key];
341
- });
267
+ constructor() {
268
+ super(...arguments);
269
+ this.inline = "inline";
270
+ this.block = "block";
271
+ this.inlineBlock = "inline-block";
272
+ this.flex = "flex";
273
+ this.inlineFlex = "inline-flex";
274
+ this.grid = "grid";
275
+ this.inlineGrid = "inline-grid";
276
+ this.contents = "contents";
277
+ this.table = "table";
278
+ this.tableCell = "table-cell";
279
+ this.hidden = "hidden";
342
280
  }
343
281
  getClasses(extractedKeys) {
344
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.display;
345
- return [key && this[key] ? this[key] : ''];
282
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.display) && this[extractedKeys.display] ? this[extractedKeys.display] : ''];
346
283
  }
347
284
  }
348
- DisplayTheme.defaultClasses = {
349
- inline: "inline",
350
- block: "block",
351
- inlineBlock: "inline-block",
352
- flex: "flex",
353
- inlineFlex: "inline-flex",
354
- grid: "grid",
355
- inlineGrid: "inline-grid",
356
- contents: "contents",
357
- table: "table",
358
- tableCell: "table-cell",
359
- hidden: "hidden"
360
- };
361
285
 
362
286
  const CLASS_PART_SEPARATOR = '-';
363
287
  const createClassGroupUtils = config => {
@@ -3071,35 +2995,28 @@ const getDefaultConfig = () => {
3071
2995
  const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);
3072
2996
 
3073
2997
  class OverflowTheme extends BaseTheme {
3074
- constructor(initialConfig) {
3075
- super();
3076
- ComponentKeys.overflow.forEach((key) => {
3077
- var _a;
3078
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : OverflowTheme.defaultClasses[key];
3079
- });
2998
+ constructor() {
2999
+ super(...arguments);
3000
+ this.overflowAuto = 'overflow-auto';
3001
+ this.overflowHidden = 'overflow-hidden';
3002
+ this.overflowClip = 'overflow-clip';
3003
+ this.overflowVisible = 'overflow-visible';
3004
+ this.overflowScroll = 'overflow-scroll';
3005
+ this.overflowXAuto = 'overflow-x-auto';
3006
+ this.overflowYAuto = 'overflow-y-auto';
3007
+ this.overflowXHidden = 'overflow-x-hidden';
3008
+ this.overflowYHidden = 'overflow-y-hidden';
3009
+ this.overflowXClip = 'overflow-x-clip';
3010
+ this.overflowYClip = 'overflow-y-clip';
3011
+ this.overflowXVisible = 'overflow-x-visible';
3012
+ this.overflowYVisible = 'overflow-y-visible';
3013
+ this.overflowXScroll = 'overflow-x-scroll';
3014
+ this.overflowYScroll = 'overflow-y-scroll';
3080
3015
  }
3081
3016
  getClasses(extractedKeys) {
3082
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.overflow;
3083
- return [key && this[key] ? this[key] : ''];
3017
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.overflow) && this[extractedKeys.overflow] ? this[extractedKeys.overflow] : ''];
3084
3018
  }
3085
3019
  }
3086
- OverflowTheme.defaultClasses = {
3087
- overflowAuto: 'overflow-auto',
3088
- overflowHidden: 'overflow-hidden',
3089
- overflowClip: 'overflow-clip',
3090
- overflowVisible: 'overflow-visible',
3091
- overflowScroll: 'overflow-scroll',
3092
- overflowXAuto: 'overflow-x-auto',
3093
- overflowYAuto: 'overflow-y-auto',
3094
- overflowXHidden: 'overflow-x-hidden',
3095
- overflowYHidden: 'overflow-y-hidden',
3096
- overflowXClip: 'overflow-x-clip',
3097
- overflowYClip: 'overflow-y-clip',
3098
- overflowXVisible: 'overflow-x-visible',
3099
- overflowYVisible: 'overflow-y-visible',
3100
- overflowXScroll: 'overflow-x-scroll',
3101
- overflowYScroll: 'overflow-y-scroll',
3102
- };
3103
3020
 
3104
3021
  /**
3105
3022
  * Pick the first truthy key from props using a ComponentKeys category name.
@@ -3178,7 +3095,7 @@ class ComponentTheme {
3178
3095
  };
3179
3096
  walk(this.themes);
3180
3097
  // Apply extra classes based on extracted keys
3181
- for (const [key, value] of Object.entries(extractedKeys)) {
3098
+ for (const [, value] of Object.entries(extractedKeys)) {
3182
3099
  if (value && this.extraClasses[value]) {
3183
3100
  const existingClasses = this.extraClasses[value];
3184
3101
  if (existingClasses !== undefined) {
@@ -3220,6 +3137,11 @@ class ComponentTheme {
3220
3137
  class SizeTheme extends BaseTheme {
3221
3138
  constructor(sizeMap, useDefaultKey = true) {
3222
3139
  super();
3140
+ this.xs = "";
3141
+ this.sm = "";
3142
+ this.md = "";
3143
+ this.lg = "";
3144
+ this.xl = "";
3223
3145
  this.useDefaultKey = useDefaultKey;
3224
3146
  ComponentKeys.size.forEach((key) => {
3225
3147
  var _a;
@@ -3229,35 +3151,30 @@ class SizeTheme extends BaseTheme {
3229
3151
  getClasses(extractedKeys) {
3230
3152
  var _a;
3231
3153
  const size = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : (this.useDefaultKey ? 'md' : undefined);
3232
- if (size !== undefined)
3233
- return [this[size]];
3234
- else
3235
- return [''];
3154
+ return size ? [this[size]] : [''];
3236
3155
  }
3237
3156
  }
3238
3157
 
3239
3158
  class GapTheme extends BaseTheme {
3240
3159
  constructor(sizeMap) {
3241
3160
  super();
3242
- this.defaultClasses = {
3243
- xs: 'gap-2', sm: 'gap-3', md: 'gap-4', lg: 'gap-5', xl: 'gap-6'
3244
- };
3245
- ComponentKeys.size.forEach((key) => {
3246
- var _a;
3247
- this[key] = (_a = sizeMap === null || sizeMap === void 0 ? void 0 : sizeMap[key]) !== null && _a !== void 0 ? _a : this.defaultClasses[key];
3248
- });
3161
+ this.xs = 'gap-2';
3162
+ this.sm = 'gap-3';
3163
+ this.md = 'gap-4';
3164
+ this.lg = 'gap-5';
3165
+ this.xl = 'gap-6';
3166
+ if (sizeMap) {
3167
+ ComponentKeys.size.forEach((key) => {
3168
+ if (sizeMap[key] !== undefined) {
3169
+ this[key] = sizeMap[key];
3170
+ }
3171
+ });
3172
+ }
3249
3173
  }
3250
3174
  getClasses(extractedKeys) {
3251
3175
  var _a;
3252
- const size = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md';
3253
- const gap = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.gap;
3254
- // If noGap is true, return empty array (no gap classes)
3255
- if (gap === 'noGap') {
3256
- return [];
3257
- }
3258
- // If gap is true or undefined, apply gap classes based on size
3259
- if (gap === 'gap') {
3260
- const gapClass = this[size];
3176
+ if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.gap) === 'gap') {
3177
+ const gapClass = this[(_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md'];
3261
3178
  return gapClass ? [gapClass] : [];
3262
3179
  }
3263
3180
  return [];
@@ -3289,21 +3206,22 @@ class RadiusTheme extends BaseTheme {
3289
3206
  static createUITheme(customRounded) {
3290
3207
  return new RadiusTheme(customRounded || uiBorderRadiusClasses);
3291
3208
  }
3292
- static createLayoutTheme(customRounded) {
3293
- return new RadiusTheme(customRounded || layoutBorderRadiusClasses);
3209
+ static createLayoutTheme() {
3210
+ return new RadiusTheme(layoutBorderRadiusClasses);
3294
3211
  }
3295
3212
  getClasses(extractedKeys) {
3296
3213
  var _a, _b;
3297
- const size = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md';
3298
- const shape = (_b = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.shape) !== null && _b !== void 0 ? _b : 'rounded';
3214
+ const size = (_a = extractedKeys.size) !== null && _a !== void 0 ? _a : 'md';
3215
+ const shape = (_b = extractedKeys.shape) !== null && _b !== void 0 ? _b : 'rounded';
3299
3216
  switch (shape) {
3300
3217
  case 'pill':
3301
3218
  return [this.pill];
3302
3219
  case 'sharp':
3303
3220
  return [this.sharp];
3304
- case 'rounded':
3221
+ case 'rounded': {
3305
3222
  const roundedClass = this.rounded[size];
3306
3223
  return roundedClass ? [roundedClass] : [];
3224
+ }
3307
3225
  default:
3308
3226
  return [];
3309
3227
  }
@@ -3311,81 +3229,53 @@ class RadiusTheme extends BaseTheme {
3311
3229
  }
3312
3230
 
3313
3231
  class BorderTheme extends BaseTheme {
3314
- constructor(initial) {
3315
- super();
3316
- this.defaultClasses = {
3317
- base: "border",
3318
- hover: "",
3319
- active: "",
3320
- };
3321
- ComponentKeys.mode.forEach((key) => {
3322
- var _a;
3323
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : this.defaultClasses[key];
3324
- });
3232
+ constructor() {
3233
+ super(...arguments);
3234
+ this.base = "border";
3235
+ this.hover = "";
3236
+ this.active = "";
3325
3237
  }
3326
3238
  getClasses(extractedKeys) {
3327
- const border = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.border;
3328
- // If noBorder is true, return empty array (no border classes)
3329
- if (border === 'noBorder') {
3330
- return [];
3331
- }
3332
- // Only apply border classes if border is explicitly true
3333
- if (border === 'border') {
3334
- return ComponentKeys.mode.map(mode => this[mode] || '').filter(Boolean);
3335
- }
3336
- return [];
3239
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.border) === "border"
3240
+ ? ComponentKeys.mode.map((mode) => this[mode])
3241
+ : [];
3337
3242
  }
3338
3243
  }
3339
3244
 
3340
3245
  class RingTheme extends BaseTheme {
3341
- constructor(initial) {
3342
- super();
3343
- this.defaultClasses = {
3344
- base: "ring ring-inset",
3345
- hover: "hover:ring hover:ring-inset",
3346
- active: "active:ring active:ring-inset",
3347
- };
3348
- ComponentKeys.mode.forEach((key) => {
3349
- var _a;
3350
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : this.defaultClasses[key];
3351
- });
3246
+ constructor() {
3247
+ super(...arguments);
3248
+ this.base = "ring ring-inset";
3249
+ this.hover = "";
3250
+ this.active = "";
3352
3251
  }
3353
3252
  getClasses(extractedKeys) {
3354
- const ring = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.ring;
3355
- // If noRing is true, return empty array (no ring classes)
3356
- if (ring === 'noRing') {
3357
- return [];
3358
- }
3359
- // Only apply ring classes if ring is explicitly true
3360
- if (ring === 'ring') {
3361
- return ComponentKeys.mode.map(mode => this[mode] || '').filter(Boolean);
3362
- }
3363
- return [];
3253
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.ring) === 'ring'
3254
+ ? ComponentKeys.mode.map(mode => this[mode] || '').filter(Boolean)
3255
+ : [];
3364
3256
  }
3365
3257
  }
3366
3258
 
3367
3259
  class PaddingTheme extends BaseTheme {
3368
3260
  constructor(initial) {
3369
3261
  super();
3370
- this.defaultClasses = {
3371
- xs: "", sm: "", md: "", lg: "", xl: ""
3372
- };
3373
- ComponentKeys.size.forEach((key) => {
3374
- var _a;
3375
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : this.defaultClasses[key];
3376
- });
3262
+ this.xs = "";
3263
+ this.sm = "";
3264
+ this.md = "";
3265
+ this.lg = "";
3266
+ this.xl = "";
3267
+ if (initial) {
3268
+ ComponentKeys.size.forEach((key) => {
3269
+ if (initial[key] !== undefined) {
3270
+ this[key] = initial[key];
3271
+ }
3272
+ });
3273
+ }
3377
3274
  }
3378
3275
  getClasses(extractedKeys) {
3379
3276
  var _a;
3380
- const size = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md';
3381
- const padding = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding;
3382
- // If noPadding is true, return empty array (no padding classes)
3383
- if (padding === 'noPadding') {
3384
- return [];
3385
- }
3386
- // If padding is true or undefined, apply padding classes based on size
3387
- if (padding === 'padding' || padding === undefined) {
3388
- const paddingClass = this[size];
3277
+ if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding) === 'padding' || (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding) === undefined) {
3278
+ const paddingClass = this[(_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md'];
3389
3279
  return paddingClass ? [paddingClass] : [];
3390
3280
  }
3391
3281
  return [];
@@ -3395,13 +3285,12 @@ class PaddingTheme extends BaseTheme {
3395
3285
  class PxTheme extends PaddingTheme {
3396
3286
  constructor(sizeMap) {
3397
3287
  super(sizeMap);
3398
- this.defaultClasses = {
3399
- xs: "px-2", sm: "px-4", md: "px-6", lg: "px-8", xl: "px-10"
3400
- };
3401
3288
  // Override with PxTheme's default classes if no custom sizeMap provided
3402
3289
  if (!sizeMap) {
3403
3290
  ComponentKeys.size.forEach((key) => {
3404
- this[key] = this.defaultClasses[key];
3291
+ this[key] = {
3292
+ xs: "px-2", sm: "px-4", md: "px-6", lg: "px-8", xl: "px-10"
3293
+ }[key];
3405
3294
  });
3406
3295
  }
3407
3296
  }
@@ -3410,26 +3299,35 @@ class PxTheme extends PaddingTheme {
3410
3299
  class PyTheme extends PaddingTheme {
3411
3300
  constructor(sizeMap) {
3412
3301
  super(sizeMap);
3413
- this.defaultClasses = {
3414
- xs: "py-2", sm: "py-4", md: "py-6", lg: "py-8", xl: "py-10"
3415
- };
3416
3302
  // Override with PyTheme's default classes if no custom sizeMap provided
3417
3303
  if (!sizeMap) {
3418
3304
  ComponentKeys.size.forEach((key) => {
3419
- this[key] = this.defaultClasses[key];
3305
+ this[key] = {
3306
+ xs: "py-2", sm: "py-4", md: "py-6", lg: "py-8", xl: "py-10"
3307
+ }[key];
3420
3308
  });
3421
3309
  }
3422
3310
  }
3423
3311
  }
3424
3312
 
3425
3313
  class AppearanceTheme extends BaseTheme {
3426
- constructor(config, transparentClasses) {
3314
+ constructor(config, category, transparentClasses) {
3427
3315
  super();
3428
3316
  Object.assign(this, config);
3317
+ this.category = category;
3429
3318
  this.transparentClasses = transparentClasses;
3430
3319
  }
3431
3320
  getClasses(extractedKeys) {
3432
3321
  var _a;
3322
+ if (this.category === 'border' && extractedKeys.border === 'noBorder') {
3323
+ return [];
3324
+ }
3325
+ if (this.category === 'ring' && extractedKeys.ring === 'noRing') {
3326
+ return [];
3327
+ }
3328
+ if (this.category === 'shadow' && extractedKeys.shadow === 'noShadow') {
3329
+ return [];
3330
+ }
3433
3331
  // Check for specific transparent styles first
3434
3332
  if (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.transparent) {
3435
3333
  const transparentClass = ((_a = this.transparentClasses) === null || _a === void 0 ? void 0 : _a[extractedKeys.transparent]) || '';
@@ -3445,7 +3343,7 @@ class AppearanceTheme extends BaseTheme {
3445
3343
  }
3446
3344
  return [];
3447
3345
  }
3448
- static createTheme(src = {}) {
3346
+ static createTheme(src = {}, category) {
3449
3347
  const config = Object.fromEntries(ComponentKeys.appearance.map(textKey => [
3450
3348
  textKey,
3451
3349
  Object.fromEntries(ComponentKeys.mode.map(modeKey => {
@@ -3456,7 +3354,7 @@ class AppearanceTheme extends BaseTheme {
3456
3354
  ];
3457
3355
  })),
3458
3356
  ]));
3459
- return new AppearanceTheme(config, src.base);
3357
+ return new AppearanceTheme(config, category, src.base);
3460
3358
  }
3461
3359
  }
3462
3360
 
@@ -3772,21 +3670,21 @@ class GenericVariantTheme extends BaseTheme {
3772
3670
  getClasses(extractedKeys) {
3773
3671
  var _a;
3774
3672
  const variantKey = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.variant) !== null && _a !== void 0 ? _a : 'outline';
3775
- const activeTextAppearanceTheme = this[variantKey];
3776
- if (!activeTextAppearanceTheme) {
3673
+ const activeTheme = this[variantKey];
3674
+ if (!activeTheme) {
3777
3675
  return [];
3778
3676
  }
3779
- return activeTextAppearanceTheme.getClasses(extractedKeys);
3677
+ return activeTheme.getClasses(extractedKeys);
3780
3678
  }
3781
3679
  // used for button, bages, chips, etc
3782
3680
  static createUIElementTextTheme() {
3783
3681
  return new GenericVariantTheme({
3784
3682
  outline: AppearanceTheme.createTheme({
3785
3683
  base: textAppearanceClasses
3786
- }),
3684
+ }, 'text'),
3787
3685
  filled: AppearanceTheme.createTheme({
3788
3686
  base: filledTextAppearanceClasses
3789
- })
3687
+ }, 'text')
3790
3688
  });
3791
3689
  }
3792
3690
  static createUIElementShadowTheme() {
@@ -3801,170 +3699,121 @@ class GenericVariantTheme extends BaseTheme {
3801
3699
  filled: ShadowAppearanceTheme.createLayoutTheme({})
3802
3700
  });
3803
3701
  }
3804
- static createBorderAppearanceTheme() {
3805
- return new GenericVariantTheme({
3806
- outline: AppearanceTheme.createTheme({ base: borderAppearanceClasses }),
3807
- filled: AppearanceTheme.createTheme({ base: filledBorderAppearanceClasses })
3808
- });
3809
- }
3810
3702
  static createUIElementBorderTheme() {
3811
3703
  return new GenericVariantTheme({
3812
3704
  outline: AppearanceTheme.createTheme({
3813
3705
  base: borderAppearanceClasses
3814
- }),
3706
+ }, 'border'),
3815
3707
  filled: AppearanceTheme.createTheme({
3816
3708
  base: filledBorderAppearanceClasses
3817
- })
3709
+ }, 'border')
3818
3710
  });
3819
3711
  }
3820
3712
  static createUIElementRingTheme() {
3821
3713
  return new GenericVariantTheme({
3822
3714
  outline: AppearanceTheme.createTheme({
3823
3715
  base: ringAppearanceClasses
3824
- }),
3716
+ }, 'ring'),
3825
3717
  filled: AppearanceTheme.createTheme({
3826
3718
  base: filledRingAppearanceClasses
3827
- })
3828
- });
3829
- }
3830
- static createBgAppearanceTheme() {
3831
- return new GenericVariantTheme({
3832
- outline: AppearanceTheme.createTheme({
3833
- base: backgroundAppearanceClasses,
3834
- hover: hoverBackgroundAppearanceClasses,
3835
- active: activeBackgroundAppearanceClasses
3836
- }),
3837
- filled: AppearanceTheme.createTheme({
3838
- base: filledBackgroundAppearanceClasses,
3839
- hover: filledHoverBackgroundAppearanceClasses,
3840
- active: filledActiveBackgroundAppearanceClasses
3841
- })
3719
+ }, 'ring')
3842
3720
  });
3843
3721
  }
3844
3722
  static createCheckboxBgAppearanceTheme() {
3845
3723
  return new GenericVariantTheme({
3846
3724
  outline: AppearanceTheme.createTheme({
3847
3725
  base: backgroundAppearanceClasses,
3848
- }),
3726
+ }, 'bg'),
3849
3727
  filled: AppearanceTheme.createTheme({
3850
3728
  base: backgroundAppearanceClasses,
3851
- })
3729
+ }, 'bg')
3852
3730
  });
3853
3731
  }
3854
- static createUIElementBgAppearanceTheme() {
3732
+ static createBgAppearanceTheme() {
3855
3733
  return new GenericVariantTheme({
3856
3734
  outline: AppearanceTheme.createTheme({
3857
3735
  base: backgroundAppearanceClasses,
3858
3736
  hover: hoverBackgroundAppearanceClasses,
3859
3737
  active: activeBackgroundAppearanceClasses
3860
- }),
3738
+ }, 'bg'),
3861
3739
  filled: AppearanceTheme.createTheme({
3862
3740
  base: filledBackgroundAppearanceClasses,
3863
3741
  hover: filledHoverBackgroundAppearanceClasses,
3864
3742
  active: filledActiveBackgroundAppearanceClasses
3865
- })
3866
- });
3867
- }
3868
- static createSimpleBgAppearanceTheme() {
3869
- return new GenericVariantTheme({
3870
- outline: AppearanceTheme.createTheme({
3871
- base: backgroundAppearanceClasses,
3872
- }),
3873
- filled: AppearanceTheme.createTheme({
3874
- base: filledBackgroundAppearanceClasses,
3875
- })
3743
+ }, 'bg')
3876
3744
  });
3877
3745
  }
3878
3746
  static createSimpleUIElementBgAppearanceTheme() {
3879
3747
  return new GenericVariantTheme({
3880
3748
  outline: AppearanceTheme.createTheme({
3881
3749
  base: backgroundAppearanceClasses,
3882
- }),
3750
+ }, 'bg'),
3883
3751
  filled: AppearanceTheme.createTheme({
3884
3752
  base: filledBackgroundAppearanceClasses,
3885
- })
3753
+ }, 'bg')
3886
3754
  });
3887
3755
  }
3888
3756
  static createAccentColorAppearanceTheme() {
3889
3757
  return new GenericVariantTheme({
3890
3758
  outline: AppearanceTheme.createTheme({
3891
3759
  base: accentColorAppearanceClasses
3892
- }),
3760
+ }, 'accent'),
3893
3761
  filled: AppearanceTheme.createTheme({
3894
3762
  base: filledAccentColorAppearanceClasses
3895
- })
3763
+ }, 'accent')
3896
3764
  });
3897
3765
  }
3898
3766
  static createCheckedAppearanceTheme() {
3899
3767
  return new GenericVariantTheme({
3900
3768
  outline: AppearanceTheme.createTheme({
3901
3769
  base: checkedBackgroundAppearanceClasses
3902
- }),
3770
+ }, 'bg'),
3903
3771
  filled: AppearanceTheme.createTheme({
3904
3772
  base: filledCheckedBackgroundAppearanceClasses
3905
- })
3773
+ }, 'bg')
3906
3774
  });
3907
3775
  }
3908
3776
  static createLayoutBgAppearanceTheme() {
3909
3777
  return new GenericVariantTheme({
3910
3778
  outline: AppearanceTheme.createTheme({
3911
3779
  base: layoutBackgroundAppearanceClasses
3912
- }),
3780
+ }, 'bg'),
3913
3781
  filled: AppearanceTheme.createTheme({
3914
3782
  base: layoutFilledBackgroundAppearanceClasses
3915
- })
3783
+ }, 'bg')
3916
3784
  });
3917
3785
  }
3918
3786
  }
3919
3787
 
3920
3788
  class WrapTheme extends BaseTheme {
3921
- constructor(initialConfig) {
3922
- super();
3923
- ComponentKeys.wrap.forEach((key) => {
3924
- var _a;
3925
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : WrapTheme.defaultClasses[key];
3926
- });
3789
+ constructor() {
3790
+ super(...arguments);
3791
+ this.flexWrap = "flex-wrap";
3792
+ this.flexNoWrap = "flex-nowrap";
3793
+ this.flexWrapReverse = "flex-wrap-reverse";
3927
3794
  }
3928
3795
  getClasses(extractedKeys) {
3929
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.wrap;
3930
- return key ? [this[key]] : [];
3796
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.wrap) ? [this[extractedKeys.wrap]] : [];
3931
3797
  }
3932
3798
  }
3933
- WrapTheme.defaultClasses = {
3934
- flexWrap: "flex-wrap",
3935
- flexNoWrap: "flex-nowrap",
3936
- flexWrapReverse: "flex-wrap-reverse"
3937
- };
3938
3799
 
3939
3800
  class DirectionTheme extends BaseTheme {
3940
- constructor(initial) {
3941
- super();
3942
- ComponentKeys.flexDirection.forEach((key) => {
3943
- this[key] = (initial === null || initial === void 0 ? void 0 : initial[key]) || DirectionTheme.defaultClasses[key];
3944
- });
3801
+ constructor() {
3802
+ super(...arguments);
3803
+ this.row = "flex-row";
3804
+ this.column = "flex-col";
3805
+ this.rowReverse = "flex-row-reverse";
3806
+ this.columnReverse = "flex-col-reverse";
3945
3807
  }
3946
3808
  getClasses(extractedKeys) {
3947
- let direction = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection;
3948
- const reverse = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.reverse;
3949
- if (reverse === 'reverse') {
3950
- switch (direction) {
3951
- case "column":
3952
- direction = "columnReverse";
3953
- break;
3954
- case "row":
3955
- direction = "rowReverse";
3956
- break;
3957
- }
3958
- }
3809
+ const direction = (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.reverse) === 'reverse'
3810
+ ? ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection) === "column" ? "columnReverse"
3811
+ : (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection) === "row" ? "rowReverse"
3812
+ : extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection)
3813
+ : extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection;
3959
3814
  return direction ? [this[direction]] : [];
3960
3815
  }
3961
3816
  }
3962
- DirectionTheme.defaultClasses = {
3963
- row: "flex-row",
3964
- column: "flex-col",
3965
- rowReverse: "flex-row-reverse",
3966
- columnReverse: "flex-col-reverse",
3967
- };
3968
3817
 
3969
3818
  /**
3970
3819
  * Default props for all components using the existing ThemeDefaults type
@@ -4190,7 +4039,7 @@ const defaultButtonTheme = new ComponentTheme("button", "w-fit h-fit cursor-poin
4190
4039
  text: new SizeTheme({ xs: 'text-xs', sm: 'text-sm', md: 'text-base', lg: 'text-lg', xl: 'text-xl' }),
4191
4040
  },
4192
4041
  appearance: {
4193
- background: GenericVariantTheme.createUIElementBgAppearanceTheme(),
4042
+ background: GenericVariantTheme.createBgAppearanceTheme(),
4194
4043
  text: GenericVariantTheme.createUIElementTextTheme(),
4195
4044
  border: GenericVariantTheme.createUIElementBorderTheme(),
4196
4045
  ring: GenericVariantTheme.createUIElementRingTheme(),
@@ -4205,7 +4054,7 @@ const defaultButtonTheme = new ComponentTheme("button", "w-fit h-fit cursor-poin
4205
4054
  flexDirection: new DirectionTheme(),
4206
4055
  },
4207
4056
  typography: defaultTypographyTheme,
4208
- }, themeDefaults.button, BUTTON_CATEGORIES, (props, defaults) => {
4057
+ }, themeDefaults.button, BUTTON_CATEGORIES, (props) => {
4209
4058
  // Determine tag based on href prop
4210
4059
  return props.href ? "a" : "button";
4211
4060
  });
@@ -4233,7 +4082,7 @@ const defaultBadgeTheme = new ComponentTheme("span", "w-fit h-fit transition-all
4233
4082
  flexDirection: new DirectionTheme(),
4234
4083
  },
4235
4084
  typography: defaultTypographyTheme,
4236
- }, themeDefaults.badge, BADGE_CATEGORIES, (props, defaults) => {
4085
+ }, themeDefaults.badge, BADGE_CATEGORIES, (props) => {
4237
4086
  return props.href ? "a" : "span";
4238
4087
  });
4239
4088
 
@@ -4260,7 +4109,7 @@ const defaultChipTheme = new ComponentTheme("span", "w-fit h-fit transition-all
4260
4109
  flexDirection: new DirectionTheme(),
4261
4110
  },
4262
4111
  typography: defaultTypographyTheme,
4263
- }, themeDefaults.chip, CHIP_CATEGORIES, (props, defaults) => {
4112
+ }, themeDefaults.chip, CHIP_CATEGORIES, (props) => {
4264
4113
  return props.href ? "a" : "span";
4265
4114
  });
4266
4115
 
@@ -4333,7 +4182,7 @@ const deepClone = (source) => {
4333
4182
  };
4334
4183
  const findGroup = (key) => {
4335
4184
  // Check each group in ComponentKeys to find which one contains this key
4336
- for (const [groupName, group] of Object.entries(ComponentKeys)) {
4185
+ for (const [, group] of Object.entries(ComponentKeys)) {
4337
4186
  if (group.includes(key)) {
4338
4187
  return group;
4339
4188
  }
@@ -4369,32 +4218,22 @@ const mergeDefaults = (baseDefaults, overrideDefaults) => {
4369
4218
  class PlTheme extends PaddingTheme {
4370
4219
  constructor(sizeMap) {
4371
4220
  super(sizeMap);
4372
- this.defaultClasses = {
4373
- xs: "pl-2", sm: "pl-4", md: "pl-6", lg: "pl-8", xl: "pl-10"
4374
- };
4375
4221
  // Override with PlTheme's default classes if no custom sizeMap provided
4376
4222
  if (!sizeMap) {
4377
4223
  ComponentKeys.size.forEach((key) => {
4378
- this[key] = this.defaultClasses[key];
4224
+ this[key] = {
4225
+ xs: "pl-2", sm: "pl-4", md: "pl-6", lg: "pl-8", xl: "pl-10"
4226
+ }[key];
4379
4227
  });
4380
4228
  }
4381
4229
  }
4382
4230
  }
4383
4231
 
4384
4232
  class ListStyleTheme extends BaseTheme {
4385
- constructor(initial) {
4386
- super();
4387
- ComponentKeys.listStyle.forEach((key) => {
4388
- var _a;
4389
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : this.getDefaultClass(key);
4390
- });
4391
- }
4392
- getDefaultClass(key) {
4393
- const defaultClasses = {
4394
- disc: 'list-disc',
4395
- decimal: 'list-decimal',
4396
- };
4397
- return defaultClasses[key];
4233
+ constructor() {
4234
+ super(...arguments);
4235
+ this.disc = 'list-disc';
4236
+ this.decimal = 'list-decimal';
4398
4237
  }
4399
4238
  getClasses(extractedKeys) {
4400
4239
  const listStyle = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.listStyle;
@@ -4416,7 +4255,7 @@ const createTypographyComponentTheme = (tag, base = "text-balance", textSizeMap
4416
4255
  },
4417
4256
  typography: defaultTypographyTheme,
4418
4257
  layout: defaultLayoutTheme,
4419
- }, defaults, TYPOGRAPHY_CATEGORIES, (props, defaults) => {
4258
+ }, defaults, TYPOGRAPHY_CATEGORIES, (props) => {
4420
4259
  // Determine tag based on href prop
4421
4260
  return props.href ? "a" : tag;
4422
4261
  });
@@ -4474,37 +4313,27 @@ const listTheme = new ComponentTheme("ul", "list-inside", {
4474
4313
  typography: defaultTypographyTheme,
4475
4314
  layout: defaultLayoutTheme,
4476
4315
  listStyle: new ListStyleTheme(),
4477
- }, themeDefaults.list, LIST_CATEGORIES, (props, defaults) => {
4478
- // Determine tag based on list style from props and defaults
4316
+ }, themeDefaults.list, LIST_CATEGORIES, (props) => {
4317
+ // Determine tag based on list style from props
4479
4318
  const componentProps = props;
4480
- const defaultsRecord = defaults;
4481
- // Check if decimal is set in props or defaults
4482
- const hasDecimal = (componentProps === null || componentProps === void 0 ? void 0 : componentProps.decimal) || (defaultsRecord === null || defaultsRecord === void 0 ? void 0 : defaultsRecord.decimal);
4319
+ // Check if decimal is set in props
4320
+ const hasDecimal = componentProps === null || componentProps === void 0 ? void 0 : componentProps.decimal;
4483
4321
  return hasDecimal ? "ol" : "ul";
4484
4322
  });
4485
4323
 
4486
4324
  class BreakpointTheme extends BaseTheme {
4487
- constructor(initial) {
4488
- super();
4489
- ComponentKeys.breakpoint.forEach((key) => {
4490
- var _a;
4491
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : BreakpointTheme.defaultClasses[key];
4492
- });
4325
+ constructor() {
4326
+ super(...arguments);
4327
+ this.xsCol = "max-xs:flex-col";
4328
+ this.smCol = "max-sm:flex-col";
4329
+ this.mdCol = "max-md:flex-col";
4330
+ this.lgCol = "max-lg:flex-col";
4331
+ this.xlCol = "max-xl:flex-col";
4493
4332
  }
4494
4333
  getClasses(extractedKeys) {
4495
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.breakpoint;
4496
- if (!key)
4497
- return [];
4498
- return [this[key] || ''];
4334
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.breakpoint) ? [this[extractedKeys.breakpoint] || ''] : [];
4499
4335
  }
4500
4336
  }
4501
- BreakpointTheme.defaultClasses = {
4502
- xsCol: "max-xs:flex-col",
4503
- smCol: "max-sm:flex-col",
4504
- mdCol: "max-md:flex-col",
4505
- lgCol: "max-lg:flex-col",
4506
- xlCol: "max-xl:flex-col"
4507
- };
4508
4337
 
4509
4338
  const defaultCardTheme = new ComponentTheme("div", "", {
4510
4339
  size: {
@@ -4541,7 +4370,7 @@ const defaultCardTheme = new ComponentTheme("div", "", {
4541
4370
  ring: GenericVariantTheme.createUIElementRingTheme(),
4542
4371
  },
4543
4372
  typography: defaultTypographyTheme,
4544
- }, themeDefaults.card, CARD_CATEGORIES, (props, defaults) => {
4373
+ }, themeDefaults.card, CARD_CATEGORIES, (props) => {
4545
4374
  return props.href ? "a" : "div";
4546
4375
  });
4547
4376
 
@@ -4565,7 +4394,7 @@ const defaultRowTheme = new ComponentTheme("div", "", {
4565
4394
  ring: GenericVariantTheme.createUIElementRingTheme(),
4566
4395
  shadow: GenericVariantTheme.createLayoutShadowTheme(),
4567
4396
  }
4568
- }, themeDefaults.row, ROW_CATEGORIES, (props, defaults) => {
4397
+ }, themeDefaults.row, ROW_CATEGORIES, (props) => {
4569
4398
  // Determine tag based on href prop
4570
4399
  return props.href ? "a" : "div";
4571
4400
  });
@@ -4577,7 +4406,7 @@ const defaultDividerTheme = new ComponentTheme("div", "h-px w-full", {
4577
4406
  appearance: {
4578
4407
  background: AppearanceTheme.createTheme({
4579
4408
  base: bgBorderAppearanceClasses,
4580
- }),
4409
+ }, 'bg'),
4581
4410
  },
4582
4411
  layout: defaultLayoutTheme,
4583
4412
  }, themeDefaults.divider, DIVIDER_CATEGORIES);
@@ -4608,7 +4437,7 @@ const defaultContainerTheme = new ComponentTheme("div", "flex-col mx-auto w-full
4608
4437
  ring: GenericVariantTheme.createUIElementRingTheme(),
4609
4438
  shadow: GenericVariantTheme.createLayoutShadowTheme(),
4610
4439
  }
4611
- }, themeDefaults.container, CONTAINER_CATEGORIES, (props, defaults) => {
4440
+ }, themeDefaults.container, CONTAINER_CATEGORIES, (props) => {
4612
4441
  return props.href ? "a" : "div";
4613
4442
  });
4614
4443
 
@@ -4631,7 +4460,7 @@ const defaultColTheme = new ComponentTheme("div", "", {
4631
4460
  ring: GenericVariantTheme.createUIElementRingTheme(),
4632
4461
  shadow: GenericVariantTheme.createLayoutShadowTheme(),
4633
4462
  }
4634
- }, themeDefaults.col, COL_CATEGORIES, (props, defaults) => {
4463
+ }, themeDefaults.col, COL_CATEGORIES, (props) => {
4635
4464
  return props.href ? "a" : "div";
4636
4465
  });
4637
4466
 
@@ -4657,7 +4486,7 @@ const defaultStackTheme = new ComponentTheme("div", "", {
4657
4486
  ring: GenericVariantTheme.createUIElementRingTheme(),
4658
4487
  shadow: GenericVariantTheme.createLayoutShadowTheme(),
4659
4488
  }
4660
- }, themeDefaults.stack, STACK_CATEGORIES, (props, defaults) => {
4489
+ }, themeDefaults.stack, STACK_CATEGORIES, (props) => {
4661
4490
  return props.href ? "a" : "div";
4662
4491
  });
4663
4492
 
@@ -4695,7 +4524,7 @@ const defaultSectionTheme = new ComponentTheme("div", "w-full flex-col", {
4695
4524
  ring: new RingTheme(),
4696
4525
  radius: RadiusTheme.createLayoutTheme(),
4697
4526
  },
4698
- }, themeDefaults.section, SECTION_CATEGORIES, (props, defaults) => {
4527
+ }, themeDefaults.section, SECTION_CATEGORIES, (props) => {
4699
4528
  return props.href ? "a" : "div";
4700
4529
  });
4701
4530
 
@@ -4719,13 +4548,13 @@ const gridSubThemes = {
4719
4548
  flexDirection: new DirectionTheme(),
4720
4549
  },
4721
4550
  };
4722
- const defaultGrid2Theme = new ComponentTheme("div", "grid-cols-1 md:grid-cols-2", gridSubThemes, themeDefaults.grid2, GRID_CATEGORIES, (props, defaults) => {
4551
+ const defaultGrid2Theme = new ComponentTheme("div", "grid-cols-1 md:grid-cols-2", gridSubThemes, themeDefaults.grid2, GRID_CATEGORIES, (props) => {
4723
4552
  return props.href ? "a" : "div";
4724
4553
  });
4725
- const defaultGrid3Theme = new ComponentTheme("div", "grid-cols-1 md:grid-cols-3", gridSubThemes, themeDefaults.grid3, GRID_CATEGORIES, (props, defaults) => {
4554
+ const defaultGrid3Theme = new ComponentTheme("div", "grid-cols-1 md:grid-cols-3", gridSubThemes, themeDefaults.grid3, GRID_CATEGORIES, (props) => {
4726
4555
  return props.href ? "a" : "div";
4727
4556
  });
4728
- const defaultGrid4Theme = new ComponentTheme("div", "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4", gridSubThemes, themeDefaults.grid4, GRID_CATEGORIES, (props, defaults) => {
4557
+ const defaultGrid4Theme = new ComponentTheme("div", "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4", gridSubThemes, themeDefaults.grid4, GRID_CATEGORIES, (props) => {
4729
4558
  return props.href ? "a" : "div";
4730
4559
  });
4731
4560
 
@@ -4989,15 +4818,25 @@ const Checkbox = react.forwardRef(function Checkbox(props, ref) {
4989
4818
  filled, outline,
4990
4819
  // Shape props
4991
4820
  pill, sharp, rounded,
4992
- // Custom props
4993
- className, ...inputProps } = props;
4821
+ // Extract input HTML attributes
4822
+ checked, defaultChecked, disabled, name, value, onChange, onBlur, onFocus, required, readOnly,
4823
+ // Other HTML attributes
4824
+ id, className, tabIndex, 'aria-label': ariaLabel, ...remainingProps } = props;
4994
4825
  const themeProps = {
4995
4826
  xs, sm, md, lg, xl,
4996
4827
  default: defaultProp, accent, primary, secondary, tertiary, success, danger, warning, info, transparent,
4997
4828
  filled, outline,
4998
4829
  pill, sharp, rounded
4999
4830
  };
5000
- return (jsxRuntime.jsxs(ThemedComponent, { theme: theme.checkbox.wrapper, ref: ref, ...themeProps, children: [jsxRuntime.jsx(ThemedComponent, { theme: theme.checkbox.input, ...props, type: "checkbox" }), jsxRuntime.jsx(ThemedComponent, { theme: theme.checkbox.check, ...themeProps, children: theme.checkbox.check.themes.checkElement() })] }));
4831
+ const inputProps = {
4832
+ type: "checkbox",
4833
+ checked, defaultChecked, disabled, name, value, onChange, onBlur, onFocus, required, readOnly,
4834
+ id, tabIndex, 'aria-label': ariaLabel,
4835
+ className, // Apply className to the input element
4836
+ ...remainingProps,
4837
+ ...themeProps
4838
+ };
4839
+ return (jsxRuntime.jsxs(ThemedComponent, { theme: theme.checkbox.wrapper, ref: ref, ...themeProps, children: [jsxRuntime.jsx(ThemedComponent, { theme: theme.checkbox.input, ...inputProps }), jsxRuntime.jsx(ThemedComponent, { theme: theme.checkbox.check, ...themeProps, children: theme.checkbox.check.themes.checkElement() })] }));
5001
4840
  });
5002
4841
 
5003
4842
  const Label = react.forwardRef(function Label(props, ref) {
@@ -5083,6 +4922,7 @@ const List = react.forwardRef(function List(props, ref) {
5083
4922
  return jsxRuntime.jsx(ThemedComponent, { ref: ref, theme: theme.list, ...props });
5084
4923
  });
5085
4924
 
4925
+ exports.APPEARANCE_CATEGORY = APPEARANCE_CATEGORY;
5086
4926
  exports.BADGE_CATEGORIES = BADGE_CATEGORIES;
5087
4927
  exports.BREAKPOINT = BREAKPOINT;
5088
4928
  exports.BUTTON_CATEGORIES = BUTTON_CATEGORIES;