@puzzle-ui/ui 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. package/README.md +97 -2
  2. package/dist/LICENSE +21 -0
  3. package/dist/components/actions/button/button-content.cjs +41 -0
  4. package/dist/components/actions/button/button-content.cjs.map +1 -0
  5. package/dist/components/actions/button/button-content.js +41 -0
  6. package/dist/components/actions/button/button-content.js.map +1 -0
  7. package/dist/components/actions/button/button.css +191 -0
  8. package/dist/components/actions/button/button.types.d.cts +30 -0
  9. package/dist/components/actions/button/button.types.d.ts +30 -0
  10. package/dist/components/actions/button/index.cjs +80 -0
  11. package/dist/components/actions/button/index.cjs.map +1 -0
  12. package/dist/components/actions/button/index.d.cts +3 -0
  13. package/dist/components/actions/button/index.d.ts +3 -0
  14. package/dist/components/actions/button/index.js +80 -0
  15. package/dist/components/actions/button/index.js.map +1 -0
  16. package/dist/components/actions/button-group/button-group.css +64 -0
  17. package/dist/components/actions/button-group/index.cjs +25 -0
  18. package/dist/components/actions/button-group/index.cjs.map +1 -0
  19. package/dist/components/actions/button-group/index.d.cts +14 -0
  20. package/dist/components/actions/button-group/index.d.ts +14 -0
  21. package/dist/components/actions/button-group/index.js +25 -0
  22. package/dist/components/actions/button-group/index.js.map +1 -0
  23. package/dist/components/actions/toggle-group/index.cjs +124 -0
  24. package/dist/components/actions/toggle-group/index.cjs.map +1 -0
  25. package/dist/components/actions/toggle-group/index.d.cts +10 -0
  26. package/dist/components/actions/toggle-group/index.d.ts +10 -0
  27. package/dist/components/actions/toggle-group/index.js +124 -0
  28. package/dist/components/actions/toggle-group/index.js.map +1 -0
  29. package/dist/components/actions/toggle-group/toggle-group.css +67 -0
  30. package/dist/components/actions/toggle-group/toggle-group.types.d.cts +54 -0
  31. package/dist/components/actions/toggle-group/toggle-group.types.d.ts +54 -0
  32. package/dist/components/data-display/alert/alert.css +128 -0
  33. package/dist/components/data-display/alert/alert.types.d.cts +14 -0
  34. package/dist/components/data-display/alert/alert.types.d.ts +14 -0
  35. package/dist/components/data-display/alert/alert.utils.cjs +11 -0
  36. package/dist/components/data-display/alert/alert.utils.cjs.map +1 -0
  37. package/dist/components/data-display/alert/alert.utils.js +11 -0
  38. package/dist/components/data-display/alert/alert.utils.js.map +1 -0
  39. package/dist/components/data-display/alert/index.cjs +103 -0
  40. package/dist/components/data-display/alert/index.cjs.map +1 -0
  41. package/dist/components/data-display/alert/index.d.cts +3 -0
  42. package/dist/components/data-display/alert/index.d.ts +3 -0
  43. package/dist/components/data-display/alert/index.js +103 -0
  44. package/dist/components/data-display/alert/index.js.map +1 -0
  45. package/dist/components/data-display/avatar/avatar.css +30 -0
  46. package/dist/components/data-display/avatar/index.cjs +42 -0
  47. package/dist/components/data-display/avatar/index.cjs.map +1 -0
  48. package/dist/components/data-display/avatar/index.d.cts +10 -0
  49. package/dist/components/data-display/avatar/index.d.ts +10 -0
  50. package/dist/components/data-display/avatar/index.js +42 -0
  51. package/dist/components/data-display/avatar/index.js.map +1 -0
  52. package/dist/components/data-display/badge/badge.css +91 -0
  53. package/dist/components/data-display/badge/index.cjs +31 -0
  54. package/dist/components/data-display/badge/index.cjs.map +1 -0
  55. package/dist/components/data-display/badge/index.d.cts +18 -0
  56. package/dist/components/data-display/badge/index.d.ts +18 -0
  57. package/dist/components/data-display/badge/index.js +31 -0
  58. package/dist/components/data-display/badge/index.js.map +1 -0
  59. package/dist/components/data-display/card/card.css +164 -0
  60. package/dist/components/data-display/card/index.cjs +42 -0
  61. package/dist/components/data-display/card/index.cjs.map +1 -0
  62. package/dist/components/data-display/card/index.d.cts +29 -0
  63. package/dist/components/data-display/card/index.d.ts +29 -0
  64. package/dist/components/data-display/card/index.js +35 -0
  65. package/dist/components/data-display/card/index.js.map +1 -0
  66. package/dist/components/data-display/image/image.css +80 -0
  67. package/dist/components/data-display/image/image.types.d.cts +154 -0
  68. package/dist/components/data-display/image/image.types.d.ts +154 -0
  69. package/dist/components/data-display/image/image.utils.cjs +55 -0
  70. package/dist/components/data-display/image/image.utils.cjs.map +1 -0
  71. package/dist/components/data-display/image/image.utils.js +51 -0
  72. package/dist/components/data-display/image/image.utils.js.map +1 -0
  73. package/dist/components/data-display/image/index.cjs +176 -0
  74. package/dist/components/data-display/image/index.cjs.map +1 -0
  75. package/dist/components/data-display/image/index.d.cts +3 -0
  76. package/dist/components/data-display/image/index.d.ts +3 -0
  77. package/dist/components/data-display/image/index.js +176 -0
  78. package/dist/components/data-display/image/index.js.map +1 -0
  79. package/dist/components/data-display/image/use-image-state.cjs +54 -0
  80. package/dist/components/data-display/image/use-image-state.cjs.map +1 -0
  81. package/dist/components/data-display/image/use-image-state.js +54 -0
  82. package/dist/components/data-display/image/use-image-state.js.map +1 -0
  83. package/dist/components/data-display/paper/index.cjs +16 -0
  84. package/dist/components/data-display/paper/index.cjs.map +1 -0
  85. package/dist/components/data-display/paper/index.d.cts +8 -0
  86. package/dist/components/data-display/paper/index.d.ts +8 -0
  87. package/dist/components/data-display/paper/index.js +16 -0
  88. package/dist/components/data-display/paper/index.js.map +1 -0
  89. package/dist/components/data-display/paper/paper.css +40 -0
  90. package/dist/components/data-display/progress/circular-progress.cjs +75 -0
  91. package/dist/components/data-display/progress/circular-progress.cjs.map +1 -0
  92. package/dist/components/data-display/progress/circular-progress.css +21 -0
  93. package/dist/components/data-display/progress/circular-progress.d.cts +9 -0
  94. package/dist/components/data-display/progress/circular-progress.d.ts +9 -0
  95. package/dist/components/data-display/progress/circular-progress.js +75 -0
  96. package/dist/components/data-display/progress/circular-progress.js.map +1 -0
  97. package/dist/components/data-display/progress/linear-progress.cjs +32 -0
  98. package/dist/components/data-display/progress/linear-progress.cjs.map +1 -0
  99. package/dist/components/data-display/progress/linear-progress.css +39 -0
  100. package/dist/components/data-display/progress/linear-progress.d.cts +5 -0
  101. package/dist/components/data-display/progress/linear-progress.d.ts +5 -0
  102. package/dist/components/data-display/progress/linear-progress.js +32 -0
  103. package/dist/components/data-display/progress/linear-progress.js.map +1 -0
  104. package/dist/components/data-display/progress/types.d.cts +5 -0
  105. package/dist/components/data-display/progress/types.d.ts +5 -0
  106. package/dist/components/data-display/progress/utils.cjs +16 -0
  107. package/dist/components/data-display/progress/utils.cjs.map +1 -0
  108. package/dist/components/data-display/progress/utils.js +15 -0
  109. package/dist/components/data-display/progress/utils.js.map +1 -0
  110. package/dist/components/data-display/skeleton/index.cjs +18 -0
  111. package/dist/components/data-display/skeleton/index.cjs.map +1 -0
  112. package/dist/components/data-display/skeleton/index.d.cts +10 -0
  113. package/dist/components/data-display/skeleton/index.d.ts +10 -0
  114. package/dist/components/data-display/skeleton/index.js +18 -0
  115. package/dist/components/data-display/skeleton/index.js.map +1 -0
  116. package/dist/components/data-display/skeleton/skeleton.css +47 -0
  117. package/dist/components/editors/text-editor/editor.cjs +620 -0
  118. package/dist/components/editors/text-editor/editor.cjs.map +1 -0
  119. package/dist/components/editors/text-editor/editor.d.cts +1 -0
  120. package/dist/components/editors/text-editor/editor.d.ts +1 -0
  121. package/dist/components/editors/text-editor/editor.js +620 -0
  122. package/dist/components/editors/text-editor/editor.js.map +1 -0
  123. package/dist/components/editors/text-editor/index.cjs +39 -0
  124. package/dist/components/editors/text-editor/index.cjs.map +1 -0
  125. package/dist/components/editors/text-editor/index.d.cts +13 -0
  126. package/dist/components/editors/text-editor/index.d.ts +13 -0
  127. package/dist/components/editors/text-editor/index.js +38 -0
  128. package/dist/components/editors/text-editor/index.js.map +1 -0
  129. package/dist/components/editors/text-editor/text-document.cjs +406 -0
  130. package/dist/components/editors/text-editor/text-document.cjs.map +1 -0
  131. package/dist/components/editors/text-editor/text-document.js +391 -0
  132. package/dist/components/editors/text-editor/text-document.js.map +1 -0
  133. package/dist/components/editors/text-editor/text-editor-toolbar.cjs +251 -0
  134. package/dist/components/editors/text-editor/text-editor-toolbar.cjs.map +1 -0
  135. package/dist/components/editors/text-editor/text-editor-toolbar.css +16 -0
  136. package/dist/components/editors/text-editor/text-editor-toolbar.d.cts +7 -0
  137. package/dist/components/editors/text-editor/text-editor-toolbar.d.ts +7 -0
  138. package/dist/components/editors/text-editor/text-editor-toolbar.js +251 -0
  139. package/dist/components/editors/text-editor/text-editor-toolbar.js.map +1 -0
  140. package/dist/components/editors/text-editor/text-editor.css +116 -0
  141. package/dist/components/editors/text-editor/text-editor.types.d.cts +37 -0
  142. package/dist/components/editors/text-editor/text-editor.types.d.ts +37 -0
  143. package/dist/components/editors/text-editor/text-parser.cjs +262 -0
  144. package/dist/components/editors/text-editor/text-parser.cjs.map +1 -0
  145. package/dist/components/editors/text-editor/text-parser.js +261 -0
  146. package/dist/components/editors/text-editor/text-parser.js.map +1 -0
  147. package/dist/components/editors/text-editor/text-renderer.cjs +85 -0
  148. package/dist/components/editors/text-editor/text-renderer.cjs.map +1 -0
  149. package/dist/components/editors/text-editor/text-renderer.d.cts +7 -0
  150. package/dist/components/editors/text-editor/text-renderer.d.ts +7 -0
  151. package/dist/components/editors/text-editor/text-renderer.js +85 -0
  152. package/dist/components/editors/text-editor/text-renderer.js.map +1 -0
  153. package/dist/components/forms/autocomplete/autocomplete.css +384 -0
  154. package/dist/components/forms/autocomplete/autocomplete.types.d.cts +86 -0
  155. package/dist/components/forms/autocomplete/autocomplete.types.d.ts +86 -0
  156. package/dist/components/forms/autocomplete/autocomplete.utils.cjs +47 -0
  157. package/dist/components/forms/autocomplete/autocomplete.utils.cjs.map +1 -0
  158. package/dist/components/forms/autocomplete/autocomplete.utils.js +44 -0
  159. package/dist/components/forms/autocomplete/autocomplete.utils.js.map +1 -0
  160. package/dist/components/forms/autocomplete/index.cjs +532 -0
  161. package/dist/components/forms/autocomplete/index.cjs.map +1 -0
  162. package/dist/components/forms/autocomplete/index.d.cts +3 -0
  163. package/dist/components/forms/autocomplete/index.d.ts +3 -0
  164. package/dist/components/forms/autocomplete/index.js +532 -0
  165. package/dist/components/forms/autocomplete/index.js.map +1 -0
  166. package/dist/components/forms/checkbox/checkbox.css +146 -0
  167. package/dist/components/forms/checkbox/index.cjs +80 -0
  168. package/dist/components/forms/checkbox/index.cjs.map +1 -0
  169. package/dist/components/forms/checkbox/index.d.cts +20 -0
  170. package/dist/components/forms/checkbox/index.d.ts +20 -0
  171. package/dist/components/forms/checkbox/index.js +80 -0
  172. package/dist/components/forms/checkbox/index.js.map +1 -0
  173. package/dist/components/forms/date-picker/date-picker.css +478 -0
  174. package/dist/components/forms/date-picker/date-picker.types.d.cts +75 -0
  175. package/dist/components/forms/date-picker/date-picker.types.d.ts +75 -0
  176. package/dist/components/forms/date-picker/date-picker.utils.cjs +76 -0
  177. package/dist/components/forms/date-picker/date-picker.utils.cjs.map +1 -0
  178. package/dist/components/forms/date-picker/date-picker.utils.js +64 -0
  179. package/dist/components/forms/date-picker/date-picker.utils.js.map +1 -0
  180. package/dist/components/forms/date-picker/index.cjs +572 -0
  181. package/dist/components/forms/date-picker/index.cjs.map +1 -0
  182. package/dist/components/forms/date-picker/index.d.cts +3 -0
  183. package/dist/components/forms/date-picker/index.d.ts +3 -0
  184. package/dist/components/forms/date-picker/index.js +572 -0
  185. package/dist/components/forms/date-picker/index.js.map +1 -0
  186. package/dist/components/forms/file-upload/file-upload.css +290 -0
  187. package/dist/components/forms/file-upload/file-upload.types.d.cts +51 -0
  188. package/dist/components/forms/file-upload/file-upload.types.d.ts +51 -0
  189. package/dist/components/forms/file-upload/file-upload.utils.cjs +76 -0
  190. package/dist/components/forms/file-upload/file-upload.utils.cjs.map +1 -0
  191. package/dist/components/forms/file-upload/file-upload.utils.js +72 -0
  192. package/dist/components/forms/file-upload/file-upload.utils.js.map +1 -0
  193. package/dist/components/forms/file-upload/index.cjs +346 -0
  194. package/dist/components/forms/file-upload/index.cjs.map +1 -0
  195. package/dist/components/forms/file-upload/index.d.cts +3 -0
  196. package/dist/components/forms/file-upload/index.d.ts +3 -0
  197. package/dist/components/forms/file-upload/index.js +346 -0
  198. package/dist/components/forms/file-upload/index.js.map +1 -0
  199. package/dist/components/forms/form-field/form-field-state.cjs +25 -0
  200. package/dist/components/forms/form-field/form-field-state.cjs.map +1 -0
  201. package/dist/components/forms/form-field/form-field-state.js +25 -0
  202. package/dist/components/forms/form-field/form-field-state.js.map +1 -0
  203. package/dist/components/forms/form-field/form-field.css +44 -0
  204. package/dist/components/forms/form-field/index.cjs +61 -0
  205. package/dist/components/forms/form-field/index.cjs.map +1 -0
  206. package/dist/components/forms/form-field/index.d.cts +23 -0
  207. package/dist/components/forms/form-field/index.d.ts +23 -0
  208. package/dist/components/forms/form-field/index.js +61 -0
  209. package/dist/components/forms/form-field/index.js.map +1 -0
  210. package/dist/components/forms/input/index.d.cts +4 -0
  211. package/dist/components/forms/input/index.d.ts +4 -0
  212. package/dist/components/forms/input/input.css +153 -0
  213. package/dist/components/forms/input/number-input.cjs +192 -0
  214. package/dist/components/forms/input/number-input.cjs.map +1 -0
  215. package/dist/components/forms/input/number-input.d.cts +20 -0
  216. package/dist/components/forms/input/number-input.d.ts +20 -0
  217. package/dist/components/forms/input/number-input.js +192 -0
  218. package/dist/components/forms/input/number-input.js.map +1 -0
  219. package/dist/components/forms/input/text-area-input.cjs +47 -0
  220. package/dist/components/forms/input/text-area-input.cjs.map +1 -0
  221. package/dist/components/forms/input/text-area-input.d.cts +8 -0
  222. package/dist/components/forms/input/text-area-input.d.ts +8 -0
  223. package/dist/components/forms/input/text-area-input.js +47 -0
  224. package/dist/components/forms/input/text-area-input.js.map +1 -0
  225. package/dist/components/forms/input/text-input.cjs +47 -0
  226. package/dist/components/forms/input/text-input.cjs.map +1 -0
  227. package/dist/components/forms/input/text-input.d.cts +9 -0
  228. package/dist/components/forms/input/text-input.d.ts +9 -0
  229. package/dist/components/forms/input/text-input.js +47 -0
  230. package/dist/components/forms/input/text-input.js.map +1 -0
  231. package/dist/components/forms/label/index.cjs +26 -0
  232. package/dist/components/forms/label/index.cjs.map +1 -0
  233. package/dist/components/forms/label/index.d.cts +8 -0
  234. package/dist/components/forms/label/index.d.ts +8 -0
  235. package/dist/components/forms/label/index.js +26 -0
  236. package/dist/components/forms/label/index.js.map +1 -0
  237. package/dist/components/forms/label/label.css +22 -0
  238. package/dist/components/forms/radio-group/index.cjs +226 -0
  239. package/dist/components/forms/radio-group/index.cjs.map +1 -0
  240. package/dist/components/forms/radio-group/index.d.cts +5 -0
  241. package/dist/components/forms/radio-group/index.d.ts +5 -0
  242. package/dist/components/forms/radio-group/index.js +225 -0
  243. package/dist/components/forms/radio-group/index.js.map +1 -0
  244. package/dist/components/forms/radio-group/radio-group.css +222 -0
  245. package/dist/components/forms/radio-group/radio-group.types.d.cts +51 -0
  246. package/dist/components/forms/radio-group/radio-group.types.d.ts +51 -0
  247. package/dist/components/forms/radio-group/radio-group.utils.cjs +22 -0
  248. package/dist/components/forms/radio-group/radio-group.utils.cjs.map +1 -0
  249. package/dist/components/forms/radio-group/radio-group.utils.js +21 -0
  250. package/dist/components/forms/radio-group/radio-group.utils.js.map +1 -0
  251. package/dist/components/forms/select/index.cjs +468 -0
  252. package/dist/components/forms/select/index.cjs.map +1 -0
  253. package/dist/components/forms/select/index.d.cts +112 -0
  254. package/dist/components/forms/select/index.d.ts +112 -0
  255. package/dist/components/forms/select/index.js +468 -0
  256. package/dist/components/forms/select/index.js.map +1 -0
  257. package/dist/components/forms/select/select.css +363 -0
  258. package/dist/components/forms/slider/index.cjs +93 -0
  259. package/dist/components/forms/slider/index.cjs.map +1 -0
  260. package/dist/components/forms/slider/index.d.cts +37 -0
  261. package/dist/components/forms/slider/index.d.ts +37 -0
  262. package/dist/components/forms/slider/index.js +93 -0
  263. package/dist/components/forms/slider/index.js.map +1 -0
  264. package/dist/components/forms/slider/slider.css +202 -0
  265. package/dist/components/forms/stepper/index.cjs +113 -0
  266. package/dist/components/forms/stepper/index.cjs.map +1 -0
  267. package/dist/components/forms/stepper/index.d.cts +48 -0
  268. package/dist/components/forms/stepper/index.d.ts +48 -0
  269. package/dist/components/forms/stepper/index.js +113 -0
  270. package/dist/components/forms/stepper/index.js.map +1 -0
  271. package/dist/components/forms/stepper/stepper.css +241 -0
  272. package/dist/components/forms/switch/index.cjs +45 -0
  273. package/dist/components/forms/switch/index.cjs.map +1 -0
  274. package/dist/components/forms/switch/index.d.cts +11 -0
  275. package/dist/components/forms/switch/index.d.ts +11 -0
  276. package/dist/components/forms/switch/index.js +45 -0
  277. package/dist/components/forms/switch/index.js.map +1 -0
  278. package/dist/components/forms/switch/switch.css +142 -0
  279. package/dist/components/layout/app-bar/app-bar.css +197 -0
  280. package/dist/components/layout/app-bar/index.cjs +150 -0
  281. package/dist/components/layout/app-bar/index.cjs.map +1 -0
  282. package/dist/components/layout/app-bar/index.d.cts +21 -0
  283. package/dist/components/layout/app-bar/index.d.ts +21 -0
  284. package/dist/components/layout/app-bar/index.js +150 -0
  285. package/dist/components/layout/app-bar/index.js.map +1 -0
  286. package/dist/components/layout/background/background.css +160 -0
  287. package/dist/components/layout/background/index.cjs +34 -0
  288. package/dist/components/layout/background/index.cjs.map +1 -0
  289. package/dist/components/layout/background/index.d.cts +23 -0
  290. package/dist/components/layout/background/index.d.ts +23 -0
  291. package/dist/components/layout/background/index.js +34 -0
  292. package/dist/components/layout/background/index.js.map +1 -0
  293. package/dist/components/layout/bottom-navigation/bottom-navigation.css +108 -0
  294. package/dist/components/layout/bottom-navigation/index.cjs +51 -0
  295. package/dist/components/layout/bottom-navigation/index.cjs.map +1 -0
  296. package/dist/components/layout/bottom-navigation/index.d.cts +19 -0
  297. package/dist/components/layout/bottom-navigation/index.d.ts +19 -0
  298. package/dist/components/layout/bottom-navigation/index.js +50 -0
  299. package/dist/components/layout/bottom-navigation/index.js.map +1 -0
  300. package/dist/components/layout/breadcrumbs/breadcrumbs.css +80 -0
  301. package/dist/components/layout/breadcrumbs/index.cjs +38 -0
  302. package/dist/components/layout/breadcrumbs/index.cjs.map +1 -0
  303. package/dist/components/layout/breadcrumbs/index.d.cts +18 -0
  304. package/dist/components/layout/breadcrumbs/index.d.ts +18 -0
  305. package/dist/components/layout/breadcrumbs/index.js +38 -0
  306. package/dist/components/layout/breadcrumbs/index.js.map +1 -0
  307. package/dist/components/layout/collapsable-sidebar/collapsable-sidebar.css +240 -0
  308. package/dist/components/layout/collapsable-sidebar/index.cjs +107 -0
  309. package/dist/components/layout/collapsable-sidebar/index.cjs.map +1 -0
  310. package/dist/components/layout/collapsable-sidebar/index.d.cts +35 -0
  311. package/dist/components/layout/collapsable-sidebar/index.d.ts +35 -0
  312. package/dist/components/layout/collapsable-sidebar/index.js +107 -0
  313. package/dist/components/layout/collapsable-sidebar/index.js.map +1 -0
  314. package/dist/components/layout/container/container.css +24 -0
  315. package/dist/components/layout/container/container.utils.cjs +11 -0
  316. package/dist/components/layout/container/container.utils.cjs.map +1 -0
  317. package/dist/components/layout/container/container.utils.d.cts +1 -0
  318. package/dist/components/layout/container/container.utils.d.ts +1 -0
  319. package/dist/components/layout/container/container.utils.js +11 -0
  320. package/dist/components/layout/container/container.utils.js.map +1 -0
  321. package/dist/components/layout/container/index.cjs +17 -0
  322. package/dist/components/layout/container/index.cjs.map +1 -0
  323. package/dist/components/layout/container/index.d.cts +11 -0
  324. package/dist/components/layout/container/index.d.ts +11 -0
  325. package/dist/components/layout/container/index.js +17 -0
  326. package/dist/components/layout/container/index.js.map +1 -0
  327. package/dist/components/layout/page-layout/index.cjs +80 -0
  328. package/dist/components/layout/page-layout/index.cjs.map +1 -0
  329. package/dist/components/layout/page-layout/index.d.cts +61 -0
  330. package/dist/components/layout/page-layout/index.d.ts +61 -0
  331. package/dist/components/layout/page-layout/index.js +80 -0
  332. package/dist/components/layout/page-layout/index.js.map +1 -0
  333. package/dist/components/layout/page-layout/page-layout.css +88 -0
  334. package/dist/components/layout/resizable-panels/index.cjs +226 -0
  335. package/dist/components/layout/resizable-panels/index.cjs.map +1 -0
  336. package/dist/components/layout/resizable-panels/index.d.cts +59 -0
  337. package/dist/components/layout/resizable-panels/index.d.ts +59 -0
  338. package/dist/components/layout/resizable-panels/index.js +224 -0
  339. package/dist/components/layout/resizable-panels/index.js.map +1 -0
  340. package/dist/components/layout/resizable-panels/resizable-panels.css +121 -0
  341. package/dist/components/layout/resizable-panels/resizable-panels.utils.cjs +107 -0
  342. package/dist/components/layout/resizable-panels/resizable-panels.utils.cjs.map +1 -0
  343. package/dist/components/layout/resizable-panels/resizable-panels.utils.js +105 -0
  344. package/dist/components/layout/resizable-panels/resizable-panels.utils.js.map +1 -0
  345. package/dist/components/layout/section/index.cjs +15 -0
  346. package/dist/components/layout/section/index.cjs.map +1 -0
  347. package/dist/components/layout/section/index.d.cts +2 -0
  348. package/dist/components/layout/section/index.d.ts +2 -0
  349. package/dist/components/layout/section/index.js +15 -0
  350. package/dist/components/layout/section/index.js.map +1 -0
  351. package/dist/components/layout/section/section.css +71 -0
  352. package/dist/components/layout/section/types.d.cts +13 -0
  353. package/dist/components/layout/section/types.d.ts +13 -0
  354. package/dist/components/layout/section-stack/index.cjs +29 -0
  355. package/dist/components/layout/section-stack/index.cjs.map +1 -0
  356. package/dist/components/layout/section-stack/index.d.cts +8 -0
  357. package/dist/components/layout/section-stack/index.d.ts +8 -0
  358. package/dist/components/layout/section-stack/index.js +29 -0
  359. package/dist/components/layout/section-stack/index.js.map +1 -0
  360. package/dist/components/layout/sidebar/index.cjs +16 -0
  361. package/dist/components/layout/sidebar/index.cjs.map +1 -0
  362. package/dist/components/layout/sidebar/index.d.cts +7 -0
  363. package/dist/components/layout/sidebar/index.d.ts +7 -0
  364. package/dist/components/layout/sidebar/index.js +16 -0
  365. package/dist/components/layout/sidebar/index.js.map +1 -0
  366. package/dist/components/layout/sidebar/sidebar.css +21 -0
  367. package/dist/components/layout/stack/index.cjs +30 -0
  368. package/dist/components/layout/stack/index.cjs.map +1 -0
  369. package/dist/components/layout/stack/index.d.cts +31 -0
  370. package/dist/components/layout/stack/index.d.ts +31 -0
  371. package/dist/components/layout/stack/index.js +30 -0
  372. package/dist/components/layout/stack/index.js.map +1 -0
  373. package/dist/components/layout/stack/stack.css +303 -0
  374. package/dist/components/navigation/accordion/accordion.css +97 -0
  375. package/dist/components/navigation/accordion/index.cjs +107 -0
  376. package/dist/components/navigation/accordion/index.cjs.map +1 -0
  377. package/dist/components/navigation/accordion/index.d.cts +48 -0
  378. package/dist/components/navigation/accordion/index.d.ts +48 -0
  379. package/dist/components/navigation/accordion/index.js +107 -0
  380. package/dist/components/navigation/accordion/index.js.map +1 -0
  381. package/dist/components/navigation/carousel/carousel.css +283 -0
  382. package/dist/components/navigation/carousel/controller.cjs +46 -0
  383. package/dist/components/navigation/carousel/controller.cjs.map +1 -0
  384. package/dist/components/navigation/carousel/controller.d.cts +16 -0
  385. package/dist/components/navigation/carousel/controller.d.ts +16 -0
  386. package/dist/components/navigation/carousel/controller.js +45 -0
  387. package/dist/components/navigation/carousel/controller.js.map +1 -0
  388. package/dist/components/navigation/carousel/index.cjs +494 -0
  389. package/dist/components/navigation/carousel/index.cjs.map +1 -0
  390. package/dist/components/navigation/carousel/index.d.cts +27 -0
  391. package/dist/components/navigation/carousel/index.d.ts +27 -0
  392. package/dist/components/navigation/carousel/index.js +494 -0
  393. package/dist/components/navigation/carousel/index.js.map +1 -0
  394. package/dist/components/navigation/link/index.cjs +40 -0
  395. package/dist/components/navigation/link/index.cjs.map +1 -0
  396. package/dist/components/navigation/link/index.d.cts +3 -0
  397. package/dist/components/navigation/link/index.d.ts +3 -0
  398. package/dist/components/navigation/link/index.js +40 -0
  399. package/dist/components/navigation/link/index.js.map +1 -0
  400. package/dist/components/navigation/link/link.css +31 -0
  401. package/dist/components/navigation/link/types.d.cts +12 -0
  402. package/dist/components/navigation/link/types.d.ts +12 -0
  403. package/dist/components/navigation/tabs/index.cjs +111 -0
  404. package/dist/components/navigation/tabs/index.cjs.map +1 -0
  405. package/dist/components/navigation/tabs/index.d.cts +30 -0
  406. package/dist/components/navigation/tabs/index.d.ts +30 -0
  407. package/dist/components/navigation/tabs/index.js +110 -0
  408. package/dist/components/navigation/tabs/index.js.map +1 -0
  409. package/dist/components/navigation/tabs/tabs.css +216 -0
  410. package/dist/components/navigation/tree-view/index.cjs +455 -0
  411. package/dist/components/navigation/tree-view/index.cjs.map +1 -0
  412. package/dist/components/navigation/tree-view/index.d.cts +96 -0
  413. package/dist/components/navigation/tree-view/index.d.ts +96 -0
  414. package/dist/components/navigation/tree-view/index.js +455 -0
  415. package/dist/components/navigation/tree-view/index.js.map +1 -0
  416. package/dist/components/navigation/tree-view/tree-view.css +258 -0
  417. package/dist/components/overlays/backdrop/backdrop.css +10 -0
  418. package/dist/components/overlays/backdrop/index.cjs +70 -0
  419. package/dist/components/overlays/backdrop/index.cjs.map +1 -0
  420. package/dist/components/overlays/backdrop/index.d.cts +12 -0
  421. package/dist/components/overlays/backdrop/index.d.ts +12 -0
  422. package/dist/components/overlays/backdrop/index.js +70 -0
  423. package/dist/components/overlays/backdrop/index.js.map +1 -0
  424. package/dist/components/overlays/command/command.css +154 -0
  425. package/dist/components/overlays/command/command.types.d.cts +36 -0
  426. package/dist/components/overlays/command/command.types.d.ts +36 -0
  427. package/dist/components/overlays/command/command.utils.cjs +39 -0
  428. package/dist/components/overlays/command/command.utils.cjs.map +1 -0
  429. package/dist/components/overlays/command/command.utils.js +35 -0
  430. package/dist/components/overlays/command/command.utils.js.map +1 -0
  431. package/dist/components/overlays/command/index.cjs +274 -0
  432. package/dist/components/overlays/command/index.cjs.map +1 -0
  433. package/dist/components/overlays/command/index.d.cts +4 -0
  434. package/dist/components/overlays/command/index.d.ts +4 -0
  435. package/dist/components/overlays/command/index.js +273 -0
  436. package/dist/components/overlays/command/index.js.map +1 -0
  437. package/dist/components/overlays/dialog/dialog.css +121 -0
  438. package/dist/components/overlays/dialog/index.cjs +80 -0
  439. package/dist/components/overlays/dialog/index.cjs.map +1 -0
  440. package/dist/components/overlays/dialog/index.d.cts +35 -0
  441. package/dist/components/overlays/dialog/index.d.ts +35 -0
  442. package/dist/components/overlays/dialog/index.js +80 -0
  443. package/dist/components/overlays/dialog/index.js.map +1 -0
  444. package/dist/components/overlays/drawer/drawer.css +133 -0
  445. package/dist/components/overlays/drawer/index.cjs +90 -0
  446. package/dist/components/overlays/drawer/index.cjs.map +1 -0
  447. package/dist/components/overlays/drawer/index.d.cts +11 -0
  448. package/dist/components/overlays/drawer/index.d.ts +11 -0
  449. package/dist/components/overlays/drawer/index.js +90 -0
  450. package/dist/components/overlays/drawer/index.js.map +1 -0
  451. package/dist/components/overlays/drawer/use-resize-bar.cjs +152 -0
  452. package/dist/components/overlays/drawer/use-resize-bar.cjs.map +1 -0
  453. package/dist/components/overlays/drawer/use-resize-bar.js +152 -0
  454. package/dist/components/overlays/drawer/use-resize-bar.js.map +1 -0
  455. package/dist/components/overlays/dropdown-menu/dropdown-menu-content.cjs +132 -0
  456. package/dist/components/overlays/dropdown-menu/dropdown-menu-content.cjs.map +1 -0
  457. package/dist/components/overlays/dropdown-menu/dropdown-menu-content.d.cts +3 -0
  458. package/dist/components/overlays/dropdown-menu/dropdown-menu-content.d.ts +3 -0
  459. package/dist/components/overlays/dropdown-menu/dropdown-menu-content.js +132 -0
  460. package/dist/components/overlays/dropdown-menu/dropdown-menu-content.js.map +1 -0
  461. package/dist/components/overlays/dropdown-menu/dropdown-menu-items.cjs +136 -0
  462. package/dist/components/overlays/dropdown-menu/dropdown-menu-items.cjs.map +1 -0
  463. package/dist/components/overlays/dropdown-menu/dropdown-menu-items.d.cts +7 -0
  464. package/dist/components/overlays/dropdown-menu/dropdown-menu-items.d.ts +7 -0
  465. package/dist/components/overlays/dropdown-menu/dropdown-menu-items.js +132 -0
  466. package/dist/components/overlays/dropdown-menu/dropdown-menu-items.js.map +1 -0
  467. package/dist/components/overlays/dropdown-menu/dropdown-menu-radio.cjs +76 -0
  468. package/dist/components/overlays/dropdown-menu/dropdown-menu-radio.cjs.map +1 -0
  469. package/dist/components/overlays/dropdown-menu/dropdown-menu-radio.d.cts +4 -0
  470. package/dist/components/overlays/dropdown-menu/dropdown-menu-radio.d.ts +4 -0
  471. package/dist/components/overlays/dropdown-menu/dropdown-menu-radio.js +75 -0
  472. package/dist/components/overlays/dropdown-menu/dropdown-menu-radio.js.map +1 -0
  473. package/dist/components/overlays/dropdown-menu/dropdown-menu-trigger.cjs +96 -0
  474. package/dist/components/overlays/dropdown-menu/dropdown-menu-trigger.cjs.map +1 -0
  475. package/dist/components/overlays/dropdown-menu/dropdown-menu-trigger.d.cts +3 -0
  476. package/dist/components/overlays/dropdown-menu/dropdown-menu-trigger.d.ts +3 -0
  477. package/dist/components/overlays/dropdown-menu/dropdown-menu-trigger.js +96 -0
  478. package/dist/components/overlays/dropdown-menu/dropdown-menu-trigger.js.map +1 -0
  479. package/dist/components/overlays/dropdown-menu/dropdown-menu.cjs +111 -0
  480. package/dist/components/overlays/dropdown-menu/dropdown-menu.cjs.map +1 -0
  481. package/dist/components/overlays/dropdown-menu/dropdown-menu.context.cjs +21 -0
  482. package/dist/components/overlays/dropdown-menu/dropdown-menu.context.cjs.map +1 -0
  483. package/dist/components/overlays/dropdown-menu/dropdown-menu.context.js +18 -0
  484. package/dist/components/overlays/dropdown-menu/dropdown-menu.context.js.map +1 -0
  485. package/dist/components/overlays/dropdown-menu/dropdown-menu.css +127 -0
  486. package/dist/components/overlays/dropdown-menu/dropdown-menu.d.cts +3 -0
  487. package/dist/components/overlays/dropdown-menu/dropdown-menu.d.ts +3 -0
  488. package/dist/components/overlays/dropdown-menu/dropdown-menu.js +111 -0
  489. package/dist/components/overlays/dropdown-menu/dropdown-menu.js.map +1 -0
  490. package/dist/components/overlays/dropdown-menu/dropdown-menu.types.d.cts +66 -0
  491. package/dist/components/overlays/dropdown-menu/dropdown-menu.types.d.ts +66 -0
  492. package/dist/components/overlays/dropdown-menu/dropdown-menu.utils.cjs +44 -0
  493. package/dist/components/overlays/dropdown-menu/dropdown-menu.utils.cjs.map +1 -0
  494. package/dist/components/overlays/dropdown-menu/dropdown-menu.utils.js +39 -0
  495. package/dist/components/overlays/dropdown-menu/dropdown-menu.utils.js.map +1 -0
  496. package/dist/components/overlays/dropdown-menu/index.cjs +31 -0
  497. package/dist/components/overlays/dropdown-menu/index.cjs.map +1 -0
  498. package/dist/components/overlays/dropdown-menu/index.d.cts +19 -0
  499. package/dist/components/overlays/dropdown-menu/index.d.ts +19 -0
  500. package/dist/components/overlays/dropdown-menu/index.js +22 -0
  501. package/dist/components/overlays/dropdown-menu/index.js.map +1 -0
  502. package/dist/components/overlays/floating-position/calculate-position.cjs +94 -0
  503. package/dist/components/overlays/floating-position/calculate-position.cjs.map +1 -0
  504. package/dist/components/overlays/floating-position/calculate-position.js +89 -0
  505. package/dist/components/overlays/floating-position/calculate-position.js.map +1 -0
  506. package/dist/components/overlays/floating-position/use-floating-position.cjs +89 -0
  507. package/dist/components/overlays/floating-position/use-floating-position.cjs.map +1 -0
  508. package/dist/components/overlays/floating-position/use-floating-position.js +89 -0
  509. package/dist/components/overlays/floating-position/use-floating-position.js.map +1 -0
  510. package/dist/components/overlays/notification/index.cjs +142 -0
  511. package/dist/components/overlays/notification/index.cjs.map +1 -0
  512. package/dist/components/overlays/notification/index.d.cts +16 -0
  513. package/dist/components/overlays/notification/index.d.ts +16 -0
  514. package/dist/components/overlays/notification/index.js +139 -0
  515. package/dist/components/overlays/notification/index.js.map +1 -0
  516. package/dist/components/overlays/notification/notification-provider.cjs +69 -0
  517. package/dist/components/overlays/notification/notification-provider.cjs.map +1 -0
  518. package/dist/components/overlays/notification/notification-provider.d.cts +3 -0
  519. package/dist/components/overlays/notification/notification-provider.d.ts +3 -0
  520. package/dist/components/overlays/notification/notification-provider.js +68 -0
  521. package/dist/components/overlays/notification/notification-provider.js.map +1 -0
  522. package/dist/components/overlays/notification/notification.css +172 -0
  523. package/dist/components/overlays/notification/notification.types.d.cts +41 -0
  524. package/dist/components/overlays/notification/notification.types.d.ts +41 -0
  525. package/dist/components/overlays/notification/notification.utils.cjs +23 -0
  526. package/dist/components/overlays/notification/notification.utils.cjs.map +1 -0
  527. package/dist/components/overlays/notification/notification.utils.js +22 -0
  528. package/dist/components/overlays/notification/notification.utils.js.map +1 -0
  529. package/dist/components/overlays/notification/use-notification.cjs +12 -0
  530. package/dist/components/overlays/notification/use-notification.cjs.map +1 -0
  531. package/dist/components/overlays/notification/use-notification.d.cts +3 -0
  532. package/dist/components/overlays/notification/use-notification.d.ts +3 -0
  533. package/dist/components/overlays/notification/use-notification.js +12 -0
  534. package/dist/components/overlays/notification/use-notification.js.map +1 -0
  535. package/dist/components/overlays/overlay-stack/index.cjs +195 -0
  536. package/dist/components/overlays/overlay-stack/index.cjs.map +1 -0
  537. package/dist/components/overlays/overlay-stack/index.js +193 -0
  538. package/dist/components/overlays/overlay-stack/index.js.map +1 -0
  539. package/dist/components/overlays/popout/index.cjs +196 -0
  540. package/dist/components/overlays/popout/index.cjs.map +1 -0
  541. package/dist/components/overlays/popout/index.d.cts +26 -0
  542. package/dist/components/overlays/popout/index.d.ts +26 -0
  543. package/dist/components/overlays/popout/index.js +195 -0
  544. package/dist/components/overlays/popout/index.js.map +1 -0
  545. package/dist/components/overlays/popout/popout.css +15 -0
  546. package/dist/components/overlays/popover/index.cjs +163 -0
  547. package/dist/components/overlays/popover/index.cjs.map +1 -0
  548. package/dist/components/overlays/popover/index.d.cts +28 -0
  549. package/dist/components/overlays/popover/index.d.ts +28 -0
  550. package/dist/components/overlays/popover/index.js +163 -0
  551. package/dist/components/overlays/popover/index.js.map +1 -0
  552. package/dist/components/overlays/popover/popover.css +56 -0
  553. package/dist/components/overlays/portal/index.cjs +33 -0
  554. package/dist/components/overlays/portal/index.cjs.map +1 -0
  555. package/dist/components/overlays/portal/index.d.cts +15 -0
  556. package/dist/components/overlays/portal/index.d.ts +15 -0
  557. package/dist/components/overlays/portal/index.js +33 -0
  558. package/dist/components/overlays/portal/index.js.map +1 -0
  559. package/dist/components/overlays/portal/target.cjs +17 -0
  560. package/dist/components/overlays/portal/target.cjs.map +1 -0
  561. package/dist/components/overlays/portal/target.css +3 -0
  562. package/dist/components/overlays/portal/target.d.cts +7 -0
  563. package/dist/components/overlays/portal/target.d.ts +7 -0
  564. package/dist/components/overlays/portal/target.js +17 -0
  565. package/dist/components/overlays/portal/target.js.map +1 -0
  566. package/dist/components/overlays/tooltip/index.cjs +71 -0
  567. package/dist/components/overlays/tooltip/index.cjs.map +1 -0
  568. package/dist/components/overlays/tooltip/index.d.cts +24 -0
  569. package/dist/components/overlays/tooltip/index.d.ts +24 -0
  570. package/dist/components/overlays/tooltip/index.js +71 -0
  571. package/dist/components/overlays/tooltip/index.js.map +1 -0
  572. package/dist/components/overlays/tooltip/tooltip.css +67 -0
  573. package/dist/components/typography/heading.cjs +14 -0
  574. package/dist/components/typography/heading.cjs.map +1 -0
  575. package/dist/components/typography/heading.d.cts +11 -0
  576. package/dist/components/typography/heading.d.ts +11 -0
  577. package/dist/components/typography/heading.js +14 -0
  578. package/dist/components/typography/heading.js.map +1 -0
  579. package/dist/components/typography/text.cjs +14 -0
  580. package/dist/components/typography/text.cjs.map +1 -0
  581. package/dist/components/typography/text.d.cts +12 -0
  582. package/dist/components/typography/text.d.ts +12 -0
  583. package/dist/components/typography/text.js +14 -0
  584. package/dist/components/typography/text.js.map +1 -0
  585. package/dist/components/utilities/preview/highlight.cjs +79 -0
  586. package/dist/components/utilities/preview/highlight.cjs.map +1 -0
  587. package/dist/components/utilities/preview/highlight.js +79 -0
  588. package/dist/components/utilities/preview/highlight.js.map +1 -0
  589. package/dist/components/utilities/preview/index.cjs +391 -0
  590. package/dist/components/utilities/preview/index.cjs.map +1 -0
  591. package/dist/components/utilities/preview/index.d.cts +20 -0
  592. package/dist/components/utilities/preview/index.d.ts +20 -0
  593. package/dist/components/utilities/preview/index.js +391 -0
  594. package/dist/components/utilities/preview/index.js.map +1 -0
  595. package/dist/components/utilities/preview/preview.css +268 -0
  596. package/dist/components/utilities/scroll-lock/index.cjs +124 -0
  597. package/dist/components/utilities/scroll-lock/index.cjs.map +1 -0
  598. package/dist/components/utilities/scroll-lock/index.d.cts +6 -0
  599. package/dist/components/utilities/scroll-lock/index.d.ts +6 -0
  600. package/dist/components/utilities/scroll-lock/index.js +124 -0
  601. package/dist/components/utilities/scroll-lock/index.js.map +1 -0
  602. package/dist/components/utilities/transition/index.cjs +171 -0
  603. package/dist/components/utilities/transition/index.cjs.map +1 -0
  604. package/dist/components/utilities/transition/index.d.cts +27 -0
  605. package/dist/components/utilities/transition/index.d.ts +27 -0
  606. package/dist/components/utilities/transition/index.js +171 -0
  607. package/dist/components/utilities/transition/index.js.map +1 -0
  608. package/dist/components/utilities/transition/transition.css +130 -0
  609. package/dist/index.cjs +159 -0
  610. package/dist/index.d.cts +86 -0
  611. package/dist/index.d.ts +86 -0
  612. package/dist/index.js +70 -0
  613. package/package.json +65 -4
@@ -0,0 +1,154 @@
1
+ import { CSSProperties, ComponentPropsWithRef, ElementType, ReactNode, Ref } from "react";
2
+ /**
3
+ * Supports regular URLs and static image imports.
4
+ *
5
+ * The object shape is compatible with Next.js StaticImageData.
6
+ */
7
+ type ImageSourceData = {
8
+ src: string;
9
+ width: number;
10
+ height: number;
11
+ blurDataURL?: string;
12
+ blurWidth?: number;
13
+ blurHeight?: number;
14
+ };
15
+ type ImageSource = string | ImageSourceData;
16
+ type ImageFit = NonNullable<CSSProperties["objectFit"]>;
17
+ type ImageRadius = "none" | "sm" | "md" | "lg" | "xl" | "full" | NonNullable<CSSProperties["borderRadius"]>;
18
+ type ImagePlaceholder = "empty" | "blur";
19
+ /**
20
+ * Additional responsive image sources for the picture element.
21
+ */
22
+ type ImageSourceSet = {
23
+ srcSet: string;
24
+ media?: string;
25
+ type?: string;
26
+ sizes?: string;
27
+ };
28
+ type ImageProps = Omit<ComponentPropsWithRef<"img">, "src" | "alt" | "width" | "height" | "className" | "style" | "ref"> & {
29
+ /**
30
+ * Image URL or static image import.
31
+ *
32
+ * Can be omitted when fallbackSrc or fallback is provided.
33
+ */
34
+ src?: ImageSource | null;
35
+ /**
36
+ * Alternative text.
37
+ *
38
+ * Use an empty string for decorative images.
39
+ */
40
+ alt: string;
41
+ /**
42
+ * Intrinsic image width in pixels.
43
+ *
44
+ * Automatically inferred from static image imports.
45
+ */
46
+ width?: number;
47
+ /**
48
+ * Intrinsic image height in pixels.
49
+ *
50
+ * Automatically inferred from static image imports.
51
+ */
52
+ height?: number;
53
+ /**
54
+ * Image rendering mode.
55
+ */
56
+ fit?: ImageFit;
57
+ /**
58
+ * Image alignment within its container.
59
+ */
60
+ position?: CSSProperties["objectPosition"];
61
+ /**
62
+ * Container aspect ratio.
63
+ *
64
+ * When provided, the image fills the resulting container.
65
+ */
66
+ aspectRatio?: CSSProperties["aspectRatio"];
67
+ /**
68
+ * Makes the image fill its parent container.
69
+ *
70
+ * The parent must have a defined size.
71
+ */
72
+ fill?: boolean;
73
+ /**
74
+ * Border radius of the image container.
75
+ */
76
+ radius?: ImageRadius;
77
+ /**
78
+ * Alternative image source used when the primary source fails.
79
+ */
80
+ fallbackSrc?: ImageSource | null;
81
+ /**
82
+ * Custom content displayed when no image can be rendered.
83
+ */
84
+ fallback?: ReactNode;
85
+ /**
86
+ * Custom loading content displayed above the image.
87
+ */
88
+ loadingPlaceholder?: ReactNode;
89
+ /**
90
+ * Loading placeholder strategy.
91
+ *
92
+ * Blur requires a blurDataURL, either explicitly provided
93
+ * or included in a static image import.
94
+ */
95
+ placeholder?: ImagePlaceholder;
96
+ /**
97
+ * Small preview image used by the blur placeholder.
98
+ */
99
+ blurDataURL?: string;
100
+ /**
101
+ * Additional sources rendered inside a picture element.
102
+ */
103
+ sources?: ImageSourceSet[];
104
+ /**
105
+ * Framework-specific image component.
106
+ *
107
+ * Overrides Theme.components.image for this instance.
108
+ */
109
+ component?: ElementType;
110
+ /**
111
+ * Additional props forwarded to the configured image component.
112
+ *
113
+ * Useful for framework-specific options such as custom loaders.
114
+ */
115
+ componentProps?: Record<string, unknown>;
116
+ /**
117
+ * Next.js image optimization quality.
118
+ *
119
+ * Forwarded to custom image components.
120
+ */
121
+ quality?: number;
122
+ /**
123
+ * Whether the image should be preloaded.
124
+ *
125
+ * Uses React DOM preload for native images and is forwarded
126
+ * to configured framework components.
127
+ */
128
+ preload?: boolean;
129
+ /**
130
+ * Disables image optimization in compatible image components.
131
+ */
132
+ unoptimized?: boolean;
133
+ /**
134
+ * Class applied to the actual image element.
135
+ */
136
+ className?: string;
137
+ /**
138
+ * Styles applied to the actual image element.
139
+ */
140
+ style?: CSSProperties;
141
+ /**
142
+ * Class applied to the outer container.
143
+ */
144
+ containerClassName?: string;
145
+ /**
146
+ * Styles applied to the outer container.
147
+ */
148
+ containerStyle?: CSSProperties;
149
+ /**
150
+ * Ref to the underlying image element.
151
+ */
152
+ ref?: Ref<HTMLImageElement>;
153
+ };
154
+ export type { ImageFit, ImagePlaceholder, ImageProps, ImageRadius, ImageSource, ImageSourceData, ImageSourceSet };
@@ -0,0 +1,154 @@
1
+ import { CSSProperties, ComponentPropsWithRef, ElementType, ReactNode, Ref } from "react";
2
+ /**
3
+ * Supports regular URLs and static image imports.
4
+ *
5
+ * The object shape is compatible with Next.js StaticImageData.
6
+ */
7
+ type ImageSourceData = {
8
+ src: string;
9
+ width: number;
10
+ height: number;
11
+ blurDataURL?: string;
12
+ blurWidth?: number;
13
+ blurHeight?: number;
14
+ };
15
+ type ImageSource = string | ImageSourceData;
16
+ type ImageFit = NonNullable<CSSProperties["objectFit"]>;
17
+ type ImageRadius = "none" | "sm" | "md" | "lg" | "xl" | "full" | NonNullable<CSSProperties["borderRadius"]>;
18
+ type ImagePlaceholder = "empty" | "blur";
19
+ /**
20
+ * Additional responsive image sources for the picture element.
21
+ */
22
+ type ImageSourceSet = {
23
+ srcSet: string;
24
+ media?: string;
25
+ type?: string;
26
+ sizes?: string;
27
+ };
28
+ type ImageProps = Omit<ComponentPropsWithRef<"img">, "src" | "alt" | "width" | "height" | "className" | "style" | "ref"> & {
29
+ /**
30
+ * Image URL or static image import.
31
+ *
32
+ * Can be omitted when fallbackSrc or fallback is provided.
33
+ */
34
+ src?: ImageSource | null;
35
+ /**
36
+ * Alternative text.
37
+ *
38
+ * Use an empty string for decorative images.
39
+ */
40
+ alt: string;
41
+ /**
42
+ * Intrinsic image width in pixels.
43
+ *
44
+ * Automatically inferred from static image imports.
45
+ */
46
+ width?: number;
47
+ /**
48
+ * Intrinsic image height in pixels.
49
+ *
50
+ * Automatically inferred from static image imports.
51
+ */
52
+ height?: number;
53
+ /**
54
+ * Image rendering mode.
55
+ */
56
+ fit?: ImageFit;
57
+ /**
58
+ * Image alignment within its container.
59
+ */
60
+ position?: CSSProperties["objectPosition"];
61
+ /**
62
+ * Container aspect ratio.
63
+ *
64
+ * When provided, the image fills the resulting container.
65
+ */
66
+ aspectRatio?: CSSProperties["aspectRatio"];
67
+ /**
68
+ * Makes the image fill its parent container.
69
+ *
70
+ * The parent must have a defined size.
71
+ */
72
+ fill?: boolean;
73
+ /**
74
+ * Border radius of the image container.
75
+ */
76
+ radius?: ImageRadius;
77
+ /**
78
+ * Alternative image source used when the primary source fails.
79
+ */
80
+ fallbackSrc?: ImageSource | null;
81
+ /**
82
+ * Custom content displayed when no image can be rendered.
83
+ */
84
+ fallback?: ReactNode;
85
+ /**
86
+ * Custom loading content displayed above the image.
87
+ */
88
+ loadingPlaceholder?: ReactNode;
89
+ /**
90
+ * Loading placeholder strategy.
91
+ *
92
+ * Blur requires a blurDataURL, either explicitly provided
93
+ * or included in a static image import.
94
+ */
95
+ placeholder?: ImagePlaceholder;
96
+ /**
97
+ * Small preview image used by the blur placeholder.
98
+ */
99
+ blurDataURL?: string;
100
+ /**
101
+ * Additional sources rendered inside a picture element.
102
+ */
103
+ sources?: ImageSourceSet[];
104
+ /**
105
+ * Framework-specific image component.
106
+ *
107
+ * Overrides Theme.components.image for this instance.
108
+ */
109
+ component?: ElementType;
110
+ /**
111
+ * Additional props forwarded to the configured image component.
112
+ *
113
+ * Useful for framework-specific options such as custom loaders.
114
+ */
115
+ componentProps?: Record<string, unknown>;
116
+ /**
117
+ * Next.js image optimization quality.
118
+ *
119
+ * Forwarded to custom image components.
120
+ */
121
+ quality?: number;
122
+ /**
123
+ * Whether the image should be preloaded.
124
+ *
125
+ * Uses React DOM preload for native images and is forwarded
126
+ * to configured framework components.
127
+ */
128
+ preload?: boolean;
129
+ /**
130
+ * Disables image optimization in compatible image components.
131
+ */
132
+ unoptimized?: boolean;
133
+ /**
134
+ * Class applied to the actual image element.
135
+ */
136
+ className?: string;
137
+ /**
138
+ * Styles applied to the actual image element.
139
+ */
140
+ style?: CSSProperties;
141
+ /**
142
+ * Class applied to the outer container.
143
+ */
144
+ containerClassName?: string;
145
+ /**
146
+ * Styles applied to the outer container.
147
+ */
148
+ containerStyle?: CSSProperties;
149
+ /**
150
+ * Ref to the underlying image element.
151
+ */
152
+ ref?: Ref<HTMLImageElement>;
153
+ };
154
+ export type { ImageFit, ImagePlaceholder, ImageProps, ImageRadius, ImageSource, ImageSourceData, ImageSourceSet };
@@ -0,0 +1,55 @@
1
+ // src/components/data-display/image/image.utils.ts
2
+ /**
3
+ * Checks whether an image source contains a usable URL.
4
+ */
5
+ const hasImageSource = (source) => {
6
+ if (typeof source === "string") return source.trim().length > 0;
7
+ return typeof source?.src === "string" && source.src.length > 0;
8
+ };
9
+ /**
10
+ * Resolves a source to a regular URL.
11
+ *
12
+ * Static image objects are converted to their `src` property.
13
+ */
14
+ const getImageSourceUrl = (source) => {
15
+ if (!hasImageSource(source)) return;
16
+ return typeof source === "string" ? source : source.src;
17
+ };
18
+ /**
19
+ * Retrieves intrinsic dimensions from static image imports.
20
+ */
21
+ const getImageDimensions = (source) => {
22
+ if (typeof source !== "object" || source === null) return;
23
+ return {
24
+ width: source.width,
25
+ height: source.height
26
+ };
27
+ };
28
+ /**
29
+ * Resolves an explicitly provided or statically imported blur image.
30
+ */
31
+ const getImageBlurDataURL = (source) => {
32
+ if (typeof source !== "object" || source === null) return;
33
+ return source.blurDataURL;
34
+ };
35
+ /**
36
+ * Resolves semantic radius values to Puzzle theme tokens.
37
+ */
38
+ const resolveImageRadius = (radius) => {
39
+ if (radius === void 0) return;
40
+ return {
41
+ none: "0",
42
+ sm: "var(--puzzle-radius-sm, 0.25rem)",
43
+ md: "var(--puzzle-radius-md, 0.5rem)",
44
+ lg: "var(--puzzle-radius-lg, 0.75rem)",
45
+ xl: "var(--puzzle-radius-xl, 1rem)",
46
+ full: "var(--puzzle-radius-full, 9999px)"
47
+ }[radius] ?? radius;
48
+ };
49
+ exports.getImageBlurDataURL = getImageBlurDataURL;
50
+ exports.getImageDimensions = getImageDimensions;
51
+ exports.getImageSourceUrl = getImageSourceUrl;
52
+ exports.hasImageSource = hasImageSource;
53
+ exports.resolveImageRadius = resolveImageRadius;
54
+
55
+ //# sourceMappingURL=image.utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.utils.cjs","names":[],"sources":["../../../../src/components/data-display/image/image.utils.ts"],"sourcesContent":["import type { CSSProperties } from \"react\";\nimport type { ImageRadius, ImageSource } from \"./image.types\";\n\n/**\n * Checks whether an image source contains a usable URL.\n */\nconst hasImageSource = (\n source: ImageSource | null | undefined,\n): source is ImageSource => {\n if (typeof source === \"string\") {\n return source.trim().length > 0;\n }\n\n return typeof source?.src === \"string\" && source.src.length > 0;\n};\n\n/**\n * Resolves a source to a regular URL.\n *\n * Static image objects are converted to their `src` property.\n */\nconst getImageSourceUrl = (\n source: ImageSource | null | undefined,\n): string | undefined => {\n if (!hasImageSource(source)) {\n return undefined;\n }\n\n return typeof source === \"string\" ? source : source.src;\n};\n\n/**\n * Retrieves intrinsic dimensions from static image imports.\n */\nconst getImageDimensions = (source: ImageSource | null | undefined) => {\n if (typeof source !== \"object\" || source === null) {\n return undefined;\n }\n\n return {\n width: source.width,\n height: source.height,\n };\n};\n\n/**\n * Resolves an explicitly provided or statically imported blur image.\n */\nconst getImageBlurDataURL = (\n source: ImageSource | null | undefined,\n): string | undefined => {\n if (typeof source !== \"object\" || source === null) {\n return undefined;\n }\n\n return source.blurDataURL;\n};\n\n/**\n * Resolves semantic radius values to Puzzle theme tokens.\n */\nconst resolveImageRadius = (\n radius?: ImageRadius,\n): CSSProperties[\"borderRadius\"] => {\n if (radius === undefined) {\n return undefined;\n }\n\n const radiusTokens: Record<string, string> = {\n none: \"0\",\n sm: \"var(--puzzle-radius-sm, 0.25rem)\",\n md: \"var(--puzzle-radius-md, 0.5rem)\",\n lg: \"var(--puzzle-radius-lg, 0.75rem)\",\n xl: \"var(--puzzle-radius-xl, 1rem)\",\n full: \"var(--puzzle-radius-full, 9999px)\",\n };\n\n return radiusTokens[radius] ?? radius;\n};\n\nexport {\n hasImageSource,\n getImageSourceUrl,\n getImageDimensions,\n getImageBlurDataURL,\n resolveImageRadius,\n};\n"],"mappings":";;;;AAMA,MAAM,kBACJ,WAC0B;CAC1B,IAAI,OAAO,WAAW,UACpB,OAAO,OAAO,KAAK,CAAC,CAAC,SAAS;CAGhC,OAAO,OAAO,QAAQ,QAAQ,YAAY,OAAO,IAAI,SAAS;AAChE;;;;;;AAOA,MAAM,qBACJ,WACuB;CACvB,IAAI,CAAC,eAAe,MAAM,GACxB;CAGF,OAAO,OAAO,WAAW,WAAW,SAAS,OAAO;AACtD;;;;AAKA,MAAM,sBAAsB,WAA2C;CACrE,IAAI,OAAO,WAAW,YAAY,WAAW,MAC3C;CAGF,OAAO;EACL,OAAO,OAAO;EACd,QAAQ,OAAO;CACjB;AACF;;;;AAKA,MAAM,uBACJ,WACuB;CACvB,IAAI,OAAO,WAAW,YAAY,WAAW,MAC3C;CAGF,OAAO,OAAO;AAChB;;;;AAKA,MAAM,sBACJ,WACkC;CAClC,IAAI,WAAW,KAAA,GACb;CAYF,OAAO;EARL,MAAM;EACN,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,MAAM;CAGU,EAAE,WAAW;AACjC"}
@@ -0,0 +1,51 @@
1
+ // src/components/data-display/image/image.utils.ts
2
+ /**
3
+ * Checks whether an image source contains a usable URL.
4
+ */
5
+ const hasImageSource = (source) => {
6
+ if (typeof source === "string") return source.trim().length > 0;
7
+ return typeof source?.src === "string" && source.src.length > 0;
8
+ };
9
+ /**
10
+ * Resolves a source to a regular URL.
11
+ *
12
+ * Static image objects are converted to their `src` property.
13
+ */
14
+ const getImageSourceUrl = (source) => {
15
+ if (!hasImageSource(source)) return;
16
+ return typeof source === "string" ? source : source.src;
17
+ };
18
+ /**
19
+ * Retrieves intrinsic dimensions from static image imports.
20
+ */
21
+ const getImageDimensions = (source) => {
22
+ if (typeof source !== "object" || source === null) return;
23
+ return {
24
+ width: source.width,
25
+ height: source.height
26
+ };
27
+ };
28
+ /**
29
+ * Resolves an explicitly provided or statically imported blur image.
30
+ */
31
+ const getImageBlurDataURL = (source) => {
32
+ if (typeof source !== "object" || source === null) return;
33
+ return source.blurDataURL;
34
+ };
35
+ /**
36
+ * Resolves semantic radius values to Puzzle theme tokens.
37
+ */
38
+ const resolveImageRadius = (radius) => {
39
+ if (radius === void 0) return;
40
+ return {
41
+ none: "0",
42
+ sm: "var(--puzzle-radius-sm, 0.25rem)",
43
+ md: "var(--puzzle-radius-md, 0.5rem)",
44
+ lg: "var(--puzzle-radius-lg, 0.75rem)",
45
+ xl: "var(--puzzle-radius-xl, 1rem)",
46
+ full: "var(--puzzle-radius-full, 9999px)"
47
+ }[radius] ?? radius;
48
+ };
49
+ export { getImageBlurDataURL, getImageDimensions, getImageSourceUrl, hasImageSource, resolveImageRadius };
50
+
51
+ //# sourceMappingURL=image.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.utils.js","names":[],"sources":["../../../../src/components/data-display/image/image.utils.ts"],"sourcesContent":["import type { CSSProperties } from \"react\";\nimport type { ImageRadius, ImageSource } from \"./image.types\";\n\n/**\n * Checks whether an image source contains a usable URL.\n */\nconst hasImageSource = (\n source: ImageSource | null | undefined,\n): source is ImageSource => {\n if (typeof source === \"string\") {\n return source.trim().length > 0;\n }\n\n return typeof source?.src === \"string\" && source.src.length > 0;\n};\n\n/**\n * Resolves a source to a regular URL.\n *\n * Static image objects are converted to their `src` property.\n */\nconst getImageSourceUrl = (\n source: ImageSource | null | undefined,\n): string | undefined => {\n if (!hasImageSource(source)) {\n return undefined;\n }\n\n return typeof source === \"string\" ? source : source.src;\n};\n\n/**\n * Retrieves intrinsic dimensions from static image imports.\n */\nconst getImageDimensions = (source: ImageSource | null | undefined) => {\n if (typeof source !== \"object\" || source === null) {\n return undefined;\n }\n\n return {\n width: source.width,\n height: source.height,\n };\n};\n\n/**\n * Resolves an explicitly provided or statically imported blur image.\n */\nconst getImageBlurDataURL = (\n source: ImageSource | null | undefined,\n): string | undefined => {\n if (typeof source !== \"object\" || source === null) {\n return undefined;\n }\n\n return source.blurDataURL;\n};\n\n/**\n * Resolves semantic radius values to Puzzle theme tokens.\n */\nconst resolveImageRadius = (\n radius?: ImageRadius,\n): CSSProperties[\"borderRadius\"] => {\n if (radius === undefined) {\n return undefined;\n }\n\n const radiusTokens: Record<string, string> = {\n none: \"0\",\n sm: \"var(--puzzle-radius-sm, 0.25rem)\",\n md: \"var(--puzzle-radius-md, 0.5rem)\",\n lg: \"var(--puzzle-radius-lg, 0.75rem)\",\n xl: \"var(--puzzle-radius-xl, 1rem)\",\n full: \"var(--puzzle-radius-full, 9999px)\",\n };\n\n return radiusTokens[radius] ?? radius;\n};\n\nexport {\n hasImageSource,\n getImageSourceUrl,\n getImageDimensions,\n getImageBlurDataURL,\n resolveImageRadius,\n};\n"],"mappings":";;;;AAMA,MAAM,kBACJ,WAC0B;CAC1B,IAAI,OAAO,WAAW,UACpB,OAAO,OAAO,KAAK,CAAC,CAAC,SAAS;CAGhC,OAAO,OAAO,QAAQ,QAAQ,YAAY,OAAO,IAAI,SAAS;AAChE;;;;;;AAOA,MAAM,qBACJ,WACuB;CACvB,IAAI,CAAC,eAAe,MAAM,GACxB;CAGF,OAAO,OAAO,WAAW,WAAW,SAAS,OAAO;AACtD;;;;AAKA,MAAM,sBAAsB,WAA2C;CACrE,IAAI,OAAO,WAAW,YAAY,WAAW,MAC3C;CAGF,OAAO;EACL,OAAO,OAAO;EACd,QAAQ,OAAO;CACjB;AACF;;;;AAKA,MAAM,uBACJ,WACuB;CACvB,IAAI,OAAO,WAAW,YAAY,WAAW,MAC3C;CAGF,OAAO,OAAO;AAChB;;;;AAKA,MAAM,sBACJ,WACkC;CAClC,IAAI,WAAW,KAAA,GACb;CAYF,OAAO;EARL,MAAM;EACN,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,MAAM;CAGU,EAAE,WAAW;AACjC"}
@@ -0,0 +1,176 @@
1
+ "use client";
2
+ const require_image_utils = require("./image.utils.cjs");
3
+ const require_use_image_state = require("./use-image-state.cjs");
4
+ ;/* empty css */
5
+ let _puzzle_ui_core = require("@puzzle-ui/core");
6
+ let react = require("react");
7
+ let _puzzle_ui_theme_components_context = require("@puzzle-ui/theme/components-context");
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ let react_dom = require("react-dom");
10
+ // src/components/data-display/image/index.tsx
11
+ const Image = ({ src, alt, width, height, fit = "cover", position = "center", aspectRatio, fill = false, radius, fallbackSrc, fallback, loadingPlaceholder, placeholder = "empty", blurDataURL, sources, component, componentProps, quality, preload = false, unoptimized, className, style, containerClassName, containerStyle, loading, fetchPriority, decoding, srcSet, sizes, crossOrigin, referrerPolicy, ref, onLoad, onError, ...rest }) => {
12
+ const configuredImage = (0, _puzzle_ui_theme_components_context.useThemeComponents)()?.image;
13
+ const Component = component ?? configuredImage ?? "img";
14
+ const isNativeImage = Component === "img";
15
+ const { activeSource, usingFallback, status, markLoaded, markError } = require_use_image_state.useImageState(src, fallbackSrc);
16
+ const hasActiveSource = require_image_utils.hasImageSource(activeSource);
17
+ const sourceUrl = require_image_utils.getImageSourceUrl(activeSource);
18
+ const sourceDimensions = require_image_utils.getImageDimensions(activeSource);
19
+ const resolvedWidth = width ?? sourceDimensions?.width;
20
+ const resolvedHeight = height ?? sourceDimensions?.height;
21
+ const resolvedBlurDataURL = blurDataURL ?? require_image_utils.getImageBlurDataURL(activeSource);
22
+ const imageRef = (0, react.useRef)(null);
23
+ /**
24
+ * Assigns the image element to both the internal and external refs.
25
+ */
26
+ const setImageRef = (0, react.useCallback)((node) => {
27
+ imageRef.current = node;
28
+ if (typeof ref === "function") ref(node);
29
+ else if (ref) ref.current = node;
30
+ }, [ref]);
31
+ /**
32
+ * Handles successful image loading.
33
+ */
34
+ const handleLoad = (0, react.useCallback)((event) => {
35
+ markLoaded();
36
+ onLoad?.(event);
37
+ }, [markLoaded, onLoad]);
38
+ /**
39
+ * Handles image loading failures.
40
+ */
41
+ const handleError = (0, react.useCallback)((event) => {
42
+ markError();
43
+ onError?.(event);
44
+ }, [markError, onError]);
45
+ /**
46
+ * Handles images that were loaded before React attached its listeners.
47
+ *
48
+ * This is particularly useful for cached images during hydration.
49
+ */
50
+ (0, react.useEffect)(() => {
51
+ const image = imageRef.current;
52
+ if (!image || !image.complete) return;
53
+ if (image.naturalWidth > 0) markLoaded();
54
+ }, [activeSource, markLoaded]);
55
+ /**
56
+ * Preloads native images using React DOM.
57
+ *
58
+ * Framework image components handle their own preload behavior.
59
+ */
60
+ if (preload && isNativeImage && sourceUrl) (0, react_dom.preload)(sourceUrl, {
61
+ as: "image",
62
+ crossOrigin,
63
+ fetchPriority: fetchPriority ?? "high",
64
+ imageSrcSet: srcSet,
65
+ imageSizes: sizes,
66
+ referrerPolicy
67
+ });
68
+ const mediaStyle = {
69
+ ...fill || aspectRatio ? {
70
+ width: "100%",
71
+ height: "100%"
72
+ } : {},
73
+ ...fill ? {
74
+ position: "absolute",
75
+ inset: 0
76
+ } : {},
77
+ objectFit: fit,
78
+ objectPosition: position,
79
+ ...style
80
+ };
81
+ const wrapperStyle = {
82
+ ...aspectRatio ? {
83
+ aspectRatio,
84
+ width: "100%"
85
+ } : {},
86
+ ...fill ? {
87
+ position: "relative",
88
+ display: "block",
89
+ width: "100%",
90
+ ...aspectRatio ? {} : { height: "100%" }
91
+ } : {},
92
+ ...radius ? { borderRadius: require_image_utils.resolveImageRadius(radius) } : {},
93
+ ...containerStyle
94
+ };
95
+ const isLoading = hasActiveSource && status === "loading";
96
+ const shouldShowFallback = fallback !== void 0 && (!hasActiveSource || status === "error");
97
+ if (!hasActiveSource && !shouldShowFallback) return null;
98
+ const renderedSource = isNativeImage ? sourceUrl : activeSource;
99
+ /**
100
+ * Framework-specific props are only forwarded to custom components.
101
+ * This prevents invalid attributes from leaking onto native img tags.
102
+ */
103
+ const imageElement = (0, react.createElement)(Component, {
104
+ ...!isNativeImage ? componentProps : {},
105
+ ...rest,
106
+ key: usingFallback ? "fallback" : "source",
107
+ ref: setImageRef,
108
+ src: renderedSource,
109
+ alt,
110
+ width: resolvedWidth,
111
+ height: resolvedHeight,
112
+ loading,
113
+ fetchPriority,
114
+ decoding,
115
+ crossOrigin,
116
+ referrerPolicy,
117
+ srcSet,
118
+ sizes,
119
+ className: (0, _puzzle_ui_core.cn)("puzzle-image__media", className),
120
+ style: mediaStyle,
121
+ onLoad: handleLoad,
122
+ onError: handleError,
123
+ ...fill && !isNativeImage ? { fill: true } : {},
124
+ ...preload && !isNativeImage ? { preload: true } : {},
125
+ ...quality !== void 0 && !isNativeImage ? { quality } : {},
126
+ ...unoptimized !== void 0 && !isNativeImage ? { unoptimized } : {},
127
+ ...!isNativeImage && placeholder === "blur" && resolvedBlurDataURL ? {
128
+ placeholder: "blur",
129
+ blurDataURL: resolvedBlurDataURL
130
+ } : {}
131
+ });
132
+ /**
133
+ * Picture sources allow art direction and responsive source selection.
134
+ */
135
+ const media = sources?.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("picture", {
136
+ className: "puzzle-image__picture",
137
+ children: [sources.map((source, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("source", {
138
+ srcSet: source.srcSet,
139
+ media: source.media,
140
+ type: source.type,
141
+ sizes: source.sizes
142
+ }, `${source.srcSet}-${index}`)), imageElement]
143
+ }) : imageElement;
144
+ const showLoadingPlaceholder = isLoading && loadingPlaceholder !== void 0;
145
+ const showBlurPlaceholder = isLoading && !loadingPlaceholder && isNativeImage && placeholder === "blur" && Boolean(resolvedBlurDataURL);
146
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
147
+ className: (0, _puzzle_ui_core.cn)("puzzle-image", containerClassName),
148
+ style: wrapperStyle,
149
+ "data-status": hasActiveSource ? status : "empty",
150
+ "data-image-fill": fill ? "true" : void 0,
151
+ "data-image-ratio": aspectRatio ? "true" : void 0,
152
+ children: [
153
+ showBlurPlaceholder ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
154
+ className: "puzzle-image__blur",
155
+ src: resolvedBlurDataURL,
156
+ alt: "",
157
+ "aria-hidden": "true"
158
+ }) : null,
159
+ showLoadingPlaceholder ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
160
+ className: "puzzle-image__placeholder",
161
+ "aria-hidden": "true",
162
+ children: loadingPlaceholder
163
+ }) : null,
164
+ shouldShowFallback ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
165
+ className: "puzzle-image__fallback",
166
+ role: alt ? "img" : void 0,
167
+ "aria-label": alt || void 0,
168
+ "aria-hidden": alt ? void 0 : true,
169
+ children: fallback
170
+ }) : media
171
+ ]
172
+ });
173
+ };
174
+ exports.Image = Image;
175
+
176
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["useThemeComponents","useImageState","hasImageSource","getImageSourceUrl","getImageDimensions","getImageBlurDataURL","useRef","useCallback","resolveImageRadius","createElement","cn"],"sources":["../../../../src/components/data-display/image/index.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createElement,\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type ElementType,\n type RefCallback,\n} from \"react\";\n\nimport { preload as preloadImage } from \"react-dom\";\n\nimport { cn } from \"@puzzle-ui/core\";\nimport { useThemeComponents } from \"@puzzle-ui/theme/components-context\";\n\nimport type { ImageProps } from \"./image.types\";\n\nimport {\n getImageBlurDataURL,\n getImageDimensions,\n getImageSourceUrl,\n hasImageSource,\n resolveImageRadius,\n} from \"./image.utils\";\n\nimport { useImageState } from \"./use-image-state\";\n\nimport \"./image.css\";\n\nconst Image = ({\n src,\n alt,\n width,\n height,\n fit = \"cover\",\n position = \"center\",\n aspectRatio,\n fill = false,\n radius,\n fallbackSrc,\n fallback,\n loadingPlaceholder,\n placeholder = \"empty\",\n blurDataURL,\n sources,\n component,\n componentProps,\n quality,\n preload = false,\n unoptimized,\n className,\n style,\n containerClassName,\n containerStyle,\n loading,\n fetchPriority,\n decoding,\n srcSet,\n sizes,\n crossOrigin,\n referrerPolicy,\n ref,\n onLoad,\n onError,\n ...rest\n}: ImageProps) => {\n const configuredImage = useThemeComponents()?.image;\n\n const Component: ElementType = component ?? configuredImage ?? \"img\";\n\n const isNativeImage = Component === \"img\";\n\n const { activeSource, usingFallback, status, markLoaded, markError } =\n useImageState(src, fallbackSrc);\n\n const hasActiveSource = hasImageSource(activeSource);\n\n const sourceUrl = getImageSourceUrl(activeSource);\n\n const sourceDimensions = getImageDimensions(activeSource);\n\n const resolvedWidth = width ?? sourceDimensions?.width;\n const resolvedHeight = height ?? sourceDimensions?.height;\n\n const resolvedBlurDataURL = blurDataURL ?? getImageBlurDataURL(activeSource);\n\n const imageRef = useRef<HTMLImageElement | null>(null);\n\n /**\n * Assigns the image element to both the internal and external refs.\n */\n const setImageRef = useCallback<RefCallback<HTMLImageElement>>(\n (node) => {\n imageRef.current = node;\n\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n },\n [ref],\n );\n\n /**\n * Handles successful image loading.\n */\n const handleLoad: NonNullable<ImageProps[\"onLoad\"]> = useCallback(\n (event) => {\n markLoaded();\n onLoad?.(event);\n },\n [markLoaded, onLoad],\n );\n\n /**\n * Handles image loading failures.\n */\n const handleError: NonNullable<ImageProps[\"onError\"]> = useCallback(\n (event) => {\n markError();\n onError?.(event);\n },\n [markError, onError],\n );\n\n /**\n * Handles images that were loaded before React attached its listeners.\n *\n * This is particularly useful for cached images during hydration.\n */\n useEffect(() => {\n const image = imageRef.current;\n\n if (!image || !image.complete) {\n return;\n }\n\n if (image.naturalWidth > 0) {\n markLoaded();\n }\n }, [activeSource, markLoaded]);\n\n /**\n * Preloads native images using React DOM.\n *\n * Framework image components handle their own preload behavior.\n */\n if (preload && isNativeImage && sourceUrl) {\n preloadImage(sourceUrl, {\n as: \"image\",\n crossOrigin,\n fetchPriority: fetchPriority ?? \"high\",\n imageSrcSet: srcSet,\n imageSizes: sizes,\n referrerPolicy,\n });\n }\n\n const mediaStyle: CSSProperties = {\n ...(fill || aspectRatio\n ? {\n width: \"100%\",\n height: \"100%\",\n }\n : {}),\n ...(fill\n ? {\n position: \"absolute\",\n inset: 0,\n }\n : {}),\n objectFit: fit,\n objectPosition: position,\n ...style,\n };\n\n const wrapperStyle: CSSProperties = {\n ...(aspectRatio\n ? {\n aspectRatio,\n width: \"100%\",\n }\n : {}),\n ...(fill\n ? {\n position: \"relative\",\n display: \"block\",\n width: \"100%\",\n ...(aspectRatio ? {} : { height: \"100%\" }),\n }\n : {}),\n ...(radius\n ? {\n borderRadius: resolveImageRadius(radius),\n }\n : {}),\n ...containerStyle,\n };\n\n const isLoading = hasActiveSource && status === \"loading\";\n\n const shouldShowFallback =\n fallback !== undefined && (!hasActiveSource || status === \"error\");\n\n if (!hasActiveSource && !shouldShowFallback) {\n return null;\n }\n\n const renderedSource = isNativeImage ? sourceUrl : activeSource;\n\n /**\n * Framework-specific props are only forwarded to custom components.\n * This prevents invalid attributes from leaking onto native img tags.\n */\n const imageElement = createElement(Component, {\n ...(!isNativeImage ? componentProps : {}),\n ...rest,\n key: usingFallback ? \"fallback\" : \"source\",\n ref: setImageRef,\n src: renderedSource,\n alt,\n width: resolvedWidth,\n height: resolvedHeight,\n loading,\n fetchPriority,\n decoding,\n crossOrigin,\n referrerPolicy,\n srcSet,\n sizes,\n className: cn(\"puzzle-image__media\", className),\n style: mediaStyle,\n onLoad: handleLoad,\n onError: handleError,\n ...(fill && !isNativeImage ? { fill: true } : {}),\n ...(preload && !isNativeImage ? { preload: true } : {}),\n ...(quality !== undefined && !isNativeImage ? { quality } : {}),\n ...(unoptimized !== undefined && !isNativeImage ? { unoptimized } : {}),\n ...(!isNativeImage && placeholder === \"blur\" && resolvedBlurDataURL\n ? {\n placeholder: \"blur\",\n blurDataURL: resolvedBlurDataURL,\n }\n : {}),\n } as never);\n\n /**\n * Picture sources allow art direction and responsive source selection.\n */\n const media = sources?.length ? (\n <picture className=\"puzzle-image__picture\">\n {sources.map((source, index) => (\n <source\n key={`${source.srcSet}-${index}`}\n srcSet={source.srcSet}\n media={source.media}\n type={source.type}\n sizes={source.sizes}\n />\n ))}\n {imageElement}\n </picture>\n ) : (\n imageElement\n );\n\n const showLoadingPlaceholder = isLoading && loadingPlaceholder !== undefined;\n\n const showBlurPlaceholder =\n isLoading &&\n !loadingPlaceholder &&\n isNativeImage &&\n placeholder === \"blur\" &&\n Boolean(resolvedBlurDataURL);\n\n return (\n <div\n className={cn(\"puzzle-image\", containerClassName)}\n style={wrapperStyle}\n data-status={hasActiveSource ? status : \"empty\"}\n data-image-fill={fill ? \"true\" : undefined}\n data-image-ratio={aspectRatio ? \"true\" : undefined}\n >\n {showBlurPlaceholder ? (\n <img\n className=\"puzzle-image__blur\"\n src={resolvedBlurDataURL}\n alt=\"\"\n aria-hidden=\"true\"\n />\n ) : null}\n\n {showLoadingPlaceholder ? (\n <div className=\"puzzle-image__placeholder\" aria-hidden=\"true\">\n {loadingPlaceholder}\n </div>\n ) : null}\n\n {shouldShowFallback ? (\n <div\n className=\"puzzle-image__fallback\"\n role={alt ? \"img\" : undefined}\n aria-label={alt || undefined}\n aria-hidden={alt ? undefined : true}\n >\n {fallback}\n </div>\n ) : (\n media\n )}\n </div>\n );\n};\n\nexport { Image, type ImageProps };\n\nexport type {\n ImageSource,\n ImageSourceData,\n ImageSourceSet,\n ImageFit,\n ImageRadius,\n ImagePlaceholder,\n} from \"./image.types\";\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ImageFit, ImagePlaceholder, ImageProps, ImageRadius, ImageSource, ImageSourceData, ImageSourceSet } from "./image.types.cjs";
2
+ declare const Image: ({ src, alt, width, height, fit, position, aspectRatio, fill, radius, fallbackSrc, fallback, loadingPlaceholder, placeholder, blurDataURL, sources, component, componentProps, quality, preload, unoptimized, className, style, containerClassName, containerStyle, loading, fetchPriority, decoding, srcSet, sizes, crossOrigin, referrerPolicy, ref, onLoad, onError, ...rest }: ImageProps) => import("react").JSX.Element | null;
3
+ export { Image, type ImageFit, type ImagePlaceholder, type ImageProps, type ImageRadius, type ImageSource, type ImageSourceData, type ImageSourceSet };
@@ -0,0 +1,3 @@
1
+ import { ImageFit, ImagePlaceholder, ImageProps, ImageRadius, ImageSource, ImageSourceData, ImageSourceSet } from "./image.types.js";
2
+ declare const Image: ({ src, alt, width, height, fit, position, aspectRatio, fill, radius, fallbackSrc, fallback, loadingPlaceholder, placeholder, blurDataURL, sources, component, componentProps, quality, preload, unoptimized, className, style, containerClassName, containerStyle, loading, fetchPriority, decoding, srcSet, sizes, crossOrigin, referrerPolicy, ref, onLoad, onError, ...rest }: ImageProps) => import("react").JSX.Element | null;
3
+ export { Image, type ImageFit, type ImagePlaceholder, type ImageProps, type ImageRadius, type ImageSource, type ImageSourceData, type ImageSourceSet };