@brandsync/wc 0.0.6 → 0.0.8

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.
Files changed (73) hide show
  1. package/custom-elements.json +133 -1
  2. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  3. package/dist/brandsync-wc/p-260bd201.entry.js +1 -0
  4. package/dist/brandsync-wc/{p-6648d251.entry.js → p-5a0fe72e.entry.js} +1 -1
  5. package/dist/brandsync-wc/{p-4d999a8d.entry.js → p-6abdfaf0.entry.js} +1 -1
  6. package/dist/brandsync-wc/{p-27288299.entry.js → p-76eca100.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-4a0da8e9.entry.js → p-a12d0a60.entry.js} +1 -1
  8. package/dist/brandsync-wc/p-c63d16e1.entry.js +1 -0
  9. package/dist/brandsync-wc/{p-b24c455f.entry.js → p-dd0fea0e.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-518b02bf.entry.js → p-f5f443e2.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-1dc6d7f5.entry.js → p-f88d9a6e.entry.js} +1 -1
  12. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  13. package/dist/cjs/bs-ai-thinking.cjs.entry.js +34 -0
  14. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  15. package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
  16. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  17. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  18. package/dist/cjs/bs-input.cjs.entry.js +2 -2
  19. package/dist/cjs/bs-menu-item.cjs.entry.js +1 -1
  20. package/dist/cjs/bs-menu.cjs.entry.js +1 -1
  21. package/dist/cjs/bs-tooltip.cjs.entry.js +24 -0
  22. package/dist/cjs/loader.cjs.js +1 -1
  23. package/dist/collection/collection-manifest.json +3 -1
  24. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.cmp.test.js +28 -0
  25. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.css +74 -0
  26. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +70 -0
  27. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.stories.js +21 -0
  28. package/dist/collection/components/bs-ai-thinking/genie-mark-icon.js +14 -0
  29. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  30. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.css +33 -0
  31. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +9 -1
  32. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  33. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  34. package/dist/collection/components/bs-input/bs-input.js +2 -2
  35. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  36. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  37. package/dist/collection/components/bs-tooltip/bs-tooltip.cmp.test.js +16 -0
  38. package/dist/collection/components/bs-tooltip/bs-tooltip.css +45 -0
  39. package/dist/collection/components/bs-tooltip/bs-tooltip.js +83 -0
  40. package/dist/collection/components/bs-tooltip/bs-tooltip.stories.js +26 -0
  41. package/dist/components/bs-ai-thinking.d.ts +11 -0
  42. package/dist/components/bs-ai-thinking.js +1 -0
  43. package/dist/components/bs-button-skeleton.js +1 -1
  44. package/dist/components/bs-chatbot-header.js +1 -1
  45. package/dist/components/bs-chatbot-response-action.js +1 -1
  46. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  47. package/dist/components/bs-input.js +1 -1
  48. package/dist/components/bs-menu-item.js +1 -1
  49. package/dist/components/bs-menu.js +1 -1
  50. package/dist/components/bs-tooltip.d.ts +11 -0
  51. package/dist/components/bs-tooltip.js +1 -0
  52. package/dist/components/p-CoC4LQCI.js +1 -0
  53. package/dist/esm/brandsync-wc.js +1 -1
  54. package/dist/esm/bs-ai-thinking.entry.js +32 -0
  55. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  56. package/dist/esm/bs-chatbot-header.entry.js +2 -2
  57. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  58. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  59. package/dist/esm/bs-input.entry.js +2 -2
  60. package/dist/esm/bs-menu-item.entry.js +1 -1
  61. package/dist/esm/bs-menu.entry.js +1 -1
  62. package/dist/esm/bs-tooltip.entry.js +22 -0
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/types/components/bs-ai-thinking/bs-ai-thinking.cmp.test.d.ts +1 -0
  65. package/dist/types/components/bs-ai-thinking/bs-ai-thinking.d.ts +30 -0
  66. package/dist/types/components/bs-ai-thinking/bs-ai-thinking.stories.d.ts +10 -0
  67. package/dist/types/components/bs-ai-thinking/genie-mark-icon.d.ts +1 -0
  68. package/dist/types/components/bs-chatbot-header/bs-chatbot-header.d.ts +8 -0
  69. package/dist/types/components/bs-tooltip/bs-tooltip.cmp.test.d.ts +1 -0
  70. package/dist/types/components/bs-tooltip/bs-tooltip.d.ts +44 -0
  71. package/dist/types/components/bs-tooltip/bs-tooltip.stories.d.ts +9 -0
  72. package/dist/types/components.d.ts +268 -0
  73. package/package.json +1 -1
@@ -20,6 +20,33 @@ 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 shimmers with a moving highlight band
26
+ * while 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
+ * @prop --bs-ai-thinking-gap - Gap between icon and label. Aliased to `--bs-spacing-100`.
33
+ * @prop --bs-ai-thinking-icon-size - Width/height of the icon.
34
+ * @prop --bs-ai-thinking-text - Label base color. Aliased to `--bs-text-muted`.
35
+ * @prop --bs-ai-thinking-shimmer-highlight - Color of the moving highlight band. Aliased to
36
+ * `--bs-text-default` (more prominent than `--bs-text-muted` in both themes).
37
+ * @prop --bs-ai-thinking-font-size - Label font size. Aliased to `--bs-font-size-md`.
38
+ * @prop --bs-ai-thinking-line-height - Label line height. Aliased to `--bs-line-height-body-md`.
39
+ * @prop --bs-ai-thinking-cycle-duration - Duration of one shimmer sweep. Figma's own keyframe
40
+ * track for this label runs over exactly 2s, longer than any `--bs-duration-*` token (max
41
+ * `--bs-duration-slower` is 500ms), so this is aliased directly to the literal value.
42
+ */
43
+ interface BsAiThinking {
44
+ /**
45
+ * The status text shown next to the icon, e.g. "Retrieving", "Thinking", "Searching".
46
+ * @default 'Thinking'
47
+ */
48
+ "label": string;
49
+ }
23
50
  /**
24
51
  * A small status or category pill, usually paired with a label or list item.
25
52
  * ## When to use
@@ -131,12 +158,19 @@ export namespace Components {
131
158
  * ## When not to use
132
159
  * - A generic app/page header — this component's layout and actions are purpose-built for the
133
160
  * Genie chat panel, not a general navigation bar.
161
+ * Each action button shows a `bs-tooltip` (placement="top", i.e. positioned below the button with
162
+ * its arrow pointing up toward it -- fits naturally since this header sits at the top of a panel)
163
+ * on hover/focus, driven by plain CSS (`:hover`/`:focus-within` on a wrapper, no extra JS state).
164
+ * The tooltip is `aria-hidden` since it's a purely visual reinforcement of each button's existing
165
+ * `aria-label` -- screen readers already get the accessible name from the button itself, so the
166
+ * tooltip doesn't need to be (and shouldn't be) announced a second time.
134
167
  * @prop --bs-chatbot-header-bg - Background of the header bar. Aliased to `--bs-surface-base`.
135
168
  * @prop --bs-chatbot-header-border - Bottom border color. Aliased to `--bs-border-default`.
136
169
  * @prop --bs-chatbot-header-padding-top - Aliased to `--bs-spacing-200`.
137
170
  * @prop --bs-chatbot-header-padding-bottom - Aliased to `--bs-spacing-100`.
138
171
  * @prop --bs-chatbot-header-padding-x - Aliased to `--bs-margin-fluid`.
139
172
  * @prop --bs-chatbot-header-gap - Gap between the logo and the button group. Aliased to `--bs-navigation-header-gap`.
173
+ * @prop --bs-chatbot-header-actions-gap - Gap between the individual action buttons. Aliased to `--bs-spacing-100`.
140
174
  * @prop --bs-chatbot-header-button-size - Width/height of each icon button. Aliased to `--bs-spacing-600`.
141
175
  * @prop --bs-chatbot-header-button-radius - Corner radius of each icon button. Aliased to `--bs-border-radius-100`.
142
176
  * @prop --bs-chatbot-header-button-hover - Icon button background on hover. Aliased to `--bs-color-neutral-container`.
@@ -411,6 +445,40 @@ export namespace Components {
411
445
  */
412
446
  "size": BsModalSize;
413
447
  }
448
+ /**
449
+ * A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
450
+ * next to a trigger element.
451
+ * `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
452
+ * visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
453
+ * app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
454
+ * wrapping `position: relative`/`absolute` pattern, the same approach used by
455
+ * `bs-chatbot-response-action` for its own `menu` slot).
456
+ * ## When to use
457
+ * - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
458
+ * where the host app owns the show/hide and positioning logic.
459
+ * ## When not to use
460
+ * - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
461
+ * this component intentionally does not do that; wire that up in the consuming app instead.
462
+ * @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
463
+ * @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
464
+ * @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
465
+ * @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
466
+ * @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
467
+ * @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
468
+ * width (the bubble's width is otherwise variable based on content).
469
+ * @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
470
+ * a literal value rather than a `--bs-shadow-*` token alias.
471
+ * @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
472
+ * @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
473
+ * `--bs-line-height-body-sm`.
474
+ */
475
+ interface BsTooltip {
476
+ /**
477
+ * 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.
478
+ * @default 'top'
479
+ */
480
+ "placement": 'top';
481
+ }
414
482
  }
415
483
  export interface BsChatbotHeaderCustomEvent<T> extends CustomEvent<T> {
416
484
  detail: T;
@@ -445,6 +513,32 @@ export interface BsModalCustomEvent<T> extends CustomEvent<T> {
445
513
  target: HTMLBsModalElement;
446
514
  }
447
515
  declare global {
516
+ /**
517
+ * A small inline status indicator for Genie AI surfaces: the colorful Genie mark next to a label
518
+ * (e.g. "Retrieving", "Thinking", "Searching") whose text shimmers with a moving highlight band
519
+ * while an operation is in progress.
520
+ * ## When to use
521
+ * - Inline in a Genie AI chat transcript to show what the assistant is currently doing while a
522
+ * response is being generated (retrieving context, searching, thinking).
523
+ * ## When not to use
524
+ * - A blocking/full-panel loading state -- this is a small inline indicator, not a spinner overlay.
525
+ * @prop --bs-ai-thinking-gap - Gap between icon and label. Aliased to `--bs-spacing-100`.
526
+ * @prop --bs-ai-thinking-icon-size - Width/height of the icon.
527
+ * @prop --bs-ai-thinking-text - Label base color. Aliased to `--bs-text-muted`.
528
+ * @prop --bs-ai-thinking-shimmer-highlight - Color of the moving highlight band. Aliased to
529
+ * `--bs-text-default` (more prominent than `--bs-text-muted` in both themes).
530
+ * @prop --bs-ai-thinking-font-size - Label font size. Aliased to `--bs-font-size-md`.
531
+ * @prop --bs-ai-thinking-line-height - Label line height. Aliased to `--bs-line-height-body-md`.
532
+ * @prop --bs-ai-thinking-cycle-duration - Duration of one shimmer sweep. Figma's own keyframe
533
+ * track for this label runs over exactly 2s, longer than any `--bs-duration-*` token (max
534
+ * `--bs-duration-slower` is 500ms), so this is aliased directly to the literal value.
535
+ */
536
+ interface HTMLBsAiThinkingElement extends Components.BsAiThinking, HTMLStencilElement {
537
+ }
538
+ var HTMLBsAiThinkingElement: {
539
+ prototype: HTMLBsAiThinkingElement;
540
+ new (): HTMLBsAiThinkingElement;
541
+ };
448
542
  /**
449
543
  * A small status or category pill, usually paired with a label or list item.
450
544
  * ## When to use
@@ -538,12 +632,19 @@ declare global {
538
632
  * ## When not to use
539
633
  * - A generic app/page header — this component's layout and actions are purpose-built for the
540
634
  * Genie chat panel, not a general navigation bar.
635
+ * Each action button shows a `bs-tooltip` (placement="top", i.e. positioned below the button with
636
+ * its arrow pointing up toward it -- fits naturally since this header sits at the top of a panel)
637
+ * on hover/focus, driven by plain CSS (`:hover`/`:focus-within` on a wrapper, no extra JS state).
638
+ * The tooltip is `aria-hidden` since it's a purely visual reinforcement of each button's existing
639
+ * `aria-label` -- screen readers already get the accessible name from the button itself, so the
640
+ * tooltip doesn't need to be (and shouldn't be) announced a second time.
541
641
  * @prop --bs-chatbot-header-bg - Background of the header bar. Aliased to `--bs-surface-base`.
542
642
  * @prop --bs-chatbot-header-border - Bottom border color. Aliased to `--bs-border-default`.
543
643
  * @prop --bs-chatbot-header-padding-top - Aliased to `--bs-spacing-200`.
544
644
  * @prop --bs-chatbot-header-padding-bottom - Aliased to `--bs-spacing-100`.
545
645
  * @prop --bs-chatbot-header-padding-x - Aliased to `--bs-margin-fluid`.
546
646
  * @prop --bs-chatbot-header-gap - Gap between the logo and the button group. Aliased to `--bs-navigation-header-gap`.
647
+ * @prop --bs-chatbot-header-actions-gap - Gap between the individual action buttons. Aliased to `--bs-spacing-100`.
547
648
  * @prop --bs-chatbot-header-button-size - Width/height of each icon button. Aliased to `--bs-spacing-600`.
548
649
  * @prop --bs-chatbot-header-button-radius - Corner radius of each icon button. Aliased to `--bs-border-radius-100`.
549
650
  * @prop --bs-chatbot-header-button-hover - Icon button background on hover. Aliased to `--bs-color-neutral-container`.
@@ -853,7 +954,41 @@ declare global {
853
954
  prototype: HTMLBsModalElement;
854
955
  new (): HTMLBsModalElement;
855
956
  };
957
+ /**
958
+ * A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
959
+ * next to a trigger element.
960
+ * `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
961
+ * visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
962
+ * app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
963
+ * wrapping `position: relative`/`absolute` pattern, the same approach used by
964
+ * `bs-chatbot-response-action` for its own `menu` slot).
965
+ * ## When to use
966
+ * - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
967
+ * where the host app owns the show/hide and positioning logic.
968
+ * ## When not to use
969
+ * - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
970
+ * this component intentionally does not do that; wire that up in the consuming app instead.
971
+ * @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
972
+ * @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
973
+ * @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
974
+ * @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
975
+ * @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
976
+ * @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
977
+ * width (the bubble's width is otherwise variable based on content).
978
+ * @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
979
+ * a literal value rather than a `--bs-shadow-*` token alias.
980
+ * @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
981
+ * @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
982
+ * `--bs-line-height-body-sm`.
983
+ */
984
+ interface HTMLBsTooltipElement extends Components.BsTooltip, HTMLStencilElement {
985
+ }
986
+ var HTMLBsTooltipElement: {
987
+ prototype: HTMLBsTooltipElement;
988
+ new (): HTMLBsTooltipElement;
989
+ };
856
990
  interface HTMLElementTagNameMap {
991
+ "bs-ai-thinking": HTMLBsAiThinkingElement;
857
992
  "bs-badge": HTMLBsBadgeElement;
858
993
  "bs-button": HTMLBsButtonElement;
859
994
  "bs-button-skeleton": HTMLBsButtonSkeletonElement;
@@ -867,9 +1002,37 @@ declare global {
867
1002
  "bs-menu": HTMLBsMenuElement;
868
1003
  "bs-menu-item": HTMLBsMenuItemElement;
869
1004
  "bs-modal": HTMLBsModalElement;
1005
+ "bs-tooltip": HTMLBsTooltipElement;
870
1006
  }
871
1007
  }
872
1008
  declare namespace LocalJSX {
1009
+ /**
1010
+ * A small inline status indicator for Genie AI surfaces: the colorful Genie mark next to a label
1011
+ * (e.g. "Retrieving", "Thinking", "Searching") whose text shimmers with a moving highlight band
1012
+ * while an operation is in progress.
1013
+ * ## When to use
1014
+ * - Inline in a Genie AI chat transcript to show what the assistant is currently doing while a
1015
+ * response is being generated (retrieving context, searching, thinking).
1016
+ * ## When not to use
1017
+ * - A blocking/full-panel loading state -- this is a small inline indicator, not a spinner overlay.
1018
+ * @prop --bs-ai-thinking-gap - Gap between icon and label. Aliased to `--bs-spacing-100`.
1019
+ * @prop --bs-ai-thinking-icon-size - Width/height of the icon.
1020
+ * @prop --bs-ai-thinking-text - Label base color. Aliased to `--bs-text-muted`.
1021
+ * @prop --bs-ai-thinking-shimmer-highlight - Color of the moving highlight band. Aliased to
1022
+ * `--bs-text-default` (more prominent than `--bs-text-muted` in both themes).
1023
+ * @prop --bs-ai-thinking-font-size - Label font size. Aliased to `--bs-font-size-md`.
1024
+ * @prop --bs-ai-thinking-line-height - Label line height. Aliased to `--bs-line-height-body-md`.
1025
+ * @prop --bs-ai-thinking-cycle-duration - Duration of one shimmer sweep. Figma's own keyframe
1026
+ * track for this label runs over exactly 2s, longer than any `--bs-duration-*` token (max
1027
+ * `--bs-duration-slower` is 500ms), so this is aliased directly to the literal value.
1028
+ */
1029
+ interface BsAiThinking {
1030
+ /**
1031
+ * The status text shown next to the icon, e.g. "Retrieving", "Thinking", "Searching".
1032
+ * @default 'Thinking'
1033
+ */
1034
+ "label"?: string;
1035
+ }
873
1036
  /**
874
1037
  * A small status or category pill, usually paired with a label or list item.
875
1038
  * ## When to use
@@ -981,12 +1144,19 @@ declare namespace LocalJSX {
981
1144
  * ## When not to use
982
1145
  * - A generic app/page header — this component's layout and actions are purpose-built for the
983
1146
  * Genie chat panel, not a general navigation bar.
1147
+ * Each action button shows a `bs-tooltip` (placement="top", i.e. positioned below the button with
1148
+ * its arrow pointing up toward it -- fits naturally since this header sits at the top of a panel)
1149
+ * on hover/focus, driven by plain CSS (`:hover`/`:focus-within` on a wrapper, no extra JS state).
1150
+ * The tooltip is `aria-hidden` since it's a purely visual reinforcement of each button's existing
1151
+ * `aria-label` -- screen readers already get the accessible name from the button itself, so the
1152
+ * tooltip doesn't need to be (and shouldn't be) announced a second time.
984
1153
  * @prop --bs-chatbot-header-bg - Background of the header bar. Aliased to `--bs-surface-base`.
985
1154
  * @prop --bs-chatbot-header-border - Bottom border color. Aliased to `--bs-border-default`.
986
1155
  * @prop --bs-chatbot-header-padding-top - Aliased to `--bs-spacing-200`.
987
1156
  * @prop --bs-chatbot-header-padding-bottom - Aliased to `--bs-spacing-100`.
988
1157
  * @prop --bs-chatbot-header-padding-x - Aliased to `--bs-margin-fluid`.
989
1158
  * @prop --bs-chatbot-header-gap - Gap between the logo and the button group. Aliased to `--bs-navigation-header-gap`.
1159
+ * @prop --bs-chatbot-header-actions-gap - Gap between the individual action buttons. Aliased to `--bs-spacing-100`.
990
1160
  * @prop --bs-chatbot-header-button-size - Width/height of each icon button. Aliased to `--bs-spacing-600`.
991
1161
  * @prop --bs-chatbot-header-button-radius - Corner radius of each icon button. Aliased to `--bs-border-radius-100`.
992
1162
  * @prop --bs-chatbot-header-button-hover - Icon button background on hover. Aliased to `--bs-color-neutral-container`.
@@ -1338,7 +1508,44 @@ declare namespace LocalJSX {
1338
1508
  */
1339
1509
  "size"?: BsModalSize;
1340
1510
  }
1511
+ /**
1512
+ * A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
1513
+ * next to a trigger element.
1514
+ * `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
1515
+ * visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
1516
+ * app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
1517
+ * wrapping `position: relative`/`absolute` pattern, the same approach used by
1518
+ * `bs-chatbot-response-action` for its own `menu` slot).
1519
+ * ## When to use
1520
+ * - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
1521
+ * where the host app owns the show/hide and positioning logic.
1522
+ * ## When not to use
1523
+ * - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
1524
+ * this component intentionally does not do that; wire that up in the consuming app instead.
1525
+ * @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
1526
+ * @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
1527
+ * @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
1528
+ * @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
1529
+ * @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
1530
+ * @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
1531
+ * width (the bubble's width is otherwise variable based on content).
1532
+ * @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
1533
+ * a literal value rather than a `--bs-shadow-*` token alias.
1534
+ * @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
1535
+ * @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
1536
+ * `--bs-line-height-body-sm`.
1537
+ */
1538
+ interface BsTooltip {
1539
+ /**
1540
+ * 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.
1541
+ * @default 'top'
1542
+ */
1543
+ "placement"?: 'top';
1544
+ }
1341
1545
 
1546
+ interface BsAiThinkingAttributes {
1547
+ "label": string;
1548
+ }
1342
1549
  interface BsBadgeAttributes {
1343
1550
  "variant": BsBadgeVariant;
1344
1551
  }
@@ -1392,8 +1599,12 @@ declare namespace LocalJSX {
1392
1599
  "heading": string;
1393
1600
  "size": BsModalSize;
1394
1601
  }
1602
+ interface BsTooltipAttributes {
1603
+ "placement": 'top';
1604
+ }
1395
1605
 
1396
1606
  interface IntrinsicElements {
1607
+ "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] };
1397
1608
  "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] };
1398
1609
  "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] };
1399
1610
  "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] };
@@ -1407,12 +1618,34 @@ declare namespace LocalJSX {
1407
1618
  "bs-menu": BsMenu;
1408
1619
  "bs-menu-item": BsMenuItem;
1409
1620
  "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] };
1621
+ "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] };
1410
1622
  }
1411
1623
  }
1412
1624
  export { LocalJSX as JSX };
1413
1625
  declare module "@stencil/core" {
1414
1626
  export namespace JSX {
1415
1627
  interface IntrinsicElements {
1628
+ /**
1629
+ * A small inline status indicator for Genie AI surfaces: the colorful Genie mark next to a label
1630
+ * (e.g. "Retrieving", "Thinking", "Searching") whose text shimmers with a moving highlight band
1631
+ * while an operation is in progress.
1632
+ * ## When to use
1633
+ * - Inline in a Genie AI chat transcript to show what the assistant is currently doing while a
1634
+ * response is being generated (retrieving context, searching, thinking).
1635
+ * ## When not to use
1636
+ * - A blocking/full-panel loading state -- this is a small inline indicator, not a spinner overlay.
1637
+ * @prop --bs-ai-thinking-gap - Gap between icon and label. Aliased to `--bs-spacing-100`.
1638
+ * @prop --bs-ai-thinking-icon-size - Width/height of the icon.
1639
+ * @prop --bs-ai-thinking-text - Label base color. Aliased to `--bs-text-muted`.
1640
+ * @prop --bs-ai-thinking-shimmer-highlight - Color of the moving highlight band. Aliased to
1641
+ * `--bs-text-default` (more prominent than `--bs-text-muted` in both themes).
1642
+ * @prop --bs-ai-thinking-font-size - Label font size. Aliased to `--bs-font-size-md`.
1643
+ * @prop --bs-ai-thinking-line-height - Label line height. Aliased to `--bs-line-height-body-md`.
1644
+ * @prop --bs-ai-thinking-cycle-duration - Duration of one shimmer sweep. Figma's own keyframe
1645
+ * track for this label runs over exactly 2s, longer than any `--bs-duration-*` token (max
1646
+ * `--bs-duration-slower` is 500ms), so this is aliased directly to the literal value.
1647
+ */
1648
+ "bs-ai-thinking": LocalJSX.IntrinsicElements["bs-ai-thinking"] & JSXBase.HTMLAttributes<HTMLBsAiThinkingElement>;
1416
1649
  /**
1417
1650
  * A small status or category pill, usually paired with a label or list item.
1418
1651
  * ## When to use
@@ -1480,12 +1713,19 @@ declare module "@stencil/core" {
1480
1713
  * ## When not to use
1481
1714
  * - A generic app/page header — this component's layout and actions are purpose-built for the
1482
1715
  * Genie chat panel, not a general navigation bar.
1716
+ * Each action button shows a `bs-tooltip` (placement="top", i.e. positioned below the button with
1717
+ * its arrow pointing up toward it -- fits naturally since this header sits at the top of a panel)
1718
+ * on hover/focus, driven by plain CSS (`:hover`/`:focus-within` on a wrapper, no extra JS state).
1719
+ * The tooltip is `aria-hidden` since it's a purely visual reinforcement of each button's existing
1720
+ * `aria-label` -- screen readers already get the accessible name from the button itself, so the
1721
+ * tooltip doesn't need to be (and shouldn't be) announced a second time.
1483
1722
  * @prop --bs-chatbot-header-bg - Background of the header bar. Aliased to `--bs-surface-base`.
1484
1723
  * @prop --bs-chatbot-header-border - Bottom border color. Aliased to `--bs-border-default`.
1485
1724
  * @prop --bs-chatbot-header-padding-top - Aliased to `--bs-spacing-200`.
1486
1725
  * @prop --bs-chatbot-header-padding-bottom - Aliased to `--bs-spacing-100`.
1487
1726
  * @prop --bs-chatbot-header-padding-x - Aliased to `--bs-margin-fluid`.
1488
1727
  * @prop --bs-chatbot-header-gap - Gap between the logo and the button group. Aliased to `--bs-navigation-header-gap`.
1728
+ * @prop --bs-chatbot-header-actions-gap - Gap between the individual action buttons. Aliased to `--bs-spacing-100`.
1489
1729
  * @prop --bs-chatbot-header-button-size - Width/height of each icon button. Aliased to `--bs-spacing-600`.
1490
1730
  * @prop --bs-chatbot-header-button-radius - Corner radius of each icon button. Aliased to `--bs-border-radius-100`.
1491
1731
  * @prop --bs-chatbot-header-button-hover - Icon button background on hover. Aliased to `--bs-color-neutral-container`.
@@ -1653,6 +1893,34 @@ declare module "@stencil/core" {
1653
1893
  * modal that just gets taller and taller.
1654
1894
  */
1655
1895
  "bs-modal": LocalJSX.IntrinsicElements["bs-modal"] & JSXBase.HTMLAttributes<HTMLBsModalElement>;
1896
+ /**
1897
+ * A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
1898
+ * next to a trigger element.
1899
+ * `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
1900
+ * visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
1901
+ * app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
1902
+ * wrapping `position: relative`/`absolute` pattern, the same approach used by
1903
+ * `bs-chatbot-response-action` for its own `menu` slot).
1904
+ * ## When to use
1905
+ * - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
1906
+ * where the host app owns the show/hide and positioning logic.
1907
+ * ## When not to use
1908
+ * - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
1909
+ * this component intentionally does not do that; wire that up in the consuming app instead.
1910
+ * @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
1911
+ * @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
1912
+ * @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
1913
+ * @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
1914
+ * @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
1915
+ * @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
1916
+ * width (the bubble's width is otherwise variable based on content).
1917
+ * @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
1918
+ * a literal value rather than a `--bs-shadow-*` token alias.
1919
+ * @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
1920
+ * @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
1921
+ * `--bs-line-height-body-sm`.
1922
+ */
1923
+ "bs-tooltip": LocalJSX.IntrinsicElements["bs-tooltip"] & JSXBase.HTMLAttributes<HTMLBsTooltipElement>;
1656
1924
  }
1657
1925
  }
1658
1926
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brandsync/wc",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },