@fibery/ui-kit 2.0.1 → 2.1.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 (1075) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/{eslint.config.mjs → esfint.config.mjs} +1 -1
  3. package/package.json +10 -7
  4. package/scripts/generate-icons.mjs +42 -34
  5. package/src/a11y-color.test.ts +62 -55
  6. package/src/a11y-color.ts +40 -37
  7. package/src/actions-menu/actions-menu-item.tsx +1 -1
  8. package/src/actions-menu/actions-menu.tsx +3 -3
  9. package/src/ai/model.tsx +1 -1
  10. package/src/ai/temperature.tsx +1 -1
  11. package/src/animated-height-container.tsx +2 -2
  12. package/src/antd/{AutoComplete.js → AutoComplete.ts} +1 -1
  13. package/src/antd/Tabs.js +2 -2
  14. package/src/antd/ant-upload.tsx +4 -4
  15. package/src/antd/input-number.tsx +2 -2
  16. package/src/antd/input.tsx +2 -2
  17. package/src/antd/styles.ts +8 -8
  18. package/src/antd/utils.tsx +12 -23
  19. package/src/app-icon-with-fallback.tsx +31 -8
  20. package/src/app-icon.tsx +21 -8
  21. package/src/avatar.tsx +8 -5
  22. package/src/axis-header.tsx +2 -2
  23. package/src/banner/banner-action.tsx +23 -0
  24. package/src/banner/banner-context.tsx +4 -0
  25. package/src/banner/banner-variant.ts +1 -0
  26. package/src/banner/banner.tsx +101 -0
  27. package/src/box.tsx +3 -1
  28. package/src/breadcrumb.tsx +14 -11
  29. package/src/button/base-button.tsx +2 -2
  30. package/src/button/make-button-colors.ts +2 -2
  31. package/src/canvas-colors.ts +133 -0
  32. package/src/card-container.tsx +1 -1
  33. package/src/checkbox-multi-select.tsx +4 -4
  34. package/src/checkbox.tsx +21 -9
  35. package/src/color-filter.test.ts +155 -0
  36. package/src/color-filter.ts +156 -0
  37. package/src/color-picker/ColorPickerOrLoader.js +1 -1
  38. package/src/color-picker/{SliderPointer.js → SliderPointer.tsx} +3 -2
  39. package/src/color-picker/index.js +7 -4
  40. package/src/color-picker/swatch.tsx +5 -4
  41. package/src/color-utils.test.ts +246 -116
  42. package/src/color-utils.ts +156 -144
  43. package/src/command-menu/index.tsx +1 -1
  44. package/src/date-picker/autocomplete.tsx +1 -0
  45. package/src/date-picker/date-range-picker-popup-content.tsx +1 -1
  46. package/src/date-picker/date-range-picker.tsx +1 -1
  47. package/src/date-picker/fake-date-input.tsx +10 -4
  48. package/src/date-picker/relative-date-picker.tsx +32 -3
  49. package/src/date-picker/single-date-picker.tsx +13 -3
  50. package/src/date-picker/styles.ts +12 -12
  51. package/src/date-picker/types.ts +2 -0
  52. package/src/design-system/alpha.ts +0 -15
  53. package/src/design-system/animation.ts +24 -5
  54. package/src/design-system/colors-css.ts +4 -4
  55. package/src/design-system/colors-js.test.ts +167 -153
  56. package/src/design-system/colors-js.ts +30 -85
  57. package/src/design-system/colors.test.ts +5 -5
  58. package/src/design-system/colors.ts +720 -402
  59. package/src/design-system/layout.ts +1 -0
  60. package/src/design-system/theme.test.ts +13 -68
  61. package/src/design-system/theme.ts +24 -76
  62. package/src/design-system/vars.test.ts +64 -1681
  63. package/src/design-system/vars.ts +43 -29
  64. package/src/design-system.ts +4 -4
  65. package/src/dnd.tsx +1 -1
  66. package/src/{utils-dom.ts → dom-utils.ts} +19 -0
  67. package/src/dot.tsx +2 -2
  68. package/src/emoji-picker/app-icon-picker.tsx +2 -1
  69. package/src/emoji-picker/emoji-picker-content-with-color.tsx +4 -1
  70. package/src/emoji-picker/emoji-picker.tsx +3 -0
  71. package/src/emoji-picker/icon-emoji-picker.tsx +1 -1
  72. package/src/emoji-picker/primitives/emoji.tsx +3 -2
  73. package/src/favorites-icon.tsx +1 -1
  74. package/src/fibermoji-placeholder.tsx +6 -1
  75. package/src/file-item/add-query-param.ts +13 -0
  76. package/src/file-item/file-menu-items.tsx +2 -1
  77. package/src/file-item/file-preview-actions.tsx +14 -2
  78. package/src/file-item.tsx +5 -5
  79. package/src/flags.ts +3 -0
  80. package/src/header-layout.tsx +9 -2
  81. package/src/html-styles.ts +3 -3
  82. package/src/hue-shift.test.ts +17 -4
  83. package/src/icons/Icon.tsx +5 -2
  84. package/src/icons/ast/Abort.ts +8 -4
  85. package/src/icons/ast/AccessTemplate.ts +8 -4
  86. package/src/icons/ast/Activity.ts +8 -4
  87. package/src/icons/ast/ActivityFilled.ts +8 -4
  88. package/src/icons/ast/ActivityLog.ts +8 -4
  89. package/src/icons/ast/Add.ts +8 -4
  90. package/src/icons/ast/AddAfter.ts +8 -4
  91. package/src/icons/ast/AddBefore.ts +8 -4
  92. package/src/icons/ast/AddCompact.ts +8 -4
  93. package/src/icons/ast/AddDatabase.ts +8 -4
  94. package/src/icons/ast/AddGroup.ts +8 -4
  95. package/src/icons/ast/AddIntegration.ts +8 -4
  96. package/src/icons/ast/AddReactions.ts +8 -4
  97. package/src/icons/ast/AiAssistant.ts +8 -4
  98. package/src/icons/ast/AiAssistantFilled.ts +8 -4
  99. package/src/icons/ast/AiAvatar.ts +8 -4
  100. package/src/icons/ast/AiFiberyBuild.ts +8 -4
  101. package/src/icons/ast/AiSearch.ts +8 -4
  102. package/src/icons/ast/AlertTriangle.ts +8 -4
  103. package/src/icons/ast/Anthropic.ts +8 -4
  104. package/src/icons/ast/App.ts +8 -4
  105. package/src/icons/ast/AppDetails.ts +8 -4
  106. package/src/icons/ast/AppStore.ts +8 -4
  107. package/src/icons/ast/AppStoreOneColor.ts +8 -4
  108. package/src/icons/ast/AppTemplates.ts +8 -4
  109. package/src/icons/ast/AppWebhooks.ts +8 -4
  110. package/src/icons/ast/AppWiki.ts +8 -4
  111. package/src/icons/ast/AppearanceAuto.ts +8 -4
  112. package/src/icons/ast/AppearanceDark.ts +8 -4
  113. package/src/icons/ast/AppearanceLight.ts +8 -4
  114. package/src/icons/ast/Apple.ts +8 -4
  115. package/src/icons/ast/ArrowBarDown.ts +12 -0
  116. package/src/icons/ast/ArrowBarLeft.ts +8 -4
  117. package/src/icons/ast/ArrowBarRight.ts +8 -4
  118. package/src/icons/ast/ArrowBarUp.ts +12 -0
  119. package/src/icons/ast/ArrowBottom.ts +8 -4
  120. package/src/icons/ast/ArrowCollapse.ts +8 -4
  121. package/src/icons/ast/ArrowCollapseVertical.ts +8 -4
  122. package/src/icons/ast/ArrowForward.ts +8 -4
  123. package/src/icons/ast/ArrowLeft.ts +8 -4
  124. package/src/icons/ast/ArrowRight.ts +8 -4
  125. package/src/icons/ast/ArrowTop.ts +8 -4
  126. package/src/icons/ast/ArrowUpCircle.ts +8 -4
  127. package/src/icons/ast/ArrowsRightLeft.ts +8 -4
  128. package/src/icons/ast/AskForInput.ts +8 -4
  129. package/src/icons/ast/Asterisk.ts +8 -4
  130. package/src/icons/ast/Atom.ts +8 -4
  131. package/src/icons/ast/AutomationsCancelled.ts +8 -4
  132. package/src/icons/ast/AutomationsDisabled.ts +8 -4
  133. package/src/icons/ast/AutomationsError.ts +8 -4
  134. package/src/icons/ast/AutomationsInProgress.ts +8 -4
  135. package/src/icons/ast/AutomationsNotStarted.ts +8 -4
  136. package/src/icons/ast/AutomationsSuccess.ts +8 -4
  137. package/src/icons/ast/Back.ts +8 -4
  138. package/src/icons/ast/BacklogIcon.ts +8 -4
  139. package/src/icons/ast/BatchActionsIcon.ts +8 -4
  140. package/src/icons/ast/BellCircle.ts +8 -4
  141. package/src/icons/ast/BellFilled.ts +8 -4
  142. package/src/icons/ast/BellOff.ts +8 -4
  143. package/src/icons/ast/BellRinging.ts +8 -4
  144. package/src/icons/ast/BellX.ts +8 -4
  145. package/src/icons/ast/Bolt.ts +8 -4
  146. package/src/icons/ast/BringForward.ts +8 -4
  147. package/src/icons/ast/BringToFront.ts +8 -4
  148. package/src/icons/ast/Cards.ts +8 -4
  149. package/src/icons/ast/Chat.ts +8 -4
  150. package/src/icons/ast/ChatAi.ts +8 -4
  151. package/src/icons/ast/ChatBubble.ts +8 -4
  152. package/src/icons/ast/ChatFloat.ts +8 -4
  153. package/src/icons/ast/ChatSidebar.ts +8 -4
  154. package/src/icons/ast/CheckCircle.ts +8 -4
  155. package/src/icons/ast/CheckCircleFilled.ts +8 -4
  156. package/src/icons/ast/Checked.ts +8 -4
  157. package/src/icons/ast/Clean.ts +8 -4
  158. package/src/icons/ast/Clear.ts +8 -4
  159. package/src/icons/ast/ClearInputFilled.ts +8 -4
  160. package/src/icons/ast/ClearValue.ts +8 -4
  161. package/src/icons/ast/Clock.ts +8 -4
  162. package/src/icons/ast/ClockAlarm.ts +8 -4
  163. package/src/icons/ast/ClockForward.ts +8 -4
  164. package/src/icons/ast/Close.ts +8 -4
  165. package/src/icons/ast/CollapseAll.ts +8 -4
  166. package/src/icons/ast/CollapseAllHorizontal.ts +8 -4
  167. package/src/icons/ast/ColorCoding.ts +8 -4
  168. package/src/icons/ast/ColorCodingFilled.ts +8 -4
  169. package/src/icons/ast/Columns.ts +8 -4
  170. package/src/icons/ast/Columns2.ts +8 -4
  171. package/src/icons/ast/Columns4.ts +8 -4
  172. package/src/icons/ast/CommentBubble.ts +8 -4
  173. package/src/icons/ast/Copy.ts +8 -4
  174. package/src/icons/ast/Create.ts +8 -4
  175. package/src/icons/ast/CreditsFilled.ts +8 -4
  176. package/src/icons/ast/CrossCircle.ts +8 -4
  177. package/src/icons/ast/Crosshair.ts +8 -4
  178. package/src/icons/ast/Csv.ts +8 -4
  179. package/src/icons/ast/Database.ts +8 -4
  180. package/src/icons/ast/DatabaseOff.ts +8 -4
  181. package/src/icons/ast/DatabaseStroke.ts +8 -4
  182. package/src/icons/ast/DateRange.ts +8 -4
  183. package/src/icons/ast/Delete.ts +8 -4
  184. package/src/icons/ast/Demo.ts +8 -4
  185. package/src/icons/ast/Dependency.ts +8 -4
  186. package/src/icons/ast/Dividers.ts +8 -4
  187. package/src/icons/ast/Document.ts +8 -4
  188. package/src/icons/ast/DoubleArrowLeft.ts +8 -4
  189. package/src/icons/ast/DoubleArrowRight.ts +8 -4
  190. package/src/icons/ast/DoubleLine.ts +8 -4
  191. package/src/icons/ast/DragBlockHandle.ts +8 -4
  192. package/src/icons/ast/DragBlockHandleSingle.ts +8 -4
  193. package/src/icons/ast/DragHandle.ts +8 -4
  194. package/src/icons/ast/Duplicate.ts +8 -4
  195. package/src/icons/ast/DynamicFilterValue.ts +8 -4
  196. package/src/icons/ast/EditValue.ts +8 -4
  197. package/src/icons/ast/Email.ts +8 -4
  198. package/src/icons/ast/EmojiDelete.ts +8 -4
  199. package/src/icons/ast/EntityCreate.ts +8 -4
  200. package/src/icons/ast/EntityCreateFilled.ts +8 -4
  201. package/src/icons/ast/EntityMerge.ts +8 -4
  202. package/src/icons/ast/Equation.ts +8 -4
  203. package/src/icons/ast/ExpandAll.ts +8 -4
  204. package/src/icons/ast/ExpandAllHorizontal.ts +8 -4
  205. package/src/icons/ast/Export.ts +8 -4
  206. package/src/icons/ast/ExtensionAssignments.ts +8 -4
  207. package/src/icons/ast/ExtensionAvatar.ts +8 -4
  208. package/src/icons/ast/ExtensionComments.ts +8 -4
  209. package/src/icons/ast/ExtensionFiles.ts +8 -4
  210. package/src/icons/ast/ExtensionReferences.ts +8 -4
  211. package/src/icons/ast/ExtensionWorkflow.ts +8 -4
  212. package/src/icons/ast/Eye.ts +8 -4
  213. package/src/icons/ast/Favorites.ts +8 -4
  214. package/src/icons/ast/FavoritesChecked.ts +8 -4
  215. package/src/icons/ast/FavoritesOff.ts +8 -4
  216. package/src/icons/ast/FiberyDesktopApp.ts +8 -4
  217. package/src/icons/ast/FiberyMono.ts +8 -4
  218. package/src/icons/ast/FieldUnit.ts +8 -4
  219. package/src/icons/ast/Fields.ts +8 -4
  220. package/src/icons/ast/Figma.ts +8 -4
  221. package/src/icons/ast/FileArchive.ts +8 -4
  222. package/src/icons/ast/FileBroken.ts +8 -4
  223. package/src/icons/ast/FileCounter.ts +8 -4
  224. package/src/icons/ast/FileDocument.ts +8 -4
  225. package/src/icons/ast/FileDownload.ts +8 -4
  226. package/src/icons/ast/FileImage.ts +8 -4
  227. package/src/icons/ast/FileMultiple.ts +8 -4
  228. package/src/icons/ast/FileOther.ts +8 -4
  229. package/src/icons/ast/FilePresentation.ts +8 -4
  230. package/src/icons/ast/FileTable.ts +8 -4
  231. package/src/icons/ast/FileUpload.ts +8 -4
  232. package/src/icons/ast/FileVideo.ts +8 -4
  233. package/src/icons/ast/Filter.ts +8 -4
  234. package/src/icons/ast/FitToScreen.ts +8 -4
  235. package/src/icons/ast/FocusMode.ts +8 -4
  236. package/src/icons/ast/FocusModeOff.ts +8 -4
  237. package/src/icons/ast/Folder.ts +8 -4
  238. package/src/icons/ast/FolderFavorite.ts +12 -0
  239. package/src/icons/ast/FormWithCover.ts +8 -4
  240. package/src/icons/ast/FormWithoutCover.ts +8 -4
  241. package/src/icons/ast/FullscreenModeOffIcon.ts +8 -4
  242. package/src/icons/ast/FullscreenModeOn.ts +8 -4
  243. package/src/icons/ast/FullscreenModeOnIcon.ts +8 -4
  244. package/src/icons/ast/Gift.ts +8 -4
  245. package/src/icons/ast/Github.ts +8 -4
  246. package/src/icons/ast/Gitlab.ts +8 -4
  247. package/src/icons/ast/Globe.ts +8 -4
  248. package/src/icons/ast/GlobeSimple.ts +8 -4
  249. package/src/icons/ast/GlobeUnpublish.ts +8 -4
  250. package/src/icons/ast/GoTo.ts +8 -4
  251. package/src/icons/ast/GoogleDrive.ts +8 -4
  252. package/src/icons/ast/GoogleMap.ts +8 -4
  253. package/src/icons/ast/GraduationCapFilled.ts +8 -4
  254. package/src/icons/ast/Headphones.ts +8 -4
  255. package/src/icons/ast/HeadphonesAi.ts +8 -4
  256. package/src/icons/ast/Hide.ts +8 -4
  257. package/src/icons/ast/Highlights.ts +8 -4
  258. package/src/icons/ast/Hint.ts +8 -4
  259. package/src/icons/ast/Home.ts +8 -4
  260. package/src/icons/ast/HomeFilled.ts +8 -4
  261. package/src/icons/ast/ImageXmark.ts +8 -4
  262. package/src/icons/ast/Import.ts +8 -4
  263. package/src/icons/ast/ImportFilled.ts +8 -4
  264. package/src/icons/ast/InfoCircle.ts +8 -4
  265. package/src/icons/ast/InfoCircleFilled.ts +8 -4
  266. package/src/icons/ast/Integration.ts +8 -4
  267. package/src/icons/ast/IntegrationsFilled.ts +8 -4
  268. package/src/icons/ast/IntegrationsIntegrationDiscourseColor.ts +8 -4
  269. package/src/icons/ast/IntegrationsIntegrationIntercomColor.ts +8 -4
  270. package/src/icons/ast/IntegrationsIntegrationSlackColor.ts +8 -4
  271. package/src/icons/ast/IntegrationsIntegrationZendeskColor.ts +8 -4
  272. package/src/icons/ast/Intercom.ts +12 -0
  273. package/src/icons/ast/InvitePeople.ts +8 -4
  274. package/src/icons/ast/Items.ts +8 -4
  275. package/src/icons/ast/ItemsTimeline.ts +8 -4
  276. package/src/icons/ast/Jira.ts +8 -4
  277. package/src/icons/ast/Key.ts +8 -4
  278. package/src/icons/ast/KeyboardHideDown.ts +8 -4
  279. package/src/icons/ast/Lab.ts +8 -4
  280. package/src/icons/ast/LayoutDouble.ts +8 -4
  281. package/src/icons/ast/LayoutMultiple.ts +8 -4
  282. package/src/icons/ast/LayoutSingle.ts +8 -4
  283. package/src/icons/ast/LeftPanel.ts +8 -4
  284. package/src/icons/ast/LevelPlus.ts +8 -4
  285. package/src/icons/ast/Levels.ts +8 -4
  286. package/src/icons/ast/LineDivider.ts +8 -4
  287. package/src/icons/ast/LineJump.ts +8 -4
  288. package/src/icons/ast/Link.ts +8 -4
  289. package/src/icons/ast/LocationEdit.ts +8 -4
  290. package/src/icons/ast/Lock.ts +8 -4
  291. package/src/icons/ast/LockOutline.ts +8 -4
  292. package/src/icons/ast/Logout.ts +8 -4
  293. package/src/icons/ast/Loom.ts +8 -4
  294. package/src/icons/ast/LoupeZoom.ts +8 -4
  295. package/src/icons/ast/LoupeZoomIn.ts +8 -4
  296. package/src/icons/ast/LoupeZoomOut.ts +8 -4
  297. package/src/icons/ast/ManyPeople.ts +8 -4
  298. package/src/icons/ast/MapMode.ts +8 -4
  299. package/src/icons/ast/Markdown.ts +8 -4
  300. package/src/icons/ast/MenuCollapser.ts +8 -4
  301. package/src/icons/ast/Mermaid.ts +8 -4
  302. package/src/icons/ast/MessagePlus.ts +8 -4
  303. package/src/icons/ast/MessagePlusSquare.ts +8 -4
  304. package/src/icons/ast/Milestones.ts +8 -4
  305. package/src/icons/ast/Minus.ts +8 -4
  306. package/src/icons/ast/Miro.ts +8 -4
  307. package/src/icons/ast/MirrorOff.ts +8 -4
  308. package/src/icons/ast/MirrorOn.ts +8 -4
  309. package/src/icons/ast/Mixpanel.ts +8 -4
  310. package/src/icons/ast/Monitor.ts +8 -4
  311. package/src/icons/ast/More.ts +8 -4
  312. package/src/icons/ast/MoreCompact.ts +8 -4
  313. package/src/icons/ast/MoveBottom.ts +8 -4
  314. package/src/icons/ast/MoveLeft.ts +8 -4
  315. package/src/icons/ast/MoveRight.ts +8 -4
  316. package/src/icons/ast/MoveSpace.ts +8 -4
  317. package/src/icons/ast/MoveTop.ts +8 -4
  318. package/src/icons/ast/Network.ts +8 -4
  319. package/src/icons/ast/NetworkAdd.ts +8 -4
  320. package/src/icons/ast/NoBorder.ts +8 -4
  321. package/src/icons/ast/NoFill.ts +8 -4
  322. package/src/icons/ast/Notifications.ts +8 -4
  323. package/src/icons/ast/ObjChild.ts +8 -4
  324. package/src/icons/ast/ObjM2M.ts +8 -4
  325. package/src/icons/ast/ObjO2O.ts +8 -4
  326. package/src/icons/ast/ObjParent.ts +8 -4
  327. package/src/icons/ast/ObjSelf.ts +8 -4
  328. package/src/icons/ast/OnSchedule.ts +8 -4
  329. package/src/icons/ast/OpenAi.ts +8 -4
  330. package/src/icons/ast/OpenAsPage.ts +8 -4
  331. package/src/icons/ast/PageRegularMode.ts +8 -4
  332. package/src/icons/ast/PageWideMode.ts +8 -4
  333. package/src/icons/ast/PanelAdd.ts +8 -4
  334. package/src/icons/ast/Pencil.ts +8 -4
  335. package/src/icons/ast/People.ts +8 -4
  336. package/src/icons/ast/PeopleCheck.ts +8 -4
  337. package/src/icons/ast/Photo.ts +8 -4
  338. package/src/icons/ast/Pin.ts +8 -4
  339. package/src/icons/ast/PinFilled.ts +8 -4
  340. package/src/icons/ast/Popup.ts +8 -4
  341. package/src/icons/ast/Posts.ts +8 -4
  342. package/src/icons/ast/PresentPlay.ts +8 -4
  343. package/src/icons/ast/PresentStop.ts +8 -4
  344. package/src/icons/ast/Print.ts +8 -4
  345. package/src/icons/ast/PrivateItems.ts +8 -4
  346. package/src/icons/ast/Question.ts +8 -4
  347. package/src/icons/ast/QuickFilter.ts +8 -4
  348. package/src/icons/ast/QuickFilterPersonal.ts +8 -4
  349. package/src/icons/ast/ReadOnly.ts +8 -4
  350. package/src/icons/ast/Refresh.ts +8 -4
  351. package/src/icons/ast/Remove.ts +8 -4
  352. package/src/icons/ast/RemovePeople.ts +8 -4
  353. package/src/icons/ast/Reply.ts +8 -4
  354. package/src/icons/ast/ResetPassword.ts +8 -4
  355. package/src/icons/ast/Restore.ts +8 -4
  356. package/src/icons/ast/RicheditorActionsMore.ts +8 -4
  357. package/src/icons/ast/RicheditorBlockCallout.ts +8 -4
  358. package/src/icons/ast/RicheditorBlockCode.ts +8 -4
  359. package/src/icons/ast/RicheditorBlockEmbed.ts +8 -4
  360. package/src/icons/ast/RicheditorBlockEntity.ts +8 -4
  361. package/src/icons/ast/RicheditorBlockFile.ts +8 -4
  362. package/src/icons/ast/RicheditorBlockH1.ts +8 -4
  363. package/src/icons/ast/RicheditorBlockH2.ts +8 -4
  364. package/src/icons/ast/RicheditorBlockH3.ts +8 -4
  365. package/src/icons/ast/RicheditorBlockH4.ts +8 -4
  366. package/src/icons/ast/RicheditorBlockMention.ts +8 -4
  367. package/src/icons/ast/RicheditorBlockParagraph.ts +8 -4
  368. package/src/icons/ast/RicheditorBlockQuote.ts +8 -4
  369. package/src/icons/ast/RicheditorChecklistCreate.ts +8 -4
  370. package/src/icons/ast/RicheditorCommentCreate.ts +8 -4
  371. package/src/icons/ast/RicheditorEntityLinkCreate.ts +8 -4
  372. package/src/icons/ast/RicheditorHistoryRedo.ts +8 -4
  373. package/src/icons/ast/RicheditorHistoryUndo.ts +8 -4
  374. package/src/icons/ast/RicheditorImageAlignCenter.ts +8 -4
  375. package/src/icons/ast/RicheditorImageAlignLeft.ts +8 -4
  376. package/src/icons/ast/RicheditorImageAlignRight.ts +8 -4
  377. package/src/icons/ast/RicheditorImageUpload.ts +8 -4
  378. package/src/icons/ast/RicheditorImageWrapCenter.ts +8 -4
  379. package/src/icons/ast/RicheditorImageWrapLeft.ts +8 -4
  380. package/src/icons/ast/RicheditorImageWrapRight.ts +8 -4
  381. package/src/icons/ast/RicheditorImageZoom.ts +8 -4
  382. package/src/icons/ast/RicheditorLinkCreate.ts +8 -4
  383. package/src/icons/ast/RicheditorLinkedhighlightCreate.ts +8 -4
  384. package/src/icons/ast/RicheditorListBullet.ts +8 -4
  385. package/src/icons/ast/RicheditorListIndent.ts +8 -4
  386. package/src/icons/ast/RicheditorListOrdered.ts +8 -4
  387. package/src/icons/ast/RicheditorListUnindent.ts +8 -4
  388. package/src/icons/ast/RicheditorMarkCode.ts +8 -4
  389. package/src/icons/ast/RicheditorMarkEm.ts +8 -4
  390. package/src/icons/ast/RicheditorMarkHighlight.ts +8 -4
  391. package/src/icons/ast/RicheditorMarkStrike.ts +8 -4
  392. package/src/icons/ast/RicheditorMarkStrong.ts +8 -4
  393. package/src/icons/ast/RicheditorMarkTextBackgroundColor.ts +8 -4
  394. package/src/icons/ast/RicheditorMarkUnderline.ts +8 -4
  395. package/src/icons/ast/RicheditorOpenLink.ts +8 -4
  396. package/src/icons/ast/RicheditorTableCreate.ts +8 -4
  397. package/src/icons/ast/RicheditorUnlink.ts +8 -4
  398. package/src/icons/ast/RicheditorVideoUpload.ts +8 -4
  399. package/src/icons/ast/RightPanel.ts +8 -4
  400. package/src/icons/ast/Rows.ts +8 -4
  401. package/src/icons/ast/RuleScheduled.ts +8 -4
  402. package/src/icons/ast/Search.ts +8 -4
  403. package/src/icons/ast/SearchAdd.ts +8 -4
  404. package/src/icons/ast/SearchFilled.ts +8 -4
  405. package/src/icons/ast/SearchRemove.ts +8 -4
  406. package/src/icons/ast/SelfReferenceOff.ts +8 -4
  407. package/src/icons/ast/SelfReferenceOn.ts +8 -4
  408. package/src/icons/ast/SendArrow.ts +8 -4
  409. package/src/icons/ast/SendBackward.ts +8 -4
  410. package/src/icons/ast/SendToBack.ts +8 -4
  411. package/src/icons/ast/Settings.ts +8 -4
  412. package/src/icons/ast/SettingsFilled.ts +8 -4
  413. package/src/icons/ast/SettingsOff.ts +8 -4
  414. package/src/icons/ast/Share.ts +8 -4
  415. package/src/icons/ast/Shared.ts +8 -4
  416. package/src/icons/ast/ShieldKeyhole.ts +8 -4
  417. package/src/icons/ast/ShowAuthor.ts +8 -4
  418. package/src/icons/ast/Sidebar.ts +8 -4
  419. package/src/icons/ast/SidebarFields.ts +8 -4
  420. package/src/icons/ast/SidebarFieldsOpened.ts +8 -4
  421. package/src/icons/ast/SimpleCompass.ts +8 -4
  422. package/src/icons/ast/Slack.ts +8 -4
  423. package/src/icons/ast/SlackIcon.ts +8 -4
  424. package/src/icons/ast/SlideMenu.ts +8 -4
  425. package/src/icons/ast/SlideMenuClose.ts +8 -4
  426. package/src/icons/ast/SlideMenuFilled.ts +8 -4
  427. package/src/icons/ast/SlideMenuOpen.ts +8 -4
  428. package/src/icons/ast/SmartFolder.ts +8 -4
  429. package/src/icons/ast/Sort.ts +8 -4
  430. package/src/icons/ast/SortOnBottom.ts +8 -4
  431. package/src/icons/ast/SortOnTop.ts +8 -4
  432. package/src/icons/ast/SpaceApp.ts +8 -4
  433. package/src/icons/ast/SpaceGenerate.ts +8 -4
  434. package/src/icons/ast/SpaceList.ts +8 -4
  435. package/src/icons/ast/SpaceScratch.ts +8 -4
  436. package/src/icons/ast/SpaceTemplate.ts +8 -4
  437. package/src/icons/ast/Spinner.ts +8 -4
  438. package/src/icons/ast/Success.ts +8 -4
  439. package/src/icons/ast/SuggestIntegration.ts +8 -4
  440. package/src/icons/ast/SwitchToMention.ts +8 -4
  441. package/src/icons/ast/SwitchToText.ts +8 -4
  442. package/src/icons/ast/SwitchToWidget.ts +8 -4
  443. package/src/icons/ast/TableLayout.ts +8 -4
  444. package/src/icons/ast/Template.ts +8 -4
  445. package/src/icons/ast/Templates.ts +8 -4
  446. package/src/icons/ast/TemplatesFilled.ts +8 -4
  447. package/src/icons/ast/Terminal.ts +8 -4
  448. package/src/icons/ast/TextNoWrap.ts +8 -4
  449. package/src/icons/ast/TextToolAlignBottom.ts +8 -4
  450. package/src/icons/ast/TextToolAlignMiddle.ts +8 -4
  451. package/src/icons/ast/TextToolAlignTop.ts +8 -4
  452. package/src/icons/ast/TextWrap.ts +8 -4
  453. package/src/icons/ast/ThumbsDown.ts +8 -4
  454. package/src/icons/ast/ThumbsUp.ts +8 -4
  455. package/src/icons/ast/Toc.ts +12 -0
  456. package/src/icons/ast/Twitter.ts +8 -4
  457. package/src/icons/ast/TypeBoolean.ts +8 -4
  458. package/src/icons/ast/TypeButton.ts +8 -4
  459. package/src/icons/ast/TypeCheckbox.ts +8 -4
  460. package/src/icons/ast/TypeDate.ts +8 -4
  461. package/src/icons/ast/TypeEmail.ts +8 -4
  462. package/src/icons/ast/TypeEmoji.ts +8 -4
  463. package/src/icons/ast/TypeFormula.ts +8 -4
  464. package/src/icons/ast/TypeFunction.ts +8 -4
  465. package/src/icons/ast/TypeId.ts +8 -4
  466. package/src/icons/ast/TypeLocation.ts +8 -4
  467. package/src/icons/ast/TypeLookup.ts +8 -4
  468. package/src/icons/ast/TypeMoney.ts +8 -4
  469. package/src/icons/ast/TypeMultiSelect.ts +8 -4
  470. package/src/icons/ast/TypeNumber.ts +8 -4
  471. package/src/icons/ast/TypePercent.ts +8 -4
  472. package/src/icons/ast/TypePhone.ts +8 -4
  473. package/src/icons/ast/TypeRelation.ts +8 -4
  474. package/src/icons/ast/TypeRichText.ts +8 -4
  475. package/src/icons/ast/TypeRule.ts +8 -4
  476. package/src/icons/ast/TypeSingleSelect.ts +8 -4
  477. package/src/icons/ast/TypeText.ts +8 -4
  478. package/src/icons/ast/TypeUrl.ts +8 -4
  479. package/src/icons/ast/UnitsAvatar.ts +8 -4
  480. package/src/icons/ast/UnitsCollection.ts +8 -4
  481. package/src/icons/ast/UnitsCounter.ts +8 -4
  482. package/src/icons/ast/UnitsDate.ts +8 -4
  483. package/src/icons/ast/UnitsDbBadgeAbbr.ts +8 -4
  484. package/src/icons/ast/UnitsDbBadgeFull.ts +8 -4
  485. package/src/icons/ast/UnitsDbIcon.ts +8 -4
  486. package/src/icons/ast/UnitsField.ts +8 -4
  487. package/src/icons/ast/UnitsFieldIconButton.ts +8 -4
  488. package/src/icons/ast/UnitsInput.ts +8 -4
  489. package/src/icons/ast/UnitsProgressBar.ts +8 -4
  490. package/src/icons/ast/UnitsRichText.ts +8 -4
  491. package/src/icons/ast/UnitsSnippet.ts +8 -4
  492. package/src/icons/ast/Unlink.ts +8 -4
  493. package/src/icons/ast/UnlockFilled.ts +8 -4
  494. package/src/icons/ast/UnlockOutline.ts +8 -4
  495. package/src/icons/ast/Upgrade.ts +8 -4
  496. package/src/icons/ast/UsbFlashDrive.ts +8 -4
  497. package/src/icons/ast/UserCheck.ts +8 -4
  498. package/src/icons/ast/UserGroup.ts +8 -4
  499. package/src/icons/ast/UserGroupRemove.ts +8 -4
  500. package/src/icons/ast/UserRole.ts +8 -4
  501. package/src/icons/ast/UserX.ts +8 -4
  502. package/src/icons/ast/ValueEdit.ts +8 -4
  503. package/src/icons/ast/ViewAi.ts +8 -4
  504. package/src/icons/ast/ViewBoard.ts +8 -4
  505. package/src/icons/ast/ViewCalendar.ts +8 -4
  506. package/src/icons/ast/ViewCanvas.ts +8 -4
  507. package/src/icons/ast/ViewChart.ts +8 -4
  508. package/src/icons/ast/ViewDashboard.ts +8 -4
  509. package/src/icons/ast/ViewDetails.ts +8 -4
  510. package/src/icons/ast/ViewDocument.ts +8 -4
  511. package/src/icons/ast/ViewEmbed.ts +12 -0
  512. package/src/icons/ast/ViewFeed.ts +8 -4
  513. package/src/icons/ast/ViewForm.ts +8 -4
  514. package/src/icons/ast/ViewGallery.ts +8 -4
  515. package/src/icons/ast/ViewGantt.ts +8 -4
  516. package/src/icons/ast/ViewList.ts +8 -4
  517. package/src/icons/ast/ViewMap.ts +8 -4
  518. package/src/icons/ast/ViewPage.ts +8 -4
  519. package/src/icons/ast/ViewTable.ts +8 -4
  520. package/src/icons/ast/ViewTimeline.ts +8 -4
  521. package/src/icons/ast/Views.ts +8 -4
  522. package/src/icons/ast/Warning.ts +8 -4
  523. package/src/icons/ast/WarningTriangle.ts +8 -4
  524. package/src/icons/ast/WarningTriangleFilled.ts +8 -4
  525. package/src/icons/ast/Webhooks.ts +12 -0
  526. package/src/icons/ast/Windows.ts +8 -4
  527. package/src/icons/ast/WorkspaceMap.ts +8 -4
  528. package/src/icons/ast/Youtube.ts +8 -4
  529. package/src/icons/ast/ZoomIn.ts +8 -4
  530. package/src/icons/ast/ZoomOut.ts +8 -4
  531. package/src/icons/ast/index.tsx +453 -441
  532. package/src/icons/react/Abort.tsx +10 -5
  533. package/src/icons/react/AccessTemplate.tsx +10 -5
  534. package/src/icons/react/Activity.tsx +10 -5
  535. package/src/icons/react/ActivityFilled.tsx +10 -5
  536. package/src/icons/react/ActivityLog.tsx +10 -5
  537. package/src/icons/react/Add.tsx +10 -5
  538. package/src/icons/react/AddAfter.tsx +10 -5
  539. package/src/icons/react/AddBefore.tsx +10 -5
  540. package/src/icons/react/AddCompact.tsx +10 -5
  541. package/src/icons/react/AddDatabase.tsx +10 -5
  542. package/src/icons/react/AddGroup.tsx +10 -5
  543. package/src/icons/react/AddIntegration.tsx +10 -5
  544. package/src/icons/react/AddReactions.tsx +10 -5
  545. package/src/icons/react/AiAssistant.tsx +10 -5
  546. package/src/icons/react/AiAssistantFilled.tsx +10 -5
  547. package/src/icons/react/AiAvatar.tsx +10 -5
  548. package/src/icons/react/AiFiberyBuild.tsx +10 -5
  549. package/src/icons/react/AiSearch.tsx +10 -5
  550. package/src/icons/react/AlertTriangle.tsx +10 -5
  551. package/src/icons/react/Anthropic.tsx +10 -5
  552. package/src/icons/react/App.tsx +10 -5
  553. package/src/icons/react/AppDetails.tsx +10 -5
  554. package/src/icons/react/AppStore.tsx +10 -5
  555. package/src/icons/react/AppStoreOneColor.tsx +10 -5
  556. package/src/icons/react/AppTemplates.tsx +10 -5
  557. package/src/icons/react/AppWebhooks.tsx +10 -5
  558. package/src/icons/react/AppWiki.tsx +10 -5
  559. package/src/icons/react/AppearanceAuto.tsx +10 -5
  560. package/src/icons/react/AppearanceDark.tsx +10 -5
  561. package/src/icons/react/AppearanceLight.tsx +10 -5
  562. package/src/icons/react/Apple.tsx +10 -5
  563. package/src/icons/react/ArrowBarDown.tsx +18 -0
  564. package/src/icons/react/ArrowBarLeft.tsx +10 -5
  565. package/src/icons/react/ArrowBarRight.tsx +10 -5
  566. package/src/icons/react/ArrowBarUp.tsx +18 -0
  567. package/src/icons/react/ArrowBottom.tsx +10 -5
  568. package/src/icons/react/ArrowCollapse.tsx +10 -5
  569. package/src/icons/react/ArrowCollapseVertical.tsx +10 -5
  570. package/src/icons/react/ArrowForward.tsx +10 -5
  571. package/src/icons/react/ArrowLeft.tsx +10 -5
  572. package/src/icons/react/ArrowRight.tsx +10 -5
  573. package/src/icons/react/ArrowTop.tsx +10 -5
  574. package/src/icons/react/ArrowUpCircle.tsx +10 -5
  575. package/src/icons/react/ArrowsRightLeft.tsx +10 -5
  576. package/src/icons/react/AskForInput.tsx +10 -5
  577. package/src/icons/react/Asterisk.tsx +10 -5
  578. package/src/icons/react/Atom.tsx +10 -5
  579. package/src/icons/react/AutomationsCancelled.tsx +10 -5
  580. package/src/icons/react/AutomationsDisabled.tsx +10 -5
  581. package/src/icons/react/AutomationsError.tsx +10 -5
  582. package/src/icons/react/AutomationsInProgress.tsx +10 -5
  583. package/src/icons/react/AutomationsNotStarted.tsx +10 -5
  584. package/src/icons/react/AutomationsSuccess.tsx +10 -5
  585. package/src/icons/react/Back.tsx +10 -5
  586. package/src/icons/react/BacklogIcon.tsx +10 -5
  587. package/src/icons/react/BatchActionsIcon.tsx +10 -5
  588. package/src/icons/react/BellCircle.tsx +10 -5
  589. package/src/icons/react/BellFilled.tsx +10 -5
  590. package/src/icons/react/BellOff.tsx +10 -5
  591. package/src/icons/react/BellRinging.tsx +10 -5
  592. package/src/icons/react/BellX.tsx +10 -5
  593. package/src/icons/react/Bolt.tsx +10 -5
  594. package/src/icons/react/BringForward.tsx +10 -5
  595. package/src/icons/react/BringToFront.tsx +10 -5
  596. package/src/icons/react/Cards.tsx +10 -5
  597. package/src/icons/react/Chat.tsx +10 -5
  598. package/src/icons/react/ChatAi.tsx +10 -5
  599. package/src/icons/react/ChatBubble.tsx +10 -5
  600. package/src/icons/react/ChatFloat.tsx +10 -5
  601. package/src/icons/react/ChatSidebar.tsx +10 -5
  602. package/src/icons/react/CheckCircle.tsx +10 -5
  603. package/src/icons/react/CheckCircleFilled.tsx +10 -5
  604. package/src/icons/react/Checked.tsx +10 -5
  605. package/src/icons/react/Clean.tsx +10 -5
  606. package/src/icons/react/Clear.tsx +10 -5
  607. package/src/icons/react/ClearInputFilled.tsx +10 -5
  608. package/src/icons/react/ClearValue.tsx +10 -5
  609. package/src/icons/react/Clock.tsx +10 -5
  610. package/src/icons/react/ClockAlarm.tsx +10 -5
  611. package/src/icons/react/ClockForward.tsx +10 -5
  612. package/src/icons/react/Close.tsx +10 -5
  613. package/src/icons/react/CollapseAll.tsx +10 -5
  614. package/src/icons/react/CollapseAllHorizontal.tsx +10 -5
  615. package/src/icons/react/ColorCoding.tsx +10 -5
  616. package/src/icons/react/ColorCodingFilled.tsx +10 -5
  617. package/src/icons/react/Columns.tsx +10 -5
  618. package/src/icons/react/Columns2.tsx +10 -5
  619. package/src/icons/react/Columns4.tsx +10 -5
  620. package/src/icons/react/CommentBubble.tsx +10 -5
  621. package/src/icons/react/Copy.tsx +10 -5
  622. package/src/icons/react/Create.tsx +10 -5
  623. package/src/icons/react/CreditsFilled.tsx +10 -5
  624. package/src/icons/react/CrossCircle.tsx +10 -5
  625. package/src/icons/react/Crosshair.tsx +10 -5
  626. package/src/icons/react/Csv.tsx +10 -5
  627. package/src/icons/react/Database.tsx +10 -5
  628. package/src/icons/react/DatabaseOff.tsx +10 -5
  629. package/src/icons/react/DatabaseStroke.tsx +10 -5
  630. package/src/icons/react/DateRange.tsx +10 -5
  631. package/src/icons/react/Delete.tsx +10 -5
  632. package/src/icons/react/Demo.tsx +10 -5
  633. package/src/icons/react/Dependency.tsx +10 -5
  634. package/src/icons/react/Dividers.tsx +10 -5
  635. package/src/icons/react/Document.tsx +10 -5
  636. package/src/icons/react/DoubleArrowLeft.tsx +10 -5
  637. package/src/icons/react/DoubleArrowRight.tsx +10 -5
  638. package/src/icons/react/DoubleLine.tsx +10 -5
  639. package/src/icons/react/DragBlockHandle.tsx +10 -5
  640. package/src/icons/react/DragBlockHandleSingle.tsx +10 -5
  641. package/src/icons/react/DragHandle.tsx +10 -5
  642. package/src/icons/react/Duplicate.tsx +10 -5
  643. package/src/icons/react/DynamicFilterValue.tsx +10 -5
  644. package/src/icons/react/EditValue.tsx +10 -5
  645. package/src/icons/react/Email.tsx +10 -5
  646. package/src/icons/react/EmojiDelete.tsx +10 -5
  647. package/src/icons/react/EntityCreate.tsx +10 -5
  648. package/src/icons/react/EntityCreateFilled.tsx +10 -5
  649. package/src/icons/react/EntityMerge.tsx +10 -5
  650. package/src/icons/react/Equation.tsx +10 -5
  651. package/src/icons/react/ExpandAll.tsx +10 -5
  652. package/src/icons/react/ExpandAllHorizontal.tsx +10 -5
  653. package/src/icons/react/Export.tsx +10 -5
  654. package/src/icons/react/ExtensionAssignments.tsx +10 -5
  655. package/src/icons/react/ExtensionAvatar.tsx +10 -5
  656. package/src/icons/react/ExtensionComments.tsx +10 -5
  657. package/src/icons/react/ExtensionFiles.tsx +10 -5
  658. package/src/icons/react/ExtensionReferences.tsx +10 -5
  659. package/src/icons/react/ExtensionWorkflow.tsx +10 -5
  660. package/src/icons/react/Eye.tsx +10 -5
  661. package/src/icons/react/Favorites.tsx +10 -5
  662. package/src/icons/react/FavoritesChecked.tsx +10 -5
  663. package/src/icons/react/FavoritesOff.tsx +10 -5
  664. package/src/icons/react/FiberyDesktopApp.tsx +10 -5
  665. package/src/icons/react/FiberyMono.tsx +10 -5
  666. package/src/icons/react/FieldUnit.tsx +10 -5
  667. package/src/icons/react/Fields.tsx +10 -5
  668. package/src/icons/react/Figma.tsx +10 -5
  669. package/src/icons/react/FileArchive.tsx +10 -5
  670. package/src/icons/react/FileBroken.tsx +10 -5
  671. package/src/icons/react/FileCounter.tsx +10 -5
  672. package/src/icons/react/FileDocument.tsx +10 -5
  673. package/src/icons/react/FileDownload.tsx +10 -5
  674. package/src/icons/react/FileImage.tsx +10 -5
  675. package/src/icons/react/FileMultiple.tsx +10 -5
  676. package/src/icons/react/FileOther.tsx +10 -5
  677. package/src/icons/react/FilePresentation.tsx +10 -5
  678. package/src/icons/react/FileTable.tsx +10 -5
  679. package/src/icons/react/FileUpload.tsx +10 -5
  680. package/src/icons/react/FileVideo.tsx +10 -5
  681. package/src/icons/react/Filter.tsx +10 -5
  682. package/src/icons/react/FitToScreen.tsx +10 -5
  683. package/src/icons/react/FocusMode.tsx +10 -5
  684. package/src/icons/react/FocusModeOff.tsx +10 -5
  685. package/src/icons/react/Folder.tsx +10 -5
  686. package/src/icons/react/FolderFavorite.tsx +18 -0
  687. package/src/icons/react/FormWithCover.tsx +10 -5
  688. package/src/icons/react/FormWithoutCover.tsx +10 -5
  689. package/src/icons/react/FullscreenModeOffIcon.tsx +10 -5
  690. package/src/icons/react/FullscreenModeOn.tsx +10 -5
  691. package/src/icons/react/FullscreenModeOnIcon.tsx +10 -5
  692. package/src/icons/react/Gift.tsx +10 -5
  693. package/src/icons/react/Github.tsx +10 -5
  694. package/src/icons/react/Gitlab.tsx +10 -5
  695. package/src/icons/react/Globe.tsx +10 -5
  696. package/src/icons/react/GlobeSimple.tsx +10 -5
  697. package/src/icons/react/GlobeUnpublish.tsx +10 -5
  698. package/src/icons/react/GoTo.tsx +10 -5
  699. package/src/icons/react/GoogleDrive.tsx +10 -5
  700. package/src/icons/react/GoogleMap.tsx +10 -5
  701. package/src/icons/react/GraduationCapFilled.tsx +10 -5
  702. package/src/icons/react/Headphones.tsx +10 -5
  703. package/src/icons/react/HeadphonesAi.tsx +10 -5
  704. package/src/icons/react/Hide.tsx +10 -5
  705. package/src/icons/react/Highlights.tsx +10 -5
  706. package/src/icons/react/Hint.tsx +10 -5
  707. package/src/icons/react/Home.tsx +10 -5
  708. package/src/icons/react/HomeFilled.tsx +10 -5
  709. package/src/icons/react/ImageXmark.tsx +10 -5
  710. package/src/icons/react/Import.tsx +10 -5
  711. package/src/icons/react/ImportFilled.tsx +10 -5
  712. package/src/icons/react/InfoCircle.tsx +10 -5
  713. package/src/icons/react/InfoCircleFilled.tsx +10 -5
  714. package/src/icons/react/Integration.tsx +10 -5
  715. package/src/icons/react/IntegrationsFilled.tsx +10 -5
  716. package/src/icons/react/IntegrationsIntegrationDiscourseColor.tsx +10 -5
  717. package/src/icons/react/IntegrationsIntegrationIntercomColor.tsx +10 -5
  718. package/src/icons/react/IntegrationsIntegrationSlackColor.tsx +10 -5
  719. package/src/icons/react/IntegrationsIntegrationZendeskColor.tsx +10 -5
  720. package/src/icons/react/Intercom.tsx +18 -0
  721. package/src/icons/react/InvitePeople.tsx +10 -5
  722. package/src/icons/react/Items.tsx +10 -5
  723. package/src/icons/react/ItemsTimeline.tsx +10 -5
  724. package/src/icons/react/Jira.tsx +10 -5
  725. package/src/icons/react/Key.tsx +10 -5
  726. package/src/icons/react/KeyboardHideDown.tsx +10 -5
  727. package/src/icons/react/Lab.tsx +10 -5
  728. package/src/icons/react/LayoutDouble.tsx +10 -5
  729. package/src/icons/react/LayoutMultiple.tsx +10 -5
  730. package/src/icons/react/LayoutSingle.tsx +10 -5
  731. package/src/icons/react/LeftPanel.tsx +10 -5
  732. package/src/icons/react/LevelPlus.tsx +10 -5
  733. package/src/icons/react/Levels.tsx +10 -5
  734. package/src/icons/react/LineDivider.tsx +10 -5
  735. package/src/icons/react/LineJump.tsx +10 -5
  736. package/src/icons/react/Link.tsx +10 -5
  737. package/src/icons/react/LocationEdit.tsx +10 -5
  738. package/src/icons/react/Lock.tsx +10 -5
  739. package/src/icons/react/LockOutline.tsx +10 -5
  740. package/src/icons/react/Logout.tsx +10 -5
  741. package/src/icons/react/Loom.tsx +10 -5
  742. package/src/icons/react/LoupeZoom.tsx +10 -5
  743. package/src/icons/react/LoupeZoomIn.tsx +10 -5
  744. package/src/icons/react/LoupeZoomOut.tsx +10 -5
  745. package/src/icons/react/ManyPeople.tsx +10 -5
  746. package/src/icons/react/MapMode.tsx +10 -5
  747. package/src/icons/react/Markdown.tsx +10 -5
  748. package/src/icons/react/MenuCollapser.tsx +10 -5
  749. package/src/icons/react/Mermaid.tsx +10 -5
  750. package/src/icons/react/MessagePlus.tsx +10 -5
  751. package/src/icons/react/MessagePlusSquare.tsx +10 -5
  752. package/src/icons/react/Milestones.tsx +10 -5
  753. package/src/icons/react/Minus.tsx +10 -5
  754. package/src/icons/react/Miro.tsx +10 -5
  755. package/src/icons/react/MirrorOff.tsx +10 -5
  756. package/src/icons/react/MirrorOn.tsx +10 -5
  757. package/src/icons/react/Mixpanel.tsx +10 -5
  758. package/src/icons/react/Monitor.tsx +10 -5
  759. package/src/icons/react/More.tsx +10 -5
  760. package/src/icons/react/MoreCompact.tsx +10 -5
  761. package/src/icons/react/MoveBottom.tsx +10 -5
  762. package/src/icons/react/MoveLeft.tsx +10 -5
  763. package/src/icons/react/MoveRight.tsx +10 -5
  764. package/src/icons/react/MoveSpace.tsx +10 -5
  765. package/src/icons/react/MoveTop.tsx +10 -5
  766. package/src/icons/react/Network.tsx +10 -5
  767. package/src/icons/react/NetworkAdd.tsx +10 -5
  768. package/src/icons/react/NoBorder.tsx +10 -5
  769. package/src/icons/react/NoFill.tsx +10 -5
  770. package/src/icons/react/Notifications.tsx +10 -5
  771. package/src/icons/react/ObjChild.tsx +10 -5
  772. package/src/icons/react/ObjM2M.tsx +10 -5
  773. package/src/icons/react/ObjO2O.tsx +10 -5
  774. package/src/icons/react/ObjParent.tsx +10 -5
  775. package/src/icons/react/ObjSelf.tsx +10 -5
  776. package/src/icons/react/OnSchedule.tsx +10 -5
  777. package/src/icons/react/OpenAi.tsx +10 -5
  778. package/src/icons/react/OpenAsPage.tsx +10 -5
  779. package/src/icons/react/PageRegularMode.tsx +10 -5
  780. package/src/icons/react/PageWideMode.tsx +10 -5
  781. package/src/icons/react/PanelAdd.tsx +10 -5
  782. package/src/icons/react/Pencil.tsx +10 -5
  783. package/src/icons/react/People.tsx +10 -5
  784. package/src/icons/react/PeopleCheck.tsx +10 -5
  785. package/src/icons/react/Photo.tsx +10 -5
  786. package/src/icons/react/Pin.tsx +10 -5
  787. package/src/icons/react/PinFilled.tsx +10 -5
  788. package/src/icons/react/Popup.tsx +10 -5
  789. package/src/icons/react/Posts.tsx +10 -5
  790. package/src/icons/react/PresentPlay.tsx +10 -5
  791. package/src/icons/react/PresentStop.tsx +10 -5
  792. package/src/icons/react/Print.tsx +10 -5
  793. package/src/icons/react/PrivateItems.tsx +10 -5
  794. package/src/icons/react/Question.tsx +10 -5
  795. package/src/icons/react/QuickFilter.tsx +10 -5
  796. package/src/icons/react/QuickFilterPersonal.tsx +10 -5
  797. package/src/icons/react/ReadOnly.tsx +10 -5
  798. package/src/icons/react/Refresh.tsx +10 -5
  799. package/src/icons/react/Remove.tsx +10 -5
  800. package/src/icons/react/RemovePeople.tsx +10 -5
  801. package/src/icons/react/Reply.tsx +10 -5
  802. package/src/icons/react/ResetPassword.tsx +10 -5
  803. package/src/icons/react/Restore.tsx +10 -5
  804. package/src/icons/react/RicheditorActionsMore.tsx +10 -5
  805. package/src/icons/react/RicheditorBlockCallout.tsx +10 -5
  806. package/src/icons/react/RicheditorBlockCode.tsx +10 -5
  807. package/src/icons/react/RicheditorBlockEmbed.tsx +10 -5
  808. package/src/icons/react/RicheditorBlockEntity.tsx +10 -5
  809. package/src/icons/react/RicheditorBlockFile.tsx +10 -5
  810. package/src/icons/react/RicheditorBlockH1.tsx +10 -5
  811. package/src/icons/react/RicheditorBlockH2.tsx +10 -5
  812. package/src/icons/react/RicheditorBlockH3.tsx +10 -5
  813. package/src/icons/react/RicheditorBlockH4.tsx +10 -5
  814. package/src/icons/react/RicheditorBlockMention.tsx +10 -5
  815. package/src/icons/react/RicheditorBlockParagraph.tsx +10 -5
  816. package/src/icons/react/RicheditorBlockQuote.tsx +10 -5
  817. package/src/icons/react/RicheditorChecklistCreate.tsx +10 -5
  818. package/src/icons/react/RicheditorCommentCreate.tsx +10 -5
  819. package/src/icons/react/RicheditorEntityLinkCreate.tsx +10 -5
  820. package/src/icons/react/RicheditorHistoryRedo.tsx +10 -5
  821. package/src/icons/react/RicheditorHistoryUndo.tsx +10 -5
  822. package/src/icons/react/RicheditorImageAlignCenter.tsx +10 -5
  823. package/src/icons/react/RicheditorImageAlignLeft.tsx +10 -5
  824. package/src/icons/react/RicheditorImageAlignRight.tsx +10 -5
  825. package/src/icons/react/RicheditorImageUpload.tsx +10 -5
  826. package/src/icons/react/RicheditorImageWrapCenter.tsx +10 -5
  827. package/src/icons/react/RicheditorImageWrapLeft.tsx +10 -5
  828. package/src/icons/react/RicheditorImageWrapRight.tsx +10 -5
  829. package/src/icons/react/RicheditorImageZoom.tsx +10 -5
  830. package/src/icons/react/RicheditorLinkCreate.tsx +10 -5
  831. package/src/icons/react/RicheditorLinkedhighlightCreate.tsx +10 -5
  832. package/src/icons/react/RicheditorListBullet.tsx +10 -5
  833. package/src/icons/react/RicheditorListIndent.tsx +10 -5
  834. package/src/icons/react/RicheditorListOrdered.tsx +10 -5
  835. package/src/icons/react/RicheditorListUnindent.tsx +10 -5
  836. package/src/icons/react/RicheditorMarkCode.tsx +10 -5
  837. package/src/icons/react/RicheditorMarkEm.tsx +10 -5
  838. package/src/icons/react/RicheditorMarkHighlight.tsx +10 -5
  839. package/src/icons/react/RicheditorMarkStrike.tsx +10 -5
  840. package/src/icons/react/RicheditorMarkStrong.tsx +10 -5
  841. package/src/icons/react/RicheditorMarkTextBackgroundColor.tsx +10 -5
  842. package/src/icons/react/RicheditorMarkUnderline.tsx +10 -5
  843. package/src/icons/react/RicheditorOpenLink.tsx +10 -5
  844. package/src/icons/react/RicheditorTableCreate.tsx +10 -5
  845. package/src/icons/react/RicheditorUnlink.tsx +10 -5
  846. package/src/icons/react/RicheditorVideoUpload.tsx +10 -5
  847. package/src/icons/react/RightPanel.tsx +10 -5
  848. package/src/icons/react/Rows.tsx +10 -5
  849. package/src/icons/react/RuleScheduled.tsx +10 -5
  850. package/src/icons/react/Search.tsx +10 -5
  851. package/src/icons/react/SearchAdd.tsx +10 -5
  852. package/src/icons/react/SearchFilled.tsx +10 -5
  853. package/src/icons/react/SearchRemove.tsx +10 -5
  854. package/src/icons/react/SelfReferenceOff.tsx +10 -5
  855. package/src/icons/react/SelfReferenceOn.tsx +10 -5
  856. package/src/icons/react/SendArrow.tsx +10 -5
  857. package/src/icons/react/SendBackward.tsx +10 -5
  858. package/src/icons/react/SendToBack.tsx +10 -5
  859. package/src/icons/react/Settings.tsx +10 -5
  860. package/src/icons/react/SettingsFilled.tsx +10 -5
  861. package/src/icons/react/SettingsOff.tsx +10 -5
  862. package/src/icons/react/Share.tsx +10 -5
  863. package/src/icons/react/Shared.tsx +10 -5
  864. package/src/icons/react/ShieldKeyhole.tsx +10 -5
  865. package/src/icons/react/ShowAuthor.tsx +10 -5
  866. package/src/icons/react/Sidebar.tsx +10 -5
  867. package/src/icons/react/SidebarFields.tsx +10 -5
  868. package/src/icons/react/SidebarFieldsOpened.tsx +10 -5
  869. package/src/icons/react/SimpleCompass.tsx +10 -5
  870. package/src/icons/react/Slack.tsx +10 -5
  871. package/src/icons/react/SlackIcon.tsx +10 -5
  872. package/src/icons/react/SlideMenu.tsx +10 -5
  873. package/src/icons/react/SlideMenuClose.tsx +10 -5
  874. package/src/icons/react/SlideMenuFilled.tsx +10 -5
  875. package/src/icons/react/SlideMenuOpen.tsx +10 -5
  876. package/src/icons/react/SmartFolder.tsx +10 -5
  877. package/src/icons/react/Sort.tsx +10 -5
  878. package/src/icons/react/SortOnBottom.tsx +10 -5
  879. package/src/icons/react/SortOnTop.tsx +10 -5
  880. package/src/icons/react/SpaceApp.tsx +10 -5
  881. package/src/icons/react/SpaceGenerate.tsx +10 -5
  882. package/src/icons/react/SpaceList.tsx +10 -5
  883. package/src/icons/react/SpaceScratch.tsx +10 -5
  884. package/src/icons/react/SpaceTemplate.tsx +10 -5
  885. package/src/icons/react/Spinner.tsx +10 -5
  886. package/src/icons/react/Success.tsx +10 -5
  887. package/src/icons/react/SuggestIntegration.tsx +10 -5
  888. package/src/icons/react/SwitchToMention.tsx +10 -5
  889. package/src/icons/react/SwitchToText.tsx +10 -5
  890. package/src/icons/react/SwitchToWidget.tsx +10 -5
  891. package/src/icons/react/TableLayout.tsx +10 -5
  892. package/src/icons/react/Template.tsx +10 -5
  893. package/src/icons/react/Templates.tsx +10 -5
  894. package/src/icons/react/TemplatesFilled.tsx +10 -5
  895. package/src/icons/react/Terminal.tsx +10 -5
  896. package/src/icons/react/TextNoWrap.tsx +10 -5
  897. package/src/icons/react/TextToolAlignBottom.tsx +10 -5
  898. package/src/icons/react/TextToolAlignMiddle.tsx +10 -5
  899. package/src/icons/react/TextToolAlignTop.tsx +10 -5
  900. package/src/icons/react/TextWrap.tsx +10 -5
  901. package/src/icons/react/ThumbsDown.tsx +10 -5
  902. package/src/icons/react/ThumbsUp.tsx +10 -5
  903. package/src/icons/react/Toc.tsx +18 -0
  904. package/src/icons/react/Twitter.tsx +10 -5
  905. package/src/icons/react/TypeBoolean.tsx +10 -5
  906. package/src/icons/react/TypeButton.tsx +10 -5
  907. package/src/icons/react/TypeCheckbox.tsx +10 -5
  908. package/src/icons/react/TypeDate.tsx +10 -5
  909. package/src/icons/react/TypeEmail.tsx +10 -5
  910. package/src/icons/react/TypeEmoji.tsx +10 -5
  911. package/src/icons/react/TypeFormula.tsx +10 -5
  912. package/src/icons/react/TypeFunction.tsx +10 -5
  913. package/src/icons/react/TypeId.tsx +10 -5
  914. package/src/icons/react/TypeLocation.tsx +10 -5
  915. package/src/icons/react/TypeLookup.tsx +10 -5
  916. package/src/icons/react/TypeMoney.tsx +10 -5
  917. package/src/icons/react/TypeMultiSelect.tsx +10 -5
  918. package/src/icons/react/TypeNumber.tsx +10 -5
  919. package/src/icons/react/TypePercent.tsx +10 -5
  920. package/src/icons/react/TypePhone.tsx +10 -5
  921. package/src/icons/react/TypeRelation.tsx +10 -5
  922. package/src/icons/react/TypeRichText.tsx +10 -5
  923. package/src/icons/react/TypeRule.tsx +10 -5
  924. package/src/icons/react/TypeSingleSelect.tsx +10 -5
  925. package/src/icons/react/TypeText.tsx +10 -5
  926. package/src/icons/react/TypeUrl.tsx +10 -5
  927. package/src/icons/react/UnitsAvatar.tsx +10 -5
  928. package/src/icons/react/UnitsCollection.tsx +10 -5
  929. package/src/icons/react/UnitsCounter.tsx +10 -5
  930. package/src/icons/react/UnitsDate.tsx +10 -5
  931. package/src/icons/react/UnitsDbBadgeAbbr.tsx +10 -5
  932. package/src/icons/react/UnitsDbBadgeFull.tsx +10 -5
  933. package/src/icons/react/UnitsDbIcon.tsx +10 -5
  934. package/src/icons/react/UnitsField.tsx +10 -5
  935. package/src/icons/react/UnitsFieldIconButton.tsx +10 -5
  936. package/src/icons/react/UnitsInput.tsx +10 -5
  937. package/src/icons/react/UnitsProgressBar.tsx +10 -5
  938. package/src/icons/react/UnitsRichText.tsx +10 -5
  939. package/src/icons/react/UnitsSnippet.tsx +10 -5
  940. package/src/icons/react/Unlink.tsx +10 -5
  941. package/src/icons/react/UnlockFilled.tsx +10 -5
  942. package/src/icons/react/UnlockOutline.tsx +10 -5
  943. package/src/icons/react/Upgrade.tsx +10 -5
  944. package/src/icons/react/UsbFlashDrive.tsx +10 -5
  945. package/src/icons/react/UserCheck.tsx +10 -5
  946. package/src/icons/react/UserGroup.tsx +10 -5
  947. package/src/icons/react/UserGroupRemove.tsx +10 -5
  948. package/src/icons/react/UserRole.tsx +10 -5
  949. package/src/icons/react/UserX.tsx +10 -5
  950. package/src/icons/react/ValueEdit.tsx +10 -5
  951. package/src/icons/react/ViewAi.tsx +10 -5
  952. package/src/icons/react/ViewBoard.tsx +10 -5
  953. package/src/icons/react/ViewCalendar.tsx +10 -5
  954. package/src/icons/react/ViewCanvas.tsx +10 -5
  955. package/src/icons/react/ViewChart.tsx +10 -5
  956. package/src/icons/react/ViewDashboard.tsx +10 -5
  957. package/src/icons/react/ViewDetails.tsx +10 -5
  958. package/src/icons/react/ViewDocument.tsx +10 -5
  959. package/src/icons/react/ViewEmbed.tsx +18 -0
  960. package/src/icons/react/ViewFeed.tsx +10 -5
  961. package/src/icons/react/ViewForm.tsx +10 -5
  962. package/src/icons/react/ViewGallery.tsx +10 -5
  963. package/src/icons/react/ViewGantt.tsx +10 -5
  964. package/src/icons/react/ViewList.tsx +10 -5
  965. package/src/icons/react/ViewMap.tsx +10 -5
  966. package/src/icons/react/ViewPage.tsx +10 -5
  967. package/src/icons/react/ViewTable.tsx +10 -5
  968. package/src/icons/react/ViewTimeline.tsx +10 -5
  969. package/src/icons/react/Views.tsx +10 -5
  970. package/src/icons/react/Warning.tsx +10 -5
  971. package/src/icons/react/WarningTriangle.tsx +10 -5
  972. package/src/icons/react/WarningTriangleFilled.tsx +10 -5
  973. package/src/icons/react/Webhooks.tsx +18 -0
  974. package/src/icons/react/Windows.tsx +10 -5
  975. package/src/icons/react/WorkspaceMap.tsx +10 -5
  976. package/src/icons/react/Youtube.tsx +10 -5
  977. package/src/icons/react/ZoomIn.tsx +10 -5
  978. package/src/icons/react/ZoomOut.tsx +10 -5
  979. package/src/icons/react/index.tsx +453 -441
  980. package/src/icons/svg/arrow-bar-down.svg +4 -0
  981. package/src/icons/svg/arrow-bar-up.svg +4 -0
  982. package/src/icons/svg/folder-favorite.svg +3 -0
  983. package/src/icons/svg/intercom.svg +3 -0
  984. package/src/icons/svg/richeditor/list/indent.svg +7 -2
  985. package/src/icons/svg/richeditor/list/unindent.svg +7 -2
  986. package/src/icons/svg/richeditor/mark/underline.svg +2 -2
  987. package/src/icons/svg/toc.svg +5 -0
  988. package/src/icons/svg/view-embed.svg +3 -0
  989. package/src/icons/svg/webhooks.svg +5 -0
  990. package/src/icons/types.ts +2 -0
  991. package/src/images-gallery/images-gallery.tsx +67 -16
  992. package/src/images-gallery/slide-buttons.tsx +5 -9
  993. package/src/integration-compact-info-button.tsx +10 -6
  994. package/src/loaders.tsx +2 -2
  995. package/src/loading-sausage.tsx +4 -4
  996. package/src/mobile-keyboard-aware-popup.tsx +1 -1
  997. package/src/modal-menu/modal-menu-content.tsx +1 -1
  998. package/src/modal-menu/modal-menu-separator.tsx +1 -1
  999. package/src/modal-menu/modal-submenu-content.tsx +3 -1
  1000. package/src/new-badge.tsx +2 -2
  1001. package/src/number-input/edit-unit-styles.ts +3 -3
  1002. package/src/online-users.tsx +8 -8
  1003. package/src/open-popover-tracker.tsx +73 -0
  1004. package/src/palette-generator.test.ts +145 -147
  1005. package/src/palette-generator.ts +24 -34
  1006. package/src/palettes/_.test.ts +226 -0
  1007. package/src/palettes/_.ts +66 -23
  1008. package/src/palettes/diff-colors.ts +253 -0
  1009. package/src/palettes/inspect.canvas-colors.test.ts +257 -0
  1010. package/src/palettes/inspect.defs.colors.neutral-arch.test.ts +2291 -0
  1011. package/src/palettes/inspect.defs.colors.neutral-user.test.ts +2291 -0
  1012. package/src/palettes/inspect.defs.colors.warm-arch.test.ts +2291 -0
  1013. package/src/palettes/inspect.defs.colors.warm-user.test.ts +2291 -0
  1014. package/src/palettes/inspect.neutral-arch.test.ts +191 -0
  1015. package/src/palettes/inspect.neutral-user.test.ts +191 -0
  1016. package/src/palettes/inspect.warm-arch.test.ts +191 -0
  1017. package/src/palettes/inspect.warm-user.test.ts +191 -0
  1018. package/src/palettes/neutral-arch.ts +37 -0
  1019. package/src/palettes/neutral-user.ts +37 -0
  1020. package/src/palettes/{slate-arch.ts → neutral.ts} +19 -33
  1021. package/src/palettes/warm-arch.ts +2 -187
  1022. package/src/palettes/warm-user.ts +2 -187
  1023. package/src/palettes/warm.ts +157 -0
  1024. package/src/popover/index.tsx +34 -10
  1025. package/src/popover/mobile-popover.tsx +4 -2
  1026. package/src/popover/popup-modifiers-context.ts +4 -4
  1027. package/src/preference-setting.test.ts +223 -0
  1028. package/src/preference-setting.ts +71 -0
  1029. package/src/pretty-size.test.ts +18 -0
  1030. package/src/pretty-size.ts +23 -0
  1031. package/src/reactions/reaction-button.tsx +4 -4
  1032. package/src/reactions/reaction-picker.tsx +2 -2
  1033. package/src/rich-text-embed-error.tsx +3 -1
  1034. package/src/root-theme-provider.test.tsx +25 -20
  1035. package/src/select/components/group-heading.tsx +1 -1
  1036. package/src/select/index.tsx +9 -5
  1037. package/src/select/select.tsx +1 -0
  1038. package/src/select/styles.ts +1 -1
  1039. package/src/static-palettes.ts +3 -5
  1040. package/src/tab-nav/tab-nav.tsx +61 -17
  1041. package/src/thematic-color-picker.tsx +158 -234
  1042. package/src/thematic-constants.tsx +0 -1
  1043. package/src/thematic-controls.tsx +118 -9
  1044. package/src/thematic-scales.tsx +66 -86
  1045. package/src/thematic-state.ts +61 -44
  1046. package/src/thematic.tsx +379 -244
  1047. package/src/theme-provider.test.tsx +70 -67
  1048. package/src/theme-provider.tsx +44 -39
  1049. package/src/theme-settings.ts +12 -44
  1050. package/src/theme-styles.ts +34 -28
  1051. package/src/themed-ink.tsx +26 -0
  1052. package/src/toast/toast-action.tsx +2 -2
  1053. package/src/toggle-button/round-toggle-button.tsx +2 -1
  1054. package/src/toggle-button/toggle-button.tsx +3 -3
  1055. package/src/toggle-on-off.tsx +7 -7
  1056. package/src/tooltip-if-overflown.tsx +3 -3
  1057. package/src/tree-utils.ts +1 -1
  1058. package/src/type-badge-box.tsx +2 -2
  1059. package/src/type-badge.tsx +9 -10
  1060. package/src/unit/maybe-unit-value.tsx +1 -1
  1061. package/src/unit/types.ts +1 -1
  1062. package/src/workflow-progress-icon.tsx +1 -1
  1063. package/.oxlintrc.json +0 -24
  1064. package/src/actions-menu/actions-menu-open-state-tracker.tsx +0 -66
  1065. package/src/design-system/alpha.test.ts +0 -59
  1066. package/src/design-system.test.ts +0 -48
  1067. package/src/error-alert/error-alert-action.tsx +0 -12
  1068. package/src/error-alert/error-alert.tsx +0 -71
  1069. package/src/palettes/slate-arch.colors-snapshot.test.ts +0 -1689
  1070. package/src/palettes/slate-user.colors-snapshot.test.ts +0 -1689
  1071. package/src/palettes/slate-user.ts +0 -187
  1072. package/src/palettes/warm-arch.colors-snapshot.test.ts +0 -1689
  1073. package/src/palettes/warm-user.colors-snapshot.test.ts +0 -1689
  1074. package/src/popover/popover-old.tsx +0 -113
  1075. /package/src/number-input/{decimal.test.js → decimal.test.ts} +0 -0
@@ -1,10 +1,10 @@
1
1
  /* eslint-disable max-lines */
2
2
  import {ThemePalette} from "../palette-generator";
3
- import mapValues from "lodash/mapValues";
4
- import {a11yColor} from "../a11y-color";
5
- import {darkenChroma, produceColor, set, setAlpha, setLuminanceChroma} from "../color-utils";
3
+ import {darkenChroma, hslFrom, produceColor, serializeHexVariadic, setAlpha, setLuminanceChroma} from "../color-utils";
6
4
  import {ThemeMode} from "../theme-settings";
7
- import {alpha, getOpacities, opacity, transparent} from "./alpha";
5
+ import {alpha, opacity, transparent} from "./alpha";
6
+ import {getDarkenColor, makeAdaptiveBgFg} from "./colors-js";
7
+ import {cssFromFilter, makeColorFilter} from "../color-filter";
8
8
 
9
9
  export const cardTypeColors = [
10
10
  "#4A4A4A",
@@ -26,12 +26,6 @@ export const cardTypeColors = [
26
26
  "#B04E31",
27
27
  ] as const;
28
28
 
29
- const swatches = {
30
- "gray-light": cardTypeColors[1],
31
- yellow: cardTypeColors[14],
32
- green: "#69AC5E",
33
- };
34
-
35
29
  type ThemeColorsDef = Record<
36
30
  string,
37
31
  | readonly [lightColor: string, darkColor: string]
@@ -51,8 +45,23 @@ type ThemeFnsDef = Record<
51
45
  >;
52
46
 
53
47
  const separator = (color: string) => `0.5px solid ${color}`;
48
+ const border1 = (color: string) => `1px solid ${color}`;
49
+ const border3 = (color: string) => `3px solid ${color}`;
50
+
51
+ const steps = (steps: string[]) => steps.join(", ");
52
+
53
+ /** @deprecated analyze usages — most likely you should use light/dark (different) variants like [base, baseDark] */
54
+ const same = <T>(v: T): [light: T, dark: T] => [v, v];
54
55
 
55
- export function makeThemeDefs({
56
+ const both =
57
+ (map: (_: string) => string) =>
58
+ ([light, dark]: Def): Def => [map(light), map(dark)];
59
+
60
+ type Def = [light: string, dark: string];
61
+ type Defs = Record<string, Def>;
62
+
63
+ export function defsFromPalette({
64
+ key,
56
65
  white,
57
66
  black,
58
67
  whiteA,
@@ -67,22 +76,48 @@ export function makeThemeDefs({
67
76
  tealDark,
68
77
  yellow,
69
78
  yellowDark,
79
+ deneutralize,
70
80
  }: ThemePalette) {
71
- const blackish = produceColor(black, (x) => set(x, "hsl.l", (x) => x + 5));
72
- const purple9 = "rgb(157, 99, 212)";
73
- const purpleDark9 = "rgb(131, 73, 182)";
74
- const blue9 = "rgba(56, 105, 204, 1)";
75
- const blueDark9 = "rgba(151, 177, 237, 1)";
76
-
77
- const shades = getOpacities(black);
78
- const separators = {
79
- ...mapValues(shades, separator),
80
- } as const;
81
+ const shift = makeColorFilter(deneutralize);
82
+ const colorPickerCssFilter = cssFromFilter(deneutralize) ?? "none";
81
83
 
82
- const lights = getOpacities(white);
83
- const inversedSeparators = {
84
- ...mapValues(lights, separator),
85
- } as const;
84
+ // beg(TODO pull into ThemePalette)
85
+ const blackish = produceColor(black, (x) => {
86
+ const hsl = hslFrom(x);
87
+ return {...hsl, l: (hsl.l ?? 0) + 0.05};
88
+ });
89
+ const purple9 = shift("rgb(157, 99, 212)");
90
+ const purpleDark9 = shift("rgb(131, 73, 182)");
91
+ const blue9 = shift("rgba(56, 105, 204, 1)");
92
+ const blueDark9 = shift("rgba(151, 177, 237, 1)");
93
+ // end(TODO pull into ThemePalette)
94
+
95
+ // whiteA = surface direction (white on light / black on dark) — blends INTO bg
96
+ const whiteA5: Def = [alpha(white, 0.05), alpha(black, 0.05)];
97
+ const whiteA10: Def = [alpha(white, 0.1), alpha(black, 0.1)];
98
+ const whiteA25: Def = [alpha(white, 0.25), alpha(black, 0.25)];
99
+ const whiteA40: Def = [alpha(white, 0.4), alpha(black, 0.4)];
100
+ const whiteA100: Def = [white, black];
101
+
102
+ // blackA = contrast direction (black on light / white on dark) — readable on bg
103
+ const blackA5: Def = [alpha(black, 0.05), alpha(white, 0.05)];
104
+ const blackA10: Def = [alpha(black, 0.1), alpha(white, 0.1)];
105
+ const blackA15: Def = [alpha(black, 0.15), alpha(white, 0.15)];
106
+ const blackA25: Def = [alpha(black, 0.25), alpha(white, 0.25)];
107
+ const blackA50: Def = [alpha(black, 0.5), alpha(white, 0.5)];
108
+ const blackA90: Def = [alpha(black, 0.9), alpha(white, 0.9)];
109
+
110
+ const opacities = {
111
+ subtle: same(opacity.opacity15.toString()),
112
+ faint: same(opacity.opacity20.toString()),
113
+ weak: same(opacity.opacity30.toString()),
114
+ drag: same(opacity.opacity40.toString()),
115
+ muted: same(opacity.opacity50.toString()),
116
+ done: same(opacity.opacity60.toString()),
117
+ disabled: same(opacity.opacity65.toString()),
118
+ visible: same(opacity.opacity70.toString()),
119
+ disabledHoverOrFocus: same(opacity.opacity75.toString()),
120
+ };
86
121
 
87
122
  // FIXME WIP to find commons/dedupe/adjust
88
123
  const surface = {
@@ -107,6 +142,7 @@ export function makeThemeDefs({
107
142
 
108
143
  // muted bg (code, form fields)
109
144
  level3exotic: [base[3], blackish], // FIXME try blackA[3] | baseDark[3] to make it less exotic
145
+ level3_1: [base[3], baseDark[1]],
110
146
  level3_4: [base[3], baseDark[4]],
111
147
  level3_6: [base[3], baseDark[6]],
112
148
  level3_7: [base[3], baseDark[7]],
@@ -118,9 +154,9 @@ export function makeThemeDefs({
118
154
  level4_5: [base[4], baseDark[5]],
119
155
  level4_6: [base[4], baseDark[6]],
120
156
 
121
- level3_1: [base[3], baseDark[1]],
122
157
  level5_4: [base[5], baseDark[4]],
123
- } as const;
158
+ level6_7: [base[6], baseDark[7]],
159
+ } satisfies Defs;
124
160
 
125
161
  const raised = {
126
162
  // menus, modals, entity boxes
@@ -134,55 +170,118 @@ export function makeThemeDefs({
134
170
 
135
171
  // card bg, comment bubbles, float editors
136
172
  level4: [white, baseDark[6]],
137
- } as const;
173
+ } satisfies Defs;
138
174
 
139
- const shadows = {
140
- // Elevations
141
- surfaceElevationS: [`0 2px 4px 0 ${blackA[3]}`, `0 2px 4px 0 ${whiteA[3]}`],
142
- surfaceElevationM: [`0 4px 8px 0 ${blackA[5]}`, `0 4px 8px 0 ${whiteA[5]}`],
143
- surfaceElevationL: [`0 8px 12px 0 ${blackA[5]}`, `0 8px 12px 0 ${whiteA[5]}`],
175
+ // Strokes (spread-only, no blur/offset)
176
+ const stroke05 = (color: string) => `0 0 0 0.5px ${color}`;
177
+ const stroke1 = (color: string) => `0 0 0 1px ${color}`;
178
+ const stroke2 = (color: string) => `0 0 0 2px ${color}`;
179
+ const stroke3 = (color: string) => `0 0 0 3px ${color}`;
144
180
 
145
- // Shadows and effects / Elevation
146
- shadow50: [`0px 0px 0px 1px ${alpha(base[12], 0.05)}`, `0px 0px 0px 1px ${alpha(baseDark[12], 0.1)}`],
147
- shadow100: [`0px 1px 4px 0px ${alpha(base[12], 0.05)}`, `0px 1px 4px 0px ${alpha(base[12], 0.1)}`],
148
- shadow200: [`0px 2px 6px 0px ${alpha(base[12], 0.05)}`, `0px 2px 6px 0px ${alpha(base[12], 0.1)}`],
149
- shadow300: [
150
- `0px 3px 6px -3px ${alpha(base[12], 0.1)}, 0px 8px 20px -4px ${alpha(base[12], 0.15)}`,
151
- `0px 3px 6px -3px ${alpha(base[12], 0.1)}, 0px 8px 20px -4px ${alpha(base[12], 0.15)}`,
152
- ],
153
- shadow400: [
154
- `0px 0px 1px 0px ${alpha(base[12], 0.2)}, 0px 16px 40px 0px ${alpha(base[12], 0.15)}`,
155
- `0px 0px 1px 0px ${alpha(base[12], 0.2)}, 0px 16px 40px 0px ${alpha(base[12], 0.15)}`,
156
- ],
157
- shadow500: [
158
- `0px 0px 1px 0px ${alpha(base[12], 0.2)}, 0px 20px 50px 0px ${alpha(base[12], 0.15)}`,
159
- `0px 0px 1px 0px ${alpha(base[12], 0.2)}, 0px 20px 50px 0px ${alpha(base[12], 0.15)}`,
160
- ],
161
- shadow600: [
162
- `0px 0px 1px 0px ${alpha(base[12], 0.2)}, 0px 26px 80px 0px ${alpha(base[12], 0.2)}`,
163
- `0px 0px 1px 0px ${alpha(base[12], 0.2)}, 0px 26px 80px 0px ${alpha(base[12], 0.2)}`,
181
+ // Glows (blur-only, no offset/spread)
182
+ const glow1 = (color: string) => `0 0 1px 0 ${color}`;
183
+ const glow2 = (color: string) => `0 0 2px 0 ${color}`;
184
+ const glow6 = (color: string) => `0 0 6px 0 ${color}`;
185
+
186
+ // Elevations (y-offset + blur)
187
+ const elevationS = (color: string) => `0 2px 4px 0 ${color}`;
188
+ const elevationS_shrinked = (color: string) => `0 2px 4px -4px ${color}`;
189
+ const elevationSM = (color: string) => `0 4px 6px 0 ${color}`;
190
+ const elevationSL = (color: string) => `0 3px 12px 0 ${color}`; // soft-large: small offset, large blur
191
+ const elevationM = (color: string) => `0 4px 8px 0 ${color}`;
192
+ const elevationL = (color: string) => `0 8px 12px 0 ${color}`;
193
+ const elevationXL = (color: string) => `0 10px 26px 0 ${color}`; // extra-large
194
+ const elevation100 = (color: string) => `0 1px 4px 0 ${color}`;
195
+ const elevation200 = (color: string) => `0 2px 6px 0 ${color}`;
196
+ const elevation250 = (color: string) => `0 3px 6px -3px ${color}`;
197
+ const elevation300 = (color: string) => `0 8px 20px -4px ${color}`;
198
+ const elevation400 = (color: string) => `0 16px 40px 0 ${color}`;
199
+ const elevation500 = (color: string) => `0 20px 50px 0 ${color}`;
200
+ const elevation600 = (color: string) => `0 26px 80px 0 ${color}`;
201
+
202
+ // --- Input borders (stroke shadows) ---
203
+ const inputStrokes = {
204
+ disabled: [stroke1(alpha(base[6], 0.2)), stroke1(alpha(baseDark[8], 0.2))],
205
+ default: [stroke1(alpha(base[6], 0.7)), stroke1(alpha(baseDark[8], 0.7))],
206
+ hover: [stroke1(base[7]), stroke1(baseDark[8])],
207
+ focus: [stroke1(base[8]), stroke1(baseDark[9])],
208
+ error: [stroke1(red[11]), stroke1(red[7])],
209
+ errorHover: [stroke1(alpha(red[11], 0.4)), stroke1(alpha(red[7], 0.4))],
210
+ errorFocus: [stroke1(alpha(red[11], 0.25)), stroke1(alpha(red[7], 0.25))],
211
+ errorFocusRing: [stroke3(alpha(red[11], 0.25)), stroke3(alpha(red[7], 0.25))],
212
+ warning: [stroke1(yellow[9]), stroke1(yellowDark[8])],
213
+ } satisfies Defs;
214
+
215
+ // --- Floating surface shadows ---
216
+ const floatingShadows = {
217
+ popup: [
218
+ steps([glow2(alpha(base[11], 0.3)), elevationSM(alpha(base[11], 0.05)), elevationXL(alpha(base[11], 0.15))]),
219
+ steps([stroke1(baseDark[6]), elevationSM(alpha(baseDark[1], 0.05)), elevationXL(alpha(baseDark[1], 0.15))]),
164
220
  ],
165
- actionMenuShadow: [
166
- `0px 0px 2px 0px ${alpha(base[11], 0.3)}, 0px 4px 6px 0px ${alpha(base[11], 0.05)}, 0px 10px 26px 0px ${alpha(
167
- base[11],
168
- 0.15
169
- )}`,
170
- `0px 0px 0px 1px ${baseDark[6]}, 0px 4px 6px 0px ${alpha(baseDark[1], 0.05)}, 0px 10px 26px 0px ${alpha(
171
- baseDark[1],
172
- 0.15
173
- )}`,
221
+ instrumentsMenu: [
222
+ steps([glow1(alpha(base[11], 0.2)), elevationSM(alpha(base[11], 0.05)), elevationSL(alpha(base[11], 0.1))]),
223
+ steps([glow1(baseDark[6]), elevationSM(alpha(baseDark[1], 0.05)), elevationSL(alpha(baseDark[1], 0.15))]),
174
224
  ],
175
- shadowPopup: [
176
- `0px 0px 2px 0px ${alpha(base[11], 0.3)}, 0px 4px 6px 0px ${alpha(base[11], 0.05)}, 0px 10px 26px 0px ${alpha(
177
- base[11],
178
- 0.15
179
- )}`,
180
- `0px 0px 0px 1px ${baseDark[6]}, 0px 4px 6px 0px ${alpha(baseDark[1], 0.05)}, 0px 10px 26px 0px ${alpha(
181
- baseDark[1],
182
- 0.15
183
- )}`,
225
+ } satisfies Defs;
226
+
227
+ // --- Card/container shadows ---
228
+ const cardShadows = {
229
+ subtle: [
230
+ steps([stroke1(alpha(base[10], 0.1)), elevationS_shrinked(alpha(base[10], 0.2))]),
231
+ steps([stroke1(alpha(baseDark[2], 0.1)), elevationS_shrinked(alpha(baseDark[2], 0.2))]),
184
232
  ],
185
- shadowSidebar: [`-3px 0px 10px 0px ${alpha(base[10], 0.1)}`, `-3px 0px 10px 0px ${alpha(baseDark[1], 0.8)}`],
233
+ } satisfies Defs;
234
+
235
+ const entityBoxShadows = {
236
+ stroke: {
237
+ default: [stroke1(base[5]), stroke1(baseDark[5])],
238
+ focus: [stroke2(alpha(accent[9], 0.4)), stroke2(alpha(accentDark[9], 0.4))],
239
+ focusHover: [stroke2(alpha(accent[9], 0.6)), stroke2(alpha(accentDark[9], 0.6))],
240
+ selected: [
241
+ steps([stroke1(alpha(accent[9], 0.4)), stroke3(alpha(accent[9], 0.4))]),
242
+ steps([stroke1(accentDark[9]), stroke3(alpha(accentDark[9], 0.4))]),
243
+ ],
244
+ selectedHover: [
245
+ steps([stroke1(alpha(accent[9], 0.6)), stroke3(alpha(accent[9], 0.4))]),
246
+ steps([stroke1(accentDark[9]), stroke3(alpha(accentDark[9], 0.4))]),
247
+ ],
248
+ } satisfies Defs,
249
+ elevation: {
250
+ // Progression: S → M → L (default → hover → drag)
251
+ default: [elevationS(alpha(base[12], 0.05)), elevationS(alpha(baseDark[1], 0.05))],
252
+ hover: [elevationM(alpha(base[12], 0.1)), elevationM(alpha(baseDark[1], 0.1))],
253
+ drag: [elevationL(alpha(base[12], 0.1)), elevationL(alpha(baseDark[1], 0.1))],
254
+ } satisfies Defs,
255
+ };
256
+
257
+ // FIXME assymetric: light is composite (elevation100 + stroke05), dark is simple (stroke1 only)
258
+ const shadowMenuHeaderAvatar = [
259
+ steps([elevation100(alpha(base[11], 0.1)), stroke05(alpha(base[5], 0.5))]),
260
+ stroke1(alpha(baseDark[9], 0.2)),
261
+ ] as const;
262
+
263
+ const edgeLeft = (color: string) => `-3px 0 10px 0 ${color}`;
264
+
265
+ const formHeaderShadow = [glow6(alpha(base[10], 0.1)), glow6(alpha(baseDark[1], 0.4))] as const;
266
+
267
+ const shadows = {
268
+ // Elevations
269
+ surfaceElevationS: [elevationS(blackA[3]), elevationS(whiteA[3])],
270
+ surfaceElevationM: [elevationM(blackA[5]), elevationM(whiteA[5])],
271
+ surfaceElevationL: [elevationL(blackA[5]), elevationL(whiteA[5])],
272
+
273
+ // Shadows and effects / Elevation
274
+ shadow50: [stroke1(alpha(base[12], 0.05)), stroke1(alpha(baseDark[12], 0.1))],
275
+ shadow100: [elevation100(alpha(base[12], 0.05)), elevation100(alpha(base[12], 0.1))],
276
+ shadow200: [elevation200(alpha(base[12], 0.05)), elevation200(alpha(base[12], 0.1))],
277
+ shadow300: same(steps([elevation250(alpha(base[12], 0.1)), elevation300(alpha(base[12], 0.15))])),
278
+ shadow400: same(steps([glow1(alpha(base[12], 0.2)), elevation400(alpha(base[12], 0.15))])),
279
+ shadow500: same(steps([glow1(alpha(base[12], 0.2)), elevation500(alpha(base[12], 0.15))])),
280
+ shadow600: same(steps([glow1(alpha(base[12], 0.2)), elevation600(alpha(base[12], 0.2))])),
281
+
282
+ actionMenuShadow: floatingShadows.popup,
283
+ shadowPopup: floatingShadows.popup,
284
+ shadowSidebar: [edgeLeft(alpha(base[10], 0.1)), edgeLeft(alpha(baseDark[1], 0.8))],
186
285
  } as const;
187
286
 
188
287
  // names proposal: forbid color in keys (they all are colors) — restructure it better (separate shadows, borders etc)
@@ -193,63 +292,216 @@ export function makeThemeDefs({
193
292
  // shadow-* Sets the color of box shadows
194
293
  // fill-* Sets the fill color of SVG elements
195
294
  // stroke-* Sets the stroke color of SVG elements
196
- // e.g.
197
- // bgMain
198
- // bgPanel
199
- // bgForm
200
- // bgTooltip
201
- // textDefault
202
- // textAccent
203
- // textDisabled
204
- // textInversed
205
- // borderInputDisabled
206
- // borderInputError
207
- // borderInputErrorHover
208
- // borderInputErrorFocus
295
+ // TODO elevation = raised * shadow
296
+
297
+ const transparentAlways = same(transparent);
298
+ const whiteColor = same(white);
299
+ const blackColor = same(black);
300
+
301
+ const fg = {
302
+ accent: [accent[11], accentDark[11]],
303
+ accentActive: [alpha(accent[11], 0.8), alpha(accentDark[11], 0.8)],
304
+
305
+ neutral: [base[11], baseDark[11]],
306
+ neutralActive: [alpha(base[11], 0.8), alpha(baseDark[11], 0.8)],
307
+ // FIXME uses base[12] while soft/ghost use base[11] — inconsistent?
308
+ neutralActive__TODO: [alpha(base[12], 0.8), alpha(baseDark[12], 0.8)],
309
+ muted: [base[9], baseDark[9]],
310
+
311
+ destructive: [red[11], redDark[11]],
312
+ destructiveActive: [alpha(red[11], 0.8), alpha(redDark[11], 0.8)],
313
+
314
+ addition: [teal[9], tealDark[11]],
315
+
316
+ success: [teal[11], tealDark[11]],
317
+ warning: [yellow[11], yellowDark[11]],
318
+
319
+ icon: [alpha(base[12], 0.7), alpha(baseDark[12], 0.7)],
320
+ // TODO The 0.65 vs 0.7 dark alpha might be intentional (text slightly more muted than icons?) or drift.
321
+ secondary: [alpha(base[12], 0.7), alpha(baseDark[12], 0.65)],
322
+ } satisfies Defs;
323
+
324
+ const bg = {
325
+ neutral3: [base[3], baseDark[3]],
326
+ accent3: [accent[3], accentDark[3]],
327
+ success: [teal[3], tealDark[3]],
328
+ warning: [yellow[3], yellowDark[3]],
329
+ error: [red[3], redDark[3]],
330
+ } satisfies Defs;
331
+
332
+ const icon = {
333
+ primary: [base[12], baseDark[12]],
334
+ neutral: [base[11], baseDark[11]],
335
+ accent: [accent[11], accentDark[11]],
336
+ success: [teal[11], tealDark[11]],
337
+ warning: [yellow[11], yellowDark[11]],
338
+ error: [red[11], redDark[11]],
339
+ link: [blue9, blueDark9],
340
+ ai: [purple9, purpleDark9],
341
+ } satisfies Defs;
342
+
343
+ const text = {
344
+ primary: [base[12], baseDark[12]],
345
+ accent: [accent[11], accentDark[11]],
346
+ success: [teal[11], tealDark[11]],
347
+ warning: [yellow[11], yellowDark[11]],
348
+ error: [red[11], redDark[11]],
349
+ } satisfies Defs;
350
+
351
+ const primary = {
352
+ accent: [accent[9], accentDark[9]],
353
+ destructive_TODO: [red[9], redDark[9]],
354
+ destructive: [red[9], redDark[10]], // TODO 9_9?
355
+ success: [teal[9], tealDark[9]],
356
+ warning: [yellow[9], yellowDark[8]], // TODO 9_9 after correct adjusting palette?
357
+ } satisfies Defs;
358
+
359
+ const bgStatus = {
360
+ accent: [alpha(accent[5], 0.7), alpha(accentDark[4], 0.8)],
361
+ neutral: [alpha(base[5], 0.7), alpha(baseDark[4], 0.8)],
362
+ success: [teal[5], tealDark[5]],
363
+ warning: [yellow[5], yellowDark[5]],
364
+ error: [red[5], redDark[5]],
365
+ } satisfies Defs;
366
+
367
+ const borderAccentOrMedium = [accent[7], accentDark[7]] as const;
368
+ const borderAccentOrMediumAccent = [accent[8], accentDark[8]] as const;
369
+ const borderDanger = [red[7], redDark[7]] as const;
370
+ const borderNeutral = [base[8], baseDark[7]] as const;
371
+
372
+ // beg(TODO shake it)
373
+ const bgEntityCardOverlay = [alpha(base[2], 0.8), alpha(baseDark[6], 0.5)] as const;
374
+ const bgEntityCardDone = [alpha(base[4], 0.3), alpha(baseDark[5], 0.3)] as const;
375
+ const base5_6 = [base[5], baseDark[6]] as const;
376
+ const base6_6_opacity30 = [alpha(base[6], 0.3), alpha(baseDark[6], 0.3)] as const;
377
+ const base8 = [base[8], baseDark[8]] as const;
378
+ const fgAccentText = [base[10], baseDark[10]] as const;
379
+ const fgMenuEtc = [base[12], baseDark[12]] as const;
380
+
381
+ const bgTabFocus = [base[6], baseDark[6]] as const;
382
+ const bgTabHover = [alpha(base[11], 0.1), alpha(baseDark[11], 0.1)] as const;
383
+
384
+ const viewHighlightBg = [accent[3], accentDark[3]] as const;
385
+ const notificationSelected = [accent[3], accentDark[4]] as const;
386
+ const bgCellGridDisabledOrHighlighted = [accent[4], accentDark[5]] as const;
387
+ const notificationSelectedHover = [accent[4], accentDark[6]] as const;
388
+
389
+ const fgSelection = [alpha(accent[9], 0.2), alpha(accentDark[9], 0.4)] as const;
390
+
391
+ const warningColor = [alpha(yellow[6], 0.6), alpha(yellowDark[9], 0.4)] as const;
392
+ const bgBtnGhostAccentHover = [alpha(accent[4], 0.8), alpha(accentDark[4], 0.8)] as const;
393
+ const bgBtnGhostNeutralHover = [alpha(base[7], 0.5), alpha(baseDark[6], 0.8)] as const;
394
+ const bgBtnGhostDestructiveHover = [red[4], redDark[4]] as const;
395
+ const bgBtnSoftAccentHover = [accent[5], accentDark[6]] as const;
396
+ const bgBtnSoftNeutralDefault = [base[3], baseDark[3]] as const;
397
+ const bgBtnSoftNeutralHover = [base[7], baseDark[7]] as const;
398
+ const bgBtnSoftDestructiveHover = [red[6], redDark[6]] as const;
399
+ const borderFocusRingAccent = same(alpha(accent[9], 0.3));
400
+ const borderFocusRingNeutral = same(alpha(base[9], 0.3));
401
+ const borderFocusRingDestructive = same(alpha(red[9], 0.3));
402
+ const textWhiteboardSelectionLockedOrDisabled = [alpha(base[9], 0.5), alpha(baseDark[9], 0.5)] as const;
403
+
404
+ const fgSelectedText = same(base[2]);
405
+ const fgSolidActiveText = same(alpha(white, 0.8));
406
+ const linkBlue = [blue9, blueDark9] as const;
407
+
408
+ const codeOrErrorMessage = [red[9], red[8]] as const; // TODO check: lack of redDark scale usage
409
+ const errorIndicatorColor = same(red[8]);
410
+ const neutralStrong = same(base[11]);
411
+ // end(TODO shake it)
412
+
413
+ const bgActionsMenu = raised.level1;
414
+ const bgActionsMenuItemHover = surface.level4_5;
415
+
416
+ const iconFromFg = (fg: string) => ({
417
+ fg: same(fg),
418
+ bg: same(alpha(fg, 0.2)),
419
+ });
420
+
421
+ const swatches = {
422
+ green: "#69AC5E",
423
+ grayLight: cardTypeColors[1],
424
+ indigo: cardTypeColors[8],
425
+ teal: cardTypeColors[10],
426
+ yellow: cardTypeColors[14],
427
+ };
428
+
429
+ const iconMySpace = iconFromFg(shift(swatches.grayLight, serializeHexVariadic));
430
+ const iconPrivate = iconFromFg(shift(swatches.green, serializeHexVariadic));
431
+ const iconFavorites = iconFromFg(shift(swatches.yellow, serializeHexVariadic));
432
+ const defaultCardTypeColorUppercaseHex = same(
433
+ (key.includes("arch") ? swatches.yellow : key.includes("neutral") ? swatches.indigo : swatches.teal).toUpperCase()
434
+ );
435
+
436
+ const iconBadge = iconFromFg(base[10]);
437
+
209
438
  const colors = {
210
439
  mode: ["light", "dark"],
211
440
  ...shadows,
212
441
 
442
+ // Accent background tints (light → strong)
443
+ colorAccentBgSubtle: same(alpha(accent[9], 0.1)),
444
+ colorAccentBgMild: same(alpha(accent[9], 0.15)),
445
+ colorAccentBgMedium: same(alpha(accent[9], 0.2)),
446
+ colorAccentBgStrong: same(alpha(accent[9], 0.3)),
447
+ colorAccentBgBold: same(alpha(accent[9], 0.35)),
448
+ colorAccentBgVivid: same(alpha(accent[9], 0.6)),
449
+
450
+ // Accent strokes
451
+ colorAccentStroke: same(alpha(accent[9], 0.25)),
452
+ colorAccentStrokeHover: same(alpha(accent[9], 0.4)),
453
+ colorAccentStrokeFocus: same(alpha(accent[9], 0.5)),
454
+
455
+ // Accent solid
456
+ colorAccentSolid: same(alpha(accent[9], 0.8)),
457
+
458
+ // Accent base
459
+ colorAccent: primary.accent,
460
+
213
461
  // Rubbish dump
214
- primaryBlue: [accent[9], accentDark[9]],
215
- whiteColor: [white, white],
216
- blackColor: [black, black],
462
+ /** @deprecated */
463
+ darkenPrimary: same(getDarkenColor(accent[9])),
464
+ whiteColor,
465
+ blackColor,
217
466
  mainBg: surface.level3exotic,
218
467
  panelBg: surface.level0,
219
468
  panelContentBg: surface.level2_1,
220
469
  colorBgRelationContainer: surface.level2_1,
470
+
221
471
  // AI colors
222
472
  colorAI: [purple9, purpleDark9],
223
473
  colorBgAI: [alpha(purple9, 0.1), alpha(purpleDark9, 0.1)],
224
- colorSubtleBgAI: [alpha(purple9, 0.05), alpha(purpleDark9, 0.1)], // FIXME why 0.1 for dark vs 0.05 for light?
474
+ // FIXME why 0.1 for dark vs 0.05 for light?
475
+ colorSubtleBgAI: [alpha(purple9, 0.05), alpha(purpleDark9, 0.1)],
225
476
  colorBgAIFloatingLauncher: surface.level1_4,
226
477
  colorBgAIFloatingPanelContent: surface.level1_3,
227
478
  colorBgAISidebarContent: surface.level1,
479
+
228
480
  // Other colors
229
481
  pageContentBg: surface.level0elevated,
230
482
  colorBgPopup: raised.level2,
231
483
  menuBg: surface.level3exotic,
232
- menuTextColor: [base[12], baseDark[12]],
233
- menuItemHoverColor: [base[5], baseDark[6]],
234
- menuSelectedTextColor: [base[2], base[2]], // FIXME baseDark
235
- menuIconColor: [alpha(base[12], 0.7), alpha(baseDark[12], 0.7)],
484
+ menuTextColor: fgMenuEtc,
485
+ menuItemHoverColor: base5_6,
486
+ menuSelectedTextColor: fgSelectedText,
487
+ menuIconColor: fg.icon,
236
488
 
237
489
  // Text, links colors
238
- textColor: [base[12], baseDark[12]],
239
- textSelectionColor: [alpha(accent[9], 0.2), alpha(accentDark[9], 0.4)],
240
- accentTextColor: [base[10], baseDark[10]],
241
- disabledTextColor: [base[9], baseDark[9]],
490
+ textColor: fgMenuEtc,
491
+ textSelectionColor: fgSelection,
492
+ accentTextColor: fgAccentText,
493
+ disabledTextColor: fg.muted,
242
494
  inversedTextColor: surface.level3_6,
243
- colorTextSecondary: [alpha(base[12], 0.7), alpha(baseDark[12], 0.65)],
244
- linkColor: [blue9, blueDark9],
495
+ colorTextSecondary: fg.secondary,
496
+ linkColor: linkBlue,
245
497
  linkBorder: [separator(alpha(blue9, 0.4)), separator(alpha(blueDark9, 0.4))],
246
- linkHoverColor: [blue9, blueDark9],
498
+ linkHoverColor: linkBlue,
247
499
  linkBorderHover: [separator(alpha(blue9, 0.8)), separator(alpha(blueDark9, 0.7))], // FIXME why different alpha?
248
- codeColor: [red[9], red[8]],
500
+ codeColor: codeOrErrorMessage,
249
501
  codeBgColor: surface.level3_4,
250
502
  codeBlockBgColor: surface.level3_4,
251
- addedDiffTextColor: [teal[9], tealDark[11]],
252
- removedDiffTextColor: [red[11], redDark[11]],
503
+ addedDiffTextColor: fg.addition,
504
+ removedDiffTextColor: fg.destructive,
253
505
 
254
506
  // Entity
255
507
  entityNodeColor: [baseDark[3], base[8]],
@@ -258,161 +510,156 @@ export function makeThemeDefs({
258
510
  entityNodeBorderHover: [separator(alpha(base[11], 0.8)), separator(alpha(base[7], 0.8))],
259
511
  entityNodeBgColor: surface.level2_3,
260
512
  shortcutTextColor: [base[9], baseDark[11]],
261
- shortcutBorder: [`1px solid ${alpha(base[8], 0.5)}`, `1px solid ${alpha(baseDark[10], 0.2)}`],
513
+ shortcutBorder: [border1(alpha(base[8], 0.5)), border1(alpha(baseDark[10], 0.2))],
262
514
  shortcutBorderColor: [alpha(base[8], 0.5), alpha(baseDark[10], 0.2)],
263
515
 
264
516
  // Input
265
517
  inputBgColor: surface.level0elevated,
266
- inputDisabledBgColor: [alpha(base[6], 0.3), alpha(baseDark[6], 0.3)],
267
- inputDisabledBorderColor: [`0 0 0 1px ${alpha(base[6], 0.2)}`, `0 0 0 1px ${alpha(baseDark[8], 0.2)}`],
518
+ inputDisabledBgColor: base6_6_opacity30,
519
+ inputDisabledBorderColor: inputStrokes.disabled,
268
520
  inputCopyBgColor: surface.level3_4,
269
- inputBorderColor: [`0 0 0 1px ${alpha(base[6], 0.7)}`, `0 0 0 1px ${alpha(baseDark[8], 0.7)}`],
270
- inputBorderHoverColor: [`0 0 0 1px ${base[7]}`, `0 0 0 1px ${baseDark[8]}`],
271
- inputBorderFocusColor: [`0 0 0 1px ${base[8]}`, `0 0 0 1px ${baseDark[9]}`],
521
+ inputBorderColor: inputStrokes.default,
522
+ inputBorderHoverColor: inputStrokes.hover,
523
+ inputBorderFocusColor: inputStrokes.focus,
272
524
  inputBorderBlendMode: ["multiply", "lighten"],
273
- inputPlaceholderTextColor: [base[9], baseDark[9]],
274
- inputErrorBorderColor: [`0 0 0 1px ${red[11]}`, `0 0 0 1px ${red[7]}`],
275
- inputErrorBorderHoverColor: [`0 0 0 1px ${alpha(red[11], 0.4)}`, `0 0 0 1px ${alpha(red[7], 0.4)}`],
276
- inputErrorBorderFocusColor: [`0 0 0 1px ${alpha(red[11], 0.25)}`, `0 0 0 1px ${alpha(red[7], 0.25)}`],
277
- inputErrorBorderFocusShadow: [`0 0 0 3px ${alpha(red[11], 0.25)}`, `0 0 0 3px ${alpha(red[7], 0.25)}`],
278
- buttonPrimaryColor: [accent[9], accentDark[9]],
279
- buttonColor: [base[10], baseDark[10]],
525
+ inputPlaceholderTextColor: fg.muted,
526
+ inputErrorBorderColor: inputStrokes.error,
527
+ inputErrorBorderHoverColor: inputStrokes.errorHover,
528
+ inputErrorBorderFocusColor: inputStrokes.errorFocus,
529
+ inputErrorBorderFocusShadow: inputStrokes.errorFocusRing,
530
+ inputBorderWarningColor: inputStrokes.warning,
531
+ buttonPrimaryColor: primary.accent,
532
+ buttonColor: fgAccentText,
280
533
  buttonPrimaryTextColor: [base[2], base[6]],
281
- checkboxColor: [alpha(base[12], 0.7), alpha(baseDark[12], 0.7)],
282
- colorBorderBlockQuote: [base[11], baseDark[11]],
534
+ checkboxColor: fg.icon,
535
+ colorBorderBlockQuote: fg.neutral,
283
536
 
284
537
  // Actions menu
285
- colorBgActionsMenu: raised.level1,
286
- colorBgActionsMenuItemHover: surface.level4_5,
287
- colorBgActionsMenuItemSelected: [alpha(accent[4], 0.8), alpha(accentDark[4], 0.8)],
538
+ colorBgActionsMenu: bgActionsMenu,
539
+ colorBgActionsMenuItemHover: bgActionsMenuItemHover,
540
+ colorBgActionsMenuItemSelected: bgBtnGhostAccentHover,
288
541
  colorBgActionsMenuItemSelectedHover: [alpha(accent[5], 0.8), alpha(accentDark[6], 0.8)],
289
542
  colorBgActionsMenuItemDangerHover: [alpha(red[9], 0.1), alpha(redDark[10], 0.1)],
290
543
  colorBgActionsMenuItemDangerActive: [alpha(red[9], 0.8), alpha(redDark[10], 0.8)],
291
- actionMenuBg: raised.level1,
544
+ actionMenuBg: bgActionsMenu,
292
545
  actionMenuInnerBg: raised.level2,
293
- actionMenuHover: surface.level4_5,
546
+ actionMenuHover: bgActionsMenuItemHover,
294
547
  actionMenuInnerHover: [base[4], alpha(baseDark[6], 0.5)],
295
548
  actionMenuButtonColor: surface.level0elevated,
296
549
  actionMenuButtonHoverColor: surface.level1_3,
297
- actionMenuButtonShadow: [
298
- `0 0 0 1px ${alpha(base[10], 0.1)}, 0 2px 4px -4px ${alpha(base[10], 0.2)}`,
299
- `0 0 0 1px ${alpha(baseDark[2], 0.1)}, 0 2px 4px -4px ${alpha(baseDark[2], 0.2)}`,
300
- ],
550
+ actionMenuButtonShadow: cardShadows.subtle,
301
551
  actionMenuSeparatorColor: [alpha(black, 0.1), alpha(white, 0.15)],
302
- separatorColor: [alpha(black, 0.1), alpha(white, 0.1)],
303
- separatorColorDimmed: [alpha(black, 0.05), alpha(white, 0.05)],
304
- separatorBreadcrumbsColor: [base[8], baseDark[8]],
305
- iconColor: [alpha(base[12], 0.7), alpha(baseDark[12], 0.7)],
552
+ separatorColor: blackA10,
553
+ separatorColorDimmed: blackA5,
554
+ separatorBreadcrumbsColor: base8,
555
+
556
+ // Border shorthands — 0.5px (thin separator)
557
+ borderSeparatorDimmed: both(separator)(blackA5),
558
+ borderSeparator: both(separator)(blackA10),
559
+ borderSeparatorMedium: both(separator)(blackA15),
560
+ borderSeparatorStrong: both(separator)(blackA25),
561
+ borderMedia: same(separator(blackA[7])),
562
+
563
+ // Border shorthands — 1px (solid)
564
+ borderSolidSeparator: both(border1)(blackA10),
565
+ borderSolidSeparatorDimmed: both(border1)(blackA5),
566
+ borderSolidFilterGroup: [border1(blackA[3]), border1(whiteA[3])],
567
+ borderSolidGrid: [border1(base5_6[0]), border1(base5_6[1])],
568
+ borderSolidOutlineNeutral: [border1(borderNeutral[0]), border1(borderNeutral[1])],
569
+ borderSolidMedia: same(border1(blackA[7])),
570
+ borderSolidCommentBubble: [border1(raised.level4[0]), border1(raised.level4[1])],
571
+
572
+ // Border shorthands — 3px
573
+ borderBlockQuote: [border3(fg.neutral[0]), border3(fg.neutral[1])],
574
+
575
+ // Composite shadows (stroke + elevation)
576
+ shadowCardDefault: [
577
+ steps([inputStrokes.default[0], shadows.shadow100[0]]),
578
+ steps([inputStrokes.default[1], shadows.shadow100[1]]),
579
+ ],
580
+ shadowCardHover: [
581
+ steps([inputStrokes.default[0], shadows.shadow200[0]]),
582
+ steps([inputStrokes.default[1], shadows.shadow200[1]]),
583
+ ],
584
+ shadowCardInset: [`inset ${inputStrokes.default[0]}`, `inset ${inputStrokes.default[1]}`],
585
+
586
+ iconColor: fg.icon,
306
587
  appIconColor: [alpha(base[2], 0.9), alpha(base[2], 0.7)],
307
588
  appIconBgColor: [alpha(base[1], 0.9), alpha(base[2], 0.5)],
308
589
  mentionBgColor: [alpha(base[7], 0.3), alpha(baseDark[7], 0.4)],
309
590
  colorBgSelectMenu: surface.level1_3,
310
- shadowSelectMenu: [
311
- `0px 0px 2px 0px ${alpha(base[11], 0.3)}, 0px 4px 6px 0px ${alpha(base[11], 0.05)}, 0px 10px 26px 0px ${alpha(
312
- base[11],
313
- 0.15
314
- )}`,
315
- `0px 0px 0px 1px ${baseDark[6]}, 0px 4px 6px 0px ${alpha(baseDark[1], 0.05)}, 0px 10px 26px 0px ${alpha(
316
- baseDark[1],
317
- 0.15
318
- )}`,
319
- ],
320
- colorBgListItemGeneral: [transparent, transparent],
591
+ shadowSelectMenu: floatingShadows.popup,
592
+ colorBgListItemGeneral: transparentAlways,
321
593
  colorBgListItemGeneralHover: surface.level3_4,
322
594
  colorBgListItemGeneralFocus: surface.level4_6,
323
- colorBgListItemGeneralSelected: [accent[3], accentDark[4]],
324
- colorBgListItemGeneralSelectedHover: [accent[4], accentDark[6]],
325
- colorBgListItemGeneralSelectedFocus: [accent[4], accentDark[6]],
326
- colorBgListItemGeneralDisabled: [transparent, transparent],
327
- colorTextListItemGeneralDisabled: [base[9], baseDark[9]],
595
+ colorBgListItemGeneralSelected: notificationSelected,
596
+ colorBgListItemGeneralSelectedHover: notificationSelectedHover,
597
+ colorBgListItemGeneralSelectedFocus: notificationSelectedHover,
598
+ colorBgListItemGeneralDisabled: transparentAlways,
599
+ colorTextListItemGeneralDisabled: fg.muted,
328
600
  colorBgListItemGeneralSelectedDisabled: [accent[5], accentDark[5]],
329
- opacityListItemGeneralDisabled: [opacity.opacity40.toString(), opacity.opacity40.toString()],
601
+ opacityListItemGeneralDisabled: opacities.drag,
330
602
 
331
603
  // Search Items
332
- colorBgSearchRowHover: surface.level4_5,
604
+ colorBgSearchRowHover: bgActionsMenuItemHover,
333
605
  colorBgSearchRowCreateHover: [accent[4], accentDark[4]],
334
- opacitySearchItemDone: [opacity.opacity40.toString(), opacity.opacity40.toString()],
606
+ opacitySearchItemDone: opacities.drag,
607
+
335
608
  // Entity Box Style And States
336
609
  // Basic Entity Box State
337
- colorBgEntityBoxDefault: raised.level1,
338
- shadowStrokeEntityBoxDefault: [`0 0 0 1px ${base[5]}`, `0 0 0 1px ${baseDark[5]}`],
339
- shadowEntityBoxDefault: [`0px 2px 4px 0px ${alpha(base[12], 0.05)}`, `0px 2px 4px 0px ${alpha(baseDark[1], 0.05)}`],
610
+ colorBgEntityBoxDefault: bgActionsMenu,
611
+ shadowStrokeEntityBoxDefault: entityBoxShadows.stroke.default,
612
+ shadowEntityBoxDefault: entityBoxShadows.elevation.default,
340
613
  // :hover
341
614
  colorBgEntityBoxDefaultHover: raised.level2,
342
- shadowEntityBoxDefaultHover: [
343
- `0px 4px 8px 0px ${alpha(base[12], 0.1)}`,
344
- `0px 4px 8px 0px ${alpha(baseDark[1], 0.1)}`,
345
- ],
615
+ shadowEntityBoxDefaultHover: entityBoxShadows.elevation.hover,
346
616
  // :focus
347
- colorBgEntityBoxDefaultFocus: raised.level1,
348
- colorOverlayEntityBoxDefaultFocus: [accent[9], accentDark[9]],
349
- shadowStrokeEntityBoxDefaultFocus: [`0 0 0 2px ${alpha(accent[9], 0.4)}`, `0 0 0 2px ${alpha(accentDark[9], 0.4)}`],
617
+ colorBgEntityBoxDefaultFocus: bgActionsMenu,
618
+ colorOverlayEntityBoxDefaultFocus: primary.accent,
619
+ shadowStrokeEntityBoxDefaultFocus: entityBoxShadows.stroke.focus,
350
620
  // :focus:hover
351
621
  colorBgEntityBoxDefaultFocusHover: raised.level2,
352
- colorOverlayEntityBoxDefaultFocusHover: [accent[9], accentDark[9]],
353
- shadowStrokeEntityBoxDefaultFocusHover: [
354
- `0 0 0 2px ${alpha(accent[9], 0.6)}`,
355
- `0 0 0 2px ${alpha(accentDark[9], 0.6)}`,
356
- ],
622
+ colorOverlayEntityBoxDefaultFocusHover: primary.accent,
623
+ shadowStrokeEntityBoxDefaultFocusHover: entityBoxShadows.stroke.focusHover,
357
624
  //::drag
358
- opacityEntityBoxDefaultDrag: [opacity.opacity40.toString(), opacity.opacity40.toString()],
359
- shadowEntityBoxDefaultDrag: [
360
- `0px 8px 12px 0px ${alpha(base[12], 0.1)}`,
361
- `0px 8px 12px 0px ${alpha(baseDark[1], 0.1)}`,
362
- ],
625
+ opacityEntityBoxDefaultDrag: opacities.drag,
626
+ shadowEntityBoxDefaultDrag: entityBoxShadows.elevation.drag,
363
627
  // Selected Entity Box State
364
628
  colorBgEntityBoxSelected: [accent[2], accentDark[3]],
365
- shadowStrokeEntityBoxSelected: [
366
- `0 0 0 1px ${alpha(accent[9], 0.4)}, 0 0 0 3px ${alpha(accent[9], 0.4)}`,
367
- `0 0 0 1px ${accentDark[9]}, 0 0 0 3px ${alpha(accentDark[9], 0.4)}`,
368
- ],
629
+ shadowStrokeEntityBoxSelected: entityBoxShadows.stroke.selected,
369
630
  // :hover
370
- colorBgEntityBoxSelectedHover: [accent[3], accentDark[3]],
371
- shadowStrokeEntityBoxSelectedHover: [
372
- `0 0 0 1px ${alpha(accent[9], 0.6)}, 0 0 0 3px ${alpha(accent[9], 0.4)}`,
373
- `0 0 0 1px ${accentDark[9]}, 0 0 0 3px ${alpha(accentDark[9], 0.4)}`,
374
- ],
631
+ colorBgEntityBoxSelectedHover: viewHighlightBg,
632
+ shadowStrokeEntityBoxSelectedHover: entityBoxShadows.stroke.selectedHover,
375
633
  //::drag
376
- colorBgEntityBoxSelectedDrag: [accent[3], accentDark[3]],
377
- shadowStrokeEntityBoxSelectedDrag: [
378
- `0 0 0 1px ${alpha(accent[9], 0.4)}, 0 0 0 3px ${alpha(accent[9], 0.4)}`,
379
- `0 0 0 1px ${accentDark[9]}, 0 0 0 3px ${alpha(accentDark[9], 0.4)}`,
380
- ],
634
+ colorBgEntityBoxSelectedDrag: viewHighlightBg,
635
+ shadowStrokeEntityBoxSelectedDrag: entityBoxShadows.stroke.selected,
381
636
  // Disabled Entity Box State (done)
382
- opacityEntityBoxDisabled: [opacity.opacity65.toString(), opacity.opacity65.toString()],
637
+ opacityEntityBoxDisabled: opacities.disabled,
383
638
  // :hover
384
- opacityEntityBoxDisabledHover: [opacity.opacity75.toString(), opacity.opacity75.toString()],
639
+ opacityEntityBoxDisabledHover: opacities.disabledHoverOrFocus,
385
640
  // :focus
386
- opacityEntityBoxDisabledFocus: [opacity.opacity75.toString(), opacity.opacity75.toString()],
641
+ opacityEntityBoxDisabledFocus: opacities.disabledHoverOrFocus,
387
642
  // :drag
388
- opacityEntityBoxDisabledDrag: [opacity.opacity40.toString(), opacity.opacity40.toString()],
643
+ opacityEntityBoxDisabledDrag: opacities.drag,
644
+
389
645
  // Entity Old
390
646
  entityCardBgColor: raised.level3,
391
- entityCardSelectedColor: [alpha(base[2], 0.8), alpha(baseDark[6], 0.5)],
392
- entityCardHoverColor: [alpha(base[2], 0.8), alpha(baseDark[6], 0.5)],
393
- entityCardDoneColor: [alpha(base[4], 0.3), alpha(baseDark[5], 0.3)],
394
- entityCardShadow: [
395
- `0 0 0 1px ${alpha(base[10], 0.1)}, 0 2px 4px -4px ${alpha(base[10], 0.2)}`,
396
- `0 0 0 1px ${alpha(baseDark[2], 0.1)}, 0 2px 4px -4px ${alpha(baseDark[2], 0.2)}`,
397
- ],
398
- entityCardShadowHover: [
399
- `0 0 0 1px ${alpha(base[10], 0.1)}, 0 2px 4px -4px ${alpha(base[10], 0.2)}`,
400
- `0 0 0 1px ${alpha(baseDark[2], 0.1)}, 0 2px 4px -4px ${alpha(baseDark[2], 0.2)}`,
401
- ],
647
+ entityCardSelectedColor: bgEntityCardOverlay,
648
+ entityCardHoverColor: bgEntityCardOverlay,
649
+ entityCardDoneColor: bgEntityCardDone,
650
+ entityCardShadow: cardShadows.subtle,
651
+ entityCardShadowHover: cardShadows.subtle,
402
652
  colorBgSegmentedControl: [alpha(base[5], 0.8), alpha(baseDark[3], 0.8)],
403
653
  colorBgMenuHeaderAvatar: surface.level0elevated,
404
- shadowMenuHeaderAvatar: [
405
- `0px 1px 4px ${alpha(base[11], 0.1)}, 0 0 0 0.5px ${alpha(base[5], 0.5)}`,
406
- `0 0 0 1px ${alpha(baseDark[9], 0.2)}`,
407
- ],
654
+ shadowMenuHeaderAvatar: shadowMenuHeaderAvatar,
655
+
408
656
  // Main Menu Items Styles and States
409
657
  // Dragged
410
- opacityMenuItemDragged: [opacity.opacity40.toString(), opacity.opacity40.toString()],
658
+ opacityMenuItemDragged: opacities.drag,
411
659
  colorBgMenuItemSelectedDragged: [accent[6], accentDark[6]],
412
660
  // Default
413
661
  colorTextMenuItem: [alpha(base[12], 0.9), alpha(baseDark[12], 0.9)],
414
-
415
- colorBgMenuItem: [transparent, transparent],
662
+ colorBgMenuItem: transparentAlways,
416
663
  // :hover
417
664
  colorBgMenuItemHover: [base[5], baseDark[2]],
418
665
  // :focus
@@ -422,98 +669,97 @@ export function makeThemeDefs({
422
669
  // :hover
423
670
  colorBgMenuItemSelectedHover: [alpha(accent[6], 0.7), accentDark[5]],
424
671
  // :focus, :focus:hover
425
- colorBgPinnedFieldsLabel: [base[11], baseDark[11]],
426
- colorBgObjectEditorSeparator: [base[12], baseDark[12]],
672
+ colorBgPinnedFieldsLabel: fg.neutral,
673
+ colorBgObjectEditorSeparator: fgMenuEtc,
427
674
  colorBgMenuItemSelectedFocused: [accent[6], accentDark[5]],
428
675
  colorBgFieldEditorContainer: surface.level2_3,
429
676
  colorBgFieldEditorLinkEqualSign: [base[6], baseDark[2]],
430
677
  allowedDropColor: surface.level4,
431
678
  relationViewBgColor: surface.level2_3,
432
679
 
433
- mySpaceIconColor: [swatches["gray-light"], swatches["gray-light"]],
434
- mySpaceIconBg: [alpha(swatches["gray-light"], 0.2), alpha(swatches["gray-light"], 0.2)],
435
- privateIconColor: [swatches.green, swatches.green],
436
- privateIconBg: [alpha(swatches.green, 0.2), alpha(swatches.green, 0.2)],
437
- favoritesIconColor: [swatches.yellow, swatches.yellow],
438
- favoritesIconBg: [alpha(swatches.yellow, 0.2), alpha(swatches.yellow, 0.2)],
680
+ mySpaceIconColor: iconMySpace.fg,
681
+ mySpaceIconBg: iconMySpace.bg,
682
+ privateIconColor: iconPrivate.fg,
683
+ privateIconBg: iconPrivate.bg,
684
+ favoritesIconColor: iconFavorites.fg,
685
+ favoritesIconBg: iconFavorites.bg,
686
+ defaultCardTypeColorUppercaseHex,
439
687
 
440
688
  // Unit
441
689
  unitBg: surface.level3_6,
442
690
  unitBgHover: [base[4], baseDark[7]],
443
691
 
444
692
  // Badges
445
- colorBgBadgeNeutral: [alpha(accent[5], 0.7), alpha(accentDark[4], 0.8)],
446
- colorBgBadgeSuccess: [teal[5], tealDark[5]],
447
- colorBgBadgeWarning: [yellow[5], yellowDark[5]],
448
- colorBgBadgeError: [red[5], redDark[5]],
449
- colorTextBadgeNeutral: [accent[11], accentDark[11]],
450
- colorTextBadgeSuccess: [teal[11], tealDark[11]],
451
- colorTextBadgeWarning: [yellow[11], yellowDark[11]],
452
- colorTextBadgeError: [red[11], redDark[11]],
453
- // FIXME: lack of baseDark usage; same values!
454
- badgeBgColor: [alpha(base[10], 0.2), alpha(base[10], 0.2)],
693
+ colorBgBadgeNeutral: bgStatus.neutral,
694
+ colorBgBadgeAccent: bgStatus.accent,
695
+ colorBgBadgeSuccess: bgStatus.success,
696
+ colorBgBadgeWarning: bgStatus.warning,
697
+ colorBgBadgeError: bgStatus.error,
698
+ colorTextBadgeNeutral: fg.neutral,
699
+ colorTextBadgeAccent: fg.accent,
700
+ colorTextBadgeSuccess: fg.success,
701
+ colorTextBadgeWarning: fg.warning,
702
+ colorTextBadgeError: fg.destructive,
703
+ badgeBgColor: iconBadge.bg,
704
+
455
705
  tooltipBgColor: [baseDark[5], baseDark[6]],
456
706
  todayMarkerColor: [red[8], redDark[6]],
457
707
  viewBgOverlayColor: [alpha(base[8], 0.2), alpha(baseDark[1], 0.6)],
458
708
  floatEditorMenuBg: surface.level1_6,
459
- floatEditorActiveColor: [accent[11], accentDark[11]],
460
- commentColor: [alpha(yellow[6], 0.6), alpha(yellowDark[9], 0.4)],
709
+ floatEditorActiveColor: fg.accent,
710
+ commentColor: warningColor,
461
711
  cellBackgroundColor: surface.level2,
462
- cellBackgroundHoverColor: [alpha(base[6], 0.3), alpha(baseDark[6], 0.3)],
712
+ cellBackgroundHoverColor: base6_6_opacity30,
463
713
  cellBorderColor: [alpha(base[8], 0.5), alpha(baseDark[9], 0.5)],
464
714
  cellPinnedBorderColor: [alpha(base[8], 0.7), alpha(baseDark[9], 0.7)],
465
- tableRowWarningColor: [alpha(yellow[6], 0.6), alpha(yellowDark[9], 0.4)],
715
+ tableRowWarningColor: warningColor,
466
716
  errorBgColor: [alpha(red[9], 0.2), alpha(redDark[9], 0.6)],
467
717
  errorTextColor: [red[11], red[7]],
468
- errorButtonColor: [red[9], redDark[10]],
718
+ errorButtonColor: primary.destructive,
469
719
  warningBgColor: [alpha(yellow[6], 0.6), alpha(yellowDark[8], 0.6)],
470
- warningButtonColor: [yellow[11], yellowDark[11]],
720
+ warningButtonColor: fg.warning,
471
721
  infoBox: [alpha(yellow[4], 0.5), alpha(yellowDark[9], 0.2)],
472
722
  appCardBgColor: surface.level0elevated,
473
723
  appCardHoverColor: [alpha(base[1], 0.95), baseDark[2]],
474
724
  modalBg: [alpha(base[11], 0.2), alpha(baseDark[2], 0.5)],
475
- modalContentBg: raised.level1,
725
+ modalContentBg: bgActionsMenu,
476
726
  progressIconBg: [blackA[7], whiteA[7]],
477
727
  progressIconFill: [blackA[11], whiteA[11]],
478
728
  formBg: surface.level2,
479
- formHeaderShadow: [`${alpha(base[10], 0.1)} 0px 0px 6px`, `${alpha(baseDark[1], 0.4)} 0px 0px 6px`],
729
+ formHeaderShadow: formHeaderShadow,
480
730
  formEditorFieldBg: surface.level3_4,
481
731
  filterGroup1Bg: surface.level2_6,
482
732
  filterGroup2Bg: surface.level3_7,
483
733
  filterGroupBorder: [blackA[3], whiteA[3]],
484
734
  colorBgNotificationHover: surface.level3_4,
485
- colorBgNotificationSelected: [accent[3], accentDark[4]],
486
- colorBgNotificationSelectedHover: [accent[4], accentDark[6]],
487
- disabledInversedTextColor: [shades.opacity25, lights.opacity25],
488
- success: [teal[9], tealDark[9]],
489
- danger: [red[9], redDark[10]],
490
- active: [red[9], redDark[10]],
491
- warning: [yellow[9], yellowDark[8]],
735
+ colorBgNotificationSelected: notificationSelected,
736
+ colorBgNotificationSelectedHover: notificationSelectedHover,
737
+ disabledInversedTextColor: blackA25,
738
+ success: primary.success,
739
+ danger: primary.destructive,
740
+ active: primary.destructive,
741
+ warning: primary.warning,
492
742
  cardBg: raised.level4,
493
743
  selectedImageBorder: [blackA[8], whiteA[11]],
494
- transparent: [transparent, transparent],
495
- shades: [lights, shades],
496
- lights: [shades, lights],
497
- separators: [separators, inversedSeparators],
498
- progressBg: [base[4], base[4]], // FIXME surface.level4?
499
- progressText: [base[11], base[11]],
500
- progressFillBg: [base[11], base[11]],
501
- progressFillText: [white, white],
744
+ transparent: transparentAlways,
745
+ progressBg: same(base[4]), // TODO check if that could be surface.level4?
746
+ progressText: neutralStrong,
747
+ progressFillBg: neutralStrong,
748
+ progressFillText: whiteColor,
502
749
  progressBarFillNeutral: [alpha(base[9], 0.2), alpha(baseDark[9], 0.2)],
503
750
  progressBarFill: [accent[9], accentDark[10]],
504
751
  progressBarBg: [alpha(accent[9], 0.25), alpha(accentDark[10], 0.25)],
505
- // FIXME: lack of inverse scale usage, same values!
506
- colorPickerSwatchBorder: [blackA[7], blackA[7]],
507
- colorBorderRichTextMedia: [blackA[7], blackA[7]],
752
+ colorPickerSwatchBorder: same(blackA[7]),
753
+ colorBorderRichTextMedia: same(blackA[7]),
508
754
  richTextTableBorder: [blackA[5], whiteA[7]],
509
755
 
510
756
  // Drag and drop
511
- colorBgDropLine: [accent[8], accentDark[8]],
757
+ colorBgDropLine: borderAccentOrMediumAccent,
512
758
 
513
759
  // Views
514
760
  viewBg: surface.level1,
515
761
  viewSecondaryBg: surface.level2,
516
- viewHighlightBg: [accent[3], accentDark[3]],
762
+ viewHighlightBg: viewHighlightBg,
517
763
 
518
764
  // Board
519
765
  boardBg: surface.level1,
@@ -525,20 +771,20 @@ export function makeThemeDefs({
525
771
  gridHeaderHoverBgColor: surface.level3_4,
526
772
  gridHeaderTextColor: [base[10], baseDark[11]],
527
773
  gridCellBgColor: surface.level0elevated,
528
- gridCellBorderColor: [base[5], baseDark[6]],
774
+ gridCellBorderColor: base5_6,
529
775
  gridDisabledCellBgColor: surface.level2_3,
530
- gridSelectedCellBgColor: [accent[3], accentDark[3]],
531
- gridHighlightedCellBgColor: [accent[4], accentDark[5]],
776
+ gridSelectedCellBgColor: viewHighlightBg,
777
+ gridHighlightedCellBgColor: bgCellGridDisabledOrHighlighted,
532
778
  gridSelectedCellBorderColor: [accent[6], accentDark[7]],
533
- gridSelectedPinnedCellBorderColor: [accent[7], accentDark[7]],
534
- gridDisabledSelectedCellBgColor: [accent[4], accentDark[5]],
779
+ gridSelectedPinnedCellBorderColor: borderAccentOrMedium,
780
+ gridDisabledSelectedCellBgColor: bgCellGridDisabledOrHighlighted,
535
781
  gridActiveCellBorderColor: [accent[8], accentDark[9]],
536
782
 
537
783
  //timeline
538
- timelineEntityHandleColor: [accent[7], accentDark[7]],
539
- timelineDependencyHoverBgColor: [accent[8], accentDark[8]],
540
- timelineDependencyOverlapBgColor: [red[9], redDark[9]],
541
- timelineDependencyOverlapHoverBgColor: [red[11], redDark[11]],
784
+ timelineEntityHandleColor: borderAccentOrMedium,
785
+ timelineDependencyHoverBgColor: borderAccentOrMediumAccent,
786
+ timelineDependencyOverlapBgColor: primary.destructive_TODO,
787
+ timelineDependencyOverlapHoverBgColor: fg.destructive,
542
788
  timelineCellBgColor: surface.level1,
543
789
  timelineCellWeekendBgColor: surface.level2,
544
790
  timelineCellTodayBgColor: [accent[4], accentDark[2]],
@@ -546,115 +792,141 @@ export function makeThemeDefs({
546
792
 
547
793
  // #region buttons
548
794
  // solid
549
- colorBgButtonSolidAccentDefault: [accent[9], accentDark[9]],
795
+ colorBgButtonSolidAccentDefault: primary.accent,
550
796
  colorBgButtonSolidAccentHover: [accent[11], accentDark[10]],
551
- colorBgButtonSolidNeutralDefault: [base[12], baseDark[12]],
797
+ colorBgButtonSolidNeutralDefault: fgMenuEtc,
552
798
  colorBgButtonSolidNeutralHover: [alpha(base[12], 0.85), white],
553
- colorBgButtonSolidDestructiveDefault: [red[9], redDark[9]],
799
+ colorBgButtonSolidDestructiveDefault: primary.destructive_TODO,
554
800
  colorBgButtonSolidDestructiveHover: [red[11], redDark[10]],
555
- colorTextButtonSolidAccent: [white, white],
556
- colorTextButtonSolidAccentActive: [alpha(white, 0.8), alpha(white, 0.8)],
801
+ colorTextButtonSolidAccent: whiteColor,
802
+ colorTextButtonSolidAccentActive: fgSolidActiveText,
557
803
  colorTextButtonSolidNeutral: [white, baseDark[2]],
558
804
  colorTextButtonSolidNeutralActive: [white, alpha(baseDark[2], 0.8)],
559
- colorTextButtonSolidDestructive: [white, white],
560
- colorTextButtonSolidDestructiveActive: [alpha(white, 0.8), alpha(white, 0.8)],
561
- colorIconButtonSolidAccent: [white, white],
805
+ colorTextButtonSolidDestructive: whiteColor,
806
+ colorTextButtonSolidDestructiveActive: fgSolidActiveText,
807
+ colorIconButtonSolidAccent: whiteColor,
562
808
  colorIconButtonSolidNeutral: [white, baseDark[8]],
563
- colorIconButtonSolidDestructive: [white, white],
809
+ colorIconButtonSolidDestructive: whiteColor,
564
810
  // outline
565
- colorBorderButtonOutlineAccentDefault: [accent[8], accentDark[8]],
566
- colorBorderButtonOutlineNeutralDefault: [base[8], baseDark[7]],
567
- colorBorderButtonOutlineDestructiveDefault: [red[7], redDark[7]],
811
+ colorBorderButtonOutlineAccentDefault: borderAccentOrMediumAccent,
812
+ colorBorderButtonOutlineNeutralDefault: borderNeutral,
813
+ colorBorderButtonOutlineDestructiveDefault: borderDanger,
568
814
  colorBgButtonOutlineAccentDefault: surface.level0,
569
- colorBgButtonOutlineAccentHover: [accent[3], accentDark[3]],
815
+ colorBgButtonOutlineAccentHover: viewHighlightBg,
570
816
  colorBgButtonOutlineNeutralDefault: surface.level0,
571
817
  colorBgButtonOutlineNeutralHover: surface.level4,
572
818
  colorBgButtonOutlineDestructiveDefault: surface.level0,
573
- colorBgButtonOutlineDestructiveHover: [red[4], redDark[4]],
574
- colorTextButtonOutlineAccent: [accent[11], accentDark[11]],
575
- colorTextButtonOutlineAccentActive: [alpha(accent[11], 0.8), alpha(accentDark[11], 0.8)],
576
- colorTextButtonOutlineNeutral: [base[11], baseDark[11]],
577
- colorTextButtonOutlineNeutralActive: [alpha(base[12], 0.8), alpha(baseDark[12], 0.8)],
578
- colorTextButtonOutlineDestructive: [red[11], redDark[11]],
579
- colorTextButtonOutlineDestructiveActive: [alpha(red[11], 0.8), alpha(redDark[11], 0.8)],
580
- colorIconButtonOutlineAccent: [accent[11], accentDark[11]],
581
- colorIconButtonOutlineNeutral: [base[11], baseDark[11]],
582
- colorIconButtonOutlineDestructive: [red[11], redDark[11]],
819
+ colorBgButtonOutlineDestructiveHover: bgBtnGhostDestructiveHover,
820
+ colorTextButtonOutlineAccent: fg.accent,
821
+ colorTextButtonOutlineAccentActive: fg.accentActive,
822
+ colorTextButtonOutlineNeutral: fg.neutral,
823
+ colorTextButtonOutlineNeutralActive: fg.neutralActive__TODO,
824
+ colorTextButtonOutlineDestructive: fg.destructive,
825
+ colorTextButtonOutlineDestructiveActive: fg.destructiveActive,
826
+ colorIconButtonOutlineAccent: fg.accent,
827
+ colorIconButtonOutlineNeutral: fg.neutral,
828
+ colorIconButtonOutlineDestructive: fg.destructive,
583
829
  // soft
584
- colorBgButtonSoftAccentDefault: [accent[3], accentDark[4]],
585
- colorBgButtonSoftAccentHover: [accent[5], accentDark[6]],
586
- colorBgButtonSoftNeutralDefault: [base[3], baseDark[3]],
587
- colorBgButtonSoftNeutralHover: [base[7], baseDark[7]],
588
- colorBgButtonSoftDestructiveDefault: [red[4], redDark[4]],
589
- colorBgButtonSoftDestructiveHover: [red[6], redDark[6]],
590
- colorTextButtonSoftAccent: [accent[11], accentDark[11]],
591
- colorTextButtonSoftAccentActive: [alpha(accent[11], 0.8), alpha(accentDark[11], 0.8)],
592
- colorTextButtonSoftNeutral: [base[11], baseDark[11]],
593
- colorTextButtonSoftNeutralActive: [alpha(base[11], 0.8), alpha(baseDark[11], 0.8)],
594
- colorTextButtonSoftDestructive: [red[11], redDark[11]],
595
- colorTextButtonSoftDestructiveActive: [alpha(red[11], 0.8), alpha(redDark[11], 0.8)],
596
- colorIconButtonSoftAccent: [accent[11], accentDark[11]],
597
- colorIconButtonSoftNeutral: [base[11], baseDark[11]],
598
- colorIconButtonSoftDestructive: [red[11], redDark[11]],
830
+ colorBgButtonSoftAccentDefault: notificationSelected,
831
+ colorBgButtonSoftAccentHover: bgBtnSoftAccentHover,
832
+ colorBgButtonSoftNeutralDefault: bgBtnSoftNeutralDefault,
833
+ colorBgButtonSoftNeutralHover: bgBtnSoftNeutralHover,
834
+ colorBgButtonSoftDestructiveDefault: bgBtnGhostDestructiveHover,
835
+ colorBgButtonSoftDestructiveHover: bgBtnSoftDestructiveHover,
836
+ colorTextButtonSoftAccent: fg.accent,
837
+ colorTextButtonSoftAccentActive: fg.accentActive,
838
+ colorTextButtonSoftNeutral: fg.neutral,
839
+ colorTextButtonSoftNeutralActive: fg.neutralActive,
840
+ colorTextButtonSoftDestructive: fg.destructive,
841
+ colorTextButtonSoftDestructiveActive: fg.destructiveActive,
842
+ colorIconButtonSoftAccent: fg.accent,
843
+ colorIconButtonSoftNeutral: fg.neutral,
844
+ colorIconButtonSoftDestructive: fg.destructive,
599
845
  // ghost
600
- colorBgButtonGhostAccentDefault: [transparent, transparent],
601
- colorBgButtonGhostAccentHover: [alpha(accent[4], 0.8), alpha(accentDark[4], 0.8)],
602
- colorBgButtonGhostNeutralDefault: [transparent, transparent],
603
- colorBgButtonGhostNeutralHover: [alpha(base[7], 0.5), alpha(baseDark[6], 0.8)],
604
- colorBgButtonGhostDestructiveDefault: [transparent, transparent],
605
- colorBgButtonGhostDestructiveHover: [red[4], redDark[4]],
606
- colorTextButtonGhostAccent: [accent[11], accentDark[11]],
607
- colorTextButtonGhostAccentActive: [alpha(accent[11], 0.8), alpha(accentDark[11], 0.8)],
608
- colorTextButtonGhostNeutral: [base[11], baseDark[11]],
609
- colorTextButtonGhostNeutralActive: [alpha(base[11], 0.8), alpha(baseDark[11], 0.8)],
610
- colorTextButtonGhostDestructive: [red[11], redDark[11]],
611
- colorTextButtonGhostDestructiveActive: [alpha(red[11], 0.8), alpha(redDark[11], 0.8)],
612
- colorIconButtonGhostAccent: [accent[11], accentDark[11]],
613
- colorIconButtonGhostNeutral: [base[11], baseDark[11]],
614
- colorIconButtonGhostDestructive: [red[11], redDark[11]],
846
+ colorBgButtonGhostAccentDefault: transparentAlways,
847
+ colorBgButtonGhostAccentHover: bgBtnGhostAccentHover,
848
+ colorBgButtonGhostNeutralDefault: transparentAlways,
849
+ colorBgButtonGhostNeutralHover: bgBtnGhostNeutralHover,
850
+ colorBgButtonGhostDestructiveDefault: transparentAlways,
851
+ colorBgButtonGhostDestructiveHover: bgBtnGhostDestructiveHover,
852
+ colorTextButtonGhostAccent: fg.accent,
853
+ colorTextButtonGhostAccentActive: fg.accentActive,
854
+ colorTextButtonGhostNeutral: fg.neutral,
855
+ colorTextButtonGhostNeutralActive: fg.neutralActive,
856
+ colorTextButtonGhostDestructive: fg.destructive,
857
+ colorTextButtonGhostDestructiveActive: fg.destructiveActive,
858
+ colorIconButtonGhostAccent: fg.accent,
859
+ colorIconButtonGhostNeutral: fg.neutral,
860
+ colorIconButtonGhostDestructive: fg.destructive,
615
861
  // #endregion
616
862
 
617
- colorBorderAccentFocusRing: [alpha(accent[9], 0.3), alpha(accent[9], 0.3)],
618
- colorBorderNeutralFocusRing: [alpha(base[9], 0.3), alpha(base[9], 0.3)],
619
- colorBorderDestructiveFocusRing: [alpha(red[9], 0.3), alpha(red[9], 0.3)],
863
+ colorBorderAccentFocusRing: borderFocusRingAccent,
864
+ colorBorderNeutralFocusRing: borderFocusRingNeutral,
865
+ colorBorderDestructiveFocusRing: borderFocusRingDestructive,
620
866
 
621
867
  colorBgReactionsDefault: surface.level0elevated,
622
868
  colorBgReactionsHover: surface.level3_6,
623
869
  colorBorderReactionsHover: [base[8], baseDark[9]],
624
870
  colorBgReactionsSelectedDefault: [accent[3], accentDark[8]],
625
- colorBorderReactionsSelectedDefault: [accent[8], accentDark[8]],
871
+ colorBorderReactionsSelectedDefault: borderAccentOrMediumAccent,
626
872
  // FIXME: lack of accentDark scale usage
627
873
  colorBgReactionsSelectedHover: [accent[2], accent[10]],
628
874
  colorBorderReactionsSelectedHover: [accent[9], accent[10]],
629
875
  colorTextReactionsSelected: [accent[10], baseDark[12]],
630
876
  colorBgToastDefault: surface.level1,
631
877
  colorBgDbTabHover: surface.level3_4,
632
- colorBgDbTabFocus: [base[6], baseDark[6]],
633
- colorBgTabHover: [alpha(base[11], 0.1), alpha(baseDark[11], 0.1)],
878
+ colorBgDbTabFocus: bgTabFocus,
879
+ colorBgTabHover: bgTabHover,
634
880
 
635
881
  // Chat
636
- colorBgMessageContainer: [blackA[3], baseDark[6]],
637
- colorBgMessageContainerHover: surface.level2_3,
882
+ colorBgMessageContainer: [base[3], baseDark[3]],
883
+ colorBgMessageContainerHover: [base[4], baseDark[4]],
638
884
  colorBgEntityAvatarDefault: [accent[1], accentDark[1]],
639
- colorBgEntityAvatarHover: [accent[3], accentDark[3]],
640
- colorTextEntityAvatarDefault: [accent[8], accentDark[8]],
641
- colorTextEntityAvatarHover: [accent[9], accentDark[9]],
885
+ colorBgEntityAvatarHover: viewHighlightBg,
886
+ colorTextEntityAvatarDefault: borderAccentOrMediumAccent,
887
+ colorTextEntityAvatarHover: primary.accent,
888
+ colorBgMessageHighlighted: surface.level0elevated,
642
889
 
643
890
  // Text editor
644
891
  colorBgEditorImageZoomed: surface.level3_6,
645
892
  colorMermaidPrimaryColor: [base[2], baseDark[8]],
646
- colorMermaidPrimaryBorderColor: [base[9], baseDark[9]],
893
+ colorMermaidPrimaryBorderColor: fg.muted,
647
894
  colorMermaidLineColor: [base[10], baseDark[9]],
648
895
 
896
+ // Text highlight backgrounds (shifted for warm palette)
897
+ highlightBgYellow: [shift("rgba(250, 240, 185, 1)"), shift("rgba(88, 72, 18, 1)")],
898
+ highlightBgGreen: [shift("rgba(208, 242, 187, 1)"), shift("rgba(50, 88, 51, 1)")],
899
+ highlightBgAquamarine: [shift("rgba(195, 247, 193, 1)"), shift("rgba(15, 75, 52, 1)")],
900
+ highlightBgAqua: [shift("rgba(198, 242, 235, 1)"), shift("rgba(45, 87, 83, 1)")],
901
+ highlightBgBlue: [shift("rgba(208, 235, 250, 1)"), shift("rgba(45, 54, 90, 1)")],
902
+ highlightBgPurple: [shift("rgba(242, 228, 250, 1)"), shift("rgba(82, 50, 82, 1)")],
903
+ highlightBgPink: [shift("rgba(250, 228, 240, 1)"), shift("rgba(108, 50, 85, 1)")],
904
+ highlightBgRed: [shift("rgba(250, 224, 221, 1)"), shift("rgba(95, 44, 49, 1)")],
905
+ highlightBgGrey: [shift("rgba(222, 227, 233, 1)"), shift("rgba(62, 63, 78, 1)")],
906
+
907
+ // Text highlight backgrounds (shifted for warm palette)
908
+ highlightFgYellow: [shift("rgba(195, 155, 45, 1)"), shift("rgba(200, 168, 85, 1)")],
909
+ highlightFgGreen: [shift("rgba(80, 165, 65, 1)"), shift("rgba(88, 172, 78, 1)")],
910
+ highlightFgAquamarine: [shift("rgba(40, 165, 115, 1)"), shift("rgba(52, 172, 128, 1)")],
911
+ highlightFgAqua: [shift("rgba(35, 155, 150, 1)"), shift("rgba(52, 168, 158, 1)")],
912
+ highlightFgBlue: [shift("rgba(55, 125, 205, 1)"), shift("rgba(72, 135, 200, 1)")],
913
+ highlightFgPurple: [shift("rgba(150, 85, 205, 1)"), shift("rgba(155, 90, 200, 1)")],
914
+ highlightFgPink: [shift("rgba(205, 85, 148, 1)"), shift("rgba(200, 90, 152, 1)")],
915
+ highlightFgRed: [shift("rgba(205, 85, 80, 1)"), shift("rgba(200, 90, 85, 1)")],
916
+ highlightFgGrey: [shift("rgba(115, 125, 142, 1)"), shift("rgba(135, 140, 160, 1)")],
917
+
918
+ // Color picker CSS filter (applied as CSS filter property to warm the picker UI)
919
+ colorPickerCssFilter: same(colorPickerCssFilter),
920
+
649
921
  //Whiteboard
650
922
  colorBgWhiteboard: surface.level0,
651
- colorGridDotWhiteboard: [base[6], baseDark[6]],
652
- colorSelectionWhiteboardBorderEnabled: [accent[8], accentDark[8]],
653
- colorHighlightWhiteboardSelection: [accent[8], accentDark[8]],
654
- colorHighlightWhiteboardSelectionLocked: [alpha(base[9], 0.5), alpha(baseDark[9], 0.5)],
655
- colorSelectionWhiteboardBorderDisabled: [alpha(base[9], 0.5), alpha(baseDark[9], 0.5)],
923
+ colorGridDotWhiteboard: bgTabFocus,
924
+ colorSelectionWhiteboardBorderEnabled: borderAccentOrMediumAccent,
925
+ colorHighlightWhiteboardSelection: borderAccentOrMediumAccent,
926
+ colorHighlightWhiteboardSelectionLocked: textWhiteboardSelectionLockedOrDisabled,
927
+ colorSelectionWhiteboardBorderDisabled: textWhiteboardSelectionLockedOrDisabled,
656
928
  colorPlaceholderWhiteboardDefault: [alpha(accent[8], 0.2), alpha(accentDark[8], 0.2)],
657
- colorLinkPointWhiteboardDefault: [accent[8], accentDark[8]],
929
+ colorLinkPointWhiteboardDefault: borderAccentOrMediumAccent,
658
930
  colorLinkPointWhiteboardFillDefault: [white, blackish],
659
931
  colorMapWhiteboardPreviewDefault: [alpha(accent[8], 0.4), alpha(accentDark[8], 0.4)],
660
932
  colorCardWhiteboardShadowDefault: [alpha(base[11], 0.05), alpha(baseDark[11], 0.05)],
@@ -664,44 +936,55 @@ export function makeThemeDefs({
664
936
  colorUnitWhiteboardBgDefault: surface.level3_6,
665
937
  colorUnitWhiteboardBorderDefault: [alpha(base[12], 0.2), alpha(baseDark[12], 0.25)],
666
938
  colorSectionWhiteboardBgInactive: surface.level2,
667
- colorSectionWhiteboardBorderInactive: [base[6], baseDark[6]],
939
+ colorSectionWhiteboardBorderInactive: bgTabFocus,
668
940
  colorEmbedWhiteboardEditBorder: [alpha(teal[8], 0.9), alpha(tealDark[8], 0.9)],
669
- colorTextWhiteboardDefault: [base[12], baseDark[12]],
670
- colorTextWhiteboardDisabled: [base[9], baseDark[9]],
941
+ colorTextWhiteboardDefault: fgMenuEtc,
942
+ colorTextWhiteboardDisabled: fg.muted,
943
+ // FIXME bug?
944
+ // Dark uses baseDark[1] (near-black at 60% opacity) as "accent text" on a dark background.
945
+ // This reads as near-invisible dark text on dark bg.
946
+ // Compare with colorUnitHeaderWhiteboardDefault (L772) which correctly uses baseDark[12] for dark.
947
+ // Likely should be baseDark[12] too.
671
948
  colorTextWhiteboardAccent: [alpha(base[12], 0.6), alpha(baseDark[1], 0.6)],
672
- colorTextWhiteboardInversedDefault: [white, white],
949
+ colorTextWhiteboardInversedDefault: whiteColor,
673
950
  instrumentsMenuBg: raised.level2,
674
- instrumentsMenuShadow: [
675
- `0px 0px 1px 0px ${alpha(base[11], 0.2)}, 0px 4px 6px 0px ${alpha(base[11], 0.05)}, 0px 3px 12px 0px ${alpha(
676
- base[11],
677
- 0.1
678
- )}`,
679
- `0px 0px 1px 0px ${baseDark[6]}, 0px 4px 6px 0px ${alpha(baseDark[1], 0.05)}, 0px 3px 12px 0px ${alpha(
680
- baseDark[1],
681
- 0.15
682
- )}`,
683
- ],
951
+ instrumentsMenuShadow: floatingShadows.instrumentsMenu,
684
952
  commentBubbleBg: raised.level4,
685
- commentsPanelShadow: [
686
- `0 0 0 1px ${alpha(base[10], 0.1)}, 0 2px 4px -4px ${alpha(base[10], 0.2)}`,
687
- `0 0 0 1px ${alpha(baseDark[2], 0.1)}, 0 2px 4px -4px ${alpha(baseDark[2], 0.2)}`,
688
- ],
953
+ commentsPanelShadow: floatingShadows.instrumentsMenu,
689
954
  searchFiltersBg: surface.level1_1,
690
- selectedColorBorder: [alpha(base[6], 0.25), alpha(base[6], 0.25)],
955
+ selectedColorBorder: same(alpha(base[6], 0.25)),
691
956
 
692
957
  // SegmentedControl
693
958
  colorBgSegmentedControlDefault: surface.level3_1,
694
959
  colorBgSegmentedControlActive: surface.level1_6,
695
960
  colorBgSegmentedControlHover: surface.level5_4,
696
- colorBorderSegmentedControlDefault: [base[6], baseDark[7]],
961
+ colorBorderSegmentedControlDefault: surface.level6_7,
962
+
963
+ // Banner
964
+ colorBgBannerNeutral: bg.neutral3,
965
+ colorBgBannerPrimary: bg.accent3,
966
+ colorBgBannerWarning: bg.warning,
967
+ colorBgBannerError: bg.error,
968
+ colorBgBannerSuccess: bg.success,
969
+
970
+ colorIconBannerNeutral: icon.primary,
971
+ colorIconBannerAccent: icon.accent,
972
+ colorIconBannerWarning: icon.warning,
973
+ colorIconBannerError: icon.error,
974
+ colorIconBannerSuccess: icon.success,
975
+
976
+ colorTextBannerNeutral: text.primary,
977
+ colorTextBannerAccent: text.accent,
978
+ colorTextBannerWarning: text.warning,
979
+ colorTextBannerError: text.error,
980
+ colorTextBannerSuccess: text.success,
697
981
 
698
982
  // Chargebee info
699
983
  colorBgChargebeeInfoBox: surface.level3_1,
700
984
 
701
985
  // Various found direct palette references
702
- // FIXME: lack of redDark scale usage, same values!
703
- newCommentHorizontalRulerColor: [red[8], red[8]],
704
- colorBgErrorMessage: [red[8], red[8]],
986
+ newCommentHorizontalRulerColor: errorIndicatorColor,
987
+ colorBgErrorMessage: errorIndicatorColor,
705
988
 
706
989
  // Logo/illustration specific colors
707
990
  colorBorderLogoGrid: surface.level4,
@@ -709,27 +992,74 @@ export function makeThemeDefs({
709
992
  colorBorderLogoGridMedium: [alpha(base[4], 0.4), baseDark[4]],
710
993
  colorStrokeLogoDashed: [base[6], baseDark[8]],
711
994
  colorBgLogoCardTransparent: surface.level0elevated,
712
- colorBgLogoCardDark: [base[8], baseDark[8]],
995
+ colorBgLogoCardDark: base8,
713
996
  colorBgLogoCardMedium: surface.level4,
714
997
 
998
+ // Skeleton/loading
999
+ colorBgSkeletonFrom: whiteA5,
1000
+ colorBgSkeletonTo: whiteA10,
1001
+
1002
+ // Inset edge shadows (scroll containers)
1003
+ colorShadowInsetEdge: whiteA5,
1004
+
1005
+ // Shadow border (surface direction for colors-css)
1006
+ colorShadowBorder: whiteA10,
1007
+
1008
+ // Elevation shadows (ink direction)
1009
+ colorShadowElevation: blackA10,
1010
+ colorShadowOutline: [alpha(black, 0.2), alpha(white, 0.2)],
1011
+
1012
+ // Placeholder/fallback
1013
+ colorPlaceholder: whiteA40,
1014
+ colorPlaceholderSubtle: whiteA25,
1015
+ colorBgSubtleLight: whiteA5,
1016
+ colorStrokeSurface: whiteA100,
1017
+
1018
+ // Ink-based tokens (contrast direction)
1019
+ colorTextMilestone: blackA50,
1020
+ colorSpinnerIcon: blackA90,
1021
+ colorSpinnerBg: blackA10,
1022
+ colorBgLaneSubtle: blackA5,
1023
+
1024
+ // Opacities (numeric)
1025
+ opacity15: opacities.subtle,
1026
+ opacity20: opacities.faint,
1027
+ opacity25: same(opacity.opacity25.toString()),
1028
+ opacity30: opacities.weak,
1029
+ opacity40: opacities.drag,
1030
+ opacity50: opacities.muted,
1031
+ opacity60: opacities.done,
1032
+ opacity65: opacities.disabled,
1033
+ opacity70: opacities.visible,
1034
+ opacity75: opacities.disabledHoverOrFocus,
1035
+ opacity80: same(opacity.opacity80.toString()),
1036
+ opacity85: same(opacity.opacity85.toString()),
1037
+ opacity90: same(opacity.opacity90.toString()),
1038
+
1039
+ // Gradient overlays (whiteA direction)
1040
+ whiteA10,
1041
+ whiteA40,
1042
+ whiteA100,
1043
+
1044
+ // File hover overlay (always dark scrim for white text readability)
1045
+ colorBgFileOverlay: same(alpha(black, 0.6)),
1046
+
1047
+ // Scroll fade edges
1048
+ colorBgScrollFade: [alpha(white, 0.15), alpha(black, 0.15)],
1049
+
1050
+ // Date picker selected outline
1051
+ colorStrokeSelectedOutline: [alpha(black, 0.75), alpha(white, 0.75)],
1052
+
715
1053
  // Preloader / chrome
716
1054
  scrollbar: [alpha(base[9], 0.5), alpha(baseDark[7], 0.5)],
717
1055
  } as const satisfies ThemeColorsDef;
718
1056
 
1057
+ const adaptive = makeAdaptiveBgFg(white, blackish);
719
1058
  const fns = {
720
- getEnumBackground: {
721
- light: (color: string) => a11yColor(alpha(color, 0.15), white, 1),
722
- dark: (color: string) => a11yColor(alpha(color, 0.3), blackish, 1.3),
723
- },
724
- getAppIconBackground: {
725
- light: (color: string) => a11yColor(alpha(color, 0.15), white, 1),
726
- dark: (color: string) => a11yColor(alpha(color, 0.3), blackish, 1.3),
727
- light2: (color: string) => a11yColor(alpha(color, 0.3), blackish, 1.3),
728
- },
729
- getIconColor: {
730
- light: (color: string) => a11yColor(alpha(color, 0.95), white, 3),
731
- dark: (color: string) => a11yColor(alpha(color, 0.95), blackish, 5),
732
- },
1059
+ deneutralize: {light: shift, dark: shift},
1060
+ getEnumBackground: {light: adaptive.bg[0], dark: adaptive.bg[1]},
1061
+ getAppIconBackground: {light: adaptive.bg[0], dark: adaptive.bg[1], light2: adaptive.bg[1]},
1062
+ getIconColor: {light: adaptive.fg[0], dark: adaptive.fg[1]},
733
1063
  getLinkedHighlightBackground: {
734
1064
  light: (color: string) => produceColor(color, [(c) => setAlpha(c, 0.3), (c) => setLuminanceChroma(c, 0.6)]),
735
1065
  dark: (color: string) => produceColor(color, [(c) => setAlpha(c, 0.4), (c) => setLuminanceChroma(c, 0.5)]),
@@ -741,20 +1071,10 @@ export function makeThemeDefs({
741
1071
  },
742
1072
  } as const satisfies ThemeFnsDef;
743
1073
 
744
- return {colors, fns} as const;
1074
+ return {key, colors, fns} as const;
745
1075
  }
746
1076
 
747
- export type ThemeDefs = ReturnType<typeof makeThemeDefs>;
748
-
749
- type ThemeFns = {
750
- [K in keyof ThemeDefs["fns"]]: ThemeDefs["fns"][K]["light"];
751
- };
752
-
753
- export function pickFns(fns: ThemeFnsDef, mode: ThemeMode) {
754
- return Object.fromEntries(
755
- Object.entries(fns).map(([key, modeFns]) => [key, modeFns[mode] ?? modeFns.light])
756
- ) as ThemeFns;
757
- }
1077
+ export type ThemeDefs = ReturnType<typeof defsFromPalette>;
758
1078
 
759
1079
  type ThemeDefsColors = ThemeDefs["colors"];
760
1080
 
@@ -762,36 +1082,34 @@ type GetThemeColors<idx extends number> = {
762
1082
  [k in keyof ThemeDefsColors]: ThemeDefsColors[k][idx];
763
1083
  };
764
1084
 
765
- function pickColorsByIndex<I extends 0 | 1>(colors: ThemeDefsColors, idx: I): GetThemeColors<I> {
1085
+ function colorsByIndex<I extends 0 | 1>(colors: ThemeDefsColors, idx: I): GetThemeColors<I> {
766
1086
  type ColorTuple = readonly [unknown, unknown];
767
1087
  return Object.fromEntries(
768
1088
  (Object.entries(colors) as [string, ColorTuple][]).map(([k, v]) => [k, v[idx]])
769
1089
  ) as GetThemeColors<I>;
770
1090
  }
771
1091
 
772
- function pickLightColors(themeDefs: ThemeDefs) {
773
- return pickColorsByIndex(themeDefs.colors, 0);
1092
+ function colorsFromDefs(themeDefs: ThemeDefs, side: ThemeMode) {
1093
+ if (side === "dark") {
1094
+ return colorsByIndex(themeDefs.colors, 1);
1095
+ }
1096
+ if (side === "light2") {
1097
+ return {
1098
+ ...colorsByIndex(themeDefs.colors, 0),
1099
+ mode: "light2",
1100
+ } as const;
1101
+ }
1102
+ return colorsByIndex(themeDefs.colors, 0);
774
1103
  }
775
1104
 
776
- function pickDarkColors(themeDefs: ThemeDefs) {
777
- return pickColorsByIndex(themeDefs.colors, 1);
1105
+ function fnsFromDefs({fns}: {fns: ThemeFnsDef}, side: ThemeMode) {
1106
+ return Object.fromEntries(Object.entries(fns).map(([key, modeFns]) => [key, modeFns[side] ?? modeFns.light])) as {
1107
+ [K in keyof ThemeDefs["fns"]]: ThemeDefs["fns"][K]["light"];
1108
+ };
778
1109
  }
779
-
780
- function pickLight2Colors(themeDefs: ThemeDefs) {
1110
+ export function sideFromDefs(defs: ThemeDefs, side: ThemeMode) {
781
1111
  return {
782
- ...pickLightColors(themeDefs),
783
- mode: "light2",
784
- } as const;
785
- }
786
-
787
- export function pickColors(themeDefs: ThemeDefs, mode: ThemeMode) {
788
- if (mode === "dark") {
789
- return pickDarkColors(themeDefs);
790
- }
791
- if (mode === "light2") {
792
- return pickLight2Colors(themeDefs);
793
- }
794
- return pickLightColors(themeDefs);
1112
+ colors: colorsFromDefs(defs, side),
1113
+ fns: fnsFromDefs(defs, side),
1114
+ };
795
1115
  }
796
-
797
- export type Colors = ReturnType<typeof pickColors>;