@mihcm/ai-ui 0.14.1

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 (166) hide show
  1. package/README.md +100 -0
  2. package/dist/coverage.d.ts +17 -0
  3. package/dist/coverage.d.ts.map +1 -0
  4. package/dist/coverage.js +320 -0
  5. package/dist/coverage.js.map +1 -0
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +5 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/renderer.d.ts +36 -0
  11. package/dist/renderer.d.ts.map +1 -0
  12. package/dist/renderer.js +413 -0
  13. package/dist/renderer.js.map +1 -0
  14. package/dist/schemas/Accordion.d.ts +25 -0
  15. package/dist/schemas/Accordion.d.ts.map +1 -0
  16. package/dist/schemas/Accordion.js +26 -0
  17. package/dist/schemas/Accordion.js.map +1 -0
  18. package/dist/schemas/Alert.d.ts +24 -0
  19. package/dist/schemas/Alert.d.ts.map +1 -0
  20. package/dist/schemas/Alert.js +20 -0
  21. package/dist/schemas/Alert.js.map +1 -0
  22. package/dist/schemas/AlertDialog.d.ts +29 -0
  23. package/dist/schemas/AlertDialog.d.ts.map +1 -0
  24. package/dist/schemas/AlertDialog.js +22 -0
  25. package/dist/schemas/AlertDialog.js.map +1 -0
  26. package/dist/schemas/Avatar.d.ts +29 -0
  27. package/dist/schemas/Avatar.d.ts.map +1 -0
  28. package/dist/schemas/Avatar.js +21 -0
  29. package/dist/schemas/Avatar.js.map +1 -0
  30. package/dist/schemas/AvatarGroup.d.ts +22 -0
  31. package/dist/schemas/AvatarGroup.d.ts.map +1 -0
  32. package/dist/schemas/AvatarGroup.js +23 -0
  33. package/dist/schemas/AvatarGroup.js.map +1 -0
  34. package/dist/schemas/Badge.d.ts +23 -0
  35. package/dist/schemas/Badge.d.ts.map +1 -0
  36. package/dist/schemas/Badge.js +19 -0
  37. package/dist/schemas/Badge.js.map +1 -0
  38. package/dist/schemas/Banner.d.ts +23 -0
  39. package/dist/schemas/Banner.d.ts.map +1 -0
  40. package/dist/schemas/Banner.js +20 -0
  41. package/dist/schemas/Banner.js.map +1 -0
  42. package/dist/schemas/Breadcrumb.d.ts +20 -0
  43. package/dist/schemas/Breadcrumb.d.ts.map +1 -0
  44. package/dist/schemas/Breadcrumb.js +25 -0
  45. package/dist/schemas/Breadcrumb.js.map +1 -0
  46. package/dist/schemas/Button.d.ts +40 -0
  47. package/dist/schemas/Button.d.ts.map +1 -0
  48. package/dist/schemas/Button.js +26 -0
  49. package/dist/schemas/Button.js.map +1 -0
  50. package/dist/schemas/Card.d.ts +21 -0
  51. package/dist/schemas/Card.d.ts.map +1 -0
  52. package/dist/schemas/Card.js +22 -0
  53. package/dist/schemas/Card.js.map +1 -0
  54. package/dist/schemas/Checkbox.d.ts +18 -0
  55. package/dist/schemas/Checkbox.d.ts.map +1 -0
  56. package/dist/schemas/Checkbox.js +19 -0
  57. package/dist/schemas/Checkbox.js.map +1 -0
  58. package/dist/schemas/Dialog.d.ts +24 -0
  59. package/dist/schemas/Dialog.d.ts.map +1 -0
  60. package/dist/schemas/Dialog.js +20 -0
  61. package/dist/schemas/Dialog.js.map +1 -0
  62. package/dist/schemas/DropdownMenu.d.ts +25 -0
  63. package/dist/schemas/DropdownMenu.d.ts.map +1 -0
  64. package/dist/schemas/DropdownMenu.js +29 -0
  65. package/dist/schemas/DropdownMenu.js.map +1 -0
  66. package/dist/schemas/EmptyState.d.ts +16 -0
  67. package/dist/schemas/EmptyState.d.ts.map +1 -0
  68. package/dist/schemas/EmptyState.js +17 -0
  69. package/dist/schemas/EmptyState.js.map +1 -0
  70. package/dist/schemas/Input.d.ts +42 -0
  71. package/dist/schemas/Input.d.ts.map +1 -0
  72. package/dist/schemas/Input.js +31 -0
  73. package/dist/schemas/Input.js.map +1 -0
  74. package/dist/schemas/Label.d.ts +24 -0
  75. package/dist/schemas/Label.d.ts.map +1 -0
  76. package/dist/schemas/Label.js +21 -0
  77. package/dist/schemas/Label.js.map +1 -0
  78. package/dist/schemas/Link.d.ts +30 -0
  79. package/dist/schemas/Link.d.ts.map +1 -0
  80. package/dist/schemas/Link.js +22 -0
  81. package/dist/schemas/Link.js.map +1 -0
  82. package/dist/schemas/Pagination.d.ts +19 -0
  83. package/dist/schemas/Pagination.d.ts.map +1 -0
  84. package/dist/schemas/Pagination.js +20 -0
  85. package/dist/schemas/Pagination.js.map +1 -0
  86. package/dist/schemas/Progress.d.ts +27 -0
  87. package/dist/schemas/Progress.d.ts.map +1 -0
  88. package/dist/schemas/Progress.js +20 -0
  89. package/dist/schemas/Progress.js.map +1 -0
  90. package/dist/schemas/RadioGroup.d.ts +25 -0
  91. package/dist/schemas/RadioGroup.d.ts.map +1 -0
  92. package/dist/schemas/RadioGroup.js +26 -0
  93. package/dist/schemas/RadioGroup.js.map +1 -0
  94. package/dist/schemas/SectionHeader.d.ts +160 -0
  95. package/dist/schemas/SectionHeader.d.ts.map +1 -0
  96. package/dist/schemas/SectionHeader.js +52 -0
  97. package/dist/schemas/SectionHeader.js.map +1 -0
  98. package/dist/schemas/Select.d.ts +38 -0
  99. package/dist/schemas/Select.d.ts.map +1 -0
  100. package/dist/schemas/Select.js +36 -0
  101. package/dist/schemas/Select.js.map +1 -0
  102. package/dist/schemas/Separator.d.ts +16 -0
  103. package/dist/schemas/Separator.d.ts.map +1 -0
  104. package/dist/schemas/Separator.js +14 -0
  105. package/dist/schemas/Separator.js.map +1 -0
  106. package/dist/schemas/Sheet.d.ts +28 -0
  107. package/dist/schemas/Sheet.d.ts.map +1 -0
  108. package/dist/schemas/Sheet.js +20 -0
  109. package/dist/schemas/Sheet.js.map +1 -0
  110. package/dist/schemas/Stack.d.ts +58 -0
  111. package/dist/schemas/Stack.d.ts.map +1 -0
  112. package/dist/schemas/Stack.js +80 -0
  113. package/dist/schemas/Stack.js.map +1 -0
  114. package/dist/schemas/StatCard.d.ts +30 -0
  115. package/dist/schemas/StatCard.d.ts.map +1 -0
  116. package/dist/schemas/StatCard.js +26 -0
  117. package/dist/schemas/StatCard.js.map +1 -0
  118. package/dist/schemas/StatusBadge.d.ts +25 -0
  119. package/dist/schemas/StatusBadge.d.ts.map +1 -0
  120. package/dist/schemas/StatusBadge.js +20 -0
  121. package/dist/schemas/StatusBadge.js.map +1 -0
  122. package/dist/schemas/Switch.d.ts +23 -0
  123. package/dist/schemas/Switch.d.ts.map +1 -0
  124. package/dist/schemas/Switch.js +20 -0
  125. package/dist/schemas/Switch.js.map +1 -0
  126. package/dist/schemas/Table.d.ts +20 -0
  127. package/dist/schemas/Table.d.ts.map +1 -0
  128. package/dist/schemas/Table.js +24 -0
  129. package/dist/schemas/Table.js.map +1 -0
  130. package/dist/schemas/Tabs.d.ts +21 -0
  131. package/dist/schemas/Tabs.d.ts.map +1 -0
  132. package/dist/schemas/Tabs.js +25 -0
  133. package/dist/schemas/Tabs.js.map +1 -0
  134. package/dist/schemas/Tag.d.ts +29 -0
  135. package/dist/schemas/Tag.d.ts.map +1 -0
  136. package/dist/schemas/Tag.js +21 -0
  137. package/dist/schemas/Tag.js.map +1 -0
  138. package/dist/schemas/Text.d.ts +51 -0
  139. package/dist/schemas/Text.d.ts.map +1 -0
  140. package/dist/schemas/Text.js +21 -0
  141. package/dist/schemas/Text.js.map +1 -0
  142. package/dist/schemas/Textarea.d.ts +25 -0
  143. package/dist/schemas/Textarea.d.ts.map +1 -0
  144. package/dist/schemas/Textarea.js +24 -0
  145. package/dist/schemas/Textarea.js.map +1 -0
  146. package/dist/schemas/TitleBar.d.ts +18 -0
  147. package/dist/schemas/TitleBar.d.ts.map +1 -0
  148. package/dist/schemas/TitleBar.js +19 -0
  149. package/dist/schemas/TitleBar.js.map +1 -0
  150. package/dist/schemas/Toggle.d.ts +28 -0
  151. package/dist/schemas/Toggle.d.ts.map +1 -0
  152. package/dist/schemas/Toggle.js +22 -0
  153. package/dist/schemas/Toggle.js.map +1 -0
  154. package/dist/schemas/index.d.ts +694 -0
  155. package/dist/schemas/index.d.ts.map +1 -0
  156. package/dist/schemas/index.js +160 -0
  157. package/dist/schemas/index.js.map +1 -0
  158. package/dist/schemas/shared.d.ts +4 -0
  159. package/dist/schemas/shared.d.ts.map +1 -0
  160. package/dist/schemas/shared.js +23 -0
  161. package/dist/schemas/shared.js.map +1 -0
  162. package/dist/tools.d.ts +1293 -0
  163. package/dist/tools.d.ts.map +1 -0
  164. package/dist/tools.js +40 -0
  165. package/dist/tools.js.map +1 -0
  166. package/package.json +59 -0
@@ -0,0 +1,160 @@
1
+ import { z } from 'zod';
2
+ import { accordionDescriptorSchema } from './Accordion.js';
3
+ import { alertDialogDescriptorSchema } from './AlertDialog.js';
4
+ import { alertDescriptorSchema } from './Alert.js';
5
+ import { avatarDescriptorSchema } from './Avatar.js';
6
+ import { avatarGroupDescriptorSchema } from './AvatarGroup.js';
7
+ import { badgeDescriptorSchema } from './Badge.js';
8
+ import { bannerDescriptorSchema } from './Banner.js';
9
+ import { breadcrumbDescriptorSchema } from './Breadcrumb.js';
10
+ import { buttonDescriptorSchema } from './Button.js';
11
+ import { cardDescriptorSchema } from './Card.js';
12
+ import { checkboxDescriptorSchema } from './Checkbox.js';
13
+ import { dialogDescriptorSchema } from './Dialog.js';
14
+ import { dropdownMenuDescriptorSchema } from './DropdownMenu.js';
15
+ import { emptyStateDescriptorSchema } from './EmptyState.js';
16
+ import { inputDescriptorSchema } from './Input.js';
17
+ import { labelDescriptorSchema } from './Label.js';
18
+ import { linkDescriptorSchema } from './Link.js';
19
+ import { paginationDescriptorSchema } from './Pagination.js';
20
+ import { radioGroupDescriptorSchema } from './RadioGroup.js';
21
+ import { sectionHeaderDescriptorSchema } from './SectionHeader.js';
22
+ import { selectDescriptorSchema } from './Select.js';
23
+ import { progressDescriptorSchema } from './Progress.js';
24
+ import { separatorDescriptorSchema } from './Separator.js';
25
+ import { sheetDescriptorSchema } from './Sheet.js';
26
+ import { stackDescriptorSchema } from './Stack.js';
27
+ import { statCardDescriptorSchema } from './StatCard.js';
28
+ import { statusBadgeDescriptorSchema } from './StatusBadge.js';
29
+ import { switchDescriptorSchema } from './Switch.js';
30
+ import { tableDescriptorSchema } from './Table.js';
31
+ import { tagDescriptorSchema } from './Tag.js';
32
+ import { tabsDescriptorSchema } from './Tabs.js';
33
+ import { textDescriptorSchema } from './Text.js';
34
+ import { textareaDescriptorSchema } from './Textarea.js';
35
+ import { titleBarDescriptorSchema } from './TitleBar.js';
36
+ import { toggleDescriptorSchema } from './Toggle.js';
37
+ export { accordionDescriptorSchema, } from './Accordion.js';
38
+ export { alertDescriptorSchema } from './Alert.js';
39
+ export { alertDialogDescriptorSchema, } from './AlertDialog.js';
40
+ export { avatarDescriptorSchema } from './Avatar.js';
41
+ export { avatarGroupDescriptorSchema } from './AvatarGroup.js';
42
+ export { badgeDescriptorSchema } from './Badge.js';
43
+ export { bannerDescriptorSchema } from './Banner.js';
44
+ export { breadcrumbDescriptorSchema, } from './Breadcrumb.js';
45
+ export { buttonDescriptorSchema } from './Button.js';
46
+ export { cardDescriptorSchema } from './Card.js';
47
+ export { checkboxDescriptorSchema } from './Checkbox.js';
48
+ export { dialogDescriptorSchema } from './Dialog.js';
49
+ export { dropdownMenuDescriptorSchema, } from './DropdownMenu.js';
50
+ export { emptyStateDescriptorSchema } from './EmptyState.js';
51
+ export { inputDescriptorSchema } from './Input.js';
52
+ export { labelDescriptorSchema } from './Label.js';
53
+ export { linkDescriptorSchema } from './Link.js';
54
+ export { paginationDescriptorSchema, } from './Pagination.js';
55
+ export { radioGroupDescriptorSchema, } from './RadioGroup.js';
56
+ export { sectionHeaderDescriptorSchema, } from './SectionHeader.js';
57
+ export { progressDescriptorSchema, } from './Progress.js';
58
+ export { selectDescriptorSchema } from './Select.js';
59
+ export { separatorDescriptorSchema } from './Separator.js';
60
+ export { sheetDescriptorSchema } from './Sheet.js';
61
+ export { stackDescriptorSchema } from './Stack.js';
62
+ export { statCardDescriptorSchema } from './StatCard.js';
63
+ export { statusBadgeDescriptorSchema, } from './StatusBadge.js';
64
+ export { switchDescriptorSchema } from './Switch.js';
65
+ export { tableDescriptorSchema } from './Table.js';
66
+ export { tagDescriptorSchema } from './Tag.js';
67
+ export { tabsDescriptorSchema } from './Tabs.js';
68
+ export { textDescriptorSchema } from './Text.js';
69
+ export { textareaDescriptorSchema } from './Textarea.js';
70
+ export { titleBarDescriptorSchema } from './TitleBar.js';
71
+ export { toggleDescriptorSchema } from './Toggle.js';
72
+ /**
73
+ * The single union of every descriptor a model is allowed to produce.
74
+ *
75
+ * Adding a primitive? Add its schema here AND in the renderer's switch
76
+ * AND in `ALLOWED_COMPONENTS` below.
77
+ *
78
+ * Note: `z.union` over `z.discriminatedUnion` because Stack is recursive
79
+ * (z.lazy), which discriminatedUnion doesn't accept. The runtime difference
80
+ * is negligible at our schema sizes.
81
+ */
82
+ export const componentDescriptorSchema = z.union([
83
+ accordionDescriptorSchema,
84
+ alertDescriptorSchema,
85
+ alertDialogDescriptorSchema,
86
+ avatarDescriptorSchema,
87
+ avatarGroupDescriptorSchema,
88
+ badgeDescriptorSchema,
89
+ bannerDescriptorSchema,
90
+ breadcrumbDescriptorSchema,
91
+ buttonDescriptorSchema,
92
+ cardDescriptorSchema,
93
+ checkboxDescriptorSchema,
94
+ dialogDescriptorSchema,
95
+ dropdownMenuDescriptorSchema,
96
+ emptyStateDescriptorSchema,
97
+ inputDescriptorSchema,
98
+ labelDescriptorSchema,
99
+ linkDescriptorSchema,
100
+ paginationDescriptorSchema,
101
+ radioGroupDescriptorSchema,
102
+ sectionHeaderDescriptorSchema,
103
+ selectDescriptorSchema,
104
+ progressDescriptorSchema,
105
+ separatorDescriptorSchema,
106
+ sheetDescriptorSchema,
107
+ stackDescriptorSchema,
108
+ statCardDescriptorSchema,
109
+ statusBadgeDescriptorSchema,
110
+ switchDescriptorSchema,
111
+ tableDescriptorSchema,
112
+ tagDescriptorSchema,
113
+ tabsDescriptorSchema,
114
+ textDescriptorSchema,
115
+ textareaDescriptorSchema,
116
+ titleBarDescriptorSchema,
117
+ toggleDescriptorSchema,
118
+ ]);
119
+ /**
120
+ * Allowlist used by the renderer. Names that don't appear here are rejected
121
+ * even if Zod somehow accepts them (defense in depth — AI-UI-02).
122
+ */
123
+ export const ALLOWED_COMPONENTS = [
124
+ 'Accordion',
125
+ 'Alert',
126
+ 'AlertDialog',
127
+ 'Avatar',
128
+ 'AvatarGroup',
129
+ 'Badge',
130
+ 'Banner',
131
+ 'Breadcrumb',
132
+ 'Button',
133
+ 'Card',
134
+ 'Checkbox',
135
+ 'Dialog',
136
+ 'DropdownMenu',
137
+ 'EmptyState',
138
+ 'Input',
139
+ 'Label',
140
+ 'Link',
141
+ 'Pagination',
142
+ 'Progress',
143
+ 'RadioGroup',
144
+ 'SectionHeader',
145
+ 'Select',
146
+ 'Separator',
147
+ 'Sheet',
148
+ 'Stack',
149
+ 'StatCard',
150
+ 'StatusBadge',
151
+ 'Switch',
152
+ 'Table',
153
+ 'Tag',
154
+ 'Tabs',
155
+ 'Text',
156
+ 'Textarea',
157
+ 'TitleBar',
158
+ 'Toggle',
159
+ ];
160
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const safeImageUrlSchema: z.ZodString;
3
+ export declare const safeHrefSchema: z.ZodString;
4
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/schemas/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,kBAAkB,aAK3B,CAAC;AAEL,eAAO,MAAM,cAAc,aAWzB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ const HTTPS_PROTOCOL = 'https:';
3
+ export const safeImageUrlSchema = z
4
+ .string()
5
+ .url()
6
+ .refine((value) => new URL(value).protocol === HTTPS_PROTOCOL, {
7
+ message: 'Image URLs must use https.',
8
+ });
9
+ export const safeHrefSchema = z.string().max(500).refine((value) => {
10
+ if (value.startsWith('/') && !value.startsWith('//'))
11
+ return true;
12
+ if (value.startsWith('#'))
13
+ return true;
14
+ try {
15
+ return new URL(value).protocol === HTTPS_PROTOCOL;
16
+ }
17
+ catch {
18
+ return false;
19
+ }
20
+ }, {
21
+ message: 'Href must be a relative path, hash, or https URL.',
22
+ });
23
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/schemas/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEhC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,EAAE;KACR,GAAG,EAAE;KACL,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,cAAc,EAAE;IAC7D,OAAO,EAAE,4BAA4B;CACtC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IACjE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EAAE;IACD,OAAO,EAAE,mDAAmD;CAC7D,CAAC,CAAC"}