@gitlab/duo-ui 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11706 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/constants.js +11 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_details_modal/duo_chat_context_item_details_modal.js +118 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.js +265 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_category_items.js +68 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_item.js +87 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_items.js +137 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_items_loading.js +53 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.js +121 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.js +153 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +191 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/utils.js +106 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.js +101 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.js +101 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message/buttons_utils.js +25 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message/copy_code_element.js +16 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +263 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message/insert_code_snippet_element.js +56 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message/utils.js +8 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_message_sources/duo_chat_message_sources.js +106 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.js +64 -0
- package/dist/components/experimental/duo/chat/constants.js +30 -0
- package/dist/components/experimental/duo/chat/duo_chat.js +524 -0
- package/dist/components/experimental/duo/chat/markdown_renderer.js +18 -0
- package/dist/components/experimental/duo/chat/mock_data.js +162 -0
- package/dist/components/experimental/duo/user_feedback/user_feedback.js +97 -0
- package/dist/components/experimental/duo/user_feedback/user_feedback_modal.js +149 -0
- package/dist/components/experimental/duo/workflow/components/duo_workflow_panel/duo_workflow_panel.js +95 -0
- package/dist/components/experimental/duo/workflow/components/duo_workflow_prompt/duo_workflow_prompt.js +235 -0
- package/dist/tailwind.css +2 -0
- package/dist/tailwind.css.map +1 -0
- package/package.json +7 -15
- package/src/components/experimental/duo/chat/mock_data.js +1 -1
- package/src/config.js +3 -43
- package/src/index.js +3 -130
- package/src/tokens/build/json/tokens.json +13548 -13548
- package/src/vendor/bootstrap/LICENSE +22 -0
- package/src/vendor/bootstrap-vue/LICENSE +21 -0
- package/src/vendor/bootstrap-vue/nuxt/index.js +164 -0
- package/src/vendor/bootstrap-vue/nuxt/plugin.template.js +29 -0
- package/src/vendor/bootstrap-vue/package.json +201 -0
- package/src/vendor/bootstrap-vue/src/bv-config.d.ts +4 -0
- package/src/vendor/bootstrap-vue/src/components/badge/README.md +126 -0
- package/src/vendor/bootstrap-vue/src/components/badge/badge.spec.js +141 -0
- package/src/vendor/bootstrap-vue/src/components/badge/index.d.ts +7 -0
- package/src/vendor/bootstrap-vue/src/components/badge/package.json +29 -0
- package/src/vendor/bootstrap-vue/src/components/breadcrumb/README.md +93 -0
- package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb-item.spec.js +123 -0
- package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb-link.spec.js +117 -0
- package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb.spec.js +183 -0
- package/src/vendor/bootstrap-vue/src/components/breadcrumb/index.d.ts +13 -0
- package/src/vendor/bootstrap-vue/src/components/breadcrumb/package.json +62 -0
- package/src/vendor/bootstrap-vue/src/components/button/README.md +281 -0
- package/src/vendor/bootstrap-vue/src/components/button/button-close.spec.js +210 -0
- package/src/vendor/bootstrap-vue/src/components/button/button.spec.js +385 -0
- package/src/vendor/bootstrap-vue/src/components/button/index.d.ts +10 -0
- package/src/vendor/bootstrap-vue/src/components/button/package.json +105 -0
- package/src/vendor/bootstrap-vue/src/components/button-group/README.md +112 -0
- package/src/vendor/bootstrap-vue/src/components/button-group/button-group.spec.js +98 -0
- package/src/vendor/bootstrap-vue/src/components/button-group/index.d.ts +7 -0
- package/src/vendor/bootstrap-vue/src/components/button-group/package.json +29 -0
- package/src/vendor/bootstrap-vue/src/components/collapse/README.md +321 -0
- package/src/vendor/bootstrap-vue/src/components/collapse/collapse.spec.js +558 -0
- package/src/vendor/bootstrap-vue/src/components/collapse/index.d.ts +9 -0
- package/src/vendor/bootstrap-vue/src/components/collapse/package.json +111 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/README.md +730 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.spec.js +58 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.spec.js +110 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.spec.js +94 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.spec.js +73 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.spec.js +117 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.spec.js +147 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.spec.js +59 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.spec.js +1121 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/index.d.ts +32 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/package.json +368 -0
- package/src/vendor/bootstrap-vue/src/components/form/README.md +370 -0
- package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.spec.js +170 -0
- package/src/vendor/bootstrap-vue/src/components/form/form-text.spec.js +93 -0
- package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.spec.js +157 -0
- package/src/vendor/bootstrap-vue/src/components/form/form.spec.js +97 -0
- package/src/vendor/bootstrap-vue/src/components/form/index.d.ts +16 -0
- package/src/vendor/bootstrap-vue/src/components/form/package.json +112 -0
- package/src/vendor/bootstrap-vue/src/components/form-checkbox/README.md +862 -0
- package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox-group.spec.js +642 -0
- package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox.spec.js +1331 -0
- package/src/vendor/bootstrap-vue/src/components/form-checkbox/index.d.ts +10 -0
- package/src/vendor/bootstrap-vue/src/components/form-checkbox/package.json +172 -0
- package/src/vendor/bootstrap-vue/src/components/form-group/README.md +337 -0
- package/src/vendor/bootstrap-vue/src/components/form-group/form-group.spec.js +477 -0
- package/src/vendor/bootstrap-vue/src/components/form-group/index.d.ts +7 -0
- package/src/vendor/bootstrap-vue/src/components/form-group/package.json +183 -0
- package/src/vendor/bootstrap-vue/src/components/form-input/README.md +612 -0
- package/src/vendor/bootstrap-vue/src/components/form-input/form-input.spec.js +986 -0
- package/src/vendor/bootstrap-vue/src/components/form-input/index.d.ts +9 -0
- package/src/vendor/bootstrap-vue/src/components/form-input/package.json +135 -0
- package/src/vendor/bootstrap-vue/src/components/form-radio/README.md +566 -0
- package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.spec.js +469 -0
- package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio.spec.js +952 -0
- package/src/vendor/bootstrap-vue/src/components/form-radio/index.d.ts +10 -0
- package/src/vendor/bootstrap-vue/src/components/form-radio/package.json +162 -0
- package/src/vendor/bootstrap-vue/src/components/form-select/README.md +504 -0
- package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.spec.js +138 -0
- package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.spec.js +75 -0
- package/src/vendor/bootstrap-vue/src/components/form-select/form-select.spec.js +723 -0
- package/src/vendor/bootstrap-vue/src/components/form-select/index.d.ts +13 -0
- package/src/vendor/bootstrap-vue/src/components/form-select/package.json +132 -0
- package/src/vendor/bootstrap-vue/src/components/form-textarea/README.md +453 -0
- package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.spec.js +1000 -0
- package/src/vendor/bootstrap-vue/src/components/form-textarea/index.d.ts +9 -0
- package/src/vendor/bootstrap-vue/src/components/form-textarea/package.json +122 -0
- package/src/vendor/bootstrap-vue/src/components/index.d.ts +31 -0
- package/src/vendor/bootstrap-vue/src/components/input-group/README.md +334 -0
- package/src/vendor/bootstrap-vue/src/components/input-group/index.d.ts +19 -0
- package/src/vendor/bootstrap-vue/src/components/input-group/input-group-append.spec.js +84 -0
- package/src/vendor/bootstrap-vue/src/components/input-group/input-group-prepend.spec.js +84 -0
- package/src/vendor/bootstrap-vue/src/components/input-group/input-group-text.spec.js +45 -0
- package/src/vendor/bootstrap-vue/src/components/input-group/input-group.spec.js +153 -0
- package/src/vendor/bootstrap-vue/src/components/input-group/package.json +109 -0
- package/src/vendor/bootstrap-vue/src/components/layout/README.md +791 -0
- package/src/vendor/bootstrap-vue/src/components/layout/col.spec.js +192 -0
- package/src/vendor/bootstrap-vue/src/components/layout/form-row.spec.js +45 -0
- package/src/vendor/bootstrap-vue/src/components/layout/index.d.ts +10 -0
- package/src/vendor/bootstrap-vue/src/components/layout/package.json +99 -0
- package/src/vendor/bootstrap-vue/src/components/link/README.md +76 -0
- package/src/vendor/bootstrap-vue/src/components/link/index.d.ts +10 -0
- package/src/vendor/bootstrap-vue/src/components/link/link.spec.js +434 -0
- package/src/vendor/bootstrap-vue/src/components/link/package.json +57 -0
- package/src/vendor/bootstrap-vue/src/components/modal/MODIFICATIONS.md +27 -0
- package/src/vendor/bootstrap-vue/src/components/modal/README.md +1068 -0
- package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.spec.js +82 -0
- package/src/vendor/bootstrap-vue/src/components/modal/index.d.ts +82 -0
- package/src/vendor/bootstrap-vue/src/components/modal/modal.spec.js +1418 -0
- package/src/vendor/bootstrap-vue/src/components/modal/package.json +548 -0
- package/src/vendor/bootstrap-vue/src/components/nav/README.md +480 -0
- package/src/vendor/bootstrap-vue/src/components/nav/index.d.ts +17 -0
- package/src/vendor/bootstrap-vue/src/components/nav/nav-item-dropdown.spec.js +268 -0
- package/src/vendor/bootstrap-vue/src/components/nav/nav-item.spec.js +127 -0
- package/src/vendor/bootstrap-vue/src/components/nav/nav.spec.js +244 -0
- package/src/vendor/bootstrap-vue/src/components/nav/package.json +190 -0
- package/src/vendor/bootstrap-vue/src/components/navbar/README.md +333 -0
- package/src/vendor/bootstrap-vue/src/components/navbar/index.d.ts +10 -0
- package/src/vendor/bootstrap-vue/src/components/navbar/navbar-brand.spec.js +50 -0
- package/src/vendor/bootstrap-vue/src/components/navbar/navbar.spec.js +130 -0
- package/src/vendor/bootstrap-vue/src/components/navbar/package.json +54 -0
- package/src/vendor/bootstrap-vue/src/components/popover/README.md +919 -0
- package/src/vendor/bootstrap-vue/src/components/popover/index.d.ts +7 -0
- package/src/vendor/bootstrap-vue/src/components/popover/package.json +261 -0
- package/src/vendor/bootstrap-vue/src/components/popover/popover.spec.js +199 -0
- package/src/vendor/bootstrap-vue/src/components/progress/MODIFICATIONS.md +23 -0
- package/src/vendor/bootstrap-vue/src/components/progress/README.md +363 -0
- package/src/vendor/bootstrap-vue/src/components/progress/index.d.ts +10 -0
- package/src/vendor/bootstrap-vue/src/components/progress/package.json +109 -0
- package/src/vendor/bootstrap-vue/src/components/progress/progress-bar.spec.js +270 -0
- package/src/vendor/bootstrap-vue/src/components/progress/progress.spec.js +71 -0
- package/src/vendor/bootstrap-vue/src/components/table/README.md +3157 -0
- package/src/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.spec.js +112 -0
- package/src/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.spec.js +93 -0
- package/src/vendor/bootstrap-vue/src/components/table/index.d.ts +237 -0
- package/src/vendor/bootstrap-vue/src/components/table/package.json +1763 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-busy.spec.js +150 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-caption.spec.js +176 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-colgroup.spec.js +81 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-filtering.spec.js +409 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-item-formatter.spec.js +56 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-lite.spec.js +682 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-pagination.spec.js +133 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-primarykey.spec.js +83 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-provider.spec.js +411 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-row-details.spec.js +459 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-selectable.spec.js +1182 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-simple.spec.js +206 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-sorting.spec.js +858 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-sticky-column.spec.js +377 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-tbody-bottom-row.spec.js +94 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-tbody-row-events.spec.js +529 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-tbody-top-row.spec.js +88 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-tbody-transition.spec.js +83 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-custom.spec.js +91 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-events.spec.js +137 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-thead-events.spec.js +155 -0
- package/src/vendor/bootstrap-vue/src/components/table/table-thead-top.spec.js +96 -0
- package/src/vendor/bootstrap-vue/src/components/table/table.spec.js +692 -0
- package/src/vendor/bootstrap-vue/src/components/tabs/README.md +575 -0
- package/src/vendor/bootstrap-vue/src/components/tabs/index.d.ts +13 -0
- package/src/vendor/bootstrap-vue/src/components/tabs/package.json +205 -0
- package/src/vendor/bootstrap-vue/src/components/tabs/tab.spec.js +330 -0
- package/src/vendor/bootstrap-vue/src/components/tabs/tabs.spec.js +836 -0
- package/src/vendor/bootstrap-vue/src/components/toast/README.md +656 -0
- package/src/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.spec.js +131 -0
- package/src/vendor/bootstrap-vue/src/components/toast/index.d.ts +70 -0
- package/src/vendor/bootstrap-vue/src/components/toast/package.json +188 -0
- package/src/vendor/bootstrap-vue/src/components/toast/toast.spec.js +346 -0
- package/src/vendor/bootstrap-vue/src/components/toast/toaster.spec.js +77 -0
- package/src/vendor/bootstrap-vue/src/components/tooltip/README.md +559 -0
- package/src/vendor/bootstrap-vue/src/components/tooltip/index.d.ts +7 -0
- package/src/vendor/bootstrap-vue/src/components/tooltip/package.json +258 -0
- package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.spec.js +1529 -0
- package/src/vendor/bootstrap-vue/src/components/transition/package.json +5 -0
- package/src/vendor/bootstrap-vue/src/components/transporter/package.json +5 -0
- package/src/vendor/bootstrap-vue/src/components/transporter/transporter.spec.js +85 -0
- package/src/vendor/bootstrap-vue/src/directives/modal/index.d.ts +8 -0
- package/src/vendor/bootstrap-vue/src/directives/modal/modal.spec.js +191 -0
- package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +146 -0
- package/src/vendor/bootstrap-vue/src/directives/toggle/index.d.ts +7 -0
- package/src/vendor/bootstrap-vue/src/directives/toggle/package.json +26 -0
- package/src/vendor/bootstrap-vue/src/directives/toggle/toggle.spec.js +452 -0
- package/src/vendor/bootstrap-vue/src/directives/tooltip/README.md +521 -0
- package/src/vendor/bootstrap-vue/src/directives/tooltip/index.d.ts +7 -0
- package/src/vendor/bootstrap-vue/src/directives/tooltip/package.json +131 -0
- package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.spec.js +223 -0
- package/src/vendor/bootstrap-vue/src/directives/visible/README.md +244 -0
- package/src/vendor/bootstrap-vue/src/directives/visible/index.d.ts +7 -0
- package/src/vendor/bootstrap-vue/src/directives/visible/package.json +24 -0
- package/src/vendor/bootstrap-vue/src/index.d.ts +61 -0
- package/src/vendor/bootstrap-vue/src/mixins/attrs.spec.js +194 -0
- package/src/vendor/bootstrap-vue/src/mixins/click-out.spec.js +52 -0
- package/src/vendor/bootstrap-vue/src/mixins/focus-in.spec.js +53 -0
- package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.spec.js +117 -0
- package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.spec.js +77 -0
- package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.spec.js +115 -0
- package/src/vendor/bootstrap-vue/src/mixins/listeners.spec.js +245 -0
- package/src/vendor/bootstrap-vue/src/utils/bv-event.class.spec.js +66 -0
- package/src/vendor/bootstrap-vue/src/utils/clone-deep.spec.js +70 -0
- package/src/vendor/bootstrap-vue/src/utils/config.spec.js +169 -0
- package/src/vendor/bootstrap-vue/src/utils/css-escape.spec.js +82 -0
- package/src/vendor/bootstrap-vue/src/utils/dom.spec.js +291 -0
- package/src/vendor/bootstrap-vue/src/utils/events.spec.js +41 -0
- package/src/vendor/bootstrap-vue/src/utils/get.spec.js +109 -0
- package/src/vendor/bootstrap-vue/src/utils/inspect.spec.js +251 -0
- package/src/vendor/bootstrap-vue/src/utils/loose-equal.spec.js +203 -0
- package/src/vendor/bootstrap-vue/src/utils/normalize-slot.spec.js +63 -0
- package/src/vendor/bootstrap-vue/src/utils/number.spec.js +72 -0
- package/src/vendor/bootstrap-vue/src/utils/object.spec.js +61 -0
- package/src/vendor/bootstrap-vue/src/utils/props.spec.js +112 -0
- package/src/vendor/bootstrap-vue/src/utils/router.spec.js +248 -0
- package/src/vendor/bootstrap-vue/src/utils/string.spec.js +65 -0
- package/src/vendor/bootstrap-vue/src/utils/stringify-object-values.spec.js +47 -0
- package/src/vendor/bootstrap-vue/src/utils/warn.spec.js +54 -0
- package/src/vendor/bootstrap-vue/src/vue-injections.d.ts +13 -0
- package/translations.js +0 -26
- package/dist/tokens/css/tokens.css +0 -953
- package/dist/tokens/css/tokens.dark.css +0 -953
- package/dist/tokens/js/tokens.dark.js +0 -951
- package/dist/tokens/js/tokens.js +0 -951
- package/dist/tokens/json/tokens.dark.json +0 -21803
- package/dist/tokens/json/tokens.json +0 -21803
- package/dist/tokens/scss/_tokens.dark.scss +0 -950
- package/dist/tokens/scss/_tokens.scss +0 -950
- package/dist/tokens/scss/_tokens_custom_properties.scss +0 -951
- package/dist/tokens/tailwind/tokens.cjs +0 -336
- package/src/charts.js +0 -14
- package/src/components/base/accordion/accordion.md +0 -3
- package/src/components/base/accordion/accordion.vue +0 -43
- package/src/components/base/accordion/accordion_item.md +0 -3
- package/src/components/base/accordion/accordion_item.scss +0 -16
- package/src/components/base/accordion/accordion_item.vue +0 -122
- package/src/components/base/alert/alert.md +0 -35
- package/src/components/base/alert/alert.scss +0 -179
- package/src/components/base/alert/alert.vue +0 -241
- package/src/components/base/animated_icon/animated_chevron_right_down_icon.vue +0 -28
- package/src/components/base/animated_icon/animated_duo_chat_icon.vue +0 -39
- package/src/components/base/animated_icon/animated_icon.md +0 -4
- package/src/components/base/animated_icon/animated_icon.scss +0 -456
- package/src/components/base/animated_icon/animated_notifications_icon.vue +0 -49
- package/src/components/base/animated_icon/animated_sidebar_icon.vue +0 -35
- package/src/components/base/animated_icon/animated_smile_icon.vue +0 -37
- package/src/components/base/animated_icon/animated_sort_icon.vue +0 -84
- package/src/components/base/animated_icon/animated_star_icon.vue +0 -27
- package/src/components/base/animated_icon/animated_todo_icon.vue +0 -49
- package/src/components/base/animated_icon/animated_upload_icon.vue +0 -41
- package/src/components/base/animated_icon/base_animated_icon.vue +0 -39
- package/src/components/base/avatar/avatar.md +0 -1
- package/src/components/base/avatar/avatar.scss +0 -228
- package/src/components/base/avatar/avatar.vue +0 -151
- package/src/components/base/avatar_labeled/avatar_labeled.md +0 -20
- package/src/components/base/avatar_labeled/avatar_labeled.scss +0 -30
- package/src/components/base/avatar_labeled/avatar_labeled.vue +0 -92
- package/src/components/base/avatar_link/avatar_link.md +0 -33
- package/src/components/base/avatar_link/avatar_link.scss +0 -41
- package/src/components/base/avatar_link/avatar_link.vue +0 -15
- package/src/components/base/avatars_inline/avatars_inline.md +0 -38
- package/src/components/base/avatars_inline/avatars_inline.scss +0 -64
- package/src/components/base/avatars_inline/avatars_inline.vue +0 -110
- package/src/components/base/badge/badge.md +0 -38
- package/src/components/base/badge/badge.scss +0 -251
- package/src/components/base/badge/badge.vue +0 -91
- package/src/components/base/banner/banner.md +0 -35
- package/src/components/base/banner/banner.scss +0 -35
- package/src/components/base/banner/banner.vue +0 -131
- package/src/components/base/breadcrumb/breadcrumb.md +0 -23
- package/src/components/base/breadcrumb/breadcrumb.scss +0 -62
- package/src/components/base/breadcrumb/breadcrumb.vue +0 -229
- package/src/components/base/breadcrumb/breadcrumb_item.vue +0 -44
- package/src/components/base/broadcast_message/broadcast_message.md +0 -25
- package/src/components/base/broadcast_message/broadcast_message.scss +0 -135
- package/src/components/base/broadcast_message/broadcast_message.vue +0 -98
- package/src/components/base/broadcast_message/constants.js +0 -3
- package/src/components/base/button/button.md +0 -61
- package/src/components/base/button/button.scss +0 -699
- package/src/components/base/button/button.vue +0 -143
- package/src/components/base/button_group/button_group.md +0 -28
- package/src/components/base/button_group/button_group.vue +0 -16
- package/src/components/base/card/card.md +0 -4
- package/src/components/base/card/card.scss +0 -46
- package/src/components/base/card/card.vue +0 -49
- package/src/components/base/collapse/collapse.md +0 -26
- package/src/components/base/collapse/collapse.vue +0 -29
- package/src/components/base/datepicker/datepicker.md +0 -8
- package/src/components/base/datepicker/datepicker.scss +0 -228
- package/src/components/base/datepicker/datepicker.vue +0 -454
- package/src/components/base/daterange_picker/daterange_picker.md +0 -32
- package/src/components/base/daterange_picker/daterange_picker.scss +0 -20
- package/src/components/base/daterange_picker/daterange_picker.vue +0 -345
- package/src/components/base/drawer/drawer.md +0 -17
- package/src/components/base/drawer/drawer.scss +0 -153
- package/src/components/base/drawer/drawer.vue +0 -136
- package/src/components/base/dropdown/dropdown.md +0 -72
- package/src/components/base/dropdown/dropdown.scss +0 -210
- package/src/components/base/dropdown/dropdown.vue +0 -323
- package/src/components/base/dropdown/dropdown_divider.scss +0 -20
- package/src/components/base/dropdown/dropdown_divider.vue +0 -15
- package/src/components/base/dropdown/dropdown_form.vue +0 -17
- package/src/components/base/dropdown/dropdown_item.md +0 -2
- package/src/components/base/dropdown/dropdown_item.scss +0 -102
- package/src/components/base/dropdown/dropdown_item.vue +0 -114
- package/src/components/base/dropdown/dropdown_section_header.md +0 -7
- package/src/components/base/dropdown/dropdown_section_header.scss +0 -22
- package/src/components/base/dropdown/dropdown_section_header.vue +0 -17
- package/src/components/base/dropdown/dropdown_text.md +0 -7
- package/src/components/base/dropdown/dropdown_text.scss +0 -6
- package/src/components/base/dropdown/dropdown_text.vue +0 -17
- package/src/components/base/filtered_search/common_story_options.js +0 -12
- package/src/components/base/filtered_search/filtered_search.md +0 -76
- package/src/components/base/filtered_search/filtered_search.scss +0 -51
- package/src/components/base/filtered_search/filtered_search.vue +0 -475
- package/src/components/base/filtered_search/filtered_search_suggestion.md +0 -15
- package/src/components/base/filtered_search/filtered_search_suggestion.scss +0 -11
- package/src/components/base/filtered_search/filtered_search_suggestion.vue +0 -64
- package/src/components/base/filtered_search/filtered_search_suggestion_list.md +0 -13
- package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +0 -36
- package/src/components/base/filtered_search/filtered_search_suggestion_list.vue +0 -122
- package/src/components/base/filtered_search/filtered_search_term.md +0 -7
- package/src/components/base/filtered_search/filtered_search_term.scss +0 -19
- package/src/components/base/filtered_search/filtered_search_term.vue +0 -243
- package/src/components/base/filtered_search/filtered_search_token.md +0 -23
- package/src/components/base/filtered_search/filtered_search_token.scss +0 -63
- package/src/components/base/filtered_search/filtered_search_token.vue +0 -484
- package/src/components/base/filtered_search/filtered_search_token_segment.md +0 -14
- package/src/components/base/filtered_search/filtered_search_token_segment.scss +0 -25
- package/src/components/base/filtered_search/filtered_search_token_segment.vue +0 -468
- package/src/components/base/filtered_search/filtered_search_utils.js +0 -251
- package/src/components/base/form/form.md +0 -2
- package/src/components/base/form/form.vue +0 -17
- package/src/components/base/form/form_character_count/form_character_count.md +0 -53
- package/src/components/base/form/form_character_count/form_character_count.vue +0 -97
- package/src/components/base/form/form_checkbox/form_checkbox.md +0 -6
- package/src/components/base/form/form_checkbox/form_checkbox.scss +0 -221
- package/src/components/base/form/form_checkbox/form_checkbox.vue +0 -58
- package/src/components/base/form/form_checkbox/form_checkbox_group.vue +0 -44
- package/src/components/base/form/form_checkbox_tree/checkbox_tree_node.vue +0 -58
- package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.md +0 -73
- package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.vue +0 -116
- package/src/components/base/form/form_checkbox_tree/models/constants.js +0 -12
- package/src/components/base/form/form_checkbox_tree/models/node.js +0 -48
- package/src/components/base/form/form_checkbox_tree/models/tree.js +0 -186
- package/src/components/base/form/form_combobox/constants.js +0 -50
- package/src/components/base/form/form_combobox/form_combobox.md +0 -52
- package/src/components/base/form/form_combobox/form_combobox.scss +0 -5
- package/src/components/base/form/form_combobox/form_combobox.vue +0 -280
- package/src/components/base/form/form_date/form_date.md +0 -26
- package/src/components/base/form/form_date/form_date.scss +0 -7
- package/src/components/base/form/form_date/form_date.vue +0 -135
- package/src/components/base/form/form_fields/form_field_validator.vue +0 -59
- package/src/components/base/form/form_fields/form_fields.md +0 -41
- package/src/components/base/form/form_fields/form_fields.vue +0 -258
- package/src/components/base/form/form_fields/mappers.js +0 -11
- package/src/components/base/form/form_fields/validators.js +0 -49
- package/src/components/base/form/form_group/form_group.md +0 -1
- package/src/components/base/form/form_group/form_group.scss +0 -59
- package/src/components/base/form/form_group/form_group.vue +0 -76
- package/src/components/base/form/form_input/form_input.md +0 -1
- package/src/components/base/form/form_input/form_input.scss +0 -74
- package/src/components/base/form/form_input/form_input.vue +0 -98
- package/src/components/base/form/form_input_group/form_input_group.md +0 -67
- package/src/components/base/form/form_input_group/form_input_group.vue +0 -103
- package/src/components/base/form/form_input_group/form_input_group_mixin.js +0 -39
- package/src/components/base/form/form_radio/form_radio.md +0 -23
- package/src/components/base/form/form_radio/form_radio.scss +0 -1
- package/src/components/base/form/form_radio/form_radio.vue +0 -51
- package/src/components/base/form/form_radio_group/form_radio_group.md +0 -63
- package/src/components/base/form/form_radio_group/form_radio_group.scss +0 -4
- package/src/components/base/form/form_radio_group/form_radio_group.vue +0 -64
- package/src/components/base/form/form_select/constants.js +0 -5
- package/src/components/base/form/form_select/form_select.md +0 -1
- package/src/components/base/form/form_select/form_select.scss +0 -117
- package/src/components/base/form/form_select/form_select.vue +0 -61
- package/src/components/base/form/form_textarea/form_textarea.md +0 -3
- package/src/components/base/form/form_textarea/form_textarea.vue +0 -141
- package/src/components/base/form/input_group_text/input_group_text.md +0 -4
- package/src/components/base/form/input_group_text/input_group_text.vue +0 -17
- package/src/components/base/icon/icon.md +0 -27
- package/src/components/base/icon/icon.scss +0 -8
- package/src/components/base/icon/icon.vue +0 -98
- package/src/components/base/infinite_scroll/infinite_scroll.md +0 -104
- package/src/components/base/infinite_scroll/infinite_scroll.scss +0 -11
- package/src/components/base/infinite_scroll/infinite_scroll.vue +0 -169
- package/src/components/base/keyset_pagination/keyset_pagination.md +0 -49
- package/src/components/base/keyset_pagination/keyset_pagination.scss +0 -9
- package/src/components/base/keyset_pagination/keyset_pagination.vue +0 -152
- package/src/components/base/label/label.md +0 -15
- package/src/components/base/label/label.scss +0 -156
- package/src/components/base/label/label.vue +0 -160
- package/src/components/base/link/link.md +0 -22
- package/src/components/base/link/link.scss +0 -13
- package/src/components/base/link/link.vue +0 -25
- package/src/components/base/loading_icon/loading_icon.md +0 -3
- package/src/components/base/loading_icon/loading_icon.scss +0 -139
- package/src/components/base/loading_icon/loading_icon.vue +0 -96
- package/src/components/base/markdown/markdown.md +0 -73
- package/src/components/base/markdown/markdown.scss +0 -223
- package/src/components/base/markdown/markdown.vue +0 -18
- package/src/components/base/markdown/markdown_typescale_demo.html +0 -155
- package/src/components/base/modal/modal.md +0 -30
- package/src/components/base/modal/modal.scss +0 -130
- package/src/components/base/modal/modal.vue +0 -269
- package/src/components/base/nav/nav.md +0 -11
- package/src/components/base/nav/nav.scss +0 -7
- package/src/components/base/nav/nav.vue +0 -17
- package/src/components/base/nav/nav_item.vue +0 -17
- package/src/components/base/nav/nav_item_dropdown.vue +0 -40
- package/src/components/base/navbar/navbar.md +0 -4
- package/src/components/base/navbar/navbar.scss +0 -0
- package/src/components/base/navbar/navbar.vue +0 -17
- package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.vue +0 -507
- package/src/components/base/new_dropdowns/base_dropdown/constants.js +0 -2
- package/src/components/base/new_dropdowns/constants.js +0 -20
- package/src/components/base/new_dropdowns/disclosure/constants.js +0 -6
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.md +0 -168
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.scss +0 -17
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.vue +0 -458
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.vue +0 -104
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.vue +0 -131
- package/src/components/base/new_dropdowns/disclosure/mock_data.js +0 -201
- package/src/components/base/new_dropdowns/disclosure/utils.js +0 -70
- package/src/components/base/new_dropdowns/dropdown.scss +0 -243
- package/src/components/base/new_dropdowns/dropdown_item.scss +0 -134
- package/src/components/base/new_dropdowns/listbox/listbox.md +0 -159
- package/src/components/base/new_dropdowns/listbox/listbox.scss +0 -53
- package/src/components/base/new_dropdowns/listbox/listbox.vue +0 -940
- package/src/components/base/new_dropdowns/listbox/listbox_group.vue +0 -35
- package/src/components/base/new_dropdowns/listbox/listbox_item.vue +0 -77
- package/src/components/base/new_dropdowns/listbox/listbox_search_input.vue +0 -76
- package/src/components/base/new_dropdowns/listbox/mock_data.js +0 -139
- package/src/components/base/new_dropdowns/listbox/utils.js +0 -25
- package/src/components/base/paginated_list/paginated_list.md +0 -1
- package/src/components/base/paginated_list/paginated_list.vue +0 -179
- package/src/components/base/pagination/pagination.md +0 -45
- package/src/components/base/pagination/pagination.scss +0 -57
- package/src/components/base/pagination/pagination.vue +0 -498
- package/src/components/base/path/data.js +0 -43
- package/src/components/base/path/path.md +0 -41
- package/src/components/base/path/path.scss +0 -163
- package/src/components/base/path/path.vue +0 -191
- package/src/components/base/popover/popover.scss +0 -102
- package/src/components/base/popover/popover.vue +0 -111
- package/src/components/base/progress_bar/progress_bar.scss +0 -19
- package/src/components/base/progress_bar/progress_bar.vue +0 -15
- package/src/components/base/search_box_by_click/search_box_by_click.md +0 -1
- package/src/components/base/search_box_by_click/search_box_by_click.scss +0 -49
- package/src/components/base/search_box_by_click/search_box_by_click.vue +0 -296
- package/src/components/base/search_box_by_type/search_box_by_type.md +0 -1
- package/src/components/base/search_box_by_type/search_box_by_type.scss +0 -70
- package/src/components/base/search_box_by_type/search_box_by_type.vue +0 -159
- package/src/components/base/segmented_control/segmented_control.md +0 -1
- package/src/components/base/segmented_control/segmented_control.scss +0 -179
- package/src/components/base/segmented_control/segmented_control.vue +0 -77
- package/src/components/base/skeleton_loader/skeleton_loader.md +0 -46
- package/src/components/base/skeleton_loader/skeleton_loader.scss +0 -17
- package/src/components/base/skeleton_loader/skeleton_loader.vue +0 -249
- package/src/components/base/sorting/sorting.md +0 -80
- package/src/components/base/sorting/sorting.vue +0 -160
- package/src/components/base/table/constants.js +0 -48
- package/src/components/base/table/table.md +0 -72
- package/src/components/base/table/table.scss +0 -145
- package/src/components/base/table/table.vue +0 -144
- package/src/components/base/table_lite/table_lite.md +0 -68
- package/src/components/base/table_lite/table_lite.vue +0 -43
- package/src/components/base/tabs/constants.js +0 -1
- package/src/components/base/tabs/tab/tab.vue +0 -57
- package/src/components/base/tabs/tabs/scrollable_tabs.vue +0 -140
- package/src/components/base/tabs/tabs/tabs.md +0 -76
- package/src/components/base/tabs/tabs/tabs.scss +0 -164
- package/src/components/base/tabs/tabs/tabs.vue +0 -282
- package/src/components/base/toast/toast.js +0 -93
- package/src/components/base/toast/toast.md +0 -48
- package/src/components/base/toast/toast.scss +0 -62
- package/src/components/base/toggle/toggle.md +0 -4
- package/src/components/base/toggle/toggle.scss +0 -177
- package/src/components/base/toggle/toggle.vue +0 -194
- package/src/components/base/token/token.md +0 -12
- package/src/components/base/token/token.scss +0 -44
- package/src/components/base/token/token.vue +0 -67
- package/src/components/base/token_selector/helpers.js +0 -3
- package/src/components/base/token_selector/token_container.vue +0 -184
- package/src/components/base/token_selector/token_selector.md +0 -78
- package/src/components/base/token_selector/token_selector.scss +0 -19
- package/src/components/base/token_selector/token_selector.vue +0 -489
- package/src/components/base/token_selector/token_selector_dropdown.vue +0 -257
- package/src/components/base/tooltip/tooltip.md +0 -52
- package/src/components/base/tooltip/tooltip.scss +0 -52
- package/src/components/base/tooltip/tooltip.vue +0 -31
- package/src/components/charts/area/area.vue +0 -372
- package/src/components/charts/bar/bar.md +0 -3
- package/src/components/charts/bar/bar.vue +0 -237
- package/src/components/charts/chart/chart.md +0 -19
- package/src/components/charts/chart/chart.vue +0 -188
- package/src/components/charts/column/column.vue +0 -204
- package/src/components/charts/discrete_scatter/discrete_scatter.vue +0 -207
- package/src/components/charts/gauge/gauge.md +0 -8
- package/src/components/charts/gauge/gauge.scss +0 -0
- package/src/components/charts/gauge/gauge.vue +0 -178
- package/src/components/charts/heatmap/heatmap.md +0 -7
- package/src/components/charts/heatmap/heatmap.scss +0 -7
- package/src/components/charts/heatmap/heatmap.vue +0 -290
- package/src/components/charts/heatmap/index.js +0 -3
- package/src/components/charts/legend/legend.md +0 -16
- package/src/components/charts/legend/legend.scss +0 -97
- package/src/components/charts/legend/legend.vue +0 -284
- package/src/components/charts/line/line.md +0 -7
- package/src/components/charts/line/line.vue +0 -368
- package/src/components/charts/series_label/series_label.md +0 -1
- package/src/components/charts/series_label/series_label.scss +0 -23
- package/src/components/charts/series_label/series_label.vue +0 -85
- package/src/components/charts/single_stat/single_stat.md +0 -8
- package/src/components/charts/single_stat/single_stat.scss +0 -17
- package/src/components/charts/single_stat/single_stat.vue +0 -158
- package/src/components/charts/sparkline/sparkline.md +0 -8
- package/src/components/charts/sparkline/sparkline.vue +0 -308
- package/src/components/charts/stacked_column/stacked_column.md +0 -10
- package/src/components/charts/stacked_column/stacked_column.vue +0 -330
- package/src/components/charts/tooltip/tooltip.md +0 -3
- package/src/components/charts/tooltip/tooltip.scss +0 -9
- package/src/components/charts/tooltip/tooltip.vue +0 -253
- package/src/components/experimental/experiment_badge/constants.js +0 -2
- package/src/components/experimental/experiment_badge/experiment_badge.md +0 -9
- package/src/components/experimental/experiment_badge/experiment_badge.vue +0 -113
- package/src/components/mixins/button_mixin.js +0 -9
- package/src/components/mixins/safe_link_mixin.js +0 -28
- package/src/components/mixins/tooltip_mixin.js +0 -21
- package/src/components/regions/dashboard_skeleton/dashboard_skeleton.md +0 -4
- package/src/components/regions/dashboard_skeleton/dashboard_skeleton.vue +0 -40
- package/src/components/regions/empty_state/empty_state.md +0 -4
- package/src/components/regions/empty_state/empty_state.scss +0 -3
- package/src/components/regions/empty_state/empty_state.vue +0 -187
- package/src/components/shared_components/charts/tooltip_default_format.scss +0 -18
- package/src/components/shared_components/charts/tooltip_default_format.vue +0 -32
- package/src/components/shared_components/clear_icon_button/clear_icon_button.scss +0 -10
- package/src/components/shared_components/clear_icon_button/clear_icon_button.vue +0 -43
- package/src/components/shared_components/close_button/close_button.vue +0 -29
- package/src/components/utilities/animated_number/animated_number.md +0 -6
- package/src/components/utilities/animated_number/animated_number.vue +0 -99
- package/src/components/utilities/friendly_wrap/friendly_wrap.md +0 -66
- package/src/components/utilities/friendly_wrap/friendly_wrap.vue +0 -33
- package/src/components/utilities/intersection_observer/intersection_observer.md +0 -16
- package/src/components/utilities/intersection_observer/intersection_observer.vue +0 -67
- package/src/components/utilities/intersperse/intersperse.md +0 -90
- package/src/components/utilities/intersperse/intersperse.vue +0 -60
- package/src/components/utilities/sprintf/sprintf.md +0 -243
- package/src/components/utilities/sprintf/sprintf.vue +0 -142
- package/src/components/utilities/truncate/constants.js +0 -5
- package/src/components/utilities/truncate/truncate.md +0 -14
- package/src/components/utilities/truncate/truncate.scss +0 -21
- package/src/components/utilities/truncate/truncate.vue +0 -109
- package/src/components/utilities/truncate_text/constants.js +0 -5
- package/src/components/utilities/truncate_text/truncate_text.md +0 -26
- package/src/components/utilities/truncate_text/truncate_text.scss +0 -14
- package/src/components/utilities/truncate_text/truncate_text.vue +0 -124
- package/src/directives/collapse_toggle.js +0 -1
- package/src/directives/hover_load/hover_load.js +0 -46
- package/src/directives/hover_load/hover_load.md +0 -22
- package/src/directives/modal.js +0 -1
- package/src/directives/outside/outside.js +0 -151
- package/src/directives/outside/outside.md +0 -140
- package/src/directives/resize_observer/resize_observer.js +0 -45
- package/src/directives/resize_observer/resize_observer.md +0 -54
- package/src/directives/safe_html/constants.js +0 -14
- package/src/directives/safe_html/safe_html.js +0 -35
- package/src/directives/safe_html/safe_html.md +0 -58
- package/src/directives/safe_link/mock_data.js +0 -33
- package/src/directives/safe_link/safe_link.js +0 -56
- package/src/directives/safe_link/safe_link.md +0 -37
- package/src/directives/tooltip.js +0 -1
- package/src/internal/color_contrast/color_contrast.md +0 -8
- package/src/internal/color_contrast/color_contrast.vue +0 -52
- package/src/scss/README.md +0 -1
- package/src/scss/body.scss +0 -4
- package/src/scss/bootstrap.scss +0 -34
- package/src/scss/bootstrap_vue.scss +0 -25
- package/src/scss/components.scss +0 -83
- package/src/scss/fonts.scss +0 -67
- package/src/scss/functions.scss +0 -63
- package/src/scss/gitlab_ui.scss +0 -19
- package/src/scss/mixins.scss +0 -262
- package/src/scss/storybook.scss +0 -43
- package/src/scss/storybook_dark_mode.scss +0 -21
- package/src/scss/tokens.scss +0 -2
- package/src/scss/typescale/_index.scss +0 -103
- package/src/scss/typescale/typeface_demo.html +0 -70
- package/src/scss/typescale/typescale.md +0 -82
- package/src/scss/typescale/typescale_demo.html +0 -78
- package/src/scss/typescale/typescale_demo.scss +0 -8
- package/src/scss/utilities.scss +0 -9196
- package/src/scss/utility-mixins/accessibility.scss +0 -19
- package/src/scss/utility-mixins/animation.scss +0 -90
- package/src/scss/utility-mixins/background.scss +0 -421
- package/src/scss/utility-mixins/border.scss +0 -498
- package/src/scss/utility-mixins/box-shadow.scss +0 -220
- package/src/scss/utility-mixins/clearfix.scss +0 -9
- package/src/scss/utility-mixins/color.scss +0 -228
- package/src/scss/utility-mixins/composite.scss +0 -24
- package/src/scss/utility-mixins/cursor.scss +0 -36
- package/src/scss/utility-mixins/deprecated.scss +0 -20
- package/src/scss/utility-mixins/display.scss +0 -192
- package/src/scss/utility-mixins/flex.scss +0 -360
- package/src/scss/utility-mixins/grid.scss +0 -50
- package/src/scss/utility-mixins/image.scss +0 -8
- package/src/scss/utility-mixins/index.scss +0 -47
- package/src/scss/utility-mixins/list-style.scss +0 -12
- package/src/scss/utility-mixins/opacity.scss +0 -32
- package/src/scss/utility-mixins/outline.scss +0 -12
- package/src/scss/utility-mixins/overflow.scss +0 -45
- package/src/scss/utility-mixins/pointer-events.scss +0 -12
- package/src/scss/utility-mixins/sizing.scss +0 -582
- package/src/scss/utility-mixins/spacing.scss +0 -1564
- package/src/scss/utility-mixins/svg.scss +0 -79
- package/src/scss/utility-mixins/text.scss +0 -183
- package/src/scss/utility-mixins/transform.scss +0 -58
- package/src/scss/utility-mixins/transition.scss +0 -44
- package/src/scss/utility-mixins/typography.scss +0 -381
- package/src/scss/utility-mixins/vertical-align.scss +0 -22
- package/src/scss/utility-mixins/visibility.scss +0 -12
- package/src/scss/utility-mixins/z-index.scss +0 -37
- package/src/scss/variables.scss +0 -337
- package/src/tokens/action.tokens.json +0 -566
- package/src/tokens/background.tokens.json +0 -62
- package/src/tokens/border.tokens.json +0 -43
- package/src/tokens/build/css/tokens.css +0 -953
- package/src/tokens/build/css/tokens.dark.css +0 -953
- package/src/tokens/build/js/tokens.dark.js +0 -951
- package/src/tokens/build/js/tokens.js +0 -951
- package/src/tokens/build/json/tokens.dark.json +0 -21803
- package/src/tokens/build/scss/_tokens.dark.scss +0 -950
- package/src/tokens/build/scss/_tokens.scss +0 -950
- package/src/tokens/build/scss/_tokens_custom_properties.scss +0 -951
- package/src/tokens/build/tailwind/tokens.cjs +0 -336
- package/src/tokens/color.alpha.tokens.json +0 -70
- package/src/tokens/color.constant.tokens.json +0 -660
- package/src/tokens/color.data_viz.tokens.json +0 -509
- package/src/tokens/common_story_options.js +0 -25
- package/src/tokens/contextual/alert.tokens.json +0 -209
- package/src/tokens/contextual/avatar.tokens.json +0 -112
- package/src/tokens/contextual/badge.tokens.json +0 -879
- package/src/tokens/contextual/banner.tokens.json +0 -38
- package/src/tokens/contextual/breadcrumb.tokens.json +0 -11
- package/src/tokens/contextual/broadcast.tokens.json +0 -222
- package/src/tokens/contextual/button.tokens.json +0 -874
- package/src/tokens/contextual/datepicker.tokens.json +0 -25
- package/src/tokens/contextual/dropdown.tokens.json +0 -148
- package/src/tokens/contextual/filtered-search.tokens.json +0 -72
- package/src/tokens/contextual/label.tokens.json +0 -118
- package/src/tokens/contextual/link.tokens.json +0 -46
- package/src/tokens/contextual/progress-bar.tokens.json +0 -38
- package/src/tokens/contextual/skeleton-loader.tokens.json +0 -24
- package/src/tokens/contextual/spinner.tokens.json +0 -38
- package/src/tokens/contextual/table.tokens.json +0 -24
- package/src/tokens/contextual/tabs.tokens.json +0 -18
- package/src/tokens/contextual/toggle.tokens.json +0 -59
- package/src/tokens/contextual/token.tokens.json +0 -21
- package/src/tokens/control.tokens.json +0 -177
- package/src/tokens/deprecated.color.theme.tokens.json +0 -736
- package/src/tokens/deprecated.color.tokens.json +0 -800
- package/src/tokens/deprecated.color.transparency.tokens.json +0 -110
- package/src/tokens/feedback.tokens.json +0 -200
- package/src/tokens/focus-ring.tokens.json +0 -21
- package/src/tokens/icon.tokens.json +0 -78
- package/src/tokens/line_height.tokens.json +0 -74
- package/src/tokens/shadow.tokens.json +0 -14
- package/src/tokens/status.tokens.json +0 -196
- package/src/tokens/text.tokens.json +0 -105
- package/src/tokens/tokens_story.vue +0 -84
- package/src/tokens/tokens_table.vue +0 -248
- package/src/utils/breakpoints.js +0 -21
- package/src/utils/charts/config.js +0 -514
- package/src/utils/charts/constants.js +0 -61
- package/src/utils/charts/mock_data.js +0 -259
- package/src/utils/charts/story_config.js +0 -21
- package/src/utils/charts/theme.js +0 -344
- package/src/utils/charts/utils.js +0 -49
- package/src/utils/constants.js +0 -347
- package/src/utils/data_utils.js +0 -28
- package/src/utils/datetime_utility.js +0 -63
- package/src/utils/i18n.js +0 -62
- package/src/utils/is_slot_empty.js +0 -40
- package/src/utils/number_utils.js +0 -120
- package/src/utils/play_utils.js +0 -9
- package/src/utils/set_utils.js +0 -24
- package/src/utils/stories_constants.js +0 -30
- package/src/utils/stories_utils.js +0 -5
- package/src/utils/story_decorators/container.js +0 -14
- package/src/utils/string_utils.js +0 -79
- package/src/utils/svgs/svg_paths.js +0 -10
- package/src/utils/use_fake_date.js +0 -27
- package/src/utils/use_mock_intersection_observer.js +0 -96
- package/src/utils/utils.js +0 -206
- package/src/utils.js +0 -4
- package/tailwind.defaults.js +0 -543
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
The friendly-wrap component lets you wrap text in a predictable way by appending [`<wbr>`] elements
|
|
2
|
-
to specific break-symbols.
|
|
3
|
-
|
|
4
|
-
[`<wbr>`]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/wbr
|
|
5
|
-
|
|
6
|
-
## Internet Explorer 11
|
|
7
|
-
|
|
8
|
-
IE11 doesn't support the `<wbr>` element: <https://caniuse.com/#search=wbr>
|
|
9
|
-
To use this component on IE11, you'll need some CSS to preserve its behaviour:
|
|
10
|
-
|
|
11
|
-
```css
|
|
12
|
-
wbr {
|
|
13
|
-
display: inline-block;
|
|
14
|
-
}
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Usage
|
|
18
|
-
|
|
19
|
-
### Default
|
|
20
|
-
|
|
21
|
-
By default, `GlFriendlyWrap` wraps text with slashes (`/`) as the break-symbol, which is especially
|
|
22
|
-
useful when displaying paths or URLs:
|
|
23
|
-
|
|
24
|
-
```html
|
|
25
|
-
<gl-friendly-wrap text="/some/file/path" />
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
The code above renders to the following HTML:
|
|
29
|
-
|
|
30
|
-
```html
|
|
31
|
-
<span class="text-break">/<wbr>some/<wbr>file/<wbr>path</span>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Custom symbols
|
|
35
|
-
|
|
36
|
-
Multiple custom break-symbols can be defined via the `GlFriendlyWrap` prop:
|
|
37
|
-
|
|
38
|
-
```html
|
|
39
|
-
<gl-friendly-wrap
|
|
40
|
-
:symbols="[';', '-', '.']"
|
|
41
|
-
text="some;text-that.needs;to-be.wrapped"
|
|
42
|
-
/>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Which renders to:
|
|
46
|
-
|
|
47
|
-
```html
|
|
48
|
-
<span class="text-break">some;<wbr>text-<wbr>that.<wbr>needs;<wbr>to-<wbr>be.<wbr>wrapped</span>
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Break words
|
|
52
|
-
|
|
53
|
-
Symbols can be words too:
|
|
54
|
-
|
|
55
|
-
```html
|
|
56
|
-
<gl-friendly-wrap
|
|
57
|
-
:symbols="['and']"
|
|
58
|
-
text="it goes on and on and on and on"
|
|
59
|
-
/>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Which renders to:
|
|
63
|
-
|
|
64
|
-
```html
|
|
65
|
-
<span class="text-break">it goes on and<wbr> on and<wbr> on and<wbr> on</span>
|
|
66
|
-
```
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { intersperse } from '../../../utils/data_utils';
|
|
3
|
-
import { splitAfterSymbols } from '../../../utils/string_utils';
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
name: 'GlFriendlyWrap',
|
|
7
|
-
functional: true,
|
|
8
|
-
props: {
|
|
9
|
-
/**
|
|
10
|
-
* Text to be wrapped.
|
|
11
|
-
*/
|
|
12
|
-
text: {
|
|
13
|
-
type: String,
|
|
14
|
-
required: true,
|
|
15
|
-
},
|
|
16
|
-
/**
|
|
17
|
-
* A list of strings representing the break-words.
|
|
18
|
-
*/
|
|
19
|
-
symbols: {
|
|
20
|
-
type: Array,
|
|
21
|
-
required: false,
|
|
22
|
-
default: () => ['/'],
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
render(createElement, { props }) {
|
|
26
|
-
const { symbols, text } = props;
|
|
27
|
-
const textParts = splitAfterSymbols(symbols, text ?? '');
|
|
28
|
-
const content = intersperse(() => createElement('wbr'), textParts);
|
|
29
|
-
|
|
30
|
-
return createElement('span', { class: 'text-break' }, content);
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
</script>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
This intersection observer component is an invisible watcher that emits events when it appears and
|
|
2
|
-
dissapears from view.
|
|
3
|
-
|
|
4
|
-
It acts a a vue-friendly wrapper around the [intersection observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API).
|
|
5
|
-
|
|
6
|
-
Because of it's simplicity you can use it for a lot of different things.
|
|
7
|
-
It's especially helpful for the lazy loading of images, and infinite scrolling of lists.
|
|
8
|
-
|
|
9
|
-
Anything slotted inside this component will become the element that is being observed.
|
|
10
|
-
|
|
11
|
-
This slot can also be used as a fallback for the browsers that don't support the intersection
|
|
12
|
-
observer, or in the case that the observer fails to work.
|
|
13
|
-
For example, adding a "Fetch more posts" button inside an observer that should fetch more posts
|
|
14
|
-
automatically when visible. If the observer fails to work for any reason, the button will still be
|
|
15
|
-
clickable, and the experience preserved. Please use a fallback wherever possible as
|
|
16
|
-
**the intersection observer API is not supported in IE11**.
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import memoize from 'lodash/memoize';
|
|
3
|
-
|
|
4
|
-
const getObserver = memoize(
|
|
5
|
-
(options) =>
|
|
6
|
-
new IntersectionObserver((entries) => {
|
|
7
|
-
entries.forEach((entry) => {
|
|
8
|
-
entry.target.$_gl_intersectionHandler(entry);
|
|
9
|
-
});
|
|
10
|
-
}, options || {})
|
|
11
|
-
);
|
|
12
|
-
|
|
13
|
-
export default {
|
|
14
|
-
name: 'GlIntersectionObserver',
|
|
15
|
-
props: {
|
|
16
|
-
/**
|
|
17
|
-
* Extra options to pass directly to the intersection observer API.
|
|
18
|
-
*/
|
|
19
|
-
options: {
|
|
20
|
-
type: Object,
|
|
21
|
-
required: false,
|
|
22
|
-
default: null,
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
mounted() {
|
|
26
|
-
const observer = getObserver(this.options);
|
|
27
|
-
|
|
28
|
-
this.$el.$_gl_intersectionHandler = (entry) => {
|
|
29
|
-
/**
|
|
30
|
-
* Emitted when the element's visibility changes
|
|
31
|
-
*/
|
|
32
|
-
this.$emit('update', entry);
|
|
33
|
-
|
|
34
|
-
if (entry.isIntersecting) {
|
|
35
|
-
/**
|
|
36
|
-
* Emitted when the element appears on the page
|
|
37
|
-
*/
|
|
38
|
-
this.$emit('appear');
|
|
39
|
-
} else {
|
|
40
|
-
/**
|
|
41
|
-
* Emitted when the element disappears from the page
|
|
42
|
-
*/
|
|
43
|
-
this.$emit('disappear');
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
this.$el.$_gl_intersectionObserver = observer;
|
|
47
|
-
|
|
48
|
-
observer.observe(this.$el);
|
|
49
|
-
},
|
|
50
|
-
destroyed() {
|
|
51
|
-
this.$el.$_gl_intersectionObserver.unobserve(this.$el);
|
|
52
|
-
delete this.$el.$_gl_intersectionHandler;
|
|
53
|
-
delete this.$el.$_gl_intersectionObserver;
|
|
54
|
-
},
|
|
55
|
-
// Expose getObserver method for tests
|
|
56
|
-
getObserver,
|
|
57
|
-
};
|
|
58
|
-
</script>
|
|
59
|
-
|
|
60
|
-
<template>
|
|
61
|
-
<div>
|
|
62
|
-
<!--
|
|
63
|
-
@slot The element you wish to observe, or a fallback if the observer doesn't work.
|
|
64
|
-
-->
|
|
65
|
-
<slot></slot>
|
|
66
|
-
</div>
|
|
67
|
-
</template>
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
The intersperse component separates a list of elements
|
|
2
|
-
by a given character (the default is `, `).
|
|
3
|
-
|
|
4
|
-
It takes all direct descendants of its default slot and inserts
|
|
5
|
-
the given separator between each item:
|
|
6
|
-
|
|
7
|
-
`item 1, item 2, item 3`
|
|
8
|
-
|
|
9
|
-
Optionally the character used for separating each item and the last separator can be set
|
|
10
|
-
independently:
|
|
11
|
-
|
|
12
|
-
* `separator="/"` renders `item 1/item 2/item 3`
|
|
13
|
-
* `lastSeparator=" and "` will render `item 1, item 2, and item 3`
|
|
14
|
-
* `lastSeparator=" and "` and given two items will render `item 1 and item 2`
|
|
15
|
-
|
|
16
|
-
**Note**:
|
|
17
|
-
|
|
18
|
-
The component provides an inline context since the result is wrapped in a `span`.
|
|
19
|
-
|
|
20
|
-
Also, whitespace elements that are direct children of the default-slot get removed to ensure
|
|
21
|
-
consistent formatting.
|
|
22
|
-
|
|
23
|
-
## Usage
|
|
24
|
-
|
|
25
|
-
### Default
|
|
26
|
-
|
|
27
|
-
```html
|
|
28
|
-
<gl-intersperse>
|
|
29
|
-
<span>Item 1</span>
|
|
30
|
-
<span>Item 2</span>
|
|
31
|
-
<span>Item 3</span>
|
|
32
|
-
</gl-intersperse>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
This renders to the following HTML:
|
|
36
|
-
|
|
37
|
-
```html
|
|
38
|
-
<span><span>Item 1</span>, <span>Item 2</span>, <span>Item 3</span></span>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### Custom Separator
|
|
42
|
-
|
|
43
|
-
A custom separator can be defined via the `separator` prop:
|
|
44
|
-
|
|
45
|
-
```html
|
|
46
|
-
<gl-intersperse separator="/">
|
|
47
|
-
<span>Item 1</span>
|
|
48
|
-
<span>Item 2</span>
|
|
49
|
-
<span>Item 3</span>
|
|
50
|
-
</gl-intersperse>
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
This renders to the following HTML:
|
|
54
|
-
|
|
55
|
-
```html
|
|
56
|
-
<span><span>Item 1</span>/<span>Item 2</span>/<span>Item 3</span></span>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Custom Last Separator
|
|
60
|
-
|
|
61
|
-
A custom last separator can be defined via the `lastSeparator` prop:
|
|
62
|
-
|
|
63
|
-
```html
|
|
64
|
-
<gl-intersperse last-separator=" and ">
|
|
65
|
-
<span>Item 1</span>
|
|
66
|
-
<span>Item 2</span>
|
|
67
|
-
<span>Item 3</span>
|
|
68
|
-
</gl-intersperse>
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
This renders to the following HTML:
|
|
72
|
-
|
|
73
|
-
```html
|
|
74
|
-
<span><span>Item 1</span>, <span>Item 2</span>, and <span>Item 3</span></span>
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
A custom last separator used on two items will only place `lastSeparator` between them:
|
|
78
|
-
|
|
79
|
-
```html
|
|
80
|
-
<gl-intersperse last-separator=" and ">
|
|
81
|
-
<span>Item 1</span>
|
|
82
|
-
<span>Item 2</span>
|
|
83
|
-
</gl-intersperse>
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
This renders to the following HTML:
|
|
87
|
-
|
|
88
|
-
```html
|
|
89
|
-
<span><span>Item 1</span> and <span>Item 2</span></span>
|
|
90
|
-
```
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
<!-- eslint-disable vue/multi-word-component-names -->
|
|
2
|
-
<script>
|
|
3
|
-
import compose from 'lodash/fp/compose';
|
|
4
|
-
import fill from 'lodash/fp/fill';
|
|
5
|
-
import filter from 'lodash/fp/filter';
|
|
6
|
-
|
|
7
|
-
import { intersperse, insert } from '../../../utils/data_utils';
|
|
8
|
-
|
|
9
|
-
const containsWhitespaceOnly = (vNode) => vNode.text.trim() === '';
|
|
10
|
-
const isTag = (vNode) => typeof vNode.tag === 'string';
|
|
11
|
-
const filterWhitespaceNodes = filter((vNode) => isTag(vNode) || !containsWhitespaceOnly(vNode));
|
|
12
|
-
|
|
13
|
-
const insertAfterSecondLastItem = insert(-1);
|
|
14
|
-
const replaceSecondLastItem = fill(-2, -1);
|
|
15
|
-
|
|
16
|
-
// handles the addition of the lastSeparator in these two cases:
|
|
17
|
-
// item1, item2, item3 => item1, item2, and item3
|
|
18
|
-
// item1, item2 => item1 and item2
|
|
19
|
-
const addLastSeparator = (lastSeparator) => (items) => {
|
|
20
|
-
if (!lastSeparator) {
|
|
21
|
-
return items;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return items.length > 3
|
|
25
|
-
? insertAfterSecondLastItem(lastSeparator, items)
|
|
26
|
-
: replaceSecondLastItem(lastSeparator, items);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export default {
|
|
30
|
-
name: 'GlIntersperse',
|
|
31
|
-
functional: true,
|
|
32
|
-
props: {
|
|
33
|
-
separator: {
|
|
34
|
-
type: String,
|
|
35
|
-
default: ', ',
|
|
36
|
-
required: false,
|
|
37
|
-
},
|
|
38
|
-
lastSeparator: {
|
|
39
|
-
type: String,
|
|
40
|
-
default: '',
|
|
41
|
-
required: false,
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
render(createElement, context) {
|
|
45
|
-
const {
|
|
46
|
-
props: { separator, lastSeparator },
|
|
47
|
-
slots,
|
|
48
|
-
data,
|
|
49
|
-
} = context;
|
|
50
|
-
|
|
51
|
-
const filterAndSeparate = compose(
|
|
52
|
-
addLastSeparator(lastSeparator),
|
|
53
|
-
intersperse(separator),
|
|
54
|
-
filterWhitespaceNodes
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
return createElement('span', data, filterAndSeparate(slots().default));
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
</script>
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
## Overview
|
|
2
|
-
|
|
3
|
-
The `GlSprintf` component lets you do `sprintf`-style string interpolation with
|
|
4
|
-
child components. Each placeholder in the translated string, provided via the
|
|
5
|
-
`message` prop, becomes a slot that you can use to insert any components or
|
|
6
|
-
markup in the rendered output.
|
|
7
|
-
|
|
8
|
-
> NOTE: `gl-sprintf` does not translate the message for you; you must provide
|
|
9
|
-
> it already translated. In the following examples, it is assumed that
|
|
10
|
-
> a `gettext`-style `__` translation function is available in your Vue
|
|
11
|
-
> templates.
|
|
12
|
-
|
|
13
|
-
## Displaying messages with text between placeholders (e.g., links, buttons)
|
|
14
|
-
|
|
15
|
-
Sentences should not be split up into different messages, otherwise they may
|
|
16
|
-
not be translatable into certain languages. To help with this, `GlSprintf`
|
|
17
|
-
interprets placeholders suffixed with `Start` and `End` to indicate the
|
|
18
|
-
boundaries of a component to display within the message. Any text between
|
|
19
|
-
them is passed, via the `content` scoped slot property, to the slot name common
|
|
20
|
-
to the placeholders.
|
|
21
|
-
|
|
22
|
-
For example, using `linkStart` and `linkEnd` placeholders in a message defines
|
|
23
|
-
a `link` scoped slot:
|
|
24
|
-
|
|
25
|
-
```html
|
|
26
|
-
<div>
|
|
27
|
-
<gl-sprintf :message="__('Learn more about %{linkStart}zones%{linkEnd}')">
|
|
28
|
-
<template #link="{ content }">
|
|
29
|
-
<gl-link
|
|
30
|
-
href="https://cloud.google.com/compute/docs/regions-zones/regions-zones"
|
|
31
|
-
target="_blank"
|
|
32
|
-
>{{ content }}</gl-link>
|
|
33
|
-
</template>
|
|
34
|
-
</gl-sprintf>
|
|
35
|
-
</div>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
will render as:
|
|
39
|
-
|
|
40
|
-
```html
|
|
41
|
-
<div>
|
|
42
|
-
Learn more about
|
|
43
|
-
<a
|
|
44
|
-
href="https://cloud.google.com/compute/docs/regions-zones/regions-zones"
|
|
45
|
-
target="_blank"
|
|
46
|
-
rel="noopener noreferrer"
|
|
47
|
-
>zones</a>
|
|
48
|
-
</div>
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Note that _any_ arbitrary HTML tags or Vue component(s) can be used within
|
|
52
|
-
a scoped slot, and that the content passed to it can be used in any way at all;
|
|
53
|
-
for instance, as regular text, or in component attributes or slots.
|
|
54
|
-
|
|
55
|
-
Here's a more complex example, which `<gl-sprintf>` lets you do in a breeze:
|
|
56
|
-
|
|
57
|
-
```html
|
|
58
|
-
<div>
|
|
59
|
-
<gl-sprintf :message="__('Written by %{authorStart}someone%{authorEnd}')">
|
|
60
|
-
<template #author="{ content }">
|
|
61
|
-
<my-vue-component v-gl-tooltip="content" @event="handleEvent(content)">
|
|
62
|
-
{{ content }}
|
|
63
|
-
</my-vue-component>
|
|
64
|
-
<p>
|
|
65
|
-
{{ content }}
|
|
66
|
-
<div>{{ content }}</div>
|
|
67
|
-
</p>
|
|
68
|
-
</template>
|
|
69
|
-
</gl-sprintf>
|
|
70
|
-
</div>
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
This is not feasible in a JS-only solution, since arbitrary Vue components
|
|
74
|
-
cannot easily be used. In addition, a JS-only solution is more likely to be
|
|
75
|
-
prone to XSS attacks, as the Vue compiler isn't available to help protect
|
|
76
|
-
against them.
|
|
77
|
-
|
|
78
|
-
### Customizing start/end placeholders
|
|
79
|
-
|
|
80
|
-
You can customize the start and end placeholders that `GlSprintf` looks for
|
|
81
|
-
using the `placeholders` prop. For instance:
|
|
82
|
-
|
|
83
|
-
```html
|
|
84
|
-
<div>
|
|
85
|
-
<gl-sprintf
|
|
86
|
-
:message="__('Learn more about %{my_custom_start}zones%{my_custom_end}')"
|
|
87
|
-
:placeholders="{ link: ['my_custom_start', 'my_custom_end'] }"
|
|
88
|
-
>
|
|
89
|
-
<template #link="{ content }">
|
|
90
|
-
<gl-link
|
|
91
|
-
href="https://cloud.google.com/compute/docs/regions-zones/regions-zones"
|
|
92
|
-
target="_blank"
|
|
93
|
-
>{{ content }}</gl-link>
|
|
94
|
-
</template>
|
|
95
|
-
</gl-sprintf>
|
|
96
|
-
</div>
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
This can be useful if you are migrating an existing string to `GlSprintf` that
|
|
100
|
-
uses different placeholder naming conventions, and don't want invalidate
|
|
101
|
-
existing translations.
|
|
102
|
-
|
|
103
|
-
## Displaying components within a message
|
|
104
|
-
|
|
105
|
-
Use slots to replace placeholders in the message with the slots' contents.
|
|
106
|
-
There is a slot for every placeholder in the message. For example, the `author`
|
|
107
|
-
slot name can be used when there is an `%{author}` placeholder in the message:
|
|
108
|
-
|
|
109
|
-
```html
|
|
110
|
-
<script>
|
|
111
|
-
export default {
|
|
112
|
-
data() {
|
|
113
|
-
return {
|
|
114
|
-
authorName: 'Some author',
|
|
115
|
-
};
|
|
116
|
-
},
|
|
117
|
-
};
|
|
118
|
-
</script>
|
|
119
|
-
|
|
120
|
-
<template>
|
|
121
|
-
<div>
|
|
122
|
-
<gl-sprintf :message="__('Written by %{author}')">
|
|
123
|
-
<template #author>
|
|
124
|
-
<span>{{ authorName }}</span>
|
|
125
|
-
</template>
|
|
126
|
-
</gl-sprintf>
|
|
127
|
-
</div>
|
|
128
|
-
</template>
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
The example above renders to this HTML:
|
|
132
|
-
|
|
133
|
-
```html
|
|
134
|
-
<div>Written by <span>Some author</span></div>
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Usage caveats
|
|
138
|
-
|
|
139
|
-
### White space
|
|
140
|
-
|
|
141
|
-
`GlSprintf` does not handle white space in scoped slots specially; it is passed
|
|
142
|
-
through and rendered just like regular text. This means that white space in the
|
|
143
|
-
scoped slot templates *themselves*, including newlines and indentation, are
|
|
144
|
-
passed through untouched (assuming the template compiler you're using doesn't
|
|
145
|
-
trim text nodes at compile time; `vue-template-compiler` preserves white space
|
|
146
|
-
by default, for instance).
|
|
147
|
-
|
|
148
|
-
Most of the time you don't need to worry about this, since
|
|
149
|
-
[browsers normalize white space][1] automatically, but here's an example, using
|
|
150
|
-
punctuation, where you might want to be conscious of the white space in the
|
|
151
|
-
template:
|
|
152
|
-
|
|
153
|
-
```html
|
|
154
|
-
<div>
|
|
155
|
-
<gl-sprintf :message="__('Foo %{boldStart}bar%{boldEnd}!')">
|
|
156
|
-
<template #bold="{ content }">
|
|
157
|
-
<b>
|
|
158
|
-
{{ content }}
|
|
159
|
-
</b>
|
|
160
|
-
</template>
|
|
161
|
-
</gl-sprintf>
|
|
162
|
-
</div>
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
As written, the literal markup rendered would be:
|
|
166
|
-
|
|
167
|
-
```html
|
|
168
|
-
<div> Foo <b>
|
|
169
|
-
bar
|
|
170
|
-
</b>!
|
|
171
|
-
</div>
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
where the white space (including newlines) before and after `bar` is exactly
|
|
175
|
-
the newlines and indentation in the source template. The browser will render
|
|
176
|
-
this as:
|
|
177
|
-
|
|
178
|
-
<div> Foo <b>
|
|
179
|
-
bar
|
|
180
|
-
</b>!
|
|
181
|
-
</div>
|
|
182
|
-
|
|
183
|
-
Note the single space between `bar` and `!`. To avoid that, remove the
|
|
184
|
-
white space in the template, or use `v-text`:
|
|
185
|
-
|
|
186
|
-
```html
|
|
187
|
-
<div>
|
|
188
|
-
<gl-sprintf :message="__('Foo %{boldStart}bar%{boldEnd}!')">
|
|
189
|
-
<template #bold="{ content }">
|
|
190
|
-
<b>{{ content }}</b>
|
|
191
|
-
<!-- OR -->
|
|
192
|
-
<b v-text="content" />
|
|
193
|
-
</template>
|
|
194
|
-
</gl-sprintf>
|
|
195
|
-
</div>
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
### Miscellaneous
|
|
199
|
-
|
|
200
|
-
While there are a lot of caveats here, you don't need to worry about reading
|
|
201
|
-
them _unless_ you find `GlSprintf` isn't rendering what you'd expect.
|
|
202
|
-
|
|
203
|
-
- Since `GlSprintf` typically renders multiple elements, it can't be used as
|
|
204
|
-
a component's root, it must be wrapped with at least one other root element,
|
|
205
|
-
otherwise Vue will throw a `Multiple root nodes returned from render
|
|
206
|
-
function` error.
|
|
207
|
-
- If a slot for a given placeholder _isn't_ provided, the placeholder
|
|
208
|
-
will be rendered as-is, e.g., literally `Written by %{author}` if the
|
|
209
|
-
`author` slot _isn't_ provided, or literally `%{linkStart}foo%{linkEnd}` if
|
|
210
|
-
the `link` slot isn't provided.
|
|
211
|
-
- Content between `Start` and `End` placeholders is effectively thrown away if
|
|
212
|
-
the scoped slot of the correct name doesn't consume the `content` property in
|
|
213
|
-
some way, though the slot's components should still be rendered.
|
|
214
|
-
- If there's no placeholder in the message for a provided named slot, the
|
|
215
|
-
content of that slot is silently thrown away.
|
|
216
|
-
- If only one of the `Start` or `End` placeholders is in the message, or they
|
|
217
|
-
are in the wrong order, they are treated as plain slots, i.e., it is assumed
|
|
218
|
-
there is no text to extract and pass to the scoped slot. This allows you to
|
|
219
|
-
use plain slots whose names end in `Start` or `End`, e.g., `backEnd`, or
|
|
220
|
-
`fromStart` in isolation, without their `Start`/`End` counterparts.
|
|
221
|
-
- Text extraction between `Start` and `End` placeholders is only done one level
|
|
222
|
-
deep. This is intentional, so as to avoid building complex sprintf messages
|
|
223
|
-
that would better be implemented in components. As an example,
|
|
224
|
-
`${linkStart}test%{icon}%{linkEnd}`, if provided both the `link` and `icon`
|
|
225
|
-
slots, would pass `test%{icon}` as a literal string as content to the `link`
|
|
226
|
-
scoped slot.
|
|
227
|
-
- For more examples and edge cases, please see the test suite for `GlSprintf`.
|
|
228
|
-
- To be successfully used in `GlSprintf`, slot names should:
|
|
229
|
-
- start with a letter (`[A-Za-z]`)
|
|
230
|
-
- only contain alpha-numeric characters (`[A-Za-z0-9]`), underscore (`_`) and
|
|
231
|
-
dash (`-`),
|
|
232
|
-
- should not end with underscore (`_`) or dash (`-`) So for example:
|
|
233
|
-
`%{author}`, `%{author_name}`, `%{authorName}` or `%{author-name-100}` are
|
|
234
|
-
all valid placeholders.
|
|
235
|
-
|
|
236
|
-
## Internet Explorer 11
|
|
237
|
-
|
|
238
|
-
This component uses [`String.prototype.startsWith()`] and [`String.prototype.endsWith()`] under the
|
|
239
|
-
hood. Make sure those methods are polyfilled if you plan on using the component on IE11.
|
|
240
|
-
|
|
241
|
-
[1]: https://www.w3.org/TR/css-text-3/#white-space-phase-1
|
|
242
|
-
[`String.prototype.startsWith()`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
|
|
243
|
-
[`String.prototype.endsWith()`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
|