Skip to content

Carousel に loop / centerItem を追加 - #989

Open
naporin0624 wants to merge 24 commits into
mainfrom
feat/carousel-loop-center
Open

Carousel に loop / centerItem を追加#989
naporin0624 wants to merge 24 commits into
mainfrom
feat/carousel-loop-center

Conversation

@naporin0624

@naporin0624 naporin0624 commented Jul 21, 2026

Copy link
Copy Markdown
Member

やったこと

  • loop prop を追加: 実セットの前後に clone 帯(各端 3.5 viewport を覆う実測枚数。1 セットで足りなければセット丸ごと周回)を描画し、スクロール静止後に維持帯域へ instant テレポートすることで無限ループを実現
  • centerItem prop を追加: loop 成立時に指定 index のスライドを viewport 中央へ初期配置
  • clone スライドは aria-hidden + inert 扱いで、indicator / activeIndex は clone 帯でも実 index を報告。cloneElement で ref を剥がした複製として render し、ユーザーの ref は実スライドだけを指す
  • 滑走路(静止位置から物理端までの余裕)を 3 viewport 確保: テレポートは静止後にしか行えないため、強フリックの 1 ジェスチャが滑走路内に収まるよう clone 被覆比を 1.5 → 3.5 に拡張
  • 高速スクロールで滑走路を使い切り物理端に張り付く「詰まり」を修正: 端へのクランプを検出したときだけ scroll イベント中に合同位置へ即時テレポートする(computeWallEscape)。クランプ時点で motion は停止済みのため momentum は殺さず、描画も変化しない
  • ページ送りを相対 scrollBy から目標積算の scrollTo に変更: 走行中の smooth scroll は新しい呼び出しで残距離が破棄される(CSSOM View 仕様)ため、連打時は未到達の目標を起点に絶対座標を積算する。目標は静止・ユーザー操作・テレポートで破棄
  • loop 時は overscroll-behavior-x: none にして rubber-band の範囲外座標が壁クランプ検出と衝突しないようにする
  • banner 用途(loop + 中央 mandatory snap)の story と移行ガイドを追加
  • リファクタ: ユーザー操作によるスクロール意図破棄と静止検出の購読をそれぞれ 1 本化し、scroller の ResizeObserver を observeResize シングルトンに統一

動作確認環境

  • macOS Chrome(Storybook + CDP)
    • ページ送り 3 連打で正確に 3 スロット(1968px)前進、5 連打でちょうど 1 周(積算の実測確認)
    • テレポート前後で同一スライドが同一 item 内オフセットに描画されることを確認(ピクセル同一 = 視覚的に不可視)
    • 物理端クランプからの即時脱出、非 loop の端クランプ・静止後ドリフトなしの回帰確認
    • コンソールエラー・警告ゼロ
  • unit tests(Carousel 102 件)/ typecheck / lint すべて green
  • 多段 max コードレビュー(検証エージェント 5 角度)を通過: 位置リセット退行・dot ナビの目標破棄漏れ・偽 onResize・NaN centerItem などを修正済み
  • 未検証: iOS 実機での momentum 継続(最悪でも壁張り付きは発生せず、即座に再スクロール可能)。RTL は loop 全体で未対応

チェックリスト

  • README やドキュメントに影響があることを確認した(MIGRATION.md / story を更新済み)

🤖 Generated with Claude Code

https://claude.ai/code/session_01XqPDaERdGYNNhELPnFbexe

loop と defaultScroll の型排他テストで @ts-expect-error が
diagnostic の出ない行にあり、テストが何も検証していなかった問題を修正。
JSX の opening tag 直上に移動し、defaultScroll を CarouselDefaultScroll
で事前に型付けして literal-widening による偽陽性を排除した。
併せて本ブランチで新規追加した for-of ループが Symbol.iterator の
診断を発生させていたため forEach に変更し、新規の型エラーが
発生しないことを確認した。
effect のみを持つ useCenterReport hook を、children をラップする
renderless component (CenterReportProvider) に置き換えて provider 化した。

また Children.toArray の再生成と store 更新による全 item 再レンダーを
抑えるため、slides/slideKeys を useMemo 化し、CarouselItem /
CarouselCloneItem / CarouselIndicatorItem / CarouselNavigationButton を
memo でラップした。
- 各端の clone を「1.5 viewport を覆う最小枚数 + 1」の実測で決める
  loopCloneCount を useCarouselScroller から返し、renderClones が参照する
- scrollend 非対応環境向けに scroll の途切れを検出する debounce
  フォールバックを追加し、静止後テレポートを全環境で機能させる
- target ref の受け渡しをやめ forwardRef + useObjectRef で自身の div を観測する
- className / data 属性は div 属性としてそのまま透過する
- 強フリックは clone の滑走路(帯域端から物理端まで bandLower ぶん)を
  scrollend 前に使い切り、静止を待つ間クランプ位置で「詰まり」に見えていた
- 端へのクランプを検出したときだけ scroll イベント中に合同位置へ即時
  テレポートする computeWallEscape を追加(クランプ時点で motion は
  停止済みのため momentum は殺さず、描画も変化しない)
- loop 時は overscroll-behavior-x: none にして rubber-band の範囲外座標が
  壁クランプ検出と衝突しないようにする
clone 被覆比を 1.5 → 3.5 に引き上げ、1 セットで覆えない要求はセット周回で
埋めるよう computeLoopCloneCount を拡張。実セットが viewport を覆えない
場合は 0 を返しループ不成立として扱う。ページ送りは scrollBy の相対移動を
やめ、pendingScrollTarget に目標を積算する scrollTo へ変更し、走行中の
テレポートや壁クランプで慣性が死ぬがくつきを根治する。
ユーザー操作でプログラム由来のスクロール意図(初期位置の再適用・
ページ送りの目標位置)を破棄する処理を 1 つの effect に統合し、
静止検出の購読もテレポートと目標破棄で共有する。テレポートは loop
幾何が無ければ no-op のため loop ガードと依存を削除できる。
scroller の ResizeObserver は CarouselItem と同じ observeResize
シングルトンに統一し、SSR ガードの重複を解消する。
同一 element の使い回しだと slide に渡された ref が clone のマウント
でも発火し、最後にマウントされた clone を指してしまう。clone は
見た目だけの複製として cloneElement(children, { ref: null }) で
render し、ユーザーの ref が実スライドだけを指すことを保証する。
探索のためだけの counts 配列と ?? n の重複をやめ、「satisfies を
満たす最初の要素までの個数」を返す構造的再帰の汎用関数へ分離する。
述語は添字演算ではなく item そのものを受け、fromTail は
toReversed() の反転配列を渡すだけになる。空配列は 0 を返し、
末尾要素は評価せず全個数に丸める仕様を単体テストで固定する。
fromTail 用の反転配列を last の取得と共有し、items[0] / items[n - 1]
の添字アクセスを [first] / [last] の分解に置き換える。先頭系は items、
末尾系は reversed という対称が揃い、添字演算が関数から消える。
renderClones の剰余演算による論理 index の復元をやめ、slide と index
の対を実セット周回ぶん繰り返した配列から before は末尾、after は
先頭を slice で切り出す。周回は繰り返し配列が担い、multi-set 化前の
宣言的な slice の形に戻る。
挙動修正:
- 初期スクロール effect の再武装を撤去し、ユーザー操作後に clone 枚数が
  変わっても初期位置へ引き戻さないようにする
- indicator の dot など scroll 命令の dispatch でページ送り目標と初期位置
  再適用の意図を破棄する(dot は scroller 外で INTERACTION_EVENTS では
  拾えない)
- 実測 → 状態反映の一連を remeasure に統一し、scroller の ResizeObserver
  購読を張りっぱなしにして re-observe 初回通知による偽 onResize を防ぐ。
  ref の更新は paint 前に行い、stale 閉包の窓を閉じる
- clone 枚数は itemCount === 0 で同期的に 0 へ丸め、children が空に
  変わった直後の render でも stale な枚数を消費させない
- 範囲外・非整数(NaN 含む)の centerItem は実セット先頭へフォールバック

API / ドキュメント:
- centerItem を loop 専用として CarouselLoopProps の union へ移動
- CarouselDefaultScroll / CarouselLoopProps を barrel から export
- 走行中の scrollStep へ渡る scrollLeft が未到達の目標位置である仕様を
  JSDoc と MIGRATION に明記
- MIGRATION に id / name 重複・ネスト ref・dot ナビ長距離移動の制約を追記

その他:
- clone 帯を useMemo 化し activeIndex 更新のたびの再構築を抑制
- inert 付与を paint 前の layout effect に変更
- fake timers の復元を describe の afterEach に集約
- toReversed は実効ブラウザ下限を上げるため reverse() のコピーに戻す
@naporin0624 naporin0624 self-assigned this Aug 18, 2026
@naporin0624 naporin0624 added minor image snapshots update Pull requests that update image snapshots labels Aug 18, 2026
…nter

# Conflicts:
#	packages/react/src/components/Carousel/MIGRATION.md
#	packages/react/src/components/Carousel/index.story.tsx
#	packages/react/src/components/Carousel/index.tsx
ビルドの babel は .ts も JSX 有効で解析するため、arrow の <T> が
JSX タグと誤解釈されて build が落ちる。<T,> は prettier が .ts では
剥がすので、曖昧さのない function 宣言にする。
@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown

Size Change: +20.9 kB (+3.94%)

Total Size: 550 kB

📦 View Changed
Filename Size Change
packages/react/dist/components/Carousel/CarouselItem.cjs 2.55 kB +1.16 kB (+83.71%) 🆘
packages/react/dist/components/Carousel/CarouselItem.d.ts 751 B +334 B (+80.1%) 🆘
packages/react/dist/components/Carousel/CarouselItem.js 2.21 kB +986 B (+80.36%) 🆘
packages/react/dist/components/Carousel/carouselLoop.cjs 2.93 kB +2.93 kB (new file) 🆕
packages/react/dist/components/Carousel/carouselLoop.d.ts 875 B +875 B (new file) 🆕
packages/react/dist/components/Carousel/carouselLoop.js 2.71 kB +2.71 kB (new file) 🆕
packages/react/dist/components/Carousel/findMinCount.cjs 319 B +319 B (new file) 🆕
packages/react/dist/components/Carousel/findMinCount.d.ts 155 B +155 B (new file) 🆕
packages/react/dist/components/Carousel/findMinCount.js 305 B +305 B (new file) 🆕
packages/react/dist/components/Carousel/index.d.ts 1.63 kB -234 B (-12.57%) 👏
packages/react/dist/components/Carousel/index2.cjs 7.11 kB +1.08 kB (+18%) ⚠️
packages/react/dist/components/Carousel/index2.js 6.59 kB +1 kB (+18.01%) ⚠️
packages/react/dist/components/Carousel/useCarouselScroller.cjs 8.64 kB +4.45 kB (+106.04%) 🆘
packages/react/dist/components/Carousel/useCarouselScroller.d.ts 886 B +72 B (+8.85%) 🔍
packages/react/dist/components/Carousel/useCarouselScroller.js 8.17 kB +4.19 kB (+105.02%) 🆘
packages/react/dist/components/Pagination/index2.cjs 6.18 kB +504 B (+8.89%) 🔍
packages/react/dist/index.d.ts 3 kB +52 B (+1.76%)
ℹ️ View Unchanged
Filename Size
packages/foundation/dist/index.cjs 801 B
packages/foundation/dist/index.d.ts 3.6 kB
packages/foundation/dist/index.js 703 B
packages/icons-cli/dist/index.js 20.9 kB
packages/icons/dist/index.cjs 11.5 kB
packages/icons/dist/index.d.ts 3.99 kB
packages/icons/dist/index.js 10.2 kB
packages/react-sandbox/dist/_lib/compat.d.ts 427 B
packages/react-sandbox/dist/_lib/ComponentAbstraction.d.ts 967 B
packages/react-sandbox/dist/components/Carousel/index.d.ts 1.38 kB
packages/react-sandbox/dist/components/CarouselButton/index.d.ts 515 B
packages/react-sandbox/dist/components/Filter/index.d.ts 1.05 kB
packages/react-sandbox/dist/components/HintText/index.d.ts 386 B
packages/react-sandbox/dist/components/icons/Base.d.ts 762 B
packages/react-sandbox/dist/components/icons/DotsIcon.d.ts 226 B
packages/react-sandbox/dist/components/icons/InfoIcon.d.ts 115 B
packages/react-sandbox/dist/components/icons/NextIcon.d.ts 309 B
packages/react-sandbox/dist/components/icons/WedgeIcon.d.ts 345 B
packages/react-sandbox/dist/components/Layout/index.d.ts 2.18 kB
packages/react-sandbox/dist/components/LeftMenu/index.d.ts 438 B
packages/react-sandbox/dist/components/MenuListItem/index.d.ts 1.91 kB
packages/react-sandbox/dist/components/Pager/index.d.ts 653 B
packages/react-sandbox/dist/components/SwitchCheckbox/index.d.ts 340 B
packages/react-sandbox/dist/components/TextEllipsis/helper.d.ts 230 B
packages/react-sandbox/dist/components/TextEllipsis/index.d.ts 381 B
packages/react-sandbox/dist/components/WithIcon/index.d.ts 1.18 kB
packages/react-sandbox/dist/foundation/constants.d.ts 208 B
packages/react-sandbox/dist/foundation/hooks.d.ts 1.04 kB
packages/react-sandbox/dist/foundation/support.d.ts 131 B
packages/react-sandbox/dist/foundation/utils.d.ts 613 B
packages/react-sandbox/dist/hooks/index.d.ts 148 B
packages/react-sandbox/dist/index.cjs 33 kB
packages/react-sandbox/dist/index.d.ts 1.38 kB
packages/react-sandbox/dist/index.js 30.8 kB
packages/react-sandbox/dist/misc/storybook-helper.d.ts 343 B
packages/react-sandbox/dist/styled.d.ts 216 B
packages/react/dist/_lib/compat.d.ts 1.19 kB
packages/react/dist/_lib/createDivComponent.cjs 613 B
packages/react/dist/_lib/createDivComponent.d.ts 614 B
packages/react/dist/_lib/createDivComponent.js 521 B
packages/react/dist/_lib/index.cjs 614 B
packages/react/dist/_lib/index.d.ts 1.02 kB
packages/react/dist/_lib/index.js 569 B
packages/react/dist/_lib/useClassNames.cjs 366 B
packages/react/dist/_lib/useClassNames.d.ts 192 B
packages/react/dist/_lib/useClassNames.js 344 B
packages/react/dist/_lib/useForwardedRef.cjs 533 B
packages/react/dist/_lib/useForwardedRef.d.ts 169 B
packages/react/dist/_lib/useForwardedRef.js 412 B
packages/react/dist/_lib/useIsomorphicLayoutEffect.cjs 454 B
packages/react/dist/_lib/useIsomorphicLayoutEffect.d.ts 293 B
packages/react/dist/_lib/useIsomorphicLayoutEffect.js 438 B
packages/react/dist/_virtual/_rolldown/runtime.cjs 1.05 kB
packages/react/dist/components/Button/index.d.ts 766 B
packages/react/dist/components/Button/index2.cjs 950 B
packages/react/dist/components/Button/index2.js 766 B
packages/react/dist/components/Button/styledButtonTypeTest.d.d.ts 63 B
packages/react/dist/components/Carousel/carouselStore.cjs 990 B
packages/react/dist/components/Carousel/carouselStore.d.ts 661 B
packages/react/dist/components/Carousel/carouselStore.js 919 B
packages/react/dist/components/Carousel/intersectionObserver.cjs 1.38 kB
packages/react/dist/components/Carousel/intersectionObserver.d.ts 411 B
packages/react/dist/components/Carousel/intersectionObserver.js 1.36 kB
packages/react/dist/components/Carousel/resizeObserver.cjs 981 B
packages/react/dist/components/Carousel/resizeObserver.d.ts 345 B
packages/react/dist/components/Carousel/resizeObserver.js 966 B
packages/react/dist/components/Carousel/store.cjs 526 B
packages/react/dist/components/Carousel/store.d.ts 353 B
packages/react/dist/components/Carousel/store.js 513 B
packages/react/dist/components/Checkbox/CheckboxInput/index.d.ts 628 B
packages/react/dist/components/Checkbox/CheckboxInput/index2.cjs 956 B
packages/react/dist/components/Checkbox/CheckboxInput/index2.js 880 B
packages/react/dist/components/Checkbox/CheckboxWithLabel.cjs 910 B
packages/react/dist/components/Checkbox/CheckboxWithLabel.d.ts 362 B
packages/react/dist/components/Checkbox/CheckboxWithLabel.js 680 B
packages/react/dist/components/Checkbox/index.d.ts 592 B
packages/react/dist/components/Checkbox/index2.cjs 1.07 kB
packages/react/dist/components/Checkbox/index2.js 928 B
packages/react/dist/components/Clickable/index.d.ts 681 B
packages/react/dist/components/Clickable/index2.cjs 774 B
packages/react/dist/components/Clickable/index2.js 590 B
packages/react/dist/components/DropdownSelector/Divider/index.d.ts 133 B
packages/react/dist/components/DropdownSelector/DropdownMenuItem/index.d.ts 441 B
packages/react/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs 1.78 kB
packages/react/dist/components/DropdownSelector/DropdownMenuItem/index2.js 1.53 kB
packages/react/dist/components/DropdownSelector/DropdownPopover.cjs 1.5 kB
packages/react/dist/components/DropdownSelector/DropdownPopover.d.ts 514 B
packages/react/dist/components/DropdownSelector/DropdownPopover.js 1.41 kB
packages/react/dist/components/DropdownSelector/index.d.ts 877 B
packages/react/dist/components/DropdownSelector/index2.cjs 5.28 kB
packages/react/dist/components/DropdownSelector/index2.js 4.47 kB
packages/react/dist/components/DropdownSelector/ListItem/index.d.ts 485 B
packages/react/dist/components/DropdownSelector/ListItem/index2.cjs 635 B
packages/react/dist/components/DropdownSelector/ListItem/index2.js 560 B
packages/react/dist/components/DropdownSelector/MenuItem/index.cjs 1.99 kB
packages/react/dist/components/DropdownSelector/MenuItem/index.d.ts 639 B
packages/react/dist/components/DropdownSelector/MenuItem/index.js 1.85 kB
packages/react/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.cjs 1.29 kB
packages/react/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.d.ts 373 B
packages/react/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.js 1.27 kB
packages/react/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs 2.08 kB
packages/react/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.d.ts 480 B
packages/react/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.js 1.96 kB
packages/react/dist/components/DropdownSelector/MenuItemGroup/index.d.ts 442 B
packages/react/dist/components/DropdownSelector/MenuItemGroup/index2.cjs 599 B
packages/react/dist/components/DropdownSelector/MenuItemGroup/index2.js 523 B
packages/react/dist/components/DropdownSelector/MenuList/index.d.ts 568 B
packages/react/dist/components/DropdownSelector/MenuList/index2.cjs 985 B
packages/react/dist/components/DropdownSelector/MenuList/index2.js 844 B
packages/react/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs 1.05 kB
packages/react/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.d.ts 412 B
packages/react/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.js 917 B
packages/react/dist/components/DropdownSelector/MenuList/MenuListContext.cjs 337 B
packages/react/dist/components/DropdownSelector/MenuList/MenuListContext.d.ts 412 B
packages/react/dist/components/DropdownSelector/MenuList/MenuListContext.js 319 B
packages/react/dist/components/DropdownSelector/Popover/index.d.ts 1.03 kB
packages/react/dist/components/DropdownSelector/Popover/index2.cjs 3.06 kB
packages/react/dist/components/DropdownSelector/Popover/index2.js 2.72 kB
packages/react/dist/components/DropdownSelector/Popover/usePreventScroll.cjs 758 B
packages/react/dist/components/DropdownSelector/Popover/usePreventScroll.d.ts 159 B
packages/react/dist/components/DropdownSelector/Popover/usePreventScroll.js 735 B
packages/react/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs 1.08 kB
packages/react/dist/components/DropdownSelector/utils/findPreviewRecursive.d.ts 411 B
packages/react/dist/components/DropdownSelector/utils/findPreviewRecursive.js 953 B
packages/react/dist/components/FieldLabel/index.d.ts 492 B
packages/react/dist/components/FieldLabel/index2.cjs 1.27 kB
packages/react/dist/components/FieldLabel/index2.js 1.01 kB
packages/react/dist/components/HintText/index.d.ts 382 B
packages/react/dist/components/HintText/index2.cjs 905 B
packages/react/dist/components/HintText/index2.js 742 B
packages/react/dist/components/Icon/index.cjs 1.14 kB
packages/react/dist/components/Icon/index.d.ts 1.27 kB
packages/react/dist/components/Icon/index.js 975 B
packages/react/dist/components/IconButton/index.d.ts 639 B
packages/react/dist/components/IconButton/index2.cjs 1.58 kB
packages/react/dist/components/IconButton/index2.js 1.38 kB
packages/react/dist/components/LoadingSpinner/index.d.ts 678 B
packages/react/dist/components/LoadingSpinner/index2.cjs 1.6 kB
packages/react/dist/components/LoadingSpinner/index2.js 1.45 kB
packages/react/dist/components/Modal/Dialog/index.d.ts 373 B
packages/react/dist/components/Modal/Dialog/index2.cjs 1.21 kB
packages/react/dist/components/Modal/Dialog/index2.js 941 B
packages/react/dist/components/Modal/index.d.ts 2.13 kB
packages/react/dist/components/Modal/index2.cjs 4.23 kB
packages/react/dist/components/Modal/index2.js 3.69 kB
packages/react/dist/components/Modal/ModalBackgroundContext.cjs 464 B
packages/react/dist/components/Modal/ModalBackgroundContext.d.ts 231 B
packages/react/dist/components/Modal/ModalBackgroundContext.js 331 B
packages/react/dist/components/Modal/ModalPlumbing.d.ts 1.75 kB
packages/react/dist/components/Modal/ModalPlumbing2.cjs 1.16 kB
packages/react/dist/components/Modal/ModalPlumbing2.js 913 B
packages/react/dist/components/Modal/useCustomModalOverlay.cjs 1.85 kB
packages/react/dist/components/Modal/useCustomModalOverlay.d.ts 803 B
packages/react/dist/components/Modal/useCustomModalOverlay.js 1.5 kB
packages/react/dist/components/Modal/useTransitionPresence.cjs 2.18 kB
packages/react/dist/components/Modal/useTransitionPresence.d.ts 1.05 kB
packages/react/dist/components/Modal/useTransitionPresence.js 2.11 kB
packages/react/dist/components/MultiSelect/context.cjs 481 B
packages/react/dist/components/MultiSelect/context.d.ts 394 B
packages/react/dist/components/MultiSelect/context.js 455 B
packages/react/dist/components/MultiSelect/index.d.ts 1.25 kB
packages/react/dist/components/MultiSelect/index2.cjs 3.49 kB
packages/react/dist/components/MultiSelect/index2.js 3.01 kB
packages/react/dist/components/Pagination/helper.cjs 2.12 kB
packages/react/dist/components/Pagination/helper.d.ts 238 B
packages/react/dist/components/Pagination/helper.js 1.88 kB
packages/react/dist/components/Pagination/index.d.ts 2.01 kB
packages/react/dist/components/Pagination/index2.js 5.68 kB
packages/react/dist/components/Pagination/PaginationContext.cjs 539 B
packages/react/dist/components/Pagination/PaginationContext.d.ts 881 B
packages/react/dist/components/Pagination/PaginationContext.js 489 B
packages/react/dist/components/Radio/index.d.ts 482 B
packages/react/dist/components/Radio/index2.cjs 1.81 kB
packages/react/dist/components/Radio/index2.js 1.47 kB
packages/react/dist/components/Radio/RadioGroup/index.d.ts 733 B
packages/react/dist/components/Radio/RadioGroup/index2.cjs 1.64 kB
packages/react/dist/components/Radio/RadioGroup/index2.js 1.37 kB
packages/react/dist/components/Radio/RadioGroupContext.cjs 577 B
packages/react/dist/components/Radio/RadioGroupContext.d.ts 339 B
packages/react/dist/components/Radio/RadioGroupContext.js 449 B
packages/react/dist/components/Radio/RadioInput/index.d.ts 584 B
packages/react/dist/components/Radio/RadioInput/index2.cjs 871 B
packages/react/dist/components/Radio/RadioInput/index2.js 795 B
packages/react/dist/components/SegmentedControl/index.d.ts 836 B
packages/react/dist/components/SegmentedControl/index2.cjs 2.91 kB
packages/react/dist/components/SegmentedControl/index2.js 2.44 kB
packages/react/dist/components/SegmentedControl/RadioGroupContext.cjs 811 B
packages/react/dist/components/SegmentedControl/RadioGroupContext.d.ts 369 B
packages/react/dist/components/SegmentedControl/RadioGroupContext.js 618 B
packages/react/dist/components/Switch/index.d.ts 452 B
packages/react/dist/components/Switch/index2.cjs 1.1 kB
packages/react/dist/components/Switch/index2.js 948 B
packages/react/dist/components/Switch/SwitchInput/index.d.ts 482 B
packages/react/dist/components/Switch/SwitchInput/index2.cjs 784 B
packages/react/dist/components/Switch/SwitchInput/index2.js 713 B
packages/react/dist/components/Switch/SwitchWithLabel.cjs 884 B
packages/react/dist/components/Switch/SwitchWithLabel.d.ts 363 B
packages/react/dist/components/Switch/SwitchWithLabel.js 673 B
packages/react/dist/components/TagItem/index.d.ts 736 B
packages/react/dist/components/TagItem/index2.cjs 2.56 kB
packages/react/dist/components/TagItem/index2.js 2.19 kB
packages/react/dist/components/TextArea/index.d.ts 1.69 kB
packages/react/dist/components/TextArea/index2.cjs 5.2 kB
packages/react/dist/components/TextArea/index2.js 4.77 kB
packages/react/dist/components/TextEllipsis/helper.cjs 1.24 kB
packages/react/dist/components/TextEllipsis/helper.d.ts 350 B
packages/react/dist/components/TextEllipsis/helper.js 1.16 kB
packages/react/dist/components/TextEllipsis/index.d.ts 924 B
packages/react/dist/components/TextEllipsis/index2.cjs 1.26 kB
packages/react/dist/components/TextEllipsis/index2.js 1.17 kB
packages/react/dist/components/TextField/AssistiveText/index.d.ts 592 B
packages/react/dist/components/TextField/AssistiveText/index2.cjs 377 B
packages/react/dist/components/TextField/AssistiveText/index2.js 323 B
packages/react/dist/components/TextField/index.d.ts 1.25 kB
packages/react/dist/components/TextField/index2.cjs 4.08 kB
packages/react/dist/components/TextField/index2.js 3.53 kB
packages/react/dist/components/TextField/useFocusWithClick.cjs 571 B
packages/react/dist/components/TextField/useFocusWithClick.d.ts 256 B
packages/react/dist/components/TextField/useFocusWithClick.js 547 B
packages/react/dist/core/CharcoalProvider.cjs 761 B
packages/react/dist/core/CharcoalProvider.d.ts 270 B
packages/react/dist/core/CharcoalProvider.js 455 B
packages/react/dist/core/OverlayProvider.d.ts 117 B
packages/react/dist/core/OverlayProvider.js 114 B
packages/react/dist/core/SetThemeScript.cjs 1.83 kB
packages/react/dist/core/SetThemeScript.d.ts 890 B
packages/react/dist/core/SetThemeScript.js 1.7 kB
packages/react/dist/core/SSRProvider.cjs 580 B
packages/react/dist/core/SSRProvider.d.ts 342 B
packages/react/dist/core/SSRProvider.js 526 B
packages/react/dist/core/themeHelper.cjs 4.71 kB
packages/react/dist/core/themeHelper.d.ts 2.05 kB
packages/react/dist/core/themeHelper.js 4.38 kB
packages/react/dist/index.cjs 4.62 kB
packages/react/dist/index.js 2.85 kB
packages/styled/dist/addThemeUtils.story.d.ts 330 B
packages/styled/dist/builders/border.d.ts 685 B
packages/styled/dist/builders/borderRadius.d.ts 440 B
packages/styled/dist/builders/colors.d.ts 1.27 kB
packages/styled/dist/builders/elementEffect.d.ts 533 B
packages/styled/dist/builders/o.d.ts 5.9 kB
packages/styled/dist/builders/outline.d.ts 638 B
packages/styled/dist/builders/size.d.ts 1.19 kB
packages/styled/dist/builders/spacing.d.ts 1.12 kB
packages/styled/dist/builders/transition.d.ts 287 B
packages/styled/dist/builders/typography.d.ts 624 B
packages/styled/dist/defineThemeVariables.test.d.ts 66 B
packages/styled/dist/factories/lib.d.ts 3.96 kB
packages/styled/dist/index.cjs 11.8 kB
packages/styled/dist/index.d.ts 7.36 kB
packages/styled/dist/index.js 10.3 kB
packages/styled/dist/index.test.d.ts 204 B
packages/styled/dist/internals/index.d.ts 1.6 kB
packages/styled/dist/storyHelper.d.ts 386 B
packages/styled/dist/styles/assertiveRingCss.d.ts 141 B
packages/styled/dist/styles/disabledCss.d.ts 131 B
packages/styled/dist/styles/focusVisibleFocusRingCss.d.ts 318 B
packages/styled/dist/TokenInjector.d.ts 533 B
packages/styled/dist/util.d.ts 4.24 kB
packages/styled/dist/utils/addThemeUtils.d.ts 383 B
packages/styled/dist/utils/CharcoalStyledTheme.d.ts 1.43 kB
packages/styled/dist/utils/gap.d.ts 473 B
packages/styled/dist/utils/helpers/pxIfNum.d.ts 99 B
packages/styled/dist/utils/helpers/SpacingType.d.ts 137 B
packages/styled/dist/utils/margin.d.ts 905 B
packages/styled/dist/utils/padding.d.ts 935 B
packages/styled/dist/utils/typographyCss.d.ts 306 B
packages/tailwind-config/dist/index.d.ts 998 B
packages/tailwind-config/dist/index.js 18.3 kB
packages/tailwind-diff/dist/commands/check.d.ts 296 B
packages/tailwind-diff/dist/commands/check.js 4.35 kB
packages/tailwind-diff/dist/commands/dump.d.ts 185 B
packages/tailwind-diff/dist/commands/dump.js 1.24 kB
packages/tailwind-diff/dist/defer.d.ts 164 B
packages/tailwind-diff/dist/defer.js 762 B
packages/tailwind-diff/dist/index.d.ts 46 B
packages/tailwind-diff/dist/index.js 1.84 kB
packages/tailwind-diff/dist/packageManager.d.ts 323 B
packages/tailwind-diff/dist/packageManager.js 1.81 kB
packages/tailwind-diff/dist/style.d.ts 436 B
packages/tailwind-diff/dist/style.js 2.6 kB
packages/tailwind-diff/dist/withPackages.d.ts 464 B
packages/tailwind-diff/dist/withPackages.js 3.34 kB
packages/theme/dist/css/v1/remap.css.d.ts 26 B
packages/theme/dist/css/v2/dark.css.d.ts 26 B
packages/theme/dist/css/v2/light.css.d.ts 26 B
packages/theme/dist/index.cjs 3.27 kB
packages/theme/dist/index.d.ts 3.73 kB
packages/theme/dist/index.js 3.17 kB
packages/theme/dist/token-object/index.cjs 4.2 kB
packages/theme/dist/token-object/index.d.ts 1.61 kB
packages/theme/dist/token-object/index.js 2.98 kB
packages/token-cli/dist/index.js 6.56 kB
packages/utils/dist/index.cjs 2.6 kB
packages/utils/dist/index.d.ts 3.31 kB
packages/utils/dist/index.js 2.38 kB

compressed-size-action

@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit a917571):

https://pixiv-charcoal-web--pr989-feat-carousel-loop-c-t392w3b9.web.app

(expires Tue, 25 Aug 2026 12:18:24 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 314b26d3adca98a761c7e4d9922ebb206ff024a0

main 側で追加された story の DOM snapshot テストが、本ブランチの
data-loop 属性(全 Carousel story)と loop 系 4 story の未登録
snapshot で不一致になるため再生成する。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

image snapshots update Pull requests that update image snapshots minor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant