@brandsync/wc 0.0.5 → 0.0.7
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 +207 -1
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/p-5a0fe72e.entry.js +1 -0
- package/dist/brandsync-wc/{p-300eea85.entry.js → p-6abdfaf0.entry.js} +1 -1
- package/dist/brandsync-wc/{p-27288299.entry.js → p-76eca100.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0ded3be8.entry.js → p-a12d0a60.entry.js} +1 -1
- package/dist/brandsync-wc/p-bfd09c98.entry.js +1 -0
- package/dist/brandsync-wc/p-c63d16e1.entry.js +1 -0
- package/dist/brandsync-wc/{p-b24c455f.entry.js → p-dd0fea0e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-cdbad27a.entry.js → p-f5f443e2.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1dc6d7f5.entry.js → p-f88d9a6e.entry.js} +1 -1
- package/dist/cjs/brandsync-wc.cjs.js +1 -1
- package/dist/cjs/bs-ai-thinking.cjs.entry.js +34 -0
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-response-action.cjs.entry.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/bs-tooltip.cjs.entry.js +24 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +4 -1
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.cmp.test.js +28 -0
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.css +60 -0
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +72 -0
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.stories.js +21 -0
- package/dist/collection/components/bs-ai-thinking/genie-mark-icon.js +14 -0
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.css +33 -0
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +9 -1
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
- 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/collection/components/bs-tooltip/bs-tooltip.cmp.test.js +16 -0
- package/dist/collection/components/bs-tooltip/bs-tooltip.css +45 -0
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +83 -0
- package/dist/collection/components/bs-tooltip/bs-tooltip.stories.js +26 -0
- package/dist/components/bs-ai-thinking.d.ts +11 -0
- package/dist/components/bs-ai-thinking.js +1 -0
- package/dist/components/bs-button-skeleton.js +1 -1
- package/dist/components/bs-chatbot-header.js +1 -1
- package/dist/components/bs-chatbot-response-action.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/components/bs-tooltip.d.ts +11 -0
- package/dist/components/bs-tooltip.js +1 -0
- package/dist/components/p-CoC4LQCI.js +1 -0
- package/dist/esm/brandsync-wc.js +1 -1
- package/dist/esm/bs-ai-thinking.entry.js +32 -0
- package/dist/esm/bs-button-skeleton.entry.js +1 -1
- package/dist/esm/bs-chatbot-header.entry.js +2 -2
- package/dist/esm/bs-chatbot-response-action.entry.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/bs-tooltip.entry.js +22 -0
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/bs-ai-thinking/bs-ai-thinking.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-ai-thinking/bs-ai-thinking.d.ts +32 -0
- package/dist/types/components/bs-ai-thinking/bs-ai-thinking.stories.d.ts +10 -0
- package/dist/types/components/bs-ai-thinking/genie-mark-icon.d.ts +1 -0
- package/dist/types/components/bs-chatbot-header/bs-chatbot-header.d.ts +8 -0
- 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/bs-tooltip/bs-tooltip.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-tooltip/bs-tooltip.d.ts +44 -0
- package/dist/types/components/bs-tooltip/bs-tooltip.stories.d.ts +9 -0
- package/dist/types/components.d.ts +441 -0
- package/package.json +2 -1
|
@@ -20,6 +20,34 @@ export { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-
|
|
|
20
20
|
export { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
|
|
21
21
|
export { BsModalSize } from "./components/bs-modal/bs-modal";
|
|
22
22
|
export namespace Components {
|
|
23
|
+
/**
|
|
24
|
+
* A small inline status indicator for Genie AI surfaces: the colorful Genie mark next to a label
|
|
25
|
+
* (e.g. "Retrieving", "Thinking", "Searching") whose text pulses in a slow breathing loop while
|
|
26
|
+
* an operation is in progress.
|
|
27
|
+
* ## When to use
|
|
28
|
+
* - Inline in a Genie AI chat transcript to show what the assistant is currently doing while a
|
|
29
|
+
* response is being generated (retrieving context, searching, thinking).
|
|
30
|
+
* ## When not to use
|
|
31
|
+
* - A blocking/full-panel loading state -- this is a small inline indicator, not a spinner overlay.
|
|
32
|
+
* The label's pulse animation reproduces Figma's exact keyframe track (a plain opacity
|
|
33
|
+
* fade-in/hold/reset with the source's own cubic-bezier easing) rather than an invented
|
|
34
|
+
* shimmer-sweep -- the source design only specifies this one animation.
|
|
35
|
+
* @prop --bs-ai-thinking-gap - Gap between icon and label. Aliased to `--bs-spacing-100`.
|
|
36
|
+
* @prop --bs-ai-thinking-icon-size - Width/height of the icon.
|
|
37
|
+
* @prop --bs-ai-thinking-text - Label color. Aliased to `--bs-text-muted`.
|
|
38
|
+
* @prop --bs-ai-thinking-font-size - Label font size. Aliased to `--bs-font-size-md`.
|
|
39
|
+
* @prop --bs-ai-thinking-line-height - Label line height. Aliased to `--bs-line-height-body-md`.
|
|
40
|
+
* @prop --bs-ai-thinking-cycle-duration - Duration of one pulse loop. Figma specifies exactly 2s,
|
|
41
|
+
* longer than any `--bs-duration-*` token (max `--bs-duration-slower` is 500ms), so this is
|
|
42
|
+
* aliased directly to the literal value.
|
|
43
|
+
*/
|
|
44
|
+
interface BsAiThinking {
|
|
45
|
+
/**
|
|
46
|
+
* The status text shown next to the icon, e.g. "Retrieving", "Thinking", "Searching".
|
|
47
|
+
* @default 'Thinking'
|
|
48
|
+
*/
|
|
49
|
+
"label": string;
|
|
50
|
+
}
|
|
23
51
|
/**
|
|
24
52
|
* A small status or category pill, usually paired with a label or list item.
|
|
25
53
|
* ## When to use
|
|
@@ -131,12 +159,19 @@ export namespace Components {
|
|
|
131
159
|
* ## When not to use
|
|
132
160
|
* - A generic app/page header — this component's layout and actions are purpose-built for the
|
|
133
161
|
* Genie chat panel, not a general navigation bar.
|
|
162
|
+
* Each action button shows a `bs-tooltip` (placement="top", i.e. positioned below the button with
|
|
163
|
+
* its arrow pointing up toward it -- fits naturally since this header sits at the top of a panel)
|
|
164
|
+
* on hover/focus, driven by plain CSS (`:hover`/`:focus-within` on a wrapper, no extra JS state).
|
|
165
|
+
* The tooltip is `aria-hidden` since it's a purely visual reinforcement of each button's existing
|
|
166
|
+
* `aria-label` -- screen readers already get the accessible name from the button itself, so the
|
|
167
|
+
* tooltip doesn't need to be (and shouldn't be) announced a second time.
|
|
134
168
|
* @prop --bs-chatbot-header-bg - Background of the header bar. Aliased to `--bs-surface-base`.
|
|
135
169
|
* @prop --bs-chatbot-header-border - Bottom border color. Aliased to `--bs-border-default`.
|
|
136
170
|
* @prop --bs-chatbot-header-padding-top - Aliased to `--bs-spacing-200`.
|
|
137
171
|
* @prop --bs-chatbot-header-padding-bottom - Aliased to `--bs-spacing-100`.
|
|
138
172
|
* @prop --bs-chatbot-header-padding-x - Aliased to `--bs-margin-fluid`.
|
|
139
173
|
* @prop --bs-chatbot-header-gap - Gap between the logo and the button group. Aliased to `--bs-navigation-header-gap`.
|
|
174
|
+
* @prop --bs-chatbot-header-actions-gap - Gap between the individual action buttons. Aliased to `--bs-spacing-100`.
|
|
140
175
|
* @prop --bs-chatbot-header-button-size - Width/height of each icon button. Aliased to `--bs-spacing-600`.
|
|
141
176
|
* @prop --bs-chatbot-header-button-radius - Corner radius of each icon button. Aliased to `--bs-border-radius-100`.
|
|
142
177
|
* @prop --bs-chatbot-header-button-hover - Icon button background on hover. Aliased to `--bs-color-neutral-container`.
|
|
@@ -190,6 +225,44 @@ export namespace Components {
|
|
|
190
225
|
*/
|
|
191
226
|
"sourcesCount"?: number;
|
|
192
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
230
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
231
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
232
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
233
|
+
* `flex-wrap: wrap` is sufficient.
|
|
234
|
+
* ## When to use
|
|
235
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
236
|
+
* ## When not to use
|
|
237
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
238
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
239
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
240
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
241
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
242
|
+
* Aliased to `--bs-color-primary-container`.
|
|
243
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
244
|
+
* `--bs-color-primary-container-hover`.
|
|
245
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
246
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
247
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
248
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
249
|
+
* subtle/outlined/success/warning/info variants).
|
|
250
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
251
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
252
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
253
|
+
* `--bs-text-action`.
|
|
254
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
255
|
+
* Aliased to `--bs-text-action-hover`.
|
|
256
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
257
|
+
* `--bs-border-primary-focus`.
|
|
258
|
+
*/
|
|
259
|
+
interface BsChatbotSuggestionButton {
|
|
260
|
+
/**
|
|
261
|
+
* Disables the button and applies a reduced-opacity treatment.
|
|
262
|
+
* @default false
|
|
263
|
+
*/
|
|
264
|
+
"disabled": boolean;
|
|
265
|
+
}
|
|
193
266
|
/**
|
|
194
267
|
* A chat composer input for Genie AI-style conversational interfaces: a text field
|
|
195
268
|
* plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
|
|
@@ -373,6 +446,40 @@ export namespace Components {
|
|
|
373
446
|
*/
|
|
374
447
|
"size": BsModalSize;
|
|
375
448
|
}
|
|
449
|
+
/**
|
|
450
|
+
* A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
|
|
451
|
+
* next to a trigger element.
|
|
452
|
+
* `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
|
|
453
|
+
* visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
|
|
454
|
+
* app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
|
|
455
|
+
* wrapping `position: relative`/`absolute` pattern, the same approach used by
|
|
456
|
+
* `bs-chatbot-response-action` for its own `menu` slot).
|
|
457
|
+
* ## When to use
|
|
458
|
+
* - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
|
|
459
|
+
* where the host app owns the show/hide and positioning logic.
|
|
460
|
+
* ## When not to use
|
|
461
|
+
* - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
|
|
462
|
+
* this component intentionally does not do that; wire that up in the consuming app instead.
|
|
463
|
+
* @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
|
|
464
|
+
* @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
|
|
465
|
+
* @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
|
|
466
|
+
* @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
|
|
467
|
+
* @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
|
|
468
|
+
* @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
|
|
469
|
+
* width (the bubble's width is otherwise variable based on content).
|
|
470
|
+
* @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
|
|
471
|
+
* a literal value rather than a `--bs-shadow-*` token alias.
|
|
472
|
+
* @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
|
|
473
|
+
* @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
|
|
474
|
+
* `--bs-line-height-body-sm`.
|
|
475
|
+
*/
|
|
476
|
+
interface BsTooltip {
|
|
477
|
+
/**
|
|
478
|
+
* Which edge of the bubble the arrow points from, and therefore which side of a trigger the bubble should be placed on. `'top'` is the only value implemented -- it is the only variant confirmed from the Figma "EG Tooltip" component (arrow at the top of the bubble, pointing up). Bottom/left/right variants aren't implemented pending further Figma design confirmation.
|
|
479
|
+
* @default 'top'
|
|
480
|
+
*/
|
|
481
|
+
"placement": 'top';
|
|
482
|
+
}
|
|
376
483
|
}
|
|
377
484
|
export interface BsChatbotHeaderCustomEvent<T> extends CustomEvent<T> {
|
|
378
485
|
detail: T;
|
|
@@ -382,6 +489,10 @@ export interface BsChatbotResponseActionCustomEvent<T> extends CustomEvent<T> {
|
|
|
382
489
|
detail: T;
|
|
383
490
|
target: HTMLBsChatbotResponseActionElement;
|
|
384
491
|
}
|
|
492
|
+
export interface BsChatbotSuggestionButtonCustomEvent<T> extends CustomEvent<T> {
|
|
493
|
+
detail: T;
|
|
494
|
+
target: HTMLBsChatbotSuggestionButtonElement;
|
|
495
|
+
}
|
|
385
496
|
export interface BsComposerCustomEvent<T> extends CustomEvent<T> {
|
|
386
497
|
detail: T;
|
|
387
498
|
target: HTMLBsComposerElement;
|
|
@@ -403,6 +514,33 @@ export interface BsModalCustomEvent<T> extends CustomEvent<T> {
|
|
|
403
514
|
target: HTMLBsModalElement;
|
|
404
515
|
}
|
|
405
516
|
declare global {
|
|
517
|
+
/**
|
|
518
|
+
* A small inline status indicator for Genie AI surfaces: the colorful Genie mark next to a label
|
|
519
|
+
* (e.g. "Retrieving", "Thinking", "Searching") whose text pulses in a slow breathing loop while
|
|
520
|
+
* an operation is in progress.
|
|
521
|
+
* ## When to use
|
|
522
|
+
* - Inline in a Genie AI chat transcript to show what the assistant is currently doing while a
|
|
523
|
+
* response is being generated (retrieving context, searching, thinking).
|
|
524
|
+
* ## When not to use
|
|
525
|
+
* - A blocking/full-panel loading state -- this is a small inline indicator, not a spinner overlay.
|
|
526
|
+
* The label's pulse animation reproduces Figma's exact keyframe track (a plain opacity
|
|
527
|
+
* fade-in/hold/reset with the source's own cubic-bezier easing) rather than an invented
|
|
528
|
+
* shimmer-sweep -- the source design only specifies this one animation.
|
|
529
|
+
* @prop --bs-ai-thinking-gap - Gap between icon and label. Aliased to `--bs-spacing-100`.
|
|
530
|
+
* @prop --bs-ai-thinking-icon-size - Width/height of the icon.
|
|
531
|
+
* @prop --bs-ai-thinking-text - Label color. Aliased to `--bs-text-muted`.
|
|
532
|
+
* @prop --bs-ai-thinking-font-size - Label font size. Aliased to `--bs-font-size-md`.
|
|
533
|
+
* @prop --bs-ai-thinking-line-height - Label line height. Aliased to `--bs-line-height-body-md`.
|
|
534
|
+
* @prop --bs-ai-thinking-cycle-duration - Duration of one pulse loop. Figma specifies exactly 2s,
|
|
535
|
+
* longer than any `--bs-duration-*` token (max `--bs-duration-slower` is 500ms), so this is
|
|
536
|
+
* aliased directly to the literal value.
|
|
537
|
+
*/
|
|
538
|
+
interface HTMLBsAiThinkingElement extends Components.BsAiThinking, HTMLStencilElement {
|
|
539
|
+
}
|
|
540
|
+
var HTMLBsAiThinkingElement: {
|
|
541
|
+
prototype: HTMLBsAiThinkingElement;
|
|
542
|
+
new (): HTMLBsAiThinkingElement;
|
|
543
|
+
};
|
|
406
544
|
/**
|
|
407
545
|
* A small status or category pill, usually paired with a label or list item.
|
|
408
546
|
* ## When to use
|
|
@@ -496,12 +634,19 @@ declare global {
|
|
|
496
634
|
* ## When not to use
|
|
497
635
|
* - A generic app/page header — this component's layout and actions are purpose-built for the
|
|
498
636
|
* Genie chat panel, not a general navigation bar.
|
|
637
|
+
* Each action button shows a `bs-tooltip` (placement="top", i.e. positioned below the button with
|
|
638
|
+
* its arrow pointing up toward it -- fits naturally since this header sits at the top of a panel)
|
|
639
|
+
* on hover/focus, driven by plain CSS (`:hover`/`:focus-within` on a wrapper, no extra JS state).
|
|
640
|
+
* The tooltip is `aria-hidden` since it's a purely visual reinforcement of each button's existing
|
|
641
|
+
* `aria-label` -- screen readers already get the accessible name from the button itself, so the
|
|
642
|
+
* tooltip doesn't need to be (and shouldn't be) announced a second time.
|
|
499
643
|
* @prop --bs-chatbot-header-bg - Background of the header bar. Aliased to `--bs-surface-base`.
|
|
500
644
|
* @prop --bs-chatbot-header-border - Bottom border color. Aliased to `--bs-border-default`.
|
|
501
645
|
* @prop --bs-chatbot-header-padding-top - Aliased to `--bs-spacing-200`.
|
|
502
646
|
* @prop --bs-chatbot-header-padding-bottom - Aliased to `--bs-spacing-100`.
|
|
503
647
|
* @prop --bs-chatbot-header-padding-x - Aliased to `--bs-margin-fluid`.
|
|
504
648
|
* @prop --bs-chatbot-header-gap - Gap between the logo and the button group. Aliased to `--bs-navigation-header-gap`.
|
|
649
|
+
* @prop --bs-chatbot-header-actions-gap - Gap between the individual action buttons. Aliased to `--bs-spacing-100`.
|
|
505
650
|
* @prop --bs-chatbot-header-button-size - Width/height of each icon button. Aliased to `--bs-spacing-600`.
|
|
506
651
|
* @prop --bs-chatbot-header-button-radius - Corner radius of each icon button. Aliased to `--bs-border-radius-100`.
|
|
507
652
|
* @prop --bs-chatbot-header-button-hover - Icon button background on hover. Aliased to `--bs-color-neutral-container`.
|
|
@@ -568,6 +713,54 @@ declare global {
|
|
|
568
713
|
prototype: HTMLBsChatbotResponseActionElement;
|
|
569
714
|
new (): HTMLBsChatbotResponseActionElement;
|
|
570
715
|
};
|
|
716
|
+
interface HTMLBsChatbotSuggestionButtonElementEventMap {
|
|
717
|
+
"bsSelect": void;
|
|
718
|
+
}
|
|
719
|
+
/**
|
|
720
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
721
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
722
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
723
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
724
|
+
* `flex-wrap: wrap` is sufficient.
|
|
725
|
+
* ## When to use
|
|
726
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
727
|
+
* ## When not to use
|
|
728
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
729
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
730
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
731
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
732
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
733
|
+
* Aliased to `--bs-color-primary-container`.
|
|
734
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
735
|
+
* `--bs-color-primary-container-hover`.
|
|
736
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
737
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
738
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
739
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
740
|
+
* subtle/outlined/success/warning/info variants).
|
|
741
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
742
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
743
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
744
|
+
* `--bs-text-action`.
|
|
745
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
746
|
+
* Aliased to `--bs-text-action-hover`.
|
|
747
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
748
|
+
* `--bs-border-primary-focus`.
|
|
749
|
+
*/
|
|
750
|
+
interface HTMLBsChatbotSuggestionButtonElement extends Components.BsChatbotSuggestionButton, HTMLStencilElement {
|
|
751
|
+
addEventListener<K extends keyof HTMLBsChatbotSuggestionButtonElementEventMap>(type: K, listener: (this: HTMLBsChatbotSuggestionButtonElement, ev: BsChatbotSuggestionButtonCustomEvent<HTMLBsChatbotSuggestionButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
752
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
753
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
754
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
755
|
+
removeEventListener<K extends keyof HTMLBsChatbotSuggestionButtonElementEventMap>(type: K, listener: (this: HTMLBsChatbotSuggestionButtonElement, ev: BsChatbotSuggestionButtonCustomEvent<HTMLBsChatbotSuggestionButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
756
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
757
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
758
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
759
|
+
}
|
|
760
|
+
var HTMLBsChatbotSuggestionButtonElement: {
|
|
761
|
+
prototype: HTMLBsChatbotSuggestionButtonElement;
|
|
762
|
+
new (): HTMLBsChatbotSuggestionButtonElement;
|
|
763
|
+
};
|
|
571
764
|
interface HTMLBsComposerElementEventMap {
|
|
572
765
|
"bsInput": string;
|
|
573
766
|
"bsSubmit": void;
|
|
@@ -763,22 +956,86 @@ declare global {
|
|
|
763
956
|
prototype: HTMLBsModalElement;
|
|
764
957
|
new (): HTMLBsModalElement;
|
|
765
958
|
};
|
|
959
|
+
/**
|
|
960
|
+
* A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
|
|
961
|
+
* next to a trigger element.
|
|
962
|
+
* `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
|
|
963
|
+
* visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
|
|
964
|
+
* app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
|
|
965
|
+
* wrapping `position: relative`/`absolute` pattern, the same approach used by
|
|
966
|
+
* `bs-chatbot-response-action` for its own `menu` slot).
|
|
967
|
+
* ## When to use
|
|
968
|
+
* - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
|
|
969
|
+
* where the host app owns the show/hide and positioning logic.
|
|
970
|
+
* ## When not to use
|
|
971
|
+
* - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
|
|
972
|
+
* this component intentionally does not do that; wire that up in the consuming app instead.
|
|
973
|
+
* @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
|
|
974
|
+
* @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
|
|
975
|
+
* @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
|
|
976
|
+
* @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
|
|
977
|
+
* @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
|
|
978
|
+
* @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
|
|
979
|
+
* width (the bubble's width is otherwise variable based on content).
|
|
980
|
+
* @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
|
|
981
|
+
* a literal value rather than a `--bs-shadow-*` token alias.
|
|
982
|
+
* @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
|
|
983
|
+
* @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
|
|
984
|
+
* `--bs-line-height-body-sm`.
|
|
985
|
+
*/
|
|
986
|
+
interface HTMLBsTooltipElement extends Components.BsTooltip, HTMLStencilElement {
|
|
987
|
+
}
|
|
988
|
+
var HTMLBsTooltipElement: {
|
|
989
|
+
prototype: HTMLBsTooltipElement;
|
|
990
|
+
new (): HTMLBsTooltipElement;
|
|
991
|
+
};
|
|
766
992
|
interface HTMLElementTagNameMap {
|
|
993
|
+
"bs-ai-thinking": HTMLBsAiThinkingElement;
|
|
767
994
|
"bs-badge": HTMLBsBadgeElement;
|
|
768
995
|
"bs-button": HTMLBsButtonElement;
|
|
769
996
|
"bs-button-skeleton": HTMLBsButtonSkeletonElement;
|
|
770
997
|
"bs-card": HTMLBsCardElement;
|
|
771
998
|
"bs-chatbot-header": HTMLBsChatbotHeaderElement;
|
|
772
999
|
"bs-chatbot-response-action": HTMLBsChatbotResponseActionElement;
|
|
1000
|
+
"bs-chatbot-suggestion-button": HTMLBsChatbotSuggestionButtonElement;
|
|
773
1001
|
"bs-composer": HTMLBsComposerElement;
|
|
774
1002
|
"bs-data-table": HTMLBsDataTableElement;
|
|
775
1003
|
"bs-input": HTMLBsInputElement;
|
|
776
1004
|
"bs-menu": HTMLBsMenuElement;
|
|
777
1005
|
"bs-menu-item": HTMLBsMenuItemElement;
|
|
778
1006
|
"bs-modal": HTMLBsModalElement;
|
|
1007
|
+
"bs-tooltip": HTMLBsTooltipElement;
|
|
779
1008
|
}
|
|
780
1009
|
}
|
|
781
1010
|
declare namespace LocalJSX {
|
|
1011
|
+
/**
|
|
1012
|
+
* A small inline status indicator for Genie AI surfaces: the colorful Genie mark next to a label
|
|
1013
|
+
* (e.g. "Retrieving", "Thinking", "Searching") whose text pulses in a slow breathing loop while
|
|
1014
|
+
* an operation is in progress.
|
|
1015
|
+
* ## When to use
|
|
1016
|
+
* - Inline in a Genie AI chat transcript to show what the assistant is currently doing while a
|
|
1017
|
+
* response is being generated (retrieving context, searching, thinking).
|
|
1018
|
+
* ## When not to use
|
|
1019
|
+
* - A blocking/full-panel loading state -- this is a small inline indicator, not a spinner overlay.
|
|
1020
|
+
* The label's pulse animation reproduces Figma's exact keyframe track (a plain opacity
|
|
1021
|
+
* fade-in/hold/reset with the source's own cubic-bezier easing) rather than an invented
|
|
1022
|
+
* shimmer-sweep -- the source design only specifies this one animation.
|
|
1023
|
+
* @prop --bs-ai-thinking-gap - Gap between icon and label. Aliased to `--bs-spacing-100`.
|
|
1024
|
+
* @prop --bs-ai-thinking-icon-size - Width/height of the icon.
|
|
1025
|
+
* @prop --bs-ai-thinking-text - Label color. Aliased to `--bs-text-muted`.
|
|
1026
|
+
* @prop --bs-ai-thinking-font-size - Label font size. Aliased to `--bs-font-size-md`.
|
|
1027
|
+
* @prop --bs-ai-thinking-line-height - Label line height. Aliased to `--bs-line-height-body-md`.
|
|
1028
|
+
* @prop --bs-ai-thinking-cycle-duration - Duration of one pulse loop. Figma specifies exactly 2s,
|
|
1029
|
+
* longer than any `--bs-duration-*` token (max `--bs-duration-slower` is 500ms), so this is
|
|
1030
|
+
* aliased directly to the literal value.
|
|
1031
|
+
*/
|
|
1032
|
+
interface BsAiThinking {
|
|
1033
|
+
/**
|
|
1034
|
+
* The status text shown next to the icon, e.g. "Retrieving", "Thinking", "Searching".
|
|
1035
|
+
* @default 'Thinking'
|
|
1036
|
+
*/
|
|
1037
|
+
"label"?: string;
|
|
1038
|
+
}
|
|
782
1039
|
/**
|
|
783
1040
|
* A small status or category pill, usually paired with a label or list item.
|
|
784
1041
|
* ## When to use
|
|
@@ -890,12 +1147,19 @@ declare namespace LocalJSX {
|
|
|
890
1147
|
* ## When not to use
|
|
891
1148
|
* - A generic app/page header — this component's layout and actions are purpose-built for the
|
|
892
1149
|
* Genie chat panel, not a general navigation bar.
|
|
1150
|
+
* Each action button shows a `bs-tooltip` (placement="top", i.e. positioned below the button with
|
|
1151
|
+
* its arrow pointing up toward it -- fits naturally since this header sits at the top of a panel)
|
|
1152
|
+
* on hover/focus, driven by plain CSS (`:hover`/`:focus-within` on a wrapper, no extra JS state).
|
|
1153
|
+
* The tooltip is `aria-hidden` since it's a purely visual reinforcement of each button's existing
|
|
1154
|
+
* `aria-label` -- screen readers already get the accessible name from the button itself, so the
|
|
1155
|
+
* tooltip doesn't need to be (and shouldn't be) announced a second time.
|
|
893
1156
|
* @prop --bs-chatbot-header-bg - Background of the header bar. Aliased to `--bs-surface-base`.
|
|
894
1157
|
* @prop --bs-chatbot-header-border - Bottom border color. Aliased to `--bs-border-default`.
|
|
895
1158
|
* @prop --bs-chatbot-header-padding-top - Aliased to `--bs-spacing-200`.
|
|
896
1159
|
* @prop --bs-chatbot-header-padding-bottom - Aliased to `--bs-spacing-100`.
|
|
897
1160
|
* @prop --bs-chatbot-header-padding-x - Aliased to `--bs-margin-fluid`.
|
|
898
1161
|
* @prop --bs-chatbot-header-gap - Gap between the logo and the button group. Aliased to `--bs-navigation-header-gap`.
|
|
1162
|
+
* @prop --bs-chatbot-header-actions-gap - Gap between the individual action buttons. Aliased to `--bs-spacing-100`.
|
|
899
1163
|
* @prop --bs-chatbot-header-button-size - Width/height of each icon button. Aliased to `--bs-spacing-600`.
|
|
900
1164
|
* @prop --bs-chatbot-header-button-radius - Corner radius of each icon button. Aliased to `--bs-border-radius-100`.
|
|
901
1165
|
* @prop --bs-chatbot-header-button-hover - Icon button background on hover. Aliased to `--bs-color-neutral-container`.
|
|
@@ -989,6 +1253,48 @@ declare namespace LocalJSX {
|
|
|
989
1253
|
*/
|
|
990
1254
|
"sourcesCount"?: number;
|
|
991
1255
|
}
|
|
1256
|
+
/**
|
|
1257
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
1258
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
1259
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
1260
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
1261
|
+
* `flex-wrap: wrap` is sufficient.
|
|
1262
|
+
* ## When to use
|
|
1263
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
1264
|
+
* ## When not to use
|
|
1265
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
1266
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
1267
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
1268
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
1269
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
1270
|
+
* Aliased to `--bs-color-primary-container`.
|
|
1271
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
1272
|
+
* `--bs-color-primary-container-hover`.
|
|
1273
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
1274
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
1275
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
1276
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
1277
|
+
* subtle/outlined/success/warning/info variants).
|
|
1278
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
1279
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
1280
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
1281
|
+
* `--bs-text-action`.
|
|
1282
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
1283
|
+
* Aliased to `--bs-text-action-hover`.
|
|
1284
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
1285
|
+
* `--bs-border-primary-focus`.
|
|
1286
|
+
*/
|
|
1287
|
+
interface BsChatbotSuggestionButton {
|
|
1288
|
+
/**
|
|
1289
|
+
* Disables the button and applies a reduced-opacity treatment.
|
|
1290
|
+
* @default false
|
|
1291
|
+
*/
|
|
1292
|
+
"disabled"?: boolean;
|
|
1293
|
+
/**
|
|
1294
|
+
* Fires when the button is clicked.
|
|
1295
|
+
*/
|
|
1296
|
+
"onBsSelect"?: (event: BsChatbotSuggestionButtonCustomEvent<void>) => void;
|
|
1297
|
+
}
|
|
992
1298
|
/**
|
|
993
1299
|
* A chat composer input for Genie AI-style conversational interfaces: a text field
|
|
994
1300
|
* plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
|
|
@@ -1205,7 +1511,44 @@ declare namespace LocalJSX {
|
|
|
1205
1511
|
*/
|
|
1206
1512
|
"size"?: BsModalSize;
|
|
1207
1513
|
}
|
|
1514
|
+
/**
|
|
1515
|
+
* A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
|
|
1516
|
+
* next to a trigger element.
|
|
1517
|
+
* `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
|
|
1518
|
+
* visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
|
|
1519
|
+
* app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
|
|
1520
|
+
* wrapping `position: relative`/`absolute` pattern, the same approach used by
|
|
1521
|
+
* `bs-chatbot-response-action` for its own `menu` slot).
|
|
1522
|
+
* ## When to use
|
|
1523
|
+
* - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
|
|
1524
|
+
* where the host app owns the show/hide and positioning logic.
|
|
1525
|
+
* ## When not to use
|
|
1526
|
+
* - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
|
|
1527
|
+
* this component intentionally does not do that; wire that up in the consuming app instead.
|
|
1528
|
+
* @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
|
|
1529
|
+
* @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
|
|
1530
|
+
* @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
|
|
1531
|
+
* @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
|
|
1532
|
+
* @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
|
|
1533
|
+
* @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
|
|
1534
|
+
* width (the bubble's width is otherwise variable based on content).
|
|
1535
|
+
* @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
|
|
1536
|
+
* a literal value rather than a `--bs-shadow-*` token alias.
|
|
1537
|
+
* @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
|
|
1538
|
+
* @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
|
|
1539
|
+
* `--bs-line-height-body-sm`.
|
|
1540
|
+
*/
|
|
1541
|
+
interface BsTooltip {
|
|
1542
|
+
/**
|
|
1543
|
+
* Which edge of the bubble the arrow points from, and therefore which side of a trigger the bubble should be placed on. `'top'` is the only value implemented -- it is the only variant confirmed from the Figma "EG Tooltip" component (arrow at the top of the bubble, pointing up). Bottom/left/right variants aren't implemented pending further Figma design confirmation.
|
|
1544
|
+
* @default 'top'
|
|
1545
|
+
*/
|
|
1546
|
+
"placement"?: 'top';
|
|
1547
|
+
}
|
|
1208
1548
|
|
|
1549
|
+
interface BsAiThinkingAttributes {
|
|
1550
|
+
"label": string;
|
|
1551
|
+
}
|
|
1209
1552
|
interface BsBadgeAttributes {
|
|
1210
1553
|
"variant": BsBadgeVariant;
|
|
1211
1554
|
}
|
|
@@ -1230,6 +1573,9 @@ declare namespace LocalJSX {
|
|
|
1230
1573
|
"sourcesCount": number;
|
|
1231
1574
|
"menuOpen": boolean;
|
|
1232
1575
|
}
|
|
1576
|
+
interface BsChatbotSuggestionButtonAttributes {
|
|
1577
|
+
"disabled": boolean;
|
|
1578
|
+
}
|
|
1233
1579
|
interface BsComposerAttributes {
|
|
1234
1580
|
"variant": BsComposerVariant;
|
|
1235
1581
|
"placeholder": string;
|
|
@@ -1256,26 +1602,54 @@ declare namespace LocalJSX {
|
|
|
1256
1602
|
"heading": string;
|
|
1257
1603
|
"size": BsModalSize;
|
|
1258
1604
|
}
|
|
1605
|
+
interface BsTooltipAttributes {
|
|
1606
|
+
"placement": 'top';
|
|
1607
|
+
}
|
|
1259
1608
|
|
|
1260
1609
|
interface IntrinsicElements {
|
|
1610
|
+
"bs-ai-thinking": Omit<BsAiThinking, keyof BsAiThinkingAttributes> & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes]?: BsAiThinking[K] } & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes as `attr:${K}`]?: BsAiThinkingAttributes[K] } & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes as `prop:${K}`]?: BsAiThinking[K] };
|
|
1261
1611
|
"bs-badge": Omit<BsBadge, keyof BsBadgeAttributes> & { [K in keyof BsBadge & keyof BsBadgeAttributes]?: BsBadge[K] } & { [K in keyof BsBadge & keyof BsBadgeAttributes as `attr:${K}`]?: BsBadgeAttributes[K] } & { [K in keyof BsBadge & keyof BsBadgeAttributes as `prop:${K}`]?: BsBadge[K] };
|
|
1262
1612
|
"bs-button": Omit<BsButton, keyof BsButtonAttributes> & { [K in keyof BsButton & keyof BsButtonAttributes]?: BsButton[K] } & { [K in keyof BsButton & keyof BsButtonAttributes as `attr:${K}`]?: BsButtonAttributes[K] } & { [K in keyof BsButton & keyof BsButtonAttributes as `prop:${K}`]?: BsButton[K] };
|
|
1263
1613
|
"bs-button-skeleton": Omit<BsButtonSkeleton, keyof BsButtonSkeletonAttributes> & { [K in keyof BsButtonSkeleton & keyof BsButtonSkeletonAttributes]?: BsButtonSkeleton[K] } & { [K in keyof BsButtonSkeleton & keyof BsButtonSkeletonAttributes as `attr:${K}`]?: BsButtonSkeletonAttributes[K] } & { [K in keyof BsButtonSkeleton & keyof BsButtonSkeletonAttributes as `prop:${K}`]?: BsButtonSkeleton[K] };
|
|
1264
1614
|
"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
1615
|
"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
1616
|
"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] };
|
|
1617
|
+
"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
1618
|
"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
1619
|
"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
1620
|
"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] };
|
|
1270
1621
|
"bs-menu": BsMenu;
|
|
1271
1622
|
"bs-menu-item": BsMenuItem;
|
|
1272
1623
|
"bs-modal": Omit<BsModal, keyof BsModalAttributes> & { [K in keyof BsModal & keyof BsModalAttributes]?: BsModal[K] } & { [K in keyof BsModal & keyof BsModalAttributes as `attr:${K}`]?: BsModalAttributes[K] } & { [K in keyof BsModal & keyof BsModalAttributes as `prop:${K}`]?: BsModal[K] };
|
|
1624
|
+
"bs-tooltip": Omit<BsTooltip, keyof BsTooltipAttributes> & { [K in keyof BsTooltip & keyof BsTooltipAttributes]?: BsTooltip[K] } & { [K in keyof BsTooltip & keyof BsTooltipAttributes as `attr:${K}`]?: BsTooltipAttributes[K] } & { [K in keyof BsTooltip & keyof BsTooltipAttributes as `prop:${K}`]?: BsTooltip[K] };
|
|
1273
1625
|
}
|
|
1274
1626
|
}
|
|
1275
1627
|
export { LocalJSX as JSX };
|
|
1276
1628
|
declare module "@stencil/core" {
|
|
1277
1629
|
export namespace JSX {
|
|
1278
1630
|
interface IntrinsicElements {
|
|
1631
|
+
/**
|
|
1632
|
+
* A small inline status indicator for Genie AI surfaces: the colorful Genie mark next to a label
|
|
1633
|
+
* (e.g. "Retrieving", "Thinking", "Searching") whose text pulses in a slow breathing loop while
|
|
1634
|
+
* an operation is in progress.
|
|
1635
|
+
* ## When to use
|
|
1636
|
+
* - Inline in a Genie AI chat transcript to show what the assistant is currently doing while a
|
|
1637
|
+
* response is being generated (retrieving context, searching, thinking).
|
|
1638
|
+
* ## When not to use
|
|
1639
|
+
* - A blocking/full-panel loading state -- this is a small inline indicator, not a spinner overlay.
|
|
1640
|
+
* The label's pulse animation reproduces Figma's exact keyframe track (a plain opacity
|
|
1641
|
+
* fade-in/hold/reset with the source's own cubic-bezier easing) rather than an invented
|
|
1642
|
+
* shimmer-sweep -- the source design only specifies this one animation.
|
|
1643
|
+
* @prop --bs-ai-thinking-gap - Gap between icon and label. Aliased to `--bs-spacing-100`.
|
|
1644
|
+
* @prop --bs-ai-thinking-icon-size - Width/height of the icon.
|
|
1645
|
+
* @prop --bs-ai-thinking-text - Label color. Aliased to `--bs-text-muted`.
|
|
1646
|
+
* @prop --bs-ai-thinking-font-size - Label font size. Aliased to `--bs-font-size-md`.
|
|
1647
|
+
* @prop --bs-ai-thinking-line-height - Label line height. Aliased to `--bs-line-height-body-md`.
|
|
1648
|
+
* @prop --bs-ai-thinking-cycle-duration - Duration of one pulse loop. Figma specifies exactly 2s,
|
|
1649
|
+
* longer than any `--bs-duration-*` token (max `--bs-duration-slower` is 500ms), so this is
|
|
1650
|
+
* aliased directly to the literal value.
|
|
1651
|
+
*/
|
|
1652
|
+
"bs-ai-thinking": LocalJSX.IntrinsicElements["bs-ai-thinking"] & JSXBase.HTMLAttributes<HTMLBsAiThinkingElement>;
|
|
1279
1653
|
/**
|
|
1280
1654
|
* A small status or category pill, usually paired with a label or list item.
|
|
1281
1655
|
* ## When to use
|
|
@@ -1343,12 +1717,19 @@ declare module "@stencil/core" {
|
|
|
1343
1717
|
* ## When not to use
|
|
1344
1718
|
* - A generic app/page header — this component's layout and actions are purpose-built for the
|
|
1345
1719
|
* Genie chat panel, not a general navigation bar.
|
|
1720
|
+
* Each action button shows a `bs-tooltip` (placement="top", i.e. positioned below the button with
|
|
1721
|
+
* its arrow pointing up toward it -- fits naturally since this header sits at the top of a panel)
|
|
1722
|
+
* on hover/focus, driven by plain CSS (`:hover`/`:focus-within` on a wrapper, no extra JS state).
|
|
1723
|
+
* The tooltip is `aria-hidden` since it's a purely visual reinforcement of each button's existing
|
|
1724
|
+
* `aria-label` -- screen readers already get the accessible name from the button itself, so the
|
|
1725
|
+
* tooltip doesn't need to be (and shouldn't be) announced a second time.
|
|
1346
1726
|
* @prop --bs-chatbot-header-bg - Background of the header bar. Aliased to `--bs-surface-base`.
|
|
1347
1727
|
* @prop --bs-chatbot-header-border - Bottom border color. Aliased to `--bs-border-default`.
|
|
1348
1728
|
* @prop --bs-chatbot-header-padding-top - Aliased to `--bs-spacing-200`.
|
|
1349
1729
|
* @prop --bs-chatbot-header-padding-bottom - Aliased to `--bs-spacing-100`.
|
|
1350
1730
|
* @prop --bs-chatbot-header-padding-x - Aliased to `--bs-margin-fluid`.
|
|
1351
1731
|
* @prop --bs-chatbot-header-gap - Gap between the logo and the button group. Aliased to `--bs-navigation-header-gap`.
|
|
1732
|
+
* @prop --bs-chatbot-header-actions-gap - Gap between the individual action buttons. Aliased to `--bs-spacing-100`.
|
|
1352
1733
|
* @prop --bs-chatbot-header-button-size - Width/height of each icon button. Aliased to `--bs-spacing-600`.
|
|
1353
1734
|
* @prop --bs-chatbot-header-button-radius - Corner radius of each icon button. Aliased to `--bs-border-radius-100`.
|
|
1354
1735
|
* @prop --bs-chatbot-header-button-hover - Icon button background on hover. Aliased to `--bs-color-neutral-container`.
|
|
@@ -1381,6 +1762,38 @@ declare module "@stencil/core" {
|
|
|
1381
1762
|
* @prop --bs-chatbot-response-action-sources-line-height - Aliased to `--bs-line-height-body-sm`.
|
|
1382
1763
|
*/
|
|
1383
1764
|
"bs-chatbot-response-action": LocalJSX.IntrinsicElements["bs-chatbot-response-action"] & JSXBase.HTMLAttributes<HTMLBsChatbotResponseActionElement>;
|
|
1765
|
+
/**
|
|
1766
|
+
* A pill-shaped clickable suggestion chip for a Genie AI chat panel (e.g. "How can I help you?").
|
|
1767
|
+
* One instance renders one chip -- to show several suggestion prompts side by side, render
|
|
1768
|
+
* multiple `bs-chatbot-suggestion-button` elements inside a plain flex-wrap container; this
|
|
1769
|
+
* library doesn't ship a separate list/group component for that since a `<div>` with
|
|
1770
|
+
* `flex-wrap: wrap` is sufficient.
|
|
1771
|
+
* ## When to use
|
|
1772
|
+
* - Quick-reply/starter prompts shown above or alongside `bs-composer` in a Genie AI chat panel.
|
|
1773
|
+
* ## When not to use
|
|
1774
|
+
* - As a general-purpose button -- use `bs-button` instead, this component's pill shape and
|
|
1775
|
+
* tonal color treatment are specific to Genie chat suggestion prompts.
|
|
1776
|
+
* @prop --bs-chatbot-suggestion-button-radius - Corner radius. Aliased to `--bs-border-radius-full`.
|
|
1777
|
+
* @prop --bs-chatbot-suggestion-button-border-color - Border color. Aliased to `--bs-border-primary`.
|
|
1778
|
+
* @prop --bs-chatbot-suggestion-button-bg-default - Background in the default (enabled) state.
|
|
1779
|
+
* Aliased to `--bs-color-primary-container`.
|
|
1780
|
+
* @prop --bs-chatbot-suggestion-button-bg-hover - Background on hover. Aliased to
|
|
1781
|
+
* `--bs-color-primary-container-hover`.
|
|
1782
|
+
* @prop --bs-chatbot-suggestion-button-bg-pressed - Background when pressed. Aliased directly to
|
|
1783
|
+
* the primitive `--bs-brand-200` -- there's no pre-built semantic "container-pressed" token
|
|
1784
|
+
* matching this tonal button's lighter pressed shade progression (50 -> 100 -> 200), so this
|
|
1785
|
+
* component aliases one locally (same situation `bs-button.css` documents for its
|
|
1786
|
+
* subtle/outlined/success/warning/info variants).
|
|
1787
|
+
* @prop --bs-chatbot-suggestion-button-bg-focus - Background when focused. Aliased to
|
|
1788
|
+
* `--bs-color-primary-container-hover` (same as hover).
|
|
1789
|
+
* @prop --bs-chatbot-suggestion-button-text-default - Text color in the default state. Aliased to
|
|
1790
|
+
* `--bs-text-action`.
|
|
1791
|
+
* @prop --bs-chatbot-suggestion-button-text-hover - Text color on hover, pressed, and focus.
|
|
1792
|
+
* Aliased to `--bs-text-action-hover`.
|
|
1793
|
+
* @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
|
|
1794
|
+
* `--bs-border-primary-focus`.
|
|
1795
|
+
*/
|
|
1796
|
+
"bs-chatbot-suggestion-button": LocalJSX.IntrinsicElements["bs-chatbot-suggestion-button"] & JSXBase.HTMLAttributes<HTMLBsChatbotSuggestionButtonElement>;
|
|
1384
1797
|
/**
|
|
1385
1798
|
* A chat composer input for Genie AI-style conversational interfaces: a text field
|
|
1386
1799
|
* plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
|
|
@@ -1484,6 +1897,34 @@ declare module "@stencil/core" {
|
|
|
1484
1897
|
* modal that just gets taller and taller.
|
|
1485
1898
|
*/
|
|
1486
1899
|
"bs-modal": LocalJSX.IntrinsicElements["bs-modal"] & JSXBase.HTMLAttributes<HTMLBsModalElement>;
|
|
1900
|
+
/**
|
|
1901
|
+
* A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
|
|
1902
|
+
* next to a trigger element.
|
|
1903
|
+
* `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
|
|
1904
|
+
* visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
|
|
1905
|
+
* app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
|
|
1906
|
+
* wrapping `position: relative`/`absolute` pattern, the same approach used by
|
|
1907
|
+
* `bs-chatbot-response-action` for its own `menu` slot).
|
|
1908
|
+
* ## When to use
|
|
1909
|
+
* - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
|
|
1910
|
+
* where the host app owns the show/hide and positioning logic.
|
|
1911
|
+
* ## When not to use
|
|
1912
|
+
* - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
|
|
1913
|
+
* this component intentionally does not do that; wire that up in the consuming app instead.
|
|
1914
|
+
* @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
|
|
1915
|
+
* @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
|
|
1916
|
+
* @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
|
|
1917
|
+
* @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
|
|
1918
|
+
* @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
|
|
1919
|
+
* @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
|
|
1920
|
+
* width (the bubble's width is otherwise variable based on content).
|
|
1921
|
+
* @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
|
|
1922
|
+
* a literal value rather than a `--bs-shadow-*` token alias.
|
|
1923
|
+
* @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
|
|
1924
|
+
* @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
|
|
1925
|
+
* `--bs-line-height-body-sm`.
|
|
1926
|
+
*/
|
|
1927
|
+
"bs-tooltip": LocalJSX.IntrinsicElements["bs-tooltip"] & JSXBase.HTMLAttributes<HTMLBsTooltipElement>;
|
|
1487
1928
|
}
|
|
1488
1929
|
}
|
|
1489
1930
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brandsync/wc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
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",
|