hr-design-system-handlebars 1.102.6 → 1.103.1
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.
- package/.storybook/main.js +3 -0
- package/.storybook/preview-head.html +3 -0
- package/CHANGELOG.md +24 -0
- package/dist/assets/icons/tagesschau/svgmap/pause.svg +4 -0
- package/dist/assets/icons/tagesschau/svgmap.min.svg +1 -1
- package/dist/assets/index.css +12 -3
- package/dist/assets/js/utils.js +73 -0
- package/dist/views/components/page/index/page_test_story.hbs +1 -1
- package/dist/views_static/components/page/index/page_test_story.hbs +1 -1
- package/package.json +2 -2
- package/src/assets/fixtures/banner/banner.json +7 -7
- package/src/assets/fixtures/button/button.json +142 -0
- package/src/assets/fixtures/button/link_button.json +153 -0
- package/src/assets/fixtures/label/label.json +65 -0
- package/src/assets/fixtures/mediaplayer/mediaplayer_button.json +40 -0
- package/src/assets/fixtures/mediaplayer/mediaplayer_snapshots.json +151 -0
- package/src/assets/fixtures/navigation/breadcrumb/breadcrumb.inc.json +8 -10
- package/src/assets/fixtures/navigation/breadcrumb/breadcrumb.json +113 -0
- package/src/assets/fixtures/page/metadatabox.inc.json +98 -0
- package/src/assets/fixtures/page/metadatabox.json +89 -16
- package/src/assets/fixtures/page/page.json +5 -4
- package/src/assets/fixtures/pagination/page_pagination.inc.json +157 -0
- package/src/assets/fixtures/pagination/page_pagination.json +251 -88
- package/src/assets/fixtures/site_header/site_header.inc.json +83 -0
- package/src/assets/fixtures/site_header/site_header.json +122 -0
- package/src/assets/fixtures/teaser/components/teaser_byline.json +35 -0
- package/src/assets/fixtures/teaser/components/teaser_headings.json +61 -0
- package/src/assets/fixtures/teaser/components/teaser_text.json +45 -0
- package/src/assets/fixtures/teaser/components/teaser_title.json +38 -0
- package/src/assets/fixtures/teaser/teaser_alternative.json +478 -0
- package/src/assets/fixtures/teaser/teaser_alternative_av.json +465 -0
- package/src/assets/fixtures/teaser/teaser_cluster.json +682 -0
- package/src/assets/fixtures/teaser/teaser_content_nav.json +532 -0
- package/src/assets/fixtures/teaser/teaser_event.json +284 -0
- package/src/assets/fixtures/teaser/teaser_indextext.json +180 -0
- package/src/assets/fixtures/teaser/teaser_podcast.json +75 -2
- package/src/assets/fixtures/teaser/teaser_poster.json +322 -0
- package/src/assets/fixtures/teaser/teaser_stage.json +145 -0
- package/src/assets/fixtures/teaser/teaser_standard.json +371 -0
- package/src/assets/fixtures/teaser/teaser_standard_av.json +285 -0
- package/src/assets/fixtures/teaser/teaser_ticker_alternative.json +156 -0
- package/src/assets/fixtures/teaser/teaser_ticker_standard.json +241 -0
- package/src/assets/fixtures/teaser/teaser_ticker_timeline.json +75 -28
- package/src/assets/icons/tagesschau/svgmap/pause.svg +4 -0
- package/src/assets/icons/tagesschau/svgmap.min.svg +1 -1
- package/src/assets/js/utils.js +73 -0
- package/src/stories/basics/SnapshotStories.mdx +353 -0
- package/src/stories/views/components/button/button.mdx +3 -5
- package/src/stories/views/components/button/button.stories.js +71 -93
- package/src/stories/views/components/button/fixtures/button.json +1 -0
- package/src/stories/views/components/button/fixtures/link_button.json +1 -0
- package/src/stories/views/components/button/link_button.mdx +3 -5
- package/src/stories/views/components/button/link_button.stories.js +67 -97
- package/src/stories/views/components/grid/grid.stories.js +3 -0
- package/src/stories/views/components/label/fixtures/label.json +1 -0
- package/src/stories/views/components/label/label.stories.js +31 -3
- package/src/stories/views/components/mediaplayer/fixtures/mediaplayer_button.json +1 -0
- package/src/stories/views/components/mediaplayer/fixtures/mediaplayer_snapshots.json +1 -0
- package/src/stories/views/components/mediaplayer/mediaplayer.stories.js +32 -12
- package/src/stories/views/components/mediaplayer/mediaplayer_button.stories.js +41 -34
- package/src/stories/views/components/navigation/breadcrumb/breadcrumb.stories.js +30 -29
- package/src/stories/views/components/navigation/breadcrumb/fixtures/breadcrumb.json +1 -0
- package/src/stories/views/components/page/components/metadatabox.stories.js +87 -23
- package/src/stories/views/components/page/fixtures/metadatabox.json +1 -1
- package/src/stories/views/components/page/index/page.data.js +10 -14
- package/src/stories/views/components/page/index/page.stories.js +3 -3
- package/src/stories/views/components/page/index/page_test_story.hbs +1 -1
- package/src/stories/views/components/pagination/fixtures/page_pagination.json +1 -1
- package/src/stories/views/components/pagination/page_pagination.data.js +2 -2
- package/src/stories/views/components/pagination/page_pagination.stories.js +45 -114
- package/src/stories/views/components/podcast/podcast_subscribe_button.stories.js +2 -2
- package/src/stories/views/components/site_header/fixtures/site_header.json +1 -0
- package/src/stories/views/components/site_header/header.stories.js +32 -17
- package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.js +164 -44
- package/src/stories/views/components/teaser/components/fixtures/teaser_byline.json +1 -0
- package/src/stories/views/components/teaser/components/fixtures/teaser_headings.json +1 -0
- package/src/stories/views/components/teaser/components/fixtures/teaser_text.json +1 -0
- package/src/stories/views/components/teaser/components/fixtures/teaser_title.json +1 -0
- package/src/stories/views/components/teaser/components/teaser_byline.stories.js +32 -8
- package/src/stories/views/components/teaser/components/teaser_heading.stories.js +36 -38
- package/src/stories/views/components/teaser/components/teaser_text.stories.js +34 -23
- package/src/stories/views/components/teaser/components/teaser_title.stories.js +35 -23
- package/src/stories/views/components/teaser/content_nav/teaser_content_nav.stories.js +100 -33
- package/src/stories/views/components/teaser/fixtures/teaser_alternative.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_av.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_cluster.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_event.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_indextext.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_podcast.json +1 -1
- package/src/stories/views/components/teaser/fixtures/teaser_poster.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_stage.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_standard.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_standard_av.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_ticker_alternative.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_ticker_standard.json +1 -0
- package/src/stories/views/components/teaser/fixtures/teaser_ticker_timeline.json +1 -1
- package/src/stories/views/components/teaser/podcast/podcast.stories.js +37 -25
- package/src/stories/views/components/teaser/teaser_alternativ.stories.js +124 -36
- package/src/stories/views/components/teaser/teaser_alternativ_av.stories.js +187 -36
- package/src/stories/views/components/teaser/teaser_indextext.stories.js +87 -18
- package/src/stories/views/components/teaser/teaser_poster.stories.js +87 -12
- package/src/stories/views/components/teaser/teaser_stage.stories.js +69 -12
- package/src/stories/views/components/teaser/teaser_standard.stories.js +182 -48
- package/src/stories/views/components/teaser/teaser_standard_av.stories.js +108 -31
- package/src/stories/views/components/teaser/teaser_standard_event.stories.js +122 -51
- package/src/stories/views/components/teaser/ticker/teaser_ticker_alternativ.stories.js +55 -11
- package/src/stories/views/components/teaser/ticker/teaser_ticker_standard.stories.js +77 -22
- package/src/stories/views/components/teaser/ticker/teaser_ticker_timeline.stories.js +35 -13
- package/tailwind.config.js +2 -1
- package/src/assets/fixtures/navigation/breadcrumb/breadcrumb_2_level.json +0 -15
- package/src/assets/fixtures/navigation/breadcrumb/breadcrumb_3_level.json +0 -19
- package/src/assets/fixtures/navigation/breadcrumb/breadcrumb_4_level.json +0 -23
- package/src/assets/fixtures/navigation/breadcrumb/breadcrumb_5_level.json +0 -27
- package/src/assets/fixtures/page/metadatabox_comments.json +0 -23
- package/src/assets/fixtures/page/metadatabox_more_authors.json +0 -43
- package/src/assets/fixtures/page/metadatabox_more_authors_comments.json +0 -47
- package/src/assets/fixtures/page/metadatabox_one_author.json +0 -34
- package/src/assets/fixtures/page/metadatabox_one_author_comments.json +0 -38
- package/src/assets/fixtures/page/metadatabox_one_author_without_picture.json +0 -24
- package/src/assets/fixtures/site_header/site_header_default.json +0 -26
- package/src/assets/fixtures/site_header/site_header_default_no_sticky.json +0 -9
- package/src/assets/fixtures/site_header/site_header_mit_submenu.json +0 -17
- package/src/assets/fixtures/site_header/site_header_mit_submenu_as_flyout.json +0 -17
- package/src/assets/fixtures/site_header/site_header_mit_submenu_as_flyout_no_sticky.json +0 -9
- package/src/assets/fixtures/site_header/site_header_mit_submenu_no_sticky.json +0 -9
- package/src/assets/fixtures/site_header/site_header_mit_top_topics.json +0 -20
- package/src/assets/fixtures/site_header/site_header_mit_top_topics_no_sticky.json +0 -9
- package/src/assets/fixtures/site_header/site_header_mit_warnung.json +0 -17
- package/src/assets/fixtures/site_header/site_header_mit_warnung_no_sticky.json +0 -9
- package/src/assets/fixtures/teaser/cluster_teaser_100.json +0 -21
- package/src/assets/fixtures/teaser/cluster_teaser_100_genre.json +0 -29
- package/src/assets/fixtures/teaser/cluster_teaser_100_image.json +0 -50
- package/src/assets/fixtures/teaser/cluster_teaser_33.json +0 -21
- package/src/assets/fixtures/teaser/cluster_teaser_33_genre.json +0 -42
- package/src/assets/fixtures/teaser/cluster_teaser_33_image.json +0 -69
- package/src/assets/fixtures/teaser/cluster_teaser_33_long_title.json +0 -29
- package/src/assets/fixtures/teaser/cluster_teaser_50.json +0 -21
- package/src/assets/fixtures/teaser/cluster_teaser_50_genre.json +0 -42
- package/src/assets/fixtures/teaser/cluster_teaser_50_image.json +0 -69
- package/src/assets/fixtures/teaser/cluster_teaser_Podcast_Channel.json +0 -67
- package/src/assets/fixtures/teaser/cluster_teaser_extern_100.json +0 -29
- package/src/assets/fixtures/teaser/cluster_teaser_extern_33.json +0 -29
- package/src/assets/fixtures/teaser/cluster_teaser_extern_50.json +0 -29
- package/src/assets/fixtures/teaser/cluster_teaser_ordered_100.json +0 -29
- package/src/assets/fixtures/teaser/cluster_teaser_ordered_33.json +0 -29
- package/src/assets/fixtures/teaser/cluster_teaser_ordered_50.json +0 -29
- package/src/assets/fixtures/teaser/stage_teaser.json +0 -4
- package/src/assets/fixtures/teaser/stage_teaser_eventtag.json +0 -48
- package/src/assets/fixtures/teaser/stage_teaser_program.json +0 -55
- package/src/assets/fixtures/teaser/stage_teaser_wide.json +0 -23
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif_audio.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif_download.json +0 -46
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif_featured_content.json +0 -38
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif_link.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif_live.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif_single_event.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif_two_events.json +0 -43
- package/src/assets/fixtures/teaser/teaser_alternative_100_serif_video.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_50_serif.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_50_serif_audio.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_50_serif_download.json +0 -46
- package/src/assets/fixtures/teaser/teaser_alternative_50_serif_link.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_50_serif_live.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_50_serif_video.json +0 -39
- package/src/assets/fixtures/teaser/teaser_alternative_hero_serif.json +0 -27
- package/src/assets/fixtures/teaser/teaser_alternative_hero_serif_audio.json +0 -27
- package/src/assets/fixtures/teaser/teaser_alternative_hero_serif_comments.json +0 -27
- package/src/assets/fixtures/teaser/teaser_alternative_hero_serif_label.json +0 -38
- package/src/assets/fixtures/teaser/teaser_alternative_hero_serif_link.json +0 -14
- package/src/assets/fixtures/teaser/teaser_alternative_hero_serif_live.json +0 -14
- package/src/assets/fixtures/teaser/teaser_alternative_hero_serif_program.json +0 -14
- package/src/assets/fixtures/teaser/teaser_alternative_hero_serif_video.json +0 -14
- package/src/assets/fixtures/teaser/teaser_alternative_without_teaserimage_50_serif.json +0 -26
- package/src/assets/fixtures/teaser/teaser_comments_without_teaserinfo.json +0 -14
- package/src/assets/fixtures/teaser/teaser_content_nav_dropdown_100.json +0 -10
- package/src/assets/fixtures/teaser/teaser_content_nav_dropdown_autosuggest_100.json +0 -14
- package/src/assets/fixtures/teaser/teaser_content_nav_dropdown_subgroups.json +0 -215
- package/src/assets/fixtures/teaser/teaser_content_nav_flow_100.json +0 -14
- package/src/assets/fixtures/teaser/teaser_content_nav_flow_autosuggest.json +0 -18
- package/src/assets/fixtures/teaser/teaser_content_nav_list_100.json +0 -14
- package/src/assets/fixtures/teaser/teaser_content_nav_list_autosuggest.json +0 -18
- package/src/assets/fixtures/teaser/teaser_content_nav_mixed_100.json +0 -187
- package/src/assets/fixtures/teaser/teaser_content_nav_mixed_autosuggest.json +0 -14
- package/src/assets/fixtures/teaser/teaser_indextext_100_accented.json +0 -26
- package/src/assets/fixtures/teaser/teaser_indextext_100_boxed.json +0 -26
- package/src/assets/fixtures/teaser/teaser_indextext_100_highlighted.json +0 -26
- package/src/assets/fixtures/teaser/teaser_indextext_50_accented.json +0 -26
- package/src/assets/fixtures/teaser/teaser_poster_lg.json +0 -39
- package/src/assets/fixtures/teaser/teaser_poster_md.json +0 -39
- package/src/assets/fixtures/teaser/teaser_poster_md_label.json +0 -60
- package/src/assets/fixtures/teaser/teaser_poster_md_label_byline.json +0 -50
- package/src/assets/fixtures/teaser/teaser_standard_100_serif.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_100_serif_download.json +0 -21
- package/src/assets/fixtures/teaser/teaser_standard_100_serif_link.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_100_serif_program.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_100_serif_single_event.json +0 -22
- package/src/assets/fixtures/teaser/teaser_standard_100_serif_two_events.json +0 -26
- package/src/assets/fixtures/teaser/teaser_standard_25_serif.json +0 -35
- package/src/assets/fixtures/teaser/teaser_standard_25_serif_audio.json +0 -35
- package/src/assets/fixtures/teaser/teaser_standard_25_serif_audio_livestream.json +0 -35
- package/src/assets/fixtures/teaser/teaser_standard_25_serif_link.json +0 -31
- package/src/assets/fixtures/teaser/teaser_standard_25_serif_live.json +0 -35
- package/src/assets/fixtures/teaser/teaser_standard_25_serif_podcast.json +0 -35
- package/src/assets/fixtures/teaser/teaser_standard_25_serif_video.json +0 -35
- package/src/assets/fixtures/teaser/teaser_standard_33_long_geotag.json +0 -22
- package/src/assets/fixtures/teaser/teaser_standard_33_serif.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_33_serif_link.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_33_serif_multiple_events.json +0 -36
- package/src/assets/fixtures/teaser/teaser_standard_33_serif_single_event.json +0 -18
- package/src/assets/fixtures/teaser/teaser_standard_33_serif_single_event_status.json +0 -22
- package/src/assets/fixtures/teaser/teaser_standard_33_serif_two_events.json +0 -22
- package/src/assets/fixtures/teaser/teaser_standard_50_serif.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_audio.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_audio_livestream.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_download.json +0 -21
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_featured_content.json +0 -17
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_link.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_link_two_click.json +0 -22
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_live.json +0 -22
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_podcast.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_single_event.json +0 -17
- package/src/assets/fixtures/teaser/teaser_standard_50_serif_video.json +0 -14
- package/src/assets/fixtures/teaser/teaser_standard_66_serif_single_event.json +0 -25
- package/src/assets/fixtures/teaser/teaser_standard_hero_serif.json +0 -4
- package/src/assets/fixtures/teaser/teaser_standard_hero_serif_comments.json +0 -4
- package/src/assets/fixtures/teaser/teaser_standard_hero_serif_label.json +0 -17
- package/src/assets/fixtures/teaser/teaser_standard_hero_serif_link.json +0 -4
- package/src/assets/fixtures/teaser/teaser_standard_without_teaserimage_25_serif.json +0 -22
- package/src/assets/fixtures/teaser/teaser_standard_without_teaserimage_50_serif.json +0 -14
- package/src/assets/fixtures/teaser/ticker_teaser_alternativ_100.json +0 -54
- package/src/assets/fixtures/teaser/ticker_teaser_alternativ_hero.json +0 -42
- package/src/assets/fixtures/teaser/ticker_teaser_alternativ_hero_audio.json +0 -42
- package/src/assets/fixtures/teaser/ticker_teaser_standard_100.json +0 -37
- package/src/assets/fixtures/teaser/ticker_teaser_standard_25.json +0 -50
- package/src/assets/fixtures/teaser/ticker_teaser_standard_33.json +0 -37
- package/src/assets/fixtures/teaser/ticker_teaser_standard_50.json +0 -37
- package/src/assets/fixtures/teaser/ticker_teaser_standard_hero.json +0 -25
- package/src/assets/fixtures/teaser/ticker_teaser_standard_hero_audio.json +0 -25
- package/src/stories/views/components/navigation/breadcrumb/fixtures/breadcrumb_2_level.json +0 -1
- package/src/stories/views/components/navigation/breadcrumb/fixtures/breadcrumb_3_level.json +0 -1
- package/src/stories/views/components/navigation/breadcrumb/fixtures/breadcrumb_4_level.json +0 -1
- package/src/stories/views/components/navigation/breadcrumb/fixtures/breadcrumb_5_level.json +0 -1
- package/src/stories/views/components/page/fixtures/metadatabox_comments.json +0 -1
- package/src/stories/views/components/page/fixtures/metadatabox_more_authors.json +0 -1
- package/src/stories/views/components/page/fixtures/metadatabox_more_authors_comments.json +0 -1
- package/src/stories/views/components/page/fixtures/metadatabox_one_author.json +0 -1
- package/src/stories/views/components/page/fixtures/metadatabox_one_author_comments.json +0 -1
- package/src/stories/views/components/page/fixtures/metadatabox_one_author_without_picture.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_default.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_default_no_sticky.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_submenu.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_submenu_asFlyout_no_sticky.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_submenu_as_flyout.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_submenu_as_flyout_no_sticky.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_submenu_no_sticky.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_top_topics.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_top_topics_no_sticky.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_warnung.json +0 -1
- package/src/stories/views/components/site_header/fixtures/site_header_mit_warnung_no_sticky.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_100_genre.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_100_image.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_33.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_33_genre.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_33_image.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_33_long_title.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_50.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_50_genre.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_50_image.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_Podcast_Channel.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_extern_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_extern_33.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_extern_50.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_ordered_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_ordered_33.json +0 -1
- package/src/stories/views/components/teaser/fixtures/cluster_teaser_ordered_50.json +0 -1
- package/src/stories/views/components/teaser/fixtures/stage_teaser.json +0 -1
- package/src/stories/views/components/teaser/fixtures/stage_teaser_eventtag.json +0 -1
- package/src/stories/views/components/teaser/fixtures/stage_teaser_program.json +0 -1
- package/src/stories/views/components/teaser/fixtures/stage_teaser_wide.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_audio.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_download.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_featured_content.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_link.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_live.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_single_event.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_two_events.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_100_serif_video.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif_audio.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif_download.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif_link.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif_live.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_50_serif_video.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_audio.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_comments.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_label.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_link.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_live.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_program.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_hero_serif_video.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_alternative_without_teaserimage_50_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_comments_without_teaserinfo.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_dropdown_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_dropdown_autosuggest_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_dropdown_subgroups.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_flow_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_flow_autosuggest.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_list_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_list_autosuggest.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_mixed_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_content_nav_mixed_autosuggest.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_indextext_100_accented.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_indextext_100_boxed.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_indextext_100_highlighted.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_indextext_50_accented.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_poster_lg.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_poster_md.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_poster_md_label.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_poster_md_label_byline.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif_download.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif_link.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif_program.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif_single_event.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_100_serif_two_events.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_audio.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_audio_livestream.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_link.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_live.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_podcast.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_25_serif_video.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_33_long_geotag.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif_link.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif_multiple_events.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif_single_event.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif_single_event_status.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_33_serif_two_events.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_audio.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_audio_livestream.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_download.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_featured_content.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_link.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_link_two_click.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_live.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_podcast.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_single_event.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_50_serif_video.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_66_serif_single_event.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_hero_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_hero_serif_comments.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_hero_serif_label.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_hero_serif_link.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_without_teaserimage_25_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/teaser_standard_without_teaserimage_50_serif.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_alternativ_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_alternativ_hero.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_alternativ_hero_audio.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_100.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_25.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_33.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_50.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_hero.json +0 -1
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_hero_audio.json +0 -1
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs'
|
|
2
|
+
|
|
3
|
+
<Meta title="Grundlegendes/Entwicklung/Snapshot Stories" />
|
|
4
|
+
|
|
5
|
+
# Snapshot Stories
|
|
6
|
+
|
|
7
|
+
Unser Storybook ist standardmäßig so konfiguriert, dass bei einem Build (wird automatisch bei einem Pull Request ausgelöst) von jeder Story
|
|
8
|
+
mit Hilfe des Tools Chromatic ein sogenannter Snapshot erstellt wird. Ein Snapshot ist ein Screenshot der Story und wird verwendet, um
|
|
9
|
+
automatisiert zu testen, ob sich etwas am Aussehen eine Story geändert hat. Pro Monat stehen uns in Chromatic eine bestimmte Anzahl an Snapshots
|
|
10
|
+
zur verfügung (derzeit sind dies 35.000). Wird diese Grenze überschritten, muss pro zusätlichem Snapshot eine Summe X gezahlt werden. Zu Beginn der
|
|
11
|
+
Entwicklung waren die 35.000 Snapshots ausreichend, jedoch erreichen wir mit einer kontinuierlich steigenden Anzahl an Komponenten und dementsprechend
|
|
12
|
+
immer mehr Stories mittlerweile sehr schnell unser Snapshot Limit und fast jeden Monat eine nicht unerhebliche Summe dazu zahlen. Um dies zu vermeiden,
|
|
13
|
+
wollen wir zukünftig nur noch sogenannte Snapshot Stories mit Chromatic testen und die Tests für alle normalen Stories deaktivieren. Als Vorbild
|
|
14
|
+
dient uns hier das Vorgehen von Netlify (siehe [https://www.netlify.com/blog/storybook-visual-regression-testing/?ref=storybookblog.ghost.io#main](https://www.netlify.com/blog/storybook-visual-regression-testing/?ref=storybookblog.ghost.io#main)).
|
|
15
|
+
|
|
16
|
+
Um Snapshot Kapazitäten bei Chromatic zu sparen, werden, zumindest für den automatisierten Test, alle Zustände einer Komponente in einer einzigen Story
|
|
17
|
+
zusammengefasst. Bei einem Story File mit zehn Stories werden auf diese Weise neun Snapshots eingespart. Im Folgenden wird erklärt, wie dieses Ziel erreicht werden kann.
|
|
18
|
+
|
|
19
|
+
## Aufbau der Testdaten (Fixtures)
|
|
20
|
+
Die Testdaten für Stories werden, wie im Kapitel [Fixtures](?path=/docs/grundlegendes-entwicklung-testdatenbereitstellung--docs) beschrieben, strukturiert in Form einer
|
|
21
|
+
JSON Datei bereitgestellt. Für die Verwendung mit Snapshot Stories wurde deren Struktur angepasst und erweitert. Die in einer Snapshot Story zusammengefassten Stories
|
|
22
|
+
lassen sich gruppieren, sortieren und die Art und Weise wie sie dargestellt werden (Flexbox oder Grid) konfiguriert werden.
|
|
23
|
+
|
|
24
|
+
### Globale Konfiguration
|
|
25
|
+
Zunächst muss in jeder Testdaten Datei muss ein Objekt `config` angelegt werden. Hiermit werden globale Einstellungen für die Snapshot Story festgelegt.
|
|
26
|
+
Folgende Eigenschaften können konfiguriert werden:
|
|
27
|
+
|
|
28
|
+
| Property | Beschreibung |Standard-Wert|
|
|
29
|
+
| :---------- | :--------------------------------------------------- |:--------------------------------------------------- |
|
|
30
|
+
| **template** | Legt das Standard Template fest mit dem alle Stories einer Snapshot-Story gerendert werden. Dieser Wert kann pro Story überschrieben werden. Der hier angegebene Wert muss dem Namen eines Templates im Array `hbsTemplates` im Story File entsprechen. ||
|
|
31
|
+
| **path** | Erlaubt es einen Pfad zu den Testdaten anzugeben. Für die Teaser ist dieser z.B. `args.logicItem.includeModel` |`args`|
|
|
32
|
+
| **layout** | Legt das Layout fest, mit dem die einzelnen Stories innerhalb der Snapshot-Story angeordet werden. Erlaubte Werte sind `flex` und `grid` |`flex`|
|
|
33
|
+
| **renderSnapshotsWrapper** | Hierüber wird gesteuert, ob um die Stories innerhalb der Snapshot-Story, ein Wrapper Div gesetzt wird oder nicht. Obwohl dies für Flex und Grid Layouts benötigt wird, kann es sein, dass es hier ausgestellt werden muss, da im Story File mithilfe eines Decorators bereits ein Wrapper Div gesetzt wird.|`true`|
|
|
34
|
+
|
|
35
|
+
Nur die Eigenschaften, die keinen Standard-Wert besitzen müssen zwingend gesetzt werden. Ein vollständig konfiguriertes Beispiel zeigt der folgende Ausschnitt aus einer Testdaten-Datei.
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"config":{
|
|
40
|
+
"template": "default",
|
|
41
|
+
"path": "args.logicItem.includeModel",
|
|
42
|
+
"layout": "grid",
|
|
43
|
+
"renderSnapshotsWrapper": false
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Stories
|
|
49
|
+
Die Stories einer Snapshot-Story werden in Form von Story-Objekten definiert. Diese können auf Ebene des globalen `config` Objekts oder innerhalb von Gruppen platziert werden.
|
|
50
|
+
Eine Story muss, damit Inhalte angezeigt werden können, zwingend ein Objekt `args` mit den Testdaten der Story enthalten. Mit Hilfe eines `config` Objekts können einzelne Eigenschaften
|
|
51
|
+
der globale Konfiguration überschrieben und neue Konfigurationen für die Story festgelegt werden. Folgende Eigenschaften können konfiguriert werden:
|
|
52
|
+
|
|
53
|
+
| Property | Beschreibung |Standard-Wert|
|
|
54
|
+
| :---------- | :--------------------------------------------------- |:--------------------------------------------------- |
|
|
55
|
+
| **template** | Erlaubt es den Namen eines individuellen Templates zum Rendering der Story anzugeben. Wird nichts angegeben, wird das in der globalen Konfiguration definierte zum Rendering verwendet.||
|
|
56
|
+
| **path** | Erlaubt es einen Storyspezifischen Pfad zu den Testdaten anzugeben. Wird hier nichts angegeben wird der Wert aus der globalen Konfiguration genutzt ||
|
|
57
|
+
| **renderSnapshotItemWrapper** | Legt fest, ob das Markup der Story von einem `<div>` umschlossen wird. Das Setzen dieser Eigenschaft hat nur eine Auswirkung, wenn die globale Eigenschaft `renderSnapshotsWrapper` auf `true`steht. |`true`|
|
|
58
|
+
| **css** | Hierüber besteht die Möglichkeit individuelle CSS Klassen für das eine Story umschließende Wrapper `<div>` zu setzen. ||
|
|
59
|
+
| **useAsSnapshot** | Hierüber kann gesteuert werden, ob einzelne Stories nicht in der Snapshot-Story gerendert werden sollen. |`true`|
|
|
60
|
+
|
|
61
|
+
Die Stories werden im Storybook Frontend standardmäßig nach dem Namen sortiert angezeigt. Wird bei der Ausgabe eine bestimmte Reihenfolge benötigt, kann diese durch Vorranstellen
|
|
62
|
+
einer Nummer vor dem Storynamen erreicht werden.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"config": {
|
|
68
|
+
"renderSnapshotsWrapper": false,
|
|
69
|
+
"path": "args.logicItem.includeModel",
|
|
70
|
+
"template": "default"
|
|
71
|
+
},
|
|
72
|
+
"1_byline_with_teaser_info": {
|
|
73
|
+
"args": {
|
|
74
|
+
"@->jsoninclude": "teaser/teasers.inc.json",
|
|
75
|
+
"@->contentpath": "teaser"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"2_byline_with_comments_and_teaser_info": {
|
|
79
|
+
"config":{
|
|
80
|
+
"template":"test"
|
|
81
|
+
},
|
|
82
|
+
"args": {
|
|
83
|
+
"@->jsoninclude": "teaser/teasers.inc.json",
|
|
84
|
+
"@->contentpath": "teaserWithComments"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Hier werden die Daten für eine Snapshot-Story mit zwei Stories definiert. Zunächst wird in der globalen Koniguration definiert, dass die Stories nicht von einem Wrapper `<div>`
|
|
91
|
+
umschlossen werden sollen, die eigentlichen Testdaten über den Pfad `args.logicItem.includeModel` zur Verfügung stehen und zum Rendern der Stories das Template
|
|
92
|
+
`default` genutzt werden soll. Die Reihenfolge der zu rendernden Stories wird durch die Vorranstellung der Nummer festelegt. Bei der Story `2_byline_with_comments_and_teaser_info`
|
|
93
|
+
wird konfiguriert, dass zum Rendern statt des `default` Templates das Template `test`genutzt wird.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
### Gruppen
|
|
97
|
+
Sollen bei der Ausgabe thematisch zusamengehörige Stories nebeneinander platziert werden, können Sie in Gruppen zusammengefasst werden.
|
|
98
|
+
Auf diese Weise werden z.B. alle 50% Teaser in einem zusammenhängenden Block dargestellt. Gruppen werden in der Testdaten Datei als eigene Objekte auf der selben
|
|
99
|
+
Ebene wie das globale `config` Objekt platziert. Damit sie als Gruppe erkannt werden, muss ihr Name nach dem Schema `group_<Gruppenname>` aufgebaut werden. Innerhalb einer
|
|
100
|
+
Gruppe können beliebig viele Stories definiert werden. Die Stories innerhalb einer Gruppe können, wie im Kapitel [Stories](#stories) beschrieben, sortiert werden.
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"config": {
|
|
105
|
+
"template": "default",
|
|
106
|
+
"path": "args.logicItem.includeModel",
|
|
107
|
+
"layout": "grid",
|
|
108
|
+
"renderSnapshotsWrapper": false
|
|
109
|
+
},
|
|
110
|
+
"group_100": {
|
|
111
|
+
"1_<Storyname>":{},
|
|
112
|
+
"2_<Storyname>":{},
|
|
113
|
+
...
|
|
114
|
+
},
|
|
115
|
+
"group_50": {
|
|
116
|
+
"1_<Storyname>":{},
|
|
117
|
+
"2_<Storyname>":{},
|
|
118
|
+
...
|
|
119
|
+
},
|
|
120
|
+
"group_33": {
|
|
121
|
+
"<Storyname>":{},
|
|
122
|
+
"<Storyname>":{},
|
|
123
|
+
...
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
Im Codebeispiel werden drei Gruppen definiert. Die Gruppen `group_100`, `group_50` enthalten sortierte und die Gruppe `group_33` unsortierte Stories.
|
|
128
|
+
|
|
129
|
+
## Verwendung der Testdaten im Story File
|
|
130
|
+
Nachdem die Testdaten für die Stories wie unter [Aufbau der Testdaten](#aufbau-der-testdaten-fixtures) beschrieben definiert wurden, müssen sie, damit im Storybook
|
|
131
|
+
Frontend etwas angezeigt wird auch noch ausgelesen werden. Was hierbei zu beachten ist, wird im Folgenden beschrieben.
|
|
132
|
+
|
|
133
|
+
Im Kopf eines Story Files (`<storyname>.stories.js`) müssen, damit auf die Testdaten zugegriffen und eine Snapshot-Story gerendert werden kann, zwingend die Folgenden
|
|
134
|
+
beiden Imports gemacht werden:
|
|
135
|
+
|
|
136
|
+
```javascript
|
|
137
|
+
import { getSnapshotsTemplate } from '/src/assets/js/utils.js'
|
|
138
|
+
import fixtures from './fixtures/teaser_standard.json' // individueller Pfad zur Testdaten Datei
|
|
139
|
+
```
|
|
140
|
+
Mit dem ersten Import wird die Utility Methode `getSnapshotsTemplate` importiert. Diese Methode durchläuft in einer Schleife alle in den Testdaten bereitgestellten Stories
|
|
141
|
+
und stellt sie in einem Template zur rendern der Snapshot-Story zur Verfügung. Mit dem zweiten Import wird die Testdaten Datei in ein Objekt `fixtures` importiert. Der Pfad dieser Datei muss individuell
|
|
142
|
+
angepasst werden. Der Name des Testdaten Objekts kann geändert werden, aber es empfielht sich aus Konsistenzgründen den Namen `fixtures` beizubehalten.
|
|
143
|
+
An dieser Stelle können nun noch weitere Story spezifischen Imports gemacht werden.
|
|
144
|
+
|
|
145
|
+
Im Anschluss daran müssen die zum Rendern der Stories benötigten Handlebars Templates definiert werden.
|
|
146
|
+
|
|
147
|
+
```javascript
|
|
148
|
+
const handlebars = require('hrHandlebars')
|
|
149
|
+
const hbsTemplates = []
|
|
150
|
+
hbsTemplates['default'] = handlebars.compile(`
|
|
151
|
+
{{> components/teaser/teaser_standard }}
|
|
152
|
+
`)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Damit das entsprechende Handlebars Template kompiliert werden kann, muss zunächste eine Instanz von Handlebars über den Befehl `require('hrHandlebars')` geladen werden.
|
|
156
|
+
Danach muss das Array `hbsTemplates` initialisiert und diesem mindestens ein kompiliertes Handlebars Template übergeben werden. Die hier definierten Namen der Templates
|
|
157
|
+
müssen, damit das Rendering der Snapshot-Story korrekt funktioniert, mit denen aus dem Parameter `template` der Testdaten übereinstimmen.
|
|
158
|
+
|
|
159
|
+
Die auf diesem Weg definierten Handlebars Templates müssen jetzt in den konkreten Storybook Templates eingesetzt werden.
|
|
160
|
+
|
|
161
|
+
```javascript
|
|
162
|
+
const Template = (args) => {
|
|
163
|
+
return hbsTemplates['default']({ ...args })
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const snapshotTemplate = (args) => {
|
|
167
|
+
return getSnapshotsTemplate({ hbsTemplates, args })
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Es gibt, wie hier im Beispiel gezeigt, immer mindestens ein "normales" Template für die konkreten Storybook Stories (hier das Template `Template`) und ein Template für die Snapshot-Story (dieses sollte immer `snapshotTemplate` benannt werden).
|
|
172
|
+
In der Regel wird es von den "normalen" Templates immer so viele Storybook Templates geben, wie es auch Einträge im Array `hbsTemplates` gibt. Vom `snapshotTemplate`
|
|
173
|
+
gibt es hingegen immer nur genau ein Template. In diesem Template wird die `getSnapshotsTemplate` Methode aufgerufen und ihr ein Objekt bestehend aus dem Array `hbsTemplates` und den Testdaten übergeben.
|
|
174
|
+
|
|
175
|
+
Damit zukünftig nur noch von der Snapshot-Story Screenshots in Chromatic gemacht werden, muss in den Einstellungen der Story-Datei (diese ist im default export zu finden)
|
|
176
|
+
folgende Konfiguration vorgenommen werden:
|
|
177
|
+
|
|
178
|
+
```javascript
|
|
179
|
+
export default {
|
|
180
|
+
...
|
|
181
|
+
|
|
182
|
+
parameters: {
|
|
183
|
+
...
|
|
184
|
+
|
|
185
|
+
chromatic: {
|
|
186
|
+
disableSnapshot: true
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
|
|
190
|
+
...
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Das Anfertigen von Snapshots wird hierdurch zunächst für alle Stories deaktiviert. Damit aber ein Snapshot der Snapshot-Story gemacht wird, muss es in dieser
|
|
195
|
+
Story explizit wieder aktiviert werden. Wie dies gemacht wird und wie die anderen Stories zukünftig definiert werden, wird im Folgenden beschrieben.
|
|
196
|
+
|
|
197
|
+
```javascript
|
|
198
|
+
export const StandardHero = {
|
|
199
|
+
render: Template.bind({}),
|
|
200
|
+
name: 'Standard Hero',
|
|
201
|
+
decorators: [
|
|
202
|
+
(Story) => {
|
|
203
|
+
return `<div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
204
|
+
${Story()}
|
|
205
|
+
</div>`
|
|
206
|
+
},
|
|
207
|
+
],
|
|
208
|
+
args: fixtures.group_hero.hero.args.logicItem.includeModel,
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export const StandardHeroMitLabel = {
|
|
212
|
+
render: Template.bind({}),
|
|
213
|
+
name: 'Standard Hero mit Label',
|
|
214
|
+
decorators: [
|
|
215
|
+
(Story) => {
|
|
216
|
+
return `<div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
217
|
+
${Story()}
|
|
218
|
+
</div>`
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
args: fixtures.group_hero.hero_with_label.args.logicItem.includeModel,
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
...
|
|
225
|
+
|
|
226
|
+
export const Snapshot = {
|
|
227
|
+
render: snapshotTemplate.bind({}),
|
|
228
|
+
name: 'Snapshot',
|
|
229
|
+
|
|
230
|
+
args: fixtures,
|
|
231
|
+
parameters: {
|
|
232
|
+
chromatic: { disableSnapshot: false },
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Die ersten beiden Stories in diesem Beispiel sind "normale" Storybook Stories. Sie werden im Storybook Frontend angezeigt, aber es werden in Chromatic keine Snapshots erstellt. Über den Parameter `render`
|
|
238
|
+
definieren sie, dass sie mit dem Storybook Template `Template` gerendert werden sollen. Ihr Name, der auch im Navigationsmenü angezeigt wird, erhalten sie über den Parameter `name`
|
|
239
|
+
und über den Parameter `args` werden ihnen die Testdaten aus der Testdaten-Datei übergeben. Anders als bei der im Folgenden beschriebenen Snapshot-Story, muss hier
|
|
240
|
+
der exakte Pfad zu den jeweiligen Testdaten angegeben werden.
|
|
241
|
+
|
|
242
|
+
Als letzte Story in einer Story-Datei sollte immer die Snapshot-Story stehen. Ihr Aufbau ist in jeder Story-Datei gleich. Als Storybook-Template zum Rendern nutzt
|
|
243
|
+
sie das Template `snapshotTemplate`. Der Name der Story ist immer `Snapshot` und als Testdaten wird ihr einfach das komplette Testdaten-Objekt `fixtures` übergeben.
|
|
244
|
+
Anders als bei den "normalen" Stories wird konfiguriert, dass von dieser Story ein Snapshot in Chromatic gemacht werden soll.
|
|
245
|
+
|
|
246
|
+
Der vollständige Aufbau einer Story-Datei wird im Folgenden gezeigt.
|
|
247
|
+
|
|
248
|
+
```javascript
|
|
249
|
+
import { getSnapshotsTemplate } from '/src/assets/js/utils.js'
|
|
250
|
+
import fixtures from './fixtures/teaser_standard.json'
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
const handlebars = require('hrHandlebars')
|
|
254
|
+
const hbsTemplates = []
|
|
255
|
+
hbsTemplates['default'] = handlebars.compile(`
|
|
256
|
+
{{> components/teaser/teaser_standard }}
|
|
257
|
+
`)
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
const Template = (args) => {
|
|
261
|
+
return hbsTemplates['default']({ ...args })
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
const snapshotTemplate = (args) => {
|
|
265
|
+
return getSnapshotsTemplate({ hbsTemplates, args })
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export default {
|
|
269
|
+
title: 'Komponenten/Teaser/Standard',
|
|
270
|
+
|
|
271
|
+
parameters: {
|
|
272
|
+
layout: 'fullscreen',
|
|
273
|
+
|
|
274
|
+
chromatic: {
|
|
275
|
+
viewports: [360, 1024],
|
|
276
|
+
diffThreshold: 0.3,
|
|
277
|
+
disableSnapshot: true
|
|
278
|
+
},
|
|
279
|
+
},
|
|
280
|
+
|
|
281
|
+
argTypes: {
|
|
282
|
+
teaserSize: {
|
|
283
|
+
control: {
|
|
284
|
+
type: 'select',
|
|
285
|
+
options: ['hero', '100', '50', '33', '25'],
|
|
286
|
+
},
|
|
287
|
+
|
|
288
|
+
description: 'Teaser Größe',
|
|
289
|
+
|
|
290
|
+
table: {
|
|
291
|
+
defaultValue: {
|
|
292
|
+
summary: 'hero',
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
|
|
298
|
+
decorators: [
|
|
299
|
+
(Story) => {
|
|
300
|
+
return `<div class="grid grid-page">
|
|
301
|
+
${Story()}
|
|
302
|
+
</div>`
|
|
303
|
+
},
|
|
304
|
+
],
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export const StandardHero = {
|
|
308
|
+
render: Template.bind({}),
|
|
309
|
+
name: 'Standard Hero',
|
|
310
|
+
decorators: [
|
|
311
|
+
(Story) => {
|
|
312
|
+
return `<div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
313
|
+
${Story()}
|
|
314
|
+
</div>`
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
args: fixtures.group_hero.hero.args.logicItem.includeModel,
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export const StandardHeroMitLabel = {
|
|
321
|
+
render: Template.bind({}),
|
|
322
|
+
name: 'Standard Hero mit Label',
|
|
323
|
+
decorators: [
|
|
324
|
+
(Story) => {
|
|
325
|
+
return `<div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
326
|
+
${Story()}
|
|
327
|
+
</div>`
|
|
328
|
+
},
|
|
329
|
+
],
|
|
330
|
+
args: fixtures.group_hero.hero_with_label.args.logicItem.includeModel,
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/*
|
|
334
|
+
Die weiteren Stories wurden aus Platzgründen weggelassen
|
|
335
|
+
*/
|
|
336
|
+
|
|
337
|
+
export const Snapshot = {
|
|
338
|
+
render: snapshotTemplate.bind({}),
|
|
339
|
+
name: 'Snapshot',
|
|
340
|
+
|
|
341
|
+
args: fixtures,
|
|
342
|
+
parameters: {
|
|
343
|
+
chromatic: { disableSnapshot: false },
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
<div className="bg-blue-200 !mb-4 !mt-4 p-4">
|
|
350
|
+
<h4 className="!text-stone-950 font-bold">Hinweis</h4>
|
|
351
|
+
Snapshot-Stories können nicht für alle Komponenten erstellt werden. Da Chromatic eine Obergrenze für die erstellten Screenshots hat, können
|
|
352
|
+
beispielsweise die Stories, die ganze Inhaltsseiten abbilden nicht in Snapshot-Stories zusammengefasst werden.
|
|
353
|
+
</div>
|
|
@@ -75,15 +75,13 @@ Ein Button wird mit der Handlebar Komponente `button` eingebunden. Wie einleiten
|
|
|
75
75
|
Komponente lediglich das Grundgerüst eines Buttons dar. Die Beschriftung und/oder ein Icon müssen mit Subkomponenten hinzugefügt
|
|
76
76
|
werden.
|
|
77
77
|
|
|
78
|
-
<div
|
|
79
|
-
<h4
|
|
78
|
+
<div className="bg-blue-200 !mt-4 p-4">
|
|
79
|
+
<h4 className="!text-stone-950 font-bold">Hinweis</h4>
|
|
80
80
|
|
|
81
|
-
<p>
|
|
82
81
|
Sowohl die Button-Komponente als auch die Subkomponenten Button-Label und Button-Icon sind
|
|
83
82
|
standardmäßig bereits gestyled. Das setzen von zusätzlichen Style Klassen über den Parameter{' '}
|
|
84
|
-
<
|
|
83
|
+
<code>\_css</code> ist zwar bei jeder Komponente möglich, sollte aber nur dann
|
|
85
84
|
gemacht werden, wenn es gar nicht anders geht.
|
|
86
|
-
</p>
|
|
87
85
|
</div>
|
|
88
86
|
|
|
89
87
|
### Button mit Text
|
|
@@ -1,45 +1,57 @@
|
|
|
1
|
+
import snapshotsJson from './fixtures/button.json'
|
|
2
|
+
import { getSnapshotsTemplate } from '/src/assets/js/utils.js'
|
|
3
|
+
|
|
1
4
|
const handlebars = require('hrHandlebars')
|
|
2
5
|
|
|
3
|
-
const
|
|
4
|
-
|
|
6
|
+
const hbsTemplates = []
|
|
7
|
+
hbsTemplates['buttonWithLabel'] = handlebars.compile(`
|
|
5
8
|
{{#> components/button/button}}
|
|
6
9
|
{{> components/button/components/button_label}}
|
|
7
10
|
{{/components/button/button}}
|
|
8
11
|
`)
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const buttonWithLabelTemplateOnBackground = (args) => {
|
|
13
|
-
let hbsTemplate = handlebars.compile(`
|
|
12
|
+
hbsTemplates['buttonWithLabelOnBackground'] = handlebars.compile(`
|
|
14
13
|
<div class="bg-primary p-4">
|
|
15
14
|
{{#> components/button/button}}
|
|
16
15
|
{{> components/button/components/button_label }}
|
|
17
16
|
{{/components/button/button}}
|
|
18
17
|
</div>
|
|
19
18
|
`)
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const buttonWithLabelAndIconRightTemplate = (args) => {
|
|
24
|
-
let hbsTemplate = handlebars.compile(`
|
|
19
|
+
hbsTemplates['buttonWithLabelAndIconRight'] = handlebars.compile(`
|
|
25
20
|
{{#> components/button/button}}
|
|
26
21
|
{{> components/button/components/button_label }}
|
|
27
22
|
{{> components/button/components/button_icon }}
|
|
28
23
|
{{/components/button/button}}
|
|
29
24
|
`)
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const buttonWithLabelAndIconLeftTemplate = (args) => {
|
|
34
|
-
let hbsTemplate = handlebars.compile(`
|
|
35
|
-
{{#> components/button/button~}}
|
|
25
|
+
hbsTemplates['buttonWithLabelAndIconLeft'] = handlebars.compile(`
|
|
26
|
+
{{#> components/button/button}}
|
|
36
27
|
{{> components/button/components/button_icon }}
|
|
37
28
|
{{> components/button/components/button_label }}
|
|
38
|
-
{{
|
|
29
|
+
{{/components/button/button}}
|
|
39
30
|
`)
|
|
40
|
-
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
const buttonWithLabelTemplate = (args) => {
|
|
35
|
+
return hbsTemplates['buttonWithLabel']({ ...args })
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const buttonWithLabelTemplateOnBackground = (args) => {
|
|
39
|
+
return hbsTemplates['buttonWithLabelOnBackground']({ ...args })
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const buttonWithLabelAndIconRightTemplate = (args) => {
|
|
43
|
+
return hbsTemplates['buttonWithLabelAndIconRight']({ ...args })
|
|
41
44
|
}
|
|
42
45
|
|
|
46
|
+
const buttonWithLabelAndIconLeftTemplate = (args) => {
|
|
47
|
+
return hbsTemplates['buttonWithLabelAndIconLeft']({ ...args })
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const snapshotTemplate = (args) => {
|
|
51
|
+
return getSnapshotsTemplate({ hbsTemplates, args })
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
43
55
|
export default {
|
|
44
56
|
title: 'Komponenten/Buttons/Button',
|
|
45
57
|
|
|
@@ -253,6 +265,7 @@ export default {
|
|
|
253
265
|
controls: {
|
|
254
266
|
sort: 'alpha',
|
|
255
267
|
},
|
|
268
|
+
chromatic: { disableSnapshot: true }
|
|
256
269
|
},
|
|
257
270
|
}
|
|
258
271
|
|
|
@@ -260,10 +273,7 @@ export const Spielplatz = {
|
|
|
260
273
|
render: buttonWithLabelTemplate.bind({}),
|
|
261
274
|
name: 'Spielplatz',
|
|
262
275
|
|
|
263
|
-
args:
|
|
264
|
-
_size: 'md',
|
|
265
|
-
_label: 'Button',
|
|
266
|
-
},
|
|
276
|
+
args: snapshotsJson['button-md'].args,
|
|
267
277
|
}
|
|
268
278
|
|
|
269
279
|
export const ButtonLg = {
|
|
@@ -283,10 +293,7 @@ export const ButtonLg = {
|
|
|
283
293
|
},
|
|
284
294
|
},
|
|
285
295
|
|
|
286
|
-
args:
|
|
287
|
-
_size: 'lg',
|
|
288
|
-
_label: 'Large',
|
|
289
|
-
},
|
|
296
|
+
args: snapshotsJson['button-lg'].args,
|
|
290
297
|
}
|
|
291
298
|
|
|
292
299
|
export const ButtonMd = {
|
|
@@ -303,10 +310,7 @@ export const ButtonMd = {
|
|
|
303
310
|
},
|
|
304
311
|
},
|
|
305
312
|
|
|
306
|
-
args:
|
|
307
|
-
_size: 'md',
|
|
308
|
-
_label: 'Medium',
|
|
309
|
-
},
|
|
313
|
+
args: snapshotsJson['button-md'].args,
|
|
310
314
|
}
|
|
311
315
|
|
|
312
316
|
export const ButtonSm = {
|
|
@@ -323,10 +327,7 @@ export const ButtonSm = {
|
|
|
323
327
|
},
|
|
324
328
|
},
|
|
325
329
|
|
|
326
|
-
args:
|
|
327
|
-
_size: 'sm',
|
|
328
|
-
_label: 'Small',
|
|
329
|
-
},
|
|
330
|
+
args: snapshotsJson['button-sm'].args,
|
|
330
331
|
}
|
|
331
332
|
|
|
332
333
|
export const ButtonPrimary = {
|
|
@@ -343,10 +344,7 @@ export const ButtonPrimary = {
|
|
|
343
344
|
},
|
|
344
345
|
},
|
|
345
346
|
|
|
346
|
-
args:
|
|
347
|
-
_size: 'lg',
|
|
348
|
-
_label: 'Primary',
|
|
349
|
-
},
|
|
347
|
+
args: snapshotsJson['button-primary'].args,
|
|
350
348
|
}
|
|
351
349
|
|
|
352
350
|
export const ButtonSecondary = {
|
|
@@ -363,11 +361,7 @@ export const ButtonSecondary = {
|
|
|
363
361
|
},
|
|
364
362
|
},
|
|
365
363
|
|
|
366
|
-
args:
|
|
367
|
-
_size: 'lg',
|
|
368
|
-
_label: 'Secondary',
|
|
369
|
-
_variant: 'secondary',
|
|
370
|
-
},
|
|
364
|
+
args: snapshotsJson['button-secondary'].args
|
|
371
365
|
}
|
|
372
366
|
|
|
373
367
|
export const ButtonTertiary = {
|
|
@@ -384,11 +378,7 @@ export const ButtonTertiary = {
|
|
|
384
378
|
},
|
|
385
379
|
},
|
|
386
380
|
|
|
387
|
-
args:
|
|
388
|
-
_size: 'lg',
|
|
389
|
-
_label: 'Tertiary',
|
|
390
|
-
_variant: 'tertiary',
|
|
391
|
-
},
|
|
381
|
+
args: snapshotsJson['button-tertiary'].args,
|
|
392
382
|
}
|
|
393
383
|
|
|
394
384
|
export const ButtonPrimaryDisabled = {
|
|
@@ -405,11 +395,7 @@ export const ButtonPrimaryDisabled = {
|
|
|
405
395
|
},
|
|
406
396
|
},
|
|
407
397
|
|
|
408
|
-
args:
|
|
409
|
-
_size: 'lg',
|
|
410
|
-
_label: 'Primary',
|
|
411
|
-
_disabled: true,
|
|
412
|
-
},
|
|
398
|
+
args: snapshotsJson['button-primary-disabled'].args,
|
|
413
399
|
}
|
|
414
400
|
|
|
415
401
|
export const ButtonSecondaryDisabled = {
|
|
@@ -426,12 +412,7 @@ export const ButtonSecondaryDisabled = {
|
|
|
426
412
|
},
|
|
427
413
|
},
|
|
428
414
|
|
|
429
|
-
args:
|
|
430
|
-
_size: 'lg',
|
|
431
|
-
_label: 'Secondary',
|
|
432
|
-
_variant: 'secondary',
|
|
433
|
-
_disabled: true,
|
|
434
|
-
},
|
|
415
|
+
args: snapshotsJson['button-secondary-disabled'].args,
|
|
435
416
|
}
|
|
436
417
|
|
|
437
418
|
export const ButtonTertiaryDisabled = {
|
|
@@ -448,12 +429,7 @@ export const ButtonTertiaryDisabled = {
|
|
|
448
429
|
},
|
|
449
430
|
},
|
|
450
431
|
|
|
451
|
-
args:
|
|
452
|
-
_size: 'lg',
|
|
453
|
-
_label: 'Tertiary',
|
|
454
|
-
_variant: 'tertiary',
|
|
455
|
-
_disabled: true,
|
|
456
|
-
},
|
|
432
|
+
args: snapshotsJson['button-tertiary-disabled'].args,
|
|
457
433
|
}
|
|
458
434
|
|
|
459
435
|
export const ButtonIconRechts = {
|
|
@@ -470,11 +446,7 @@ export const ButtonIconRechts = {
|
|
|
470
446
|
},
|
|
471
447
|
},
|
|
472
448
|
|
|
473
|
-
args:
|
|
474
|
-
_size: 'lg',
|
|
475
|
-
_label: 'Icon rechts',
|
|
476
|
-
_icon: 'arrow-right',
|
|
477
|
-
},
|
|
449
|
+
args: snapshotsJson['button-icon-right'].args,
|
|
478
450
|
}
|
|
479
451
|
|
|
480
452
|
export const ButtonIconLinks = {
|
|
@@ -491,11 +463,7 @@ export const ButtonIconLinks = {
|
|
|
491
463
|
},
|
|
492
464
|
},
|
|
493
465
|
|
|
494
|
-
args:
|
|
495
|
-
_size: 'lg',
|
|
496
|
-
_label: 'Icon links',
|
|
497
|
-
_icon: 'arrow-left',
|
|
498
|
-
},
|
|
466
|
+
args: snapshotsJson['button-icon-left'].args,
|
|
499
467
|
}
|
|
500
468
|
|
|
501
469
|
export const ButtonPrimaryAufFarbigemHintergrund = {
|
|
@@ -516,11 +484,7 @@ export const ButtonPrimaryAufFarbigemHintergrund = {
|
|
|
516
484
|
},
|
|
517
485
|
},
|
|
518
486
|
|
|
519
|
-
args:
|
|
520
|
-
_size: 'lg',
|
|
521
|
-
_label: 'Primary',
|
|
522
|
-
_onBackground: true,
|
|
523
|
-
},
|
|
487
|
+
args: snapshotsJson['button-primary-background'].args,
|
|
524
488
|
}
|
|
525
489
|
|
|
526
490
|
export const ButtonSecondaryAufFarbigemHintergrund = {
|
|
@@ -541,12 +505,7 @@ export const ButtonSecondaryAufFarbigemHintergrund = {
|
|
|
541
505
|
},
|
|
542
506
|
},
|
|
543
507
|
|
|
544
|
-
args:
|
|
545
|
-
_size: 'lg',
|
|
546
|
-
_label: 'Secondary',
|
|
547
|
-
_variant: 'secondary',
|
|
548
|
-
_onBackground: true,
|
|
549
|
-
},
|
|
508
|
+
args: snapshotsJson['button-secondary-background'].args,
|
|
550
509
|
}
|
|
551
510
|
|
|
552
511
|
export const ButtonTertiaryAufFarbigemHintergrund = {
|
|
@@ -567,10 +526,29 @@ export const ButtonTertiaryAufFarbigemHintergrund = {
|
|
|
567
526
|
},
|
|
568
527
|
},
|
|
569
528
|
|
|
570
|
-
args:
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
529
|
+
args: snapshotsJson['button-tertiary-background'].args,
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
export const Snapshot = {
|
|
533
|
+
render: snapshotTemplate.bind({}),
|
|
534
|
+
name: 'Snapshot',
|
|
535
|
+
|
|
536
|
+
argTypes: {
|
|
537
|
+
_size: {
|
|
538
|
+
control: false,
|
|
539
|
+
},
|
|
540
|
+
|
|
541
|
+
_variant: {
|
|
542
|
+
control: false,
|
|
543
|
+
},
|
|
544
|
+
|
|
545
|
+
_onBackground: {
|
|
546
|
+
control: false,
|
|
547
|
+
},
|
|
575
548
|
},
|
|
549
|
+
|
|
550
|
+
args: snapshotsJson,
|
|
551
|
+
parameters: {
|
|
552
|
+
chromatic: { disableSnapshot: false },
|
|
553
|
+
}
|
|
576
554
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"button-sm":{"config":{"template":"buttonWithLabel"},"args":{"_size":"sm","_label":"Small"}},"button-md":{"config":{"template":"buttonWithLabel"},"args":{"_size":"md","_label":"Medium"}},"button-lg":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Large","_size":"lg"}},"button-primary":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Primary","_size":"lg"}},"button-secondary":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Secondary","_size":"lg","_variant":"secondary"}},"button-tertiary":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Tertiary","_size":"lg","_variant":"tertiary"}},"button-primary-disabled":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Primary Disabled","_size":"lg","_disabled":true}},"button-secondary-disabled":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Secondary Disabled","_size":"lg","_variant":"secondary","_disabled":true}},"button-tertiary-disabled":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Tertiary Disabled","_size":"lg","_variant":"tertiary","_disabled":true}},"button-icon-right":{"config":{"template":"buttonWithLabelAndIconRight"},"args":{"_label":"Icon rechts","_size":"lg","_icon":"arrow-right"}},"button-icon-left":{"config":{"template":"buttonWithLabelAndIconLeft"},"args":{"_label":"Icon left","_size":"lg","_icon":"arrow-left"}},"button-primary-background":{"config":{"template":"buttonWithLabelOnBackground"},"args":{"_label":"Primary","_size":"lg","_onBackground":true}},"button-secondary-background":{"config":{"template":"buttonWithLabelOnBackground"},"args":{"_label":"Secondary","_variant":"secondary","_size":"lg","_onBackground":true}},"button-tertiary-background":{"config":{"template":"buttonWithLabelOnBackground"},"args":{"_label":"Tertiary","_variant":"tertiary","_size":"lg","_onBackground":true}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"button-sm":{"config":{"template":"buttonWithLabel"},"args":{"_size":"sm","_label":"Small"}},"button-md":{"config":{"template":"buttonWithLabel"},"args":{"_size":"md","_label":"Medium"}},"button-lg":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Large","_size":"lg"}},"button-primary":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Primary","_size":"lg"}},"button-secondary":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Secondary","_size":"lg","_variant":"secondary"}},"button-secondary-on-white":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Secondary","_size":"lg","_variant":"secondary","_onWhite":true}},"button-tertiary":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Tertiary","_size":"lg","_variant":"tertiary"}},"button-primary-disabled":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Primary Disabled","_size":"lg","_disabled":true}},"button-secondary-disabled":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Secondary Disabled","_size":"lg","_variant":"secondary","_disabled":true}},"button-tertiary-disabled":{"config":{"template":"buttonWithLabel"},"args":{"_label":"Tertiary Disabled","_size":"lg","_variant":"tertiary","_disabled":true}},"button-icon-right":{"config":{"template":"buttonWithLabelAndIconRight"},"args":{"_label":"Icon rechts","_size":"lg","_icon":"arrow-right"}},"button-icon-left":{"config":{"template":"buttonWithLabelAndIconLeft"},"args":{"_label":"Icon left","_size":"lg","_icon":"arrow-left"}},"button-primary-background":{"config":{"template":"buttonWithLabelOnBackground"},"args":{"_label":"Primary","_size":"lg","_onBackground":true}},"button-secondary-background":{"config":{"template":"buttonWithLabelOnBackground"},"args":{"_label":"Secondary","_variant":"secondary","_size":"lg","_onBackground":true}},"button-tertiary-background":{"config":{"template":"buttonWithLabelOnBackground"},"args":{"_label":"Tertiary","_variant":"tertiary","_size":"lg","_onBackground":true}}}
|