@brandsync/wc 0.0.5 → 0.0.6
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/custom-elements.json +74 -0
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/{p-0ded3be8.entry.js → p-4a0da8e9.entry.js} +1 -1
- package/dist/brandsync-wc/{p-300eea85.entry.js → p-4d999a8d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-cdbad27a.entry.js → p-518b02bf.entry.js} +1 -1
- package/dist/brandsync-wc/p-6648d251.entry.js +1 -0
- package/dist/cjs/brandsync-wc.cjs.js +1 -1
- package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +25 -0
- package/dist/cjs/bs-input.cjs.entry.js +2 -2
- package/dist/cjs/bs-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/bs-menu.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.cmp.test.js +24 -0
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.css +57 -0
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +104 -0
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.stories.js +30 -0
- package/dist/collection/components/bs-input/bs-input.js +2 -2
- package/dist/collection/components/bs-menu/bs-menu.js +1 -1
- package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
- package/dist/components/bs-chatbot-suggestion-button.d.ts +11 -0
- package/dist/components/bs-chatbot-suggestion-button.js +1 -0
- package/dist/components/bs-input.js +1 -1
- package/dist/components/bs-menu-item.js +1 -1
- package/dist/components/bs-menu.js +1 -1
- package/dist/esm/brandsync-wc.js +1 -1
- package/dist/esm/bs-chatbot-suggestion-button.entry.js +23 -0
- package/dist/esm/bs-input.entry.js +2 -2
- package/dist/esm/bs-menu-item.entry.js +1 -1
- package/dist/esm/bs-menu.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.d.ts +46 -0
- package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.stories.d.ts +10 -0
- package/dist/types/components.d.ts +169 -0
- package/package.json +2 -1
package/custom-elements.json
CHANGED
|
@@ -737,6 +737,80 @@
|
|
|
737
737
|
}
|
|
738
738
|
]
|
|
739
739
|
},
|
|
740
|
+
{
|
|
741
|
+
"kind": "javascript-module",
|
|
742
|
+
"path": "src/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.tsx",
|
|
743
|
+
"declarations": [
|
|
744
|
+
{
|
|
745
|
+
"kind": "class",
|
|
746
|
+
"customElement": true,
|
|
747
|
+
"tagName": "bs-chatbot-suggestion-button",
|
|
748
|
+
"name": "BsChatbotSuggestionButton",
|
|
749
|
+
"description": "A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. \"How can I help you?\").\n\nOne instance renders one chip -- to show several suggestion prompts side by side, render\nmultiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this\nlibrary doesn't ship a separate list/group component for that since a `<div>` with\n`flex-wrap: wrap` is sufficient.\n\n## When to use\n- Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.\n\n## When not to use\n- As a general-purpose button -- use `bs-button` instead, this component's pill shape and\n tonal color treatment are specific to Genie chat suggestion prompts.",
|
|
750
|
+
"attributes": [
|
|
751
|
+
{
|
|
752
|
+
"name": "disabled",
|
|
753
|
+
"description": "Disables the button and applies a reduced-opacity treatment.",
|
|
754
|
+
"type": {
|
|
755
|
+
"text": "boolean"
|
|
756
|
+
},
|
|
757
|
+
"default": "false",
|
|
758
|
+
"fieldName": "disabled"
|
|
759
|
+
}
|
|
760
|
+
],
|
|
761
|
+
"members": [
|
|
762
|
+
{
|
|
763
|
+
"kind": "field",
|
|
764
|
+
"name": "disabled",
|
|
765
|
+
"description": "Disables the button and applies a reduced-opacity treatment.",
|
|
766
|
+
"type": {
|
|
767
|
+
"text": "boolean"
|
|
768
|
+
},
|
|
769
|
+
"default": "false",
|
|
770
|
+
"readonly": true,
|
|
771
|
+
"attribute": "disabled"
|
|
772
|
+
}
|
|
773
|
+
],
|
|
774
|
+
"events": [
|
|
775
|
+
{
|
|
776
|
+
"name": "bsSelect",
|
|
777
|
+
"description": "Fires when the button is clicked.",
|
|
778
|
+
"type": {
|
|
779
|
+
"text": "CustomEvent<void>"
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
],
|
|
783
|
+
"slots": [
|
|
784
|
+
{
|
|
785
|
+
"name": "",
|
|
786
|
+
"description": "Default slot: the suggestion's label text."
|
|
787
|
+
}
|
|
788
|
+
],
|
|
789
|
+
"cssParts": [
|
|
790
|
+
{
|
|
791
|
+
"name": "button",
|
|
792
|
+
"description": "The button element."
|
|
793
|
+
}
|
|
794
|
+
]
|
|
795
|
+
}
|
|
796
|
+
],
|
|
797
|
+
"exports": [
|
|
798
|
+
{
|
|
799
|
+
"kind": "js",
|
|
800
|
+
"name": "BsChatbotSuggestionButton",
|
|
801
|
+
"declaration": {
|
|
802
|
+
"name": "BsChatbotSuggestionButton"
|
|
803
|
+
}
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"kind": "custom-element-definition",
|
|
807
|
+
"name": "bs-chatbot-suggestion-button",
|
|
808
|
+
"declaration": {
|
|
809
|
+
"name": "BsChatbotSuggestionButton"
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
]
|
|
813
|
+
},
|
|
740
814
|
{
|
|
741
815
|
"kind": "javascript-module",
|
|
742
816
|
"path": "src/components/bs-composer/bs-composer.tsx",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,g as a,b as o}from"./p-nLORuTUY.js";export{s as setNonce}from"./p-nLORuTUY.js";(()=>{const a=import.meta.url,s={};return""!==a&&(s.resourcesUrl=new URL(".",a).href),e(s)})().then((async e=>(await a(),o([["p-ab5cc7af",[[769,"bs-badge",{variant:[1]}]]],["p-2742ecef",[[785,"bs-button",{variant:[1],size:[1],disabled:[4],type:[1],ariaLabel:[1,"aria-label"],hasIcon:[32],hasEndIcon:[32],hasLabel:[32]}]]],["p-27288299",[[513,"bs-button-skeleton",{size:[1]}]]],["p-cfc3421b",[[769,"bs-card",{surface:[1]}]]],["p-b24c455f",[[769,"bs-chatbot-header",{heading:[1],expanded:[1540]}]]],["p-1dc6d7f5",[[769,"bs-chatbot-response-action",{sourcesCount:[2,"sources-count"],menuOpen:[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["p-6c1fa4da",[[785,"bs-composer",{variant:[1],placeholder:[1],value:[1],state:[1],ariaLabel:[1,"aria-label"]}]]],["p-9e5d2211",[[513,"bs-data-table",{columns:[16],rows:[16],sortColumn:[1,"sort-column"],sortDirection:[1,"sort-direction"],selectable:[4],cellRenderer:[16],selectedIds:[32]}]]],["p-
|
|
1
|
+
import{p as e,g as a,b as o}from"./p-nLORuTUY.js";export{s as setNonce}from"./p-nLORuTUY.js";(()=>{const a=import.meta.url,s={};return""!==a&&(s.resourcesUrl=new URL(".",a).href),e(s)})().then((async e=>(await a(),o([["p-ab5cc7af",[[769,"bs-badge",{variant:[1]}]]],["p-2742ecef",[[785,"bs-button",{variant:[1],size:[1],disabled:[4],type:[1],ariaLabel:[1,"aria-label"],hasIcon:[32],hasEndIcon:[32],hasLabel:[32]}]]],["p-27288299",[[513,"bs-button-skeleton",{size:[1]}]]],["p-cfc3421b",[[769,"bs-card",{surface:[1]}]]],["p-b24c455f",[[769,"bs-chatbot-header",{heading:[1],expanded:[1540]}]]],["p-1dc6d7f5",[[769,"bs-chatbot-response-action",{sourcesCount:[2,"sources-count"],menuOpen:[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["p-6648d251",[[769,"bs-chatbot-suggestion-button",{disabled:[4]}]]],["p-6c1fa4da",[[785,"bs-composer",{variant:[1],placeholder:[1],value:[1],state:[1],ariaLabel:[1,"aria-label"]}]]],["p-9e5d2211",[[513,"bs-data-table",{columns:[16],rows:[16],sortColumn:[1,"sort-column"],sortDirection:[1,"sort-direction"],selectable:[4],cellRenderer:[16],selectedIds:[32]}]]],["p-4a0da8e9",[[529,"bs-input",{value:[1],type:[1],label:[1],placeholder:[1],description:[1],error:[1],disabled:[4]}]]],["p-4d999a8d",[[257,"bs-menu"]]],["p-518b02bf",[[769,"bs-menu-item",{hasIcon:[32]}]]],["p-880ea3f8",[[769,"bs-modal",{open:[1540],heading:[1],size:[1],hasFooter:[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]],e))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,c as s,h as t}from"./p-nLORuTUY.js";const i=class{constructor(t){r(this,t),this.bsInput=s(this,"bsInput"),this.bsChange=s(this,"bsChange")}value="";type="text";label;placeholder;description;error;disabled=!1;bsInput;bsChange;onInput=r=>{this.bsInput.emit(r.target.value)};onChange=r=>{this.bsChange.emit(r.target.value)};render(){return t("div",{key:"
|
|
1
|
+
import{r,c as s,h as t}from"./p-nLORuTUY.js";const i=class{constructor(t){r(this,t),this.bsInput=s(this,"bsInput"),this.bsChange=s(this,"bsChange")}value="";type="text";label;placeholder;description;error;disabled=!1;bsInput;bsChange;onInput=r=>{this.bsInput.emit(r.target.value)};onChange=r=>{this.bsChange.emit(r.target.value)};render(){return t("div",{key:"571583a0d1181a2e307ba86679003c6cc37e4e63",class:"bs-input "+(this.error?"bs-input--error":"")},this.label&&t("label",{key:"0a6c34ad8de3227e1264af649c1ac227e64c67bd",part:"label",class:"bs-input__label",htmlFor:"control"},this.label),t("input",{key:"de46e2c3272735160ca1773abf6fd270d042cfdd",id:"control",part:"control",class:"bs-input__control",type:this.type,value:this.value,placeholder:this.placeholder,disabled:this.disabled,"aria-describedby":this.error||this.description?"description-or-error":void 0,"aria-invalid":this.error?"true":void 0,onInput:this.onInput,onChange:this.onChange}),this.error?t("span",{id:"description-or-error",part:"error",class:"bs-input__error"},this.error):this.description?t("span",{id:"description-or-error",part:"description",class:"bs-input__description"},this.description):null)}static get delegatesFocus(){return!0}};i.style=":host{display:block}.bs-input{display:flex;flex-direction:column;gap:var(--bs-spacing-100);font-family:inherit}.bs-input__label{font-size:var(--bs-font-size-sm);font-weight:var(--bs-font-weight-medium);color:var(--bs-input-label)}.bs-input__control{height:var(--bs-spacing-600);padding:0 var(--bs-spacing-300);border:1px solid var(--bs-input-border-default);border-radius:var(--bs-border-radius-100);background:var(--bs-input-bg-default);color:var(--bs-input-text);font-size:var(--bs-font-size-md);font-family:inherit}.bs-input__control::placeholder{color:var(--bs-input-placeholder)}.bs-input__control:hover:not(:disabled){border-color:var(--bs-input-border-hover)}.bs-input__control:focus-visible{outline:none;border-color:var(--bs-input-border-focus)}.bs-input__control:disabled{background:var(--bs-input-bg-disabled);color:var(--bs-input-text-disabled);cursor:not-allowed}.bs-input--error .bs-input__control{border-color:var(--bs-input-border-error)}.bs-input--error .bs-input__label{color:var(--bs-input-label)}.bs-input__description{font-size:var(--bs-font-size-xs);color:var(--bs-input-description)}.bs-input__error{font-size:var(--bs-font-size-xs);color:var(--bs-input-error)}";export{i as bs_input}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s,h as a}from"./p-nLORuTUY.js";const e=class{constructor(a){s(this,a)}render(){return a("div",{key:"
|
|
1
|
+
import{r as s,h as a}from"./p-nLORuTUY.js";const e=class{constructor(a){s(this,a)}render(){return a("div",{key:"e5008951228aa528404f810fe9ce90a5ee7298b1",part:"list",class:"bs-menu",role:"menu"},a("slot",{key:"d2e590cf51f626bd22dce58535fbea81291f9068"}))}};e.style=":host{display:block;--bs-menu-bg:var(--bs-surface-raised);--bs-menu-radius:var(--bs-border-radius-100);--bs-menu-padding-y:var(--bs-spacing-50);--bs-menu-gap:var(--bs-spacing-50);--bs-menu-shadow:var(--bs-shadow-sm)}.bs-menu{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-menu-gap);background:var(--bs-menu-bg);border-radius:var(--bs-menu-radius);padding:var(--bs-menu-padding-y) 0;box-shadow:var(--bs-menu-shadow);font-family:inherit}";export{e as bs_menu}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,c as n,h as s}from"./p-nLORuTUY.js";const i=class{constructor(s){e(this,s),this.bsSelect=n(this,"bsSelect")}hasIcon=!1;bsSelect;onIconSlotchange=e=>{this.hasIcon=e.target.assignedNodes().length>0};onClick=()=>{this.bsSelect.emit()};render(){return s("button",{key:"
|
|
1
|
+
import{r as e,c as n,h as s}from"./p-nLORuTUY.js";const i=class{constructor(s){e(this,s),this.bsSelect=n(this,"bsSelect")}hasIcon=!1;bsSelect;onIconSlotchange=e=>{this.hasIcon=e.target.assignedNodes().length>0};onClick=()=>{this.bsSelect.emit()};render(){return s("button",{key:"0fbb5f8802a2866794682b90a850d5455c86d69e",type:"button",part:"item",role:"menuitem",class:"bs-menu-item",onClick:this.onClick},s("span",{key:"810cd5b7bebf0f0f411a956fa13357b4bc3b18ae",part:"icon",class:"bs-menu-item__icon "+(this.hasIcon?"bs-menu-item__icon--has-content":"")},s("slot",{key:"683105e1dd44932ac0b569d57eccc3fb54dc1497",name:"icon",onSlotchange:this.onIconSlotchange})),s("span",{key:"2d0edd4325f535020b04bcea93db47ef60d33127",part:"label",class:"bs-menu-item__label"},s("slot",{key:"b7ca912d7ec3b5ac3a78f09eb03b8d6b0f96cc2e"})))}};i.style=":host{display:block;--bs-menu-item-radius:var(--bs-border-radius-100);--bs-menu-item-padding-y:var(--bs-spacing-100);--bs-menu-item-padding-x:var(--bs-spacing-150);--bs-menu-item-gap:var(--bs-spacing-100);--bs-menu-item-hover:var(--bs-color-neutral-container);--bs-menu-item-pressed:var(--bs-color-neutral-container-pressed);--bs-menu-item-icon-color:var(--bs-icon-default);--bs-menu-item-color:var(--bs-text-muted);--bs-menu-item-font-size:var(--bs-font-size-md);--bs-menu-item-line-height:var(--bs-line-height-body-md)}.bs-menu-item{box-sizing:border-box;display:flex;align-items:center;width:100%;height:48px;border:none;cursor:pointer;background:transparent;color:var(--bs-menu-item-color);font-family:inherit;border-radius:var(--bs-menu-item-radius);padding:var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);gap:var(--bs-menu-item-gap);transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-menu-item:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-menu-item:hover{background:var(--bs-menu-item-hover)}.bs-menu-item:active{background:var(--bs-menu-item-pressed)}.bs-menu-item__icon{display:none;width:24px;height:24px;flex-shrink:0;color:var(--bs-menu-item-icon-color)}.bs-menu-item__icon--has-content{display:inline-flex;align-items:center;justify-content:center}.bs-menu-item__icon ::slotted(svg){width:24px;height:24px}.bs-menu-item__label{font-size:var(--bs-menu-item-font-size);line-height:calc(var(--bs-menu-item-line-height) * 1px);white-space:nowrap}";export{i as bs_menu_item}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,c as o,h as s}from"./p-nLORuTUY.js";const b=class{constructor(s){t(this,s),this.bsSelect=o(this,"bsSelect")}disabled=!1;bsSelect;onClick=()=>{this.bsSelect.emit()};render(){return s("button",{key:"e19ad1fd5e95f84f6bff54cbc326e78f70ef3677",type:"button",part:"button",class:"bs-chatbot-suggestion-button",disabled:this.disabled,onClick:this.onClick},s("slot",{key:"4048fb336d69f0ca78e50ea9d5cba52921906966"}))}};b.style=":host{display:inline-block;--bs-chatbot-suggestion-button-radius:var(--bs-border-radius-full);--bs-chatbot-suggestion-button-border-color:var(--bs-border-primary);--bs-chatbot-suggestion-button-bg-default:var(--bs-color-primary-container);--bs-chatbot-suggestion-button-bg-hover:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-bg-pressed:var(--bs-brand-200);--bs-chatbot-suggestion-button-bg-focus:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-text-default:var(--bs-text-action);--bs-chatbot-suggestion-button-text-hover:var(--bs-text-action-hover);--bs-chatbot-suggestion-button-focus-ring-color:var(--bs-border-primary-focus)}.bs-chatbot-suggestion-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:40px;min-width:80px;padding:var(--bs-spacing-100) var(--bs-spacing-200);border:var(--bs-border-width-thin) solid var(--bs-chatbot-suggestion-button-border-color);border-radius:var(--bs-chatbot-suggestion-button-radius);background:var(--bs-chatbot-suggestion-button-bg-default);color:var(--bs-chatbot-suggestion-button-text-default);font-family:inherit;font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);text-align:center;cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-suggestion-button:hover:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-hover);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:active:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-pressed);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:focus-visible{background:var(--bs-chatbot-suggestion-button-bg-focus);color:var(--bs-chatbot-suggestion-button-text-hover);outline:var(--bs-border-width-medium) solid var(--bs-chatbot-suggestion-button-focus-ring-color);outline-offset:3px}.bs-chatbot-suggestion-button:disabled{opacity:var(--bs-opacity-disabled);cursor:not-allowed}";export{b as bs_chatbot_suggestion_button}
|
|
@@ -18,7 +18,7 @@ var patchBrowser = () => {
|
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(async (options) => {
|
|
20
20
|
await index.globalScripts();
|
|
21
|
-
return index.bootstrapLazy([["bs-badge.cjs",[[769,"bs-badge",{"variant":[1]}]]],["bs-button.cjs",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-button-skeleton.cjs",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card.cjs",[[769,"bs-card",{"surface":[1]}]]],["bs-chatbot-header.cjs",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-chatbot-response-action.cjs",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-composer.cjs",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1],"state":[1],"ariaLabel":[1,"aria-label"]}]]],["bs-data-table.cjs",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32]}]]],["bs-input.cjs",[[529,"bs-input",{"value":[1],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4]}]]],["bs-menu.cjs",[[257,"bs-menu"]]],["bs-menu-item.cjs",[[769,"bs-menu-item",{"hasIcon":[32]}]]],["bs-modal.cjs",[[769,"bs-modal",{"open":[1540],"heading":[1],"size":[1],"hasFooter":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]], options);
|
|
21
|
+
return index.bootstrapLazy([["bs-badge.cjs",[[769,"bs-badge",{"variant":[1]}]]],["bs-button.cjs",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-button-skeleton.cjs",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card.cjs",[[769,"bs-card",{"surface":[1]}]]],["bs-chatbot-header.cjs",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-chatbot-response-action.cjs",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-chatbot-suggestion-button.cjs",[[769,"bs-chatbot-suggestion-button",{"disabled":[4]}]]],["bs-composer.cjs",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1],"state":[1],"ariaLabel":[1,"aria-label"]}]]],["bs-data-table.cjs",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32]}]]],["bs-input.cjs",[[529,"bs-input",{"value":[1],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4]}]]],["bs-menu.cjs",[[257,"bs-menu"]]],["bs-menu-item.cjs",[[769,"bs-menu-item",{"hasIcon":[32]}]]],["bs-modal.cjs",[[769,"bs-modal",{"open":[1540],"heading":[1],"size":[1],"hasFooter":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]], options);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
exports.setNonce = index.setNonce;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CVh-sqA_.js');
|
|
4
|
+
|
|
5
|
+
const bsChatbotSuggestionButtonCss = () => `:host{display:inline-block;--bs-chatbot-suggestion-button-radius:var(--bs-border-radius-full);--bs-chatbot-suggestion-button-border-color:var(--bs-border-primary);--bs-chatbot-suggestion-button-bg-default:var(--bs-color-primary-container);--bs-chatbot-suggestion-button-bg-hover:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-bg-pressed:var(--bs-brand-200);--bs-chatbot-suggestion-button-bg-focus:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-text-default:var(--bs-text-action);--bs-chatbot-suggestion-button-text-hover:var(--bs-text-action-hover);--bs-chatbot-suggestion-button-focus-ring-color:var(--bs-border-primary-focus)}.bs-chatbot-suggestion-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:40px;min-width:80px;padding:var(--bs-spacing-100) var(--bs-spacing-200);border:var(--bs-border-width-thin) solid var(--bs-chatbot-suggestion-button-border-color);border-radius:var(--bs-chatbot-suggestion-button-radius);background:var(--bs-chatbot-suggestion-button-bg-default);color:var(--bs-chatbot-suggestion-button-text-default);font-family:inherit;font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);text-align:center;cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-suggestion-button:hover:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-hover);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:active:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-pressed);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:focus-visible{background:var(--bs-chatbot-suggestion-button-bg-focus);color:var(--bs-chatbot-suggestion-button-text-hover);outline:var(--bs-border-width-medium) solid var(--bs-chatbot-suggestion-button-focus-ring-color);outline-offset:3px}.bs-chatbot-suggestion-button:disabled{opacity:var(--bs-opacity-disabled);cursor:not-allowed}`;
|
|
6
|
+
|
|
7
|
+
const BsChatbotSuggestionButton = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
this.bsSelect = index.createEvent(this, "bsSelect");
|
|
11
|
+
}
|
|
12
|
+
/** Disables the button and applies a reduced-opacity treatment. */
|
|
13
|
+
disabled = false;
|
|
14
|
+
/** Fires when the button is clicked. */
|
|
15
|
+
bsSelect;
|
|
16
|
+
onClick = () => {
|
|
17
|
+
this.bsSelect.emit();
|
|
18
|
+
};
|
|
19
|
+
render() {
|
|
20
|
+
return (index.h("button", { key: 'e19ad1fd5e95f84f6bff54cbc326e78f70ef3677', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, index.h("slot", { key: '4048fb336d69f0ca78e50ea9d5cba52921906966' })));
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
BsChatbotSuggestionButton.style = bsChatbotSuggestionButtonCss();
|
|
24
|
+
|
|
25
|
+
exports.bs_chatbot_suggestion_button = BsChatbotSuggestionButton;
|
|
@@ -30,10 +30,10 @@ const BsInput = class {
|
|
|
30
30
|
this.bsChange.emit(value);
|
|
31
31
|
};
|
|
32
32
|
render() {
|
|
33
|
-
return (index.h("div", { key: '
|
|
33
|
+
return (index.h("div", { key: '571583a0d1181a2e307ba86679003c6cc37e4e63', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
|
|
34
34
|
// "control" is a fixed id, not a generated one -- safe because Shadow DOM scopes ids
|
|
35
35
|
// to this instance's own shadow root, so it can never collide with another bs-input.
|
|
36
|
-
index.h("label", { key: '
|
|
36
|
+
index.h("label", { key: '0a6c34ad8de3227e1264af649c1ac227e64c67bd', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label)), index.h("input", { key: 'de46e2c3272735160ca1773abf6fd270d042cfdd', id: "control", part: "control", class: "bs-input__control", type: this.type, value: this.value, placeholder: this.placeholder, disabled: this.disabled, "aria-describedby": this.error || this.description ? 'description-or-error' : undefined, "aria-invalid": this.error ? 'true' : undefined, onInput: this.onInput, onChange: this.onChange }), this.error ? (index.h("span", { id: "description-or-error", part: "error", class: "bs-input__error" }, this.error)) : this.description ? (index.h("span", { id: "description-or-error", part: "description", class: "bs-input__description" }, this.description)) : null));
|
|
37
37
|
}
|
|
38
38
|
static get delegatesFocus() { return true; }
|
|
39
39
|
};
|
|
@@ -21,7 +21,7 @@ const BsMenuItem = class {
|
|
|
21
21
|
this.bsSelect.emit();
|
|
22
22
|
};
|
|
23
23
|
render() {
|
|
24
|
-
return (index.h("button", { key: '
|
|
24
|
+
return (index.h("button", { key: '0fbb5f8802a2866794682b90a850d5455c86d69e', type: "button", part: "item", role: "menuitem", class: "bs-menu-item", onClick: this.onClick }, index.h("span", { key: '810cd5b7bebf0f0f411a956fa13357b4bc3b18ae', part: "icon", class: `bs-menu-item__icon ${this.hasIcon ? 'bs-menu-item__icon--has-content' : ''}` }, index.h("slot", { key: '683105e1dd44932ac0b569d57eccc3fb54dc1497', name: "icon", onSlotchange: this.onIconSlotchange })), index.h("span", { key: '2d0edd4325f535020b04bcea93db47ef60d33127', part: "label", class: "bs-menu-item__label" }, index.h("slot", { key: 'b7ca912d7ec3b5ac3a78f09eb03b8d6b0f96cc2e' }))));
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
BsMenuItem.style = bsMenuItemCss();
|
|
@@ -9,7 +9,7 @@ const BsMenu = class {
|
|
|
9
9
|
index.registerInstance(this, hostRef);
|
|
10
10
|
}
|
|
11
11
|
render() {
|
|
12
|
-
return (index.h("div", { key: '
|
|
12
|
+
return (index.h("div", { key: 'e5008951228aa528404f810fe9ce90a5ee7298b1', part: "list", class: "bs-menu", role: "menu" }, index.h("slot", { key: 'd2e590cf51f626bd22dce58535fbea81291f9068' })));
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
BsMenu.style = bsMenuCss();
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -5,7 +5,7 @@ var index = require('./index-CVh-sqA_.js');
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await index.globalScripts();
|
|
8
|
-
return index.bootstrapLazy([["bs-badge.cjs",[[769,"bs-badge",{"variant":[1]}]]],["bs-button.cjs",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-button-skeleton.cjs",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card.cjs",[[769,"bs-card",{"surface":[1]}]]],["bs-chatbot-header.cjs",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-chatbot-response-action.cjs",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-composer.cjs",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1],"state":[1],"ariaLabel":[1,"aria-label"]}]]],["bs-data-table.cjs",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32]}]]],["bs-input.cjs",[[529,"bs-input",{"value":[1],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4]}]]],["bs-menu.cjs",[[257,"bs-menu"]]],["bs-menu-item.cjs",[[769,"bs-menu-item",{"hasIcon":[32]}]]],["bs-modal.cjs",[[769,"bs-modal",{"open":[1540],"heading":[1],"size":[1],"hasFooter":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]], options);
|
|
8
|
+
return index.bootstrapLazy([["bs-badge.cjs",[[769,"bs-badge",{"variant":[1]}]]],["bs-button.cjs",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-button-skeleton.cjs",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card.cjs",[[769,"bs-card",{"surface":[1]}]]],["bs-chatbot-header.cjs",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-chatbot-response-action.cjs",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-chatbot-suggestion-button.cjs",[[769,"bs-chatbot-suggestion-button",{"disabled":[4]}]]],["bs-composer.cjs",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1],"state":[1],"ariaLabel":[1,"aria-label"]}]]],["bs-data-table.cjs",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32]}]]],["bs-input.cjs",[[529,"bs-input",{"value":[1],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4]}]]],["bs-menu.cjs",[[257,"bs-menu"]]],["bs-menu-item.cjs",[[769,"bs-menu-item",{"hasIcon":[32]}]]],["bs-modal.cjs",[[769,"bs-modal",{"open":[1540],"heading":[1],"size":[1],"hasFooter":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
exports.setNonce = index.setNonce;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"components/bs-button-skeleton/bs-button-skeleton.js",
|
|
10
10
|
"components/bs-chatbot-header/bs-chatbot-header.js",
|
|
11
11
|
"components/bs-chatbot-response-action/bs-chatbot-response-action.js",
|
|
12
|
+
"components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js",
|
|
12
13
|
"components/bs-input/bs-input.js",
|
|
13
14
|
"components/bs-menu/bs-menu.js",
|
|
14
15
|
"components/bs-menu-item/bs-menu-item.js"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
describe('bs-chatbot-suggestion-button', () => {
|
|
3
|
+
it('renders the default slot label content and the button part', async () => {
|
|
4
|
+
const { root } = await render(h("bs-chatbot-suggestion-button", null, "How can I help you?"));
|
|
5
|
+
expect(root).toHaveTextContent('How can I help you?');
|
|
6
|
+
const button = root.shadowRoot.querySelector('[part="button"]');
|
|
7
|
+
expect(button).not.toBeNull();
|
|
8
|
+
expect(button.tagName).toBe('BUTTON');
|
|
9
|
+
});
|
|
10
|
+
it('emits bsSelect exactly once on a normal click', async () => {
|
|
11
|
+
const { root, spyOnEvent } = await render(h("bs-chatbot-suggestion-button", null, "Suggestion"));
|
|
12
|
+
const selectSpy = spyOnEvent('bsSelect');
|
|
13
|
+
root.shadowRoot.querySelector('[part="button"]').click();
|
|
14
|
+
expect(selectSpy).toHaveReceivedEventTimes(1);
|
|
15
|
+
});
|
|
16
|
+
it('applies the native disabled attribute and does not fire bsSelect on click when disabled', async () => {
|
|
17
|
+
const { root, spyOnEvent } = await render(h("bs-chatbot-suggestion-button", { disabled: true }, "Suggestion"));
|
|
18
|
+
const selectSpy = spyOnEvent('bsSelect');
|
|
19
|
+
const button = root.shadowRoot.querySelector('[part="button"]');
|
|
20
|
+
expect(button.disabled).toBe(true);
|
|
21
|
+
button.click();
|
|
22
|
+
expect(selectSpy.length).toBe(0);
|
|
23
|
+
});
|
|
24
|
+
});
|
package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.css
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: inline-block;
|
|
3
|
+
--bs-chatbot-suggestion-button-radius: var(--bs-border-radius-full);
|
|
4
|
+
--bs-chatbot-suggestion-button-border-color: var(--bs-border-primary);
|
|
5
|
+
--bs-chatbot-suggestion-button-bg-default: var(--bs-color-primary-container);
|
|
6
|
+
--bs-chatbot-suggestion-button-bg-hover: var(--bs-color-primary-container-hover);
|
|
7
|
+
/* No pre-built semantic "container-pressed" token matches this tonal button's lighter pressed
|
|
8
|
+
* shade progression (50 -> 100 -> 200) -- alias the primitive directly, same precedent
|
|
9
|
+
* documented in bs-button.css for its subtle/outlined/success/warning/info variants. */
|
|
10
|
+
--bs-chatbot-suggestion-button-bg-pressed: var(--bs-brand-200);
|
|
11
|
+
--bs-chatbot-suggestion-button-bg-focus: var(--bs-color-primary-container-hover);
|
|
12
|
+
--bs-chatbot-suggestion-button-text-default: var(--bs-text-action);
|
|
13
|
+
--bs-chatbot-suggestion-button-text-hover: var(--bs-text-action-hover);
|
|
14
|
+
--bs-chatbot-suggestion-button-focus-ring-color: var(--bs-border-primary-focus);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.bs-chatbot-suggestion-button {
|
|
18
|
+
box-sizing: border-box;
|
|
19
|
+
display: inline-flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
height: 40px;
|
|
23
|
+
min-width: 80px;
|
|
24
|
+
padding: var(--bs-spacing-100) var(--bs-spacing-200);
|
|
25
|
+
border: var(--bs-border-width-thin) solid var(--bs-chatbot-suggestion-button-border-color);
|
|
26
|
+
border-radius: var(--bs-chatbot-suggestion-button-radius);
|
|
27
|
+
background: var(--bs-chatbot-suggestion-button-bg-default);
|
|
28
|
+
color: var(--bs-chatbot-suggestion-button-text-default);
|
|
29
|
+
font-family: inherit;
|
|
30
|
+
font-size: var(--bs-font-size-md);
|
|
31
|
+
line-height: calc(var(--bs-line-height-body-md) * 1px);
|
|
32
|
+
text-align: center;
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
transition: background-color var(--bs-duration-fast) var(--bs-easing-standard);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.bs-chatbot-suggestion-button:hover:not(:disabled) {
|
|
38
|
+
background: var(--bs-chatbot-suggestion-button-bg-hover);
|
|
39
|
+
color: var(--bs-chatbot-suggestion-button-text-hover);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.bs-chatbot-suggestion-button:active:not(:disabled) {
|
|
43
|
+
background: var(--bs-chatbot-suggestion-button-bg-pressed);
|
|
44
|
+
color: var(--bs-chatbot-suggestion-button-text-hover);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.bs-chatbot-suggestion-button:focus-visible {
|
|
48
|
+
background: var(--bs-chatbot-suggestion-button-bg-focus);
|
|
49
|
+
color: var(--bs-chatbot-suggestion-button-text-hover);
|
|
50
|
+
outline: var(--bs-border-width-medium) solid var(--bs-chatbot-suggestion-button-focus-ring-color);
|
|
51
|
+
outline-offset: 3px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.bs-chatbot-suggestion-button:disabled {
|
|
55
|
+
opacity: var(--bs-opacity-disabled);
|
|
56
|
+
cursor: not-allowed;
|
|
57
|
+
}
|
package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
4
|
+
*
|
|
5
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
6
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
7
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
8
|
+
* `flex-wrap: wrap` is sufficient.
|
|
9
|
+
*
|
|
10
|
+
* ## When to use
|
|
11
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
12
|
+
*
|
|
13
|
+
* ## When not to use
|
|
14
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
15
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
16
|
+
*
|
|
17
|
+
* @slot - Default slot: the suggestion's label text.
|
|
18
|
+
* @part button - The button element.
|
|
19
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
20
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
21
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
22
|
+
* Aliased to `--bs-color-primary-container`.
|
|
23
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
24
|
+
* `--bs-color-primary-container-hover`.
|
|
25
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
26
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
27
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
28
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
29
|
+
* subtle/outlined/success/warning/info variants).
|
|
30
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
31
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
32
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
33
|
+
* `--bs-text-action`.
|
|
34
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
35
|
+
* Aliased to `--bs-text-action-hover`.
|
|
36
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
37
|
+
* `--bs-border-primary-focus`.
|
|
38
|
+
*/
|
|
39
|
+
export class BsChatbotSuggestionButton {
|
|
40
|
+
/** Disables the button and applies a reduced-opacity treatment. */
|
|
41
|
+
disabled = false;
|
|
42
|
+
/** Fires when the button is clicked. */
|
|
43
|
+
bsSelect;
|
|
44
|
+
onClick = () => {
|
|
45
|
+
this.bsSelect.emit();
|
|
46
|
+
};
|
|
47
|
+
render() {
|
|
48
|
+
return (h("button", { key: 'e19ad1fd5e95f84f6bff54cbc326e78f70ef3677', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: '4048fb336d69f0ca78e50ea9d5cba52921906966' })));
|
|
49
|
+
}
|
|
50
|
+
static get is() { return "bs-chatbot-suggestion-button"; }
|
|
51
|
+
static get encapsulation() { return "shadow"; }
|
|
52
|
+
static get originalStyleUrls() {
|
|
53
|
+
return {
|
|
54
|
+
"$": ["bs-chatbot-suggestion-button.css"]
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
static get styleUrls() {
|
|
58
|
+
return {
|
|
59
|
+
"$": ["bs-chatbot-suggestion-button.css"]
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
static get properties() {
|
|
63
|
+
return {
|
|
64
|
+
"disabled": {
|
|
65
|
+
"type": "boolean",
|
|
66
|
+
"mutable": false,
|
|
67
|
+
"complexType": {
|
|
68
|
+
"original": "boolean",
|
|
69
|
+
"resolved": "boolean",
|
|
70
|
+
"references": {}
|
|
71
|
+
},
|
|
72
|
+
"required": false,
|
|
73
|
+
"optional": false,
|
|
74
|
+
"docs": {
|
|
75
|
+
"tags": [],
|
|
76
|
+
"text": "Disables the button and applies a reduced-opacity treatment."
|
|
77
|
+
},
|
|
78
|
+
"getter": false,
|
|
79
|
+
"setter": false,
|
|
80
|
+
"reflect": false,
|
|
81
|
+
"attribute": "disabled",
|
|
82
|
+
"defaultValue": "false"
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
static get events() {
|
|
87
|
+
return [{
|
|
88
|
+
"method": "bsSelect",
|
|
89
|
+
"name": "bsSelect",
|
|
90
|
+
"bubbles": true,
|
|
91
|
+
"cancelable": true,
|
|
92
|
+
"composed": true,
|
|
93
|
+
"docs": {
|
|
94
|
+
"tags": [],
|
|
95
|
+
"text": "Fires when the button is clicked."
|
|
96
|
+
},
|
|
97
|
+
"complexType": {
|
|
98
|
+
"original": "void",
|
|
99
|
+
"resolved": "void",
|
|
100
|
+
"references": {}
|
|
101
|
+
}
|
|
102
|
+
}];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { componentDescription, propDescription } from "../../stories-utils";
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Genie AI Components/bs-chatbot-suggestion-button',
|
|
5
|
+
parameters: { docs: { description: { component: componentDescription('bs-chatbot-suggestion-button') } } },
|
|
6
|
+
render: args => html `
|
|
7
|
+
<bs-chatbot-suggestion-button ?disabled=${args.disabled}>${args.label}</bs-chatbot-suggestion-button>
|
|
8
|
+
`,
|
|
9
|
+
argTypes: {
|
|
10
|
+
label: { control: 'text', description: 'Default slot: the suggestion label text.' },
|
|
11
|
+
disabled: { control: 'boolean', description: propDescription('bs-chatbot-suggestion-button', 'disabled') },
|
|
12
|
+
},
|
|
13
|
+
args: {
|
|
14
|
+
label: 'How can I help you?',
|
|
15
|
+
disabled: false,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
export default meta;
|
|
19
|
+
export const Default = {};
|
|
20
|
+
export const SuggestionRow = {
|
|
21
|
+
name: 'Multiple suggestions (flex-wrap row)',
|
|
22
|
+
render: () => html `
|
|
23
|
+
<div style="display: flex; flex-wrap: wrap; gap: 8px; max-width: 420px;">
|
|
24
|
+
<bs-chatbot-suggestion-button>How can I help you?</bs-chatbot-suggestion-button>
|
|
25
|
+
<bs-chatbot-suggestion-button>Summarize this document</bs-chatbot-suggestion-button>
|
|
26
|
+
<bs-chatbot-suggestion-button>Draft a follow-up email</bs-chatbot-suggestion-button>
|
|
27
|
+
<bs-chatbot-suggestion-button>Explain this in simple terms</bs-chatbot-suggestion-button>
|
|
28
|
+
</div>
|
|
29
|
+
`,
|
|
30
|
+
};
|
|
@@ -36,10 +36,10 @@ export class BsInput {
|
|
|
36
36
|
this.bsChange.emit(value);
|
|
37
37
|
};
|
|
38
38
|
render() {
|
|
39
|
-
return (h("div", { key: '
|
|
39
|
+
return (h("div", { key: '571583a0d1181a2e307ba86679003c6cc37e4e63', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
|
|
40
40
|
// "control" is a fixed id, not a generated one -- safe because Shadow DOM scopes ids
|
|
41
41
|
// to this instance's own shadow root, so it can never collide with another bs-input.
|
|
42
|
-
h("label", { key: '
|
|
42
|
+
h("label", { key: '0a6c34ad8de3227e1264af649c1ac227e64c67bd', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label)), h("input", { key: 'de46e2c3272735160ca1773abf6fd270d042cfdd', id: "control", part: "control", class: "bs-input__control", type: this.type, value: this.value, placeholder: this.placeholder, disabled: this.disabled, "aria-describedby": this.error || this.description ? 'description-or-error' : undefined, "aria-invalid": this.error ? 'true' : undefined, onInput: this.onInput, onChange: this.onChange }), this.error ? (h("span", { id: "description-or-error", part: "error", class: "bs-input__error" }, this.error)) : this.description ? (h("span", { id: "description-or-error", part: "description", class: "bs-input__description" }, this.description)) : null));
|
|
43
43
|
}
|
|
44
44
|
static get is() { return "bs-input"; }
|
|
45
45
|
static get encapsulation() { return "shadow"; }
|
|
@@ -22,7 +22,7 @@ import { h } from "@stencil/core";
|
|
|
22
22
|
*/
|
|
23
23
|
export class BsMenu {
|
|
24
24
|
render() {
|
|
25
|
-
return (h("div", { key: '
|
|
25
|
+
return (h("div", { key: 'e5008951228aa528404f810fe9ce90a5ee7298b1', part: "list", class: "bs-menu", role: "menu" }, h("slot", { key: 'd2e590cf51f626bd22dce58535fbea81291f9068' })));
|
|
26
26
|
}
|
|
27
27
|
static get is() { return "bs-menu"; }
|
|
28
28
|
static get encapsulation() { return "shadow"; }
|
|
@@ -39,7 +39,7 @@ export class BsMenuItem {
|
|
|
39
39
|
this.bsSelect.emit();
|
|
40
40
|
};
|
|
41
41
|
render() {
|
|
42
|
-
return (h("button", { key: '
|
|
42
|
+
return (h("button", { key: '0fbb5f8802a2866794682b90a850d5455c86d69e', type: "button", part: "item", role: "menuitem", class: "bs-menu-item", onClick: this.onClick }, h("span", { key: '810cd5b7bebf0f0f411a956fa13357b4bc3b18ae', part: "icon", class: `bs-menu-item__icon ${this.hasIcon ? 'bs-menu-item__icon--has-content' : ''}` }, h("slot", { key: '683105e1dd44932ac0b569d57eccc3fb54dc1497', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '2d0edd4325f535020b04bcea93db47ef60d33127', part: "label", class: "bs-menu-item__label" }, h("slot", { key: 'b7ca912d7ec3b5ac3a78f09eb03b8d6b0f96cc2e' }))));
|
|
43
43
|
}
|
|
44
44
|
static get is() { return "bs-menu-item"; }
|
|
45
45
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface BsChatbotSuggestionButton extends Components.BsChatbotSuggestionButton, HTMLElement {}
|
|
4
|
+
export const BsChatbotSuggestionButton: {
|
|
5
|
+
prototype: BsChatbotSuggestionButton;
|
|
6
|
+
new (): BsChatbotSuggestionButton;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t,p as o,H as s,c as b,h as e}from"./p-BpvhHQSw.js";const n=o(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.bsSelect=b(this,"bsSelect")}disabled=!1;bsSelect;onClick=()=>{this.bsSelect.emit()};render(){return e("button",{key:"e19ad1fd5e95f84f6bff54cbc326e78f70ef3677",type:"button",part:"button",class:"bs-chatbot-suggestion-button",disabled:this.disabled,onClick:this.onClick},e("slot",{key:"4048fb336d69f0ca78e50ea9d5cba52921906966"}))}static get style(){return":host{display:inline-block;--bs-chatbot-suggestion-button-radius:var(--bs-border-radius-full);--bs-chatbot-suggestion-button-border-color:var(--bs-border-primary);--bs-chatbot-suggestion-button-bg-default:var(--bs-color-primary-container);--bs-chatbot-suggestion-button-bg-hover:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-bg-pressed:var(--bs-brand-200);--bs-chatbot-suggestion-button-bg-focus:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-text-default:var(--bs-text-action);--bs-chatbot-suggestion-button-text-hover:var(--bs-text-action-hover);--bs-chatbot-suggestion-button-focus-ring-color:var(--bs-border-primary-focus)}.bs-chatbot-suggestion-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:40px;min-width:80px;padding:var(--bs-spacing-100) var(--bs-spacing-200);border:var(--bs-border-width-thin) solid var(--bs-chatbot-suggestion-button-border-color);border-radius:var(--bs-chatbot-suggestion-button-radius);background:var(--bs-chatbot-suggestion-button-bg-default);color:var(--bs-chatbot-suggestion-button-text-default);font-family:inherit;font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);text-align:center;cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-suggestion-button:hover:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-hover);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:active:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-pressed);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:focus-visible{background:var(--bs-chatbot-suggestion-button-bg-focus);color:var(--bs-chatbot-suggestion-button-text-hover);outline:var(--bs-border-width-medium) solid var(--bs-chatbot-suggestion-button-focus-ring-color);outline-offset:3px}.bs-chatbot-suggestion-button:disabled{opacity:var(--bs-opacity-disabled);cursor:not-allowed}"}},[769,"bs-chatbot-suggestion-button",{disabled:[4]}]);function r(){"undefined"!=typeof customElements&&["bs-chatbot-suggestion-button"].forEach((o=>{"bs-chatbot-suggestion-button"===o&&(customElements.get(t(o))||customElements.define(t(o),n))}))}r();const a=n,i=r;export{a as BsChatbotSuggestionButton,i as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as r,p as t,H as s,c as e,h as i}from"./p-BpvhHQSw.js";const o=t(class extends s{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow(),this.bsInput=e(this,"bsInput"),this.bsChange=e(this,"bsChange")}value="";type="text";label;placeholder;description;error;disabled=!1;bsInput;bsChange;onInput=r=>{this.bsInput.emit(r.target.value)};onChange=r=>{this.bsChange.emit(r.target.value)};render(){return i("div",{key:"
|
|
1
|
+
import{t as r,p as t,H as s,c as e,h as i}from"./p-BpvhHQSw.js";const o=t(class extends s{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow(),this.bsInput=e(this,"bsInput"),this.bsChange=e(this,"bsChange")}value="";type="text";label;placeholder;description;error;disabled=!1;bsInput;bsChange;onInput=r=>{this.bsInput.emit(r.target.value)};onChange=r=>{this.bsChange.emit(r.target.value)};render(){return i("div",{key:"571583a0d1181a2e307ba86679003c6cc37e4e63",class:"bs-input "+(this.error?"bs-input--error":"")},this.label&&i("label",{key:"0a6c34ad8de3227e1264af649c1ac227e64c67bd",part:"label",class:"bs-input__label",htmlFor:"control"},this.label),i("input",{key:"de46e2c3272735160ca1773abf6fd270d042cfdd",id:"control",part:"control",class:"bs-input__control",type:this.type,value:this.value,placeholder:this.placeholder,disabled:this.disabled,"aria-describedby":this.error||this.description?"description-or-error":void 0,"aria-invalid":this.error?"true":void 0,onInput:this.onInput,onChange:this.onChange}),this.error?i("span",{id:"description-or-error",part:"error",class:"bs-input__error"},this.error):this.description?i("span",{id:"description-or-error",part:"description",class:"bs-input__description"},this.description):null)}static get delegatesFocus(){return!0}static get style(){return":host{display:block}.bs-input{display:flex;flex-direction:column;gap:var(--bs-spacing-100);font-family:inherit}.bs-input__label{font-size:var(--bs-font-size-sm);font-weight:var(--bs-font-weight-medium);color:var(--bs-input-label)}.bs-input__control{height:var(--bs-spacing-600);padding:0 var(--bs-spacing-300);border:1px solid var(--bs-input-border-default);border-radius:var(--bs-border-radius-100);background:var(--bs-input-bg-default);color:var(--bs-input-text);font-size:var(--bs-font-size-md);font-family:inherit}.bs-input__control::placeholder{color:var(--bs-input-placeholder)}.bs-input__control:hover:not(:disabled){border-color:var(--bs-input-border-hover)}.bs-input__control:focus-visible{outline:none;border-color:var(--bs-input-border-focus)}.bs-input__control:disabled{background:var(--bs-input-bg-disabled);color:var(--bs-input-text-disabled);cursor:not-allowed}.bs-input--error .bs-input__control{border-color:var(--bs-input-border-error)}.bs-input--error .bs-input__label{color:var(--bs-input-label)}.bs-input__description{font-size:var(--bs-font-size-xs);color:var(--bs-input-description)}.bs-input__error{font-size:var(--bs-font-size-xs);color:var(--bs-input-error)}"}},[529,"bs-input",{value:[1],type:[1],label:[1],placeholder:[1],description:[1],error:[1],disabled:[4]}]);function n(){"undefined"!=typeof customElements&&["bs-input"].forEach((t=>{"bs-input"===t&&(customElements.get(r(t))||customElements.define(r(t),o))}))}n();const a=o,l=n;export{a as BsInput,l as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e,p as t,H as n,c as s,h as i}from"./p-BpvhHQSw.js";const a=t(class extends n{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.bsSelect=s(this,"bsSelect")}hasIcon=!1;bsSelect;onIconSlotchange=e=>{this.hasIcon=e.target.assignedNodes().length>0};onClick=()=>{this.bsSelect.emit()};render(){return i("button",{key:"
|
|
1
|
+
import{t as e,p as t,H as n,c as s,h as i}from"./p-BpvhHQSw.js";const a=t(class extends n{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.bsSelect=s(this,"bsSelect")}hasIcon=!1;bsSelect;onIconSlotchange=e=>{this.hasIcon=e.target.assignedNodes().length>0};onClick=()=>{this.bsSelect.emit()};render(){return i("button",{key:"0fbb5f8802a2866794682b90a850d5455c86d69e",type:"button",part:"item",role:"menuitem",class:"bs-menu-item",onClick:this.onClick},i("span",{key:"810cd5b7bebf0f0f411a956fa13357b4bc3b18ae",part:"icon",class:"bs-menu-item__icon "+(this.hasIcon?"bs-menu-item__icon--has-content":"")},i("slot",{key:"683105e1dd44932ac0b569d57eccc3fb54dc1497",name:"icon",onSlotchange:this.onIconSlotchange})),i("span",{key:"2d0edd4325f535020b04bcea93db47ef60d33127",part:"label",class:"bs-menu-item__label"},i("slot",{key:"b7ca912d7ec3b5ac3a78f09eb03b8d6b0f96cc2e"})))}static get style(){return":host{display:block;--bs-menu-item-radius:var(--bs-border-radius-100);--bs-menu-item-padding-y:var(--bs-spacing-100);--bs-menu-item-padding-x:var(--bs-spacing-150);--bs-menu-item-gap:var(--bs-spacing-100);--bs-menu-item-hover:var(--bs-color-neutral-container);--bs-menu-item-pressed:var(--bs-color-neutral-container-pressed);--bs-menu-item-icon-color:var(--bs-icon-default);--bs-menu-item-color:var(--bs-text-muted);--bs-menu-item-font-size:var(--bs-font-size-md);--bs-menu-item-line-height:var(--bs-line-height-body-md)}.bs-menu-item{box-sizing:border-box;display:flex;align-items:center;width:100%;height:48px;border:none;cursor:pointer;background:transparent;color:var(--bs-menu-item-color);font-family:inherit;border-radius:var(--bs-menu-item-radius);padding:var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);gap:var(--bs-menu-item-gap);transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-menu-item:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-menu-item:hover{background:var(--bs-menu-item-hover)}.bs-menu-item:active{background:var(--bs-menu-item-pressed)}.bs-menu-item__icon{display:none;width:24px;height:24px;flex-shrink:0;color:var(--bs-menu-item-icon-color)}.bs-menu-item__icon--has-content{display:inline-flex;align-items:center;justify-content:center}.bs-menu-item__icon ::slotted(svg){width:24px;height:24px}.bs-menu-item__label{font-size:var(--bs-menu-item-font-size);line-height:calc(var(--bs-menu-item-line-height) * 1px);white-space:nowrap}"}},[769,"bs-menu-item",{hasIcon:[32]}]);function o(){"undefined"!=typeof customElements&&["bs-menu-item"].forEach((t=>{"bs-menu-item"===t&&(customElements.get(e(t))||customElements.define(e(t),a))}))}o();const r=a,b=o;export{r as BsMenuItem,b as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as s,p as e,H as a,h as n}from"./p-BpvhHQSw.js";const r=e(class extends a{constructor(s){super(),!1!==s&&this.__registerHost(),this.__attachShadow()}render(){return n("div",{key:"
|
|
1
|
+
import{t as s,p as e,H as a,h as n}from"./p-BpvhHQSw.js";const r=e(class extends a{constructor(s){super(),!1!==s&&this.__registerHost(),this.__attachShadow()}render(){return n("div",{key:"e5008951228aa528404f810fe9ce90a5ee7298b1",part:"list",class:"bs-menu",role:"menu"},n("slot",{key:"d2e590cf51f626bd22dce58535fbea81291f9068"}))}static get style(){return":host{display:block;--bs-menu-bg:var(--bs-surface-raised);--bs-menu-radius:var(--bs-border-radius-100);--bs-menu-padding-y:var(--bs-spacing-50);--bs-menu-gap:var(--bs-spacing-50);--bs-menu-shadow:var(--bs-shadow-sm)}.bs-menu{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-menu-gap);background:var(--bs-menu-bg);border-radius:var(--bs-menu-radius);padding:var(--bs-menu-padding-y) 0;box-shadow:var(--bs-menu-shadow);font-family:inherit}"}},[257,"bs-menu"]);function b(){"undefined"!=typeof customElements&&["bs-menu"].forEach((e=>{"bs-menu"===e&&(customElements.get(s(e))||customElements.define(s(e),r))}))}b();const u=r,t=b;export{u as BsMenu,t as defineCustomElement}
|
package/dist/esm/brandsync-wc.js
CHANGED
|
@@ -16,5 +16,5 @@ var patchBrowser = () => {
|
|
|
16
16
|
|
|
17
17
|
patchBrowser().then(async (options) => {
|
|
18
18
|
await globalScripts();
|
|
19
|
-
return bootstrapLazy([["bs-badge",[[769,"bs-badge",{"variant":[1]}]]],["bs-button",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-button-skeleton",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card",[[769,"bs-card",{"surface":[1]}]]],["bs-chatbot-header",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-chatbot-response-action",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-composer",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1],"state":[1],"ariaLabel":[1,"aria-label"]}]]],["bs-data-table",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32]}]]],["bs-input",[[529,"bs-input",{"value":[1],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4]}]]],["bs-menu",[[257,"bs-menu"]]],["bs-menu-item",[[769,"bs-menu-item",{"hasIcon":[32]}]]],["bs-modal",[[769,"bs-modal",{"open":[1540],"heading":[1],"size":[1],"hasFooter":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]], options);
|
|
19
|
+
return bootstrapLazy([["bs-badge",[[769,"bs-badge",{"variant":[1]}]]],["bs-button",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-button-skeleton",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card",[[769,"bs-card",{"surface":[1]}]]],["bs-chatbot-header",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-chatbot-response-action",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-chatbot-suggestion-button",[[769,"bs-chatbot-suggestion-button",{"disabled":[4]}]]],["bs-composer",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1],"state":[1],"ariaLabel":[1,"aria-label"]}]]],["bs-data-table",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32]}]]],["bs-input",[[529,"bs-input",{"value":[1],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4]}]]],["bs-menu",[[257,"bs-menu"]]],["bs-menu-item",[[769,"bs-menu-item",{"hasIcon":[32]}]]],["bs-modal",[[769,"bs-modal",{"open":[1540],"heading":[1],"size":[1],"hasFooter":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]], options);
|
|
20
20
|
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-nLORuTUY.js';
|
|
2
|
+
|
|
3
|
+
const bsChatbotSuggestionButtonCss = () => `:host{display:inline-block;--bs-chatbot-suggestion-button-radius:var(--bs-border-radius-full);--bs-chatbot-suggestion-button-border-color:var(--bs-border-primary);--bs-chatbot-suggestion-button-bg-default:var(--bs-color-primary-container);--bs-chatbot-suggestion-button-bg-hover:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-bg-pressed:var(--bs-brand-200);--bs-chatbot-suggestion-button-bg-focus:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-text-default:var(--bs-text-action);--bs-chatbot-suggestion-button-text-hover:var(--bs-text-action-hover);--bs-chatbot-suggestion-button-focus-ring-color:var(--bs-border-primary-focus)}.bs-chatbot-suggestion-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:40px;min-width:80px;padding:var(--bs-spacing-100) var(--bs-spacing-200);border:var(--bs-border-width-thin) solid var(--bs-chatbot-suggestion-button-border-color);border-radius:var(--bs-chatbot-suggestion-button-radius);background:var(--bs-chatbot-suggestion-button-bg-default);color:var(--bs-chatbot-suggestion-button-text-default);font-family:inherit;font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);text-align:center;cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-suggestion-button:hover:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-hover);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:active:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-pressed);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:focus-visible{background:var(--bs-chatbot-suggestion-button-bg-focus);color:var(--bs-chatbot-suggestion-button-text-hover);outline:var(--bs-border-width-medium) solid var(--bs-chatbot-suggestion-button-focus-ring-color);outline-offset:3px}.bs-chatbot-suggestion-button:disabled{opacity:var(--bs-opacity-disabled);cursor:not-allowed}`;
|
|
4
|
+
|
|
5
|
+
const BsChatbotSuggestionButton = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.bsSelect = createEvent(this, "bsSelect");
|
|
9
|
+
}
|
|
10
|
+
/** Disables the button and applies a reduced-opacity treatment. */
|
|
11
|
+
disabled = false;
|
|
12
|
+
/** Fires when the button is clicked. */
|
|
13
|
+
bsSelect;
|
|
14
|
+
onClick = () => {
|
|
15
|
+
this.bsSelect.emit();
|
|
16
|
+
};
|
|
17
|
+
render() {
|
|
18
|
+
return (h("button", { key: 'e19ad1fd5e95f84f6bff54cbc326e78f70ef3677', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: '4048fb336d69f0ca78e50ea9d5cba52921906966' })));
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
BsChatbotSuggestionButton.style = bsChatbotSuggestionButtonCss();
|
|
22
|
+
|
|
23
|
+
export { BsChatbotSuggestionButton as bs_chatbot_suggestion_button };
|
|
@@ -28,10 +28,10 @@ const BsInput = class {
|
|
|
28
28
|
this.bsChange.emit(value);
|
|
29
29
|
};
|
|
30
30
|
render() {
|
|
31
|
-
return (h("div", { key: '
|
|
31
|
+
return (h("div", { key: '571583a0d1181a2e307ba86679003c6cc37e4e63', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
|
|
32
32
|
// "control" is a fixed id, not a generated one -- safe because Shadow DOM scopes ids
|
|
33
33
|
// to this instance's own shadow root, so it can never collide with another bs-input.
|
|
34
|
-
h("label", { key: '
|
|
34
|
+
h("label", { key: '0a6c34ad8de3227e1264af649c1ac227e64c67bd', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label)), h("input", { key: 'de46e2c3272735160ca1773abf6fd270d042cfdd', id: "control", part: "control", class: "bs-input__control", type: this.type, value: this.value, placeholder: this.placeholder, disabled: this.disabled, "aria-describedby": this.error || this.description ? 'description-or-error' : undefined, "aria-invalid": this.error ? 'true' : undefined, onInput: this.onInput, onChange: this.onChange }), this.error ? (h("span", { id: "description-or-error", part: "error", class: "bs-input__error" }, this.error)) : this.description ? (h("span", { id: "description-or-error", part: "description", class: "bs-input__description" }, this.description)) : null));
|
|
35
35
|
}
|
|
36
36
|
static get delegatesFocus() { return true; }
|
|
37
37
|
};
|
|
@@ -19,7 +19,7 @@ const BsMenuItem = class {
|
|
|
19
19
|
this.bsSelect.emit();
|
|
20
20
|
};
|
|
21
21
|
render() {
|
|
22
|
-
return (h("button", { key: '
|
|
22
|
+
return (h("button", { key: '0fbb5f8802a2866794682b90a850d5455c86d69e', type: "button", part: "item", role: "menuitem", class: "bs-menu-item", onClick: this.onClick }, h("span", { key: '810cd5b7bebf0f0f411a956fa13357b4bc3b18ae', part: "icon", class: `bs-menu-item__icon ${this.hasIcon ? 'bs-menu-item__icon--has-content' : ''}` }, h("slot", { key: '683105e1dd44932ac0b569d57eccc3fb54dc1497', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '2d0edd4325f535020b04bcea93db47ef60d33127', part: "label", class: "bs-menu-item__label" }, h("slot", { key: 'b7ca912d7ec3b5ac3a78f09eb03b8d6b0f96cc2e' }))));
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
BsMenuItem.style = bsMenuItemCss();
|
|
@@ -7,7 +7,7 @@ const BsMenu = class {
|
|
|
7
7
|
registerInstance(this, hostRef);
|
|
8
8
|
}
|
|
9
9
|
render() {
|
|
10
|
-
return (h("div", { key: '
|
|
10
|
+
return (h("div", { key: 'e5008951228aa528404f810fe9ce90a5ee7298b1', part: "list", class: "bs-menu", role: "menu" }, h("slot", { key: 'd2e590cf51f626bd22dce58535fbea81291f9068' })));
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
BsMenu.style = bsMenuCss();
|
package/dist/esm/loader.js
CHANGED
|
@@ -4,7 +4,7 @@ export { s as setNonce } from './index-nLORuTUY.js';
|
|
|
4
4
|
const defineCustomElements = async (win, options) => {
|
|
5
5
|
if (typeof window === 'undefined') return undefined;
|
|
6
6
|
await globalScripts();
|
|
7
|
-
return bootstrapLazy([["bs-badge",[[769,"bs-badge",{"variant":[1]}]]],["bs-button",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-button-skeleton",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card",[[769,"bs-card",{"surface":[1]}]]],["bs-chatbot-header",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-chatbot-response-action",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-composer",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1],"state":[1],"ariaLabel":[1,"aria-label"]}]]],["bs-data-table",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32]}]]],["bs-input",[[529,"bs-input",{"value":[1],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4]}]]],["bs-menu",[[257,"bs-menu"]]],["bs-menu-item",[[769,"bs-menu-item",{"hasIcon":[32]}]]],["bs-modal",[[769,"bs-modal",{"open":[1540],"heading":[1],"size":[1],"hasFooter":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]], options);
|
|
7
|
+
return bootstrapLazy([["bs-badge",[[769,"bs-badge",{"variant":[1]}]]],["bs-button",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-button-skeleton",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card",[[769,"bs-card",{"surface":[1]}]]],["bs-chatbot-header",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-chatbot-response-action",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-chatbot-suggestion-button",[[769,"bs-chatbot-suggestion-button",{"disabled":[4]}]]],["bs-composer",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1],"state":[1],"ariaLabel":[1,"aria-label"]}]]],["bs-data-table",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32]}]]],["bs-input",[[529,"bs-input",{"value":[1],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4]}]]],["bs-menu",[[257,"bs-menu"]]],["bs-menu-item",[[769,"bs-menu-item",{"hasIcon":[32]}]]],["bs-modal",[[769,"bs-modal",{"open":[1540],"heading":[1],"size":[1],"hasFooter":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]]], options);
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
export { defineCustomElements };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
/**
|
|
3
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
4
|
+
*
|
|
5
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
6
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
7
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
8
|
+
* `flex-wrap: wrap` is sufficient.
|
|
9
|
+
*
|
|
10
|
+
* ## When to use
|
|
11
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
12
|
+
*
|
|
13
|
+
* ## When not to use
|
|
14
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
15
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
16
|
+
*
|
|
17
|
+
* @slot - Default slot: the suggestion's label text.
|
|
18
|
+
* @part button - The button element.
|
|
19
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
20
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
21
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
22
|
+
* Aliased to `--bs-color-primary-container`.
|
|
23
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
24
|
+
* `--bs-color-primary-container-hover`.
|
|
25
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
26
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
27
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
28
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
29
|
+
* subtle/outlined/success/warning/info variants).
|
|
30
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
31
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
32
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
33
|
+
* `--bs-text-action`.
|
|
34
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
35
|
+
* Aliased to `--bs-text-action-hover`.
|
|
36
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
37
|
+
* `--bs-border-primary-focus`.
|
|
38
|
+
*/
|
|
39
|
+
export declare class BsChatbotSuggestionButton {
|
|
40
|
+
/** Disables the button and applies a reduced-opacity treatment. */
|
|
41
|
+
disabled: boolean;
|
|
42
|
+
/** Fires when the button is clicked. */
|
|
43
|
+
bsSelect: EventEmitter<void>;
|
|
44
|
+
private onClick;
|
|
45
|
+
render(): any;
|
|
46
|
+
}
|
package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.stories.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
interface BsChatbotSuggestionButtonArgs {
|
|
3
|
+
label: string;
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare const meta: Meta<BsChatbotSuggestionButtonArgs>;
|
|
7
|
+
export default meta;
|
|
8
|
+
type Story = StoryObj<BsChatbotSuggestionButtonArgs>;
|
|
9
|
+
export declare const Default: Story;
|
|
10
|
+
export declare const SuggestionRow: Story;
|
|
@@ -190,6 +190,44 @@ export namespace Components {
|
|
|
190
190
|
*/
|
|
191
191
|
"sourcesCount"?: number;
|
|
192
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
195
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
196
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
197
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
198
|
+
* `flex-wrap: wrap` is sufficient.
|
|
199
|
+
* ## When to use
|
|
200
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
201
|
+
* ## When not to use
|
|
202
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
203
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
204
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
205
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
206
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
207
|
+
* Aliased to `--bs-color-primary-container`.
|
|
208
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
209
|
+
* `--bs-color-primary-container-hover`.
|
|
210
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
211
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
212
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
213
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
214
|
+
* subtle/outlined/success/warning/info variants).
|
|
215
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
216
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
217
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
218
|
+
* `--bs-text-action`.
|
|
219
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
220
|
+
* Aliased to `--bs-text-action-hover`.
|
|
221
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
222
|
+
* `--bs-border-primary-focus`.
|
|
223
|
+
*/
|
|
224
|
+
interface BsChatbotSuggestionButton {
|
|
225
|
+
/**
|
|
226
|
+
* Disables the button and applies a reduced-opacity treatment.
|
|
227
|
+
* @default false
|
|
228
|
+
*/
|
|
229
|
+
"disabled": boolean;
|
|
230
|
+
}
|
|
193
231
|
/**
|
|
194
232
|
* A chat composer input for Genie AI-style conversational interfaces: a text field
|
|
195
233
|
* plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
|
|
@@ -382,6 +420,10 @@ export interface BsChatbotResponseActionCustomEvent<T> extends CustomEvent<T> {
|
|
|
382
420
|
detail: T;
|
|
383
421
|
target: HTMLBsChatbotResponseActionElement;
|
|
384
422
|
}
|
|
423
|
+
export interface BsChatbotSuggestionButtonCustomEvent<T> extends CustomEvent<T> {
|
|
424
|
+
detail: T;
|
|
425
|
+
target: HTMLBsChatbotSuggestionButtonElement;
|
|
426
|
+
}
|
|
385
427
|
export interface BsComposerCustomEvent<T> extends CustomEvent<T> {
|
|
386
428
|
detail: T;
|
|
387
429
|
target: HTMLBsComposerElement;
|
|
@@ -568,6 +610,54 @@ declare global {
|
|
|
568
610
|
prototype: HTMLBsChatbotResponseActionElement;
|
|
569
611
|
new (): HTMLBsChatbotResponseActionElement;
|
|
570
612
|
};
|
|
613
|
+
interface HTMLBsChatbotSuggestionButtonElementEventMap {
|
|
614
|
+
"bsSelect": void;
|
|
615
|
+
}
|
|
616
|
+
/**
|
|
617
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
618
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
619
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
620
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
621
|
+
* `flex-wrap: wrap` is sufficient.
|
|
622
|
+
* ## When to use
|
|
623
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
624
|
+
* ## When not to use
|
|
625
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
626
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
627
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
628
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
629
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
630
|
+
* Aliased to `--bs-color-primary-container`.
|
|
631
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
632
|
+
* `--bs-color-primary-container-hover`.
|
|
633
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
634
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
635
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
636
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
637
|
+
* subtle/outlined/success/warning/info variants).
|
|
638
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
639
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
640
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
641
|
+
* `--bs-text-action`.
|
|
642
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
643
|
+
* Aliased to `--bs-text-action-hover`.
|
|
644
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
645
|
+
* `--bs-border-primary-focus`.
|
|
646
|
+
*/
|
|
647
|
+
interface HTMLBsChatbotSuggestionButtonElement extends Components.BsChatbotSuggestionButton, HTMLStencilElement {
|
|
648
|
+
addEventListener<K extends keyof HTMLBsChatbotSuggestionButtonElementEventMap>(type: K, listener: (this: HTMLBsChatbotSuggestionButtonElement, ev: BsChatbotSuggestionButtonCustomEvent<HTMLBsChatbotSuggestionButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
649
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
650
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
651
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
652
|
+
removeEventListener<K extends keyof HTMLBsChatbotSuggestionButtonElementEventMap>(type: K, listener: (this: HTMLBsChatbotSuggestionButtonElement, ev: BsChatbotSuggestionButtonCustomEvent<HTMLBsChatbotSuggestionButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
653
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
654
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
655
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
656
|
+
}
|
|
657
|
+
var HTMLBsChatbotSuggestionButtonElement: {
|
|
658
|
+
prototype: HTMLBsChatbotSuggestionButtonElement;
|
|
659
|
+
new (): HTMLBsChatbotSuggestionButtonElement;
|
|
660
|
+
};
|
|
571
661
|
interface HTMLBsComposerElementEventMap {
|
|
572
662
|
"bsInput": string;
|
|
573
663
|
"bsSubmit": void;
|
|
@@ -770,6 +860,7 @@ declare global {
|
|
|
770
860
|
"bs-card": HTMLBsCardElement;
|
|
771
861
|
"bs-chatbot-header": HTMLBsChatbotHeaderElement;
|
|
772
862
|
"bs-chatbot-response-action": HTMLBsChatbotResponseActionElement;
|
|
863
|
+
"bs-chatbot-suggestion-button": HTMLBsChatbotSuggestionButtonElement;
|
|
773
864
|
"bs-composer": HTMLBsComposerElement;
|
|
774
865
|
"bs-data-table": HTMLBsDataTableElement;
|
|
775
866
|
"bs-input": HTMLBsInputElement;
|
|
@@ -989,6 +1080,48 @@ declare namespace LocalJSX {
|
|
|
989
1080
|
*/
|
|
990
1081
|
"sourcesCount"?: number;
|
|
991
1082
|
}
|
|
1083
|
+
/**
|
|
1084
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
1085
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
1086
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
1087
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
1088
|
+
* `flex-wrap: wrap` is sufficient.
|
|
1089
|
+
* ## When to use
|
|
1090
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
1091
|
+
* ## When not to use
|
|
1092
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
1093
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
1094
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
1095
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
1096
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
1097
|
+
* Aliased to `--bs-color-primary-container`.
|
|
1098
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
1099
|
+
* `--bs-color-primary-container-hover`.
|
|
1100
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
1101
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
1102
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
1103
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
1104
|
+
* subtle/outlined/success/warning/info variants).
|
|
1105
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
1106
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
1107
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
1108
|
+
* `--bs-text-action`.
|
|
1109
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
1110
|
+
* Aliased to `--bs-text-action-hover`.
|
|
1111
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
1112
|
+
* `--bs-border-primary-focus`.
|
|
1113
|
+
*/
|
|
1114
|
+
interface BsChatbotSuggestionButton {
|
|
1115
|
+
/**
|
|
1116
|
+
* Disables the button and applies a reduced-opacity treatment.
|
|
1117
|
+
* @default false
|
|
1118
|
+
*/
|
|
1119
|
+
"disabled"?: boolean;
|
|
1120
|
+
/**
|
|
1121
|
+
* Fires when the button is clicked.
|
|
1122
|
+
*/
|
|
1123
|
+
"onBsSelect"?: (event: BsChatbotSuggestionButtonCustomEvent<void>) => void;
|
|
1124
|
+
}
|
|
992
1125
|
/**
|
|
993
1126
|
* A chat composer input for Genie AI-style conversational interfaces: a text field
|
|
994
1127
|
* plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
|
|
@@ -1230,6 +1363,9 @@ declare namespace LocalJSX {
|
|
|
1230
1363
|
"sourcesCount": number;
|
|
1231
1364
|
"menuOpen": boolean;
|
|
1232
1365
|
}
|
|
1366
|
+
interface BsChatbotSuggestionButtonAttributes {
|
|
1367
|
+
"disabled": boolean;
|
|
1368
|
+
}
|
|
1233
1369
|
interface BsComposerAttributes {
|
|
1234
1370
|
"variant": BsComposerVariant;
|
|
1235
1371
|
"placeholder": string;
|
|
@@ -1264,6 +1400,7 @@ declare namespace LocalJSX {
|
|
|
1264
1400
|
"bs-card": Omit<BsCard, keyof BsCardAttributes> & { [K in keyof BsCard & keyof BsCardAttributes]?: BsCard[K] } & { [K in keyof BsCard & keyof BsCardAttributes as `attr:${K}`]?: BsCardAttributes[K] } & { [K in keyof BsCard & keyof BsCardAttributes as `prop:${K}`]?: BsCard[K] };
|
|
1265
1401
|
"bs-chatbot-header": Omit<BsChatbotHeader, keyof BsChatbotHeaderAttributes> & { [K in keyof BsChatbotHeader & keyof BsChatbotHeaderAttributes]?: BsChatbotHeader[K] } & { [K in keyof BsChatbotHeader & keyof BsChatbotHeaderAttributes as `attr:${K}`]?: BsChatbotHeaderAttributes[K] } & { [K in keyof BsChatbotHeader & keyof BsChatbotHeaderAttributes as `prop:${K}`]?: BsChatbotHeader[K] };
|
|
1266
1402
|
"bs-chatbot-response-action": Omit<BsChatbotResponseAction, keyof BsChatbotResponseActionAttributes> & { [K in keyof BsChatbotResponseAction & keyof BsChatbotResponseActionAttributes]?: BsChatbotResponseAction[K] } & { [K in keyof BsChatbotResponseAction & keyof BsChatbotResponseActionAttributes as `attr:${K}`]?: BsChatbotResponseActionAttributes[K] } & { [K in keyof BsChatbotResponseAction & keyof BsChatbotResponseActionAttributes as `prop:${K}`]?: BsChatbotResponseAction[K] };
|
|
1403
|
+
"bs-chatbot-suggestion-button": Omit<BsChatbotSuggestionButton, keyof BsChatbotSuggestionButtonAttributes> & { [K in keyof BsChatbotSuggestionButton & keyof BsChatbotSuggestionButtonAttributes]?: BsChatbotSuggestionButton[K] } & { [K in keyof BsChatbotSuggestionButton & keyof BsChatbotSuggestionButtonAttributes as `attr:${K}`]?: BsChatbotSuggestionButtonAttributes[K] } & { [K in keyof BsChatbotSuggestionButton & keyof BsChatbotSuggestionButtonAttributes as `prop:${K}`]?: BsChatbotSuggestionButton[K] };
|
|
1267
1404
|
"bs-composer": Omit<BsComposer, keyof BsComposerAttributes> & { [K in keyof BsComposer & keyof BsComposerAttributes]?: BsComposer[K] } & { [K in keyof BsComposer & keyof BsComposerAttributes as `attr:${K}`]?: BsComposerAttributes[K] } & { [K in keyof BsComposer & keyof BsComposerAttributes as `prop:${K}`]?: BsComposer[K] };
|
|
1268
1405
|
"bs-data-table": Omit<BsDataTable, keyof BsDataTableAttributes> & { [K in keyof BsDataTable & keyof BsDataTableAttributes]?: BsDataTable[K] } & { [K in keyof BsDataTable & keyof BsDataTableAttributes as `attr:${K}`]?: BsDataTableAttributes[K] } & { [K in keyof BsDataTable & keyof BsDataTableAttributes as `prop:${K}`]?: BsDataTable[K] };
|
|
1269
1406
|
"bs-input": Omit<BsInput, keyof BsInputAttributes> & { [K in keyof BsInput & keyof BsInputAttributes]?: BsInput[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `attr:${K}`]?: BsInputAttributes[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `prop:${K}`]?: BsInput[K] };
|
|
@@ -1381,6 +1518,38 @@ declare module "@stencil/core" {
|
|
|
1381
1518
|
* @prop --bs-chatbot-response-action-sources-line-height - Aliased to `--bs-line-height-body-sm`.
|
|
1382
1519
|
*/
|
|
1383
1520
|
"bs-chatbot-response-action": LocalJSX.IntrinsicElements["bs-chatbot-response-action"] & JSXBase.HTMLAttributes<HTMLBsChatbotResponseActionElement>;
|
|
1521
|
+
/**
|
|
1522
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
1523
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
1524
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
1525
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
1526
|
+
* `flex-wrap: wrap` is sufficient.
|
|
1527
|
+
* ## When to use
|
|
1528
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
1529
|
+
* ## When not to use
|
|
1530
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
1531
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
1532
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
1533
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
1534
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
1535
|
+
* Aliased to `--bs-color-primary-container`.
|
|
1536
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
1537
|
+
* `--bs-color-primary-container-hover`.
|
|
1538
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
1539
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
1540
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
1541
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
1542
|
+
* subtle/outlined/success/warning/info variants).
|
|
1543
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
1544
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
1545
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
1546
|
+
* `--bs-text-action`.
|
|
1547
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
1548
|
+
* Aliased to `--bs-text-action-hover`.
|
|
1549
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
1550
|
+
* `--bs-border-primary-focus`.
|
|
1551
|
+
*/
|
|
1552
|
+
"bs-chatbot-suggestion-button": LocalJSX.IntrinsicElements["bs-chatbot-suggestion-button"] & JSXBase.HTMLAttributes<HTMLBsChatbotSuggestionButtonElement>;
|
|
1384
1553
|
/**
|
|
1385
1554
|
* A chat composer input for Genie AI-style conversational interfaces: a text field
|
|
1386
1555
|
* plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brandsync/wc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"@stencil/vitest": "^1.8.3",
|
|
55
55
|
"@storybook/addon-a11y": "^10.5.8",
|
|
56
56
|
"@storybook/addon-docs": "^10.5.8",
|
|
57
|
+
"@storybook/addon-vitest": "^10.5.8",
|
|
57
58
|
"@storybook/web-components-vite": "^10.5.8",
|
|
58
59
|
"@types/node": "^22.13.5",
|
|
59
60
|
"@vitest/browser-playwright": "^4.0.0",
|