@fibery/ui-kit 1.29.5 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/package.json +5 -5
  2. package/src/button/actions-button-compact.tsx +3 -3
  3. package/src/button/actions-button.tsx +5 -5
  4. package/src/button/button.tsx +40 -4
  5. package/src/design-system.ts +83 -7
  6. package/src/emoji-picker/emoji-picker-content-with-color.tsx +4 -11
  7. package/src/emoji-picker/primitives/category-label.tsx +4 -4
  8. package/src/emoji-picker/primitives/grid-item.tsx +2 -5
  9. package/src/emoji-picker/primitives/search.tsx +8 -8
  10. package/src/emoji-picker/primitives/skin-tone.tsx +2 -2
  11. package/src/emoji-picker/use-emoji-found.tsx +6 -0
  12. package/src/error-alert/error-alert.tsx +3 -3
  13. package/src/icon-button.tsx +1 -1
  14. package/src/icons/Icon.tsx +58 -49
  15. package/src/icons/ast/PinFilled.ts +8 -0
  16. package/src/icons/ast/index.tsx +1 -0
  17. package/src/icons/react/Abort.tsx +4 -3
  18. package/src/icons/react/Activity.tsx +4 -3
  19. package/src/icons/react/ActivityLog.tsx +4 -3
  20. package/src/icons/react/Add.tsx +4 -3
  21. package/src/icons/react/AddAfter.tsx +4 -3
  22. package/src/icons/react/AddBefore.tsx +4 -3
  23. package/src/icons/react/AddCompact.tsx +4 -3
  24. package/src/icons/react/AddGroup.tsx +4 -3
  25. package/src/icons/react/AddReactions.tsx +4 -3
  26. package/src/icons/react/AiAssistant.tsx +4 -3
  27. package/src/icons/react/AiAvatar.tsx +4 -3
  28. package/src/icons/react/AlertTriangle.tsx +4 -3
  29. package/src/icons/react/App.tsx +4 -3
  30. package/src/icons/react/AppDetails.tsx +4 -3
  31. package/src/icons/react/AppStore.tsx +4 -3
  32. package/src/icons/react/AppStoreOneColor.tsx +4 -3
  33. package/src/icons/react/AppTemplates.tsx +4 -3
  34. package/src/icons/react/AppWebhooks.tsx +4 -3
  35. package/src/icons/react/AppWiki.tsx +4 -3
  36. package/src/icons/react/ArrowBarLeft.tsx +4 -3
  37. package/src/icons/react/ArrowBarRight.tsx +4 -3
  38. package/src/icons/react/ArrowBottom.tsx +4 -3
  39. package/src/icons/react/ArrowCollapse.tsx +4 -3
  40. package/src/icons/react/ArrowCollapseVertical.tsx +4 -3
  41. package/src/icons/react/ArrowForward.tsx +4 -3
  42. package/src/icons/react/ArrowLeft.tsx +4 -3
  43. package/src/icons/react/ArrowRight.tsx +4 -3
  44. package/src/icons/react/ArrowTop.tsx +4 -3
  45. package/src/icons/react/AskForInput.tsx +4 -3
  46. package/src/icons/react/Atom.tsx +4 -3
  47. package/src/icons/react/AutomationsCancelled.tsx +4 -3
  48. package/src/icons/react/AutomationsDisabled.tsx +4 -3
  49. package/src/icons/react/AutomationsError.tsx +4 -3
  50. package/src/icons/react/AutomationsInProgress.tsx +4 -3
  51. package/src/icons/react/AutomationsNotStarted.tsx +4 -3
  52. package/src/icons/react/AutomationsSuccess.tsx +4 -3
  53. package/src/icons/react/Back.tsx +4 -3
  54. package/src/icons/react/BacklogIcon.tsx +4 -3
  55. package/src/icons/react/BatchActionsIcon.tsx +4 -3
  56. package/src/icons/react/BellCircle.tsx +4 -3
  57. package/src/icons/react/BellFilled.tsx +4 -3
  58. package/src/icons/react/BellOff.tsx +4 -3
  59. package/src/icons/react/BellRinging.tsx +4 -3
  60. package/src/icons/react/BellX.tsx +4 -3
  61. package/src/icons/react/Bolt.tsx +4 -3
  62. package/src/icons/react/Cards.tsx +4 -3
  63. package/src/icons/react/Chat.tsx +4 -3
  64. package/src/icons/react/ChatAi.tsx +4 -3
  65. package/src/icons/react/CheckCircle.tsx +4 -3
  66. package/src/icons/react/CheckCircleFilled.tsx +4 -3
  67. package/src/icons/react/Checked.tsx +4 -3
  68. package/src/icons/react/Clear.tsx +4 -3
  69. package/src/icons/react/ClearValue.tsx +4 -3
  70. package/src/icons/react/Clock.tsx +4 -3
  71. package/src/icons/react/ClockAlarm.tsx +4 -3
  72. package/src/icons/react/ClockForward.tsx +4 -3
  73. package/src/icons/react/Close.tsx +4 -3
  74. package/src/icons/react/ColorCoding.tsx +4 -3
  75. package/src/icons/react/ColorCodingFilled.tsx +4 -3
  76. package/src/icons/react/Columns.tsx +4 -3
  77. package/src/icons/react/Columns2.tsx +4 -3
  78. package/src/icons/react/Columns4.tsx +4 -3
  79. package/src/icons/react/Copy.tsx +4 -3
  80. package/src/icons/react/Database.tsx +4 -3
  81. package/src/icons/react/DatabaseStroke.tsx +4 -3
  82. package/src/icons/react/Delete.tsx +4 -3
  83. package/src/icons/react/Demo.tsx +4 -3
  84. package/src/icons/react/DoubleArrowLeft.tsx +4 -3
  85. package/src/icons/react/DoubleArrowRight.tsx +4 -3
  86. package/src/icons/react/DragBlockHandle.tsx +4 -3
  87. package/src/icons/react/DragBlockHandleSingle.tsx +4 -3
  88. package/src/icons/react/DragHandle.tsx +4 -3
  89. package/src/icons/react/DynamicFilterValue.tsx +4 -3
  90. package/src/icons/react/Email.tsx +4 -3
  91. package/src/icons/react/EmojiDelete.tsx +4 -3
  92. package/src/icons/react/Export.tsx +4 -3
  93. package/src/icons/react/ExtensionAssignments.tsx +4 -3
  94. package/src/icons/react/ExtensionAvatar.tsx +4 -3
  95. package/src/icons/react/ExtensionComments.tsx +4 -3
  96. package/src/icons/react/ExtensionFiles.tsx +4 -3
  97. package/src/icons/react/ExtensionReferences.tsx +4 -3
  98. package/src/icons/react/ExtensionWorkflow.tsx +4 -3
  99. package/src/icons/react/Eye.tsx +4 -3
  100. package/src/icons/react/Favorites.tsx +4 -3
  101. package/src/icons/react/FavoritesChecked.tsx +4 -3
  102. package/src/icons/react/FavoritesOff.tsx +4 -3
  103. package/src/icons/react/FiberyMono.tsx +4 -3
  104. package/src/icons/react/FieldUnit.tsx +4 -3
  105. package/src/icons/react/Fields.tsx +4 -3
  106. package/src/icons/react/Figma.tsx +4 -3
  107. package/src/icons/react/FileUpload.tsx +4 -3
  108. package/src/icons/react/Filter.tsx +4 -3
  109. package/src/icons/react/FocusMode.tsx +4 -3
  110. package/src/icons/react/FocusModeOff.tsx +4 -3
  111. package/src/icons/react/FormWithCover.tsx +4 -3
  112. package/src/icons/react/FormWithoutCover.tsx +4 -3
  113. package/src/icons/react/Github.tsx +4 -3
  114. package/src/icons/react/Gitlab.tsx +4 -3
  115. package/src/icons/react/Globe.tsx +4 -3
  116. package/src/icons/react/GlobeSimple.tsx +4 -3
  117. package/src/icons/react/GoogleDrive.tsx +4 -3
  118. package/src/icons/react/GoogleMap.tsx +4 -3
  119. package/src/icons/react/Headphones.tsx +4 -3
  120. package/src/icons/react/HeadphonesAi.tsx +4 -3
  121. package/src/icons/react/Hide.tsx +4 -3
  122. package/src/icons/react/Highlights.tsx +4 -3
  123. package/src/icons/react/Hint.tsx +4 -3
  124. package/src/icons/react/Home.tsx +4 -3
  125. package/src/icons/react/ImageXmark.tsx +4 -3
  126. package/src/icons/react/Import.tsx +4 -3
  127. package/src/icons/react/InfoCircle.tsx +4 -3
  128. package/src/icons/react/InfoCircleFilled.tsx +4 -3
  129. package/src/icons/react/Integration.tsx +4 -3
  130. package/src/icons/react/IntegrationsIntegrationDiscourseColor.tsx +4 -3
  131. package/src/icons/react/IntegrationsIntegrationIntercomColor.tsx +4 -3
  132. package/src/icons/react/IntegrationsIntegrationSlackColor.tsx +4 -3
  133. package/src/icons/react/IntegrationsIntegrationZendeskColor.tsx +4 -3
  134. package/src/icons/react/InvitePeople.tsx +4 -3
  135. package/src/icons/react/Items.tsx +4 -3
  136. package/src/icons/react/Jira.tsx +4 -3
  137. package/src/icons/react/Key.tsx +4 -3
  138. package/src/icons/react/Lab.tsx +4 -3
  139. package/src/icons/react/LayoutDouble.tsx +4 -3
  140. package/src/icons/react/LayoutSingle.tsx +4 -3
  141. package/src/icons/react/LeftPanel.tsx +4 -3
  142. package/src/icons/react/Levels.tsx +4 -3
  143. package/src/icons/react/LineDivider.tsx +4 -3
  144. package/src/icons/react/Link.tsx +4 -3
  145. package/src/icons/react/Lock.tsx +4 -3
  146. package/src/icons/react/Loom.tsx +4 -3
  147. package/src/icons/react/MenuCollapser.tsx +4 -3
  148. package/src/icons/react/MessagePlusSquare.tsx +4 -3
  149. package/src/icons/react/Milestones.tsx +4 -3
  150. package/src/icons/react/Minus.tsx +4 -3
  151. package/src/icons/react/Miro.tsx +4 -3
  152. package/src/icons/react/MirrorOff.tsx +4 -3
  153. package/src/icons/react/MirrorOn.tsx +4 -3
  154. package/src/icons/react/Mixpanel.tsx +4 -3
  155. package/src/icons/react/Monitor.tsx +4 -3
  156. package/src/icons/react/More.tsx +4 -3
  157. package/src/icons/react/MoreCompact.tsx +4 -3
  158. package/src/icons/react/MoveBottom.tsx +4 -3
  159. package/src/icons/react/MoveLeft.tsx +4 -3
  160. package/src/icons/react/MoveRight.tsx +4 -3
  161. package/src/icons/react/MoveTop.tsx +4 -3
  162. package/src/icons/react/MySpace.tsx +4 -3
  163. package/src/icons/react/Network.tsx +4 -3
  164. package/src/icons/react/NetworkAdd.tsx +4 -3
  165. package/src/icons/react/Notifications.tsx +4 -3
  166. package/src/icons/react/ObjChild.tsx +4 -3
  167. package/src/icons/react/ObjM2M.tsx +4 -3
  168. package/src/icons/react/ObjO2O.tsx +4 -3
  169. package/src/icons/react/ObjParent.tsx +4 -3
  170. package/src/icons/react/ObjSelf.tsx +4 -3
  171. package/src/icons/react/OnSchedule.tsx +4 -3
  172. package/src/icons/react/OpenAsPage.tsx +4 -3
  173. package/src/icons/react/PageRegularMode.tsx +4 -3
  174. package/src/icons/react/PageWideMode.tsx +4 -3
  175. package/src/icons/react/Pencil.tsx +4 -3
  176. package/src/icons/react/People.tsx +4 -3
  177. package/src/icons/react/Photo.tsx +4 -3
  178. package/src/icons/react/Pin.tsx +4 -3
  179. package/src/icons/react/PinFilled.tsx +13 -0
  180. package/src/icons/react/Popup.tsx +4 -3
  181. package/src/icons/react/Posts.tsx +4 -3
  182. package/src/icons/react/Question.tsx +4 -3
  183. package/src/icons/react/Refresh.tsx +4 -3
  184. package/src/icons/react/Remove.tsx +4 -3
  185. package/src/icons/react/RemovePeople.tsx +4 -3
  186. package/src/icons/react/Reply.tsx +4 -3
  187. package/src/icons/react/Restore.tsx +4 -3
  188. package/src/icons/react/RicheditorActionsMore.tsx +4 -3
  189. package/src/icons/react/RicheditorBlockCallout.tsx +4 -3
  190. package/src/icons/react/RicheditorBlockCode.tsx +4 -3
  191. package/src/icons/react/RicheditorBlockEmbed.tsx +4 -3
  192. package/src/icons/react/RicheditorBlockEntity.tsx +4 -3
  193. package/src/icons/react/RicheditorBlockFile.tsx +4 -3
  194. package/src/icons/react/RicheditorBlockH1.tsx +4 -3
  195. package/src/icons/react/RicheditorBlockH2.tsx +4 -3
  196. package/src/icons/react/RicheditorBlockH3.tsx +4 -3
  197. package/src/icons/react/RicheditorBlockH4.tsx +4 -3
  198. package/src/icons/react/RicheditorBlockMention.tsx +4 -3
  199. package/src/icons/react/RicheditorBlockParagraph.tsx +4 -3
  200. package/src/icons/react/RicheditorBlockQuote.tsx +4 -3
  201. package/src/icons/react/RicheditorChecklistCreate.tsx +4 -3
  202. package/src/icons/react/RicheditorCommentCreate.tsx +4 -3
  203. package/src/icons/react/RicheditorEntityLinkCreate.tsx +4 -3
  204. package/src/icons/react/RicheditorHistoryRedo.tsx +4 -3
  205. package/src/icons/react/RicheditorHistoryUndo.tsx +4 -3
  206. package/src/icons/react/RicheditorImageAlignCenter.tsx +4 -3
  207. package/src/icons/react/RicheditorImageAlignLeft.tsx +4 -3
  208. package/src/icons/react/RicheditorImageAlignRight.tsx +4 -3
  209. package/src/icons/react/RicheditorImageUpload.tsx +4 -3
  210. package/src/icons/react/RicheditorImageWrapCenter.tsx +4 -3
  211. package/src/icons/react/RicheditorImageWrapLeft.tsx +4 -3
  212. package/src/icons/react/RicheditorImageWrapRight.tsx +4 -3
  213. package/src/icons/react/RicheditorImageZoom.tsx +4 -3
  214. package/src/icons/react/RicheditorLinkCreate.tsx +4 -3
  215. package/src/icons/react/RicheditorLinkedhighlightCreate.tsx +4 -3
  216. package/src/icons/react/RicheditorListBullet.tsx +4 -3
  217. package/src/icons/react/RicheditorListIndent.tsx +4 -3
  218. package/src/icons/react/RicheditorListOrdered.tsx +4 -3
  219. package/src/icons/react/RicheditorListUnindent.tsx +4 -3
  220. package/src/icons/react/RicheditorMarkCode.tsx +4 -3
  221. package/src/icons/react/RicheditorMarkEm.tsx +4 -3
  222. package/src/icons/react/RicheditorMarkStrike.tsx +4 -3
  223. package/src/icons/react/RicheditorMarkStrong.tsx +4 -3
  224. package/src/icons/react/RicheditorMarkTextBackgroundColor.tsx +4 -3
  225. package/src/icons/react/RicheditorMarkUnderline.tsx +4 -3
  226. package/src/icons/react/RicheditorOpenLink.tsx +4 -3
  227. package/src/icons/react/RicheditorTableCreate.tsx +4 -3
  228. package/src/icons/react/RicheditorUnlink.tsx +4 -3
  229. package/src/icons/react/RicheditorVideoUpload.tsx +4 -3
  230. package/src/icons/react/RightPanel.tsx +4 -3
  231. package/src/icons/react/Rows.tsx +4 -3
  232. package/src/icons/react/Search.tsx +4 -3
  233. package/src/icons/react/SelfReferenceOff.tsx +4 -3
  234. package/src/icons/react/SelfReferenceOn.tsx +4 -3
  235. package/src/icons/react/SendArrow.tsx +4 -3
  236. package/src/icons/react/Settings.tsx +4 -3
  237. package/src/icons/react/Share.tsx +4 -3
  238. package/src/icons/react/Shared.tsx +4 -3
  239. package/src/icons/react/ShieldKeyhole.tsx +4 -3
  240. package/src/icons/react/Sidebar.tsx +4 -3
  241. package/src/icons/react/SidebarFields.tsx +4 -3
  242. package/src/icons/react/SidebarFieldsOpened.tsx +4 -3
  243. package/src/icons/react/SimpleCompass.tsx +4 -3
  244. package/src/icons/react/Slack.tsx +4 -3
  245. package/src/icons/react/SlackIcon.tsx +4 -3
  246. package/src/icons/react/SlideMenu.tsx +4 -3
  247. package/src/icons/react/SlideMenuOpened.tsx +4 -3
  248. package/src/icons/react/SmartFolder.tsx +4 -3
  249. package/src/icons/react/Sort.tsx +4 -3
  250. package/src/icons/react/SortOnBottom.tsx +4 -3
  251. package/src/icons/react/SortOnTop.tsx +4 -3
  252. package/src/icons/react/Spinner.tsx +4 -3
  253. package/src/icons/react/Success.tsx +4 -3
  254. package/src/icons/react/Templates.tsx +4 -3
  255. package/src/icons/react/Terminal.tsx +4 -3
  256. package/src/icons/react/Twitter.tsx +4 -3
  257. package/src/icons/react/TypeBoolean.tsx +4 -3
  258. package/src/icons/react/TypeButton.tsx +4 -3
  259. package/src/icons/react/TypeCheckbox.tsx +4 -3
  260. package/src/icons/react/TypeDate.tsx +4 -3
  261. package/src/icons/react/TypeEmail.tsx +4 -3
  262. package/src/icons/react/TypeEmoji.tsx +4 -3
  263. package/src/icons/react/TypeFormula.tsx +4 -3
  264. package/src/icons/react/TypeFunction.tsx +4 -3
  265. package/src/icons/react/TypeLocation.tsx +4 -3
  266. package/src/icons/react/TypeLookup.tsx +4 -3
  267. package/src/icons/react/TypeMoney.tsx +4 -3
  268. package/src/icons/react/TypeMultiSelect.tsx +4 -3
  269. package/src/icons/react/TypeNumber.tsx +4 -3
  270. package/src/icons/react/TypePercent.tsx +4 -3
  271. package/src/icons/react/TypePhone.tsx +4 -3
  272. package/src/icons/react/TypeRelation.tsx +4 -3
  273. package/src/icons/react/TypeRichText.tsx +4 -3
  274. package/src/icons/react/TypeRule.tsx +4 -3
  275. package/src/icons/react/TypeSingleSelect.tsx +4 -3
  276. package/src/icons/react/TypeText.tsx +4 -3
  277. package/src/icons/react/TypeUrl.tsx +4 -3
  278. package/src/icons/react/UnitsAvatar.tsx +4 -3
  279. package/src/icons/react/UnitsCollection.tsx +4 -3
  280. package/src/icons/react/UnitsCounter.tsx +4 -3
  281. package/src/icons/react/UnitsDbBadgeAbbr.tsx +4 -3
  282. package/src/icons/react/UnitsDbBadgeFull.tsx +4 -3
  283. package/src/icons/react/UnitsDbIcon.tsx +4 -3
  284. package/src/icons/react/UnitsField.tsx +4 -3
  285. package/src/icons/react/UnitsInput.tsx +4 -3
  286. package/src/icons/react/UnitsProgressBar.tsx +4 -3
  287. package/src/icons/react/UnitsRichText.tsx +4 -3
  288. package/src/icons/react/UnitsSnippet.tsx +4 -3
  289. package/src/icons/react/Upgrade.tsx +4 -3
  290. package/src/icons/react/UsbFlashDrive.tsx +4 -3
  291. package/src/icons/react/UserRole.tsx +4 -3
  292. package/src/icons/react/ViewBoard.tsx +4 -3
  293. package/src/icons/react/ViewCalendar.tsx +4 -3
  294. package/src/icons/react/ViewCanvas.tsx +4 -3
  295. package/src/icons/react/ViewChart.tsx +4 -3
  296. package/src/icons/react/ViewDetails.tsx +4 -3
  297. package/src/icons/react/ViewDocument.tsx +4 -3
  298. package/src/icons/react/ViewFeed.tsx +4 -3
  299. package/src/icons/react/ViewForm.tsx +4 -3
  300. package/src/icons/react/ViewList.tsx +4 -3
  301. package/src/icons/react/ViewMap.tsx +4 -3
  302. package/src/icons/react/ViewPage.tsx +4 -3
  303. package/src/icons/react/ViewTable.tsx +4 -3
  304. package/src/icons/react/ViewTimeline.tsx +4 -3
  305. package/src/icons/react/Views.tsx +4 -3
  306. package/src/icons/react/Warning.tsx +4 -3
  307. package/src/icons/react/WarningTriangle.tsx +4 -3
  308. package/src/icons/react/Youtube.tsx +4 -3
  309. package/src/icons/react/index.tsx +1 -0
  310. package/src/icons/types.ts +12 -8
  311. package/src/loaders.tsx +1 -1
  312. package/src/select/custom-select-partials/clear-indicator.tsx +5 -4
  313. package/src/select/select-in-popover.tsx +21 -7
  314. package/src/toast/primitives.tsx +3 -3
  315. package/src/toggle-on-off.tsx +4 -4
  316. package/src/button/icon-button.tsx +0 -49
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fibery/ui-kit",
3
- "version": "1.29.5",
3
+ "version": "1.31.0",
4
4
  "private": false,
5
5
  "files": [
6
6
  "src/antd/styles.ts",
@@ -76,8 +76,8 @@
76
76
  "screenfull": "6.0.1",
77
77
  "ua-parser-js": "0.7.24",
78
78
  "@fibery/helpers": "1.3.0",
79
- "@fibery/emoji-data": "2.6.0",
80
- "@fibery/react": "1.4.0"
79
+ "@fibery/react": "1.4.0",
80
+ "@fibery/emoji-data": "2.6.0"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "react": "^18.2.0",
@@ -111,8 +111,8 @@
111
111
  "svgo": "2.8.0",
112
112
  "typescript": "5.4.3",
113
113
  "unist-util-reduce": "0.2.2",
114
- "@fibery/eslint-config": "8.6.0",
115
- "@fibery/babel-preset": "7.4.0"
114
+ "@fibery/babel-preset": "7.4.0",
115
+ "@fibery/eslint-config": "8.6.0"
116
116
  },
117
117
  "jest": {
118
118
  "testEnvironment": "jsdom",
@@ -1,12 +1,12 @@
1
- import {IconButton, IconButtonProps} from "./icon-button";
2
- import MoreCompactIcon from "../icons/react/MoreCompact";
3
1
  import {forwardRef} from "react";
2
+ import {IconButton, IconButtonProps} from "../button-v2/icon-button";
3
+ import MoreCompactIcon from "../icons/react/MoreCompact";
4
4
 
5
5
  export const ActionsButtonCompact = forwardRef<HTMLButtonElement, IconButtonProps>(
6
6
  function ActionsButtonCompactComponent({...rest}, ref) {
7
7
  return (
8
8
  <IconButton ref={ref} size="small" {...rest}>
9
- <MoreCompactIcon iconSize={18} containerSize={20} />
9
+ <MoreCompactIcon />
10
10
  </IconButton>
11
11
  );
12
12
  }
@@ -1,16 +1,16 @@
1
- import {IconButton, IconButtonProps} from "./icon-button";
2
- import MoreCompact from "../icons/react/MoreCompact";
3
- import {forwardRef} from "react";
4
1
  import {css} from "@linaria/core";
2
+ import {forwardRef} from "react";
3
+ import {IconButton, IconButtonProps} from "../button-v2/icon-button";
5
4
  import {border, themeVars} from "../design-system";
5
+ import MoreCompact from "../icons/react/MoreCompact";
6
6
 
7
7
  export const ActionsButton = forwardRef<HTMLButtonElement, IconButtonProps>(function ActionsButtonComponent(
8
8
  {...rest},
9
9
  ref
10
10
  ) {
11
11
  return (
12
- <IconButton ref={ref} size="normal" {...rest}>
13
- <MoreCompact iconSize={18} containerSize={20} />
12
+ <IconButton ref={ref} size="medium" {...rest}>
13
+ <MoreCompact />
14
14
  </IconButton>
15
15
  );
16
16
  });
@@ -4,12 +4,14 @@ import {styled} from "@linaria/react";
4
4
  import cx from "classnames";
5
5
  import _ from "lodash";
6
6
  import React, {forwardRef} from "react";
7
- import {Item} from "../item";
8
- import {useTheme} from "../theme-provider";
7
+ import {ButtonV2} from "../button-v2/button";
9
8
  import {border, colors, getOpacities, opacity, space, textStyles} from "../design-system";
10
9
  import {IconBaseProps} from "../icons/types";
10
+ import {Item} from "../item";
11
11
  import {Spinner} from "../loaders";
12
+ import {useTheme} from "../theme-provider";
12
13
  import {ButtonBase, ButtonBaseProps, buttonBorderWidth, getMainColor, getTextColor} from "./button-base";
14
+ import {isButtonsV2} from "../utils";
13
15
 
14
16
  type PositionInGroup = "first" | "middle" | "last";
15
17
 
@@ -142,7 +144,7 @@ const leftContainerClassName = css`
142
144
  export type ButtonProps = ButtonBaseProps & {
143
145
  size?: ButtonSize;
144
146
  pending?: boolean;
145
- Icon?: ((props: IconBaseProps) => JSX.Element) | null;
147
+ Icon?: React.FC<IconBaseProps> | null;
146
148
  inGroup?: PositionInGroup;
147
149
  shortcut?: string;
148
150
  noOverflow?: boolean;
@@ -150,7 +152,7 @@ export type ButtonProps = ButtonBaseProps & {
150
152
  height?: string | number;
151
153
  };
152
154
 
153
- export const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(
155
+ export const ButtonComponent = forwardRef<HTMLButtonElement, ButtonProps>(function Button(
154
156
  {
155
157
  disabled,
156
158
  pending,
@@ -220,3 +222,37 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button
220
222
  </StyledButton>
221
223
  );
222
224
  });
225
+
226
+ /** @deprecated Please consider using ButtonV2 */
227
+ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(props, ref) {
228
+ if (isButtonsV2) {
229
+ const {
230
+ Icon,
231
+ dangerous,
232
+ borderless,
233
+ size = ":button-size/normal",
234
+ primary,
235
+ className,
236
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
237
+ noOverflow: _noOverflow,
238
+ width,
239
+ ...buttonProps
240
+ } = props;
241
+
242
+ const newSize = size === ":button-size/big" || size === ":button-size/normal" ? "medium" : "small";
243
+
244
+ return (
245
+ <ButtonV2
246
+ ref={ref}
247
+ className={className}
248
+ {...buttonProps}
249
+ color={dangerous ? "error" : primary ? "accent" : "neutral"}
250
+ variant={primary ? "solid" : borderless ? "ghost" : "outline"}
251
+ size={newSize}
252
+ iconStart={Icon ? <Icon /> : null}
253
+ fullWidth={width === "100%"}
254
+ />
255
+ );
256
+ }
257
+ return <ButtonComponent {...props} className={props.className} ref={ref} />;
258
+ });
@@ -322,7 +322,7 @@ export const themeColors = {
322
322
  opacityListItemGeneralDisabled: [`${opacity.opacity40}`, `${opacity.opacity40}`],
323
323
 
324
324
  // Search Items
325
- colorBgSearchItemHover: [slate.slate4, slateDark.slate4],
325
+ colorBgSearchItemHover: [slate.slate4, slateDark.slate5],
326
326
  opacitySearchItemDone: [`${opacity.opacity40}`, `${opacity.opacity40}`],
327
327
  // Entity Box Style And States
328
328
  // Basic Entity Box State
@@ -419,7 +419,6 @@ export const themeColors = {
419
419
  // :focus, :focus:hover
420
420
  colorBgPinnedFieldsLabel: [slate.slate11, slateDark.slate11],
421
421
  colorBgObjectEditorSeparator: [slate.slate12, slateDark.slate12],
422
- colorBgObjectEditorSeparatorButton: [slate.slate4, slateDark.slate4],
423
422
  colorBgMenuItemSelectedFocused: [indigo.indigo6, indigoDark.indigo6],
424
423
  colorBgFieldEditorContainer: [slate.slate2, slateDark.slate3],
425
424
  colorBgFieldEditorLinkEqualSign: [slate.slate6, slateDark.slate2],
@@ -475,10 +474,12 @@ export const themeColors = {
475
474
  progressIconFill: [slate.slate11, slateDark.slate11],
476
475
  instrumentsMenuBg: [getOpacities(whiteA.whiteA0).opacity95, getOpacities(slateDark.slate4).opacity95],
477
476
  instrumentsMenuShadow: [
478
- `0 0 0 1px ${getOpacities(slate.slate10).opacity10}, 0 2px 8px -6px ${getOpacities(slate.slate10).opacity30}`,
479
- `0 0 0 1px ${getOpacities(slateDark.slate1).opacity10}, 0 2px 8px -6px ${getOpacities(slateDark.slate1).opacity40}`,
477
+ `0 0 0 1px ${getOpacities(slate.slate10).opacity10}, 0 2px 12px -2px ${getOpacities(slate.slate10).opacity15}`,
478
+ `0 0 0 1px ${getOpacities(slateDark.slate1).opacity10}, 0 2px 12px -6px ${
479
+ getOpacities(slateDark.slate1).opacity15
480
+ }`,
480
481
  ],
481
- selectedColorBorder: [getOpacities(slate.slate6).opacity50, getOpacities(slate.slate6).opacity20],
482
+ selectedColorBorder: [getOpacities(slate.slate6).opacity25, getOpacities(slate.slate6).opacity25],
482
483
  formBg: [slate.slate2, slateDark.slate2],
483
484
  formHeaderShadow: [
484
485
  `${getOpacities(slate.slate10).opacity10} 0px 0px 6px`,
@@ -530,11 +531,84 @@ export const themeColors = {
530
531
  gridSelectedPinnedCellBorderColor: [indigo.indigo7, indigoDark.indigo7],
531
532
  gridDisabledSelectedCellBgColor: [indigo.indigo4, indigoDark.indigo5],
532
533
  gridActiveCellBorderColor: [indigo.indigo8, indigoDark.indigo9],
534
+
535
+ // #region buttons
536
+ // solid
537
+ colorBgButtonSolidAccentDefault: [indigo.indigo9, indigoDark.indigo9],
538
+ colorBgButtonSolidAccentHover: [indigo.indigo11, indigoDark.indigo10],
539
+ colorBgButtonSolidNeutralDefault: [slate.slate12, slateDark.slate12],
540
+ colorBgButtonSolidNeutralHover: [getOpacities(slate.slate12).opacity85, whiteA.whiteA0],
541
+ colorBgButtonSolidDestructiveDefault: [red.red9, redDark.red9],
542
+ colorBgButtonSolidDestructiveHover: [red.red11, redDark.red10],
543
+ colorTextButtonSolidAccent: [whiteA.whiteA0, whiteA.whiteA0],
544
+ colorTextButtonSolidAccentActive: [getOpacities(whiteA.whiteA0).opacity80, getOpacities(whiteA.whiteA0).opacity80],
545
+ colorTextButtonSolidNeutral: [whiteA.whiteA0, slateDark.slate2],
546
+ colorTextButtonSolidNeutralActive: [whiteA.whiteA0, getOpacities(slateDark.slate2).opacity80],
547
+ colorTextButtonSolidDestructive: [whiteA.whiteA0, whiteA.whiteA0],
548
+ colorTextButtonSolidDestructiveActive: [
549
+ getOpacities(whiteA.whiteA0).opacity80,
550
+ getOpacities(whiteA.whiteA0).opacity80,
551
+ ],
552
+ // outline
533
553
  colorBorderButtonOutlineAccentDefault: [indigo.indigo8, indigoDark.indigo8],
534
554
  colorBorderButtonOutlineNeutralDefault: [slate.slate8, slateDark.slate8],
555
+ colorBorderButtonOutlineDestructiveDefault: [red.red11, redDark.red11],
535
556
  colorBgButtonOutlineAccentDefault: [whiteA.whiteA0, slateDark.slate1],
536
557
  colorBgButtonOutlineAccentHover: [indigo.indigo3, indigoDark.indigo8],
558
+ colorBgButtonOutlineNeutralDefault: [whiteA.whiteA0, slateDark.slate1],
559
+ colorBgButtonOutlineNeutralHover: [slate.slate4, slateDark.slate4],
560
+ colorBgButtonOutlineDestructiveDefault: [whiteA.whiteA0, slateDark.slate1],
561
+ colorBgButtonOutlineDestructiveHover: [red.red4, redDark.red4],
537
562
  colorTextButtonOutlineAccent: [indigo.indigo11, indigoDark.indigo11],
563
+ colorTextButtonOutlineAccentActive: [
564
+ getOpacities(indigo.indigo11).opacity80,
565
+ getOpacities(indigoDark.indigo11).opacity80,
566
+ ],
567
+ colorTextButtonOutlineNeutral: [slate.slate12, slateDark.slate12],
568
+ colorTextButtonOutlineNeutralActive: [
569
+ getOpacities(slate.slate12).opacity80,
570
+ getOpacities(slateDark.slate12).opacity80,
571
+ ],
572
+ colorTextButtonOutlineDestructive: [red.red11, redDark.red11],
573
+ colorTextButtonOutlineDestructiveActive: [getOpacities(red.red11).opacity80, getOpacities(redDark.red11).opacity80],
574
+ // soft
575
+ colorBgButtonSoftAccentDefault: [indigo.indigo3, indigoDark.indigo4],
576
+ colorBgButtonSoftAccentHover: [indigo.indigo5, indigoDark.indigo6],
577
+ colorBgButtonSoftNeutralDefault: [slate.slate3, slateDark.slate3],
578
+ colorBgButtonSoftNeutralHover: [slate.slate7, slateDark.slate7],
579
+ colorBgButtonSoftDestructiveDefault: [red.red4, redDark.red4],
580
+ colorBgButtonSoftDestructiveHover: [red.red6, redDark.red6],
581
+ colorTextButtonSoftAccent: [indigo.indigo11, indigoDark.indigo11],
582
+ colorTextButtonSoftAccentActive: [
583
+ getOpacities(indigo.indigo11).opacity80,
584
+ getOpacities(indigoDark.indigo11).opacity80,
585
+ ],
586
+ colorTextButtonSoftNeutral: [slate.slate12, slateDark.slate12],
587
+ colorTextButtonSoftNeutralActive: [getOpacities(slate.slate12).opacity80, getOpacities(slateDark.slate12).opacity80],
588
+ colorTextButtonSoftDestructive: [red.red11, redDark.red11],
589
+ colorTextButtonSoftDestructiveActive: [getOpacities(red.red11).opacity80, getOpacities(redDark.red11).opacity80],
590
+ // ghost
591
+ colorBgButtonGhostAccentDefault: [transparent, transparent],
592
+ colorBgButtonGhostAccentHover: [indigo.indigo3, indigoDark.indigo3],
593
+ colorBgButtonGhostNeutralDefault: [transparent, transparent],
594
+ colorBgButtonGhostNeutralHover: [slate.slate4, slateDark.slate4],
595
+ colorBgButtonGhostDestructiveDefault: [transparent, transparent],
596
+ colorBgButtonGhostDestructiveHover: [red.red4, redDark.red4],
597
+ colorTextButtonGhostAccent: [indigo.indigo11, indigoDark.indigo11],
598
+ colorTextButtonGhostAccentActive: [
599
+ getOpacities(indigo.indigo11).opacity80,
600
+ getOpacities(indigoDark.indigo11).opacity80,
601
+ ],
602
+ colorTextButtonGhostNeutral: [slate.slate11, slateDark.slate11],
603
+ colorTextButtonGhostNeutralActive: [getOpacities(slate.slate11).opacity80, getOpacities(slateDark.slate11).opacity80],
604
+ colorTextButtonGhostDestructive: [red.red11, redDark.red11],
605
+ colorTextButtonGhostDestructiveActive: [getOpacities(red.red11).opacity80, getOpacities(redDark.red11).opacity80],
606
+ // #endregion
607
+
608
+ colorBorderAccentFocusRing: [getOpacities(indigo.indigo9).opacity30, getOpacities(indigo.indigo9).opacity30],
609
+ colorBorderNeutralFocusRing: [getOpacities(slate.slate9).opacity30, getOpacities(slate.slate9).opacity30],
610
+ colorBorderDestructiveFocusRing: [getOpacities(red.red9).opacity30, getOpacities(red.red9).opacity30],
611
+
538
612
  colorBgReactionsDefault: [slate.slate3, slateDark.slate6],
539
613
  colorBgReactionsHover: [whiteA.whiteA0, slateDark.slate2],
540
614
  colorBorderReactionsHover: [slate.slate8, slateDark.slate9],
@@ -812,8 +886,9 @@ export const layout = {
812
886
  logoSize: 16,
813
887
  menuDefaultWidth: 243,
814
888
  desktopToolbarHeight: 32,
815
- desktopMenuMinWidth: 200,
816
- menuMinWidth: 54, //TODO: make dependency to itemHeight
889
+ desktopMenuMinWidth: 240,
890
+ collapsedMenuMinWidth: 54,
891
+ menuMinWidth: 240, //TODO: make dependency to itemHeight
817
892
  menuMaxWidth: 480,
818
893
  menuItemMinWidth: 80,
819
894
  menuGroupHeaderIndent: 28, // I'm ok
@@ -857,6 +932,7 @@ export const border = {
857
932
  radius1: 1,
858
933
  radius2: 2,
859
934
  radius4: 4,
935
+ radius5: 5,
860
936
  radius6: 6,
861
937
  radius8: 8,
862
938
  radius10: 10,
@@ -1,6 +1,6 @@
1
1
  import {css} from "@linaria/core";
2
- import {useState, useRef} from "react";
3
- import {IconButton} from "../button/icon-button";
2
+ import {useRef, useState} from "react";
3
+ import {IconButton} from "../button-v2/icon-button";
4
4
  import {CollapsibleContent, CollapsibleRoot, CollapsibleTrigger} from "../collapsible";
5
5
  import {ColorPicker} from "../color-picker";
6
6
  import {getIconColor, space} from "../design-system";
@@ -30,15 +30,8 @@ const ColorPickerCollapsibleTrigger: React.FC<ColorPickerCollapsibleTrigger> = (
30
30
  return (
31
31
  <CollapsibleTrigger asChild>
32
32
  <Tooltip title={label}>
33
- <IconButton
34
- data-testid="emoji-picker-color-trigger"
35
- size="big"
36
- className={css`
37
- border-top-left-radius: 0;
38
- border-bottom-left-radius: 0;
39
- `}
40
- >
41
- <Icon color={iconColor} iconSize={18} containerSize={20} />
33
+ <IconButton data-testid="emoji-picker-color-trigger" size="small">
34
+ <Icon color={iconColor} />
42
35
  </IconButton>
43
36
  </Tooltip>
44
37
  </CollapsibleTrigger>
@@ -1,10 +1,10 @@
1
1
  import type {Category} from "@fibery/emoji-data";
2
2
 
3
3
  import {css} from "@linaria/core";
4
+ import {IconButton} from "../../button-v2/icon-button";
4
5
  import {space, textStyles, themeVars} from "../../design-system";
5
- import {useEmojiPickerCtx, useEmojiPickerI18N} from "./root";
6
- import {IconButton} from "../../button/icon-button";
7
6
  import Settings from "../../icons/react/Settings";
7
+ import {useEmojiPickerCtx, useEmojiPickerI18N} from "./root";
8
8
 
9
9
  const categoryLabelCss = css`
10
10
  ${textStyles.heading6}
@@ -33,8 +33,8 @@ export const EmojiPickerCategoryLabel: React.FC<EmojiPickerCategoryLabelProps> =
33
33
  <span>{label}</span>
34
34
 
35
35
  {category.id === "custom" && emojiPickerCtx.onCustomCategorySettings && (
36
- <IconButton onClick={emojiPickerCtx.onCustomCategorySettings}>
37
- <Settings iconSize={16} />
36
+ <IconButton onClick={emojiPickerCtx.onCustomCategorySettings} size="small">
37
+ <Settings />
38
38
  </IconButton>
39
39
  )}
40
40
  </div>
@@ -1,7 +1,7 @@
1
1
  import type {EmojiItem} from "@fibery/emoji-data";
2
2
  import {css} from "@linaria/core";
3
3
  import {memo} from "react";
4
- import {IconButton} from "../../button/icon-button";
4
+ import {IconButton} from "../../button-v2/icon-button";
5
5
  import {themeVars} from "../../design-system";
6
6
  import {useEmojiDataStoreSelector} from "../stores/emoji-data-store";
7
7
  import {useEmojiPickerContentSettings} from "./content";
@@ -39,15 +39,12 @@ export const EmojiPickerGridItem = memo<EmojiPickerGridItemProps>(({id, category
39
39
  width: emojiContentSettings.emojiContainerSize,
40
40
  height: emojiContentSettings.emojiContainerSize,
41
41
  }}
42
- size="big"
42
+ size="large"
43
43
  onClick={() => emojiPickerCtx.onEmojiSelect(emoji)}
44
44
  onMouseEnter={() => setEmojiPreview({emoji, categoryId})}
45
45
  onMouseLeave={() => setEmojiPreview(null)}
46
46
  data-highlighted={highlighted}
47
47
  className={css`
48
- display: flex;
49
- align-items: center;
50
- justify-content: center;
51
48
  &:hover:not(:disabled),
52
49
  &:focus-visible,
53
50
  &[data-highlighted="true"] {
@@ -2,16 +2,16 @@ import {EmojiItem} from "@fibery/emoji-data";
2
2
  import {useComposedRefs} from "@fibery/react/src/use-composed-refs";
3
3
  import {css, cx} from "@linaria/core";
4
4
  import {startTransition, useId, useRef} from "react";
5
- import {IconButton} from "../../button/icon-button";
5
+ import {IconButton} from "../../button-v2/icon-button";
6
6
  import {border, space, textStyles, themeVars} from "../../design-system";
7
7
  import Close from "../../icons/react/Close";
8
8
  import Search from "../../icons/react/Search";
9
9
  import {useEmojiDataStore} from "../stores/emoji-data-store";
10
+ import type {EmojiPickerGridHandle} from "./grid";
11
+ import {useEmojiPreview, useSetEmojiPreview} from "./preview-provider";
10
12
  import {useEmojiPickerCtx, useEmojiPickerI18N} from "./root";
11
13
  import {useFoundEmojis, useSetFoundEmojis} from "./search-provider";
12
14
  import {useEmojiSkin} from "./skin-provider";
13
- import {useEmojiPreview, useSetEmojiPreview} from "./preview-provider";
14
- import type {EmojiPickerGridHandle} from "./grid";
15
15
 
16
16
  const searchCss = css`
17
17
  ${textStyles.regular}
@@ -24,7 +24,7 @@ const searchCss = css`
24
24
 
25
25
  display: flex;
26
26
  align-items: center;
27
- padding-left: ${space.s12}px;
27
+ padding-left: ${space.s8}px;
28
28
  gap: ${space.s2}px;
29
29
 
30
30
  /* For screenreaders only, via https://stackoverflow.com/a/19758620 */
@@ -58,13 +58,13 @@ const searchInputCss = css`
58
58
  `;
59
59
 
60
60
  const searchIconCss = css`
61
- padding: ${space.s2}px;
61
+ padding: ${space.s4}px;
62
62
  `;
63
63
 
64
64
  const extraActionSlotCss = css`
65
65
  background-color: var(--fibery-emoji-hover-color, ${themeVars.inputCopyBgColor});
66
- border-top-right-radius: ${space.s6}px;
67
- border-bottom-right-radius: ${space.s6}px;
66
+ border-radius: ${space.s6}px;
67
+ margin-right: ${space.s4}px;
68
68
  `;
69
69
 
70
70
  export type EmojiPickerSearchProps = {
@@ -159,7 +159,7 @@ export const EmojiPickerSearch: React.FC<EmojiPickerSearchProps> = ({
159
159
  <section className={cx(searchCss, className)} aria-label={i18n.search}>
160
160
  {foundEmojis ? (
161
161
  <IconButton size="small" onClick={clearSearch}>
162
- <Close iconSize={16} />
162
+ <Close />
163
163
  </IconButton>
164
164
  ) : (
165
165
  <span className={searchIconCss}>
@@ -1,11 +1,11 @@
1
1
  import {EmojiSkin} from "@fibery/emoji-data";
2
2
  import {css, cx} from "@linaria/core";
3
3
  import {useState} from "react";
4
+ import {IconButton} from "../../button-v2/icon-button";
4
5
  import {textStyles, themeVars} from "../../design-system";
5
6
  import {Emoji} from "./emoji";
6
7
  import {useEmojiPickerCtx, useEmojiPickerI18N} from "./root";
7
8
  import {useEmojiSkin, useSetEmojiSkin} from "./skin-provider";
8
- import {IconButton} from "../../button/icon-button";
9
9
 
10
10
  const skinToneWrapperCss = css`
11
11
  display: flex;
@@ -75,7 +75,7 @@ export const EmojiPickerSkinTone: React.FC<EmojiPickerSkinToneProps> = ({classNa
75
75
  skinToneNodes.push(
76
76
  <span key={`skin-tone-${skinTone}`} className={cx(skinToneSwatchCss, (selected || opened) && expandedCss)}>
77
77
  <IconButton
78
- size="big"
78
+ size="large"
79
79
  onClick={() => {
80
80
  if (opened) {
81
81
  setSkin(skinTone as EmojiSkin);
@@ -0,0 +1,6 @@
1
+ import {EmojiDataStore, useEmojiDataStoreSelector} from "./stores/emoji-data-store";
2
+
3
+ export const useEmojiFound = (value: string | undefined | null) => {
4
+ const selector = (store: EmojiDataStore) => (value ? Boolean(store.get(value)) : false);
5
+ return useEmojiDataStoreSelector(selector);
6
+ };
@@ -1,5 +1,5 @@
1
1
  import {css} from "@linaria/core";
2
- import {IconButton} from "../button/icon-button";
2
+ import {IconButton} from "../button-v2/icon-button";
3
3
  import {border, layout, space, textStyles, themeVars} from "../design-system";
4
4
  import CloseIcon from "../icons/react/Close";
5
5
  import WarningIcon from "../icons/react/WarningTriangle";
@@ -50,8 +50,8 @@ export const ErrorAlert: React.FC<ErrorAlertProps> = ({message, description, act
50
50
  </div>
51
51
  {action}
52
52
  {onClose ? (
53
- <IconButton onClick={onClose} aria-label="Hide error">
54
- <CloseIcon iconSize={16} />
53
+ <IconButton size="small" onClick={onClose} aria-label="Hide error">
54
+ <CloseIcon />
55
55
  </IconButton>
56
56
  ) : null}
57
57
  </div>
@@ -1,3 +1,3 @@
1
- import {IconButton} from "./button/icon-button";
1
+ import {IconButton} from "./button-v2/icon-button";
2
2
 
3
3
  export {IconButton};
@@ -1,61 +1,70 @@
1
- import {css} from "@linaria/core";
2
- import {themeVars, iconSize as defaultIconSize, viewBoxSize, border} from "../design-system";
1
+ import {css, cx} from "@linaria/core";
2
+ import {forwardRef} from "react";
3
+ import {border, iconSize as defaultIconSize, themeVars, viewBoxSize} from "../design-system";
3
4
  import {generateIconFromAst} from "./generate-icon-from-ast";
4
5
  import {IconProps} from "./types";
5
- import {getShiftStyle} from "./get-shift-style";
6
- import {getIconContainerStyle} from "./get-icon-container-style";
7
- import {forwardRef} from "react";
8
6
 
9
- const iconStyle = css`
7
+ export const iconColorVar = "--fibery-icon-color";
8
+
9
+ const iconContainerSizeVar = "--fibery-icon-container-size";
10
+ export const iconSizeVar = "--fibery-icon-size";
11
+
12
+ const size = `var(${iconSizeVar}, ${defaultIconSize}px)`;
13
+ const containerSize = `var(${iconContainerSizeVar}, ${size})`;
14
+
15
+ export const iconContainer = css`
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: center;
10
19
  shape-rendering: geometricprecision;
11
20
  border-radius: ${border.radius4}px;
21
+
22
+ color: var(${iconColorVar}, ${themeVars.iconColor});
23
+ fill: currentColor;
24
+
25
+ width: ${size};
26
+ height: ${size};
27
+ `;
28
+
29
+ const withMargin = css`
30
+ margin: calc((${containerSize} - ${size}) / 2);
12
31
  `;
13
32
 
14
- export const Icon = forwardRef<HTMLSpanElement, IconProps>(function Icon(
15
- {
16
- icon,
17
- containerSize,
18
- color,
19
- viewBox = viewBoxSize,
20
- iconSize = defaultIconSize,
21
- onMouseDown,
22
- onMouseEnter,
23
- onMouseLeave,
24
- children,
25
- },
33
+ const inheritColor = css`
34
+ color: inherit;
35
+ `;
36
+
37
+ export const Icon = forwardRef<SVGSVGElement, IconProps>(function Icon(
38
+ {icon, iconSize, containerSize, viewBox = viewBoxSize, children, style, color, className, ...rest},
26
39
  ref
27
- ): JSX.Element {
28
- return (
29
- <span
40
+ ) {
41
+ const iconStyle = {
42
+ [iconColorVar]: color,
43
+ [iconContainerSizeVar]: containerSize ? containerSize + "px" : undefined,
44
+ [iconSizeVar]: iconSize ? iconSize + "px" : undefined,
45
+ ...style,
46
+ };
47
+ const iconClassName = cx(iconContainer, containerSize && withMargin, color === null && inheritColor, className);
48
+
49
+ return icon ? (
50
+ generateIconFromAst(icon.icon.children[0], `svg-${icon.name}`, {
51
+ xmlns: "http://www.w3.org/2000/svg",
52
+ className: iconClassName,
53
+ viewBox,
54
+ "aria-hidden": "true",
55
+ style: iconStyle,
56
+ ...rest,
57
+ })
58
+ ) : (
59
+ <svg
60
+ xmlns="http://www.w3.org/2000/svg"
30
61
  ref={ref}
31
- style={getIconContainerStyle(containerSize || iconSize, color)}
32
- onMouseDown={onMouseDown}
33
- onMouseEnter={onMouseEnter}
34
- onMouseLeave={onMouseLeave}
62
+ className={iconClassName}
63
+ viewBox={viewBox}
64
+ style={iconStyle}
65
+ {...rest}
35
66
  >
36
- {children ? (
37
- <svg
38
- xmlns="http://www.w3.org/2000/svg"
39
- width={iconSize}
40
- height={iconSize}
41
- viewBox={viewBox}
42
- style={getShiftStyle({containerSize, elementSize: iconSize})}
43
- className={iconStyle}
44
- >
45
- <g style={color === null ? {} : {fill: color || themeVars.textColor}}>{children}</g>
46
- </svg>
47
- ) : (
48
- generateIconFromAst(icon.icon.children[0], `svg-${icon.name}`, {
49
- xmlns: "http://www.w3.org/2000/svg",
50
- width: iconSize,
51
- height: iconSize,
52
- viewBox: viewBox,
53
- style: getShiftStyle({containerSize, elementSize: iconSize}),
54
- className: iconStyle,
55
- fill: color === null ? undefined : "currentColor",
56
- "aria-hidden": "true",
57
- })
58
- )}
59
- </span>
67
+ {children}
68
+ </svg>
60
69
  );
61
70
  });
@@ -0,0 +1,8 @@
1
+
2
+ // This icon file is generated automatically.
3
+
4
+ import { IconDefinition } from '../types';
5
+
6
+ const PinFilled: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"width":20,"height":20,"fill":"none"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M12.504 2c.213-.008.42.071.57.22l4.703 4.628a.744.744 0 0 1-.046 1.102l-4.123 3.44.274 2.603a.743.743 0 0 1-.219.608L12.3 15.943a.77.77 0 0 1-1.078 0l-3.027-2.978-4.893 4.815a.77.77 0 0 1-1.078 0 .742.742 0 0 1 0-1.06l4.894-4.816L3.83 8.671a.744.744 0 0 1 0-1.06l1.364-1.343a.77.77 0 0 1 .618-.216l2.644.27 3.497-4.057a.767.767 0 0 1 .55-.264Z","fill":"currentColor"},"children":[]}],"metadata":""}]},"name":"pin-filled"};
7
+
8
+ export default PinFilled;
@@ -160,6 +160,7 @@ export { default as PageWideMode } from './PageWideMode';
160
160
  export { default as Pencil } from './Pencil';
161
161
  export { default as People } from './People';
162
162
  export { default as Photo } from './Photo';
163
+ export { default as PinFilled } from './PinFilled';
163
164
  export { default as Pin } from './Pin';
164
165
  export { default as Popup } from './Popup';
165
166
  export { default as Posts } from './Posts';
@@ -1,12 +1,13 @@
1
1
  // This icon file is generated automatically.
2
2
 
3
+ import {forwardRef} from 'react';
3
4
  import AbortSvg from '../ast/Abort';
4
5
  import { Icon } from '../Icon';
5
6
  import { IconBaseProps } from '../types';
6
7
 
7
- const Abort = (
8
+ const Abort = forwardRef<SVGSVGElement, IconBaseProps>(function Abort(
8
9
  props: IconBaseProps,
9
- ): JSX.Element => <Icon {...props} icon={AbortSvg} />;
10
+ ref: React.Ref<SVGSVGElement>
11
+ ) {return <Icon {...props} className={props.className} ref={ref} icon={AbortSvg} />});
10
12
 
11
- Abort.displayName = 'Abort';
12
13
  export default Abort;
@@ -1,12 +1,13 @@
1
1
  // This icon file is generated automatically.
2
2
 
3
+ import {forwardRef} from 'react';
3
4
  import ActivitySvg from '../ast/Activity';
4
5
  import { Icon } from '../Icon';
5
6
  import { IconBaseProps } from '../types';
6
7
 
7
- const Activity = (
8
+ const Activity = forwardRef<SVGSVGElement, IconBaseProps>(function Activity(
8
9
  props: IconBaseProps,
9
- ): JSX.Element => <Icon {...props} icon={ActivitySvg} />;
10
+ ref: React.Ref<SVGSVGElement>
11
+ ) {return <Icon {...props} className={props.className} ref={ref} icon={ActivitySvg} />});
10
12
 
11
- Activity.displayName = 'Activity';
12
13
  export default Activity;
@@ -1,12 +1,13 @@
1
1
  // This icon file is generated automatically.
2
2
 
3
+ import {forwardRef} from 'react';
3
4
  import ActivityLogSvg from '../ast/ActivityLog';
4
5
  import { Icon } from '../Icon';
5
6
  import { IconBaseProps } from '../types';
6
7
 
7
- const ActivityLog = (
8
+ const ActivityLog = forwardRef<SVGSVGElement, IconBaseProps>(function ActivityLog(
8
9
  props: IconBaseProps,
9
- ): JSX.Element => <Icon {...props} icon={ActivityLogSvg} />;
10
+ ref: React.Ref<SVGSVGElement>
11
+ ) {return <Icon {...props} className={props.className} ref={ref} icon={ActivityLogSvg} />});
10
12
 
11
- ActivityLog.displayName = 'ActivityLog';
12
13
  export default ActivityLog;