@schukai/monster 4.150.8 → 4.151.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.
@@ -29,11 +29,11 @@ try {
29
29
  --monster-select-control-min-block-size,var(--monster-control-min-block-size,2.5rem)
30
30
  );padding:var(--monster-select-control-padding,.4rem .6rem);margin:0;outline:none;box-sizing:border-box;accent-color:var(
31
31
  --monster-theme-accent,var(--monster-color-secondary-2)
32
- );-o-border-image:initial;border-image:initial;border-width:var(--monster-theme-control-border-width);border-radius:var(--monster-theme-control-border-radius);border-style:var(--monster-theme-control-border-style);border-color:var(--monster-theme-control-border-color);background-color:var(--monster-bg-color-primary-1);color:var(--monster-color-primary-1);display:flex;align-items:center;overflow:hidden;width:-webkit-fill-available;width:-moz-available;width:fill-available}div[data-monster-role=popper]{z-index:var(--monster-z-index-popover)}@media (prefers-color-scheme:light){[data-monster-role=control]{background-color:var(--monster-bg-color-primary-1);color:var(--monster-color-primary-1);border-color:var(--monster-theme-control-border-color)}[data-monster-role=control]:focus{outline:1px dashed var(--monster-color-selection-4);outline-offset:2px}}[data-monster-role=control]:hover{transition:background .8s,color .25s .0833333333s;box-shadow:var(--monster-box-shadow-2)}:host([disabled]) [data-monster-role=control]{cursor:not-allowed}:host([disabled]) [data-monster-role=status-or-remove-badges],[data-monster-role=control][disabled] [data-monster-role=status-or-remove-badges]{display:none}div[data-monster-role=selection]{display:flex;gap:5px;margin:var(--monster-select-selection-margin,0 5px);flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:var(--monster-select-selection-flex-wrap,wrap);min-height:0}[data-monster-role=option-control]{block-size:var(--monster-select-option-control-size,1rem);flex:0 0 auto;inline-size:var(--monster-select-option-control-size,1rem);margin-right:8px;min-block-size:var(--monster-select-option-control-size,1rem);min-inline-size:var(--monster-select-option-control-size,1rem)}[data-monster-role=badge]{display:inline-flex}[data-monster-role=badge-label]{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;gap:7px}[data-monster-role=filter],[data-monster-role=popper-filter]{visibility:hidden;order:99999999;display:flex;flex-grow:200}[data-monster-role=filter].active{visibility:visible;min-width:40%;border:0;outline:none;background-color:var(--monster-bg-color-primary-2);border-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-2);border-bottom:1px solid var(--monster-bg-color-primary-3)}.active[data-monster-role=filter][name=popper-filter]{width:calc(100% - var(--monster-border-width)*2);height:1.5em;padding:2px;margin:2.5em}.option-filter-control{margin:-1.1em -1.1em .3em;height:2.5em;background-color:var(--monster-bg-color-primary-2);display:flex;align-items:center}[data-monster-role=remove-badge]{order:2;height:16px;-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-2);margin-left:5px}[data-monster-role=remove-badge],[data-monster-role=status-or-remove-badges]{width:16px;min-height:16px;-webkit-mask-size:.8em;mask-size:.8em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center center;mask-position:center center}[data-monster-role=status-or-remove-badges]{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4)}.open[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4)}.empty[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4)}.clear[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4)}.error[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-error-1)}@media (prefers-color-scheme:dark){.error[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");background-color:var(--monster-color-error-4)}}.loading[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4);animation-name:activity;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:cubic-bezier(0,0,.2,1)}@keyframes activity{0%{transform:scale(1)}50%{transform:scale(.1)}to{transform:scale(1)}}[data-monster-role=options]{flex-direction:column;flex-grow:1;scrollbar-gutter:stable;scrollbar-color:var(--monster-color-primary-1) var(--monster-bg-color-primary-1);scrollbar-width:thin;overflow-x:hidden}[data-monster-role=option],[data-monster-role=options]{box-sizing:border-box;display:flex;width:100%;max-width:100%;min-width:0}[data-monster-role=option]{padding:var(--monster-select-option-padding,2px 6px);align-items:center}[data-monster-role=option] label{justify-content:flex-start}[data-monster-role=option] label,[data-monster-role=option] label>div{display:flex;flex-direction:row;align-items:center;width:100%;max-width:100%;min-width:0}[data-monster-role=option] label>div{justify-content:space-between;outline:none}[part=option-label]{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.selected{background-color:var(
32
+ );-o-border-image:initial;border-image:initial;border-width:var(--monster-theme-control-border-width);border-radius:var(--monster-theme-control-border-radius);border-style:var(--monster-theme-control-border-style);border-color:var(--monster-theme-control-border-color);background-color:var(--monster-bg-color-primary-1);color:var(--monster-color-primary-1);display:flex;align-items:center;overflow:hidden;width:-webkit-fill-available;width:-moz-available;width:fill-available}div[data-monster-role=popper]{z-index:var(--monster-z-index-popover)}div[data-monster-role=popper]>[part=content]{flex-direction:column}@media (prefers-color-scheme:light){[data-monster-role=control]{background-color:var(--monster-bg-color-primary-1);color:var(--monster-color-primary-1);border-color:var(--monster-theme-control-border-color)}[data-monster-role=control]:focus{outline:1px dashed var(--monster-color-selection-4);outline-offset:2px}}[data-monster-role=control]:hover{transition:background .8s,color .25s .0833333333s;box-shadow:var(--monster-box-shadow-2)}:host([disabled]) [data-monster-role=control]{cursor:not-allowed}:host([disabled]) [data-monster-role=status-or-remove-badges],[data-monster-role=control][disabled] [data-monster-role=status-or-remove-badges]{display:none}div[data-monster-role=selection]{display:flex;gap:5px;margin:var(--monster-select-selection-margin,0 5px);flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:var(--monster-select-selection-flex-wrap,wrap);min-height:0}[data-monster-role=option-control]{block-size:var(--monster-select-option-control-size,1rem);flex:0 0 auto;inline-size:var(--monster-select-option-control-size,1rem);margin-right:8px;min-block-size:var(--monster-select-option-control-size,1rem);min-inline-size:var(--monster-select-option-control-size,1rem)}[data-monster-role=badge]{display:inline-flex}[data-monster-role=badge-label]{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;gap:7px}[data-monster-role=filter],[data-monster-role=popper-filter]{visibility:hidden;order:99999999;display:flex;flex-grow:200}[data-monster-role=filter].active{visibility:visible;min-width:40%;border:0;outline:none;background-color:var(--monster-bg-color-primary-2);border-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-2);border-bottom:1px solid var(--monster-bg-color-primary-3)}.active[data-monster-role=filter][name=popper-filter]{width:calc(100% - var(--monster-border-width)*2);height:1.5em;padding:2px;margin:2.5em}.option-filter-control{margin:-1.1em -1.1em .3em;height:2.5em;background-color:var(--monster-bg-color-primary-2);display:flex;align-items:center}[data-monster-role=remove-badge]{order:2;height:16px;-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-2);margin-left:5px}[data-monster-role=remove-badge],[data-monster-role=status-or-remove-badges]{width:16px;min-height:16px;-webkit-mask-size:.8em;mask-size:.8em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center center;mask-position:center center}[data-monster-role=status-or-remove-badges]{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4)}.open[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4)}.empty[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4)}.clear[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4)}.error[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-error-1)}@media (prefers-color-scheme:dark){.error[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");background-color:var(--monster-color-error-4)}}.loading[data-monster-role=status-or-remove-badges]{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\");background-color:var(--monster-bg-color-primary-4);animation-name:activity;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:cubic-bezier(0,0,.2,1)}@keyframes activity{0%{transform:scale(1)}50%{transform:scale(.1)}to{transform:scale(1)}}[data-monster-role=options]{flex-direction:column;flex-grow:1;scrollbar-gutter:stable;scrollbar-color:var(--monster-color-primary-1) var(--monster-bg-color-primary-1);scrollbar-width:thin;overflow-x:hidden}[data-monster-role=option],[data-monster-role=options]{box-sizing:border-box;display:flex;width:100%;max-width:100%;min-width:0}[data-monster-role=option]{padding:var(--monster-select-option-padding,2px 6px);align-items:center}[data-monster-role=option] label{justify-content:flex-start}[data-monster-role=option] label,[data-monster-role=option] label>div{display:flex;flex-direction:row;align-items:center;width:100%;max-width:100%;min-width:0}[data-monster-role=option] label>div{justify-content:space-between;outline:none}[part=option-label]{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.selected{background-color:var(
33
33
  --monster-theme-accent-subtle,var(--monster-bg-color-primary-2)
34
34
  );color:var(
35
35
  --monster-theme-accent,var(--monster-color-primary-2)
36
- )}[data-monster-role=option][data-monster-filtered=true],[data-monster-role=option][data-monster-visibility=hidden]{display:none}[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-2);outline-offset:-2px}@media (prefers-color-scheme:dark){[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-4)}}[data-monster-role=filter]::-moz-placeholder{color:var(--monster-color-primary-2);background-color:var(--monster-bg-color-primary-2)}[data-monster-role=filter]::placeholder{color:var(--monster-color-primary-2);background-color:var(--monster-bg-color-primary-2)}[data-monster-role=option]>input:focus,[data-monster-role=option]>label:focus{outline:none}[data-monster-role=selection-messages]:empty:before,[data-monster-role=summary-messages]:empty:before{content:\"\u00A0\"}.in-button-bar{border-width:var(--monster-border-width)!important;border-style:var(--monster-border-style)!important;border-color:var(--monster-bg-color-primary-4)!important}[data-monster-role=pagination-footer]{align-items:center;-moz-column-gap:var(--monster-select-pagination-footer-column-gap,.75rem);column-gap:var(--monster-select-pagination-footer-column-gap,.75rem);display:flex;flex-wrap:wrap;justify-content:flex-end;min-width:0}[data-monster-role=remote-info]{flex:1 1 12rem;margin:var(--monster-select-pagination-footer-margin-top,.5rem) 0 0;min-width:0}[data-monster-role=remote-info]:empty{flex-basis:0;margin:0}[data-monster-role=remote-info] span{text-align:left;white-space:normal}[data-monster-role=pagination]{flex:0 0 auto;margin-left:auto;margin-top:var(--monster-select-pagination-footer-margin-top,.5rem);max-width:100%}[data-monster-role=pagination]::part(nav){justify-content:flex-end;width:auto}[data-monster-role=pagination]::part(list){grid-template-columns:repeat(3,auto);justify-content:end;margin-bottom:0;margin-top:0;width:auto}
36
+ )}[data-monster-role=option][data-monster-filtered=true],[data-monster-role=option][data-monster-visibility=hidden]{display:none}[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-2);outline-offset:-2px}[data-monster-role=create-option]{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;min-block-size:2.75rem;padding:var(--monster-select-option-padding,2px 6px);width:100%}[data-monster-role=create-option][data-monster-visibility=hidden]{display:none}[data-monster-role=create-option]>button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:inherit;display:inline-flex;font-family:inherit;gap:.4em;pointer-events:none}[data-monster-role=create-option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-2);outline-offset:-2px}[data-monster-role=create-option-icon]{font-size:1.15em;line-height:.75}@media (prefers-color-scheme:dark){[data-monster-role=create-option][data-monster-focused=true],[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-4)}}[data-monster-role=filter]::-moz-placeholder{color:var(--monster-color-primary-2);background-color:var(--monster-bg-color-primary-2)}[data-monster-role=filter]::placeholder{color:var(--monster-color-primary-2);background-color:var(--monster-bg-color-primary-2)}[data-monster-role=option]>input:focus,[data-monster-role=option]>label:focus{outline:none}[data-monster-role=selection-messages]:empty:before,[data-monster-role=summary-messages]:empty:before{content:\"\u00A0\"}.in-button-bar{border-width:var(--monster-border-width)!important;border-style:var(--monster-border-style)!important;border-color:var(--monster-bg-color-primary-4)!important}[data-monster-role=pagination-footer]{align-items:center;-moz-column-gap:var(--monster-select-pagination-footer-column-gap,.75rem);column-gap:var(--monster-select-pagination-footer-column-gap,.75rem);display:flex;flex-wrap:wrap;justify-content:flex-end;min-width:0}[data-monster-role=remote-info]{flex:1 1 12rem;margin:var(--monster-select-pagination-footer-margin-top,.5rem) 0 0;min-width:0}[data-monster-role=remote-info]:empty{flex-basis:0;margin:0}[data-monster-role=remote-info] span{text-align:left;white-space:normal}[data-monster-role=pagination]{flex:0 0 auto;margin-left:auto;margin-top:var(--monster-select-pagination-footer-margin-top,.5rem);max-width:100%}[data-monster-role=pagination]::part(nav){justify-content:flex-end;width:auto}[data-monster-role=pagination]::part(list){grid-template-columns:repeat(3,auto);justify-content:end;margin-bottom:0;margin-top:0;width:auto}
37
37
  }`,
38
38
  0,
39
39
  );
@@ -41,7 +41,9 @@ describe("Viewer", function () {
41
41
  expect(textNode.textContent).to.equal(
42
42
  "<strong>raw</strong>\n<script>alert(1)</script>",
43
43
  );
44
- expect(textNode.innerHTML).to.contain("&lt;strong&gt;raw&lt;/strong&gt;");
44
+ expect(textNode.innerHTML).to.contain(
45
+ "&lt;strong&gt;raw&lt;/strong&gt;",
46
+ );
45
47
  done();
46
48
  } catch (error) {
47
49
  done(error);
@@ -66,6 +68,10 @@ describe("Viewer", function () {
66
68
  `
67
69
  <link rel="stylesheet" href="https://evil.example/tracker.css">
68
70
  <script src="https://evil.example/tracker.js"></script>
71
+ <style id="tracking-style">
72
+ @import "https://evil.example/import.css";
73
+ .tracked { background-image: url("https://evil.example/background.png"); }
74
+ </style>
69
75
  <img id="external" src="https://evil.example/pixel.png">
70
76
  <img id="local" src="/image.png">
71
77
  `,
@@ -77,11 +83,16 @@ describe("Viewer", function () {
77
83
  const root = viewer.shadowRoot;
78
84
  expect(root.querySelector("link")).to.equal(null);
79
85
  expect(root.querySelector("script")).to.equal(null);
86
+ expect(root.querySelector("#tracking-style")).to.equal(null);
80
87
 
81
88
  const externalImage = root.querySelector("#external");
82
89
  expect(externalImage).to.not.equal(null);
83
- expect(externalImage.classList.contains("privacyImage")).to.equal(true);
84
- expect(externalImage.getAttribute("src")).to.match(/^data:image\/gif;base64,/);
90
+ expect(externalImage.classList.contains("privacyImage")).to.equal(
91
+ true,
92
+ );
93
+ expect(externalImage.getAttribute("src")).to.match(
94
+ /^data:image\/gif;base64,/,
95
+ );
85
96
 
86
97
  const localImage = root.querySelector("#local");
87
98
  expect(localImage).to.not.equal(null);
@@ -96,4 +107,240 @@ describe("Viewer", function () {
96
107
  }
97
108
  }, 0);
98
109
  });
110
+
111
+ it("removes unsafe links, forms, and interactive html", function (done) {
112
+ const mocks = document.getElementById("mocks");
113
+ mocks.innerHTML = `<monster-viewer id="viewer"></monster-viewer>`;
114
+
115
+ setTimeout(() => {
116
+ try {
117
+ const viewer = document.getElementById("viewer");
118
+ viewer.setContent(
119
+ `
120
+ <a id="script-link" href="jav&#x09;ascript:alert(1)" onclick="alert(2)">masked</a>
121
+ <a id="data-link" href=" DATA:text/html,evil">data</a>
122
+ <a id="custom-link" href="intent://evil">intent</a>
123
+ <a id="web-link" href="https://safe.example/path" ping="https://tracker.example" attributionsrc="https://tracker.example/register">web</a>
124
+ <a id="mail-link" href="mailto:user@example.com">mail</a>
125
+ <a id="phone-link" href="tel:+491234">phone</a>
126
+ <a id="fragment-link" href="#section">fragment</a>
127
+ <form id="form"><input name="secret"><button>Send</button></form>
128
+ <details id="details"><summary>Open</summary>Hidden</details>
129
+ <monster-button id="custom-element">Action</monster-button>
130
+ <svg><use id="external-use" href="https://evil.example/image.svg#pixel"></use></svg>
131
+ `,
132
+ "text/html",
133
+ );
134
+
135
+ setTimeout(() => {
136
+ try {
137
+ const root = viewer.shadowRoot;
138
+ expect(
139
+ root.querySelector("#script-link").hasAttribute("href"),
140
+ ).to.equal(false);
141
+ expect(
142
+ root.querySelector("#script-link").hasAttribute("onclick"),
143
+ ).to.equal(false);
144
+ expect(
145
+ root.querySelector("#data-link").hasAttribute("href"),
146
+ ).to.equal(false);
147
+ expect(
148
+ root.querySelector("#custom-link").hasAttribute("href"),
149
+ ).to.equal(false);
150
+ expect(
151
+ root.querySelector("#web-link").getAttribute("href"),
152
+ ).to.equal("https://safe.example/path");
153
+ expect(
154
+ root.querySelector("#web-link").hasAttribute("ping"),
155
+ ).to.equal(false);
156
+ expect(
157
+ root.querySelector("#web-link").hasAttribute("attributionsrc"),
158
+ ).to.equal(false);
159
+ expect(
160
+ root.querySelector("#mail-link").getAttribute("href"),
161
+ ).to.equal("mailto:user@example.com");
162
+ expect(
163
+ root.querySelector("#phone-link").getAttribute("href"),
164
+ ).to.equal("tel:+491234");
165
+ expect(
166
+ root.querySelector("#fragment-link").getAttribute("href"),
167
+ ).to.equal("#section");
168
+ expect(root.querySelector("form")).to.equal(null);
169
+ expect(root.querySelector("input")).to.equal(null);
170
+ expect(
171
+ root.querySelector("button:not([data-monster-link-action])"),
172
+ ).to.equal(null);
173
+ expect(root.querySelector("details")).to.equal(null);
174
+ expect(root.querySelector("monster-button")).to.equal(null);
175
+ expect(
176
+ root.querySelector("#external-use").hasAttribute("href"),
177
+ ).to.equal(false);
178
+ done();
179
+ } catch (error) {
180
+ done(error);
181
+ }
182
+ }, 0);
183
+ } catch (error) {
184
+ done(error);
185
+ }
186
+ }, 0);
187
+ });
188
+
189
+ it("confirms the canonical destination before opening a link", function (done) {
190
+ const mocks = document.getElementById("mocks");
191
+ mocks.innerHTML = `<monster-viewer id="viewer"></monster-viewer>`;
192
+
193
+ setTimeout(() => {
194
+ const viewer = document.getElementById("viewer");
195
+ const originalOpen = window.open;
196
+ const opened = [];
197
+ window.open = (...args) => {
198
+ opened.push(args);
199
+ return null;
200
+ };
201
+
202
+ try {
203
+ viewer.setContent(
204
+ '<a id="masked-link" href="https://xn--bcher-kva.example/account">Your bank</a>',
205
+ "text/html",
206
+ );
207
+
208
+ setTimeout(() => {
209
+ try {
210
+ const link = viewer.shadowRoot.querySelector("#masked-link");
211
+ link.click();
212
+
213
+ const confirmation = viewer.shadowRoot.querySelector(
214
+ '[data-monster-role="external-link-confirmation"]',
215
+ );
216
+ expect(confirmation.hidden).to.equal(false);
217
+ expect(
218
+ viewer.shadowRoot.querySelector(
219
+ '[data-monster-role="external-link-host"]',
220
+ ).textContent,
221
+ ).to.equal("xn--bcher-kva.example");
222
+ expect(
223
+ viewer.shadowRoot.querySelector(
224
+ '[data-monster-role="external-link-url"]',
225
+ ).textContent,
226
+ ).to.equal("https://xn--bcher-kva.example/account");
227
+
228
+ viewer.shadowRoot
229
+ .querySelector('[data-monster-link-action="cancel"]')
230
+ .click();
231
+ expect(confirmation.hidden).to.equal(true);
232
+ expect(opened).to.have.length(0);
233
+
234
+ link.click();
235
+ viewer.shadowRoot
236
+ .querySelector('[data-monster-link-action="new-window"]')
237
+ .click();
238
+
239
+ link.click();
240
+ viewer.shadowRoot
241
+ .querySelector('[data-monster-link-action="open"]')
242
+ .click();
243
+ expect(opened).to.deep.equal([
244
+ [
245
+ "https://xn--bcher-kva.example/account",
246
+ "_blank",
247
+ "noopener,noreferrer",
248
+ ],
249
+ [
250
+ "https://xn--bcher-kva.example/account",
251
+ "_self",
252
+ "noopener,noreferrer",
253
+ ],
254
+ ]);
255
+ done();
256
+ } catch (error) {
257
+ done(error);
258
+ } finally {
259
+ window.open = originalOpen;
260
+ }
261
+ }, 0);
262
+ } catch (error) {
263
+ window.open = originalOpen;
264
+ done(error);
265
+ }
266
+ }, 0);
267
+ });
268
+
269
+ it("keeps fragment links local without confirmation", function (done) {
270
+ const mocks = document.getElementById("mocks");
271
+ mocks.innerHTML = `<monster-viewer id="viewer"></monster-viewer>`;
272
+
273
+ setTimeout(() => {
274
+ try {
275
+ const viewer = document.getElementById("viewer");
276
+ viewer.setContent(
277
+ '<a id="fragment" href="#message-section">Section</a>',
278
+ "text/html",
279
+ );
280
+ setTimeout(() => {
281
+ try {
282
+ viewer.shadowRoot.querySelector("#fragment").click();
283
+ expect(
284
+ viewer.shadowRoot.querySelector(
285
+ '[data-monster-role="external-link-confirmation"]',
286
+ ).hidden,
287
+ ).to.equal(true);
288
+ done();
289
+ } catch (error) {
290
+ done(error);
291
+ }
292
+ }, 0);
293
+ } catch (error) {
294
+ done(error);
295
+ }
296
+ }, 0);
297
+ });
298
+
299
+ it("confirms links rendered inside an email message", function (done) {
300
+ const mocks = document.getElementById("mocks");
301
+ mocks.innerHTML = `<monster-viewer id="viewer"></monster-viewer>`;
302
+
303
+ setTimeout(() => {
304
+ try {
305
+ const viewer = document.getElementById("viewer");
306
+ viewer.setMessage({
307
+ parts: [
308
+ {
309
+ contentType: "text/html",
310
+ content:
311
+ '<a id="mail-link" href="https://evil.example/login">Trusted portal</a>',
312
+ },
313
+ ],
314
+ });
315
+
316
+ setTimeout(() => {
317
+ try {
318
+ const message = viewer.shadowRoot.querySelector(
319
+ "monster-message-content",
320
+ );
321
+ const html = message.shadowRoot.querySelector(
322
+ "monster-html-content",
323
+ );
324
+ const link = html.shadowRoot.querySelector("#mail-link");
325
+ link.click();
326
+
327
+ const confirmation = viewer.shadowRoot.querySelector(
328
+ '[data-monster-role="external-link-confirmation"]',
329
+ );
330
+ expect(confirmation.hidden).to.equal(false);
331
+ expect(
332
+ viewer.shadowRoot.querySelector(
333
+ '[data-monster-role="external-link-url"]',
334
+ ).textContent,
335
+ ).to.equal("https://evil.example/login");
336
+ done();
337
+ } catch (error) {
338
+ done(error);
339
+ }
340
+ }, 180);
341
+ } catch (error) {
342
+ done(error);
343
+ }
344
+ }, 0);
345
+ });
99
346
  });
@@ -560,6 +560,147 @@ describe('Select', function () {
560
560
  }
561
561
  });
562
562
 
563
+ describe('Create missing filtered options', function () {
564
+ this.timeout(6000);
565
+
566
+ async function createSelect(options = {}) {
567
+ const mocks = document.getElementById('mocks');
568
+ mocks.innerHTML = '';
569
+ const select = document.createElement('monster-select');
570
+ select.setOption('type', 'checkbox');
571
+ select.setOption('filter.mode', 'options');
572
+ select.setOption('filter.position', 'popper');
573
+ select.setOption('options', [
574
+ {label: 'Alpha', value: 'alpha'}
575
+ ]);
576
+ for (const [path, value] of Object.entries(options)) {
577
+ select.setOption(path, value);
578
+ }
579
+ mocks.appendChild(select);
580
+
581
+ await waitForCondition(() => {
582
+ return select.shadowRoot?.querySelector(
583
+ '[data-monster-role="filter"][name="popper-filter"]'
584
+ ) instanceof HTMLInputElement;
585
+ });
586
+
587
+ return select;
588
+ }
589
+
590
+ function enterFilterValue(select, value) {
591
+ const input = select.shadowRoot.querySelector(
592
+ '[data-monster-role="filter"][name="popper-filter"]'
593
+ );
594
+ input.value = value;
595
+ input.dispatchEvent(new Event('input', {
596
+ bubbles: true,
597
+ composed: true
598
+ }));
599
+ return input;
600
+ }
601
+
602
+ afterEach(() => {
603
+ document.getElementById('mocks').innerHTML = '';
604
+ });
605
+
606
+ it('should stay opt-in and suppress empty or existing values', async function () {
607
+ const select = await createSelect();
608
+ const action = select.shadowRoot.querySelector(
609
+ '[data-monster-role="create-option"]'
610
+ );
611
+
612
+ enterFilterValue(select, 'Beta');
613
+ expect(action.getAttribute('data-monster-visibility')).to.equal('hidden');
614
+
615
+ select.setOption('features.createOption', true);
616
+ enterFilterValue(select, ' ');
617
+ expect(action.getAttribute('data-monster-visibility')).to.equal('hidden');
618
+
619
+ enterFilterValue(select, 'ALPHA');
620
+ expect(action.getAttribute('data-monster-visibility')).to.equal('hidden');
621
+ });
622
+
623
+ it('should create badge selections with mouse and touch', async function () {
624
+ const select = await createSelect({
625
+ 'features.createOption': true,
626
+ 'labels.create-option': 'Add tag: ${label}'
627
+ });
628
+
629
+ enterFilterValue(select, 'Beta Tag');
630
+ let action = select.shadowRoot.querySelector(
631
+ '[data-monster-role="create-option"]'
632
+ );
633
+ expect(action.getAttribute('data-monster-visibility')).to.equal('visible');
634
+ expect(action.textContent).to.contain('Add tag: Beta Tag');
635
+ expect(action.querySelector('button').className).to.contain('monster-badge-primary');
636
+ action.click();
637
+
638
+ await waitForCondition(() => select.value.includes('Beta Tag'));
639
+ expect(select.getOption('options').some((option) => {
640
+ return option.value === 'Beta Tag';
641
+ })).to.equal(true);
642
+
643
+ enterFilterValue(select, 'Touch Tag');
644
+ action = select.shadowRoot.querySelector(
645
+ '[data-monster-role="create-option"]'
646
+ );
647
+ action.dispatchEvent(new Event('touch', {
648
+ bubbles: true,
649
+ composed: true,
650
+ cancelable: true
651
+ }));
652
+
653
+ await waitForCondition(() => select.value.includes('Touch Tag'));
654
+ await waitForCondition(() => {
655
+ return select.shadowRoot.querySelectorAll(
656
+ '[data-monster-role="badge-label"]'
657
+ ).length === 2;
658
+ });
659
+ const badges = Array.from(select.shadowRoot.querySelectorAll(
660
+ '[data-monster-role="badge-label"]'
661
+ )).map((badge) => badge.textContent.trim());
662
+ expect(badges).to.include('Beta Tag');
663
+ expect(badges).to.include('Touch Tag');
664
+ });
665
+
666
+ it('should create a configured option from the filter with Enter', async function () {
667
+ const select = await createSelect({
668
+ 'features.createOption': true,
669
+ 'formatter.createOption': (filterValue) => ({
670
+ label: filterValue.toUpperCase(),
671
+ value: `tag:${filterValue.toLowerCase().replaceAll(' ', '-')}`
672
+ })
673
+ });
674
+ let createdOption;
675
+ select.addEventListener('monster-option-created', (event) => {
676
+ createdOption = event.detail.option;
677
+ });
678
+
679
+ const input = enterFilterValue(select, 'New Topic');
680
+ input.dispatchEvent(new KeyboardEvent('keydown', {
681
+ code: 'Enter',
682
+ bubbles: true,
683
+ composed: true,
684
+ cancelable: true
685
+ }));
686
+
687
+ await waitForCondition(() => select.value.includes('tag:new-topic'));
688
+ await waitForCondition(() => createdOption !== undefined);
689
+ await waitForCondition(() => {
690
+ return select.shadowRoot.querySelector(
691
+ '[data-monster-role="badge-label"]'
692
+ );
693
+ });
694
+ expect(createdOption).to.deep.include({
695
+ label: 'NEW TOPIC',
696
+ value: 'tag:new-topic'
697
+ });
698
+ expect(select.shadowRoot.querySelector(
699
+ '[data-monster-role="badge-label"]'
700
+ ).textContent.trim()).to.equal('NEW TOPIC');
701
+ });
702
+ });
703
+
563
704
  describe('With fetch', function () {
564
705
 
565
706
  beforeEach((done) => {