@vaneui/ui 0.2.1-alpha.20250904211915.5efd1b4 → 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 (146) hide show
  1. package/dist/index.esm.js +271 -396
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/index.js +271 -395
  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 -6
  29. package/dist/src/components/ui/theme/appearance/shadowAppearanceTheme.d.ts +21 -0
  30. package/dist/{components → src/components}/ui/theme/layout/borderTheme.d.ts +4 -4
  31. package/dist/{components → src/components}/ui/theme/layout/directionTheme.d.ts +5 -4
  32. package/dist/src/components/ui/theme/layout/displayTheme.d.ts +17 -0
  33. package/dist/{components → src/components}/ui/theme/layout/hideTheme.d.ts +6 -4
  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/{components → src/components}/ui/theme/layout/positionTheme.d.ts +6 -4
  38. package/dist/{components → src/components}/ui/theme/layout/radiusTheme.d.ts +1 -6
  39. package/dist/{components → src/components}/ui/theme/layout/ringTheme.d.ts +4 -4
  40. package/dist/{components → src/components}/ui/theme/layout/wrapTheme.d.ts +4 -4
  41. package/dist/{components → src/components}/ui/theme/list/listStyleTheme.d.ts +3 -4
  42. package/dist/{components → src/components}/ui/theme/size/breakpointTheme.d.ts +6 -4
  43. package/dist/{components → src/components}/ui/theme/size/gapTheme.d.ts +6 -3
  44. package/dist/{components → src/components}/ui/theme/size/paddingTheme.d.ts +6 -3
  45. package/dist/{components → src/components}/ui/theme/size/plTheme.d.ts +0 -2
  46. package/dist/{components → src/components}/ui/theme/size/pxTheme.d.ts +0 -2
  47. package/dist/{components → src/components}/ui/theme/size/pyTheme.d.ts +0 -2
  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/{components → src/components}/ui/theme/typography/fontStyleTheme.d.ts +3 -4
  51. package/dist/src/components/ui/theme/typography/fontWeightTheme.d.ts +15 -0
  52. package/dist/{components → src/components}/ui/theme/typography/textAlignTheme.d.ts +5 -4
  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/displayTheme.d.ts +0 -9
  75. package/dist/components/ui/theme/layout/itemsTheme.d.ts +0 -9
  76. package/dist/components/ui/theme/layout/justifyTheme.d.ts +0 -9
  77. package/dist/components/ui/theme/layout/overflowTheme.d.ts +0 -9
  78. package/dist/components/ui/theme/typography/fontFamilyTheme.d.ts +0 -8
  79. package/dist/components/ui/theme/typography/fontWeightTheme.d.ts +0 -9
  80. package/dist/components/ui/theme/typography/textDecorationTheme.d.ts +0 -9
  81. package/dist/components/ui/theme/typography/textTransformTheme.d.ts +0 -9
  82. /package/dist/{components → src/components}/complex/sharer.d.ts +0 -0
  83. /package/dist/{components → src/components}/tests/badge.test.d.ts +0 -0
  84. /package/dist/{components → src/components}/tests/button.test.d.ts +0 -0
  85. /package/dist/{components → src/components}/tests/card.test.d.ts +0 -0
  86. /package/dist/{components → src/components}/tests/checkbox.test.d.ts +0 -0
  87. /package/dist/{components → src/components}/tests/chip.test.d.ts +0 -0
  88. /package/dist/{components → src/components}/tests/code.test.d.ts +0 -0
  89. /package/dist/{components → src/components}/tests/col.test.d.ts +0 -0
  90. /package/dist/{components → src/components}/tests/componentThemeCoverage.test.d.ts +0 -0
  91. /package/dist/{components → src/components}/tests/container.test.d.ts +0 -0
  92. /package/dist/{components → src/components}/tests/deepMerge.test.d.ts +0 -0
  93. /package/dist/{components → src/components}/tests/divider.test.d.ts +0 -0
  94. /package/dist/{components → src/components}/tests/extra-classes.test.d.ts +0 -0
  95. /package/dist/{components → src/components}/tests/grid.test.d.ts +0 -0
  96. /package/dist/{components → src/components}/tests/grid2.test.d.ts +0 -0
  97. /package/dist/{components → src/components}/tests/img.test.d.ts +0 -0
  98. /package/dist/{components → src/components}/tests/label.test.d.ts +0 -0
  99. /package/dist/{components → src/components}/tests/link.test.d.ts +0 -0
  100. /package/dist/{components → src/components}/tests/linkable.test.d.ts +0 -0
  101. /package/dist/{components → src/components}/tests/list.test.d.ts +0 -0
  102. /package/dist/{components → src/components}/tests/nested-theme-providers-simple.test.d.ts +0 -0
  103. /package/dist/{components → src/components}/tests/nested-theme-providers.test.d.ts +0 -0
  104. /package/dist/{components/tests/prop-filtering.test.d.ts → src/components/tests/pickFirstTruthyKeyByCategory.test.d.ts} +0 -0
  105. /package/dist/{components/tests/prop-types-validation.test.d.ts → src/components/tests/prop-filtering.test.d.ts} +0 -0
  106. /package/dist/{components → src/components}/tests/prop-omission-edge-cases.test.d.ts +0 -0
  107. /package/dist/{components → src/components}/tests/prop-omission.test.d.ts +0 -0
  108. /package/dist/{components/tests/theme-collections.test.d.ts → src/components/tests/prop-types-validation.test.d.ts} +0 -0
  109. /package/dist/{components → src/components}/tests/ref-support-comprehensive.test.d.ts +0 -0
  110. /package/dist/{components → src/components}/tests/ref-support.test.d.ts +0 -0
  111. /package/dist/{components → src/components}/tests/row.test.d.ts +0 -0
  112. /package/dist/{components → src/components}/tests/section.test.d.ts +0 -0
  113. /package/dist/{components → src/components}/tests/stack.test.d.ts +0 -0
  114. /package/dist/{components → src/components}/tests/text.test.d.ts +0 -0
  115. /package/dist/{components/tests/visual-decoration.test.d.ts → src/components/tests/theme-collections.test.d.ts} +0 -0
  116. /package/dist/{components → src/components}/tests/theme-override.test.d.ts +0 -0
  117. /package/dist/{components → src/components}/tests/theme-types-strictness.test.d.ts +0 -0
  118. /package/dist/{components → src/components}/tests/title.test.d.ts +0 -0
  119. /package/dist/{components → src/components}/themeContext.d.ts +0 -0
  120. /package/dist/{components → src/components}/ui/classes/appearanceClasses.d.ts +0 -0
  121. /package/dist/{components → src/components}/ui/classes/typographyClasses.d.ts +0 -0
  122. /package/dist/{components → src/components}/ui/layout.d.ts +0 -0
  123. /package/dist/{components → src/components}/ui/props/index.d.ts +0 -0
  124. /package/dist/{components → src/components}/ui/props/props.d.ts +0 -0
  125. /package/dist/{components → src/components}/ui/theme/badgeTheme.d.ts +0 -0
  126. /package/dist/{components → src/components}/ui/theme/buttonTheme.d.ts +0 -0
  127. /package/dist/{components → src/components}/ui/theme/cardTheme.d.ts +0 -0
  128. /package/dist/{components → src/components}/ui/theme/checkboxTheme.d.ts +0 -0
  129. /package/dist/{components → src/components}/ui/theme/chipTheme.d.ts +0 -0
  130. /package/dist/{components → src/components}/ui/theme/codeTheme.d.ts +0 -0
  131. /package/dist/{components → src/components}/ui/theme/colTheme.d.ts +0 -0
  132. /package/dist/{components → src/components}/ui/theme/common/ComponentTheme.d.ts +0 -0
  133. /package/dist/{components → src/components}/ui/theme/common/baseTheme.d.ts +0 -0
  134. /package/dist/{components → src/components}/ui/theme/containerTheme.d.ts +0 -0
  135. /package/dist/{components → src/components}/ui/theme/defaults.d.ts +0 -0
  136. /package/dist/{components → src/components}/ui/theme/dividerTheme.d.ts +0 -0
  137. /package/dist/{components → src/components}/ui/theme/gridTheme.d.ts +0 -0
  138. /package/dist/{components → src/components}/ui/theme/imgTheme.d.ts +0 -0
  139. /package/dist/{components → src/components}/ui/theme/labelTheme.d.ts +0 -0
  140. /package/dist/{components → src/components}/ui/theme/rowTheme.d.ts +0 -0
  141. /package/dist/{components → src/components}/ui/theme/sectionTheme.d.ts +0 -0
  142. /package/dist/{components → src/components}/ui/theme/stackTheme.d.ts +0 -0
  143. /package/dist/{components → src/components}/utils/deepMerge.d.ts +0 -0
  144. /package/dist/{components → src/components}/utils/deepPartial.d.ts +0 -0
  145. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  146. /package/dist/{setupTests.d.ts → src/setupTests.d.ts} +0 -0
package/dist/index.esm.js CHANGED
@@ -32,6 +32,11 @@ const COMPONENT_PROPS_CATEGORY = [
32
32
  ...VARIANT,
33
33
  'mode',
34
34
  ];
35
+ /**
36
+ * Describes what the @ComponentKeys.appearance can be applied to
37
+ * @see ComponentKeys.appearance
38
+ */
39
+ const APPEARANCE_CATEGORY = ['text', 'border', 'ring', 'shadow', 'bg', 'accent'];
35
40
  const ComponentKeys = {
36
41
  appearance: ['default', 'accent', 'primary', 'secondary', 'tertiary', 'success', 'danger', 'warning', 'info', 'link'],
37
42
  border: ['border', 'noBorder'],
@@ -118,231 +123,161 @@ const ComponentCategories = {
118
123
  };
119
124
 
120
125
  class HideTheme extends BaseTheme {
121
- constructor(initialConfig) {
122
- super();
123
- ComponentKeys.hide.forEach((key) => {
124
- var _a;
125
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : {
126
- xsHide: "max-xs:hidden",
127
- smHide: "max-sm:hidden",
128
- mdHide: "max-md:hidden",
129
- lgHide: "max-lg:hidden",
130
- xlHide: "max-xl:hidden"
131
- }[key];
132
- });
126
+ constructor() {
127
+ super(...arguments);
128
+ this.xsHide = "max-xs:hidden";
129
+ this.smHide = "max-sm:hidden";
130
+ this.mdHide = "max-md:hidden";
131
+ this.lgHide = "max-lg:hidden";
132
+ this.xlHide = "max-xl:hidden";
133
133
  }
134
134
  getClasses(extractedKeys) {
135
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.hide;
136
- return [key ? this[key] : ''];
135
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.hide) ? this[extractedKeys.hide] : ''];
137
136
  }
138
137
  }
139
138
 
140
139
  class ItemsTheme extends BaseTheme {
141
- constructor(initialConfig) {
142
- super();
143
- ComponentKeys.items.forEach((key) => {
144
- var _a;
145
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : {
146
- itemsStart: "items-start",
147
- itemsEnd: "items-end",
148
- itemsCenter: "items-center",
149
- itemsBaseline: "items-baseline",
150
- itemsStretch: "items-stretch",
151
- }[key];
152
- });
140
+ constructor() {
141
+ super(...arguments);
142
+ this.itemsStart = "items-start";
143
+ this.itemsEnd = "items-end";
144
+ this.itemsCenter = "items-center";
145
+ this.itemsBaseline = "items-baseline";
146
+ this.itemsStretch = "items-stretch";
153
147
  }
154
148
  getClasses(extractedKeys) {
155
- const pickedKey = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.items;
156
- return [pickedKey && this[pickedKey] ? this[pickedKey] : ''];
149
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.items) && this[extractedKeys.items] ? this[extractedKeys.items] : ''];
157
150
  }
158
151
  }
159
152
 
160
153
  class JustifyTheme extends BaseTheme {
161
- constructor(initialConfig) {
162
- super();
163
- ComponentKeys.justify.forEach((key) => {
164
- var _a;
165
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : {
166
- justifyStart: "justify-start",
167
- justifyEnd: "justify-end",
168
- justifyCenter: "justify-center",
169
- justifyBetween: "justify-between",
170
- justifyAround: "justify-around",
171
- justifyEvenly: "justify-evenly",
172
- justifyStretch: "justify-stretch",
173
- justifyBaseline: "justify-baseline",
174
- }[key];
175
- });
154
+ constructor() {
155
+ super(...arguments);
156
+ this.justifyStart = "justify-start";
157
+ this.justifyEnd = "justify-end";
158
+ this.justifyCenter = "justify-center";
159
+ this.justifyBetween = "justify-between";
160
+ this.justifyAround = "justify-around";
161
+ this.justifyEvenly = "justify-evenly";
162
+ this.justifyStretch = "justify-stretch";
163
+ this.justifyBaseline = "justify-baseline";
176
164
  }
177
165
  getClasses(extractedKeys) {
178
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.justify;
179
- return [key ? this[key] : ''];
166
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.justify) ? this[extractedKeys.justify] : ''];
180
167
  }
181
168
  }
182
169
 
183
170
  class PositionTheme extends BaseTheme {
184
- constructor(initialConfig) {
185
- super();
186
- ComponentKeys.position.forEach((key) => {
187
- var _a;
188
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : {
189
- relative: "relative",
190
- absolute: "absolute",
191
- fixed: "fixed",
192
- sticky: "sticky",
193
- static: "static"
194
- }[key];
195
- });
171
+ constructor() {
172
+ super(...arguments);
173
+ this.relative = "relative";
174
+ this.absolute = "absolute";
175
+ this.fixed = "fixed";
176
+ this.sticky = "sticky";
177
+ this.static = "static";
196
178
  }
197
179
  getClasses(extractedKeys) {
198
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.position;
199
- return [key ? this[key] : ''];
180
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.position) ? this[extractedKeys.position] : ''];
200
181
  }
201
182
  }
202
183
 
203
184
  class FontStyleTheme extends BaseTheme {
204
- constructor(initial) {
205
- super();
206
- ComponentKeys.fontStyle.forEach((key) => {
207
- var _a;
208
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
209
- italic: "italic",
210
- notItalic: "not-italic",
211
- }[key];
212
- });
185
+ constructor() {
186
+ super(...arguments);
187
+ this.italic = "italic";
188
+ this.notItalic = "not-italic";
213
189
  }
214
190
  getClasses(extractedKeys) {
215
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontStyle;
216
- return [key ? this[key] : '']; // No default for font style
191
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontStyle) ? this[extractedKeys.fontStyle] : ''];
217
192
  }
218
193
  }
219
194
 
220
195
  class FontFamilyTheme extends BaseTheme {
221
- constructor(initial) {
222
- super();
223
- ComponentKeys.fontFamily.forEach((key) => {
224
- var _a;
225
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
226
- sans: "font-sans",
227
- serif: "font-serif",
228
- mono: "font-mono",
229
- }[key];
230
- });
196
+ constructor() {
197
+ super(...arguments);
198
+ this.sans = "font-sans";
199
+ this.serif = "font-serif";
200
+ this.mono = "font-mono";
231
201
  }
232
202
  getClasses(extractedKeys) {
233
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontFamily;
234
- if (key === undefined)
235
- return [];
236
- return [this[key]];
203
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontFamily) ? [this[extractedKeys.fontFamily]] : [];
237
204
  }
238
205
  }
239
206
 
240
207
  class FontWeightTheme extends BaseTheme {
241
- constructor(initial) {
242
- super();
243
- ComponentKeys.fontWeight.forEach((key) => {
244
- var _a;
245
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
246
- thin: "font-thin",
247
- extralight: "font-extralight",
248
- light: "font-light",
249
- normal: "font-normal",
250
- medium: "font-medium",
251
- semibold: "font-semibold",
252
- bold: "font-bold",
253
- extrabold: "font-extrabold",
254
- black: "font-black",
255
- }[key];
256
- });
208
+ constructor() {
209
+ super(...arguments);
210
+ this.thin = "font-thin";
211
+ this.extralight = "font-extralight";
212
+ this.light = "font-light";
213
+ this.normal = "font-normal";
214
+ this.medium = "font-medium";
215
+ this.semibold = "font-semibold";
216
+ this.bold = "font-bold";
217
+ this.extrabold = "font-extrabold";
218
+ this.black = "font-black";
257
219
  }
258
220
  getClasses(extractedKeys) {
259
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontWeight;
260
- if (key === undefined)
261
- return [];
262
- return [this[key]];
221
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.fontWeight) ? [this[extractedKeys.fontWeight]] : [];
263
222
  }
264
223
  }
265
224
 
266
225
  class TextDecorationTheme extends BaseTheme {
267
- constructor(initial) {
268
- super();
269
- ComponentKeys.textDecoration.forEach((key) => {
270
- var _a;
271
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
272
- underline: "underline",
273
- lineThrough: "line-through",
274
- noUnderline: "no-underline",
275
- overline: "overline",
276
- }[key];
277
- });
226
+ constructor() {
227
+ super(...arguments);
228
+ this.underline = "underline";
229
+ this.lineThrough = "line-through";
230
+ this.noUnderline = "no-underline";
231
+ this.overline = "overline";
278
232
  }
279
233
  getClasses(extractedKeys) {
280
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textDecoration;
281
- return [key ? this[key] : '']; // No default for text decoration
234
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textDecoration) ? this[extractedKeys.textDecoration] : ''];
282
235
  }
283
236
  }
284
237
 
285
238
  class TextTransformTheme extends BaseTheme {
286
- constructor(initial) {
287
- super();
288
- ComponentKeys.textTransform.forEach((key) => {
289
- var _a;
290
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
291
- uppercase: "uppercase",
292
- lowercase: "lowercase",
293
- capitalize: "capitalize",
294
- normalCase: "normal-case",
295
- }[key];
296
- });
239
+ constructor() {
240
+ super(...arguments);
241
+ this.uppercase = "uppercase";
242
+ this.lowercase = "lowercase";
243
+ this.capitalize = "capitalize";
244
+ this.normalCase = "normal-case";
297
245
  }
298
246
  getClasses(extractedKeys) {
299
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textTransform;
300
- return [key ? this[key] : '']; // No default for text transform
247
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textTransform) ? this[extractedKeys.textTransform] : ''];
301
248
  }
302
249
  }
303
250
 
304
251
  class TextAlignTheme extends BaseTheme {
305
- constructor(initial) {
306
- super();
307
- ComponentKeys.textAlign.forEach((key) => {
308
- var _a;
309
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
310
- textLeft: "text-left",
311
- textCenter: "text-center",
312
- textRight: "text-right",
313
- textJustify: "text-justify",
314
- }[key];
315
- });
252
+ constructor() {
253
+ super(...arguments);
254
+ this.textLeft = "text-left";
255
+ this.textCenter = "text-center";
256
+ this.textRight = "text-right";
257
+ this.textJustify = "text-justify";
316
258
  }
317
259
  getClasses(extractedKeys) {
318
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textAlign;
319
- return [key ? this[key] : '']; // No default for text align
260
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.textAlign) ? this[extractedKeys.textAlign] : ''];
320
261
  }
321
262
  }
322
263
 
323
264
  class DisplayTheme extends BaseTheme {
324
- constructor(initialConfig) {
325
- super();
326
- ComponentKeys.display.forEach((key) => {
327
- var _a;
328
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : {
329
- inline: "inline",
330
- block: "block",
331
- inlineBlock: "inline-block",
332
- flex: "flex",
333
- inlineFlex: "inline-flex",
334
- grid: "grid",
335
- inlineGrid: "inline-grid",
336
- contents: "contents",
337
- table: "table",
338
- tableCell: "table-cell",
339
- hidden: "hidden"
340
- }[key];
341
- });
265
+ constructor() {
266
+ super(...arguments);
267
+ this.inline = "inline";
268
+ this.block = "block";
269
+ this.inlineBlock = "inline-block";
270
+ this.flex = "flex";
271
+ this.inlineFlex = "inline-flex";
272
+ this.grid = "grid";
273
+ this.inlineGrid = "inline-grid";
274
+ this.contents = "contents";
275
+ this.table = "table";
276
+ this.tableCell = "table-cell";
277
+ this.hidden = "hidden";
342
278
  }
343
279
  getClasses(extractedKeys) {
344
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.display;
345
- return [key && this[key] ? this[key] : ''];
280
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.display) && this[extractedKeys.display] ? this[extractedKeys.display] : ''];
346
281
  }
347
282
  }
348
283
 
@@ -3058,32 +2993,26 @@ const getDefaultConfig = () => {
3058
2993
  const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);
3059
2994
 
3060
2995
  class OverflowTheme extends BaseTheme {
3061
- constructor(initialConfig) {
3062
- super();
3063
- ComponentKeys.overflow.forEach((key) => {
3064
- var _a;
3065
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : {
3066
- overflowAuto: 'overflow-auto',
3067
- overflowHidden: 'overflow-hidden',
3068
- overflowClip: 'overflow-clip',
3069
- overflowVisible: 'overflow-visible',
3070
- overflowScroll: 'overflow-scroll',
3071
- overflowXAuto: 'overflow-x-auto',
3072
- overflowYAuto: 'overflow-y-auto',
3073
- overflowXHidden: 'overflow-x-hidden',
3074
- overflowYHidden: 'overflow-y-hidden',
3075
- overflowXClip: 'overflow-x-clip',
3076
- overflowYClip: 'overflow-y-clip',
3077
- overflowXVisible: 'overflow-x-visible',
3078
- overflowYVisible: 'overflow-y-visible',
3079
- overflowXScroll: 'overflow-x-scroll',
3080
- overflowYScroll: 'overflow-y-scroll',
3081
- }[key];
3082
- });
2996
+ constructor() {
2997
+ super(...arguments);
2998
+ this.overflowAuto = 'overflow-auto';
2999
+ this.overflowHidden = 'overflow-hidden';
3000
+ this.overflowClip = 'overflow-clip';
3001
+ this.overflowVisible = 'overflow-visible';
3002
+ this.overflowScroll = 'overflow-scroll';
3003
+ this.overflowXAuto = 'overflow-x-auto';
3004
+ this.overflowYAuto = 'overflow-y-auto';
3005
+ this.overflowXHidden = 'overflow-x-hidden';
3006
+ this.overflowYHidden = 'overflow-y-hidden';
3007
+ this.overflowXClip = 'overflow-x-clip';
3008
+ this.overflowYClip = 'overflow-y-clip';
3009
+ this.overflowXVisible = 'overflow-x-visible';
3010
+ this.overflowYVisible = 'overflow-y-visible';
3011
+ this.overflowXScroll = 'overflow-x-scroll';
3012
+ this.overflowYScroll = 'overflow-y-scroll';
3083
3013
  }
3084
3014
  getClasses(extractedKeys) {
3085
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.overflow;
3086
- return [key && this[key] ? this[key] : ''];
3015
+ return [(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.overflow) && this[extractedKeys.overflow] ? this[extractedKeys.overflow] : ''];
3087
3016
  }
3088
3017
  }
3089
3018
 
@@ -3164,7 +3093,7 @@ class ComponentTheme {
3164
3093
  };
3165
3094
  walk(this.themes);
3166
3095
  // Apply extra classes based on extracted keys
3167
- for (const [key, value] of Object.entries(extractedKeys)) {
3096
+ for (const [, value] of Object.entries(extractedKeys)) {
3168
3097
  if (value && this.extraClasses[value]) {
3169
3098
  const existingClasses = this.extraClasses[value];
3170
3099
  if (existingClasses !== undefined) {
@@ -3206,6 +3135,11 @@ class ComponentTheme {
3206
3135
  class SizeTheme extends BaseTheme {
3207
3136
  constructor(sizeMap, useDefaultKey = true) {
3208
3137
  super();
3138
+ this.xs = "";
3139
+ this.sm = "";
3140
+ this.md = "";
3141
+ this.lg = "";
3142
+ this.xl = "";
3209
3143
  this.useDefaultKey = useDefaultKey;
3210
3144
  ComponentKeys.size.forEach((key) => {
3211
3145
  var _a;
@@ -3215,34 +3149,30 @@ class SizeTheme extends BaseTheme {
3215
3149
  getClasses(extractedKeys) {
3216
3150
  var _a;
3217
3151
  const size = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : (this.useDefaultKey ? 'md' : undefined);
3218
- if (size !== undefined)
3219
- return [this[size]];
3220
- else
3221
- return [''];
3152
+ return size ? [this[size]] : [''];
3222
3153
  }
3223
3154
  }
3224
3155
 
3225
3156
  class GapTheme extends BaseTheme {
3226
3157
  constructor(sizeMap) {
3227
3158
  super();
3228
- ComponentKeys.size.forEach((key) => {
3229
- var _a;
3230
- this[key] = (_a = sizeMap === null || sizeMap === void 0 ? void 0 : sizeMap[key]) !== null && _a !== void 0 ? _a : {
3231
- xs: 'gap-2', sm: 'gap-3', md: 'gap-4', lg: 'gap-5', xl: 'gap-6'
3232
- }[key];
3233
- });
3159
+ this.xs = 'gap-2';
3160
+ this.sm = 'gap-3';
3161
+ this.md = 'gap-4';
3162
+ this.lg = 'gap-5';
3163
+ this.xl = 'gap-6';
3164
+ if (sizeMap) {
3165
+ ComponentKeys.size.forEach((key) => {
3166
+ if (sizeMap[key] !== undefined) {
3167
+ this[key] = sizeMap[key];
3168
+ }
3169
+ });
3170
+ }
3234
3171
  }
3235
3172
  getClasses(extractedKeys) {
3236
3173
  var _a;
3237
- const size = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md';
3238
- const gap = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.gap;
3239
- // If noGap is true, return empty array (no gap classes)
3240
- if (gap === 'noGap') {
3241
- return [];
3242
- }
3243
- // If gap is true or undefined, apply gap classes based on size
3244
- if (gap === 'gap') {
3245
- const gapClass = this[size];
3174
+ if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.gap) === 'gap') {
3175
+ const gapClass = this[(_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md'];
3246
3176
  return gapClass ? [gapClass] : [];
3247
3177
  }
3248
3178
  return [];
@@ -3274,21 +3204,22 @@ class RadiusTheme extends BaseTheme {
3274
3204
  static createUITheme(customRounded) {
3275
3205
  return new RadiusTheme(customRounded || uiBorderRadiusClasses);
3276
3206
  }
3277
- static createLayoutTheme(customRounded) {
3278
- return new RadiusTheme(customRounded || layoutBorderRadiusClasses);
3207
+ static createLayoutTheme() {
3208
+ return new RadiusTheme(layoutBorderRadiusClasses);
3279
3209
  }
3280
3210
  getClasses(extractedKeys) {
3281
3211
  var _a, _b;
3282
- const size = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md';
3283
- const shape = (_b = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.shape) !== null && _b !== void 0 ? _b : 'rounded';
3212
+ const size = (_a = extractedKeys.size) !== null && _a !== void 0 ? _a : 'md';
3213
+ const shape = (_b = extractedKeys.shape) !== null && _b !== void 0 ? _b : 'rounded';
3284
3214
  switch (shape) {
3285
3215
  case 'pill':
3286
3216
  return [this.pill];
3287
3217
  case 'sharp':
3288
3218
  return [this.sharp];
3289
- case 'rounded':
3219
+ case 'rounded': {
3290
3220
  const roundedClass = this.rounded[size];
3291
3221
  return roundedClass ? [roundedClass] : [];
3222
+ }
3292
3223
  default:
3293
3224
  return [];
3294
3225
  }
@@ -3296,78 +3227,53 @@ class RadiusTheme extends BaseTheme {
3296
3227
  }
3297
3228
 
3298
3229
  class BorderTheme extends BaseTheme {
3299
- constructor(initial) {
3300
- super();
3301
- ComponentKeys.mode.forEach((key) => {
3302
- var _a;
3303
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
3304
- base: "border",
3305
- hover: "",
3306
- active: "",
3307
- }[key];
3308
- });
3230
+ constructor() {
3231
+ super(...arguments);
3232
+ this.base = "border";
3233
+ this.hover = "";
3234
+ this.active = "";
3309
3235
  }
3310
3236
  getClasses(extractedKeys) {
3311
- const border = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.border;
3312
- // If noBorder is true, return empty array (no border classes)
3313
- if (border === 'noBorder') {
3314
- return [];
3315
- }
3316
- // Only apply border classes if border is explicitly true
3317
- if (border === 'border') {
3318
- return ComponentKeys.mode.map(mode => this[mode] || '').filter(Boolean);
3319
- }
3320
- return [];
3237
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.border) === "border"
3238
+ ? ComponentKeys.mode.map((mode) => this[mode])
3239
+ : [];
3321
3240
  }
3322
3241
  }
3323
3242
 
3324
3243
  class RingTheme extends BaseTheme {
3325
- constructor(initial) {
3326
- super();
3327
- ComponentKeys.mode.forEach((key) => {
3328
- var _a;
3329
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
3330
- base: "ring ring-inset",
3331
- hover: "hover:ring hover:ring-inset",
3332
- active: "active:ring active:ring-inset",
3333
- }[key];
3334
- });
3244
+ constructor() {
3245
+ super(...arguments);
3246
+ this.base = "ring ring-inset";
3247
+ this.hover = "";
3248
+ this.active = "";
3335
3249
  }
3336
3250
  getClasses(extractedKeys) {
3337
- const ring = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.ring;
3338
- // If noRing is true, return empty array (no ring classes)
3339
- if (ring === 'noRing') {
3340
- return [];
3341
- }
3342
- // Only apply ring classes if ring is explicitly true
3343
- if (ring === 'ring') {
3344
- return ComponentKeys.mode.map(mode => this[mode] || '').filter(Boolean);
3345
- }
3346
- return [];
3251
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.ring) === 'ring'
3252
+ ? ComponentKeys.mode.map(mode => this[mode] || '').filter(Boolean)
3253
+ : [];
3347
3254
  }
3348
3255
  }
3349
3256
 
3350
3257
  class PaddingTheme extends BaseTheme {
3351
3258
  constructor(initial) {
3352
3259
  super();
3353
- ComponentKeys.size.forEach((key) => {
3354
- var _a;
3355
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
3356
- xs: "", sm: "", md: "", lg: "", xl: ""
3357
- }[key];
3358
- });
3260
+ this.xs = "";
3261
+ this.sm = "";
3262
+ this.md = "";
3263
+ this.lg = "";
3264
+ this.xl = "";
3265
+ if (initial) {
3266
+ ComponentKeys.size.forEach((key) => {
3267
+ if (initial[key] !== undefined) {
3268
+ this[key] = initial[key];
3269
+ }
3270
+ });
3271
+ }
3359
3272
  }
3360
3273
  getClasses(extractedKeys) {
3361
3274
  var _a;
3362
- const size = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md';
3363
- const padding = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding;
3364
- // If noPadding is true, return empty array (no padding classes)
3365
- if (padding === 'noPadding') {
3366
- return [];
3367
- }
3368
- // If padding is true or undefined, apply padding classes based on size
3369
- if (padding === 'padding' || padding === undefined) {
3370
- const paddingClass = this[size];
3275
+ if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding) === 'padding' || (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding) === undefined) {
3276
+ const paddingClass = this[(_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _a !== void 0 ? _a : 'md'];
3371
3277
  return paddingClass ? [paddingClass] : [];
3372
3278
  }
3373
3279
  return [];
@@ -3403,13 +3309,23 @@ class PyTheme extends PaddingTheme {
3403
3309
  }
3404
3310
 
3405
3311
  class AppearanceTheme extends BaseTheme {
3406
- constructor(config, transparentClasses) {
3312
+ constructor(config, category, transparentClasses) {
3407
3313
  super();
3408
3314
  Object.assign(this, config);
3315
+ this.category = category;
3409
3316
  this.transparentClasses = transparentClasses;
3410
3317
  }
3411
3318
  getClasses(extractedKeys) {
3412
3319
  var _a;
3320
+ if (this.category === 'border' && extractedKeys.border === 'noBorder') {
3321
+ return [];
3322
+ }
3323
+ if (this.category === 'ring' && extractedKeys.ring === 'noRing') {
3324
+ return [];
3325
+ }
3326
+ if (this.category === 'shadow' && extractedKeys.shadow === 'noShadow') {
3327
+ return [];
3328
+ }
3413
3329
  // Check for specific transparent styles first
3414
3330
  if (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.transparent) {
3415
3331
  const transparentClass = ((_a = this.transparentClasses) === null || _a === void 0 ? void 0 : _a[extractedKeys.transparent]) || '';
@@ -3425,7 +3341,7 @@ class AppearanceTheme extends BaseTheme {
3425
3341
  }
3426
3342
  return [];
3427
3343
  }
3428
- static createTheme(src = {}) {
3344
+ static createTheme(src = {}, category) {
3429
3345
  const config = Object.fromEntries(ComponentKeys.appearance.map(textKey => [
3430
3346
  textKey,
3431
3347
  Object.fromEntries(ComponentKeys.mode.map(modeKey => {
@@ -3436,7 +3352,7 @@ class AppearanceTheme extends BaseTheme {
3436
3352
  ];
3437
3353
  })),
3438
3354
  ]));
3439
- return new AppearanceTheme(config, src.base);
3355
+ return new AppearanceTheme(config, category, src.base);
3440
3356
  }
3441
3357
  }
3442
3358
 
@@ -3752,21 +3668,21 @@ class GenericVariantTheme extends BaseTheme {
3752
3668
  getClasses(extractedKeys) {
3753
3669
  var _a;
3754
3670
  const variantKey = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.variant) !== null && _a !== void 0 ? _a : 'outline';
3755
- const activeTextAppearanceTheme = this[variantKey];
3756
- if (!activeTextAppearanceTheme) {
3671
+ const activeTheme = this[variantKey];
3672
+ if (!activeTheme) {
3757
3673
  return [];
3758
3674
  }
3759
- return activeTextAppearanceTheme.getClasses(extractedKeys);
3675
+ return activeTheme.getClasses(extractedKeys);
3760
3676
  }
3761
3677
  // used for button, bages, chips, etc
3762
3678
  static createUIElementTextTheme() {
3763
3679
  return new GenericVariantTheme({
3764
3680
  outline: AppearanceTheme.createTheme({
3765
3681
  base: textAppearanceClasses
3766
- }),
3682
+ }, 'text'),
3767
3683
  filled: AppearanceTheme.createTheme({
3768
3684
  base: filledTextAppearanceClasses
3769
- })
3685
+ }, 'text')
3770
3686
  });
3771
3687
  }
3772
3688
  static createUIElementShadowTheme() {
@@ -3781,155 +3697,118 @@ class GenericVariantTheme extends BaseTheme {
3781
3697
  filled: ShadowAppearanceTheme.createLayoutTheme({})
3782
3698
  });
3783
3699
  }
3784
- static createBorderAppearanceTheme() {
3785
- return new GenericVariantTheme({
3786
- outline: AppearanceTheme.createTheme({ base: borderAppearanceClasses }),
3787
- filled: AppearanceTheme.createTheme({ base: filledBorderAppearanceClasses })
3788
- });
3789
- }
3790
3700
  static createUIElementBorderTheme() {
3791
3701
  return new GenericVariantTheme({
3792
3702
  outline: AppearanceTheme.createTheme({
3793
3703
  base: borderAppearanceClasses
3794
- }),
3704
+ }, 'border'),
3795
3705
  filled: AppearanceTheme.createTheme({
3796
3706
  base: filledBorderAppearanceClasses
3797
- })
3707
+ }, 'border')
3798
3708
  });
3799
3709
  }
3800
3710
  static createUIElementRingTheme() {
3801
3711
  return new GenericVariantTheme({
3802
3712
  outline: AppearanceTheme.createTheme({
3803
3713
  base: ringAppearanceClasses
3804
- }),
3714
+ }, 'ring'),
3805
3715
  filled: AppearanceTheme.createTheme({
3806
3716
  base: filledRingAppearanceClasses
3807
- })
3808
- });
3809
- }
3810
- static createBgAppearanceTheme() {
3811
- return new GenericVariantTheme({
3812
- outline: AppearanceTheme.createTheme({
3813
- base: backgroundAppearanceClasses,
3814
- hover: hoverBackgroundAppearanceClasses,
3815
- active: activeBackgroundAppearanceClasses
3816
- }),
3817
- filled: AppearanceTheme.createTheme({
3818
- base: filledBackgroundAppearanceClasses,
3819
- hover: filledHoverBackgroundAppearanceClasses,
3820
- active: filledActiveBackgroundAppearanceClasses
3821
- })
3717
+ }, 'ring')
3822
3718
  });
3823
3719
  }
3824
3720
  static createCheckboxBgAppearanceTheme() {
3825
3721
  return new GenericVariantTheme({
3826
3722
  outline: AppearanceTheme.createTheme({
3827
3723
  base: backgroundAppearanceClasses,
3828
- }),
3724
+ }, 'bg'),
3829
3725
  filled: AppearanceTheme.createTheme({
3830
3726
  base: backgroundAppearanceClasses,
3831
- })
3727
+ }, 'bg')
3832
3728
  });
3833
3729
  }
3834
- static createUIElementBgAppearanceTheme() {
3730
+ static createBgAppearanceTheme() {
3835
3731
  return new GenericVariantTheme({
3836
3732
  outline: AppearanceTheme.createTheme({
3837
3733
  base: backgroundAppearanceClasses,
3838
3734
  hover: hoverBackgroundAppearanceClasses,
3839
3735
  active: activeBackgroundAppearanceClasses
3840
- }),
3736
+ }, 'bg'),
3841
3737
  filled: AppearanceTheme.createTheme({
3842
3738
  base: filledBackgroundAppearanceClasses,
3843
3739
  hover: filledHoverBackgroundAppearanceClasses,
3844
3740
  active: filledActiveBackgroundAppearanceClasses
3845
- })
3741
+ }, 'bg')
3846
3742
  });
3847
3743
  }
3848
3744
  static createSimpleUIElementBgAppearanceTheme() {
3849
3745
  return new GenericVariantTheme({
3850
3746
  outline: AppearanceTheme.createTheme({
3851
3747
  base: backgroundAppearanceClasses,
3852
- }),
3748
+ }, 'bg'),
3853
3749
  filled: AppearanceTheme.createTheme({
3854
3750
  base: filledBackgroundAppearanceClasses,
3855
- })
3751
+ }, 'bg')
3856
3752
  });
3857
3753
  }
3858
3754
  static createAccentColorAppearanceTheme() {
3859
3755
  return new GenericVariantTheme({
3860
3756
  outline: AppearanceTheme.createTheme({
3861
3757
  base: accentColorAppearanceClasses
3862
- }),
3758
+ }, 'accent'),
3863
3759
  filled: AppearanceTheme.createTheme({
3864
3760
  base: filledAccentColorAppearanceClasses
3865
- })
3761
+ }, 'accent')
3866
3762
  });
3867
3763
  }
3868
3764
  static createCheckedAppearanceTheme() {
3869
3765
  return new GenericVariantTheme({
3870
3766
  outline: AppearanceTheme.createTheme({
3871
3767
  base: checkedBackgroundAppearanceClasses
3872
- }),
3768
+ }, 'bg'),
3873
3769
  filled: AppearanceTheme.createTheme({
3874
3770
  base: filledCheckedBackgroundAppearanceClasses
3875
- })
3771
+ }, 'bg')
3876
3772
  });
3877
3773
  }
3878
3774
  static createLayoutBgAppearanceTheme() {
3879
3775
  return new GenericVariantTheme({
3880
3776
  outline: AppearanceTheme.createTheme({
3881
3777
  base: layoutBackgroundAppearanceClasses
3882
- }),
3778
+ }, 'bg'),
3883
3779
  filled: AppearanceTheme.createTheme({
3884
3780
  base: layoutFilledBackgroundAppearanceClasses
3885
- })
3781
+ }, 'bg')
3886
3782
  });
3887
3783
  }
3888
3784
  }
3889
3785
 
3890
3786
  class WrapTheme extends BaseTheme {
3891
- constructor(initialConfig) {
3892
- super();
3893
- ComponentKeys.wrap.forEach((key) => {
3894
- var _a;
3895
- this[key] = (_a = initialConfig === null || initialConfig === void 0 ? void 0 : initialConfig[key]) !== null && _a !== void 0 ? _a : {
3896
- flexWrap: "flex-wrap",
3897
- flexNoWrap: "flex-nowrap",
3898
- flexWrapReverse: "flex-wrap-reverse"
3899
- }[key];
3900
- });
3787
+ constructor() {
3788
+ super(...arguments);
3789
+ this.flexWrap = "flex-wrap";
3790
+ this.flexNoWrap = "flex-nowrap";
3791
+ this.flexWrapReverse = "flex-wrap-reverse";
3901
3792
  }
3902
3793
  getClasses(extractedKeys) {
3903
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.wrap;
3904
- return key ? [this[key]] : [];
3794
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.wrap) ? [this[extractedKeys.wrap]] : [];
3905
3795
  }
3906
3796
  }
3907
3797
 
3908
3798
  class DirectionTheme extends BaseTheme {
3909
- constructor(initial) {
3910
- super();
3911
- ComponentKeys.flexDirection.forEach((key) => {
3912
- this[key] = (initial === null || initial === void 0 ? void 0 : initial[key]) || {
3913
- row: "flex-row",
3914
- column: "flex-col",
3915
- rowReverse: "flex-row-reverse",
3916
- columnReverse: "flex-col-reverse",
3917
- }[key];
3918
- });
3799
+ constructor() {
3800
+ super(...arguments);
3801
+ this.row = "flex-row";
3802
+ this.column = "flex-col";
3803
+ this.rowReverse = "flex-row-reverse";
3804
+ this.columnReverse = "flex-col-reverse";
3919
3805
  }
3920
3806
  getClasses(extractedKeys) {
3921
- let direction = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection;
3922
- const reverse = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.reverse;
3923
- if (reverse === 'reverse') {
3924
- switch (direction) {
3925
- case "column":
3926
- direction = "columnReverse";
3927
- break;
3928
- case "row":
3929
- direction = "rowReverse";
3930
- break;
3931
- }
3932
- }
3807
+ const direction = (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.reverse) === 'reverse'
3808
+ ? ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection) === "column" ? "columnReverse"
3809
+ : (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection) === "row" ? "rowReverse"
3810
+ : extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection)
3811
+ : extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.flexDirection;
3933
3812
  return direction ? [this[direction]] : [];
3934
3813
  }
3935
3814
  }
@@ -4158,7 +4037,7 @@ const defaultButtonTheme = new ComponentTheme("button", "w-fit h-fit cursor-poin
4158
4037
  text: new SizeTheme({ xs: 'text-xs', sm: 'text-sm', md: 'text-base', lg: 'text-lg', xl: 'text-xl' }),
4159
4038
  },
4160
4039
  appearance: {
4161
- background: GenericVariantTheme.createUIElementBgAppearanceTheme(),
4040
+ background: GenericVariantTheme.createBgAppearanceTheme(),
4162
4041
  text: GenericVariantTheme.createUIElementTextTheme(),
4163
4042
  border: GenericVariantTheme.createUIElementBorderTheme(),
4164
4043
  ring: GenericVariantTheme.createUIElementRingTheme(),
@@ -4173,7 +4052,7 @@ const defaultButtonTheme = new ComponentTheme("button", "w-fit h-fit cursor-poin
4173
4052
  flexDirection: new DirectionTheme(),
4174
4053
  },
4175
4054
  typography: defaultTypographyTheme,
4176
- }, themeDefaults.button, BUTTON_CATEGORIES, (props, defaults) => {
4055
+ }, themeDefaults.button, BUTTON_CATEGORIES, (props) => {
4177
4056
  // Determine tag based on href prop
4178
4057
  return props.href ? "a" : "button";
4179
4058
  });
@@ -4201,7 +4080,7 @@ const defaultBadgeTheme = new ComponentTheme("span", "w-fit h-fit transition-all
4201
4080
  flexDirection: new DirectionTheme(),
4202
4081
  },
4203
4082
  typography: defaultTypographyTheme,
4204
- }, themeDefaults.badge, BADGE_CATEGORIES, (props, defaults) => {
4083
+ }, themeDefaults.badge, BADGE_CATEGORIES, (props) => {
4205
4084
  return props.href ? "a" : "span";
4206
4085
  });
4207
4086
 
@@ -4228,7 +4107,7 @@ const defaultChipTheme = new ComponentTheme("span", "w-fit h-fit transition-all
4228
4107
  flexDirection: new DirectionTheme(),
4229
4108
  },
4230
4109
  typography: defaultTypographyTheme,
4231
- }, themeDefaults.chip, CHIP_CATEGORIES, (props, defaults) => {
4110
+ }, themeDefaults.chip, CHIP_CATEGORIES, (props) => {
4232
4111
  return props.href ? "a" : "span";
4233
4112
  });
4234
4113
 
@@ -4301,7 +4180,7 @@ const deepClone = (source) => {
4301
4180
  };
4302
4181
  const findGroup = (key) => {
4303
4182
  // Check each group in ComponentKeys to find which one contains this key
4304
- for (const [groupName, group] of Object.entries(ComponentKeys)) {
4183
+ for (const [, group] of Object.entries(ComponentKeys)) {
4305
4184
  if (group.includes(key)) {
4306
4185
  return group;
4307
4186
  }
@@ -4349,15 +4228,10 @@ class PlTheme extends PaddingTheme {
4349
4228
  }
4350
4229
 
4351
4230
  class ListStyleTheme extends BaseTheme {
4352
- constructor(initial) {
4353
- super();
4354
- ComponentKeys.listStyle.forEach((key) => {
4355
- var _a;
4356
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
4357
- disc: 'list-disc',
4358
- decimal: 'list-decimal',
4359
- }[key];
4360
- });
4231
+ constructor() {
4232
+ super(...arguments);
4233
+ this.disc = 'list-disc';
4234
+ this.decimal = 'list-decimal';
4361
4235
  }
4362
4236
  getClasses(extractedKeys) {
4363
4237
  const listStyle = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.listStyle;
@@ -4379,7 +4253,7 @@ const createTypographyComponentTheme = (tag, base = "text-balance", textSizeMap
4379
4253
  },
4380
4254
  typography: defaultTypographyTheme,
4381
4255
  layout: defaultLayoutTheme,
4382
- }, defaults, TYPOGRAPHY_CATEGORIES, (props, defaults) => {
4256
+ }, defaults, TYPOGRAPHY_CATEGORIES, (props) => {
4383
4257
  // Determine tag based on href prop
4384
4258
  return props.href ? "a" : tag;
4385
4259
  });
@@ -4437,34 +4311,25 @@ const listTheme = new ComponentTheme("ul", "list-inside", {
4437
4311
  typography: defaultTypographyTheme,
4438
4312
  layout: defaultLayoutTheme,
4439
4313
  listStyle: new ListStyleTheme(),
4440
- }, themeDefaults.list, LIST_CATEGORIES, (props, defaults) => {
4441
- // Determine tag based on list style from props and defaults
4314
+ }, themeDefaults.list, LIST_CATEGORIES, (props) => {
4315
+ // Determine tag based on list style from props
4442
4316
  const componentProps = props;
4443
- const defaultsRecord = defaults;
4444
- // Check if decimal is set in props or defaults
4445
- const hasDecimal = (componentProps === null || componentProps === void 0 ? void 0 : componentProps.decimal) || (defaultsRecord === null || defaultsRecord === void 0 ? void 0 : defaultsRecord.decimal);
4317
+ // Check if decimal is set in props
4318
+ const hasDecimal = componentProps === null || componentProps === void 0 ? void 0 : componentProps.decimal;
4446
4319
  return hasDecimal ? "ol" : "ul";
4447
4320
  });
4448
4321
 
4449
4322
  class BreakpointTheme extends BaseTheme {
4450
- constructor(initial) {
4451
- super();
4452
- ComponentKeys.breakpoint.forEach((key) => {
4453
- var _a;
4454
- this[key] = (_a = initial === null || initial === void 0 ? void 0 : initial[key]) !== null && _a !== void 0 ? _a : {
4455
- xsCol: "max-xs:flex-col",
4456
- smCol: "max-sm:flex-col",
4457
- mdCol: "max-md:flex-col",
4458
- lgCol: "max-lg:flex-col",
4459
- xlCol: "max-xl:flex-col"
4460
- }[key];
4461
- });
4323
+ constructor() {
4324
+ super(...arguments);
4325
+ this.xsCol = "max-xs:flex-col";
4326
+ this.smCol = "max-sm:flex-col";
4327
+ this.mdCol = "max-md:flex-col";
4328
+ this.lgCol = "max-lg:flex-col";
4329
+ this.xlCol = "max-xl:flex-col";
4462
4330
  }
4463
4331
  getClasses(extractedKeys) {
4464
- const key = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.breakpoint;
4465
- if (!key)
4466
- return [];
4467
- return [this[key] || ''];
4332
+ return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.breakpoint) ? [this[extractedKeys.breakpoint] || ''] : [];
4468
4333
  }
4469
4334
  }
4470
4335
 
@@ -4503,7 +4368,7 @@ const defaultCardTheme = new ComponentTheme("div", "", {
4503
4368
  ring: GenericVariantTheme.createUIElementRingTheme(),
4504
4369
  },
4505
4370
  typography: defaultTypographyTheme,
4506
- }, themeDefaults.card, CARD_CATEGORIES, (props, defaults) => {
4371
+ }, themeDefaults.card, CARD_CATEGORIES, (props) => {
4507
4372
  return props.href ? "a" : "div";
4508
4373
  });
4509
4374
 
@@ -4527,7 +4392,7 @@ const defaultRowTheme = new ComponentTheme("div", "", {
4527
4392
  ring: GenericVariantTheme.createUIElementRingTheme(),
4528
4393
  shadow: GenericVariantTheme.createLayoutShadowTheme(),
4529
4394
  }
4530
- }, themeDefaults.row, ROW_CATEGORIES, (props, defaults) => {
4395
+ }, themeDefaults.row, ROW_CATEGORIES, (props) => {
4531
4396
  // Determine tag based on href prop
4532
4397
  return props.href ? "a" : "div";
4533
4398
  });
@@ -4539,7 +4404,7 @@ const defaultDividerTheme = new ComponentTheme("div", "h-px w-full", {
4539
4404
  appearance: {
4540
4405
  background: AppearanceTheme.createTheme({
4541
4406
  base: bgBorderAppearanceClasses,
4542
- }),
4407
+ }, 'bg'),
4543
4408
  },
4544
4409
  layout: defaultLayoutTheme,
4545
4410
  }, themeDefaults.divider, DIVIDER_CATEGORIES);
@@ -4570,7 +4435,7 @@ const defaultContainerTheme = new ComponentTheme("div", "flex-col mx-auto w-full
4570
4435
  ring: GenericVariantTheme.createUIElementRingTheme(),
4571
4436
  shadow: GenericVariantTheme.createLayoutShadowTheme(),
4572
4437
  }
4573
- }, themeDefaults.container, CONTAINER_CATEGORIES, (props, defaults) => {
4438
+ }, themeDefaults.container, CONTAINER_CATEGORIES, (props) => {
4574
4439
  return props.href ? "a" : "div";
4575
4440
  });
4576
4441
 
@@ -4593,7 +4458,7 @@ const defaultColTheme = new ComponentTheme("div", "", {
4593
4458
  ring: GenericVariantTheme.createUIElementRingTheme(),
4594
4459
  shadow: GenericVariantTheme.createLayoutShadowTheme(),
4595
4460
  }
4596
- }, themeDefaults.col, COL_CATEGORIES, (props, defaults) => {
4461
+ }, themeDefaults.col, COL_CATEGORIES, (props) => {
4597
4462
  return props.href ? "a" : "div";
4598
4463
  });
4599
4464
 
@@ -4619,7 +4484,7 @@ const defaultStackTheme = new ComponentTheme("div", "", {
4619
4484
  ring: GenericVariantTheme.createUIElementRingTheme(),
4620
4485
  shadow: GenericVariantTheme.createLayoutShadowTheme(),
4621
4486
  }
4622
- }, themeDefaults.stack, STACK_CATEGORIES, (props, defaults) => {
4487
+ }, themeDefaults.stack, STACK_CATEGORIES, (props) => {
4623
4488
  return props.href ? "a" : "div";
4624
4489
  });
4625
4490
 
@@ -4657,7 +4522,7 @@ const defaultSectionTheme = new ComponentTheme("div", "w-full flex-col", {
4657
4522
  ring: new RingTheme(),
4658
4523
  radius: RadiusTheme.createLayoutTheme(),
4659
4524
  },
4660
- }, themeDefaults.section, SECTION_CATEGORIES, (props, defaults) => {
4525
+ }, themeDefaults.section, SECTION_CATEGORIES, (props) => {
4661
4526
  return props.href ? "a" : "div";
4662
4527
  });
4663
4528
 
@@ -4681,13 +4546,13 @@ const gridSubThemes = {
4681
4546
  flexDirection: new DirectionTheme(),
4682
4547
  },
4683
4548
  };
4684
- const defaultGrid2Theme = new ComponentTheme("div", "grid-cols-1 md:grid-cols-2", gridSubThemes, themeDefaults.grid2, GRID_CATEGORIES, (props, defaults) => {
4549
+ const defaultGrid2Theme = new ComponentTheme("div", "grid-cols-1 md:grid-cols-2", gridSubThemes, themeDefaults.grid2, GRID_CATEGORIES, (props) => {
4685
4550
  return props.href ? "a" : "div";
4686
4551
  });
4687
- const defaultGrid3Theme = new ComponentTheme("div", "grid-cols-1 md:grid-cols-3", gridSubThemes, themeDefaults.grid3, GRID_CATEGORIES, (props, defaults) => {
4552
+ const defaultGrid3Theme = new ComponentTheme("div", "grid-cols-1 md:grid-cols-3", gridSubThemes, themeDefaults.grid3, GRID_CATEGORIES, (props) => {
4688
4553
  return props.href ? "a" : "div";
4689
4554
  });
4690
- const defaultGrid4Theme = new ComponentTheme("div", "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4", gridSubThemes, themeDefaults.grid4, GRID_CATEGORIES, (props, defaults) => {
4555
+ const defaultGrid4Theme = new ComponentTheme("div", "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4", gridSubThemes, themeDefaults.grid4, GRID_CATEGORIES, (props) => {
4691
4556
  return props.href ? "a" : "div";
4692
4557
  });
4693
4558
 
@@ -4951,15 +4816,25 @@ const Checkbox = forwardRef(function Checkbox(props, ref) {
4951
4816
  filled, outline,
4952
4817
  // Shape props
4953
4818
  pill, sharp, rounded,
4954
- // Custom props
4955
- className, ...inputProps } = props;
4819
+ // Extract input HTML attributes
4820
+ checked, defaultChecked, disabled, name, value, onChange, onBlur, onFocus, required, readOnly,
4821
+ // Other HTML attributes
4822
+ id, className, tabIndex, 'aria-label': ariaLabel, ...remainingProps } = props;
4956
4823
  const themeProps = {
4957
4824
  xs, sm, md, lg, xl,
4958
4825
  default: defaultProp, accent, primary, secondary, tertiary, success, danger, warning, info, transparent,
4959
4826
  filled, outline,
4960
4827
  pill, sharp, rounded
4961
4828
  };
4962
- return (jsxs(ThemedComponent, { theme: theme.checkbox.wrapper, ref: ref, ...themeProps, children: [jsx(ThemedComponent, { theme: theme.checkbox.input, ...props, type: "checkbox" }), jsx(ThemedComponent, { theme: theme.checkbox.check, ...themeProps, children: theme.checkbox.check.themes.checkElement() })] }));
4829
+ const inputProps = {
4830
+ type: "checkbox",
4831
+ checked, defaultChecked, disabled, name, value, onChange, onBlur, onFocus, required, readOnly,
4832
+ id, tabIndex, 'aria-label': ariaLabel,
4833
+ className, // Apply className to the input element
4834
+ ...remainingProps,
4835
+ ...themeProps
4836
+ };
4837
+ return (jsxs(ThemedComponent, { theme: theme.checkbox.wrapper, ref: ref, ...themeProps, children: [jsx(ThemedComponent, { theme: theme.checkbox.input, ...inputProps }), jsx(ThemedComponent, { theme: theme.checkbox.check, ...themeProps, children: theme.checkbox.check.themes.checkElement() })] }));
4963
4838
  });
4964
4839
 
4965
4840
  const Label = forwardRef(function Label(props, ref) {
@@ -5045,5 +4920,5 @@ const List = forwardRef(function List(props, ref) {
5045
4920
  return jsx(ThemedComponent, { ref: ref, theme: theme.list, ...props });
5046
4921
  });
5047
4922
 
5048
- export { BADGE_CATEGORIES, BREAKPOINT, BUTTON_CATEGORIES, Badge, Button, CARD_CATEGORIES, CHECKBOX_CATEGORIES, CHIP_CATEGORIES, CODE_CATEGORIES, COL_CATEGORIES, COMPONENT, COMPONENT_PROPS_CATEGORY, CONTAINER_CATEGORIES, Card, Checkbox, Chip, Code, Col, ComponentCategories, ComponentKeys, Container, DIVIDER_CATEGORIES, Divider, GRID_CATEGORIES, Grid2, Grid3, Grid4, IMG_CATEGORIES, INTERACTIVE_CATEGORIES, Img, LABEL_CATEGORIES, LAYOUT_CORE, LAYOUT_FLEX, LAYOUT_FULL, LIST_CATEGORIES, LIST_STYLE, Label, Link, List, ListItem, PADDING, PageTitle, ROW_CATEGORIES, Row, SECTION_CATEGORIES, SHAPE, STACK_CATEGORIES, Section, SectionTitle, Stack, TYPOGRAPHY_CATEGORIES, TYPOGRAPHY_FULL, TYPOGRAPHY_STYLE, Text, ThemeProvider, Title, VARIANT, VISUAL_CORE, VISUAL_DECORATION, VISUAL_FULL, defaultTheme, themeDefaults, useTheme };
4923
+ export { APPEARANCE_CATEGORY, BADGE_CATEGORIES, BREAKPOINT, BUTTON_CATEGORIES, Badge, Button, CARD_CATEGORIES, CHECKBOX_CATEGORIES, CHIP_CATEGORIES, CODE_CATEGORIES, COL_CATEGORIES, COMPONENT, COMPONENT_PROPS_CATEGORY, CONTAINER_CATEGORIES, Card, Checkbox, Chip, Code, Col, ComponentCategories, ComponentKeys, Container, DIVIDER_CATEGORIES, Divider, GRID_CATEGORIES, Grid2, Grid3, Grid4, IMG_CATEGORIES, INTERACTIVE_CATEGORIES, Img, LABEL_CATEGORIES, LAYOUT_CORE, LAYOUT_FLEX, LAYOUT_FULL, LIST_CATEGORIES, LIST_STYLE, Label, Link, List, ListItem, PADDING, PageTitle, ROW_CATEGORIES, Row, SECTION_CATEGORIES, SHAPE, STACK_CATEGORIES, Section, SectionTitle, Stack, TYPOGRAPHY_CATEGORIES, TYPOGRAPHY_FULL, TYPOGRAPHY_STYLE, Text, ThemeProvider, Title, VARIANT, VISUAL_CORE, VISUAL_DECORATION, VISUAL_FULL, defaultTheme, themeDefaults, useTheme };
5049
4924
  //# sourceMappingURL=index.esm.js.map