@mattermost/compass-ui 0.1.0-alpha.4 → 0.1.0-alpha.5

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 (226) hide show
  1. package/dist/compass-ui-standalone.css +10 -0
  2. package/dist/compass-ui.css +2 -0
  3. package/dist/components/action-button/ActionButton.cjs +1 -1
  4. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  5. package/dist/components/action-button/ActionButton.d.ts +2 -1
  6. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  7. package/dist/components/action-button/ActionButton.js +22 -12
  8. package/dist/components/action-button/ActionButton.js.map +1 -1
  9. package/dist/components/action-button/ActionButton.module.css +1 -1
  10. package/dist/components/action-button/ActionButton.module.scss.cjs +1 -1
  11. package/dist/components/action-button/ActionButton.module.scss.js +5 -5
  12. package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
  13. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  14. package/dist/components/attachment-card/AttachmentCard.d.ts +3 -1
  15. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  16. package/dist/components/attachment-card/AttachmentCard.js +92 -82
  17. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  18. package/dist/components/attachment-card/AttachmentCard.module.css +1 -1
  19. package/dist/components/attachment-card/AttachmentCard.module.scss.cjs +1 -1
  20. package/dist/components/attachment-card/AttachmentCard.module.scss.js +19 -18
  21. package/dist/components/attachment-card/AttachmentCard.module.scss.js.map +1 -1
  22. package/dist/components/button/Button.module.css +1 -1
  23. package/dist/components/button/Button.module.scss.cjs +1 -1
  24. package/dist/components/button/Button.module.scss.js +15 -15
  25. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  26. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  27. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +4 -1
  28. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  29. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +112 -92
  30. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  31. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.css +1 -1
  32. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.cjs +1 -1
  33. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js +22 -20
  34. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js.map +1 -1
  35. package/dist/components/checkbox/Checkbox.cjs +1 -1
  36. package/dist/components/checkbox/Checkbox.cjs.map +1 -1
  37. package/dist/components/checkbox/Checkbox.d.ts +3 -3
  38. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  39. package/dist/components/checkbox/Checkbox.js +21 -20
  40. package/dist/components/checkbox/Checkbox.js.map +1 -1
  41. package/dist/components/checkbox/Checkbox.module.css +1 -1
  42. package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
  43. package/dist/components/checkbox/Checkbox.module.scss.js +7 -7
  44. package/dist/components/chip/Chip.cjs +1 -1
  45. package/dist/components/chip/Chip.cjs.map +1 -1
  46. package/dist/components/chip/Chip.d.ts +3 -5
  47. package/dist/components/chip/Chip.d.ts.map +1 -1
  48. package/dist/components/chip/Chip.js +90 -48
  49. package/dist/components/chip/Chip.js.map +1 -1
  50. package/dist/components/chip/Chip.module.css +1 -1
  51. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  52. package/dist/components/chip/Chip.module.scss.js +9 -9
  53. package/dist/components/chip/ChipGroup.cjs +2 -0
  54. package/dist/components/chip/ChipGroup.cjs.map +1 -0
  55. package/dist/components/chip/ChipGroup.d.ts +16 -0
  56. package/dist/components/chip/ChipGroup.d.ts.map +1 -0
  57. package/dist/components/chip/ChipGroup.js +112 -0
  58. package/dist/components/chip/ChipGroup.js.map +1 -0
  59. package/dist/components/chip/ChipGroup.module.css +1 -0
  60. package/dist/components/chip/ChipGroup.module.scss.cjs +2 -0
  61. package/dist/components/chip/ChipGroup.module.scss.cjs.map +1 -0
  62. package/dist/components/chip/ChipGroup.module.scss.js +7 -0
  63. package/dist/components/chip/ChipGroup.module.scss.js.map +1 -0
  64. package/dist/components/chip/index.cjs +1 -1
  65. package/dist/components/chip/index.d.ts +2 -0
  66. package/dist/components/chip/index.d.ts.map +1 -1
  67. package/dist/components/chip/index.js +4 -2
  68. package/dist/components/chip/index.js.map +1 -1
  69. package/dist/components/combobox/Combobox.cjs +1 -1
  70. package/dist/components/combobox/Combobox.cjs.map +1 -1
  71. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  72. package/dist/components/combobox/Combobox.js +115 -109
  73. package/dist/components/combobox/Combobox.js.map +1 -1
  74. package/dist/components/combobox/Combobox.module.css +1 -1
  75. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  76. package/dist/components/combobox/Combobox.module.scss.js +27 -29
  77. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  78. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  79. package/dist/components/date-range-picker/DateRangePicker.js +154 -154
  80. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  81. package/dist/components/date-range-picker/DateRangePicker.module.css +1 -1
  82. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  83. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +28 -45
  84. package/dist/components/dropdown/Dropdown.cjs +1 -1
  85. package/dist/components/dropdown/Dropdown.cjs.map +1 -1
  86. package/dist/components/dropdown/Dropdown.js +1 -1
  87. package/dist/components/dropdown/Dropdown.js.map +1 -1
  88. package/dist/components/dropdown/Dropdown.module.css +1 -1
  89. package/dist/components/dropdown/Dropdown.module.scss.cjs +1 -1
  90. package/dist/components/dropdown/Dropdown.module.scss.js +15 -16
  91. package/dist/components/global-banner/GlobalBanner.module.css +1 -1
  92. package/dist/components/global-banner/GlobalBanner.module.scss.cjs +1 -1
  93. package/dist/components/global-banner/GlobalBanner.module.scss.js +10 -10
  94. package/dist/components/icon-button/IconButton.cjs +1 -1
  95. package/dist/components/icon-button/IconButton.cjs.map +1 -1
  96. package/dist/components/icon-button/IconButton.d.ts +1 -1
  97. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  98. package/dist/components/icon-button/IconButton.js +14 -14
  99. package/dist/components/icon-button/IconButton.js.map +1 -1
  100. package/dist/components/icon-button/IconButton.module.css +1 -1
  101. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  102. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  103. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  104. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  105. package/dist/components/image-preview/ImagePreview.d.ts +2 -1
  106. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  107. package/dist/components/image-preview/ImagePreview.js +70 -52
  108. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  109. package/dist/components/image-preview/ImagePreview.module.css +1 -1
  110. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  111. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  112. package/dist/components/menu-item/MenuItem.cjs +1 -1
  113. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  114. package/dist/components/menu-item/MenuItem.js +11 -11
  115. package/dist/components/menu-item/MenuItem.js.map +1 -1
  116. package/dist/components/menu-item/MenuItem.module.css +1 -1
  117. package/dist/components/menu-item/MenuItem.module.scss.cjs +1 -1
  118. package/dist/components/menu-item/MenuItem.module.scss.js +16 -16
  119. package/dist/components/message/Message.module.css +1 -1
  120. package/dist/components/message/Message.module.scss.cjs +1 -1
  121. package/dist/components/message/Message.module.scss.js +20 -20
  122. package/dist/components/message-reactions/MessageReactions.module.css +1 -1
  123. package/dist/components/message-reactions/MessageReactions.module.scss.cjs +1 -1
  124. package/dist/components/message-reactions/MessageReactions.module.scss.js +12 -12
  125. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.css +1 -1
  126. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.cjs +1 -1
  127. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.js +5 -5
  128. package/dist/components/pagination-dots/PaginationDots.module.css +1 -1
  129. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  130. package/dist/components/pagination-dots/PaginationDots.module.scss.js +8 -8
  131. package/dist/components/radio/Radio.cjs +1 -1
  132. package/dist/components/radio/Radio.cjs.map +1 -1
  133. package/dist/components/radio/Radio.d.ts +3 -3
  134. package/dist/components/radio/Radio.d.ts.map +1 -1
  135. package/dist/components/radio/Radio.js +11 -11
  136. package/dist/components/radio/Radio.js.map +1 -1
  137. package/dist/components/radio/Radio.module.css +1 -1
  138. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  139. package/dist/components/radio/Radio.module.scss.js +11 -11
  140. package/dist/components/search-input/SearchInput.cjs +1 -1
  141. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  142. package/dist/components/search-input/SearchInput.d.ts +2 -0
  143. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  144. package/dist/components/search-input/SearchInput.js +78 -64
  145. package/dist/components/search-input/SearchInput.js.map +1 -1
  146. package/dist/components/search-input/SearchInput.module.css +1 -1
  147. package/dist/components/search-input/SearchInput.module.scss.cjs +1 -1
  148. package/dist/components/search-input/SearchInput.module.scss.js +16 -23
  149. package/dist/components/search-input/SearchInput.module.scss.js.map +1 -1
  150. package/dist/components/select/Select.cjs +1 -1
  151. package/dist/components/select/Select.cjs.map +1 -1
  152. package/dist/components/select/Select.d.ts.map +1 -1
  153. package/dist/components/select/Select.js +64 -64
  154. package/dist/components/select/Select.js.map +1 -1
  155. package/dist/components/select/Select.module.css +1 -1
  156. package/dist/components/select/Select.module.scss.cjs +1 -1
  157. package/dist/components/select/Select.module.scss.js +24 -26
  158. package/dist/components/switch/Switch.cjs +1 -1
  159. package/dist/components/switch/Switch.cjs.map +1 -1
  160. package/dist/components/switch/Switch.d.ts.map +1 -1
  161. package/dist/components/switch/Switch.js +2 -2
  162. package/dist/components/switch/Switch.js.map +1 -1
  163. package/dist/components/switch/Switch.module.css +1 -1
  164. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  165. package/dist/components/switch/Switch.module.scss.js +15 -15
  166. package/dist/components/tabs/Tabs.cjs +1 -1
  167. package/dist/components/tabs/Tabs.cjs.map +1 -1
  168. package/dist/components/tabs/Tabs.d.ts +4 -0
  169. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  170. package/dist/components/tabs/Tabs.js +47 -31
  171. package/dist/components/tabs/Tabs.js.map +1 -1
  172. package/dist/components/tabs/Tabs.module.css +1 -1
  173. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  174. package/dist/components/tabs/Tabs.module.scss.js +8 -7
  175. package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
  176. package/dist/components/tag/Tag.module.css +1 -1
  177. package/dist/components/tag/Tag.module.scss.cjs +1 -1
  178. package/dist/components/tag/Tag.module.scss.js +15 -15
  179. package/dist/components/text-area/TextArea.cjs +1 -1
  180. package/dist/components/text-area/TextArea.cjs.map +1 -1
  181. package/dist/components/text-area/TextArea.d.ts.map +1 -1
  182. package/dist/components/text-area/TextArea.js +57 -56
  183. package/dist/components/text-area/TextArea.js.map +1 -1
  184. package/dist/components/text-area/TextArea.module.css +1 -1
  185. package/dist/components/text-area/TextArea.module.scss.cjs +1 -1
  186. package/dist/components/text-area/TextArea.module.scss.js +12 -17
  187. package/dist/components/text-input/TextInput.cjs +1 -1
  188. package/dist/components/text-input/TextInput.cjs.map +1 -1
  189. package/dist/components/text-input/TextInput.d.ts.map +1 -1
  190. package/dist/components/text-input/TextInput.js +59 -58
  191. package/dist/components/text-input/TextInput.js.map +1 -1
  192. package/dist/components/text-input/TextInput.module.css +1 -1
  193. package/dist/components/text-input/TextInput.module.scss.cjs +1 -1
  194. package/dist/components/text-input/TextInput.module.scss.js +16 -24
  195. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  196. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  197. package/dist/components/thread-footer/ThreadFooter.d.ts +7 -8
  198. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  199. package/dist/components/thread-footer/ThreadFooter.js +59 -62
  200. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  201. package/dist/components/thread-footer/ThreadFooter.module.css +1 -1
  202. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  203. package/dist/components/thread-footer/ThreadFooter.module.scss.js +17 -17
  204. package/dist/components/thread-footer/index.d.ts +7 -1
  205. package/dist/components/thread-footer/index.d.ts.map +1 -1
  206. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  207. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  208. package/dist/components/thread-list-item/ThreadListItem.d.ts +1 -1
  209. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  210. package/dist/components/thread-list-item/ThreadListItem.js +102 -87
  211. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  212. package/dist/components/thread-list-item/ThreadListItem.module.css +1 -1
  213. package/dist/components/thread-list-item/ThreadListItem.module.scss.cjs +1 -1
  214. package/dist/components/thread-list-item/ThreadListItem.module.scss.js +26 -23
  215. package/dist/components/thread-list-item/ThreadListItem.module.scss.js.map +1 -1
  216. package/dist/components/toast/Toast.module.css +1 -1
  217. package/dist/components/toast/Toast.module.scss.cjs +1 -1
  218. package/dist/components/toast/Toast.module.scss.js +6 -6
  219. package/dist/components/tour-point/TourPoint.module.css +1 -1
  220. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  221. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  222. package/dist/index.cjs +1 -1
  223. package/dist/index.css +31 -29
  224. package/dist/index.js +156 -154
  225. package/dist/index.js.map +1 -1
  226. package/package.json +1 -1
@@ -23,6 +23,8 @@
23
23
  --button-bg-rgb: var(--color-blue-500-rgb);
24
24
  --button-color: var(--color-neutral-0);
25
25
  --button-color-rgb: var(--color-neutral-0-rgb);
26
+ --focus-ring-color: var(--button-bg);
27
+ --focus-ring-color-rgb: var(--button-bg-rgb);
26
28
  --link-color: var(--color-blue-600);
27
29
  --link-color-rgb: var(--color-blue-600-rgb);
28
30
  --error-text: var(--color-red-400);
@@ -64,6 +66,8 @@
64
66
  --button-bg: var(--color-blue-500);
65
67
  --button-bg-rgb: var(--color-blue-500-rgb);
66
68
  --button-color: var(--color-neutral-0);
69
+ --focus-ring-color: var(--button-bg);
70
+ --focus-ring-color-rgb: var(--button-bg-rgb);
67
71
  --link-color: var(--color-blue-600);
68
72
  --link-color-rgb: var(--color-blue-600-rgb);
69
73
  --error-text: var(--color-red-300);
@@ -105,6 +109,8 @@
105
109
  --button-bg: var(--color-blue-500);
106
110
  --button-bg-rgb: var(--color-blue-500-rgb);
107
111
  --button-color: var(--color-neutral-0);
112
+ --focus-ring-color: var(--button-bg);
113
+ --focus-ring-color-rgb: var(--button-bg-rgb);
108
114
  --link-color: var(--color-blue-600);
109
115
  --link-color-rgb: var(--color-blue-600-rgb);
110
116
  --error-text: var(--color-red-400);
@@ -146,6 +152,8 @@
146
152
  --button-bg: #4a7ce8;
147
153
  --button-bg-rgb: 74, 124, 232;
148
154
  --button-color: var(--color-neutral-0);
155
+ --focus-ring-color: var(--button-bg);
156
+ --focus-ring-color-rgb: var(--button-bg-rgb);
149
157
  --link-color: var(--color-blue-300);
150
158
  --link-color-rgb: var(--color-blue-300-rgb);
151
159
  --error-text: var(--color-red-300);
@@ -187,6 +195,8 @@
187
195
  --button-bg: #4a7ce8;
188
196
  --button-bg-rgb: 74, 124, 232;
189
197
  --button-color: var(--color-neutral-0);
198
+ --focus-ring-color: var(--button-bg);
199
+ --focus-ring-color-rgb: var(--button-bg-rgb);
190
200
  --link-color: var(--color-blue-300);
191
201
  --link-color-rgb: var(--color-blue-300-rgb);
192
202
  --error-text: var(--color-red-300);
@@ -298,5 +298,7 @@
298
298
  --semantic-color-success: var(--color-green-600-rgb);
299
299
  --semantic-color-warning: var(--color-yellow-600-rgb);
300
300
  --semantic-color-danger: var(--color-red-500-rgb);
301
+ --focus-ring-color: var(--button-bg);
302
+ --focus-ring-color-rgb: var(--button-bg-rgb);
301
303
  }
302
304
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),t=require("./ActionButton.module.scss.cjs");function c({icon:o,label:a,active:n=!1,destructive:s=!1,className:u,...l}){const i=[t.default["action-button"],n?t.default["action-button--active"]:"",s?t.default["action-button--destructive"]:"",u??""].filter(Boolean).join(" ");return e.jsxs("button",{className:i,"aria-pressed":n,...l,children:[e.jsx("span",{className:t.default["action-button__icon"],children:o}),e.jsx("span",{className:t.default["action-button__label"],children:a})]})}exports.default=c;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),t=require("./ActionButton.module.scss.cjs");function c({icon:o,label:a,active:e,destructive:u=!1,className:i,type:s="button",...l}){const r=[t.default["action-button"],e?t.default["action-button--active"]:"",u?t.default["action-button--destructive"]:"",i??""].filter(Boolean).join(" ");return n.jsxs("button",{className:r,type:s,"aria-pressed":e===void 0?void 0:e,...l,children:[n.jsx("span",{className:t.default["action-button__icon"],"aria-hidden":!0,children:o}),n.jsx("span",{className:t.default["action-button__label"],children:a})]})}exports.default=c;
2
2
  //# sourceMappingURL=ActionButton.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButton.cjs","sources":["../../../src/components/action-button/ActionButton.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport styles from './ActionButton.module.scss';\n\nexport interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n icon: ReactNode;\n label: string;\n active?: boolean;\n destructive?: boolean;\n}\n\n/**\n * Action Buttons surface a small set of high-frequency actions in a fixed context — a\n * profile popover, a channel info panel, a card. They sit close to the content they act on\n * and read as a row of equal-weight choices.\n */\nexport default function ActionButton({\n icon,\n label,\n active = false,\n destructive = false,\n className,\n ...htmlProps\n}: ActionButtonProps) {\n const rootClass = [\n styles['action-button'],\n active ? styles['action-button--active'] : '',\n destructive ? styles['action-button--destructive'] : '',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button className={rootClass} aria-pressed={active} {...htmlProps}>\n <span className={styles['action-button__icon']}>{icon}</span>\n <span className={styles['action-button__label']}>{label}</span>\n </button>\n );\n}\n"],"names":["ActionButton","icon","label","active","destructive","className","htmlProps","rootClass","styles","jsx"],"mappings":"6LAeA,SAAwBA,EAAa,CACnC,KAAAC,EACA,MAAAC,EACA,OAAAC,EAAS,GACT,YAAAC,EAAc,GACd,UAAAC,EACA,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAY,CAChBC,EAAAA,QAAO,eAAe,EACtBL,EAASK,EAAAA,QAAO,uBAAuB,EAAI,GAC3CJ,EAAcI,EAAAA,QAAO,4BAA4B,EAAI,GACrDH,GAAa,EAAA,EAEZ,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,cACG,SAAA,CAAO,UAAWE,EAAW,eAAcJ,EAAS,GAAGG,EACtD,SAAA,CAAAG,MAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,qBAAqB,EAAI,SAAAP,EAAK,QACrD,OAAA,CAAK,UAAWO,EAAAA,QAAO,sBAAsB,EAAI,SAAAN,CAAA,CAAM,CAAA,EAC1D,CAEJ"}
1
+ {"version":3,"file":"ActionButton.cjs","sources":["../../../src/components/action-button/ActionButton.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport styles from './ActionButton.module.scss';\n\nexport interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n icon: ReactNode;\n label: string;\n /** When set, this is a toggle; maps to `aria-pressed`. */\n active?: boolean;\n destructive?: boolean;\n}\n\n/**\n * Action Buttons surface a small set of high-frequency actions in a fixed context — a\n * profile popover, a channel info panel, a card. They sit close to the content they act on\n * and read as a row of equal-weight choices.\n */\nexport default function ActionButton({\n icon,\n label,\n active,\n destructive = false,\n className,\n type = 'button',\n ...htmlProps\n}: ActionButtonProps) {\n const rootClass = [\n styles['action-button'],\n active ? styles['action-button--active'] : '',\n destructive ? styles['action-button--destructive'] : '',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n className={rootClass}\n type={type}\n aria-pressed={active === undefined ? undefined : active}\n {...htmlProps}\n >\n <span className={styles['action-button__icon']} aria-hidden>\n {icon}\n </span>\n <span className={styles['action-button__label']}>{label}</span>\n </button>\n );\n}\n"],"names":["ActionButton","icon","label","active","destructive","className","type","htmlProps","rootClass","styles","jsxs","jsx"],"mappings":"6LAgBA,SAAwBA,EAAa,CACnC,KAAAC,EACA,MAAAC,EACA,OAAAC,EACA,YAAAC,EAAc,GACd,UAAAC,EACA,KAAAC,EAAO,SACP,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAY,CAChBC,EAAAA,QAAO,eAAe,EACtBN,EAASM,EAAAA,QAAO,uBAAuB,EAAI,GAC3CL,EAAcK,EAAAA,QAAO,4BAA4B,EAAI,GACrDJ,GAAa,EAAA,EAEZ,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEK,EAAAA,KAAC,SAAA,CACC,UAAWF,EACX,KAAAF,EACA,eAAcH,IAAW,OAAY,OAAYA,EAChD,GAAGI,EAEJ,SAAA,CAAAI,EAAAA,IAAC,QAAK,UAAWF,UAAO,qBAAqB,EAAG,cAAW,GACxD,SAAAR,EACH,QACC,OAAA,CAAK,UAAWQ,EAAAA,QAAO,sBAAsB,EAAI,SAAAP,CAAA,CAAM,CAAA,CAAA,CAAA,CAG9D"}
@@ -2,6 +2,7 @@ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
2
  export interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
3
  icon: ReactNode;
4
4
  label: string;
5
+ /** When set, this is a toggle; maps to `aria-pressed`. */
5
6
  active?: boolean;
6
7
  destructive?: boolean;
7
8
  }
@@ -10,5 +11,5 @@ export interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElemen
10
11
  * profile popover, a channel info panel, a card. They sit close to the content they act on
11
12
  * and read as a row of equal-weight choices.
12
13
  */
13
- export default function ActionButton({ icon, label, active, destructive, className, ...htmlProps }: ActionButtonProps): import("react/jsx-runtime").JSX.Element;
14
+ export default function ActionButton({ icon, label, active, destructive, className, type, ...htmlProps }: ActionButtonProps): import("react/jsx-runtime").JSX.Element;
14
15
  //# sourceMappingURL=ActionButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButton.d.ts","sourceRoot":"","sources":["../../../src/components/action-button/ActionButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG7D,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAChF,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,MAAc,EACd,WAAmB,EACnB,SAAS,EACT,GAAG,SAAS,EACb,EAAE,iBAAiB,2CAgBnB"}
1
+ {"version":3,"file":"ActionButton.d.ts","sourceRoot":"","sources":["../../../src/components/action-button/ActionButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG7D,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAChF,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,MAAM,EACN,WAAmB,EACnB,SAAS,EACT,IAAe,EACf,GAAG,SAAS,EACb,EAAE,iBAAiB,2CAuBnB"}
@@ -1,25 +1,35 @@
1
- import { jsxs as r, jsx as n } from "react/jsx-runtime";
1
+ import { jsxs as u, jsx as n } from "react/jsx-runtime";
2
2
  import t from "./ActionButton.module.scss.js";
3
- function f({
3
+ function m({
4
4
  icon: a,
5
5
  label: s,
6
- active: o = !1,
7
- destructive: e = !1,
8
- className: i,
6
+ active: o,
7
+ destructive: i = !1,
8
+ className: e,
9
+ type: r = "button",
9
10
  ...c
10
11
  }) {
11
12
  const l = [
12
13
  t["action-button"],
13
14
  o ? t["action-button--active"] : "",
14
- e ? t["action-button--destructive"] : "",
15
- i ?? ""
15
+ i ? t["action-button--destructive"] : "",
16
+ e ?? ""
16
17
  ].filter(Boolean).join(" ");
17
- return /* @__PURE__ */ r("button", { className: l, "aria-pressed": o, ...c, children: [
18
- /* @__PURE__ */ n("span", { className: t["action-button__icon"], children: a }),
19
- /* @__PURE__ */ n("span", { className: t["action-button__label"], children: s })
20
- ] });
18
+ return /* @__PURE__ */ u(
19
+ "button",
20
+ {
21
+ className: l,
22
+ type: r,
23
+ "aria-pressed": o === void 0 ? void 0 : o,
24
+ ...c,
25
+ children: [
26
+ /* @__PURE__ */ n("span", { className: t["action-button__icon"], "aria-hidden": !0, children: a }),
27
+ /* @__PURE__ */ n("span", { className: t["action-button__label"], children: s })
28
+ ]
29
+ }
30
+ );
21
31
  }
22
32
  export {
23
- f as default
33
+ m as default
24
34
  };
25
35
  //# sourceMappingURL=ActionButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButton.js","sources":["../../../src/components/action-button/ActionButton.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport styles from './ActionButton.module.scss';\n\nexport interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n icon: ReactNode;\n label: string;\n active?: boolean;\n destructive?: boolean;\n}\n\n/**\n * Action Buttons surface a small set of high-frequency actions in a fixed context — a\n * profile popover, a channel info panel, a card. They sit close to the content they act on\n * and read as a row of equal-weight choices.\n */\nexport default function ActionButton({\n icon,\n label,\n active = false,\n destructive = false,\n className,\n ...htmlProps\n}: ActionButtonProps) {\n const rootClass = [\n styles['action-button'],\n active ? styles['action-button--active'] : '',\n destructive ? styles['action-button--destructive'] : '',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button className={rootClass} aria-pressed={active} {...htmlProps}>\n <span className={styles['action-button__icon']}>{icon}</span>\n <span className={styles['action-button__label']}>{label}</span>\n </button>\n );\n}\n"],"names":["ActionButton","icon","label","active","destructive","className","htmlProps","rootClass","styles","jsx"],"mappings":";;AAeA,SAAwBA,EAAa;AAAA,EACnC,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,aAAAC,IAAc;AAAA,EACd,WAAAC;AAAA,EACA,GAAGC;AACL,GAAsB;AACpB,QAAMC,IAAY;AAAA,IAChBC,EAAO,eAAe;AAAA,IACtBL,IAASK,EAAO,uBAAuB,IAAI;AAAA,IAC3CJ,IAAcI,EAAO,4BAA4B,IAAI;AAAA,IACrDH,KAAa;AAAA,EAAA,EAEZ,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BACG,UAAA,EAAO,WAAWE,GAAW,gBAAcJ,GAAS,GAAGG,GACtD,UAAA;AAAA,IAAA,gBAAAG,EAAC,QAAA,EAAK,WAAWD,EAAO,qBAAqB,GAAI,UAAAP,GAAK;AAAA,sBACrD,QAAA,EAAK,WAAWO,EAAO,sBAAsB,GAAI,UAAAN,EAAA,CAAM;AAAA,EAAA,GAC1D;AAEJ;"}
1
+ {"version":3,"file":"ActionButton.js","sources":["../../../src/components/action-button/ActionButton.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport styles from './ActionButton.module.scss';\n\nexport interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n icon: ReactNode;\n label: string;\n /** When set, this is a toggle; maps to `aria-pressed`. */\n active?: boolean;\n destructive?: boolean;\n}\n\n/**\n * Action Buttons surface a small set of high-frequency actions in a fixed context — a\n * profile popover, a channel info panel, a card. They sit close to the content they act on\n * and read as a row of equal-weight choices.\n */\nexport default function ActionButton({\n icon,\n label,\n active,\n destructive = false,\n className,\n type = 'button',\n ...htmlProps\n}: ActionButtonProps) {\n const rootClass = [\n styles['action-button'],\n active ? styles['action-button--active'] : '',\n destructive ? styles['action-button--destructive'] : '',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n className={rootClass}\n type={type}\n aria-pressed={active === undefined ? undefined : active}\n {...htmlProps}\n >\n <span className={styles['action-button__icon']} aria-hidden>\n {icon}\n </span>\n <span className={styles['action-button__label']}>{label}</span>\n </button>\n );\n}\n"],"names":["ActionButton","icon","label","active","destructive","className","type","htmlProps","rootClass","styles","jsxs","jsx"],"mappings":";;AAgBA,SAAwBA,EAAa;AAAA,EACnC,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GAAsB;AACpB,QAAMC,IAAY;AAAA,IAChBC,EAAO,eAAe;AAAA,IACtBN,IAASM,EAAO,uBAAuB,IAAI;AAAA,IAC3CL,IAAcK,EAAO,4BAA4B,IAAI;AAAA,IACrDJ,KAAa;AAAA,EAAA,EAEZ,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWF;AAAA,MACX,MAAAF;AAAA,MACA,gBAAcH,MAAW,SAAY,SAAYA;AAAA,MAChD,GAAGI;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAI,EAAC,UAAK,WAAWF,EAAO,qBAAqB,GAAG,eAAW,IACxD,UAAAR,GACH;AAAA,0BACC,QAAA,EAAK,WAAWQ,EAAO,sBAAsB,GAAI,UAAAP,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG9D;"}
@@ -1 +1 @@
1
- ._action-button_3tbmq_2{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xxxs);width:88px;padding:var(--spacing-m) var(--spacing-l) var(--spacing-s);border:none;border-radius:var(--radius-s);background-color:rgba(var(--center-channel-color-rgb),.04);color:rgba(var(--center-channel-color-rgb),.64);cursor:pointer;transition:background-color var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition)}._action-button_3tbmq_2:focus-visible{outline:none}._action-button_3tbmq_2:focus-visible:not(:disabled){box-shadow:0 0 0 3px var(--center-channel-bg),0 0 0 5px var(--button-bg)}._action-button_3tbmq_2:hover:not(:disabled){background-color:rgba(var(--center-channel-color-rgb),.08);color:rgba(var(--center-channel-color-rgb),.75)}._action-button_3tbmq_2:active:not(:disabled){background-color:rgba(var(--button-bg-rgb),.08);color:var(--link-color)}._action-button_3tbmq_2:disabled{opacity:.48;cursor:not-allowed}._action-button--active_3tbmq_34{background-color:rgba(var(--button-bg-rgb),.08)}._action-button--active_3tbmq_34 ._action-button__icon_3tbmq_37,._action-button--active_3tbmq_34 ._action-button__label_3tbmq_38{color:var(--link-color)}._action-button--active_3tbmq_34:hover:not(:disabled){background-color:rgba(var(--button-bg-rgb),.12)}._action-button--active_3tbmq_34:active:not(:disabled){background-color:rgba(var(--button-bg-rgb),.16)}._action-button--destructive_3tbmq_47{background-color:rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.04);color:var(--error-text, var(--color-danger))}._action-button--destructive_3tbmq_47:hover:not(:disabled){background-color:rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.08);color:var(--error-text, var(--color-danger))}._action-button--destructive_3tbmq_47:active:not(:disabled){background-color:rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.16);color:var(--error-text, var(--color-danger))}._action-button--destructive_3tbmq_47:focus-visible:not(:disabled){box-shadow:0 0 0 3px var(--center-channel-bg),0 0 0 5px var(--error-text, var(--color-danger))}._action-button__icon_3tbmq_37{display:flex;align-items:center;justify-content:center;width:var(--icon-size-20);height:var(--icon-size-20);flex-shrink:0}._action-button__label_3tbmq_38{font-family:var(--font-family-body);font-size:var(--font-size-50);font-weight:var(--font-weight-semibold);line-height:var(--line-height-50);letter-spacing:.11px;white-space:nowrap;text-align:center}
1
+ ._action-button_1u191_2{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xxxs);width:88px;padding:var(--spacing-m) var(--spacing-l) var(--spacing-s);border:none;border-radius:var(--radius-s);background-color:rgba(var(--center-channel-color-rgb),.04);color:rgba(var(--center-channel-color-rgb),.64);cursor:pointer;transition:background-color var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition),outline-color var(--duration-quick) var(--ease-transition),outline-offset var(--duration-quick) var(--ease-transition);outline:2px solid color-mix(in srgb,var(--focus-ring-color) 0%,transparent);outline-offset:0}._action-button_1u191_2:focus-visible{outline-color:var(--focus-ring-color);outline-offset:3px}._action-button_1u191_2:hover:not(:disabled){background-color:rgba(var(--center-channel-color-rgb),.08);color:rgba(var(--center-channel-color-rgb),.75)}._action-button_1u191_2:active:not(:disabled){background-color:rgba(var(--button-bg-rgb),.08);color:var(--link-color)}._action-button_1u191_2:disabled{opacity:.48;cursor:not-allowed}._action-button--active_1u191_34{background-color:rgba(var(--button-bg-rgb),.08)}._action-button--active_1u191_34 ._action-button__icon_1u191_37,._action-button--active_1u191_34 ._action-button__label_1u191_38{color:var(--link-color)}._action-button--active_1u191_34:hover:not(:disabled){background-color:rgba(var(--button-bg-rgb),.12)}._action-button--active_1u191_34:active:not(:disabled){background-color:rgba(var(--button-bg-rgb),.16)}._action-button--destructive_1u191_47{--focus-ring-color: var(--error-text, var(--color-danger));background-color:rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.04);color:var(--error-text, var(--color-danger))}._action-button--destructive_1u191_47:hover:not(:disabled){background-color:rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.08);color:var(--error-text, var(--color-danger))}._action-button--destructive_1u191_47:active:not(:disabled){background-color:rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.16);color:var(--error-text, var(--color-danger))}._action-button__icon_1u191_37{display:flex;align-items:center;justify-content:center;width:var(--icon-size-20);height:var(--icon-size-20);flex-shrink:0}._action-button__label_1u191_38{font-family:var(--font-family-body);font-size:var(--font-size-50);font-weight:var(--font-weight-semibold);line-height:var(--line-height-50);letter-spacing:.11px;white-space:nowrap;text-align:center}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ActionButton.module.css');const t={"action-button":"_action-button_3tbmq_2","action-button--active":"_action-button--active_3tbmq_34","action-button__icon":"_action-button__icon_3tbmq_37","action-button__label":"_action-button__label_3tbmq_38","action-button--destructive":"_action-button--destructive_3tbmq_47"};exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ActionButton.module.css');const t={"action-button":"_action-button_1u191_2","action-button--active":"_action-button--active_1u191_34","action-button__icon":"_action-button__icon_1u191_37","action-button__label":"_action-button__label_1u191_38","action-button--destructive":"_action-button--destructive_1u191_47"};exports.default=t;
2
2
  //# sourceMappingURL=ActionButton.module.scss.cjs.map
@@ -1,9 +1,9 @@
1
1
  import './ActionButton.module.css';const t = {
2
- "action-button": "_action-button_3tbmq_2",
3
- "action-button--active": "_action-button--active_3tbmq_34",
4
- "action-button__icon": "_action-button__icon_3tbmq_37",
5
- "action-button__label": "_action-button__label_3tbmq_38",
6
- "action-button--destructive": "_action-button--destructive_3tbmq_47"
2
+ "action-button": "_action-button_1u191_2",
3
+ "action-button--active": "_action-button--active_1u191_34",
4
+ "action-button__icon": "_action-button__icon_1u191_37",
5
+ "action-button__label": "_action-button__label_1u191_38",
6
+ "action-button--destructive": "_action-button--destructive_1u191_47"
7
7
  };
8
8
  export {
9
9
  t as default
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__N=require("@mattermost/compass-icons/components/close.js"),N=__N?.default??__N,__O=require("@mattermost/compass-icons/components/dots-vertical.js"),O=__O?.default??__O,__L=require("@mattermost/compass-icons/components/download-outline.js"),L=__L?.default??__L,__b=require("@mattermost/compass-icons/components/file-audio-outline-large.js"),b=__b?.default??__b,__C=require("@mattermost/compass-icons/components/file-code-outline-large.js"),C=__C?.default??__C,__z=require("@mattermost/compass-icons/components/file-excel-outline-large.js"),z=__z?.default??__z,__x=require("@mattermost/compass-icons/components/file-generic-outline-large.js"),x=__x?.default??__x,__w=require("@mattermost/compass-icons/components/file-image-outline-large.js"),w=__w?.default??__w,__P=require("@mattermost/compass-icons/components/file-patch-outline-large.js"),P=__P?.default??__P,__E=require("@mattermost/compass-icons/components/file-pdf-outline-large.js"),E=__E?.default??__E,__y=require("@mattermost/compass-icons/components/file-powerpoint-outline-large.js"),y=__y?.default??__y,__D=require("@mattermost/compass-icons/components/file-text-outline-large.js"),D=__D?.default??__D,__M=require("@mattermost/compass-icons/components/file-video-outline-large.js"),M=__M?.default??__M,__k=require("@mattermost/compass-icons/components/file-word-outline-large.js"),k=__k?.default??__k,__A=require("@mattermost/compass-icons/components/file-zip-outline-large.js"),A=__A?.default??__A,i=require("../icon/Icon.cjs"),l=require("../icon-button/IconButton.cjs"),R=require("../tag/Tag.cjs"),a=require("./AttachmentCard.module.scss.cjs"),U={audio:b,code:C,excel:z,generic:x,"image-icon":w,patch:P,pdf:E,powerpoint:y,text:D,video:M,word:k,zip:A},$={audio:"var(--attachment-blue)",code:void 0,excel:"var(--attachment-green)",generic:void 0,"image-icon":"var(--attachment-blue)",patch:void 0,pdf:"var(--attachment-red)",powerpoint:"var(--attachment-orange)",text:void 0,video:"var(--attachment-blue)",word:"var(--attachment-blue)",zip:void 0};function B({className:g="",fileName:_,fileMeta:s,fileType:t="generic",state:n="default",progress:r=0,thumbnailSrc:o,channelTag:d,dateTimeStamp:u,onRemove:j,onDownload:f,onMore:v}){const c=n==="uploading",p=n==="uploaded",m=n==="default",I=m?"":a.default[`attachment-card--${n}`],q=[a.default["attachment-card"],I,g].filter(Boolean).join(" "),F=t!=="image-thumbnail"?U[t]:x,h=t!=="image-thumbnail"?$[t]:void 0;return e.jsxs("div",{className:q,children:[e.jsx("div",{className:a.default["attachment-card__container"],children:e.jsxs("div",{className:a.default["attachment-card__inner"],children:[e.jsxs("div",{className:a.default["attachment-card__left"],children:[t==="image-thumbnail"&&o?e.jsx("img",{src:o,alt:"",className:a.default["attachment-card__thumbnail"]}):e.jsx("div",{className:a.default["attachment-card__icon"],style:h?{color:h}:void 0,children:e.jsx(i.default,{glyph:e.jsx(F,{size:40}),size:"40"})}),e.jsxs("div",{className:a.default["attachment-card__text"],children:[e.jsx("p",{className:a.default["attachment-card__filename"],children:_}),e.jsx("div",{className:a.default["attachment-card__secondary-details"],children:c?e.jsx("span",{className:a.default["attachment-card__uploading-text"],children:`Uploading… (${r}%)`}):e.jsxs(e.Fragment,{children:[d&&e.jsx(R.default,{label:d}),s&&e.jsxs("div",{className:a.default["attachment-card__details"],children:[e.jsx("span",{children:s}),u&&e.jsxs("span",{className:a.default["attachment-card__datetime"],children:[e.jsx("span",{children:"•"}),e.jsx("span",{children:u})]})]})]})})]})]}),e.jsx("div",{className:a.default["attachment-card__right"],children:e.jsxs("div",{className:a.default["attachment-card__actions"],children:[(p||c)&&e.jsx(l.default,{size:"small",icon:e.jsx(i.default,{glyph:e.jsx(N,{}),size:"16"}),"aria-label":c?"Cancel upload":"Remove attachment",onClick:j}),m&&e.jsxs(e.Fragment,{children:[e.jsx(l.default,{size:"small",icon:e.jsx(i.default,{glyph:e.jsx(O,{}),size:"16"}),"aria-label":"More options",onClick:v}),e.jsx(l.default,{size:"small",icon:e.jsx(i.default,{glyph:e.jsx(L,{}),size:"16"}),"aria-label":"Download",onClick:f})]})]})})]})}),c&&e.jsx("div",{className:a.default["attachment-card__progress-bar"],children:e.jsx("div",{className:a.default["attachment-card__progress-fill"],style:{width:`${Math.min(100,Math.max(0,r))}%`}})})]})}exports.default=B;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__O=require("@mattermost/compass-icons/components/close.js"),O=__O?.default??__O,__L=require("@mattermost/compass-icons/components/dots-vertical.js"),L=__L?.default??__L,__C=require("@mattermost/compass-icons/components/download-outline.js"),C=__C?.default??__C,__z=require("@mattermost/compass-icons/components/file-audio-outline-large.js"),z=__z?.default??__z,__w=require("@mattermost/compass-icons/components/file-code-outline-large.js"),w=__w?.default??__w,__y=require("@mattermost/compass-icons/components/file-excel-outline-large.js"),y=__y?.default??__y,__j=require("@mattermost/compass-icons/components/file-generic-outline-large.js"),j=__j?.default??__j,__P=require("@mattermost/compass-icons/components/file-image-outline-large.js"),P=__P?.default??__P,__$=require("@mattermost/compass-icons/components/file-patch-outline-large.js"),$=__$?.default??__$,__E=require("@mattermost/compass-icons/components/file-pdf-outline-large.js"),E=__E?.default??__E,__k=require("@mattermost/compass-icons/components/file-powerpoint-outline-large.js"),k=__k?.default??__k,__D=require("@mattermost/compass-icons/components/file-text-outline-large.js"),D=__D?.default??__D,__M=require("@mattermost/compass-icons/components/file-video-outline-large.js"),M=__M?.default??__M,__A=require("@mattermost/compass-icons/components/file-word-outline-large.js"),A=__A?.default??__A,__R=require("@mattermost/compass-icons/components/file-zip-outline-large.js"),R=__R?.default??__R,i=require("../icon/Icon.cjs"),s=require("../icon-button/IconButton.cjs"),U=require("../tag/Tag.cjs"),a=require("./AttachmentCard.module.scss.cjs"),B={audio:z,code:w,excel:y,generic:j,"image-icon":P,patch:$,pdf:E,powerpoint:k,text:D,video:M,word:A,zip:R},S={audio:"var(--attachment-blue)",code:void 0,excel:"var(--attachment-green)",generic:void 0,"image-icon":"var(--attachment-blue)",patch:void 0,pdf:"var(--attachment-red)",powerpoint:"var(--attachment-orange)",text:void 0,video:"var(--attachment-blue)",word:"var(--attachment-blue)",zip:void 0};function V({className:f="",fileName:r,fileMeta:d,fileType:t="generic",state:n="default",progress:o=0,thumbnailSrc:u,channelTag:m,dateTimeStamp:h,onOpen:x,onRemove:v,onDownload:p,onMore:I}){const c=n==="uploading",q=n==="uploaded",l=n==="default",F=l?"":a.default[`attachment-card--${n}`],b=[a.default["attachment-card"],F,f].filter(Boolean).join(" "),N=t!=="image-thumbnail"?B[t]:j,_=t!=="image-thumbnail"?S[t]:void 0,g=e.jsxs(e.Fragment,{children:[t==="image-thumbnail"&&u?e.jsx("img",{src:u,alt:"",className:a.default["attachment-card__thumbnail"]}):e.jsx("div",{className:a.default["attachment-card__icon"],style:_?{color:_}:void 0,children:e.jsx(i.default,{glyph:e.jsx(N,{size:40}),size:"40"})}),e.jsxs("div",{className:a.default["attachment-card__text"],children:[e.jsx("span",{className:a.default["attachment-card__filename"],children:r}),e.jsx("div",{className:a.default["attachment-card__secondary-details"],children:c?e.jsx("span",{className:a.default["attachment-card__uploading-text"],children:`Uploading… (${o}%)`}):e.jsxs(e.Fragment,{children:[m&&e.jsx(U.default,{label:m}),d&&e.jsxs("div",{className:a.default["attachment-card__details"],children:[e.jsx("span",{children:d}),h&&e.jsxs("span",{className:a.default["attachment-card__datetime"],children:[e.jsx("span",{children:"•"}),e.jsx("span",{children:h})]})]})]})})]})]});return e.jsxs("div",{className:b,children:[e.jsx("div",{className:a.default["attachment-card__container"],children:e.jsxs("div",{className:a.default["attachment-card__inner"],children:[l&&x?e.jsx("button",{type:"button",className:`${a.default["attachment-card__left"]} ${a.default["attachment-card__open"]}`,onClick:x,"aria-label":`Open ${r}`,children:g}):e.jsx("div",{className:a.default["attachment-card__left"],children:g}),e.jsx("div",{className:a.default["attachment-card__right"],children:e.jsxs("div",{className:a.default["attachment-card__actions"],children:[(q||c)&&e.jsx(s.default,{size:"small",icon:e.jsx(i.default,{glyph:e.jsx(O,{}),size:"16"}),"aria-label":c?"Cancel upload":"Remove attachment",onClick:v}),l&&e.jsxs(e.Fragment,{children:[e.jsx(s.default,{size:"small",icon:e.jsx(i.default,{glyph:e.jsx(L,{}),size:"16"}),"aria-label":"More options",onClick:I}),e.jsx(s.default,{size:"small",icon:e.jsx(i.default,{glyph:e.jsx(C,{}),size:"16"}),"aria-label":"Download",onClick:p})]})]})})]})}),c&&e.jsx("div",{className:a.default["attachment-card__progress-bar"],children:e.jsx("div",{className:a.default["attachment-card__progress-fill"],style:{width:`${Math.min(100,Math.max(0,o))}%`}})})]})}exports.default=V;
2
2
  //# sourceMappingURL=AttachmentCard.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentCard.cjs","sources":["../../../src/components/attachment-card/AttachmentCard.tsx"],"sourcesContent":["import type { ComponentType } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport DotsVerticalIcon from '@mattermost/compass-icons/components/dots-vertical';\nimport DownloadOutlineIcon from '@mattermost/compass-icons/components/download-outline';\nimport FileAudioOutlineLargeIcon from '@mattermost/compass-icons/components/file-audio-outline-large';\nimport FileCodeOutlineLargeIcon from '@mattermost/compass-icons/components/file-code-outline-large';\nimport FileExcelOutlineLargeIcon from '@mattermost/compass-icons/components/file-excel-outline-large';\nimport FileGenericOutlineLargeIcon from '@mattermost/compass-icons/components/file-generic-outline-large';\nimport FileImageOutlineLargeIcon from '@mattermost/compass-icons/components/file-image-outline-large';\nimport FilePatchOutlineLargeIcon from '@mattermost/compass-icons/components/file-patch-outline-large';\nimport FilePdfOutlineLargeIcon from '@mattermost/compass-icons/components/file-pdf-outline-large';\nimport FilePowerpointOutlineLargeIcon from '@mattermost/compass-icons/components/file-powerpoint-outline-large';\nimport FileTextOutlineLargeIcon from '@mattermost/compass-icons/components/file-text-outline-large';\nimport FileVideoOutlineLargeIcon from '@mattermost/compass-icons/components/file-video-outline-large';\nimport FileWordOutlineLargeIcon from '@mattermost/compass-icons/components/file-word-outline-large';\nimport FileZipOutlineLargeIcon from '@mattermost/compass-icons/components/file-zip-outline-large';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport styles from './AttachmentCard.module.scss';\n\nexport type AttachmentCardFileType =\n | 'text'\n | 'word'\n | 'excel'\n | 'powerpoint'\n | 'pdf'\n | 'image-icon'\n | 'image-thumbnail'\n | 'video'\n | 'audio'\n | 'generic'\n | 'patch'\n | 'zip'\n | 'code';\n\nexport type AttachmentCardState = 'default' | 'uploading' | 'uploaded';\n\nexport interface AttachmentCardProps {\n className?: string;\n /** File name to display. */\n fileName: string;\n /** File type + size string shown below the filename, e.g. \"TXT 15KB\". */\n fileMeta?: string;\n /** Controls the icon shown on the left. Default: \"generic\". */\n fileType?: AttachmentCardFileType;\n /** Card state. Default: \"default\" (browsing context). */\n state?: AttachmentCardState;\n /** Upload progress 0–100. Used when state=\"uploading\". */\n progress?: number;\n /** Thumbnail image URL. Used when fileType=\"image-thumbnail\". */\n thumbnailSrc?: string;\n /** Optional channel tag label shown below the filename, e.g. \"UX Design\". */\n channelTag?: string;\n /** Optional date/time stamp, e.g. \"Sep 24 5:14 PM\". */\n dateTimeStamp?: string;\n /** Called when the remove or cancel button is clicked. */\n onRemove?: () => void;\n /** Called when the download button is clicked (visible on hover in default state). */\n onDownload?: () => void;\n /** Called when the more-options button is clicked (visible on hover in default state). */\n onMore?: () => void;\n}\n\ntype IconComponent = ComponentType<{ size: number; className?: string }>;\n\nconst FILE_TYPE_ICONS: Record<\n Exclude<AttachmentCardFileType, 'image-thumbnail'>,\n IconComponent\n> = {\n audio: FileAudioOutlineLargeIcon,\n code: FileCodeOutlineLargeIcon,\n excel: FileExcelOutlineLargeIcon,\n generic: FileGenericOutlineLargeIcon,\n 'image-icon': FileImageOutlineLargeIcon,\n patch: FilePatchOutlineLargeIcon,\n pdf: FilePdfOutlineLargeIcon,\n powerpoint: FilePowerpointOutlineLargeIcon,\n text: FileTextOutlineLargeIcon,\n video: FileVideoOutlineLargeIcon,\n word: FileWordOutlineLargeIcon,\n zip: FileZipOutlineLargeIcon,\n};\n\nconst FILE_TYPE_COLORS: Record<\n Exclude<AttachmentCardFileType, 'image-thumbnail'>,\n string | undefined\n> = {\n audio: 'var(--attachment-blue)',\n code: undefined,\n excel: 'var(--attachment-green)',\n generic: undefined,\n 'image-icon': 'var(--attachment-blue)',\n patch: undefined,\n pdf: 'var(--attachment-red)',\n powerpoint: 'var(--attachment-orange)',\n text: undefined,\n video: 'var(--attachment-blue)',\n word: 'var(--attachment-blue)',\n zip: undefined,\n};\n\n/**\n * Attachment Cards represent a file shared in a channel, message, or task. Each card shows\n * the file's identity at a glance — type, name, size — and hosts the actions a viewer can\n * take on it.\n */\nexport default function AttachmentCard({\n className = '',\n fileName,\n fileMeta,\n fileType = 'generic',\n state = 'default',\n progress = 0,\n thumbnailSrc,\n channelTag,\n dateTimeStamp,\n onRemove,\n onDownload,\n onMore,\n}: AttachmentCardProps) {\n const isUploading = state === 'uploading';\n const isUploaded = state === 'uploaded';\n const isDefault = state === 'default';\n\n const stateClass = !isDefault ? styles[`attachment-card--${state}`] : '';\n const rootClass = [styles['attachment-card'], stateClass, className]\n .filter(Boolean)\n .join(' ');\n\n const FileIcon =\n fileType !== 'image-thumbnail'\n ? FILE_TYPE_ICONS[fileType]\n : FileGenericOutlineLargeIcon;\n\n const iconColor =\n fileType !== 'image-thumbnail' ? FILE_TYPE_COLORS[fileType] : undefined;\n\n return (\n <div className={rootClass}>\n <div className={styles['attachment-card__container']}>\n <div className={styles['attachment-card__inner']}>\n <div className={styles['attachment-card__left']}>\n {fileType === 'image-thumbnail' && thumbnailSrc ? (\n <img\n src={thumbnailSrc}\n alt=\"\"\n className={styles['attachment-card__thumbnail']}\n />\n ) : (\n <div\n className={styles['attachment-card__icon']}\n style={iconColor ? { color: iconColor } : undefined}\n >\n <Icon glyph={<FileIcon size={40} />} size=\"40\" />\n </div>\n )}\n\n <div className={styles['attachment-card__text']}>\n <p className={styles['attachment-card__filename']}>{fileName}</p>\n <div className={styles['attachment-card__secondary-details']}>\n {isUploading ? (\n <span className={styles['attachment-card__uploading-text']}>\n {`Uploading… (${progress}%)`}\n </span>\n ) : (\n <>\n {channelTag && <Tag label={channelTag} />}\n {fileMeta && (\n <div className={styles['attachment-card__details']}>\n <span>{fileMeta}</span>\n {dateTimeStamp && (\n <span className={styles['attachment-card__datetime']}>\n <span>{'•'}</span>\n <span>{dateTimeStamp}</span>\n </span>\n )}\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </div>\n\n <div className={styles['attachment-card__right']}>\n <div className={styles['attachment-card__actions']}>\n {(isUploaded || isUploading) && (\n <IconButton\n size=\"small\"\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n aria-label={\n isUploading ? 'Cancel upload' : 'Remove attachment'\n }\n onClick={onRemove}\n />\n )}\n {isDefault && (\n <>\n <IconButton\n size=\"small\"\n icon={<Icon glyph={<DotsVerticalIcon />} size=\"16\" />}\n aria-label=\"More options\"\n onClick={onMore}\n />\n <IconButton\n size=\"small\"\n icon={<Icon glyph={<DownloadOutlineIcon />} size=\"16\" />}\n aria-label=\"Download\"\n onClick={onDownload}\n />\n </>\n )}\n </div>\n </div>\n </div>\n </div>\n\n {isUploading && (\n <div className={styles['attachment-card__progress-bar']}>\n <div\n className={styles['attachment-card__progress-fill']}\n style={{ width: `${Math.min(100, Math.max(0, progress))}%` }}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":["FILE_TYPE_ICONS","FileAudioOutlineLargeIcon","FileCodeOutlineLargeIcon","FileExcelOutlineLargeIcon","FileGenericOutlineLargeIcon","FileImageOutlineLargeIcon","FilePatchOutlineLargeIcon","FilePdfOutlineLargeIcon","FilePowerpointOutlineLargeIcon","FileTextOutlineLargeIcon","FileVideoOutlineLargeIcon","FileWordOutlineLargeIcon","FileZipOutlineLargeIcon","FILE_TYPE_COLORS","AttachmentCard","className","fileName","fileMeta","fileType","state","progress","thumbnailSrc","channelTag","dateTimeStamp","onRemove","onDownload","onMore","isUploading","isUploaded","isDefault","stateClass","styles","rootClass","FileIcon","iconColor","jsxs","jsx","Icon","Fragment","Tag","IconButton","CloseIcon","DotsVerticalIcon","DownloadOutlineIcon"],"mappings":"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"}
1
+ {"version":3,"file":"AttachmentCard.cjs","sources":["../../../src/components/attachment-card/AttachmentCard.tsx"],"sourcesContent":["import type { ComponentType } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport DotsVerticalIcon from '@mattermost/compass-icons/components/dots-vertical';\nimport DownloadOutlineIcon from '@mattermost/compass-icons/components/download-outline';\nimport FileAudioOutlineLargeIcon from '@mattermost/compass-icons/components/file-audio-outline-large';\nimport FileCodeOutlineLargeIcon from '@mattermost/compass-icons/components/file-code-outline-large';\nimport FileExcelOutlineLargeIcon from '@mattermost/compass-icons/components/file-excel-outline-large';\nimport FileGenericOutlineLargeIcon from '@mattermost/compass-icons/components/file-generic-outline-large';\nimport FileImageOutlineLargeIcon from '@mattermost/compass-icons/components/file-image-outline-large';\nimport FilePatchOutlineLargeIcon from '@mattermost/compass-icons/components/file-patch-outline-large';\nimport FilePdfOutlineLargeIcon from '@mattermost/compass-icons/components/file-pdf-outline-large';\nimport FilePowerpointOutlineLargeIcon from '@mattermost/compass-icons/components/file-powerpoint-outline-large';\nimport FileTextOutlineLargeIcon from '@mattermost/compass-icons/components/file-text-outline-large';\nimport FileVideoOutlineLargeIcon from '@mattermost/compass-icons/components/file-video-outline-large';\nimport FileWordOutlineLargeIcon from '@mattermost/compass-icons/components/file-word-outline-large';\nimport FileZipOutlineLargeIcon from '@mattermost/compass-icons/components/file-zip-outline-large';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport styles from './AttachmentCard.module.scss';\n\nexport type AttachmentCardFileType =\n | 'text'\n | 'word'\n | 'excel'\n | 'powerpoint'\n | 'pdf'\n | 'image-icon'\n | 'image-thumbnail'\n | 'video'\n | 'audio'\n | 'generic'\n | 'patch'\n | 'zip'\n | 'code';\n\nexport type AttachmentCardState = 'default' | 'uploading' | 'uploaded';\n\nexport interface AttachmentCardProps {\n className?: string;\n /** File name to display. */\n fileName: string;\n /** File type + size string shown below the filename, e.g. \"TXT 15KB\". */\n fileMeta?: string;\n /** Controls the icon shown on the left. Default: \"generic\". */\n fileType?: AttachmentCardFileType;\n /** Card state. Default: \"default\" (browsing context). */\n state?: AttachmentCardState;\n /** Upload progress 0–100. Used when state=\"uploading\". */\n progress?: number;\n /** Thumbnail image URL. Used when fileType=\"image-thumbnail\". */\n thumbnailSrc?: string;\n /** Optional channel tag label shown below the filename, e.g. \"UX Design\". */\n channelTag?: string;\n /** Optional date/time stamp, e.g. \"Sep 24 5:14 PM\". */\n dateTimeStamp?: string;\n /** Called when the card is activated to open the file or its preview. */\n onOpen?: () => void;\n /** Called when the remove or cancel button is clicked. */\n onRemove?: () => void;\n /** Called when the download button is clicked (visible on hover in default state). */\n onDownload?: () => void;\n /** Called when the more-options button is clicked (visible on hover in default state). */\n onMore?: () => void;\n}\n\ntype IconComponent = ComponentType<{ size: number; className?: string }>;\n\nconst FILE_TYPE_ICONS: Record<\n Exclude<AttachmentCardFileType, 'image-thumbnail'>,\n IconComponent\n> = {\n audio: FileAudioOutlineLargeIcon,\n code: FileCodeOutlineLargeIcon,\n excel: FileExcelOutlineLargeIcon,\n generic: FileGenericOutlineLargeIcon,\n 'image-icon': FileImageOutlineLargeIcon,\n patch: FilePatchOutlineLargeIcon,\n pdf: FilePdfOutlineLargeIcon,\n powerpoint: FilePowerpointOutlineLargeIcon,\n text: FileTextOutlineLargeIcon,\n video: FileVideoOutlineLargeIcon,\n word: FileWordOutlineLargeIcon,\n zip: FileZipOutlineLargeIcon,\n};\n\nconst FILE_TYPE_COLORS: Record<\n Exclude<AttachmentCardFileType, 'image-thumbnail'>,\n string | undefined\n> = {\n audio: 'var(--attachment-blue)',\n code: undefined,\n excel: 'var(--attachment-green)',\n generic: undefined,\n 'image-icon': 'var(--attachment-blue)',\n patch: undefined,\n pdf: 'var(--attachment-red)',\n powerpoint: 'var(--attachment-orange)',\n text: undefined,\n video: 'var(--attachment-blue)',\n word: 'var(--attachment-blue)',\n zip: undefined,\n};\n\n/**\n * Attachment Cards represent a file shared in a channel, message, or task. Each card shows\n * the file's identity at a glance — type, name, size — and hosts the actions a viewer can\n * take on it.\n */\nexport default function AttachmentCard({\n className = '',\n fileName,\n fileMeta,\n fileType = 'generic',\n state = 'default',\n progress = 0,\n thumbnailSrc,\n channelTag,\n dateTimeStamp,\n onOpen,\n onRemove,\n onDownload,\n onMore,\n}: AttachmentCardProps) {\n const isUploading = state === 'uploading';\n const isUploaded = state === 'uploaded';\n const isDefault = state === 'default';\n\n const stateClass = !isDefault ? styles[`attachment-card--${state}`] : '';\n const rootClass = [styles['attachment-card'], stateClass, className]\n .filter(Boolean)\n .join(' ');\n\n const FileIcon =\n fileType !== 'image-thumbnail'\n ? FILE_TYPE_ICONS[fileType]\n : FileGenericOutlineLargeIcon;\n\n const iconColor =\n fileType !== 'image-thumbnail' ? FILE_TYPE_COLORS[fileType] : undefined;\n\n const fileIdentity = (\n <>\n {fileType === 'image-thumbnail' && thumbnailSrc ? (\n <img\n src={thumbnailSrc}\n alt=\"\"\n className={styles['attachment-card__thumbnail']}\n />\n ) : (\n <div\n className={styles['attachment-card__icon']}\n style={iconColor ? { color: iconColor } : undefined}\n >\n <Icon glyph={<FileIcon size={40} />} size=\"40\" />\n </div>\n )}\n\n <div className={styles['attachment-card__text']}>\n <span className={styles['attachment-card__filename']}>{fileName}</span>\n <div className={styles['attachment-card__secondary-details']}>\n {isUploading ? (\n <span className={styles['attachment-card__uploading-text']}>\n {`Uploading… (${progress}%)`}\n </span>\n ) : (\n <>\n {channelTag && <Tag label={channelTag} />}\n {fileMeta && (\n <div className={styles['attachment-card__details']}>\n <span>{fileMeta}</span>\n {dateTimeStamp && (\n <span className={styles['attachment-card__datetime']}>\n <span>{'•'}</span>\n <span>{dateTimeStamp}</span>\n </span>\n )}\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </>\n );\n\n return (\n <div className={rootClass}>\n <div className={styles['attachment-card__container']}>\n <div className={styles['attachment-card__inner']}>\n {isDefault && onOpen ? (\n <button\n type=\"button\"\n className={`${styles['attachment-card__left']} ${styles['attachment-card__open']}`}\n onClick={onOpen}\n aria-label={`Open ${fileName}`}\n >\n {fileIdentity}\n </button>\n ) : (\n <div className={styles['attachment-card__left']}>{fileIdentity}</div>\n )}\n\n <div className={styles['attachment-card__right']}>\n <div className={styles['attachment-card__actions']}>\n {(isUploaded || isUploading) && (\n <IconButton\n size=\"small\"\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n aria-label={\n isUploading ? 'Cancel upload' : 'Remove attachment'\n }\n onClick={onRemove}\n />\n )}\n {isDefault && (\n <>\n <IconButton\n size=\"small\"\n icon={<Icon glyph={<DotsVerticalIcon />} size=\"16\" />}\n aria-label=\"More options\"\n onClick={onMore}\n />\n <IconButton\n size=\"small\"\n icon={<Icon glyph={<DownloadOutlineIcon />} size=\"16\" />}\n aria-label=\"Download\"\n onClick={onDownload}\n />\n </>\n )}\n </div>\n </div>\n </div>\n </div>\n\n {isUploading && (\n <div className={styles['attachment-card__progress-bar']}>\n <div\n className={styles['attachment-card__progress-fill']}\n style={{ width: `${Math.min(100, Math.max(0, progress))}%` }}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":["FILE_TYPE_ICONS","FileAudioOutlineLargeIcon","FileCodeOutlineLargeIcon","FileExcelOutlineLargeIcon","FileGenericOutlineLargeIcon","FileImageOutlineLargeIcon","FilePatchOutlineLargeIcon","FilePdfOutlineLargeIcon","FilePowerpointOutlineLargeIcon","FileTextOutlineLargeIcon","FileVideoOutlineLargeIcon","FileWordOutlineLargeIcon","FileZipOutlineLargeIcon","FILE_TYPE_COLORS","AttachmentCard","className","fileName","fileMeta","fileType","state","progress","thumbnailSrc","channelTag","dateTimeStamp","onOpen","onRemove","onDownload","onMore","isUploading","isUploaded","isDefault","stateClass","styles","rootClass","FileIcon","iconColor","fileIdentity","jsxs","Fragment","jsx","Icon","Tag","IconButton","CloseIcon","DotsVerticalIcon","DownloadOutlineIcon"],"mappings":"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"}
@@ -18,6 +18,8 @@ export interface AttachmentCardProps {
18
18
  channelTag?: string;
19
19
  /** Optional date/time stamp, e.g. "Sep 24 5:14 PM". */
20
20
  dateTimeStamp?: string;
21
+ /** Called when the card is activated to open the file or its preview. */
22
+ onOpen?: () => void;
21
23
  /** Called when the remove or cancel button is clicked. */
22
24
  onRemove?: () => void;
23
25
  /** Called when the download button is clicked (visible on hover in default state). */
@@ -30,5 +32,5 @@ export interface AttachmentCardProps {
30
32
  * the file's identity at a glance — type, name, size — and hosts the actions a viewer can
31
33
  * take on it.
32
34
  */
33
- export default function AttachmentCard({ className, fileName, fileMeta, fileType, state, progress, thumbnailSrc, channelTag, dateTimeStamp, onRemove, onDownload, onMore, }: AttachmentCardProps): import("react/jsx-runtime").JSX.Element;
35
+ export default function AttachmentCard({ className, fileName, fileMeta, fileType, state, progress, thumbnailSrc, channelTag, dateTimeStamp, onOpen, onRemove, onDownload, onMore, }: AttachmentCardProps): import("react/jsx-runtime").JSX.Element;
34
36
  //# sourceMappingURL=AttachmentCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentCard.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-card/AttachmentCard.tsx"],"names":[],"mappings":"AAqBA,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,MAAM,GACN,OAAO,GACP,YAAY,GACZ,KAAK,GACL,YAAY,GACZ,iBAAiB,GACjB,OAAO,GACP,OAAO,GACP,SAAS,GACT,OAAO,GACP,KAAK,GACL,MAAM,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,yDAAyD;IACzD,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAwCD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,SAAc,EACd,QAAQ,EACR,QAAQ,EACR,QAAoB,EACpB,KAAiB,EACjB,QAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,EACR,UAAU,EACV,MAAM,GACP,EAAE,mBAAmB,2CA4GrB"}
1
+ {"version":3,"file":"AttachmentCard.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-card/AttachmentCard.tsx"],"names":[],"mappings":"AAqBA,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,MAAM,GACN,OAAO,GACP,YAAY,GACZ,KAAK,GACL,YAAY,GACZ,iBAAiB,GACjB,OAAO,GACP,OAAO,GACP,SAAS,GACT,OAAO,GACP,KAAK,GACL,MAAM,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,yDAAyD;IACzD,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAwCD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,SAAc,EACd,QAAQ,EACR,QAAQ,EACR,QAAoB,EACpB,KAAiB,EACjB,QAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,MAAM,EACN,QAAQ,EACR,UAAU,EACV,MAAM,GACP,EAAE,mBAAmB,2CA2HrB"}
@@ -1,37 +1,37 @@
1
- import { jsxs as t, jsx as a, Fragment as u } from "react/jsx-runtime";
2
- import __C from "@mattermost/compass-icons/components/close.js";const C=__C&&__C.default?__C.default:__C;
3
- import __z from "@mattermost/compass-icons/components/dots-vertical.js";const z=__z&&__z.default?__z.default:__z;
4
- import __w from "@mattermost/compass-icons/components/download-outline.js";const w=__w&&__w.default?__w.default:__w;
1
+ import { jsxs as t, jsx as a, Fragment as l } from "react/jsx-runtime";
2
+ import __w from "@mattermost/compass-icons/components/close.js";const w=__w&&__w.default?__w.default:__w;
3
+ import __y from "@mattermost/compass-icons/components/dots-vertical.js";const y=__y&&__y.default?__y.default:__y;
4
+ import __$ from "@mattermost/compass-icons/components/download-outline.js";const $=__$&&__$.default?__$.default:__$;
5
5
  import __E from "@mattermost/compass-icons/components/file-audio-outline-large.js";const E=__E&&__E.default?__E.default:__E;
6
6
  import __P from "@mattermost/compass-icons/components/file-code-outline-large.js";const P=__P&&__P.default?__P.default:__P;
7
- import __y from "@mattermost/compass-icons/components/file-excel-outline-large.js";const y=__y&&__y.default?__y.default:__y;
8
- import ___ from "@mattermost/compass-icons/components/file-generic-outline-large.js";const _=___&&___.default?___.default:___;
7
+ import __k from "@mattermost/compass-icons/components/file-excel-outline-large.js";const k=__k&&__k.default?__k.default:__k;
8
+ import __I from "@mattermost/compass-icons/components/file-generic-outline-large.js";const I=__I&&__I.default?__I.default:__I;
9
9
  import __D from "@mattermost/compass-icons/components/file-image-outline-large.js";const D=__D&&__D.default?__D.default:__D;
10
10
  import __j from "@mattermost/compass-icons/components/file-patch-outline-large.js";const j=__j&&__j.default?__j.default:__j;
11
- import __k from "@mattermost/compass-icons/components/file-pdf-outline-large.js";const k=__k&&__k.default?__k.default:__k;
12
- import __U from "@mattermost/compass-icons/components/file-powerpoint-outline-large.js";const U=__U&&__U.default?__U.default:__U;
13
- import __$ from "@mattermost/compass-icons/components/file-text-outline-large.js";const $=__$&&__$.default?__$.default:__$;
14
- import __A from "@mattermost/compass-icons/components/file-video-outline-large.js";const A=__A&&__A.default?__A.default:__A;
15
- import __B from "@mattermost/compass-icons/components/file-word-outline-large.js";const B=__B&&__B.default?__B.default:__B;
16
- import __M from "@mattermost/compass-icons/components/file-zip-outline-large.js";const M=__M&&__M.default?__M.default:__M;
17
- import n from "../icon/Icon.js";
18
- import r from "../icon-button/IconButton.js";
19
- import R from "../tag/Tag.js";
11
+ import __U from "@mattermost/compass-icons/components/file-pdf-outline-large.js";const U=__U&&__U.default?__U.default:__U;
12
+ import __A from "@mattermost/compass-icons/components/file-powerpoint-outline-large.js";const A=__A&&__A.default?__A.default:__A;
13
+ import __B from "@mattermost/compass-icons/components/file-text-outline-large.js";const B=__B&&__B.default?__B.default:__B;
14
+ import __M from "@mattermost/compass-icons/components/file-video-outline-large.js";const M=__M&&__M.default?__M.default:__M;
15
+ import __R from "@mattermost/compass-icons/components/file-word-outline-large.js";const R=__R&&__R.default?__R.default:__R;
16
+ import __V from "@mattermost/compass-icons/components/file-zip-outline-large.js";const V=__V&&__V.default?__V.default:__V;
17
+ import o from "../icon/Icon.js";
18
+ import m from "../icon-button/IconButton.js";
19
+ import Y from "../tag/Tag.js";
20
20
  import e from "./AttachmentCard.module.scss.js";
21
- const V = {
21
+ const G = {
22
22
  audio: E,
23
23
  code: P,
24
- excel: y,
25
- generic: _,
24
+ excel: k,
25
+ generic: I,
26
26
  "image-icon": D,
27
27
  patch: j,
28
- pdf: k,
29
- powerpoint: U,
30
- text: $,
31
- video: A,
32
- word: B,
33
- zip: M
34
- }, Y = {
28
+ pdf: U,
29
+ powerpoint: A,
30
+ text: B,
31
+ video: M,
32
+ word: R,
33
+ zip: V
34
+ }, W = {
35
35
  audio: "var(--attachment-blue)",
36
36
  code: void 0,
37
37
  excel: "var(--attachment-green)",
@@ -45,80 +45,90 @@ const V = {
45
45
  word: "var(--attachment-blue)",
46
46
  zip: void 0
47
47
  };
48
- function ma({
49
- className: v = "",
50
- fileName: f,
51
- fileMeta: l,
48
+ function sa({
49
+ className: N = "",
50
+ fileName: d,
51
+ fileMeta: s,
52
52
  fileType: i = "generic",
53
- state: o = "default",
54
- progress: m = 0,
55
- thumbnailSrc: d,
56
- channelTag: s,
57
- dateTimeStamp: h,
58
- onRemove: I,
59
- onDownload: N,
60
- onMore: F
53
+ state: n = "default",
54
+ progress: h = 0,
55
+ thumbnailSrc: p,
56
+ channelTag: _,
57
+ dateTimeStamp: u,
58
+ onOpen: g,
59
+ onRemove: F,
60
+ onDownload: O,
61
+ onMore: b
61
62
  }) {
62
- const c = o === "uploading", O = o === "uploaded", p = o === "default", L = p ? "" : e[`attachment-card--${o}`], b = [e["attachment-card"], L, v].filter(Boolean).join(" "), x = i !== "image-thumbnail" ? V[i] : _, g = i !== "image-thumbnail" ? Y[i] : void 0;
63
- return /* @__PURE__ */ t("div", { className: b, children: [
64
- /* @__PURE__ */ a("div", { className: e["attachment-card__container"], children: /* @__PURE__ */ t("div", { className: e["attachment-card__inner"], children: [
65
- /* @__PURE__ */ t("div", { className: e["attachment-card__left"], children: [
66
- i === "image-thumbnail" && d ? /* @__PURE__ */ a(
67
- "img",
68
- {
69
- src: d,
70
- alt: "",
71
- className: e["attachment-card__thumbnail"]
72
- }
73
- ) : /* @__PURE__ */ a(
74
- "div",
75
- {
76
- className: e["attachment-card__icon"],
77
- style: g ? { color: g } : void 0,
78
- children: /* @__PURE__ */ a(n, { glyph: /* @__PURE__ */ a(x, { size: 40 }), size: "40" })
79
- }
80
- ),
81
- /* @__PURE__ */ t("div", { className: e["attachment-card__text"], children: [
82
- /* @__PURE__ */ a("p", { className: e["attachment-card__filename"], children: f }),
83
- /* @__PURE__ */ a("div", { className: e["attachment-card__secondary-details"], children: c ? /* @__PURE__ */ a("span", { className: e["attachment-card__uploading-text"], children: `Uploading… (${m}%)` }) : /* @__PURE__ */ t(u, { children: [
84
- s && /* @__PURE__ */ a(R, { label: s }),
85
- l && /* @__PURE__ */ t("div", { className: e["attachment-card__details"], children: [
86
- /* @__PURE__ */ a("span", { children: l }),
87
- h && /* @__PURE__ */ t("span", { className: e["attachment-card__datetime"], children: [
88
- /* @__PURE__ */ a("span", { children: "•" }),
89
- /* @__PURE__ */ a("span", { children: h })
90
- ] })
91
- ] })
92
- ] }) })
63
+ const c = n === "uploading", L = n === "uploaded", r = n === "default", C = r ? "" : e[`attachment-card--${n}`], x = [e["attachment-card"], C, N].filter(Boolean).join(" "), z = i !== "image-thumbnail" ? G[i] : I, v = i !== "image-thumbnail" ? W[i] : void 0, f = /* @__PURE__ */ t(l, { children: [
64
+ i === "image-thumbnail" && p ? /* @__PURE__ */ a(
65
+ "img",
66
+ {
67
+ src: p,
68
+ alt: "",
69
+ className: e["attachment-card__thumbnail"]
70
+ }
71
+ ) : /* @__PURE__ */ a(
72
+ "div",
73
+ {
74
+ className: e["attachment-card__icon"],
75
+ style: v ? { color: v } : void 0,
76
+ children: /* @__PURE__ */ a(o, { glyph: /* @__PURE__ */ a(z, { size: 40 }), size: "40" })
77
+ }
78
+ ),
79
+ /* @__PURE__ */ t("div", { className: e["attachment-card__text"], children: [
80
+ /* @__PURE__ */ a("span", { className: e["attachment-card__filename"], children: d }),
81
+ /* @__PURE__ */ a("div", { className: e["attachment-card__secondary-details"], children: c ? /* @__PURE__ */ a("span", { className: e["attachment-card__uploading-text"], children: `Uploading… (${h}%)` }) : /* @__PURE__ */ t(l, { children: [
82
+ _ && /* @__PURE__ */ a(Y, { label: _ }),
83
+ s && /* @__PURE__ */ t("div", { className: e["attachment-card__details"], children: [
84
+ /* @__PURE__ */ a("span", { children: s }),
85
+ u && /* @__PURE__ */ t("span", { className: e["attachment-card__datetime"], children: [
86
+ /* @__PURE__ */ a("span", { children: "•" }),
87
+ /* @__PURE__ */ a("span", { children: u })
88
+ ] })
93
89
  ] })
94
- ] }),
90
+ ] }) })
91
+ ] })
92
+ ] });
93
+ return /* @__PURE__ */ t("div", { className: x, children: [
94
+ /* @__PURE__ */ a("div", { className: e["attachment-card__container"], children: /* @__PURE__ */ t("div", { className: e["attachment-card__inner"], children: [
95
+ r && g ? /* @__PURE__ */ a(
96
+ "button",
97
+ {
98
+ type: "button",
99
+ className: `${e["attachment-card__left"]} ${e["attachment-card__open"]}`,
100
+ onClick: g,
101
+ "aria-label": `Open ${d}`,
102
+ children: f
103
+ }
104
+ ) : /* @__PURE__ */ a("div", { className: e["attachment-card__left"], children: f }),
95
105
  /* @__PURE__ */ a("div", { className: e["attachment-card__right"], children: /* @__PURE__ */ t("div", { className: e["attachment-card__actions"], children: [
96
- (O || c) && /* @__PURE__ */ a(
97
- r,
106
+ (L || c) && /* @__PURE__ */ a(
107
+ m,
98
108
  {
99
109
  size: "small",
100
- icon: /* @__PURE__ */ a(n, { glyph: /* @__PURE__ */ a(C, {}), size: "16" }),
110
+ icon: /* @__PURE__ */ a(o, { glyph: /* @__PURE__ */ a(w, {}), size: "16" }),
101
111
  "aria-label": c ? "Cancel upload" : "Remove attachment",
102
- onClick: I
112
+ onClick: F
103
113
  }
104
114
  ),
105
- p && /* @__PURE__ */ t(u, { children: [
115
+ r && /* @__PURE__ */ t(l, { children: [
106
116
  /* @__PURE__ */ a(
107
- r,
117
+ m,
108
118
  {
109
119
  size: "small",
110
- icon: /* @__PURE__ */ a(n, { glyph: /* @__PURE__ */ a(z, {}), size: "16" }),
120
+ icon: /* @__PURE__ */ a(o, { glyph: /* @__PURE__ */ a(y, {}), size: "16" }),
111
121
  "aria-label": "More options",
112
- onClick: F
122
+ onClick: b
113
123
  }
114
124
  ),
115
125
  /* @__PURE__ */ a(
116
- r,
126
+ m,
117
127
  {
118
128
  size: "small",
119
- icon: /* @__PURE__ */ a(n, { glyph: /* @__PURE__ */ a(w, {}), size: "16" }),
129
+ icon: /* @__PURE__ */ a(o, { glyph: /* @__PURE__ */ a($, {}), size: "16" }),
120
130
  "aria-label": "Download",
121
- onClick: N
131
+ onClick: O
122
132
  }
123
133
  )
124
134
  ] })
@@ -128,12 +138,12 @@ function ma({
128
138
  "div",
129
139
  {
130
140
  className: e["attachment-card__progress-fill"],
131
- style: { width: `${Math.min(100, Math.max(0, m))}%` }
141
+ style: { width: `${Math.min(100, Math.max(0, h))}%` }
132
142
  }
133
143
  ) })
134
144
  ] });
135
145
  }
136
146
  export {
137
- ma as default
147
+ sa as default
138
148
  };
139
149
  //# sourceMappingURL=AttachmentCard.js.map