@gitlab/ui 121.0.0 → 121.1.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/bin/migrate_custom_utils_to_tw.bundled.mjs +1 -1
- package/dist/components/base/avatar_labeled/avatar_labeled.js +11 -1
- package/dist/components/base/button/button.js +1 -1
- package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +1 -1
- package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +25 -17
- package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -3
- package/package.json +5 -5
- package/src/components/base/avatar_labeled/avatar_labeled.vue +11 -0
- package/src/components/base/button/button.vue +1 -1
- package/src/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +1 -1
- package/src/vendor/bootstrap-vue/src/components/tabs/tabs.js +27 -15
- package/src/vendor/bootstrap-vue/src/constants/components.js +0 -2
- package/dist/vendor/bootstrap-vue/src/components/nav/index.js +0 -2
- package/dist/vendor/bootstrap-vue/src/components/nav/nav-item.js +0 -43
- package/dist/vendor/bootstrap-vue/src/components/nav/nav.js +0 -62
- package/src/components/dashboards/dashboard_panel/dashboard_panel.md +0 -66
- package/src/vendor/bootstrap-vue/src/components/nav/index.js +0 -4
- package/src/vendor/bootstrap-vue/src/components/nav/nav-item.js +0 -49
- package/src/vendor/bootstrap-vue/src/components/nav/nav.js +0 -58
|
@@ -43,7 +43,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
43
43
|
var require_emoji_regex = __commonJS({
|
|
44
44
|
"../../node_modules/emoji-regex/index.js"(exports, module) {
|
|
45
45
|
module.exports = () => {
|
|
46
|
-
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
46
|
+
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
});
|
|
@@ -23,6 +23,16 @@ var script = {
|
|
|
23
23
|
required: false,
|
|
24
24
|
default: ''
|
|
25
25
|
},
|
|
26
|
+
/**
|
|
27
|
+
* Attributes to pass to the label link
|
|
28
|
+
*/
|
|
29
|
+
labelLinkAttrs: {
|
|
30
|
+
type: Object,
|
|
31
|
+
required: false,
|
|
32
|
+
default() {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
},
|
|
26
36
|
subLabelLink: {
|
|
27
37
|
type: String,
|
|
28
38
|
required: false,
|
|
@@ -72,7 +82,7 @@ var script = {
|
|
|
72
82
|
const __vue_script__ = script;
|
|
73
83
|
|
|
74
84
|
/* template */
|
|
75
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-avatar-labeled"},[_c('gl-avatar',_vm._g(_vm._b({class:_vm.avatarCssClasses,attrs:{"alt":""}},'gl-avatar',_vm.$attrs,false),_vm.avatarListeners)),_vm._v(" "),_c('div',{staticClass:"gl-avatar-labeled-labels !gl-text-left",class:_vm.avatarRowLayoutClass},[_c('div',{staticClass:"-gl-mx-1 -gl-my-1 gl-flex gl-flex-wrap gl-items-center !gl-text-left"},[(_vm.hasLabelLink)?_c('gl-link',{ref:"labelLink",staticClass:"gl-avatar-link",attrs:{"href":_vm.labelLink,"variant":"meta"},on:{"click":function($event){return _vm.$emit('label-link-click', $event)}}},[_c('span',{staticClass:"gl-avatar-labeled-label"},[_vm._v(_vm._s(_vm.label))])]):_c('span',{staticClass:"gl-avatar-labeled-label"},[_vm._v(_vm._s(_vm.label))]),_vm._v(" "),_vm._t("meta")],2),_vm._v(" "),(_vm.hasSubLabelLink)?_c('gl-link',{staticClass:"gl-avatar-link",attrs:{"href":_vm.subLabelLink,"variant":"meta"}},[_c('span',{staticClass:"gl-avatar-labeled-sublabel"},[_vm._v(_vm._s(_vm.subLabel))])]):_c('span',{staticClass:"gl-avatar-labeled-sublabel"},[_vm._v(_vm._s(_vm.subLabel))]),_vm._v(" "),_vm._t("default")],2)],1)};
|
|
85
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-avatar-labeled"},[_c('gl-avatar',_vm._g(_vm._b({class:_vm.avatarCssClasses,attrs:{"alt":""}},'gl-avatar',_vm.$attrs,false),_vm.avatarListeners)),_vm._v(" "),_c('div',{staticClass:"gl-avatar-labeled-labels !gl-text-left",class:_vm.avatarRowLayoutClass},[_c('div',{staticClass:"-gl-mx-1 -gl-my-1 gl-flex gl-flex-wrap gl-items-center !gl-text-left"},[(_vm.hasLabelLink)?_c('gl-link',_vm._b({ref:"labelLink",staticClass:"gl-avatar-link",attrs:{"href":_vm.labelLink,"variant":"meta"},on:{"click":function($event){return _vm.$emit('label-link-click', $event)}}},'gl-link',_vm.labelLinkAttrs,false),[_c('span',{staticClass:"gl-avatar-labeled-label"},[_vm._v(_vm._s(_vm.label))])]):_c('span',{staticClass:"gl-avatar-labeled-label"},[_vm._v(_vm._s(_vm.label))]),_vm._v(" "),_vm._t("meta")],2),_vm._v(" "),(_vm.hasSubLabelLink)?_c('gl-link',{staticClass:"gl-avatar-link",attrs:{"href":_vm.subLabelLink,"variant":"meta"}},[_c('span',{staticClass:"gl-avatar-labeled-sublabel"},[_vm._v(_vm._s(_vm.subLabel))])]):_c('span',{staticClass:"gl-avatar-labeled-sublabel"},[_vm._v(_vm._s(_vm.subLabel))]),_vm._v(" "),_vm._t("default")],2)],1)};
|
|
76
86
|
var __vue_staticRenderFns__ = [];
|
|
77
87
|
|
|
78
88
|
/* style */
|
|
@@ -159,7 +159,7 @@ const ModalManager = /*#__PURE__*/extend({
|
|
|
159
159
|
setStyle(el, 'marginRight', `${toFloat(getCS(el).marginRight, 0) - scrollbarWidth}px`);
|
|
160
160
|
body._marginChangedForModal.push(el);
|
|
161
161
|
});
|
|
162
|
-
// Adjust
|
|
162
|
+
// Adjust .navbar-toggler margin
|
|
163
163
|
/* istanbul ignore next: difficult to test in JSDOM */
|
|
164
164
|
selectAll(SELECTOR_NAVBAR_TOGGLER).forEach(el => /* istanbul ignore next */{
|
|
165
165
|
const actualMargin = getStyle(el, 'marginRight') || '';
|
|
@@ -15,14 +15,13 @@ import { looseEqual } from '../../utils/loose-equal';
|
|
|
15
15
|
import { mathMax } from '../../utils/math';
|
|
16
16
|
import { makeModelMixin } from '../../utils/model';
|
|
17
17
|
import { toInteger } from '../../utils/number';
|
|
18
|
-
import {
|
|
18
|
+
import { sortKeys } from '../../utils/object';
|
|
19
19
|
import { observeDom } from '../../utils/observe-dom';
|
|
20
20
|
import { makeProp, makePropsConfigurable } from '../../utils/props';
|
|
21
21
|
import { stableSort } from '../../utils/stable-sort';
|
|
22
|
-
import { props as props$
|
|
22
|
+
import { props as props$1, idMixin } from '../../mixins/id';
|
|
23
23
|
import { normalizeSlotMixin } from '../../mixins/normalize-slot';
|
|
24
24
|
import { BLink } from '../link/link';
|
|
25
|
-
import { props as props$1, BNav } from '../nav/nav';
|
|
26
25
|
|
|
27
26
|
// --- Constants ---
|
|
28
27
|
|
|
@@ -164,13 +163,18 @@ const BVTabButton = /*#__PURE__*/extend({
|
|
|
164
163
|
});
|
|
165
164
|
|
|
166
165
|
// --- Props ---
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
const navProps = {
|
|
167
|
+
align: makeProp(PROP_TYPE_STRING),
|
|
168
|
+
fill: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
169
|
+
justified: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
170
|
+
pills: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
171
|
+
small: makeProp(PROP_TYPE_BOOLEAN, false)
|
|
172
|
+
};
|
|
169
173
|
const props = makePropsConfigurable(sortKeys({
|
|
170
|
-
...props$
|
|
174
|
+
...props$1,
|
|
171
175
|
...modelProps,
|
|
172
176
|
...navProps,
|
|
173
|
-
// Only applied to the currently active
|
|
177
|
+
// Only applied to the currently active `li`
|
|
174
178
|
activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
|
|
175
179
|
// Only applied to the currently active `<b-tab>`
|
|
176
180
|
// This prop is sniffed by the `<b-tab>` child
|
|
@@ -542,20 +546,24 @@ const BTabs = /*#__PURE__*/extend({
|
|
|
542
546
|
[REF_FOR_KEY]: true
|
|
543
547
|
});
|
|
544
548
|
});
|
|
545
|
-
|
|
546
|
-
|
|
549
|
+
const computeJustifyContent = value => {
|
|
550
|
+
value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;
|
|
551
|
+
return `justify-content-${value}`;
|
|
552
|
+
};
|
|
553
|
+
let $nav = h('ul', {
|
|
554
|
+
staticClass: 'nav',
|
|
555
|
+
class: [this.navClass, {
|
|
556
|
+
'nav-tabs': !noNavStyle && !pills,
|
|
557
|
+
'nav-pills': !noNavStyle && pills,
|
|
558
|
+
'nav-fill': fill,
|
|
559
|
+
'nav-justified': justified,
|
|
560
|
+
[computeJustifyContent(align)]: align,
|
|
561
|
+
small
|
|
562
|
+
}],
|
|
547
563
|
attrs: {
|
|
548
564
|
role: 'tablist',
|
|
549
565
|
id: this.safeId('_BV_tab_controls_')
|
|
550
566
|
},
|
|
551
|
-
props: {
|
|
552
|
-
fill,
|
|
553
|
-
justified,
|
|
554
|
-
align,
|
|
555
|
-
tabs: !noNavStyle && !pills,
|
|
556
|
-
pills: !noNavStyle && pills,
|
|
557
|
-
small
|
|
558
|
-
},
|
|
559
567
|
ref: 'nav'
|
|
560
568
|
}, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);
|
|
561
569
|
$nav = h('div', {
|
|
@@ -26,8 +26,6 @@ const NAME_FORM_TEXTAREA = 'BFormTextarea';
|
|
|
26
26
|
const NAME_FORM_VALID_FEEDBACK = 'BFormValidFeedback';
|
|
27
27
|
const NAME_LINK = 'BLink';
|
|
28
28
|
const NAME_MODAL = 'BModal';
|
|
29
|
-
const NAME_NAV = 'BNav';
|
|
30
|
-
const NAME_NAV_ITEM = 'BNavItem';
|
|
31
29
|
const NAME_POPOVER = 'BPopover';
|
|
32
30
|
const NAME_TAB = 'BTab';
|
|
33
31
|
const NAME_TABLE = 'BTable';
|
|
@@ -58,4 +56,4 @@ const NAME_TRANSITION = 'BVTransition';
|
|
|
58
56
|
const NAME_TRANSPORTER = 'BVTransporter';
|
|
59
57
|
const NAME_TRANSPORTER_TARGET = 'BVTransporterTarget';
|
|
60
58
|
|
|
61
|
-
export { NAME_BUTTON, NAME_BUTTON_CLOSE, NAME_COL, NAME_DROPDOWN, NAME_DROPDOWN_DIVIDER, NAME_DROPDOWN_FORM, NAME_DROPDOWN_GROUP, NAME_DROPDOWN_HEADER, NAME_DROPDOWN_ITEM, NAME_DROPDOWN_ITEM_BUTTON, NAME_DROPDOWN_TEXT, NAME_FORM, NAME_FORM_BUTTON_LABEL_CONTROL, NAME_FORM_CHECKBOX, NAME_FORM_CHECKBOX_GROUP, NAME_FORM_GROUP, NAME_FORM_INVALID_FEEDBACK, NAME_FORM_RADIO, NAME_FORM_RADIO_GROUP, NAME_FORM_RATING_STAR, NAME_FORM_ROW, NAME_FORM_SELECT, NAME_FORM_SELECT_OPTION, NAME_FORM_SELECT_OPTION_GROUP, NAME_FORM_TEXT, NAME_FORM_TEXTAREA, NAME_FORM_VALID_FEEDBACK, NAME_LINK, NAME_MODAL,
|
|
59
|
+
export { NAME_BUTTON, NAME_BUTTON_CLOSE, NAME_COL, NAME_DROPDOWN, NAME_DROPDOWN_DIVIDER, NAME_DROPDOWN_FORM, NAME_DROPDOWN_GROUP, NAME_DROPDOWN_HEADER, NAME_DROPDOWN_ITEM, NAME_DROPDOWN_ITEM_BUTTON, NAME_DROPDOWN_TEXT, NAME_FORM, NAME_FORM_BUTTON_LABEL_CONTROL, NAME_FORM_CHECKBOX, NAME_FORM_CHECKBOX_GROUP, NAME_FORM_GROUP, NAME_FORM_INVALID_FEEDBACK, NAME_FORM_RADIO, NAME_FORM_RADIO_GROUP, NAME_FORM_RATING_STAR, NAME_FORM_ROW, NAME_FORM_SELECT, NAME_FORM_SELECT_OPTION, NAME_FORM_SELECT_OPTION_GROUP, NAME_FORM_TEXT, NAME_FORM_TEXTAREA, NAME_FORM_VALID_FEEDBACK, NAME_LINK, NAME_MODAL, NAME_POPOVER, NAME_POPOVER_HELPER, NAME_POPOVER_TEMPLATE, NAME_POPPER, NAME_TAB, NAME_TABLE, NAME_TABLE_CELL, NAME_TABLE_LITE, NAME_TABLE_SIMPLE, NAME_TABS, NAME_TAB_BUTTON_HELPER, NAME_TBODY, NAME_TFOOT, NAME_TH, NAME_THEAD, NAME_TOAST, NAME_TOASTER, NAME_TOAST_POP, NAME_TOOLTIP, NAME_TOOLTIP_HELPER, NAME_TOOLTIP_TEMPLATE, NAME_TR, NAME_TRANSITION, NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitlab/ui",
|
|
3
|
-
"version": "121.
|
|
3
|
+
"version": "121.1.0",
|
|
4
4
|
"description": "GitLab UI Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -103,8 +103,8 @@
|
|
|
103
103
|
"@babel/preset-react": "^7.27.1",
|
|
104
104
|
"@cypress/grep": "^4.1.1",
|
|
105
105
|
"@gitlab/fonts": "^1.3.1",
|
|
106
|
-
"@gitlab/svgs": "3.
|
|
107
|
-
"@jest/test-sequencer": "30.
|
|
106
|
+
"@gitlab/svgs": "3.146.0",
|
|
107
|
+
"@jest/test-sequencer": "30.1.1",
|
|
108
108
|
"@rollup/plugin-commonjs": "^28.0.6",
|
|
109
109
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
110
110
|
"@rollup/plugin-replace": "^6.0.2",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"cypress": "14.5.4",
|
|
139
139
|
"cypress-real-events": "^1.14.0",
|
|
140
140
|
"dompurify": "^3.1.2",
|
|
141
|
-
"emoji-regex": "^10.
|
|
141
|
+
"emoji-regex": "^10.5.0",
|
|
142
142
|
"esbuild": "^0.25.9",
|
|
143
143
|
"gitlab-api-async-iterator": "^1.3.1",
|
|
144
144
|
"glob": "11.0.3",
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"start-server-and-test": "^2.0.13",
|
|
172
172
|
"storybook": "^7.6.20",
|
|
173
173
|
"storybook-dark-mode": "4.0.2",
|
|
174
|
-
"style-dictionary": "^5.0.
|
|
174
|
+
"style-dictionary": "^5.0.4",
|
|
175
175
|
"style-loader": "^4",
|
|
176
176
|
"tailwind-config-viewer": "2.0.4",
|
|
177
177
|
"tailwindcss": "3.4.17",
|
|
@@ -23,6 +23,16 @@ export default {
|
|
|
23
23
|
required: false,
|
|
24
24
|
default: '',
|
|
25
25
|
},
|
|
26
|
+
/**
|
|
27
|
+
* Attributes to pass to the label link
|
|
28
|
+
*/
|
|
29
|
+
labelLinkAttrs: {
|
|
30
|
+
type: Object,
|
|
31
|
+
required: false,
|
|
32
|
+
default() {
|
|
33
|
+
return {};
|
|
34
|
+
},
|
|
35
|
+
},
|
|
26
36
|
subLabelLink: {
|
|
27
37
|
type: String,
|
|
28
38
|
required: false,
|
|
@@ -76,6 +86,7 @@ export default {
|
|
|
76
86
|
<div class="-gl-mx-1 -gl-my-1 gl-flex gl-flex-wrap gl-items-center !gl-text-left">
|
|
77
87
|
<gl-link
|
|
78
88
|
v-if="hasLabelLink"
|
|
89
|
+
v-bind="labelLinkAttrs"
|
|
79
90
|
ref="labelLink"
|
|
80
91
|
:href="labelLink"
|
|
81
92
|
class="gl-avatar-link"
|
|
@@ -168,7 +168,7 @@ const ModalManager = /*#__PURE__*/ extend({
|
|
|
168
168
|
setStyle(el, 'marginRight', `${toFloat(getCS(el).marginRight, 0) - scrollbarWidth}px`)
|
|
169
169
|
body._marginChangedForModal.push(el)
|
|
170
170
|
})
|
|
171
|
-
// Adjust
|
|
171
|
+
// Adjust .navbar-toggler margin
|
|
172
172
|
/* istanbul ignore next: difficult to test in JSDOM */
|
|
173
173
|
selectAll(SELECTOR_NAVBAR_TOGGLER).forEach(el => /* istanbul ignore next */ {
|
|
174
174
|
const actualMargin = getStyle(el, 'marginRight') || ''
|
|
@@ -43,14 +43,13 @@ import { looseEqual } from '../../utils/loose-equal'
|
|
|
43
43
|
import { mathMax } from '../../utils/math'
|
|
44
44
|
import { makeModelMixin } from '../../utils/model'
|
|
45
45
|
import { toInteger } from '../../utils/number'
|
|
46
|
-
import {
|
|
46
|
+
import { sortKeys } from '../../utils/object'
|
|
47
47
|
import { observeDom } from '../../utils/observe-dom'
|
|
48
48
|
import { makeProp, makePropsConfigurable } from '../../utils/props'
|
|
49
49
|
import { stableSort } from '../../utils/stable-sort'
|
|
50
50
|
import { idMixin, props as idProps } from '../../mixins/id'
|
|
51
51
|
import { normalizeSlotMixin } from '../../mixins/normalize-slot'
|
|
52
52
|
import { BLink } from '../link/link'
|
|
53
|
-
import { BNav, props as BNavProps } from '../nav/nav'
|
|
54
53
|
|
|
55
54
|
// --- Constants ---
|
|
56
55
|
|
|
@@ -188,15 +187,20 @@ const BVTabButton = /*#__PURE__*/ extend({
|
|
|
188
187
|
})
|
|
189
188
|
|
|
190
189
|
// --- Props ---
|
|
191
|
-
|
|
192
|
-
|
|
190
|
+
const navProps = {
|
|
191
|
+
align: makeProp(PROP_TYPE_STRING),
|
|
192
|
+
fill: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
193
|
+
justified: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
194
|
+
pills: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
195
|
+
small: makeProp(PROP_TYPE_BOOLEAN, false)
|
|
196
|
+
}
|
|
193
197
|
|
|
194
198
|
export const props = makePropsConfigurable(
|
|
195
199
|
sortKeys({
|
|
196
200
|
...idProps,
|
|
197
201
|
...modelProps,
|
|
198
202
|
...navProps,
|
|
199
|
-
// Only applied to the currently active
|
|
203
|
+
// Only applied to the currently active `li`
|
|
200
204
|
activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
|
|
201
205
|
// Only applied to the currently active `<b-tab>`
|
|
202
206
|
// This prop is sniffed by the `<b-tab>` child
|
|
@@ -594,22 +598,30 @@ export const BTabs = /*#__PURE__*/ extend({
|
|
|
594
598
|
})
|
|
595
599
|
})
|
|
596
600
|
|
|
601
|
+
const computeJustifyContent = value => {
|
|
602
|
+
value = value === 'left' ? 'start' : value === 'right' ? 'end' : value
|
|
603
|
+
return `justify-content-${value}`
|
|
604
|
+
}
|
|
605
|
+
|
|
597
606
|
let $nav = h(
|
|
598
|
-
|
|
607
|
+
'ul',
|
|
599
608
|
{
|
|
600
|
-
|
|
609
|
+
staticClass: 'nav',
|
|
610
|
+
class: [
|
|
611
|
+
this.navClass,
|
|
612
|
+
{
|
|
613
|
+
'nav-tabs': !noNavStyle && !pills,
|
|
614
|
+
'nav-pills': !noNavStyle && pills,
|
|
615
|
+
'nav-fill': fill,
|
|
616
|
+
'nav-justified': justified,
|
|
617
|
+
[computeJustifyContent(align)]: align,
|
|
618
|
+
small
|
|
619
|
+
}
|
|
620
|
+
],
|
|
601
621
|
attrs: {
|
|
602
622
|
role: 'tablist',
|
|
603
623
|
id: this.safeId('_BV_tab_controls_')
|
|
604
624
|
},
|
|
605
|
-
props: {
|
|
606
|
-
fill,
|
|
607
|
-
justified,
|
|
608
|
-
align,
|
|
609
|
-
tabs: !noNavStyle && !pills,
|
|
610
|
-
pills: !noNavStyle && pills,
|
|
611
|
-
small
|
|
612
|
-
},
|
|
613
625
|
ref: 'nav'
|
|
614
626
|
},
|
|
615
627
|
[
|
|
@@ -26,8 +26,6 @@ export const NAME_FORM_TEXTAREA = 'BFormTextarea'
|
|
|
26
26
|
export const NAME_FORM_VALID_FEEDBACK = 'BFormValidFeedback'
|
|
27
27
|
export const NAME_LINK = 'BLink'
|
|
28
28
|
export const NAME_MODAL = 'BModal'
|
|
29
|
-
export const NAME_NAV = 'BNav'
|
|
30
|
-
export const NAME_NAV_ITEM = 'BNavItem'
|
|
31
29
|
export const NAME_POPOVER = 'BPopover'
|
|
32
30
|
export const NAME_TAB = 'BTab'
|
|
33
31
|
export const NAME_TABLE = 'BTable'
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { extend, mergeData } from '../../vue';
|
|
2
|
-
import { NAME_NAV_ITEM } from '../../constants/components';
|
|
3
|
-
import { PROP_TYPE_OBJECT, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';
|
|
4
|
-
import { omit, sortKeys } from '../../utils/object';
|
|
5
|
-
import { makePropsConfigurable, makeProp, pluckProps } from '../../utils/props';
|
|
6
|
-
import { props as props$1, BLink } from '../link/link';
|
|
7
|
-
|
|
8
|
-
// --- Props ---
|
|
9
|
-
|
|
10
|
-
const linkProps = omit(props$1, ['event', 'routerTag']);
|
|
11
|
-
const props = makePropsConfigurable(sortKeys({
|
|
12
|
-
...linkProps,
|
|
13
|
-
linkAttrs: makeProp(PROP_TYPE_OBJECT, {}),
|
|
14
|
-
linkClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)
|
|
15
|
-
}), NAME_NAV_ITEM);
|
|
16
|
-
|
|
17
|
-
// --- Main component ---
|
|
18
|
-
|
|
19
|
-
// @vue/component
|
|
20
|
-
const BNavItem = /*#__PURE__*/extend({
|
|
21
|
-
name: NAME_NAV_ITEM,
|
|
22
|
-
functional: true,
|
|
23
|
-
props,
|
|
24
|
-
render(h, _ref) {
|
|
25
|
-
let {
|
|
26
|
-
props,
|
|
27
|
-
data,
|
|
28
|
-
listeners,
|
|
29
|
-
children
|
|
30
|
-
} = _ref;
|
|
31
|
-
return h('li', mergeData(omit(data, ['on']), {
|
|
32
|
-
staticClass: 'nav-item'
|
|
33
|
-
}), [h(BLink, {
|
|
34
|
-
staticClass: 'nav-link',
|
|
35
|
-
class: props.linkClasses,
|
|
36
|
-
attrs: props.linkAttrs,
|
|
37
|
-
props: pluckProps(linkProps, props),
|
|
38
|
-
on: listeners
|
|
39
|
-
}, children)]);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
export { BNavItem, props };
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { extend, mergeData } from '../../vue';
|
|
2
|
-
import { NAME_NAV } from '../../constants/components';
|
|
3
|
-
import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';
|
|
4
|
-
import { makePropsConfigurable, makeProp } from '../../utils/props';
|
|
5
|
-
|
|
6
|
-
// --- Helper methods ---
|
|
7
|
-
|
|
8
|
-
const computeJustifyContent = value => {
|
|
9
|
-
value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;
|
|
10
|
-
return `justify-content-${value}`;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
// --- Props ---
|
|
14
|
-
|
|
15
|
-
const props = makePropsConfigurable({
|
|
16
|
-
align: makeProp(PROP_TYPE_STRING),
|
|
17
|
-
// Set to `true` if placing in a card header
|
|
18
|
-
cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
19
|
-
fill: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
20
|
-
justified: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
21
|
-
pills: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
22
|
-
small: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
23
|
-
tabs: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
24
|
-
tag: makeProp(PROP_TYPE_STRING, 'ul')
|
|
25
|
-
}, NAME_NAV);
|
|
26
|
-
|
|
27
|
-
// --- Main component ---
|
|
28
|
-
|
|
29
|
-
// @vue/component
|
|
30
|
-
const BNav = /*#__PURE__*/extend({
|
|
31
|
-
name: NAME_NAV,
|
|
32
|
-
functional: true,
|
|
33
|
-
props,
|
|
34
|
-
render(h, _ref) {
|
|
35
|
-
let {
|
|
36
|
-
props,
|
|
37
|
-
data,
|
|
38
|
-
children
|
|
39
|
-
} = _ref;
|
|
40
|
-
const {
|
|
41
|
-
tabs,
|
|
42
|
-
pills,
|
|
43
|
-
align,
|
|
44
|
-
cardHeader
|
|
45
|
-
} = props;
|
|
46
|
-
return h(props.tag, mergeData(data, {
|
|
47
|
-
staticClass: 'nav',
|
|
48
|
-
class: {
|
|
49
|
-
'nav-tabs': tabs,
|
|
50
|
-
'nav-pills': pills && !tabs,
|
|
51
|
-
'card-header-tabs': cardHeader && tabs,
|
|
52
|
-
'card-header-pills': cardHeader && pills && !tabs,
|
|
53
|
-
'nav-fill': props.fill,
|
|
54
|
-
'nav-justified': props.justified,
|
|
55
|
-
[computeJustifyContent(align)]: align,
|
|
56
|
-
small: props.small
|
|
57
|
-
}
|
|
58
|
-
}), children);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
export { BNav, props };
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
## Dashboard panel
|
|
2
|
-
|
|
3
|
-
The `GlDashboardPanel` component is a foundational building block for dashboards but it can also be
|
|
4
|
-
used in other analytics interfaces. It is desinged to wrap a query result visualization with standardized
|
|
5
|
-
styling, loading states, actions, and metadata as outlined by our [Pajamas guidelines](https://design.gitlab.com/patterns/dashboards).
|
|
6
|
-
It does not manage data states and fetching, or handle filter state managment.
|
|
7
|
-
|
|
8
|
-
### When to use
|
|
9
|
-
|
|
10
|
-
This component should be used when:
|
|
11
|
-
|
|
12
|
-
- You need a standardized container for individual results in dashboards, reports,
|
|
13
|
-
or other analytics-focused interfaces.
|
|
14
|
-
- You want to wrap a single visualization of query results, such as charts,d markdown,
|
|
15
|
-
single stats, or tables.
|
|
16
|
-
- You want to benefit from easy integration with the dashboard layout component.
|
|
17
|
-
|
|
18
|
-
## The component
|
|
19
|
-
|
|
20
|
-
The component is designed to wrap a single data visualization, but it's not opinionated about its content
|
|
21
|
-
and can be used for example to wrap other content types such as rendered markdown.
|
|
22
|
-
|
|
23
|
-
### Loading states
|
|
24
|
-
|
|
25
|
-
Panels provide built-in loading state management. When content is loading:
|
|
26
|
-
|
|
27
|
-
- Set the `loading` prop to `true` to show a loading spinner.
|
|
28
|
-
- Use `loadingDelayed` and `loadingDelayedText` for long-running operations.
|
|
29
|
-
- The panel handles the visual loading state while you handle the actual data loading.
|
|
30
|
-
|
|
31
|
-
### Filters
|
|
32
|
-
|
|
33
|
-
The component provides a `#filters` slot for you to render your filters within the panel
|
|
34
|
-
layout. It's up to the consumer to manage the state of filters.
|
|
35
|
-
|
|
36
|
-
### Basic implementation
|
|
37
|
-
|
|
38
|
-
```html
|
|
39
|
-
<script>
|
|
40
|
-
import { GlDashboardPanel } from '@gitlab/ui';
|
|
41
|
-
import MyVisualization from './my_visualization.vue';
|
|
42
|
-
|
|
43
|
-
export default {
|
|
44
|
-
components: {
|
|
45
|
-
GlDashboardPanel,
|
|
46
|
-
MyVisualization,
|
|
47
|
-
},
|
|
48
|
-
data() {
|
|
49
|
-
return {
|
|
50
|
-
isLoading: false,
|
|
51
|
-
};
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
</script>
|
|
55
|
-
|
|
56
|
-
<template>
|
|
57
|
-
<gl-dashboard-panel
|
|
58
|
-
title="My Content Title"
|
|
59
|
-
:loading="isLoading"
|
|
60
|
-
>
|
|
61
|
-
<template #body>
|
|
62
|
-
<my-visualization />
|
|
63
|
-
</template>
|
|
64
|
-
</gl-dashboard-panel>
|
|
65
|
-
</template>
|
|
66
|
-
```
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { extend, mergeData } from '../../vue'
|
|
2
|
-
import { NAME_NAV_ITEM } from '../../constants/components'
|
|
3
|
-
import { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_OBJECT } from '../../constants/props'
|
|
4
|
-
import { omit, sortKeys } from '../../utils/object'
|
|
5
|
-
import { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props'
|
|
6
|
-
import { BLink, props as BLinkProps } from '../link/link'
|
|
7
|
-
|
|
8
|
-
// --- Props ---
|
|
9
|
-
|
|
10
|
-
const linkProps = omit(BLinkProps, ['event', 'routerTag'])
|
|
11
|
-
|
|
12
|
-
export const props = makePropsConfigurable(
|
|
13
|
-
sortKeys({
|
|
14
|
-
...linkProps,
|
|
15
|
-
linkAttrs: makeProp(PROP_TYPE_OBJECT, {}),
|
|
16
|
-
linkClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)
|
|
17
|
-
}),
|
|
18
|
-
NAME_NAV_ITEM
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
// --- Main component ---
|
|
22
|
-
|
|
23
|
-
// @vue/component
|
|
24
|
-
export const BNavItem = /*#__PURE__*/ extend({
|
|
25
|
-
name: NAME_NAV_ITEM,
|
|
26
|
-
functional: true,
|
|
27
|
-
props,
|
|
28
|
-
render(h, { props, data, listeners, children }) {
|
|
29
|
-
return h(
|
|
30
|
-
'li',
|
|
31
|
-
mergeData(omit(data, ['on']), {
|
|
32
|
-
staticClass: 'nav-item'
|
|
33
|
-
}),
|
|
34
|
-
[
|
|
35
|
-
h(
|
|
36
|
-
BLink,
|
|
37
|
-
{
|
|
38
|
-
staticClass: 'nav-link',
|
|
39
|
-
class: props.linkClasses,
|
|
40
|
-
attrs: props.linkAttrs,
|
|
41
|
-
props: pluckProps(linkProps, props),
|
|
42
|
-
on: listeners
|
|
43
|
-
},
|
|
44
|
-
children
|
|
45
|
-
)
|
|
46
|
-
]
|
|
47
|
-
)
|
|
48
|
-
}
|
|
49
|
-
})
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { extend, mergeData } from '../../vue'
|
|
2
|
-
import { NAME_NAV } from '../../constants/components'
|
|
3
|
-
import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props'
|
|
4
|
-
import { makeProp, makePropsConfigurable } from '../../utils/props'
|
|
5
|
-
|
|
6
|
-
// --- Helper methods ---
|
|
7
|
-
|
|
8
|
-
const computeJustifyContent = value => {
|
|
9
|
-
value = value === 'left' ? 'start' : value === 'right' ? 'end' : value
|
|
10
|
-
return `justify-content-${value}`
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// --- Props ---
|
|
14
|
-
|
|
15
|
-
export const props = makePropsConfigurable(
|
|
16
|
-
{
|
|
17
|
-
align: makeProp(PROP_TYPE_STRING),
|
|
18
|
-
// Set to `true` if placing in a card header
|
|
19
|
-
cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
20
|
-
fill: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
21
|
-
justified: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
22
|
-
pills: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
23
|
-
small: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
24
|
-
tabs: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
25
|
-
tag: makeProp(PROP_TYPE_STRING, 'ul')
|
|
26
|
-
},
|
|
27
|
-
NAME_NAV
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
// --- Main component ---
|
|
31
|
-
|
|
32
|
-
// @vue/component
|
|
33
|
-
export const BNav = /*#__PURE__*/ extend({
|
|
34
|
-
name: NAME_NAV,
|
|
35
|
-
functional: true,
|
|
36
|
-
props,
|
|
37
|
-
render(h, { props, data, children }) {
|
|
38
|
-
const { tabs, pills, align, cardHeader } = props
|
|
39
|
-
|
|
40
|
-
return h(
|
|
41
|
-
props.tag,
|
|
42
|
-
mergeData(data, {
|
|
43
|
-
staticClass: 'nav',
|
|
44
|
-
class: {
|
|
45
|
-
'nav-tabs': tabs,
|
|
46
|
-
'nav-pills': pills && !tabs,
|
|
47
|
-
'card-header-tabs': cardHeader && tabs,
|
|
48
|
-
'card-header-pills': cardHeader && pills && !tabs,
|
|
49
|
-
'nav-fill': props.fill,
|
|
50
|
-
'nav-justified': props.justified,
|
|
51
|
-
[computeJustifyContent(align)]: align,
|
|
52
|
-
small: props.small
|
|
53
|
-
}
|
|
54
|
-
}),
|
|
55
|
-
children
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
})
|