@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.
- package/CHANGELOG.md +6 -0
- package/{eslint.config.mjs → esfint.config.mjs} +1 -1
- package/package.json +10 -7
- package/scripts/generate-icons.mjs +42 -34
- package/src/a11y-color.test.ts +62 -55
- package/src/a11y-color.ts +40 -37
- package/src/actions-menu/actions-menu-item.tsx +1 -1
- package/src/actions-menu/actions-menu.tsx +3 -3
- package/src/ai/model.tsx +1 -1
- package/src/ai/temperature.tsx +1 -1
- package/src/animated-height-container.tsx +2 -2
- package/src/antd/{AutoComplete.js → AutoComplete.ts} +1 -1
- package/src/antd/Tabs.js +2 -2
- package/src/antd/ant-upload.tsx +4 -4
- package/src/antd/input-number.tsx +2 -2
- package/src/antd/input.tsx +2 -2
- package/src/antd/styles.ts +8 -8
- package/src/antd/utils.tsx +12 -23
- package/src/app-icon-with-fallback.tsx +31 -8
- package/src/app-icon.tsx +21 -8
- package/src/avatar.tsx +8 -5
- package/src/axis-header.tsx +2 -2
- package/src/banner/banner-action.tsx +23 -0
- package/src/banner/banner-context.tsx +4 -0
- package/src/banner/banner-variant.ts +1 -0
- package/src/banner/banner.tsx +101 -0
- package/src/box.tsx +3 -1
- package/src/breadcrumb.tsx +14 -11
- package/src/button/base-button.tsx +2 -2
- package/src/button/make-button-colors.ts +2 -2
- package/src/canvas-colors.ts +133 -0
- package/src/card-container.tsx +1 -1
- package/src/checkbox-multi-select.tsx +4 -4
- package/src/checkbox.tsx +21 -9
- package/src/color-filter.test.ts +155 -0
- package/src/color-filter.ts +156 -0
- package/src/color-picker/ColorPickerOrLoader.js +1 -1
- package/src/color-picker/{SliderPointer.js → SliderPointer.tsx} +3 -2
- package/src/color-picker/index.js +7 -4
- package/src/color-picker/swatch.tsx +5 -4
- package/src/color-utils.test.ts +246 -116
- package/src/color-utils.ts +156 -144
- package/src/command-menu/index.tsx +1 -1
- package/src/date-picker/autocomplete.tsx +1 -0
- package/src/date-picker/date-range-picker-popup-content.tsx +1 -1
- package/src/date-picker/date-range-picker.tsx +1 -1
- package/src/date-picker/fake-date-input.tsx +10 -4
- package/src/date-picker/relative-date-picker.tsx +32 -3
- package/src/date-picker/single-date-picker.tsx +13 -3
- package/src/date-picker/styles.ts +12 -12
- package/src/date-picker/types.ts +2 -0
- package/src/design-system/alpha.ts +0 -15
- package/src/design-system/animation.ts +24 -5
- package/src/design-system/colors-css.ts +4 -4
- package/src/design-system/colors-js.test.ts +167 -153
- package/src/design-system/colors-js.ts +30 -85
- package/src/design-system/colors.test.ts +5 -5
- package/src/design-system/colors.ts +720 -402
- package/src/design-system/layout.ts +1 -0
- package/src/design-system/theme.test.ts +13 -68
- package/src/design-system/theme.ts +24 -76
- package/src/design-system/vars.test.ts +64 -1681
- package/src/design-system/vars.ts +43 -29
- package/src/design-system.ts +4 -4
- package/src/dnd.tsx +1 -1
- package/src/{utils-dom.ts → dom-utils.ts} +19 -0
- package/src/dot.tsx +2 -2
- package/src/emoji-picker/app-icon-picker.tsx +2 -1
- package/src/emoji-picker/emoji-picker-content-with-color.tsx +4 -1
- package/src/emoji-picker/emoji-picker.tsx +3 -0
- package/src/emoji-picker/icon-emoji-picker.tsx +1 -1
- package/src/emoji-picker/primitives/emoji.tsx +3 -2
- package/src/favorites-icon.tsx +1 -1
- package/src/fibermoji-placeholder.tsx +6 -1
- package/src/file-item/add-query-param.ts +13 -0
- package/src/file-item/file-menu-items.tsx +2 -1
- package/src/file-item/file-preview-actions.tsx +14 -2
- package/src/file-item.tsx +5 -5
- package/src/flags.ts +3 -0
- package/src/header-layout.tsx +9 -2
- package/src/html-styles.ts +3 -3
- package/src/hue-shift.test.ts +17 -4
- package/src/icons/Icon.tsx +5 -2
- package/src/icons/ast/Abort.ts +8 -4
- package/src/icons/ast/AccessTemplate.ts +8 -4
- package/src/icons/ast/Activity.ts +8 -4
- package/src/icons/ast/ActivityFilled.ts +8 -4
- package/src/icons/ast/ActivityLog.ts +8 -4
- package/src/icons/ast/Add.ts +8 -4
- package/src/icons/ast/AddAfter.ts +8 -4
- package/src/icons/ast/AddBefore.ts +8 -4
- package/src/icons/ast/AddCompact.ts +8 -4
- package/src/icons/ast/AddDatabase.ts +8 -4
- package/src/icons/ast/AddGroup.ts +8 -4
- package/src/icons/ast/AddIntegration.ts +8 -4
- package/src/icons/ast/AddReactions.ts +8 -4
- package/src/icons/ast/AiAssistant.ts +8 -4
- package/src/icons/ast/AiAssistantFilled.ts +8 -4
- package/src/icons/ast/AiAvatar.ts +8 -4
- package/src/icons/ast/AiFiberyBuild.ts +8 -4
- package/src/icons/ast/AiSearch.ts +8 -4
- package/src/icons/ast/AlertTriangle.ts +8 -4
- package/src/icons/ast/Anthropic.ts +8 -4
- package/src/icons/ast/App.ts +8 -4
- package/src/icons/ast/AppDetails.ts +8 -4
- package/src/icons/ast/AppStore.ts +8 -4
- package/src/icons/ast/AppStoreOneColor.ts +8 -4
- package/src/icons/ast/AppTemplates.ts +8 -4
- package/src/icons/ast/AppWebhooks.ts +8 -4
- package/src/icons/ast/AppWiki.ts +8 -4
- package/src/icons/ast/AppearanceAuto.ts +8 -4
- package/src/icons/ast/AppearanceDark.ts +8 -4
- package/src/icons/ast/AppearanceLight.ts +8 -4
- package/src/icons/ast/Apple.ts +8 -4
- package/src/icons/ast/ArrowBarDown.ts +12 -0
- package/src/icons/ast/ArrowBarLeft.ts +8 -4
- package/src/icons/ast/ArrowBarRight.ts +8 -4
- package/src/icons/ast/ArrowBarUp.ts +12 -0
- package/src/icons/ast/ArrowBottom.ts +8 -4
- package/src/icons/ast/ArrowCollapse.ts +8 -4
- package/src/icons/ast/ArrowCollapseVertical.ts +8 -4
- package/src/icons/ast/ArrowForward.ts +8 -4
- package/src/icons/ast/ArrowLeft.ts +8 -4
- package/src/icons/ast/ArrowRight.ts +8 -4
- package/src/icons/ast/ArrowTop.ts +8 -4
- package/src/icons/ast/ArrowUpCircle.ts +8 -4
- package/src/icons/ast/ArrowsRightLeft.ts +8 -4
- package/src/icons/ast/AskForInput.ts +8 -4
- package/src/icons/ast/Asterisk.ts +8 -4
- package/src/icons/ast/Atom.ts +8 -4
- package/src/icons/ast/AutomationsCancelled.ts +8 -4
- package/src/icons/ast/AutomationsDisabled.ts +8 -4
- package/src/icons/ast/AutomationsError.ts +8 -4
- package/src/icons/ast/AutomationsInProgress.ts +8 -4
- package/src/icons/ast/AutomationsNotStarted.ts +8 -4
- package/src/icons/ast/AutomationsSuccess.ts +8 -4
- package/src/icons/ast/Back.ts +8 -4
- package/src/icons/ast/BacklogIcon.ts +8 -4
- package/src/icons/ast/BatchActionsIcon.ts +8 -4
- package/src/icons/ast/BellCircle.ts +8 -4
- package/src/icons/ast/BellFilled.ts +8 -4
- package/src/icons/ast/BellOff.ts +8 -4
- package/src/icons/ast/BellRinging.ts +8 -4
- package/src/icons/ast/BellX.ts +8 -4
- package/src/icons/ast/Bolt.ts +8 -4
- package/src/icons/ast/BringForward.ts +8 -4
- package/src/icons/ast/BringToFront.ts +8 -4
- package/src/icons/ast/Cards.ts +8 -4
- package/src/icons/ast/Chat.ts +8 -4
- package/src/icons/ast/ChatAi.ts +8 -4
- package/src/icons/ast/ChatBubble.ts +8 -4
- package/src/icons/ast/ChatFloat.ts +8 -4
- package/src/icons/ast/ChatSidebar.ts +8 -4
- package/src/icons/ast/CheckCircle.ts +8 -4
- package/src/icons/ast/CheckCircleFilled.ts +8 -4
- package/src/icons/ast/Checked.ts +8 -4
- package/src/icons/ast/Clean.ts +8 -4
- package/src/icons/ast/Clear.ts +8 -4
- package/src/icons/ast/ClearInputFilled.ts +8 -4
- package/src/icons/ast/ClearValue.ts +8 -4
- package/src/icons/ast/Clock.ts +8 -4
- package/src/icons/ast/ClockAlarm.ts +8 -4
- package/src/icons/ast/ClockForward.ts +8 -4
- package/src/icons/ast/Close.ts +8 -4
- package/src/icons/ast/CollapseAll.ts +8 -4
- package/src/icons/ast/CollapseAllHorizontal.ts +8 -4
- package/src/icons/ast/ColorCoding.ts +8 -4
- package/src/icons/ast/ColorCodingFilled.ts +8 -4
- package/src/icons/ast/Columns.ts +8 -4
- package/src/icons/ast/Columns2.ts +8 -4
- package/src/icons/ast/Columns4.ts +8 -4
- package/src/icons/ast/CommentBubble.ts +8 -4
- package/src/icons/ast/Copy.ts +8 -4
- package/src/icons/ast/Create.ts +8 -4
- package/src/icons/ast/CreditsFilled.ts +8 -4
- package/src/icons/ast/CrossCircle.ts +8 -4
- package/src/icons/ast/Crosshair.ts +8 -4
- package/src/icons/ast/Csv.ts +8 -4
- package/src/icons/ast/Database.ts +8 -4
- package/src/icons/ast/DatabaseOff.ts +8 -4
- package/src/icons/ast/DatabaseStroke.ts +8 -4
- package/src/icons/ast/DateRange.ts +8 -4
- package/src/icons/ast/Delete.ts +8 -4
- package/src/icons/ast/Demo.ts +8 -4
- package/src/icons/ast/Dependency.ts +8 -4
- package/src/icons/ast/Dividers.ts +8 -4
- package/src/icons/ast/Document.ts +8 -4
- package/src/icons/ast/DoubleArrowLeft.ts +8 -4
- package/src/icons/ast/DoubleArrowRight.ts +8 -4
- package/src/icons/ast/DoubleLine.ts +8 -4
- package/src/icons/ast/DragBlockHandle.ts +8 -4
- package/src/icons/ast/DragBlockHandleSingle.ts +8 -4
- package/src/icons/ast/DragHandle.ts +8 -4
- package/src/icons/ast/Duplicate.ts +8 -4
- package/src/icons/ast/DynamicFilterValue.ts +8 -4
- package/src/icons/ast/EditValue.ts +8 -4
- package/src/icons/ast/Email.ts +8 -4
- package/src/icons/ast/EmojiDelete.ts +8 -4
- package/src/icons/ast/EntityCreate.ts +8 -4
- package/src/icons/ast/EntityCreateFilled.ts +8 -4
- package/src/icons/ast/EntityMerge.ts +8 -4
- package/src/icons/ast/Equation.ts +8 -4
- package/src/icons/ast/ExpandAll.ts +8 -4
- package/src/icons/ast/ExpandAllHorizontal.ts +8 -4
- package/src/icons/ast/Export.ts +8 -4
- package/src/icons/ast/ExtensionAssignments.ts +8 -4
- package/src/icons/ast/ExtensionAvatar.ts +8 -4
- package/src/icons/ast/ExtensionComments.ts +8 -4
- package/src/icons/ast/ExtensionFiles.ts +8 -4
- package/src/icons/ast/ExtensionReferences.ts +8 -4
- package/src/icons/ast/ExtensionWorkflow.ts +8 -4
- package/src/icons/ast/Eye.ts +8 -4
- package/src/icons/ast/Favorites.ts +8 -4
- package/src/icons/ast/FavoritesChecked.ts +8 -4
- package/src/icons/ast/FavoritesOff.ts +8 -4
- package/src/icons/ast/FiberyDesktopApp.ts +8 -4
- package/src/icons/ast/FiberyMono.ts +8 -4
- package/src/icons/ast/FieldUnit.ts +8 -4
- package/src/icons/ast/Fields.ts +8 -4
- package/src/icons/ast/Figma.ts +8 -4
- package/src/icons/ast/FileArchive.ts +8 -4
- package/src/icons/ast/FileBroken.ts +8 -4
- package/src/icons/ast/FileCounter.ts +8 -4
- package/src/icons/ast/FileDocument.ts +8 -4
- package/src/icons/ast/FileDownload.ts +8 -4
- package/src/icons/ast/FileImage.ts +8 -4
- package/src/icons/ast/FileMultiple.ts +8 -4
- package/src/icons/ast/FileOther.ts +8 -4
- package/src/icons/ast/FilePresentation.ts +8 -4
- package/src/icons/ast/FileTable.ts +8 -4
- package/src/icons/ast/FileUpload.ts +8 -4
- package/src/icons/ast/FileVideo.ts +8 -4
- package/src/icons/ast/Filter.ts +8 -4
- package/src/icons/ast/FitToScreen.ts +8 -4
- package/src/icons/ast/FocusMode.ts +8 -4
- package/src/icons/ast/FocusModeOff.ts +8 -4
- package/src/icons/ast/Folder.ts +8 -4
- package/src/icons/ast/FolderFavorite.ts +12 -0
- package/src/icons/ast/FormWithCover.ts +8 -4
- package/src/icons/ast/FormWithoutCover.ts +8 -4
- package/src/icons/ast/FullscreenModeOffIcon.ts +8 -4
- package/src/icons/ast/FullscreenModeOn.ts +8 -4
- package/src/icons/ast/FullscreenModeOnIcon.ts +8 -4
- package/src/icons/ast/Gift.ts +8 -4
- package/src/icons/ast/Github.ts +8 -4
- package/src/icons/ast/Gitlab.ts +8 -4
- package/src/icons/ast/Globe.ts +8 -4
- package/src/icons/ast/GlobeSimple.ts +8 -4
- package/src/icons/ast/GlobeUnpublish.ts +8 -4
- package/src/icons/ast/GoTo.ts +8 -4
- package/src/icons/ast/GoogleDrive.ts +8 -4
- package/src/icons/ast/GoogleMap.ts +8 -4
- package/src/icons/ast/GraduationCapFilled.ts +8 -4
- package/src/icons/ast/Headphones.ts +8 -4
- package/src/icons/ast/HeadphonesAi.ts +8 -4
- package/src/icons/ast/Hide.ts +8 -4
- package/src/icons/ast/Highlights.ts +8 -4
- package/src/icons/ast/Hint.ts +8 -4
- package/src/icons/ast/Home.ts +8 -4
- package/src/icons/ast/HomeFilled.ts +8 -4
- package/src/icons/ast/ImageXmark.ts +8 -4
- package/src/icons/ast/Import.ts +8 -4
- package/src/icons/ast/ImportFilled.ts +8 -4
- package/src/icons/ast/InfoCircle.ts +8 -4
- package/src/icons/ast/InfoCircleFilled.ts +8 -4
- package/src/icons/ast/Integration.ts +8 -4
- package/src/icons/ast/IntegrationsFilled.ts +8 -4
- package/src/icons/ast/IntegrationsIntegrationDiscourseColor.ts +8 -4
- package/src/icons/ast/IntegrationsIntegrationIntercomColor.ts +8 -4
- package/src/icons/ast/IntegrationsIntegrationSlackColor.ts +8 -4
- package/src/icons/ast/IntegrationsIntegrationZendeskColor.ts +8 -4
- package/src/icons/ast/Intercom.ts +12 -0
- package/src/icons/ast/InvitePeople.ts +8 -4
- package/src/icons/ast/Items.ts +8 -4
- package/src/icons/ast/ItemsTimeline.ts +8 -4
- package/src/icons/ast/Jira.ts +8 -4
- package/src/icons/ast/Key.ts +8 -4
- package/src/icons/ast/KeyboardHideDown.ts +8 -4
- package/src/icons/ast/Lab.ts +8 -4
- package/src/icons/ast/LayoutDouble.ts +8 -4
- package/src/icons/ast/LayoutMultiple.ts +8 -4
- package/src/icons/ast/LayoutSingle.ts +8 -4
- package/src/icons/ast/LeftPanel.ts +8 -4
- package/src/icons/ast/LevelPlus.ts +8 -4
- package/src/icons/ast/Levels.ts +8 -4
- package/src/icons/ast/LineDivider.ts +8 -4
- package/src/icons/ast/LineJump.ts +8 -4
- package/src/icons/ast/Link.ts +8 -4
- package/src/icons/ast/LocationEdit.ts +8 -4
- package/src/icons/ast/Lock.ts +8 -4
- package/src/icons/ast/LockOutline.ts +8 -4
- package/src/icons/ast/Logout.ts +8 -4
- package/src/icons/ast/Loom.ts +8 -4
- package/src/icons/ast/LoupeZoom.ts +8 -4
- package/src/icons/ast/LoupeZoomIn.ts +8 -4
- package/src/icons/ast/LoupeZoomOut.ts +8 -4
- package/src/icons/ast/ManyPeople.ts +8 -4
- package/src/icons/ast/MapMode.ts +8 -4
- package/src/icons/ast/Markdown.ts +8 -4
- package/src/icons/ast/MenuCollapser.ts +8 -4
- package/src/icons/ast/Mermaid.ts +8 -4
- package/src/icons/ast/MessagePlus.ts +8 -4
- package/src/icons/ast/MessagePlusSquare.ts +8 -4
- package/src/icons/ast/Milestones.ts +8 -4
- package/src/icons/ast/Minus.ts +8 -4
- package/src/icons/ast/Miro.ts +8 -4
- package/src/icons/ast/MirrorOff.ts +8 -4
- package/src/icons/ast/MirrorOn.ts +8 -4
- package/src/icons/ast/Mixpanel.ts +8 -4
- package/src/icons/ast/Monitor.ts +8 -4
- package/src/icons/ast/More.ts +8 -4
- package/src/icons/ast/MoreCompact.ts +8 -4
- package/src/icons/ast/MoveBottom.ts +8 -4
- package/src/icons/ast/MoveLeft.ts +8 -4
- package/src/icons/ast/MoveRight.ts +8 -4
- package/src/icons/ast/MoveSpace.ts +8 -4
- package/src/icons/ast/MoveTop.ts +8 -4
- package/src/icons/ast/Network.ts +8 -4
- package/src/icons/ast/NetworkAdd.ts +8 -4
- package/src/icons/ast/NoBorder.ts +8 -4
- package/src/icons/ast/NoFill.ts +8 -4
- package/src/icons/ast/Notifications.ts +8 -4
- package/src/icons/ast/ObjChild.ts +8 -4
- package/src/icons/ast/ObjM2M.ts +8 -4
- package/src/icons/ast/ObjO2O.ts +8 -4
- package/src/icons/ast/ObjParent.ts +8 -4
- package/src/icons/ast/ObjSelf.ts +8 -4
- package/src/icons/ast/OnSchedule.ts +8 -4
- package/src/icons/ast/OpenAi.ts +8 -4
- package/src/icons/ast/OpenAsPage.ts +8 -4
- package/src/icons/ast/PageRegularMode.ts +8 -4
- package/src/icons/ast/PageWideMode.ts +8 -4
- package/src/icons/ast/PanelAdd.ts +8 -4
- package/src/icons/ast/Pencil.ts +8 -4
- package/src/icons/ast/People.ts +8 -4
- package/src/icons/ast/PeopleCheck.ts +8 -4
- package/src/icons/ast/Photo.ts +8 -4
- package/src/icons/ast/Pin.ts +8 -4
- package/src/icons/ast/PinFilled.ts +8 -4
- package/src/icons/ast/Popup.ts +8 -4
- package/src/icons/ast/Posts.ts +8 -4
- package/src/icons/ast/PresentPlay.ts +8 -4
- package/src/icons/ast/PresentStop.ts +8 -4
- package/src/icons/ast/Print.ts +8 -4
- package/src/icons/ast/PrivateItems.ts +8 -4
- package/src/icons/ast/Question.ts +8 -4
- package/src/icons/ast/QuickFilter.ts +8 -4
- package/src/icons/ast/QuickFilterPersonal.ts +8 -4
- package/src/icons/ast/ReadOnly.ts +8 -4
- package/src/icons/ast/Refresh.ts +8 -4
- package/src/icons/ast/Remove.ts +8 -4
- package/src/icons/ast/RemovePeople.ts +8 -4
- package/src/icons/ast/Reply.ts +8 -4
- package/src/icons/ast/ResetPassword.ts +8 -4
- package/src/icons/ast/Restore.ts +8 -4
- package/src/icons/ast/RicheditorActionsMore.ts +8 -4
- package/src/icons/ast/RicheditorBlockCallout.ts +8 -4
- package/src/icons/ast/RicheditorBlockCode.ts +8 -4
- package/src/icons/ast/RicheditorBlockEmbed.ts +8 -4
- package/src/icons/ast/RicheditorBlockEntity.ts +8 -4
- package/src/icons/ast/RicheditorBlockFile.ts +8 -4
- package/src/icons/ast/RicheditorBlockH1.ts +8 -4
- package/src/icons/ast/RicheditorBlockH2.ts +8 -4
- package/src/icons/ast/RicheditorBlockH3.ts +8 -4
- package/src/icons/ast/RicheditorBlockH4.ts +8 -4
- package/src/icons/ast/RicheditorBlockMention.ts +8 -4
- package/src/icons/ast/RicheditorBlockParagraph.ts +8 -4
- package/src/icons/ast/RicheditorBlockQuote.ts +8 -4
- package/src/icons/ast/RicheditorChecklistCreate.ts +8 -4
- package/src/icons/ast/RicheditorCommentCreate.ts +8 -4
- package/src/icons/ast/RicheditorEntityLinkCreate.ts +8 -4
- package/src/icons/ast/RicheditorHistoryRedo.ts +8 -4
- package/src/icons/ast/RicheditorHistoryUndo.ts +8 -4
- package/src/icons/ast/RicheditorImageAlignCenter.ts +8 -4
- package/src/icons/ast/RicheditorImageAlignLeft.ts +8 -4
- package/src/icons/ast/RicheditorImageAlignRight.ts +8 -4
- package/src/icons/ast/RicheditorImageUpload.ts +8 -4
- package/src/icons/ast/RicheditorImageWrapCenter.ts +8 -4
- package/src/icons/ast/RicheditorImageWrapLeft.ts +8 -4
- package/src/icons/ast/RicheditorImageWrapRight.ts +8 -4
- package/src/icons/ast/RicheditorImageZoom.ts +8 -4
- package/src/icons/ast/RicheditorLinkCreate.ts +8 -4
- package/src/icons/ast/RicheditorLinkedhighlightCreate.ts +8 -4
- package/src/icons/ast/RicheditorListBullet.ts +8 -4
- package/src/icons/ast/RicheditorListIndent.ts +8 -4
- package/src/icons/ast/RicheditorListOrdered.ts +8 -4
- package/src/icons/ast/RicheditorListUnindent.ts +8 -4
- package/src/icons/ast/RicheditorMarkCode.ts +8 -4
- package/src/icons/ast/RicheditorMarkEm.ts +8 -4
- package/src/icons/ast/RicheditorMarkHighlight.ts +8 -4
- package/src/icons/ast/RicheditorMarkStrike.ts +8 -4
- package/src/icons/ast/RicheditorMarkStrong.ts +8 -4
- package/src/icons/ast/RicheditorMarkTextBackgroundColor.ts +8 -4
- package/src/icons/ast/RicheditorMarkUnderline.ts +8 -4
- package/src/icons/ast/RicheditorOpenLink.ts +8 -4
- package/src/icons/ast/RicheditorTableCreate.ts +8 -4
- package/src/icons/ast/RicheditorUnlink.ts +8 -4
- package/src/icons/ast/RicheditorVideoUpload.ts +8 -4
- package/src/icons/ast/RightPanel.ts +8 -4
- package/src/icons/ast/Rows.ts +8 -4
- package/src/icons/ast/RuleScheduled.ts +8 -4
- package/src/icons/ast/Search.ts +8 -4
- package/src/icons/ast/SearchAdd.ts +8 -4
- package/src/icons/ast/SearchFilled.ts +8 -4
- package/src/icons/ast/SearchRemove.ts +8 -4
- package/src/icons/ast/SelfReferenceOff.ts +8 -4
- package/src/icons/ast/SelfReferenceOn.ts +8 -4
- package/src/icons/ast/SendArrow.ts +8 -4
- package/src/icons/ast/SendBackward.ts +8 -4
- package/src/icons/ast/SendToBack.ts +8 -4
- package/src/icons/ast/Settings.ts +8 -4
- package/src/icons/ast/SettingsFilled.ts +8 -4
- package/src/icons/ast/SettingsOff.ts +8 -4
- package/src/icons/ast/Share.ts +8 -4
- package/src/icons/ast/Shared.ts +8 -4
- package/src/icons/ast/ShieldKeyhole.ts +8 -4
- package/src/icons/ast/ShowAuthor.ts +8 -4
- package/src/icons/ast/Sidebar.ts +8 -4
- package/src/icons/ast/SidebarFields.ts +8 -4
- package/src/icons/ast/SidebarFieldsOpened.ts +8 -4
- package/src/icons/ast/SimpleCompass.ts +8 -4
- package/src/icons/ast/Slack.ts +8 -4
- package/src/icons/ast/SlackIcon.ts +8 -4
- package/src/icons/ast/SlideMenu.ts +8 -4
- package/src/icons/ast/SlideMenuClose.ts +8 -4
- package/src/icons/ast/SlideMenuFilled.ts +8 -4
- package/src/icons/ast/SlideMenuOpen.ts +8 -4
- package/src/icons/ast/SmartFolder.ts +8 -4
- package/src/icons/ast/Sort.ts +8 -4
- package/src/icons/ast/SortOnBottom.ts +8 -4
- package/src/icons/ast/SortOnTop.ts +8 -4
- package/src/icons/ast/SpaceApp.ts +8 -4
- package/src/icons/ast/SpaceGenerate.ts +8 -4
- package/src/icons/ast/SpaceList.ts +8 -4
- package/src/icons/ast/SpaceScratch.ts +8 -4
- package/src/icons/ast/SpaceTemplate.ts +8 -4
- package/src/icons/ast/Spinner.ts +8 -4
- package/src/icons/ast/Success.ts +8 -4
- package/src/icons/ast/SuggestIntegration.ts +8 -4
- package/src/icons/ast/SwitchToMention.ts +8 -4
- package/src/icons/ast/SwitchToText.ts +8 -4
- package/src/icons/ast/SwitchToWidget.ts +8 -4
- package/src/icons/ast/TableLayout.ts +8 -4
- package/src/icons/ast/Template.ts +8 -4
- package/src/icons/ast/Templates.ts +8 -4
- package/src/icons/ast/TemplatesFilled.ts +8 -4
- package/src/icons/ast/Terminal.ts +8 -4
- package/src/icons/ast/TextNoWrap.ts +8 -4
- package/src/icons/ast/TextToolAlignBottom.ts +8 -4
- package/src/icons/ast/TextToolAlignMiddle.ts +8 -4
- package/src/icons/ast/TextToolAlignTop.ts +8 -4
- package/src/icons/ast/TextWrap.ts +8 -4
- package/src/icons/ast/ThumbsDown.ts +8 -4
- package/src/icons/ast/ThumbsUp.ts +8 -4
- package/src/icons/ast/Toc.ts +12 -0
- package/src/icons/ast/Twitter.ts +8 -4
- package/src/icons/ast/TypeBoolean.ts +8 -4
- package/src/icons/ast/TypeButton.ts +8 -4
- package/src/icons/ast/TypeCheckbox.ts +8 -4
- package/src/icons/ast/TypeDate.ts +8 -4
- package/src/icons/ast/TypeEmail.ts +8 -4
- package/src/icons/ast/TypeEmoji.ts +8 -4
- package/src/icons/ast/TypeFormula.ts +8 -4
- package/src/icons/ast/TypeFunction.ts +8 -4
- package/src/icons/ast/TypeId.ts +8 -4
- package/src/icons/ast/TypeLocation.ts +8 -4
- package/src/icons/ast/TypeLookup.ts +8 -4
- package/src/icons/ast/TypeMoney.ts +8 -4
- package/src/icons/ast/TypeMultiSelect.ts +8 -4
- package/src/icons/ast/TypeNumber.ts +8 -4
- package/src/icons/ast/TypePercent.ts +8 -4
- package/src/icons/ast/TypePhone.ts +8 -4
- package/src/icons/ast/TypeRelation.ts +8 -4
- package/src/icons/ast/TypeRichText.ts +8 -4
- package/src/icons/ast/TypeRule.ts +8 -4
- package/src/icons/ast/TypeSingleSelect.ts +8 -4
- package/src/icons/ast/TypeText.ts +8 -4
- package/src/icons/ast/TypeUrl.ts +8 -4
- package/src/icons/ast/UnitsAvatar.ts +8 -4
- package/src/icons/ast/UnitsCollection.ts +8 -4
- package/src/icons/ast/UnitsCounter.ts +8 -4
- package/src/icons/ast/UnitsDate.ts +8 -4
- package/src/icons/ast/UnitsDbBadgeAbbr.ts +8 -4
- package/src/icons/ast/UnitsDbBadgeFull.ts +8 -4
- package/src/icons/ast/UnitsDbIcon.ts +8 -4
- package/src/icons/ast/UnitsField.ts +8 -4
- package/src/icons/ast/UnitsFieldIconButton.ts +8 -4
- package/src/icons/ast/UnitsInput.ts +8 -4
- package/src/icons/ast/UnitsProgressBar.ts +8 -4
- package/src/icons/ast/UnitsRichText.ts +8 -4
- package/src/icons/ast/UnitsSnippet.ts +8 -4
- package/src/icons/ast/Unlink.ts +8 -4
- package/src/icons/ast/UnlockFilled.ts +8 -4
- package/src/icons/ast/UnlockOutline.ts +8 -4
- package/src/icons/ast/Upgrade.ts +8 -4
- package/src/icons/ast/UsbFlashDrive.ts +8 -4
- package/src/icons/ast/UserCheck.ts +8 -4
- package/src/icons/ast/UserGroup.ts +8 -4
- package/src/icons/ast/UserGroupRemove.ts +8 -4
- package/src/icons/ast/UserRole.ts +8 -4
- package/src/icons/ast/UserX.ts +8 -4
- package/src/icons/ast/ValueEdit.ts +8 -4
- package/src/icons/ast/ViewAi.ts +8 -4
- package/src/icons/ast/ViewBoard.ts +8 -4
- package/src/icons/ast/ViewCalendar.ts +8 -4
- package/src/icons/ast/ViewCanvas.ts +8 -4
- package/src/icons/ast/ViewChart.ts +8 -4
- package/src/icons/ast/ViewDashboard.ts +8 -4
- package/src/icons/ast/ViewDetails.ts +8 -4
- package/src/icons/ast/ViewDocument.ts +8 -4
- package/src/icons/ast/ViewEmbed.ts +12 -0
- package/src/icons/ast/ViewFeed.ts +8 -4
- package/src/icons/ast/ViewForm.ts +8 -4
- package/src/icons/ast/ViewGallery.ts +8 -4
- package/src/icons/ast/ViewGantt.ts +8 -4
- package/src/icons/ast/ViewList.ts +8 -4
- package/src/icons/ast/ViewMap.ts +8 -4
- package/src/icons/ast/ViewPage.ts +8 -4
- package/src/icons/ast/ViewTable.ts +8 -4
- package/src/icons/ast/ViewTimeline.ts +8 -4
- package/src/icons/ast/Views.ts +8 -4
- package/src/icons/ast/Warning.ts +8 -4
- package/src/icons/ast/WarningTriangle.ts +8 -4
- package/src/icons/ast/WarningTriangleFilled.ts +8 -4
- package/src/icons/ast/Webhooks.ts +12 -0
- package/src/icons/ast/Windows.ts +8 -4
- package/src/icons/ast/WorkspaceMap.ts +8 -4
- package/src/icons/ast/Youtube.ts +8 -4
- package/src/icons/ast/ZoomIn.ts +8 -4
- package/src/icons/ast/ZoomOut.ts +8 -4
- package/src/icons/ast/index.tsx +453 -441
- package/src/icons/react/Abort.tsx +10 -5
- package/src/icons/react/AccessTemplate.tsx +10 -5
- package/src/icons/react/Activity.tsx +10 -5
- package/src/icons/react/ActivityFilled.tsx +10 -5
- package/src/icons/react/ActivityLog.tsx +10 -5
- package/src/icons/react/Add.tsx +10 -5
- package/src/icons/react/AddAfter.tsx +10 -5
- package/src/icons/react/AddBefore.tsx +10 -5
- package/src/icons/react/AddCompact.tsx +10 -5
- package/src/icons/react/AddDatabase.tsx +10 -5
- package/src/icons/react/AddGroup.tsx +10 -5
- package/src/icons/react/AddIntegration.tsx +10 -5
- package/src/icons/react/AddReactions.tsx +10 -5
- package/src/icons/react/AiAssistant.tsx +10 -5
- package/src/icons/react/AiAssistantFilled.tsx +10 -5
- package/src/icons/react/AiAvatar.tsx +10 -5
- package/src/icons/react/AiFiberyBuild.tsx +10 -5
- package/src/icons/react/AiSearch.tsx +10 -5
- package/src/icons/react/AlertTriangle.tsx +10 -5
- package/src/icons/react/Anthropic.tsx +10 -5
- package/src/icons/react/App.tsx +10 -5
- package/src/icons/react/AppDetails.tsx +10 -5
- package/src/icons/react/AppStore.tsx +10 -5
- package/src/icons/react/AppStoreOneColor.tsx +10 -5
- package/src/icons/react/AppTemplates.tsx +10 -5
- package/src/icons/react/AppWebhooks.tsx +10 -5
- package/src/icons/react/AppWiki.tsx +10 -5
- package/src/icons/react/AppearanceAuto.tsx +10 -5
- package/src/icons/react/AppearanceDark.tsx +10 -5
- package/src/icons/react/AppearanceLight.tsx +10 -5
- package/src/icons/react/Apple.tsx +10 -5
- package/src/icons/react/ArrowBarDown.tsx +18 -0
- package/src/icons/react/ArrowBarLeft.tsx +10 -5
- package/src/icons/react/ArrowBarRight.tsx +10 -5
- package/src/icons/react/ArrowBarUp.tsx +18 -0
- package/src/icons/react/ArrowBottom.tsx +10 -5
- package/src/icons/react/ArrowCollapse.tsx +10 -5
- package/src/icons/react/ArrowCollapseVertical.tsx +10 -5
- package/src/icons/react/ArrowForward.tsx +10 -5
- package/src/icons/react/ArrowLeft.tsx +10 -5
- package/src/icons/react/ArrowRight.tsx +10 -5
- package/src/icons/react/ArrowTop.tsx +10 -5
- package/src/icons/react/ArrowUpCircle.tsx +10 -5
- package/src/icons/react/ArrowsRightLeft.tsx +10 -5
- package/src/icons/react/AskForInput.tsx +10 -5
- package/src/icons/react/Asterisk.tsx +10 -5
- package/src/icons/react/Atom.tsx +10 -5
- package/src/icons/react/AutomationsCancelled.tsx +10 -5
- package/src/icons/react/AutomationsDisabled.tsx +10 -5
- package/src/icons/react/AutomationsError.tsx +10 -5
- package/src/icons/react/AutomationsInProgress.tsx +10 -5
- package/src/icons/react/AutomationsNotStarted.tsx +10 -5
- package/src/icons/react/AutomationsSuccess.tsx +10 -5
- package/src/icons/react/Back.tsx +10 -5
- package/src/icons/react/BacklogIcon.tsx +10 -5
- package/src/icons/react/BatchActionsIcon.tsx +10 -5
- package/src/icons/react/BellCircle.tsx +10 -5
- package/src/icons/react/BellFilled.tsx +10 -5
- package/src/icons/react/BellOff.tsx +10 -5
- package/src/icons/react/BellRinging.tsx +10 -5
- package/src/icons/react/BellX.tsx +10 -5
- package/src/icons/react/Bolt.tsx +10 -5
- package/src/icons/react/BringForward.tsx +10 -5
- package/src/icons/react/BringToFront.tsx +10 -5
- package/src/icons/react/Cards.tsx +10 -5
- package/src/icons/react/Chat.tsx +10 -5
- package/src/icons/react/ChatAi.tsx +10 -5
- package/src/icons/react/ChatBubble.tsx +10 -5
- package/src/icons/react/ChatFloat.tsx +10 -5
- package/src/icons/react/ChatSidebar.tsx +10 -5
- package/src/icons/react/CheckCircle.tsx +10 -5
- package/src/icons/react/CheckCircleFilled.tsx +10 -5
- package/src/icons/react/Checked.tsx +10 -5
- package/src/icons/react/Clean.tsx +10 -5
- package/src/icons/react/Clear.tsx +10 -5
- package/src/icons/react/ClearInputFilled.tsx +10 -5
- package/src/icons/react/ClearValue.tsx +10 -5
- package/src/icons/react/Clock.tsx +10 -5
- package/src/icons/react/ClockAlarm.tsx +10 -5
- package/src/icons/react/ClockForward.tsx +10 -5
- package/src/icons/react/Close.tsx +10 -5
- package/src/icons/react/CollapseAll.tsx +10 -5
- package/src/icons/react/CollapseAllHorizontal.tsx +10 -5
- package/src/icons/react/ColorCoding.tsx +10 -5
- package/src/icons/react/ColorCodingFilled.tsx +10 -5
- package/src/icons/react/Columns.tsx +10 -5
- package/src/icons/react/Columns2.tsx +10 -5
- package/src/icons/react/Columns4.tsx +10 -5
- package/src/icons/react/CommentBubble.tsx +10 -5
- package/src/icons/react/Copy.tsx +10 -5
- package/src/icons/react/Create.tsx +10 -5
- package/src/icons/react/CreditsFilled.tsx +10 -5
- package/src/icons/react/CrossCircle.tsx +10 -5
- package/src/icons/react/Crosshair.tsx +10 -5
- package/src/icons/react/Csv.tsx +10 -5
- package/src/icons/react/Database.tsx +10 -5
- package/src/icons/react/DatabaseOff.tsx +10 -5
- package/src/icons/react/DatabaseStroke.tsx +10 -5
- package/src/icons/react/DateRange.tsx +10 -5
- package/src/icons/react/Delete.tsx +10 -5
- package/src/icons/react/Demo.tsx +10 -5
- package/src/icons/react/Dependency.tsx +10 -5
- package/src/icons/react/Dividers.tsx +10 -5
- package/src/icons/react/Document.tsx +10 -5
- package/src/icons/react/DoubleArrowLeft.tsx +10 -5
- package/src/icons/react/DoubleArrowRight.tsx +10 -5
- package/src/icons/react/DoubleLine.tsx +10 -5
- package/src/icons/react/DragBlockHandle.tsx +10 -5
- package/src/icons/react/DragBlockHandleSingle.tsx +10 -5
- package/src/icons/react/DragHandle.tsx +10 -5
- package/src/icons/react/Duplicate.tsx +10 -5
- package/src/icons/react/DynamicFilterValue.tsx +10 -5
- package/src/icons/react/EditValue.tsx +10 -5
- package/src/icons/react/Email.tsx +10 -5
- package/src/icons/react/EmojiDelete.tsx +10 -5
- package/src/icons/react/EntityCreate.tsx +10 -5
- package/src/icons/react/EntityCreateFilled.tsx +10 -5
- package/src/icons/react/EntityMerge.tsx +10 -5
- package/src/icons/react/Equation.tsx +10 -5
- package/src/icons/react/ExpandAll.tsx +10 -5
- package/src/icons/react/ExpandAllHorizontal.tsx +10 -5
- package/src/icons/react/Export.tsx +10 -5
- package/src/icons/react/ExtensionAssignments.tsx +10 -5
- package/src/icons/react/ExtensionAvatar.tsx +10 -5
- package/src/icons/react/ExtensionComments.tsx +10 -5
- package/src/icons/react/ExtensionFiles.tsx +10 -5
- package/src/icons/react/ExtensionReferences.tsx +10 -5
- package/src/icons/react/ExtensionWorkflow.tsx +10 -5
- package/src/icons/react/Eye.tsx +10 -5
- package/src/icons/react/Favorites.tsx +10 -5
- package/src/icons/react/FavoritesChecked.tsx +10 -5
- package/src/icons/react/FavoritesOff.tsx +10 -5
- package/src/icons/react/FiberyDesktopApp.tsx +10 -5
- package/src/icons/react/FiberyMono.tsx +10 -5
- package/src/icons/react/FieldUnit.tsx +10 -5
- package/src/icons/react/Fields.tsx +10 -5
- package/src/icons/react/Figma.tsx +10 -5
- package/src/icons/react/FileArchive.tsx +10 -5
- package/src/icons/react/FileBroken.tsx +10 -5
- package/src/icons/react/FileCounter.tsx +10 -5
- package/src/icons/react/FileDocument.tsx +10 -5
- package/src/icons/react/FileDownload.tsx +10 -5
- package/src/icons/react/FileImage.tsx +10 -5
- package/src/icons/react/FileMultiple.tsx +10 -5
- package/src/icons/react/FileOther.tsx +10 -5
- package/src/icons/react/FilePresentation.tsx +10 -5
- package/src/icons/react/FileTable.tsx +10 -5
- package/src/icons/react/FileUpload.tsx +10 -5
- package/src/icons/react/FileVideo.tsx +10 -5
- package/src/icons/react/Filter.tsx +10 -5
- package/src/icons/react/FitToScreen.tsx +10 -5
- package/src/icons/react/FocusMode.tsx +10 -5
- package/src/icons/react/FocusModeOff.tsx +10 -5
- package/src/icons/react/Folder.tsx +10 -5
- package/src/icons/react/FolderFavorite.tsx +18 -0
- package/src/icons/react/FormWithCover.tsx +10 -5
- package/src/icons/react/FormWithoutCover.tsx +10 -5
- package/src/icons/react/FullscreenModeOffIcon.tsx +10 -5
- package/src/icons/react/FullscreenModeOn.tsx +10 -5
- package/src/icons/react/FullscreenModeOnIcon.tsx +10 -5
- package/src/icons/react/Gift.tsx +10 -5
- package/src/icons/react/Github.tsx +10 -5
- package/src/icons/react/Gitlab.tsx +10 -5
- package/src/icons/react/Globe.tsx +10 -5
- package/src/icons/react/GlobeSimple.tsx +10 -5
- package/src/icons/react/GlobeUnpublish.tsx +10 -5
- package/src/icons/react/GoTo.tsx +10 -5
- package/src/icons/react/GoogleDrive.tsx +10 -5
- package/src/icons/react/GoogleMap.tsx +10 -5
- package/src/icons/react/GraduationCapFilled.tsx +10 -5
- package/src/icons/react/Headphones.tsx +10 -5
- package/src/icons/react/HeadphonesAi.tsx +10 -5
- package/src/icons/react/Hide.tsx +10 -5
- package/src/icons/react/Highlights.tsx +10 -5
- package/src/icons/react/Hint.tsx +10 -5
- package/src/icons/react/Home.tsx +10 -5
- package/src/icons/react/HomeFilled.tsx +10 -5
- package/src/icons/react/ImageXmark.tsx +10 -5
- package/src/icons/react/Import.tsx +10 -5
- package/src/icons/react/ImportFilled.tsx +10 -5
- package/src/icons/react/InfoCircle.tsx +10 -5
- package/src/icons/react/InfoCircleFilled.tsx +10 -5
- package/src/icons/react/Integration.tsx +10 -5
- package/src/icons/react/IntegrationsFilled.tsx +10 -5
- package/src/icons/react/IntegrationsIntegrationDiscourseColor.tsx +10 -5
- package/src/icons/react/IntegrationsIntegrationIntercomColor.tsx +10 -5
- package/src/icons/react/IntegrationsIntegrationSlackColor.tsx +10 -5
- package/src/icons/react/IntegrationsIntegrationZendeskColor.tsx +10 -5
- package/src/icons/react/Intercom.tsx +18 -0
- package/src/icons/react/InvitePeople.tsx +10 -5
- package/src/icons/react/Items.tsx +10 -5
- package/src/icons/react/ItemsTimeline.tsx +10 -5
- package/src/icons/react/Jira.tsx +10 -5
- package/src/icons/react/Key.tsx +10 -5
- package/src/icons/react/KeyboardHideDown.tsx +10 -5
- package/src/icons/react/Lab.tsx +10 -5
- package/src/icons/react/LayoutDouble.tsx +10 -5
- package/src/icons/react/LayoutMultiple.tsx +10 -5
- package/src/icons/react/LayoutSingle.tsx +10 -5
- package/src/icons/react/LeftPanel.tsx +10 -5
- package/src/icons/react/LevelPlus.tsx +10 -5
- package/src/icons/react/Levels.tsx +10 -5
- package/src/icons/react/LineDivider.tsx +10 -5
- package/src/icons/react/LineJump.tsx +10 -5
- package/src/icons/react/Link.tsx +10 -5
- package/src/icons/react/LocationEdit.tsx +10 -5
- package/src/icons/react/Lock.tsx +10 -5
- package/src/icons/react/LockOutline.tsx +10 -5
- package/src/icons/react/Logout.tsx +10 -5
- package/src/icons/react/Loom.tsx +10 -5
- package/src/icons/react/LoupeZoom.tsx +10 -5
- package/src/icons/react/LoupeZoomIn.tsx +10 -5
- package/src/icons/react/LoupeZoomOut.tsx +10 -5
- package/src/icons/react/ManyPeople.tsx +10 -5
- package/src/icons/react/MapMode.tsx +10 -5
- package/src/icons/react/Markdown.tsx +10 -5
- package/src/icons/react/MenuCollapser.tsx +10 -5
- package/src/icons/react/Mermaid.tsx +10 -5
- package/src/icons/react/MessagePlus.tsx +10 -5
- package/src/icons/react/MessagePlusSquare.tsx +10 -5
- package/src/icons/react/Milestones.tsx +10 -5
- package/src/icons/react/Minus.tsx +10 -5
- package/src/icons/react/Miro.tsx +10 -5
- package/src/icons/react/MirrorOff.tsx +10 -5
- package/src/icons/react/MirrorOn.tsx +10 -5
- package/src/icons/react/Mixpanel.tsx +10 -5
- package/src/icons/react/Monitor.tsx +10 -5
- package/src/icons/react/More.tsx +10 -5
- package/src/icons/react/MoreCompact.tsx +10 -5
- package/src/icons/react/MoveBottom.tsx +10 -5
- package/src/icons/react/MoveLeft.tsx +10 -5
- package/src/icons/react/MoveRight.tsx +10 -5
- package/src/icons/react/MoveSpace.tsx +10 -5
- package/src/icons/react/MoveTop.tsx +10 -5
- package/src/icons/react/Network.tsx +10 -5
- package/src/icons/react/NetworkAdd.tsx +10 -5
- package/src/icons/react/NoBorder.tsx +10 -5
- package/src/icons/react/NoFill.tsx +10 -5
- package/src/icons/react/Notifications.tsx +10 -5
- package/src/icons/react/ObjChild.tsx +10 -5
- package/src/icons/react/ObjM2M.tsx +10 -5
- package/src/icons/react/ObjO2O.tsx +10 -5
- package/src/icons/react/ObjParent.tsx +10 -5
- package/src/icons/react/ObjSelf.tsx +10 -5
- package/src/icons/react/OnSchedule.tsx +10 -5
- package/src/icons/react/OpenAi.tsx +10 -5
- package/src/icons/react/OpenAsPage.tsx +10 -5
- package/src/icons/react/PageRegularMode.tsx +10 -5
- package/src/icons/react/PageWideMode.tsx +10 -5
- package/src/icons/react/PanelAdd.tsx +10 -5
- package/src/icons/react/Pencil.tsx +10 -5
- package/src/icons/react/People.tsx +10 -5
- package/src/icons/react/PeopleCheck.tsx +10 -5
- package/src/icons/react/Photo.tsx +10 -5
- package/src/icons/react/Pin.tsx +10 -5
- package/src/icons/react/PinFilled.tsx +10 -5
- package/src/icons/react/Popup.tsx +10 -5
- package/src/icons/react/Posts.tsx +10 -5
- package/src/icons/react/PresentPlay.tsx +10 -5
- package/src/icons/react/PresentStop.tsx +10 -5
- package/src/icons/react/Print.tsx +10 -5
- package/src/icons/react/PrivateItems.tsx +10 -5
- package/src/icons/react/Question.tsx +10 -5
- package/src/icons/react/QuickFilter.tsx +10 -5
- package/src/icons/react/QuickFilterPersonal.tsx +10 -5
- package/src/icons/react/ReadOnly.tsx +10 -5
- package/src/icons/react/Refresh.tsx +10 -5
- package/src/icons/react/Remove.tsx +10 -5
- package/src/icons/react/RemovePeople.tsx +10 -5
- package/src/icons/react/Reply.tsx +10 -5
- package/src/icons/react/ResetPassword.tsx +10 -5
- package/src/icons/react/Restore.tsx +10 -5
- package/src/icons/react/RicheditorActionsMore.tsx +10 -5
- package/src/icons/react/RicheditorBlockCallout.tsx +10 -5
- package/src/icons/react/RicheditorBlockCode.tsx +10 -5
- package/src/icons/react/RicheditorBlockEmbed.tsx +10 -5
- package/src/icons/react/RicheditorBlockEntity.tsx +10 -5
- package/src/icons/react/RicheditorBlockFile.tsx +10 -5
- package/src/icons/react/RicheditorBlockH1.tsx +10 -5
- package/src/icons/react/RicheditorBlockH2.tsx +10 -5
- package/src/icons/react/RicheditorBlockH3.tsx +10 -5
- package/src/icons/react/RicheditorBlockH4.tsx +10 -5
- package/src/icons/react/RicheditorBlockMention.tsx +10 -5
- package/src/icons/react/RicheditorBlockParagraph.tsx +10 -5
- package/src/icons/react/RicheditorBlockQuote.tsx +10 -5
- package/src/icons/react/RicheditorChecklistCreate.tsx +10 -5
- package/src/icons/react/RicheditorCommentCreate.tsx +10 -5
- package/src/icons/react/RicheditorEntityLinkCreate.tsx +10 -5
- package/src/icons/react/RicheditorHistoryRedo.tsx +10 -5
- package/src/icons/react/RicheditorHistoryUndo.tsx +10 -5
- package/src/icons/react/RicheditorImageAlignCenter.tsx +10 -5
- package/src/icons/react/RicheditorImageAlignLeft.tsx +10 -5
- package/src/icons/react/RicheditorImageAlignRight.tsx +10 -5
- package/src/icons/react/RicheditorImageUpload.tsx +10 -5
- package/src/icons/react/RicheditorImageWrapCenter.tsx +10 -5
- package/src/icons/react/RicheditorImageWrapLeft.tsx +10 -5
- package/src/icons/react/RicheditorImageWrapRight.tsx +10 -5
- package/src/icons/react/RicheditorImageZoom.tsx +10 -5
- package/src/icons/react/RicheditorLinkCreate.tsx +10 -5
- package/src/icons/react/RicheditorLinkedhighlightCreate.tsx +10 -5
- package/src/icons/react/RicheditorListBullet.tsx +10 -5
- package/src/icons/react/RicheditorListIndent.tsx +10 -5
- package/src/icons/react/RicheditorListOrdered.tsx +10 -5
- package/src/icons/react/RicheditorListUnindent.tsx +10 -5
- package/src/icons/react/RicheditorMarkCode.tsx +10 -5
- package/src/icons/react/RicheditorMarkEm.tsx +10 -5
- package/src/icons/react/RicheditorMarkHighlight.tsx +10 -5
- package/src/icons/react/RicheditorMarkStrike.tsx +10 -5
- package/src/icons/react/RicheditorMarkStrong.tsx +10 -5
- package/src/icons/react/RicheditorMarkTextBackgroundColor.tsx +10 -5
- package/src/icons/react/RicheditorMarkUnderline.tsx +10 -5
- package/src/icons/react/RicheditorOpenLink.tsx +10 -5
- package/src/icons/react/RicheditorTableCreate.tsx +10 -5
- package/src/icons/react/RicheditorUnlink.tsx +10 -5
- package/src/icons/react/RicheditorVideoUpload.tsx +10 -5
- package/src/icons/react/RightPanel.tsx +10 -5
- package/src/icons/react/Rows.tsx +10 -5
- package/src/icons/react/RuleScheduled.tsx +10 -5
- package/src/icons/react/Search.tsx +10 -5
- package/src/icons/react/SearchAdd.tsx +10 -5
- package/src/icons/react/SearchFilled.tsx +10 -5
- package/src/icons/react/SearchRemove.tsx +10 -5
- package/src/icons/react/SelfReferenceOff.tsx +10 -5
- package/src/icons/react/SelfReferenceOn.tsx +10 -5
- package/src/icons/react/SendArrow.tsx +10 -5
- package/src/icons/react/SendBackward.tsx +10 -5
- package/src/icons/react/SendToBack.tsx +10 -5
- package/src/icons/react/Settings.tsx +10 -5
- package/src/icons/react/SettingsFilled.tsx +10 -5
- package/src/icons/react/SettingsOff.tsx +10 -5
- package/src/icons/react/Share.tsx +10 -5
- package/src/icons/react/Shared.tsx +10 -5
- package/src/icons/react/ShieldKeyhole.tsx +10 -5
- package/src/icons/react/ShowAuthor.tsx +10 -5
- package/src/icons/react/Sidebar.tsx +10 -5
- package/src/icons/react/SidebarFields.tsx +10 -5
- package/src/icons/react/SidebarFieldsOpened.tsx +10 -5
- package/src/icons/react/SimpleCompass.tsx +10 -5
- package/src/icons/react/Slack.tsx +10 -5
- package/src/icons/react/SlackIcon.tsx +10 -5
- package/src/icons/react/SlideMenu.tsx +10 -5
- package/src/icons/react/SlideMenuClose.tsx +10 -5
- package/src/icons/react/SlideMenuFilled.tsx +10 -5
- package/src/icons/react/SlideMenuOpen.tsx +10 -5
- package/src/icons/react/SmartFolder.tsx +10 -5
- package/src/icons/react/Sort.tsx +10 -5
- package/src/icons/react/SortOnBottom.tsx +10 -5
- package/src/icons/react/SortOnTop.tsx +10 -5
- package/src/icons/react/SpaceApp.tsx +10 -5
- package/src/icons/react/SpaceGenerate.tsx +10 -5
- package/src/icons/react/SpaceList.tsx +10 -5
- package/src/icons/react/SpaceScratch.tsx +10 -5
- package/src/icons/react/SpaceTemplate.tsx +10 -5
- package/src/icons/react/Spinner.tsx +10 -5
- package/src/icons/react/Success.tsx +10 -5
- package/src/icons/react/SuggestIntegration.tsx +10 -5
- package/src/icons/react/SwitchToMention.tsx +10 -5
- package/src/icons/react/SwitchToText.tsx +10 -5
- package/src/icons/react/SwitchToWidget.tsx +10 -5
- package/src/icons/react/TableLayout.tsx +10 -5
- package/src/icons/react/Template.tsx +10 -5
- package/src/icons/react/Templates.tsx +10 -5
- package/src/icons/react/TemplatesFilled.tsx +10 -5
- package/src/icons/react/Terminal.tsx +10 -5
- package/src/icons/react/TextNoWrap.tsx +10 -5
- package/src/icons/react/TextToolAlignBottom.tsx +10 -5
- package/src/icons/react/TextToolAlignMiddle.tsx +10 -5
- package/src/icons/react/TextToolAlignTop.tsx +10 -5
- package/src/icons/react/TextWrap.tsx +10 -5
- package/src/icons/react/ThumbsDown.tsx +10 -5
- package/src/icons/react/ThumbsUp.tsx +10 -5
- package/src/icons/react/Toc.tsx +18 -0
- package/src/icons/react/Twitter.tsx +10 -5
- package/src/icons/react/TypeBoolean.tsx +10 -5
- package/src/icons/react/TypeButton.tsx +10 -5
- package/src/icons/react/TypeCheckbox.tsx +10 -5
- package/src/icons/react/TypeDate.tsx +10 -5
- package/src/icons/react/TypeEmail.tsx +10 -5
- package/src/icons/react/TypeEmoji.tsx +10 -5
- package/src/icons/react/TypeFormula.tsx +10 -5
- package/src/icons/react/TypeFunction.tsx +10 -5
- package/src/icons/react/TypeId.tsx +10 -5
- package/src/icons/react/TypeLocation.tsx +10 -5
- package/src/icons/react/TypeLookup.tsx +10 -5
- package/src/icons/react/TypeMoney.tsx +10 -5
- package/src/icons/react/TypeMultiSelect.tsx +10 -5
- package/src/icons/react/TypeNumber.tsx +10 -5
- package/src/icons/react/TypePercent.tsx +10 -5
- package/src/icons/react/TypePhone.tsx +10 -5
- package/src/icons/react/TypeRelation.tsx +10 -5
- package/src/icons/react/TypeRichText.tsx +10 -5
- package/src/icons/react/TypeRule.tsx +10 -5
- package/src/icons/react/TypeSingleSelect.tsx +10 -5
- package/src/icons/react/TypeText.tsx +10 -5
- package/src/icons/react/TypeUrl.tsx +10 -5
- package/src/icons/react/UnitsAvatar.tsx +10 -5
- package/src/icons/react/UnitsCollection.tsx +10 -5
- package/src/icons/react/UnitsCounter.tsx +10 -5
- package/src/icons/react/UnitsDate.tsx +10 -5
- package/src/icons/react/UnitsDbBadgeAbbr.tsx +10 -5
- package/src/icons/react/UnitsDbBadgeFull.tsx +10 -5
- package/src/icons/react/UnitsDbIcon.tsx +10 -5
- package/src/icons/react/UnitsField.tsx +10 -5
- package/src/icons/react/UnitsFieldIconButton.tsx +10 -5
- package/src/icons/react/UnitsInput.tsx +10 -5
- package/src/icons/react/UnitsProgressBar.tsx +10 -5
- package/src/icons/react/UnitsRichText.tsx +10 -5
- package/src/icons/react/UnitsSnippet.tsx +10 -5
- package/src/icons/react/Unlink.tsx +10 -5
- package/src/icons/react/UnlockFilled.tsx +10 -5
- package/src/icons/react/UnlockOutline.tsx +10 -5
- package/src/icons/react/Upgrade.tsx +10 -5
- package/src/icons/react/UsbFlashDrive.tsx +10 -5
- package/src/icons/react/UserCheck.tsx +10 -5
- package/src/icons/react/UserGroup.tsx +10 -5
- package/src/icons/react/UserGroupRemove.tsx +10 -5
- package/src/icons/react/UserRole.tsx +10 -5
- package/src/icons/react/UserX.tsx +10 -5
- package/src/icons/react/ValueEdit.tsx +10 -5
- package/src/icons/react/ViewAi.tsx +10 -5
- package/src/icons/react/ViewBoard.tsx +10 -5
- package/src/icons/react/ViewCalendar.tsx +10 -5
- package/src/icons/react/ViewCanvas.tsx +10 -5
- package/src/icons/react/ViewChart.tsx +10 -5
- package/src/icons/react/ViewDashboard.tsx +10 -5
- package/src/icons/react/ViewDetails.tsx +10 -5
- package/src/icons/react/ViewDocument.tsx +10 -5
- package/src/icons/react/ViewEmbed.tsx +18 -0
- package/src/icons/react/ViewFeed.tsx +10 -5
- package/src/icons/react/ViewForm.tsx +10 -5
- package/src/icons/react/ViewGallery.tsx +10 -5
- package/src/icons/react/ViewGantt.tsx +10 -5
- package/src/icons/react/ViewList.tsx +10 -5
- package/src/icons/react/ViewMap.tsx +10 -5
- package/src/icons/react/ViewPage.tsx +10 -5
- package/src/icons/react/ViewTable.tsx +10 -5
- package/src/icons/react/ViewTimeline.tsx +10 -5
- package/src/icons/react/Views.tsx +10 -5
- package/src/icons/react/Warning.tsx +10 -5
- package/src/icons/react/WarningTriangle.tsx +10 -5
- package/src/icons/react/WarningTriangleFilled.tsx +10 -5
- package/src/icons/react/Webhooks.tsx +18 -0
- package/src/icons/react/Windows.tsx +10 -5
- package/src/icons/react/WorkspaceMap.tsx +10 -5
- package/src/icons/react/Youtube.tsx +10 -5
- package/src/icons/react/ZoomIn.tsx +10 -5
- package/src/icons/react/ZoomOut.tsx +10 -5
- package/src/icons/react/index.tsx +453 -441
- package/src/icons/svg/arrow-bar-down.svg +4 -0
- package/src/icons/svg/arrow-bar-up.svg +4 -0
- package/src/icons/svg/folder-favorite.svg +3 -0
- package/src/icons/svg/intercom.svg +3 -0
- package/src/icons/svg/richeditor/list/indent.svg +7 -2
- package/src/icons/svg/richeditor/list/unindent.svg +7 -2
- package/src/icons/svg/richeditor/mark/underline.svg +2 -2
- package/src/icons/svg/toc.svg +5 -0
- package/src/icons/svg/view-embed.svg +3 -0
- package/src/icons/svg/webhooks.svg +5 -0
- package/src/icons/types.ts +2 -0
- package/src/images-gallery/images-gallery.tsx +67 -16
- package/src/images-gallery/slide-buttons.tsx +5 -9
- package/src/integration-compact-info-button.tsx +10 -6
- package/src/loaders.tsx +2 -2
- package/src/loading-sausage.tsx +4 -4
- package/src/mobile-keyboard-aware-popup.tsx +1 -1
- package/src/modal-menu/modal-menu-content.tsx +1 -1
- package/src/modal-menu/modal-menu-separator.tsx +1 -1
- package/src/modal-menu/modal-submenu-content.tsx +3 -1
- package/src/new-badge.tsx +2 -2
- package/src/number-input/edit-unit-styles.ts +3 -3
- package/src/online-users.tsx +8 -8
- package/src/open-popover-tracker.tsx +73 -0
- package/src/palette-generator.test.ts +145 -147
- package/src/palette-generator.ts +24 -34
- package/src/palettes/_.test.ts +226 -0
- package/src/palettes/_.ts +66 -23
- package/src/palettes/diff-colors.ts +253 -0
- package/src/palettes/inspect.canvas-colors.test.ts +257 -0
- package/src/palettes/inspect.defs.colors.neutral-arch.test.ts +2291 -0
- package/src/palettes/inspect.defs.colors.neutral-user.test.ts +2291 -0
- package/src/palettes/inspect.defs.colors.warm-arch.test.ts +2291 -0
- package/src/palettes/inspect.defs.colors.warm-user.test.ts +2291 -0
- package/src/palettes/inspect.neutral-arch.test.ts +191 -0
- package/src/palettes/inspect.neutral-user.test.ts +191 -0
- package/src/palettes/inspect.warm-arch.test.ts +191 -0
- package/src/palettes/inspect.warm-user.test.ts +191 -0
- package/src/palettes/neutral-arch.ts +37 -0
- package/src/palettes/neutral-user.ts +37 -0
- package/src/palettes/{slate-arch.ts → neutral.ts} +19 -33
- package/src/palettes/warm-arch.ts +2 -187
- package/src/palettes/warm-user.ts +2 -187
- package/src/palettes/warm.ts +157 -0
- package/src/popover/index.tsx +34 -10
- package/src/popover/mobile-popover.tsx +4 -2
- package/src/popover/popup-modifiers-context.ts +4 -4
- package/src/preference-setting.test.ts +223 -0
- package/src/preference-setting.ts +71 -0
- package/src/pretty-size.test.ts +18 -0
- package/src/pretty-size.ts +23 -0
- package/src/reactions/reaction-button.tsx +4 -4
- package/src/reactions/reaction-picker.tsx +2 -2
- package/src/rich-text-embed-error.tsx +3 -1
- package/src/root-theme-provider.test.tsx +25 -20
- package/src/select/components/group-heading.tsx +1 -1
- package/src/select/index.tsx +9 -5
- package/src/select/select.tsx +1 -0
- package/src/select/styles.ts +1 -1
- package/src/static-palettes.ts +3 -5
- package/src/tab-nav/tab-nav.tsx +61 -17
- package/src/thematic-color-picker.tsx +158 -234
- package/src/thematic-constants.tsx +0 -1
- package/src/thematic-controls.tsx +118 -9
- package/src/thematic-scales.tsx +66 -86
- package/src/thematic-state.ts +61 -44
- package/src/thematic.tsx +379 -244
- package/src/theme-provider.test.tsx +70 -67
- package/src/theme-provider.tsx +44 -39
- package/src/theme-settings.ts +12 -44
- package/src/theme-styles.ts +34 -28
- package/src/themed-ink.tsx +26 -0
- package/src/toast/toast-action.tsx +2 -2
- package/src/toggle-button/round-toggle-button.tsx +2 -1
- package/src/toggle-button/toggle-button.tsx +3 -3
- package/src/toggle-on-off.tsx +7 -7
- package/src/tooltip-if-overflown.tsx +3 -3
- package/src/tree-utils.ts +1 -1
- package/src/type-badge-box.tsx +2 -2
- package/src/type-badge.tsx +9 -10
- package/src/unit/maybe-unit-value.tsx +1 -1
- package/src/unit/types.ts +1 -1
- package/src/workflow-progress-icon.tsx +1 -1
- package/.oxlintrc.json +0 -24
- package/src/actions-menu/actions-menu-open-state-tracker.tsx +0 -66
- package/src/design-system/alpha.test.ts +0 -59
- package/src/design-system.test.ts +0 -48
- package/src/error-alert/error-alert-action.tsx +0 -12
- package/src/error-alert/error-alert.tsx +0 -71
- package/src/palettes/slate-arch.colors-snapshot.test.ts +0 -1689
- package/src/palettes/slate-user.colors-snapshot.test.ts +0 -1689
- package/src/palettes/slate-user.ts +0 -187
- package/src/palettes/warm-arch.colors-snapshot.test.ts +0 -1689
- package/src/palettes/warm-user.colors-snapshot.test.ts +0 -1689
- package/src/popover/popover-old.tsx +0 -113
- /package/src/number-input/{decimal.test.js → decimal.test.ts} +0 -0
|
@@ -10,17 +10,20 @@ import {
|
|
|
10
10
|
useThemePreference,
|
|
11
11
|
useThemeStyles,
|
|
12
12
|
} from "./theme-provider";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {makeDefaultPalette} from "./palette-generator";
|
|
13
|
+
import {locateThemeBundle} from "./theme-styles";
|
|
14
|
+
import {stylesFromTheme, themeFromPalette, themeVars} from "./design-system";
|
|
16
15
|
|
|
17
|
-
const
|
|
16
|
+
const {
|
|
17
|
+
palette,
|
|
18
|
+
themes: [coolLightTheme, coolDarkTheme],
|
|
19
|
+
styles: [coolLightThemeStyles],
|
|
20
|
+
} = locateThemeBundle(false);
|
|
18
21
|
|
|
19
22
|
function ThemeDisplay({testId = "theme-display"}: {testId?: string}) {
|
|
20
23
|
const theme = useTheme();
|
|
21
24
|
const mode = useThemeMode();
|
|
22
25
|
return (
|
|
23
|
-
<div data-testid={testId} data-mode={mode} data-primary={theme.
|
|
26
|
+
<div data-testid={testId} data-mode={mode} data-primary={theme.colors.colorAccent}>
|
|
24
27
|
{theme.key}
|
|
25
28
|
</div>
|
|
26
29
|
);
|
|
@@ -30,7 +33,7 @@ describe("ThemeProvider", () => {
|
|
|
30
33
|
describe("basic rendering", () => {
|
|
31
34
|
it("renders children", () => {
|
|
32
35
|
render(
|
|
33
|
-
<ThemeProvider theme={
|
|
36
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
34
37
|
<div data-testid="child">Hello</div>
|
|
35
38
|
</ThemeProvider>
|
|
36
39
|
);
|
|
@@ -39,7 +42,7 @@ describe("ThemeProvider", () => {
|
|
|
39
42
|
|
|
40
43
|
it("provides theme via useTheme", () => {
|
|
41
44
|
render(
|
|
42
|
-
<ThemeProvider theme={
|
|
45
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
43
46
|
<ThemeDisplay />
|
|
44
47
|
</ThemeProvider>
|
|
45
48
|
);
|
|
@@ -48,7 +51,7 @@ describe("ThemeProvider", () => {
|
|
|
48
51
|
|
|
49
52
|
it("provides dark theme correctly", () => {
|
|
50
53
|
render(
|
|
51
|
-
<ThemeProvider theme={
|
|
54
|
+
<ThemeProvider theme={coolDarkTheme}>
|
|
52
55
|
<ThemeDisplay />
|
|
53
56
|
</ThemeProvider>
|
|
54
57
|
);
|
|
@@ -59,8 +62,8 @@ describe("ThemeProvider", () => {
|
|
|
59
62
|
describe("diff behavior", () => {
|
|
60
63
|
it("when theme equals parent, applies no styles", () => {
|
|
61
64
|
const {container} = render(
|
|
62
|
-
<ThemeProvider theme={
|
|
63
|
-
<ThemeProvider theme={
|
|
65
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
66
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
64
67
|
<ThemeDisplay />
|
|
65
68
|
</ThemeProvider>
|
|
66
69
|
</ThemeProvider>
|
|
@@ -72,12 +75,12 @@ describe("ThemeProvider", () => {
|
|
|
72
75
|
});
|
|
73
76
|
|
|
74
77
|
it("nested provider only sets properties that differ from parent", () => {
|
|
75
|
-
const lightTheme =
|
|
76
|
-
const darkTheme =
|
|
78
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
79
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
77
80
|
|
|
78
81
|
// Compare full inline themes to verify they differ
|
|
79
|
-
const lightStyles =
|
|
80
|
-
const darkStyles =
|
|
82
|
+
const lightStyles = stylesFromTheme(lightTheme);
|
|
83
|
+
const darkStyles = stylesFromTheme(darkTheme);
|
|
81
84
|
|
|
82
85
|
// Count how many properties differ between light and dark
|
|
83
86
|
let diffCount = 0;
|
|
@@ -109,13 +112,13 @@ describe("ThemeProvider", () => {
|
|
|
109
112
|
});
|
|
110
113
|
|
|
111
114
|
it("deeply nested providers accumulate only diffs", () => {
|
|
112
|
-
const theme1 =
|
|
113
|
-
const theme2 =
|
|
114
|
-
const theme3 =
|
|
115
|
+
const theme1 = themeFromPalette(palette, "light");
|
|
116
|
+
const theme2 = themeFromPalette(palette, "dark");
|
|
117
|
+
const theme3 = themeFromPalette(palette, "light"); // back to light
|
|
115
118
|
|
|
116
119
|
// Verify themes differ
|
|
117
|
-
const styles1 =
|
|
118
|
-
const styles2 =
|
|
120
|
+
const styles1 = stylesFromTheme(theme1);
|
|
121
|
+
const styles2 = stylesFromTheme(theme2);
|
|
119
122
|
|
|
120
123
|
let diffCount = 0;
|
|
121
124
|
for (const key in styles2) {
|
|
@@ -147,7 +150,7 @@ describe("ThemeProvider", () => {
|
|
|
147
150
|
|
|
148
151
|
describe("context-based diff", () => {
|
|
149
152
|
it("diffs against parent context value", () => {
|
|
150
|
-
const lightTheme =
|
|
153
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
151
154
|
|
|
152
155
|
// When parent context has same theme, diff should be empty
|
|
153
156
|
const {container} = render(
|
|
@@ -173,8 +176,8 @@ describe("ThemeProvider", () => {
|
|
|
173
176
|
// Outer ThemeProvider sets context to dark theme
|
|
174
177
|
// Inner ThemeProvider with same theme should have empty diff
|
|
175
178
|
const {container} = render(
|
|
176
|
-
<ThemeProvider theme={
|
|
177
|
-
<ThemeProvider theme={
|
|
179
|
+
<ThemeProvider theme={coolDarkTheme}>
|
|
180
|
+
<ThemeProvider theme={coolDarkTheme}>
|
|
178
181
|
<ThemeDisplay />
|
|
179
182
|
</ThemeProvider>
|
|
180
183
|
</ThemeProvider>
|
|
@@ -193,11 +196,11 @@ describe("ThemeProvider", () => {
|
|
|
193
196
|
|
|
194
197
|
describe("rejectKeys", () => {
|
|
195
198
|
it("by default, all properties are included in diff", () => {
|
|
196
|
-
const lightTheme =
|
|
197
|
-
const darkTheme =
|
|
199
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
200
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
198
201
|
|
|
199
|
-
const lightStyles =
|
|
200
|
-
const darkStyles =
|
|
202
|
+
const lightStyles = stylesFromTheme(lightTheme);
|
|
203
|
+
const darkStyles = stylesFromTheme(darkTheme);
|
|
201
204
|
|
|
202
205
|
let diffCount = 0;
|
|
203
206
|
for (const key in darkStyles) {
|
|
@@ -224,10 +227,10 @@ describe("ThemeProvider", () => {
|
|
|
224
227
|
});
|
|
225
228
|
|
|
226
229
|
it("without rejectKeys, uses default reject keys (fewer properties)", () => {
|
|
227
|
-
const theme =
|
|
230
|
+
const theme = themeFromPalette(palette, "dark");
|
|
228
231
|
|
|
229
232
|
const {container: withEmptyReject} = render(
|
|
230
|
-
<ThemeProvider theme={
|
|
233
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
231
234
|
<ThemeProvider theme={theme}>
|
|
232
235
|
<ThemeDisplay testId="with-empty" />
|
|
233
236
|
</ThemeProvider>
|
|
@@ -235,7 +238,7 @@ describe("ThemeProvider", () => {
|
|
|
235
238
|
);
|
|
236
239
|
|
|
237
240
|
const {container: withDefaultReject} = render(
|
|
238
|
-
<ThemeProvider theme={
|
|
241
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
239
242
|
<ThemeProvider theme={theme}>
|
|
240
243
|
<ThemeDisplay testId="with-default" />
|
|
241
244
|
</ThemeProvider>
|
|
@@ -258,8 +261,8 @@ describe("ThemeProvider", () => {
|
|
|
258
261
|
|
|
259
262
|
describe("useTheme and useThemeMode", () => {
|
|
260
263
|
it("useTheme returns current theme in nested context", () => {
|
|
261
|
-
const lightTheme =
|
|
262
|
-
const darkTheme =
|
|
264
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
265
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
263
266
|
|
|
264
267
|
render(
|
|
265
268
|
<ThemeProvider theme={lightTheme}>
|
|
@@ -325,7 +328,7 @@ describe("ThemeProvider", () => {
|
|
|
325
328
|
|
|
326
329
|
describe("style optimization verification", () => {
|
|
327
330
|
it("same theme nested produces no inline styles", () => {
|
|
328
|
-
const theme =
|
|
331
|
+
const theme = themeFromPalette(palette, "light");
|
|
329
332
|
|
|
330
333
|
const {container} = render(
|
|
331
334
|
<ThemeProvider theme={theme}>
|
|
@@ -353,11 +356,11 @@ describe("ThemeProvider", () => {
|
|
|
353
356
|
});
|
|
354
357
|
|
|
355
358
|
it("switching light→dark→light produces symmetric diffs", () => {
|
|
356
|
-
const lightTheme =
|
|
357
|
-
const darkTheme =
|
|
359
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
360
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
358
361
|
|
|
359
|
-
const lightStyles =
|
|
360
|
-
const darkStyles =
|
|
362
|
+
const lightStyles = stylesFromTheme(lightTheme);
|
|
363
|
+
const darkStyles = stylesFromTheme(darkTheme);
|
|
361
364
|
|
|
362
365
|
// Calculate light→dark diff
|
|
363
366
|
const lightToDarkDiff: Record<string, string> = {};
|
|
@@ -380,14 +383,14 @@ describe("ThemeProvider", () => {
|
|
|
380
383
|
});
|
|
381
384
|
|
|
382
385
|
it("diff count is significantly less than full theme count", () => {
|
|
383
|
-
const lightTheme =
|
|
384
|
-
const darkTheme =
|
|
386
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
387
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
385
388
|
|
|
386
|
-
const fullStyles =
|
|
389
|
+
const fullStyles = stylesFromTheme(darkTheme);
|
|
387
390
|
const fullCount = Object.keys(fullStyles).length;
|
|
388
391
|
|
|
389
392
|
// Calculate diff
|
|
390
|
-
const lightStyles =
|
|
393
|
+
const lightStyles = stylesFromTheme(lightTheme);
|
|
391
394
|
let diffCount = 0;
|
|
392
395
|
for (const key in fullStyles) {
|
|
393
396
|
if (fullStyles[key] !== lightStyles[key]) {
|
|
@@ -404,8 +407,8 @@ describe("ThemeProvider", () => {
|
|
|
404
407
|
|
|
405
408
|
describe("style helpers verification", () => {
|
|
406
409
|
it("getStyleCount returns correct number of CSS properties", () => {
|
|
407
|
-
const lightTheme =
|
|
408
|
-
const darkTheme =
|
|
410
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
411
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
409
412
|
|
|
410
413
|
// Same theme nested = inner div has no style attribute (empty diff)
|
|
411
414
|
const {container: sameContainer} = render(
|
|
@@ -439,10 +442,10 @@ describe("ThemeProvider", () => {
|
|
|
439
442
|
});
|
|
440
443
|
|
|
441
444
|
it("getStyleObject returns parseable CSS properties", () => {
|
|
442
|
-
const darkTheme =
|
|
445
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
443
446
|
|
|
444
447
|
const {container} = render(
|
|
445
|
-
<ThemeProvider theme={
|
|
448
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
446
449
|
<ThemeProvider theme={darkTheme}>
|
|
447
450
|
<span>content</span>
|
|
448
451
|
</ThemeProvider>
|
|
@@ -473,7 +476,7 @@ describe("ThemeProvider", () => {
|
|
|
473
476
|
});
|
|
474
477
|
|
|
475
478
|
it("nested providers have decreasing style counts", () => {
|
|
476
|
-
const darkTheme =
|
|
479
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
477
480
|
|
|
478
481
|
// Outer: diff from context default
|
|
479
482
|
// Inner: only diff from outer (which should be 0 since same theme)
|
|
@@ -502,10 +505,10 @@ describe("ThemeProvider", () => {
|
|
|
502
505
|
});
|
|
503
506
|
|
|
504
507
|
it("getStyleObject can verify specific CSS variable values", () => {
|
|
505
|
-
const darkTheme =
|
|
508
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
506
509
|
|
|
507
510
|
const {container} = render(
|
|
508
|
-
<ThemeProvider theme={
|
|
511
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
509
512
|
<ThemeProvider theme={darkTheme}>
|
|
510
513
|
<span>content</span>
|
|
511
514
|
</ThemeProvider>
|
|
@@ -541,7 +544,7 @@ describe("ThemeProvider", () => {
|
|
|
541
544
|
|
|
542
545
|
it("returns computed styles from context", () => {
|
|
543
546
|
render(
|
|
544
|
-
<ThemeProvider theme={
|
|
547
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
545
548
|
<StylesDisplay />
|
|
546
549
|
</ThemeProvider>
|
|
547
550
|
);
|
|
@@ -552,14 +555,14 @@ describe("ThemeProvider", () => {
|
|
|
552
555
|
it("returns default styles outside ThemeProvider", () => {
|
|
553
556
|
render(<StylesDisplay />);
|
|
554
557
|
const count = Number(screen.getByTestId("styles").getAttribute("data-style-count"));
|
|
555
|
-
expect(count).toBe(Object.keys(
|
|
558
|
+
expect(count).toBe(Object.keys(coolLightThemeStyles).length);
|
|
556
559
|
});
|
|
557
560
|
|
|
558
561
|
it("nested provider updates styles context", () => {
|
|
559
562
|
render(
|
|
560
|
-
<ThemeProvider theme={
|
|
563
|
+
<ThemeProvider theme={coolLightTheme}>
|
|
561
564
|
<StylesDisplay testId="outer" />
|
|
562
|
-
<ThemeProvider theme={
|
|
565
|
+
<ThemeProvider theme={coolDarkTheme}>
|
|
563
566
|
<StylesDisplay testId="inner" />
|
|
564
567
|
</ThemeProvider>
|
|
565
568
|
</ThemeProvider>
|
|
@@ -624,7 +627,7 @@ describe("ThemeProvider", () => {
|
|
|
624
627
|
}
|
|
625
628
|
|
|
626
629
|
it("diffs against root styles, not parent context", () => {
|
|
627
|
-
const darkTheme =
|
|
630
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
628
631
|
|
|
629
632
|
// Non-portal dark inside dark parent: diffs against parent (same) → 0 styles
|
|
630
633
|
const {container: normalContainer} = renderWithRoot(
|
|
@@ -660,7 +663,7 @@ describe("ThemeProvider", () => {
|
|
|
660
663
|
});
|
|
661
664
|
|
|
662
665
|
it("when theme matches root, produces no inline styles", () => {
|
|
663
|
-
const lightTheme =
|
|
666
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
664
667
|
|
|
665
668
|
const {container} = renderWithRoot(
|
|
666
669
|
<ThemeProvider theme={lightTheme} portal>
|
|
@@ -675,11 +678,11 @@ describe("ThemeProvider", () => {
|
|
|
675
678
|
});
|
|
676
679
|
|
|
677
680
|
it("when theme differs from root, emits diff against root", () => {
|
|
678
|
-
const lightTheme =
|
|
679
|
-
const darkTheme =
|
|
681
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
682
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
680
683
|
|
|
681
|
-
const lightStyles =
|
|
682
|
-
const darkStyles =
|
|
684
|
+
const lightStyles = stylesFromTheme(lightTheme);
|
|
685
|
+
const darkStyles = stylesFromTheme(darkTheme);
|
|
683
686
|
let expectedDiffCount = 0;
|
|
684
687
|
for (const key in darkStyles) {
|
|
685
688
|
if (darkStyles[key] !== lightStyles[key]) {
|
|
@@ -699,8 +702,8 @@ describe("ThemeProvider", () => {
|
|
|
699
702
|
});
|
|
700
703
|
|
|
701
704
|
it("portal ignores intermediate parent overrides for diff base", () => {
|
|
702
|
-
const lightTheme =
|
|
703
|
-
const darkTheme =
|
|
705
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
706
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
704
707
|
|
|
705
708
|
// root(light) > dark > portal(light)
|
|
706
709
|
// Portal diffs against root(light), not dark parent
|
|
@@ -719,11 +722,11 @@ describe("ThemeProvider", () => {
|
|
|
719
722
|
});
|
|
720
723
|
|
|
721
724
|
it("portal with dark mode emits overrides vs light root", () => {
|
|
722
|
-
const lightTheme =
|
|
723
|
-
const darkTheme =
|
|
725
|
+
const lightTheme = themeFromPalette(palette, "light");
|
|
726
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
724
727
|
|
|
725
|
-
const lightStyles =
|
|
726
|
-
const darkStyles =
|
|
728
|
+
const lightStyles = stylesFromTheme(lightTheme);
|
|
729
|
+
const darkStyles = stylesFromTheme(darkTheme);
|
|
727
730
|
let expectedDiffCount = 0;
|
|
728
731
|
for (const key in darkStyles) {
|
|
729
732
|
if (darkStyles[key] !== lightStyles[key]) {
|
|
@@ -744,7 +747,7 @@ describe("ThemeProvider", () => {
|
|
|
744
747
|
});
|
|
745
748
|
|
|
746
749
|
it("non-portal still diffs against parent context", () => {
|
|
747
|
-
const darkTheme =
|
|
750
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
748
751
|
|
|
749
752
|
// Non-portal nested with same theme as parent: empty diff
|
|
750
753
|
const {container} = renderWithRoot(
|
|
@@ -761,7 +764,7 @@ describe("ThemeProvider", () => {
|
|
|
761
764
|
});
|
|
762
765
|
|
|
763
766
|
it("provides correct theme context regardless of portal flag", () => {
|
|
764
|
-
const darkTheme =
|
|
767
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
765
768
|
|
|
766
769
|
renderWithRoot(
|
|
767
770
|
<ThemeProvider theme={darkTheme} portal>
|
|
@@ -773,11 +776,11 @@ describe("ThemeProvider", () => {
|
|
|
773
776
|
});
|
|
774
777
|
|
|
775
778
|
it("provides correct ThemeStylesContext inside portal", () => {
|
|
776
|
-
const darkTheme =
|
|
779
|
+
const darkTheme = themeFromPalette(palette, "dark");
|
|
777
780
|
|
|
778
781
|
function StylesCheck() {
|
|
779
782
|
const styles = useThemeStyles();
|
|
780
|
-
const expected =
|
|
783
|
+
const expected = stylesFromTheme(darkTheme);
|
|
781
784
|
const match = Object.keys(expected).every((k) => styles[k] === expected[k]);
|
|
782
785
|
return <div data-testid="styles-match" data-match={String(match)} />;
|
|
783
786
|
}
|
package/src/theme-provider.tsx
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import invariant from "invariant";
|
|
2
|
-
import {
|
|
3
|
-
chooseGlobalStyles,
|
|
4
|
-
defaultLightTheme,
|
|
5
|
-
defaultLightThemeStyles,
|
|
6
|
-
defaultPalette,
|
|
7
|
-
selectGlobalThemePair,
|
|
8
|
-
} from "./theme-styles";
|
|
2
|
+
import {chooseGlobalStyles, locateThemeBundle} from "./theme-styles";
|
|
9
3
|
import {layoutStyles} from "./layout-styles";
|
|
10
4
|
import {
|
|
11
5
|
createContext,
|
|
@@ -18,7 +12,7 @@ import {
|
|
|
18
12
|
useMemo,
|
|
19
13
|
useState,
|
|
20
14
|
} from "react";
|
|
21
|
-
import {
|
|
15
|
+
import {Styles, stylesFromTheme, Theme, themeFromPalette} from "./design-system";
|
|
22
16
|
import {selectPalette, ThemePalette} from "./palette-generator";
|
|
23
17
|
import {
|
|
24
18
|
subscribeOnThemeMenuPreferenceChange,
|
|
@@ -47,10 +41,15 @@ export function useThemeMenuPreference(): ThemeMenuPreference {
|
|
|
47
41
|
return themeMenuPreference;
|
|
48
42
|
}
|
|
49
43
|
|
|
50
|
-
const
|
|
44
|
+
const {
|
|
45
|
+
palette,
|
|
46
|
+
themes: [coolLightTheme],
|
|
47
|
+
styles: [coolLightThemeStyles],
|
|
48
|
+
} = locateThemeBundle(false);
|
|
49
|
+
const ThemeContext = createContext<Theme>(coolLightTheme);
|
|
51
50
|
|
|
52
|
-
export function useTheme():
|
|
53
|
-
return useContext(
|
|
51
|
+
export function useTheme(): Theme {
|
|
52
|
+
return useContext(ThemeContext);
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
export function useThemeMode(): ThemeMode {
|
|
@@ -58,14 +57,22 @@ export function useThemeMode(): ThemeMode {
|
|
|
58
57
|
return theme.mode;
|
|
59
58
|
}
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
const
|
|
60
|
+
/** @deprecated Use `useThemedColor` instead */
|
|
61
|
+
export const useNeutralColor = useThemedColor;
|
|
62
|
+
|
|
63
|
+
export function useThemedColor(color: string) {
|
|
64
|
+
const theme = useTheme();
|
|
65
|
+
return theme.fns.deneutralize(color);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const RootThemeStylesContext = createContext<Styles>(coolLightThemeStyles);
|
|
69
|
+
const ThemeStylesContext = createContext<Styles>(coolLightThemeStyles);
|
|
63
70
|
|
|
64
|
-
export function useThemeStyles():
|
|
71
|
+
export function useThemeStyles(): Styles {
|
|
65
72
|
return useContext(ThemeStylesContext);
|
|
66
73
|
}
|
|
67
74
|
|
|
68
|
-
const ThemePaletteContext = createContext<ThemePalette>(
|
|
75
|
+
const ThemePaletteContext = createContext<ThemePalette>(palette);
|
|
69
76
|
|
|
70
77
|
export function useThemePalette(): ThemePalette {
|
|
71
78
|
return useContext(ThemePaletteContext);
|
|
@@ -77,7 +84,7 @@ type ThematicContextValue = {
|
|
|
77
84
|
};
|
|
78
85
|
|
|
79
86
|
const ThematicContext = createContext<ThematicContextValue>({
|
|
80
|
-
palette
|
|
87
|
+
palette,
|
|
81
88
|
setPalette: () => {},
|
|
82
89
|
});
|
|
83
90
|
|
|
@@ -87,30 +94,25 @@ export function useThematic(): ThematicContextValue {
|
|
|
87
94
|
|
|
88
95
|
export function ThemeProvider({
|
|
89
96
|
theme: themeOverride,
|
|
90
|
-
color: colorOverride,
|
|
91
97
|
mode: modeOverride,
|
|
92
98
|
portal,
|
|
93
99
|
children,
|
|
94
100
|
}: PropsWithChildren<
|
|
95
|
-
{portal?: true} & (
|
|
96
|
-
| {theme: ThemeColors; color?: never; mode?: never}
|
|
97
|
-
| {color?: string; theme?: never; mode?: ThemeMode}
|
|
98
|
-
)
|
|
101
|
+
{portal?: true} & ({theme: Theme; color?: never; mode?: never} | {color?: string; theme?: never; mode?: ThemeMode})
|
|
99
102
|
>) {
|
|
100
103
|
const palette = useContext(ThemePaletteContext);
|
|
101
|
-
const parentTheme = useContext(
|
|
104
|
+
const parentTheme = useContext(ThemeContext);
|
|
102
105
|
|
|
103
106
|
const mode = modeOverride ?? parentTheme.mode;
|
|
104
|
-
const
|
|
105
|
-
const theme = themeOverride ?? getThemeColors(color, mode, palette);
|
|
107
|
+
const theme = themeOverride ?? themeFromPalette(palette, mode);
|
|
106
108
|
|
|
107
109
|
const parentStyles = useContext(portal ? RootThemeStylesContext : ThemeStylesContext);
|
|
108
|
-
const styles =
|
|
110
|
+
const styles = stylesFromTheme(theme);
|
|
109
111
|
const stylesDiff = useMemo(() => {
|
|
110
112
|
if (styles === parentStyles) {
|
|
111
113
|
return undefined;
|
|
112
114
|
}
|
|
113
|
-
const diff:
|
|
115
|
+
const diff: Styles = {};
|
|
114
116
|
for (const key of Object.keys(styles)) {
|
|
115
117
|
if (styles[key] !== parentStyles[key]) {
|
|
116
118
|
diff[key] = styles[key];
|
|
@@ -120,7 +122,7 @@ export function ThemeProvider({
|
|
|
120
122
|
}, [styles, parentStyles]);
|
|
121
123
|
|
|
122
124
|
return (
|
|
123
|
-
<
|
|
125
|
+
<ThemeContext.Provider value={theme}>
|
|
124
126
|
<ThemeStylesContext.Provider value={styles}>
|
|
125
127
|
<div
|
|
126
128
|
style={stylesDiff}
|
|
@@ -131,7 +133,7 @@ export function ThemeProvider({
|
|
|
131
133
|
{children}
|
|
132
134
|
</div>
|
|
133
135
|
</ThemeStylesContext.Provider>
|
|
134
|
-
</
|
|
136
|
+
</ThemeContext.Provider>
|
|
135
137
|
);
|
|
136
138
|
}
|
|
137
139
|
|
|
@@ -156,13 +158,13 @@ export function MenuThemeProvider({children}: {children: ReactNode}) {
|
|
|
156
158
|
return <ThemeProvider mode={mode}>{children}</ThemeProvider>;
|
|
157
159
|
}
|
|
158
160
|
|
|
159
|
-
function useUpdateBrowserThemeColor(light:
|
|
161
|
+
function useUpdateBrowserThemeColor(light: Theme, dark: Theme) {
|
|
160
162
|
useEffect(() => {
|
|
161
163
|
const lightEl = document.querySelector('meta[name="theme-color"][media*="light"]');
|
|
162
164
|
const darkEl = document.querySelector('meta[name="theme-color"][media*="dark"]');
|
|
163
|
-
lightEl?.setAttribute("content", light.mainBg);
|
|
164
|
-
darkEl?.setAttribute("content", dark.mainBg);
|
|
165
|
-
}, [light.mainBg, dark.mainBg]);
|
|
165
|
+
lightEl?.setAttribute("content", light.colors.mainBg);
|
|
166
|
+
darkEl?.setAttribute("content", dark.colors.mainBg);
|
|
167
|
+
}, [light.colors.mainBg, dark.colors.mainBg]);
|
|
166
168
|
}
|
|
167
169
|
|
|
168
170
|
export function RootThemeProvider({
|
|
@@ -178,11 +180,11 @@ export function RootThemeProvider({
|
|
|
178
180
|
isArchitect?: boolean;
|
|
179
181
|
children: ReactNode;
|
|
180
182
|
}): JSX.Element {
|
|
181
|
-
const [
|
|
182
|
-
useEffect(() => subscribeOnThemeModeChange(
|
|
183
|
+
const [mode, setMode] = useState<ThemeMode>(initialThemeMode);
|
|
184
|
+
useEffect(() => subscribeOnThemeModeChange(setMode), []);
|
|
183
185
|
|
|
184
186
|
const [warm] = useWarmPreference();
|
|
185
|
-
useEffect(() => chooseGlobalStyles(
|
|
187
|
+
useEffect(() => chooseGlobalStyles(mode, warm), [mode, warm]);
|
|
186
188
|
|
|
187
189
|
const [paletteOverride, setPaletteOverride] = useState<ThemePalette | null>(null);
|
|
188
190
|
|
|
@@ -190,15 +192,18 @@ export function RootThemeProvider({
|
|
|
190
192
|
return paletteOverride ?? selectPalette({warmLook: warm, isArchitect});
|
|
191
193
|
}, [paletteOverride, warm, isArchitect]);
|
|
192
194
|
|
|
193
|
-
let res = <ThemeProvider theme={
|
|
195
|
+
let res = <ThemeProvider theme={themeFromPalette(palette, mode)}>{children}</ThemeProvider>;
|
|
194
196
|
|
|
195
197
|
// Set base context to what global CSS has, so ThemeProvider diffs against it
|
|
196
|
-
const
|
|
198
|
+
const {
|
|
199
|
+
themes: [lightThemeColors, darkThemeColors],
|
|
200
|
+
styles: [lightThemeStyles, darkThemeStyles],
|
|
201
|
+
} = locateThemeBundle(warm);
|
|
197
202
|
const [cssThemeColors, cssThemeStyles] =
|
|
198
|
-
|
|
203
|
+
mode === "dark" ? [darkThemeColors, darkThemeStyles] : [lightThemeColors, lightThemeStyles];
|
|
199
204
|
res = <ThemeStylesContext.Provider value={cssThemeStyles}>{res}</ThemeStylesContext.Provider>;
|
|
200
205
|
res = <RootThemeStylesContext.Provider value={cssThemeStyles}>{res}</RootThemeStylesContext.Provider>;
|
|
201
|
-
res = <
|
|
206
|
+
res = <ThemeContext.Provider value={cssThemeColors}>{res}</ThemeContext.Provider>;
|
|
202
207
|
useUpdateBrowserThemeColor(lightThemeColors, darkThemeColors);
|
|
203
208
|
|
|
204
209
|
res = <ThemePaletteContext.Provider value={palette}>{res}</ThemePaletteContext.Provider>;
|
package/src/theme-settings.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {useEffect, useState} from "react";
|
|
2
2
|
import {getMediaQueryList, subscribeOnChange as subscribeOnMediaQueryChange} from "./media-query-utils";
|
|
3
|
+
import {createPreferenceSetting} from "./preference-setting";
|
|
3
4
|
|
|
4
5
|
const listenersThemeMode = new Map();
|
|
5
6
|
const listenersThemePreference = new Map();
|
|
@@ -170,50 +171,17 @@ export function subscribeOnThemeModeChange(cb: (themeMode: ThemeMode) => void):
|
|
|
170
171
|
};
|
|
171
172
|
}
|
|
172
173
|
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
export function loadWarmPreference(): boolean {
|
|
185
|
-
try {
|
|
186
|
-
return localStorage.getItem(warmKey) === "true";
|
|
187
|
-
} catch {
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
export function storeWarmPreference(warm: boolean) {
|
|
193
|
-
try {
|
|
194
|
-
localStorage.setItem(warmKey, JSON.stringify(warm));
|
|
195
|
-
} catch {
|
|
196
|
-
// ignore
|
|
197
|
-
}
|
|
198
|
-
warmListeners.forEach((cb) => cb(warm));
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
export function subscribeOnWarmPreferenceChange(cb: (warm: boolean) => void): () => void {
|
|
202
|
-
warmListeners.add(cb);
|
|
203
|
-
let prev = loadWarmPreference();
|
|
204
|
-
const storageListener = () => {
|
|
205
|
-
const next = loadWarmPreference();
|
|
206
|
-
if (prev !== next) {
|
|
207
|
-
prev = next;
|
|
208
|
-
cb(next);
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
window.addEventListener("storage", storageListener);
|
|
212
|
-
return () => {
|
|
213
|
-
warmListeners.delete(cb);
|
|
214
|
-
window.removeEventListener("storage", storageListener);
|
|
215
|
-
};
|
|
216
|
-
}
|
|
174
|
+
export const {
|
|
175
|
+
has: hasWarmPreference,
|
|
176
|
+
load: loadWarmPreference,
|
|
177
|
+
store: storeWarmPreference,
|
|
178
|
+
subscribe: subscribeOnWarmPreferenceChange,
|
|
179
|
+
} = createPreferenceSetting({
|
|
180
|
+
key: "warm",
|
|
181
|
+
parse: (raw) => (raw === "true" ? true : raw === "false" ? false : undefined),
|
|
182
|
+
stringify: (v: boolean) => JSON.stringify(v),
|
|
183
|
+
defaultValue: false,
|
|
184
|
+
});
|
|
217
185
|
|
|
218
186
|
export function useWarmPreference() {
|
|
219
187
|
const [warm, setWarm] = useState(loadWarmPreference);
|