@stachelock/ui 0.1.0

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 (153) hide show
  1. package/README.md +304 -0
  2. package/dist/CheckboxInput-rWkcde69.js +5 -0
  3. package/dist/CheckboxInput-rWkcde69.js.map +1 -0
  4. package/dist/ComboboxInput-B98P_8CZ.js +5 -0
  5. package/dist/ComboboxInput-B98P_8CZ.js.map +1 -0
  6. package/dist/SelectInput-B5liNv7H.js +5 -0
  7. package/dist/SelectInput-B5liNv7H.js.map +1 -0
  8. package/dist/SwitchInput-D1k9O8gn.js +5 -0
  9. package/dist/SwitchInput-D1k9O8gn.js.map +1 -0
  10. package/dist/TextAreaInput-Di6Kstic.js +5 -0
  11. package/dist/TextAreaInput-Di6Kstic.js.map +1 -0
  12. package/dist/UiLoading-BuzCrLqO.js +5 -0
  13. package/dist/UiLoading-BuzCrLqO.js.map +1 -0
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.js +4763 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/index.umd.cjs +11 -0
  18. package/dist/index.umd.cjs.map +1 -0
  19. package/dist/src/components/UiAvatar.d.ts +57 -0
  20. package/dist/src/components/UiAvatar.d.ts.map +1 -0
  21. package/dist/src/components/UiBadge.d.ts +44 -0
  22. package/dist/src/components/UiBadge.d.ts.map +1 -0
  23. package/dist/src/components/UiBreadcrumb.d.ts +3 -0
  24. package/dist/src/components/UiBreadcrumb.d.ts.map +1 -0
  25. package/dist/src/components/UiButton.d.ts +119 -0
  26. package/dist/src/components/UiButton.d.ts.map +1 -0
  27. package/dist/src/components/UiLoading.d.ts +36 -0
  28. package/dist/src/components/UiLoading.d.ts.map +1 -0
  29. package/dist/src/components/UiLoadingDots.d.ts +53 -0
  30. package/dist/src/components/UiLoadingDots.d.ts.map +1 -0
  31. package/dist/src/components/UiModal.d.ts +102 -0
  32. package/dist/src/components/UiModal.d.ts.map +1 -0
  33. package/dist/src/components/UiNavLink.d.ts +73 -0
  34. package/dist/src/components/UiNavLink.d.ts.map +1 -0
  35. package/dist/src/components/UiProgressBar.d.ts +35 -0
  36. package/dist/src/components/UiProgressBar.d.ts.map +1 -0
  37. package/dist/src/components/UiRadialProgressBar.d.ts +43 -0
  38. package/dist/src/components/UiRadialProgressBar.d.ts.map +1 -0
  39. package/dist/src/components/UiTable.d.ts +94 -0
  40. package/dist/src/components/UiTable.d.ts.map +1 -0
  41. package/dist/src/components/UiTextInput.d.ts +108 -0
  42. package/dist/src/components/UiTextInput.d.ts.map +1 -0
  43. package/dist/src/components/UiTransition.d.ts +41 -0
  44. package/dist/src/components/UiTransition.d.ts.map +1 -0
  45. package/dist/src/components/calendars/CalendarDashboard.d.ts +32 -0
  46. package/dist/src/components/calendars/CalendarDashboard.d.ts.map +1 -0
  47. package/dist/src/components/calendars/CalendarHeader.d.ts +26 -0
  48. package/dist/src/components/calendars/CalendarHeader.d.ts.map +1 -0
  49. package/dist/src/components/calendars/DayCalendar.d.ts +24 -0
  50. package/dist/src/components/calendars/DayCalendar.d.ts.map +1 -0
  51. package/dist/src/components/calendars/EventCard.d.ts +19 -0
  52. package/dist/src/components/calendars/EventCard.d.ts.map +1 -0
  53. package/dist/src/components/calendars/EventsList.d.ts +24 -0
  54. package/dist/src/components/calendars/EventsList.d.ts.map +1 -0
  55. package/dist/src/components/calendars/MonthCalendar.d.ts +36 -0
  56. package/dist/src/components/calendars/MonthCalendar.d.ts.map +1 -0
  57. package/dist/src/components/calendars/WeekCalendar.d.ts +24 -0
  58. package/dist/src/components/calendars/WeekCalendar.d.ts.map +1 -0
  59. package/dist/src/components/calendars/YearCalendar.d.ts +18 -0
  60. package/dist/src/components/calendars/YearCalendar.d.ts.map +1 -0
  61. package/dist/src/components/calendars/index.d.ts +9 -0
  62. package/dist/src/components/calendars/index.d.ts.map +1 -0
  63. package/dist/src/components/forms/DynamicForm.d.ts +70 -0
  64. package/dist/src/components/forms/DynamicForm.d.ts.map +1 -0
  65. package/dist/src/components/forms/DynamicFormField.d.ts +25 -0
  66. package/dist/src/components/forms/DynamicFormField.d.ts.map +1 -0
  67. package/dist/src/components/forms/FormFieldWrapper.d.ts +108 -0
  68. package/dist/src/components/forms/FormFieldWrapper.d.ts.map +1 -0
  69. package/dist/src/components/forms/index.d.ts +4 -0
  70. package/dist/src/components/forms/index.d.ts.map +1 -0
  71. package/dist/src/components/index.d.ts +18 -0
  72. package/dist/src/components/index.d.ts.map +1 -0
  73. package/dist/src/components/inputs/CheckboxInput.d.ts +68 -0
  74. package/dist/src/components/inputs/CheckboxInput.d.ts.map +1 -0
  75. package/dist/src/components/inputs/ComboboxInput.d.ts +76 -0
  76. package/dist/src/components/inputs/ComboboxInput.d.ts.map +1 -0
  77. package/dist/src/components/inputs/InputsShowcase.d.ts +3 -0
  78. package/dist/src/components/inputs/InputsShowcase.d.ts.map +1 -0
  79. package/dist/src/components/inputs/SelectInput.d.ts +67 -0
  80. package/dist/src/components/inputs/SelectInput.d.ts.map +1 -0
  81. package/dist/src/components/inputs/SwitchInput.d.ts +80 -0
  82. package/dist/src/components/inputs/SwitchInput.d.ts.map +1 -0
  83. package/dist/src/components/inputs/TagifyInput.d.ts +183 -0
  84. package/dist/src/components/inputs/TagifyInput.d.ts.map +1 -0
  85. package/dist/src/components/inputs/TextAreaInput.d.ts +68 -0
  86. package/dist/src/components/inputs/TextAreaInput.d.ts.map +1 -0
  87. package/dist/src/components/inputs/index.d.ts +8 -0
  88. package/dist/src/components/inputs/index.d.ts.map +1 -0
  89. package/dist/src/components/layouts/DashboardLayout.d.ts +33 -0
  90. package/dist/src/components/layouts/DashboardLayout.d.ts.map +1 -0
  91. package/dist/src/components/layouts/DefaultLayout.d.ts +58 -0
  92. package/dist/src/components/layouts/DefaultLayout.d.ts.map +1 -0
  93. package/dist/src/components/layouts/HeaderLayout.d.ts +15 -0
  94. package/dist/src/components/layouts/HeaderLayout.d.ts.map +1 -0
  95. package/dist/src/components/layouts/NavigationGroup.d.ts +25 -0
  96. package/dist/src/components/layouts/NavigationGroup.d.ts.map +1 -0
  97. package/dist/src/components/layouts/NavigationItem.d.ts +30 -0
  98. package/dist/src/components/layouts/NavigationItem.d.ts.map +1 -0
  99. package/dist/src/components/layouts/SidebarLayout.d.ts +27 -0
  100. package/dist/src/components/layouts/SidebarLayout.d.ts.map +1 -0
  101. package/dist/src/components/layouts/index.d.ts +7 -0
  102. package/dist/src/components/layouts/index.d.ts.map +1 -0
  103. package/dist/src/composables/index.d.ts +4 -0
  104. package/dist/src/composables/index.d.ts.map +1 -0
  105. package/dist/src/composables/useCalendar.d.ts +146 -0
  106. package/dist/src/composables/useCalendar.d.ts.map +1 -0
  107. package/dist/src/composables/useFormValidation.d.ts +52 -0
  108. package/dist/src/composables/useFormValidation.d.ts.map +1 -0
  109. package/dist/src/composables/useModal.d.ts +36 -0
  110. package/dist/src/composables/useModal.d.ts.map +1 -0
  111. package/dist/src/dev.d.ts +2 -0
  112. package/dist/src/dev.d.ts.map +1 -0
  113. package/dist/src/index.d.ts +11 -0
  114. package/dist/src/index.d.ts.map +1 -0
  115. package/dist/src/plugin.d.ts +21 -0
  116. package/dist/src/plugin.d.ts.map +1 -0
  117. package/dist/src/types/avatars.d.ts +10 -0
  118. package/dist/src/types/avatars.d.ts.map +1 -0
  119. package/dist/src/types/badges.d.ts +10 -0
  120. package/dist/src/types/badges.d.ts.map +1 -0
  121. package/dist/src/types/calendars.d.ts +28 -0
  122. package/dist/src/types/calendars.d.ts.map +1 -0
  123. package/dist/src/types/form.d.ts +86 -0
  124. package/dist/src/types/form.d.ts.map +1 -0
  125. package/dist/src/types/forms.d.ts +17 -0
  126. package/dist/src/types/forms.d.ts.map +1 -0
  127. package/dist/src/types/index.d.ts +13 -0
  128. package/dist/src/types/index.d.ts.map +1 -0
  129. package/dist/src/types/inputs.d.ts +22 -0
  130. package/dist/src/types/inputs.d.ts.map +1 -0
  131. package/dist/src/types/layouts.d.ts +41 -0
  132. package/dist/src/types/layouts.d.ts.map +1 -0
  133. package/dist/src/types/loading.d.ts +11 -0
  134. package/dist/src/types/loading.d.ts.map +1 -0
  135. package/dist/src/types/navigation.d.ts +18 -0
  136. package/dist/src/types/navigation.d.ts.map +1 -0
  137. package/dist/src/types/tables.d.ts +24 -0
  138. package/dist/src/types/tables.d.ts.map +1 -0
  139. package/dist/src/types/transitions.d.ts +16 -0
  140. package/dist/src/types/transitions.d.ts.map +1 -0
  141. package/dist/src/types/ui.d.ts +353 -0
  142. package/dist/src/types/ui.d.ts.map +1 -0
  143. package/dist/src/utils/calendar.d.ts +50 -0
  144. package/dist/src/utils/calendar.d.ts.map +1 -0
  145. package/dist/src/utils/component-registry.d.ts +48 -0
  146. package/dist/src/utils/component-registry.d.ts.map +1 -0
  147. package/dist/src/utils/id.d.ts +13 -0
  148. package/dist/src/utils/id.d.ts.map +1 -0
  149. package/dist/src/utils/index.d.ts +4 -0
  150. package/dist/src/utils/index.d.ts.map +1 -0
  151. package/dist/style.css +1 -0
  152. package/package.json +143 -0
  153. package/tailwind.config.js +110 -0
@@ -0,0 +1,353 @@
1
+ export type Theme = 'primary' | 'secondary' | 'dark' | 'light' | 'success' | 'warning' | 'danger' | 'ghost';
2
+ export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
3
+ export type RoundedType = 'square' | 'rounded' | 'rounded-md' | 'rounded-lg' | 'rounded-full';
4
+ export interface ButtonType {
5
+ /**
6
+ * The theme/variant of the button
7
+ */
8
+ theme?: Theme;
9
+ /**
10
+ * The size of the button
11
+ */
12
+ size?: Size;
13
+ /**
14
+ * Button text label
15
+ */
16
+ label?: string;
17
+ /**
18
+ * Whether the button is disabled
19
+ */
20
+ disabled?: boolean;
21
+ /**
22
+ * Whether the button should take full width
23
+ */
24
+ expanded?: boolean;
25
+ /**
26
+ * Whether the button should be outlined instead of filled
27
+ */
28
+ outlined?: boolean;
29
+ /**
30
+ * Custom CSS classes to apply
31
+ */
32
+ customClass?: string;
33
+ /**
34
+ * Border radius style
35
+ */
36
+ rounded?: RoundedType;
37
+ /**
38
+ * Whether to show a leading icon
39
+ */
40
+ leadingIcon?: boolean;
41
+ /**
42
+ * Whether to show a trailing icon
43
+ */
44
+ trailingIcon?: boolean;
45
+ /**
46
+ * Whether the button is in loading state
47
+ */
48
+ loading?: boolean;
49
+ /**
50
+ * Size of the loading indicator
51
+ */
52
+ loadingSize?: Size;
53
+ /**
54
+ * Whether to show loading title text
55
+ */
56
+ showLoadingTitle?: boolean;
57
+ /**
58
+ * Whether to truncate the label text
59
+ */
60
+ truncateLabel?: boolean;
61
+ /**
62
+ * Whether to center the label
63
+ */
64
+ centerLabel?: boolean;
65
+ /**
66
+ * Whether to use inline-flex display
67
+ */
68
+ inlineFlex?: boolean;
69
+ }
70
+ export interface InputBaseType {
71
+ /**
72
+ * The input name attribute
73
+ */
74
+ name: string;
75
+ /**
76
+ * The input label
77
+ */
78
+ label?: string;
79
+ /**
80
+ * Placeholder text
81
+ */
82
+ placeholder?: string;
83
+ /**
84
+ * Whether the input is disabled
85
+ */
86
+ disabled?: boolean;
87
+ /**
88
+ * Whether the input is required
89
+ */
90
+ required?: boolean;
91
+ /**
92
+ * Custom CSS classes
93
+ */
94
+ className?: string;
95
+ /**
96
+ * Error message to display
97
+ */
98
+ errorMessage?: string | null;
99
+ /**
100
+ * Success message to display
101
+ */
102
+ successMessage?: string;
103
+ /**
104
+ * Whether the field is valid
105
+ */
106
+ isValid?: boolean;
107
+ /**
108
+ * Whether the field has been touched
109
+ */
110
+ isTouched?: boolean;
111
+ /**
112
+ * Whether to show validation colors
113
+ */
114
+ colorfulValidation?: boolean;
115
+ /**
116
+ * Whether to show the valid check icon
117
+ */
118
+ showValidCheck?: boolean;
119
+ /**
120
+ * Tertiary label (small text in top right)
121
+ */
122
+ tertiaryLabel?: string;
123
+ /**
124
+ * Message to show when disabled
125
+ */
126
+ disabledMessage?: string;
127
+ }
128
+ export interface TextInputType extends InputBaseType {
129
+ /**
130
+ * Input type attribute
131
+ */
132
+ type?: string;
133
+ /**
134
+ * Input value
135
+ */
136
+ value?: string;
137
+ /**
138
+ * Validation rules (Yup schema)
139
+ */
140
+ rules?: any;
141
+ /**
142
+ * Whether to validate on mount
143
+ */
144
+ validateOnMount?: boolean;
145
+ /**
146
+ * Custom input CSS classes
147
+ */
148
+ inputClass?: string | string[];
149
+ /**
150
+ * Custom input styles
151
+ */
152
+ inputStyle?: string;
153
+ /**
154
+ * Whether spellcheck is enabled
155
+ */
156
+ spellcheck?: boolean;
157
+ /**
158
+ * Whether to capitalize text
159
+ */
160
+ capitalize?: boolean;
161
+ /**
162
+ * Whether to use lazy validation/updates
163
+ */
164
+ lazy?: boolean;
165
+ /**
166
+ * Transform function to apply to input value
167
+ */
168
+ transformFunction?: (value: string) => string;
169
+ /**
170
+ * Whether to force show errors
171
+ */
172
+ showErrors?: boolean;
173
+ }
174
+ export interface SelectOption {
175
+ value: string | number;
176
+ label: string;
177
+ disabled?: boolean;
178
+ }
179
+ export interface SelectInputType extends InputBaseType {
180
+ /**
181
+ * Select options
182
+ */
183
+ options: SelectOption[];
184
+ /**
185
+ * Selected value
186
+ */
187
+ value?: string | number;
188
+ /**
189
+ * Multiple selection
190
+ */
191
+ multiple?: boolean;
192
+ }
193
+ export interface ModalType {
194
+ /**
195
+ * Whether the modal is open
196
+ */
197
+ open: boolean;
198
+ /**
199
+ * Modal title
200
+ */
201
+ title?: string;
202
+ /**
203
+ * Modal size
204
+ */
205
+ size?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
206
+ /**
207
+ * Whether to show close button
208
+ */
209
+ showClose?: boolean;
210
+ /**
211
+ * Whether clicking outside closes modal
212
+ */
213
+ closeOnClickOutside?: boolean;
214
+ /**
215
+ * Custom CSS classes
216
+ */
217
+ className?: string;
218
+ }
219
+ export interface AlertType {
220
+ /**
221
+ * Alert theme/variant
222
+ */
223
+ theme?: 'info' | 'success' | 'warning' | 'error';
224
+ /**
225
+ * Alert title
226
+ */
227
+ title?: string;
228
+ /**
229
+ * Alert message
230
+ */
231
+ message: string;
232
+ /**
233
+ * Whether alert can be dismissed
234
+ */
235
+ dismissible?: boolean;
236
+ /**
237
+ * Custom CSS classes
238
+ */
239
+ className?: string;
240
+ /**
241
+ * Whether to show icon
242
+ */
243
+ showIcon?: boolean;
244
+ }
245
+ export interface BadgeType {
246
+ /**
247
+ * Badge theme/variant
248
+ */
249
+ theme?: Theme;
250
+ /**
251
+ * Badge size
252
+ */
253
+ size?: Size;
254
+ /**
255
+ * Badge text
256
+ */
257
+ text: string;
258
+ /**
259
+ * Whether badge is removable
260
+ */
261
+ removable?: boolean;
262
+ /**
263
+ * Custom CSS classes
264
+ */
265
+ className?: string;
266
+ /**
267
+ * Whether badge is a dot (no text)
268
+ */
269
+ dot?: boolean;
270
+ }
271
+ export interface TabItem {
272
+ id: string | number;
273
+ name: string;
274
+ disabled?: boolean;
275
+ icon?: string;
276
+ badge?: string | number;
277
+ href?: string;
278
+ }
279
+ export interface TabsType {
280
+ /**
281
+ * Tab items
282
+ */
283
+ tabs: TabItem[];
284
+ /**
285
+ * Currently active tab
286
+ */
287
+ activeTab?: string | number;
288
+ /**
289
+ * Tab variant
290
+ */
291
+ variant?: 'pills' | 'underline' | 'bordered';
292
+ /**
293
+ * Tab size
294
+ */
295
+ size?: Size;
296
+ /**
297
+ * Custom CSS classes
298
+ */
299
+ className?: string;
300
+ }
301
+ export interface AvatarType {
302
+ /**
303
+ * Avatar size
304
+ */
305
+ size?: Size;
306
+ /**
307
+ * Image source URL
308
+ */
309
+ src?: string;
310
+ /**
311
+ * Alt text for image
312
+ */
313
+ alt?: string;
314
+ /**
315
+ * Fallback initials
316
+ */
317
+ initials?: string;
318
+ /**
319
+ * Avatar shape
320
+ */
321
+ shape?: 'circle' | 'square';
322
+ /**
323
+ * Custom CSS classes
324
+ */
325
+ className?: string;
326
+ /**
327
+ * Whether to show online indicator
328
+ */
329
+ online?: boolean;
330
+ }
331
+ export interface LoadingType {
332
+ /**
333
+ * Loading theme
334
+ */
335
+ theme?: Theme;
336
+ /**
337
+ * Loading size
338
+ */
339
+ size?: Size;
340
+ /**
341
+ * Loading text
342
+ */
343
+ text?: string;
344
+ /**
345
+ * Whether to show as overlay
346
+ */
347
+ overlay?: boolean;
348
+ /**
349
+ * Custom CSS classes
350
+ */
351
+ className?: string;
352
+ }
353
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/types/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export type ListEvent = {
2
+ id: string | number;
3
+ name: string;
4
+ date: string;
5
+ time: string;
6
+ datetime: string;
7
+ location: string;
8
+ href?: string;
9
+ startTime?: {
10
+ dateTime: string;
11
+ timeZone: string;
12
+ shortTimeZone: string;
13
+ };
14
+ endTime?: {
15
+ dateTime: string;
16
+ timeZone: string;
17
+ shortTimeZone: string;
18
+ };
19
+ geocodeResult?: {
20
+ thumbnailUrl?: string;
21
+ [key: string]: any;
22
+ };
23
+ };
24
+ export type CalendarDay = {
25
+ id?: string | number;
26
+ date: string;
27
+ isCurrentMonth: boolean;
28
+ isToday?: boolean;
29
+ isSelected?: boolean;
30
+ events?: ListEvent[];
31
+ shortDay?: string;
32
+ longDay?: string;
33
+ day?: number;
34
+ };
35
+ export interface Month {
36
+ name: string;
37
+ days: Array<CalendarDay>;
38
+ }
39
+ export declare function generateDays(monthDate: Date, weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6): CalendarDay[];
40
+ export declare const generateMonthDays: typeof generateDays;
41
+ export declare function generateWeekDays(weekDate: Date, weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6): CalendarDay[];
42
+ export declare function generateYearDays(yearDate: Date, weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6): Month[];
43
+ export declare function formatEventDate(dateStr: string): string;
44
+ export declare function calculateGridRow(datetime: string): number;
45
+ export declare const calculateGridSpan: (startDateTime?: string, endDateTime?: string) => number;
46
+ export declare const formatTime: (datetime: string) => string;
47
+ export type CalendarView = 'month' | 'week';
48
+ export declare const calculateColStart: (day: string, view?: CalendarView) => number;
49
+ export declare function updateSelectedDay(days: CalendarDay[], selectedDay: CalendarDay): CalendarDay[];
50
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/utils/calendar.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,aAAa,CAAC,EAAE;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,GAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAK,GAAG,WAAW,EAAE,CAuBxG;AAED,eAAO,MAAM,iBAAiB,qBAAe,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAK,GAAG,WAAW,EAAE,CAmB3G;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAK,GAAG,KAAK,EAAE,CASrG;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,UAMhD;AAED,eAAO,MAAM,iBAAiB,mBAAoB,MAAM,gBAAgB,MAAM,WAO7E,CAAC;AAEF,eAAO,MAAM,UAAU,aAAc,MAAM,WAQ1C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5C,eAAO,MAAM,iBAAiB,QAAS,MAAM,SAAQ,YAAY,KAAa,MA4B7E,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,CAE9F"}
@@ -0,0 +1,48 @@
1
+ import { Component } from 'vue';
2
+ import { ComponentMap } from '../types/form';
3
+
4
+ /**
5
+ * Default component map for dynamic forms
6
+ */
7
+ export declare const defaultComponentMap: ComponentMap;
8
+ /**
9
+ * Component registry class for managing dynamic form components
10
+ */
11
+ export declare class ComponentRegistry {
12
+ private componentMap;
13
+ private loadedComponents;
14
+ /**
15
+ * Register a new component type
16
+ */
17
+ register(type: string, component: string, loader: () => Promise<any>): void;
18
+ /**
19
+ * Get a component for a field type
20
+ */
21
+ getComponent(type: string): Component | null;
22
+ /**
23
+ * Check if a component type is registered
24
+ */
25
+ hasComponent(type: string): boolean;
26
+ /**
27
+ * Get all registered component types
28
+ */
29
+ getRegisteredTypes(): string[];
30
+ /**
31
+ * Unregister a component type
32
+ */
33
+ unregister(type: string): void;
34
+ /**
35
+ * Clear all cached components
36
+ */
37
+ clearCache(): void;
38
+ }
39
+ export declare const componentRegistry: ComponentRegistry;
40
+ /**
41
+ * Register a component type globally
42
+ */
43
+ export declare function registerComponent(type: string, component: string, loader: () => Promise<any>): void;
44
+ /**
45
+ * Get a component for a field type
46
+ */
47
+ export declare function getComponent(type: string): Component | null;
48
+ //# sourceMappingURL=component-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-registry.d.ts","sourceRoot":"","sources":["../../../src/utils/component-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,KAAK,CAAA;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YA6CjC,CAAA;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,gBAAgB,CAAoC;IAE5D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAM3E;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAsB5C;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB;AAGD,eAAO,MAAM,iBAAiB,mBAA0B,CAAA;AAExD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAEnG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE3D"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generate a unique ID with an optional prefix
3
+ */
4
+ export declare function generateId(prefix?: string): string;
5
+ /**
6
+ * Generate a deterministic ID based on a seed string
7
+ */
8
+ export declare function generateDeterministicId(seed: string, prefix?: string): string;
9
+ /**
10
+ * Sanitize a string to be used as a valid HTML ID
11
+ */
12
+ export declare function sanitizeId(id: string): string;
13
+ //# sourceMappingURL=id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,SAAO,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAO,GAAG,MAAM,CAS3E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM7C"}
@@ -0,0 +1,4 @@
1
+ export * from './calendar';
2
+ export * from './component-registry';
3
+ export * from './id';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,MAAM,CAAC"}
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ .error-message[data-v-23518b3b],.success-message[data-v-23518b3b],.disabled-message[data-v-23518b3b],.error-message[data-v-4e60cc4a],.disabled-message[data-v-4e60cc4a]{min-height:1.4em}input[data-v-4e60cc4a]:disabled{color:#9ca3af;background-color:#f3f4f6}.loader-dots[data-v-8f791736]{display:block;position:relative;width:5rem;height:1.25rem;margin-top:.5rem;max-width:20rem}.dots-div[data-v-8f791736]{position:absolute;top:0;margin-top:.25rem;border-radius:9999999px;animation-timing-function:cubic-bezier(0,1,1,0)}.loader-dots div[data-v-8f791736]{animation-timing-function:cubic-bezier(0,1,1,0)}.loader-dots div[data-v-8f791736]:nth-child(1){left:8px;animation:loader-dots1-8f791736 .6s infinite}.loader-dots div[data-v-8f791736]:nth-child(2){left:8px;animation:loader-dots2-8f791736 .6s infinite}.loader-dots div[data-v-8f791736]:nth-child(3){left:32px;animation:loader-dots2-8f791736 .6s infinite}.loader-dots div[data-v-8f791736]:nth-child(4){left:56px;animation:loader-dots3-8f791736 .6s infinite}@keyframes loader-dots1-8f791736{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes loader-dots3-8f791736{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes loader-dots2-8f791736{0%{transform:translate(0)}to{transform:translate(24px)}}.dots-sm .dots-div[data-v-8f791736]{width:.5rem;height:.5rem}.dots-md .dots-div[data-v-8f791736]{width:.75rem;height:.75rem}.dots-lg .dots-div[data-v-8f791736]{width:1rem;height:1rem}.dots-xl .dots-div[data-v-8f791736]{width:1.25rem;height:1.25rem}@media (max-width: 1024px){.lg\:sl-col-start-7[data-v-d92b7279]{grid-column-start:1}.lg\:sl-col-end-13[data-v-d92b7279]{grid-column-end:13}.lg\:sl-col-span-6[data-v-d92b7279]{grid-column:span 12 / span 12}.xl\:sl-col-start-8[data-v-d92b7279]{grid-column-start:1}.xl\:sl-col-end-13[data-v-d92b7279]{grid-column-end:13}.xl\:sl-col-span-6[data-v-d92b7279]{grid-column:span 12 / span 12}}
package/package.json ADDED
@@ -0,0 +1,143 @@
1
+ {
2
+ "name": "@stachelock/ui",
3
+ "version": "0.1.0",
4
+ "description": "A tree-shakeable Vue 3 TypeScript UI component library built with Tailwind CSS",
5
+ "type": "module",
6
+ "main": "./dist/index.umd.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "require": "./dist/index.umd.cjs",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./style.css": "./dist/style.css",
16
+ "./tailwind.config.js": "./dist/tailwind.config.js",
17
+ "./components/*": {
18
+ "import": "./dist/components/*.js",
19
+ "types": "./dist/components/*.d.ts"
20
+ },
21
+ "./layouts/*": {
22
+ "import": "./dist/layouts/*.js",
23
+ "types": "./dist/components/layouts/*.d.ts"
24
+ },
25
+ "./inputs/*": {
26
+ "import": "./dist/inputs/*.js",
27
+ "types": "./dist/components/inputs/*.d.ts"
28
+ },
29
+ "./calendars/*": {
30
+ "import": "./dist/calendars/*.js",
31
+ "types": "./dist/components/calendars/*.d.ts"
32
+ },
33
+ "./forms/*": {
34
+ "import": "./dist/forms/*.js",
35
+ "types": "./dist/components/forms/*.d.ts"
36
+ }
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "tailwind.config.js",
41
+ "README.md"
42
+ ],
43
+ "scripts": {
44
+ "dev": "vite",
45
+ "build": "vite build",
46
+ "build:watch": "vite build --watch",
47
+ "preview": "vite preview",
48
+ "test": "vitest",
49
+ "test:ui": "vitest --ui",
50
+ "test:coverage": "vitest --coverage",
51
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
52
+ "lint:check": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
53
+ "type-check": "vue-tsc --noEmit",
54
+ "storybook": "storybook dev -p 6006",
55
+ "build-storybook": "storybook build",
56
+ "prepublishOnly": "npm run build",
57
+ "prepack": "npm run build",
58
+ "postpack": "rm -rf dist",
59
+ "generate-indexes": "node scripts/generateRecursiveIndex.cjs",
60
+ "prebuild": "npm run generate-indexes"
61
+ },
62
+ "keywords": [
63
+ "vue",
64
+ "vue3",
65
+ "typescript",
66
+ "ui-library",
67
+ "tailwind",
68
+ "components",
69
+ "headless-ui",
70
+ "tree-shaking"
71
+ ],
72
+ "author": "Stachelock",
73
+ "license": "MIT",
74
+ "repository": {
75
+ "type": "git",
76
+ "url": "git+https://github.com/stachelock/ui.git"
77
+ },
78
+ "bugs": {
79
+ "url": "https://github.com/stachelock/ui/issues"
80
+ },
81
+ "homepage": "https://github.com/stachelock/ui#readme",
82
+ "peerDependencies": {
83
+ "tailwindcss": "^3.4.0",
84
+ "vue": "^3.3.0"
85
+ },
86
+ "dependencies": {
87
+ "@headlessui/vue": "^1.7.16",
88
+ "@heroicons/vue": "^2.0.18",
89
+ "@tanstack/table-core": "^8.20.5",
90
+ "@tanstack/vue-table": "^8.20.5",
91
+ "@vueuse/core": "^10.11.0",
92
+ "date-fns": "^3.6.0",
93
+ "dayjs": "^1.11.11",
94
+ "lodash-es": "^4.17.21",
95
+ "vee-validate": "^4.11.2",
96
+ "vue-router": "^4.5.1",
97
+ "vue3-observe-visibility": "^1.0.0-alpha.1",
98
+ "yup": "^1.2.0"
99
+ },
100
+ "devDependencies": {
101
+ "@rushstack/eslint-patch": "^1.3.3",
102
+ "@storybook/addon-docs": "^7.6.10",
103
+ "@storybook/addon-essentials": "^7.6.10",
104
+ "@storybook/addon-interactions": "^7.6.10",
105
+ "@storybook/addon-links": "^7.6.10",
106
+ "@storybook/blocks": "^7.6.10",
107
+ "@storybook/testing-library": "^0.2.2",
108
+ "@storybook/vue3": "^7.6.10",
109
+ "@storybook/vue3-vite": "^7.6.10",
110
+ "@tailwindcss/forms": "^0.5.7",
111
+ "@tailwindcss/typography": "^0.5.10",
112
+ "@testing-library/vue": "^8.0.1",
113
+ "@tsconfig/node18": "^18.2.2",
114
+ "@types/lodash-es": "^4.17.12",
115
+ "@types/node": "^18.19.3",
116
+ "@vitejs/plugin-vue": "^5.2.1",
117
+ "@vitest/coverage-v8": "^1.0.0",
118
+ "@vitest/ui": "^1.0.0",
119
+ "@vue/eslint-config-typescript": "^12.0.0",
120
+ "@vue/test-utils": "^2.4.3",
121
+ "@vue/tsconfig": "^0.5.0",
122
+ "autoprefixer": "^10.4.16",
123
+ "eslint": "^8.49.0",
124
+ "eslint-plugin-storybook": "^0.6.15",
125
+ "eslint-plugin-vue": "^9.17.0",
126
+ "jsdom": "^26.1.0",
127
+ "postcss": "^8.4.32",
128
+ "storybook": "^7.6.10",
129
+ "tailwindcss": "^3.4.17",
130
+ "typescript": "~5.3.0",
131
+ "vite": "^5.4.19",
132
+ "vite-plugin-dts": "^3.6.4",
133
+ "vitest": "^1.0.0",
134
+ "vue": "^3.5.18",
135
+ "vue-tsc": "^2.0.29"
136
+ },
137
+ "sideEffects": [
138
+ "*.css",
139
+ "*.scss",
140
+ "**/*.css",
141
+ "**/*.scss"
142
+ ]
143
+ }