@unoff/ui 1.21.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 (322) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +880 -0
  3. package/dist/assets/Accordion.css +1 -0
  4. package/dist/assets/ActionsItem.css +1 -0
  5. package/dist/assets/ActionsList.css +1 -0
  6. package/dist/assets/Avatar.css +1 -0
  7. package/dist/assets/Bar.css +1 -0
  8. package/dist/assets/Button.css +1 -0
  9. package/dist/assets/Card.css +1 -0
  10. package/dist/assets/Chip.css +1 -0
  11. package/dist/assets/ColorChip.css +1 -0
  12. package/dist/assets/ColorItem.css +1 -0
  13. package/dist/assets/Consent.css +1 -0
  14. package/dist/assets/Dialog.css +1 -0
  15. package/dist/assets/DraggableItem.css +1 -0
  16. package/dist/assets/DraggableWindow.css +1 -0
  17. package/dist/assets/Drawer.css +1 -0
  18. package/dist/assets/Dropdown.css +1 -0
  19. package/dist/assets/Dropzone.css +1 -0
  20. package/dist/assets/FormItem.css +1 -0
  21. package/dist/assets/Icon.css +1 -0
  22. package/dist/assets/IconChip.css +1 -0
  23. package/dist/assets/Input.css +1 -0
  24. package/dist/assets/InputsBar.css +1 -0
  25. package/dist/assets/KeyboardShortcutItem.css +1 -0
  26. package/dist/assets/Knob.css +1 -0
  27. package/dist/assets/Layout.css +1 -0
  28. package/dist/assets/List.css +1 -0
  29. package/dist/assets/MembersList.css +1 -0
  30. package/dist/assets/Menu.css +1 -0
  31. package/dist/assets/Message.css +1 -0
  32. package/dist/assets/MultipleSlider.css +1 -0
  33. package/dist/assets/Notification.css +1 -0
  34. package/dist/assets/Popin.css +1 -0
  35. package/dist/assets/Section.css +1 -0
  36. package/dist/assets/SectionTitle.css +1 -0
  37. package/dist/assets/Select.css +1 -0
  38. package/dist/assets/SemanticMessage.css +1 -0
  39. package/dist/assets/SimpleItem.css +1 -0
  40. package/dist/assets/SimpleSlider.css +1 -0
  41. package/dist/assets/SortableList.css +1 -0
  42. package/dist/assets/Tabs.css +1 -0
  43. package/dist/assets/Text.css +1 -0
  44. package/dist/assets/Thumbnail.css +1 -0
  45. package/dist/assets/Tooltip.css +1 -0
  46. package/dist/assets/styles/icons/icons.css +1 -0
  47. package/dist/assets/styles/icons/styles/figma.css +1 -0
  48. package/dist/assets/styles/icons/styles/framer.css +1 -0
  49. package/dist/assets/styles/icons/styles/penpot.css +1 -0
  50. package/dist/assets/styles/icons/styles/sketch.css +1 -0
  51. package/dist/assets/styles/layouts.css +1 -0
  52. package/dist/assets/styles/texts/styles/figma.css +1 -0
  53. package/dist/assets/styles/texts/styles/framer.css +1 -0
  54. package/dist/assets/styles/texts/styles/penpot.css +1 -0
  55. package/dist/assets/styles/texts/styles/sketch.css +1 -0
  56. package/dist/assets/styles/texts/texts.css +1 -0
  57. package/dist/assets/styles/tokens/figma-types.css +1 -0
  58. package/dist/assets/styles/tokens/framer-types.css +1 -0
  59. package/dist/assets/styles/tokens/modules/figma-colors.css +1 -0
  60. package/dist/assets/styles/tokens/modules/figma-types.css +1 -0
  61. package/dist/assets/styles/tokens/modules/framer-colors.css +1 -0
  62. package/dist/assets/styles/tokens/modules/framer-types.css +1 -0
  63. package/dist/assets/styles/tokens/modules/globals.css +1 -0
  64. package/dist/assets/styles/tokens/modules/penpot-colors.css +1 -0
  65. package/dist/assets/styles/tokens/modules/penpot-types.css +1 -0
  66. package/dist/assets/styles/tokens/modules/sketch-colors.css +1 -0
  67. package/dist/assets/styles/tokens/modules/sketch-types.css +1 -0
  68. package/dist/assets/styles/tokens/penpot-types.css +1 -0
  69. package/dist/assets/styles/tokens/sketch-types.css +1 -0
  70. package/dist/components/actions/accordion/Accordion.d.ts +59 -0
  71. package/dist/components/actions/accordion/Accordion.d.ts.map +1 -0
  72. package/dist/components/actions/accordion/Accordion.js +104 -0
  73. package/dist/components/actions/accordion/Accordion.js.map +1 -0
  74. package/dist/components/actions/button/Button.d.ts +148 -0
  75. package/dist/components/actions/button/Button.d.ts.map +1 -0
  76. package/dist/components/actions/button/Button.figma.d.ts +2 -0
  77. package/dist/components/actions/button/Button.figma.d.ts.map +1 -0
  78. package/dist/components/actions/button/Button.figma.js +43 -0
  79. package/dist/components/actions/button/Button.figma.js.map +1 -0
  80. package/dist/components/actions/button/Button.js +306 -0
  81. package/dist/components/actions/button/Button.js.map +1 -0
  82. package/dist/components/actions/card/Card.d.ts +39 -0
  83. package/dist/components/actions/card/Card.d.ts.map +1 -0
  84. package/dist/components/actions/card/Card.js +99 -0
  85. package/dist/components/actions/card/Card.js.map +1 -0
  86. package/dist/components/actions/knob/Knob.d.ts +93 -0
  87. package/dist/components/actions/knob/Knob.d.ts.map +1 -0
  88. package/dist/components/actions/knob/Knob.js +179 -0
  89. package/dist/components/actions/knob/Knob.js.map +1 -0
  90. package/dist/components/actions/menu/Menu.d.ts +104 -0
  91. package/dist/components/actions/menu/Menu.d.ts.map +1 -0
  92. package/dist/components/actions/menu/Menu.js +200 -0
  93. package/dist/components/actions/menu/Menu.js.map +1 -0
  94. package/dist/components/assets/avatar/Avatar.d.ts +30 -0
  95. package/dist/components/assets/avatar/Avatar.d.ts.map +1 -0
  96. package/dist/components/assets/avatar/Avatar.js +54 -0
  97. package/dist/components/assets/avatar/Avatar.js.map +1 -0
  98. package/dist/components/assets/icon/Icon.d.ts +28 -0
  99. package/dist/components/assets/icon/Icon.d.ts.map +1 -0
  100. package/dist/components/assets/icon/Icon.figma.d.ts +2 -0
  101. package/dist/components/assets/icon/Icon.figma.d.ts.map +1 -0
  102. package/dist/components/assets/icon/Icon.figma.js +27 -0
  103. package/dist/components/assets/icon/Icon.figma.js.map +1 -0
  104. package/dist/components/assets/icon/Icon.js +35 -0
  105. package/dist/components/assets/icon/Icon.js.map +1 -0
  106. package/dist/components/assets/section-title/SectionTitle.d.ts +22 -0
  107. package/dist/components/assets/section-title/SectionTitle.d.ts.map +1 -0
  108. package/dist/components/assets/section-title/SectionTitle.js +42 -0
  109. package/dist/components/assets/section-title/SectionTitle.js.map +1 -0
  110. package/dist/components/assets/text/Text.d.ts +34 -0
  111. package/dist/components/assets/text/Text.d.ts.map +1 -0
  112. package/dist/components/assets/text/Text.js +35 -0
  113. package/dist/components/assets/text/Text.js.map +1 -0
  114. package/dist/components/assets/thumbnail/Thumbnail.d.ts +25 -0
  115. package/dist/components/assets/thumbnail/Thumbnail.d.ts.map +1 -0
  116. package/dist/components/assets/thumbnail/Thumbnail.js +67 -0
  117. package/dist/components/assets/thumbnail/Thumbnail.js.map +1 -0
  118. package/dist/components/dialogs/consent/Consent.d.ts +85 -0
  119. package/dist/components/dialogs/consent/Consent.d.ts.map +1 -0
  120. package/dist/components/dialogs/consent/Consent.js +402 -0
  121. package/dist/components/dialogs/consent/Consent.js.map +1 -0
  122. package/dist/components/dialogs/dialog/Dialog.d.ts +81 -0
  123. package/dist/components/dialogs/dialog/Dialog.d.ts.map +1 -0
  124. package/dist/components/dialogs/dialog/Dialog.js +58 -0
  125. package/dist/components/dialogs/dialog/Dialog.js.map +1 -0
  126. package/dist/components/dialogs/message/Message.d.ts +25 -0
  127. package/dist/components/dialogs/message/Message.d.ts.map +1 -0
  128. package/dist/components/dialogs/message/Message.js +141 -0
  129. package/dist/components/dialogs/message/Message.js.map +1 -0
  130. package/dist/components/dialogs/notification/Notification.d.ts +22 -0
  131. package/dist/components/dialogs/notification/Notification.d.ts.map +1 -0
  132. package/dist/components/dialogs/notification/Notification.js +38 -0
  133. package/dist/components/dialogs/notification/Notification.js.map +1 -0
  134. package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts +40 -0
  135. package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts.map +1 -0
  136. package/dist/components/dialogs/semantic-message/SemanticMessage.js +71 -0
  137. package/dist/components/dialogs/semantic-message/SemanticMessage.js.map +1 -0
  138. package/dist/components/inputs/dropdown/Dropdown.d.ts +123 -0
  139. package/dist/components/inputs/dropdown/Dropdown.d.ts.map +1 -0
  140. package/dist/components/inputs/dropdown/Dropdown.figma.d.ts +2 -0
  141. package/dist/components/inputs/dropdown/Dropdown.figma.d.ts.map +1 -0
  142. package/dist/components/inputs/dropdown/Dropdown.figma.js +28 -0
  143. package/dist/components/inputs/dropdown/Dropdown.figma.js.map +1 -0
  144. package/dist/components/inputs/dropdown/Dropdown.js +307 -0
  145. package/dist/components/inputs/dropdown/Dropdown.js.map +1 -0
  146. package/dist/components/inputs/dropzone/Dropzone.d.ts +78 -0
  147. package/dist/components/inputs/dropzone/Dropzone.d.ts.map +1 -0
  148. package/dist/components/inputs/dropzone/Dropzone.js +222 -0
  149. package/dist/components/inputs/dropzone/Dropzone.js.map +1 -0
  150. package/dist/components/inputs/input/Input.d.ts +203 -0
  151. package/dist/components/inputs/input/Input.d.ts.map +1 -0
  152. package/dist/components/inputs/input/Input.figma.d.ts +2 -0
  153. package/dist/components/inputs/input/Input.figma.d.ts.map +1 -0
  154. package/dist/components/inputs/input/Input.figma.js +35 -0
  155. package/dist/components/inputs/input/Input.figma.js.map +1 -0
  156. package/dist/components/inputs/input/Input.js +713 -0
  157. package/dist/components/inputs/input/Input.js.map +1 -0
  158. package/dist/components/inputs/inputs-bar/InputsBar.d.ts +18 -0
  159. package/dist/components/inputs/inputs-bar/InputsBar.d.ts.map +1 -0
  160. package/dist/components/inputs/inputs-bar/InputsBar.js +15 -0
  161. package/dist/components/inputs/inputs-bar/InputsBar.js.map +1 -0
  162. package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts +125 -0
  163. package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts.map +1 -0
  164. package/dist/components/inputs/multiple-slider/MultipleSlider.js +417 -0
  165. package/dist/components/inputs/multiple-slider/MultipleSlider.js.map +1 -0
  166. package/dist/components/inputs/multiple-slider/actions/addStop.d.ts +8 -0
  167. package/dist/components/inputs/multiple-slider/actions/addStop.d.ts.map +1 -0
  168. package/dist/components/inputs/multiple-slider/actions/deleteStop.d.ts +8 -0
  169. package/dist/components/inputs/multiple-slider/actions/deleteStop.d.ts.map +1 -0
  170. package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts +5 -0
  171. package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts.map +1 -0
  172. package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts +5 -0
  173. package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts.map +1 -0
  174. package/dist/components/inputs/select/Select.d.ts +112 -0
  175. package/dist/components/inputs/select/Select.d.ts.map +1 -0
  176. package/dist/components/inputs/select/Select.js +313 -0
  177. package/dist/components/inputs/select/Select.js.map +1 -0
  178. package/dist/components/inputs/simple-slider/SimpleSlider.d.ts +93 -0
  179. package/dist/components/inputs/simple-slider/SimpleSlider.d.ts.map +1 -0
  180. package/dist/components/inputs/simple-slider/SimpleSlider.js +166 -0
  181. package/dist/components/inputs/simple-slider/SimpleSlider.js.map +1 -0
  182. package/dist/components/lists/actions-item/ActionsItem.d.ts +64 -0
  183. package/dist/components/lists/actions-item/ActionsItem.d.ts.map +1 -0
  184. package/dist/components/lists/actions-item/ActionsItem.js +115 -0
  185. package/dist/components/lists/actions-item/ActionsItem.js.map +1 -0
  186. package/dist/components/lists/actions-list/ActionsList.d.ts +79 -0
  187. package/dist/components/lists/actions-list/ActionsList.d.ts.map +1 -0
  188. package/dist/components/lists/actions-list/ActionsList.js +384 -0
  189. package/dist/components/lists/actions-list/ActionsList.js.map +1 -0
  190. package/dist/components/lists/color-item/ColorItem.d.ts +27 -0
  191. package/dist/components/lists/color-item/ColorItem.d.ts.map +1 -0
  192. package/dist/components/lists/color-item/ColorItem.js +70 -0
  193. package/dist/components/lists/color-item/ColorItem.js.map +1 -0
  194. package/dist/components/lists/draggable-item/DraggableItem.d.ts +110 -0
  195. package/dist/components/lists/draggable-item/DraggableItem.d.ts.map +1 -0
  196. package/dist/components/lists/draggable-item/DraggableItem.js +176 -0
  197. package/dist/components/lists/draggable-item/DraggableItem.js.map +1 -0
  198. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.d.ts +19 -0
  199. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.d.ts.map +1 -0
  200. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js +75 -0
  201. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js.map +1 -0
  202. package/dist/components/lists/members-list/MembersList.d.ts +32 -0
  203. package/dist/components/lists/members-list/MembersList.d.ts.map +1 -0
  204. package/dist/components/lists/members-list/MembersList.js +117 -0
  205. package/dist/components/lists/members-list/MembersList.js.map +1 -0
  206. package/dist/components/lists/sortable-list/SortableList.d.ts +103 -0
  207. package/dist/components/lists/sortable-list/SortableList.d.ts.map +1 -0
  208. package/dist/components/lists/sortable-list/SortableList.js +148 -0
  209. package/dist/components/lists/sortable-list/SortableList.js.map +1 -0
  210. package/dist/components/lists/tabs/Tabs.d.ts +48 -0
  211. package/dist/components/lists/tabs/Tabs.d.ts.map +1 -0
  212. package/dist/components/lists/tabs/Tabs.figma.d.ts +2 -0
  213. package/dist/components/lists/tabs/Tabs.figma.d.ts.map +1 -0
  214. package/dist/components/lists/tabs/Tabs.figma.js +31 -0
  215. package/dist/components/lists/tabs/Tabs.figma.js.map +1 -0
  216. package/dist/components/lists/tabs/Tabs.js +165 -0
  217. package/dist/components/lists/tabs/Tabs.js.map +1 -0
  218. package/dist/components/slots/bar/Bar.d.ts +65 -0
  219. package/dist/components/slots/bar/Bar.d.ts.map +1 -0
  220. package/dist/components/slots/bar/Bar.js +100 -0
  221. package/dist/components/slots/bar/Bar.js.map +1 -0
  222. package/dist/components/slots/draggable-window/DraggableWindow.d.ts +25 -0
  223. package/dist/components/slots/draggable-window/DraggableWindow.d.ts.map +1 -0
  224. package/dist/components/slots/draggable-window/DraggableWindow.js +100 -0
  225. package/dist/components/slots/draggable-window/DraggableWindow.js.map +1 -0
  226. package/dist/components/slots/drawer/Drawer.d.ts +78 -0
  227. package/dist/components/slots/drawer/Drawer.d.ts.map +1 -0
  228. package/dist/components/slots/drawer/Drawer.js +148 -0
  229. package/dist/components/slots/drawer/Drawer.js.map +1 -0
  230. package/dist/components/slots/form-item/FormItem.d.ts +52 -0
  231. package/dist/components/slots/form-item/FormItem.d.ts.map +1 -0
  232. package/dist/components/slots/form-item/FormItem.js +89 -0
  233. package/dist/components/slots/form-item/FormItem.js.map +1 -0
  234. package/dist/components/slots/layout/Layout.d.ts +34 -0
  235. package/dist/components/slots/layout/Layout.d.ts.map +1 -0
  236. package/dist/components/slots/layout/Layout.js +45 -0
  237. package/dist/components/slots/layout/Layout.js.map +1 -0
  238. package/dist/components/slots/list/List.d.ts +49 -0
  239. package/dist/components/slots/list/List.d.ts.map +1 -0
  240. package/dist/components/slots/list/List.js +55 -0
  241. package/dist/components/slots/list/List.js.map +1 -0
  242. package/dist/components/slots/popin/Popin.d.ts +85 -0
  243. package/dist/components/slots/popin/Popin.d.ts.map +1 -0
  244. package/dist/components/slots/popin/Popin.js +182 -0
  245. package/dist/components/slots/popin/Popin.js.map +1 -0
  246. package/dist/components/slots/section/Section.d.ts +32 -0
  247. package/dist/components/slots/section/Section.d.ts.map +1 -0
  248. package/dist/components/slots/section/Section.js +49 -0
  249. package/dist/components/slots/section/Section.js.map +1 -0
  250. package/dist/components/slots/simple-item/SimpleItem.d.ts +45 -0
  251. package/dist/components/slots/simple-item/SimpleItem.d.ts.map +1 -0
  252. package/dist/components/slots/simple-item/SimpleItem.js +100 -0
  253. package/dist/components/slots/simple-item/SimpleItem.js.map +1 -0
  254. package/dist/components/tags/chip/Chip.d.ts +43 -0
  255. package/dist/components/tags/chip/Chip.d.ts.map +1 -0
  256. package/dist/components/tags/chip/Chip.figma.d.ts +2 -0
  257. package/dist/components/tags/chip/Chip.figma.d.ts.map +1 -0
  258. package/dist/components/tags/chip/Chip.figma.js +18 -0
  259. package/dist/components/tags/chip/Chip.figma.js.map +1 -0
  260. package/dist/components/tags/chip/Chip.js +88 -0
  261. package/dist/components/tags/chip/Chip.js.map +1 -0
  262. package/dist/components/tags/color-chip/ColorChip.d.ts +36 -0
  263. package/dist/components/tags/color-chip/ColorChip.d.ts.map +1 -0
  264. package/dist/components/tags/color-chip/ColorChip.js +39 -0
  265. package/dist/components/tags/color-chip/ColorChip.js.map +1 -0
  266. package/dist/components/tags/icon-chip/IconChip.d.ts +42 -0
  267. package/dist/components/tags/icon-chip/IconChip.d.ts.map +1 -0
  268. package/dist/components/tags/icon-chip/IconChip.js +54 -0
  269. package/dist/components/tags/icon-chip/IconChip.js.map +1 -0
  270. package/dist/components/tags/tooltip/Tooltip.d.ts +25 -0
  271. package/dist/components/tags/tooltip/Tooltip.d.ts.map +1 -0
  272. package/dist/components/tags/tooltip/Tooltip.js +72 -0
  273. package/dist/components/tags/tooltip/Tooltip.js.map +1 -0
  274. package/dist/do-classnames-DSDFCvzy.js +5 -0
  275. package/dist/do-classnames-DSDFCvzy.js.map +1 -0
  276. package/dist/do-map-2nhWP1KI.js +8 -0
  277. package/dist/do-map-2nhWP1KI.js.map +1 -0
  278. package/dist/index.d.ts +61 -0
  279. package/dist/index.d.ts.map +1 -0
  280. package/dist/index.js +113 -0
  281. package/dist/index.js.map +1 -0
  282. package/dist/index_react-CmuCVQet.js +13799 -0
  283. package/dist/index_react-CmuCVQet.js.map +1 -0
  284. package/dist/styles/icons/icons.module.js +115 -0
  285. package/dist/styles/icons/icons.module.js.map +1 -0
  286. package/dist/styles/layouts.module.js +37 -0
  287. package/dist/styles/layouts.module.js.map +1 -0
  288. package/dist/styles/texts/texts.module.js +23 -0
  289. package/dist/styles/texts/texts.module.js.map +1 -0
  290. package/dist/styles/tokens/modules/figma-colors.module.js +9 -0
  291. package/dist/styles/tokens/modules/figma-colors.module.js.map +1 -0
  292. package/dist/styles/tokens/modules/figma-types.module.js +9 -0
  293. package/dist/styles/tokens/modules/figma-types.module.js.map +1 -0
  294. package/dist/styles/tokens/modules/framer-colors.module.js +9 -0
  295. package/dist/styles/tokens/modules/framer-colors.module.js.map +1 -0
  296. package/dist/styles/tokens/modules/framer-types.module.js +9 -0
  297. package/dist/styles/tokens/modules/framer-types.module.js.map +1 -0
  298. package/dist/styles/tokens/modules/globals.module.js +9 -0
  299. package/dist/styles/tokens/modules/globals.module.js.map +1 -0
  300. package/dist/styles/tokens/modules/penpot-colors.module.js +9 -0
  301. package/dist/styles/tokens/modules/penpot-colors.module.js.map +1 -0
  302. package/dist/styles/tokens/modules/penpot-types.module.js +9 -0
  303. package/dist/styles/tokens/modules/penpot-types.module.js.map +1 -0
  304. package/dist/styles/tokens/modules/sketch-colors.module.js +9 -0
  305. package/dist/styles/tokens/modules/sketch-colors.module.js.map +1 -0
  306. package/dist/styles/tokens/modules/sketch-types.module.js +9 -0
  307. package/dist/styles/tokens/modules/sketch-types.module.js.map +1 -0
  308. package/dist/tests/setup.d.ts +2 -0
  309. package/dist/tests/setup.d.ts.map +1 -0
  310. package/dist/types/consent.types.d.ts +10 -0
  311. package/dist/types/consent.types.d.ts.map +1 -0
  312. package/dist/types/consent.types.js +2 -0
  313. package/dist/types/consent.types.js.map +1 -0
  314. package/dist/types/icon.types.d.ts +2 -0
  315. package/dist/types/icon.types.d.ts.map +1 -0
  316. package/dist/types/icon.types.js +2 -0
  317. package/dist/types/icon.types.js.map +1 -0
  318. package/dist/types/list.types.d.ts +14 -0
  319. package/dist/types/list.types.d.ts.map +1 -0
  320. package/dist/types/list.types.js +2 -0
  321. package/dist/types/list.types.js.map +1 -0
  322. package/package.json +108 -0
@@ -0,0 +1,200 @@
1
+ import '../../../assets/Menu.css';
2
+ import { jsx as g, jsxs as T } from "react/jsx-runtime";
3
+ import h from "react";
4
+ import y from "../../lists/actions-list/ActionsList.js";
5
+ import { t as B } from "../../../do-classnames-DSDFCvzy.js";
6
+ import M from "../button/Button.js";
7
+ class x extends h.Component {
8
+ selectMenuRef;
9
+ buttonRef;
10
+ listRef;
11
+ actionsListRef;
12
+ menuRef;
13
+ subMenuRef;
14
+ static defaultProps = {
15
+ type: "ICON",
16
+ options: [],
17
+ state: "DEFAULT",
18
+ alignment: "BOTTOM_LEFT",
19
+ isBlocked: !1,
20
+ isNew: !1
21
+ };
22
+ constructor(s) {
23
+ super(s), this.state = {
24
+ isMenuOpen: !1,
25
+ isMenuVisible: !1,
26
+ alignment: s.alignment ?? "BOTTOM_LEFT"
27
+ }, this.selectMenuRef = h.createRef(), this.buttonRef = h.createRef(), this.listRef = h.createRef(), this.actionsListRef = h.createRef(), this.menuRef = h.createRef(), this.subMenuRef = h.createRef(), this.handleClickOutside = this.handleClickOutside.bind(this);
28
+ }
29
+ componentDidMount = () => document.addEventListener("mousedown", this.handleClickOutside);
30
+ componentWillUnmount = () => {
31
+ document.removeEventListener("mousedown", this.handleClickOutside);
32
+ };
33
+ // Direct Actions
34
+ handleClickOutside = (s) => {
35
+ const t = s.target, { isMenuOpen: l } = this.state;
36
+ this.buttonRef.current?.buttonRef.current?.contains(t) && l || t === this.menuRef.current || t === this.subMenuRef.current || t.tagName === "HR" && this.menuRef.current?.contains(t) || t.dataset.role === "GROUP" && this.menuRef.current?.contains(t) ? this.setState({
37
+ isMenuOpen: !0
38
+ }) : this.setState({
39
+ isMenuOpen: !1,
40
+ isMenuVisible: !1
41
+ });
42
+ };
43
+ onOpenMenu = (s) => {
44
+ const { containerId: t, alignment: l } = this.props, { isMenuOpen: o } = this.state;
45
+ this.setState({
46
+ isMenuOpen: !o
47
+ }), setTimeout(() => {
48
+ if (this.listRef.current != null) {
49
+ const i = this.listRef.current.getBoundingClientRect(), f = this.buttonRef.current?.buttonRef.current?.getBoundingClientRect();
50
+ let u = 0, c = 0, d = !1, p = !1;
51
+ if (i.bottom > window.innerHeight && (u = window.innerHeight - i.height - 8, d = !0), i.top < 0 && (u = 8, d = !0), i.right > window.innerWidth && (c = window.innerWidth - i.width - 8, p = !0), i.left < 0 && (c = 8, p = !0), d) {
52
+ const r = l?.includes("TOP"), e = r ? "translateY(-100%)" : "none";
53
+ if (f) {
54
+ const a = r ? -i.height : 0, m = u - f.top - a;
55
+ this.listRef.current.style.top = `${m}px`;
56
+ }
57
+ this.listRef.current.style.transform = p ? `${e !== "none" ? e + " " : ""}translateX(${c - i.left}px)` : e;
58
+ }
59
+ if (p && !d) {
60
+ const e = l?.includes("TOP") ? "translateY(-100%)" : "none";
61
+ this.listRef.current.style.transform = e === "none" ? `translateX(${c - i.left}px)` : `${e} translateX(${c - i.left}px)`;
62
+ }
63
+ if (t !== void 0) {
64
+ const r = document.getElementById(t);
65
+ if (r) {
66
+ const e = r.getBoundingClientRect(), a = this.buttonRef.current?.buttonRef.current?.getBoundingClientRect(), m = this.listRef.current.getBoundingClientRect().top - e.top, R = this.listRef.current.getBoundingClientRect().bottom - e.bottom;
67
+ m < -16 && a && (this.listRef.current.style.top = `${e.top - a.top + 16}px`), R > -16 && a && (this.listRef.current.style.bottom = `${a.bottom - e.bottom + 16}px`), this.listRef.current.style.visibility = "visible";
68
+ }
69
+ }
70
+ this.setState({ isMenuVisible: !0 });
71
+ }
72
+ }, 0), s.type === "keydown" && setTimeout(() => this.actionsListRef.current?.focusFirstMenuItem(), 0);
73
+ };
74
+ render() {
75
+ const {
76
+ id: s,
77
+ type: t,
78
+ label: l,
79
+ state: o,
80
+ icon: i,
81
+ helper: f,
82
+ warning: u,
83
+ customIcon: c,
84
+ options: d,
85
+ selected: p,
86
+ alignment: r,
87
+ isBlocked: e,
88
+ isNew: a,
89
+ containerId: m
90
+ } = this.props, { isMenuOpen: R } = this.state, L = (n) => {
91
+ const b = [];
92
+ return n.forEach((v) => {
93
+ b.push(v), Array.isArray(v.children) && v.children.length > 0 && b.push(...L(v.children));
94
+ }), b;
95
+ }, O = L(d).filter(
96
+ (n) => n.isActive !== !1
97
+ );
98
+ if (O.length === 0) return null;
99
+ if (O.length === 1 && O[0].children === void 0) {
100
+ const n = O[0];
101
+ return /* @__PURE__ */ g(
102
+ M,
103
+ {
104
+ type: t === "ICON" ? "secondary" : "primary",
105
+ label: n.label,
106
+ isLoading: o === "LOADING",
107
+ isDisabled: o === "DISABLED" || e,
108
+ isBlocked: n.isBlocked,
109
+ isNew: n.isNew,
110
+ action: o === "DISABLED" || e ? void 0 : (b) => (
111
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
112
+ n.action?.(b)
113
+ )
114
+ }
115
+ );
116
+ }
117
+ return /* @__PURE__ */ T(
118
+ "div",
119
+ {
120
+ id: s,
121
+ className: B([
122
+ "menu",
123
+ "recharged",
124
+ `menu--${r?.toLocaleLowerCase().replace("_", "-")}`
125
+ ]),
126
+ ref: this.selectMenuRef,
127
+ children: [
128
+ t === "ICON" ? /* @__PURE__ */ g(
129
+ M,
130
+ {
131
+ type: "icon",
132
+ icon: i === void 0 ? void 0 : i,
133
+ customIcon: c === void 0 ? void 0 : c,
134
+ state: R ? "selected" : void 0,
135
+ helper: f === void 0 ? void 0 : f,
136
+ warning: u === void 0 ? void 0 : u,
137
+ isLoading: o === "LOADING",
138
+ isDisabled: o === "DISABLED" || e,
139
+ isNew: a,
140
+ ref: this.buttonRef,
141
+ action: (n) => o === "DISABLED" || e ? void 0 : this.onOpenMenu(n),
142
+ "aria-label": l,
143
+ "aria-haspopup": "true",
144
+ "aria-controls": `menu-${s}`,
145
+ "aria-expanded": R
146
+ }
147
+ ) : /* @__PURE__ */ g(
148
+ M,
149
+ {
150
+ type: "primary",
151
+ label: l,
152
+ hasMultipleActions: !0,
153
+ helper: f === void 0 ? void 0 : f,
154
+ warning: u === void 0 ? void 0 : u,
155
+ isLoading: o === "LOADING",
156
+ isDisabled: o === "DISABLED" || e,
157
+ isNew: a,
158
+ ref: this.buttonRef,
159
+ action: (n) => o === "DISABLED" || e ? void 0 : this.onOpenMenu(n),
160
+ "aria-label": l,
161
+ "aria-haspopup": "true",
162
+ "aria-controls": `menu-${s}`,
163
+ "aria-expanded": R
164
+ }
165
+ ),
166
+ R ? /* @__PURE__ */ g(
167
+ "div",
168
+ {
169
+ id: `menu-${s}`,
170
+ className: "floating-menu",
171
+ style: {
172
+ position: "absolute",
173
+ zIndex: 99,
174
+ visibility: m === void 0 && this.state.isMenuVisible ? "visible" : "hidden"
175
+ },
176
+ ref: this.listRef,
177
+ children: /* @__PURE__ */ g(
178
+ y,
179
+ {
180
+ options: d,
181
+ selected: p,
182
+ direction: r?.includes("LEFT") ? "RIGHT" : "LEFT",
183
+ containerId: m,
184
+ onCancellation: () => this.setState({ isMenuOpen: !1 }),
185
+ ref: this.actionsListRef,
186
+ menuRef: this.menuRef,
187
+ subMenuRef: this.subMenuRef
188
+ }
189
+ )
190
+ }
191
+ ) : null
192
+ ]
193
+ }
194
+ );
195
+ }
196
+ }
197
+ export {
198
+ x as default
199
+ };
200
+ //# sourceMappingURL=Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.js","sources":["../../../../src/components/actions/menu/Menu.tsx"],"sourcesContent":["import React from 'react'\nimport ActionsList from '@components/lists/actions-list/ActionsList'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport type { DropdownOption } from '@tps/list.types'\nimport type { IconList } from '@tps/icon.types'\nimport Button from '../button/Button'\nimport './menu.scss'\n\nexport interface MenuProps {\n /**\n * Unique identifier for the menu\n */\n id: string\n /**\n * Visual type of the menu button\n * @default 'ICON'\n */\n type: 'ICON' | 'PRIMARY'\n /**\n * Text label for the menu button\n */\n label?: string\n /**\n * Icon name to display in the button\n */\n icon?: IconList\n /**\n * Custom icon element\n */\n customIcon?: React.ReactElement\n /**\n * List of menu options\n * @default []\n */\n options: Array<DropdownOption>\n /**\n * ID of the currently selected option\n */\n selected?: string\n /**\n * ID of the container element for portal rendering\n */\n containerId?: string\n /**\n * State of the menu button\n * @default 'DEFAULT'\n */\n state?: 'DEFAULT' | 'DISABLED' | 'LOADING'\n /**\n * Position of the menu relative to the button\n * @default 'BOTTOM_LEFT'\n */\n alignment?: 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT'\n /**\n * Helper tooltip configuration\n */\n helper?: {\n /** Tooltip content */\n label: string | React.ReactNode\n /** Tooltip position */\n pin?: 'TOP' | 'BOTTOM'\n /** Whether to use single line display */\n isSingleLine?: boolean\n }\n /**\n * Warning tooltip configuration\n */\n warning?: {\n /** Warning message */\n label: string | React.ReactNode\n /** Warning position */\n pin?: 'TOP' | 'BOTTOM'\n /** Warning display type */\n type?: 'MULTI_LINE' | 'SINGLE_LINE'\n }\n /**\n * Whether the menu is blocked\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n}\n\nexport interface MenuStates {\n isMenuOpen: boolean\n isMenuVisible: boolean\n alignment: 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT'\n}\n\nexport default class Menu extends React.Component<MenuProps, MenuStates> {\n private selectMenuRef: React.RefObject<HTMLDivElement>\n buttonRef: React.RefObject<Button>\n private listRef: React.RefObject<HTMLDivElement>\n private actionsListRef: React.RefObject<ActionsList>\n private menuRef: React.RefObject<HTMLUListElement>\n private subMenuRef: React.RefObject<HTMLUListElement>\n\n static defaultProps: Partial<MenuProps> = {\n type: 'ICON',\n options: [],\n state: 'DEFAULT',\n alignment: 'BOTTOM_LEFT',\n isBlocked: false,\n isNew: false,\n }\n\n constructor(props: MenuProps) {\n super(props)\n this.state = {\n isMenuOpen: false,\n isMenuVisible: false,\n alignment: props.alignment ?? 'BOTTOM_LEFT',\n }\n this.selectMenuRef = React.createRef()\n this.buttonRef = React.createRef()\n this.listRef = React.createRef()\n this.actionsListRef = React.createRef()\n this.menuRef = React.createRef()\n this.subMenuRef = React.createRef()\n this.handleClickOutside = this.handleClickOutside.bind(this)\n }\n\n componentDidMount = () =>\n document.addEventListener('mousedown', this.handleClickOutside)\n\n componentWillUnmount = () => {\n document.removeEventListener('mousedown', this.handleClickOutside)\n }\n\n // Direct Actions\n handleClickOutside = (e: Event) => {\n const target = e.target as HTMLElement\n const { isMenuOpen } = this.state\n\n if (\n (this.buttonRef.current?.buttonRef.current?.contains(target) &&\n isMenuOpen) ||\n target === this.menuRef.current ||\n target === this.subMenuRef.current ||\n (target.tagName === 'HR' && this.menuRef.current?.contains(target)) ||\n (target.dataset.role === 'GROUP' &&\n this.menuRef.current?.contains(target))\n )\n this.setState({\n isMenuOpen: true,\n })\n else\n this.setState({\n isMenuOpen: false,\n isMenuVisible: false,\n })\n }\n\n onOpenMenu = (\n e: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => {\n const { containerId, alignment } = this.props\n const { isMenuOpen } = this.state\n\n this.setState({\n isMenuOpen: !isMenuOpen,\n })\n\n setTimeout(() => {\n if (this.listRef.current != null) {\n const menuRect = this.listRef.current.getBoundingClientRect()\n const buttonRect =\n this.buttonRef.current?.buttonRef.current?.getBoundingClientRect()\n\n let adjustedTop = 0\n let adjustedLeft = 0\n let shouldTransformY = false\n let shouldTransformX = false\n\n if (menuRect.bottom > window.innerHeight) {\n adjustedTop = window.innerHeight - menuRect.height - 8\n shouldTransformY = true\n }\n if (menuRect.top < 0) {\n adjustedTop = 8\n shouldTransformY = true\n }\n\n if (menuRect.right > window.innerWidth) {\n adjustedLeft = window.innerWidth - menuRect.width - 8\n shouldTransformX = true\n }\n if (menuRect.left < 0) {\n adjustedLeft = 8\n shouldTransformX = true\n }\n\n if (shouldTransformY) {\n const isTopAlignment = alignment?.includes('TOP')\n const baseTransform = isTopAlignment ? 'translateY(-100%)' : 'none'\n\n if (buttonRect) {\n const originalTop = isTopAlignment ? -menuRect.height : 0\n const adjustment = adjustedTop - buttonRect.top - originalTop\n this.listRef.current.style.top = `${adjustment}px`\n }\n\n this.listRef.current.style.transform = shouldTransformX\n ? `${baseTransform !== 'none' ? baseTransform + ' ' : ''}translateX(${adjustedLeft - menuRect.left}px)`\n : baseTransform\n }\n\n if (shouldTransformX && !shouldTransformY) {\n const isTopAlignment = alignment?.includes('TOP')\n const baseTransform = isTopAlignment ? 'translateY(-100%)' : 'none'\n\n this.listRef.current.style.transform =\n baseTransform === 'none'\n ? `translateX(${adjustedLeft - menuRect.left}px)`\n : `${baseTransform} translateX(${adjustedLeft - menuRect.left}px)`\n }\n\n if (containerId !== undefined) {\n const containerElement = document.getElementById(containerId)\n if (containerElement) {\n const container = containerElement.getBoundingClientRect()\n const button =\n this.buttonRef.current?.buttonRef.current?.getBoundingClientRect()\n\n const diffTop =\n this.listRef.current.getBoundingClientRect().top - container.top\n const diffBottom =\n this.listRef.current.getBoundingClientRect().bottom -\n container.bottom\n\n if (diffTop < -16 && button)\n this.listRef.current.style.top = `${container.top - button.top + 16}px`\n\n if (diffBottom > -16 && button)\n this.listRef.current.style.bottom = `${\n button.bottom - container.bottom + 16\n }px`\n\n this.listRef.current.style.visibility = 'visible'\n }\n }\n\n // Rendre le menu visible après positionnement\n this.setState({ isMenuVisible: true })\n }\n }, 0)\n\n if (e.type === 'keydown')\n setTimeout(() => this.actionsListRef.current?.focusFirstMenuItem(), 0)\n }\n\n render() {\n const {\n id,\n type,\n label,\n state,\n icon,\n helper,\n warning,\n customIcon,\n options,\n selected,\n alignment,\n isBlocked,\n isNew,\n containerId,\n } = this.props\n const { isMenuOpen } = this.state\n\n const flattenOptions = (options: DropdownOption[]): DropdownOption[] => {\n const flat: DropdownOption[] = []\n options.forEach((option) => {\n flat.push(option)\n if (Array.isArray(option.children) && option.children.length > 0)\n flat.push(...flattenOptions(option.children))\n })\n return flat\n }\n\n const activeOptions = flattenOptions(options).filter(\n (option) => option.isActive !== false\n )\n\n if (activeOptions.length === 0) return null\n if (activeOptions.length === 1 && activeOptions[0].children === undefined) {\n const option = activeOptions[0]\n return (\n <Button\n type={type === 'ICON' ? 'secondary' : 'primary'}\n label={option.label}\n isLoading={state === 'LOADING'}\n isDisabled={state === 'DISABLED' || isBlocked}\n isBlocked={option.isBlocked}\n isNew={option.isNew}\n action={\n !(state === 'DISABLED' || isBlocked)\n ? (e: React.MouseEvent<Element> | React.KeyboardEvent<Element>) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n option.action?.(e as any)\n : undefined\n }\n />\n )\n }\n\n return (\n <div\n id={id}\n className={doClassnames([\n 'menu',\n 'recharged',\n `menu--${alignment?.toLocaleLowerCase().replace('_', '-')}`,\n ])}\n ref={this.selectMenuRef}\n >\n {type === 'ICON' ? (\n <Button\n type=\"icon\"\n icon={icon === undefined ? undefined : icon}\n customIcon={customIcon === undefined ? undefined : customIcon}\n state={isMenuOpen ? 'selected' : undefined}\n helper={helper === undefined ? undefined : helper}\n warning={warning === undefined ? undefined : warning}\n isLoading={state === 'LOADING'}\n isDisabled={state === 'DISABLED' || isBlocked}\n isNew={isNew}\n ref={this.buttonRef}\n action={(e) =>\n !(state === 'DISABLED' || isBlocked)\n ? this.onOpenMenu(e)\n : undefined\n }\n aria-label={label}\n aria-haspopup=\"true\"\n aria-controls={`menu-${id}`}\n aria-expanded={isMenuOpen}\n />\n ) : (\n <Button\n type=\"primary\"\n label={label}\n hasMultipleActions\n helper={helper === undefined ? undefined : helper}\n warning={warning === undefined ? undefined : warning}\n isLoading={state === 'LOADING'}\n isDisabled={state === 'DISABLED' || isBlocked}\n isNew={isNew}\n ref={this.buttonRef}\n action={(e) =>\n !(state === 'DISABLED' || isBlocked)\n ? this.onOpenMenu(e)\n : undefined\n }\n aria-label={label}\n aria-haspopup=\"true\"\n aria-controls={`menu-${id}`}\n aria-expanded={isMenuOpen}\n />\n )}\n {(() => {\n if (isMenuOpen)\n return (\n <div\n id={`menu-${id}`}\n className=\"floating-menu\"\n style={{\n position: 'absolute',\n zIndex: 99,\n visibility:\n containerId === undefined && this.state.isMenuVisible\n ? 'visible'\n : 'hidden',\n }}\n ref={this.listRef}\n >\n <ActionsList\n options={options}\n selected={selected}\n direction={alignment?.includes('LEFT') ? 'RIGHT' : 'LEFT'}\n containerId={containerId}\n onCancellation={() => this.setState({ isMenuOpen: false })}\n ref={this.actionsListRef}\n menuRef={this.menuRef}\n subMenuRef={this.subMenuRef}\n />\n </div>\n )\n return null\n })()}\n </div>\n )\n }\n}\n"],"names":["Menu","React","props","e","target","isMenuOpen","containerId","alignment","menuRect","buttonRect","adjustedTop","adjustedLeft","shouldTransformY","shouldTransformX","isTopAlignment","baseTransform","originalTop","adjustment","containerElement","container","button","diffTop","diffBottom","id","type","label","state","icon","helper","warning","customIcon","options","selected","isBlocked","isNew","flattenOptions","flat","option","activeOptions","jsx","Button","jsxs","doClassnames","ActionsList"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+
2
+ export interface AvatarProps {
3
+ /**
4
+ * URL of the avatar image
5
+ * @default 'https://www.gravatar.com/avatar'
6
+ */
7
+ avatar?: string;
8
+ /**
9
+ * Full name of the user
10
+ * @default 'John Doe'
11
+ */
12
+ fullName?: string;
13
+ /**
14
+ * Additional content to display alongside the avatar
15
+ */
16
+ complementarySlot?: React.ReactNode;
17
+ /**
18
+ * Whether to use accented text style
19
+ * @default false
20
+ */
21
+ isAccented?: boolean;
22
+ /**
23
+ * Whether to use inverted color scheme
24
+ * @default false
25
+ */
26
+ isInverted?: boolean;
27
+ }
28
+ declare const Avatar: (props: AvatarProps) => import("react/jsx-runtime").JSX.Element;
29
+ export default Avatar;
30
+ //# sourceMappingURL=Avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/assets/avatar/Avatar.tsx"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAA;AAEtB,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,QAAA,MAAM,MAAM,UAAW,WAAW,4CAyCjC,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,54 @@
1
+ import '../../../assets/Avatar.css';
2
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
3
+ import t from "../../../styles/texts/texts.module.js";
4
+ import { t as s } from "../../../do-classnames-DSDFCvzy.js";
5
+ const v = (r) => {
6
+ const {
7
+ avatar: l = "https://www.gravatar.com/avatar",
8
+ fullName: a = "John Doe",
9
+ complementarySlot: o,
10
+ isAccented: m = !1,
11
+ isInverted: c = !1
12
+ } = r;
13
+ return /* @__PURE__ */ n(
14
+ "div",
15
+ {
16
+ className: s(["user", c && "user--inverted"]),
17
+ role: "group",
18
+ children: [
19
+ /* @__PURE__ */ e("div", { className: "user__avatar", children: /* @__PURE__ */ e(
20
+ "img",
21
+ {
22
+ src: l,
23
+ alt: a,
24
+ role: "img"
25
+ }
26
+ ) }),
27
+ /* @__PURE__ */ e(
28
+ "span",
29
+ {
30
+ className: s([
31
+ "user__name",
32
+ t.type,
33
+ !m && t["type--secondary"]
34
+ ]),
35
+ role: "text",
36
+ children: a
37
+ }
38
+ ),
39
+ o && /* @__PURE__ */ e(
40
+ "div",
41
+ {
42
+ className: "user__complementary-slot",
43
+ role: "complementary",
44
+ children: r.complementarySlot
45
+ }
46
+ )
47
+ ]
48
+ }
49
+ );
50
+ };
51
+ export {
52
+ v as default
53
+ };
54
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sources":["../../../../src/components/assets/avatar/Avatar.tsx"],"sourcesContent":["import texts from '@styles/texts/texts.module.scss'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './avatar.scss'\n\nexport interface AvatarProps {\n /**\n * URL of the avatar image\n * @default 'https://www.gravatar.com/avatar'\n */\n avatar?: string\n /**\n * Full name of the user\n * @default 'John Doe'\n */\n fullName?: string\n /**\n * Additional content to display alongside the avatar\n */\n complementarySlot?: React.ReactNode\n /**\n * Whether to use accented text style\n * @default false\n */\n isAccented?: boolean\n /**\n * Whether to use inverted color scheme\n * @default false\n */\n isInverted?: boolean\n}\n\nconst Avatar = (props: AvatarProps) => {\n const {\n avatar = 'https://www.gravatar.com/avatar',\n fullName = 'John Doe',\n complementarySlot,\n isAccented = false,\n isInverted = false,\n } = props\n\n return (\n <div\n className={doClassnames(['user', isInverted && 'user--inverted'])}\n role=\"group\"\n >\n <div className=\"user__avatar\">\n <img\n src={avatar}\n alt={fullName}\n role=\"img\"\n />\n </div>\n <span\n className={doClassnames([\n 'user__name',\n texts.type,\n !isAccented && texts['type--secondary'],\n ])}\n role=\"text\"\n >\n {fullName}\n </span>\n {complementarySlot && (\n <div\n className=\"user__complementary-slot\"\n role=\"complementary\"\n >\n {props.complementarySlot}\n </div>\n )}\n </div>\n )\n}\n\nexport default Avatar\n"],"names":["Avatar","props","avatar","fullName","complementarySlot","isAccented","isInverted","jsxs","doClassnames","jsx","texts"],"mappings":";;;AA+BA,MAAMA,IAAS,CAACC,MAAuB;AACrC,QAAM;AAAA,IACJ,QAAAC,IAAS;AAAA,IACT,UAAAC,IAAW;AAAA,IACX,mBAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,YAAAC,IAAa;AAAA,EAAA,IACXL;AAEJ,SACE,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAa,CAAC,QAAQF,KAAc,gBAAgB,CAAC;AAAA,MAChE,MAAK;AAAA,MAEL,UAAA;AAAA,QAAA,gBAAAG,EAAC,OAAA,EAAI,WAAU,gBACb,UAAA,gBAAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKP;AAAA,YACL,KAAKC;AAAA,YACL,MAAK;AAAA,UAAA;AAAA,QAAA,GAET;AAAA,QACA,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD,EAAa;AAAA,cACtB;AAAA,cACAE,EAAM;AAAA,cACN,CAACL,KAAcK,EAAM,iBAAiB;AAAA,YAAA,CACvC;AAAA,YACD,MAAK;AAAA,YAEJ,UAAAP;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFC,KACC,gBAAAK;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YAEJ,UAAAR,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MACT;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,28 @@
1
+ import { IconList } from '../../../types/icon.types';
2
+
3
+ export interface IconProps {
4
+ /**
5
+ * Type of icon to display
6
+ * @default 'PICTO'
7
+ */
8
+ type?: 'PICTO' | 'LETTER';
9
+ /**
10
+ * Name of the pictogram icon (when type is PICTO)
11
+ */
12
+ iconName?: IconList;
13
+ /**
14
+ * Letter to display (when type is LETTER)
15
+ */
16
+ iconLetter?: string;
17
+ /**
18
+ * Custom CSS class to apply
19
+ */
20
+ customClassName?: string;
21
+ /**
22
+ * ARIA role for accessibility
23
+ */
24
+ role?: string;
25
+ }
26
+ export declare const Icon: (props: IconProps) => import("react/jsx-runtime").JSX.Element;
27
+ export default Icon;
28
+ //# sourceMappingURL=Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/components/assets/icon/Icon.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,aAAa,CAAA;AAEpB,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,IAAI,UAAW,SAAS,4CAmCpC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Icon.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.figma.d.ts","sourceRoot":"","sources":["../../../../src/components/assets/icon/Icon.figma.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { i as o } from "../../../index_react-CmuCVQet.js";
3
+ import { Icon as i } from "./Icon.js";
4
+ o.figma.connect(
5
+ i,
6
+ "https://www.figma.com/design/QlBdsfEcaUsGBzqA20xbNi/Unoff?node-id=378:1109",
7
+ {
8
+ props: {
9
+ iconName: o.figma.enum("name", {
10
+ adjust: "adjust",
11
+ info: "info",
12
+ close: "close",
13
+ check: "check",
14
+ plus: "plus",
15
+ minus: "minus"
16
+ })
17
+ },
18
+ example: (m) => /* @__PURE__ */ e(
19
+ i,
20
+ {
21
+ type: "PICTO",
22
+ iconName: m.iconName
23
+ }
24
+ )
25
+ }
26
+ );
27
+ //# sourceMappingURL=Icon.figma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.figma.js","sources":["../../../../src/components/assets/icon/Icon.figma.tsx"],"sourcesContent":["import { figma } from '@figma/code-connect'\nimport Icon from './Icon'\n\nfigma.connect(\n Icon,\n 'https://www.figma.com/design/QlBdsfEcaUsGBzqA20xbNi/Unoff?node-id=378:1109',\n {\n props: {\n iconName: figma.enum('name', {\n adjust: 'adjust',\n info: 'info',\n close: 'close',\n check: 'check',\n plus: 'plus',\n minus: 'minus',\n }),\n },\n example: (props) => (\n <Icon\n type=\"PICTO\"\n iconName={props.iconName}\n />\n ),\n }\n)\n"],"names":["figma","Icon","props","jsx"],"mappings":";;;AAGAA,EAAAA,MAAM;AAAA,EACJC;AAAA,EACA;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,UAAUD,EAAAA,MAAM,KAAK,QAAQ;AAAA,QAC3B,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA,CACR;AAAA,IAAA;AAAA,IAEH,SAAS,CAACE,MACR,gBAAAC;AAAA,MAACF;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,UAAUC,EAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAClB;AAGN;"}
@@ -0,0 +1,35 @@
1
+ import '../../../assets/Icon.css';
2
+ import { jsx as o } from "react/jsx-runtime";
3
+ import l from "../../../styles/texts/texts.module.js";
4
+ import i from "../../../styles/icons/icons.module.js";
5
+ import { t as c } from "../../../do-classnames-DSDFCvzy.js";
6
+ const u = (n) => {
7
+ const { type: a = "PICTO", iconName: e, iconLetter: t, customClassName: r } = n, s = () => /* @__PURE__ */ o(
8
+ "div",
9
+ {
10
+ className: "icon-box icon-box--letter",
11
+ role: "img",
12
+ "aria-label": t,
13
+ children: /* @__PURE__ */ o("span", { className: c([l.type, r]), children: t })
14
+ }
15
+ ), m = () => /* @__PURE__ */ o(
16
+ "div",
17
+ {
18
+ className: c([
19
+ "icon-box",
20
+ "icon-box--picto",
21
+ i.icon,
22
+ i[`icon--${e}`],
23
+ r
24
+ ]),
25
+ role: "img",
26
+ "aria-label": e
27
+ }
28
+ );
29
+ return a === "PICTO" ? /* @__PURE__ */ o(m, {}) : /* @__PURE__ */ o(s, {});
30
+ };
31
+ export {
32
+ u as Icon,
33
+ u as default
34
+ };
35
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.js","sources":["../../../../src/components/assets/icon/Icon.tsx"],"sourcesContent":["import texts from '@styles/texts/texts.module.scss'\nimport icons from '@styles/icons/icons.module.scss'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport type { IconList } from '@tps/icon.types'\nimport './icon.scss'\n\nexport interface IconProps {\n /**\n * Type of icon to display\n * @default 'PICTO'\n */\n type?: 'PICTO' | 'LETTER'\n /**\n * Name of the pictogram icon (when type is PICTO)\n */\n iconName?: IconList\n /**\n * Letter to display (when type is LETTER)\n */\n iconLetter?: string\n /**\n * Custom CSS class to apply\n */\n customClassName?: string\n /**\n * ARIA role for accessibility\n */\n role?: string\n}\n\nexport const Icon = (props: IconProps) => {\n const { type = 'PICTO', iconName, iconLetter, customClassName } = props\n\n const Letter = () => {\n return (\n <div\n className=\"icon-box icon-box--letter\"\n role=\"img\"\n aria-label={iconLetter}\n >\n <span className={doClassnames([texts.type, customClassName])}>\n {iconLetter}\n </span>\n </div>\n )\n }\n\n const Pictogram = () => {\n return (\n <div\n className={doClassnames([\n 'icon-box',\n 'icon-box--picto',\n icons.icon,\n icons[`icon--${iconName}`],\n customClassName,\n ])}\n role=\"img\"\n aria-label={iconName}\n />\n )\n }\n\n if (type === 'PICTO') return <Pictogram />\n else return <Letter />\n}\n\nexport default Icon\n"],"names":["Icon","props","type","iconName","iconLetter","customClassName","Letter","jsx","doClassnames","texts","Pictogram","icons"],"mappings":";;;;AA8BO,MAAMA,IAAO,CAACC,MAAqB;AACxC,QAAM,EAAE,MAAAC,IAAO,SAAS,UAAAC,GAAU,YAAAC,GAAY,iBAAAC,MAAoBJ,GAE5DK,IAAS,MAEX,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,cAAYH;AAAA,MAEZ,UAAA,gBAAAG,EAAC,QAAA,EAAK,WAAWC,EAAa,CAACC,EAAM,MAAMJ,CAAe,CAAC,GACxD,UAAAD,EAAA,CACH;AAAA,IAAA;AAAA,EAAA,GAKAM,IAAY,MAEd,gBAAAH;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAa;AAAA,QACtB;AAAA,QACA;AAAA,QACAG,EAAM;AAAA,QACNA,EAAM,SAASR,CAAQ,EAAE;AAAA,QACzBE;AAAA,MAAA,CACD;AAAA,MACD,MAAK;AAAA,MACL,cAAYF;AAAA,IAAA;AAAA,EAAA;AAKlB,SAAID,MAAS,UAAgB,gBAAAK,EAACG,GAAA,CAAA,CAAU,sBAC3BJ,GAAA,EAAO;AACtB;"}
@@ -0,0 +1,22 @@
1
+
2
+ export type SectionTitleProps = {
3
+ /**
4
+ * Text label of the section title
5
+ */
6
+ label: string;
7
+ /**
8
+ * Optional indicator (number or text) displayed in parentheses
9
+ */
10
+ indicator?: string | number;
11
+ /**
12
+ * Helper content displayed in a tooltip icon
13
+ */
14
+ helper?: string | React.ReactNode;
15
+ /**
16
+ * HTML id attribute for the title
17
+ */
18
+ id?: string;
19
+ };
20
+ declare const SectionTitle: (props: SectionTitleProps) => import("react/jsx-runtime").JSX.Element;
21
+ export default SectionTitle;
22
+ //# sourceMappingURL=SectionTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionTitle.d.ts","sourceRoot":"","sources":["../../../../src/components/assets/section-title/SectionTitle.tsx"],"names":[],"mappings":";AAGA,OAAO,sBAAsB,CAAA;AAE7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACjC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,QAAA,MAAM,YAAY,UAAW,iBAAiB,4CA8B7C,CAAA;AACD,eAAe,YAAY,CAAA"}
@@ -0,0 +1,42 @@
1
+ import '../../../assets/SectionTitle.css';
2
+ import { jsxs as l, jsx as t } from "react/jsx-runtime";
3
+ import i from "../../../styles/texts/texts.module.js";
4
+ import a from "../../tags/icon-chip/IconChip.js";
5
+ import { t as c } from "../../../do-classnames-DSDFCvzy.js";
6
+ const h = (n) => {
7
+ const { label: r, indicator: e, helper: o, id: s } = n;
8
+ return /* @__PURE__ */ l("div", { className: "section-title", children: [
9
+ /* @__PURE__ */ t(
10
+ "div",
11
+ {
12
+ className: c([
13
+ "section-title__title",
14
+ i["section-title"],
15
+ i["type--truncated"]
16
+ ]),
17
+ id: s,
18
+ children: r
19
+ }
20
+ ),
21
+ e !== void 0 && /* @__PURE__ */ t(
22
+ "div",
23
+ {
24
+ className: c(["section-title__indicator", i.type]),
25
+ children: `(${e})`
26
+ }
27
+ ),
28
+ o !== void 0 && /* @__PURE__ */ t(
29
+ a,
30
+ {
31
+ iconType: "PICTO",
32
+ iconName: "info",
33
+ text: o,
34
+ type: "MULTI_LINE"
35
+ }
36
+ )
37
+ ] });
38
+ };
39
+ export {
40
+ h as default
41
+ };
42
+ //# sourceMappingURL=SectionTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionTitle.js","sources":["../../../../src/components/assets/section-title/SectionTitle.tsx"],"sourcesContent":["import texts from '@styles/texts/texts.module.scss'\nimport IconChip from '@components/tags/icon-chip/IconChip'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './section-title.scss'\n\nexport type SectionTitleProps = {\n /**\n * Text label of the section title\n */\n label: string\n /**\n * Optional indicator (number or text) displayed in parentheses\n */\n indicator?: string | number\n /**\n * Helper content displayed in a tooltip icon\n */\n helper?: string | React.ReactNode\n /**\n * HTML id attribute for the title\n */\n id?: string\n}\n\nconst SectionTitle = (props: SectionTitleProps) => {\n const { label, indicator, helper, id } = props\n\n return (\n <div className=\"section-title\">\n <div\n className={doClassnames([\n 'section-title__title',\n texts['section-title'],\n texts['type--truncated'],\n ])}\n id={id}\n >\n {label}\n </div>\n {indicator !== undefined && (\n <div\n className={doClassnames(['section-title__indicator', texts.type])}\n >{`(${indicator})`}</div>\n )}\n {helper !== undefined && (\n <IconChip\n iconType=\"PICTO\"\n iconName=\"info\"\n text={helper}\n type=\"MULTI_LINE\"\n />\n )}\n </div>\n )\n}\nexport default SectionTitle\n"],"names":["SectionTitle","props","label","indicator","helper","id","jsxs","jsx","doClassnames","texts","IconChip"],"mappings":";;;;AAwBA,MAAMA,IAAe,CAACC,MAA6B;AACjD,QAAM,EAAE,OAAAC,GAAO,WAAAC,GAAW,QAAAC,GAAQ,IAAAC,MAAOJ;AAEzC,SACE,gBAAAK,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC,EAAa;AAAA,UACtB;AAAA,UACAC,EAAM,eAAe;AAAA,UACrBA,EAAM,iBAAiB;AAAA,QAAA,CACxB;AAAA,QACD,IAAAJ;AAAA,QAEC,UAAAH;AAAA,MAAA;AAAA,IAAA;AAAA,IAEFC,MAAc,UACb,gBAAAI;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC,EAAa,CAAC,4BAA4BC,EAAM,IAAI,CAAC;AAAA,QAChE,cAAIN,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAEhBC,MAAW,UACV,gBAAAG;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,MAAMN;AAAA,QACN,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACP,GAEJ;AAEJ;"}
@@ -0,0 +1,34 @@
1
+
2
+ export type TextProps = {
3
+ /**
4
+ * Text content
5
+ */
6
+ children: React.ReactNode;
7
+ /**
8
+ * Text size
9
+ */
10
+ size?: 'default' | 'small' | 'large' | 'xlarge';
11
+ /**
12
+ * Text weight
13
+ */
14
+ weight?: 'default' | 'medium' | 'bold';
15
+ /**
16
+ * Text color
17
+ */
18
+ color?: 'primary' | 'secondary' | 'tertiary' | 'inverse' | 'success' | 'warning' | 'alert';
19
+ /**
20
+ * Truncate text if too long (adds ...)
21
+ */
22
+ truncate?: boolean;
23
+ /**
24
+ * Optional ID for the text
25
+ */
26
+ id?: string;
27
+ /**
28
+ * Additional CSS class
29
+ */
30
+ className?: string;
31
+ };
32
+ declare const Text: (props: TextProps) => import("react/jsx-runtime").JSX.Element;
33
+ export default Text;
34
+ //# sourceMappingURL=Text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../src/components/assets/text/Text.tsx"],"names":[],"mappings":";AAEA,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC/C;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;IACtC;;OAEG;IACH,KAAK,CAAC,EACF,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,SAAS,GACT,SAAS,GACT,OAAO,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,QAAA,MAAM,IAAI,UAAW,SAAS,4CA6B7B,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,35 @@
1
+ import '../../../assets/Text.css';
2
+ import { jsx as i } from "react/jsx-runtime";
3
+ import t from "../../../styles/texts/texts.module.js";
4
+ import { t as d } from "../../../do-classnames-DSDFCvzy.js";
5
+ const y = (s) => {
6
+ const {
7
+ children: o,
8
+ size: e = "default",
9
+ weight: a = "default",
10
+ color: r = "primary",
11
+ truncate: l = !1,
12
+ id: m,
13
+ className: p
14
+ } = s, c = [
15
+ "text",
16
+ t.type,
17
+ e !== "default" && t[`type--${e}`],
18
+ a !== "default" && t[`type--${a}`],
19
+ r !== "primary" && t[`type--${r}`],
20
+ l && t["type--truncated"],
21
+ p
22
+ ];
23
+ return /* @__PURE__ */ i(
24
+ "div",
25
+ {
26
+ className: d(c),
27
+ id: m,
28
+ children: o
29
+ }
30
+ );
31
+ };
32
+ export {
33
+ y as default
34
+ };
35
+ //# sourceMappingURL=Text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.js","sources":["../../../../src/components/assets/text/Text.tsx"],"sourcesContent":["import texts from '@styles/texts/texts.module.scss'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './text.scss'\n\nexport type TextProps = {\n /**\n * Text content\n */\n children: React.ReactNode\n /**\n * Text size\n */\n size?: 'default' | 'small' | 'large' | 'xlarge'\n /**\n * Text weight\n */\n weight?: 'default' | 'medium' | 'bold'\n /**\n * Text color\n */\n color?:\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'inverse'\n | 'success'\n | 'warning'\n | 'alert'\n /**\n * Truncate text if too long (adds ...)\n */\n truncate?: boolean\n /**\n * Optional ID for the text\n */\n id?: string\n /**\n * Additional CSS class\n */\n className?: string\n}\n\nconst Text = (props: TextProps) => {\n const {\n children,\n size = 'default',\n weight = 'default',\n color = 'primary',\n truncate = false,\n id,\n className,\n } = props\n\n const classNames = [\n 'text',\n texts.type,\n size !== 'default' && texts[`type--${size}`],\n weight !== 'default' && texts[`type--${weight}`],\n color !== 'primary' && texts[`type--${color}`],\n truncate && texts['type--truncated'],\n className,\n ]\n\n return (\n <div\n className={doClassnames(classNames)}\n id={id}\n >\n {children}\n </div>\n )\n}\n\nexport default Text\n"],"names":["Text","props","children","size","weight","color","truncate","id","className","classNames","texts","jsx","doClassnames"],"mappings":";;;AA0CA,MAAMA,IAAO,CAACC,MAAqB;AACjC,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,QAAAC,IAAS;AAAA,IACT,OAAAC,IAAQ;AAAA,IACR,UAAAC,IAAW;AAAA,IACX,IAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,IACEP,GAEEQ,IAAa;AAAA,IACjB;AAAA,IACAC,EAAM;AAAA,IACNP,MAAS,aAAaO,EAAM,SAASP,CAAI,EAAE;AAAA,IAC3CC,MAAW,aAAaM,EAAM,SAASN,CAAM,EAAE;AAAA,IAC/CC,MAAU,aAAaK,EAAM,SAASL,CAAK,EAAE;AAAA,IAC7CC,KAAYI,EAAM,iBAAiB;AAAA,IACnCF;AAAA,EAAA;AAGF,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAaH,CAAU;AAAA,MAClC,IAAAF;AAAA,MAEC,UAAAL;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,25 @@
1
+
2
+ export interface ThumbnailProps {
3
+ /**
4
+ * Image source URL to display
5
+ */
6
+ src: string;
7
+ /**
8
+ * Width of the thumbnail
9
+ * @default '100%'
10
+ */
11
+ width?: string;
12
+ /**
13
+ * Height of the thumbnail
14
+ * @default '100%'
15
+ */
16
+ height?: string;
17
+ /**
18
+ * Alt text for the image
19
+ * @default 'Image thumbnail'
20
+ */
21
+ alt?: string;
22
+ }
23
+ declare const Thumbnail: (props: ThumbnailProps) => import("react/jsx-runtime").JSX.Element;
24
+ export default Thumbnail;
25
+ //# sourceMappingURL=Thumbnail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Thumbnail.d.ts","sourceRoot":"","sources":["../../../../src/components/assets/thumbnail/Thumbnail.tsx"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,QAAA,MAAM,SAAS,UAAW,cAAc,4CA+DvC,CAAA;AAED,eAAe,SAAS,CAAA"}