@stacksjs/components 0.2.3

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 (342) hide show
  1. package/README.md +477 -0
  2. package/dist/Accordion-x2gjedap.stx +108 -0
  3. package/dist/Audio-0fk6p9tn.stx +50 -0
  4. package/dist/Avatar-5m0v0s4x.stx +88 -0
  5. package/dist/Badge-ynes82vv.stx +70 -0
  6. package/dist/Breadcrumb-h9n427sk.stx +79 -0
  7. package/dist/Button-7xtrzn14.stx +89 -0
  8. package/dist/Calendar-egvx1pma.stx +232 -0
  9. package/dist/Card-r9w7vy1a.stx +74 -0
  10. package/dist/Checkbox-m8v46pmx.stx +92 -0
  11. package/dist/Checkout-vcnnr176.stx +39 -0
  12. package/dist/CodeBlock-mwex82cm.stx +57 -0
  13. package/dist/Combobox-npb08vkp.stx +13 -0
  14. package/dist/ComboboxButton-vcdyq4zw.stx +13 -0
  15. package/dist/ComboboxInput-c9d2p02m.stx +25 -0
  16. package/dist/ComboboxOption-7d0h9ash.stx +52 -0
  17. package/dist/ComboboxOptions-4dtqc0qa.stx +12 -0
  18. package/dist/CommandPalette-ah00bf8v.stx +39 -0
  19. package/dist/CommandPaletteItem-2yx0gvtj.stx +32 -0
  20. package/dist/DefaultPaymentMethod-emw5fg8s.stx +62 -0
  21. package/dist/Dialog-1w4rz7x0.stx +19 -0
  22. package/dist/DialogBackdrop-qbm3y5ab.stx +9 -0
  23. package/dist/DialogDescription-01w5j74b.stx +11 -0
  24. package/dist/DialogPanel-brsszrrs.stx +16 -0
  25. package/dist/DialogTitle-3rxhwg21.stx +11 -0
  26. package/dist/Drawer-yfaz8q7f.stx +137 -0
  27. package/dist/Dropdown-ng7nx556.stx +24 -0
  28. package/dist/DropdownButton-vc4zpyrb.stx +23 -0
  29. package/dist/DropdownItem-z491y23c.stx +43 -0
  30. package/dist/DropdownItems-7ykf29sj.stx +18 -0
  31. package/dist/EmailInput-bfshpj92.stx +41 -0
  32. package/dist/Footer-xdaf02nr.stx +66 -0
  33. package/dist/Form-z4f7w6r1.stx +209 -0
  34. package/dist/Hero-9vvp7pxf.stx +25 -0
  35. package/dist/Image-ktk0451c.stx +197 -0
  36. package/dist/Installation-33bj4rm7.stx +39 -0
  37. package/dist/Listbox-xcejcmyc.stx +14 -0
  38. package/dist/ListboxButton-nx5kmw19.stx +17 -0
  39. package/dist/ListboxLabel-aky8a73n.stx +11 -0
  40. package/dist/ListboxOption-6h4hsdz5.stx +57 -0
  41. package/dist/ListboxOptions-2sacdtm5.stx +16 -0
  42. package/dist/Login-s2jkvd9y.stx +163 -0
  43. package/dist/Navigator-tqqdgdkw.stx +138 -0
  44. package/dist/Notification-sry8egea.stx +71 -0
  45. package/dist/NumberInput-zm93ddfw.stx +138 -0
  46. package/dist/Pagination-yza9v4qw.stx +183 -0
  47. package/dist/PasswordInput-4xnndp5y.stx +155 -0
  48. package/dist/PaymentMethods-jxba6kek.stx +113 -0
  49. package/dist/Popover-scbqatjq.stx +24 -0
  50. package/dist/PopoverButton-rbxhzj4k.stx +23 -0
  51. package/dist/PopoverPanel-9ng1rm6e.stx +23 -0
  52. package/dist/Portal-j111yvqp.stx +74 -0
  53. package/dist/Progress-gbmw3akr.stx +142 -0
  54. package/dist/Radio-1n9qamv1.stx +81 -0
  55. package/dist/RadioGroup-12dw2vhk.stx +13 -0
  56. package/dist/RadioGroupDescription-bjm3mdht.stx +11 -0
  57. package/dist/RadioGroupLabel-aky8a73n.stx +11 -0
  58. package/dist/RadioGroupOption-9pcxgwmd.stx +51 -0
  59. package/dist/SearchInput-g240e2nq.stx +63 -0
  60. package/dist/Select-p9f94b20.stx +89 -0
  61. package/dist/Sidebar-gwxw8q38.stx +288 -0
  62. package/dist/SidebarFooter-887kxret.stx +95 -0
  63. package/dist/SidebarHeader-qjeyx0hv.stx +100 -0
  64. package/dist/SidebarItem-4dpwtmb4.stx +118 -0
  65. package/dist/SidebarSection-kh92fk4m.stx +108 -0
  66. package/dist/Signup-3nxq5zag.stx +161 -0
  67. package/dist/Skeleton-g0nx1njm.stx +48 -0
  68. package/dist/Spinner-w4zj58xp.stx +109 -0
  69. package/dist/Stepper-rwc5actp.stx +17 -0
  70. package/dist/StepperStep-h0k657nm.stx +53 -0
  71. package/dist/SubscriptionCheckout-4cbxdg7w.stx +353 -0
  72. package/dist/Switch-kjq8qd2p.stx +74 -0
  73. package/dist/Table-59j9qwp0.stx +14 -0
  74. package/dist/TableBody-reka2gwv.stx +10 -0
  75. package/dist/TableCell-j7nh4sgr.stx +10 -0
  76. package/dist/TableHead-ecbrwpqm.stx +10 -0
  77. package/dist/TableHeader-jn2shwsv.stx +13 -0
  78. package/dist/TableRow-xz8rrxhc.stx +11 -0
  79. package/dist/Tabs-kb6ex6m7.stx +145 -0
  80. package/dist/Teleport-819cg9zm.stx +101 -0
  81. package/dist/TextInput-zx9kgr79.stx +146 -0
  82. package/dist/Textarea-5xvmrb0z.stx +119 -0
  83. package/dist/Tooltip-5ehqsy49.stx +76 -0
  84. package/dist/Transition-2j39s044.stx +174 -0
  85. package/dist/TwoFactorChallenge-2q4gg89m.stx +125 -0
  86. package/dist/Video-6aq4shh4.stx +45 -0
  87. package/dist/VirtualList-weh5qtm1.stx +83 -0
  88. package/dist/VirtualTable-59a1eskc.stx +113 -0
  89. package/dist/components/index.d.ts +4 -0
  90. package/dist/composables/index.d.ts +4 -0
  91. package/dist/composables/index.js +3 -0
  92. package/dist/composables/useCopyCode.d.ts +19 -0
  93. package/dist/composables/useDarkMode.d.ts +25 -0
  94. package/dist/composables/useSEO.d.ts +36 -0
  95. package/dist/composables/utilities/index.d.ts +5 -0
  96. package/dist/composables/utilities/useClickOutside.d.ts +28 -0
  97. package/dist/composables/utilities/useFocusTrap.d.ts +34 -0
  98. package/dist/composables/utilities/useKeyboard.d.ts +55 -0
  99. package/dist/composables/utilities/useLocalStorage.d.ts +33 -0
  100. package/dist/composables/utilities/useMediaQuery.d.ts +64 -0
  101. package/dist/index.d.ts +86 -0
  102. package/dist/index.js +19 -0
  103. package/dist/ui/accordion/index.d.ts +12 -0
  104. package/dist/ui/audio/index.d.ts +12 -0
  105. package/dist/ui/auth/index.d.ts +29 -0
  106. package/dist/ui/avatar/index.d.ts +11 -0
  107. package/dist/ui/badge/index.d.ts +9 -0
  108. package/dist/ui/breadcrumb/index.d.ts +13 -0
  109. package/dist/ui/button/index.d.ts +45 -0
  110. package/dist/ui/calendar/index.d.ts +13 -0
  111. package/dist/ui/card/index.d.ts +12 -0
  112. package/dist/ui/checkbox/index.d.ts +15 -0
  113. package/dist/ui/combobox/index.d.ts +35 -0
  114. package/dist/ui/command-palette/index.d.ts +13 -0
  115. package/dist/ui/dialog/index.d.ts +27 -0
  116. package/dist/ui/drawer/index.d.ts +8 -0
  117. package/dist/ui/dropdown/index.d.ts +25 -0
  118. package/dist/ui/form/index.d.ts +48 -0
  119. package/dist/ui/image/index.d.ts +21 -0
  120. package/dist/ui/input/index.d.ts +73 -0
  121. package/dist/ui/listbox/index.d.ts +34 -0
  122. package/dist/ui/navigator/index.d.ts +18 -0
  123. package/dist/ui/notification/index.d.ts +11 -0
  124. package/dist/ui/pagination/index.d.ts +10 -0
  125. package/dist/ui/payment/index.d.ts +53 -0
  126. package/dist/ui/popover/index.d.ts +19 -0
  127. package/dist/ui/portal/index.d.ts +5 -0
  128. package/dist/ui/progress/index.d.ts +11 -0
  129. package/dist/ui/radio/index.d.ts +14 -0
  130. package/dist/ui/radio-group/index.d.ts +26 -0
  131. package/dist/ui/select/index.d.ts +19 -0
  132. package/dist/ui/sidebar/index.d.ts +129 -0
  133. package/dist/ui/skeleton/index.d.ts +10 -0
  134. package/dist/ui/spinner/index.d.ts +8 -0
  135. package/dist/ui/stepper/index.d.ts +17 -0
  136. package/dist/ui/storage/index.d.ts +40 -0
  137. package/dist/ui/switch/index.d.ts +9 -0
  138. package/dist/ui/table/index.d.ts +29 -0
  139. package/dist/ui/tabs/index.d.ts +14 -0
  140. package/dist/ui/teleport/index.d.ts +6 -0
  141. package/dist/ui/textarea/index.d.ts +19 -0
  142. package/dist/ui/tooltip/index.d.ts +9 -0
  143. package/dist/ui/transition/index.d.ts +24 -0
  144. package/dist/ui/video/index.d.ts +15 -0
  145. package/dist/ui/virtual-list/index.d.ts +9 -0
  146. package/dist/ui/virtual-table/index.d.ts +19 -0
  147. package/dist/utils/accessibility.d.ts +285 -0
  148. package/dist/utils/animation/easing.d.ts +112 -0
  149. package/dist/utils/animation/helpers.d.ts +119 -0
  150. package/dist/utils/animation/index.d.ts +3 -0
  151. package/dist/utils/animation/keyframes.d.ts +334 -0
  152. package/dist/utils/error-handling.d.ts +182 -0
  153. package/dist/utils/highlighter.d.ts +27 -0
  154. package/dist/utils/highlighter.js +2 -0
  155. package/dist/utils/i18n.d.ts +245 -0
  156. package/dist/utils/keep-alive.d.ts +171 -0
  157. package/dist/utils/lazy-loading.d.ts +174 -0
  158. package/dist/utils/prop-validation.d.ts +106 -0
  159. package/dist/utils/theme.d.ts +234 -0
  160. package/package.json +69 -0
  161. package/src/components/CodeBlock.stx +57 -0
  162. package/src/components/Footer.stx +66 -0
  163. package/src/components/Hero.stx +25 -0
  164. package/src/components/Installation.stx +39 -0
  165. package/src/components/index.ts +4 -0
  166. package/src/composables/index.ts +4 -0
  167. package/src/composables/useCopyCode.ts +73 -0
  168. package/src/composables/useDarkMode.ts +100 -0
  169. package/src/composables/useSEO.ts +229 -0
  170. package/src/composables/utilities/index.ts +7 -0
  171. package/src/composables/utilities/useClickOutside.ts +72 -0
  172. package/src/composables/utilities/useFocusTrap.ts +159 -0
  173. package/src/composables/utilities/useKeyboard.ts +124 -0
  174. package/src/composables/utilities/useLocalStorage.ts +132 -0
  175. package/src/composables/utilities/useMediaQuery.ts +118 -0
  176. package/src/index.ts +99 -0
  177. package/src/stx.d.ts +4 -0
  178. package/src/ui/accordion/Accordion.stx +108 -0
  179. package/src/ui/accordion/index.ts +14 -0
  180. package/src/ui/audio/Audio.stx +50 -0
  181. package/src/ui/audio/README.md +42 -0
  182. package/src/ui/audio/index.ts +13 -0
  183. package/src/ui/auth/Login.stx +163 -0
  184. package/src/ui/auth/README.md +145 -0
  185. package/src/ui/auth/Signup.stx +161 -0
  186. package/src/ui/auth/TwoFactorChallenge.stx +125 -0
  187. package/src/ui/auth/index.ts +32 -0
  188. package/src/ui/avatar/Avatar.stx +88 -0
  189. package/src/ui/avatar/index.ts +12 -0
  190. package/src/ui/badge/Badge.stx +70 -0
  191. package/src/ui/badge/index.ts +10 -0
  192. package/src/ui/breadcrumb/Breadcrumb.stx +79 -0
  193. package/src/ui/breadcrumb/index.ts +15 -0
  194. package/src/ui/button/Button.stx +89 -0
  195. package/src/ui/button/README.md +100 -0
  196. package/src/ui/button/index.ts +85 -0
  197. package/src/ui/calendar/Calendar.stx +232 -0
  198. package/src/ui/calendar/README.md +254 -0
  199. package/src/ui/calendar/index.ts +14 -0
  200. package/src/ui/card/Card.stx +74 -0
  201. package/src/ui/card/index.ts +13 -0
  202. package/src/ui/checkbox/Checkbox.stx +92 -0
  203. package/src/ui/checkbox/index.ts +16 -0
  204. package/src/ui/combobox/Combobox.stx +13 -0
  205. package/src/ui/combobox/ComboboxButton.stx +13 -0
  206. package/src/ui/combobox/ComboboxInput.stx +25 -0
  207. package/src/ui/combobox/ComboboxOption.stx +52 -0
  208. package/src/ui/combobox/ComboboxOptions.stx +12 -0
  209. package/src/ui/combobox/README.md +154 -0
  210. package/src/ui/combobox/index.ts +40 -0
  211. package/src/ui/command-palette/CommandPalette.stx +39 -0
  212. package/src/ui/command-palette/CommandPaletteItem.stx +32 -0
  213. package/src/ui/command-palette/README.md +42 -0
  214. package/src/ui/command-palette/index.ts +15 -0
  215. package/src/ui/dialog/Dialog.stx +19 -0
  216. package/src/ui/dialog/DialogBackdrop.stx +9 -0
  217. package/src/ui/dialog/DialogDescription.stx +11 -0
  218. package/src/ui/dialog/DialogPanel.stx +16 -0
  219. package/src/ui/dialog/DialogTitle.stx +11 -0
  220. package/src/ui/dialog/README.md +133 -0
  221. package/src/ui/dialog/index.ts +32 -0
  222. package/src/ui/drawer/Drawer.stx +137 -0
  223. package/src/ui/drawer/README.md +110 -0
  224. package/src/ui/drawer/index.ts +9 -0
  225. package/src/ui/dropdown/Dropdown.stx +24 -0
  226. package/src/ui/dropdown/DropdownButton.stx +23 -0
  227. package/src/ui/dropdown/DropdownItem.stx +43 -0
  228. package/src/ui/dropdown/DropdownItems.stx +18 -0
  229. package/src/ui/dropdown/README.md +142 -0
  230. package/src/ui/dropdown/index.ts +29 -0
  231. package/src/ui/form/Form.stx +209 -0
  232. package/src/ui/form/index.ts +67 -0
  233. package/src/ui/heatmap/Heatmap.stx +315 -0
  234. package/src/ui/image/Image.stx +197 -0
  235. package/src/ui/image/README.md +171 -0
  236. package/src/ui/image/index.ts +22 -0
  237. package/src/ui/input/EmailInput.stx +41 -0
  238. package/src/ui/input/NumberInput.stx +138 -0
  239. package/src/ui/input/PasswordInput.stx +155 -0
  240. package/src/ui/input/SearchInput.stx +63 -0
  241. package/src/ui/input/TextInput.stx +146 -0
  242. package/src/ui/input/index.ts +180 -0
  243. package/src/ui/listbox/Listbox.stx +14 -0
  244. package/src/ui/listbox/ListboxButton.stx +17 -0
  245. package/src/ui/listbox/ListboxLabel.stx +11 -0
  246. package/src/ui/listbox/ListboxOption.stx +57 -0
  247. package/src/ui/listbox/ListboxOptions.stx +16 -0
  248. package/src/ui/listbox/README.md +143 -0
  249. package/src/ui/listbox/index.ts +39 -0
  250. package/src/ui/navigator/Navigator.stx +138 -0
  251. package/src/ui/navigator/README.md +352 -0
  252. package/src/ui/navigator/index.ts +20 -0
  253. package/src/ui/notification/Notification.stx +71 -0
  254. package/src/ui/notification/README.md +118 -0
  255. package/src/ui/notification/index.ts +12 -0
  256. package/src/ui/pagination/Pagination.stx +183 -0
  257. package/src/ui/pagination/index.ts +11 -0
  258. package/src/ui/payment/Checkout.stx +39 -0
  259. package/src/ui/payment/DefaultPaymentMethod.stx +62 -0
  260. package/src/ui/payment/PaymentMethods.stx +113 -0
  261. package/src/ui/payment/README.md +427 -0
  262. package/src/ui/payment/SubscriptionCheckout.stx +353 -0
  263. package/src/ui/payment/index.ts +59 -0
  264. package/src/ui/popover/Popover.stx +24 -0
  265. package/src/ui/popover/PopoverButton.stx +23 -0
  266. package/src/ui/popover/PopoverPanel.stx +23 -0
  267. package/src/ui/popover/README.md +95 -0
  268. package/src/ui/popover/index.ts +22 -0
  269. package/src/ui/portal/Portal.stx +74 -0
  270. package/src/ui/portal/index.ts +6 -0
  271. package/src/ui/progress/Progress.stx +142 -0
  272. package/src/ui/progress/index.ts +12 -0
  273. package/src/ui/radio/Radio.stx +81 -0
  274. package/src/ui/radio/index.ts +15 -0
  275. package/src/ui/radio-group/README.md +145 -0
  276. package/src/ui/radio-group/RadioGroup.stx +13 -0
  277. package/src/ui/radio-group/RadioGroupDescription.stx +11 -0
  278. package/src/ui/radio-group/RadioGroupLabel.stx +11 -0
  279. package/src/ui/radio-group/RadioGroupOption.stx +51 -0
  280. package/src/ui/radio-group/index.ts +30 -0
  281. package/src/ui/select/README.md +204 -0
  282. package/src/ui/select/Select.stx +89 -0
  283. package/src/ui/select/index.ts +21 -0
  284. package/src/ui/sidebar/Sidebar.stx +288 -0
  285. package/src/ui/sidebar/SidebarFooter.stx +95 -0
  286. package/src/ui/sidebar/SidebarHeader.stx +100 -0
  287. package/src/ui/sidebar/SidebarItem.stx +118 -0
  288. package/src/ui/sidebar/SidebarSection.stx +108 -0
  289. package/src/ui/sidebar/index.ts +175 -0
  290. package/src/ui/skeleton/Skeleton.stx +48 -0
  291. package/src/ui/skeleton/index.ts +11 -0
  292. package/src/ui/spinner/Spinner.stx +109 -0
  293. package/src/ui/spinner/index.ts +9 -0
  294. package/src/ui/stepper/README.md +36 -0
  295. package/src/ui/stepper/Stepper.stx +17 -0
  296. package/src/ui/stepper/StepperStep.stx +53 -0
  297. package/src/ui/stepper/index.ts +19 -0
  298. package/src/ui/storage/README.md +193 -0
  299. package/src/ui/storage/index.ts +347 -0
  300. package/src/ui/switch/README.md +133 -0
  301. package/src/ui/switch/Switch.stx +74 -0
  302. package/src/ui/switch/index.ts +10 -0
  303. package/src/ui/table/README.md +39 -0
  304. package/src/ui/table/Table.stx +14 -0
  305. package/src/ui/table/TableBody.stx +10 -0
  306. package/src/ui/table/TableCell.stx +10 -0
  307. package/src/ui/table/TableHead.stx +10 -0
  308. package/src/ui/table/TableHeader.stx +13 -0
  309. package/src/ui/table/TableRow.stx +11 -0
  310. package/src/ui/table/index.ts +35 -0
  311. package/src/ui/tabs/Tabs.stx +145 -0
  312. package/src/ui/tabs/index.ts +16 -0
  313. package/src/ui/teleport/Teleport.stx +101 -0
  314. package/src/ui/teleport/index.ts +7 -0
  315. package/src/ui/textarea/Textarea.stx +119 -0
  316. package/src/ui/textarea/index.ts +20 -0
  317. package/src/ui/tooltip/Tooltip.stx +76 -0
  318. package/src/ui/tooltip/index.ts +10 -0
  319. package/src/ui/transition/README.md +30 -0
  320. package/src/ui/transition/Transition.stx +174 -0
  321. package/src/ui/transition/index.ts +25 -0
  322. package/src/ui/video/README.md +48 -0
  323. package/src/ui/video/Video.stx +45 -0
  324. package/src/ui/video/index.ts +16 -0
  325. package/src/ui/virtual-list/VirtualList.stx +83 -0
  326. package/src/ui/virtual-list/index.ts +10 -0
  327. package/src/ui/virtual-table/VirtualTable.stx +113 -0
  328. package/src/ui/virtual-table/index.ts +21 -0
  329. package/src/utils/PROP_VALIDATION.md +458 -0
  330. package/src/utils/THEME_SYSTEM.md +702 -0
  331. package/src/utils/accessibility.ts +841 -0
  332. package/src/utils/animation/easing.ts +368 -0
  333. package/src/utils/animation/helpers.ts +223 -0
  334. package/src/utils/animation/index.ts +5 -0
  335. package/src/utils/animation/keyframes.ts +230 -0
  336. package/src/utils/error-handling.ts +473 -0
  337. package/src/utils/highlighter.ts +93 -0
  338. package/src/utils/i18n.ts +634 -0
  339. package/src/utils/keep-alive.ts +818 -0
  340. package/src/utils/lazy-loading.ts +530 -0
  341. package/src/utils/prop-validation.ts +478 -0
  342. package/src/utils/theme.ts +626 -0
@@ -0,0 +1,48 @@
1
+ import type { PropSchema, ValidationResult } from '../../utils/prop-validation';
2
+ /**
3
+ * Form prop validation schema
4
+ */
5
+ export declare const formPropSchema: PropSchema;
6
+ /**
7
+ * Validate Form component props
8
+ */
9
+ export declare const validateFormProps: (props: Record<string, any>) => ValidationResult;
10
+ export declare interface FieldSchema {
11
+ required?: boolean
12
+ requiredMessage?: string
13
+ minLength?: number
14
+ minLengthMessage?: string
15
+ maxLength?: number
16
+ maxLengthMessage?: string
17
+ pattern?: RegExp
18
+ patternMessage?: string
19
+ validate?: (value: any, values: Record<string, any>) => string | null | undefined
20
+ }
21
+ export declare interface ValidationSchema {
22
+
23
+ }
24
+ export declare interface FormHelpers {
25
+ setErrors: (errors: Record<string, string>) => void
26
+ setValues: (values: Record<string, any>) => void
27
+ resetForm: () => void
28
+ }
29
+ export declare interface FormProps {
30
+ action?: string
31
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'
32
+ validationSchema?: ValidationSchema
33
+ initialValues?: Record<string, any>
34
+ validateOnChange?: boolean
35
+ validateOnBlur?: boolean
36
+ onSubmit?: (values: Record<string, any>, helpers: FormHelpers) => void | Promise<void>
37
+ onError?: (errors: Record<string, string> | Error) => void
38
+ className?: string
39
+ }
40
+ export declare interface FieldProps {
41
+ name: string
42
+ value: any
43
+ error?: string
44
+ touched?: boolean
45
+ onChange: (event: Event) => void
46
+ onBlur: (event: Event) => void
47
+ }
48
+ export { default as Form } from './Form.stx';
@@ -0,0 +1,21 @@
1
+ export declare interface ImageProps {
2
+ src: string
3
+ srcSet?: string
4
+ sizes?: string
5
+ webpSrc?: string
6
+ webpSrcSet?: string
7
+ alt: string
8
+ width?: number | string
9
+ height?: number | string
10
+ lazy?: boolean
11
+ placeholder?: string
12
+ blurDataURL?: string
13
+ onLoad?: (event: Event) => void
14
+ onError?: (event: Event) => void
15
+ aspectRatio?: number
16
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down'
17
+ rounded?: boolean | 'full' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
18
+ zoomOnHover?: boolean
19
+ className?: string
20
+ }
21
+ export { default as Image } from './Image.stx';
@@ -0,0 +1,73 @@
1
+ import type { PropSchema, ValidationResult } from '../../utils/prop-validation';
2
+ /**
3
+ * TextInput prop validation schema
4
+ */
5
+ export declare const textInputPropSchema: PropSchema;
6
+ /**
7
+ * NumberInput prop validation schema
8
+ */
9
+ export declare const numberInputPropSchema: PropSchema;
10
+ /**
11
+ * Validate TextInput component props
12
+ */
13
+ export declare const validateTextInputProps: (props: Record<string, any>) => ValidationResult;
14
+ /**
15
+ * Validate EmailInput component props
16
+ */
17
+ export declare const validateEmailInputProps: (props: Record<string, any>) => ValidationResult;
18
+ /**
19
+ * Validate PasswordInput component props
20
+ */
21
+ export declare const validatePasswordInputProps: (props: Record<string, any>) => ValidationResult;
22
+ /**
23
+ * Validate NumberInput component props
24
+ */
25
+ export declare const validateNumberInputProps: (props: Record<string, any>) => ValidationResult;
26
+ /**
27
+ * Validate SearchInput component props
28
+ */
29
+ export declare const validateSearchInputProps: (props: Record<string, any>) => ValidationResult;
30
+ export declare interface BaseInputProps {
31
+ value?: string
32
+ onChange?: (value: string) => void
33
+ placeholder?: string
34
+ disabled?: boolean
35
+ readonly?: boolean
36
+ size?: 'sm' | 'md' | 'lg'
37
+ error?: boolean
38
+ label?: string
39
+ helperText?: string
40
+ required?: boolean
41
+ className?: string
42
+ inputClassName?: string
43
+ }
44
+ export declare interface TextInputProps extends BaseInputProps {
45
+ leftIcon?: string
46
+ rightIcon?: string
47
+ clearable?: boolean
48
+ maxLength?: number
49
+ showCount?: boolean
50
+ }
51
+ export declare interface EmailInputProps extends Omit<BaseInputProps, 'placeholder'> {
52
+ placeholder?: string
53
+ }
54
+ export declare interface PasswordInputProps extends Omit<BaseInputProps, 'placeholder'> {
55
+ placeholder?: string
56
+ showStrength?: boolean
57
+ }
58
+ export declare interface NumberInputProps extends BaseInputProps {
59
+ min?: number
60
+ max?: number
61
+ step?: number
62
+ showControls?: boolean
63
+ }
64
+ export declare interface SearchInputProps extends Omit<BaseInputProps, 'placeholder'> {
65
+ placeholder?: string
66
+ onSearch?: (value: string) => void
67
+ loading?: boolean
68
+ }
69
+ export { default as EmailInput } from './EmailInput.stx';
70
+ export { default as NumberInput } from './NumberInput.stx';
71
+ export { default as PasswordInput } from './PasswordInput.stx';
72
+ export { default as SearchInput } from './SearchInput.stx';
73
+ export { default as TextInput } from './TextInput.stx';
@@ -0,0 +1,34 @@
1
+ export declare interface ListboxProps {
2
+ value?: any
3
+ onChange?: (value: any) => void
4
+ multiple?: boolean
5
+ className?: string
6
+ as?: string
7
+ }
8
+ export declare interface ListboxButtonProps {
9
+ className?: string
10
+ as?: string
11
+ disabled?: boolean
12
+ }
13
+ export declare interface ListboxOptionsProps {
14
+ className?: string
15
+ as?: string
16
+ static?: boolean
17
+ }
18
+ export declare interface ListboxOptionProps {
19
+ value: any
20
+ disabled?: boolean
21
+ className?: string
22
+ as?: string
23
+ currentValue?: any
24
+ onChange?: (value: any) => void
25
+ }
26
+ export declare interface ListboxLabelProps {
27
+ className?: string
28
+ as?: string
29
+ }
30
+ export { default as Listbox } from './Listbox.stx';
31
+ export { default as ListboxButton } from './ListboxButton.stx';
32
+ export { default as ListboxLabel } from './ListboxLabel.stx';
33
+ export { default as ListboxOption } from './ListboxOption.stx';
34
+ export { default as ListboxOptions } from './ListboxOptions.stx';
@@ -0,0 +1,18 @@
1
+ export declare interface NavigatorItem {
2
+ id?: string
3
+ label: string
4
+ href?: string
5
+ icon?: string
6
+ badge?: string | number
7
+ disabled?: boolean
8
+ }
9
+ export declare interface NavigatorProps {
10
+ items: NavigatorItem[]
11
+ active?: string
12
+ orientation?: 'horizontal' | 'vertical'
13
+ variant?: 'default' | 'pills' | 'underline' | 'sidebar'
14
+ size?: 'sm' | 'md' | 'lg'
15
+ onNavigate?: (item: NavigatorItem) => void
16
+ className?: string
17
+ }
18
+ export { default as Navigator } from './Navigator.stx';
@@ -0,0 +1,11 @@
1
+ export declare interface NotificationProps {
2
+ show?: boolean
3
+ title?: string
4
+ message?: string
5
+ type?: 'info' | 'success' | 'warning' | 'error'
6
+ position?: 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center'
7
+ duration?: number
8
+ onClose?: () => void
9
+ className?: string
10
+ }
11
+ export { default as Notification } from './Notification.stx';
@@ -0,0 +1,10 @@
1
+ export declare interface PaginationProps {
2
+ currentPage: number
3
+ totalPages: number
4
+ siblingCount?: number
5
+ showFirstLast?: boolean
6
+ showPrevNext?: boolean
7
+ onChange?: (page: number) => void
8
+ className?: string
9
+ }
10
+ export { default as Pagination } from './Pagination.stx';
@@ -0,0 +1,53 @@
1
+ export declare interface PaymentMethod {
2
+ id: string | number
3
+ brand: string
4
+ last_four: string
5
+ exp_month: number
6
+ exp_year: number
7
+ is_default?: boolean
8
+ }
9
+ export declare interface PaymentMethodsProps {
10
+ paymentMethods: PaymentMethod[]
11
+ onDeletePaymentMethod?: (id: string | number) => void
12
+ onMakeDefault?: (id: string | number) => void
13
+ isLoading?: boolean
14
+ className?: string
15
+ }
16
+ export declare interface DefaultPaymentMethodProps {
17
+ paymentMethod: PaymentMethod | null
18
+ isLoading?: boolean
19
+ className?: string
20
+ }
21
+ export declare interface Product {
22
+ id: string | number
23
+ name: string
24
+ price: number
25
+ images?: string
26
+ quantity?: number
27
+ }
28
+ export declare interface SubscriptionCheckoutProps {
29
+ products: Product[]
30
+ stripePublicKey: string
31
+ apiUrl: string
32
+ onSubmit?: (result: { success: boolean }) => void
33
+ onRemoveProduct?: (id: string | number) => void
34
+ shipping?: number
35
+ taxes?: number
36
+ className?: string
37
+ }
38
+ export declare interface CheckoutProps {
39
+ products: Product[]
40
+ redirectUrl: string
41
+ mode: 'one-time' | 'subscription'
42
+ stripePublicKey: string
43
+ apiUrl: string
44
+ onSubmit?: (result: { success: boolean }) => void
45
+ onRemoveProduct?: (id: string | number) => void
46
+ shipping?: number
47
+ taxes?: number
48
+ className?: string
49
+ }
50
+ export { default as Checkout } from './Checkout.stx';
51
+ export { default as DefaultPaymentMethod } from './DefaultPaymentMethod.stx';
52
+ export { default as PaymentMethods } from './PaymentMethods.stx';
53
+ export { default as SubscriptionCheckout } from './SubscriptionCheckout.stx';
@@ -0,0 +1,19 @@
1
+ export declare interface PopoverProps {
2
+ className?: string
3
+ as?: string
4
+ }
5
+ export declare interface PopoverButtonProps {
6
+ className?: string
7
+ as?: string
8
+ disabled?: boolean
9
+ onClick?: (e: Event) => void
10
+ }
11
+ export declare interface PopoverPanelProps {
12
+ className?: string
13
+ as?: string
14
+ static?: boolean
15
+ position?: 'top' | 'bottom' | 'left' | 'right'
16
+ }
17
+ export { default as Popover } from './Popover.stx';
18
+ export { default as PopoverButton } from './PopoverButton.stx';
19
+ export { default as PopoverPanel } from './PopoverPanel.stx';
@@ -0,0 +1,5 @@
1
+ export declare interface PortalProps {
2
+ target?: string | HTMLElement
3
+ disabled?: boolean
4
+ }
5
+ export { default as Portal } from './Portal.stx';
@@ -0,0 +1,11 @@
1
+ export declare interface ProgressProps {
2
+ value?: number
3
+ max?: number
4
+ variant?: 'linear' | 'circular'
5
+ size?: 'sm' | 'md' | 'lg'
6
+ color?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info'
7
+ showLabel?: boolean
8
+ indeterminate?: boolean
9
+ className?: string
10
+ }
11
+ export { default as Progress } from './Progress.stx';
@@ -0,0 +1,14 @@
1
+ export declare interface RadioProps {
2
+ checked?: boolean
3
+ onChange?: (value: string, checked: boolean) => void
4
+ disabled?: boolean
5
+ size?: 'sm' | 'md' | 'lg'
6
+ label?: string
7
+ description?: string
8
+ error?: boolean
9
+ required?: boolean
10
+ value?: string
11
+ name?: string
12
+ className?: string
13
+ }
14
+ export { default as Radio } from './Radio.stx';
@@ -0,0 +1,26 @@
1
+ export declare interface RadioGroupProps {
2
+ value?: any
3
+ onChange?: (value: any) => void
4
+ className?: string
5
+ as?: string
6
+ }
7
+ export declare interface RadioGroupLabelProps {
8
+ className?: string
9
+ as?: string
10
+ }
11
+ export declare interface RadioGroupOptionProps {
12
+ value: any
13
+ disabled?: boolean
14
+ className?: string
15
+ as?: string
16
+ currentValue?: any
17
+ onChange?: (value: any) => void
18
+ }
19
+ export declare interface RadioGroupDescriptionProps {
20
+ className?: string
21
+ as?: string
22
+ }
23
+ export { default as RadioGroup } from './RadioGroup.stx';
24
+ export { default as RadioGroupDescription } from './RadioGroupDescription.stx';
25
+ export { default as RadioGroupLabel } from './RadioGroupLabel.stx';
26
+ export { default as RadioGroupOption } from './RadioGroupOption.stx';
@@ -0,0 +1,19 @@
1
+ export declare interface SelectOption {
2
+ value: string | number
3
+ label: string
4
+ disabled?: boolean
5
+ }
6
+ export declare interface SelectProps {
7
+ value?: string | number
8
+ onChange?: (value: string | number) => void
9
+ options?: SelectOption[]
10
+ placeholder?: string
11
+ disabled?: boolean
12
+ size?: 'sm' | 'md' | 'lg'
13
+ error?: boolean
14
+ label?: string
15
+ helperText?: string
16
+ required?: boolean
17
+ className?: string
18
+ }
19
+ export { default as Select } from './Select.stx';
@@ -0,0 +1,129 @@
1
+ // Types
2
+ export declare interface SidebarItemData {
3
+ id: string
4
+ label: string
5
+ icon?: string
6
+ href?: string
7
+ badge?: string | number
8
+ active?: boolean
9
+ disabled?: boolean
10
+ }
11
+ export declare interface SidebarSectionData {
12
+ id: string
13
+ label: string
14
+ icon?: string
15
+ items: SidebarItemData[]
16
+ expanded?: boolean
17
+ collapsible?: boolean
18
+ }
19
+ export declare interface SidebarProps {
20
+ sections?: SidebarSectionData[]
21
+ collapsed?: boolean
22
+ collapsible?: boolean
23
+ width?: number
24
+ minWidth?: number
25
+ variant?: 'tahoe' | 'vibrancy' | 'solid' | 'transparent'
26
+ position?: 'left' | 'right'
27
+ bordered?: boolean
28
+ className?: string
29
+ onCollapse?: (collapsed: boolean) => void
30
+ onSectionToggle?: (sectionId: string) => void
31
+ onItemClick?: (item: SidebarItemData, event: Event) => void
32
+ }
33
+ export declare interface SidebarSectionProps {
34
+ id: string
35
+ label: string
36
+ icon?: string
37
+ items: SidebarItemData[]
38
+ expanded?: boolean
39
+ collapsible?: boolean
40
+ showLabel?: boolean
41
+ onToggle?: (id: string) => void
42
+ onItemClick?: (item: SidebarItemData, event: Event) => void
43
+ }
44
+ export declare interface SidebarItemProps {
45
+ id: string
46
+ label: string
47
+ icon?: string
48
+ href?: string
49
+ badge?: string | number
50
+ active?: boolean
51
+ disabled?: boolean
52
+ indent?: boolean
53
+ onClick?: (event: Event) => void
54
+ }
55
+ export declare interface SidebarHeaderProps {
56
+ title?: string
57
+ subtitle?: string
58
+ logo?: string
59
+ logoIcon?: string
60
+ showSearch?: boolean
61
+ searchPlaceholder?: string
62
+ searchValue?: string
63
+ collapsed?: boolean
64
+ onSearch?: (value: string) => void
65
+ }
66
+ export declare interface SidebarFooterProps {
67
+ showSettings?: boolean
68
+ showThemeToggle?: boolean
69
+ settingsHref?: string
70
+ settingsLabel?: string
71
+ collapsed?: boolean
72
+ actions?: Array<{
73
+ label: string
74
+ icon?: string
75
+ href?: string
76
+ onClick?: () => void
77
+ }>
78
+ onThemeToggle?: () => void
79
+ }
80
+ /**
81
+ * Native Sidebar Configuration
82
+ *
83
+ * Used to configure the native macOS sidebar when running with Craft's --native-sidebar flag.
84
+ * The sidebar uses NSOutlineView with vibrancy for a true Tahoe-style appearance.
85
+ */
86
+ export declare interface NativeSidebarConfig {
87
+ header?: {
88
+ title?: string
89
+ subtitle?: string
90
+ icon?: string // SF Symbol name (e.g., 'house.fill', 'message.fill')
91
+ }
92
+ searchPlaceholder?: string
93
+ sections: NativeSidebarSection[]
94
+ minWidth?: number
95
+ maxWidth?: number
96
+ canCollapse?: boolean
97
+ }
98
+ export declare interface NativeSidebarSection {
99
+ id: string
100
+ title: string
101
+ collapsible?: boolean
102
+ collapsed?: boolean
103
+ items: NativeSidebarItem[]
104
+ }
105
+ export declare interface NativeSidebarItem {
106
+ id: string
107
+ label: string
108
+ icon?: string
109
+ badge?: string | number
110
+ tintColor?: string
111
+ selected?: boolean
112
+ disabled?: boolean
113
+ children?: NativeSidebarItem[]
114
+ data?: Record<string, unknown>
115
+ }
116
+ /**
117
+ * Craft sidebar selection event
118
+ * Passed to window.craft._sidebarSelectHandler when user clicks a sidebar item
119
+ */
120
+ export declare interface SidebarSelectEvent {
121
+ itemId: string
122
+ item: NativeSidebarItem
123
+ sectionId?: string
124
+ }
125
+ export { default as Sidebar } from './Sidebar.stx';
126
+ export { default as SidebarSection } from './SidebarSection.stx';
127
+ export { default as SidebarItem } from './SidebarItem.stx';
128
+ export { default as SidebarHeader } from './SidebarHeader.stx';
129
+ export { default as SidebarFooter } from './SidebarFooter.stx';
@@ -0,0 +1,10 @@
1
+ export declare interface SkeletonProps {
2
+ variant?: 'text' | 'title' | 'avatar' | 'thumbnail' | 'button' | 'card' | 'rect'
3
+ count?: number
4
+ width?: string | number
5
+ height?: string | number
6
+ circle?: boolean
7
+ animate?: boolean
8
+ className?: string
9
+ }
10
+ export { default as Skeleton } from './Skeleton.stx';
@@ -0,0 +1,8 @@
1
+ export declare interface SpinnerProps {
2
+ variant?: 'circle' | 'dots' | 'bars' | 'ring'
3
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
4
+ color?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'white' | 'gray'
5
+ label?: string
6
+ className?: string
7
+ }
8
+ export { default as Spinner } from './Spinner.stx';
@@ -0,0 +1,17 @@
1
+ export declare interface StepperProps {
2
+ currentStep?: number
3
+ orientation?: 'horizontal' | 'vertical'
4
+ className?: string
5
+ as?: string
6
+ }
7
+ export declare interface StepperStepProps {
8
+ stepNumber: number
9
+ currentStep?: number
10
+ label?: string
11
+ description?: string
12
+ className?: string
13
+ as?: string
14
+ onClick?: (step: number) => void
15
+ }
16
+ export { default as Stepper } from './Stepper.stx';
17
+ export { default as StepperStep } from './StepperStep.stx';
@@ -0,0 +1,40 @@
1
+ export declare function createStorage(type?: 'local' | 'session', namespace?: string): StorageManager;
2
+ // Convenience exports
3
+ export declare const storage: {
4
+ local: StorageManager
5
+ session: StorageManager
6
+ };
7
+ // Storage utilities for localStorage and sessionStorage
8
+ export declare interface StorageOptions {
9
+ expire?: number
10
+ namespace?: string
11
+ encrypt?: boolean
12
+ compress?: boolean
13
+ }
14
+ declare type StorageWatchCallback = (newValue: any, oldValue: any, key: string) => void
15
+ export declare class StorageManager {
16
+ private storage: globalThis.Storage;
17
+ private namespace: string;
18
+ private watchers: Map<string, Set<StorageWatchCallback>>;
19
+ private encryptionKey: any;
20
+ constructor(type?: 'local' | 'session', namespace?: any);
21
+ private handleStorageEvent(event: StorageEvent): void;
22
+ private encrypt(data: string): string;
23
+ private decrypt(data: string): string;
24
+ private compress(data: string): string;
25
+ private decompress(data: string): string;
26
+ private getKey(key: string): string;
27
+ set(key: string, value: any, options?: StorageOptions): void;
28
+ get<T = any>(key: string): T | null;
29
+ watch(key: string, callback: StorageWatchCallback): () => void;
30
+ private notifyWatchers(key: string, newValue: any, oldValue: any): void;
31
+ remove(key: string): void;
32
+ clear(): void;
33
+ has(key: string): boolean;
34
+ keys(): string[];
35
+ size(): number;
36
+ getQuota(): { usage: number, quota: number, percentage: number } | null;
37
+ setMany(items: Record<string, any>, options?: StorageOptions): void;
38
+ getMany<T = any>(keys: string[]): Record<string, T | null>;
39
+ removeMany(keys: string[]): void;
40
+ }
@@ -0,0 +1,9 @@
1
+ export declare interface SwitchProps {
2
+ checked?: boolean
3
+ disabled?: boolean
4
+ size?: 'sm' | 'md' | 'lg'
5
+ className?: string
6
+ onChange?: (checked: boolean) => void
7
+ label?: string
8
+ }
9
+ export { default as Switch } from './Switch.stx';
@@ -0,0 +1,29 @@
1
+ export declare interface TableProps {
2
+ className?: string
3
+ striped?: boolean
4
+ hoverable?: boolean
5
+ }
6
+ export declare interface TableHeadProps {
7
+ className?: string
8
+ }
9
+ export declare interface TableBodyProps {
10
+ className?: string
11
+ }
12
+ export declare interface TableRowProps {
13
+ className?: string
14
+ hoverable?: boolean
15
+ }
16
+ export declare interface TableHeaderProps {
17
+ className?: string
18
+ sortable?: boolean
19
+ onClick?: () => void
20
+ }
21
+ export declare interface TableCellProps {
22
+ className?: string
23
+ }
24
+ export { default as Table } from './Table.stx';
25
+ export { default as TableBody } from './TableBody.stx';
26
+ export { default as TableCell } from './TableCell.stx';
27
+ export { default as TableHead } from './TableHead.stx';
28
+ export { default as TableHeader } from './TableHeader.stx';
29
+ export { default as TableRow } from './TableRow.stx';
@@ -0,0 +1,14 @@
1
+ export declare interface Tab {
2
+ label: string
3
+ content: string
4
+ icon?: string
5
+ }
6
+ export declare interface TabsProps {
7
+ tabs: Tab[]
8
+ defaultTab?: number
9
+ orientation?: 'horizontal' | 'vertical'
10
+ variant?: 'line' | 'pills' | 'enclosed'
11
+ onChange?: (index: number, tab: Tab) => void
12
+ className?: string
13
+ }
14
+ export { default as Tabs } from './Tabs.stx';
@@ -0,0 +1,6 @@
1
+ export declare interface TeleportProps {
2
+ to?: string | HTMLElement
3
+ disabled?: boolean
4
+ defer?: boolean
5
+ }
6
+ export { default as Teleport } from './Teleport.stx';
@@ -0,0 +1,19 @@
1
+ export declare interface TextareaProps {
2
+ value?: string
3
+ onChange?: (value: string) => void
4
+ placeholder?: string
5
+ disabled?: boolean
6
+ readonly?: boolean
7
+ rows?: number
8
+ autoResize?: boolean
9
+ maxRows?: number
10
+ error?: boolean
11
+ label?: string
12
+ helperText?: string
13
+ required?: boolean
14
+ maxLength?: number
15
+ showCount?: boolean
16
+ resize?: 'none' | 'vertical' | 'horizontal' | 'both'
17
+ className?: string
18
+ }
19
+ export { default as Textarea } from './Textarea.stx';