@kushagradhawan/kookie-ui 0.1.41 → 0.1.43

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 (144) hide show
  1. package/README.md +257 -60
  2. package/components.css +398 -91
  3. package/dist/cjs/components/schemas/base-button.schema.d.ts +319 -0
  4. package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -0
  5. package/dist/cjs/components/schemas/base-button.schema.js +2 -0
  6. package/dist/cjs/components/schemas/base-button.schema.js.map +7 -0
  7. package/dist/cjs/components/schemas/button.schema.d.ts +686 -0
  8. package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -0
  9. package/dist/cjs/components/schemas/button.schema.js +2 -0
  10. package/dist/cjs/components/schemas/button.schema.js.map +7 -0
  11. package/dist/cjs/components/schemas/icon-button.schema.d.ts +329 -0
  12. package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -0
  13. package/dist/cjs/components/schemas/icon-button.schema.js +2 -0
  14. package/dist/cjs/components/schemas/icon-button.schema.js.map +7 -0
  15. package/dist/cjs/components/schemas/index.d.ts +52 -0
  16. package/dist/cjs/components/schemas/index.d.ts.map +1 -0
  17. package/dist/cjs/components/schemas/index.js +2 -0
  18. package/dist/cjs/components/schemas/index.js.map +7 -0
  19. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +1172 -0
  20. package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -0
  21. package/dist/cjs/components/schemas/toggle-button.schema.js +2 -0
  22. package/dist/cjs/components/schemas/toggle-button.schema.js.map +7 -0
  23. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +563 -0
  24. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -0
  25. package/dist/cjs/components/schemas/toggle-icon-button.schema.js +2 -0
  26. package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +7 -0
  27. package/dist/cjs/components/sheet.d.ts +1 -1
  28. package/dist/cjs/components/sheet.d.ts.map +1 -1
  29. package/dist/cjs/components/sheet.js +1 -1
  30. package/dist/cjs/components/sheet.js.map +3 -3
  31. package/dist/cjs/components/shell.d.ts +125 -164
  32. package/dist/cjs/components/shell.d.ts.map +1 -1
  33. package/dist/cjs/components/shell.js +1 -1
  34. package/dist/cjs/components/shell.js.map +3 -3
  35. package/dist/cjs/components/sidebar.d.ts +1 -7
  36. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  37. package/dist/cjs/components/sidebar.js +1 -1
  38. package/dist/cjs/components/sidebar.js.map +3 -3
  39. package/dist/cjs/components/theme.d.ts +3 -0
  40. package/dist/cjs/components/theme.d.ts.map +1 -1
  41. package/dist/cjs/components/theme.js +1 -1
  42. package/dist/cjs/components/theme.js.map +3 -3
  43. package/dist/cjs/components/theme.props.d.ts +10 -0
  44. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  45. package/dist/cjs/components/theme.props.js +1 -1
  46. package/dist/cjs/components/theme.props.js.map +3 -3
  47. package/dist/cjs/helpers/font-config.d.ts +96 -0
  48. package/dist/cjs/helpers/font-config.d.ts.map +1 -0
  49. package/dist/cjs/helpers/font-config.js +3 -0
  50. package/dist/cjs/helpers/font-config.js.map +7 -0
  51. package/dist/cjs/helpers/index.d.ts +1 -0
  52. package/dist/cjs/helpers/index.d.ts.map +1 -1
  53. package/dist/cjs/helpers/index.js +1 -1
  54. package/dist/cjs/helpers/index.js.map +2 -2
  55. package/dist/esm/components/schemas/base-button.schema.d.ts +319 -0
  56. package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -0
  57. package/dist/esm/components/schemas/base-button.schema.js +2 -0
  58. package/dist/esm/components/schemas/base-button.schema.js.map +7 -0
  59. package/dist/esm/components/schemas/button.schema.d.ts +686 -0
  60. package/dist/esm/components/schemas/button.schema.d.ts.map +1 -0
  61. package/dist/esm/components/schemas/button.schema.js +2 -0
  62. package/dist/esm/components/schemas/button.schema.js.map +7 -0
  63. package/dist/esm/components/schemas/icon-button.schema.d.ts +329 -0
  64. package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -0
  65. package/dist/esm/components/schemas/icon-button.schema.js +2 -0
  66. package/dist/esm/components/schemas/icon-button.schema.js.map +7 -0
  67. package/dist/esm/components/schemas/index.d.ts +52 -0
  68. package/dist/esm/components/schemas/index.d.ts.map +1 -0
  69. package/dist/esm/components/schemas/index.js +2 -0
  70. package/dist/esm/components/schemas/index.js.map +7 -0
  71. package/dist/esm/components/schemas/toggle-button.schema.d.ts +1172 -0
  72. package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -0
  73. package/dist/esm/components/schemas/toggle-button.schema.js +2 -0
  74. package/dist/esm/components/schemas/toggle-button.schema.js.map +7 -0
  75. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +563 -0
  76. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -0
  77. package/dist/esm/components/schemas/toggle-icon-button.schema.js +2 -0
  78. package/dist/esm/components/schemas/toggle-icon-button.schema.js.map +7 -0
  79. package/dist/esm/components/sheet.d.ts +1 -1
  80. package/dist/esm/components/sheet.d.ts.map +1 -1
  81. package/dist/esm/components/sheet.js +1 -1
  82. package/dist/esm/components/sheet.js.map +3 -3
  83. package/dist/esm/components/shell.d.ts +125 -164
  84. package/dist/esm/components/shell.d.ts.map +1 -1
  85. package/dist/esm/components/shell.js +1 -1
  86. package/dist/esm/components/shell.js.map +3 -3
  87. package/dist/esm/components/sidebar.d.ts +1 -7
  88. package/dist/esm/components/sidebar.d.ts.map +1 -1
  89. package/dist/esm/components/sidebar.js +1 -1
  90. package/dist/esm/components/sidebar.js.map +3 -3
  91. package/dist/esm/components/theme.d.ts +3 -0
  92. package/dist/esm/components/theme.d.ts.map +1 -1
  93. package/dist/esm/components/theme.js +1 -1
  94. package/dist/esm/components/theme.js.map +3 -3
  95. package/dist/esm/components/theme.props.d.ts +10 -0
  96. package/dist/esm/components/theme.props.d.ts.map +1 -1
  97. package/dist/esm/components/theme.props.js +1 -1
  98. package/dist/esm/components/theme.props.js.map +3 -3
  99. package/dist/esm/helpers/font-config.d.ts +96 -0
  100. package/dist/esm/helpers/font-config.d.ts.map +1 -0
  101. package/dist/esm/helpers/font-config.js +3 -0
  102. package/dist/esm/helpers/font-config.js.map +7 -0
  103. package/dist/esm/helpers/index.d.ts +1 -0
  104. package/dist/esm/helpers/index.d.ts.map +1 -1
  105. package/dist/esm/helpers/index.js +1 -1
  106. package/dist/esm/helpers/index.js.map +2 -2
  107. package/package.json +23 -3
  108. package/schemas/base-button.d.ts +2 -0
  109. package/schemas/base-button.json +284 -0
  110. package/schemas/button.d.ts +2 -0
  111. package/schemas/button.json +535 -0
  112. package/schemas/icon-button.d.ts +2 -0
  113. package/schemas/icon-button.json +318 -0
  114. package/schemas/index.d.ts +2 -0
  115. package/schemas/index.json +2016 -0
  116. package/schemas/schemas.d.ts +29 -0
  117. package/schemas/toggle-button.d.ts +2 -0
  118. package/schemas/toggle-button.json +543 -0
  119. package/schemas/toggle-icon-button.d.ts +2 -0
  120. package/schemas/toggle-icon-button.json +326 -0
  121. package/schemas-json.d.ts +12 -0
  122. package/src/components/_internal/base-sidebar-menu.css +3 -8
  123. package/src/components/_internal/base-sidebar.css +1 -2
  124. package/src/components/schemas/base-button.schema.ts +339 -0
  125. package/src/components/schemas/button.schema.ts +198 -0
  126. package/src/components/schemas/icon-button.schema.ts +142 -0
  127. package/src/components/schemas/index.ts +68 -0
  128. package/src/components/schemas/toggle-button.schema.ts +122 -0
  129. package/src/components/schemas/toggle-icon-button.schema.ts +195 -0
  130. package/src/components/sheet.css +39 -19
  131. package/src/components/sheet.tsx +62 -3
  132. package/src/components/shell.css +510 -89
  133. package/src/components/shell.tsx +2055 -928
  134. package/src/components/sidebar.css +126 -65
  135. package/src/components/sidebar.tsx +5 -24
  136. package/src/components/theme.props.tsx +8 -0
  137. package/src/components/theme.tsx +16 -0
  138. package/src/helpers/font-config.ts +167 -0
  139. package/src/helpers/index.ts +1 -0
  140. package/src/styles/fonts.css +16 -13
  141. package/src/styles/tokens/typography.css +27 -4
  142. package/styles.css +410 -91
  143. package/tokens/base.css +12 -0
  144. package/tokens.css +12 -0
@@ -0,0 +1,319 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * BaseButton Zod schema - Single source of truth for all button component props
4
+ *
5
+ * This schema defines the core button functionality used by Button, IconButton,
6
+ * ToggleButton, and ToggleIconButton components. It ensures consistency across
7
+ * the design system and provides machine-readable validation.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * // Basic validation
12
+ * const props = BaseButtonSchema.parse({ size: '2', variant: 'solid' });
13
+ *
14
+ * // With responsive props
15
+ * const responsiveProps = BaseButtonSchema.parse({
16
+ * size: { initial: '1', sm: '2', md: '3' },
17
+ * variant: 'solid'
18
+ * });
19
+ * ```
20
+ */
21
+ export declare const BaseButtonSchema: z.ZodObject<{
22
+ /**
23
+ * Polymorphic rendering - render as different HTML elements
24
+ * @default 'button'
25
+ */
26
+ as: z.ZodOptional<z.ZodString>;
27
+ /**
28
+ * Use asChild to merge props with child element
29
+ * @default false
30
+ */
31
+ asChild: z.ZodOptional<z.ZodBoolean>;
32
+ /**
33
+ * Button size for responsive design and interface density
34
+ * Supports responsive objects: { initial: '1', sm: '2', md: '3', lg: '4' }
35
+ * @default '2'
36
+ */
37
+ size: z.ZodDefault<z.ZodUnion<[z.ZodEnum<["1", "2", "3", "4"]>, z.ZodObject<{
38
+ initial: z.ZodOptional<z.ZodEnum<["1", "2", "3", "4"]>>;
39
+ sm: z.ZodOptional<z.ZodEnum<["1", "2", "3", "4"]>>;
40
+ md: z.ZodOptional<z.ZodEnum<["1", "2", "3", "4"]>>;
41
+ lg: z.ZodOptional<z.ZodEnum<["1", "2", "3", "4"]>>;
42
+ xl: z.ZodOptional<z.ZodEnum<["1", "2", "3", "4"]>>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ initial?: "1" | "2" | "3" | "4" | undefined;
45
+ sm?: "1" | "2" | "3" | "4" | undefined;
46
+ md?: "1" | "2" | "3" | "4" | undefined;
47
+ lg?: "1" | "2" | "3" | "4" | undefined;
48
+ xl?: "1" | "2" | "3" | "4" | undefined;
49
+ }, {
50
+ initial?: "1" | "2" | "3" | "4" | undefined;
51
+ sm?: "1" | "2" | "3" | "4" | undefined;
52
+ md?: "1" | "2" | "3" | "4" | undefined;
53
+ lg?: "1" | "2" | "3" | "4" | undefined;
54
+ xl?: "1" | "2" | "3" | "4" | undefined;
55
+ }>]>>;
56
+ /**
57
+ * Visual variant that determines the button's appearance and context
58
+ * @default 'solid'
59
+ */
60
+ variant: z.ZodDefault<z.ZodEnum<["classic", "solid", "soft", "surface", "outline", "ghost", "override"]>>;
61
+ /**
62
+ * Accent color for the button
63
+ */
64
+ color: z.ZodOptional<z.ZodEnum<["tomato", "red", "ruby", "crimson", "pink", "plum", "purple", "violet", "iris", "indigo", "blue", "cyan", "teal", "jade", "green", "grass", "brown", "orange", "sky", "mint", "lime", "yellow", "amber", "gold", "bronze", "gray"]>>;
65
+ /**
66
+ * High contrast mode for better accessibility
67
+ * @default false
68
+ */
69
+ highContrast: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
70
+ /**
71
+ * Border radius for the button
72
+ */
73
+ radius: z.ZodOptional<z.ZodEnum<["none", "small", "medium", "large", "full"]>>;
74
+ /**
75
+ * Loading state that shows a spinner and disables interaction
76
+ * Automatically sets disabled=true and provides accessibility announcements
77
+ * @default false
78
+ */
79
+ loading: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
80
+ /**
81
+ * Full width mode that expands the button to fill its container
82
+ * Useful for mobile layouts and form submissions
83
+ * @default false
84
+ */
85
+ fullWidth: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
86
+ /**
87
+ * Material type for visual rendering and depth effects
88
+ * Controls how the button renders its visual elements
89
+ */
90
+ material: z.ZodOptional<z.ZodEnum<["solid", "translucent"]>>;
91
+ /**
92
+ * Panel background type (deprecated)
93
+ * @deprecated Use `material` prop instead. This prop will be removed in a future version.
94
+ */
95
+ panelBackground: z.ZodOptional<z.ZodEnum<["solid", "translucent"]>>;
96
+ /**
97
+ * Flush mode that removes visual padding for seamless text integration
98
+ * Only effective with ghost variant
99
+ * @default false
100
+ */
101
+ flush: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
102
+ /**
103
+ * Disabled state
104
+ * @default false
105
+ */
106
+ disabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
107
+ /**
108
+ * Type attribute for form buttons
109
+ * @default 'button'
110
+ */
111
+ type: z.ZodOptional<z.ZodEnum<["button", "submit", "reset"]>>;
112
+ /**
113
+ * Additional CSS class name
114
+ */
115
+ className: z.ZodOptional<z.ZodString>;
116
+ /**
117
+ * Inline styles
118
+ */
119
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
120
+ /**
121
+ * Click handler
122
+ */
123
+ onClick: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
124
+ /**
125
+ * Focus handler
126
+ */
127
+ onFocus: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
128
+ /**
129
+ * Blur handler
130
+ */
131
+ onBlur: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
132
+ /**
133
+ * Mouse enter handler
134
+ */
135
+ onMouseEnter: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
136
+ /**
137
+ * Mouse leave handler
138
+ */
139
+ onMouseLeave: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
140
+ /**
141
+ * Key down handler
142
+ */
143
+ onKeyDown: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
144
+ /**
145
+ * Key up handler
146
+ */
147
+ onKeyUp: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
148
+ /**
149
+ * Form submission handler
150
+ */
151
+ onSubmit: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
152
+ /**
153
+ * Tab index for keyboard navigation
154
+ */
155
+ tabIndex: z.ZodOptional<z.ZodNumber>;
156
+ /**
157
+ * ARIA label for accessibility
158
+ */
159
+ 'aria-label': z.ZodOptional<z.ZodString>;
160
+ /**
161
+ * ARIA labelled by reference
162
+ */
163
+ 'aria-labelledby': z.ZodOptional<z.ZodString>;
164
+ /**
165
+ * ARIA described by reference
166
+ */
167
+ 'aria-describedby': z.ZodOptional<z.ZodString>;
168
+ /**
169
+ * ARIA expanded state
170
+ */
171
+ 'aria-expanded': z.ZodOptional<z.ZodBoolean>;
172
+ /**
173
+ * ARIA pressed state
174
+ */
175
+ 'aria-pressed': z.ZodOptional<z.ZodBoolean>;
176
+ /**
177
+ * ARIA current state
178
+ */
179
+ 'aria-current': z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["page", "step", "location", "date", "time"]>]>>;
180
+ /**
181
+ * ARIA controls reference
182
+ */
183
+ 'aria-controls': z.ZodOptional<z.ZodString>;
184
+ /**
185
+ * ARIA owns reference
186
+ */
187
+ 'aria-owns': z.ZodOptional<z.ZodString>;
188
+ /**
189
+ * Data attributes
190
+ */
191
+ 'data-*': z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
192
+ /**
193
+ * ID attribute
194
+ */
195
+ id: z.ZodOptional<z.ZodString>;
196
+ /**
197
+ * Title attribute for tooltip
198
+ */
199
+ title: z.ZodOptional<z.ZodString>;
200
+ /**
201
+ * Role attribute
202
+ */
203
+ role: z.ZodOptional<z.ZodString>;
204
+ /**
205
+ * Children elements
206
+ */
207
+ children: z.ZodOptional<z.ZodAny>;
208
+ }, "strict", z.ZodTypeAny, {
209
+ size: "1" | "2" | "3" | "4" | {
210
+ initial?: "1" | "2" | "3" | "4" | undefined;
211
+ sm?: "1" | "2" | "3" | "4" | undefined;
212
+ md?: "1" | "2" | "3" | "4" | undefined;
213
+ lg?: "1" | "2" | "3" | "4" | undefined;
214
+ xl?: "1" | "2" | "3" | "4" | undefined;
215
+ };
216
+ disabled: boolean;
217
+ variant: "classic" | "soft" | "surface" | "outline" | "ghost" | "solid" | "override";
218
+ highContrast: boolean;
219
+ flush: boolean;
220
+ loading: boolean;
221
+ fullWidth: boolean;
222
+ className?: string | undefined;
223
+ color?: "gray" | "gold" | "bronze" | "brown" | "yellow" | "amber" | "orange" | "tomato" | "red" | "ruby" | "crimson" | "pink" | "plum" | "purple" | "violet" | "iris" | "indigo" | "blue" | "cyan" | "teal" | "jade" | "green" | "grass" | "lime" | "mint" | "sky" | undefined;
224
+ style?: Record<string, string | number> | undefined;
225
+ title?: string | undefined;
226
+ as?: string | undefined;
227
+ asChild?: boolean | undefined;
228
+ id?: string | undefined;
229
+ tabIndex?: number | undefined;
230
+ role?: string | undefined;
231
+ 'aria-controls'?: string | undefined;
232
+ 'aria-current'?: boolean | "page" | "time" | "step" | "location" | "date" | undefined;
233
+ 'aria-describedby'?: string | undefined;
234
+ 'aria-expanded'?: boolean | undefined;
235
+ 'aria-label'?: string | undefined;
236
+ 'aria-labelledby'?: string | undefined;
237
+ 'aria-owns'?: string | undefined;
238
+ 'aria-pressed'?: boolean | undefined;
239
+ children?: any;
240
+ onFocus?: ((...args: unknown[]) => unknown) | undefined;
241
+ onBlur?: ((...args: unknown[]) => unknown) | undefined;
242
+ onSubmit?: ((...args: unknown[]) => unknown) | undefined;
243
+ onKeyDown?: ((...args: unknown[]) => unknown) | undefined;
244
+ onKeyUp?: ((...args: unknown[]) => unknown) | undefined;
245
+ onClick?: ((...args: unknown[]) => unknown) | undefined;
246
+ onMouseEnter?: ((...args: unknown[]) => unknown) | undefined;
247
+ onMouseLeave?: ((...args: unknown[]) => unknown) | undefined;
248
+ type?: "button" | "reset" | "submit" | undefined;
249
+ radius?: "small" | "none" | "medium" | "large" | "full" | undefined;
250
+ material?: "solid" | "translucent" | undefined;
251
+ panelBackground?: "solid" | "translucent" | undefined;
252
+ 'data-*'?: Record<string, string> | undefined;
253
+ }, {
254
+ className?: string | undefined;
255
+ color?: "gray" | "gold" | "bronze" | "brown" | "yellow" | "amber" | "orange" | "tomato" | "red" | "ruby" | "crimson" | "pink" | "plum" | "purple" | "violet" | "iris" | "indigo" | "blue" | "cyan" | "teal" | "jade" | "green" | "grass" | "lime" | "mint" | "sky" | undefined;
256
+ size?: "1" | "2" | "3" | "4" | {
257
+ initial?: "1" | "2" | "3" | "4" | undefined;
258
+ sm?: "1" | "2" | "3" | "4" | undefined;
259
+ md?: "1" | "2" | "3" | "4" | undefined;
260
+ lg?: "1" | "2" | "3" | "4" | undefined;
261
+ xl?: "1" | "2" | "3" | "4" | undefined;
262
+ } | undefined;
263
+ style?: Record<string, string | number> | undefined;
264
+ disabled?: boolean | undefined;
265
+ title?: string | undefined;
266
+ as?: string | undefined;
267
+ asChild?: boolean | undefined;
268
+ id?: string | undefined;
269
+ tabIndex?: number | undefined;
270
+ role?: string | undefined;
271
+ 'aria-controls'?: string | undefined;
272
+ 'aria-current'?: boolean | "page" | "time" | "step" | "location" | "date" | undefined;
273
+ 'aria-describedby'?: string | undefined;
274
+ 'aria-expanded'?: boolean | undefined;
275
+ 'aria-label'?: string | undefined;
276
+ 'aria-labelledby'?: string | undefined;
277
+ 'aria-owns'?: string | undefined;
278
+ 'aria-pressed'?: boolean | undefined;
279
+ children?: any;
280
+ onFocus?: ((...args: unknown[]) => unknown) | undefined;
281
+ onBlur?: ((...args: unknown[]) => unknown) | undefined;
282
+ onSubmit?: ((...args: unknown[]) => unknown) | undefined;
283
+ onKeyDown?: ((...args: unknown[]) => unknown) | undefined;
284
+ onKeyUp?: ((...args: unknown[]) => unknown) | undefined;
285
+ onClick?: ((...args: unknown[]) => unknown) | undefined;
286
+ onMouseEnter?: ((...args: unknown[]) => unknown) | undefined;
287
+ onMouseLeave?: ((...args: unknown[]) => unknown) | undefined;
288
+ type?: "button" | "reset" | "submit" | undefined;
289
+ variant?: "classic" | "soft" | "surface" | "outline" | "ghost" | "solid" | "override" | undefined;
290
+ highContrast?: boolean | undefined;
291
+ radius?: "small" | "none" | "medium" | "large" | "full" | undefined;
292
+ material?: "solid" | "translucent" | undefined;
293
+ panelBackground?: "solid" | "translucent" | undefined;
294
+ flush?: boolean | undefined;
295
+ loading?: boolean | undefined;
296
+ fullWidth?: boolean | undefined;
297
+ 'data-*'?: Record<string, string> | undefined;
298
+ }>;
299
+ /**
300
+ * Type derived from BaseButton Zod schema
301
+ * This ensures type safety and consistency with the schema
302
+ */
303
+ export type BaseButtonProps = z.infer<typeof BaseButtonSchema>;
304
+ /**
305
+ * Development-only helper to validate and normalize props
306
+ * This function should only be used in development mode
307
+ *
308
+ * @param props - Props to validate and normalize
309
+ * @returns Validated and normalized props
310
+ *
311
+ * @example
312
+ * ```tsx
313
+ * // In development, this will validate props and show helpful errors
314
+ * const validatedProps = parseBaseButtonProps({ size: 'invalid', variant: 'solid' });
315
+ * // Throws: "Invalid enum value. Expected '1' | '2' | '3' | '4', received 'invalid'"
316
+ * ```
317
+ */
318
+ export declare function parseBaseButtonProps(props: unknown): BaseButtonProps;
319
+ //# sourceMappingURL=base-button.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-button.schema.d.ts","sourceRoot":"","sources":["../../../../src/components/schemas/base-button.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB;IAEzB;;;OAGG;;IAGH;;;OAGG;;IAMH;;;;OAIG;;;;;;;;;;;;;;;;;;;;IAeH;;;OAGG;;IAMH;;OAEG;;IAiCH;;;OAGG;;IAOH;;OAEG;;IAMH;;;;OAIG;;IAOH;;;;OAIG;;IAOH;;;OAGG;;IAMH;;;OAGG;;IAMH;;;;OAIG;;IAOH;;;OAGG;;IAGH;;;OAGG;;IAMH;;OAEG;;IAGH;;OAEG;;IAMH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAMH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGI,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAKpE"}
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var c=(o,t)=>{for(var i in t)a(o,i,{get:t[i],enumerable:!0})},u=(o,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of l(t))!d.call(o,n)&&n!==i&&a(o,n,{get:()=>t[n],enumerable:!(r=s(t,n))||r.enumerable});return o};var b=o=>u(a({},"__esModule",{value:!0}),o);var f={};c(f,{BaseButtonSchema:()=>p,parseBaseButtonProps:()=>m});module.exports=b(f);var e=require("zod");const p=e.z.object({as:e.z.string().optional().describe("HTML element type to render as"),asChild:e.z.boolean().optional().describe("Merge props with child element instead of rendering wrapper"),size:e.z.union([e.z.enum(["1","2","3","4"]),e.z.object({initial:e.z.enum(["1","2","3","4"]).optional(),sm:e.z.enum(["1","2","3","4"]).optional(),md:e.z.enum(["1","2","3","4"]).optional(),lg:e.z.enum(["1","2","3","4"]).optional(),xl:e.z.enum(["1","2","3","4"]).optional()})]).default("2").describe("Button size for responsive design and interface density"),variant:e.z.enum(["classic","solid","soft","surface","outline","ghost","override"]).default("solid").describe("Visual variant that determines the button's appearance and context"),color:e.z.enum(["tomato","red","ruby","crimson","pink","plum","purple","violet","iris","indigo","blue","cyan","teal","jade","green","grass","brown","orange","sky","mint","lime","yellow","amber","gold","bronze","gray"]).optional().describe("Accent color for the button"),highContrast:e.z.boolean().optional().default(!1).describe("High contrast mode for better accessibility"),radius:e.z.enum(["none","small","medium","large","full"]).optional().describe("Border radius for the button"),loading:e.z.boolean().optional().default(!1).describe("Loading state that shows a spinner and disables interaction"),fullWidth:e.z.boolean().optional().default(!1).describe("Full width mode that expands the button to fill its container"),material:e.z.enum(["solid","translucent"]).optional().describe("Material type for visual rendering and depth effects"),panelBackground:e.z.enum(["solid","translucent"]).optional().describe("Panel background type (deprecated - use material instead)"),flush:e.z.boolean().optional().default(!1).describe("Flush mode that removes visual padding for seamless text integration"),disabled:e.z.boolean().optional().default(!1).describe("Disabled state"),type:e.z.enum(["button","submit","reset"]).optional().describe("Type attribute for form buttons"),className:e.z.string().optional().describe("Additional CSS class name"),style:e.z.record(e.z.string(),e.z.union([e.z.string(),e.z.number()])).optional().describe("Inline styles"),onClick:e.z.function().optional().describe("Click handler"),onFocus:e.z.function().optional().describe("Focus handler"),onBlur:e.z.function().optional().describe("Blur handler"),onMouseEnter:e.z.function().optional().describe("Mouse enter handler"),onMouseLeave:e.z.function().optional().describe("Mouse leave handler"),onKeyDown:e.z.function().optional().describe("Key down handler"),onKeyUp:e.z.function().optional().describe("Key up handler"),onSubmit:e.z.function().optional().describe("Form submission handler"),tabIndex:e.z.number().optional().describe("Tab index for keyboard navigation"),"aria-label":e.z.string().optional().describe("ARIA label for accessibility"),"aria-labelledby":e.z.string().optional().describe("ARIA labelled by reference"),"aria-describedby":e.z.string().optional().describe("ARIA described by reference"),"aria-expanded":e.z.boolean().optional().describe("ARIA expanded state"),"aria-pressed":e.z.boolean().optional().describe("ARIA pressed state"),"aria-current":e.z.union([e.z.boolean(),e.z.enum(["page","step","location","date","time"])]).optional().describe("ARIA current state"),"aria-controls":e.z.string().optional().describe("ARIA controls reference"),"aria-owns":e.z.string().optional().describe("ARIA owns reference"),"data-*":e.z.record(e.z.string(),e.z.string()).optional().describe("Data attributes"),id:e.z.string().optional().describe("ID attribute"),title:e.z.string().optional().describe("Title attribute for tooltip"),role:e.z.string().optional().describe("Role attribute"),children:e.z.any().optional().describe("Children elements")}).strict();function m(o){return o}
2
+ //# sourceMappingURL=base-button.schema.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/schemas/base-button.schema.ts"],
4
+ "sourcesContent": ["import { z } from 'zod';\n\n/**\n * BaseButton Zod schema - Single source of truth for all button component props\n *\n * This schema defines the core button functionality used by Button, IconButton,\n * ToggleButton, and ToggleIconButton components. It ensures consistency across\n * the design system and provides machine-readable validation.\n *\n * @example\n * ```tsx\n * // Basic validation\n * const props = BaseButtonSchema.parse({ size: '2', variant: 'solid' });\n *\n * // With responsive props\n * const responsiveProps = BaseButtonSchema.parse({\n * size: { initial: '1', sm: '2', md: '3' },\n * variant: 'solid'\n * });\n * ```\n */\nexport const BaseButtonSchema = z\n .object({\n /**\n * Polymorphic rendering - render as different HTML elements\n * @default 'button'\n */\n as: z.string().optional().describe('HTML element type to render as'),\n\n /**\n * Use asChild to merge props with child element\n * @default false\n */\n asChild: z\n .boolean()\n .optional()\n .describe('Merge props with child element instead of rendering wrapper'),\n\n /**\n * Button size for responsive design and interface density\n * Supports responsive objects: { initial: '1', sm: '2', md: '3', lg: '4' }\n * @default '2'\n */\n size: z\n .union([\n z.enum(['1', '2', '3', '4']),\n z.object({\n initial: z.enum(['1', '2', '3', '4']).optional(),\n sm: z.enum(['1', '2', '3', '4']).optional(),\n md: z.enum(['1', '2', '3', '4']).optional(),\n lg: z.enum(['1', '2', '3', '4']).optional(),\n xl: z.enum(['1', '2', '3', '4']).optional(),\n }),\n ])\n .default('2')\n .describe('Button size for responsive design and interface density'),\n\n /**\n * Visual variant that determines the button's appearance and context\n * @default 'solid'\n */\n variant: z\n .enum(['classic', 'solid', 'soft', 'surface', 'outline', 'ghost', 'override'])\n .default('solid')\n .describe(\"Visual variant that determines the button's appearance and context\"),\n\n /**\n * Accent color for the button\n */\n color: z\n .enum([\n 'tomato',\n 'red',\n 'ruby',\n 'crimson',\n 'pink',\n 'plum',\n 'purple',\n 'violet',\n 'iris',\n 'indigo',\n 'blue',\n 'cyan',\n 'teal',\n 'jade',\n 'green',\n 'grass',\n 'brown',\n 'orange',\n 'sky',\n 'mint',\n 'lime',\n 'yellow',\n 'amber',\n 'gold',\n 'bronze',\n 'gray',\n ])\n .optional()\n .describe('Accent color for the button'),\n\n /**\n * High contrast mode for better accessibility\n * @default false\n */\n highContrast: z\n .boolean()\n .optional()\n .default(false)\n .describe('High contrast mode for better accessibility'),\n\n /**\n * Border radius for the button\n */\n radius: z\n .enum(['none', 'small', 'medium', 'large', 'full'])\n .optional()\n .describe('Border radius for the button'),\n\n /**\n * Loading state that shows a spinner and disables interaction\n * Automatically sets disabled=true and provides accessibility announcements\n * @default false\n */\n loading: z\n .boolean()\n .optional()\n .default(false)\n .describe('Loading state that shows a spinner and disables interaction'),\n\n /**\n * Full width mode that expands the button to fill its container\n * Useful for mobile layouts and form submissions\n * @default false\n */\n fullWidth: z\n .boolean()\n .optional()\n .default(false)\n .describe('Full width mode that expands the button to fill its container'),\n\n /**\n * Material type for visual rendering and depth effects\n * Controls how the button renders its visual elements\n */\n material: z\n .enum(['solid', 'translucent'])\n .optional()\n .describe('Material type for visual rendering and depth effects'),\n\n /**\n * Panel background type (deprecated)\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n */\n panelBackground: z\n .enum(['solid', 'translucent'])\n .optional()\n .describe('Panel background type (deprecated - use material instead)'),\n\n /**\n * Flush mode that removes visual padding for seamless text integration\n * Only effective with ghost variant\n * @default false\n */\n flush: z\n .boolean()\n .optional()\n .default(false)\n .describe('Flush mode that removes visual padding for seamless text integration'),\n\n /**\n * Disabled state\n * @default false\n */\n disabled: z.boolean().optional().default(false).describe('Disabled state'),\n\n /**\n * Type attribute for form buttons\n * @default 'button'\n */\n type: z\n .enum(['button', 'submit', 'reset'])\n .optional()\n .describe('Type attribute for form buttons'),\n\n /**\n * Additional CSS class name\n */\n className: z.string().optional().describe('Additional CSS class name'),\n\n /**\n * Inline styles\n */\n style: z\n .record(z.string(), z.union([z.string(), z.number()]))\n .optional()\n .describe('Inline styles'),\n\n /**\n * Click handler\n */\n onClick: z.function().optional().describe('Click handler'),\n\n /**\n * Focus handler\n */\n onFocus: z.function().optional().describe('Focus handler'),\n\n /**\n * Blur handler\n */\n onBlur: z.function().optional().describe('Blur handler'),\n\n /**\n * Mouse enter handler\n */\n onMouseEnter: z.function().optional().describe('Mouse enter handler'),\n\n /**\n * Mouse leave handler\n */\n onMouseLeave: z.function().optional().describe('Mouse leave handler'),\n\n /**\n * Key down handler\n */\n onKeyDown: z.function().optional().describe('Key down handler'),\n\n /**\n * Key up handler\n */\n onKeyUp: z.function().optional().describe('Key up handler'),\n\n /**\n * Form submission handler\n */\n onSubmit: z.function().optional().describe('Form submission handler'),\n\n /**\n * Tab index for keyboard navigation\n */\n tabIndex: z.number().optional().describe('Tab index for keyboard navigation'),\n\n /**\n * ARIA label for accessibility\n */\n 'aria-label': z.string().optional().describe('ARIA label for accessibility'),\n\n /**\n * ARIA labelled by reference\n */\n 'aria-labelledby': z.string().optional().describe('ARIA labelled by reference'),\n\n /**\n * ARIA described by reference\n */\n 'aria-describedby': z.string().optional().describe('ARIA described by reference'),\n\n /**\n * ARIA expanded state\n */\n 'aria-expanded': z.boolean().optional().describe('ARIA expanded state'),\n\n /**\n * ARIA pressed state\n */\n 'aria-pressed': z.boolean().optional().describe('ARIA pressed state'),\n\n /**\n * ARIA current state\n */\n 'aria-current': z\n .union([z.boolean(), z.enum(['page', 'step', 'location', 'date', 'time'])])\n .optional()\n .describe('ARIA current state'),\n\n /**\n * ARIA controls reference\n */\n 'aria-controls': z.string().optional().describe('ARIA controls reference'),\n\n /**\n * ARIA owns reference\n */\n 'aria-owns': z.string().optional().describe('ARIA owns reference'),\n\n /**\n * Data attributes\n */\n 'data-*': z.record(z.string(), z.string()).optional().describe('Data attributes'),\n\n /**\n * ID attribute\n */\n id: z.string().optional().describe('ID attribute'),\n\n /**\n * Title attribute for tooltip\n */\n title: z.string().optional().describe('Title attribute for tooltip'),\n\n /**\n * Role attribute\n */\n role: z.string().optional().describe('Role attribute'),\n\n /**\n * Children elements\n */\n children: z.any().optional().describe('Children elements'),\n })\n .strict();\n\n/**\n * Type derived from BaseButton Zod schema\n * This ensures type safety and consistency with the schema\n */\nexport type BaseButtonProps = z.infer<typeof BaseButtonSchema>;\n\n/**\n * Development-only helper to validate and normalize props\n * This function should only be used in development mode\n *\n * @param props - Props to validate and normalize\n * @returns Validated and normalized props\n *\n * @example\n * ```tsx\n * // In development, this will validate props and show helpful errors\n * const validatedProps = parseBaseButtonProps({ size: 'invalid', variant: 'solid' });\n * // Throws: \"Invalid enum value. Expected '1' | '2' | '3' | '4', received 'invalid'\"\n * ```\n */\nexport function parseBaseButtonProps(props: unknown): BaseButtonProps {\n if (process.env.NODE_ENV === 'development') {\n return BaseButtonSchema.parse(props);\n }\n return props as BaseButtonProps;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["base_button_schema_exports", "__export", "BaseButtonSchema", "parseBaseButtonProps", "__toCommonJS", "import_zod", "props"]
7
+ }