@kushagradhawan/kookie-ui 0.1.29 → 0.1.30

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 (522) hide show
  1. package/components.css +4083 -2224
  2. package/dist/cjs/components/_internal/base-button.d.ts +36 -0
  3. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  4. package/dist/cjs/components/_internal/base-button.js +1 -1
  5. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  6. package/dist/cjs/components/_internal/base-button.props.d.ts +61 -0
  7. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  8. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  9. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  10. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +6 -1
  11. package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
  12. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  13. package/dist/cjs/components/_internal/base-checkbox.props.js.map +3 -3
  14. package/dist/cjs/components/_internal/base-menu.props.d.ts +8 -0
  15. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  16. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  17. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  18. package/dist/cjs/components/_internal/base-radio.props.d.ts +6 -1
  19. package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
  20. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  21. package/dist/cjs/components/_internal/base-radio.props.js.map +3 -3
  22. package/dist/cjs/components/accordion.d.ts.map +1 -1
  23. package/dist/cjs/components/accordion.js +1 -1
  24. package/dist/cjs/components/accordion.js.map +3 -3
  25. package/dist/cjs/components/accordion.props.d.ts +9 -0
  26. package/dist/cjs/components/accordion.props.d.ts.map +1 -1
  27. package/dist/cjs/components/accordion.props.js +1 -1
  28. package/dist/cjs/components/accordion.props.js.map +2 -2
  29. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  30. package/dist/cjs/components/alert-dialog.js +1 -1
  31. package/dist/cjs/components/alert-dialog.js.map +3 -3
  32. package/dist/cjs/components/alert-dialog.props.d.ts +69 -2
  33. package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
  34. package/dist/cjs/components/alert-dialog.props.js +1 -1
  35. package/dist/cjs/components/alert-dialog.props.js.map +3 -3
  36. package/dist/cjs/components/avatar.d.ts.map +1 -1
  37. package/dist/cjs/components/avatar.js +1 -1
  38. package/dist/cjs/components/avatar.js.map +3 -3
  39. package/dist/cjs/components/avatar.props.d.ts +9 -1
  40. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  41. package/dist/cjs/components/avatar.props.js +1 -1
  42. package/dist/cjs/components/avatar.props.js.map +3 -3
  43. package/dist/cjs/components/badge.d.ts +8 -1
  44. package/dist/cjs/components/badge.d.ts.map +1 -1
  45. package/dist/cjs/components/badge.js +1 -1
  46. package/dist/cjs/components/badge.js.map +3 -3
  47. package/dist/cjs/components/badge.props.d.ts +14 -6
  48. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  49. package/dist/cjs/components/badge.props.js +1 -1
  50. package/dist/cjs/components/badge.props.js.map +3 -3
  51. package/dist/cjs/components/blockquote.props.d.ts +1 -1
  52. package/dist/cjs/components/button.d.ts +53 -1
  53. package/dist/cjs/components/button.d.ts.map +1 -1
  54. package/dist/cjs/components/button.js +1 -1
  55. package/dist/cjs/components/button.js.map +3 -3
  56. package/dist/cjs/components/button.props.d.ts +17 -0
  57. package/dist/cjs/components/button.props.d.ts.map +1 -1
  58. package/dist/cjs/components/button.props.js.map +2 -2
  59. package/dist/cjs/components/callout.d.ts +4 -0
  60. package/dist/cjs/components/callout.d.ts.map +1 -1
  61. package/dist/cjs/components/callout.js +1 -1
  62. package/dist/cjs/components/callout.js.map +3 -3
  63. package/dist/cjs/components/callout.props.d.ts +9 -1
  64. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  65. package/dist/cjs/components/callout.props.js +1 -1
  66. package/dist/cjs/components/callout.props.js.map +3 -3
  67. package/dist/cjs/components/card.d.ts.map +1 -1
  68. package/dist/cjs/components/card.js +1 -1
  69. package/dist/cjs/components/card.js.map +3 -3
  70. package/dist/cjs/components/card.props.d.ts +5 -0
  71. package/dist/cjs/components/card.props.d.ts.map +1 -1
  72. package/dist/cjs/components/card.props.js +1 -1
  73. package/dist/cjs/components/card.props.js.map +3 -3
  74. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  75. package/dist/cjs/components/checkbox-cards.js +1 -1
  76. package/dist/cjs/components/checkbox-cards.js.map +3 -3
  77. package/dist/cjs/components/checkbox-cards.props.d.ts +2 -2
  78. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  79. package/dist/cjs/components/checkbox-cards.props.js.map +2 -2
  80. package/dist/cjs/components/checkbox-group.props.d.ts +6 -1
  81. package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
  82. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  83. package/dist/cjs/components/checkbox.js +1 -1
  84. package/dist/cjs/components/checkbox.js.map +3 -3
  85. package/dist/cjs/components/code.js.map +1 -1
  86. package/dist/cjs/components/code.props.d.ts +1 -1
  87. package/dist/cjs/components/context-menu.d.ts +1 -1
  88. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  89. package/dist/cjs/components/context-menu.js +1 -1
  90. package/dist/cjs/components/context-menu.js.map +3 -3
  91. package/dist/cjs/components/dialog.d.ts.map +1 -1
  92. package/dist/cjs/components/dialog.js +1 -1
  93. package/dist/cjs/components/dialog.js.map +3 -3
  94. package/dist/cjs/components/dialog.props.d.ts +5 -0
  95. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  96. package/dist/cjs/components/dialog.props.js +1 -1
  97. package/dist/cjs/components/dialog.props.js.map +3 -3
  98. package/dist/cjs/components/dropdown-menu.d.ts +1 -1
  99. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  100. package/dist/cjs/components/dropdown-menu.js +1 -1
  101. package/dist/cjs/components/dropdown-menu.js.map +3 -3
  102. package/dist/cjs/components/heading.props.d.ts +1 -1
  103. package/dist/cjs/components/icon-button.d.ts +79 -1
  104. package/dist/cjs/components/icon-button.d.ts.map +1 -1
  105. package/dist/cjs/components/icon-button.js +4 -1
  106. package/dist/cjs/components/icon-button.js.map +3 -3
  107. package/dist/cjs/components/image.d.ts +131 -12
  108. package/dist/cjs/components/image.d.ts.map +1 -1
  109. package/dist/cjs/components/image.js +1 -1
  110. package/dist/cjs/components/image.js.map +3 -3
  111. package/dist/cjs/components/image.props.d.ts +136 -21
  112. package/dist/cjs/components/image.props.d.ts.map +1 -1
  113. package/dist/cjs/components/image.props.js +1 -1
  114. package/dist/cjs/components/image.props.js.map +3 -3
  115. package/dist/cjs/components/link.props.d.ts +1 -1
  116. package/dist/cjs/components/progress.props.d.ts +2 -2
  117. package/dist/cjs/components/progress.props.js +1 -1
  118. package/dist/cjs/components/progress.props.js.map +2 -2
  119. package/dist/cjs/components/radio-cards.d.ts.map +1 -1
  120. package/dist/cjs/components/radio-cards.js +1 -1
  121. package/dist/cjs/components/radio-cards.js.map +3 -3
  122. package/dist/cjs/components/radio-cards.props.d.ts +2 -2
  123. package/dist/cjs/components/radio-cards.props.js +1 -1
  124. package/dist/cjs/components/radio-cards.props.js.map +2 -2
  125. package/dist/cjs/components/radio.d.ts.map +1 -1
  126. package/dist/cjs/components/radio.js +1 -1
  127. package/dist/cjs/components/radio.js.map +3 -3
  128. package/dist/cjs/components/segmented-control.props.d.ts +3 -3
  129. package/dist/cjs/components/segmented-control.props.js +1 -1
  130. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  131. package/dist/cjs/components/select.d.ts.map +1 -1
  132. package/dist/cjs/components/select.js +1 -1
  133. package/dist/cjs/components/select.js.map +3 -3
  134. package/dist/cjs/components/select.props.d.ts +12 -0
  135. package/dist/cjs/components/select.props.d.ts.map +1 -1
  136. package/dist/cjs/components/select.props.js +1 -1
  137. package/dist/cjs/components/select.props.js.map +2 -2
  138. package/dist/cjs/components/sidebar.d.ts +5 -0
  139. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  140. package/dist/cjs/components/sidebar.js +1 -1
  141. package/dist/cjs/components/sidebar.js.map +3 -3
  142. package/dist/cjs/components/slider.d.ts +5 -0
  143. package/dist/cjs/components/slider.d.ts.map +1 -1
  144. package/dist/cjs/components/slider.js +1 -1
  145. package/dist/cjs/components/slider.js.map +3 -3
  146. package/dist/cjs/components/slider.props.d.ts +10 -2
  147. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  148. package/dist/cjs/components/slider.props.js +1 -1
  149. package/dist/cjs/components/slider.props.js.map +2 -2
  150. package/dist/cjs/components/switch.d.ts.map +1 -1
  151. package/dist/cjs/components/switch.js +1 -1
  152. package/dist/cjs/components/switch.js.map +3 -3
  153. package/dist/cjs/components/switch.props.d.ts +17 -4
  154. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  155. package/dist/cjs/components/switch.props.js +1 -1
  156. package/dist/cjs/components/switch.props.js.map +3 -3
  157. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  158. package/dist/cjs/components/tab-nav.js +1 -1
  159. package/dist/cjs/components/tab-nav.js.map +3 -3
  160. package/dist/cjs/components/tabs.d.ts.map +1 -1
  161. package/dist/cjs/components/tabs.js +1 -1
  162. package/dist/cjs/components/tabs.js.map +2 -2
  163. package/dist/cjs/components/text-area.d.ts.map +1 -1
  164. package/dist/cjs/components/text-area.js +1 -1
  165. package/dist/cjs/components/text-area.js.map +3 -3
  166. package/dist/cjs/components/text-area.props.d.ts +29 -0
  167. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  168. package/dist/cjs/components/text-area.props.js +1 -1
  169. package/dist/cjs/components/text-area.props.js.map +3 -3
  170. package/dist/cjs/components/text-field.d.ts.map +1 -1
  171. package/dist/cjs/components/text-field.js +4 -4
  172. package/dist/cjs/components/text-field.js.map +3 -3
  173. package/dist/cjs/components/text-field.props.d.ts +29 -0
  174. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  175. package/dist/cjs/components/text-field.props.js +1 -1
  176. package/dist/cjs/components/text-field.props.js.map +3 -3
  177. package/dist/cjs/components/text.props.d.ts +1 -1
  178. package/dist/cjs/components/theme.d.ts +3 -0
  179. package/dist/cjs/components/theme.d.ts.map +1 -1
  180. package/dist/cjs/components/theme.js +1 -1
  181. package/dist/cjs/components/theme.js.map +3 -3
  182. package/dist/cjs/components/theme.props.d.ts +14 -0
  183. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  184. package/dist/cjs/components/theme.props.js +1 -1
  185. package/dist/cjs/components/theme.props.js.map +3 -3
  186. package/dist/cjs/components/toggle-button.d.ts +52 -0
  187. package/dist/cjs/components/toggle-button.d.ts.map +1 -1
  188. package/dist/cjs/components/toggle-button.js +1 -1
  189. package/dist/cjs/components/toggle-button.js.map +3 -3
  190. package/dist/cjs/components/toggle-icon-button.d.ts +84 -2
  191. package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
  192. package/dist/cjs/components/toggle-icon-button.js +1 -1
  193. package/dist/cjs/components/toggle-icon-button.js.map +3 -3
  194. package/dist/cjs/hooks/index.d.ts +2 -0
  195. package/dist/cjs/hooks/index.d.ts.map +1 -0
  196. package/dist/cjs/hooks/index.js +2 -0
  197. package/dist/cjs/hooks/index.js.map +7 -0
  198. package/dist/cjs/hooks/use-live-announcer.d.ts +6 -0
  199. package/dist/cjs/hooks/use-live-announcer.d.ts.map +1 -0
  200. package/dist/cjs/hooks/use-live-announcer.js +10 -0
  201. package/dist/cjs/hooks/use-live-announcer.js.map +7 -0
  202. package/dist/cjs/index.d.ts +1 -0
  203. package/dist/cjs/index.d.ts.map +1 -1
  204. package/dist/cjs/index.js +1 -1
  205. package/dist/cjs/index.js.map +2 -2
  206. package/dist/cjs/props/weight.prop.d.ts +1 -1
  207. package/dist/cjs/props/weight.prop.js +1 -1
  208. package/dist/cjs/props/weight.prop.js.map +2 -2
  209. package/dist/esm/components/_internal/base-button.d.ts +36 -0
  210. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  211. package/dist/esm/components/_internal/base-button.js +1 -1
  212. package/dist/esm/components/_internal/base-button.js.map +3 -3
  213. package/dist/esm/components/_internal/base-button.props.d.ts +61 -0
  214. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  215. package/dist/esm/components/_internal/base-button.props.js +1 -1
  216. package/dist/esm/components/_internal/base-button.props.js.map +3 -3
  217. package/dist/esm/components/_internal/base-checkbox.props.d.ts +6 -1
  218. package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
  219. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  220. package/dist/esm/components/_internal/base-checkbox.props.js.map +3 -3
  221. package/dist/esm/components/_internal/base-menu.props.d.ts +8 -0
  222. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  223. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  224. package/dist/esm/components/_internal/base-menu.props.js.map +3 -3
  225. package/dist/esm/components/_internal/base-radio.props.d.ts +6 -1
  226. package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
  227. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  228. package/dist/esm/components/_internal/base-radio.props.js.map +3 -3
  229. package/dist/esm/components/accordion.d.ts.map +1 -1
  230. package/dist/esm/components/accordion.js +1 -1
  231. package/dist/esm/components/accordion.js.map +3 -3
  232. package/dist/esm/components/accordion.props.d.ts +9 -0
  233. package/dist/esm/components/accordion.props.d.ts.map +1 -1
  234. package/dist/esm/components/accordion.props.js +1 -1
  235. package/dist/esm/components/accordion.props.js.map +2 -2
  236. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  237. package/dist/esm/components/alert-dialog.js +1 -1
  238. package/dist/esm/components/alert-dialog.js.map +3 -3
  239. package/dist/esm/components/alert-dialog.props.d.ts +69 -2
  240. package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
  241. package/dist/esm/components/alert-dialog.props.js +1 -1
  242. package/dist/esm/components/alert-dialog.props.js.map +3 -3
  243. package/dist/esm/components/avatar.d.ts.map +1 -1
  244. package/dist/esm/components/avatar.js +1 -1
  245. package/dist/esm/components/avatar.js.map +3 -3
  246. package/dist/esm/components/avatar.props.d.ts +9 -1
  247. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  248. package/dist/esm/components/avatar.props.js +1 -1
  249. package/dist/esm/components/avatar.props.js.map +3 -3
  250. package/dist/esm/components/badge.d.ts +8 -1
  251. package/dist/esm/components/badge.d.ts.map +1 -1
  252. package/dist/esm/components/badge.js +1 -1
  253. package/dist/esm/components/badge.js.map +3 -3
  254. package/dist/esm/components/badge.props.d.ts +14 -6
  255. package/dist/esm/components/badge.props.d.ts.map +1 -1
  256. package/dist/esm/components/badge.props.js +1 -1
  257. package/dist/esm/components/badge.props.js.map +3 -3
  258. package/dist/esm/components/blockquote.props.d.ts +1 -1
  259. package/dist/esm/components/button.d.ts +53 -1
  260. package/dist/esm/components/button.d.ts.map +1 -1
  261. package/dist/esm/components/button.js +1 -1
  262. package/dist/esm/components/button.js.map +3 -3
  263. package/dist/esm/components/button.props.d.ts +17 -0
  264. package/dist/esm/components/button.props.d.ts.map +1 -1
  265. package/dist/esm/components/button.props.js.map +2 -2
  266. package/dist/esm/components/callout.d.ts +4 -0
  267. package/dist/esm/components/callout.d.ts.map +1 -1
  268. package/dist/esm/components/callout.js +1 -1
  269. package/dist/esm/components/callout.js.map +3 -3
  270. package/dist/esm/components/callout.props.d.ts +9 -1
  271. package/dist/esm/components/callout.props.d.ts.map +1 -1
  272. package/dist/esm/components/callout.props.js +1 -1
  273. package/dist/esm/components/callout.props.js.map +3 -3
  274. package/dist/esm/components/card.d.ts.map +1 -1
  275. package/dist/esm/components/card.js +1 -1
  276. package/dist/esm/components/card.js.map +3 -3
  277. package/dist/esm/components/card.props.d.ts +5 -0
  278. package/dist/esm/components/card.props.d.ts.map +1 -1
  279. package/dist/esm/components/card.props.js +1 -1
  280. package/dist/esm/components/card.props.js.map +3 -3
  281. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  282. package/dist/esm/components/checkbox-cards.js +1 -1
  283. package/dist/esm/components/checkbox-cards.js.map +3 -3
  284. package/dist/esm/components/checkbox-cards.props.d.ts +2 -2
  285. package/dist/esm/components/checkbox-cards.props.js +1 -1
  286. package/dist/esm/components/checkbox-cards.props.js.map +2 -2
  287. package/dist/esm/components/checkbox-group.props.d.ts +6 -1
  288. package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
  289. package/dist/esm/components/checkbox.d.ts.map +1 -1
  290. package/dist/esm/components/checkbox.js +1 -1
  291. package/dist/esm/components/checkbox.js.map +3 -3
  292. package/dist/esm/components/code.js.map +1 -1
  293. package/dist/esm/components/code.props.d.ts +1 -1
  294. package/dist/esm/components/context-menu.d.ts +1 -1
  295. package/dist/esm/components/context-menu.d.ts.map +1 -1
  296. package/dist/esm/components/context-menu.js +1 -1
  297. package/dist/esm/components/context-menu.js.map +3 -3
  298. package/dist/esm/components/dialog.d.ts.map +1 -1
  299. package/dist/esm/components/dialog.js +1 -1
  300. package/dist/esm/components/dialog.js.map +3 -3
  301. package/dist/esm/components/dialog.props.d.ts +5 -0
  302. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  303. package/dist/esm/components/dialog.props.js +1 -1
  304. package/dist/esm/components/dialog.props.js.map +3 -3
  305. package/dist/esm/components/dropdown-menu.d.ts +1 -1
  306. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  307. package/dist/esm/components/dropdown-menu.js +1 -1
  308. package/dist/esm/components/dropdown-menu.js.map +3 -3
  309. package/dist/esm/components/heading.props.d.ts +1 -1
  310. package/dist/esm/components/icon-button.d.ts +79 -1
  311. package/dist/esm/components/icon-button.d.ts.map +1 -1
  312. package/dist/esm/components/icon-button.js +4 -1
  313. package/dist/esm/components/icon-button.js.map +3 -3
  314. package/dist/esm/components/image.d.ts +131 -12
  315. package/dist/esm/components/image.d.ts.map +1 -1
  316. package/dist/esm/components/image.js +1 -1
  317. package/dist/esm/components/image.js.map +3 -3
  318. package/dist/esm/components/image.props.d.ts +136 -21
  319. package/dist/esm/components/image.props.d.ts.map +1 -1
  320. package/dist/esm/components/image.props.js +1 -1
  321. package/dist/esm/components/image.props.js.map +3 -3
  322. package/dist/esm/components/link.props.d.ts +1 -1
  323. package/dist/esm/components/progress.props.d.ts +2 -2
  324. package/dist/esm/components/progress.props.js +1 -1
  325. package/dist/esm/components/progress.props.js.map +2 -2
  326. package/dist/esm/components/radio-cards.d.ts.map +1 -1
  327. package/dist/esm/components/radio-cards.js +1 -1
  328. package/dist/esm/components/radio-cards.js.map +3 -3
  329. package/dist/esm/components/radio-cards.props.d.ts +2 -2
  330. package/dist/esm/components/radio-cards.props.js +1 -1
  331. package/dist/esm/components/radio-cards.props.js.map +2 -2
  332. package/dist/esm/components/radio.d.ts.map +1 -1
  333. package/dist/esm/components/radio.js +1 -1
  334. package/dist/esm/components/radio.js.map +3 -3
  335. package/dist/esm/components/segmented-control.props.d.ts +3 -3
  336. package/dist/esm/components/segmented-control.props.js +1 -1
  337. package/dist/esm/components/segmented-control.props.js.map +2 -2
  338. package/dist/esm/components/select.d.ts.map +1 -1
  339. package/dist/esm/components/select.js +1 -1
  340. package/dist/esm/components/select.js.map +3 -3
  341. package/dist/esm/components/select.props.d.ts +12 -0
  342. package/dist/esm/components/select.props.d.ts.map +1 -1
  343. package/dist/esm/components/select.props.js +1 -1
  344. package/dist/esm/components/select.props.js.map +2 -2
  345. package/dist/esm/components/sidebar.d.ts +5 -0
  346. package/dist/esm/components/sidebar.d.ts.map +1 -1
  347. package/dist/esm/components/sidebar.js +1 -1
  348. package/dist/esm/components/sidebar.js.map +3 -3
  349. package/dist/esm/components/slider.d.ts +5 -0
  350. package/dist/esm/components/slider.d.ts.map +1 -1
  351. package/dist/esm/components/slider.js +1 -1
  352. package/dist/esm/components/slider.js.map +3 -3
  353. package/dist/esm/components/slider.props.d.ts +10 -2
  354. package/dist/esm/components/slider.props.d.ts.map +1 -1
  355. package/dist/esm/components/slider.props.js +1 -1
  356. package/dist/esm/components/slider.props.js.map +2 -2
  357. package/dist/esm/components/switch.d.ts.map +1 -1
  358. package/dist/esm/components/switch.js +1 -1
  359. package/dist/esm/components/switch.js.map +3 -3
  360. package/dist/esm/components/switch.props.d.ts +17 -4
  361. package/dist/esm/components/switch.props.d.ts.map +1 -1
  362. package/dist/esm/components/switch.props.js +1 -1
  363. package/dist/esm/components/switch.props.js.map +3 -3
  364. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  365. package/dist/esm/components/tab-nav.js +1 -1
  366. package/dist/esm/components/tab-nav.js.map +3 -3
  367. package/dist/esm/components/tabs.d.ts.map +1 -1
  368. package/dist/esm/components/tabs.js +1 -1
  369. package/dist/esm/components/tabs.js.map +2 -2
  370. package/dist/esm/components/text-area.d.ts.map +1 -1
  371. package/dist/esm/components/text-area.js +1 -1
  372. package/dist/esm/components/text-area.js.map +3 -3
  373. package/dist/esm/components/text-area.props.d.ts +29 -0
  374. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  375. package/dist/esm/components/text-area.props.js +1 -1
  376. package/dist/esm/components/text-area.props.js.map +3 -3
  377. package/dist/esm/components/text-field.d.ts.map +1 -1
  378. package/dist/esm/components/text-field.js +4 -4
  379. package/dist/esm/components/text-field.js.map +3 -3
  380. package/dist/esm/components/text-field.props.d.ts +29 -0
  381. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  382. package/dist/esm/components/text-field.props.js +1 -1
  383. package/dist/esm/components/text-field.props.js.map +3 -3
  384. package/dist/esm/components/text.props.d.ts +1 -1
  385. package/dist/esm/components/theme.d.ts +3 -0
  386. package/dist/esm/components/theme.d.ts.map +1 -1
  387. package/dist/esm/components/theme.js +1 -1
  388. package/dist/esm/components/theme.js.map +3 -3
  389. package/dist/esm/components/theme.props.d.ts +14 -0
  390. package/dist/esm/components/theme.props.d.ts.map +1 -1
  391. package/dist/esm/components/theme.props.js +1 -1
  392. package/dist/esm/components/theme.props.js.map +3 -3
  393. package/dist/esm/components/toggle-button.d.ts +52 -0
  394. package/dist/esm/components/toggle-button.d.ts.map +1 -1
  395. package/dist/esm/components/toggle-button.js +1 -1
  396. package/dist/esm/components/toggle-button.js.map +3 -3
  397. package/dist/esm/components/toggle-icon-button.d.ts +84 -2
  398. package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
  399. package/dist/esm/components/toggle-icon-button.js +1 -1
  400. package/dist/esm/components/toggle-icon-button.js.map +3 -3
  401. package/dist/esm/hooks/index.d.ts +2 -0
  402. package/dist/esm/hooks/index.d.ts.map +1 -0
  403. package/dist/esm/hooks/index.js +2 -0
  404. package/dist/esm/hooks/index.js.map +7 -0
  405. package/dist/esm/hooks/use-live-announcer.d.ts +6 -0
  406. package/dist/esm/hooks/use-live-announcer.d.ts.map +1 -0
  407. package/dist/esm/hooks/use-live-announcer.js +10 -0
  408. package/dist/esm/hooks/use-live-announcer.js.map +7 -0
  409. package/dist/esm/index.d.ts +1 -0
  410. package/dist/esm/index.d.ts.map +1 -1
  411. package/dist/esm/index.js +1 -1
  412. package/dist/esm/index.js.map +2 -2
  413. package/dist/esm/props/weight.prop.d.ts +1 -1
  414. package/dist/esm/props/weight.prop.js +1 -1
  415. package/dist/esm/props/weight.prop.js.map +2 -2
  416. package/layout/components.css +1 -0
  417. package/layout.css +1 -0
  418. package/package.json +2 -1
  419. package/src/components/_internal/base-button.css +483 -284
  420. package/src/components/_internal/base-button.props.ts +87 -0
  421. package/src/components/_internal/base-button.tsx +127 -10
  422. package/src/components/_internal/base-card.css +866 -83
  423. package/src/components/_internal/base-checkbox.css +252 -52
  424. package/src/components/_internal/base-checkbox.props.ts +4 -1
  425. package/src/components/_internal/base-dialog.css +39 -8
  426. package/src/components/_internal/base-menu.css +55 -32
  427. package/src/components/_internal/base-menu.props.ts +10 -0
  428. package/src/components/_internal/base-radio.css +222 -52
  429. package/src/components/_internal/base-radio.props.ts +4 -1
  430. package/src/components/_internal/base-tab-list.css +16 -0
  431. package/src/components/accordion.css +465 -62
  432. package/src/components/accordion.props.tsx +6 -0
  433. package/src/components/accordion.tsx +54 -7
  434. package/src/components/alert-dialog.props.tsx +22 -2
  435. package/src/components/alert-dialog.tsx +94 -3
  436. package/src/components/avatar.css +294 -152
  437. package/src/components/avatar.props.tsx +7 -1
  438. package/src/components/avatar.tsx +12 -2
  439. package/src/components/badge.css +160 -138
  440. package/src/components/badge.props.tsx +10 -3
  441. package/src/components/badge.tsx +71 -9
  442. package/src/components/button.css +88 -0
  443. package/src/components/button.props.tsx +17 -0
  444. package/src/components/button.tsx +107 -5
  445. package/src/components/callout.css +122 -35
  446. package/src/components/callout.props.tsx +7 -1
  447. package/src/components/callout.tsx +32 -9
  448. package/src/components/card.css +0 -597
  449. package/src/components/card.props.tsx +3 -0
  450. package/src/components/card.tsx +4 -2
  451. package/src/components/checkbox-cards.css +27 -104
  452. package/src/components/checkbox-cards.props.tsx +2 -2
  453. package/src/components/checkbox-cards.tsx +21 -3
  454. package/src/components/checkbox.tsx +2 -0
  455. package/src/components/code.css +1 -1
  456. package/src/components/code.tsx +1 -1
  457. package/src/components/container.css +1 -0
  458. package/src/components/context-menu.tsx +54 -12
  459. package/src/components/dialog.props.tsx +3 -0
  460. package/src/components/dialog.tsx +93 -3
  461. package/src/components/dropdown-menu.tsx +49 -12
  462. package/src/components/icon-button.css +73 -4
  463. package/src/components/icon-button.tsx +125 -19
  464. package/src/components/image.css +160 -91
  465. package/src/components/image.props.ts +152 -15
  466. package/src/components/image.tsx +290 -247
  467. package/src/components/kbd.css +23 -44
  468. package/src/components/progress.css +130 -149
  469. package/src/components/progress.props.tsx +2 -2
  470. package/src/components/radio-cards.css +23 -113
  471. package/src/components/radio-cards.props.tsx +2 -2
  472. package/src/components/radio-cards.tsx +45 -18
  473. package/src/components/radio.tsx +4 -3
  474. package/src/components/scroll-area.css +1 -1
  475. package/src/components/segmented-control.css +83 -64
  476. package/src/components/segmented-control.props.tsx +3 -3
  477. package/src/components/select.css +502 -224
  478. package/src/components/select.props.tsx +8 -0
  479. package/src/components/select.tsx +45 -2
  480. package/src/components/sidebar.css +17 -6
  481. package/src/components/sidebar.tsx +61 -5
  482. package/src/components/slider.css +228 -88
  483. package/src/components/slider.props.tsx +6 -2
  484. package/src/components/slider.tsx +201 -24
  485. package/src/components/spinner.css +12 -0
  486. package/src/components/switch.css +135 -216
  487. package/src/components/switch.props.tsx +16 -4
  488. package/src/components/switch.tsx +5 -3
  489. package/src/components/tab-nav.tsx +6 -3
  490. package/src/components/tabs.tsx +2 -0
  491. package/src/components/text-area.css +222 -140
  492. package/src/components/text-area.props.tsx +18 -1
  493. package/src/components/text-area.tsx +58 -7
  494. package/src/components/text-field.css +214 -131
  495. package/src/components/text-field.props.tsx +17 -0
  496. package/src/components/text-field.tsx +79 -28
  497. package/src/components/theme.props.tsx +12 -0
  498. package/src/components/theme.tsx +31 -1
  499. package/src/components/toggle-button.tsx +102 -3
  500. package/src/components/toggle-icon-button.tsx +150 -7
  501. package/src/components/tooltip.css +3 -3
  502. package/src/hooks/index.ts +1 -0
  503. package/src/hooks/use-live-announcer.ts +52 -0
  504. package/src/index.ts +1 -0
  505. package/src/props/weight.prop.ts +1 -1
  506. package/src/styles/fonts.css +27 -13
  507. package/src/styles/index.css +1 -1
  508. package/src/styles/tokens/base.css +2 -0
  509. package/src/styles/tokens/blur.css +32 -0
  510. package/src/styles/tokens/color.css +9 -9
  511. package/src/styles/tokens/constants.css +88 -140
  512. package/src/styles/tokens/index.css +2 -0
  513. package/src/styles/tokens/opacity.css +32 -0
  514. package/src/styles/tokens/radius.css +6 -10
  515. package/src/styles/tokens/shadow.css +25 -25
  516. package/src/styles/tokens/transition.css +49 -13
  517. package/src/styles/tokens/typography.css +7 -3
  518. package/src/styles/utilities/font-weight.css +16 -0
  519. package/styles.css +10689 -8708
  520. package/tokens/base.css +127 -49
  521. package/tokens.css +158 -114
  522. package/utilities.css +72 -0
@@ -1,159 +1,228 @@
1
+ /**
2
+ * Image Component Styles
3
+ *
4
+ * This file contains the core styling for the Image component, providing
5
+ * responsive image display with accessibility features, interactive states,
6
+ * and comprehensive support for different usage contexts.
7
+ *
8
+ * Key features:
9
+ * - Object-fit control for responsive image scaling
10
+ * - Interactive states for clickable images
11
+ * - Accessibility support (forced colors, reduced motion, screen readers)
12
+ * - Caption styling for additional context
13
+ * - Placeholder and loading state support
14
+ * - AsChild pattern compatibility
15
+ */
16
+
1
17
  /* stylelint-disable selector-max-type */
2
18
  /* Disable selector-max-type rule to target `button` and `a` tags. */
3
19
  /* Make sure these tags are wrapped in `:where()` for 0 specificity. */
4
20
 
21
+ /*
22
+ * Base Image styling
23
+ * Provides foundation styles for all image instances
24
+ */
5
25
  .rt-Image {
6
26
  display: block;
7
- object-fit: var(--object-fit);
8
- box-shadow: var(--box-shadow);
9
- border-radius: max(var(--radius-4), min(var(--radius-full), var(--radius-6)));
10
- transition: var(--transition-button);
27
+ object-fit: var(--object-fit); /* Controlled by fit prop */
28
+ border-radius: var(--radius-4); /* Default radius, can be overridden */
29
+ }
30
+
31
+ /*
32
+ * Screen reader only class for accessibility announcements
33
+ * Visually hidden but available to assistive technology
34
+ * Used for error messages and loading state announcements
35
+ */
36
+ .rt-sr-only {
37
+ position: absolute;
38
+ width: 1px;
39
+ height: 1px;
40
+ padding: 0;
41
+ margin: -1px;
42
+ overflow: hidden;
43
+ clip: rect(0, 0, 0, 0);
44
+ white-space: nowrap;
45
+ border: 0;
46
+ }
47
+
48
+ /*
49
+ * Reduced motion support for accessibility
50
+ * Respects user's motion preferences and disables animations
51
+ */
52
+ @media (prefers-reduced-motion: reduce) {
53
+ .rt-Image {
54
+ transition: none;
55
+ }
56
+ }
57
+
58
+ /*
59
+ * Forced colors support for high contrast mode
60
+ * Ensures images remain visible in Windows high contrast mode
61
+ */
62
+ @media (forced-colors: active) {
63
+ .rt-Image {
64
+ border: 1px solid CanvasText;
65
+ }
66
+
67
+ /* Enhanced focus visibility in forced colors mode */
68
+ .rt-Image:where(:focus-visible) {
69
+ outline: 2px solid Highlight;
70
+ outline-offset: 2px;
71
+ }
11
72
  }
12
73
 
13
- /* Interactive states - follows Card pattern */
74
+ /*
75
+ * Interactive states for clickable images
76
+ * Follows the Card component pattern for consistent interaction feedback
77
+ * Applied when Image is used as a link, button, or label
78
+ */
14
79
  .rt-Image:where(:any-link, button, label) {
15
80
  cursor: pointer;
81
+ transition: var(--transition-card), filter var(--duration-2) var(--ease-1); /* Smooth transitions for interactive states */
16
82
 
83
+ /*
84
+ * Hover effects with progressive enhancement
85
+ * Only applies on devices that support hover (excludes touch devices)
86
+ */
17
87
  @media (hover: hover) {
18
88
  &:where(:hover) {
19
- box-shadow:
20
- var(--box-shadow, var(--shadow-2)),
21
- 0 0 0 1px var(--gray-a4);
22
- filter: brightness(1.05) contrast(1.02);
89
+ box-shadow: var(--shadow-3); /* Subtle elevation on hover */
90
+ filter: brightness(1.05) contrast(1.02); /* Slight brightness/contrast boost */
23
91
  }
24
92
  }
25
93
 
94
+ /*
95
+ * Active state for pressed/clicked feedback
96
+ * Provides immediate visual response to user interaction
97
+ */
26
98
  &:where(:active) {
27
- filter: brightness(0.98) contrast(1.02);
99
+ filter: brightness(0.98) contrast(1.02); /* Slightly darker when pressed */
28
100
  }
29
101
 
102
+ /*
103
+ * Focus-visible state for keyboard navigation
104
+ * Ensures accessibility for keyboard users
105
+ */
30
106
  &:where(:focus-visible) {
31
107
  outline: 2px solid var(--focus-8);
32
- outline-offset: -2px;
108
+ outline-offset: -2px; /* Inner outline to stay within image bounds */
33
109
  }
34
110
  }
35
111
 
36
- /* Interactive states for asChild usage - target the wrapper element */
37
- :where(:any-link, button, label) .rt-Image {
112
+ /*
113
+ * Interactive states for asChild usage
114
+ * When Image is used with asChild pattern, styles apply to the wrapper element
115
+ * This ensures interactive feedback works correctly in composed scenarios
116
+ */
117
+ :where(:any-link, button, label) {
38
118
  cursor: pointer;
119
+ transition: var(--transition-card), filter var(--duration-2) var(--ease-1); /* Smooth transitions for interactive states */
39
120
 
121
+ /* Hover effects for wrapper elements */
40
122
  @media (hover: hover) {
41
123
  &:where(:hover) {
42
- box-shadow:
43
- var(--box-shadow, var(--shadow-2)),
44
- 0 0 0 1px var(--gray-a4);
124
+ /* box-shadow: var(--shadow-3); */
45
125
  filter: brightness(1.05) contrast(1.02);
46
126
  }
47
127
  }
48
128
 
129
+ /* Active state for wrapper elements */
49
130
  &:where(:active) {
50
131
  filter: brightness(0.98) contrast(1.02);
51
132
  }
52
133
  }
53
134
 
54
- /* Focus states for asChild usage - apply to the wrapper */
135
+ /*
136
+ * Focus states for asChild usage
137
+ * Apply focus outline to the wrapper element when using composition pattern
138
+ */
55
139
  :where(:any-link, button, label):where(:focus-visible) .rt-Image {
56
140
  outline: 2px solid var(--focus-8);
57
141
  outline-offset: -2px;
58
142
  }
59
143
 
60
- /* Blur variant wrapper */
61
- .rt-variant-blur {
62
- position: relative;
63
- }
64
-
65
- /* Blur variant when used with asChild - use inline-block for proper sizing */
66
- .rt-variant-blur--as-child {
67
- display: inline-block;
68
- }
69
-
70
- /* Interactive states for blur variant - follows Card pattern */
71
- .rt-variant-blur:where(:any-link, button, label) {
72
- cursor: pointer;
73
- transition: var(--transition-button);
74
144
 
75
- @media (hover: hover) {
76
- &:where(:hover) {
77
- filter: brightness(1.05) contrast(1.02);
78
- }
79
- }
80
145
 
81
- &:where(:active) {
82
- filter: brightness(0.98) contrast(1.02);
83
- }
146
+ /*
147
+ * Object-fit variants for responsive image scaling
148
+ * These classes control how images are resized to fit their containers
149
+ * Each variant serves different use cases and design requirements
150
+ */
84
151
 
85
- &:where(:focus-visible) {
86
- outline: 2px solid var(--focus-8);
87
- outline-offset: -2px;
88
- }
89
- }
90
-
91
- /* Disable individual image interactions when inside blur variant */
92
- /* stylelint-disable-next-line selector-max-specificity */
93
- .rt-variant-blur:where(:any-link, button, label) .rt-Image {
94
- cursor: inherit;
95
- transform: none !important;
96
- outline: none !important;
97
- box-shadow: var(--box-shadow) !important;
98
- }
99
-
100
- /* Blur background image - simplified */
101
- .rt-Image--blur-bg {
102
- /* No additional styles needed - all handled inline */
103
- }
104
-
105
- /* Image inside blur variant - simplified */
106
- .rt-Image--blur {
107
- /* No additional styles needed - all handled inline */
108
- }
109
-
110
- /* Object fit variants */
152
+ /*
153
+ * Cover fit: Scales image to cover entire container
154
+ * May crop edges but ensures no empty space
155
+ * Best for: Hero images, thumbnails, card backgrounds
156
+ */
111
157
  .rt-r-fit-cover {
112
158
  --object-fit: cover;
113
159
  }
114
160
 
161
+ /*
162
+ * Contain fit: Scales image to fit entirely within container
163
+ * May leave empty space but shows complete image
164
+ * Best for: Product images, logos, artwork
165
+ */
115
166
  .rt-r-fit-contain {
116
167
  --object-fit: contain;
117
168
  }
118
169
 
170
+ /*
171
+ * Fill fit: Stretches image to fill container exactly
172
+ * May distort aspect ratio, use with caution
173
+ * Best for: When exact dimensions are required regardless of distortion
174
+ */
119
175
  .rt-r-fit-fill {
120
176
  --object-fit: fill;
121
177
  }
122
178
 
179
+ /*
180
+ * Scale-down fit: Acts like contain but never scales up
181
+ * Prevents small images from becoming pixelated
182
+ * Best for: User-uploaded content, variable-sized images
183
+ */
123
184
  .rt-r-fit-scale-down {
124
185
  --object-fit: scale-down;
125
186
  }
126
187
 
188
+ /*
189
+ * None fit: Image keeps original size
190
+ * May overflow container or leave empty space
191
+ * Best for: Pixel-perfect images, sprites, when original sizing is important
192
+ */
127
193
  .rt-r-fit-none {
128
194
  --object-fit: none;
129
195
  }
130
196
 
131
- /* Shadow variants */
132
- .rt-r-shadow-1 {
133
- --box-shadow: var(--shadow-1);
134
- }
135
-
136
- .rt-r-shadow-2 {
137
- --box-shadow: var(--shadow-2);
138
- }
139
-
140
- .rt-r-shadow-3 {
141
- --box-shadow: var(--shadow-3);
142
- }
143
-
144
- .rt-r-shadow-4 {
145
- --box-shadow: var(--shadow-4);
146
- }
147
-
148
- .rt-r-shadow-5 {
149
- --box-shadow: var(--shadow-5);
150
- }
151
-
152
- .rt-r-shadow-6 {
153
- --box-shadow: var(--shadow-6);
154
- }
197
+ /*
198
+ * Loading and placeholder states
199
+ * Styles for different image loading phases
200
+ */
155
201
 
156
- /* Loading states */
202
+ /*
203
+ * Placeholder image styling
204
+ * Positioned behind the main image with lower z-index
205
+ */
157
206
  .rt-Image--placeholder {
158
- z-index: 0;
207
+ z-index: 0; /* Ensures placeholder appears behind main image */
208
+ }
209
+
210
+ /*
211
+ * Caption styling for additional image context
212
+ * Provides consistent typography and layout for image descriptions
213
+ */
214
+ .rt-Image-caption {
215
+ font-size: var(--font-size-1); /* Small, readable text */
216
+ font-weight: var(--font-weight-regular); /* Regular weight for readability */
217
+ color: var(--gray-11); /* Subtle but readable color */
218
+ margin-top: var(--space-2); /* Consistent spacing from image */
219
+ text-align: center; /* Centered alignment for visual balance */
220
+
221
+ /*
222
+ * Text wrapping and hyphenation for better layout
223
+ * Prevents caption text from breaking the layout
224
+ */
225
+ word-wrap: break-word;
226
+ overflow-wrap: break-word;
227
+ hyphens: auto; /* Automatic hyphenation for long words */
159
228
  }
@@ -1,24 +1,92 @@
1
1
  import { asChildPropDef } from '../props/as-child.prop.js';
2
2
  import { radiusPropDef } from '../props/radius.prop.js';
3
- import { shadowPropDefs } from '../props/shadow.props.js';
4
3
 
5
4
  import type { PropDef } from '../props/prop-def.js';
6
5
 
6
+ /**
7
+ * Available object-fit values for controlling image scaling behavior
8
+ *
9
+ * - cover: Scales image to cover entire container, may crop edges
10
+ * - contain: Scales image to fit entirely within container, may have empty space
11
+ * - fill: Stretches image to fill container exactly, may distort aspect ratio
12
+ * - scale-down: Acts like 'contain' but never scales up beyond original size
13
+ * - none: Image keeps original size, may overflow or leave empty space
14
+ */
7
15
  const objectFitValues = ['cover', 'contain', 'fill', 'scale-down', 'none'] as const;
8
- const variants = ['surface', 'blur'] as const;
9
16
 
17
+ /**
18
+ * Available visual variants for the Image component
19
+ * Currently only 'surface' variant is available, providing subtle elevation
20
+ */
21
+ const variants = ['surface'] as const;
22
+
23
+ /**
24
+ * Image component prop definitions that define the component's API
25
+ *
26
+ * These props control the visual appearance, behavior, and accessibility
27
+ * features of the Image component. The component supports responsive
28
+ * design, accessibility compliance, and flexible layout options.
29
+ *
30
+ * Key features:
31
+ * - Object-fit control for responsive image scaling
32
+ * - Radius control for rounded corners
33
+ * - Caption support for additional context
34
+ * - Accessibility labels for loading and error states
35
+ * - AsChild pattern for flexible composition
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * // Basic image with cover fit
40
+ * <Image src="/photo.jpg" alt="Team photo" fit="cover" />
41
+ *
42
+ * // Image with caption and custom radius
43
+ * <Image
44
+ * src="/chart.png"
45
+ * alt="Sales data"
46
+ * caption="Q3 2024 Performance"
47
+ * radius="medium"
48
+ * />
49
+ *
50
+ * // Responsive object-fit
51
+ * <Image
52
+ * src="/banner.jpg"
53
+ * alt="Hero banner"
54
+ * fit={{ initial: 'cover', md: 'contain' }}
55
+ * />
56
+ * ```
57
+ */
10
58
  const imagePropDefs = {
11
59
  ...asChildPropDef,
60
+ ...radiusPropDef,
12
61
  /**
13
- * Sets the CSS **object-fit** property.
14
- * Controls how the image should be resized to fit its container.
15
- *
62
+ * Controls how the image should be resized to fit its container
63
+ *
64
+ * Sets the CSS object-fit property with responsive support.
65
+ * Choose the right fit based on your design needs:
66
+ *
67
+ * - 'cover': Best for hero images, thumbnails, and cards where you want to fill the space
68
+ * - 'contain': Best for product images, logos, and content where the entire image must be visible
69
+ * - 'fill': Use carefully, only when you want to stretch the image to exact dimensions
70
+ * - 'scale-down': Good for user-uploaded content where you don't want to enlarge small images
71
+ * - 'none': Useful for pixel-perfect images or when you want original sizing
72
+ *
16
73
  * @example
17
- * fit="cover"
18
- * fit="contain"
74
+ * ```tsx
75
+ * // Fill the container, may crop edges
76
+ * <Image src="/hero.jpg" fit="cover" alt="Hero image" />
77
+ *
78
+ * // Show entire image, may have empty space
79
+ * <Image src="/logo.png" fit="contain" alt="Company logo" />
80
+ *
81
+ * // Responsive fit
82
+ * <Image
83
+ * src="/banner.jpg"
84
+ * fit={{ initial: 'cover', lg: 'contain' }}
85
+ * alt="Responsive banner"
86
+ * />
87
+ * ```
19
88
  *
20
- * @link
21
- * https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit
89
+ * @link https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit
22
90
  */
23
91
  fit: {
24
92
  type: 'enum',
@@ -28,11 +96,15 @@ const imagePropDefs = {
28
96
  responsive: true,
29
97
  },
30
98
  /**
31
- * Sets the visual variant of the image.
32
- *
99
+ * Visual variant that determines the image's appearance style
100
+ *
101
+ * Currently supports 'surface' variant which provides subtle elevation
102
+ * and integrates well with card-based layouts and content sections.
103
+ *
33
104
  * @example
34
- * variant="surface"
35
- * variant="blur"
105
+ * ```tsx
106
+ * <Image src="/photo.jpg" variant="surface" alt="Elevated image" />
107
+ * ```
36
108
  */
37
109
  variant: {
38
110
  type: 'enum',
@@ -40,11 +112,76 @@ const imagePropDefs = {
40
112
  values: variants,
41
113
  default: 'surface',
42
114
  },
43
- ...radiusPropDef,
44
- ...shadowPropDefs,
115
+ /**
116
+ * ARIA label announced by screen readers during image loading
117
+ *
118
+ * Provides accessibility feedback for users with visual impairments.
119
+ * Customize this message to match your application's language and tone.
120
+ *
121
+ * @example
122
+ * ```tsx
123
+ * <Image
124
+ * src="/chart.jpg"
125
+ * loadingAriaLabel="Loading sales chart..."
126
+ * alt="Sales performance chart"
127
+ * />
128
+ * ```
129
+ */
130
+ loadingAriaLabel: {
131
+ type: 'string',
132
+ default: 'Loading image...',
133
+ },
134
+ /**
135
+ * ARIA label announced by screen readers when image loading fails
136
+ *
137
+ * Provides accessibility feedback for error states.
138
+ * Should clearly indicate that the image failed to load and may suggest alternatives.
139
+ *
140
+ * @example
141
+ * ```tsx
142
+ * <Image
143
+ * src="/photo.jpg"
144
+ * errorAriaLabel="Photo failed to load. Please refresh the page."
145
+ * alt="Team photo"
146
+ * />
147
+ * ```
148
+ */
149
+ errorAriaLabel: {
150
+ type: 'string',
151
+ default: 'Failed to load image',
152
+ },
153
+ /**
154
+ * Optional caption text displayed below the image
155
+ *
156
+ * Provides additional context, description, or attribution for the image.
157
+ * The caption is styled consistently and positioned below the image content.
158
+ *
159
+ * Use captions for:
160
+ * - Photo credits and attributions
161
+ * - Additional context or explanation
162
+ * - Data source information for charts
163
+ * - Descriptive text that supplements the alt attribute
164
+ *
165
+ * @example
166
+ * ```tsx
167
+ * <Image
168
+ * src="/chart.png"
169
+ * alt="Q3 sales performance showing 25% growth"
170
+ * caption="Data source: Internal sales tracking system"
171
+ * />
172
+ * ```
173
+ */
174
+ caption: {
175
+ type: 'string',
176
+ default: undefined,
177
+ },
45
178
  } satisfies {
46
179
  fit: PropDef<(typeof objectFitValues)[number]>;
47
180
  variant: PropDef<(typeof variants)[number]>;
181
+ loadingAriaLabel: PropDef<string>;
182
+ errorAriaLabel: PropDef<string>;
183
+ radius: PropDef<'none' | 'small' | 'medium' | 'large' | 'full'>;
184
+ caption: PropDef<string | undefined>;
48
185
  };
49
186
 
50
187
  export { imagePropDefs };