From 47ba51e582c913816bfdd91144992a54d86e2bca Mon Sep 17 00:00:00 2001
From: Chandler Prall
Date: Tue, 7 May 2019 14:55:26 -0600
Subject: [PATCH] Split EuiIcon into dynamic imports; allow React SVG elements
and external urls (#1924)
* Feature/icon breakapart (#1856)
* dynamic import
* Make the icon kinda work
* progress
* generate tsx from svg
* Build and commit icons TSX
* Updated Icon snapshots
* Updated EuiIcon build to again work in dependant projects
* Create a single eui.js build, bundling EuiIcon's dynamic import into the build
* Tests are passing
* Add a loading class to EuiIcon
* Added -isLoaded and using animations for fading
* update snapshots
* Remove background color from isLoaded state
* PR feedback
* Docs for EuiIcon new abilities (#1889)
Add docs for the custom svg abilities in EuiIcon
* DOCS ONLY: Allow multiple snippets (#1908)
* Update IconType and its proptype usage (#1913)
* Expand IconType to include string
* Update EuiIcon IconType to include Element, fix some TS issues, widen the EuiIcon IconType proptype
* Swap Vim example logo out for SVG example logo, which contains a viewBox for IE11 compat
* changelog
---
.babelrc.js | 11 +-
CHANGELOG.md | 6 +
package.json | 9 +-
.../babel/proptypes-from-ts-props/index.js | 3 +-
scripts/compile-icons.js | 70 ++
src-docs/src/components/guide_components.scss | 3 +-
.../components/guide_section/guide_section.js | 35 +-
src-docs/src/images/custom.svg | 14 +
src-docs/src/views/icon/apps.js | 40 +-
src-docs/src/views/icon/icon_colors.js | 11 +
src-docs/src/views/icon/icon_example.js | 99 +-
src-docs/src/views/icon/icon_sizes.js | 11 +
src-docs/src/views/icon/icon_types.js | 83 ++
src-docs/src/views/icon/icons.js | 39 +-
src-docs/src/views/icon/logos.js | 40 +-
src-docs/src/views/icon/logos_third.js | 41 +-
src-docs/src/views/icon/ml.js | 41 +-
src-docs/src/views/icon/tokens.js | 50 +-
.../__snapshots__/accordion.test.js.snap | 147 +--
.../badge/__snapshots__/badge.test.js.snap | 63 +-
src/components/badge/badge.js | 4 +-
src/components/badge/beta_badge/beta_badge.js | 4 +-
.../collapsed_item_actions.test.js.snap | 15 +-
.../in_memory_table.test.js.snap | 95 +-
.../button/__snapshots__/button.test.js.snap | 63 +-
src/components/button/button.js | 4 +-
.../__snapshots__/button_empty.test.js.snap | 63 +-
.../button/button_empty/button_empty.js | 4 +-
.../__snapshots__/button_icon.test.js.snap | 21 +-
.../button/button_icon/button_icon.js | 4 +-
.../__snapshots__/call_out.test.js.snap | 21 +-
src/components/call_out/call_out.js | 4 +-
.../card/__snapshots__/card.test.js.snap | 22 +-
.../__snapshots__/card_select.test.js.snap | 9 +-
.../__snapshots__/combo_box.test.js.snap | 32 +-
.../__snapshots__/context_menu.test.js.snap | 35 +-
.../context_menu_item.test.js.snap | 17 +-
.../context_menu_panel.test.js.snap | 52 +-
.../date_picker_range.test.js.snap | 9 +-
.../date_picker/date_picker_range.js | 4 +-
.../__snapshots__/empty_prompt.test.js.snap | 34 +-
src/components/empty_prompt/empty_prompt.js | 4 +-
.../__snapshots__/facet_button.test.js.snap | 17 +-
.../__snapshots__/filter_button.test.js.snap | 21 +-
.../filter_select_item.test.js.snap | 2 +-
src/components/filter_group/filter_button.js | 4 +-
.../flyout/__snapshots__/flyout.test.js.snap | 56 +-
.../__snapshots__/file_picker.test.js.snap | 8 +-
.../form_control_layout.test.js.snap | 44 +-
.../__snapshots__/super_select.test.js.snap | 223 +---
.../super_select_control.test.js.snap | 128 +-
.../switch/__snapshots__/switch.test.js.snap | 34 +-
.../__snapshots__/header_logo.test.tsx.snap | 87 +-
.../__snapshots__/header_alert.test.js.snap | 32 +-
.../__snapshots__/header_links.test.js.snap | 15 +-
.../health/__snapshots__/health.test.js.snap | 17 +-
.../icon/__snapshots__/icon.test.tsx.snap | 907 +++++++------
src/components/icon/_icon.scss | 95 +-
src/components/icon/_index.scss | 1 +
src/components/icon/_variables.scss | 23 +
src/components/icon/assets/alert.js | 5 +
src/components/icon/assets/apm_trace.js | 5 +
src/components/icon/assets/app_add_data.js | 5 +
.../icon/assets/app_advanced_settings.js | 5 +
src/components/icon/assets/app_apm.js | 5 +
src/components/icon/assets/app_auditbeat.js | 5 +
src/components/icon/assets/app_canvas.js | 5 +
src/components/icon/assets/app_code.js | 5 +
src/components/icon/assets/app_console.js | 5 +
.../assets/app_cross_cluster_replication.js | 5 +
src/components/icon/assets/app_dashboard.js | 5 +
src/components/icon/assets/app_devtools.js | 5 +
src/components/icon/assets/app_discover.js | 5 +
src/components/icon/assets/app_ems.js | 5 +
src/components/icon/assets/app_filebeat.js | 5 +
src/components/icon/assets/app_gis.js | 5 +
src/components/icon/assets/app_graph.js | 5 +
src/components/icon/assets/app_grok.js | 5 +
src/components/icon/assets/app_heartbeat.js | 5 +
.../icon/assets/app_index_management.js | 5 +
.../icon/assets/app_index_pattern.js | 5 +
.../icon/assets/app_index_rollup.js | 5 +
src/components/icon/assets/app_infra.js | 5 +
src/components/icon/assets/app_logging.js | 5 +
src/components/icon/assets/app_management.js | 5 +
src/components/icon/assets/app_metricbeat.js | 5 +
src/components/icon/assets/app_ml.js | 5 +
src/components/icon/assets/app_monitoring.js | 5 +
src/components/icon/assets/app_notebook.js | 5 +
src/components/icon/assets/app_packetbeat.js | 5 +
src/components/icon/assets/app_pipeline.js | 5 +
src/components/icon/assets/app_reporting.js | 5 +
.../icon/assets/app_saved_objects.js | 5 +
.../icon/assets/app_search_profiler.js | 5 +
src/components/icon/assets/app_security.js | 5 +
.../icon/assets/app_security_analytics.js | 5 +
src/components/icon/assets/app_spaces.js | 5 +
src/components/icon/assets/app_sql.js | 5 +
src/components/icon/assets/app_timelion.js | 5 +
.../icon/assets/app_upgrade_assistant.js | 5 +
src/components/icon/assets/app_uptime.js | 5 +
src/components/icon/assets/app_users_roles.js | 5 +
src/components/icon/assets/app_visualize.js | 5 +
src/components/icon/assets/app_watches.js | 5 +
src/components/icon/assets/apps.js | 5 +
src/components/icon/assets/arrow_down.js | 5 +
src/components/icon/assets/arrow_left.js | 5 +
src/components/icon/assets/arrow_right.js | 5 +
src/components/icon/assets/arrow_up.js | 5 +
src/components/icon/assets/asterisk.js | 5 +
src/components/icon/assets/beaker.js | 5 +
src/components/icon/assets/bell.js | 5 +
src/components/icon/assets/bolt.js | 5 +
.../icon/assets/boxes_horizontal.js | 5 +
src/components/icon/assets/boxes_vertical.js | 5 +
src/components/icon/assets/branch.js | 5 +
src/components/icon/assets/broom.js | 5 +
src/components/icon/assets/brush.js | 5 +
src/components/icon/assets/bug.js | 5 +
src/components/icon/assets/bullseye.js | 5 +
src/components/icon/assets/calendar.js | 5 +
src/components/icon/assets/check.js | 5 +
.../icon/assets/checkInCircleFilled.js | 5 +
src/components/icon/assets/clock.js | 5 +
src/components/icon/assets/compute.js | 5 +
src/components/icon/assets/console.js | 5 +
.../icon/assets/controls_horizontal.js | 5 +
.../icon/assets/controls_vertical.js | 5 +
src/components/icon/assets/copy.js | 5 +
src/components/icon/assets/copy_clipboard.js | 5 +
src/components/icon/assets/cross.js | 5 +
.../icon/assets/crossInACircleFilled.js | 5 +
src/components/icon/assets/crosshairs.js | 5 +
src/components/icon/assets/cut.js | 5 +
src/components/icon/assets/database.js | 5 +
src/components/icon/assets/document.js | 5 +
src/components/icon/assets/dot.js | 5 +
.../icon/assets/editor_align_center.js | 5 +
.../icon/assets/editor_align_left.js | 5 +
.../icon/assets/editor_align_right.js | 5 +
src/components/icon/assets/editor_bold.js | 5 +
.../icon/assets/editor_code_block.js | 5 +
src/components/icon/assets/editor_comment.js | 5 +
src/components/icon/assets/editor_heading.js | 5 +
src/components/icon/assets/editor_italic.js | 5 +
src/components/icon/assets/editor_link.js | 5 +
.../icon/assets/editor_ordered_list.js | 5 +
src/components/icon/assets/editor_redo.js | 5 +
src/components/icon/assets/editor_strike.js | 5 +
src/components/icon/assets/editor_table.js | 5 +
.../icon/assets/editor_underline.js | 5 +
src/components/icon/assets/editor_undo.js | 5 +
.../icon/assets/editor_unordered_list.js | 5 +
src/components/icon/assets/email.js | 5 +
src/components/icon/assets/empty.js | 5 +
src/components/icon/assets/exit.js | 5 +
src/components/icon/assets/expand.js | 5 +
src/components/icon/assets/export.js | 5 +
src/components/icon/assets/eye.js | 5 +
src/components/icon/assets/eye_closed.js | 5 +
src/components/icon/assets/faceNeutral.js | 5 +
src/components/icon/assets/face_happy.js | 5 +
src/components/icon/assets/face_neutral.js | 5 +
src/components/icon/assets/face_sad.js | 5 +
src/components/icon/assets/filter.js | 5 +
src/components/icon/assets/flag.js | 5 +
src/components/icon/assets/folder_closed.js | 5 +
src/components/icon/assets/folder_open.js | 5 +
src/components/icon/assets/full_screen.js | 5 +
src/components/icon/assets/gear.js | 5 +
src/components/icon/assets/glasses.js | 5 +
src/components/icon/assets/globe.js | 5 +
src/components/icon/assets/grab.js | 5 +
src/components/icon/assets/grab_horizontal.js | 5 +
src/components/icon/assets/grid.js | 5 +
src/components/icon/assets/heart.js | 5 +
src/components/icon/assets/heatmap.js | 5 +
src/components/icon/assets/help.js | 5 +
src/components/icon/assets/iInCircle.js | 5 +
src/components/icon/assets/import.js | 5 +
src/components/icon/assets/index_close.js | 5 +
src/components/icon/assets/index_edit.js | 5 +
src/components/icon/assets/index_flush.js | 5 +
src/components/icon/assets/index_mapping.js | 5 +
src/components/icon/assets/index_open.js | 5 +
src/components/icon/assets/index_settings.js | 5 +
src/components/icon/assets/inputOutput.js | 5 +
src/components/icon/assets/inspect.js | 5 +
src/components/icon/assets/invert.js | 5 +
src/components/icon/assets/kql_field.js | 5 +
src/components/icon/assets/kql_function.js | 5 +
src/components/icon/assets/kql_operand.js | 5 +
src/components/icon/assets/kql_selector.js | 5 +
src/components/icon/assets/kql_value.js | 5 +
src/components/icon/assets/link.js | 5 +
src/components/icon/assets/list.js | 5 +
src/components/icon/assets/list_add.js | 5 +
src/components/icon/assets/lock.js | 5 +
src/components/icon/assets/lockOpen.js | 5 +
src/components/icon/assets/logo_aerospike.js | 5 +
src/components/icon/assets/logo_apache.js | 5 +
src/components/icon/assets/logo_apm.js | 5 +
src/components/icon/assets/logo_app_search.js | 5 +
src/components/icon/assets/logo_aws.js | 5 +
src/components/icon/assets/logo_aws_mono.js | 5 +
src/components/icon/assets/logo_azure.js | 5 +
src/components/icon/assets/logo_azure_mono.js | 5 +
src/components/icon/assets/logo_beats.js | 5 +
.../icon/assets/logo_business_analytics.js | 5 +
src/components/icon/assets/logo_ceph.js | 5 +
src/components/icon/assets/logo_cloud.js | 5 +
src/components/icon/assets/logo_cloud_ece.js | 5 +
.../icon/assets/logo_codesandbox.js | 5 +
src/components/icon/assets/logo_couchbase.js | 5 +
src/components/icon/assets/logo_docker.js | 5 +
src/components/icon/assets/logo_dropwizard.js | 5 +
src/components/icon/assets/logo_elastic.js | 5 +
.../icon/assets/logo_elastic_stack.js | 5 +
.../icon/assets/logo_elasticsearch.js | 5 +
.../icon/assets/logo_enterprise_search.js | 5 +
src/components/icon/assets/logo_etcd.js | 5 +
src/components/icon/assets/logo_gcp.js | 5 +
src/components/icon/assets/logo_gcp_mono.js | 5 +
src/components/icon/assets/logo_github.js | 5 +
src/components/icon/assets/logo_gmail.js | 5 +
src/components/icon/assets/logo_golang.js | 5 +
src/components/icon/assets/logo_haproxy.js | 5 +
src/components/icon/assets/logo_ibm.js | 5 +
src/components/icon/assets/logo_ibm_mono.js | 5 +
src/components/icon/assets/logo_kafka.js | 5 +
src/components/icon/assets/logo_kibana.js | 5 +
src/components/icon/assets/logo_kubernetes.js | 5 +
src/components/icon/assets/logo_logstash.js | 5 +
src/components/icon/assets/logo_memcached.js | 5 +
src/components/icon/assets/logo_metrics.js | 5 +
src/components/icon/assets/logo_mongodb.js | 5 +
src/components/icon/assets/logo_mysql.js | 5 +
src/components/icon/assets/logo_nginx.js | 5 +
src/components/icon/assets/logo_osquery.js | 5 +
src/components/icon/assets/logo_php.js | 5 +
src/components/icon/assets/logo_postgres.js | 5 +
src/components/icon/assets/logo_prometheus.js | 5 +
src/components/icon/assets/logo_rabbitmq.js | 5 +
src/components/icon/assets/logo_redis.js | 5 +
.../icon/assets/logo_site_search.js | 5 +
src/components/icon/assets/logo_sketch.js | 5 +
src/components/icon/assets/logo_slack.js | 5 +
src/components/icon/assets/logo_webhook.js | 5 +
src/components/icon/assets/logo_windows.js | 5 +
src/components/icon/assets/logo_xpack.js | 5 +
src/components/icon/assets/logstash_filter.js | 5 +
src/components/icon/assets/logstash_if.js | 5 +
src/components/icon/assets/logstash_input.js | 5 +
src/components/icon/assets/logstash_output.js | 5 +
src/components/icon/assets/logstash_queue.js | 5 +
src/components/icon/assets/map_marker.js | 5 +
src/components/icon/assets/memory.js | 5 +
src/components/icon/assets/menuLeft.js | 5 +
src/components/icon/assets/menuRight.js | 5 +
src/components/icon/assets/merge.js | 5 +
src/components/icon/assets/minus_in_circle.js | 5 +
.../icon/assets/minus_in_circle_filled.js | 5 +
.../icon/assets/ml_create_advanced_job.js | 5 +
.../icon/assets/ml_create_multi_metric_job.js | 5 +
.../icon/assets/ml_create_population_job.js | 5 +
.../assets/ml_create_single_metric_job.js | 5 +
.../icon/assets/ml_data_visualizer.js | 5 +
src/components/icon/assets/moon.js | 5 +
src/components/icon/assets/node.js | 5 +
src/components/icon/assets/number.js | 5 +
src/components/icon/assets/offline.js | 5 +
src/components/icon/assets/online.js | 5 +
src/components/icon/assets/paint.js | 5 +
src/components/icon/assets/pause.js | 5 +
src/components/icon/assets/pencil.js | 5 +
src/components/icon/assets/pin.js | 5 +
src/components/icon/assets/pin_filled.js | 5 +
src/components/icon/assets/play.js | 5 +
src/components/icon/assets/plus_in_circle.js | 5 +
.../icon/assets/plus_in_circle_filled.js | 5 +
src/components/icon/assets/popout.js | 5 +
.../icon/assets/question_in_circle.js | 5 +
src/components/icon/assets/refresh.js | 5 +
src/components/icon/assets/save.js | 5 +
src/components/icon/assets/scale.js | 5 +
src/components/icon/assets/search.js | 5 +
src/components/icon/assets/shard.js | 5 +
src/components/icon/assets/share.js | 5 +
src/components/icon/assets/snowflake.js | 5 +
src/components/icon/assets/sortLeft.js | 5 +
src/components/icon/assets/sortRight.js | 5 +
src/components/icon/assets/sort_down.js | 5 +
src/components/icon/assets/sort_up.js | 5 +
src/components/icon/assets/sortable.js | 5 +
src/components/icon/assets/starPlusEmpty.js | 5 +
src/components/icon/assets/starPlusFilled.js | 5 +
src/components/icon/assets/star_empty.js | 5 +
.../icon/assets/star_empty_space.js | 5 +
src/components/icon/assets/star_filled.js | 5 +
.../icon/assets/star_filled_space.js | 5 +
.../icon/assets/star_minus_empty.js | 5 +
.../icon/assets/star_minus_filled.js | 5 +
src/components/icon/assets/stats.js | 5 +
src/components/icon/assets/stop.js | 5 +
src/components/icon/assets/stop_filled.js | 5 +
src/components/icon/assets/storage.js | 5 +
src/components/icon/assets/string.js | 5 +
src/components/icon/assets/submodule.js | 5 +
src/components/icon/assets/symlink.js | 5 +
src/components/icon/assets/tableOfContents.js | 5 +
src/components/icon/assets/tag.js | 5 +
src/components/icon/assets/tear.js | 5 +
src/components/icon/assets/temperature.js | 5 +
.../icon/assets/tokens/tokenAnnotation.js | 5 +
.../icon/assets/tokens/tokenArray.js | 5 +
.../icon/assets/tokens/tokenBoolean.js | 5 +
.../icon/assets/tokens/tokenClass.js | 5 +
.../icon/assets/tokens/tokenConstant.js | 5 +
.../icon/assets/tokens/tokenElement.js | 5 +
.../icon/assets/tokens/tokenEnum.js | 5 +
.../icon/assets/tokens/tokenEnumMember.js | 5 +
.../icon/assets/tokens/tokenEvent.js | 5 +
.../icon/assets/tokens/tokenException.js | 5 +
.../icon/assets/tokens/tokenField.js | 5 +
.../icon/assets/tokens/tokenFile.js | 5 +
.../icon/assets/tokens/tokenFunction.js | 5 +
.../icon/assets/tokens/tokenInterface.js | 5 +
src/components/icon/assets/tokens/tokenKey.js | 5 +
.../icon/assets/tokens/tokenMethod.js | 5 +
.../icon/assets/tokens/tokenModule.js | 5 +
.../icon/assets/tokens/tokenNamespace.js | 5 +
.../icon/assets/tokens/tokenNull.js | 5 +
.../icon/assets/tokens/tokenNumber.js | 5 +
.../icon/assets/tokens/tokenObject.js | 5 +
.../icon/assets/tokens/tokenOperator.js | 5 +
.../icon/assets/tokens/tokenPackage.js | 5 +
.../icon/assets/tokens/tokenParameter.js | 5 +
.../icon/assets/tokens/tokenProperty.js | 5 +
.../icon/assets/tokens/tokenRepo.js | 5 +
.../icon/assets/tokens/tokenString.js | 5 +
.../icon/assets/tokens/tokenStruct.js | 5 +
.../icon/assets/tokens/tokenSymbol.js | 5 +
.../icon/assets/tokens/tokenVariable.js | 5 +
src/components/icon/assets/trash.js | 5 +
src/components/icon/assets/user.js | 5 +
src/components/icon/assets/vector.js | 5 +
src/components/icon/assets/vis_area.js | 5 +
.../icon/assets/vis_bar_horizontal.js | 5 +
.../icon/assets/vis_bar_vertical.js | 5 +
src/components/icon/assets/vis_controls.js | 5 +
src/components/icon/assets/vis_gauge.js | 5 +
src/components/icon/assets/vis_goal.js | 5 +
src/components/icon/assets/vis_heatmap.js | 5 +
src/components/icon/assets/vis_line.js | 5 +
.../icon/assets/vis_map_coordinate.js | 5 +
src/components/icon/assets/vis_map_region.js | 5 +
src/components/icon/assets/vis_metric.js | 5 +
src/components/icon/assets/vis_pie.js | 5 +
src/components/icon/assets/vis_table.js | 5 +
src/components/icon/assets/vis_tag_cloud.js | 5 +
src/components/icon/assets/vis_text.js | 5 +
src/components/icon/assets/vis_timelion.js | 5 +
src/components/icon/assets/vis_vega.js | 5 +
.../icon/assets/vis_visual_builder.js | 5 +
src/components/icon/assets/wrench.js | 5 +
src/components/icon/icon.test.tsx | 79 +-
src/components/icon/icon.tsx | 1120 +++++++----------
src/components/icon/index.ts | 1 +
.../key_pad_menu/key_pad_menu_item.js | 4 +-
.../list_group_item.test.js.snap | 6 +-
src/components/list_group/list_group_item.js | 6 +-
.../loading_kibana.test.tsx.snap | 112 +-
.../__snapshots__/confirm_modal.test.js.snap | 16 +-
.../modal/__snapshots__/modal.test.js.snap | 8 +-
.../selectable_list_item.test.tsx.snap | 27 +-
.../selectable_search.test.tsx.snap | 30 +-
.../__snapshots__/series_chart.test.js.snap | 21 +-
.../__snapshots__/side_nav.test.js.snap | 152 +--
.../__snapshots__/step_number.test.js.snap | 26 +-
.../steps_horizontal.test.js.snap | 9 +-
.../table_sort_mobile.test.js.snap | 16 +-
.../table_sort_mobile_item.test.js.snap | 2 +-
src/components/table/table_header_button.js | 4 +-
.../table_pagination.test.js.snap | 84 +-
.../global_toast_list.test.js.snap | 34 +-
.../toast/__snapshots__/toast.test.js.snap | 31 +-
src/components/toast/global_toast_list.js | 4 +-
src/components/toast/toast.js | 4 +-
.../token/__snapshots__/token.test.js.snap | 289 +----
src/components/token/token.js | 4 +-
.../__snapshots__/icon_tip.test.js.snap | 33 +-
src/webpack.config.js | 6 +
tsconfig.json | 2 +-
yarn.lock | 523 +++++++-
394 files changed, 4063 insertions(+), 3165 deletions(-)
create mode 100644 scripts/compile-icons.js
create mode 100644 src-docs/src/images/custom.svg
create mode 100644 src-docs/src/views/icon/icon_types.js
create mode 100644 src/components/icon/_variables.scss
create mode 100644 src/components/icon/assets/alert.js
create mode 100644 src/components/icon/assets/apm_trace.js
create mode 100644 src/components/icon/assets/app_add_data.js
create mode 100644 src/components/icon/assets/app_advanced_settings.js
create mode 100644 src/components/icon/assets/app_apm.js
create mode 100644 src/components/icon/assets/app_auditbeat.js
create mode 100644 src/components/icon/assets/app_canvas.js
create mode 100644 src/components/icon/assets/app_code.js
create mode 100644 src/components/icon/assets/app_console.js
create mode 100644 src/components/icon/assets/app_cross_cluster_replication.js
create mode 100644 src/components/icon/assets/app_dashboard.js
create mode 100644 src/components/icon/assets/app_devtools.js
create mode 100644 src/components/icon/assets/app_discover.js
create mode 100644 src/components/icon/assets/app_ems.js
create mode 100644 src/components/icon/assets/app_filebeat.js
create mode 100644 src/components/icon/assets/app_gis.js
create mode 100644 src/components/icon/assets/app_graph.js
create mode 100644 src/components/icon/assets/app_grok.js
create mode 100644 src/components/icon/assets/app_heartbeat.js
create mode 100644 src/components/icon/assets/app_index_management.js
create mode 100644 src/components/icon/assets/app_index_pattern.js
create mode 100644 src/components/icon/assets/app_index_rollup.js
create mode 100644 src/components/icon/assets/app_infra.js
create mode 100644 src/components/icon/assets/app_logging.js
create mode 100644 src/components/icon/assets/app_management.js
create mode 100644 src/components/icon/assets/app_metricbeat.js
create mode 100644 src/components/icon/assets/app_ml.js
create mode 100644 src/components/icon/assets/app_monitoring.js
create mode 100644 src/components/icon/assets/app_notebook.js
create mode 100644 src/components/icon/assets/app_packetbeat.js
create mode 100644 src/components/icon/assets/app_pipeline.js
create mode 100644 src/components/icon/assets/app_reporting.js
create mode 100644 src/components/icon/assets/app_saved_objects.js
create mode 100644 src/components/icon/assets/app_search_profiler.js
create mode 100644 src/components/icon/assets/app_security.js
create mode 100644 src/components/icon/assets/app_security_analytics.js
create mode 100644 src/components/icon/assets/app_spaces.js
create mode 100644 src/components/icon/assets/app_sql.js
create mode 100644 src/components/icon/assets/app_timelion.js
create mode 100644 src/components/icon/assets/app_upgrade_assistant.js
create mode 100644 src/components/icon/assets/app_uptime.js
create mode 100644 src/components/icon/assets/app_users_roles.js
create mode 100644 src/components/icon/assets/app_visualize.js
create mode 100644 src/components/icon/assets/app_watches.js
create mode 100644 src/components/icon/assets/apps.js
create mode 100644 src/components/icon/assets/arrow_down.js
create mode 100644 src/components/icon/assets/arrow_left.js
create mode 100644 src/components/icon/assets/arrow_right.js
create mode 100644 src/components/icon/assets/arrow_up.js
create mode 100644 src/components/icon/assets/asterisk.js
create mode 100644 src/components/icon/assets/beaker.js
create mode 100644 src/components/icon/assets/bell.js
create mode 100644 src/components/icon/assets/bolt.js
create mode 100644 src/components/icon/assets/boxes_horizontal.js
create mode 100644 src/components/icon/assets/boxes_vertical.js
create mode 100644 src/components/icon/assets/branch.js
create mode 100644 src/components/icon/assets/broom.js
create mode 100644 src/components/icon/assets/brush.js
create mode 100644 src/components/icon/assets/bug.js
create mode 100644 src/components/icon/assets/bullseye.js
create mode 100644 src/components/icon/assets/calendar.js
create mode 100644 src/components/icon/assets/check.js
create mode 100644 src/components/icon/assets/checkInCircleFilled.js
create mode 100644 src/components/icon/assets/clock.js
create mode 100644 src/components/icon/assets/compute.js
create mode 100644 src/components/icon/assets/console.js
create mode 100644 src/components/icon/assets/controls_horizontal.js
create mode 100644 src/components/icon/assets/controls_vertical.js
create mode 100644 src/components/icon/assets/copy.js
create mode 100644 src/components/icon/assets/copy_clipboard.js
create mode 100644 src/components/icon/assets/cross.js
create mode 100644 src/components/icon/assets/crossInACircleFilled.js
create mode 100644 src/components/icon/assets/crosshairs.js
create mode 100644 src/components/icon/assets/cut.js
create mode 100644 src/components/icon/assets/database.js
create mode 100644 src/components/icon/assets/document.js
create mode 100644 src/components/icon/assets/dot.js
create mode 100644 src/components/icon/assets/editor_align_center.js
create mode 100644 src/components/icon/assets/editor_align_left.js
create mode 100644 src/components/icon/assets/editor_align_right.js
create mode 100644 src/components/icon/assets/editor_bold.js
create mode 100644 src/components/icon/assets/editor_code_block.js
create mode 100644 src/components/icon/assets/editor_comment.js
create mode 100644 src/components/icon/assets/editor_heading.js
create mode 100644 src/components/icon/assets/editor_italic.js
create mode 100644 src/components/icon/assets/editor_link.js
create mode 100644 src/components/icon/assets/editor_ordered_list.js
create mode 100644 src/components/icon/assets/editor_redo.js
create mode 100644 src/components/icon/assets/editor_strike.js
create mode 100644 src/components/icon/assets/editor_table.js
create mode 100644 src/components/icon/assets/editor_underline.js
create mode 100644 src/components/icon/assets/editor_undo.js
create mode 100644 src/components/icon/assets/editor_unordered_list.js
create mode 100644 src/components/icon/assets/email.js
create mode 100644 src/components/icon/assets/empty.js
create mode 100644 src/components/icon/assets/exit.js
create mode 100644 src/components/icon/assets/expand.js
create mode 100644 src/components/icon/assets/export.js
create mode 100644 src/components/icon/assets/eye.js
create mode 100644 src/components/icon/assets/eye_closed.js
create mode 100644 src/components/icon/assets/faceNeutral.js
create mode 100644 src/components/icon/assets/face_happy.js
create mode 100644 src/components/icon/assets/face_neutral.js
create mode 100644 src/components/icon/assets/face_sad.js
create mode 100644 src/components/icon/assets/filter.js
create mode 100644 src/components/icon/assets/flag.js
create mode 100644 src/components/icon/assets/folder_closed.js
create mode 100644 src/components/icon/assets/folder_open.js
create mode 100644 src/components/icon/assets/full_screen.js
create mode 100644 src/components/icon/assets/gear.js
create mode 100644 src/components/icon/assets/glasses.js
create mode 100644 src/components/icon/assets/globe.js
create mode 100644 src/components/icon/assets/grab.js
create mode 100644 src/components/icon/assets/grab_horizontal.js
create mode 100644 src/components/icon/assets/grid.js
create mode 100644 src/components/icon/assets/heart.js
create mode 100644 src/components/icon/assets/heatmap.js
create mode 100644 src/components/icon/assets/help.js
create mode 100644 src/components/icon/assets/iInCircle.js
create mode 100644 src/components/icon/assets/import.js
create mode 100644 src/components/icon/assets/index_close.js
create mode 100644 src/components/icon/assets/index_edit.js
create mode 100644 src/components/icon/assets/index_flush.js
create mode 100644 src/components/icon/assets/index_mapping.js
create mode 100644 src/components/icon/assets/index_open.js
create mode 100644 src/components/icon/assets/index_settings.js
create mode 100644 src/components/icon/assets/inputOutput.js
create mode 100644 src/components/icon/assets/inspect.js
create mode 100644 src/components/icon/assets/invert.js
create mode 100644 src/components/icon/assets/kql_field.js
create mode 100644 src/components/icon/assets/kql_function.js
create mode 100644 src/components/icon/assets/kql_operand.js
create mode 100644 src/components/icon/assets/kql_selector.js
create mode 100644 src/components/icon/assets/kql_value.js
create mode 100644 src/components/icon/assets/link.js
create mode 100644 src/components/icon/assets/list.js
create mode 100644 src/components/icon/assets/list_add.js
create mode 100644 src/components/icon/assets/lock.js
create mode 100644 src/components/icon/assets/lockOpen.js
create mode 100644 src/components/icon/assets/logo_aerospike.js
create mode 100644 src/components/icon/assets/logo_apache.js
create mode 100644 src/components/icon/assets/logo_apm.js
create mode 100644 src/components/icon/assets/logo_app_search.js
create mode 100644 src/components/icon/assets/logo_aws.js
create mode 100644 src/components/icon/assets/logo_aws_mono.js
create mode 100644 src/components/icon/assets/logo_azure.js
create mode 100644 src/components/icon/assets/logo_azure_mono.js
create mode 100644 src/components/icon/assets/logo_beats.js
create mode 100644 src/components/icon/assets/logo_business_analytics.js
create mode 100644 src/components/icon/assets/logo_ceph.js
create mode 100644 src/components/icon/assets/logo_cloud.js
create mode 100644 src/components/icon/assets/logo_cloud_ece.js
create mode 100644 src/components/icon/assets/logo_codesandbox.js
create mode 100644 src/components/icon/assets/logo_couchbase.js
create mode 100644 src/components/icon/assets/logo_docker.js
create mode 100644 src/components/icon/assets/logo_dropwizard.js
create mode 100644 src/components/icon/assets/logo_elastic.js
create mode 100644 src/components/icon/assets/logo_elastic_stack.js
create mode 100644 src/components/icon/assets/logo_elasticsearch.js
create mode 100644 src/components/icon/assets/logo_enterprise_search.js
create mode 100644 src/components/icon/assets/logo_etcd.js
create mode 100644 src/components/icon/assets/logo_gcp.js
create mode 100644 src/components/icon/assets/logo_gcp_mono.js
create mode 100644 src/components/icon/assets/logo_github.js
create mode 100644 src/components/icon/assets/logo_gmail.js
create mode 100644 src/components/icon/assets/logo_golang.js
create mode 100644 src/components/icon/assets/logo_haproxy.js
create mode 100644 src/components/icon/assets/logo_ibm.js
create mode 100644 src/components/icon/assets/logo_ibm_mono.js
create mode 100644 src/components/icon/assets/logo_kafka.js
create mode 100644 src/components/icon/assets/logo_kibana.js
create mode 100644 src/components/icon/assets/logo_kubernetes.js
create mode 100644 src/components/icon/assets/logo_logstash.js
create mode 100644 src/components/icon/assets/logo_memcached.js
create mode 100644 src/components/icon/assets/logo_metrics.js
create mode 100644 src/components/icon/assets/logo_mongodb.js
create mode 100644 src/components/icon/assets/logo_mysql.js
create mode 100644 src/components/icon/assets/logo_nginx.js
create mode 100644 src/components/icon/assets/logo_osquery.js
create mode 100644 src/components/icon/assets/logo_php.js
create mode 100644 src/components/icon/assets/logo_postgres.js
create mode 100644 src/components/icon/assets/logo_prometheus.js
create mode 100644 src/components/icon/assets/logo_rabbitmq.js
create mode 100644 src/components/icon/assets/logo_redis.js
create mode 100644 src/components/icon/assets/logo_site_search.js
create mode 100644 src/components/icon/assets/logo_sketch.js
create mode 100644 src/components/icon/assets/logo_slack.js
create mode 100644 src/components/icon/assets/logo_webhook.js
create mode 100644 src/components/icon/assets/logo_windows.js
create mode 100644 src/components/icon/assets/logo_xpack.js
create mode 100644 src/components/icon/assets/logstash_filter.js
create mode 100644 src/components/icon/assets/logstash_if.js
create mode 100644 src/components/icon/assets/logstash_input.js
create mode 100644 src/components/icon/assets/logstash_output.js
create mode 100644 src/components/icon/assets/logstash_queue.js
create mode 100644 src/components/icon/assets/map_marker.js
create mode 100644 src/components/icon/assets/memory.js
create mode 100644 src/components/icon/assets/menuLeft.js
create mode 100644 src/components/icon/assets/menuRight.js
create mode 100644 src/components/icon/assets/merge.js
create mode 100644 src/components/icon/assets/minus_in_circle.js
create mode 100644 src/components/icon/assets/minus_in_circle_filled.js
create mode 100644 src/components/icon/assets/ml_create_advanced_job.js
create mode 100644 src/components/icon/assets/ml_create_multi_metric_job.js
create mode 100644 src/components/icon/assets/ml_create_population_job.js
create mode 100644 src/components/icon/assets/ml_create_single_metric_job.js
create mode 100644 src/components/icon/assets/ml_data_visualizer.js
create mode 100644 src/components/icon/assets/moon.js
create mode 100644 src/components/icon/assets/node.js
create mode 100644 src/components/icon/assets/number.js
create mode 100644 src/components/icon/assets/offline.js
create mode 100644 src/components/icon/assets/online.js
create mode 100644 src/components/icon/assets/paint.js
create mode 100644 src/components/icon/assets/pause.js
create mode 100644 src/components/icon/assets/pencil.js
create mode 100644 src/components/icon/assets/pin.js
create mode 100644 src/components/icon/assets/pin_filled.js
create mode 100644 src/components/icon/assets/play.js
create mode 100644 src/components/icon/assets/plus_in_circle.js
create mode 100644 src/components/icon/assets/plus_in_circle_filled.js
create mode 100644 src/components/icon/assets/popout.js
create mode 100644 src/components/icon/assets/question_in_circle.js
create mode 100644 src/components/icon/assets/refresh.js
create mode 100644 src/components/icon/assets/save.js
create mode 100644 src/components/icon/assets/scale.js
create mode 100644 src/components/icon/assets/search.js
create mode 100644 src/components/icon/assets/shard.js
create mode 100644 src/components/icon/assets/share.js
create mode 100644 src/components/icon/assets/snowflake.js
create mode 100644 src/components/icon/assets/sortLeft.js
create mode 100644 src/components/icon/assets/sortRight.js
create mode 100644 src/components/icon/assets/sort_down.js
create mode 100644 src/components/icon/assets/sort_up.js
create mode 100644 src/components/icon/assets/sortable.js
create mode 100644 src/components/icon/assets/starPlusEmpty.js
create mode 100644 src/components/icon/assets/starPlusFilled.js
create mode 100644 src/components/icon/assets/star_empty.js
create mode 100644 src/components/icon/assets/star_empty_space.js
create mode 100644 src/components/icon/assets/star_filled.js
create mode 100644 src/components/icon/assets/star_filled_space.js
create mode 100644 src/components/icon/assets/star_minus_empty.js
create mode 100644 src/components/icon/assets/star_minus_filled.js
create mode 100644 src/components/icon/assets/stats.js
create mode 100644 src/components/icon/assets/stop.js
create mode 100644 src/components/icon/assets/stop_filled.js
create mode 100644 src/components/icon/assets/storage.js
create mode 100644 src/components/icon/assets/string.js
create mode 100644 src/components/icon/assets/submodule.js
create mode 100644 src/components/icon/assets/symlink.js
create mode 100644 src/components/icon/assets/tableOfContents.js
create mode 100644 src/components/icon/assets/tag.js
create mode 100644 src/components/icon/assets/tear.js
create mode 100644 src/components/icon/assets/temperature.js
create mode 100644 src/components/icon/assets/tokens/tokenAnnotation.js
create mode 100644 src/components/icon/assets/tokens/tokenArray.js
create mode 100644 src/components/icon/assets/tokens/tokenBoolean.js
create mode 100644 src/components/icon/assets/tokens/tokenClass.js
create mode 100644 src/components/icon/assets/tokens/tokenConstant.js
create mode 100644 src/components/icon/assets/tokens/tokenElement.js
create mode 100644 src/components/icon/assets/tokens/tokenEnum.js
create mode 100644 src/components/icon/assets/tokens/tokenEnumMember.js
create mode 100644 src/components/icon/assets/tokens/tokenEvent.js
create mode 100644 src/components/icon/assets/tokens/tokenException.js
create mode 100644 src/components/icon/assets/tokens/tokenField.js
create mode 100644 src/components/icon/assets/tokens/tokenFile.js
create mode 100644 src/components/icon/assets/tokens/tokenFunction.js
create mode 100644 src/components/icon/assets/tokens/tokenInterface.js
create mode 100644 src/components/icon/assets/tokens/tokenKey.js
create mode 100644 src/components/icon/assets/tokens/tokenMethod.js
create mode 100644 src/components/icon/assets/tokens/tokenModule.js
create mode 100644 src/components/icon/assets/tokens/tokenNamespace.js
create mode 100644 src/components/icon/assets/tokens/tokenNull.js
create mode 100644 src/components/icon/assets/tokens/tokenNumber.js
create mode 100644 src/components/icon/assets/tokens/tokenObject.js
create mode 100644 src/components/icon/assets/tokens/tokenOperator.js
create mode 100644 src/components/icon/assets/tokens/tokenPackage.js
create mode 100644 src/components/icon/assets/tokens/tokenParameter.js
create mode 100644 src/components/icon/assets/tokens/tokenProperty.js
create mode 100644 src/components/icon/assets/tokens/tokenRepo.js
create mode 100644 src/components/icon/assets/tokens/tokenString.js
create mode 100644 src/components/icon/assets/tokens/tokenStruct.js
create mode 100644 src/components/icon/assets/tokens/tokenSymbol.js
create mode 100644 src/components/icon/assets/tokens/tokenVariable.js
create mode 100644 src/components/icon/assets/trash.js
create mode 100644 src/components/icon/assets/user.js
create mode 100644 src/components/icon/assets/vector.js
create mode 100644 src/components/icon/assets/vis_area.js
create mode 100644 src/components/icon/assets/vis_bar_horizontal.js
create mode 100644 src/components/icon/assets/vis_bar_vertical.js
create mode 100644 src/components/icon/assets/vis_controls.js
create mode 100644 src/components/icon/assets/vis_gauge.js
create mode 100644 src/components/icon/assets/vis_goal.js
create mode 100644 src/components/icon/assets/vis_heatmap.js
create mode 100644 src/components/icon/assets/vis_line.js
create mode 100644 src/components/icon/assets/vis_map_coordinate.js
create mode 100644 src/components/icon/assets/vis_map_region.js
create mode 100644 src/components/icon/assets/vis_metric.js
create mode 100644 src/components/icon/assets/vis_pie.js
create mode 100644 src/components/icon/assets/vis_table.js
create mode 100644 src/components/icon/assets/vis_tag_cloud.js
create mode 100644 src/components/icon/assets/vis_text.js
create mode 100644 src/components/icon/assets/vis_timelion.js
create mode 100644 src/components/icon/assets/vis_vega.js
create mode 100644 src/components/icon/assets/vis_visual_builder.js
create mode 100644 src/components/icon/assets/wrench.js
diff --git a/.babelrc.js b/.babelrc.js
index 2f82f74905c..3055170d94d 100644
--- a/.babelrc.js
+++ b/.babelrc.js
@@ -15,6 +15,7 @@ module.exports = {
"@babel/react"
],
"plugins": [
+ "@babel/plugin-syntax-dynamic-import",
"pegjs-inline-precompile",
"./scripts/babel/proptypes-from-ts-props",
"add-module-exports",
@@ -39,6 +40,12 @@ module.exports = {
]
}
}
- ]
- ]
+ ],
+ ],
+
+ "env": {
+ "test": {
+ "plugins": ["dynamic-import-node"]
+ }
+ }
};
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d77b4c1ef67..e42eac2a1e9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,9 +1,15 @@
## [`master`](https://github.com/elastic/eui/tree/master)
+- Added support for custom React SVG elements and external SVG URLs to `EuiIcon` ([#1924](https://github.com/elastic/eui/pull/1924))
+
**Bug fixes**
- Fixed Firefox flash of unstyled select dropdown ([#1927](https://github.com/elastic/eui/pull/1927))
+**Breaking changes**
+
+- Split `EuiIcon` icon loading into dynamic imports ([#1924](https://github.com/elastic/eui/pull/1924))
+
## [`10.4.0`](https://github.com/elastic/eui/tree/v10.4.0)
- Added `display` prop to `EuiTabs` and `EuiTabbedContent` components for ability to use an alternative `condensed` style ([#1904](https://github.com/elastic/eui/pull/1904))
diff --git a/package.json b/package.json
index b481294665a..1992dc289fb 100644
--- a/package.json
+++ b/package.json
@@ -15,11 +15,12 @@
"sync-docs": "node ./scripts/docs-sync.js",
"build-docs": "NODE_ENV=production webpack --config=src-docs/webpack.config.js",
"build": "yarn extract-i18n-strings && node ./scripts/compile-clean.js && node ./scripts/compile-eui.js && node ./scripts/compile-scss.js $npm_package_name",
+ "compile-icons": "node ./scripts/compile-icons.js",
"extract-i18n-strings": "node ./scripts/babel/fetch-i18n-strings",
"lint": "yarn lint-es && yarn lint-ts && yarn lint-sass && yarn lint-framer",
"lint-fix": "yarn lint-es-fix && yarn lint-ts-fix",
- "lint-es": "eslint --cache --ignore-pattern \"**/*.snap.js\" \"src/**/*.js\" \"src-docs/**/*.js\"",
- "lint-es-fix": "eslint --fix --cache --ignore-pattern \"**/*.snap.js\" \"src/**/*.js\" \"src-docs/**/*.js\"",
+ "lint-es": "eslint --cache --ignore-pattern \"**/*.snap.js\", --ignore-pattern \"**/assets/**/*.js\" \"src/**/*.js\" \"src-docs/**/*.js\"",
+ "lint-es-fix": "eslint --fix --cache --ignore-pattern \"**/*.snap.js\", \"**/assets/**/*.js\" \"src/**/*.js\" \"src-docs/**/*.js\"",
"lint-sass": "sass-lint -v --max-warnings 0",
"lint-sass-fix": "sass-lint-auto-fix -c ./.sass-lint-fix.yml",
"lint-ts": "tsc -p ./tsconfig.json --noEmit && tslint -c ./tslint.yaml -p ./tsconfig.json",
@@ -72,12 +73,15 @@
"@babel/core": "^7.1.2",
"@babel/plugin-proposal-class-properties": "^7.1.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/polyfill": "^7.0.0",
"@babel/preset-env": "^7.1.0",
"@babel/preset-react": "^7.0.0",
"@babel/preset-typescript": "^7.1.0",
"@elastic/datemath": "^5.0.2",
"@elastic/eslint-config-kibana": "^0.15.0",
+ "@svgr/core": "^4.1.0",
+ "@svgr/plugin-svgo": "^4.0.3",
"@types/classnames": "^2.2.6",
"@types/enzyme": "^3.1.13",
"@types/jest": "^24.0.6",
@@ -92,6 +96,7 @@
"babel-jest": "^24.1.0",
"babel-loader": "^8.0.4",
"babel-plugin-add-module-exports": "^1.0.0",
+ "babel-plugin-dynamic-import-node": "^2.2.0",
"babel-plugin-inline-react-svg": "^1.0.1",
"babel-plugin-pegjs-inline-precompile": "^0.1.0",
"babel-plugin-react-docgen": "^2.0.0",
diff --git a/scripts/babel/proptypes-from-ts-props/index.js b/scripts/babel/proptypes-from-ts-props/index.js
index 65a5bd36c03..826b1428597 100644
--- a/scripts/babel/proptypes-from-ts-props/index.js
+++ b/scripts/babel/proptypes-from-ts-props/index.js
@@ -12,7 +12,8 @@ function stripTypeScript(filename, ast) {
{
filename: filename,
babelrc: false,
- presets: ['@babel/typescript']
+ presets: ['@babel/typescript'],
+ plugins: ['@babel/plugin-syntax-dynamic-import'],
}
).code;
}
diff --git a/scripts/compile-icons.js b/scripts/compile-icons.js
new file mode 100644
index 00000000000..a65cfac17a8
--- /dev/null
+++ b/scripts/compile-icons.js
@@ -0,0 +1,70 @@
+const glob = require('glob');
+const svgr = require('@svgr/core').default;
+const path = require('path');
+const fs = require('fs');
+
+const rootDir = path.resolve(__dirname, '..');
+const srcDir = path.resolve(rootDir, 'src');
+const iconsDir = path.resolve(srcDir, 'components', 'icon', 'assets');
+
+function pascalCase(x) {
+ return x.replace(/^(.)|[^a-zA-Z]([a-zA-Z])/g, (match, char1, char2) => (char1 || char2).toUpperCase());
+}
+
+const iconFiles = glob.sync(
+ '**/*.svg',
+ { cwd: iconsDir, realpath: true }
+);
+
+function defaultTemplate({
+ template
+ }, opts, {
+ imports,
+ componentName,
+ props,
+ jsx,
+ exports
+ }) {
+ return template.ast`${imports}
+const ${componentName} = (${props}) => ${jsx}
+${exports}
+`;
+}
+
+iconFiles.forEach(async filePath => {
+ const svgSource = fs.readFileSync(filePath);
+
+ try {
+ const jsxSource = (await svgr(
+ svgSource,
+ {
+ plugins: ['@svgr/plugin-svgo', '@svgr/plugin-jsx'],
+ svgoConfig: {
+ plugins: [
+ { cleanupIDs: false },
+ { prefixIds: false },
+ { removeViewBox: false },
+ ],
+ },
+ svgProps: {
+ xmlns: 'http://www.w3.org/2000/svg'
+ },
+ template: ({ template }, opts, { imports, componentName, props, jsx }) => template.ast`
+${imports}
+const ${componentName} = (${props}) => ${jsx}
+export const icon = ${componentName};
+ `
+ },
+ {
+ componentName: `EuiIcon${pascalCase(path.basename(filePath, '.svg'))}`
+ }
+ ));
+
+ const outputFilePath = filePath.replace(/\.svg$/, '.js');
+ fs.writeFileSync(outputFilePath, jsxSource);
+ } catch (e) {
+ console.error(`Error processing ${filePath}`);
+ console.error(e);
+ process.exit(1);
+ }
+});
diff --git a/src-docs/src/components/guide_components.scss b/src-docs/src/components/guide_components.scss
index a1377d30c07..17332396a9e 100644
--- a/src-docs/src/components/guide_components.scss
+++ b/src-docs/src/components/guide_components.scss
@@ -130,7 +130,8 @@ $guideZLevelHighest: $euiZLevel9 + 1000;
.guideDemo__icon {
text-align: center;
- svg {
+ svg,
+ img {
margin-bottom: $euiSizeS;
}
}
diff --git a/src-docs/src/components/guide_section/guide_section.js b/src-docs/src/components/guide_section/guide_section.js
index b61815f4bf4..53037c6e388 100644
--- a/src-docs/src/components/guide_section/guide_section.js
+++ b/src-docs/src/components/guide_section/guide_section.js
@@ -158,14 +158,28 @@ export class GuideSection extends Component {
return;
}
- return [
-
-
-
- {snippet}
-
-
- ];
+ let snippetCode;
+ if (typeof snippet === 'string') {
+ snippetCode = (
+
+
+
+ {snippet}
+
+
+ );
+ } else {
+ snippetCode = snippet.map((snip, index) => (
+
+
+
+ {snip}
+
+
+ ));
+ }
+
+ return snippetCode;
}
renderPropsForComponent = (componentName, component) => {
@@ -413,7 +427,10 @@ GuideSection.propTypes = {
title: PropTypes.string,
id: PropTypes.string,
source: PropTypes.array,
- snippet: PropTypes.string,
+ snippet: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.arrayOf(PropTypes.string),
+ ]),
children: PropTypes.any,
toggleTheme: PropTypes.func.isRequired,
theme: PropTypes.string.isRequired,
diff --git a/src-docs/src/images/custom.svg b/src-docs/src/images/custom.svg
new file mode 100644
index 00000000000..69d9bde805f
--- /dev/null
+++ b/src-docs/src/images/custom.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
diff --git a/src-docs/src/views/icon/apps.js b/src-docs/src/views/icon/apps.js
index 03fc588f58c..3db0c801d02 100644
--- a/src-docs/src/views/icon/apps.js
+++ b/src-docs/src/views/icon/apps.js
@@ -1,3 +1,14 @@
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+
+// This example JS is overly complex for simple icon usage
+// and is set up this way for ease of use in our docs.
+//
+// Check the snippet tab for a more common usage.
+
import React from 'react';
import {
@@ -6,6 +17,7 @@ import {
EuiIcon,
EuiPanel,
EuiText,
+ EuiCopy,
} from '../../../../src/components';
const iconTypes = [
@@ -62,15 +74,25 @@ export default () => (
key={iconType}
style={{ width: '200px' }}
>
-
-
-
- {iconType}
-
-
+
+ {(copy) => (
+
+
+
+ {iconType}
+
+
+ )}
+
))
}
diff --git a/src-docs/src/views/icon/icon_colors.js b/src-docs/src/views/icon/icon_colors.js
index d762254b7b7..11c29fcebee 100644
--- a/src-docs/src/views/icon/icon_colors.js
+++ b/src-docs/src/views/icon/icon_colors.js
@@ -1,3 +1,14 @@
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+
+// This example JS is overly complex for simple icon usage
+// and is set up this way for ease of use in our docs.
+//
+// Check the snippet tab for a more common usage.
+
import React from 'react';
import {
diff --git a/src-docs/src/views/icon/icon_example.js b/src-docs/src/views/icon/icon_example.js
index 03fce5974ef..49b1f0f1fe3 100644
--- a/src-docs/src/views/icon/icon_example.js
+++ b/src-docs/src/views/icon/icon_example.js
@@ -11,6 +11,8 @@ import {
EuiIcon,
EuiToken,
EuiLink,
+ EuiText,
+ EuiSpacer,
} from '../../../../src/components';
const iconHtmlWarning = () => (
@@ -25,33 +27,83 @@ const iconsHtml = renderToHtml(iconHtmlWarning);
import Icons from './icons';
const iconsSource = require('!!raw-loader!./icons');
+const iconsSnippet = ` `;
import Tokens from './tokens';
const tokensSource = require('!!raw-loader!./tokens');
+const tokensSnippet = [` `,
+ ` `,
+ ` `];
+
import Apps from './apps';
const appsSource = require('!!raw-loader!./apps');
+const appsSnippet = ` `;
import Ml from './ml';
const mlSource = require('!!raw-loader!./ml');
+const mlSnippet = ` `;
import Logos from './logos';
const logosSource = require('!!raw-loader!./logos');
+const logosSnippet = ` `;
import LogosThird from './logos_third';
const logosThirdSource = require('!!raw-loader!./logos_third');
+const logosThirdSnippet = ` `;
import IconSizes from './icon_sizes';
const iconSizesSource = require('!!raw-loader!./icon_sizes');
+const iconSizesSnippet = ` `;
import IconColors from './icon_colors';
const iconColorsSource = require('!!raw-loader!./icon_colors');
+const iconColorsSnippet = [` `,
+ ` `];
import Accessibility from './accessibility';
const accessibilitySource = require('!!raw-loader!./accessibility');
+import IconTypes from './icon_types';
+const iconTypesSource = require('!!raw-loader!./icon_types');
+const iconTypesSnippet = [` `,
+ ` `,
+ ` `,
+ `Works in other components too `];
+
export const IconExample = {
title: 'Icons',
+ intro: (
+
+
+
+ EuiIcon is a handy component for using our custom glyphs and logos.
+ The type prop accepts either an enumerated name from one of the sets below,
+ a location to a custom SVG asset, or a React Element.
+
+
+ When using custom SVGs please remove all fill attributes on the SVG and
+ utilize the CSS helpers if you have complex logos that need to work with theming.
+
+
+
+
+
+ ),
sections: [{
source: [{
type: GuideSectionTypes.JS,
@@ -60,29 +112,18 @@ export const IconExample = {
type: GuideSectionTypes.HTML,
code: iconsHtml,
}],
+ title: 'Glyphs',
text: (
- EuiIcon can build out an icon from our SVG
- icon library. Icons are resized and recolored through a
- CSS Fill declaration.
-
-
- New icons should be placed in
- the /icons/assets/ folder on
- a 16x16 empty canvas.
- Icons in the general set should be monochromatic and the code
- itself should not contain any fill attributes . Use the SVGO plugin
- for Sketch when exporting to compress / clean your SVG of junk.
-
-
- Note: guideDemo__icon styling is applied on the
- below grid for documentation presentation only. Do not copy
- this class into production.
+ Glyphs are small, monochromatic icons that typically should always use the default size
+ of size="m" . They tend to be pixel perfect and don't
+ scale very well into larger sizes.
),
props: { EuiIcon },
+ snippet: iconsSnippet,
demo: ,
}, {
title: 'Apps',
@@ -99,6 +140,7 @@ export const IconExample = {
and can contain multiple colors.
),
+ snippet: appsSnippet,
demo: ,
}, {
title: 'Tokens',
@@ -130,6 +172,7 @@ export const IconExample = {
),
props: { EuiToken },
+ snippet: tokensSnippet,
demo: ,
}, {
title: 'Machine learning icons',
@@ -146,6 +189,7 @@ export const IconExample = {
Again, these are made for 32x32 .
),
+ snippet: mlSnippet,
demo: ,
}, {
title: 'Elastic logos',
@@ -162,6 +206,7 @@ export const IconExample = {
portions of the SVGs to handle flipping colors for dark mode.
),
+ snippet: logosSnippet,
demo: ,
}, {
title: 'Third party logos',
@@ -172,6 +217,7 @@ export const IconExample = {
type: GuideSectionTypes.HTML,
code: iconsHtml,
}],
+ snippet: logosThirdSnippet,
demo: ,
}, {
title: 'Sizes',
@@ -188,6 +234,7 @@ export const IconExample = {
Medium is the default, and will output a 16x16 icon.
),
+ snippet: iconSizesSnippet,
demo: ,
}, {
title: 'Colors',
@@ -209,6 +256,7 @@ export const IconExample = {
unless the custom color is initiated by the user (like as a graph color).
),
+ snippet: iconColorsSnippet,
demo: ,
}, {
title: 'Accessibility',
@@ -225,5 +273,24 @@ export const IconExample = {
),
demo: ,
+ }, {
+ title: 'Custom SVGs',
+ text: (
+
+ The type prop can accept a valid enum, string or React SVG Element. When using a custom SVG, please make sure
+ it sits on a square canvas and preferably utilizes one of EUI's sizes (16x16, 32x32...etc). For IE11 compatibility, the SVG
+ file must contain a viewBox .
+
+ ),
+ source: [{
+ type: GuideSectionTypes.JS,
+ code: iconTypesSource,
+ }, {
+ type: GuideSectionTypes.HTML,
+ code: iconsHtml,
+ }],
+ props: { EuiIcon },
+ snippet: iconTypesSnippet,
+ demo: ,
}],
};
diff --git a/src-docs/src/views/icon/icon_sizes.js b/src-docs/src/views/icon/icon_sizes.js
index bce17c5f871..3a975cc96c3 100644
--- a/src-docs/src/views/icon/icon_sizes.js
+++ b/src-docs/src/views/icon/icon_sizes.js
@@ -1,3 +1,14 @@
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+
+// This example JS is overly complex for simple icon usage
+// and is set up this way for ease of use in our docs.
+//
+// Check the snippet tab for a more common usage.
+
import React from 'react';
import {
diff --git a/src-docs/src/views/icon/icon_types.js b/src-docs/src/views/icon/icon_types.js
new file mode 100644
index 00000000000..de6d023aaa8
--- /dev/null
+++ b/src-docs/src/views/icon/icon_types.js
@@ -0,0 +1,83 @@
+import React from 'react';
+
+import {
+ EuiFlexGrid,
+ EuiFlexGroup,
+ EuiFlexItem,
+ EuiIcon,
+ EuiPanel,
+ EuiText,
+ EuiCode,
+ EuiSpacer,
+ EuiButton,
+} from '../../../../src/components';
+
+import reactSvg from '../../images/custom.svg';
+
+
+export default () => (
+
+
+
+
+
+
+ logoElastic
+
+
+
+
+
+
+
+ http://some.svg
+
+
+
+
+
+
+
+ {`{reactSvg}`}
+
+
+
+
+
+
+
+
+ Any component that utlizes EuiIcon can use custom SVGs as well
+
+
+
+
+
+
+ http://some.svg
+
+
+ {`{reactSvg}`}
+
+
+
+
+);
diff --git a/src-docs/src/views/icon/icons.js b/src-docs/src/views/icon/icons.js
index 792227c343a..9ce6ac35cbc 100644
--- a/src-docs/src/views/icon/icons.js
+++ b/src-docs/src/views/icon/icons.js
@@ -1,3 +1,14 @@
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+
+// This example JS is overly complex for simple icon usage
+// and is set up this way for ease of use in our docs.
+//
+// Check the snippet tab for a more common usage.
+
import React from 'react';
import {
@@ -6,6 +17,7 @@ import {
EuiIcon,
EuiPanel,
EuiText,
+ EuiCopy,
} from '../../../../src/components';
const iconTypes = [
@@ -195,14 +207,25 @@ export default () => (
key={iconType}
style={{ width: '200px' }}
>
-
-
-
- {iconType}
-
-
+
+ {(copy) => (
+
+
+
+ {iconType}
+
+
+ )}
+
+
))
}
diff --git a/src-docs/src/views/icon/logos.js b/src-docs/src/views/icon/logos.js
index 08dc816f913..4c97dd8b660 100644
--- a/src-docs/src/views/icon/logos.js
+++ b/src-docs/src/views/icon/logos.js
@@ -1,3 +1,14 @@
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+
+// This example JS is overly complex for simple icon usage
+// and is set up this way for ease of use in our docs.
+//
+// Check the snippet tab for a more common usage.
+
import React from 'react';
import {
@@ -6,6 +17,7 @@ import {
EuiIcon,
EuiPanel,
EuiText,
+ EuiCopy,
} from '../../../../src/components';
const iconTypes = [
@@ -35,15 +47,25 @@ export default () => (
key={iconType}
style={{ width: '200px' }}
>
-
-
-
- {iconType}
-
-
+
+ {(copy) => (
+
+
+
+ {iconType}
+
+
+ )}
+
))
}
diff --git a/src-docs/src/views/icon/logos_third.js b/src-docs/src/views/icon/logos_third.js
index 815742b65f8..a4d4759606e 100644
--- a/src-docs/src/views/icon/logos_third.js
+++ b/src-docs/src/views/icon/logos_third.js
@@ -1,3 +1,14 @@
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+
+// This example JS is overly complex for simple icon usage
+// and is set up this way for ease of use in our docs.
+//
+// Check the snippet tab for a more common usage.
+
import React from 'react';
import {
@@ -6,6 +17,7 @@ import {
EuiIcon,
EuiPanel,
EuiText,
+ EuiCopy,
} from '../../../../src/components';
const iconTypes = [
@@ -56,15 +68,26 @@ export default () => (
key={iconType}
style={{ width: '200px' }}
>
-
-
-
- {iconType}
-
-
+
+ {(copy) => (
+
+
+
+ {iconType}
+
+
+ )}
+
+
))
}
diff --git a/src-docs/src/views/icon/ml.js b/src-docs/src/views/icon/ml.js
index 1e706373ede..7c1c559119d 100644
--- a/src-docs/src/views/icon/ml.js
+++ b/src-docs/src/views/icon/ml.js
@@ -1,3 +1,14 @@
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+
+// This example JS is overly complex for simple icon usage
+// and is set up this way for ease of use in our docs.
+//
+// Check the snippet tab for a more common usage.
+
import React from 'react';
import {
@@ -6,6 +17,7 @@ import {
EuiIcon,
EuiPanel,
EuiText,
+ EuiCopy,
} from '../../../../src/components';
const iconTypes = [
@@ -25,15 +37,26 @@ export default () => (
key={iconType}
style={{ width: '200px' }}
>
-
-
-
- {iconType}
-
-
+
+ {(copy) => (
+
+
+
+ {iconType}
+
+
+ )}
+
+
))
}
diff --git a/src-docs/src/views/icon/tokens.js b/src-docs/src/views/icon/tokens.js
index 5b1f477c381..cdeb9f19827 100644
--- a/src-docs/src/views/icon/tokens.js
+++ b/src-docs/src/views/icon/tokens.js
@@ -1,3 +1,14 @@
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+// DON'T USE THIS
+
+// This example JS is overly complex for simple icon usage
+// and is set up this way for ease of use in our docs.
+//
+// Check the snippet tab for a more common usage.
+
import React, { Fragment } from 'react';
import {
@@ -7,6 +18,8 @@ import {
EuiText,
EuiToken,
EuiSpacer,
+ EuiCopy,
+ EuiCode,
} from '../../../../src/components';
const tokens = [
@@ -50,15 +63,26 @@ export default () => (
-
-
-
-
-
- {token}
-
-
+
+ {(copy) => (
+
+
+
+
+
+ {token}
+
+
+ )}
+
))
}
@@ -66,6 +90,16 @@ export default () => (
+
+
+ By default the iconType prop defines the styling of the token.
+ However, displayOptions allows you to overwrite the color, shape and fill used
+ if you need a more custom token using any of the EUI glyph set.
+
+
+
+
+
-
-
-
-
-
-
-
+ />
+
@@ -166,38 +148,21 @@ exports[`EuiAccordion behavior opens when clicked once 1`] = `
size="m"
type="arrowDown"
>
-
-
-
-
-
-
-
+ />
+
@@ -264,26 +229,13 @@ exports[`EuiAccordion is rendered 1`] = `
class="euiFlexItem euiFlexItem--flexGrowZero euiAccordion__iconWrapper"
>
-
-
-
-
-
+ />
-
-
-
-
-
+ />
@@ -173,24 +162,13 @@ exports[`EuiBadge props iconSide right is rendered 1`] = `
class="euiBadge__content"
>
-
-
-
-
-
+ />
@@ -208,24 +186,13 @@ exports[`EuiBadge props iconType is rendered 1`] = `
class="euiBadge__content"
>
-
-
-
-
-
+ />
diff --git a/src/components/badge/badge.js b/src/components/badge/badge.js
index 1dbee4f66f9..c450f2f585d 100644
--- a/src/components/badge/badge.js
+++ b/src/components/badge/badge.js
@@ -7,7 +7,7 @@ import { isColorDark, hexToRgb } from '../../services/color';
import { EuiKeyboardAccessible } from '../accessibility';
import {
- ICON_TYPES,
+ IconPropType,
EuiIcon,
} from '../icon';
@@ -150,7 +150,7 @@ EuiBadge.propTypes = {
/**
* Accepts any string from our icon library
*/
- iconType: PropTypes.oneOf(ICON_TYPES),
+ iconType: IconPropType,
/**
* The side of the badge the icon should sit
diff --git a/src/components/badge/beta_badge/beta_badge.js b/src/components/badge/beta_badge/beta_badge.js
index dc3fd66d4bb..6b96853ec86 100644
--- a/src/components/badge/beta_badge/beta_badge.js
+++ b/src/components/badge/beta_badge/beta_badge.js
@@ -5,7 +5,7 @@ import classNames from 'classnames';
import { EuiToolTip } from '../../tool_tip';
import {
- ICON_TYPES,
+ IconPropType,
EuiIcon,
} from '../../icon';
@@ -78,7 +78,7 @@ EuiBetaBadge.propTypes = {
/**
* Supply an icon type if the badge should just be an icon
*/
- iconType: PropTypes.oneOf(ICON_TYPES),
+ iconType: IconPropType,
/**
* Content for the tooltip
diff --git a/src/components/basic_table/__snapshots__/collapsed_item_actions.test.js.snap b/src/components/basic_table/__snapshots__/collapsed_item_actions.test.js.snap
index 3090096d259..cba30915d37 100644
--- a/src/components/basic_table/__snapshots__/collapsed_item_actions.test.js.snap
+++ b/src/components/basic_table/__snapshots__/collapsed_item_actions.test.js.snap
@@ -18,24 +18,13 @@ exports[`CollapsedItemActions render 1`] = `
>
-
-
-
-
-
+ />
diff --git a/src/components/basic_table/__snapshots__/in_memory_table.test.js.snap b/src/components/basic_table/__snapshots__/in_memory_table.test.js.snap
index 132fb5b5454..fe572ae4865 100644
--- a/src/components/basic_table/__snapshots__/in_memory_table.test.js.snap
+++ b/src/components/basic_table/__snapshots__/in_memory_table.test.js.snap
@@ -388,40 +388,23 @@ exports[`EuiInMemoryTable behavior pagination 1`] = `
size="m"
type="arrowDown"
>
-
-
-
-
-
-
-
+ />
+
-
-
-
-
-
-
-
+ />
+
@@ -650,41 +615,23 @@ exports[`EuiInMemoryTable behavior pagination 1`] = `
size="m"
type="arrowRight"
>
-
-
-
-
-
-
-
+ />
+
diff --git a/src/components/button/__snapshots__/button.test.js.snap b/src/components/button/__snapshots__/button.test.js.snap
index 017e2efc45b..0824a930a69 100644
--- a/src/components/button/__snapshots__/button.test.js.snap
+++ b/src/components/button/__snapshots__/button.test.js.snap
@@ -166,24 +166,13 @@ exports[`EuiButton props iconSide left is rendered 1`] = `
>
-
-
-
-
-
+ />
@@ -203,24 +192,13 @@ exports[`EuiButton props iconSide right is rendered 1`] = `
>
-
-
-
-
-
+ />
@@ -240,24 +218,13 @@ exports[`EuiButton props iconType is rendered 1`] = `
>
-
-
-
-
-
+ />
diff --git a/src/components/button/button.js b/src/components/button/button.js
index c4abbc5ff71..e10fe06609c 100644
--- a/src/components/button/button.js
+++ b/src/components/button/button.js
@@ -9,7 +9,7 @@ import {
import { getSecureRelForTarget } from '../../services';
import {
- ICON_TYPES,
+ IconPropType,
EuiIcon,
} from '../icon';
@@ -152,7 +152,7 @@ EuiButton.propTypes = {
/**
* See EuiIcon
*/
- iconType: PropTypes.oneOf(ICON_TYPES),
+ iconType: IconPropType,
iconSide: PropTypes.oneOf(ICON_SIDES),
/**
diff --git a/src/components/button/button_empty/__snapshots__/button_empty.test.js.snap b/src/components/button/button_empty/__snapshots__/button_empty.test.js.snap
index cb829362ba3..3518a2701d1 100644
--- a/src/components/button/button_empty/__snapshots__/button_empty.test.js.snap
+++ b/src/components/button/button_empty/__snapshots__/button_empty.test.js.snap
@@ -151,24 +151,13 @@ exports[`EuiButtonEmpty props iconSide left is rendered 1`] = `
>
-
-
-
-
-
+ />
@@ -188,24 +177,13 @@ exports[`EuiButtonEmpty props iconSide right is rendered 1`] = `
>
-
-
-
-
-
+ />
@@ -225,24 +203,13 @@ exports[`EuiButtonEmpty props iconType is rendered 1`] = `
>
-
-
-
-
-
+ />
diff --git a/src/components/button/button_empty/button_empty.js b/src/components/button/button_empty/button_empty.js
index b9935e1a814..724564378d9 100644
--- a/src/components/button/button_empty/button_empty.js
+++ b/src/components/button/button_empty/button_empty.js
@@ -9,7 +9,7 @@ import {
import { getSecureRelForTarget } from '../../../services';
import {
- ICON_TYPES,
+ IconPropType,
EuiIcon,
} from '../../icon';
@@ -150,7 +150,7 @@ export const EuiButtonEmpty = ({
EuiButtonEmpty.propTypes = {
children: PropTypes.node,
className: PropTypes.string,
- iconType: PropTypes.oneOf(ICON_TYPES),
+ iconType: IconPropType,
iconSide: PropTypes.oneOf(ICON_SIDES),
color: PropTypes.oneOf(COLORS),
size: PropTypes.oneOf(SIZES),
diff --git a/src/components/button/button_icon/__snapshots__/button_icon.test.js.snap b/src/components/button/button_icon/__snapshots__/button_icon.test.js.snap
index fc62911cc9b..d4fd4ebf256 100644
--- a/src/components/button/button_icon/__snapshots__/button_icon.test.js.snap
+++ b/src/components/button/button_icon/__snapshots__/button_icon.test.js.snap
@@ -91,24 +91,13 @@ exports[`EuiButtonIcon props iconType is rendered 1`] = `
>
-
-
-
-
-
+ />
`;
diff --git a/src/components/button/button_icon/button_icon.js b/src/components/button/button_icon/button_icon.js
index 5cdca391d01..852ae927e4f 100644
--- a/src/components/button/button_icon/button_icon.js
+++ b/src/components/button/button_icon/button_icon.js
@@ -6,7 +6,7 @@ import { getSecureRelForTarget } from '../../../services';
import {
ICON_SIZES,
- ICON_TYPES,
+ IconPropType,
EuiIcon,
} from '../../icon';
@@ -107,7 +107,7 @@ export const EuiButtonIcon = ({
EuiButtonIcon.propTypes = {
children: PropTypes.node,
className: PropTypes.string,
- iconType: PropTypes.oneOf(ICON_TYPES),
+ iconType: IconPropType,
iconSize: PropTypes.oneOf(ICON_SIZES),
color: PropTypes.oneOf(COLORS),
isDisabled: PropTypes.bool,
diff --git a/src/components/call_out/__snapshots__/call_out.test.js.snap b/src/components/call_out/__snapshots__/call_out.test.js.snap
index 63e576b7962..df2d5cc9140 100644
--- a/src/components/call_out/__snapshots__/call_out.test.js.snap
+++ b/src/components/call_out/__snapshots__/call_out.test.js.snap
@@ -86,24 +86,13 @@ exports[`EuiCallOut props iconType is rendered 1`] = `
>
+ />
diff --git a/src/components/call_out/call_out.js b/src/components/call_out/call_out.js
index 644904dde9f..d95ad7f4eb4 100644
--- a/src/components/call_out/call_out.js
+++ b/src/components/call_out/call_out.js
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
import classNames from 'classnames';
import {
- ICON_TYPES,
+ IconPropType,
EuiIcon,
} from '../icon';
@@ -94,7 +94,7 @@ EuiCallOut.propTypes = {
children: PropTypes.node,
className: PropTypes.string,
title: PropTypes.node,
- iconType: PropTypes.oneOf(ICON_TYPES),
+ iconType: IconPropType,
color: PropTypes.oneOf(COLORS),
size: PropTypes.oneOf(SIZES),
};
diff --git a/src/components/card/__snapshots__/card.test.js.snap b/src/components/card/__snapshots__/card.test.js.snap
index 6566b7e6b3e..cc0393beaef 100644
--- a/src/components/card/__snapshots__/card.test.js.snap
+++ b/src/components/card/__snapshots__/card.test.js.snap
@@ -95,25 +95,13 @@ exports[`EuiCard props icon 1`] = `
class="euiCard__top"
>
-
-
-
-
+ />
-
-
+ />
diff --git a/src/components/combo_box/__snapshots__/combo_box.test.js.snap b/src/components/combo_box/__snapshots__/combo_box.test.js.snap
index 87119129568..cdbba796602 100644
--- a/src/components/combo_box/__snapshots__/combo_box.test.js.snap
+++ b/src/components/combo_box/__snapshots__/combo_box.test.js.snap
@@ -46,25 +46,13 @@ exports[`EuiComboBox is rendered 1`] = `
>
-
-
-
-
-
+ />
@@ -277,25 +265,13 @@ exports[`props options list is rendered 1`] = `
>
-
-
-
-
-
+ />
diff --git a/src/components/context_menu/__snapshots__/context_menu.test.js.snap b/src/components/context_menu/__snapshots__/context_menu.test.js.snap
index 46daea752f8..c58d030438a 100644
--- a/src/components/context_menu/__snapshots__/context_menu.test.js.snap
+++ b/src/components/context_menu/__snapshots__/context_menu.test.js.snap
@@ -26,13 +26,12 @@ exports[`EuiContextMenu props panels and initialPanelId allows you to click the
class="euiContextMenu__itemLayout"
>
@@ -172,7 +148,7 @@ exports[`EuiSuperSelect props custom display is propagated to dropdown 1`] = `
class="euiContextMenu__itemLayout"
>
@@ -331,25 +295,13 @@ exports[`EuiSuperSelect props more props are propogated to each option 1`] = `
>
-
-
-
-
-
+ />
@@ -399,18 +351,13 @@ exports[`EuiSuperSelect props more props are propogated to each option 1`] = `
class="euiContextMenu__itemLayout"
>
+ />
@@ -786,18 +716,13 @@ exports[`EuiSuperSelect props more props are propogated to each option 2`] = `
class="euiContextMenu__itemLayout"
>
+ />
@@ -94,25 +82,13 @@ Array [
>
-
-
-
-
-
+ />
@@ -153,25 +129,13 @@ Array [
>
-
-
-
-
-
+ />
@@ -212,25 +176,13 @@ Array [
>
-
-
-
-
-
+ />
@@ -271,25 +223,13 @@ Array [
>
-
-
-
-
-
+ />
@@ -330,25 +270,13 @@ Array [
>
-
-
-
-
-
+ />
@@ -392,25 +320,13 @@ Array [
>
-
-
-
-
-
+ />
@@ -453,25 +369,13 @@ Array [
>
-
-
-
-
-
+ />
diff --git a/src/components/form/switch/__snapshots__/switch.test.js.snap b/src/components/form/switch/__snapshots__/switch.test.js.snap
index 8e1fe28df6d..7d5d582e468 100644
--- a/src/components/form/switch/__snapshots__/switch.test.js.snap
+++ b/src/components/form/switch/__snapshots__/switch.test.js.snap
@@ -19,30 +19,21 @@ exports[`EuiSwitch assigns automatically generated ID to label 1`] = `
class="euiSwitch__track"
>
-
-
+ />
-
-
+ />
@@ -69,30 +60,21 @@ exports[`EuiSwitch is rendered 1`] = `
class="euiSwitch__track"
>
-
-
+ />
-
-
+ />
diff --git a/src/components/header/__snapshots__/header_logo.test.tsx.snap b/src/components/header/__snapshots__/header_logo.test.tsx.snap
index 7df0a8debb6..6f5fca705d0 100644
--- a/src/components/header/__snapshots__/header_logo.test.tsx.snap
+++ b/src/components/header/__snapshots__/header_logo.test.tsx.snap
@@ -7,42 +7,13 @@ exports[`EuiHeaderLogo is rendered 1`] = `
data-test-subj="test subject string"
>
+ />
`;
@@ -52,42 +23,13 @@ exports[`EuiHeaderLogo renders href 1`] = `
href="#"
>
+ />
`;
@@ -97,17 +39,12 @@ exports[`EuiHeaderLogo renders optional props 1`] = `
style="color:red"
>
+ />
`;
diff --git a/src/components/header/header_alert/__snapshots__/header_alert.test.js.snap b/src/components/header/header_alert/__snapshots__/header_alert.test.js.snap
index 87fd481048c..eaf93871bfd 100644
--- a/src/components/header/header_alert/__snapshots__/header_alert.test.js.snap
+++ b/src/components/header/header_alert/__snapshots__/header_alert.test.js.snap
@@ -13,17 +13,13 @@ exports[`EuiHeaderAlert is rendered 1`] = `
>
-
-
+ />
@@ -269,24 +213,13 @@ exports[`EuiSideNav props items renders items having { forceOpen: true } in open
/>
-
-
-
-
-
+ />
-
-
-
-
-
+ />
-
-
-
-
-
+ />
@@ -623,24 +522,13 @@ exports[`EuiSideNav props items renders selected item and automatically opens pa
/>
-
-
-
-
-
+ />
`;
@@ -40,18 +35,14 @@ exports[`EuiStepNumber props status danger is rendered 1`] = `
class="euiStepNumber euiStepNumber--danger"
>
-
-
+ />
`;
@@ -76,18 +67,13 @@ exports[`EuiStepNumber props status warning is rendered 1`] = `
class="euiStepNumber euiStepNumber--warning"
>
-
-
+ />
`;
diff --git a/src/components/steps/__snapshots__/steps_horizontal.test.js.snap b/src/components/steps/__snapshots__/steps_horizontal.test.js.snap
index a9c8fcec7a6..e9a900cc1a0 100644
--- a/src/components/steps/__snapshots__/steps_horizontal.test.js.snap
+++ b/src/components/steps/__snapshots__/steps_horizontal.test.js.snap
@@ -24,19 +24,14 @@ exports[`EuiStepsHorizontal is rendered 1`] = `
class="euiStepNumber euiStepNumber--complete euiStepHorizontal__number"
>
-
-
+ />
-
-
-
-
-
+ />
diff --git a/src/components/table/mobile/__snapshots__/table_sort_mobile_item.test.js.snap b/src/components/table/mobile/__snapshots__/table_sort_mobile_item.test.js.snap
index 02b0d22c44a..443e2030334 100644
--- a/src/components/table/mobile/__snapshots__/table_sort_mobile_item.test.js.snap
+++ b/src/components/table/mobile/__snapshots__/table_sort_mobile_item.test.js.snap
@@ -11,7 +11,7 @@ exports[`EuiTableSortMobileItem is rendered 1`] = `
class="euiContextMenu__itemLayout"
>
@@ -224,26 +186,13 @@ exports[`EuiTablePagination is rendered when hiding the per page options 1`] = `
>
-
-
-
-
-
+ />
-
-
-
-
-
+ />
diff --git a/src/components/toast/__snapshots__/global_toast_list.test.js.snap b/src/components/toast/__snapshots__/global_toast_list.test.js.snap
index 38a5dbefd65..9e229edf0a5 100644
--- a/src/components/toast/__snapshots__/global_toast_list.test.js.snap
+++ b/src/components/toast/__snapshots__/global_toast_list.test.js.snap
@@ -30,18 +30,13 @@ exports[`EuiGlobalToastList props toasts is rendered 1`] = `
>
+ />
`;
@@ -29,18 +25,14 @@ exports[`EuiIconTip props color is rendered as the icon color 1`] = `
-
-
+ />
`;
@@ -51,18 +43,14 @@ exports[`EuiIconTip props size is rendered as the icon size 1`] = `
-
-
+ />
`;
@@ -73,18 +61,13 @@ exports[`EuiIconTip props type is rendered as the icon 1`] = `
-
-
+ />
`;
diff --git a/src/webpack.config.js b/src/webpack.config.js
index da5e8248d0e..3e3a5a7d5f9 100644
--- a/src/webpack.config.js
+++ b/src/webpack.config.js
@@ -18,6 +18,12 @@ const plugins = [
tslint: path.resolve(__dirname, '..', 'tslint.yaml'),
async: false, // makes errors more visible, but potentially less performant
}),
+
+ // Force EuiIcon's dynamic imports to be included in the single eui.js build,
+ // instead of being split out into multiple files
+ new webpack.optimize.LimitChunkCountPlugin({
+ maxChunks: 1,
+ }),
];
module.exports = {
diff --git a/tsconfig.json b/tsconfig.json
index 5d4835cadaa..b140c0dd94c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -16,7 +16,7 @@
"strict": true,
// Output as ES Modules & esnext code, webpack will handle further conversion
- "module": "es6",
+ "module": "esnext",
"target": "esnext",
// Allows default imports from modules with no default export. This does not affect code emit, just type checking.
diff --git a/yarn.lock b/yarn.lock
index 287f05335de..56029216fce 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -75,6 +75,26 @@
semver "^5.4.1"
source-map "^0.5.0"
+"@babel/core@^7.4.3":
+ version "7.4.3"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f"
+ integrity sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/generator" "^7.4.0"
+ "@babel/helpers" "^7.4.3"
+ "@babel/parser" "^7.4.3"
+ "@babel/template" "^7.4.0"
+ "@babel/traverse" "^7.4.3"
+ "@babel/types" "^7.4.0"
+ convert-source-map "^1.1.0"
+ debug "^4.1.0"
+ json5 "^2.1.0"
+ lodash "^4.17.11"
+ resolve "^1.3.2"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
"@babel/generator@^7.0.0", "@babel/generator@^7.2.2", "@babel/generator@^7.3.3":
version "7.3.3"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.3.tgz#185962ade59a52e00ca2bdfcfd1d58e528d4e39e"
@@ -97,6 +117,17 @@
source-map "^0.5.0"
trim-right "^1.0.1"
+"@babel/generator@^7.4.0":
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196"
+ integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==
+ dependencies:
+ "@babel/types" "^7.4.0"
+ jsesc "^2.5.1"
+ lodash "^4.17.11"
+ source-map "^0.5.0"
+ trim-right "^1.0.1"
+
"@babel/helper-annotate-as-pure@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
@@ -266,6 +297,13 @@
dependencies:
"@babel/types" "^7.0.0"
+"@babel/helper-split-export-declaration@^7.4.0":
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55"
+ integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==
+ dependencies:
+ "@babel/types" "^7.4.0"
+
"@babel/helper-wrap-function@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66"
@@ -294,6 +332,15 @@
"@babel/traverse" "^7.1.5"
"@babel/types" "^7.3.0"
+"@babel/helpers@^7.4.3":
+ version "7.4.3"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.3.tgz#7b1d354363494b31cb9a2417ae86af32b7853a3b"
+ integrity sha512-BMh7X0oZqb36CfyhvtbSmcWc3GXocfxv3yNsAEuM0l+fAqSO22rQrUpijr3oE/10jCTrB6/0b9kzmG4VetCj8Q==
+ dependencies:
+ "@babel/template" "^7.4.0"
+ "@babel/traverse" "^7.4.3"
+ "@babel/types" "^7.4.0"
+
"@babel/highlight@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
@@ -318,6 +365,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.3.tgz#092d450db02bdb6ccb1ca8ffd47d8774a91aef87"
integrity sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==
+"@babel/parser@^7.4.0", "@babel/parser@^7.4.3":
+ version "7.4.3"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b"
+ integrity sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ==
+
"@babel/plugin-proposal-async-generator-functions@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce"
@@ -386,6 +438,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-syntax-dynamic-import@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
+ integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
"@babel/plugin-syntax-json-strings@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd"
@@ -800,6 +859,15 @@
"@babel/parser" "^7.1.2"
"@babel/types" "^7.1.2"
+"@babel/template@^7.4.0":
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b"
+ integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.4.0"
+ "@babel/types" "^7.4.0"
+
"@babel/traverse@7.0.0-beta.36":
version "7.0.0-beta.36"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.36.tgz#1dc6f8750e89b6b979de5fe44aa993b1a2192261"
@@ -844,6 +912,21 @@
globals "^11.1.0"
lodash "^4.17.10"
+"@babel/traverse@^7.4.3":
+ version "7.4.3"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84"
+ integrity sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/generator" "^7.4.0"
+ "@babel/helper-function-name" "^7.1.0"
+ "@babel/helper-split-export-declaration" "^7.4.0"
+ "@babel/parser" "^7.4.3"
+ "@babel/types" "^7.4.0"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.11"
+
"@babel/types@7.0.0-beta.36":
version "7.0.0-beta.36"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.36.tgz#64f2004353de42adb72f9ebb4665fc35b5499d23"
@@ -871,6 +954,15 @@
lodash "^4.17.11"
to-fast-properties "^2.0.0"
+"@babel/types@^7.4.0":
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c"
+ integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.11"
+ to-fast-properties "^2.0.0"
+
"@elastic/datemath@^5.0.2":
version "5.0.2"
resolved "https://registry.yarnpkg.com/@elastic/datemath/-/datemath-5.0.2.tgz#1e62fe7137acd6ebcde9a794ef22b91820c9e6cf"
@@ -942,6 +1034,97 @@
dependencies:
samsam "1.3.0"
+"@svgr/babel-plugin-add-jsx-attribute@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1"
+ integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==
+
+"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc"
+ integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==
+
+"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7"
+ integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==
+
+"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165"
+ integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==
+
+"@svgr/babel-plugin-svg-dynamic-title@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.2.0.tgz#43f0f689a5347a894160eb51b39a109889a4df20"
+ integrity sha512-gH2qItapwCUp6CCqbxvzBbc4dh4OyxdYKsW3EOkYexr0XUmQL0ScbdNh6DexkZ01T+sdClniIbnCObsXcnx3sQ==
+
+"@svgr/babel-plugin-svg-em-dimensions@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391"
+ integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==
+
+"@svgr/babel-plugin-transform-react-native-svg@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717"
+ integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==
+
+"@svgr/babel-plugin-transform-svg-component@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697"
+ integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==
+
+"@svgr/babel-preset@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.2.0.tgz#c9fc236445a02a8cd4e750085e51c181de00d6c5"
+ integrity sha512-iLetHpRCQXfK47voAs5/uxd736cCyocEdorisjAveZo8ShxJ/ivSZgstBmucI1c8HyMF5tOrilJLoFbhpkPiKw==
+ dependencies:
+ "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0"
+ "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0"
+ "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0"
+ "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0"
+ "@svgr/babel-plugin-svg-dynamic-title" "^4.2.0"
+ "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0"
+ "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0"
+ "@svgr/babel-plugin-transform-svg-component" "^4.2.0"
+
+"@svgr/core@^4.1.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.2.0.tgz#f32ef8b9d05312aaa775896ec30ae46a6521e248"
+ integrity sha512-nvzXaf2VavqjMCTTfsZfjL4o9035KedALkMzk82qOlHOwBb8JT+9+zYDgBl0oOunbVF94WTLnvGunEg0csNP3Q==
+ dependencies:
+ "@svgr/plugin-jsx" "^4.2.0"
+ camelcase "^5.3.1"
+ cosmiconfig "^5.2.0"
+
+"@svgr/hast-util-to-babel-ast@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.2.0.tgz#dd743435a5f3a8e84a1da067f27b5fae3d7b6b63"
+ integrity sha512-IvAeb7gqrGB5TH9EGyBsPrMRH/QCzIuAkLySKvH2TLfLb2uqk98qtJamordRQTpHH3e6TORfBXoTo7L7Opo/Ow==
+ dependencies:
+ "@babel/types" "^7.4.0"
+
+"@svgr/plugin-jsx@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.2.0.tgz#15a91562c9b5f90640ea0bdcb2ad59d692ee7ae9"
+ integrity sha512-AM1YokmZITgveY9bulLVquqNmwiFo2Px2HL+IlnTCR01YvWDfRL5QKdnF7VjRaS5MNP938mmqvL0/8oz3zQMkg==
+ dependencies:
+ "@babel/core" "^7.4.3"
+ "@svgr/babel-preset" "^4.2.0"
+ "@svgr/hast-util-to-babel-ast" "^4.2.0"
+ rehype-parse "^6.0.0"
+ unified "^7.1.0"
+ vfile "^4.0.0"
+
+"@svgr/plugin-svgo@^4.0.3":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-4.2.0.tgz#2a594a2d3312955e75fd87dc77ae51f377c809f3"
+ integrity sha512-zUEKgkT172YzHh3mb2B2q92xCnOAMVjRx+o0waZ1U50XqKLrVQ/8dDqTAtnmapdLsGurv8PSwenjLCUpj6hcvw==
+ dependencies:
+ cosmiconfig "^5.2.0"
+ merge-deep "^3.0.2"
+ svgo "^1.2.1"
+
"@types/cheerio@*":
version "0.22.8"
resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.8.tgz#5702f74f78b73e13f1eb1bd435c2c9de61a250d4"
@@ -992,6 +1175,11 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.9.tgz#f2d14df87b0739041bc53a7d75e3d77d726a3ec0"
integrity sha512-Nha5b+jmBI271jdTMwrHiNXM+DvThjHOfyZtMX9kj/c/LUj2xiLHsG/1L3tJ8DjAoQN48cHwUwtqBotjyXaSdQ==
+"@types/q@^1.5.1":
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
+ integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
+
"@types/react-beautiful-dnd@^10.1.0":
version "10.1.0"
resolved "https://registry.yarnpkg.com/@types/react-beautiful-dnd/-/react-beautiful-dnd-10.1.0.tgz#6aa032519051a793154abaca2989d0f070a01680"
@@ -1029,6 +1217,11 @@
"@types/prop-types" "*"
csstype "^2.2.0"
+"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
+ integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==
+
"@types/uuid@^3.4.4":
version "3.4.4"
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.4.tgz#7af69360fa65ef0decb41fd150bf4ca5c0cefdf5"
@@ -1036,6 +1229,23 @@
dependencies:
"@types/node" "*"
+"@types/vfile-message@*":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz#e1e9895cc6b36c462d4244e64e6d0b6eaf65355a"
+ integrity sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA==
+ dependencies:
+ "@types/node" "*"
+ "@types/unist" "*"
+
+"@types/vfile@^3.0.0":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9"
+ integrity sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==
+ dependencies:
+ "@types/node" "*"
+ "@types/unist" "*"
+ "@types/vfile-message" "*"
+
"@webassemblyjs/ast@1.7.11":
version "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace"
@@ -1812,6 +2022,13 @@ babel-plugin-add-module-exports@^1.0.0:
optionalDependencies:
chokidar "^2.0.4"
+babel-plugin-dynamic-import-node@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz#c0adfb07d95f4a4495e9aaac6ec386c4d7c2524e"
+ integrity sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==
+ dependencies:
+ object.assign "^4.1.0"
+
babel-plugin-inline-react-svg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/babel-plugin-inline-react-svg/-/babel-plugin-inline-react-svg-1.0.1.tgz#1457edae1035a12b3c5026ef28a1239edc71d2a2"
@@ -1915,6 +2132,11 @@ babylon@^6.18.0:
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
+bail@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3"
+ integrity sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==
+
balanced-match@^0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
@@ -2412,6 +2634,13 @@ cache-loader@^2.0.1:
normalize-path "^3.0.0"
schema-utils "^1.0.0"
+caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ dependencies:
+ callsites "^2.0.0"
+
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
@@ -2419,11 +2648,23 @@ caller-path@^0.1.0:
dependencies:
callsites "^0.2.0"
+caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ dependencies:
+ caller-callsite "^2.0.0"
+
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
+callsites@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+ integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+
callsites@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
@@ -2465,6 +2706,11 @@ camelcase@^5.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42"
integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==
+camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
caniuse-api@^1.5.2:
version "1.6.1"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
@@ -2527,6 +2773,11 @@ caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+ccount@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff"
+ integrity sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==
+
chai-webdriverio@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/chai-webdriverio/-/chai-webdriverio-0.4.3.tgz#55f19b198e03889f23d4d612bf9ab7e9518d5c24"
@@ -2817,6 +3068,17 @@ clone-buffer@^1.0.0:
resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg=
+clone-deep@^0.2.4:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6"
+ integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=
+ dependencies:
+ for-own "^0.1.3"
+ is-plain-object "^2.0.1"
+ kind-of "^3.0.2"
+ lazy-cache "^1.0.3"
+ shallow-clone "^0.1.2"
+
clone-deep@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8"
@@ -2869,6 +3131,15 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+coa@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+ integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
+ dependencies:
+ "@types/q" "^1.5.1"
+ chalk "^2.4.1"
+ q "^1.1.2"
+
coa@~1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
@@ -3012,6 +3283,11 @@ combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
+comma-separated-tokens@^1.0.0:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.6.tgz#3cd3d8adc725ab473843db338bcdfd4a7bb087bf"
+ integrity sha512-f20oA7jsrrmERTS70r3tmRSxR8IJV2MTN7qe6hzgX+3ARfXrdMJFvGWvWQK0xpcBurg9j9eO2MiqzZ8Y+/UPCA==
+
commander@2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
@@ -3270,6 +3546,16 @@ cosmiconfig@^5.0.0:
js-yaml "^3.9.0"
parse-json "^4.0.0"
+cosmiconfig@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8"
+ integrity sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==
+ dependencies:
+ import-fresh "^2.0.0"
+ is-directory "^0.3.1"
+ js-yaml "^3.13.0"
+ parse-json "^4.0.0"
+
crc32-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4"
@@ -3461,6 +3747,11 @@ css-parse@~2.0.0:
dependencies:
css "^2.0.0"
+css-select-base-adapter@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
+ integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
+
css-select-base-adapter@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz#0102b3d14630df86c3eb9fa9f5456270106cf990"
@@ -3476,6 +3767,16 @@ css-select@^1.1.0, css-select@^1.2.0, css-select@~1.2.0:
domutils "1.5.1"
nth-check "~1.0.1"
+css-select@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
+ integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^2.1.2"
+ domutils "^1.7.0"
+ nth-check "^1.0.2"
+
css-select@~1.3.0-rc0:
version "1.3.0-rc0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.3.0-rc0.tgz#6f93196aaae737666ea1036a8cb14a8fcb7a9231"
@@ -3495,6 +3796,14 @@ css-selector-tokenizer@^0.7.0:
fastparse "^1.1.1"
regexpu-core "^1.0.0"
+css-tree@1.0.0-alpha.28:
+ version "1.0.0-alpha.28"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
+ integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==
+ dependencies:
+ mdn-data "~1.1.0"
+ source-map "^0.5.3"
+
css-tree@1.0.0-alpha.29:
version "1.0.0-alpha.29"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
@@ -3531,6 +3840,11 @@ css-what@2.1:
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
integrity sha1-lGfQMsOM+u+58teVASUwYvh/ob0=
+css-what@^2.1.2:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
+ integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
+
css@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc"
@@ -3652,7 +3966,7 @@ cssnano@^4.0.5:
is-resolvable "^1.0.0"
postcss "^6.0.0"
-csso@^3.5.0:
+csso@^3.5.0, csso@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==
@@ -4214,6 +4528,14 @@ domutils@^1.5.1:
dom-serializer "0"
domelementtype "1"
+domutils@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+ integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
dot-prop@^4.1.0, dot-prop@^4.1.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
@@ -5504,7 +5826,7 @@ for-in@^1.0.1, for-in@^1.0.2:
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-for-own@^0.1.4:
+for-own@^0.1.3, for-own@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
@@ -6319,6 +6641,32 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.0"
+hast-util-from-parse5@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.0.tgz#a505a05766e0f96e389bfb0b1dd809eeefcef47b"
+ integrity sha512-A7ev5OseS/J15214cvDdcI62uwovJO2PB60Xhnq7kaxvvQRFDEccuqbkrFXU03GPBGopdPqlpQBRqIcDS/Fjbg==
+ dependencies:
+ ccount "^1.0.3"
+ hastscript "^5.0.0"
+ property-information "^5.0.0"
+ web-namespaces "^1.1.2"
+ xtend "^4.0.1"
+
+hast-util-parse-selector@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.1.tgz#4ddbae1ae12c124e3eb91b581d2556441766f0ab"
+ integrity sha512-Xyh0v+nHmQvrOqop2Jqd8gOdyQtE8sIP9IQf7mlVDqp924W4w/8Liuguk2L2qei9hARnQSG2m+wAOCxM7npJVw==
+
+hastscript@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.0.0.tgz#fee10382c1bc4ba3f1be311521d368c047d2c43a"
+ integrity sha512-xJtuJ8D42Xtq5yJrnDg/KAIxl2cXBXKoiIJwmWX9XMf8113qHTGl/Bf7jEsxmENJ4w6q4Tfl8s/Y6mEZo8x8qw==
+ dependencies:
+ comma-separated-tokens "^1.0.0"
+ hast-util-parse-selector "^2.2.0"
+ property-information "^5.0.1"
+ space-separated-tokens "^1.0.0"
+
hawk@3.1.3, hawk@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
@@ -6668,6 +7016,14 @@ image-size@^0.5.0:
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
+import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
import-lazy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
@@ -6952,6 +7308,11 @@ is-buffer@^1.0.2, is-buffer@^1.1.5, is-buffer@~1.1.1:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+is-buffer@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
+ integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==
+
is-builtin-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
@@ -7920,6 +8281,14 @@ js-yaml@^3.12.0:
argparse "^1.0.7"
esprima "^4.0.0"
+js-yaml@^3.13.0, js-yaml@^3.13.1:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1, js-yaml@~3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
@@ -8170,6 +8539,11 @@ lazy-cache@^0.2.3:
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65"
integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+ integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
+
lazy-cache@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264"
@@ -8759,6 +9133,15 @@ meow@^3.0.0, meow@^3.5.0, meow@^3.7.0:
redent "^1.0.0"
trim-newlines "^1.0.0"
+merge-deep@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2"
+ integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==
+ dependencies:
+ arr-union "^3.1.0"
+ clone-deep "^0.2.4"
+ kind-of "^3.0.2"
+
merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
@@ -9625,6 +10008,13 @@ nth-check@^1.0.1, nth-check@~1.0.1:
dependencies:
boolbase "~1.0.0"
+nth-check@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+ integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
+ dependencies:
+ boolbase "~1.0.0"
+
num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
@@ -10174,6 +10564,11 @@ parse5@^4.0.0:
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
+parse5@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
+ integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
+
parseurl@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
@@ -11194,6 +11589,13 @@ prop-types@^15.6.1:
object-assign "^4.1.1"
react-is "^16.8.1"
+property-information@^5.0.0, property-information@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.0.1.tgz#c3b09f4f5750b1634c0b24205adbf78f18bdf94f"
+ integrity sha512-nAtBDVeSwFM3Ot/YxT7s4NqZmqXI7lLzf46BThvotEtYf2uk2yH0ACYuWQkJ7gxKs49PPtKVY0UlDGkyN9aJlw==
+ dependencies:
+ xtend "^4.0.1"
+
protochain@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/protochain/-/protochain-1.0.5.tgz#991c407e99de264aadf8f81504b5e7faf7bfa260"
@@ -12045,6 +12447,15 @@ regjsparser@^0.3.0:
dependencies:
jsesc "~0.5.0"
+rehype-parse@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.0.tgz#f681555f2598165bee2c778b39f9073d17b16bca"
+ integrity sha512-V2OjMD0xcSt39G4uRdMTqDXXm6HwkUbLMDayYKA/d037j8/OtVSQ+tqKwYWOuyBeoCs/3clXRe30VUjeMDTBSA==
+ dependencies:
+ hast-util-from-parse5 "^5.0.0"
+ parse5 "^5.0.0"
+ xtend "^4.0.1"
+
relateurl@0.2.x:
version "0.2.7"
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
@@ -12088,7 +12499,7 @@ replace-ext@0.0.1:
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=
-replace-ext@^1.0.0:
+replace-ext@1.0.0, replace-ext@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
@@ -13109,6 +13520,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+space-separated-tokens@^1.0.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.3.tgz#bc6500e116d13285a94b59b58c44c7f045fe6124"
+ integrity sha512-/M5RAdBuQlSDPNfA5ube+fkHbHyY08pMuADLmsAQURzo56w90r681oiOoz3o3ZQyWdSeNucpTFjL+Ggd5qui3w==
+
spawn-sync@^1.0.15:
version "1.0.15"
resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
@@ -13205,7 +13621,7 @@ ssri@^6.0.0:
dependencies:
figgy-pudding "^3.5.1"
-stable@~0.1.6:
+stable@^0.1.8, stable@~0.1.6:
version "0.1.8"
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
@@ -13579,6 +13995,26 @@ svgo@^1.0.0:
unquote "~1.1.1"
util.promisify "~1.0.0"
+svgo@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.2.tgz#0253d34eccf2aed4ad4f283e11ee75198f9d7316"
+ integrity sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA==
+ dependencies:
+ chalk "^2.4.1"
+ coa "^2.0.2"
+ css-select "^2.0.0"
+ css-select-base-adapter "^0.1.1"
+ css-tree "1.0.0-alpha.28"
+ css-url-regex "^1.1.0"
+ csso "^3.5.1"
+ js-yaml "^3.13.1"
+ mkdirp "~0.5.1"
+ object.values "^1.1.0"
+ sax "~1.2.4"
+ stable "^0.1.8"
+ unquote "~1.1.1"
+ util.promisify "~1.0.0"
+
symbol-observable@^1.0.3:
version "1.1.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32"
@@ -13967,6 +14403,11 @@ trim@0.0.1:
resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0=
+trough@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz#e29bd1614c6458d44869fc28b255ab7857ef7c24"
+ integrity sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw==
+
"true-case-path@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62"
@@ -14183,6 +14624,20 @@ unicode-property-aliases-ecmascript@^1.0.4:
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0"
integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==
+unified@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13"
+ integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==
+ dependencies:
+ "@types/unist" "^2.0.0"
+ "@types/vfile" "^3.0.0"
+ bail "^1.0.0"
+ extend "^3.0.0"
+ is-plain-obj "^1.1.0"
+ trough "^1.0.0"
+ vfile "^3.0.0"
+ x-is-string "^0.1.0"
+
union-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
@@ -14231,6 +14686,18 @@ unique-string@^1.0.0:
dependencies:
crypto-random-string "^1.0.0"
+unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6"
+ integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==
+
+unist-util-stringify-position@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.0.tgz#4c452c0dbcbc509f7bcd366e9a8afd646f9d51ae"
+ integrity sha512-Uz5negUTrf9zm2ZT2Z9kdOL7Mr7FJLyq3ByqagUi7QZRVK1HnspVazvSqwHt73jj7APHtpuJ4K110Jm8O6/elw==
+ dependencies:
+ "@types/unist" "^2.0.2"
+
universalify@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
@@ -14458,6 +14925,42 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
+vfile-message@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1"
+ integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==
+ dependencies:
+ unist-util-stringify-position "^1.1.1"
+
+vfile-message@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.0.tgz#750bbb86fe545988a67e899b329bbcabb73edef6"
+ integrity sha512-YS6qg6UpBfIeiO+6XlhPOuJaoLvt1Y9g2cmlwqhBOOU0XRV8j5RLeoz72t6PWLvNXq3EBG1fQ05wNPrUoz0deQ==
+ dependencies:
+ "@types/unist" "^2.0.2"
+ unist-util-stringify-position "^1.1.1"
+
+vfile@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803"
+ integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==
+ dependencies:
+ is-buffer "^2.0.0"
+ replace-ext "1.0.0"
+ unist-util-stringify-position "^1.0.0"
+ vfile-message "^1.0.0"
+
+vfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.0.tgz#ebf3b48af9fcde524d5e08d5f75812058a5f78ad"
+ integrity sha512-WMNeHy5djSl895BqE86D7WqA0Ie5fAIeGCa7V1EqiXyJg5LaGch2SUaZueok5abYQGH6mXEAsZ45jkoILIOlyA==
+ dependencies:
+ "@types/unist" "^2.0.2"
+ is-buffer "^2.0.0"
+ replace-ext "1.0.0"
+ unist-util-stringify-position "^2.0.0"
+ vfile-message "^2.0.0"
+
vinyl-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a"
@@ -14651,6 +15154,11 @@ wdio-visual-regression-service@silne30/wdio-visual-regression-service#Add_Filena
platform "^1.3.1"
wdio-screenshot "^0.6.0"
+web-namespaces@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.2.tgz#c8dc267ab639505276bae19e129dbd6ae72b22b4"
+ integrity sha512-II+n2ms4mPxK+RnIxRPOw3zwF2jRscdJIUE9BfkKHm4FYEg9+biIoTMnaZF5MpemE3T+VhMLrhbyD4ilkPCSbg==
+
webdriverio@^4.12.0:
version "4.12.0"
resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-4.12.0.tgz#e340def272183c8168a4dd0b382322f9d7bee10d"
@@ -14966,6 +15474,11 @@ ws@^4.0.0:
safe-buffer "~5.1.0"
ultron "~1.1.0"
+x-is-string@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
+ integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=
+
xdg-basedir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2"
@@ -15021,7 +15534,7 @@ xregexp@4.0.0:
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"
integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==
-xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
+xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=