11import type { Meta , StoryObj } from '@storybook/react' ;
22import React from 'react' ;
33import { Link } from '../Link/Link' ;
4- import { BreadcrumbItem , BreadcrumbLink , Breadcrumbs } from './Breadcrumbs' ;
4+ import {
5+ BreadcrumbItem ,
6+ BreadcrumbLink ,
7+ BreadcrumbList ,
8+ Breadcrumbs ,
9+ BreadcrumbsLabel ,
10+ } from './Breadcrumbs' ;
511
612const meta = {
713 title : 'Component/DADS v2/Breadcrumbs' ,
@@ -14,9 +20,13 @@ type Story = StoryObj<typeof meta>;
1420
1521export const Example : Story = {
1622 render : ( ) => {
23+ const breadcrumbsId = React . useId ( ) ;
1724 return (
18- < div className = 'flex flex-col gap-8' >
19- < Breadcrumbs >
25+ < Breadcrumbs aria-labelledby = { `${ breadcrumbsId } -label` } >
26+ < BreadcrumbsLabel className = 'sr-only' id = { `${ breadcrumbsId } -label` } >
27+ 現在位置
28+ </ BreadcrumbsLabel >
29+ < BreadcrumbList >
2030 < BreadcrumbItem >
2131 < BreadcrumbLink href = '#' key = 'home' >
2232 ホーム
@@ -40,9 +50,109 @@ export const Example: Story = {
4050 < BreadcrumbItem isCurrent >
4151 長いページタイトルが入ります長いページタイトルが入ります
4252 </ BreadcrumbItem >
43- </ Breadcrumbs >
53+ </ BreadcrumbList >
54+ </ Breadcrumbs >
55+ ) ;
56+ } ,
57+ } ;
58+
59+ export const WithHomeIcon : Story = {
60+ render : ( ) => {
61+ const breadcrumbsId = React . useId ( ) ;
62+ return (
63+ < Breadcrumbs aria-labelledby = { `${ breadcrumbsId } -label` } >
64+ < BreadcrumbsLabel className = 'sr-only' id = { `${ breadcrumbsId } -label` } >
65+ 現在位置
66+ </ BreadcrumbsLabel >
67+ < BreadcrumbList >
68+ < BreadcrumbItem >
69+ < BreadcrumbLink className = 'inline-flex items-center gap-1' href = '#' key = 'home' >
70+ < svg aria-hidden = { true } fill = 'none' height = '16' viewBox = '0 0 16 16' width = '16' >
71+ < g >
72+ < path
73+ d = 'M3 13.6666V6.16667L7.99998 2.40387L13 6.16667V13.6666H9.26922V9.2051H6.73075V13.6666H3Z'
74+ fill = 'currentColor'
75+ />
76+ </ g >
77+ </ svg >
78+ ホーム
79+ </ BreadcrumbLink >
80+ </ BreadcrumbItem >
81+ < BreadcrumbItem >
82+ < BreadcrumbLink href = '#' key = 'organization' >
83+ 組織情報
84+ </ BreadcrumbLink >
85+ </ BreadcrumbItem >
86+ < BreadcrumbItem >
87+ < BreadcrumbLink href = '#' key = 'a' >
88+ 長いページタイトルが入ります長いページタイトルが入ります
89+ </ BreadcrumbLink >
90+ </ BreadcrumbItem >
91+ < BreadcrumbItem >
92+ < BreadcrumbLink href = '#' key = 'b' >
93+ 長いページタイトルが入ります長いページタイトルが入ります
94+ </ BreadcrumbLink >
95+ </ BreadcrumbItem >
96+ < BreadcrumbItem isCurrent >
97+ 長いページタイトルが入ります長いページタイトルが入ります
98+ </ BreadcrumbItem >
99+ </ BreadcrumbList >
100+ </ Breadcrumbs >
101+ ) ;
102+ } ,
103+ } ;
104+
105+ export const WithVisibleLabel : Story = {
106+ render : ( ) => {
107+ const breadcrumbsId = React . useId ( ) ;
108+ return (
109+ < Breadcrumbs className = 'flex gap-1 items-baseline' aria-labelledby = { `${ breadcrumbsId } -label` } >
110+ < div className = 'flex-none' >
111+ < BreadcrumbsLabel className = 'text-dns-16N-2' id = { `${ breadcrumbsId } -label` } >
112+ 現在位置
113+ </ BreadcrumbsLabel >
114+ < span className = 'text-dns-16N-2' > :</ span >
115+ </ div >
116+
117+ < BreadcrumbList >
118+ < BreadcrumbItem >
119+ < BreadcrumbLink href = '#' key = 'home' >
120+ ホーム
121+ </ BreadcrumbLink >
122+ </ BreadcrumbItem >
123+ < BreadcrumbItem >
124+ < BreadcrumbLink href = '#' key = 'organization' >
125+ 組織情報
126+ </ BreadcrumbLink >
127+ </ BreadcrumbItem >
128+ < BreadcrumbItem >
129+ < BreadcrumbLink href = '#' key = 'a' >
130+ 長いページタイトルが入ります長いページタイトルが入ります
131+ </ BreadcrumbLink >
132+ </ BreadcrumbItem >
133+ < BreadcrumbItem >
134+ < BreadcrumbLink href = '#' key = 'b' >
135+ 長いページタイトルが入ります長いページタイトルが入ります
136+ </ BreadcrumbLink >
137+ </ BreadcrumbItem >
138+ < BreadcrumbItem isCurrent >
139+ 長いページタイトルが入ります長いページタイトルが入ります
140+ </ BreadcrumbItem >
141+ </ BreadcrumbList >
142+ </ Breadcrumbs >
143+ ) ;
144+ } ,
145+ } ;
44146
45- < Breadcrumbs >
147+ export const WithSlot : Story = {
148+ render : ( ) => {
149+ const breadcrumbsId = React . useId ( ) ;
150+ return (
151+ < Breadcrumbs aria-labelledby = { `${ breadcrumbsId } -label` } >
152+ < BreadcrumbsLabel className = 'sr-only' id = { `${ breadcrumbsId } -label` } >
153+ 現在位置
154+ </ BreadcrumbsLabel >
155+ < BreadcrumbList >
46156 < BreadcrumbItem >
47157 < BreadcrumbLink asChild key = 'home' >
48158 < Link href = '#' > Slotを使ったホーム</ Link >
@@ -70,47 +180,7 @@ export const Example: Story = {
70180 < BreadcrumbItem isCurrent >
71181 長いページタイトルが入ります長いページタイトルが入ります
72182 </ BreadcrumbItem >
73- </ Breadcrumbs >
74- </ div >
75- ) ;
76- } ,
77- } ;
78-
79- export const WithHomeIcon : Story = {
80- render : ( ) => {
81- return (
82- < Breadcrumbs >
83- < BreadcrumbItem >
84- < BreadcrumbLink className = 'inline-flex items-center gap-1' href = '#' key = 'home' >
85- < svg aria-hidden = { true } fill = 'none' height = '16' viewBox = '0 0 16 16' width = '16' >
86- < g >
87- < path
88- d = 'M3 13.6666V6.16667L7.99998 2.40387L13 6.16667V13.6666H9.26922V9.2051H6.73075V13.6666H3Z'
89- fill = 'currentColor'
90- />
91- </ g >
92- </ svg >
93- ホーム
94- </ BreadcrumbLink >
95- </ BreadcrumbItem >
96- < BreadcrumbItem >
97- < BreadcrumbLink href = '#' key = 'organization' >
98- 組織情報
99- </ BreadcrumbLink >
100- </ BreadcrumbItem >
101- < BreadcrumbItem >
102- < BreadcrumbLink href = '#' key = 'a' >
103- 長いページタイトルが入ります長いページタイトルが入ります
104- </ BreadcrumbLink >
105- </ BreadcrumbItem >
106- < BreadcrumbItem >
107- < BreadcrumbLink href = '#' key = 'b' >
108- 長いページタイトルが入ります長いページタイトルが入ります
109- </ BreadcrumbLink >
110- </ BreadcrumbItem >
111- < BreadcrumbItem isCurrent >
112- 長いページタイトルが入ります長いページタイトルが入ります
113- </ BreadcrumbItem >
183+ </ BreadcrumbList >
114184 </ Breadcrumbs >
115185 ) ;
116186 } ,
0 commit comments