@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,148 @@
1
+ import '../../../assets/Drawer.css';
2
+ import { jsxs as v, jsx as T } from "react/jsx-runtime";
3
+ import p from "react";
4
+ import { t as f } from "../../../do-classnames-DSDFCvzy.js";
5
+ class E extends p.Component {
6
+ drawerRef;
7
+ static defaultProps = {
8
+ isScrolling: !1
9
+ };
10
+ constructor(e) {
11
+ super(e), this.state = {
12
+ isDrawerCollapsed: !1,
13
+ drawerSize: {
14
+ value: e.defaultSize.value,
15
+ unit: e.defaultSize.unit
16
+ }
17
+ }, this.drawerRef = p.createRef();
18
+ }
19
+ // Lifecycle
20
+ componentDidUpdate = (e, t) => {
21
+ const { onCollapse: r, onExpand: i } = this.props, { isDrawerCollapsed: o } = this.state;
22
+ o && !t.isDrawerCollapsed && r && r(), !o && t.isDrawerCollapsed && i && i();
23
+ };
24
+ // Handlers
25
+ clickHandler = (e) => {
26
+ const { defaultSize: t, maxSize: r } = this.props, { drawerSize: i } = this.state;
27
+ document.body.style.cursor = "", document.removeEventListener("mousemove", this.onDrag), e.detail === 2 && this.setState({
28
+ drawerSize: i === t ? r : t,
29
+ isDrawerCollapsed: !1
30
+ });
31
+ };
32
+ // Direct Actions
33
+ setBorder = (e) => {
34
+ const t = "var(--drawer-border)", r = {};
35
+ return e && e.forEach((i) => {
36
+ i === "TOP" && (r.borderTop = t), i === "LEFT" && (r.borderLeft = t), i === "BOTTOM" && (r.borderBottom = t), i === "RIGHT" && (r.borderRight = t);
37
+ }), r;
38
+ };
39
+ setUnit = (e) => e.unit === "AUTO" ? "auto" : e.unit === "PIXEL" ? `${e.value}px` : `${e.value}%`;
40
+ expandDrawer = () => {
41
+ const { defaultSize: e } = this.props;
42
+ this.setState({
43
+ drawerSize: e,
44
+ isDrawerCollapsed: !1
45
+ });
46
+ };
47
+ collapseDrawer = () => {
48
+ const { minSize: e } = this.props;
49
+ this.setState({
50
+ drawerSize: e,
51
+ isDrawerCollapsed: !0
52
+ });
53
+ };
54
+ onGrab = () => {
55
+ document.body.style.cursor = "ns-resize", document.addEventListener("mousemove", this.onDrag);
56
+ };
57
+ onDrag = (e) => {
58
+ const { direction: t, pin: r, minSize: i, maxSize: o } = this.props, { drawerRef: n } = this, { clientX: c, clientY: u } = e;
59
+ if (!n.current) return;
60
+ const s = n.current.getBoundingClientRect(), l = n.current.parentElement?.getBoundingClientRect();
61
+ if (!l) return;
62
+ let a = 0;
63
+ const m = t === "VERTICAL" ? l.height : l.width;
64
+ if (r === "TOP") {
65
+ const d = l.bottom - s.top;
66
+ a = Math.min(u - s.top, d);
67
+ } else if (r === "BOTTOM") {
68
+ const d = s.bottom - l.top;
69
+ a = Math.min(s.bottom - u, d);
70
+ } else if (r === "LEFT") {
71
+ const d = l.right - s.left;
72
+ a = Math.min(c - s.left, d);
73
+ } else if (r === "RIGHT") {
74
+ const d = s.right - l.left;
75
+ a = Math.min(s.right - c, d);
76
+ }
77
+ a = Math.max(0, a);
78
+ const h = i.unit === "PERCENT" ? (i.value ?? 0) * m / 100 : i.value ?? 0, w = o.unit === "PERCENT" ? (o.value ?? 100) * m / 100 : o.value ?? 1 / 0;
79
+ a = Math.max(h, Math.min(a, w)), this.setState({
80
+ drawerSize: {
81
+ value: o.unit === "PERCENT" ? a / m * 100 : a,
82
+ unit: o.unit
83
+ },
84
+ isDrawerCollapsed: a <= h
85
+ }), document.body.style.cursor = t === "VERTICAL" ? "ns-resize" : "ew-resize", document.addEventListener("mouseup", () => {
86
+ document.body.style.cursor = "", document.removeEventListener("mousemove", this.onDrag);
87
+ });
88
+ };
89
+ // Render
90
+ render() {
91
+ const {
92
+ id: e,
93
+ pin: t,
94
+ children: r,
95
+ direction: i,
96
+ border: o,
97
+ maxSize: n,
98
+ minSize: c,
99
+ isScrolling: u
100
+ } = this.props, { drawerSize: s } = this.state;
101
+ return /* @__PURE__ */ v(
102
+ "div",
103
+ {
104
+ id: e,
105
+ style: {
106
+ ...this.setBorder(o),
107
+ ...i === "VERTICAL" ? {
108
+ height: this.setUnit(s),
109
+ maxHeight: this.setUnit(n),
110
+ minHeight: this.setUnit(c)
111
+ } : {
112
+ width: this.setUnit(s),
113
+ maxWidth: this.setUnit(n),
114
+ minWidth: this.setUnit(c)
115
+ }
116
+ },
117
+ className: f(["drawer", u && "drawer--scrolling"]),
118
+ ref: this.drawerRef,
119
+ children: [
120
+ /* @__PURE__ */ T(
121
+ "div",
122
+ {
123
+ className: f([
124
+ "drawer__knob",
125
+ t === "TOP" && "drawer__knob--top",
126
+ t === "LEFT" && "drawer__knob--left",
127
+ t === "BOTTOM" && "drawer__knob--bottom",
128
+ t === "RIGHT" && "drawer__knob--right"
129
+ ]),
130
+ onMouseDown: this.onGrab,
131
+ onClick: this.clickHandler,
132
+ role: "separator",
133
+ "aria-orientation": i === "VERTICAL" ? "vertical" : "horizontal",
134
+ "aria-valuemin": c.value,
135
+ "aria-valuemax": n.value,
136
+ "aria-valuenow": s.value
137
+ }
138
+ ),
139
+ r
140
+ ]
141
+ }
142
+ );
143
+ }
144
+ }
145
+ export {
146
+ E as default
147
+ };
148
+ //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.js","sources":["../../../../src/components/slots/drawer/Drawer.tsx"],"sourcesContent":["import React from 'react'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './drawer.scss'\n\ninterface Unit {\n value?: number\n unit: 'PIXEL' | 'PERCENT' | 'AUTO'\n}\n\nexport type DrawerProps = {\n /**\n * HTML id attribute\n */\n id?: string\n /**\n * Direction of the drawer layout\n */\n direction: 'VERTICAL' | 'HORIZONTAL'\n /**\n * Position of the drawer\n */\n pin: 'TOP' | 'BOTTOM' | 'LEFT' | 'RIGHT'\n /**\n * Default size of the drawer\n */\n defaultSize: Unit\n /**\n * Maximum allowed size\n */\n maxSize: Unit\n /**\n * Minimum allowed size\n */\n minSize: Unit\n /**\n * Array of border positions\n */\n border?: Array<'TOP' | 'LEFT' | 'BOTTOM' | 'RIGHT'>\n /**\n * Whether the content is scrollable\n * @default false\n */\n isScrolling?: boolean\n /**\n * Drawer content\n */\n children?: React.ReactNode\n /**\n * Callback when drawer collapses\n */\n onCollapse?: () => void\n /**\n * Callback when drawer expands\n */\n onExpand?: () => void\n}\n\nexport type DrawerState = {\n isDrawerCollapsed: boolean\n drawerSize: {\n value?: number\n unit: 'PIXEL' | 'PERCENT' | 'AUTO'\n }\n}\n\nexport default class Drawer extends React.Component<DrawerProps, DrawerState> {\n drawerRef: React.RefObject<HTMLDivElement>\n\n static defaultProps: Partial<DrawerProps> = {\n isScrolling: false,\n }\n\n constructor(props: DrawerProps) {\n super(props)\n this.state = {\n isDrawerCollapsed: false,\n drawerSize: {\n value: props.defaultSize.value,\n unit: props.defaultSize.unit,\n },\n }\n this.drawerRef = React.createRef()\n }\n\n // Lifecycle\n componentDidUpdate = (\n _: Readonly<DrawerProps>,\n prevState: Readonly<DrawerState>\n ) => {\n const { onCollapse, onExpand } = this.props\n const { isDrawerCollapsed } = this.state\n\n if (isDrawerCollapsed && !prevState.isDrawerCollapsed)\n onCollapse && onCollapse()\n if (!isDrawerCollapsed && prevState.isDrawerCollapsed)\n onExpand && onExpand()\n }\n\n // Handlers\n clickHandler = (e: React.MouseEvent<HTMLDivElement>) => {\n const { defaultSize, maxSize } = this.props\n const { drawerSize } = this.state\n\n document.body.style.cursor = ''\n document.removeEventListener('mousemove', this.onDrag)\n\n if (e.detail === 2)\n this.setState({\n drawerSize: drawerSize === defaultSize ? maxSize : defaultSize,\n isDrawerCollapsed: false,\n })\n }\n\n // Direct Actions\n setBorder = (\n orientation: Array<'TOP' | 'LEFT' | 'BOTTOM' | 'RIGHT'> | undefined\n ) => {\n const property = 'var(--drawer-border)' as React.CSSProperties\n const styles: { [key: string]: React.CSSProperties } = {}\n\n if (!orientation) return styles\n orientation.forEach((entry) => {\n if (entry === 'TOP') styles.borderTop = property\n if (entry === 'LEFT') styles.borderLeft = property\n if (entry === 'BOTTOM') styles.borderBottom = property\n if (entry === 'RIGHT') styles.borderRight = property\n })\n return styles\n }\n\n setUnit = (size: Unit) => {\n if (size.unit === 'AUTO') return 'auto'\n return size.unit === 'PIXEL' ? `${size.value}px` : `${size.value}%`\n }\n\n expandDrawer = () => {\n const { defaultSize } = this.props\n\n this.setState({\n drawerSize: defaultSize,\n isDrawerCollapsed: false,\n })\n }\n\n collapseDrawer = () => {\n const { minSize } = this.props\n\n this.setState({\n drawerSize: minSize,\n isDrawerCollapsed: true,\n })\n }\n\n onGrab = () => {\n document.body.style.cursor = 'ns-resize'\n document.addEventListener('mousemove', this.onDrag)\n }\n\n onDrag = (e: MouseEvent) => {\n const { direction, pin, minSize, maxSize } = this.props\n const { drawerRef } = this\n const { clientX, clientY } = e\n\n if (!drawerRef.current) return\n\n const rect = drawerRef.current.getBoundingClientRect()\n const parentRect = drawerRef.current.parentElement?.getBoundingClientRect()\n\n if (!parentRect) return\n\n let delta = 0\n const parentSize =\n direction === 'VERTICAL' ? parentRect.height : parentRect.width\n\n if (pin === 'TOP') {\n const maxDelta = parentRect.bottom - rect.top\n delta = Math.min(clientY - rect.top, maxDelta)\n } else if (pin === 'BOTTOM') {\n const maxDelta = rect.bottom - parentRect.top\n delta = Math.min(rect.bottom - clientY, maxDelta)\n } else if (pin === 'LEFT') {\n const maxDelta = parentRect.right - rect.left\n delta = Math.min(clientX - rect.left, maxDelta)\n } else if (pin === 'RIGHT') {\n const maxDelta = rect.right - parentRect.left\n delta = Math.min(rect.right - clientX, maxDelta)\n }\n\n delta = Math.max(0, delta)\n\n const minPixels =\n minSize.unit === 'PERCENT'\n ? ((minSize.value ?? 0) * parentSize) / 100\n : (minSize.value ?? 0)\n const maxPixels =\n maxSize.unit === 'PERCENT'\n ? ((maxSize.value ?? 100) * parentSize) / 100\n : (maxSize.value ?? Infinity)\n\n delta = Math.max(minPixels, Math.min(delta, maxPixels))\n\n this.setState({\n drawerSize: {\n value: maxSize.unit === 'PERCENT' ? (delta / parentSize) * 100 : delta,\n unit: maxSize.unit,\n },\n isDrawerCollapsed: delta <= minPixels,\n })\n\n document.body.style.cursor =\n direction === 'VERTICAL' ? 'ns-resize' : 'ew-resize'\n document.addEventListener('mouseup', () => {\n document.body.style.cursor = ''\n document.removeEventListener('mousemove', this.onDrag)\n })\n }\n\n // Render\n render() {\n const {\n id,\n pin,\n children,\n direction,\n border,\n maxSize,\n minSize,\n isScrolling,\n } = this.props\n const { drawerSize } = this.state\n\n return (\n <div\n id={id}\n style={{\n ...this.setBorder(border),\n ...(direction === 'VERTICAL'\n ? {\n height: this.setUnit(drawerSize),\n maxHeight: this.setUnit(maxSize),\n minHeight: this.setUnit(minSize),\n }\n : {\n width: this.setUnit(drawerSize),\n maxWidth: this.setUnit(maxSize),\n minWidth: this.setUnit(minSize),\n }),\n }}\n className={doClassnames(['drawer', isScrolling && 'drawer--scrolling'])}\n ref={this.drawerRef}\n >\n <div\n className={doClassnames([\n 'drawer__knob',\n pin === 'TOP' && 'drawer__knob--top',\n pin === 'LEFT' && 'drawer__knob--left',\n pin === 'BOTTOM' && 'drawer__knob--bottom',\n pin === 'RIGHT' && 'drawer__knob--right',\n ])}\n onMouseDown={this.onGrab}\n onClick={this.clickHandler}\n role=\"separator\"\n aria-orientation={\n direction === 'VERTICAL' ? 'vertical' : 'horizontal'\n }\n aria-valuemin={minSize.value}\n aria-valuemax={maxSize.value}\n aria-valuenow={drawerSize.value}\n />\n {children}\n </div>\n )\n }\n}\n"],"names":["Drawer","React","props","_","prevState","onCollapse","onExpand","isDrawerCollapsed","defaultSize","maxSize","drawerSize","orientation","property","styles","entry","size","minSize","direction","pin","drawerRef","clientX","clientY","rect","parentRect","delta","parentSize","maxDelta","minPixels","maxPixels","id","children","border","isScrolling","jsxs","doClassnames","jsx"],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+
2
+ export interface FormItemProps {
3
+ /**
4
+ * HTML id attribute
5
+ */
6
+ id?: string;
7
+ /**
8
+ * Label text for the form item
9
+ */
10
+ label?: string;
11
+ /**
12
+ * Helper or error message configuration
13
+ */
14
+ helper?: {
15
+ /** Type of message */
16
+ type: 'INFO' | 'ERROR';
17
+ /** Message text */
18
+ message: string;
19
+ };
20
+ /**
21
+ * Whether to fill available width
22
+ * @default true
23
+ */
24
+ shouldFill?: boolean;
25
+ /**
26
+ * Whether to align content to baseline
27
+ * @default false
28
+ */
29
+ isBaseline?: boolean;
30
+ /**
31
+ * Whether to use multi-line layout
32
+ * @default false
33
+ */
34
+ isMultiLine?: boolean;
35
+ /**
36
+ * Whether the item is blocked
37
+ * @default false
38
+ */
39
+ isBlocked?: boolean;
40
+ /**
41
+ * Whether to show a "New" badge
42
+ * @default false
43
+ */
44
+ isNew?: boolean;
45
+ /**
46
+ * Form input element
47
+ */
48
+ children: React.ReactNode;
49
+ }
50
+ declare const FormItem: (props: FormItemProps) => import("react/jsx-runtime").JSX.Element;
51
+ export default FormItem;
52
+ //# sourceMappingURL=FormItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormItem.d.ts","sourceRoot":"","sources":["../../../../src/components/slots/form-item/FormItem.tsx"],"names":[],"mappings":";AAIA,OAAO,kBAAkB,CAAA;AAEzB,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,sBAAsB;QACtB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;QACtB,mBAAmB;QACnB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,QAAA,MAAM,QAAQ,UAAW,aAAa,4CAoErC,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,89 @@
1
+ import '../../../assets/FormItem.css';
2
+ import { jsxs as o, jsx as e } from "react/jsx-runtime";
3
+ import p from "../../../styles/texts/texts.module.js";
4
+ import h from "../../tags/chip/Chip.js";
5
+ import _ from "../../dialogs/message/Message.js";
6
+ import { t as m } from "../../../do-classnames-DSDFCvzy.js";
7
+ const w = (s) => {
8
+ const {
9
+ id: i,
10
+ label: l,
11
+ helper: r,
12
+ shouldFill: t = !0,
13
+ isBaseline: a = !1,
14
+ isMultiLine: n = !1,
15
+ isBlocked: d = !1,
16
+ isNew: f = !1,
17
+ children: c
18
+ } = s;
19
+ return /* @__PURE__ */ o(
20
+ "div",
21
+ {
22
+ className: m([
23
+ "form-item",
24
+ t && "form-item--fill",
25
+ a && "form-item--baseline",
26
+ n && "form-item--multiline",
27
+ d && "form-item--blocked"
28
+ ]),
29
+ role: "group",
30
+ "aria-describedby": r ? `${i}-helper` : void 0,
31
+ children: [
32
+ /* @__PURE__ */ o(
33
+ "div",
34
+ {
35
+ className: "form-item__row",
36
+ role: "presentation",
37
+ children: [
38
+ l !== void 0 && /* @__PURE__ */ e(
39
+ "label",
40
+ {
41
+ className: m([p.type, "form-item__label"]),
42
+ htmlFor: i,
43
+ id: `${i}-label`,
44
+ children: l
45
+ }
46
+ ),
47
+ /* @__PURE__ */ e(
48
+ "div",
49
+ {
50
+ className: "form-item__input",
51
+ role: "presentation",
52
+ children: c
53
+ }
54
+ ),
55
+ f && /* @__PURE__ */ e(
56
+ "div",
57
+ {
58
+ className: "form-item__chip",
59
+ role: "presentation",
60
+ children: /* @__PURE__ */ e(h, { children: "New" })
61
+ }
62
+ )
63
+ ]
64
+ }
65
+ ),
66
+ r !== void 0 && /* @__PURE__ */ e(
67
+ "div",
68
+ {
69
+ className: "form-item__helper",
70
+ id: `${i}-helper`,
71
+ role: "alert",
72
+ "aria-live": "polite",
73
+ children: /* @__PURE__ */ e(
74
+ _,
75
+ {
76
+ icon: r.type === "INFO" ? "info" : "warning",
77
+ messages: [r.message]
78
+ }
79
+ )
80
+ }
81
+ )
82
+ ]
83
+ }
84
+ );
85
+ };
86
+ export {
87
+ w as default
88
+ };
89
+ //# sourceMappingURL=FormItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormItem.js","sources":["../../../../src/components/slots/form-item/FormItem.tsx"],"sourcesContent":["import texts from '@styles/texts/texts.module.scss'\nimport Chip from '@components/tags/chip/Chip'\nimport Message from '@components/dialogs/message/Message'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './form-item.scss'\n\nexport interface FormItemProps {\n /**\n * HTML id attribute\n */\n id?: string\n /**\n * Label text for the form item\n */\n label?: string\n /**\n * Helper or error message configuration\n */\n helper?: {\n /** Type of message */\n type: 'INFO' | 'ERROR'\n /** Message text */\n message: string\n }\n /**\n * Whether to fill available width\n * @default true\n */\n shouldFill?: boolean\n /**\n * Whether to align content to baseline\n * @default false\n */\n isBaseline?: boolean\n /**\n * Whether to use multi-line layout\n * @default false\n */\n isMultiLine?: boolean\n /**\n * Whether the item 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 * Form input element\n */\n children: React.ReactNode\n}\n\nconst FormItem = (props: FormItemProps) => {\n const {\n id,\n label,\n helper,\n shouldFill = true,\n isBaseline = false,\n isMultiLine = false,\n isBlocked = false,\n isNew = false,\n children,\n } = props\n\n return (\n <div\n className={doClassnames([\n 'form-item',\n shouldFill && 'form-item--fill',\n isBaseline && 'form-item--baseline',\n isMultiLine && 'form-item--multiline',\n isBlocked && 'form-item--blocked',\n ])}\n role=\"group\"\n aria-describedby={helper ? `${id}-helper` : undefined}\n >\n <div\n className=\"form-item__row\"\n role=\"presentation\"\n >\n {label !== undefined && (\n <label\n className={doClassnames([texts.type, 'form-item__label'])}\n htmlFor={id}\n id={`${id}-label`}\n >\n {label}\n </label>\n )}\n <div\n className=\"form-item__input\"\n role=\"presentation\"\n >\n {children}\n </div>\n {isNew && (\n <div\n className=\"form-item__chip\"\n role=\"presentation\"\n >\n <Chip>New</Chip>\n </div>\n )}\n </div>\n {helper !== undefined && (\n <div\n className=\"form-item__helper\"\n id={`${id}-helper`}\n role=\"alert\"\n aria-live=\"polite\"\n >\n <Message\n icon={helper.type === 'INFO' ? 'info' : 'warning'}\n messages={[helper.message]}\n />\n </div>\n )}\n </div>\n )\n}\n\nexport default FormItem\n"],"names":["FormItem","props","id","label","helper","shouldFill","isBaseline","isMultiLine","isBlocked","isNew","children","jsxs","doClassnames","jsx","texts","Chip","Message"],"mappings":";;;;;AAuDA,MAAMA,IAAW,CAACC,MAAyB;AACzC,QAAM;AAAA,IACJ,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,YAAAC,IAAa;AAAA,IACb,aAAAC,IAAc;AAAA,IACd,WAAAC,IAAY;AAAA,IACZ,OAAAC,IAAQ;AAAA,IACR,UAAAC;AAAA,EAAA,IACET;AAEJ,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAa;AAAA,QACtB;AAAA,QACAP,KAAc;AAAA,QACdC,KAAc;AAAA,QACdC,KAAe;AAAA,QACfC,KAAa;AAAA,MAAA,CACd;AAAA,MACD,MAAK;AAAA,MACL,oBAAkBJ,IAAS,GAAGF,CAAE,YAAY;AAAA,MAE5C,UAAA;AAAA,QAAA,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YAEJ,UAAA;AAAA,cAAAR,MAAU,UACT,gBAAAU;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWD,EAAa,CAACE,EAAM,MAAM,kBAAkB,CAAC;AAAA,kBACxD,SAASZ;AAAA,kBACT,IAAI,GAAGA,CAAE;AAAA,kBAER,UAAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGL,gBAAAU;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,MAAK;AAAA,kBAEJ,UAAAH;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEFD,KACC,gBAAAI;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,MAAK;AAAA,kBAEL,UAAA,gBAAAA,EAACE,KAAK,UAAA,MAAA,CAAG;AAAA,gBAAA;AAAA,cAAA;AAAA,YACX;AAAA,UAAA;AAAA,QAAA;AAAA,QAGHX,MAAW,UACV,gBAAAS;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IAAI,GAAGX,CAAE;AAAA,YACT,MAAK;AAAA,YACL,aAAU;AAAA,YAEV,UAAA,gBAAAW;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,MAAMZ,EAAO,SAAS,SAAS,SAAS;AAAA,gBACxC,UAAU,CAACA,EAAO,OAAO;AAAA,cAAA;AAAA,YAAA;AAAA,UAC3B;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,34 @@
1
+ import { DrawerProps } from '../drawer/Drawer';
2
+
3
+ export type LayoutProps = {
4
+ /**
5
+ * HTML id attribute
6
+ */
7
+ id?: string;
8
+ /**
9
+ * Array of column configurations
10
+ */
11
+ column: Array<{
12
+ /** Content node */
13
+ node?: React.ReactElement;
14
+ /** Type modifier for styling */
15
+ typeModifier?: 'LIST' | 'DISTRIBUTED' | 'CENTERED' | 'BLANK' | 'DRAWER' | 'FIXED';
16
+ /** Fixed width value */
17
+ fixedWidth?: string;
18
+ /** Drawer configuration (when typeModifier is DRAWER) */
19
+ drawerOptions?: DrawerProps;
20
+ }>;
21
+ /**
22
+ * Whether to use full width
23
+ * @default false
24
+ */
25
+ isFullWidth?: boolean;
26
+ /**
27
+ * Whether to use full height
28
+ * @default false
29
+ */
30
+ isFullHeight?: boolean;
31
+ };
32
+ declare const Layout: (props: LayoutProps) => import("react/jsx-runtime").JSX.Element;
33
+ export default Layout;
34
+ //# sourceMappingURL=Layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../../src/components/slots/layout/Layout.tsx"],"names":[],"mappings":";AACA,OAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,eAAe,CAAA;AAEtB,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC;QACZ,mBAAmB;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAA;QACzB,gCAAgC;QAChC,YAAY,CAAC,EACT,MAAM,GACN,aAAa,GACb,UAAU,GACV,OAAO,GACP,QAAQ,GACR,OAAO,CAAA;QACX,wBAAwB;QACxB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,yDAAyD;QACzD,aAAa,CAAC,EAAE,WAAW,CAAA;KAC5B,CAAC,CAAA;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,QAAA,MAAM,MAAM,UAAW,WAAW,4CA4CjC,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,45 @@
1
+ import '../../../assets/Layout.css';
2
+ import { jsx as l } from "react/jsx-runtime";
3
+ import { t as d } from "../../../do-classnames-DSDFCvzy.js";
4
+ import s from "../drawer/Drawer.js";
5
+ const c = (e) => {
6
+ const { id: r, column: t, isFullWidth: a = !1, isFullHeight: n = !1 } = e;
7
+ return /* @__PURE__ */ l(
8
+ "div",
9
+ {
10
+ id: r,
11
+ className: d([
12
+ "layout",
13
+ a && "layout--full-width",
14
+ n && "layout--full-height"
15
+ ]),
16
+ role: "main",
17
+ children: t.map(
18
+ (o, i) => o.node !== void 0 && (o.typeModifier === "DRAWER" && o.drawerOptions !== void 0 ? /* @__PURE__ */ l(s, { ...o.drawerOptions, children: o.node }) : /* @__PURE__ */ l(
19
+ "div",
20
+ {
21
+ className: d([
22
+ "layout__block",
23
+ o.typeModifier === "LIST" && "layout__block--list",
24
+ o.typeModifier === "DISTRIBUTED" && "layout__block--distributed",
25
+ o.typeModifier === "CENTERED" && "layout__block--centered",
26
+ o.typeModifier === "BLANK" && "layout__block--blank",
27
+ o.typeModifier === "FIXED" && "layout__block--fixed"
28
+ ]),
29
+ style: {
30
+ width: o.fixedWidth !== void 0 ? o.fixedWidth : void 0
31
+ },
32
+ role: "region",
33
+ "aria-label": `Content section ${i + 1}`,
34
+ children: o.node
35
+ },
36
+ i
37
+ ))
38
+ )
39
+ }
40
+ );
41
+ };
42
+ export {
43
+ c as default
44
+ };
45
+ //# sourceMappingURL=Layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layout.js","sources":["../../../../src/components/slots/layout/Layout.tsx"],"sourcesContent":["import { doClassnames } from '@a_ng_d/figmug-utils'\nimport Drawer, { DrawerProps } from '../drawer/Drawer'\nimport './layout.scss'\n\nexport type LayoutProps = {\n /**\n * HTML id attribute\n */\n id?: string\n /**\n * Array of column configurations\n */\n column: Array<{\n /** Content node */\n node?: React.ReactElement\n /** Type modifier for styling */\n typeModifier?:\n | 'LIST'\n | 'DISTRIBUTED'\n | 'CENTERED'\n | 'BLANK'\n | 'DRAWER'\n | 'FIXED'\n /** Fixed width value */\n fixedWidth?: string\n /** Drawer configuration (when typeModifier is DRAWER) */\n drawerOptions?: DrawerProps\n }>\n /**\n * Whether to use full width\n * @default false\n */\n isFullWidth?: boolean\n /**\n * Whether to use full height\n * @default false\n */\n isFullHeight?: boolean\n}\n\nconst Layout = (props: LayoutProps) => {\n const { id, column, isFullWidth = false, isFullHeight = false } = props\n\n return (\n <div\n id={id}\n className={doClassnames([\n 'layout',\n isFullWidth && 'layout--full-width',\n isFullHeight && 'layout--full-height',\n ])}\n role=\"main\"\n >\n {column.map(\n (item, index) =>\n item.node !== undefined &&\n (item.typeModifier === 'DRAWER' &&\n item.drawerOptions !== undefined ? (\n <Drawer {...item.drawerOptions}>{item.node}</Drawer>\n ) : (\n <div\n key={index}\n className={doClassnames([\n 'layout__block',\n item.typeModifier === 'LIST' && 'layout__block--list',\n item.typeModifier === 'DISTRIBUTED' &&\n 'layout__block--distributed',\n item.typeModifier === 'CENTERED' && 'layout__block--centered',\n item.typeModifier === 'BLANK' && 'layout__block--blank',\n item.typeModifier === 'FIXED' && 'layout__block--fixed',\n ])}\n style={{\n width:\n item.fixedWidth !== undefined ? item.fixedWidth : undefined,\n }}\n role=\"region\"\n aria-label={`Content section ${index + 1}`}\n >\n {item.node}\n </div>\n ))\n )}\n </div>\n )\n}\n\nexport default Layout\n"],"names":["Layout","props","id","column","isFullWidth","isFullHeight","jsx","doClassnames","item","index","Drawer"],"mappings":";;;AAwCA,MAAMA,IAAS,CAACC,MAAuB;AACrC,QAAM,EAAE,IAAAC,GAAI,QAAAC,GAAQ,aAAAC,IAAc,IAAO,cAAAC,IAAe,OAAUJ;AAElE,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAAJ;AAAA,MACA,WAAWK,EAAa;AAAA,QACtB;AAAA,QACAH,KAAe;AAAA,QACfC,KAAgB;AAAA,MAAA,CACjB;AAAA,MACD,MAAK;AAAA,MAEJ,UAAAF,EAAO;AAAA,QACN,CAACK,GAAMC,MACLD,EAAK,SAAS,WACbA,EAAK,iBAAiB,YACvBA,EAAK,kBAAkB,2BACpBE,GAAA,EAAQ,GAAGF,EAAK,eAAgB,UAAAA,EAAK,MAAK,IAE3C,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAWC,EAAa;AAAA,cACtB;AAAA,cACAC,EAAK,iBAAiB,UAAU;AAAA,cAChCA,EAAK,iBAAiB,iBACpB;AAAA,cACFA,EAAK,iBAAiB,cAAc;AAAA,cACpCA,EAAK,iBAAiB,WAAW;AAAA,cACjCA,EAAK,iBAAiB,WAAW;AAAA,YAAA,CAClC;AAAA,YACD,OAAO;AAAA,cACL,OACEA,EAAK,eAAe,SAAYA,EAAK,aAAa;AAAA,YAAA;AAAA,YAEtD,MAAK;AAAA,YACL,cAAY,mBAAmBC,IAAQ,CAAC;AAAA,YAEvC,UAAAD,EAAK;AAAA,UAAA;AAAA,UAjBDC;AAAA,QAAA;AAAA,MAkBP;AAAA,IAEN;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,49 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface ListProps {
4
+ /**
5
+ * HTML id attribute
6
+ */
7
+ id?: string;
8
+ /**
9
+ * List item elements
10
+ */
11
+ children?: React.ReactNode;
12
+ /**
13
+ * Custom padding value
14
+ */
15
+ padding?: string;
16
+ /**
17
+ * Whether to show a border on scroll
18
+ * @default false
19
+ */
20
+ isTopBorderEnabled?: boolean;
21
+ /**
22
+ * Whether to show loading state
23
+ * @default false
24
+ */
25
+ isLoading?: boolean;
26
+ /**
27
+ * Whether the list contains message items
28
+ * @default false
29
+ */
30
+ isMessage?: boolean;
31
+ /**
32
+ * Whether to use alternate styling
33
+ * @default false
34
+ */
35
+ isAlternate?: boolean;
36
+ /**
37
+ * Whether to use full width
38
+ * @default false
39
+ */
40
+ isFullWidth?: boolean;
41
+ /**
42
+ * Whether to use full height
43
+ * @default false
44
+ */
45
+ isFullHeight?: boolean;
46
+ }
47
+ export declare const List: (props: ListProps) => import("react/jsx-runtime").JSX.Element;
48
+ export default List;
49
+ //# sourceMappingURL=List.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/components/slots/list/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,aAAa,CAAA;AAEpB,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,eAAO,MAAM,IAAI,UAAW,SAAS,4CAqDpC,CAAA;AACD,eAAe,IAAI,CAAA"}
@@ -0,0 +1,55 @@
1
+ import '../../../assets/List.css';
2
+ import { jsx as s } from "react/jsx-runtime";
3
+ import { useState as h } from "react";
4
+ import { Icon as g } from "../../assets/icon/Icon.js";
5
+ import { t as T } from "../../../do-classnames-DSDFCvzy.js";
6
+ const x = (i) => {
7
+ const {
8
+ id: r,
9
+ children: a,
10
+ isLoading: e = !1,
11
+ isMessage: o = !1,
12
+ padding: n,
13
+ isTopBorderEnabled: d = !1,
14
+ isAlternate: f = !1,
15
+ isFullWidth: p = !1,
16
+ isFullHeight: u = !1
17
+ } = i, [c, l] = h(!1), m = (t) => {
18
+ t.preventDefault(), t.currentTarget.scrollTop > 0 && d ? l(!0) : l(!1);
19
+ };
20
+ return /* @__PURE__ */ s(
21
+ "ul",
22
+ {
23
+ id: r,
24
+ style: {
25
+ padding: n,
26
+ listStyleType: "none"
27
+ },
28
+ className: T([
29
+ "list",
30
+ e && "list--loading",
31
+ o && "list--message",
32
+ c && "list--top-border",
33
+ f && "list--alternate",
34
+ p && "list--full-width",
35
+ u && "list--full-height"
36
+ ]),
37
+ onScroll: m,
38
+ "aria-busy": e,
39
+ children: e ? /* @__PURE__ */ s("li", { children: /* @__PURE__ */ s(
40
+ g,
41
+ {
42
+ type: "PICTO",
43
+ iconName: "spinner",
44
+ role: "status",
45
+ "aria-hidden": "true"
46
+ }
47
+ ) }) : a
48
+ }
49
+ );
50
+ };
51
+ export {
52
+ x as List,
53
+ x as default
54
+ };
55
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","sources":["../../../../src/components/slots/list/List.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport Icon from '@components/assets/icon/Icon'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport './list.scss'\n\nexport interface ListProps {\n /**\n * HTML id attribute\n */\n id?: string\n /**\n * List item elements\n */\n children?: React.ReactNode\n /**\n * Custom padding value\n */\n padding?: string\n /**\n * Whether to show a border on scroll\n * @default false\n */\n isTopBorderEnabled?: boolean\n /**\n * Whether to show loading state\n * @default false\n */\n isLoading?: boolean\n /**\n * Whether the list contains message items\n * @default false\n */\n isMessage?: boolean\n /**\n * Whether to use alternate styling\n * @default false\n */\n isAlternate?: boolean\n /**\n * Whether to use full width\n * @default false\n */\n isFullWidth?: boolean\n /**\n * Whether to use full height\n * @default false\n */\n isFullHeight?: boolean\n}\n\nexport const List = (props: ListProps) => {\n const {\n id,\n children,\n isLoading = false,\n isMessage = false,\n padding,\n isTopBorderEnabled = false,\n isAlternate = false,\n isFullWidth = false,\n isFullHeight = false,\n } = props\n const [hasTopBorder, setTopBorder] = useState(false)\n\n const onScroll = (e: React.UIEvent<HTMLUListElement>) => {\n e.preventDefault()\n if (e.currentTarget.scrollTop > 0 && isTopBorderEnabled) setTopBorder(true)\n else setTopBorder(false)\n }\n\n return (\n <ul\n id={id}\n style={{\n padding: padding,\n listStyleType: 'none',\n }}\n className={doClassnames([\n 'list',\n isLoading && 'list--loading',\n isMessage && 'list--message',\n hasTopBorder && 'list--top-border',\n isAlternate && 'list--alternate',\n isFullWidth && 'list--full-width',\n isFullHeight && 'list--full-height',\n ])}\n onScroll={onScroll}\n aria-busy={isLoading}\n >\n {isLoading ? (\n <li>\n <Icon\n type=\"PICTO\"\n iconName=\"spinner\"\n role=\"status\"\n aria-hidden=\"true\"\n />\n </li>\n ) : (\n children\n )}\n </ul>\n )\n}\nexport default List\n"],"names":["List","props","id","children","isLoading","isMessage","padding","isTopBorderEnabled","isAlternate","isFullWidth","isFullHeight","hasTopBorder","setTopBorder","useState","onScroll","e","jsx","doClassnames","Icon"],"mappings":";;;;AAkDO,MAAMA,IAAO,CAACC,MAAqB;AACxC,QAAM;AAAA,IACJ,IAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,WAAAC,IAAY;AAAA,IACZ,SAAAC;AAAA,IACA,oBAAAC,IAAqB;AAAA,IACrB,aAAAC,IAAc;AAAA,IACd,aAAAC,IAAc;AAAA,IACd,cAAAC,IAAe;AAAA,EAAA,IACbT,GACE,CAACU,GAAcC,CAAY,IAAIC,EAAS,EAAK,GAE7CC,IAAW,CAACC,MAAuC;AACvD,IAAAA,EAAE,eAAA,GACEA,EAAE,cAAc,YAAY,KAAKR,MAAiC,EAAI,MACxD,EAAK;AAAA,EACzB;AAEA,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAAd;AAAA,MACA,OAAO;AAAA,QACL,SAAAI;AAAA,QACA,eAAe;AAAA,MAAA;AAAA,MAEjB,WAAWW,EAAa;AAAA,QACtB;AAAA,QACAb,KAAa;AAAA,QACbC,KAAa;AAAA,QACbM,KAAgB;AAAA,QAChBH,KAAe;AAAA,QACfC,KAAe;AAAA,QACfC,KAAgB;AAAA,MAAA,CACjB;AAAA,MACD,UAAAI;AAAA,MACA,aAAWV;AAAA,MAEV,UAAAA,sBACE,MAAA,EACC,UAAA,gBAAAY;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,UAAS;AAAA,UACT,MAAK;AAAA,UACL,eAAY;AAAA,QAAA;AAAA,MAAA,GAEhB,IAEAf;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,85 @@
1
+
2
+ export interface PopInProps {
3
+ /**
4
+ * HTML id attribute
5
+ */
6
+ id?: string;
7
+ /**
8
+ * Type of popin layout
9
+ * @default 'POPIN'
10
+ */
11
+ type?: 'POPIN' | 'PANEL';
12
+ /**
13
+ * Title text
14
+ */
15
+ title: string;
16
+ /**
17
+ * Optional tag to display next to the title
18
+ */
19
+ tag?: string;
20
+ /**
21
+ * Configuration for action buttons
22
+ */
23
+ actions?: {
24
+ /** Primary action button */
25
+ primary?: {
26
+ label: string;
27
+ state?: 'DEFAULT' | 'DISABLED' | 'LOADING';
28
+ isAutofocus?: boolean;
29
+ feature?: string;
30
+ action: React.MouseEventHandler & React.KeyboardEventHandler;
31
+ };
32
+ /** Destructive action button */
33
+ destructive?: {
34
+ label: string;
35
+ state?: 'DEFAULT' | 'DISABLED' | 'LOADING';
36
+ feature?: string;
37
+ isAutofocus?: boolean;
38
+ action: React.ReactEventHandler | (() => void);
39
+ };
40
+ /** Secondary action button */
41
+ secondary?: {
42
+ label: string;
43
+ state?: 'DEFAULT' | 'DISABLED' | 'LOADING';
44
+ feature?: string;
45
+ isAutofocus?: boolean;
46
+ action: React.MouseEventHandler & React.KeyboardEventHandler;
47
+ };
48
+ };
49
+ /**
50
+ * Select/checkbox configuration
51
+ */
52
+ select?: {
53
+ /** Label text */
54
+ label: string;
55
+ /** Current state */
56
+ state: boolean;
57
+ /** Change handler */
58
+ action: React.ChangeEventHandler<HTMLInputElement> | undefined;
59
+ };
60
+ /**
61
+ * Optional indicator text
62
+ */
63
+ indicator?: string;
64
+ /**
65
+ * Whether the popin is in loading state
66
+ * @default false
67
+ */
68
+ isLoading?: boolean;
69
+ /**
70
+ * Whether to use message layout
71
+ * @default false
72
+ */
73
+ isMessage?: boolean;
74
+ /**
75
+ * Popin content
76
+ */
77
+ children?: React.ReactNode;
78
+ /**
79
+ * Close handler
80
+ */
81
+ onClose: React.MouseEventHandler & React.KeyboardEventHandler;
82
+ }
83
+ declare const PopIn: (props: PopInProps) => import("react/jsx-runtime").JSX.Element;
84
+ export default PopIn;
85
+ //# sourceMappingURL=Popin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popin.d.ts","sourceRoot":"","sources":["../../../../src/components/slots/popin/Popin.tsx"],"names":[],"mappings":";AAMA,OAAO,cAAc,CAAA;AAErB,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,4BAA4B;QAC5B,OAAO,CAAC,EAAE;YACR,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;YAC1C,WAAW,CAAC,EAAE,OAAO,CAAA;YACrB,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;SAC7D,CAAA;QACD,gCAAgC;QAChC,WAAW,CAAC,EAAE;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;YAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,WAAW,CAAC,EAAE,OAAO,CAAA;YACrB,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;SAC/C,CAAA;QACD,8BAA8B;QAC9B,SAAS,CAAC,EAAE;YACV,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;YAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,WAAW,CAAC,EAAE,OAAO,CAAA;YACrB,MAAM,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;SAC7D,CAAA;KACF,CAAA;IACD;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,iBAAiB;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,oBAAoB;QACpB,KAAK,EAAE,OAAO,CAAA;QACd,qBAAqB;QACrB,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAA;KAC/D,CAAA;IACD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;CAC9D;AAED,QAAA,MAAM,KAAK,UAAW,UAAU,4CAoK/B,CAAA;AAED,eAAe,KAAK,CAAA"}