Browse Source

enhance(mobile): bottom buttons

also, fixed todo cycle
Tienson Qin 4 years ago
parent
commit
0afd15c23d

+ 1 - 0
package.json

@@ -66,6 +66,7 @@
         "@kanru/rage-wasm": "^0.2.1",
         "@sentry/browser": "^6.4.1",
         "@sentry/electron": "^2.5.1",
+        "@tabler/icons": "^1.41.2",
         "@tippyjs/react": "^4.2.5",
         "chokidar": "^3.5.1",
         "chrono-node": "^2.2.4",

+ 1 - 0
public/index.html

@@ -3,6 +3,7 @@
 <head>
   <meta charset="utf-8">
   <meta content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no" name="viewport">
+  <link rel="stylesheet" href="https://unpkg.com/@tabler/icons@latest/iconfont/tabler-icons.min.css">
   <link href="/static/css/style.css" rel="stylesheet" type="text/css">
   <link href="/static/img/logo.png" rel="shortcut icon" type="image/png">
   <link href="/static/img/logo.png" rel="shortcut icon" sizes="192x192">

+ 1296 - 0
resources/icons.edn

@@ -0,0 +1,1296 @@
+["Icon2fa"
+ "Icon3dCubeSphere"
+ "IconAB"
+ "IconAccessPoint"
+ "IconAccessPointOff"
+ "IconAccessible"
+ "IconActivity"
+ "IconAd"
+ "IconAd2"
+ "IconAdjustments"
+ "IconAdjustmentsAlt"
+ "IconAdjustmentsHorizontal"
+ "IconAerialLift"
+ "IconAffiliate"
+ "IconAlarm"
+ "IconAlertCircle"
+ "IconAlertOctagon"
+ "IconAlertTriangle"
+ "IconAlien"
+ "IconAlignCenter"
+ "IconAlignJustified"
+ "IconAlignLeft"
+ "IconAlignRight"
+ "IconAmbulance"
+ "IconAnchor"
+ "IconAngle"
+ "IconAntennaBars1"
+ "IconAntennaBars2"
+ "IconAntennaBars3"
+ "IconAntennaBars4"
+ "IconAntennaBars5"
+ "IconAperture"
+ "IconApple"
+ "IconApps"
+ "IconArchive"
+ "IconArrowBack"
+ "IconArrowBackUp"
+ "IconArrowBarDown"
+ "IconArrowBarLeft"
+ "IconArrowBarRight"
+ "IconArrowBarToDown"
+ "IconArrowBarToLeft"
+ "IconArrowBarToRight"
+ "IconArrowBarToUp"
+ "IconArrowBarUp"
+ "IconArrowBigDown"
+ "IconArrowBigLeft"
+ "IconArrowBigRight"
+ "IconArrowBigTop"
+ "IconArrowBottomBar"
+ "IconArrowBottomCircle"
+ "IconArrowBottomSquare"
+ "IconArrowBottomTail"
+ "IconArrowDown"
+ "IconArrowDownCircle"
+ "IconArrowDownLeft"
+ "IconArrowDownLeftCircle"
+ "IconArrowDownRight"
+ "IconArrowDownRightCircle"
+ "IconArrowForward"
+ "IconArrowForwardUp"
+ "IconArrowLeft"
+ "IconArrowLeftBar"
+ "IconArrowLeftCircle"
+ "IconArrowLeftSquare"
+ "IconArrowLeftTail"
+ "IconArrowLoopLeft"
+ "IconArrowLoopRight"
+ "IconArrowNarrowDown"
+ "IconArrowNarrowLeft"
+ "IconArrowNarrowRight"
+ "IconArrowNarrowUp"
+ "IconArrowRampLeft"
+ "IconArrowRampRight"
+ "IconArrowRight"
+ "IconArrowRightBar"
+ "IconArrowRightCircle"
+ "IconArrowRightSquare"
+ "IconArrowRightTail"
+ "IconArrowTopBar"
+ "IconArrowTopCircle"
+ "IconArrowTopSquare"
+ "IconArrowTopTail"
+ "IconArrowUp"
+ "IconArrowUpCircle"
+ "IconArrowUpLeft"
+ "IconArrowUpLeftCircle"
+ "IconArrowUpRight"
+ "IconArrowUpRightCircle"
+ "IconArrowWaveLeftDown"
+ "IconArrowWaveLeftUp"
+ "IconArrowWaveRightDown"
+ "IconArrowWaveRightUp"
+ "IconArrowsDiagonal"
+ "IconArrowsDiagonal2"
+ "IconArrowsDoubleNeSw"
+ "IconArrowsDoubleNwSe"
+ "IconArrowsDoubleSeNw"
+ "IconArrowsDoubleSwNe"
+ "IconArrowsDown"
+ "IconArrowsDownUp"
+ "IconArrowsHorizontal"
+ "IconArrowsJoin"
+ "IconArrowsJoin2"
+ "IconArrowsLeft"
+ "IconArrowsLeftDown"
+ "IconArrowsLeftRight"
+ "IconArrowsMaximize"
+ "IconArrowsMinimize"
+ "IconArrowsRight"
+ "IconArrowsRightDown"
+ "IconArrowsRightLeft"
+ "IconArrowsSort"
+ "IconArrowsSplit"
+ "IconArrowsSplit2"
+ "IconArrowsUp"
+ "IconArrowsUpDown"
+ "IconArrowsUpLeft"
+ "IconArrowsUpRight"
+ "IconArrowsVertical"
+ "IconArtboard"
+ "IconAspectRatio"
+ "IconAt"
+ "IconAtom"
+ "IconAtom2"
+ "IconAward"
+ "IconBackhoe"
+ "IconBackspace"
+ "IconBallAmericanFootball"
+ "IconBallBasketball"
+ "IconBallBowling"
+ "IconBallFootball"
+ "IconBallFootballOff"
+ "IconBallTennis"
+ "IconBallVolleyball"
+ "IconBan"
+ "IconBandage"
+ "IconBarcode"
+ "IconBasket"
+ "IconBattery"
+ "IconBattery1"
+ "IconBattery2"
+ "IconBattery3"
+ "IconBattery4"
+ "IconBatteryAutomotive"
+ "IconBatteryCharging"
+ "IconBatteryOff"
+ "IconBed"
+ "IconBell"
+ "IconBellMinus"
+ "IconBellOff"
+ "IconBellPlus"
+ "IconBellRinging"
+ "IconBellRinging2"
+ "IconBellX"
+ "IconBike"
+ "IconBinary"
+ "IconBiohazard"
+ "IconBlockquote"
+ "IconBluetooth"
+ "IconBluetoothConnected"
+ "IconBluetoothOff"
+ "IconBold"
+ "IconBolt"
+ "IconBoltOff"
+ "IconBone"
+ "IconBook"
+ "IconBookmark"
+ "IconBookmarkOff"
+ "IconBookmarks"
+ "IconBorderAll"
+ "IconBorderBottom"
+ "IconBorderHorizontal"
+ "IconBorderInner"
+ "IconBorderLeft"
+ "IconBorderNone"
+ "IconBorderOuter"
+ "IconBorderRadius"
+ "IconBorderRight"
+ "IconBorderStyle"
+ "IconBorderStyle2"
+ "IconBorderTop"
+ "IconBorderVertical"
+ "IconBottle"
+ "IconBox"
+ "IconBoxMargin"
+ "IconBoxModel"
+ "IconBoxModel2"
+ "IconBoxMultiple"
+ "IconBoxMultiple0"
+ "IconBoxMultiple1"
+ "IconBoxMultiple2"
+ "IconBoxMultiple3"
+ "IconBoxMultiple4"
+ "IconBoxMultiple5"
+ "IconBoxMultiple6"
+ "IconBoxMultiple7"
+ "IconBoxMultiple8"
+ "IconBoxMultiple9"
+ "IconBoxPadding"
+ "IconBraces"
+ "IconBrackets"
+ "IconBrandAirbnb"
+ "IconBrandAndroid"
+ "IconBrandApple"
+ "IconBrandAppleArcade"
+ "IconBrandAppstore"
+ "IconBrandAsana"
+ "IconBrandBehance"
+ "IconBrandBing"
+ "IconBrandBitbucket"
+ "IconBrandBooking"
+ "IconBrandChrome"
+ "IconBrandCodepen"
+ "IconBrandCodesandbox"
+ "IconBrandCss3"
+ "IconBrandDeviantart"
+ "IconBrandDiscord"
+ "IconBrandDisqus"
+ "IconBrandDocker"
+ "IconBrandDribbble"
+ "IconBrandEdge"
+ "IconBrandFacebook"
+ "IconBrandFigma"
+ "IconBrandFirefox"
+ "IconBrandFlickr"
+ "IconBrandFoursquare"
+ "IconBrandFramer"
+ "IconBrandGithub"
+ "IconBrandGitlab"
+ "IconBrandGoogle"
+ "IconBrandGoogleAnalytics"
+ "IconBrandGoogleDrive"
+ "IconBrandGooglePlay"
+ "IconBrandGravatar"
+ "IconBrandHipchat"
+ "IconBrandHtml5"
+ "IconBrandInstagram"
+ "IconBrandJavascript"
+ "IconBrandKickstarter"
+ "IconBrandKotlin"
+ "IconBrandLinkedin"
+ "IconBrandMedium"
+ "IconBrandMessenger"
+ "IconBrandNetflix"
+ "IconBrandOpenSource"
+ "IconBrandOpera"
+ "IconBrandPagekit"
+ "IconBrandPatreon"
+ "IconBrandPaypal"
+ "IconBrandPinterest"
+ "IconBrandPocket"
+ "IconBrandProducthunt"
+ "IconBrandPython"
+ "IconBrandReddit"
+ "IconBrandSafari"
+ "IconBrandSass"
+ "IconBrandSentry"
+ "IconBrandShazam"
+ "IconBrandSketch"
+ "IconBrandSkype"
+ "IconBrandSlack"
+ "IconBrandSnapchat"
+ "IconBrandSoundcloud"
+ "IconBrandSpotify"
+ "IconBrandSteam"
+ "IconBrandStripe"
+ "IconBrandTabler"
+ "IconBrandTailwind"
+ "IconBrandTelegram"
+ "IconBrandTidal"
+ "IconBrandTiktok"
+ "IconBrandTinder"
+ "IconBrandTumblr"
+ "IconBrandTwitch"
+ "IconBrandTwitter"
+ "IconBrandUnsplash"
+ "IconBrandVercel"
+ "IconBrandVimeo"
+ "IconBrandVk"
+ "IconBrandWhatsapp"
+ "IconBrandWindows"
+ "IconBrandYahoo"
+ "IconBrandYcombinator"
+ "IconBrandYoutube"
+ "IconBriefcase"
+ "IconBrightness"
+ "IconBrightness2"
+ "IconBrightnessDown"
+ "IconBrightnessHalf"
+ "IconBrightnessUp"
+ "IconBrowser"
+ "IconBrush"
+ "IconBucket"
+ "IconBug"
+ "IconBuilding"
+ "IconBuildingArch"
+ "IconBuildingBank"
+ "IconBuildingBridge"
+ "IconBuildingBridge2"
+ "IconBuildingCarousel"
+ "IconBuildingCastle"
+ "IconBuildingChurch"
+ "IconBuildingCommunity"
+ "IconBuildingCottage"
+ "IconBuildingFactory"
+ "IconBuildingFortress"
+ "IconBuildingHospital"
+ "IconBuildingLighthouse"
+ "IconBuildingMonument"
+ "IconBuildingPavilon"
+ "IconBuildingSkyscraper"
+ "IconBuildingStore"
+ "IconBuildingWarehouse"
+ "IconBulb"
+ "IconBulbOff"
+ "IconBulldozer"
+ "IconBus"
+ "IconBusinessplan"
+ "IconCalculator"
+ "IconCalendar"
+ "IconCalendarEvent"
+ "IconCalendarMinus"
+ "IconCalendarOff"
+ "IconCalendarPlus"
+ "IconCalendarStats"
+ "IconCalendarTime"
+ "IconCamera"
+ "IconCameraMinus"
+ "IconCameraOff"
+ "IconCameraPlus"
+ "IconCameraRotate"
+ "IconCameraSelfie"
+ "IconCandy"
+ "IconCapture"
+ "IconCar"
+ "IconCarCrane"
+ "IconCaravan"
+ "IconCardboards"
+ "IconCaretDown"
+ "IconCaretLeft"
+ "IconCaretRight"
+ "IconCaretUp"
+ "IconCash"
+ "IconCashBanknote"
+ "IconCashBanknoteOff"
+ "IconCast"
+ "IconCe"
+ "IconCertificate"
+ "IconChargingPile"
+ "IconChartArcs"
+ "IconChartArcs3"
+ "IconChartArea"
+ "IconChartAreaLine"
+ "IconChartArrows"
+ "IconChartArrowsVertical"
+ "IconChartBar"
+ "IconChartBubble"
+ "IconChartCandle"
+ "IconChartCircles"
+ "IconChartDonut"
+ "IconChartDonut2"
+ "IconChartDonut3"
+ "IconChartDonut4"
+ "IconChartDots"
+ "IconChartInfographic"
+ "IconChartLine"
+ "IconChartPie"
+ "IconChartPie2"
+ "IconChartPie3"
+ "IconChartPie4"
+ "IconChartRadar"
+ "IconCheck"
+ "IconCheckbox"
+ "IconChecks"
+ "IconCheese"
+ "IconChevronDown"
+ "IconChevronDownLeft"
+ "IconChevronDownRight"
+ "IconChevronLeft"
+ "IconChevronRight"
+ "IconChevronUp"
+ "IconChevronUpLeft"
+ "IconChevronUpRight"
+ "IconChevronsDown"
+ "IconChevronsDownLeft"
+ "IconChevronsDownRight"
+ "IconChevronsLeft"
+ "IconChevronsRight"
+ "IconChevronsUp"
+ "IconChevronsUpLeft"
+ "IconChevronsUpRight"
+ "IconChristmasTree"
+ "IconCircle"
+ "IconCircle0"
+ "IconCircle1"
+ "IconCircle2"
+ "IconCircle3"
+ "IconCircle4"
+ "IconCircle5"
+ "IconCircle6"
+ "IconCircle7"
+ "IconCircle8"
+ "IconCircle9"
+ "IconCircleCheck"
+ "IconCircleDashed"
+ "IconCircleDotted"
+ "IconCircleHalf"
+ "IconCircleHalfVertical"
+ "IconCircleMinus"
+ "IconCircleOff"
+ "IconCirclePlus"
+ "IconCircleSquare"
+ "IconCircleX"
+ "IconCircles"
+ "IconClearAll"
+ "IconClearFormatting"
+ "IconClick"
+ "IconClipboard"
+ "IconClipboardCheck"
+ "IconClipboardList"
+ "IconClipboardX"
+ "IconClock"
+ "IconCloud"
+ "IconCloudDownload"
+ "IconCloudFog"
+ "IconCloudOff"
+ "IconCloudRain"
+ "IconCloudSnow"
+ "IconCloudStorm"
+ "IconCloudUpload"
+ "IconCode"
+ "IconCodeMinus"
+ "IconCodePlus"
+ "IconCoffee"
+ "IconCoin"
+ "IconColorPicker"
+ "IconColorSwatch"
+ "IconColumnInsertLeft"
+ "IconColumnInsertRight"
+ "IconColumns"
+ "IconComet"
+ "IconCommand"
+ "IconCompass"
+ "IconConfetti"
+ "IconContainer"
+ "IconContrast"
+ "IconCookie"
+ "IconCopy"
+ "IconCopyleft"
+ "IconCopyright"
+ "IconCornerDownLeft"
+ "IconCornerDownLeftDouble"
+ "IconCornerDownRight"
+ "IconCornerDownRightDouble"
+ "IconCornerLeftDown"
+ "IconCornerLeftDownDouble"
+ "IconCornerLeftUp"
+ "IconCornerLeftUpDouble"
+ "IconCornerRightDown"
+ "IconCornerRightDownDouble"
+ "IconCornerRightUp"
+ "IconCornerRightUpDouble"
+ "IconCornerUpLeft"
+ "IconCornerUpLeftDouble"
+ "IconCornerUpRight"
+ "IconCornerUpRightDouble"
+ "IconCrane"
+ "IconCreditCard"
+ "IconCreditCardOff"
+ "IconCrop"
+ "IconCrosshair"
+ "IconCrown"
+ "IconCrownOff"
+ "IconCup"
+ "IconCurlyLoop"
+ "IconCurrencyBahraini"
+ "IconCurrencyBath"
+ "IconCurrencyBitcoin"
+ "IconCurrencyCent"
+ "IconCurrencyDinar"
+ "IconCurrencyDirham"
+ "IconCurrencyDollar"
+ "IconCurrencyDollarAustralian"
+ "IconCurrencyDollarCanadian"
+ "IconCurrencyDollarSingapore"
+ "IconCurrencyEthereum"
+ "IconCurrencyEuro"
+ "IconCurrencyForint"
+ "IconCurrencyFrank"
+ "IconCurrencyKroneCzech"
+ "IconCurrencyKroneDanish"
+ "IconCurrencyKroneSwedish"
+ "IconCurrencyLeu"
+ "IconCurrencyLira"
+ "IconCurrencyLitecoin"
+ "IconCurrencyNaira"
+ "IconCurrencyPound"
+ "IconCurrencyReal"
+ "IconCurrencyRenminbi"
+ "IconCurrencyRipple"
+ "IconCurrencyRiyal"
+ "IconCurrencyRubel"
+ "IconCurrencyRupee"
+ "IconCurrencyShekel"
+ "IconCurrencyTaka"
+ "IconCurrencyTugrik"
+ "IconCurrencyWon"
+ "IconCurrencyYen"
+ "IconCurrencyZloty"
+ "IconCurrentLocation"
+ "IconCursorText"
+ "IconCut"
+ "IconDashboard"
+ "IconDatabase"
+ "IconDatabaseExport"
+ "IconDatabaseImport"
+ "IconDatabaseOff"
+ "IconDetails"
+ "IconDeviceAnalytics"
+ "IconDeviceAudioTape"
+ "IconDeviceCctv"
+ "IconDeviceComputerCamera"
+ "IconDeviceComputerCameraOff"
+ "IconDeviceDesktop"
+ "IconDeviceDesktopAnalytics"
+ "IconDeviceDesktopOff"
+ "IconDeviceFloppy"
+ "IconDeviceGamepad"
+ "IconDeviceLaptop"
+ "IconDeviceMobile"
+ "IconDeviceMobileMessage"
+ "IconDeviceMobileRotated"
+ "IconDeviceMobileVibration"
+ "IconDeviceSpeaker"
+ "IconDeviceTablet"
+ "IconDeviceTv"
+ "IconDeviceWatch"
+ "IconDevices"
+ "IconDevices2"
+ "IconDevicesPc"
+ "IconDiamond"
+ "IconDice"
+ "IconDimensions"
+ "IconDirection"
+ "IconDirectionHorizontal"
+ "IconDirections"
+ "IconDisabled"
+ "IconDisabled2"
+ "IconDisc"
+ "IconDiscount"
+ "IconDiscount2"
+ "IconDivide"
+ "IconDna"
+ "IconDogBowl"
+ "IconDots"
+ "IconDotsCircleHorizontal"
+ "IconDotsDiagonal"
+ "IconDotsDiagonal2"
+ "IconDotsVertical"
+ "IconDownload"
+ "IconDragDrop"
+ "IconDragDrop2"
+ "IconDrone"
+ "IconDroneOff"
+ "IconDroplet"
+ "IconDropletFilled"
+ "IconDropletFilled2"
+ "IconDropletHalf"
+ "IconDropletHalf2"
+ "IconDropletOff"
+ "IconEar"
+ "IconEarOff"
+ "IconEdit"
+ "IconEditCircle"
+ "IconEgg"
+ "IconEmphasis"
+ "IconEqual"
+ "IconEqualNot"
+ "IconEraser"
+ "IconExchange"
+ "IconExposure"
+ "IconExternalLink"
+ "IconEye"
+ "IconEyeCheck"
+ "IconEyeOff"
+ "IconEyeglass"
+ "IconEyeglass2"
+ "IconFaceId"
+ "IconFall"
+ "IconFeather"
+ "IconFence"
+ "IconFile"
+ "IconFileAlert"
+ "IconFileAnalytics"
+ "IconFileCertificate"
+ "IconFileCheck"
+ "IconFileCode"
+ "IconFileCode2"
+ "IconFileDiff"
+ "IconFileDislike"
+ "IconFileDownload"
+ "IconFileExport"
+ "IconFileHorizontal"
+ "IconFileImport"
+ "IconFileInfo"
+ "IconFileInvoice"
+ "IconFileLike"
+ "IconFileMinus"
+ "IconFileMusic"
+ "IconFileOff"
+ "IconFilePhone"
+ "IconFilePlus"
+ "IconFileReport"
+ "IconFileSearch"
+ "IconFileShredder"
+ "IconFileSymlink"
+ "IconFileText"
+ "IconFileUpload"
+ "IconFileX"
+ "IconFileZip"
+ "IconFiles"
+ "IconFilesOff"
+ "IconFilter"
+ "IconFilterOff"
+ "IconFingerprint"
+ "IconFiretruck"
+ "IconFish"
+ "IconFlag"
+ "IconFlag2"
+ "IconFlag3"
+ "IconFlame"
+ "IconFlare"
+ "IconFlask"
+ "IconFlipHorizontal"
+ "IconFlipVertical"
+ "IconFloatCenter"
+ "IconFloatLeft"
+ "IconFloatNone"
+ "IconFloatRight"
+ "IconFocus"
+ "IconFocus2"
+ "IconFold"
+ "IconFoldDown"
+ "IconFoldUp"
+ "IconFolder"
+ "IconFolderMinus"
+ "IconFolderOff"
+ "IconFolderPlus"
+ "IconFolderX"
+ "IconFolders"
+ "IconForbid"
+ "IconForbid2"
+ "IconForklift"
+ "IconForms"
+ "IconFrame"
+ "IconFriends"
+ "IconGasStation"
+ "IconGauge"
+ "IconGeometry"
+ "IconGhost"
+ "IconGift"
+ "IconGitBranch"
+ "IconGitCommit"
+ "IconGitCompare"
+ "IconGitFork"
+ "IconGitMerge"
+ "IconGitPullRequest"
+ "IconGlass"
+ "IconGlassFull"
+ "IconGlassOff"
+ "IconGlobe"
+ "IconGolf"
+ "IconGps"
+ "IconGrain"
+ "IconGridDots"
+ "IconGripHorizontal"
+ "IconGripVertical"
+ "IconGrowth"
+ "IconH1"
+ "IconH2"
+ "IconH3"
+ "IconH4"
+ "IconH5"
+ "IconH6"
+ "IconHandFinger"
+ "IconHandLittleFinger"
+ "IconHandMiddleFinger"
+ "IconHandOff"
+ "IconHandRingFinger"
+ "IconHandRock"
+ "IconHandStop"
+ "IconHandThreeFingers"
+ "IconHandTwoFingers"
+ "IconHanger"
+ "IconHash"
+ "IconHeading"
+ "IconHeadphones"
+ "IconHeadphonesOff"
+ "IconHeadset"
+ "IconHeart"
+ "IconHeartBroken"
+ "IconHelicopter"
+ "IconHelicopterLanding"
+ "IconHelp"
+ "IconHexagon"
+ "IconHexagonOff"
+ "IconHierarchy"
+ "IconHierarchy2"
+ "IconHistory"
+ "IconHome"
+ "IconHome2"
+ "IconIceCream"
+ "IconIceCream2"
+ "IconId"
+ "IconInbox"
+ "IconIndentDecrease"
+ "IconIndentIncrease"
+ "IconInfinity"
+ "IconInfoCircle"
+ "IconInfoSquare"
+ "IconItalic"
+ "IconJumpRope"
+ "IconKarate"
+ "IconKey"
+ "IconKeyboard"
+ "IconKeyboardHide"
+ "IconKeyboardOff"
+ "IconKeyboardShow"
+ "IconLanguage"
+ "IconLayersDifference"
+ "IconLayersIntersect"
+ "IconLayersLinked"
+ "IconLayersSubtract"
+ "IconLayersUnion"
+ "IconLayout"
+ "IconLayout2"
+ "IconLayoutAlignBottom"
+ "IconLayoutAlignCenter"
+ "IconLayoutAlignLeft"
+ "IconLayoutAlignMiddle"
+ "IconLayoutAlignRight"
+ "IconLayoutAlignTop"
+ "IconLayoutBottombar"
+ "IconLayoutCards"
+ "IconLayoutColumns"
+ "IconLayoutDistributeHorizontal"
+ "IconLayoutDistributeVertical"
+ "IconLayoutGrid"
+ "IconLayoutGridAdd"
+ "IconLayoutKanban"
+ "IconLayoutList"
+ "IconLayoutNavbar"
+ "IconLayoutRows"
+ "IconLayoutSidebar"
+ "IconLayoutSidebarRight"
+ "IconLeaf"
+ "IconLego"
+ "IconLemon"
+ "IconLetterA"
+ "IconLetterB"
+ "IconLetterC"
+ "IconLetterCase"
+ "IconLetterCaseLower"
+ "IconLetterCaseToggle"
+ "IconLetterCaseUpper"
+ "IconLetterD"
+ "IconLetterE"
+ "IconLetterF"
+ "IconLetterG"
+ "IconLetterH"
+ "IconLetterI"
+ "IconLetterJ"
+ "IconLetterK"
+ "IconLetterL"
+ "IconLetterM"
+ "IconLetterN"
+ "IconLetterO"
+ "IconLetterP"
+ "IconLetterQ"
+ "IconLetterR"
+ "IconLetterS"
+ "IconLetterSpacing"
+ "IconLetterT"
+ "IconLetterU"
+ "IconLetterV"
+ "IconLetterW"
+ "IconLetterX"
+ "IconLetterY"
+ "IconLetterZ"
+ "IconLettersCase"
+ "IconLicense"
+ "IconLifebuoy"
+ "IconLine"
+ "IconLineDashed"
+ "IconLineDotted"
+ "IconLineHeight"
+ "IconLink"
+ "IconList"
+ "IconListCheck"
+ "IconListNumbers"
+ "IconListSearch"
+ "IconLivePhoto"
+ "IconLiveView"
+ "IconLoader"
+ "IconLoaderQuarter"
+ "IconLocation"
+ "IconLock"
+ "IconLockAccess"
+ "IconLockOff"
+ "IconLockOpen"
+ "IconLogin"
+ "IconLogout"
+ "IconMacro"
+ "IconMagnet"
+ "IconMail"
+ "IconMailForward"
+ "IconMailOpened"
+ "IconMailbox"
+ "IconMan"
+ "IconManualGearbox"
+ "IconMap"
+ "IconMap2"
+ "IconMapPin"
+ "IconMapPinOff"
+ "IconMapPins"
+ "IconMarkdown"
+ "IconMarquee"
+ "IconMarquee2"
+ "IconMars"
+ "IconMask"
+ "IconMaskOff"
+ "IconMassage"
+ "IconMath"
+ "IconMathFunction"
+ "IconMathSymbols"
+ "IconMaximize"
+ "IconMeat"
+ "IconMedal"
+ "IconMedicalCross"
+ "IconMenu"
+ "IconMenu2"
+ "IconMessage"
+ "IconMessage2"
+ "IconMessageCircle"
+ "IconMessageCircle2"
+ "IconMessageCircleOff"
+ "IconMessageDots"
+ "IconMessageOff"
+ "IconMessagePlus"
+ "IconMessageReport"
+ "IconMessages"
+ "IconMessagesOff"
+ "IconMicrophone"
+ "IconMicrophone2"
+ "IconMicrophoneOff"
+ "IconMilk"
+ "IconMinimize"
+ "IconMinus"
+ "IconMinusVertical"
+ "IconMist"
+ "IconMoodBoy"
+ "IconMoodConfuzed"
+ "IconMoodCrazyHappy"
+ "IconMoodCry"
+ "IconMoodEmpty"
+ "IconMoodHappy"
+ "IconMoodKid"
+ "IconMoodNeutral"
+ "IconMoodSad"
+ "IconMoodSmile"
+ "IconMoodSuprised"
+ "IconMoodTongue"
+ "IconMoon"
+ "IconMoon2"
+ "IconMoonStars"
+ "IconMoped"
+ "IconMotorbike"
+ "IconMouse"
+ "IconMovie"
+ "IconMug"
+ "IconMushroom"
+ "IconMusic"
+ "IconNewSection"
+ "IconNews"
+ "IconNfc"
+ "IconNote"
+ "IconNotebook"
+ "IconNotes"
+ "IconNotification"
+ "IconNumber0"
+ "IconNumber1"
+ "IconNumber2"
+ "IconNumber3"
+ "IconNumber4"
+ "IconNumber5"
+ "IconNumber6"
+ "IconNumber7"
+ "IconNumber8"
+ "IconNumber9"
+ "IconOctagon"
+ "IconOctagonOff"
+ "IconOld"
+ "IconOlympics"
+ "IconOmega"
+ "IconOutlet"
+ "IconOverline"
+ "IconPackage"
+ "IconPacman"
+ "IconPageBreak"
+ "IconPaint"
+ "IconPalette"
+ "IconPanoramaHorizontal"
+ "IconPanoramaVertical"
+ "IconPaperclip"
+ "IconParachute"
+ "IconParentheses"
+ "IconParking"
+ "IconPeace"
+ "IconPencil"
+ "IconPennant"
+ "IconPepper"
+ "IconPercentage"
+ "IconPerspective"
+ "IconPhone"
+ "IconPhoneCall"
+ "IconPhoneCalling"
+ "IconPhoneCheck"
+ "IconPhoneIncoming"
+ "IconPhoneOff"
+ "IconPhoneOutgoing"
+ "IconPhonePause"
+ "IconPhonePlus"
+ "IconPhoneX"
+ "IconPhoto"
+ "IconPhotoOff"
+ "IconPhysotherapist"
+ "IconPictureInPicture"
+ "IconPictureInPictureOff"
+ "IconPictureInPictureOn"
+ "IconPill"
+ "IconPin"
+ "IconPinned"
+ "IconPinnedOff"
+ "IconPizza"
+ "IconPlane"
+ "IconPlaneArrival"
+ "IconPlaneDeparture"
+ "IconPlanet"
+ "IconPlant"
+ "IconPlant2"
+ "IconPlayCard"
+ "IconPlayerPause"
+ "IconPlayerPlay"
+ "IconPlayerRecord"
+ "IconPlayerSkipBack"
+ "IconPlayerSkipForward"
+ "IconPlayerStop"
+ "IconPlayerTrackNext"
+ "IconPlayerTrackPrev"
+ "IconPlaylist"
+ "IconPlug"
+ "IconPlus"
+ "IconPoint"
+ "IconPokeball"
+ "IconPolaroid"
+ "IconPool"
+ "IconPower"
+ "IconPray"
+ "IconPresentation"
+ "IconPresentationAnalytics"
+ "IconPrinter"
+ "IconPrompt"
+ "IconPropeller"
+ "IconPuzzle"
+ "IconPyramid"
+ "IconQrcode"
+ "IconQuestionMark"
+ "IconRadio"
+ "IconRadioactive"
+ "IconRadiusBottomLeft"
+ "IconRadiusBottomRight"
+ "IconRadiusTopLeft"
+ "IconRadiusTopRight"
+ "IconRainbow"
+ "IconReceipt"
+ "IconReceipt2"
+ "IconReceiptOff"
+ "IconReceiptRefund"
+ "IconReceiptTax"
+ "IconRecharging"
+ "IconRecordMail"
+ "IconRectangle"
+ "IconRectangleVertical"
+ "IconRecycle"
+ "IconRefresh"
+ "IconRefreshAlert"
+ "IconRegistered"
+ "IconRelationManyToMany"
+ "IconRelationOneToMany"
+ "IconRelationOneToOne"
+ "IconRepeat"
+ "IconRepeatOnce"
+ "IconReplace"
+ "IconReport"
+ "IconReportAnalytics"
+ "IconReportMedical"
+ "IconReportMoney"
+ "IconResize"
+ "IconRipple"
+ "IconRoadSign"
+ "IconRocket"
+ "IconRotate"
+ "IconRotate2"
+ "IconRotateClockwise"
+ "IconRotateClockwise2"
+ "IconRotateRectangle"
+ "IconRoute"
+ "IconRouter"
+ "IconRowInsertBottom"
+ "IconRowInsertTop"
+ "IconRss"
+ "IconRuler"
+ "IconRuler2"
+ "IconRun"
+ "IconSailboat"
+ "IconSalt"
+ "IconSatellite"
+ "IconSausage"
+ "IconScale"
+ "IconScan"
+ "IconSchool"
+ "IconScissors"
+ "IconScooter"
+ "IconScooterElectric"
+ "IconScreenShare"
+ "IconScreenShareOff"
+ "IconScubaMask"
+ "IconSearch"
+ "IconSection"
+ "IconSeeding"
+ "IconSelect"
+ "IconSelector"
+ "IconSend"
+ "IconSeparator"
+ "IconSeparatorHorizontal"
+ "IconSeparatorVertical"
+ "IconServer"
+ "IconServicemark"
+ "IconSettings"
+ "IconSettingsAutomation"
+ "IconShadow"
+ "IconShadowOff"
+ "IconShape"
+ "IconShape2"
+ "IconShape3"
+ "IconShare"
+ "IconShield"
+ "IconShieldCheck"
+ "IconShieldLock"
+ "IconShieldOff"
+ "IconShieldX"
+ "IconShip"
+ "IconShirt"
+ "IconShoppingCart"
+ "IconShoppingCartDiscount"
+ "IconShoppingCartOff"
+ "IconShoppingCartPlus"
+ "IconShoppingCartX"
+ "IconShredder"
+ "IconSignature"
+ "IconSitemap"
+ "IconSkateboard"
+ "IconSlice"
+ "IconSlideshow"
+ "IconSmartHome"
+ "IconSmoking"
+ "IconSmokingNo"
+ "IconSnowflake"
+ "IconSoccerField"
+ "IconSocial"
+ "IconSock"
+ "IconSortAscending"
+ "IconSortAscending2"
+ "IconSortAscendingLetters"
+ "IconSortAscendingNumbers"
+ "IconSortDescending"
+ "IconSortDescending2"
+ "IconSortDescendingLetters"
+ "IconSortDescendingNumbers"
+ "IconSoup"
+ "IconSpace"
+ "IconSpeakerphone"
+ "IconSpeedboat"
+ "IconSportBillard"
+ "IconSquare"
+ "IconSquare0"
+ "IconSquare1"
+ "IconSquare2"
+ "IconSquare3"
+ "IconSquare4"
+ "IconSquare5"
+ "IconSquare6"
+ "IconSquare7"
+ "IconSquare8"
+ "IconSquare9"
+ "IconSquareCheck"
+ "IconSquareDot"
+ "IconSquareForbid"
+ "IconSquareForbid2"
+ "IconSquareMinus"
+ "IconSquareOff"
+ "IconSquarePlus"
+ "IconSquareRoot"
+ "IconSquareRoot2"
+ "IconSquareRotated"
+ "IconSquareRotatedOff"
+ "IconSquareToggle"
+ "IconSquareToggleHorizontal"
+ "IconSquareX"
+ "IconSquaresDiagonal"
+ "IconSquaresFilled"
+ "IconStack"
+ "IconStack2"
+ "IconStairs"
+ "IconStairsDown"
+ "IconStairsUp"
+ "IconStar"
+ "IconStarHalf"
+ "IconStarOff"
+ "IconStars"
+ "IconSteeringWheel"
+ "IconStepInto"
+ "IconStepOut"
+ "IconStethoscope"
+ "IconSticker"
+ "IconStrikethrough"
+ "IconSubmarine"
+ "IconSubscript"
+ "IconSubtask"
+ "IconSum"
+ "IconSun"
+ "IconSunOff"
+ "IconSunrise"
+ "IconSunset"
+ "IconSuperscript"
+ "IconSwimming"
+ "IconSwitch"
+ "IconSwitch2"
+ "IconSwitch3"
+ "IconSwitchHorizontal"
+ "IconSwitchVertical"
+ "IconTable"
+ "IconTableExport"
+ "IconTableImport"
+ "IconTableOff"
+ "IconTag"
+ "IconTallymark1"
+ "IconTallymark2"
+ "IconTallymark3"
+ "IconTallymark4"
+ "IconTallymarks"
+ "IconTank"
+ "IconTarget"
+ "IconTemperature"
+ "IconTemperatureCelsius"
+ "IconTemperatureFahrenheit"
+ "IconTemperatureMinus"
+ "IconTemperaturePlus"
+ "IconTemplate"
+ "IconTent"
+ "IconTerminal"
+ "IconTerminal2"
+ "IconTestPipe"
+ "IconTextDirectionLtr"
+ "IconTextDirectionRtl"
+ "IconTextWrap"
+ "IconTextWrapDisabled"
+ "IconThumbDown"
+ "IconThumbUp"
+ "IconTicket"
+ "IconTiltShift"
+ "IconTir"
+ "IconToggleLeft"
+ "IconToggleRight"
+ "IconTool"
+ "IconTools"
+ "IconToolsKitchen"
+ "IconToolsKitchen2"
+ "IconTornado"
+ "IconTournament"
+ "IconTrack"
+ "IconTractor"
+ "IconTrademark"
+ "IconTrafficCone"
+ "IconTrafficLights"
+ "IconTrain"
+ "IconTransferIn"
+ "IconTransferOut"
+ "IconTrash"
+ "IconTrashOff"
+ "IconTree"
+ "IconTrees"
+ "IconTrendingDown"
+ "IconTrendingDown2"
+ "IconTrendingDown3"
+ "IconTrendingUp"
+ "IconTrendingUp2"
+ "IconTrendingUp3"
+ "IconTriangle"
+ "IconTriangleOff"
+ "IconTriangleSquareCircle"
+ "IconTrident"
+ "IconTrophy"
+ "IconTruck"
+ "IconTruckDelivery"
+ "IconTruckOff"
+ "IconTruckReturn"
+ "IconTypography"
+ "IconUmbrella"
+ "IconUnderline"
+ "IconUnlink"
+ "IconUpload"
+ "IconUrgent"
+ "IconUser"
+ "IconUserCheck"
+ "IconUserExclamation"
+ "IconUserMinus"
+ "IconUserOff"
+ "IconUserPlus"
+ "IconUserX"
+ "IconUsers"
+ "IconVaccine"
+ "IconVariable"
+ "IconVector"
+ "IconVectorBeizer2"
+ "IconVectorBezier"
+ "IconVectorTriangle"
+ "IconVenus"
+ "IconVersions"
+ "IconVideo"
+ "IconVideoMinus"
+ "IconVideoOff"
+ "IconVideoPlus"
+ "IconView360"
+ "IconViewfinder"
+ "IconViewportNarrow"
+ "IconViewportWide"
+ "IconVirus"
+ "IconVirusOff"
+ "IconVirusSearch"
+ "IconVocabulary"
+ "IconVolume"
+ "IconVolume2"
+ "IconVolume3"
+ "IconWalk"
+ "IconWallet"
+ "IconWand"
+ "IconWaveSawTool"
+ "IconWaveSine"
+ "IconWaveSquare"
+ "IconWifi"
+ "IconWifi0"
+ "IconWifi1"
+ "IconWifi2"
+ "IconWifiOff"
+ "IconWind"
+ "IconWindmill"
+ "IconWindow"
+ "IconWiper"
+ "IconWiperWash"
+ "IconWoman"
+ "IconWorld"
+ "IconWorldLatitude"
+ "IconWorldLongitude"
+ "IconWreckingBall"
+ "IconWriting"
+ "IconWritingSign"
+ "IconX"
+ "IconYinYang"
+ "IconZodiacAquarius"
+ "IconZodiacAries"
+ "IconZodiacCancer"
+ "IconZodiacCapricorn"
+ "IconZodiacGemini"
+ "IconZodiacLeo"
+ "IconZodiacLibra"
+ "IconZodiacPisces"
+ "IconZodiacSagittarius"
+ "IconZodiacScorpio"
+ "IconZodiacTaurus"
+ "IconZodiacVirgo"
+ "IconZoomCancel"
+ "IconZoomCheck"
+ "IconZoomIn"
+ "IconZoomMoney"]

+ 1 - 0
resources/index.html

@@ -4,6 +4,7 @@
   <meta charset="utf-8">
   <meta content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no" name="viewport">
   <link href="./css/style.css" rel="stylesheet" type="text/css">
+  <link rel="stylesheet" href="https://unpkg.com/@tabler/icons@latest/iconfont/tabler-icons.min.css">
   <link href="./img/logo.png" rel="shortcut icon" type="image/png">
   <link href="./img/logo.png" rel="shortcut icon" sizes="192x192">
   <link href="./img/logo.png" rel="apple-touch-icon">

+ 13 - 12
src/main/frontend/components/editor.cljs

@@ -204,23 +204,23 @@
   [:div#mobile-editor-toolbar.bg-base-2.fix-ios-fixed-bottom
    [:button.bottom-action
     {:on-click #(editor-handler/indent-outdent true)}
-    svg/indent-block]
+    (ui/icon "chevrons-right")]
    [:button.bottom-action
     {:on-click #(editor-handler/indent-outdent false)}
-    svg/outdent-block]
+    (ui/icon "chevrons-left")]
    [:button.bottom-action
     {:on-click (editor-handler/move-up-down true)}
-    svg/move-up-block]
+    (ui/icon "chevron-up")]
    [:button.bottom-action
     {:on-click (editor-handler/move-up-down false)}
-    svg/move-down-block]
+    (ui/icon "chevron-down")]
    [:button.bottom-action
-    {:on-click #(commands/simple-insert! parent-id "\n" {})}
-    svg/multi-line-input]
+    {:on-click #(editor-handler/cycle-todo!)}
+    (ui/icon "checkbox")]
    [:button.bottom-action
-    {:on-click #(commands/insert-before! parent-id "TODO " {})}
-    svg/checkbox]
-   [:button.font-extrabold.bottom-action.-mt-1
+    {:on-click #(commands/simple-insert! parent-id "\n" {})}
+    (ui/icon "arrow-back")]
+   [:button.bottom-action.text-sm
     {:on-click #(commands/simple-insert!
                  parent-id "[[]]"
                  {:backward-pos 2
@@ -228,7 +228,7 @@
                                   (reset! commands/*slash-caret-pos new-pos)
                                   (commands/handle-step [:editor/search-page]))})}
     "[[]]"]
-   [:button.font-extrabold.bottom-action.-mt-1
+   [:button.bottom-action.text-sm
     {:on-click #(commands/simple-insert!
                  parent-id "(())"
                  {:backward-pos 2
@@ -236,7 +236,7 @@
                                   (reset! commands/*slash-caret-pos new-pos)
                                   (commands/handle-step [:editor/search-block]))})}
     "(())"]
-   [:button.font-extrabold.bottom-action.-mt-1
+   [:button.bottom-action.text-sm
     {:on-click #(commands/simple-insert! parent-id "/" {})}
     "/"]])
 
@@ -321,7 +321,8 @@
     [:div.absolute.rounded-md.shadow-lg.absolute-modal
      {:ref *el
       :class (if x-overflow-vw? "is-overflow-vw-x" "")
-      :on-mouse-down (fn [e] (.stopPropagation e))
+      :on-mouse-down (fn [e]
+                       (.stopPropagation e))
       :style (merge
               {:top        (+ top offset-top)
                :max-height to-max-height

+ 1 - 1
src/main/frontend/components/editor.css

@@ -12,7 +12,7 @@
   transition: top 0.3s;
 
   > button {
-    padding: 5px;
+    padding: 12px;
   }
 }
 

+ 1 - 1
src/main/frontend/components/header.css

@@ -148,7 +148,7 @@
 
 #repo-name {
   vertical-align: middle;
-  display: inline-block;
+  display: inline;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;

+ 3 - 1
src/main/frontend/components/repo.cljs

@@ -187,7 +187,9 @@
         (when (seq repos)
           (ui/dropdown-with-links
            (fn [{:keys [toggle-fn]}]
-             [:a#repo-switch.fade-link.block.pr-2.whitespace-nowrap {:on-click toggle-fn}
+             [:a#repo-switch.block.pr-2.whitespace-nowrap {:on-click toggle-fn
+                                                           :class (when-not (util/mobile?)
+                                                                    "fade-link")}
               [:span
                (let [repo-name (get-repo-name current-repo)
                      repo-name (if (or (util/electron?)

+ 4 - 0
src/main/frontend/ui.cljs

@@ -709,3 +709,7 @@
              :class                 "contents"
              :options               {:theme (when (= (state/sub :ui/theme) "dark") "dark")}
              :on-tweet-load-success #(reset! *loading? false)})]]))
+
+(rum/defc icon
+  [class]
+  [:i {:class (str "ti ti-" class)}])

+ 5 - 0
yarn.lock

@@ -1496,6 +1496,11 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
+"@tabler/icons@^1.41.2":
+  version "1.41.2"
+  resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-1.41.2.tgz#effccbb261539b68609cc7dc660a058683170ee1"
+  integrity sha512-X6cQmMC24hiwg0p2BzasvU3IeCCdOk0f/9d6gNNtJM4lzG2TCloTns1bVvU5MAFkITGukxUqjPFE3Ecd6kGsfw==
+
 "@tailwindcss/custom-forms@^0.2.1":
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/@tailwindcss/custom-forms/-/custom-forms-0.2.1.tgz"