├── .commitlintrc.json ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .github ├── dependabot.yml └── workflows │ ├── build-icon-from-figma.yml │ ├── build-icon.yml │ ├── build-tokens.yml │ ├── build.yml │ ├── dependabot-auto-approve.yml │ ├── dependabot-auto-merge.yml │ ├── deploy-highlightjs-styles-preview.yml │ ├── deploy-highlightjs-styles.yml │ ├── deploy-hooks-catalog.yml │ ├── deploy-hoooks-preview.yml │ ├── deploy-theme-switch-preview.yml │ ├── deploy-theme-switch.yml │ ├── deploy-ui-catalog.yml │ ├── deploy-ui-preview.yml │ ├── figma-code-connect.yml │ ├── lint-commit-message.yml │ ├── release.yml │ ├── test.yml │ └── visual-regression-test.yml ├── .gitignore ├── .husky └── commit-msg ├── .npmrc ├── .prettierignore ├── .prettierrc.json ├── .renovaterc.json ├── .textlintignore ├── .textlintrc ├── .yarnrc ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bin ├── outputExtensionReplace.js └── outputExtensionReplace.test.js ├── docs └── images │ └── spindle-logo.png ├── lerna.json ├── package.json ├── packages ├── spindle-hooks │ ├── .bundlewatch.config.js │ ├── .firebaserc │ ├── .gitignore │ ├── .npmignore │ ├── .prettierignore │ ├── .storybook │ │ ├── main.js │ │ ├── preview-head.html │ │ └── preview.js │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── README.md │ ├── docs │ │ ├── design-doc.md │ │ └── images │ │ │ └── components.png │ ├── firebase.json │ ├── jest.config.js │ ├── package.json │ ├── setup-tests.ts │ ├── src │ │ ├── LICENSE │ │ ├── index.ts │ │ ├── internal │ │ │ └── useFlushSync │ │ │ │ ├── index.ts │ │ │ │ └── useFlushSync.ts │ │ ├── useCarousel │ │ │ ├── index.ts │ │ │ ├── useAutoSlide.ts │ │ │ ├── useCarousel.stories.mdx │ │ │ ├── useCarousel.stories.tsx │ │ │ ├── useCarousel.ts │ │ │ ├── useCarouselFocus.ts │ │ │ ├── useSliderMoveEvent.ts │ │ │ ├── useSliderTransition.ts │ │ │ └── useValueRef.ts │ │ └── useTimeDistance │ │ │ ├── formatDistance.test.ts │ │ │ ├── formatDistance.ts │ │ │ ├── index.ts │ │ │ ├── useTimeDistance.stories.mdx │ │ │ ├── useTimeDistance.test.ts │ │ │ └── useTimeDistance.ts │ ├── tsconfig.cjs.json │ ├── tsconfig.esm.json │ └── tsconfig.json ├── spindle-icons │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── dist │ │ ├── pdf │ │ │ ├── 755.pdf │ │ │ ├── abemakun.pdf │ │ │ ├── abematv.pdf │ │ │ ├── accesslink.pdf │ │ │ ├── accesspage.pdf │ │ │ ├── accesspage_fill.pdf │ │ │ ├── ad.pdf │ │ │ ├── addressbook_fill.pdf │ │ │ ├── album_add_fill.pdf │ │ │ ├── album_fill.pdf │ │ │ ├── align_center.pdf │ │ │ ├── align_left.pdf │ │ │ ├── align_right.pdf │ │ │ ├── all_fill.pdf │ │ │ ├── amebacoin.pdf │ │ │ ├── amebapick.pdf │ │ │ ├── amegold.pdf │ │ │ ├── amember.pdf │ │ │ ├── arrow_down.pdf │ │ │ ├── arrow_down_bold.pdf │ │ │ ├── arrow_left.pdf │ │ │ ├── arrow_left_bold.pdf │ │ │ ├── arrow_leftright.pdf │ │ │ ├── arrow_right.pdf │ │ │ ├── arrow_right_bold.pdf │ │ │ ├── arrow_right_circle.pdf │ │ │ ├── arrow_right_circle_fill.pdf │ │ │ ├── arrow_subdirectory.pdf │ │ │ ├── arrow_subdirectory_bold.pdf │ │ │ ├── arrow_up.pdf │ │ │ ├── arrow_up_bold.pdf │ │ │ ├── arrow_updown.pdf │ │ │ ├── arrowpaging_down.pdf │ │ │ ├── arrowpaging_down_circle.pdf │ │ │ ├── arrowpaging_left.pdf │ │ │ ├── arrowpaging_left_circle.pdf │ │ │ ├── arrowpaging_right.pdf │ │ │ ├── arrowpaging_right_circle.pdf │ │ │ ├── arrowpaging_up.pdf │ │ │ ├── arrowpaging_up_circle.pdf │ │ │ ├── article.pdf │ │ │ ├── article_slash.pdf │ │ │ ├── articledesign.pdf │ │ │ ├── astrogy.pdf │ │ │ ├── astrogy_fill.pdf │ │ │ ├── baby.pdf │ │ │ ├── bbs.pdf │ │ │ ├── beginner.pdf │ │ │ ├── beginnermark.pdf │ │ │ ├── bell.pdf │ │ │ ├── bell_fill.pdf │ │ │ ├── bell_fill_slash.pdf │ │ │ ├── bell_slash.pdf │ │ │ ├── blog.pdf │ │ │ ├── bloggersshop.pdf │ │ │ ├── bold.pdf │ │ │ ├── book.pdf │ │ │ ├── book_fill.pdf │ │ │ ├── bookmark.pdf │ │ │ ├── bookmark_fill.pdf │ │ │ ├── bookshelf.pdf │ │ │ ├── bookshelf_fill.pdf │ │ │ ├── border.pdf │ │ │ ├── bottomnav_followfeed_active.pdf │ │ │ ├── bottomnav_followfeed_inactive.pdf │ │ │ ├── bottomnav_home_active.pdf │ │ │ ├── bottomnav_home_inactive.pdf │ │ │ ├── bottomnav_mypage_active.pdf │ │ │ ├── bottomnav_search_active.pdf │ │ │ ├── bottomnav_search_inactive.pdf │ │ │ ├── bottomnvav_mypage_inactive.pdf │ │ │ ├── bullets.pdf │ │ │ ├── calendar.pdf │ │ │ ├── calendardaily.pdf │ │ │ ├── camera_fill.pdf │ │ │ ├── cards.pdf │ │ │ ├── cart.pdf │ │ │ ├── cart_fill.pdf │ │ │ ├── caution_fill.pdf │ │ │ ├── check.pdf │ │ │ ├── check_bold.pdf │ │ │ ├── check_circle.pdf │ │ │ ├── check_circle_fill.pdf │ │ │ ├── check_rectangle.pdf │ │ │ ├── checklist.pdf │ │ │ ├── chevron_down.pdf │ │ │ ├── chevron_down_bold.pdf │ │ │ ├── chevron_left.pdf │ │ │ ├── chevron_left_bold.pdf │ │ │ ├── chevron_right.pdf │ │ │ ├── chevron_right_bold.pdf │ │ │ ├── chevron_up.pdf │ │ │ ├── chevron_up_bold.pdf │ │ │ ├── chevron_up_two_bold.pdf │ │ │ ├── circle.pdf │ │ │ ├── circle_bold.pdf │ │ │ ├── circle_fill.pdf │ │ │ ├── circle_slash.pdf │ │ │ ├── clock.pdf │ │ │ ├── clock_fill.pdf │ │ │ ├── coin.pdf │ │ │ ├── comment.pdf │ │ │ ├── comment_ban.pdf │ │ │ ├── comment_fill.pdf │ │ │ ├── comment_pen.pdf │ │ │ ├── comment_two_fill.pdf │ │ │ ├── comment_two_slash_fill.pdf │ │ │ ├── community.pdf │ │ │ ├── compass.pdf │ │ │ ├── coupon.pdf │ │ │ ├── creditcard.pdf │ │ │ ├── crop.pdf │ │ │ ├── crop_din.pdf │ │ │ ├── crop_landscape.pdf │ │ │ ├── cross.pdf │ │ │ ├── cross_bold.pdf │ │ │ ├── cross_circle.pdf │ │ │ ├── cross_circle_fill.pdf │ │ │ ├── cross_rectangle.pdf │ │ │ ├── cutlery.pdf │ │ │ ├── diamond_two.pdf │ │ │ ├── dice.pdf │ │ │ ├── dot.pdf │ │ │ ├── dotmoney.pdf │ │ │ ├── download.pdf │ │ │ ├── drag_indicator.pdf │ │ │ ├── embed.pdf │ │ │ ├── emotion_fill.pdf │ │ │ ├── entry_lost.pdf │ │ │ ├── eraser.pdf │ │ │ ├── eraser_fill.pdf │ │ │ ├── exclamationmark.pdf │ │ │ ├── exclamationmark_balloon.pdf │ │ │ ├── exclamationmark_balloon_fill.pdf │ │ │ ├── exclamationmark_bold.pdf │ │ │ ├── exclamationmark_circle.pdf │ │ │ ├── exclamationmark_circle_fill.pdf │ │ │ ├── expand.pdf │ │ │ ├── expand_exit.pdf │ │ │ ├── fab_pencil_add.pdf │ │ │ ├── face_unhappy.pdf │ │ │ ├── facebook.pdf │ │ │ ├── file.pdf │ │ │ ├── file_add.pdf │ │ │ ├── file_add_fill.pdf │ │ │ ├── file_circle.pdf │ │ │ ├── file_circle_fill.pdf │ │ │ ├── file_fill.pdf │ │ │ ├── filter.pdf │ │ │ ├── filter_check.pdf │ │ │ ├── fit.pdf │ │ │ ├── flag_fill.pdf │ │ │ ├── flag_ranking.pdf │ │ │ ├── flag_ranking_trim.pdf │ │ │ ├── flash.pdf │ │ │ ├── flash_auto.pdf │ │ │ ├── flash_off.pdf │ │ │ ├── flowervase.pdf │ │ │ ├── folder.pdf │ │ │ ├── folder_fill.pdf │ │ │ ├── folder_two.pdf │ │ │ ├── folder_two_fill.pdf │ │ │ ├── font.pdf │ │ │ ├── fontstyle.pdf │ │ │ ├── free_circle.pdf │ │ │ ├── free_circle_fill.pdf │ │ │ ├── game.pdf │ │ │ ├── game_fill.pdf │ │ │ ├── game_kantan.pdf │ │ │ ├── gear.pdf │ │ │ ├── gear_fill.pdf │ │ │ ├── genre.pdf │ │ │ ├── genre_add.pdf │ │ │ ├── genre_done.pdf │ │ │ ├── graph_bar.pdf │ │ │ ├── gruppo.pdf │ │ │ ├── hand_wave_fill.pdf │ │ │ ├── hashtag.pdf │ │ │ ├── hashtag_bold.pdf │ │ │ ├── hatenabookmark.pdf │ │ │ ├── heart.pdf │ │ │ ├── heart_fill.pdf │ │ │ ├── history.pdf │ │ │ ├── home_fill.pdf │ │ │ ├── hot.pdf │ │ │ ├── htmltag.pdf │ │ │ ├── image_add_fill.pdf │ │ │ ├── image_ban_fill.pdf │ │ │ ├── image_fill.pdf │ │ │ ├── image_fill_slash.pdf │ │ │ ├── image_question_fill.pdf │ │ │ ├── information.pdf │ │ │ ├── instagram.pdf │ │ │ ├── italic.pdf │ │ │ ├── kaomoji.pdf │ │ │ ├── keyboard.pdf │ │ │ ├── keyboard_down_fill.pdf │ │ │ ├── keyboard_fill.pdf │ │ │ ├── koeblog.pdf │ │ │ ├── line_circle.pdf │ │ │ ├── line_square.pdf │ │ │ ├── link.pdf │ │ │ ├── list_bookmark_fill.pdf │ │ │ ├── list_bulleted.pdf │ │ │ ├── list_numbered.pdf │ │ │ ├── loading.pdf │ │ │ ├── lock_fill.pdf │ │ │ ├── lock_open_fill.pdf │ │ │ ├── magicwand.pdf │ │ │ ├── mail.pdf │ │ │ ├── mail_check.pdf │ │ │ ├── mail_circle.pdf │ │ │ ├── mail_circle_fill.pdf │ │ │ ├── mail_fill.pdf │ │ │ ├── megaphone.pdf │ │ │ ├── menu_hamburger.pdf │ │ │ ├── menu_hamburger_bold.pdf │ │ │ ├── menu_hamburger_fourline.pdf │ │ │ ├── menu_horizontal.pdf │ │ │ ├── menu_vertical.pdf │ │ │ ├── messageboard.pdf │ │ │ ├── microphone.pdf │ │ │ ├── microphone_fill.pdf │ │ │ ├── minus.pdf │ │ │ ├── minus_bold.pdf │ │ │ ├── moon.pdf │ │ │ ├── moon_fill.pdf │ │ │ ├── movie_camera_fill.pdf │ │ │ ├── movie_play.pdf │ │ │ ├── movie_play_fill.pdf │ │ │ ├── movie_stop.pdf │ │ │ ├── music_fill.pdf │ │ │ ├── new.pdf │ │ │ ├── newbook.pdf │ │ │ ├── newbook_fill.pdf │ │ │ ├── news.pdf │ │ │ ├── nice.pdf │ │ │ ├── nice_done.pdf │ │ │ ├── nodate.pdf │ │ │ ├── now.pdf │ │ │ ├── officialstar.pdf │ │ │ ├── officialstar_fill.pdf │ │ │ ├── onedari_fill.pdf │ │ │ ├── open_cl.pdf │ │ │ ├── openblank.pdf │ │ │ ├── openblank_fill.pdf │ │ │ ├── ownd.pdf │ │ │ ├── paidmember.pdf │ │ │ ├── paidplan.pdf │ │ │ ├── palette_fill.pdf │ │ │ ├── paperplane.pdf │ │ │ ├── paperplane_fill.pdf │ │ │ ├── pause.pdf │ │ │ ├── pause_bold.pdf │ │ │ ├── pawprint.pdf │ │ │ ├── pencil.pdf │ │ │ ├── pencil_add.pdf │ │ │ ├── pencil_bold.pdf │ │ │ ├── person.pdf │ │ │ ├── person_ban.pdf │ │ │ ├── person_fill.pdf │ │ │ ├── person_three_fill.pdf │ │ │ ├── person_two_add_fill.pdf │ │ │ ├── person_two_delete_fill.pdf │ │ │ ├── person_two_done_fill.pdf │ │ │ ├── person_two_fill.pdf │ │ │ ├── peta.pdf │ │ │ ├── pigg.pdf │ │ │ ├── pin_fill.pdf │ │ │ ├── play_circle.pdf │ │ │ ├── play_fill.pdf │ │ │ ├── plus.pdf │ │ │ ├── plus_bold.pdf │ │ │ ├── plus_circle.pdf │ │ │ ├── plus_circle_fill.pdf │ │ │ ├── plus_minus.pdf │ │ │ ├── premium_fill.pdf │ │ │ ├── present.pdf │ │ │ ├── profilecard.pdf │ │ │ ├── qr.pdf │ │ │ ├── question.pdf │ │ │ ├── questionmark_circle.pdf │ │ │ ├── questionmark_circle_fill.pdf │ │ │ ├── ranking_crown.pdf │ │ │ ├── ranking_crown_fill.pdf │ │ │ ├── ranking_platform_fill.pdf │ │ │ ├── reblog.pdf │ │ │ ├── reblog_slash.pdf │ │ │ ├── redo.pdf │ │ │ ├── redo_bold.pdf │ │ │ ├── redo_bold_deprecated.pdf │ │ │ ├── redo_deprecated.pdf │ │ │ ├── refresh.pdf │ │ │ ├── reply_circle_fill.pdf │ │ │ ├── reply_fill.pdf │ │ │ ├── requ.pdf │ │ │ ├── sad.pdf │ │ │ ├── saveblog.pdf │ │ │ ├── screen_full.pdf │ │ │ ├── screen_inline.pdf │ │ │ ├── search.pdf │ │ │ ├── service.pdf │ │ │ ├── share.pdf │ │ │ ├── shine_fill.pdf │ │ │ ├── shine_two.pdf │ │ │ ├── shirt.pdf │ │ │ ├── sideface_close.pdf │ │ │ ├── sideface_open.pdf │ │ │ ├── smartphone.pdf │ │ │ ├── smartphone_fill.pdf │ │ │ ├── sort.pdf │ │ │ ├── sort_feed.pdf │ │ │ ├── sort_tile.pdf │ │ │ ├── speaker_off_fill.pdf │ │ │ ├── speaker_on_fill.pdf │ │ │ ├── sprout.pdf │ │ │ ├── stampside.pdf │ │ │ ├── star.pdf │ │ │ ├── star_circle_fill.pdf │ │ │ ├── star_face_fill.pdf │ │ │ ├── star_fill.pdf │ │ │ ├── star_half.pdf │ │ │ ├── stop_fill.pdf │ │ │ ├── strikethrough.pdf │ │ │ ├── sun.pdf │ │ │ ├── sun_fill.pdf │ │ │ ├── switching.pdf │ │ │ ├── switching_camera.pdf │ │ │ ├── tag_fill.pdf │ │ │ ├── tag_official_fill.pdf │ │ │ ├── thumbsup.pdf │ │ │ ├── thumbsup_fill.pdf │ │ │ ├── title.pdf │ │ │ ├── topblogger_medal.pdf │ │ │ ├── topblogger_ribbon.pdf │ │ │ ├── transcript_off.pdf │ │ │ ├── transcript_on.pdf │ │ │ ├── transmission.pdf │ │ │ ├── trashcan.pdf │ │ │ ├── trend.pdf │ │ │ ├── trend_fill.pdf │ │ │ ├── triangle_down.pdf │ │ │ ├── triangle_left.pdf │ │ │ ├── triangle_right.pdf │ │ │ ├── triangle_up.pdf │ │ │ ├── trianglearrow_down.pdf │ │ │ ├── trianglearrow_downright.pdf │ │ │ ├── trianglearrow_right.pdf │ │ │ ├── trianglearrow_up.pdf │ │ │ ├── trianglearrow_upright.pdf │ │ │ ├── triangleend_left.pdf │ │ │ ├── triangleend_left_bold.pdf │ │ │ ├── triangleend_right.pdf │ │ │ ├── triangleend_right_bold.pdf │ │ │ ├── trophy_fill.pdf │ │ │ ├── tv_fill.pdf │ │ │ ├── twitter.pdf │ │ │ ├── underline.pdf │ │ │ ├── undo.pdf │ │ │ ├── undo_bold.pdf │ │ │ ├── undo_bold_deprecated.pdf │ │ │ ├── undo_deprecated.pdf │ │ │ ├── wallet.pdf │ │ │ ├── webview.pdf │ │ │ ├── x.pdf │ │ │ └── youtube.pdf │ │ ├── svg-unoptimized │ │ │ ├── 755.svg │ │ │ ├── abemakun.svg │ │ │ ├── abematv.svg │ │ │ ├── accesslink.svg │ │ │ ├── accesspage.svg │ │ │ ├── accesspage_fill.svg │ │ │ ├── ad.svg │ │ │ ├── addressbook_fill.svg │ │ │ ├── album_add_fill.svg │ │ │ ├── album_fill.svg │ │ │ ├── align_center.svg │ │ │ ├── align_left.svg │ │ │ ├── align_right.svg │ │ │ ├── all_fill.svg │ │ │ ├── amebacoin.svg │ │ │ ├── amebapick.svg │ │ │ ├── amegold.svg │ │ │ ├── amember.svg │ │ │ ├── arrow_down.svg │ │ │ ├── arrow_down_bold.svg │ │ │ ├── arrow_left.svg │ │ │ ├── arrow_left_bold.svg │ │ │ ├── arrow_leftright.svg │ │ │ ├── arrow_right.svg │ │ │ ├── arrow_right_bold.svg │ │ │ ├── arrow_right_circle.svg │ │ │ ├── arrow_right_circle_fill.svg │ │ │ ├── arrow_subdirectory.svg │ │ │ ├── arrow_subdirectory_bold.svg │ │ │ ├── arrow_up.svg │ │ │ ├── arrow_up_bold.svg │ │ │ ├── arrow_updown.svg │ │ │ ├── arrowpaging_down.svg │ │ │ ├── arrowpaging_down_circle.svg │ │ │ ├── arrowpaging_left.svg │ │ │ ├── arrowpaging_left_circle.svg │ │ │ ├── arrowpaging_right.svg │ │ │ ├── arrowpaging_right_circle.svg │ │ │ ├── arrowpaging_up.svg │ │ │ ├── arrowpaging_up_circle.svg │ │ │ ├── article.svg │ │ │ ├── article_slash.svg │ │ │ ├── articledesign.svg │ │ │ ├── astrogy.svg │ │ │ ├── astrogy_fill.svg │ │ │ ├── baby.svg │ │ │ ├── bbs.svg │ │ │ ├── beginner.svg │ │ │ ├── beginnermark.svg │ │ │ ├── bell.svg │ │ │ ├── bell_fill.svg │ │ │ ├── bell_fill_slash.svg │ │ │ ├── bell_slash.svg │ │ │ ├── blog.svg │ │ │ ├── bloggersshop.svg │ │ │ ├── bold.svg │ │ │ ├── book.svg │ │ │ ├── book_fill.svg │ │ │ ├── bookmark.svg │ │ │ ├── bookmark_fill.svg │ │ │ ├── bookshelf.svg │ │ │ ├── bookshelf_fill.svg │ │ │ ├── border.svg │ │ │ ├── bottomnav_followfeed_active.svg │ │ │ ├── bottomnav_followfeed_inactive.svg │ │ │ ├── bottomnav_home_active.svg │ │ │ ├── bottomnav_home_inactive.svg │ │ │ ├── bottomnav_mypage_active.svg │ │ │ ├── bottomnav_search_active.svg │ │ │ ├── bottomnav_search_inactive.svg │ │ │ ├── bottomnvav_mypage_inactive.svg │ │ │ ├── bullets.svg │ │ │ ├── calendar.svg │ │ │ ├── calendardaily.svg │ │ │ ├── camera_fill.svg │ │ │ ├── cards.svg │ │ │ ├── cart.svg │ │ │ ├── cart_fill.svg │ │ │ ├── caution_fill.svg │ │ │ ├── check.svg │ │ │ ├── check_bold.svg │ │ │ ├── check_circle.svg │ │ │ ├── check_circle_fill.svg │ │ │ ├── check_rectangle.svg │ │ │ ├── checklist.svg │ │ │ ├── chevron_down.svg │ │ │ ├── chevron_down_bold.svg │ │ │ ├── chevron_left.svg │ │ │ ├── chevron_left_bold.svg │ │ │ ├── chevron_right.svg │ │ │ ├── chevron_right_bold.svg │ │ │ ├── chevron_up.svg │ │ │ ├── chevron_up_bold.svg │ │ │ ├── chevron_up_two_bold.svg │ │ │ ├── circle.svg │ │ │ ├── circle_bold.svg │ │ │ ├── circle_fill.svg │ │ │ ├── circle_slash.svg │ │ │ ├── clock.svg │ │ │ ├── clock_fill.svg │ │ │ ├── coin.svg │ │ │ ├── comment.svg │ │ │ ├── comment_ban.svg │ │ │ ├── comment_fill.svg │ │ │ ├── comment_pen.svg │ │ │ ├── comment_two_fill.svg │ │ │ ├── comment_two_slash_fill.svg │ │ │ ├── community.svg │ │ │ ├── compass.svg │ │ │ ├── coupon.svg │ │ │ ├── creditcard.svg │ │ │ ├── crop.svg │ │ │ ├── crop_din.svg │ │ │ ├── crop_landscape.svg │ │ │ ├── cross.svg │ │ │ ├── cross_bold.svg │ │ │ ├── cross_circle.svg │ │ │ ├── cross_circle_fill.svg │ │ │ ├── cross_rectangle.svg │ │ │ ├── cutlery.svg │ │ │ ├── diamond_two.svg │ │ │ ├── dice.svg │ │ │ ├── dot.svg │ │ │ ├── dotmoney.svg │ │ │ ├── download.svg │ │ │ ├── drag_indicator.svg │ │ │ ├── embed.svg │ │ │ ├── emotion_fill.svg │ │ │ ├── entry_lost.svg │ │ │ ├── eraser.svg │ │ │ ├── eraser_fill.svg │ │ │ ├── exclamationmark.svg │ │ │ ├── exclamationmark_balloon.svg │ │ │ ├── exclamationmark_balloon_fill.svg │ │ │ ├── exclamationmark_bold.svg │ │ │ ├── exclamationmark_circle.svg │ │ │ ├── exclamationmark_circle_fill.svg │ │ │ ├── expand.svg │ │ │ ├── expand_exit.svg │ │ │ ├── fab_pencil_add.svg │ │ │ ├── face_unhappy.svg │ │ │ ├── facebook.svg │ │ │ ├── file.svg │ │ │ ├── file_add.svg │ │ │ ├── file_add_fill.svg │ │ │ ├── file_circle.svg │ │ │ ├── file_circle_fill.svg │ │ │ ├── file_fill.svg │ │ │ ├── filter.svg │ │ │ ├── filter_check.svg │ │ │ ├── fit.svg │ │ │ ├── flag_fill.svg │ │ │ ├── flag_ranking.svg │ │ │ ├── flag_ranking_trim.svg │ │ │ ├── flash.svg │ │ │ ├── flash_auto.svg │ │ │ ├── flash_off.svg │ │ │ ├── flowervase.svg │ │ │ ├── folder.svg │ │ │ ├── folder_fill.svg │ │ │ ├── folder_two.svg │ │ │ ├── folder_two_fill.svg │ │ │ ├── font.svg │ │ │ ├── fontstyle.svg │ │ │ ├── free_circle.svg │ │ │ ├── free_circle_fill.svg │ │ │ ├── game.svg │ │ │ ├── game_fill.svg │ │ │ ├── game_kantan.svg │ │ │ ├── gear.svg │ │ │ ├── gear_fill.svg │ │ │ ├── genre.svg │ │ │ ├── genre_add.svg │ │ │ ├── genre_done.svg │ │ │ ├── graph_bar.svg │ │ │ ├── gruppo.svg │ │ │ ├── hand_wave_fill.svg │ │ │ ├── hashtag.svg │ │ │ ├── hashtag_bold.svg │ │ │ ├── hatenabookmark.svg │ │ │ ├── heart.svg │ │ │ ├── heart_fill.svg │ │ │ ├── history.svg │ │ │ ├── home_fill.svg │ │ │ ├── hot.svg │ │ │ ├── htmltag.svg │ │ │ ├── image_add_fill.svg │ │ │ ├── image_ban_fill.svg │ │ │ ├── image_fill.svg │ │ │ ├── image_fill_slash.svg │ │ │ ├── image_question_fill.svg │ │ │ ├── information.svg │ │ │ ├── instagram.svg │ │ │ ├── italic.svg │ │ │ ├── kaomoji.svg │ │ │ ├── keyboard.svg │ │ │ ├── keyboard_down_fill.svg │ │ │ ├── keyboard_fill.svg │ │ │ ├── koeblog.svg │ │ │ ├── line_circle.svg │ │ │ ├── line_square.svg │ │ │ ├── link.svg │ │ │ ├── list_bookmark_fill.svg │ │ │ ├── list_bulleted.svg │ │ │ ├── list_numbered.svg │ │ │ ├── loading.svg │ │ │ ├── lock_fill.svg │ │ │ ├── lock_open_fill.svg │ │ │ ├── magicwand.svg │ │ │ ├── mail.svg │ │ │ ├── mail_check.svg │ │ │ ├── mail_circle.svg │ │ │ ├── mail_circle_fill.svg │ │ │ ├── mail_fill.svg │ │ │ ├── megaphone.svg │ │ │ ├── menu_hamburger.svg │ │ │ ├── menu_hamburger_bold.svg │ │ │ ├── menu_hamburger_fourline.svg │ │ │ ├── menu_horizontal.svg │ │ │ ├── menu_vertical.svg │ │ │ ├── messageboard.svg │ │ │ ├── microphone.svg │ │ │ ├── microphone_fill.svg │ │ │ ├── minus.svg │ │ │ ├── minus_bold.svg │ │ │ ├── moon.svg │ │ │ ├── moon_fill.svg │ │ │ ├── movie_camera_fill.svg │ │ │ ├── movie_play.svg │ │ │ ├── movie_play_fill.svg │ │ │ ├── movie_stop.svg │ │ │ ├── music_fill.svg │ │ │ ├── new.svg │ │ │ ├── newbook.svg │ │ │ ├── newbook_fill.svg │ │ │ ├── news.svg │ │ │ ├── nice.svg │ │ │ ├── nice_done.svg │ │ │ ├── nodate.svg │ │ │ ├── now.svg │ │ │ ├── officialstar.svg │ │ │ ├── officialstar_fill.svg │ │ │ ├── onedari_fill.svg │ │ │ ├── open_cl.svg │ │ │ ├── openblank.svg │ │ │ ├── openblank_fill.svg │ │ │ ├── ownd.svg │ │ │ ├── paidmember.svg │ │ │ ├── paidplan.svg │ │ │ ├── palette_fill.svg │ │ │ ├── paperplane.svg │ │ │ ├── paperplane_fill.svg │ │ │ ├── pause.svg │ │ │ ├── pause_bold.svg │ │ │ ├── pawprint.svg │ │ │ ├── pencil.svg │ │ │ ├── pencil_add.svg │ │ │ ├── pencil_bold.svg │ │ │ ├── person.svg │ │ │ ├── person_ban.svg │ │ │ ├── person_fill.svg │ │ │ ├── person_three_fill.svg │ │ │ ├── person_two_add_fill.svg │ │ │ ├── person_two_delete_fill.svg │ │ │ ├── person_two_done_fill.svg │ │ │ ├── person_two_fill.svg │ │ │ ├── peta.svg │ │ │ ├── pigg.svg │ │ │ ├── pin_fill.svg │ │ │ ├── play_circle.svg │ │ │ ├── play_fill.svg │ │ │ ├── plus.svg │ │ │ ├── plus_bold.svg │ │ │ ├── plus_circle.svg │ │ │ ├── plus_circle_fill.svg │ │ │ ├── plus_minus.svg │ │ │ ├── premium_fill.svg │ │ │ ├── present.svg │ │ │ ├── profilecard.svg │ │ │ ├── qr.svg │ │ │ ├── question.svg │ │ │ ├── questionmark_circle.svg │ │ │ ├── questionmark_circle_fill.svg │ │ │ ├── ranking_crown.svg │ │ │ ├── ranking_crown_fill.svg │ │ │ ├── ranking_platform_fill.svg │ │ │ ├── reblog.svg │ │ │ ├── reblog_slash.svg │ │ │ ├── redo.svg │ │ │ ├── redo_bold.svg │ │ │ ├── redo_bold_deprecated.svg │ │ │ ├── redo_deprecated.svg │ │ │ ├── refresh.svg │ │ │ ├── reply_circle_fill.svg │ │ │ ├── reply_fill.svg │ │ │ ├── requ.svg │ │ │ ├── sad.svg │ │ │ ├── saveblog.svg │ │ │ ├── screen_full.svg │ │ │ ├── screen_inline.svg │ │ │ ├── search.svg │ │ │ ├── service.svg │ │ │ ├── share.svg │ │ │ ├── shine_fill.svg │ │ │ ├── shine_two.svg │ │ │ ├── shirt.svg │ │ │ ├── sideface_close.svg │ │ │ ├── sideface_open.svg │ │ │ ├── smartphone.svg │ │ │ ├── smartphone_fill.svg │ │ │ ├── sort.svg │ │ │ ├── sort_feed.svg │ │ │ ├── sort_tile.svg │ │ │ ├── speaker_off_fill.svg │ │ │ ├── speaker_on_fill.svg │ │ │ ├── sprout.svg │ │ │ ├── stampside.svg │ │ │ ├── star.svg │ │ │ ├── star_circle_fill.svg │ │ │ ├── star_face_fill.svg │ │ │ ├── star_fill.svg │ │ │ ├── star_half.svg │ │ │ ├── stop_fill.svg │ │ │ ├── strikethrough.svg │ │ │ ├── sun.svg │ │ │ ├── sun_fill.svg │ │ │ ├── switching.svg │ │ │ ├── switching_camera.svg │ │ │ ├── tag_fill.svg │ │ │ ├── tag_official_fill.svg │ │ │ ├── thumbsup.svg │ │ │ ├── thumbsup_fill.svg │ │ │ ├── title.svg │ │ │ ├── topblogger_medal.svg │ │ │ ├── topblogger_ribbon.svg │ │ │ ├── transcript_off.svg │ │ │ ├── transcript_on.svg │ │ │ ├── transmission.svg │ │ │ ├── trashcan.svg │ │ │ ├── trend.svg │ │ │ ├── trend_fill.svg │ │ │ ├── triangle_down.svg │ │ │ ├── triangle_left.svg │ │ │ ├── triangle_right.svg │ │ │ ├── triangle_up.svg │ │ │ ├── trianglearrow_down.svg │ │ │ ├── trianglearrow_downright.svg │ │ │ ├── trianglearrow_right.svg │ │ │ ├── trianglearrow_up.svg │ │ │ ├── trianglearrow_upright.svg │ │ │ ├── triangleend_left.svg │ │ │ ├── triangleend_left_bold.svg │ │ │ ├── triangleend_right.svg │ │ │ ├── triangleend_right_bold.svg │ │ │ ├── trophy_fill.svg │ │ │ ├── tv_fill.svg │ │ │ ├── twitter.svg │ │ │ ├── underline.svg │ │ │ ├── undo.svg │ │ │ ├── undo_bold.svg │ │ │ ├── undo_bold_deprecated.svg │ │ │ ├── undo_deprecated.svg │ │ │ ├── wallet.svg │ │ │ ├── webview.svg │ │ │ ├── x.svg │ │ │ └── youtube.svg │ │ └── svg │ │ │ ├── 755.svg │ │ │ ├── abemakun.svg │ │ │ ├── abematv.svg │ │ │ ├── accesslink.svg │ │ │ ├── accesspage.svg │ │ │ ├── accesspage_fill.svg │ │ │ ├── ad.svg │ │ │ ├── addressbook_fill.svg │ │ │ ├── album_add_fill.svg │ │ │ ├── album_fill.svg │ │ │ ├── align_center.svg │ │ │ ├── align_left.svg │ │ │ ├── align_right.svg │ │ │ ├── all_fill.svg │ │ │ ├── amebacoin.svg │ │ │ ├── amebapick.svg │ │ │ ├── amegold.svg │ │ │ ├── amember.svg │ │ │ ├── arrow_down.svg │ │ │ ├── arrow_down_bold.svg │ │ │ ├── arrow_left.svg │ │ │ ├── arrow_left_bold.svg │ │ │ ├── arrow_leftright.svg │ │ │ ├── arrow_right.svg │ │ │ ├── arrow_right_bold.svg │ │ │ ├── arrow_right_circle.svg │ │ │ ├── arrow_right_circle_fill.svg │ │ │ ├── arrow_subdirectory.svg │ │ │ ├── arrow_subdirectory_bold.svg │ │ │ ├── arrow_up.svg │ │ │ ├── arrow_up_bold.svg │ │ │ ├── arrow_updown.svg │ │ │ ├── arrowpaging_down.svg │ │ │ ├── arrowpaging_down_circle.svg │ │ │ ├── arrowpaging_left.svg │ │ │ ├── arrowpaging_left_circle.svg │ │ │ ├── arrowpaging_right.svg │ │ │ ├── arrowpaging_right_circle.svg │ │ │ ├── arrowpaging_up.svg │ │ │ ├── arrowpaging_up_circle.svg │ │ │ ├── article.svg │ │ │ ├── article_slash.svg │ │ │ ├── articledesign.svg │ │ │ ├── astrogy.svg │ │ │ ├── astrogy_fill.svg │ │ │ ├── baby.svg │ │ │ ├── bbs.svg │ │ │ ├── beginner.svg │ │ │ ├── beginnermark.svg │ │ │ ├── bell.svg │ │ │ ├── bell_fill.svg │ │ │ ├── bell_fill_slash.svg │ │ │ ├── bell_slash.svg │ │ │ ├── blog.svg │ │ │ ├── bloggersshop.svg │ │ │ ├── bold.svg │ │ │ ├── book.svg │ │ │ ├── book_fill.svg │ │ │ ├── bookmark.svg │ │ │ ├── bookmark_fill.svg │ │ │ ├── bookshelf.svg │ │ │ ├── bookshelf_fill.svg │ │ │ ├── border.svg │ │ │ ├── bottomnav_followfeed_active.svg │ │ │ ├── bottomnav_followfeed_inactive.svg │ │ │ ├── bottomnav_home_active.svg │ │ │ ├── bottomnav_home_inactive.svg │ │ │ ├── bottomnav_mypage_active.svg │ │ │ ├── bottomnav_search_active.svg │ │ │ ├── bottomnav_search_inactive.svg │ │ │ ├── bottomnvav_mypage_inactive.svg │ │ │ ├── bullets.svg │ │ │ ├── calendar.svg │ │ │ ├── calendardaily.svg │ │ │ ├── camera_fill.svg │ │ │ ├── cards.svg │ │ │ ├── cart.svg │ │ │ ├── cart_fill.svg │ │ │ ├── caution_fill.svg │ │ │ ├── check.svg │ │ │ ├── check_bold.svg │ │ │ ├── check_circle.svg │ │ │ ├── check_circle_fill.svg │ │ │ ├── check_rectangle.svg │ │ │ ├── checklist.svg │ │ │ ├── chevron_down.svg │ │ │ ├── chevron_down_bold.svg │ │ │ ├── chevron_left.svg │ │ │ ├── chevron_left_bold.svg │ │ │ ├── chevron_right.svg │ │ │ ├── chevron_right_bold.svg │ │ │ ├── chevron_up.svg │ │ │ ├── chevron_up_bold.svg │ │ │ ├── chevron_up_two_bold.svg │ │ │ ├── circle.svg │ │ │ ├── circle_bold.svg │ │ │ ├── circle_fill.svg │ │ │ ├── circle_slash.svg │ │ │ ├── clock.svg │ │ │ ├── clock_fill.svg │ │ │ ├── coin.svg │ │ │ ├── comment.svg │ │ │ ├── comment_ban.svg │ │ │ ├── comment_fill.svg │ │ │ ├── comment_pen.svg │ │ │ ├── comment_two_fill.svg │ │ │ ├── comment_two_slash_fill.svg │ │ │ ├── community.svg │ │ │ ├── compass.svg │ │ │ ├── coupon.svg │ │ │ ├── creditcard.svg │ │ │ ├── crop.svg │ │ │ ├── crop_din.svg │ │ │ ├── crop_landscape.svg │ │ │ ├── cross.svg │ │ │ ├── cross_bold.svg │ │ │ ├── cross_circle.svg │ │ │ ├── cross_circle_fill.svg │ │ │ ├── cross_rectangle.svg │ │ │ ├── cutlery.svg │ │ │ ├── diamond_two.svg │ │ │ ├── dice.svg │ │ │ ├── dot.svg │ │ │ ├── dotmoney.svg │ │ │ ├── download.svg │ │ │ ├── drag_indicator.svg │ │ │ ├── embed.svg │ │ │ ├── emotion_fill.svg │ │ │ ├── entry_lost.svg │ │ │ ├── eraser.svg │ │ │ ├── eraser_fill.svg │ │ │ ├── exclamationmark.svg │ │ │ ├── exclamationmark_balloon.svg │ │ │ ├── exclamationmark_balloon_fill.svg │ │ │ ├── exclamationmark_bold.svg │ │ │ ├── exclamationmark_circle.svg │ │ │ ├── exclamationmark_circle_fill.svg │ │ │ ├── expand.svg │ │ │ ├── expand_exit.svg │ │ │ ├── fab_pencil_add.svg │ │ │ ├── face_unhappy.svg │ │ │ ├── facebook.svg │ │ │ ├── file.svg │ │ │ ├── file_add.svg │ │ │ ├── file_add_fill.svg │ │ │ ├── file_circle.svg │ │ │ ├── file_circle_fill.svg │ │ │ ├── file_fill.svg │ │ │ ├── filter.svg │ │ │ ├── filter_check.svg │ │ │ ├── fit.svg │ │ │ ├── flag_fill.svg │ │ │ ├── flag_ranking.svg │ │ │ ├── flag_ranking_trim.svg │ │ │ ├── flash.svg │ │ │ ├── flash_auto.svg │ │ │ ├── flash_off.svg │ │ │ ├── flowervase.svg │ │ │ ├── folder.svg │ │ │ ├── folder_fill.svg │ │ │ ├── folder_two.svg │ │ │ ├── folder_two_fill.svg │ │ │ ├── font.svg │ │ │ ├── fontstyle.svg │ │ │ ├── free_circle.svg │ │ │ ├── free_circle_fill.svg │ │ │ ├── game.svg │ │ │ ├── game_fill.svg │ │ │ ├── game_kantan.svg │ │ │ ├── gear.svg │ │ │ ├── gear_fill.svg │ │ │ ├── genre.svg │ │ │ ├── genre_add.svg │ │ │ ├── genre_done.svg │ │ │ ├── graph_bar.svg │ │ │ ├── gruppo.svg │ │ │ ├── hand_wave_fill.svg │ │ │ ├── hashtag.svg │ │ │ ├── hashtag_bold.svg │ │ │ ├── hatenabookmark.svg │ │ │ ├── heart.svg │ │ │ ├── heart_fill.svg │ │ │ ├── history.svg │ │ │ ├── home_fill.svg │ │ │ ├── hot.svg │ │ │ ├── htmltag.svg │ │ │ ├── image_add_fill.svg │ │ │ ├── image_ban_fill.svg │ │ │ ├── image_fill.svg │ │ │ ├── image_fill_slash.svg │ │ │ ├── image_question_fill.svg │ │ │ ├── information.svg │ │ │ ├── instagram.svg │ │ │ ├── italic.svg │ │ │ ├── kaomoji.svg │ │ │ ├── keyboard.svg │ │ │ ├── keyboard_down_fill.svg │ │ │ ├── keyboard_fill.svg │ │ │ ├── koeblog.svg │ │ │ ├── line_circle.svg │ │ │ ├── line_square.svg │ │ │ ├── link.svg │ │ │ ├── list_bookmark_fill.svg │ │ │ ├── list_bulleted.svg │ │ │ ├── list_numbered.svg │ │ │ ├── loading.svg │ │ │ ├── lock_fill.svg │ │ │ ├── lock_open_fill.svg │ │ │ ├── magicwand.svg │ │ │ ├── mail.svg │ │ │ ├── mail_check.svg │ │ │ ├── mail_circle.svg │ │ │ ├── mail_circle_fill.svg │ │ │ ├── mail_fill.svg │ │ │ ├── megaphone.svg │ │ │ ├── menu_hamburger.svg │ │ │ ├── menu_hamburger_bold.svg │ │ │ ├── menu_hamburger_fourline.svg │ │ │ ├── menu_horizontal.svg │ │ │ ├── menu_vertical.svg │ │ │ ├── messageboard.svg │ │ │ ├── microphone.svg │ │ │ ├── microphone_fill.svg │ │ │ ├── minus.svg │ │ │ ├── minus_bold.svg │ │ │ ├── moon.svg │ │ │ ├── moon_fill.svg │ │ │ ├── movie_camera_fill.svg │ │ │ ├── movie_play.svg │ │ │ ├── movie_play_fill.svg │ │ │ ├── movie_stop.svg │ │ │ ├── music_fill.svg │ │ │ ├── new.svg │ │ │ ├── newbook.svg │ │ │ ├── newbook_fill.svg │ │ │ ├── news.svg │ │ │ ├── nice.svg │ │ │ ├── nice_done.svg │ │ │ ├── nodate.svg │ │ │ ├── now.svg │ │ │ ├── officialstar.svg │ │ │ ├── officialstar_fill.svg │ │ │ ├── onedari_fill.svg │ │ │ ├── open_cl.svg │ │ │ ├── openblank.svg │ │ │ ├── openblank_fill.svg │ │ │ ├── ownd.svg │ │ │ ├── paidmember.svg │ │ │ ├── paidplan.svg │ │ │ ├── palette_fill.svg │ │ │ ├── paperplane.svg │ │ │ ├── paperplane_fill.svg │ │ │ ├── pause.svg │ │ │ ├── pause_bold.svg │ │ │ ├── pawprint.svg │ │ │ ├── pencil.svg │ │ │ ├── pencil_add.svg │ │ │ ├── pencil_bold.svg │ │ │ ├── person.svg │ │ │ ├── person_ban.svg │ │ │ ├── person_fill.svg │ │ │ ├── person_three_fill.svg │ │ │ ├── person_two_add_fill.svg │ │ │ ├── person_two_delete_fill.svg │ │ │ ├── person_two_done_fill.svg │ │ │ ├── person_two_fill.svg │ │ │ ├── peta.svg │ │ │ ├── pigg.svg │ │ │ ├── pin_fill.svg │ │ │ ├── play_circle.svg │ │ │ ├── play_fill.svg │ │ │ ├── plus.svg │ │ │ ├── plus_bold.svg │ │ │ ├── plus_circle.svg │ │ │ ├── plus_circle_fill.svg │ │ │ ├── plus_minus.svg │ │ │ ├── premium_fill.svg │ │ │ ├── present.svg │ │ │ ├── profilecard.svg │ │ │ ├── qr.svg │ │ │ ├── question.svg │ │ │ ├── questionmark_circle.svg │ │ │ ├── questionmark_circle_fill.svg │ │ │ ├── ranking_crown.svg │ │ │ ├── ranking_crown_fill.svg │ │ │ ├── ranking_platform_fill.svg │ │ │ ├── reblog.svg │ │ │ ├── reblog_slash.svg │ │ │ ├── redo.svg │ │ │ ├── redo_bold.svg │ │ │ ├── redo_bold_deprecated.svg │ │ │ ├── redo_deprecated.svg │ │ │ ├── refresh.svg │ │ │ ├── reply_circle_fill.svg │ │ │ ├── reply_fill.svg │ │ │ ├── requ.svg │ │ │ ├── sad.svg │ │ │ ├── saveblog.svg │ │ │ ├── screen_full.svg │ │ │ ├── screen_inline.svg │ │ │ ├── search.svg │ │ │ ├── service.svg │ │ │ ├── share.svg │ │ │ ├── shine_fill.svg │ │ │ ├── shine_two.svg │ │ │ ├── shirt.svg │ │ │ ├── sideface_close.svg │ │ │ ├── sideface_open.svg │ │ │ ├── smartphone.svg │ │ │ ├── smartphone_fill.svg │ │ │ ├── sort.svg │ │ │ ├── sort_feed.svg │ │ │ ├── sort_tile.svg │ │ │ ├── speaker_off_fill.svg │ │ │ ├── speaker_on_fill.svg │ │ │ ├── sprite.svg │ │ │ ├── sprout.svg │ │ │ ├── stampside.svg │ │ │ ├── star.svg │ │ │ ├── star_circle_fill.svg │ │ │ ├── star_face_fill.svg │ │ │ ├── star_fill.svg │ │ │ ├── star_half.svg │ │ │ ├── stop_fill.svg │ │ │ ├── strikethrough.svg │ │ │ ├── sun.svg │ │ │ ├── sun_fill.svg │ │ │ ├── switching.svg │ │ │ ├── switching_camera.svg │ │ │ ├── tag_fill.svg │ │ │ ├── tag_official_fill.svg │ │ │ ├── thumbsup.svg │ │ │ ├── thumbsup_fill.svg │ │ │ ├── title.svg │ │ │ ├── topblogger_medal.svg │ │ │ ├── topblogger_ribbon.svg │ │ │ ├── transcript_off.svg │ │ │ ├── transcript_on.svg │ │ │ ├── transmission.svg │ │ │ ├── trashcan.svg │ │ │ ├── trend.svg │ │ │ ├── trend_fill.svg │ │ │ ├── triangle_down.svg │ │ │ ├── triangle_left.svg │ │ │ ├── triangle_right.svg │ │ │ ├── triangle_up.svg │ │ │ ├── trianglearrow_down.svg │ │ │ ├── trianglearrow_downright.svg │ │ │ ├── trianglearrow_right.svg │ │ │ ├── trianglearrow_up.svg │ │ │ ├── trianglearrow_upright.svg │ │ │ ├── triangleend_left.svg │ │ │ ├── triangleend_left_bold.svg │ │ │ ├── triangleend_right.svg │ │ │ ├── triangleend_right_bold.svg │ │ │ ├── trophy_fill.svg │ │ │ ├── tv_fill.svg │ │ │ ├── twitter.svg │ │ │ ├── underline.svg │ │ │ ├── undo.svg │ │ │ ├── undo_bold.svg │ │ │ ├── undo_bold_deprecated.svg │ │ │ ├── undo_deprecated.svg │ │ │ ├── wallet.svg │ │ │ ├── webview.svg │ │ │ ├── x.svg │ │ │ └── youtube.svg │ ├── docs │ │ ├── design-doc.md │ │ └── icons.md │ ├── example │ │ └── index.html │ ├── lib │ │ ├── download.ts │ │ └── figma.ts │ ├── package.json │ ├── scripts │ │ ├── get-icons.ts │ │ └── icon-doc.ts │ ├── sprite.json │ ├── sprite.svgo.json │ ├── svgo.config.js │ ├── tsconfig.json │ └── yarn.lock ├── spindle-mcp-server │ ├── .gitignore │ ├── README.md │ ├── dist │ │ ├── accessibility.d.ts │ │ ├── accessibility.js │ │ ├── components.d.ts │ │ ├── components.js │ │ ├── design-doc.d.ts │ │ ├── design-doc.js │ │ ├── design-token.d.ts │ │ ├── design-token.js │ │ ├── icon.d.ts │ │ ├── icon.js │ │ ├── index.d.ts │ │ └── index.js │ ├── package.json │ ├── src │ │ ├── accessibility.ts │ │ ├── components.test.ts │ │ ├── components.ts │ │ ├── design-doc.ts │ │ ├── design-token.test.ts │ │ ├── design-token.ts │ │ ├── icon.test.ts │ │ ├── icon.ts │ │ └── index.ts │ └── tsconfig.json ├── spindle-syntax-themes │ ├── .firebaserc │ ├── .gitignore │ ├── .stylelintrc.json │ ├── CHANGELOG.md │ ├── README.md │ ├── acot.config.js │ ├── favicon.ico │ ├── firebase.json │ ├── highlightjs-dark.css │ ├── highlightjs-light.css │ ├── index.html │ ├── package.json │ ├── spindle-dark.png │ └── spindle-light.png ├── spindle-theme-switch │ ├── .firebaserc │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── docs │ │ ├── design-doc.md │ │ └── voice-over.png │ ├── firebase.json │ ├── package.json │ ├── public │ │ ├── dark.css │ │ ├── favicon.ico │ │ ├── index.html │ │ └── light.css │ ├── src │ │ ├── spindle-theme-switch.ts │ │ └── types │ │ │ ├── dark-mode-toggle.d.ts │ │ │ ├── jsx.d.ts │ │ │ └── spindle-theme-switch.d.ts │ └── tsconfig.json ├── spindle-tokens │ ├── .eslintrc.json │ ├── .figmaexportrc.js │ ├── .gitignore │ ├── .stylelintrc.json │ ├── CHANGELOG.md │ ├── README.md │ ├── config.js │ ├── dist │ │ └── css │ │ │ ├── spindle-tokens-animation.css │ │ │ ├── spindle-tokens-font.css │ │ │ ├── spindle-tokens-shadow.css │ │ │ └── spindle-tokens.css │ ├── jest.config.js │ ├── lib │ │ ├── animation-response.json │ │ ├── animation-transformer.test.ts │ │ ├── animation-transformer.ts │ │ ├── color-response.json │ │ ├── color-transformer.test.ts │ │ ├── color-transformer.ts │ │ └── figma.ts │ ├── package.json │ ├── scripts │ │ ├── animation.ts │ │ └── color.ts │ ├── spindle-tokens.png │ ├── tokens │ │ ├── animation.tokens.json │ │ ├── font.tokens.json │ │ ├── primitive-color.tokens.json │ │ ├── shadow.tokens.json │ │ ├── theme-dark.tokens.json │ │ └── theme-light.tokens.json │ └── tsconfig.json └── spindle-ui │ ├── .bundlewatch.config.js │ ├── .firebaserc │ ├── .gitignore │ ├── .npmignore │ ├── .prettierignore │ ├── .reg-suit │ └── actual_images │ │ └── .gitkeep │ ├── .scaffdog │ ├── component.md │ ├── config.ts │ └── design-doc.md │ ├── .storybook │ ├── main.js │ ├── preview-body.html │ ├── preview-head.html │ └── preview.js │ ├── .stylelintignore │ ├── .stylelintrc.json │ ├── .svgrrc.json │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── README.md │ ├── assets │ └── avatar.png │ ├── docs │ ├── design-doc.md │ └── images │ │ └── components.png │ ├── figma.config.json │ ├── firebase.json │ ├── jest.config.js │ ├── package.json │ ├── postcss.config.js │ ├── regconfig.json │ ├── scripts │ └── figma-connect-icons.ts │ ├── setup-tests.ts │ ├── src │ ├── BottomButton │ │ ├── BottomButton.css │ │ ├── BottomButton.stories.mdx │ │ ├── BottomButton.tsx │ │ ├── design-doc.md │ │ └── index.ts │ ├── Breadcrumb │ │ ├── Breadcrumb.css │ │ ├── Breadcrumb.stories.mdx │ │ ├── BreadcrumbItem.tsx │ │ ├── BreadcrumbList.tsx │ │ ├── design-doc.md │ │ └── index.ts │ ├── Button │ │ ├── Button.css │ │ ├── Button.figma.tsx │ │ ├── Button.stories.mdx │ │ ├── Button.test.tsx │ │ ├── Button.tsx │ │ └── index.ts │ ├── ButtonGroup │ │ ├── ButtonGroup.css │ │ ├── ButtonGroup.stories.mdx │ │ ├── ButtonGroup.tsx │ │ └── index.ts │ ├── Dialog │ │ ├── Dialog.css │ │ ├── Dialog.figma.tsx │ │ ├── Dialog.stories.mdx │ │ ├── Dialog.tsx │ │ ├── DialogExample.tsx │ │ └── index.ts │ ├── DropdownMenu │ │ ├── DropdownMenu.css │ │ ├── DropdownMenu.stories.example.tsx │ │ ├── DropdownMenu.stories.mdx │ │ ├── DropdownMenu.test.tsx │ │ ├── DropdownMenu.tsx │ │ ├── design-doc.md │ │ └── index.ts │ ├── Form │ │ ├── ButtonSwitch │ │ │ ├── ButtonSwitch.css │ │ │ ├── ButtonSwitch.stories.example.tsx │ │ │ ├── ButtonSwitch.stories.mdx │ │ │ ├── ButtonSwitch.test.tsx │ │ │ ├── ButtonSwitch.tsx │ │ │ └── design-doc.md │ │ ├── Checkbox.css │ │ ├── Checkbox.figma.tsx │ │ ├── Checkbox.stories.mdx │ │ ├── Checkbox.test.tsx │ │ ├── Checkbox.tsx │ │ ├── DropDown.css │ │ ├── DropDown.stories.mdx │ │ ├── DropDown.test.tsx │ │ ├── DropDown.tsx │ │ ├── InlineDropDown.css │ │ ├── InlineDropDown.stories.mdx │ │ ├── InlineDropDown.test.tsx │ │ ├── InlineDropDown.tsx │ │ ├── InputLabel.css │ │ ├── InputLabel.stories.mdx │ │ ├── InputLabel.test.tsx │ │ ├── InputLabel.tsx │ │ ├── InvalidMessage.css │ │ ├── InvalidMessage.stories.mdx │ │ ├── InvalidMessage.tsx │ │ ├── Radio.css │ │ ├── Radio.figma.tsx │ │ ├── Radio.stories.mdx │ │ ├── Radio.test.tsx │ │ ├── Radio.tsx │ │ ├── TextArea.css │ │ ├── TextArea.stories.mdx │ │ ├── TextArea.test.tsx │ │ ├── TextArea.tsx │ │ ├── TextField.css │ │ ├── TextField.stories.mdx │ │ ├── TextField.test.tsx │ │ ├── TextField.tsx │ │ ├── ToggleSwitch.css │ │ ├── ToggleSwitch.figma.tsx │ │ ├── ToggleSwitch.stories.mdx │ │ ├── ToggleSwitch.test.tsx │ │ ├── ToggleSwitch.tsx │ │ ├── index.css │ │ └── index.ts │ ├── HeroCarousel │ │ ├── HeroCarousel.css │ │ ├── HeroCarousel.stories.mdx │ │ ├── HeroCarousel.tsx │ │ ├── HeroCarouselItem.css │ │ ├── HeroCarouselItem.tsx │ │ └── index.ts │ ├── Icon │ │ ├── .eslintrc.json │ │ ├── 755.tsx │ │ ├── Abemakun.tsx │ │ ├── Abematv.tsx │ │ ├── Accesslink.tsx │ │ ├── Accesspage.tsx │ │ ├── AccesspageFill.tsx │ │ ├── Ad.tsx │ │ ├── AddressbookFill.tsx │ │ ├── AlbumAddFill.tsx │ │ ├── AlbumFill.tsx │ │ ├── AlignCenter.tsx │ │ ├── AlignLeft.tsx │ │ ├── AlignRight.tsx │ │ ├── AllFill.tsx │ │ ├── Amebacoin.tsx │ │ ├── Amebapick.tsx │ │ ├── Amegold.tsx │ │ ├── Amember.tsx │ │ ├── ArrowDown.tsx │ │ ├── ArrowDownBold.tsx │ │ ├── ArrowLeft.tsx │ │ ├── ArrowLeftBold.tsx │ │ ├── ArrowLeftright.tsx │ │ ├── ArrowRight.tsx │ │ ├── ArrowRightBold.tsx │ │ ├── ArrowRightCircle.tsx │ │ ├── ArrowRightCircleFill.tsx │ │ ├── ArrowSubdirectory.tsx │ │ ├── ArrowSubdirectoryBold.tsx │ │ ├── ArrowUp.tsx │ │ ├── ArrowUpBold.tsx │ │ ├── ArrowUpdown.tsx │ │ ├── ArrowpagingDown.tsx │ │ ├── ArrowpagingDownCircle.tsx │ │ ├── ArrowpagingLeft.tsx │ │ ├── ArrowpagingLeftCircle.tsx │ │ ├── ArrowpagingRight.tsx │ │ ├── ArrowpagingRightCircle.tsx │ │ ├── ArrowpagingUp.tsx │ │ ├── ArrowpagingUpCircle.tsx │ │ ├── Article.tsx │ │ ├── ArticleSlash.tsx │ │ ├── Articledesign.tsx │ │ ├── Astrogy.tsx │ │ ├── AstrogyFill.tsx │ │ ├── Baby.tsx │ │ ├── Bbs.tsx │ │ ├── Beginner.tsx │ │ ├── Beginnermark.tsx │ │ ├── Bell.tsx │ │ ├── BellFill.tsx │ │ ├── BellFillSlash.tsx │ │ ├── BellSlash.tsx │ │ ├── Blog.tsx │ │ ├── Bloggersshop.tsx │ │ ├── Bold.tsx │ │ ├── Book.tsx │ │ ├── BookFill.tsx │ │ ├── Bookmark.tsx │ │ ├── BookmarkFill.tsx │ │ ├── Bookshelf.tsx │ │ ├── BookshelfFill.tsx │ │ ├── Border.tsx │ │ ├── BottomnavFollowfeedActive.tsx │ │ ├── BottomnavFollowfeedInactive.tsx │ │ ├── BottomnavHomeActive.tsx │ │ ├── BottomnavHomeInactive.tsx │ │ ├── BottomnavMypageActive.tsx │ │ ├── BottomnavSearchActive.tsx │ │ ├── BottomnavSearchInactive.tsx │ │ ├── BottomnvavMypageInactive.tsx │ │ ├── Bullets.tsx │ │ ├── Calendar.tsx │ │ ├── Calendardaily.tsx │ │ ├── CameraFill.tsx │ │ ├── Cards.tsx │ │ ├── Cart.tsx │ │ ├── CartFill.tsx │ │ ├── CautionFill.tsx │ │ ├── Check.tsx │ │ ├── CheckBold.tsx │ │ ├── CheckCircle.tsx │ │ ├── CheckCircleFill.tsx │ │ ├── CheckRectangle.tsx │ │ ├── Checklist.tsx │ │ ├── ChevronDown.tsx │ │ ├── ChevronDownBold.tsx │ │ ├── ChevronLeft.tsx │ │ ├── ChevronLeftBold.tsx │ │ ├── ChevronRight.tsx │ │ ├── ChevronRightBold.tsx │ │ ├── ChevronUp.tsx │ │ ├── ChevronUpBold.tsx │ │ ├── ChevronUpTwoBold.tsx │ │ ├── Circle.tsx │ │ ├── CircleBold.tsx │ │ ├── CircleFill.tsx │ │ ├── CircleSlash.tsx │ │ ├── Clock.tsx │ │ ├── ClockFill.tsx │ │ ├── Coin.tsx │ │ ├── Comment.tsx │ │ ├── CommentBan.tsx │ │ ├── CommentFill.tsx │ │ ├── CommentPen.tsx │ │ ├── CommentTwoFill.tsx │ │ ├── CommentTwoSlashFill.tsx │ │ ├── Community.tsx │ │ ├── Compass.tsx │ │ ├── Coupon.tsx │ │ ├── Creditcard.tsx │ │ ├── Crop.tsx │ │ ├── CropDin.tsx │ │ ├── CropLandscape.tsx │ │ ├── Cross.tsx │ │ ├── CrossBold.tsx │ │ ├── CrossCircle.tsx │ │ ├── CrossCircleFill.tsx │ │ ├── CrossRectangle.tsx │ │ ├── Cutlery.tsx │ │ ├── DiamondTwo.tsx │ │ ├── Dice.tsx │ │ ├── Dot.tsx │ │ ├── Dotmoney.tsx │ │ ├── Download.tsx │ │ ├── DragIndicator.tsx │ │ ├── Embed.tsx │ │ ├── EmotionFill.tsx │ │ ├── EntryLost.tsx │ │ ├── Eraser.tsx │ │ ├── EraserFill.tsx │ │ ├── Exclamationmark.tsx │ │ ├── ExclamationmarkBalloon.tsx │ │ ├── ExclamationmarkBalloonFill.tsx │ │ ├── ExclamationmarkBold.tsx │ │ ├── ExclamationmarkCircle.tsx │ │ ├── ExclamationmarkCircleFill.tsx │ │ ├── Expand.tsx │ │ ├── ExpandExit.tsx │ │ ├── FabPencilAdd.tsx │ │ ├── FaceUnhappy.tsx │ │ ├── Facebook.tsx │ │ ├── File.tsx │ │ ├── FileAdd.tsx │ │ ├── FileAddFill.tsx │ │ ├── FileCircle.tsx │ │ ├── FileCircleFill.tsx │ │ ├── FileFill.tsx │ │ ├── Filter.tsx │ │ ├── FilterCheck.tsx │ │ ├── Fit.tsx │ │ ├── FlagFill.tsx │ │ ├── FlagRanking.tsx │ │ ├── FlagRankingTrim.tsx │ │ ├── Flash.tsx │ │ ├── FlashAuto.tsx │ │ ├── FlashOff.tsx │ │ ├── Flowervase.tsx │ │ ├── Folder.tsx │ │ ├── FolderFill.tsx │ │ ├── FolderTwo.tsx │ │ ├── FolderTwoFill.tsx │ │ ├── Font.tsx │ │ ├── Fontstyle.tsx │ │ ├── FreeCircle.tsx │ │ ├── FreeCircleFill.tsx │ │ ├── Game.tsx │ │ ├── GameFill.tsx │ │ ├── GameKantan.tsx │ │ ├── Gear.tsx │ │ ├── GearFill.tsx │ │ ├── Genre.tsx │ │ ├── GenreAdd.tsx │ │ ├── GenreDone.tsx │ │ ├── GraphBar.tsx │ │ ├── Gruppo.tsx │ │ ├── HandWaveFill.tsx │ │ ├── Hashtag.tsx │ │ ├── HashtagBold.tsx │ │ ├── Hatenabookmark.tsx │ │ ├── Heart.tsx │ │ ├── HeartFill.tsx │ │ ├── History.tsx │ │ ├── HomeFill.tsx │ │ ├── Hot.tsx │ │ ├── Htmltag.tsx │ │ ├── ImageAddFill.tsx │ │ ├── ImageBanFill.tsx │ │ ├── ImageFill.tsx │ │ ├── ImageFillSlash.tsx │ │ ├── ImageQuestionFill.tsx │ │ ├── Information.tsx │ │ ├── Instagram.tsx │ │ ├── Italic.tsx │ │ ├── Kaomoji.tsx │ │ ├── Keyboard.tsx │ │ ├── KeyboardDownFill.tsx │ │ ├── KeyboardFill.tsx │ │ ├── Koeblog.tsx │ │ ├── LineCircle.tsx │ │ ├── LineSquare.tsx │ │ ├── Link.tsx │ │ ├── ListBookmarkFill.tsx │ │ ├── ListBulleted.tsx │ │ ├── ListNumbered.tsx │ │ ├── Loading.tsx │ │ ├── LockFill.tsx │ │ ├── LockOpenFill.tsx │ │ ├── Magicwand.tsx │ │ ├── Mail.tsx │ │ ├── MailCheck.tsx │ │ ├── MailCircle.tsx │ │ ├── MailCircleFill.tsx │ │ ├── MailFill.tsx │ │ ├── Megaphone.tsx │ │ ├── MenuHamburger.tsx │ │ ├── MenuHamburgerBold.tsx │ │ ├── MenuHamburgerFourline.tsx │ │ ├── MenuHorizontal.tsx │ │ ├── MenuVertical.tsx │ │ ├── Messageboard.tsx │ │ ├── Microphone.tsx │ │ ├── MicrophoneFill.tsx │ │ ├── Minus.tsx │ │ ├── MinusBold.tsx │ │ ├── Moon.tsx │ │ ├── MoonFill.tsx │ │ ├── MovieCameraFill.tsx │ │ ├── MoviePlay.tsx │ │ ├── MoviePlayFill.tsx │ │ ├── MovieStop.tsx │ │ ├── MusicFill.tsx │ │ ├── New.tsx │ │ ├── Newbook.tsx │ │ ├── NewbookFill.tsx │ │ ├── News.tsx │ │ ├── Nice.tsx │ │ ├── NiceDone.tsx │ │ ├── Nodate.tsx │ │ ├── Now.tsx │ │ ├── Officialstar.tsx │ │ ├── OfficialstarFill.tsx │ │ ├── OnedariFill.tsx │ │ ├── OpenCl.tsx │ │ ├── Openblank.tsx │ │ ├── OpenblankFill.tsx │ │ ├── Ownd.tsx │ │ ├── Paidmember.tsx │ │ ├── Paidplan.tsx │ │ ├── PaletteFill.tsx │ │ ├── Paperplane.tsx │ │ ├── PaperplaneFill.tsx │ │ ├── Pause.tsx │ │ ├── PauseBold.tsx │ │ ├── Pawprint.tsx │ │ ├── Pencil.tsx │ │ ├── PencilAdd.tsx │ │ ├── PencilBold.tsx │ │ ├── Person.tsx │ │ ├── PersonBan.tsx │ │ ├── PersonFill.tsx │ │ ├── PersonThreeFill.tsx │ │ ├── PersonTwoAddFill.tsx │ │ ├── PersonTwoDeleteFill.tsx │ │ ├── PersonTwoDoneFill.tsx │ │ ├── PersonTwoFill.tsx │ │ ├── Peta.tsx │ │ ├── Pigg.tsx │ │ ├── PinFill.tsx │ │ ├── PlayCircle.tsx │ │ ├── PlayFill.tsx │ │ ├── Plus.tsx │ │ ├── PlusBold.tsx │ │ ├── PlusCircle.tsx │ │ ├── PlusCircleFill.tsx │ │ ├── PlusMinus.tsx │ │ ├── PremiumFill.tsx │ │ ├── Present.tsx │ │ ├── Profilecard.tsx │ │ ├── Qr.tsx │ │ ├── Question.tsx │ │ ├── QuestionmarkCircle.tsx │ │ ├── QuestionmarkCircleFill.tsx │ │ ├── RankingCrown.tsx │ │ ├── RankingCrownFill.tsx │ │ ├── RankingPlatformFill.tsx │ │ ├── Reblog.tsx │ │ ├── ReblogSlash.tsx │ │ ├── Redo.tsx │ │ ├── RedoBold.tsx │ │ ├── RedoBoldDeprecated.tsx │ │ ├── RedoDeprecated.tsx │ │ ├── Refresh.tsx │ │ ├── ReplyCircleFill.tsx │ │ ├── ReplyFill.tsx │ │ ├── Requ.tsx │ │ ├── Sad.tsx │ │ ├── Saveblog.tsx │ │ ├── ScreenFull.tsx │ │ ├── ScreenInline.tsx │ │ ├── Search.tsx │ │ ├── Service.tsx │ │ ├── Share.tsx │ │ ├── ShineFill.tsx │ │ ├── ShineTwo.tsx │ │ ├── Shirt.tsx │ │ ├── SidefaceClose.tsx │ │ ├── SidefaceOpen.tsx │ │ ├── Smartphone.tsx │ │ ├── SmartphoneFill.tsx │ │ ├── Sort.tsx │ │ ├── SortFeed.tsx │ │ ├── SortTile.tsx │ │ ├── SpeakerOffFill.tsx │ │ ├── SpeakerOnFill.tsx │ │ ├── Sprout.tsx │ │ ├── Stampside.tsx │ │ ├── Star.tsx │ │ ├── StarCircleFill.tsx │ │ ├── StarFaceFill.tsx │ │ ├── StarFill.tsx │ │ ├── StarHalf.tsx │ │ ├── StopFill.tsx │ │ ├── Strikethrough.tsx │ │ ├── Sun.tsx │ │ ├── SunFill.tsx │ │ ├── Switching.tsx │ │ ├── SwitchingCamera.tsx │ │ ├── TagFill.tsx │ │ ├── TagOfficialFill.tsx │ │ ├── Thumbsup.tsx │ │ ├── ThumbsupFill.tsx │ │ ├── Title.tsx │ │ ├── TopbloggerMedal.tsx │ │ ├── TopbloggerRibbon.tsx │ │ ├── TranscriptOff.tsx │ │ ├── TranscriptOn.tsx │ │ ├── Transmission.tsx │ │ ├── Trashcan.tsx │ │ ├── Trend.tsx │ │ ├── TrendFill.tsx │ │ ├── TriangleDown.tsx │ │ ├── TriangleLeft.tsx │ │ ├── TriangleRight.tsx │ │ ├── TriangleUp.tsx │ │ ├── TrianglearrowDown.tsx │ │ ├── TrianglearrowDownright.tsx │ │ ├── TrianglearrowRight.tsx │ │ ├── TrianglearrowUp.tsx │ │ ├── TrianglearrowUpright.tsx │ │ ├── TriangleendLeft.tsx │ │ ├── TriangleendLeftBold.tsx │ │ ├── TriangleendRight.tsx │ │ ├── TriangleendRightBold.tsx │ │ ├── TrophyFill.tsx │ │ ├── TvFill.tsx │ │ ├── Twitter.tsx │ │ ├── Underline.tsx │ │ ├── Undo.tsx │ │ ├── UndoBold.tsx │ │ ├── UndoBoldDeprecated.tsx │ │ ├── UndoDeprecated.tsx │ │ ├── Wallet.tsx │ │ ├── Webview.tsx │ │ ├── X.tsx │ │ ├── Youtube.tsx │ │ ├── index.stories.mdx │ │ └── index.ts │ ├── IconButton │ │ ├── IconButton.css │ │ ├── IconButton.figma.tsx │ │ ├── IconButton.stories.mdx │ │ ├── IconButton.test.tsx │ │ ├── IconButton.tsx │ │ └── index.ts │ ├── InlineNotification │ │ ├── InlineNotification.css │ │ ├── InlineNotification.figma.tsx │ │ ├── InlineNotification.stories.example.tsx │ │ ├── InlineNotification.stories.mdx │ │ ├── InlineNotification.tsx │ │ ├── design-doc.md │ │ └── index.ts │ ├── LICENSE │ ├── LinkButton │ │ ├── LinkButton.css │ │ ├── LinkButton.stories.mdx │ │ ├── LinkButton.tsx │ │ └── index.ts │ ├── List │ │ ├── MoreLink.css │ │ ├── MoreLink.stories.mdx │ │ ├── MoreLink.tsx │ │ ├── index.css │ │ └── index.ts │ ├── Modal │ │ ├── AppealModal.css │ │ ├── AppealModal.stories.example.tsx │ │ ├── AppealModal.stories.mdx │ │ ├── AppealModal.tsx │ │ ├── SemiModal.css │ │ ├── SemiModal.stories.example.tsx │ │ ├── SemiModal.stories.mdx │ │ ├── SemiModal.tsx │ │ └── index.css │ ├── NavigationTab │ │ ├── UnderlineTab │ │ │ ├── UnderlineTab.css │ │ │ ├── UnderlineTab.figma.tsx │ │ │ ├── UnderlineTab.stories.mdx │ │ │ ├── UnderlineTab.test.tsx │ │ │ ├── UnderlineTab.tsx │ │ │ └── design-doc.md │ │ ├── index.css │ │ └── index.ts │ ├── Pagination │ │ ├── Pagination.css │ │ ├── Pagination.stories.mdx │ │ ├── Pagination.test.tsx │ │ ├── Pagination.tsx │ │ ├── PaginationItem.css │ │ ├── PaginationItem.tsx │ │ ├── helpers │ │ │ ├── getLinkRelAttribute.test.ts │ │ │ └── getLinkRelAttribute.ts │ │ ├── hooks │ │ │ ├── useItemPageNumber.test.ts │ │ │ ├── useItemPageNumber.ts │ │ │ ├── useShowItem.test.ts │ │ │ └── useShowItem.ts │ │ └── index.ts │ ├── SegmentedControl │ │ ├── SegmentedControl.css │ │ ├── SegmentedControl.figma.tsx │ │ ├── SegmentedControl.stories.mdx │ │ ├── SegmentedControl.test.tsx │ │ ├── SegmentedControl.tsx │ │ └── index.ts │ ├── SnackBar │ │ ├── SnackBar.css │ │ ├── SnackBar.figma.tsx │ │ ├── SnackBar.stories.mdx │ │ ├── SnackBar.test.tsx │ │ ├── SnackBar.tsx │ │ └── index.ts │ ├── StackNotificationManager │ │ ├── StackNotificationManager.stories.example.tsx │ │ ├── StackNotificationManager.stories.mdx │ │ ├── StackNotificationManager.tsx │ │ ├── hooks.test.tsx │ │ ├── hooks.ts │ │ └── index.ts │ ├── SubtleButton │ │ ├── SubtleButton.css │ │ ├── SubtleButton.stories.mdx │ │ ├── SubtleButton.tsx │ │ └── index.ts │ ├── TextButton │ │ ├── TextButton.css │ │ ├── TextButton.stories.mdx │ │ ├── TextButton.test.tsx │ │ ├── TextButton.tsx │ │ └── index.ts │ ├── TextLink │ │ ├── TextLink.css │ │ ├── TextLink.stories.mdx │ │ ├── TextLink.test.tsx │ │ ├── TextLink.tsx │ │ └── index.ts │ ├── Toast │ │ ├── Toast.css │ │ ├── Toast.stories.mdx │ │ ├── Toast.test.tsx │ │ ├── Toast.tsx │ │ └── index.ts │ ├── icons.figma.tsx │ ├── index.css │ ├── index.stories.ts │ ├── index.ts │ └── types │ │ └── react.d.ts │ ├── storybook │ └── UserNotificationTypes.mdx │ ├── tsconfig.cjs.json │ ├── tsconfig.esm.json │ └── tsconfig.json ├── tsconfig.json └── yarn.lock /.commitlintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "@commitlint/config-conventional", 4 | "@commitlint/config-lerna-scopes" 5 | ], 6 | "rules": { 7 | "body-max-line-length": [0, "always"] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | end_of_line = lf 11 | insert_final_newline = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | public/ 3 | packages/spindle-tokens/lib/*.js 4 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | commitlint --edit "$1" 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | save-exact=true 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | public/ 3 | packages/spindle-tokens/lib/*.js 4 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all", 4 | "arrowParens": "always", 5 | "useTabs": false, 6 | "tabWidth": 2, 7 | "endOfLine": "lf" 8 | } 9 | -------------------------------------------------------------------------------- /.renovaterc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "local>openameba/renovate-config:main.json5", 4 | "local>openameba/renovate-config:npm.json5", 5 | "local>openameba/renovate-config:automerge-minor.json5" 6 | ], 7 | "reviewers": [ 8 | "team:spindle-working-group" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /.textlintignore: -------------------------------------------------------------------------------- 1 | packages/spindle-icons/docs/icons.md 2 | packages/spindle-ui/CHANGELOG.md 3 | -------------------------------------------------------------------------------- /.textlintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "preset-ameba": true 4 | }, 5 | "plugins": { 6 | "@textlint/markdown": { 7 | "extensions": [ 8 | ".mdx" 9 | ] 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | save-prefix false 2 | -------------------------------------------------------------------------------- /docs/images/spindle-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/docs/images/spindle-logo.png -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "npmClient": "yarn", 3 | "version": "independent", 4 | "packages": ["packages/*"], 5 | "includeMergedTags": true, 6 | "command": { 7 | "version": { 8 | "message": "chore: publish", 9 | "allowBranch": ["version/*", "release/*"] 10 | } 11 | }, 12 | "$schema": "node_modules/lerna/schemas/lerna-schema.json" 13 | } 14 | -------------------------------------------------------------------------------- /packages/spindle-hooks/.bundlewatch.config.js: -------------------------------------------------------------------------------- 1 | const bundlewatchConfig = { 2 | files: [ 3 | { 4 | path: './dist/**/*.mjs', 5 | maxSize: '1.5 kB', 6 | compression: 'gzip', 7 | }, 8 | ], 9 | }; 10 | 11 | module.exports = bundlewatchConfig; 12 | -------------------------------------------------------------------------------- /packages/spindle-hooks/.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "ameba-spindle" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/spindle-hooks/.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | public 3 | .storybook 4 | .firebaserc 5 | .gitignore 6 | jest.config.js 7 | bundlesize.config.json 8 | firebase.json 9 | tsconfig.json 10 | design-doc.md 11 | setup-tests.ts 12 | -------------------------------------------------------------------------------- /packages/spindle-hooks/.prettierignore: -------------------------------------------------------------------------------- 1 | *.md 2 | *.mdx 3 | -------------------------------------------------------------------------------- /packages/spindle-hooks/.storybook/main.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | stories: ['../src/**/*.stories.@(ts|tsx|mdx)'], 3 | addons: [ 4 | '@storybook/addon-actions', 5 | '@storybook/addon-a11y', 6 | '@storybook/addon-backgrounds', 7 | '@storybook/addon-docs', 8 | '@storybook/addon-viewport', 9 | ], 10 | core: { 11 | builder: 'webpack5', 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /packages/spindle-hooks/.storybook/preview-head.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /packages/spindle-hooks/.storybook/preview.js: -------------------------------------------------------------------------------- 1 | export const parameters = { 2 | backgrounds: { 3 | default: 'Surface Primary', 4 | values: [ 5 | { 6 | name: 'Background Color', 7 | value: '#F5F6F6', 8 | }, 9 | { 10 | name: 'Surface Primary', 11 | value: '#FFFFFF', 12 | }, 13 | { 14 | name: 'Surface Secondary', 15 | value: 'rgba(8,18,26,0.04)', 16 | }, 17 | { 18 | name: 'Background Color Dark', 19 | value: '#08121A', 20 | }, 21 | ], 22 | }, 23 | }; 24 | -------------------------------------------------------------------------------- /packages/spindle-hooks/docs/images/components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-hooks/docs/images/components.png -------------------------------------------------------------------------------- /packages/spindle-hooks/firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "site": "ameba-spindle-hooks", 4 | "public": "public", 5 | "ignore": [ 6 | "firebase.json", 7 | "**/.*", 8 | "**/node_modules/**" 9 | ], 10 | "rewrites": [ 11 | { 12 | "source": "**", 13 | "destination": "/index.html" 14 | } 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/spindle-hooks/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | verbose: true, 3 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'], 4 | setupFilesAfterEnv: ['/setup-tests.ts'], 5 | moduleNameMapper: { 6 | // rootのnode_modulesを参照してしまってversionが競合してしまっていたので、 7 | // spindle-hooksのnode_modulesのreactを使用するように指定する 8 | '^react($|/.+)': '/node_modules/react$1', 9 | }, 10 | transform: { 11 | '^.+\\.tsx?$': 'ts-jest', 12 | }, 13 | testEnvironment: 'jest-environment-jsdom', 14 | }; 15 | -------------------------------------------------------------------------------- /packages/spindle-hooks/setup-tests.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom'; 2 | -------------------------------------------------------------------------------- /packages/spindle-hooks/src/index.ts: -------------------------------------------------------------------------------- 1 | export { useCarousel } from './useCarousel'; 2 | export { useTimeDistance } from './useTimeDistance'; 3 | -------------------------------------------------------------------------------- /packages/spindle-hooks/src/internal/useFlushSync/index.ts: -------------------------------------------------------------------------------- 1 | export { useFlushSync } from './useFlushSync'; 2 | -------------------------------------------------------------------------------- /packages/spindle-hooks/src/useCarousel/index.ts: -------------------------------------------------------------------------------- 1 | export { useCarousel } from './useCarousel'; 2 | -------------------------------------------------------------------------------- /packages/spindle-hooks/src/useCarousel/useValueRef.ts: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, MutableRefObject } from 'react'; 2 | 3 | export function useValueRef(value: T): MutableRefObject { 4 | const ref = useRef(value); 5 | 6 | useEffect(() => { 7 | ref.current = value; 8 | }, [value]); 9 | 10 | return ref; 11 | } 12 | -------------------------------------------------------------------------------- /packages/spindle-hooks/src/useTimeDistance/index.ts: -------------------------------------------------------------------------------- 1 | export { useTimeDistance } from './useTimeDistance'; 2 | -------------------------------------------------------------------------------- /packages/spindle-hooks/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "target": "es5", 5 | "outDir": "dist", 6 | "sourceMap": true, 7 | "declaration": true, 8 | "declarationMap": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/spindle-hooks/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "target": "ESNext", 5 | "outDir": "dist", 6 | "moduleResolution": "node" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/spindle-hooks/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "lib": [ 5 | "DOM" 6 | ], 7 | "baseUrl": ".", 8 | "paths": { 9 | "react": ["./node_modules/@types/react"] 10 | }, 11 | "types": ["node", "jest", "@testing-library/jest-dom"], 12 | "jsx": "react" 13 | }, 14 | "include": [ 15 | "src" 16 | ], 17 | "exclude": [ 18 | "src/**/*.test.*", 19 | "src/**/*.stories.*" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /packages/spindle-icons/.gitignore: -------------------------------------------------------------------------------- 1 | figma.json 2 | !dist/ 3 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/ad.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/ad.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/blog.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/blog.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/bold.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/bold.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/calendar.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/calendar.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/calendardaily.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/calendardaily.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/comment.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/comment.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/comment_ban.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/comment_ban.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/creditcard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/creditcard.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/drag_indicator.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/drag_indicator.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/eraser.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/eraser.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/eraser_fill.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/eraser_fill.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/fab_pencil_add.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/fab_pencil_add.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/hashtag.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/hashtag.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/hashtag_bold.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/hashtag_bold.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/minus.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/minus.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/paidmember.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/paidmember.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/pencil.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/pencil.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/pencil_add.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/pencil_add.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/plus.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/plus.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/plus_minus.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/plus_minus.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/redo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/redo.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/redo_bold.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/redo_bold.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/redo_bold_deprecated.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/redo_bold_deprecated.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/redo_deprecated.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/redo_deprecated.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/star.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/star.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/star_half.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/star_half.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/topblogger_medal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/topblogger_medal.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/undo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/undo.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/undo_bold.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/undo_bold.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/undo_bold_deprecated.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/undo_bold_deprecated.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/pdf/undo_deprecated.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-icons/dist/pdf/undo_deprecated.pdf -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrow_right_circle_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrowpaging_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrowpaging_down_circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrowpaging_left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrowpaging_left_circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrowpaging_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrowpaging_right_circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrowpaging_up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/arrowpaging_up_circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/bookmark_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/border.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/bottomnav_mypage_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/bottomnav_search_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/check_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/check_circle_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/chevron_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/chevron_down_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/chevron_left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/chevron_left_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/chevron_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/chevron_right_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/chevron_up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/chevron_up_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/circle_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/clock_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/comment_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/crop_din.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/crop_landscape.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/exclamationmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/exclamationmark_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/exclamationmark_circle_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/facebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/file_circle_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/file_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/flash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/folder_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/graph_bar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/mail_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/menu_hamburger.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/menu_hamburger_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/menu_vertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/minus_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/moon_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/pause_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/pencil.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/pencil_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/person_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/play_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/plus_bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/plus_circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/plus_circle_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/plus_minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/reply_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/sort_feed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/star_circle_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/star_half.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/stop_fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/triangle_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/triangle_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/triangle_up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/trianglearrow_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/trianglearrow_downright.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/trianglearrow_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/trianglearrow_up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/trianglearrow_upright.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/underline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg-unoptimized/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/accesspage_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/align_center.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/align_left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/align_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/all_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_down_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_left_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_leftright.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_right_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_right_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_right_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_subdirectory.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_subdirectory_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_up_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrow_updown.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrowpaging_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrowpaging_down_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrowpaging_left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrowpaging_left_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrowpaging_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrowpaging_right_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrowpaging_up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/arrowpaging_up_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/article.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/astrogy_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/beginnermark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bell_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/book_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bookmark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bookmark_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bookshelf_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/border.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bottomnav_followfeed_active.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bottomnav_home_active.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bottomnav_mypage_active.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bottomnav_search_active.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bottomnav_search_inactive.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/bottomnvav_mypage_inactive.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/calendardaily.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/camera_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/cards.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/cart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/cart_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/caution_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/check.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/check_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/check_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/check_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/check_rectangle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_down_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_left_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_right_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_up_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/chevron_up_two_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/circle_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/circle_slash.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/clock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/clock_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/coin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/comment.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/comment_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/coupon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/creditcard.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/crop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/crop_din.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/crop_landscape.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/cross.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/cross_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/cross_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/cross_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/cross_rectangle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/dice.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/dot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/download.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/drag_indicator.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/emotion_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/eraser.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/eraser_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/exclamationmark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/exclamationmark_balloon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/exclamationmark_balloon_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/exclamationmark_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/exclamationmark_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/exclamationmark_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/file.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/file_add.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/file_add_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/file_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/file_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/file_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/fit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/flash.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/flash_auto.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/folder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/folder_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/folder_two_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/font.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/genre.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/graph_bar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/heart_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/home_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/htmltag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/image_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/information.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/italic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/list_bookmark_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/lock_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/lock_open_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/mail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/mail_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/mail_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/mail_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/menu_hamburger.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/menu_hamburger_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/menu_hamburger_fourline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/menu_horizontal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/menu_vertical.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/microphone_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/minus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/minus_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/moon_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/movie_camera_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/music_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/nodate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/now.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/open_cl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/paidmember.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/paperplane_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/pause.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/pause_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/pencil.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/pencil_add.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/pencil_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/person.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/person_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/person_two_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/pigg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/pin_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/play_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/play_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/plus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/plus_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/plus_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/plus_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/plus_minus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/premium_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/ranking_crown_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/reblog.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/redo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/redo_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/redo_bold_deprecated.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/redo_deprecated.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/refresh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/reply_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/reply_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/screen_full.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/share.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/shine_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/sideface_close.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/sideface_open.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/smartphone_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/sort.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/sort_feed.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/speaker_off_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/sprout.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/stampside.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/star_circle_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/star_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/star_half.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/stop_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/tag_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/tag_official_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/thumbsup_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/title.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/trend_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/triangle_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/triangle_left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/triangle_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/triangle_up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/trianglearrow_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/trianglearrow_downright.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/trianglearrow_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/trianglearrow_up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/trianglearrow_upright.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/triangleend_left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/triangleend_left_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/triangleend_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/triangleend_right_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/trophy_fill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/underline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/undo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/undo_bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/undo_bold_deprecated.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/undo_deprecated.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/x.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/dist/svg/youtube.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/spindle-icons/lib/figma.ts: -------------------------------------------------------------------------------- 1 | import * as Figma from 'figma-api'; 2 | 3 | if (!process.env.FIGMA_TOKEN) { 4 | throw new Error( 5 | 'Figma personal token should be set as an environment variable "FIGMA_TOKEN".', 6 | ); 7 | } 8 | 9 | export const figma = new Figma.Api({ 10 | personalAccessToken: process.env.FIGMA_TOKEN, 11 | }); 12 | -------------------------------------------------------------------------------- /packages/spindle-icons/sprite.json: -------------------------------------------------------------------------------- 1 | { 2 | "dest": "dist/svg", 3 | "mode": { 4 | "symbol": { 5 | "dest" : ".", 6 | "sprite": "sprite.svg" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/spindle-icons/sprite.svgo.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | { 4 | "name": "removeAttrs", 5 | "params": { 6 | "attrs": "fill" 7 | } 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/spindle-icons/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/spindle-mcp-server/.gitignore: -------------------------------------------------------------------------------- 1 | !dist/ 2 | -------------------------------------------------------------------------------- /packages/spindle-mcp-server/dist/accessibility.d.ts: -------------------------------------------------------------------------------- 1 | export declare function getAccessibilityDocs(): Promise<{ 2 | checkList: string; 3 | }>; 4 | -------------------------------------------------------------------------------- /packages/spindle-mcp-server/dist/design-doc.d.ts: -------------------------------------------------------------------------------- 1 | export declare function getComponentDesignDocTemplate(): { 2 | template: string; 3 | } | null; 4 | -------------------------------------------------------------------------------- /packages/spindle-mcp-server/dist/design-token.d.ts: -------------------------------------------------------------------------------- 1 | interface DesignTokens { 2 | tokenList: Record; 3 | documentation: string; 4 | } 5 | export declare function getCssDesignToken(tokenType: string): object | null; 6 | export declare function getAllCssDesignTokens(): DesignTokens; 7 | export {}; 8 | -------------------------------------------------------------------------------- /packages/spindle-mcp-server/dist/icon.d.ts: -------------------------------------------------------------------------------- 1 | interface IconInfo { 2 | name: string; 3 | path: string; 4 | documentation: string; 5 | } 6 | interface Icons { 7 | iconList: string[]; 8 | documentation: string; 9 | } 10 | export declare function getIcons(): Promise; 11 | export declare function getIconInfo(iconName: string): Promise; 12 | export {}; 13 | -------------------------------------------------------------------------------- /packages/spindle-mcp-server/dist/index.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /packages/spindle-mcp-server/src/design-doc.ts: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | import fs from 'fs'; 3 | 4 | export function getComponentDesignDocTemplate() { 5 | const templatePath = path.join( 6 | __dirname, 7 | '../../spindle-ui/.scaffdog/design-doc.md', 8 | ); 9 | if (!fs.existsSync(templatePath)) { 10 | return null; 11 | } 12 | 13 | const content = fs.readFileSync(templatePath, 'utf-8'); 14 | return { 15 | template: content, 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /packages/spindle-mcp-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src", 6 | "module": "CommonJS", 7 | "target": "ES2020", 8 | "lib": ["ES2020"], 9 | "declaration": true 10 | }, 11 | "include": ["src/**/*"], 12 | "exclude": ["node_modules", "dist", "src/**/*.test.ts"] 13 | } -------------------------------------------------------------------------------- /packages/spindle-syntax-themes/.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "ameba-spindle" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/spindle-syntax-themes/.gitignore: -------------------------------------------------------------------------------- 1 | public/ 2 | spindle-light.min.css 3 | spindle-dark.min.css 4 | -------------------------------------------------------------------------------- /packages/spindle-syntax-themes/.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard", 3 | "rules": { 4 | "color-function-notation": "legacy", 5 | "selector-class-pattern": null 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/spindle-syntax-themes/acot.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@acot'], 3 | connection: { 4 | command: 'yarn serve', 5 | }, 6 | origin: 'http://localhost:5001', 7 | paths: ['/', '/?theme=dark'], 8 | rules: { 9 | '@acot/wcag/focusable-has-indicator': 'warn', 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /packages/spindle-syntax-themes/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-syntax-themes/favicon.ico -------------------------------------------------------------------------------- /packages/spindle-syntax-themes/firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "site": "ameba-spindle-syntax", 4 | "public": "public", 5 | "ignore": [ 6 | "firebase.json", 7 | "**/.*", 8 | "**/node_modules/**" 9 | ] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/spindle-syntax-themes/spindle-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-syntax-themes/spindle-dark.png -------------------------------------------------------------------------------- /packages/spindle-syntax-themes/spindle-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-syntax-themes/spindle-light.png -------------------------------------------------------------------------------- /packages/spindle-theme-switch/.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "ameba-spindle" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/spindle-theme-switch/.gitignore: -------------------------------------------------------------------------------- 1 | public/spindle-theme-switch.js 2 | -------------------------------------------------------------------------------- /packages/spindle-theme-switch/docs/voice-over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-theme-switch/docs/voice-over.png -------------------------------------------------------------------------------- /packages/spindle-theme-switch/firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "site": "ameba-spindle-theme-switch", 4 | "public": "public", 5 | "ignore": [ 6 | "firebase.json", 7 | "**/.*", 8 | "**/node_modules/**" 9 | ] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/spindle-theme-switch/public/dark.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: var(--color-surface-primary, #141e25); 3 | color: var(--color-text-medium-emphasis, rgba(255, 255, 255, 0.9)); 4 | } 5 | -------------------------------------------------------------------------------- /packages/spindle-theme-switch/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-theme-switch/public/favicon.ico -------------------------------------------------------------------------------- /packages/spindle-theme-switch/public/light.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: var(--color-surface-primary, #fff); 3 | color: var(--color-text-medium-emphasis, rgba(8, 18, 26, 0.74)); 4 | } 5 | -------------------------------------------------------------------------------- /packages/spindle-theme-switch/src/types/dark-mode-toggle.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'https://unpkg.com/dark-mode-toggle' { 2 | export * from 'dark-mode-toggle'; 3 | } 4 | -------------------------------------------------------------------------------- /packages/spindle-theme-switch/src/types/jsx.d.ts: -------------------------------------------------------------------------------- 1 | type SpindleThemeToggleAttribute = { 2 | appearance: 'switch'; 3 | legend?: string; 4 | permanent?: boolean; 5 | }; 6 | 7 | declare namespace JSX { 8 | interface IntrinsicElements { 9 | 'spindle-theme-switch': SpindleThemeToggleAttribute; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/spindle-theme-switch/src/types/spindle-theme-switch.d.ts: -------------------------------------------------------------------------------- 1 | import { DarkModeToggle } from 'dark-mode-toggle'; 2 | 3 | import './jsx'; 4 | 5 | export class SpindleThemeSwitch extends DarkModeToggle { 6 | constructor(); 7 | } 8 | -------------------------------------------------------------------------------- /packages/spindle-theme-switch/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "target": "ESNext", 5 | "outDir": "dist", 6 | "moduleResolution": "node16" 7 | }, 8 | "include": [ 9 | "src" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/spindle-tokens/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "overrides": [ 3 | { 4 | "files": ["lib/**/*.js"], 5 | "rules": { 6 | "@typescript-eslint/no-var-requires": "off" 7 | } 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/spindle-tokens/.gitignore: -------------------------------------------------------------------------------- 1 | # output for npm package 2 | !dist/ 3 | -------------------------------------------------------------------------------- /packages/spindle-tokens/.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard", 3 | "rules": { 4 | "color-function-notation": "legacy", 5 | "alpha-value-notation": "number", 6 | "declaration-property-value-allowed-list": { 7 | "/^--animation-easing-/": "/^cubic-bezier\\([\\d.]+, [\\d.]+, [\\d.]+, [\\d.]+\\)/" 8 | }, 9 | "color-hex-length": "long", 10 | "value-keyword-case": ["lower", { 11 | "ignoreProperties": [ 12 | "/^--font-/" 13 | ] 14 | }] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/spindle-tokens/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | verbose: true, 3 | moduleFileExtensions: ['ts', 'js', 'json'], 4 | transform: { 5 | '^.+\\.ts$': 'ts-jest', 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /packages/spindle-tokens/spindle-tokens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-tokens/spindle-tokens.png -------------------------------------------------------------------------------- /packages/spindle-tokens/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "target": "ES5", 5 | "moduleResolution": "Node", 6 | "skipLibCheck": true, 7 | }, 8 | "include": [ 9 | "scripts/**/*.ts", 10 | "lib/**/*.ts", 11 | ], 12 | "exclude": [ 13 | "./scripts/**/*.test.*" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "ameba-spindle" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/spindle-ui/.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | dist 3 | public 4 | .storybook 5 | .reg-suit 6 | .firebaserc 7 | .gitignore 8 | .stylelintignore 9 | .stylelintrc.json 10 | jest.config.js 11 | postcss.config.js 12 | .svgrrc.json 13 | bundlesize.config.json 14 | firebase.json 15 | regconfig.json 16 | tsconfig.json 17 | design-doc.md 18 | setup-tests.ts 19 | *.figma.tsx 20 | -------------------------------------------------------------------------------- /packages/spindle-ui/.prettierignore: -------------------------------------------------------------------------------- 1 | *.md 2 | *.mdx 3 | -------------------------------------------------------------------------------- /packages/spindle-ui/.reg-suit/actual_images/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-ui/.reg-suit/actual_images/.gitkeep -------------------------------------------------------------------------------- /packages/spindle-ui/.scaffdog/config.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | files: ['*'], 3 | }; 4 | -------------------------------------------------------------------------------- /packages/spindle-ui/.storybook/preview-body.html: -------------------------------------------------------------------------------- 1 |
7 | -------------------------------------------------------------------------------- /packages/spindle-ui/.storybook/preview.js: -------------------------------------------------------------------------------- 1 | export const parameters = { 2 | backgrounds: { 3 | default: 'Surface Primary', 4 | values: [ 5 | { 6 | name: 'Background Color', 7 | value: '#F5F6F6', 8 | }, 9 | { 10 | name: 'Surface Primary', 11 | value: '#FFFFFF', 12 | }, 13 | { 14 | name: 'Surface Secondary', 15 | value: 'rgba(8,18,26,0.04)', 16 | }, 17 | { 18 | name: 'Background Color Dark', 19 | value: '#08121A', 20 | }, 21 | ], 22 | }, 23 | }; 24 | -------------------------------------------------------------------------------- /packages/spindle-ui/.stylelintignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | public/ 3 | -------------------------------------------------------------------------------- /packages/spindle-ui/.svgrrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript": true, 3 | "icon": true, 4 | "ignoreExisting": true, 5 | "svgProps": { 6 | "role": "img" 7 | }, 8 | "svgoConfig": { 9 | "plugins": [ 10 | { 11 | "name": "removeXMLNS" 12 | } 13 | ] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/assets/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-ui/assets/avatar.png -------------------------------------------------------------------------------- /packages/spindle-ui/docs/images/components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openameba/spindle/3da2ccf1643539566d71d0dd177b311bc1687c69/packages/spindle-ui/docs/images/components.png -------------------------------------------------------------------------------- /packages/spindle-ui/figma.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "codeConnect": { 3 | "parser": "react", 4 | "include": ["src/**/*.tsx"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/spindle-ui/firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "public": "public", 4 | "ignore": [ 5 | "firebase.json", 6 | "**/.*", 7 | "**/node_modules/**" 8 | ], 9 | "rewrites": [ 10 | { 11 | "source": "**", 12 | "destination": "/index.html" 13 | } 14 | ] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/spindle-ui/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | verbose: true, 3 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'], 4 | setupFilesAfterEnv: ['/setup-tests.ts'], 5 | transform: { 6 | '^.+\\.tsx?$': 'ts-jest', 7 | }, 8 | testEnvironment: 'jest-environment-jsdom', 9 | }; 10 | -------------------------------------------------------------------------------- /packages/spindle-ui/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | /** 3 | * TODO: create .browserslistrc 4 | * - for modern browsers 5 | * - for IE11 6 | */ 7 | plugins: [ 8 | require('autoprefixer'), 9 | require('postcss-import'), 10 | require('cssnano'), 11 | ], 12 | }; 13 | -------------------------------------------------------------------------------- /packages/spindle-ui/regconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "core": { 3 | "actualDir": ".reg-suit/actual_images" 4 | }, 5 | "plugins": { 6 | "reg-keygen-git-hash-plugin": true, 7 | "reg-notify-github-plugin": { 8 | "clientId": "$REG_SUIT_NOTIFY_CLIENT_ID", 9 | "shortDescription": true 10 | }, 11 | "reg-publish-gcs-plugin": { 12 | "bucketName": "$GCS_BUCKET_NAME_REG_SUIT" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/setup-tests.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/BottomButton/index.ts: -------------------------------------------------------------------------------- 1 | export { BottomButton } from './BottomButton'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Breadcrumb/index.ts: -------------------------------------------------------------------------------- 1 | export { BreadcrumbList } from './BreadcrumbList'; 2 | export { BreadcrumbItem } from './BreadcrumbItem'; 3 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Button/index.ts: -------------------------------------------------------------------------------- 1 | export { Button } from './Button'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/ButtonGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { ButtonGroup } from './ButtonGroup'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Dialog/index.ts: -------------------------------------------------------------------------------- 1 | export { Dialog } from './Dialog'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/DropdownMenu/index.ts: -------------------------------------------------------------------------------- 1 | export { DropdownMenu } from './DropdownMenu'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Form/InputLabel.css: -------------------------------------------------------------------------------- 1 | /* 2 | * InputLabel 3 | */ 4 | .spui-InputLabel { 5 | color: var(--color-text-medium-emphasis); 6 | display: block; 7 | font-size: 0.875em; 8 | font-weight: bold; 9 | line-height: 1.4; 10 | } 11 | 12 | .spui-InputLabel:empty { 13 | display: none; 14 | } 15 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Form/InputLabel.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | interface Props 4 | extends Omit, 'className'> { 5 | children?: React.ReactNode; 6 | id: string; 7 | } 8 | 9 | const BLOCK_NAME = 'spui-InputLabel'; 10 | 11 | export const InputLabel: React.FC = ({ 12 | children, 13 | id = '', 14 | ...rest 15 | }: Props) => { 16 | return ( 17 | 20 | ); 21 | }; 22 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Form/ToggleSwitch.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render, screen } from '@testing-library/react'; 3 | 4 | import { ToggleSwitch } from './ToggleSwitch'; 5 | 6 | describe('', () => { 7 | test('forward ref', () => { 8 | const ref = React.createRef(); 9 | 10 | render(); 11 | 12 | expect(screen.getByRole('checkbox')).toEqual(ref.current); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Form/index.css: -------------------------------------------------------------------------------- 1 | @import './Checkbox.css'; 2 | @import './DropDown.css'; 3 | @import './InlineDropDown.css'; 4 | @import './InputLabel.css'; 5 | @import './InvalidMessage.css'; 6 | @import './Radio.css'; 7 | @import './TextArea.css'; 8 | @import './TextField.css'; 9 | @import './ToggleSwitch.css'; 10 | @import './ButtonSwitch/ButtonSwitch.css'; 11 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Form/index.ts: -------------------------------------------------------------------------------- 1 | export { Checkbox } from './Checkbox'; 2 | export { DropDown } from './DropDown'; 3 | export { InputLabel } from './InputLabel'; 4 | export { InvalidMessage } from './InvalidMessage'; 5 | export { Radio } from './Radio'; 6 | export { TextArea } from './TextArea'; 7 | export { TextField } from './TextField'; 8 | export { ToggleSwitch } from './ToggleSwitch'; 9 | export { ButtonSwitch } from './ButtonSwitch/ButtonSwitch'; 10 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/HeroCarousel/index.ts: -------------------------------------------------------------------------------- 1 | export { HeroCarousel } from './HeroCarousel'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "@typescript-eslint/explicit-module-boundary-types": "off" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/Border.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgBorder = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgBorder; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/ChevronLeft.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgChevronLeft = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgChevronLeft; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/ChevronUp.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgChevronUp = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgChevronUp; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/Circle.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgCircle = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgCircle; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/CommentFill.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgCommentFill = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgCommentFill; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/CropDin.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgCropDin = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgCropDin; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/Dot.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgDot = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgDot; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/FolderFill.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgFolderFill = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgFolderFill; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/MenuHorizontal.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgMenuHorizontal = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgMenuHorizontal; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/MenuVertical.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgMenuVertical = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgMenuVertical; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/Minus.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgMinus = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgMinus; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/MinusBold.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgMinusBold = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgMinusBold; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/Plus.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgPlus = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgPlus; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/SortFeed.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgSortFeed = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgSortFeed; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/StarHalf.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgStarHalf = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgStarHalf; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/StopFill.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgStopFill = (props: SVGProps) => ( 4 | 12 | 17 | 18 | ); 19 | export default SvgStopFill; 20 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Icon/X.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import type { SVGProps } from 'react'; 3 | const SvgX = (props: SVGProps) => ( 4 | 12 | 13 | 14 | ); 15 | export default SvgX; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/IconButton/index.ts: -------------------------------------------------------------------------------- 1 | export { IconButton } from './IconButton'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/InlineNotification/index.ts: -------------------------------------------------------------------------------- 1 | export { InlineNotification } from './InlineNotification'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/LinkButton/index.ts: -------------------------------------------------------------------------------- 1 | export { LinkButton } from './LinkButton'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/List/index.css: -------------------------------------------------------------------------------- 1 | @import './MoreLink.css'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/List/index.ts: -------------------------------------------------------------------------------- 1 | export { MoreLink } from './MoreLink'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Modal/index.css: -------------------------------------------------------------------------------- 1 | @import './AppealModal.css'; 2 | @import './SemiModal.css'; 3 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/NavigationTab/index.css: -------------------------------------------------------------------------------- 1 | @import './UnderlineTab/UnderlineTab.css'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/NavigationTab/index.ts: -------------------------------------------------------------------------------- 1 | export { UnderlineTab } from './UnderlineTab/UnderlineTab'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Pagination/helpers/getLinkRelAttribute.ts: -------------------------------------------------------------------------------- 1 | import type { LinkFollowType } from '../Pagination'; 2 | 3 | type Payload = { 4 | linkFollowType: LinkFollowType; 5 | pageNumber: number; 6 | }; 7 | 8 | export function getLinkRelAttribute({ linkFollowType, pageNumber }: Payload) { 9 | switch (linkFollowType) { 10 | case 'all': 11 | return undefined; 12 | case 'none': 13 | return 'nofollow'; 14 | case 'firstPage': 15 | return pageNumber === 1 ? undefined : 'nofollow'; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Pagination/index.ts: -------------------------------------------------------------------------------- 1 | export { Pagination } from './Pagination'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/SegmentedControl/index.ts: -------------------------------------------------------------------------------- 1 | export { SegmentedControl } from './SegmentedControl'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/SnackBar/index.ts: -------------------------------------------------------------------------------- 1 | export { SnackBar } from './SnackBar'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/StackNotificationManager/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | StackNotificationManagerProvider, 3 | StackPosition, 4 | StackOffset, 5 | StackPositionOffset, 6 | ManagedStack, 7 | StackNotificationManagerProps, 8 | StackNotificationComponentProps, 9 | } from './StackNotificationManager'; 10 | export { 11 | useStackNotificationManager, 12 | useStackInteraction, 13 | useRepeatedStackItem, 14 | useStackNotificationComponent, 15 | } from './hooks'; 16 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/SubtleButton/index.ts: -------------------------------------------------------------------------------- 1 | export { SubtleButton } from './SubtleButton'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/TextButton/index.ts: -------------------------------------------------------------------------------- 1 | export { TextButton } from './TextButton'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/TextLink/TextLink.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render, screen } from '@testing-library/react'; 3 | 4 | import { TextLink } from './TextLink'; 5 | 6 | describe('', () => { 7 | test('forward ref', () => { 8 | const ref = React.createRef(); 9 | 10 | render( 11 | 12 | Text Link 13 | , 14 | ); 15 | 16 | expect(screen.getByRole('link')).toEqual(ref.current); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/TextLink/index.ts: -------------------------------------------------------------------------------- 1 | export { TextLink } from './TextLink'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/Toast/index.ts: -------------------------------------------------------------------------------- 1 | export { Toast } from './Toast'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/index.stories.ts: -------------------------------------------------------------------------------- 1 | import './index.css'; 2 | -------------------------------------------------------------------------------- /packages/spindle-ui/src/types/react.d.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | // TODO: remove this when the type definition is officially supported 4 | declare module 'react' { 5 | interface InputHTMLAttributes extends React.HTMLAttributes { 6 | switch?: string; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/spindle-ui/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "target": "es5", 5 | "outDir": "dist", 6 | "sourceMap": true, 7 | "declaration": true, 8 | "declarationMap": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/spindle-ui/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "target": "ESNext", 5 | "outDir": "dist", 6 | "moduleResolution": "node" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/spindle-ui/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "lib": [ 5 | "DOM" 6 | ], 7 | "baseUrl": ".", 8 | "paths": { 9 | "react": ["./node_modules/@types/react"] 10 | }, 11 | "types": ["node", "jest", "@testing-library/jest-dom"], 12 | "jsx": "react" 13 | }, 14 | "include": [ 15 | "src" 16 | ], 17 | "exclude": [ 18 | "src/**/*.test.*", 19 | "src/**/*.stories.*" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "noUnusedLocals": true, 5 | "noUnusedParameters": true, 6 | "noImplicitReturns": true, 7 | "noFallthroughCasesInSwitch": true, 8 | "allowSyntheticDefaultImports": true, 9 | "esModuleInterop": true, 10 | "forceConsistentCasingInFileNames": true 11 | } 12 | } 13 | --------------------------------------------------------------------------------