@openameba/spindle-ui 0.26.2 → 0.27.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/Breadcrumb/Breadcrumb.css +1 -0
  2. package/Breadcrumb/BreadcrumbItem.d.ts +8 -0
  3. package/Breadcrumb/BreadcrumbItem.d.ts.map +1 -0
  4. package/Breadcrumb/BreadcrumbItem.js +53 -0
  5. package/Breadcrumb/BreadcrumbItem.js.map +1 -0
  6. package/Breadcrumb/BreadcrumbItem.mjs +7 -0
  7. package/Breadcrumb/BreadcrumbList.d.ts +7 -0
  8. package/Breadcrumb/BreadcrumbList.d.ts.map +1 -0
  9. package/Breadcrumb/BreadcrumbList.js +41 -0
  10. package/Breadcrumb/BreadcrumbList.js.map +1 -0
  11. package/Breadcrumb/BreadcrumbList.mjs +12 -0
  12. package/Breadcrumb/index.d.ts +3 -0
  13. package/Breadcrumb/index.d.ts.map +1 -0
  14. package/Breadcrumb/index.js +8 -0
  15. package/Breadcrumb/index.js.map +1 -0
  16. package/Breadcrumb/index.mjs +2 -0
  17. package/Button/Button.mjs +7 -0
  18. package/Button/index.mjs +1 -0
  19. package/ButtonGroup/ButtonGroup.mjs +13 -0
  20. package/ButtonGroup/index.mjs +1 -0
  21. package/CHANGELOG.md +55 -0
  22. package/Form/Checkbox.mjs +11 -0
  23. package/Form/DropDown.mjs +38 -0
  24. package/Form/InlineDropDown.mjs +30 -0
  25. package/Form/InputLabel.mjs +5 -0
  26. package/Form/InvalidMessage.mjs +9 -0
  27. package/Form/Radio.mjs +11 -0
  28. package/Form/TextArea.mjs +5 -0
  29. package/Form/TextField.mjs +9 -0
  30. package/Form/ToggleSwitch.mjs +8 -0
  31. package/Form/index.mjs +8 -0
  32. package/HeroCarousel/HeroCarousel.css +1 -1
  33. package/HeroCarousel/HeroCarousel.mjs +27 -0
  34. package/HeroCarousel/HeroCarouselItem.css +1 -1
  35. package/HeroCarousel/HeroCarouselItem.mjs +20 -0
  36. package/HeroCarousel/hooks/useAutoPlayCarousel.mjs +158 -0
  37. package/HeroCarousel/hooks/useAutoSlide.mjs +40 -0
  38. package/HeroCarousel/hooks/useCarouselFocus.mjs +22 -0
  39. package/HeroCarousel/hooks/useSliderMoveEvent.mjs +47 -0
  40. package/HeroCarousel/hooks/useSliderTransition.mjs +30 -0
  41. package/HeroCarousel/hooks/useValueRef.mjs +8 -0
  42. package/HeroCarousel/index.mjs +1 -0
  43. package/Icon/755.mjs +6 -0
  44. package/Icon/Abemakun.mjs +6 -0
  45. package/Icon/Abematv.mjs +6 -0
  46. package/Icon/Accesslink.mjs +6 -0
  47. package/Icon/Accesspage.mjs +6 -0
  48. package/Icon/AccesspageFill.mjs +6 -0
  49. package/Icon/AddressbookFill.mjs +6 -0
  50. package/Icon/AlbumAddFill.mjs +6 -0
  51. package/Icon/AlbumFill.mjs +6 -0
  52. package/Icon/AlignCenter.mjs +6 -0
  53. package/Icon/AlignLeft.mjs +6 -0
  54. package/Icon/AlignRight.mjs +6 -0
  55. package/Icon/AllFill.mjs +6 -0
  56. package/Icon/Amebacoin.mjs +6 -0
  57. package/Icon/Amebapick.mjs +9 -0
  58. package/Icon/Amegold.mjs +6 -0
  59. package/Icon/Amember.mjs +6 -0
  60. package/Icon/ArrowDown.mjs +6 -0
  61. package/Icon/ArrowDownBold.mjs +6 -0
  62. package/Icon/ArrowLeft.mjs +6 -0
  63. package/Icon/ArrowLeftBold.mjs +6 -0
  64. package/Icon/ArrowRight.mjs +6 -0
  65. package/Icon/ArrowRightBold.mjs +6 -0
  66. package/Icon/ArrowRightCircle.mjs +6 -0
  67. package/Icon/ArrowRightCircleFill.mjs +6 -0
  68. package/Icon/ArrowUp.mjs +6 -0
  69. package/Icon/ArrowUpBold.mjs +6 -0
  70. package/Icon/ArrowpagingDown.mjs +6 -0
  71. package/Icon/ArrowpagingDownCircle.mjs +6 -0
  72. package/Icon/ArrowpagingLeft.mjs +6 -0
  73. package/Icon/ArrowpagingLeftCircle.mjs +6 -0
  74. package/Icon/ArrowpagingRight.mjs +6 -0
  75. package/Icon/ArrowpagingRightCircle.mjs +6 -0
  76. package/Icon/ArrowpagingUp.mjs +6 -0
  77. package/Icon/ArrowpagingUpCircle.mjs +6 -0
  78. package/Icon/Article.mjs +6 -0
  79. package/Icon/ArticleSlash.mjs +6 -0
  80. package/Icon/Articledesign.mjs +6 -0
  81. package/Icon/Astrogy.mjs +6 -0
  82. package/Icon/AstrogyFill.mjs +6 -0
  83. package/Icon/Baby.mjs +7 -0
  84. package/Icon/Bbs.mjs +6 -0
  85. package/Icon/Beginner.mjs +6 -0
  86. package/Icon/Bell.mjs +6 -0
  87. package/Icon/BellFill.mjs +6 -0
  88. package/Icon/BellFillSlash.mjs +6 -0
  89. package/Icon/BellSlash.mjs +6 -0
  90. package/Icon/Blog.mjs +6 -0
  91. package/Icon/Bold.mjs +6 -0
  92. package/Icon/Book.mjs +6 -0
  93. package/Icon/BookFill.mjs +6 -0
  94. package/Icon/Bookmark.mjs +6 -0
  95. package/Icon/BookmarkFill.mjs +6 -0
  96. package/Icon/Bookshelf.mjs +6 -0
  97. package/Icon/BookshelfFill.mjs +6 -0
  98. package/Icon/Border.mjs +6 -0
  99. package/Icon/BottomnavFollowfeedActive.mjs +6 -0
  100. package/Icon/BottomnavFollowfeedInactive.mjs +6 -0
  101. package/Icon/BottomnavHomeActive.mjs +6 -0
  102. package/Icon/BottomnavHomeInactive.mjs +6 -0
  103. package/Icon/BottomnavMypageActive.mjs +6 -0
  104. package/Icon/BottomnavSearchActive.mjs +6 -0
  105. package/Icon/BottomnavSearchInactive.mjs +6 -0
  106. package/Icon/BottomnvavMypageInactive.mjs +6 -0
  107. package/Icon/Bullets.mjs +6 -0
  108. package/Icon/Calendar.mjs +6 -0
  109. package/Icon/CameraFill.mjs +6 -0
  110. package/Icon/CautionFill.mjs +6 -0
  111. package/Icon/Check.mjs +6 -0
  112. package/Icon/CheckBold.mjs +6 -0
  113. package/Icon/CheckCircle.mjs +6 -0
  114. package/Icon/CheckCircleFill.mjs +6 -0
  115. package/Icon/CheckRectangle.mjs +6 -0
  116. package/Icon/Checklist.mjs +6 -0
  117. package/Icon/ChevronDown.mjs +6 -0
  118. package/Icon/ChevronDownBold.mjs +6 -0
  119. package/Icon/ChevronLeft.mjs +6 -0
  120. package/Icon/ChevronLeftBold.mjs +6 -0
  121. package/Icon/ChevronRight.mjs +6 -0
  122. package/Icon/ChevronRightBold.mjs +6 -0
  123. package/Icon/ChevronUp.mjs +6 -0
  124. package/Icon/ChevronUpBold.mjs +6 -0
  125. package/Icon/Circle.mjs +6 -0
  126. package/Icon/CircleBold.mjs +6 -0
  127. package/Icon/CircleFill.mjs +6 -0
  128. package/Icon/Clock.mjs +6 -0
  129. package/Icon/ClockFill.mjs +6 -0
  130. package/Icon/Coin.mjs +6 -0
  131. package/Icon/Comment.mjs +6 -0
  132. package/Icon/CommentFill.mjs +6 -0
  133. package/Icon/CommentPen.mjs +6 -0
  134. package/Icon/CommentTwoFill.mjs +6 -0
  135. package/Icon/CommentTwoSlashFill.mjs +6 -0
  136. package/Icon/Community.mjs +6 -0
  137. package/Icon/Compass.mjs +7 -0
  138. package/Icon/Coupon.mjs +6 -0
  139. package/Icon/Crop.mjs +6 -0
  140. package/Icon/CropDin.mjs +6 -0
  141. package/Icon/CropLandscape.mjs +6 -0
  142. package/Icon/Cross.mjs +6 -0
  143. package/Icon/CrossBold.mjs +6 -0
  144. package/Icon/CrossCircle.mjs +6 -0
  145. package/Icon/CrossCircleFill.mjs +6 -0
  146. package/Icon/CrossRectangle.mjs +6 -0
  147. package/Icon/Cutlery.mjs +6 -0
  148. package/Icon/DiamondTwo.mjs +11 -0
  149. package/Icon/Dice.mjs +7 -0
  150. package/Icon/Dot.mjs +6 -0
  151. package/Icon/Dotmoney.mjs +6 -0
  152. package/Icon/Download.mjs +6 -0
  153. package/Icon/Embed.mjs +6 -0
  154. package/Icon/EmotionFill.mjs +6 -0
  155. package/Icon/EntryLost.mjs +6 -0
  156. package/Icon/Exclamationmark.mjs +6 -0
  157. package/Icon/ExclamationmarkBalloon.mjs +6 -0
  158. package/Icon/ExclamationmarkBalloonFill.mjs +6 -0
  159. package/Icon/ExclamationmarkBold.mjs +6 -0
  160. package/Icon/ExclamationmarkCircle.mjs +6 -0
  161. package/Icon/ExclamationmarkCircleFill.mjs +6 -0
  162. package/Icon/Expand.mjs +6 -0
  163. package/Icon/ExpandExit.mjs +6 -0
  164. package/Icon/Facebook.mjs +6 -0
  165. package/Icon/File.mjs +6 -0
  166. package/Icon/FileAdd.mjs +6 -0
  167. package/Icon/FileAddFill.mjs +6 -0
  168. package/Icon/FileCircle.mjs +6 -0
  169. package/Icon/FileCircleFill.mjs +6 -0
  170. package/Icon/FileFill.mjs +6 -0
  171. package/Icon/Filter.mjs +6 -0
  172. package/Icon/FilterCheck.mjs +6 -0
  173. package/Icon/Fit.mjs +6 -0
  174. package/Icon/FlagFill.mjs +6 -0
  175. package/Icon/FlagRanking.mjs +6 -0
  176. package/Icon/FlagRankingTrim.mjs +10 -0
  177. package/Icon/Flash.mjs +6 -0
  178. package/Icon/FlashAuto.mjs +6 -0
  179. package/Icon/FlashOff.mjs +6 -0
  180. package/Icon/Flowervase.mjs +6 -0
  181. package/Icon/Folder.mjs +6 -0
  182. package/Icon/FolderFill.mjs +6 -0
  183. package/Icon/FolderTwo.mjs +6 -0
  184. package/Icon/FolderTwoFill.mjs +6 -0
  185. package/Icon/Font.mjs +6 -0
  186. package/Icon/Fontstyle.mjs +6 -0
  187. package/Icon/Game.mjs +6 -0
  188. package/Icon/GameFill.mjs +6 -0
  189. package/Icon/GameKantan.mjs +6 -0
  190. package/Icon/Gear.mjs +6 -0
  191. package/Icon/GearFill.mjs +6 -0
  192. package/Icon/Genre.mjs +6 -0
  193. package/Icon/GenreAdd.mjs +6 -0
  194. package/Icon/GenreDone.mjs +6 -0
  195. package/Icon/GraphBar.mjs +6 -0
  196. package/Icon/Gruppo.mjs +6 -0
  197. package/Icon/HandWaveFill.mjs +6 -0
  198. package/Icon/Hatenabookmark.mjs +6 -0
  199. package/Icon/Heart.mjs +6 -0
  200. package/Icon/HeartFill.mjs +6 -0
  201. package/Icon/History.mjs +6 -0
  202. package/Icon/HomeFill.mjs +6 -0
  203. package/Icon/Hot.mjs +6 -0
  204. package/Icon/Htmltag.mjs +6 -0
  205. package/Icon/ImageAddFill.mjs +6 -0
  206. package/Icon/ImageBanFill.mjs +6 -0
  207. package/Icon/ImageFill.mjs +6 -0
  208. package/Icon/ImageFillSlash.mjs +6 -0
  209. package/Icon/ImageQuestionFill.mjs +6 -0
  210. package/Icon/Information.mjs +6 -0
  211. package/Icon/Instagram.mjs +6 -0
  212. package/Icon/Italic.mjs +6 -0
  213. package/Icon/Kaomoji.mjs +6 -0
  214. package/Icon/Keyboard.mjs +6 -0
  215. package/Icon/KeyboardDownFill.mjs +6 -0
  216. package/Icon/KeyboardFill.mjs +6 -0
  217. package/Icon/Koeblog.mjs +6 -0
  218. package/Icon/LineCircle.mjs +6 -0
  219. package/Icon/LineSquare.mjs +6 -0
  220. package/Icon/Link.mjs +6 -0
  221. package/Icon/ListBulleted.mjs +6 -0
  222. package/Icon/ListNumbered.mjs +6 -0
  223. package/Icon/Loading.mjs +6 -0
  224. package/Icon/LockFill.mjs +6 -0
  225. package/Icon/LockOpenFill.mjs +6 -0
  226. package/Icon/Magicwand.mjs +6 -0
  227. package/Icon/Mail.mjs +6 -0
  228. package/Icon/MailCheck.mjs +6 -0
  229. package/Icon/MailCircle.mjs +6 -0
  230. package/Icon/MailCircleFill.mjs +6 -0
  231. package/Icon/MailFill.mjs +6 -0
  232. package/Icon/Megaphone.mjs +6 -0
  233. package/Icon/MenuHamburger.mjs +6 -0
  234. package/Icon/MenuHamburgerBold.mjs +6 -0
  235. package/Icon/MenuHamburgerFourline.mjs +6 -0
  236. package/Icon/MenuHorizotal.mjs +6 -0
  237. package/Icon/MenuVertical.mjs +6 -0
  238. package/Icon/Messageboard.mjs +6 -0
  239. package/Icon/Microphone.mjs +6 -0
  240. package/Icon/MicrophoneFill.mjs +6 -0
  241. package/Icon/Minus.mjs +6 -0
  242. package/Icon/MinusBold.mjs +6 -0
  243. package/Icon/Moon.mjs +6 -0
  244. package/Icon/MoonFill.mjs +6 -0
  245. package/Icon/MovieCameraFill.mjs +6 -0
  246. package/Icon/MoviePlay.mjs +6 -0
  247. package/Icon/MoviePlayFill.mjs +6 -0
  248. package/Icon/MovieStop.mjs +6 -0
  249. package/Icon/MusicFill.mjs +6 -0
  250. package/Icon/New.mjs +6 -0
  251. package/Icon/Newbook.mjs +6 -0
  252. package/Icon/NewbookFill.mjs +6 -0
  253. package/Icon/News.mjs +6 -0
  254. package/Icon/Nice.mjs +6 -0
  255. package/Icon/NiceDone.mjs +6 -0
  256. package/Icon/Nodate.mjs +6 -0
  257. package/Icon/Now.mjs +6 -0
  258. package/Icon/Officialstar.mjs +6 -0
  259. package/Icon/OfficialstarFill.mjs +6 -0
  260. package/Icon/OnedariFill.mjs +6 -0
  261. package/Icon/OpenCl.mjs +6 -0
  262. package/Icon/Openblank.mjs +6 -0
  263. package/Icon/OpenblankFill.mjs +6 -0
  264. package/Icon/Ownd.mjs +6 -0
  265. package/Icon/PaletteFill.mjs +6 -0
  266. package/Icon/Pause.mjs +6 -0
  267. package/Icon/PauseBold.mjs +6 -0
  268. package/Icon/Pawprint.mjs +6 -0
  269. package/Icon/Pencil.mjs +6 -0
  270. package/Icon/PencilAdd.mjs +6 -0
  271. package/Icon/PencilBold.mjs +6 -0
  272. package/Icon/Person.mjs +6 -0
  273. package/Icon/PersonFill.mjs +6 -0
  274. package/Icon/PersonThreeFill.mjs +6 -0
  275. package/Icon/PersonTwoAddFill.mjs +6 -0
  276. package/Icon/PersonTwoDeleteFill.mjs +6 -0
  277. package/Icon/PersonTwoDoneFill.mjs +6 -0
  278. package/Icon/PersonTwoFill.mjs +6 -0
  279. package/Icon/Peta.mjs +6 -0
  280. package/Icon/Pigg.mjs +6 -0
  281. package/Icon/PinFill.mjs +6 -0
  282. package/Icon/PlayCircle.mjs +6 -0
  283. package/Icon/PlayFill.mjs +6 -0
  284. package/Icon/Plus.mjs +6 -0
  285. package/Icon/PlusBold.mjs +6 -0
  286. package/Icon/PlusCircle.mjs +6 -0
  287. package/Icon/PlusCircleFill.mjs +6 -0
  288. package/Icon/PremiumFill.mjs +6 -0
  289. package/Icon/Present.mjs +6 -0
  290. package/Icon/Profilecard.mjs +6 -0
  291. package/Icon/Qr.mjs +6 -0
  292. package/Icon/Question.mjs +6 -0
  293. package/Icon/QuestionmarkCircle.mjs +6 -0
  294. package/Icon/QuestionmarkCircleFill.mjs +6 -0
  295. package/Icon/RankingCrown.mjs +6 -0
  296. package/Icon/RankingCrownFill.mjs +6 -0
  297. package/Icon/RankingPlatformFill.mjs +6 -0
  298. package/Icon/Reblog.mjs +6 -0
  299. package/Icon/ReblogSlash.mjs +6 -0
  300. package/Icon/Redo.mjs +6 -0
  301. package/Icon/RedoBold.mjs +6 -0
  302. package/Icon/Refresh.mjs +6 -0
  303. package/Icon/ReplyCircleFill.mjs +6 -0
  304. package/Icon/ReplyFill.mjs +6 -0
  305. package/Icon/Requ.mjs +6 -0
  306. package/Icon/Sad.mjs +6 -0
  307. package/Icon/Saveblog.mjs +6 -0
  308. package/Icon/ScreenFull.mjs +6 -0
  309. package/Icon/ScreenInline.mjs +6 -0
  310. package/Icon/Search.mjs +6 -0
  311. package/Icon/Service.mjs +6 -0
  312. package/Icon/Share.mjs +6 -0
  313. package/Icon/ShineFill.mjs +6 -0
  314. package/Icon/Shirt.mjs +6 -0
  315. package/Icon/SidefaceClose.mjs +6 -0
  316. package/Icon/SidefaceOpen.mjs +6 -0
  317. package/Icon/Smartphone.mjs +6 -0
  318. package/Icon/SmartphoneFill.mjs +6 -0
  319. package/Icon/Sort.mjs +6 -0
  320. package/Icon/SortFeed.mjs +6 -0
  321. package/Icon/SortTile.mjs +6 -0
  322. package/Icon/SpeakerOffFill.mjs +6 -0
  323. package/Icon/SpeakerOnFill.mjs +6 -0
  324. package/Icon/Sprout.mjs +6 -0
  325. package/Icon/Stampside.mjs +6 -0
  326. package/Icon/Star.mjs +6 -0
  327. package/Icon/StarCircleFill.mjs +6 -0
  328. package/Icon/StarFaceFill.mjs +6 -0
  329. package/Icon/StarFill.mjs +6 -0
  330. package/Icon/StopFill.mjs +6 -0
  331. package/Icon/Strikethrough.mjs +6 -0
  332. package/Icon/Sun.mjs +6 -0
  333. package/Icon/SunFill.mjs +6 -0
  334. package/Icon/Switching.mjs +6 -0
  335. package/Icon/SwitchingCamera.mjs +6 -0
  336. package/Icon/TagFill.mjs +6 -0
  337. package/Icon/TagOfficialFill.mjs +6 -0
  338. package/Icon/Thumbsup.mjs +6 -0
  339. package/Icon/ThumbsupFill.mjs +6 -0
  340. package/Icon/Title.mjs +6 -0
  341. package/Icon/TopbloggerRibbon.mjs +6 -0
  342. package/Icon/TranscriptOff.mjs +6 -0
  343. package/Icon/TranscriptOn.mjs +6 -0
  344. package/Icon/Transmission.mjs +6 -0
  345. package/Icon/Trashcan.mjs +6 -0
  346. package/Icon/Trend.mjs +6 -0
  347. package/Icon/TrendFill.mjs +6 -0
  348. package/Icon/TriangleDown.mjs +6 -0
  349. package/Icon/TriangleLeft.mjs +6 -0
  350. package/Icon/TriangleRight.mjs +6 -0
  351. package/Icon/TriangleUp.mjs +6 -0
  352. package/Icon/TrianglearrowDown.mjs +6 -0
  353. package/Icon/TrianglearrowDownright.mjs +6 -0
  354. package/Icon/TrianglearrowRight.mjs +6 -0
  355. package/Icon/TrianglearrowUp.mjs +6 -0
  356. package/Icon/TrianglearrowUpright.mjs +6 -0
  357. package/Icon/TriangleendLeft.mjs +6 -0
  358. package/Icon/TriangleendRight.mjs +6 -0
  359. package/Icon/TrophyFill.mjs +6 -0
  360. package/Icon/TvFill.mjs +6 -0
  361. package/Icon/Twitter.mjs +6 -0
  362. package/Icon/Underline.mjs +6 -0
  363. package/Icon/Undo.mjs +6 -0
  364. package/Icon/UndoBold.mjs +6 -0
  365. package/Icon/Wallet.mjs +6 -0
  366. package/Icon/Webview.mjs +6 -0
  367. package/Icon/Youtube.mjs +6 -0
  368. package/Icon/index.mjs +325 -0
  369. package/IconButton/IconButton.mjs +5 -0
  370. package/IconButton/index.mjs +1 -0
  371. package/LinkButton/LinkButton.mjs +7 -0
  372. package/LinkButton/index.mjs +1 -0
  373. package/README.md +3 -1
  374. package/Toast/Toast.mjs +67 -0
  375. package/Toast/index.mjs +1 -0
  376. package/index.css +1 -1
  377. package/index.d.ts +2 -1
  378. package/index.d.ts.map +1 -1
  379. package/index.js +4 -1
  380. package/index.js.map +1 -1
  381. package/index.mjs +11 -0
  382. package/package.json +11 -3
  383. package/tsconfig.cjs.json +10 -0
  384. package/tsconfig.esm.json +8 -0
@@ -0,0 +1 @@
1
+ .spui-Breadcrumb{background:var(--color-surface-secondary);border-radius:70px;display:inline-block;overflow:hidden;padding:0 16px}.spui-Breadcrumb-list{align-items:center;display:flex;list-style:none;margin:0;padding:0}.spui-Breadcrumb-item{align-items:center;display:flex;min-height:56px}.spui-Breadcrumb a{align-items:center;border-radius:4px;display:flex;letter-spacing:.1em;line-height:1.3;padding:4px 8px;position:relative;text-decoration:none}.spui-Breadcrumb a:not([aria-current]){color:var(--color-text-accent-primary);font-weight:700}.spui-Breadcrumb a[aria-current]{color:var(--color-text-low-emphasis);font-weight:400}.spui-Breadcrumb a:before{border-radius:4px;content:"";left:0;min-height:56px;position:absolute;top:-50%;width:100%}.spui-Breadcrumb a:hover{text-decoration:underline}.spui-Breadcrumb a:focus{box-shadow:0 0 0 1px var(--color-surface-secondary),0 0 0 3px var(--color-focus-clarity);outline:none}.spui-Breadcrumb a:focus:not(:focus-visible){box-shadow:none}.spui-Breadcrumb-chevron{color:var(--color-object-low-emphasis);height:16px;padding:0 4px;width:16px}.spui-Breadcrumb-item:last-of-type>.spui-Breadcrumb-chevron{display:none;padding:0}@media screen and (max-width:375px){.spui-Breadcrumb{padding:0 14px}.spui-Breadcrumb-item{min-height:40px}.spui-Breadcrumb a{font-size:.8125em;padding:2px 6px}.spui-Breadcrumb a:not([aria-current]):before{min-height:40px}.spui-Breadcrumb-chevron{height:12px;padding:0 2px;width:12px}}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface Props extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
3
+ children?: React.ReactNode;
4
+ current?: boolean;
5
+ }
6
+ export declare const BreadcrumbItem: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLAnchorElement>>;
7
+ export {};
8
+ //# sourceMappingURL=BreadcrumbItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumb/BreadcrumbItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,UAAU,KAAM,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACnE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,iFAe1B,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __rest = (this && this.__rest) || function (s, e) {
33
+ var t = {};
34
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35
+ t[p] = s[p];
36
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
37
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
38
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
39
+ t[p[i]] = s[p[i]];
40
+ }
41
+ return t;
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.BreadcrumbItem = void 0;
45
+ var react_1 = __importStar(require("react"));
46
+ exports.BreadcrumbItem = react_1.forwardRef(function Item(_a, ref) {
47
+ var children = _a.children, current = _a.current, rest = __rest(_a, ["children", "current"]);
48
+ if (current) {
49
+ return (react_1.default.createElement("a", __assign({ ref: ref, "aria-current": "page" }, rest), children));
50
+ }
51
+ return (react_1.default.createElement("a", __assign({ ref: ref }, rest), children));
52
+ });
53
+ //# sourceMappingURL=BreadcrumbItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbItem.js","sourceRoot":"","sources":["../../src/Breadcrumb/BreadcrumbItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAO7B,QAAA,cAAc,GAAG,kBAAU,CACtC,SAAS,IAAI,CAAC,EAAqC,EAAE,GAAG;IAAxC,IAAA,QAAQ,cAAA,EAAE,OAAO,aAAA,EAAK,IAAI,cAA5B,uBAA8B,CAAF;IACxC,IAAI,OAAO,EAAE;QACX,OAAO,CACL,8CAAG,GAAG,EAAE,GAAG,kBAAe,MAAM,IAAK,IAAI,GACtC,QAAQ,CACP,CACL,CAAC;KACH;IACD,OAAO,CACL,8CAAG,GAAG,EAAE,GAAG,IAAM,IAAI,GAClB,QAAQ,CACP,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React, { forwardRef } from 'react';
2
+ export const BreadcrumbItem = forwardRef(function Item({ children, current, ...rest }, ref) {
3
+ if (current) {
4
+ return (React.createElement("a", Object.assign({ ref: ref, "aria-current": "page" }, rest), children));
5
+ }
6
+ return (React.createElement("a", Object.assign({ ref: ref }, rest), children));
7
+ });
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface Props extends React.HTMLAttributes<HTMLElement> {
3
+ children?: React.ReactNode;
4
+ }
5
+ export declare const BreadcrumbList: (props: Props) => JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=BreadcrumbList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbList.d.ts","sourceRoot":"","sources":["../../src/Breadcrumb/BreadcrumbList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,KAAM,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACvD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAID,eAAO,MAAM,cAAc,UAAW,KAAK,gBAuB1C,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.BreadcrumbList = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var ChevronRightBold_1 = __importDefault(require("../Icon/ChevronRightBold"));
31
+ var BLOCK_NAME = 'spui-Breadcrumb';
32
+ exports.BreadcrumbList = function (props) {
33
+ var children = props.children, className = props.className, rest = __rest(props, ["children", "className"]);
34
+ return (react_1.default.createElement("nav", __assign({ "aria-label": "\u30D1\u30F3\u304F\u305A\u30EA\u30B9\u30C8", className: [BLOCK_NAME, className].join(' ').trim() }, rest),
35
+ react_1.default.createElement("ol", { className: BLOCK_NAME + "-list" }, react_1.default.Children.map(children, function (child) {
36
+ return react_1.default.isValidElement(child) ? (react_1.default.createElement("li", { className: BLOCK_NAME + "-item" },
37
+ child,
38
+ react_1.default.createElement(ChevronRightBold_1.default, { "aria-hidden": "true", className: BLOCK_NAME + "-chevron" }))) : null;
39
+ }))));
40
+ };
41
+ //# sourceMappingURL=BreadcrumbList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbList.js","sourceRoot":"","sources":["../../src/Breadcrumb/BreadcrumbList.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,8EAAwD;AAMxD,IAAM,UAAU,GAAG,iBAAiB,CAAC;AAExB,QAAA,cAAc,GAAG,UAAC,KAAY;IACjC,IAAA,QAAQ,GAAyB,KAAK,SAA9B,EAAE,SAAS,GAAc,KAAK,UAAnB,EAAK,IAAI,UAAK,KAAK,EAAxC,yBAAgC,CAAF,CAAW;IAC/C,OAAO,CACL,8DACa,4CAAS,EACpB,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAC/C,IAAI;QAER,sCAAI,SAAS,EAAK,UAAU,UAAO,IAChC,eAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,KAAK;YAClC,OAAO,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnC,sCAAI,SAAS,EAAK,UAAU,UAAO;gBAChC,KAAK;gBACN,8BAAC,0BAAgB,mBACH,MAAM,EAClB,SAAS,EAAK,UAAU,aAAU,GAClC,CACC,CACN,CAAC,CAAC,CAAC,IAAI,CAAC;QACX,CAAC,CAAC,CACC,CACD,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import ChevronRightBold from '../Icon/ChevronRightBold';
3
+ const BLOCK_NAME = 'spui-Breadcrumb';
4
+ export const BreadcrumbList = (props) => {
5
+ const { children, className, ...rest } = props;
6
+ return (React.createElement("nav", Object.assign({ "aria-label": "\u30D1\u30F3\u304F\u305A\u30EA\u30B9\u30C8", className: [BLOCK_NAME, className].join(' ').trim() }, rest),
7
+ React.createElement("ol", { className: `${BLOCK_NAME}-list` }, React.Children.map(children, (child) => {
8
+ return React.isValidElement(child) ? (React.createElement("li", { className: `${BLOCK_NAME}-item` },
9
+ child,
10
+ React.createElement(ChevronRightBold, { "aria-hidden": "true", className: `${BLOCK_NAME}-chevron` }))) : null;
11
+ }))));
12
+ };
@@ -0,0 +1,3 @@
1
+ export { BreadcrumbList } from './BreadcrumbList';
2
+ export { BreadcrumbItem } from './BreadcrumbItem';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Breadcrumb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BreadcrumbItem = exports.BreadcrumbList = void 0;
4
+ var BreadcrumbList_1 = require("./BreadcrumbList");
5
+ Object.defineProperty(exports, "BreadcrumbList", { enumerable: true, get: function () { return BreadcrumbList_1.BreadcrumbList; } });
6
+ var BreadcrumbItem_1 = require("./BreadcrumbItem");
7
+ Object.defineProperty(exports, "BreadcrumbItem", { enumerable: true, get: function () { return BreadcrumbItem_1.BreadcrumbItem; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Breadcrumb/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
@@ -0,0 +1,2 @@
1
+ export { BreadcrumbList } from './BreadcrumbList';
2
+ export { BreadcrumbItem } from './BreadcrumbItem';
@@ -0,0 +1,7 @@
1
+ import React, { forwardRef } from 'react';
2
+ const BLOCK_NAME = 'spui-Button';
3
+ export const Button = forwardRef(function Button({ children, layout = 'intrinsic', size = 'large', variant = 'contained', icon, ...rest }, ref) {
4
+ return (React.createElement("button", Object.assign({ className: `${BLOCK_NAME} ${BLOCK_NAME}--${layout} ${BLOCK_NAME}--${size} ${BLOCK_NAME}--${variant}`, ref: ref }, rest), icon ? (React.createElement(React.Fragment, null,
5
+ React.createElement("span", { className: `${BLOCK_NAME}-icon ${BLOCK_NAME}-icon--${size}` }, icon),
6
+ children)) : (children)));
7
+ });
@@ -0,0 +1 @@
1
+ export { Button } from './Button';
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ const BLOCK_NAME = 'spui-ButtonGroup';
3
+ export const ButtonGroup = ({ children, className, direction = 'row', size = 'large', ...rest }) => {
4
+ const classnames = [
5
+ BLOCK_NAME,
6
+ `${BLOCK_NAME}--${direction}`,
7
+ `${BLOCK_NAME}--${size}`,
8
+ className,
9
+ ]
10
+ .filter(Boolean)
11
+ .join(' ');
12
+ return (React.createElement("div", Object.assign({ className: classnames }, rest), children));
13
+ };
@@ -0,0 +1 @@
1
+ export { ButtonGroup } from './ButtonGroup';
package/CHANGELOG.md CHANGED
@@ -3,6 +3,39 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.27.1-alpha.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.27.0...@openameba/spindle-ui@0.27.1-alpha.0) (2022-03-18)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **spindle-ui:** set side effect for css ([c70cd42](https://github.com/openameba/spindle/commit/c70cd42e91959e8fe921a992f2c26eac3f5e920f))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.27.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.26.3...@openameba/spindle-ui@0.27.0) (2022-03-18)
18
+
19
+
20
+ ### Features
21
+
22
+ * **spindle-ui:** add Breadcrumb component ([3066aba](https://github.com/openameba/spindle/commit/3066abae0a56265437cb363315164d77ba3268a4))
23
+
24
+
25
+
26
+
27
+
28
+ ## [0.26.3](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.26.2...@openameba/spindle-ui@0.26.3) (2022-03-14)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * **spindle-ui:** fix HeroCarousel image size ([fa5cd3c](https://github.com/openameba/spindle/commit/fa5cd3c0e4383070e217364e0f19a0599d3ce6ae))
34
+
35
+
36
+
37
+
38
+
6
39
  ## [0.26.2](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.26.1...@openameba/spindle-ui@0.26.2) (2022-02-25)
7
40
 
8
41
 
@@ -32,6 +65,13 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
32
65
 
33
66
  * **spindle-ui:** add HeroCarousel component ([d7e0a53](https://github.com/openameba/spindle/commit/d7e0a5302cfca4d7600188098ef4dd224998e2bb))
34
67
 
68
+ ## [0.25.2-alpha.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.25.1...@openameba/spindle-ui@0.25.2-alpha.0) (2021-12-09)
69
+
70
+
71
+ ### Bug Fixes
72
+
73
+ * **spindle-ui:** set side effect for css ([bdf0c9f](https://github.com/openameba/spindle/commit/bdf0c9ff79a69ad9dd2706dcfe96bd29559b373e))
74
+
35
75
 
36
76
 
37
77
 
@@ -92,12 +132,19 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
92
132
  ### Features
93
133
 
94
134
  * **spindle-icons:** update icons ([39ce767](https://github.com/openameba/spindle/commit/39ce7673df4556ee3b9a6ea6dc62ad25236a6fc9))
135
+ ## [0.22.1-alpha.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.22.0...@openameba/spindle-ui@0.22.1-alpha.0) (2021-09-06)
136
+
137
+
138
+ ### Bug Fixes
139
+
140
+ * **spindle-ui:** set side effect for css ([f26be31](https://github.com/openameba/spindle/commit/f26be31bf53ec73fbe00222773ba691809dae5d5))
95
141
 
96
142
 
97
143
 
98
144
 
99
145
 
100
146
  # [0.22.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.21.2...@openameba/spindle-ui@0.22.0) (2021-09-06)
147
+ ## [0.21.3-alpha.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.21.2...@openameba/spindle-ui@0.21.3-alpha.0) (2021-07-30)
101
148
 
102
149
 
103
150
  ### Bug Fixes
@@ -119,12 +166,14 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
119
166
  ### BREAKING CHANGES
120
167
 
121
168
  * **spindle-icons,spindle-ui:** setting icon was renamed to gear
169
+ * **spindle-ui:** set side effect for css ([ec4e8f1](https://github.com/openameba/spindle/commit/ec4e8f143cd6769cc6b3d49534233a46eaf79b2d))
122
170
 
123
171
 
124
172
 
125
173
 
126
174
 
127
175
  ## [0.21.2](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.21.1...@openameba/spindle-ui@0.21.2) (2021-07-30)
176
+ ## [0.21.2-alpha.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.21.1...@openameba/spindle-ui@0.21.2-alpha.0) (2021-07-28)
128
177
 
129
178
  **Note:** Version bump only for package @openameba/spindle-ui
130
179
 
@@ -185,6 +234,9 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
185
234
  ### Features
186
235
 
187
236
  * **spindle-icons:** update icons ([ae07c8e](https://github.com/openameba/spindle/commit/ae07c8eca4f33789c45b3c3d6a2e7f8f17c11e81))
237
+ ## [0.18.1-alpha.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.18.0...@openameba/spindle-ui@0.18.1-alpha.0) (2021-06-11)
238
+
239
+ **Note:** Version bump only for package @openameba/spindle-ui
188
240
 
189
241
 
190
242
 
@@ -240,6 +292,9 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
240
292
  ### Bug Fixes
241
293
 
242
294
  * **spindle-ui:** fix CSS variable name ([f76d2ee](https://github.com/openameba/spindle/commit/f76d2ee1840574a1247a20ea1ee212b85d99708e))
295
+ # [0.15.0-alpha.0](https://github.com/openameba/spindle/compare/@openameba/spindle-ui@0.14.0...@openameba/spindle-ui@0.15.0-alpha.0) (2021-03-15)
296
+
297
+ **Note:** Version bump only for package @openameba/spindle-ui
243
298
 
244
299
 
245
300
 
@@ -0,0 +1,11 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { CheckBold } from '../Icon';
3
+ const BLOCK_NAME = 'spui-Checkbox';
4
+ export const Checkbox = forwardRef(function Checkbox({ children, ...rest }, ref) {
5
+ return (React.createElement("label", { className: `${BLOCK_NAME}-label` },
6
+ React.createElement("input", Object.assign({ className: `${BLOCK_NAME}-input`, ref: ref, type: "checkbox" }, rest)),
7
+ React.createElement("span", { className: `${BLOCK_NAME}-icon` },
8
+ React.createElement(CheckBold, { "aria-hidden": "true" })),
9
+ React.createElement("span", { className: `${BLOCK_NAME}-outline` }),
10
+ children && React.createElement("span", { className: `${BLOCK_NAME}-text` }, children)));
11
+ });
@@ -0,0 +1,38 @@
1
+ import React, { forwardRef, useEffect, useRef, useState } from 'react';
2
+ import mergeRefs from 'react-merge-refs';
3
+ import { ChevronDownBold } from '../Icon';
4
+ const BLOCK_NAME = 'spui-DropDown';
5
+ export const DropDown = forwardRef(function DropDown({ children, hasError = false, onChange, ...rest }, ref) {
6
+ const selectEl = useRef(null);
7
+ const [text, setText] = useState('');
8
+ const [disabled, setDisabled] = useState(false);
9
+ const update = () => {
10
+ if (selectEl && selectEl.current) {
11
+ const selectedEl = selectEl.current.options[selectEl.current.selectedIndex];
12
+ const value = selectedEl.text;
13
+ const disabled = selectedEl.disabled;
14
+ setText(value);
15
+ setDisabled(disabled);
16
+ }
17
+ };
18
+ const handleChange = (event) => {
19
+ if (typeof onChange === 'function') {
20
+ onChange(event);
21
+ }
22
+ update();
23
+ };
24
+ // Update text once
25
+ useEffect(update, []);
26
+ return (React.createElement("label", { className: [
27
+ `${BLOCK_NAME}-label`,
28
+ !disabled ? 'is-active' : '',
29
+ hasError ? 'is-error' : '',
30
+ ]
31
+ .filter(Boolean)
32
+ .join(' ') },
33
+ React.createElement("span", { className: `${BLOCK_NAME}-visual` }, text),
34
+ React.createElement("span", { className: `${BLOCK_NAME}-icon` },
35
+ React.createElement(ChevronDownBold, { "aria-hidden": "true" })),
36
+ React.createElement("select", Object.assign({ className: `${BLOCK_NAME}-select`, ref: mergeRefs([selectEl, ref]), onChange: handleChange }, rest), children),
37
+ React.createElement("span", { className: `${BLOCK_NAME}-outline` })));
38
+ });
@@ -0,0 +1,30 @@
1
+ import React, { forwardRef, useEffect, useRef, useState } from 'react';
2
+ import mergeRefs from 'react-merge-refs';
3
+ import { ChevronDownBold } from '../Icon';
4
+ const BLOCK_NAME = 'spui-InlineDropDown';
5
+ export const InlineDropDown = forwardRef(function InlineDropDown({ children, visualSize = 'medium', onChange, ...rest }, ref) {
6
+ const selectEl = useRef(null);
7
+ const [text, setText] = useState('');
8
+ const update = () => {
9
+ if (selectEl && selectEl.current) {
10
+ const selectedEl = selectEl.current.options[selectEl.current.selectedIndex];
11
+ const value = selectedEl.text;
12
+ setText(value);
13
+ }
14
+ };
15
+ const handleChange = (event) => {
16
+ if (typeof onChange === 'function') {
17
+ onChange(event);
18
+ }
19
+ update();
20
+ };
21
+ // Update text once
22
+ useEffect(update, []);
23
+ return (React.createElement("label", { className: [`${BLOCK_NAME}-label`].filter(Boolean).join(' ') },
24
+ React.createElement("span", { className: `${BLOCK_NAME}-visual` },
25
+ React.createElement("span", { className: `${BLOCK_NAME}-text ${BLOCK_NAME}-text--${visualSize}` }, text),
26
+ React.createElement("span", { className: `${BLOCK_NAME}-icon ${BLOCK_NAME}-icon--${visualSize}` },
27
+ React.createElement(ChevronDownBold, { "aria-hidden": "true" }))),
28
+ React.createElement("select", Object.assign({ className: `${BLOCK_NAME}-select ${BLOCK_NAME}-select--${visualSize}`, ref: mergeRefs([selectEl, ref]), onChange: handleChange }, rest), children),
29
+ React.createElement("span", { className: `${BLOCK_NAME}-outline` })));
30
+ });
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ const BLOCK_NAME = 'spui-InputLabel';
3
+ export const InputLabel = ({ children, id = '', ...rest }) => {
4
+ return (React.createElement("label", Object.assign({ className: BLOCK_NAME, htmlFor: id }, rest), children));
5
+ };
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ExclamationmarkCircleFill } from '../Icon';
3
+ const BLOCK_NAME = 'spui-InvalidMessage';
4
+ export const InvalidMessage = ({ children, visible = false, ...rest }) => {
5
+ return (React.createElement("p", Object.assign({ className: BLOCK_NAME, hidden: !visible }, rest),
6
+ React.createElement("span", { className: `${BLOCK_NAME}-icon` },
7
+ React.createElement(ExclamationmarkCircleFill, { "aria-hidden": "true" })),
8
+ React.createElement("span", { className: `${BLOCK_NAME}-body` }, children)));
9
+ };
package/Form/Radio.mjs ADDED
@@ -0,0 +1,11 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { CheckBold } from '../Icon';
3
+ const BLOCK_NAME = 'spui-Radio';
4
+ export const Radio = forwardRef(function Radio({ children, id = '', ...rest }, ref) {
5
+ return (React.createElement("label", { className: `${BLOCK_NAME}-label`, htmlFor: id },
6
+ React.createElement("input", Object.assign({ className: `${BLOCK_NAME}-input`, id: id, ref: ref, type: "radio" }, rest)),
7
+ React.createElement("span", { className: `${BLOCK_NAME}-icon` },
8
+ React.createElement(CheckBold, { "aria-hidden": "true" })),
9
+ React.createElement("span", { className: `${BLOCK_NAME}-outline` }),
10
+ children && React.createElement("span", { className: `${BLOCK_NAME}-text` }, children)));
11
+ });
@@ -0,0 +1,5 @@
1
+ import React, { forwardRef } from 'react';
2
+ const BLOCK_NAME = 'spui-TextArea';
3
+ export const TextArea = forwardRef(function TextArea({ children, hasError = false, id = '', ...rest }, ref) {
4
+ return (React.createElement("textarea", Object.assign({ className: [`${BLOCK_NAME}`, hasError ? 'is-error' : ''].join(' '), id: id, ref: ref }, rest), children));
5
+ });
@@ -0,0 +1,9 @@
1
+ import React, { forwardRef } from 'react';
2
+ const BLOCK_NAME = 'spui-TextField';
3
+ export const TextField = forwardRef(function TextField({ hasError = false, id = '', variant = 'medium', ...rest }, ref) {
4
+ return (React.createElement("input", Object.assign({ className: [
5
+ `${BLOCK_NAME}`,
6
+ `${BLOCK_NAME}--${variant}`,
7
+ hasError ? 'is-error' : '',
8
+ ].join(' '), id: id, ref: ref }, rest)));
9
+ });
@@ -0,0 +1,8 @@
1
+ import React, { forwardRef } from 'react';
2
+ const BLOCK_NAME = 'spui-ToggleSwitch';
3
+ export const ToggleSwitch = forwardRef(function ToggleSwitch({ id = '', ...rest }, ref) {
4
+ return (React.createElement("label", { className: BLOCK_NAME },
5
+ React.createElement("input", Object.assign({ className: `${BLOCK_NAME}-input`, id: id, ref: ref, type: "checkbox" }, rest)),
6
+ React.createElement("span", { className: `${BLOCK_NAME}-visual` }),
7
+ React.createElement("span", { className: `${BLOCK_NAME}-outline` })));
8
+ });
package/Form/index.mjs ADDED
@@ -0,0 +1,8 @@
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';
@@ -1 +1 @@
1
- :root{--HeroCarouselItem-onFocus-boxShadow:0 0 0 1px var(--color-surface-primary),0 0 0 3px var(--color-focus-clarity)}.spui-HeroCarouselItem-listItem{list-style:none;padding:0 .44em;width:100%}.spui-HeroCarouselItem-link{border:1px solid var(--color-border-low-emphasis);border-radius:12px;box-sizing:border-box;display:flex;flex-direction:column;height:12em;text-decoration:none;width:17.5em}.spui-HeroCarouselItem-link:focus{box-shadow:var(--HeroCarouselItem-onFocus-boxShadow);outline:none}.spui-HeroCarouselItem-link:focus:not(:focus-visible){box-shadow:none}.spui-HeroCarouselItem-imageBlock{align-items:center;border-bottom:1px solid var(--color-border-low-emphasis);border-radius:12px 12px 0 0;display:flex;height:9.5em;justify-content:center;overflow:hidden}.spui-HeroCarouselItem-image{height:100%}.spui-HeroCarouselItem-titleContainer{align-items:center;box-sizing:border-box;display:flex;height:2.89em;justify-content:center;padding:0 .5em}.spui-HeroCarouselItem-title{color:var(--color-text-high-emphasis);font-size:.9375em;font-weight:700;margin:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:768px){.spui-HeroCarouselItem-listItem{padding:0 .75em}.spui-HeroCarouselItem-link{height:13.8em;width:20em}.spui-HeroCarouselItem-titleContainer{height:3.3em}.spui-HeroCarouselItem-title{font-size:1em}.spui-HeroCarouselItem-imageBlock{height:10.9em}}:root{--HeroCarousel-onFocus-boxShadow:0 0 0 1px var(--color-surface-primary),0 0 0 3px var(--color-focus-clarity)}.spui-HeroCarousel-container{align-items:center;display:flex;height:12.5em;justify-content:center;overflow:hidden}.spui-HeroCarousel-list{display:flex;margin-right:.88em;padding:0 .44em;transition:transform .5s;width:17.5em}.spui-HeroCarousel-controls{align-items:center;border:1px solid var(--color-border-low-emphasis);border-radius:100px;display:flex;height:2.5em;margin:.88em auto 0;width:7.63em}.spui-HeroCarousel-control{align-items:center;background-color:transparent;border:none;display:flex;font-size:1em;height:100%;justify-content:center;padding:0;width:33.33333%}.spui-HeroCarousel-control:hover{opacity:.7}.spui-HeroCarousel-control:focus{box-shadow:var(--HeroCarousel-onFocus-boxShadow);outline:none}.spui-HeroCarousel-control:focus:not(:focus-visible){box-shadow:none}.spui-HeroCarousel-control--prev{border-radius:100px 0 0 100px;border-right:1px solid var(--color-border-low-emphasis)}.spui-HeroCarousel-control--next{border-left:1px solid var(--color-border-low-emphasis);border-radius:0 100px 100px 0}@media (prefers-reduced-motion:reduce){.spui-HeroCarousel-list{transition:1ms}}@media screen and (min-width:768px){.spui-HeroCarousel-container{height:14.3em}.spui-HeroCarousel-list{margin-right:1.5em;padding:0 .75em;width:20em}.spui-HeroCarousel-controls{height:2.75em;margin-top:1.25em;width:8.38em}}.spui-HeroCarousel-control>svg{color:var(--color-text-low-emphasis);height:1.13em;width:1.13em}@media screen and (min-width:768px){.spui-HeroCarousel-control>svg{height:1.25em;width:1.25em}}
1
+ :root{--HeroCarouselItem-onFocus-boxShadow:0 0 0 1px var(--color-surface-primary),0 0 0 3px var(--color-focus-clarity)}.spui-HeroCarouselItem-listItem{list-style:none;padding:0 .44em;width:100%}.spui-HeroCarouselItem-link{border:1px solid var(--color-border-low-emphasis);border-radius:12px;box-sizing:border-box;display:flex;flex-direction:column;height:12em;text-decoration:none;width:17.5em}.spui-HeroCarouselItem-link:focus{box-shadow:var(--HeroCarouselItem-onFocus-boxShadow);outline:none}.spui-HeroCarouselItem-link:focus:not(:focus-visible){box-shadow:none}.spui-HeroCarouselItem-imageBlock{align-items:center;border-bottom:1px solid var(--color-border-low-emphasis);border-radius:12px 12px 0 0;display:flex;height:9.5em;justify-content:center;overflow:hidden}.spui-HeroCarouselItem-image{height:100%;object-fit:cover;width:100%}.spui-HeroCarouselItem-titleContainer{align-items:center;box-sizing:border-box;display:flex;height:2.89em;justify-content:center;padding:0 .5em}.spui-HeroCarouselItem-title{color:var(--color-text-high-emphasis);font-size:.9375em;font-weight:700;margin:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:768px){.spui-HeroCarouselItem-listItem{padding:0 .75em}.spui-HeroCarouselItem-link{height:13.8em;width:20em}.spui-HeroCarouselItem-titleContainer{height:3.3em}.spui-HeroCarouselItem-title{font-size:1em}.spui-HeroCarouselItem-imageBlock{height:10.9em}}:root{--HeroCarousel-onFocus-boxShadow:0 0 0 1px var(--color-surface-primary),0 0 0 3px var(--color-focus-clarity)}.spui-HeroCarousel-container{align-items:center;display:flex;height:12.5em;justify-content:center;overflow:hidden}.spui-HeroCarousel-list{display:flex;margin-right:.88em;padding:0 .44em;transition:transform .5s;width:17.5em}.spui-HeroCarousel-controls{align-items:center;border:1px solid var(--color-border-low-emphasis);border-radius:100px;display:flex;height:2.5em;margin:.88em auto 0;width:7.63em}.spui-HeroCarousel-control{align-items:center;background-color:transparent;border:none;display:flex;font-size:1em;height:100%;justify-content:center;padding:0;width:33.33333%}.spui-HeroCarousel-control:hover{opacity:.7}.spui-HeroCarousel-control:focus{box-shadow:var(--HeroCarousel-onFocus-boxShadow);outline:none}.spui-HeroCarousel-control:focus:not(:focus-visible){box-shadow:none}.spui-HeroCarousel-control--prev{border-radius:100px 0 0 100px;border-right:1px solid var(--color-border-low-emphasis)}.spui-HeroCarousel-control--next{border-left:1px solid var(--color-border-low-emphasis);border-radius:0 100px 100px 0}@media (prefers-reduced-motion:reduce){.spui-HeroCarousel-list{transition:1ms}}@media screen and (min-width:768px){.spui-HeroCarousel-container{height:14.3em}.spui-HeroCarousel-list{margin-right:1.5em;padding:0 .75em;width:20em}.spui-HeroCarousel-controls{height:2.75em;margin-top:1.25em;width:8.38em}}.spui-HeroCarousel-control>svg{color:var(--color-text-low-emphasis);height:1.13em;width:1.13em}@media screen and (min-width:768px){.spui-HeroCarousel-control>svg{height:1.25em;width:1.25em}}
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import ChevronLeftBold from '../Icon/ChevronLeftBold';
3
+ import ChevronRightBold from '../Icon/ChevronRightBold';
4
+ import Pause from '../Icon/Pause';
5
+ import PlayFill from '../Icon/PlayFill';
6
+ import HeroCarouselItem from './HeroCarouselItem';
7
+ import { useAutoPlayCarousel } from './hooks/useAutoPlayCarousel';
8
+ const BLOCK_NAME = 'spui-HeroCarousel';
9
+ const ITEM_LINK_CLASS_NAME = 'js-auto-play-carousel-item-link';
10
+ export const HeroCarousel = React.memo(function HeroCarousel({ carouselList, }) {
11
+ if (carouselList.length === 0) {
12
+ return null;
13
+ }
14
+ const { handleSlideToPrev, handleSlideToNext, handleMouseEnter, handleMouseDown, handleMouseLeave, handleTouchStart, handleTransitionEnd, isAutoPlaying, isLinkClicked, itemsToRender, listRef, listStyles, toggleAutoPlay, handleFocus, handleBlur, } = useAutoPlayCarousel({
15
+ items: carouselList,
16
+ itemLinkClassName: ITEM_LINK_CLASS_NAME,
17
+ });
18
+ return (React.createElement("div", null,
19
+ React.createElement("div", { className: `${BLOCK_NAME}-container`, onBlur: handleBlur, onFocus: handleFocus, onMouseDown: handleMouseDown, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onTouchStart: handleTouchStart, onTransitionEnd: handleTransitionEnd },
20
+ React.createElement("ul", { "aria-roledescription": "\u30AB\u30EB\u30FC\u30BB\u30EB", className: `${BLOCK_NAME}-list`, ref: listRef, role: "group", style: listStyles }, itemsToRender.map((item, index) => (React.createElement(HeroCarouselItem, { carouselItem: item, isLinkClicked: isLinkClicked, itemLinkClassName: ITEM_LINK_CLASS_NAME, key: `hero-carousel-${index}` }))))),
21
+ React.createElement("div", { className: `${BLOCK_NAME}-controls` },
22
+ React.createElement("button", { "aria-label": "1\u3064\u524D\u306E\u30A2\u30A4\u30C6\u30E0\u306B\u79FB\u52D5", className: `${BLOCK_NAME}-control ${BLOCK_NAME}-control--prev`, type: "button", onClick: handleSlideToPrev },
23
+ React.createElement(ChevronLeftBold, { "aria-hidden": true })),
24
+ React.createElement("button", { "aria-label": isAutoPlaying ? 'スライドを停止' : 'スライドを再生', className: `${BLOCK_NAME}-control`, type: "button", onClick: toggleAutoPlay }, isAutoPlaying ? (React.createElement(Pause, { "aria-hidden": true })) : (React.createElement(PlayFill, { "aria-hidden": true }))),
25
+ React.createElement("button", { "aria-label": "1\u3064\u5F8C\u308D\u306E\u30A2\u30A4\u30C6\u30E0\u306B\u79FB\u52D5", className: `${BLOCK_NAME}-control ${BLOCK_NAME}-control--next`, type: "button", onClick: handleSlideToNext },
26
+ React.createElement(ChevronRightBold, { "aria-hidden": true })))));
27
+ });
@@ -1 +1 @@
1
- :root{--HeroCarouselItem-onFocus-boxShadow:0 0 0 1px var(--color-surface-primary),0 0 0 3px var(--color-focus-clarity)}.spui-HeroCarouselItem-listItem{list-style:none;padding:0 .44em;width:100%}.spui-HeroCarouselItem-link{border:1px solid var(--color-border-low-emphasis);border-radius:12px;box-sizing:border-box;display:flex;flex-direction:column;height:12em;text-decoration:none;width:17.5em}.spui-HeroCarouselItem-link:focus{box-shadow:var(--HeroCarouselItem-onFocus-boxShadow);outline:none}.spui-HeroCarouselItem-link:focus:not(:focus-visible){box-shadow:none}.spui-HeroCarouselItem-imageBlock{align-items:center;border-bottom:1px solid var(--color-border-low-emphasis);border-radius:12px 12px 0 0;display:flex;height:9.5em;justify-content:center;overflow:hidden}.spui-HeroCarouselItem-image{height:100%}.spui-HeroCarouselItem-titleContainer{align-items:center;box-sizing:border-box;display:flex;height:2.89em;justify-content:center;padding:0 .5em}.spui-HeroCarouselItem-title{color:var(--color-text-high-emphasis);font-size:.9375em;font-weight:700;margin:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:768px){.spui-HeroCarouselItem-listItem{padding:0 .75em}.spui-HeroCarouselItem-link{height:13.8em;width:20em}.spui-HeroCarouselItem-titleContainer{height:3.3em}.spui-HeroCarouselItem-title{font-size:1em}.spui-HeroCarouselItem-imageBlock{height:10.9em}}
1
+ :root{--HeroCarouselItem-onFocus-boxShadow:0 0 0 1px var(--color-surface-primary),0 0 0 3px var(--color-focus-clarity)}.spui-HeroCarouselItem-listItem{list-style:none;padding:0 .44em;width:100%}.spui-HeroCarouselItem-link{border:1px solid var(--color-border-low-emphasis);border-radius:12px;box-sizing:border-box;display:flex;flex-direction:column;height:12em;text-decoration:none;width:17.5em}.spui-HeroCarouselItem-link:focus{box-shadow:var(--HeroCarouselItem-onFocus-boxShadow);outline:none}.spui-HeroCarouselItem-link:focus:not(:focus-visible){box-shadow:none}.spui-HeroCarouselItem-imageBlock{align-items:center;border-bottom:1px solid var(--color-border-low-emphasis);border-radius:12px 12px 0 0;display:flex;height:9.5em;justify-content:center;overflow:hidden}.spui-HeroCarouselItem-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.spui-HeroCarouselItem-titleContainer{align-items:center;box-sizing:border-box;display:flex;height:2.89em;justify-content:center;padding:0 .5em}.spui-HeroCarouselItem-title{color:var(--color-text-high-emphasis);font-size:.9375em;font-weight:700;margin:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:768px){.spui-HeroCarouselItem-listItem{padding:0 .75em}.spui-HeroCarouselItem-link{height:13.8em;width:20em}.spui-HeroCarouselItem-titleContainer{height:3.3em}.spui-HeroCarouselItem-title{font-size:1em}.spui-HeroCarouselItem-imageBlock{height:10.9em}}
@@ -0,0 +1,20 @@
1
+ import React, { useCallback } from 'react';
2
+ const BLOCK_NAME = 'spui-HeroCarouselItem';
3
+ export const HeroCarouselItem = React.memo(function HeroCarouselItem({ carouselItem, isLinkClicked, itemLinkClassName, }) {
4
+ const handleLinkClick = useCallback((e) => {
5
+ if (!isLinkClicked) {
6
+ e.preventDefault();
7
+ }
8
+ }, [isLinkClicked]);
9
+ return (React.createElement("li", { className: `${BLOCK_NAME}-listItem` },
10
+ React.createElement("a", { className: `${itemLinkClassName} ${BLOCK_NAME}-link`, href: carouselItem.link, onClick: handleLinkClick },
11
+ React.createElement("span", { className: `${BLOCK_NAME}-imageBlock` },
12
+ React.createElement("img", { alt: "", className: `${BLOCK_NAME}-image`, src: carouselItem.imageUrl })),
13
+ React.createElement("div", { className: `${BLOCK_NAME}-titleContainer` },
14
+ React.createElement("p", { className: `${BLOCK_NAME}-title` }, carouselItem.title)))));
15
+ }, (prevProps, nextProps) => prevProps.isLinkClicked === nextProps.isLinkClicked &&
16
+ prevProps.itemLinkClassName === nextProps.itemLinkClassName &&
17
+ prevProps.carouselItem.title === nextProps.carouselItem.title &&
18
+ prevProps.carouselItem.link === nextProps.carouselItem.link &&
19
+ prevProps.carouselItem.imageUrl === nextProps.carouselItem.imageUrl);
20
+ export default HeroCarouselItem;