@unoff/ui 1.21.0 → 1.21.2

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 (201) hide show
  1. package/dist/assets/Card.css +1 -1
  2. package/dist/assets/FormItem.css +1 -1
  3. package/dist/assets/Layout.css +1 -1
  4. package/dist/assets/MultipleSlider.css +1 -1
  5. package/dist/assets/Popin.css +1 -1
  6. package/dist/assets/SimpleSlider.css +1 -1
  7. package/dist/assets/styles/icons/icons.css +1 -1
  8. package/dist/assets/styles/icons/styles/figma.css +1 -1
  9. package/dist/assets/styles/icons/styles/framer.css +1 -1
  10. package/dist/assets/styles/icons/styles/penpot.css +1 -1
  11. package/dist/assets/styles/icons/styles/sketch.css +1 -1
  12. package/dist/components/actions/accordion/Accordion.d.ts +0 -1
  13. package/dist/components/actions/accordion/Accordion.d.ts.map +1 -1
  14. package/dist/components/actions/accordion/Accordion.js +6 -6
  15. package/dist/components/actions/accordion/Accordion.js.map +1 -1
  16. package/dist/components/actions/button/Button.d.ts +2 -3
  17. package/dist/components/actions/button/Button.d.ts.map +1 -1
  18. package/dist/components/actions/button/Button.figma.js +1 -1
  19. package/dist/components/actions/button/Button.js +87 -88
  20. package/dist/components/actions/button/Button.js.map +1 -1
  21. package/dist/components/actions/card/Card.d.ts +0 -1
  22. package/dist/components/actions/card/Card.d.ts.map +1 -1
  23. package/dist/components/actions/card/Card.js +1 -1
  24. package/dist/components/actions/card/Card.js.map +1 -1
  25. package/dist/components/actions/knob/Knob.d.ts +2 -3
  26. package/dist/components/actions/knob/Knob.d.ts.map +1 -1
  27. package/dist/components/actions/knob/Knob.js +1 -1
  28. package/dist/components/actions/knob/Knob.js.map +1 -1
  29. package/dist/components/actions/menu/Menu.d.ts +2 -3
  30. package/dist/components/actions/menu/Menu.d.ts.map +1 -1
  31. package/dist/components/actions/menu/Menu.js +4 -4
  32. package/dist/components/actions/menu/Menu.js.map +1 -1
  33. package/dist/components/assets/avatar/Avatar.d.ts +0 -1
  34. package/dist/components/assets/avatar/Avatar.d.ts.map +1 -1
  35. package/dist/components/assets/avatar/Avatar.js +6 -6
  36. package/dist/components/assets/avatar/Avatar.js.map +1 -1
  37. package/dist/components/assets/icon/Icon.d.ts +0 -1
  38. package/dist/components/assets/icon/Icon.d.ts.map +1 -1
  39. package/dist/components/assets/icon/Icon.figma.js +1 -1
  40. package/dist/components/assets/icon/Icon.js +6 -6
  41. package/dist/components/assets/icon/Icon.js.map +1 -1
  42. package/dist/components/assets/section-title/SectionTitle.d.ts +0 -1
  43. package/dist/components/assets/section-title/SectionTitle.d.ts.map +1 -1
  44. package/dist/components/assets/section-title/SectionTitle.js +1 -1
  45. package/dist/components/assets/section-title/SectionTitle.js.map +1 -1
  46. package/dist/components/assets/text/Text.d.ts +0 -1
  47. package/dist/components/assets/text/Text.d.ts.map +1 -1
  48. package/dist/components/assets/text/Text.js +1 -1
  49. package/dist/components/assets/text/Text.js.map +1 -1
  50. package/dist/components/assets/thumbnail/Thumbnail.d.ts +0 -1
  51. package/dist/components/assets/thumbnail/Thumbnail.d.ts.map +1 -1
  52. package/dist/components/dialogs/consent/Consent.d.ts +2 -3
  53. package/dist/components/dialogs/consent/Consent.d.ts.map +1 -1
  54. package/dist/components/dialogs/consent/Consent.js +1 -1
  55. package/dist/components/dialogs/consent/Consent.js.map +1 -1
  56. package/dist/components/dialogs/dialog/Dialog.d.ts +0 -1
  57. package/dist/components/dialogs/dialog/Dialog.d.ts.map +1 -1
  58. package/dist/components/dialogs/dialog/Dialog.js +4 -4
  59. package/dist/components/dialogs/dialog/Dialog.js.map +1 -1
  60. package/dist/components/dialogs/message/Message.d.ts +0 -1
  61. package/dist/components/dialogs/message/Message.js +1 -1
  62. package/dist/components/dialogs/message/Message.js.map +1 -1
  63. package/dist/components/dialogs/notification/Notification.d.ts +0 -1
  64. package/dist/components/dialogs/notification/Notification.d.ts.map +1 -1
  65. package/dist/components/dialogs/notification/Notification.js +4 -4
  66. package/dist/components/dialogs/notification/Notification.js.map +1 -1
  67. package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts +2 -3
  68. package/dist/components/dialogs/semantic-message/SemanticMessage.d.ts.map +1 -1
  69. package/dist/components/dialogs/semantic-message/SemanticMessage.js +1 -1
  70. package/dist/components/dialogs/semantic-message/SemanticMessage.js.map +1 -1
  71. package/dist/components/inputs/dropdown/Dropdown.d.ts +2 -3
  72. package/dist/components/inputs/dropdown/Dropdown.d.ts.map +1 -1
  73. package/dist/components/inputs/dropdown/Dropdown.figma.js +1 -1
  74. package/dist/components/inputs/dropdown/Dropdown.js +1 -1
  75. package/dist/components/inputs/dropdown/Dropdown.js.map +1 -1
  76. package/dist/components/inputs/dropzone/Dropzone.d.ts +2 -3
  77. package/dist/components/inputs/dropzone/Dropzone.d.ts.map +1 -1
  78. package/dist/components/inputs/dropzone/Dropzone.js +4 -4
  79. package/dist/components/inputs/dropzone/Dropzone.js.map +1 -1
  80. package/dist/components/inputs/input/Input.d.ts +2 -3
  81. package/dist/components/inputs/input/Input.d.ts.map +1 -1
  82. package/dist/components/inputs/input/Input.figma.js +1 -1
  83. package/dist/components/inputs/input/Input.js +1 -1
  84. package/dist/components/inputs/input/Input.js.map +1 -1
  85. package/dist/components/inputs/inputs-bar/InputsBar.d.ts +0 -1
  86. package/dist/components/inputs/inputs-bar/InputsBar.d.ts.map +1 -1
  87. package/dist/components/inputs/inputs-bar/InputsBar.js +4 -4
  88. package/dist/components/inputs/inputs-bar/InputsBar.js.map +1 -1
  89. package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts +19 -12
  90. package/dist/components/inputs/multiple-slider/MultipleSlider.d.ts.map +1 -1
  91. package/dist/components/inputs/multiple-slider/MultipleSlider.js +283 -235
  92. package/dist/components/inputs/multiple-slider/MultipleSlider.js.map +1 -1
  93. package/dist/components/inputs/multiple-slider/actions/addStop.d.ts.map +1 -1
  94. package/dist/components/inputs/multiple-slider/actions/deleteStop.d.ts.map +1 -1
  95. package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts +1 -1
  96. package/dist/components/inputs/multiple-slider/actions/shiftLeftStop.d.ts.map +1 -1
  97. package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts +1 -1
  98. package/dist/components/inputs/multiple-slider/actions/shiftRightStop.d.ts.map +1 -1
  99. package/dist/components/inputs/select/Select.d.ts +3 -4
  100. package/dist/components/inputs/select/Select.d.ts.map +1 -1
  101. package/dist/components/inputs/select/Select.js +1 -1
  102. package/dist/components/inputs/select/Select.js.map +1 -1
  103. package/dist/components/inputs/simple-slider/SimpleSlider.d.ts +15 -5
  104. package/dist/components/inputs/simple-slider/SimpleSlider.d.ts.map +1 -1
  105. package/dist/components/inputs/simple-slider/SimpleSlider.js +116 -87
  106. package/dist/components/inputs/simple-slider/SimpleSlider.js.map +1 -1
  107. package/dist/components/lists/actions-item/ActionsItem.d.ts +0 -1
  108. package/dist/components/lists/actions-item/ActionsItem.js +1 -1
  109. package/dist/components/lists/actions-item/ActionsItem.js.map +1 -1
  110. package/dist/components/lists/actions-list/ActionsList.d.ts +4 -5
  111. package/dist/components/lists/actions-list/ActionsList.d.ts.map +1 -1
  112. package/dist/components/lists/actions-list/ActionsList.js +1 -1
  113. package/dist/components/lists/actions-list/ActionsList.js.map +1 -1
  114. package/dist/components/lists/color-item/ColorItem.d.ts +0 -1
  115. package/dist/components/lists/color-item/ColorItem.d.ts.map +1 -1
  116. package/dist/components/lists/color-item/ColorItem.js +1 -1
  117. package/dist/components/lists/color-item/ColorItem.js.map +1 -1
  118. package/dist/components/lists/draggable-item/DraggableItem.d.ts +2 -3
  119. package/dist/components/lists/draggable-item/DraggableItem.d.ts.map +1 -1
  120. package/dist/components/lists/draggable-item/DraggableItem.js +6 -6
  121. package/dist/components/lists/draggable-item/DraggableItem.js.map +1 -1
  122. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.d.ts +0 -1
  123. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.d.ts.map +1 -1
  124. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js +1 -1
  125. package/dist/components/lists/keyboard-shortcut-item/KeyboardShortcutItem.js.map +1 -1
  126. package/dist/components/lists/members-list/MembersList.d.ts +0 -1
  127. package/dist/components/lists/sortable-list/SortableList.d.ts +2 -3
  128. package/dist/components/lists/sortable-list/SortableList.d.ts.map +1 -1
  129. package/dist/components/lists/sortable-list/SortableList.js.map +1 -1
  130. package/dist/components/lists/tabs/Tabs.d.ts +0 -1
  131. package/dist/components/lists/tabs/Tabs.d.ts.map +1 -1
  132. package/dist/components/lists/tabs/Tabs.figma.js +1 -1
  133. package/dist/components/lists/tabs/Tabs.js +1 -1
  134. package/dist/components/lists/tabs/Tabs.js.map +1 -1
  135. package/dist/components/slots/bar/Bar.d.ts +1 -2
  136. package/dist/components/slots/bar/Bar.d.ts.map +1 -1
  137. package/dist/components/slots/bar/Bar.js.map +1 -1
  138. package/dist/components/slots/draggable-window/DraggableWindow.d.ts +0 -1
  139. package/dist/components/slots/draggable-window/DraggableWindow.d.ts.map +1 -1
  140. package/dist/components/slots/draggable-window/DraggableWindow.js +6 -6
  141. package/dist/components/slots/draggable-window/DraggableWindow.js.map +1 -1
  142. package/dist/components/slots/drawer/Drawer.d.ts +1 -2
  143. package/dist/components/slots/drawer/Drawer.d.ts.map +1 -1
  144. package/dist/components/slots/drawer/Drawer.js.map +1 -1
  145. package/dist/components/slots/form-item/FormItem.d.ts +0 -1
  146. package/dist/components/slots/form-item/FormItem.d.ts.map +1 -1
  147. package/dist/components/slots/form-item/FormItem.js +1 -1
  148. package/dist/components/slots/form-item/FormItem.js.map +1 -1
  149. package/dist/components/slots/layout/Layout.d.ts +0 -1
  150. package/dist/components/slots/layout/Layout.d.ts.map +1 -1
  151. package/dist/components/slots/layout/Layout.js.map +1 -1
  152. package/dist/components/slots/list/List.d.ts +0 -1
  153. package/dist/components/slots/list/List.d.ts.map +1 -1
  154. package/dist/components/slots/list/List.js +4 -4
  155. package/dist/components/slots/list/List.js.map +1 -1
  156. package/dist/components/slots/popin/Popin.d.ts +0 -1
  157. package/dist/components/slots/popin/Popin.d.ts.map +1 -1
  158. package/dist/components/slots/popin/Popin.js +1 -1
  159. package/dist/components/slots/popin/Popin.js.map +1 -1
  160. package/dist/components/slots/section/Section.d.ts +1 -2
  161. package/dist/components/slots/section/Section.d.ts.map +1 -1
  162. package/dist/components/slots/section/Section.js.map +1 -1
  163. package/dist/components/slots/simple-item/SimpleItem.d.ts +0 -1
  164. package/dist/components/slots/simple-item/SimpleItem.js.map +1 -1
  165. package/dist/components/tags/chip/Chip.d.ts +0 -1
  166. package/dist/components/tags/chip/Chip.d.ts.map +1 -1
  167. package/dist/components/tags/chip/Chip.figma.js +1 -1
  168. package/dist/components/tags/chip/Chip.js +6 -6
  169. package/dist/components/tags/chip/Chip.js.map +1 -1
  170. package/dist/components/tags/color-chip/ColorChip.d.ts +2 -3
  171. package/dist/components/tags/color-chip/ColorChip.d.ts.map +1 -1
  172. package/dist/components/tags/color-chip/ColorChip.js.map +1 -1
  173. package/dist/components/tags/icon-chip/IconChip.d.ts +2 -3
  174. package/dist/components/tags/icon-chip/IconChip.d.ts.map +1 -1
  175. package/dist/components/tags/icon-chip/IconChip.js +4 -4
  176. package/dist/components/tags/icon-chip/IconChip.js.map +1 -1
  177. package/dist/components/tags/tooltip/Tooltip.d.ts +0 -1
  178. package/dist/components/tags/tooltip/Tooltip.d.ts.map +1 -1
  179. package/dist/components/tags/tooltip/Tooltip.js +1 -1
  180. package/dist/components/tags/tooltip/Tooltip.js.map +1 -1
  181. package/dist/do-classnames-DSDFCvzy.js.map +1 -1
  182. package/dist/do-map-2nhWP1KI.js.map +1 -1
  183. package/dist/index.d.ts +1 -1
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +2 -0
  186. package/dist/index.js.map +1 -1
  187. package/dist/index_react-BkjUklDQ.js +18392 -0
  188. package/dist/index_react-BkjUklDQ.js.map +1 -0
  189. package/dist/styles/icons/icons.module.js +114 -110
  190. package/dist/styles/icons/icons.module.js.map +1 -1
  191. package/dist/tests/setup.d.ts +0 -1
  192. package/dist/types/consent.types.d.ts +0 -1
  193. package/dist/types/consent.types.d.ts.map +1 -1
  194. package/dist/types/icon.types.d.ts +2 -1
  195. package/dist/types/icon.types.d.ts.map +1 -1
  196. package/dist/types/icon.types.js +114 -1
  197. package/dist/types/icon.types.js.map +1 -1
  198. package/dist/types/list.types.d.ts +0 -1
  199. package/package.json +15 -12
  200. package/dist/index_react-CmuCVQet.js +0 -13799
  201. package/dist/index_react-CmuCVQet.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/accordion/Accordion.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAK1C,OAAO,kBAAkB,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,qCAAqC;QACrC,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,uCAAuC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,KAAK,EAAE,CACL,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAC5D,IAAI,CAAA;IACT;;OAEG;IACH,OAAO,EAAE,CACP,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAC5D,IAAI,CAAA;CACV;AAED,QAAA,MAAM,SAAS,UAAW,cAAc,4CAwGvC,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/accordion/Accordion.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAI1C,OAAO,kBAAkB,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,qCAAqC;QACrC,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,uCAAuC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,KAAK,EAAE,CACL,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAC5D,IAAI,CAAA;IACT;;OAEG;IACH,OAAO,EAAE,CACP,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAC5D,IAAI,CAAA;CACV;AAED,QAAA,MAAM,SAAS,GAAI,OAAO,cAAc,4CAwGvC,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import '../../../assets/Accordion.css';
2
2
  import { jsxs as n, jsx as i } from "react/jsx-runtime";
3
- import w from "../../tags/chip/Chip.js";
4
- import N from "../../assets/section-title/SectionTitle.js";
5
- import { t as g } from "../../../do-classnames-DSDFCvzy.js";
3
+ import { t as w } from "../../../do-classnames-DSDFCvzy.js";
4
+ import N from "../../tags/chip/Chip.js";
5
+ import g from "../../assets/section-title/SectionTitle.js";
6
6
  import l from "../button/Button.js";
7
7
  const E = (s) => {
8
8
  const {
@@ -25,7 +25,7 @@ const E = (s) => {
25
25
  return /* @__PURE__ */ n(
26
26
  "div",
27
27
  {
28
- className: g([
28
+ className: w([
29
29
  "accordion",
30
30
  c && "accordion--expanded",
31
31
  e && "accordion--blocked"
@@ -41,7 +41,7 @@ const E = (s) => {
41
41
  className: "accordion__row__left",
42
42
  role: "presentation",
43
43
  children: /* @__PURE__ */ i(
44
- N,
44
+ g,
45
45
  {
46
46
  label: a,
47
47
  indicator: p,
@@ -81,7 +81,7 @@ const E = (s) => {
81
81
  action: (o) => u(o)
82
82
  }
83
83
  ),
84
- (e || d) && /* @__PURE__ */ i(w, { children: d ? "New" : "Pro" })
84
+ (e || d) && /* @__PURE__ */ i(N, { children: d ? "New" : "Pro" })
85
85
  ]
86
86
  }
87
87
  )
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sources":["../../../../src/components/actions/accordion/Accordion.tsx"],"sourcesContent":["import { IconList } from '@tps/icon.types'\nimport Chip from '@components/tags/chip/Chip'\nimport SectionTitle from '@components/assets/section-title/SectionTitle'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport Button from '../button/Button'\nimport './accordion.scss'\n\nexport interface AccordionProps {\n /**\n * Title label of the accordion\n */\n label: string\n /**\n * Optional indicator (number or text) displayed next to the label\n */\n indicator?: string | number\n /**\n * Icon to display in the add button\n * @default 'plus'\n */\n icon?: IconList\n /**\n * Helper text displayed near the title\n */\n helper?: string\n /**\n * Helper texts for the action buttons\n */\n helpers?: {\n /** Helper text for the add button */\n add?: string\n /** Helper text for the empty button */\n empty?: string\n }\n /**\n * Whether the accordion is expanded\n */\n isExpanded: boolean\n /**\n * Whether the accordion is blocked (disabled)\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n /**\n * Content to display when accordion is expanded\n */\n children?: React.ReactNode\n /**\n * Callback fired when the add button is clicked\n */\n onAdd: (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => void\n /**\n * Callback fired when the empty button is clicked\n */\n onEmpty: (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => void\n}\n\nconst Accordion = (props: AccordionProps) => {\n const {\n label,\n indicator,\n icon = 'plus',\n helper,\n helpers,\n isExpanded,\n isBlocked = false,\n isNew = false,\n children,\n onAdd,\n onEmpty,\n } = props\n\n const handleAdd = (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => {\n event.stopPropagation()\n onAdd(event)\n }\n\n const handleEmpty = (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => {\n event.stopPropagation()\n onEmpty(event)\n }\n\n return (\n <div\n className={doClassnames([\n 'accordion',\n isExpanded && 'accordion--expanded',\n isBlocked && 'accordion--blocked',\n ])}\n onMouseDown={(e) => {\n if (\n (e.target as HTMLElement).dataset.feature === undefined &&\n !isExpanded &&\n !isBlocked\n )\n onAdd(e as React.MouseEvent<HTMLDivElement, MouseEvent>)\n }}\n >\n <div className=\"accordion__row\">\n <div\n className=\"accordion__row__left\"\n role=\"presentation\"\n >\n <SectionTitle\n label={label}\n indicator={indicator}\n helper={helper}\n />\n </div>\n <div\n className=\"accordion__row__right\"\n role=\"group\"\n >\n {isExpanded ? (\n <Button\n type=\"icon\"\n icon=\"minus\"\n iconClassName=\"accordion__row__icon\"\n helper={\n helpers?.empty !== undefined\n ? {\n label: helpers.empty,\n }\n : undefined\n }\n action={(e) => handleEmpty(e)}\n />\n ) : (\n <Button\n type=\"icon\"\n icon={icon}\n iconClassName=\"accordion__row__icon\"\n helper={\n helpers?.add !== undefined\n ? {\n label: helpers.add,\n }\n : undefined\n }\n isDisabled={isBlocked}\n isBlocked={isBlocked}\n action={(e) => handleAdd(e)}\n />\n )}\n {(isBlocked || isNew) && <Chip>{isNew ? 'New' : 'Pro'}</Chip>}\n </div>\n </div>\n {isExpanded && (\n <div\n id={`accordion-content-${label}`}\n role=\"region\"\n >\n {children}\n </div>\n )}\n </div>\n )\n}\n\nexport default Accordion\n"],"names":["Accordion","props","label","indicator","icon","helper","helpers","isExpanded","isBlocked","isNew","children","onAdd","onEmpty","handleAdd","event","handleEmpty","jsxs","doClassnames","e","jsx","SectionTitle","Button","Chip"],"mappings":";;;;;AAkEA,MAAMA,IAAY,CAACC,MAA0B;AAC3C,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,OAAAC,IAAQ;AAAA,IACR,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEX,GAEEY,IAAY,CAChBC,MACG;AACH,IAAAA,EAAM,gBAAA,GACNH,EAAMG,CAAK;AAAA,EACb,GAEMC,IAAc,CAClBD,MACG;AACH,IAAAA,EAAM,gBAAA,GACNF,EAAQE,CAAK;AAAA,EACf;AAEA,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAa;AAAA,QACtB;AAAA,QACAV,KAAc;AAAA,QACdC,KAAa;AAAA,MAAA,CACd;AAAA,MACD,aAAa,CAACU,MAAM;AAClB,QACGA,EAAE,OAAuB,QAAQ,YAAY,UAC9C,CAACX,KACD,CAACC,KAEDG,EAAMO,CAAiD;AAAA,MAC3D;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,UAAA,gBAAAG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAK;AAAA,cAEL,UAAA,gBAAAA;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,OAAAlB;AAAA,kBACA,WAAAC;AAAA,kBACA,QAAAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,UAEF,gBAAAW;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAK;AAAA,cAEJ,UAAA;AAAA,gBAAAT,IACC,gBAAAY;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,MAAK;AAAA,oBACL,eAAc;AAAA,oBACd,QACEf,GAAS,UAAU,SACf;AAAA,sBACE,OAAOA,EAAQ;AAAA,oBAAA,IAEjB;AAAA,oBAEN,QAAQ,CAACY,MAAMH,EAAYG,CAAC;AAAA,kBAAA;AAAA,gBAAA,IAG9B,gBAAAC;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,MAAAjB;AAAA,oBACA,eAAc;AAAA,oBACd,QACEE,GAAS,QAAQ,SACb;AAAA,sBACE,OAAOA,EAAQ;AAAA,oBAAA,IAEjB;AAAA,oBAEN,YAAYE;AAAA,oBACZ,WAAAA;AAAA,oBACA,QAAQ,CAACU,MAAML,EAAUK,CAAC;AAAA,kBAAA;AAAA,gBAAA;AAAA,iBAG5BV,KAAaC,MAAU,gBAAAU,EAACG,GAAA,EAAM,UAAAb,IAAQ,QAAQ,MAAA,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACxD,GACF;AAAA,QACCF,KACC,gBAAAY;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI,qBAAqBjB,CAAK;AAAA,YAC9B,MAAK;AAAA,YAEJ,UAAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"Accordion.js","sources":["../../../../src/components/actions/accordion/Accordion.tsx"],"sourcesContent":["import { doClassnames } from '@unoff/utils'\nimport { IconList } from '@tps/icon.types'\nimport Chip from '@components/tags/chip/Chip'\nimport SectionTitle from '@components/assets/section-title/SectionTitle'\nimport Button from '../button/Button'\nimport './accordion.scss'\n\nexport interface AccordionProps {\n /**\n * Title label of the accordion\n */\n label: string\n /**\n * Optional indicator (number or text) displayed next to the label\n */\n indicator?: string | number\n /**\n * Icon to display in the add button\n * @default 'plus'\n */\n icon?: IconList\n /**\n * Helper text displayed near the title\n */\n helper?: string\n /**\n * Helper texts for the action buttons\n */\n helpers?: {\n /** Helper text for the add button */\n add?: string\n /** Helper text for the empty button */\n empty?: string\n }\n /**\n * Whether the accordion is expanded\n */\n isExpanded: boolean\n /**\n * Whether the accordion is blocked (disabled)\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n /**\n * Content to display when accordion is expanded\n */\n children?: React.ReactNode\n /**\n * Callback fired when the add button is clicked\n */\n onAdd: (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => void\n /**\n * Callback fired when the empty button is clicked\n */\n onEmpty: (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => void\n}\n\nconst Accordion = (props: AccordionProps) => {\n const {\n label,\n indicator,\n icon = 'plus',\n helper,\n helpers,\n isExpanded,\n isBlocked = false,\n isNew = false,\n children,\n onAdd,\n onEmpty,\n } = props\n\n const handleAdd = (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => {\n event.stopPropagation()\n onAdd(event)\n }\n\n const handleEmpty = (\n event: React.MouseEvent<Element> | React.KeyboardEvent<Element>\n ) => {\n event.stopPropagation()\n onEmpty(event)\n }\n\n return (\n <div\n className={doClassnames([\n 'accordion',\n isExpanded && 'accordion--expanded',\n isBlocked && 'accordion--blocked',\n ])}\n onMouseDown={(e) => {\n if (\n (e.target as HTMLElement).dataset.feature === undefined &&\n !isExpanded &&\n !isBlocked\n )\n onAdd(e as React.MouseEvent<HTMLDivElement, MouseEvent>)\n }}\n >\n <div className=\"accordion__row\">\n <div\n className=\"accordion__row__left\"\n role=\"presentation\"\n >\n <SectionTitle\n label={label}\n indicator={indicator}\n helper={helper}\n />\n </div>\n <div\n className=\"accordion__row__right\"\n role=\"group\"\n >\n {isExpanded ? (\n <Button\n type=\"icon\"\n icon=\"minus\"\n iconClassName=\"accordion__row__icon\"\n helper={\n helpers?.empty !== undefined\n ? {\n label: helpers.empty,\n }\n : undefined\n }\n action={(e) => handleEmpty(e)}\n />\n ) : (\n <Button\n type=\"icon\"\n icon={icon}\n iconClassName=\"accordion__row__icon\"\n helper={\n helpers?.add !== undefined\n ? {\n label: helpers.add,\n }\n : undefined\n }\n isDisabled={isBlocked}\n isBlocked={isBlocked}\n action={(e) => handleAdd(e)}\n />\n )}\n {(isBlocked || isNew) && <Chip>{isNew ? 'New' : 'Pro'}</Chip>}\n </div>\n </div>\n {isExpanded && (\n <div\n id={`accordion-content-${label}`}\n role=\"region\"\n >\n {children}\n </div>\n )}\n </div>\n )\n}\n\nexport default Accordion\n"],"names":["Accordion","props","label","indicator","icon","helper","helpers","isExpanded","isBlocked","isNew","children","onAdd","onEmpty","handleAdd","event","handleEmpty","jsxs","doClassnames","e","jsx","SectionTitle","Button","Chip"],"mappings":";;;;;AAkEA,MAAMA,IAAY,CAACC,MAA0B;AAC3C,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,OAAAC,IAAQ;AAAA,IACR,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,IACEX,GAEEY,IAAY,CAChBC,MACG;AACH,IAAAA,EAAM,gBAAA,GACNH,EAAMG,CAAK;AAAA,EACb,GAEMC,IAAc,CAClBD,MACG;AACH,IAAAA,EAAM,gBAAA,GACNF,EAAQE,CAAK;AAAA,EACf;AAEA,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAa;AAAA,QACtB;AAAA,QACAV,KAAc;AAAA,QACdC,KAAa;AAAA,MAAA,CACd;AAAA,MACD,aAAa,CAACU,MAAM;AAClB,QACGA,EAAE,OAAuB,QAAQ,YAAY,UAC9C,CAACX,KACD,CAACC,KAEDG,EAAMO,CAAiD;AAAA,MAC3D;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,UAAA,gBAAAG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAK;AAAA,cAEL,UAAA,gBAAAA;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,OAAAlB;AAAA,kBACA,WAAAC;AAAA,kBACA,QAAAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,UAEF,gBAAAW;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAK;AAAA,cAEJ,UAAA;AAAA,gBAAAT,IACC,gBAAAY;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,MAAK;AAAA,oBACL,eAAc;AAAA,oBACd,QACEf,GAAS,UAAU,SACf;AAAA,sBACE,OAAOA,EAAQ;AAAA,oBAAA,IAEjB;AAAA,oBAEN,QAAQ,CAACY,MAAMH,EAAYG,CAAC;AAAA,kBAAA;AAAA,gBAAA,IAG9B,gBAAAC;AAAA,kBAACE;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,MAAAjB;AAAA,oBACA,eAAc;AAAA,oBACd,QACEE,GAAS,QAAQ,SACb;AAAA,sBACE,OAAOA,EAAQ;AAAA,oBAAA,IAEjB;AAAA,oBAEN,YAAYE;AAAA,oBACZ,WAAAA;AAAA,oBACA,QAAQ,CAACU,MAAML,EAAUK,CAAC;AAAA,kBAAA;AAAA,gBAAA;AAAA,iBAG5BV,KAAaC,MAAU,gBAAAU,EAACG,GAAA,EAAM,UAAAb,IAAQ,QAAQ,MAAA,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACxD,GACF;AAAA,QACCF,KACC,gBAAAY;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI,qBAAqBjB,CAAK;AAAA,YAC9B,MAAK;AAAA,YAEJ,UAAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { IconList } from '../../../types/icon.types';
3
-
4
3
  export interface ButtonProps {
5
4
  /**
6
5
  * Visual style of the button
@@ -127,11 +126,11 @@ export interface ButtonProps {
127
126
  */
128
127
  onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler;
129
128
  }
130
- interface ButtonStates {
129
+ interface ButtonState {
131
130
  isTooltipVisible: boolean;
132
131
  documentWidth: number;
133
132
  }
134
- export default class Button extends React.Component<ButtonProps, ButtonStates> {
133
+ export default class Button extends React.Component<ButtonProps, ButtonState> {
135
134
  buttonRef: React.RefObject<HTMLButtonElement>;
136
135
  static defaultProps: Partial<ButtonProps>;
137
136
  constructor(props: ButtonProps);
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,eAAe,CAAA;AAEtB,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EACA,SAAS,GACT,WAAW,GACX,UAAU,GACV,aAAa,GACb,aAAa,GACb,MAAM,CAAA;IACV;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;IACpC;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,YAAY,CAAA;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IAC9B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,sBAAsB;QACtB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;QAC/B,uBAAuB;QACvB,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;QACtB,2BAA2B;QAC3B,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAA;KACpC,CAAA;IACD;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,wBAAwB;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,mBAAmB;QACnB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;QAC9B,uBAAuB;QACvB,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;KACvB,CAAA;IACD;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,sBAAsB;QACtB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;QAC/B,uBAAuB;QACvB,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;QACtB,2BAA2B;QAC3B,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAA;KACpC,CAAA;IACD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE;QACb,gCAAgC;QAChC,SAAS,EAAE,OAAO,CAAA;QAClB,iCAAiC;QACjC,IAAI,EAAE,QAAQ,CAAA;KACf,CAAA;IACD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;IAC7D;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAA;CACjE;AAED,UAAU,YAAY;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC;IAC5E,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAoB;IAEjE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAWxC;gBAEW,KAAK,EAAE,WAAW;IAS9B,iBAAiB,aAShB;IAED,oBAAoB,aAEnB;IAGD,YAAY,aAEX;IAGD,MAAM,4DA0BL;IAED,MAAM,gDAyHL;IAED,UAAU,gDA2BT;IAED,IAAI,gDA8FH;IAGD,MAAM;CAMP"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/button/Button.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { i as e } from "../../../index_react-CmuCVQet.js";
2
+ import { i as e } from "../../../index_react-BkjUklDQ.js";
3
3
  import i from "./Button.js";
4
4
  e.figma.connect(
5
5
  i,
@@ -1,12 +1,12 @@
1
1
  import '../../../assets/Button.css';
2
- import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
+ import { jsxs as m, jsx as i } from "react/jsx-runtime";
3
3
  import I from "react";
4
+ import { t as w } from "../../../do-classnames-DSDFCvzy.js";
4
5
  import g from "../../../styles/layouts.module.js";
5
6
  import E from "../../tags/tooltip/Tooltip.js";
6
7
  import _ from "../../tags/icon-chip/IconChip.js";
7
8
  import S from "../../tags/chip/Chip.js";
8
9
  import { Icon as N } from "../../assets/icon/Icon.js";
9
- import { t as w } from "../../../do-classnames-DSDFCvzy.js";
10
10
  class P extends I.Component {
11
11
  buttonRef = I.createRef();
12
12
  static defaultProps = {
@@ -21,16 +21,16 @@ class P extends I.Component {
21
21
  isDisabled: !1,
22
22
  isNew: !1
23
23
  };
24
- constructor(s) {
25
- super(s), this.state = {
24
+ constructor(t) {
25
+ super(t), this.state = {
26
26
  isTooltipVisible: !1,
27
27
  documentWidth: document.documentElement.clientWidth
28
28
  };
29
29
  }
30
30
  // Lifecycle
31
31
  componentDidMount = () => {
32
- const { isAutofocus: s } = this.props;
33
- s && setTimeout(() => {
32
+ const { isAutofocus: t } = this.props;
33
+ t && setTimeout(() => {
34
34
  this.buttonRef.current && this.buttonRef.current.focus();
35
35
  }, 1), window.addEventListener("resize", this.handleResize);
36
36
  };
@@ -43,45 +43,45 @@ class P extends I.Component {
43
43
  };
44
44
  // Templates
45
45
  Status = () => {
46
- const { type: s, warning: i, preview: c, isBlocked: t, isNew: a, onUnblock: u } = this.props;
47
- if (i || t || a)
46
+ const { warning: t, preview: n, isBlocked: a, isNew: e, onUnblock: c } = this.props;
47
+ if (t || a || e)
48
48
  return /* @__PURE__ */ m("div", { className: "button__status", children: [
49
- i !== void 0 && /* @__PURE__ */ e(
49
+ t !== void 0 && /* @__PURE__ */ i(
50
50
  _,
51
51
  {
52
52
  iconType: "PICTO",
53
53
  iconName: "warning",
54
- text: i.label,
55
- pin: i.pin,
56
- type: i.type
54
+ text: t.label,
55
+ pin: t.pin,
56
+ type: t.type
57
57
  }
58
58
  ),
59
- (t || a) && s !== "icon" && /* @__PURE__ */ e(
59
+ (a || e) && /* @__PURE__ */ i(
60
60
  S,
61
61
  {
62
- preview: c,
62
+ preview: n,
63
63
  isSolo: !0,
64
- action: t ? u : void 0,
65
- children: a ? "New" : "Pro"
64
+ action: a ? c : void 0,
65
+ children: e ? "New" : "Pro"
66
66
  }
67
67
  )
68
68
  ] });
69
69
  };
70
70
  Button = () => {
71
71
  const {
72
- type: s,
73
- icon: i,
74
- size: c,
75
- helper: t,
76
- feature: a,
77
- hasMultipleActions: u,
72
+ type: t,
73
+ icon: n,
74
+ size: a,
75
+ helper: e,
76
+ feature: c,
77
+ hasMultipleActions: b,
78
78
  isLoading: o,
79
- isDisabled: p,
80
- isBlocked: l,
81
- action: d,
82
- label: r,
83
- shouldReflow: b
84
- } = this.props, { isTooltipVisible: v, documentWidth: T } = this.state, n = b?.isEnabled && T <= 460, y = () => n ? void 0 : r, L = () => n ? r : t?.label, h = () => n ? r !== void 0 : t !== void 0, k = () => n && b?.icon !== void 0 ? b.icon : i;
79
+ isDisabled: l,
80
+ isBlocked: s,
81
+ action: r,
82
+ label: u,
83
+ shouldReflow: p
84
+ } = this.props, { isTooltipVisible: T, documentWidth: d } = this.state, v = p?.isEnabled && d <= 460, y = () => v ? void 0 : u, L = () => v ? u : e?.label, h = () => v ? u !== void 0 : e !== void 0, k = () => v && p?.icon !== void 0 ? p.icon : n;
85
85
  return /* @__PURE__ */ m("div", { className: g["snackbar--medium"], children: [
86
86
  /* @__PURE__ */ m(
87
87
  "button",
@@ -89,20 +89,20 @@ class P extends I.Component {
89
89
  role: "button",
90
90
  className: w([
91
91
  "button",
92
- `button--${s}`,
93
- `button--${c}`,
92
+ `button--${t}`,
93
+ `button--${a}`,
94
94
  o && "button--loading",
95
- l && "button--blocked"
95
+ s && "button--blocked"
96
96
  ]),
97
- "data-feature": a,
98
- disabled: p || l,
99
- "aria-label": typeof (y() || t?.label) == "string" ? y() || t?.label : void 0,
100
- "aria-disabled": p || l,
97
+ "data-feature": c,
98
+ disabled: l || s,
99
+ "aria-label": typeof (y() || e?.label) == "string" ? y() || e?.label : void 0,
100
+ "aria-disabled": l || s,
101
101
  "aria-busy": o,
102
102
  onKeyDown: (f) => {
103
- (f.key === " " || f.key === "Enter") && (!p || !l) && d?.(f), f.key === "Escape" && f.target.blur();
103
+ (f.key === " " || f.key === "Enter") && (!l || !s) && r?.(f), f.key === "Escape" && f.target.blur();
104
104
  },
105
- onMouseDown: p || l ? void 0 : d,
105
+ onMouseDown: l || s ? void 0 : r,
106
106
  onMouseEnter: () => {
107
107
  h() && this.setState({ isTooltipVisible: !0 });
108
108
  },
@@ -118,12 +118,12 @@ class P extends I.Component {
118
118
  tabIndex: 0,
119
119
  ref: this.buttonRef,
120
120
  children: [
121
- k() !== void 0 && /* @__PURE__ */ e(
121
+ k() !== void 0 && /* @__PURE__ */ i(
122
122
  "span",
123
123
  {
124
124
  className: "button__icon",
125
125
  "aria-hidden": "true",
126
- children: /* @__PURE__ */ e(
126
+ children: /* @__PURE__ */ i(
127
127
  N,
128
128
  {
129
129
  type: "PICTO",
@@ -132,13 +132,13 @@ class P extends I.Component {
132
132
  )
133
133
  }
134
134
  ),
135
- y() !== void 0 && /* @__PURE__ */ e("span", { className: "button__label", children: y() }),
136
- o && /* @__PURE__ */ e(
135
+ y() !== void 0 && /* @__PURE__ */ i("span", { className: "button__label", children: y() }),
136
+ o && /* @__PURE__ */ i(
137
137
  "div",
138
138
  {
139
139
  className: "button__loader",
140
140
  "aria-hidden": "true",
141
- children: /* @__PURE__ */ e(
141
+ children: /* @__PURE__ */ i(
142
142
  N,
143
143
  {
144
144
  type: "PICTO",
@@ -148,12 +148,12 @@ class P extends I.Component {
148
148
  )
149
149
  }
150
150
  ),
151
- u && /* @__PURE__ */ e(
151
+ b && /* @__PURE__ */ i(
152
152
  "span",
153
153
  {
154
154
  className: "button__caret",
155
155
  "aria-hidden": "true",
156
- children: /* @__PURE__ */ e(
156
+ children: /* @__PURE__ */ i(
157
157
  N,
158
158
  {
159
159
  type: "PICTO",
@@ -162,11 +162,11 @@ class P extends I.Component {
162
162
  )
163
163
  }
164
164
  ),
165
- v && h() && /* @__PURE__ */ e(
165
+ T && h() && /* @__PURE__ */ i(
166
166
  E,
167
167
  {
168
- pin: t?.pin || "BOTTOM",
169
- type: t?.type || "SINGLE_LINE",
168
+ pin: e?.pin || "BOTTOM",
169
+ type: e?.type || "SINGLE_LINE",
170
170
  children: L()
171
171
  }
172
172
  )
@@ -177,29 +177,29 @@ class P extends I.Component {
177
177
  ] });
178
178
  };
179
179
  LinkButton = () => {
180
- const { type: s, size: i, feature: c, label: t, url: a } = this.props;
181
- return /* @__PURE__ */ e(
180
+ const { type: t, size: n, feature: a, label: e, url: c } = this.props;
181
+ return /* @__PURE__ */ i(
182
182
  "button",
183
183
  {
184
184
  role: "link",
185
185
  className: w([
186
186
  "button",
187
- `button--${s}`,
188
- `button--${i}`
187
+ `button--${t}`,
188
+ `button--${n}`
189
189
  ]),
190
- "data-feature": c,
190
+ "data-feature": a,
191
191
  ref: this.buttonRef,
192
- "aria-label": t,
192
+ "aria-label": e,
193
193
  tabIndex: 0,
194
- children: /* @__PURE__ */ e(
194
+ children: /* @__PURE__ */ i(
195
195
  "a",
196
196
  {
197
- href: a,
197
+ href: c,
198
198
  target: "_blank",
199
199
  rel: "noreferrer",
200
200
  className: "button__label",
201
- "aria-label": t,
202
- children: t
201
+ "aria-label": e,
202
+ children: e
203
203
  }
204
204
  )
205
205
  }
@@ -207,42 +207,41 @@ class P extends I.Component {
207
207
  };
208
208
  Icon = () => {
209
209
  const {
210
- size: s,
211
- icon: i,
212
- iconClassName: c,
213
- customIcon: t,
214
- feature: a,
215
- state: u,
210
+ size: t,
211
+ icon: n,
212
+ iconClassName: a,
213
+ customIcon: e,
214
+ feature: c,
215
+ state: b,
216
216
  helper: o,
217
- warning: p,
218
217
  isLoading: l,
219
- isDisabled: d,
218
+ isDisabled: s,
220
219
  isBlocked: r,
221
- isNew: b,
222
- action: v
220
+ isNew: u,
221
+ action: p
223
222
  } = this.props, { isTooltipVisible: T } = this.state;
224
223
  return /* @__PURE__ */ m("div", { className: g["snackbar--medium"], children: [
225
224
  /* @__PURE__ */ m(
226
225
  "button",
227
226
  {
228
227
  role: "button",
229
- "data-feature": a,
228
+ "data-feature": c,
230
229
  className: w([
231
230
  "icon-button",
232
- `icon-button--${s}`,
233
- u === "selected" && "icon-button--selected",
234
- b && "icon-button--new",
231
+ `icon-button--${t}`,
232
+ b === "selected" && "icon-button--selected",
233
+ u && "icon-button--new",
235
234
  l && "button--loading"
236
235
  ]),
237
- disabled: d || r,
238
- "aria-label": typeof o?.label == "string" ? o.label : i,
239
- "aria-disabled": d || r,
240
- "aria-pressed": u === "selected",
236
+ disabled: s || r,
237
+ "aria-label": typeof o?.label == "string" ? o.label : n,
238
+ "aria-disabled": s || r,
239
+ "aria-pressed": b === "selected",
241
240
  "aria-busy": l,
242
- onKeyDown: (n) => {
243
- (n.key === " " || n.key === "Enter") && !(d || r) && v?.(n), n.key === "Escape" && n.target.blur();
241
+ onKeyDown: (d) => {
242
+ (d.key === " " || d.key === "Enter") && !(s || r) && p?.(d), d.key === "Escape" && d.target.blur();
244
243
  },
245
- onMouseDown: d || r ? void 0 : v,
244
+ onMouseDown: s || r ? void 0 : p,
246
245
  onMouseEnter: () => {
247
246
  o !== void 0 && this.setState({ isTooltipVisible: !0 });
248
247
  },
@@ -258,18 +257,18 @@ class P extends I.Component {
258
257
  tabIndex: 0,
259
258
  ref: this.buttonRef,
260
259
  children: [
261
- t === void 0 ? /* @__PURE__ */ e(
260
+ e === void 0 ? /* @__PURE__ */ i(
262
261
  N,
263
262
  {
264
263
  type: "PICTO",
265
- iconName: l ? "spinner" : i,
266
- customClassName: c !== void 0 ? c : void 0
264
+ iconName: l ? "spinner" : n,
265
+ customClassName: a !== void 0 ? a : void 0
267
266
  }
268
- ) : /* @__PURE__ */ e(
267
+ ) : /* @__PURE__ */ i(
269
268
  "div",
270
269
  {
271
270
  style: {
272
- opacity: d || r ? 0.5 : 1,
271
+ opacity: s || r ? 0.5 : 1,
273
272
  pointerEvents: "none",
274
273
  width: "100%",
275
274
  height: "100%",
@@ -277,10 +276,10 @@ class P extends I.Component {
277
276
  alignItems: "center",
278
277
  justifyContent: "center"
279
278
  },
280
- children: t
279
+ children: e
281
280
  }
282
281
  ),
283
- T && o !== void 0 && u !== "selected" && /* @__PURE__ */ e(
282
+ T && o !== void 0 && b !== "selected" && /* @__PURE__ */ i(
284
283
  E,
285
284
  {
286
285
  pin: o?.pin || "BOTTOM",
@@ -291,13 +290,13 @@ class P extends I.Component {
291
290
  ]
292
291
  }
293
292
  ),
294
- p !== void 0 && this.Status()
293
+ !u && this.Status()
295
294
  ] });
296
295
  };
297
296
  // Render
298
297
  render() {
299
- const { type: s, isLink: i } = this.props;
300
- return s !== "icon" ? i ? this.LinkButton() : this.Button() : this.Icon();
298
+ const { type: t, isLink: n } = this.props;
299
+ return t !== "icon" ? n ? this.LinkButton() : this.Button() : this.Icon();
301
300
  }
302
301
  }
303
302
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../src/components/actions/button/Button.tsx"],"sourcesContent":["import React from 'react'\nimport layouts from '@styles/layouts.module.scss'\nimport Tooltip from '@components/tags/tooltip/Tooltip'\nimport IconChip from '@components/tags/icon-chip/IconChip'\nimport Chip from '@components/tags/chip/Chip'\nimport Icon from '@components/assets/icon/Icon'\nimport { doClassnames } from '@a_ng_d/figmug-utils'\nimport type { IconList } from '@tps/icon.types'\nimport './button.scss'\n\nexport interface ButtonProps {\n /**\n * Visual style of the button\n */\n type:\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'destructive'\n | 'alternative'\n | 'icon'\n /**\n * Size of the button\n * @default 'default'\n */\n size?: 'small' | 'default' | 'large'\n /**\n * Icon name to display in the button\n */\n icon?: IconList\n /**\n * Custom CSS class for the icon\n */\n iconClassName?: string\n /**\n * Custom icon element to replace the default icon\n */\n customIcon?: React.ReactElement\n /**\n * Text label of the button\n */\n label?: string\n /**\n * Visual state of the button\n * @default 'default'\n */\n state?: 'default' | 'selected'\n /**\n * URL for link buttons\n */\n url?: string\n /**\n * Helper tooltip configuration\n */\n helper?: {\n /** Tooltip content */\n label: string | React.ReactNode\n /** Tooltip position */\n pin?: 'TOP' | 'BOTTOM'\n /** Tooltip display type */\n type?: 'MULTI_LINE' | 'SINGLE_LINE'\n }\n /**\n * Preview tooltip configuration with image\n */\n preview?: {\n /** Preview image URL */\n image: string\n /** Preview text */\n text: string | React.ReactNode\n /** Preview position */\n pin?: 'TOP' | 'BOTTOM'\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 * Feature identifier for tracking\n */\n feature?: string\n /**\n * Whether the button has multiple actions\n * @default false\n */\n hasMultipleActions?: boolean\n /**\n * Whether the button should render as a link\n * @default false\n */\n isLink?: boolean\n /**\n * Whether the button should auto-focus on mount\n * @default false\n */\n isAutofocus?: boolean\n /**\n * Reflow configuration for responsive behavior\n * @default { isEnabled: false, icon: 'adjust' }\n */\n shouldReflow?: {\n /** Whether reflow is enabled */\n isEnabled: boolean\n /** Icon to show when reflowed */\n icon: IconList\n }\n /**\n * Whether the button is in loading state\n * @default false\n */\n isLoading?: boolean\n /**\n * Whether the button is blocked (shows unblock action)\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether the button is disabled\n * @default false\n */\n isDisabled?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n /**\n * Click handler for the button\n */\n action?: React.MouseEventHandler & React.KeyboardEventHandler\n /**\n * Handler called when unblock is clicked\n */\n onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler\n}\n\ninterface ButtonStates {\n isTooltipVisible: boolean\n documentWidth: number\n}\n\nexport default class Button extends React.Component<ButtonProps, ButtonStates> {\n buttonRef: React.RefObject<HTMLButtonElement> = React.createRef()\n\n static defaultProps: Partial<ButtonProps> = {\n size: 'default',\n state: 'default',\n hasMultipleActions: false,\n isLink: false,\n shouldReflow: { isEnabled: false, icon: 'adjust' },\n isAutofocus: false,\n isLoading: false,\n isBlocked: false,\n isDisabled: false,\n isNew: false,\n }\n\n constructor(props: ButtonProps) {\n super(props)\n this.state = {\n isTooltipVisible: false,\n documentWidth: document.documentElement.clientWidth,\n }\n }\n\n // Lifecycle\n componentDidMount = () => {\n const { isAutofocus } = this.props\n\n if (isAutofocus)\n setTimeout(() => {\n if (this.buttonRef.current) this.buttonRef.current.focus()\n }, 1)\n\n window.addEventListener('resize', this.handleResize)\n }\n\n componentWillUnmount = () => {\n window.removeEventListener('resize', this.handleResize)\n }\n\n // Handlers\n handleResize = () => {\n this.setState({ documentWidth: document.documentElement.clientWidth })\n }\n\n // Templates\n Status = () => {\n const { type, warning, preview, isBlocked, isNew, onUnblock } = this.props\n\n if (warning || isBlocked || isNew)\n return (\n <div className=\"button__status\">\n {warning !== undefined && (\n <IconChip\n iconType=\"PICTO\"\n iconName=\"warning\"\n text={warning.label}\n pin={warning.pin}\n type={warning.type}\n />\n )}\n {(isBlocked || isNew) && type !== 'icon' && (\n <Chip\n preview={preview}\n isSolo\n action={isBlocked ? onUnblock : undefined}\n >\n {isNew ? 'New' : 'Pro'}\n </Chip>\n )}\n </div>\n )\n }\n\n Button = () => {\n const {\n type,\n icon,\n size,\n helper,\n feature,\n hasMultipleActions,\n isLoading,\n isDisabled,\n isBlocked,\n action,\n label,\n shouldReflow,\n } = this.props\n const { isTooltipVisible, documentWidth } = this.state\n\n const isReflowActive = shouldReflow?.isEnabled && documentWidth <= 460\n\n const getButtonLabel = () => (isReflowActive ? undefined : label)\n const getTooltipLabel = () => (isReflowActive ? label : helper?.label)\n const hasTooltipContent = () =>\n isReflowActive ? label !== undefined : helper !== undefined\n const getIconName = () =>\n isReflowActive && shouldReflow?.icon !== undefined\n ? shouldReflow.icon\n : icon\n\n return (\n <div className={layouts['snackbar--medium']}>\n <button\n role=\"button\"\n className={doClassnames([\n 'button',\n `button--${type}`,\n `button--${size}`,\n isLoading && 'button--loading',\n isBlocked && 'button--blocked',\n ])}\n data-feature={feature}\n disabled={isDisabled || isBlocked}\n aria-label={\n typeof (getButtonLabel() || helper?.label) === 'string'\n ? ((getButtonLabel() || helper?.label) as string)\n : undefined\n }\n aria-disabled={isDisabled || isBlocked}\n aria-busy={isLoading}\n onKeyDown={(e) => {\n if (\n (e.key === ' ' || e.key === 'Enter') &&\n (!isDisabled || !isBlocked)\n )\n action?.(e)\n if (e.key === 'Escape') (e.target as HTMLElement).blur()\n }}\n onMouseDown={!(isDisabled || isBlocked) ? action : undefined}\n onMouseEnter={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onMouseLeave={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n onFocus={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onBlur={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n tabIndex={0}\n ref={this.buttonRef}\n >\n {getIconName() !== undefined && (\n <span\n className=\"button__icon\"\n aria-hidden=\"true\"\n >\n <Icon\n type=\"PICTO\"\n iconName={getIconName()}\n />\n </span>\n )}\n {getButtonLabel() !== undefined && (\n <span className=\"button__label\">{getButtonLabel()}</span>\n )}\n {isLoading && (\n <div\n className=\"button__loader\"\n aria-hidden=\"true\"\n >\n <Icon\n type=\"PICTO\"\n iconName=\"spinner\"\n customClassName=\"button__spinner\"\n />\n </div>\n )}\n {hasMultipleActions && (\n <span\n className=\"button__caret\"\n aria-hidden=\"true\"\n >\n <Icon\n type=\"PICTO\"\n iconName=\"chevron-down\"\n />\n </span>\n )}\n {isTooltipVisible && hasTooltipContent() && (\n <Tooltip\n pin={helper?.pin || 'BOTTOM'}\n type={helper?.type || 'SINGLE_LINE'}\n >\n {getTooltipLabel()}\n </Tooltip>\n )}\n </button>\n {this.Status()}\n </div>\n )\n }\n\n LinkButton = () => {\n const { type, size, feature, label, url } = this.props\n\n return (\n <button\n role=\"link\"\n className={doClassnames([\n 'button',\n `button--${type}`,\n `button--${size}`,\n ])}\n data-feature={feature}\n ref={this.buttonRef}\n aria-label={label}\n tabIndex={0}\n >\n <a\n href={url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"button__label\"\n aria-label={label}\n >\n {label}\n </a>\n </button>\n )\n }\n\n Icon = () => {\n const {\n size,\n icon,\n iconClassName,\n customIcon,\n feature,\n state,\n helper,\n warning,\n isLoading,\n isDisabled,\n isBlocked,\n isNew,\n action,\n } = this.props\n const { isTooltipVisible } = this.state\n\n return (\n <div className={layouts['snackbar--medium']}>\n <button\n role=\"button\"\n data-feature={feature}\n className={doClassnames([\n 'icon-button',\n `icon-button--${size}`,\n state === 'selected' && 'icon-button--selected',\n isNew && 'icon-button--new',\n isLoading && 'button--loading',\n ])}\n disabled={isDisabled || isBlocked}\n aria-label={typeof helper?.label === 'string' ? helper.label : icon}\n aria-disabled={isDisabled || isBlocked}\n aria-pressed={state === 'selected'}\n aria-busy={isLoading}\n onKeyDown={(e) => {\n if (\n (e.key === ' ' || e.key === 'Enter') &&\n !(isDisabled || isBlocked)\n )\n action?.(e)\n if (e.key === 'Escape') (e.target as HTMLElement).blur()\n }}\n onMouseDown={!(isDisabled || isBlocked) ? action : undefined}\n onMouseEnter={() => {\n if (helper !== undefined) this.setState({ isTooltipVisible: true })\n }}\n onMouseLeave={() => {\n if (helper !== undefined) this.setState({ isTooltipVisible: false })\n }}\n onFocus={() => {\n if (helper !== undefined) this.setState({ isTooltipVisible: true })\n }}\n onBlur={() => {\n if (helper !== undefined) this.setState({ isTooltipVisible: false })\n }}\n tabIndex={0}\n ref={this.buttonRef}\n >\n {customIcon === undefined ? (\n <Icon\n type=\"PICTO\"\n iconName={isLoading ? 'spinner' : icon}\n customClassName={\n iconClassName !== undefined ? iconClassName : undefined\n }\n />\n ) : (\n <div\n style={{\n opacity: isDisabled || isBlocked ? 0.5 : 1,\n pointerEvents: 'none',\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {customIcon}\n </div>\n )}\n {isTooltipVisible && helper !== undefined && state !== 'selected' && (\n <Tooltip\n pin={helper?.pin || 'BOTTOM'}\n type={helper?.type || 'SINGLE_LINE'}\n >\n {helper?.label}\n </Tooltip>\n )}\n </button>\n {warning !== undefined && this.Status()}\n </div>\n )\n }\n\n // Render\n render() {\n const { type, isLink } = this.props\n\n if (type !== 'icon') return isLink ? this.LinkButton() : this.Button()\n return this.Icon()\n }\n}\n"],"names":["Button","React","props","isAutofocus","type","warning","preview","isBlocked","isNew","onUnblock","jsxs","jsx","IconChip","Chip","icon","size","helper","feature","hasMultipleActions","isLoading","isDisabled","action","label","shouldReflow","isTooltipVisible","documentWidth","isReflowActive","getButtonLabel","getTooltipLabel","hasTooltipContent","getIconName","layouts","doClassnames","e","Icon","Tooltip","url","iconClassName","customIcon","state","isLink"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../src/components/actions/button/Button.tsx"],"sourcesContent":["import React from 'react'\nimport { doClassnames } from '@unoff/utils'\nimport layouts from '@styles/layouts.module.scss'\nimport Tooltip from '@components/tags/tooltip/Tooltip'\nimport IconChip from '@components/tags/icon-chip/IconChip'\nimport Chip from '@components/tags/chip/Chip'\nimport Icon from '@components/assets/icon/Icon'\nimport type { IconList } from '@tps/icon.types'\nimport './button.scss'\n\nexport interface ButtonProps {\n /**\n * Visual style of the button\n */\n type:\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'destructive'\n | 'alternative'\n | 'icon'\n /**\n * Size of the button\n * @default 'default'\n */\n size?: 'small' | 'default' | 'large'\n /**\n * Icon name to display in the button\n */\n icon?: IconList\n /**\n * Custom CSS class for the icon\n */\n iconClassName?: string\n /**\n * Custom icon element to replace the default icon\n */\n customIcon?: React.ReactElement\n /**\n * Text label of the button\n */\n label?: string\n /**\n * Visual state of the button\n * @default 'default'\n */\n state?: 'default' | 'selected'\n /**\n * URL for link buttons\n */\n url?: string\n /**\n * Helper tooltip configuration\n */\n helper?: {\n /** Tooltip content */\n label: string | React.ReactNode\n /** Tooltip position */\n pin?: 'TOP' | 'BOTTOM'\n /** Tooltip display type */\n type?: 'MULTI_LINE' | 'SINGLE_LINE'\n }\n /**\n * Preview tooltip configuration with image\n */\n preview?: {\n /** Preview image URL */\n image: string\n /** Preview text */\n text: string | React.ReactNode\n /** Preview position */\n pin?: 'TOP' | 'BOTTOM'\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 * Feature identifier for tracking\n */\n feature?: string\n /**\n * Whether the button has multiple actions\n * @default false\n */\n hasMultipleActions?: boolean\n /**\n * Whether the button should render as a link\n * @default false\n */\n isLink?: boolean\n /**\n * Whether the button should auto-focus on mount\n * @default false\n */\n isAutofocus?: boolean\n /**\n * Reflow configuration for responsive behavior\n * @default { isEnabled: false, icon: 'adjust' }\n */\n shouldReflow?: {\n /** Whether reflow is enabled */\n isEnabled: boolean\n /** Icon to show when reflowed */\n icon: IconList\n }\n /**\n * Whether the button is in loading state\n * @default false\n */\n isLoading?: boolean\n /**\n * Whether the button is blocked (shows unblock action)\n * @default false\n */\n isBlocked?: boolean\n /**\n * Whether the button is disabled\n * @default false\n */\n isDisabled?: boolean\n /**\n * Whether to show a \"New\" badge\n * @default false\n */\n isNew?: boolean\n /**\n * Click handler for the button\n */\n action?: React.MouseEventHandler & React.KeyboardEventHandler\n /**\n * Handler called when unblock is clicked\n */\n onUnblock?: React.MouseEventHandler & React.KeyboardEventHandler\n}\n\ninterface ButtonState {\n isTooltipVisible: boolean\n documentWidth: number\n}\n\nexport default class Button extends React.Component<ButtonProps, ButtonState> {\n buttonRef: React.RefObject<HTMLButtonElement> = React.createRef()\n\n static defaultProps: Partial<ButtonProps> = {\n size: 'default',\n state: 'default',\n hasMultipleActions: false,\n isLink: false,\n shouldReflow: { isEnabled: false, icon: 'adjust' },\n isAutofocus: false,\n isLoading: false,\n isBlocked: false,\n isDisabled: false,\n isNew: false,\n }\n\n constructor(props: ButtonProps) {\n super(props)\n this.state = {\n isTooltipVisible: false,\n documentWidth: document.documentElement.clientWidth,\n }\n }\n\n // Lifecycle\n componentDidMount = () => {\n const { isAutofocus } = this.props\n\n if (isAutofocus)\n setTimeout(() => {\n if (this.buttonRef.current) this.buttonRef.current.focus()\n }, 1)\n\n window.addEventListener('resize', this.handleResize)\n }\n\n componentWillUnmount = () => {\n window.removeEventListener('resize', this.handleResize)\n }\n\n // Handlers\n handleResize = () => {\n this.setState({ documentWidth: document.documentElement.clientWidth })\n }\n\n // Templates\n Status = () => {\n const { warning, preview, isBlocked, isNew, onUnblock } = this.props\n\n if (warning || isBlocked || isNew)\n return (\n <div className=\"button__status\">\n {warning !== undefined && (\n <IconChip\n iconType=\"PICTO\"\n iconName=\"warning\"\n text={warning.label}\n pin={warning.pin}\n type={warning.type}\n />\n )}\n {(isBlocked || isNew) && (\n <Chip\n preview={preview}\n isSolo\n action={isBlocked ? onUnblock : undefined}\n >\n {isNew ? 'New' : 'Pro'}\n </Chip>\n )}\n </div>\n )\n }\n\n Button = () => {\n const {\n type,\n icon,\n size,\n helper,\n feature,\n hasMultipleActions,\n isLoading,\n isDisabled,\n isBlocked,\n action,\n label,\n shouldReflow,\n } = this.props\n const { isTooltipVisible, documentWidth } = this.state\n\n const isReflowActive = shouldReflow?.isEnabled && documentWidth <= 460\n\n const getButtonLabel = () => (isReflowActive ? undefined : label)\n const getTooltipLabel = () => (isReflowActive ? label : helper?.label)\n const hasTooltipContent = () =>\n isReflowActive ? label !== undefined : helper !== undefined\n const getIconName = () =>\n isReflowActive && shouldReflow?.icon !== undefined\n ? shouldReflow.icon\n : icon\n\n return (\n <div className={layouts['snackbar--medium']}>\n <button\n role=\"button\"\n className={doClassnames([\n 'button',\n `button--${type}`,\n `button--${size}`,\n isLoading && 'button--loading',\n isBlocked && 'button--blocked',\n ])}\n data-feature={feature}\n disabled={isDisabled || isBlocked}\n aria-label={\n typeof (getButtonLabel() || helper?.label) === 'string'\n ? ((getButtonLabel() || helper?.label) as string)\n : undefined\n }\n aria-disabled={isDisabled || isBlocked}\n aria-busy={isLoading}\n onKeyDown={(e) => {\n if (\n (e.key === ' ' || e.key === 'Enter') &&\n (!isDisabled || !isBlocked)\n )\n action?.(e)\n if (e.key === 'Escape') (e.target as HTMLElement).blur()\n }}\n onMouseDown={!(isDisabled || isBlocked) ? action : undefined}\n onMouseEnter={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onMouseLeave={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n onFocus={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: true })\n }}\n onBlur={() => {\n if (hasTooltipContent()) this.setState({ isTooltipVisible: false })\n }}\n tabIndex={0}\n ref={this.buttonRef}\n >\n {getIconName() !== undefined && (\n <span\n className=\"button__icon\"\n aria-hidden=\"true\"\n >\n <Icon\n type=\"PICTO\"\n iconName={getIconName()}\n />\n </span>\n )}\n {getButtonLabel() !== undefined && (\n <span className=\"button__label\">{getButtonLabel()}</span>\n )}\n {isLoading && (\n <div\n className=\"button__loader\"\n aria-hidden=\"true\"\n >\n <Icon\n type=\"PICTO\"\n iconName=\"spinner\"\n customClassName=\"button__spinner\"\n />\n </div>\n )}\n {hasMultipleActions && (\n <span\n className=\"button__caret\"\n aria-hidden=\"true\"\n >\n <Icon\n type=\"PICTO\"\n iconName=\"chevron-down\"\n />\n </span>\n )}\n {isTooltipVisible && hasTooltipContent() && (\n <Tooltip\n pin={helper?.pin || 'BOTTOM'}\n type={helper?.type || 'SINGLE_LINE'}\n >\n {getTooltipLabel()}\n </Tooltip>\n )}\n </button>\n {this.Status()}\n </div>\n )\n }\n\n LinkButton = () => {\n const { type, size, feature, label, url } = this.props\n\n return (\n <button\n role=\"link\"\n className={doClassnames([\n 'button',\n `button--${type}`,\n `button--${size}`,\n ])}\n data-feature={feature}\n ref={this.buttonRef}\n aria-label={label}\n tabIndex={0}\n >\n <a\n href={url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"button__label\"\n aria-label={label}\n >\n {label}\n </a>\n </button>\n )\n }\n\n Icon = () => {\n const {\n size,\n icon,\n iconClassName,\n customIcon,\n feature,\n state,\n helper,\n isLoading,\n isDisabled,\n isBlocked,\n isNew,\n action,\n } = this.props\n const { isTooltipVisible } = this.state\n\n return (\n <div className={layouts['snackbar--medium']}>\n <button\n role=\"button\"\n data-feature={feature}\n className={doClassnames([\n 'icon-button',\n `icon-button--${size}`,\n state === 'selected' && 'icon-button--selected',\n isNew && 'icon-button--new',\n isLoading && 'button--loading',\n ])}\n disabled={isDisabled || isBlocked}\n aria-label={typeof helper?.label === 'string' ? helper.label : icon}\n aria-disabled={isDisabled || isBlocked}\n aria-pressed={state === 'selected'}\n aria-busy={isLoading}\n onKeyDown={(e) => {\n if (\n (e.key === ' ' || e.key === 'Enter') &&\n !(isDisabled || isBlocked)\n )\n action?.(e)\n if (e.key === 'Escape') (e.target as HTMLElement).blur()\n }}\n onMouseDown={!(isDisabled || isBlocked) ? action : undefined}\n onMouseEnter={() => {\n if (helper !== undefined) this.setState({ isTooltipVisible: true })\n }}\n onMouseLeave={() => {\n if (helper !== undefined) this.setState({ isTooltipVisible: false })\n }}\n onFocus={() => {\n if (helper !== undefined) this.setState({ isTooltipVisible: true })\n }}\n onBlur={() => {\n if (helper !== undefined) this.setState({ isTooltipVisible: false })\n }}\n tabIndex={0}\n ref={this.buttonRef}\n >\n {customIcon === undefined ? (\n <Icon\n type=\"PICTO\"\n iconName={isLoading ? 'spinner' : icon}\n customClassName={\n iconClassName !== undefined ? iconClassName : undefined\n }\n />\n ) : (\n <div\n style={{\n opacity: isDisabled || isBlocked ? 0.5 : 1,\n pointerEvents: 'none',\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {customIcon}\n </div>\n )}\n {isTooltipVisible && helper !== undefined && state !== 'selected' && (\n <Tooltip\n pin={helper?.pin || 'BOTTOM'}\n type={helper?.type || 'SINGLE_LINE'}\n >\n {helper?.label}\n </Tooltip>\n )}\n </button>\n {!isNew && this.Status()}\n </div>\n )\n }\n\n // Render\n render() {\n const { type, isLink } = this.props\n\n if (type !== 'icon') return isLink ? this.LinkButton() : this.Button()\n return this.Icon()\n }\n}\n"],"names":["Button","React","props","isAutofocus","warning","preview","isBlocked","isNew","onUnblock","jsxs","jsx","IconChip","Chip","type","icon","size","helper","feature","hasMultipleActions","isLoading","isDisabled","action","label","shouldReflow","isTooltipVisible","documentWidth","isReflowActive","getButtonLabel","getTooltipLabel","hasTooltipContent","getIconName","layouts","doClassnames","e","Icon","Tooltip","url","iconClassName","customIcon","state","isLink"],"mappings":";;;;;;;;AAoJA,MAAqBA,UAAeC,EAAM,UAAoC;AAAA,EAC5E,YAAgDA,EAAM,UAAA;AAAA,EAEtD,OAAO,eAAqC;AAAA,IAC1C,MAAM;AAAA,IACN,OAAO;AAAA,IACP,oBAAoB;AAAA,IACpB,QAAQ;AAAA,IACR,cAAc,EAAE,WAAW,IAAO,MAAM,SAAA;AAAA,IACxC,aAAa;AAAA,IACb,WAAW;AAAA,IACX,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA;AAAA,EAGT,YAAYC,GAAoB;AAC9B,UAAMA,CAAK,GACX,KAAK,QAAQ;AAAA,MACX,kBAAkB;AAAA,MAClB,eAAe,SAAS,gBAAgB;AAAA,IAAA;AAAA,EAE5C;AAAA;AAAA,EAGA,oBAAoB,MAAM;AACxB,UAAM,EAAE,aAAAC,MAAgB,KAAK;AAE7B,IAAIA,KACF,WAAW,MAAM;AACf,MAAI,KAAK,UAAU,WAAS,KAAK,UAAU,QAAQ,MAAA;AAAA,IACrD,GAAG,CAAC,GAEN,OAAO,iBAAiB,UAAU,KAAK,YAAY;AAAA,EACrD;AAAA,EAEA,uBAAuB,MAAM;AAC3B,WAAO,oBAAoB,UAAU,KAAK,YAAY;AAAA,EACxD;AAAA;AAAA,EAGA,eAAe,MAAM;AACnB,SAAK,SAAS,EAAE,eAAe,SAAS,gBAAgB,aAAa;AAAA,EACvE;AAAA;AAAA,EAGA,SAAS,MAAM;AACb,UAAM,EAAE,SAAAC,GAAS,SAAAC,GAAS,WAAAC,GAAW,OAAAC,GAAO,WAAAC,EAAA,IAAc,KAAK;AAE/D,QAAIJ,KAAWE,KAAaC;AAC1B,aACE,gBAAAE,EAAC,OAAA,EAAI,WAAU,kBACZ,UAAA;AAAA,QAAAL,MAAY,UACX,gBAAAM;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,MAAMP,EAAQ;AAAA,YACd,KAAKA,EAAQ;AAAA,YACb,MAAMA,EAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,SAGhBE,KAAaC,MACb,gBAAAG;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,SAAAP;AAAA,YACA,QAAM;AAAA,YACN,QAAQC,IAAYE,IAAY;AAAA,YAE/B,cAAQ,QAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MACnB,GAEJ;AAAA,EAEN;AAAA,EAEA,SAAS,MAAM;AACb,UAAM;AAAA,MACJ,MAAAK;AAAA,MACA,MAAAC;AAAA,MACA,MAAAC;AAAA,MACA,QAAAC;AAAA,MACA,SAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,WAAAC;AAAA,MACA,YAAAC;AAAA,MACA,WAAAd;AAAA,MACA,QAAAe;AAAA,MACA,OAAAC;AAAA,MACA,cAAAC;AAAA,IAAA,IACE,KAAK,OACH,EAAE,kBAAAC,GAAkB,eAAAC,EAAA,IAAkB,KAAK,OAE3CC,IAAiBH,GAAc,aAAaE,KAAiB,KAE7DE,IAAiB,MAAOD,IAAiB,SAAYJ,GACrDM,IAAkB,MAAOF,IAAiBJ,IAAQN,GAAQ,OAC1Da,IAAoB,MACxBH,IAAiBJ,MAAU,SAAYN,MAAW,QAC9Cc,IAAc,MAClBJ,KAAkBH,GAAc,SAAS,SACrCA,EAAa,OACbT;AAEN,WACE,gBAAAL,EAAC,OAAA,EAAI,WAAWsB,EAAQ,kBAAkB,GACxC,UAAA;AAAA,MAAA,gBAAAtB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAWuB,EAAa;AAAA,YACtB;AAAA,YACA,WAAWnB,CAAI;AAAA,YACf,WAAWE,CAAI;AAAA,YACfI,KAAa;AAAA,YACbb,KAAa;AAAA,UAAA,CACd;AAAA,UACD,gBAAcW;AAAA,UACd,UAAUG,KAAcd;AAAA,UACxB,cACE,QAAQqB,OAAoBX,GAAQ,UAAW,WACzCW,EAAA,KAAoBX,GAAQ,QAC9B;AAAA,UAEN,iBAAeI,KAAcd;AAAA,UAC7B,aAAWa;AAAA,UACX,WAAW,CAACc,MAAM;AAChB,aACGA,EAAE,QAAQ,OAAOA,EAAE,QAAQ,aAC3B,CAACb,KAAc,CAACd,MAEjBe,IAASY,CAAC,GACRA,EAAE,QAAQ,YAAWA,EAAE,OAAuB,KAAA;AAAA,UACpD;AAAA,UACA,aAAeb,KAAcd,IAAsB,SAATe;AAAA,UAC1C,cAAc,MAAM;AAClB,YAAIQ,OAAqB,KAAK,SAAS,EAAE,kBAAkB,IAAM;AAAA,UACnE;AAAA,UACA,cAAc,MAAM;AAClB,YAAIA,OAAqB,KAAK,SAAS,EAAE,kBAAkB,IAAO;AAAA,UACpE;AAAA,UACA,SAAS,MAAM;AACb,YAAIA,OAAqB,KAAK,SAAS,EAAE,kBAAkB,IAAM;AAAA,UACnE;AAAA,UACA,QAAQ,MAAM;AACZ,YAAIA,OAAqB,KAAK,SAAS,EAAE,kBAAkB,IAAO;AAAA,UACpE;AAAA,UACA,UAAU;AAAA,UACV,KAAK,KAAK;AAAA,UAET,UAAA;AAAA,YAAAC,EAAA,MAAkB,UACjB,gBAAApB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,eAAY;AAAA,gBAEZ,UAAA,gBAAAA;AAAA,kBAACwB;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,UAAUJ,EAAA;AAAA,kBAAY;AAAA,gBAAA;AAAA,cACxB;AAAA,YAAA;AAAA,YAGHH,EAAA,MAAqB,UACpB,gBAAAjB,EAAC,UAAK,WAAU,iBAAiB,eAAiB;AAAA,YAEnDS,KACC,gBAAAT;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,eAAY;AAAA,gBAEZ,UAAA,gBAAAA;AAAA,kBAACwB;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,UAAS;AAAA,oBACT,iBAAgB;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAClB;AAAA,YAAA;AAAA,YAGHhB,KACC,gBAAAR;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,eAAY;AAAA,gBAEZ,UAAA,gBAAAA;AAAA,kBAACwB;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,UAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACX;AAAA,YAAA;AAAA,YAGHV,KAAoBK,OACnB,gBAAAnB;AAAA,cAACyB;AAAA,cAAA;AAAA,gBACC,KAAKnB,GAAQ,OAAO;AAAA,gBACpB,MAAMA,GAAQ,QAAQ;AAAA,gBAErB,UAAAY,EAAA;AAAA,cAAgB;AAAA,YAAA;AAAA,UACnB;AAAA,QAAA;AAAA,MAAA;AAAA,MAGH,KAAK,OAAA;AAAA,IAAO,GACf;AAAA,EAEJ;AAAA,EAEA,aAAa,MAAM;AACjB,UAAM,EAAE,MAAAf,GAAM,MAAAE,GAAM,SAAAE,GAAS,OAAAK,GAAO,KAAAc,EAAA,IAAQ,KAAK;AAEjD,WACE,gBAAA1B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAWsB,EAAa;AAAA,UACtB;AAAA,UACA,WAAWnB,CAAI;AAAA,UACf,WAAWE,CAAI;AAAA,QAAA,CAChB;AAAA,QACD,gBAAcE;AAAA,QACd,KAAK,KAAK;AAAA,QACV,cAAYK;AAAA,QACZ,UAAU;AAAA,QAEV,UAAA,gBAAAZ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM0B;AAAA,YACN,QAAO;AAAA,YACP,KAAI;AAAA,YACJ,WAAU;AAAA,YACV,cAAYd;AAAA,YAEX,UAAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAGN;AAAA,EAEA,OAAO,MAAM;AACX,UAAM;AAAA,MACJ,MAAAP;AAAA,MACA,MAAAD;AAAA,MACA,eAAAuB;AAAA,MACA,YAAAC;AAAA,MACA,SAAArB;AAAA,MACA,OAAAsB;AAAA,MACA,QAAAvB;AAAA,MACA,WAAAG;AAAA,MACA,YAAAC;AAAA,MACA,WAAAd;AAAA,MACA,OAAAC;AAAA,MACA,QAAAc;AAAA,IAAA,IACE,KAAK,OACH,EAAE,kBAAAG,MAAqB,KAAK;AAElC,WACE,gBAAAf,EAAC,OAAA,EAAI,WAAWsB,EAAQ,kBAAkB,GACxC,UAAA;AAAA,MAAA,gBAAAtB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,gBAAcQ;AAAA,UACd,WAAWe,EAAa;AAAA,YACtB;AAAA,YACA,gBAAgBjB,CAAI;AAAA,YACpBwB,MAAU,cAAc;AAAA,YACxBhC,KAAS;AAAA,YACTY,KAAa;AAAA,UAAA,CACd;AAAA,UACD,UAAUC,KAAcd;AAAA,UACxB,cAAY,OAAOU,GAAQ,SAAU,WAAWA,EAAO,QAAQF;AAAA,UAC/D,iBAAeM,KAAcd;AAAA,UAC7B,gBAAciC,MAAU;AAAA,UACxB,aAAWpB;AAAA,UACX,WAAW,CAACc,MAAM;AAChB,aACGA,EAAE,QAAQ,OAAOA,EAAE,QAAQ,YAC5B,EAAEb,KAAcd,MAEhBe,IAASY,CAAC,GACRA,EAAE,QAAQ,YAAWA,EAAE,OAAuB,KAAA;AAAA,UACpD;AAAA,UACA,aAAeb,KAAcd,IAAsB,SAATe;AAAA,UAC1C,cAAc,MAAM;AAClB,YAAIL,MAAW,UAAW,KAAK,SAAS,EAAE,kBAAkB,IAAM;AAAA,UACpE;AAAA,UACA,cAAc,MAAM;AAClB,YAAIA,MAAW,UAAW,KAAK,SAAS,EAAE,kBAAkB,IAAO;AAAA,UACrE;AAAA,UACA,SAAS,MAAM;AACb,YAAIA,MAAW,UAAW,KAAK,SAAS,EAAE,kBAAkB,IAAM;AAAA,UACpE;AAAA,UACA,QAAQ,MAAM;AACZ,YAAIA,MAAW,UAAW,KAAK,SAAS,EAAE,kBAAkB,IAAO;AAAA,UACrE;AAAA,UACA,UAAU;AAAA,UACV,KAAK,KAAK;AAAA,UAET,UAAA;AAAA,YAAAsB,MAAe,SACd,gBAAA5B;AAAA,cAACwB;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,UAAUf,IAAY,YAAYL;AAAA,gBAClC,iBACEuB,MAAkB,SAAYA,IAAgB;AAAA,cAAA;AAAA,YAAA,IAIlD,gBAAA3B;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,SAASU,KAAcd,IAAY,MAAM;AAAA,kBACzC,eAAe;AAAA,kBACf,OAAO;AAAA,kBACP,QAAQ;AAAA,kBACR,SAAS;AAAA,kBACT,YAAY;AAAA,kBACZ,gBAAgB;AAAA,gBAAA;AAAA,gBAGjB,UAAAgC;AAAA,cAAA;AAAA,YAAA;AAAA,YAGJd,KAAoBR,MAAW,UAAauB,MAAU,cACrD,gBAAA7B;AAAA,cAACyB;AAAA,cAAA;AAAA,gBACC,KAAKnB,GAAQ,OAAO;AAAA,gBACpB,MAAMA,GAAQ,QAAQ;AAAA,gBAErB,UAAAA,GAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACX;AAAA,QAAA;AAAA,MAAA;AAAA,MAGH,CAACT,KAAS,KAAK,OAAA;AAAA,IAAO,GACzB;AAAA,EAEJ;AAAA;AAAA,EAGA,SAAS;AACP,UAAM,EAAE,MAAAM,GAAM,QAAA2B,EAAA,IAAW,KAAK;AAE9B,WAAI3B,MAAS,SAAe2B,IAAS,KAAK,WAAA,IAAe,KAAK,OAAA,IACvD,KAAK,KAAA;AAAA,EACd;AACF;"}
@@ -1,4 +1,3 @@
1
-
2
1
  interface CardProps {
3
2
  /**
4
3
  * Image source URL for the card thumbnail
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/card/Card.tsx"],"names":[],"mappings":";AAIA,OAAO,aAAa,CAAA;AAGpB,UAAU,SAAS;IACjB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,MAAM,EAAE,CACN,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAC5D,IAAI,CAAA;CACV;AAED,QAAA,MAAM,IAAI,UAAW,SAAS,4CAmF7B,CAAA;AAED,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/card/Card.tsx"],"names":[],"mappings":"AAKA,OAAO,aAAa,CAAA;AAEpB,UAAU,SAAS;IACjB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,MAAM,EAAE,CACN,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAC5D,IAAI,CAAA;CACV;AAED,QAAA,MAAM,IAAI,GAAI,OAAO,SAAS,4CAmF7B,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import '../../../assets/Card.css';
2
2
  import { jsxs as a, jsx as e, Fragment as g } from "react/jsx-runtime";
3
3
  import { useState as y } from "react";
4
+ import { t as s } from "../../../do-classnames-DSDFCvzy.js";
4
5
  import o from "../../../styles/texts/texts.module.js";
5
6
  import v from "../../tags/chip/Chip.js";
6
7
  import x from "../../assets/thumbnail/Thumbnail.js";
7
- import { t as s } from "../../../do-classnames-DSDFCvzy.js";
8
8
  const M = (f) => {
9
9
  const [i, t] = y(!1), {
10
10
  src: l,