@brandsync/wc 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/custom-elements.json +419 -0
  2. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  3. package/dist/brandsync-wc/{p-d3265e70.entry.js → p-16c960b5.entry.js} +1 -1
  4. package/dist/brandsync-wc/{p-1ce7dd64.entry.js → p-17a695af.entry.js} +1 -1
  5. package/dist/brandsync-wc/{p-321ed4d3.entry.js → p-196cfcf0.entry.js} +1 -1
  6. package/dist/brandsync-wc/{p-2063a6d6.entry.js → p-1fcc9f47.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-d55bbcec.entry.js → p-27cce165.entry.js} +1 -1
  8. package/dist/brandsync-wc/p-37365a51.entry.js +1 -0
  9. package/dist/brandsync-wc/p-3efb76dd.entry.js +1 -0
  10. package/dist/brandsync-wc/{p-20c24179.entry.js → p-45016a37.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-6b469b2d.entry.js → p-48000949.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-11f3fceb.entry.js → p-4ec24ccb.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-f4f22015.entry.js → p-4f8459ae.entry.js} +1 -1
  14. package/dist/brandsync-wc/p-613ff380.entry.js +1 -0
  15. package/dist/brandsync-wc/{p-18813680.entry.js → p-63167373.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-73217b90.entry.js → p-69c5bc2e.entry.js} +1 -1
  17. package/dist/brandsync-wc/{p-171fed0c.entry.js → p-7e544766.entry.js} +1 -1
  18. package/dist/brandsync-wc/{p-79af762c.entry.js → p-9f1e4a91.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-9876e83c.entry.js → p-ab8de9b6.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-81d49240.entry.js → p-b18e4845.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-111974df.entry.js → p-b5cbe30b.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-91551e7b.entry.js → p-baa4e2e0.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-9c4768aa.entry.js → p-c04cf1bb.entry.js} +1 -1
  24. package/dist/brandsync-wc/{p-00bb9bda.entry.js → p-c90f5a74.entry.js} +1 -1
  25. package/dist/brandsync-wc/{p-e93e944b.entry.js → p-d037b619.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-0f3cb0c4.entry.js → p-d22990c0.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-6d85fba4.entry.js → p-e231e4cf.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-0847f5c0.entry.js → p-e2a37bda.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-eb04c578.entry.js → p-e3ce0c8c.entry.js} +1 -1
  30. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  31. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  32. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  33. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  34. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  35. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  36. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  37. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  38. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  39. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  40. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  41. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  42. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  43. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  44. package/dist/cjs/bs-input.cjs.entry.js +2 -2
  45. package/dist/cjs/bs-menu-item.cjs.entry.js +1 -1
  46. package/dist/cjs/bs-menu.cjs.entry.js +1 -1
  47. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  48. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +1 -1
  49. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  50. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  51. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  52. package/dist/cjs/bs-stepper-step.cjs.entry.js +44 -0
  53. package/dist/cjs/bs-stepper.cjs.entry.js +62 -0
  54. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  55. package/dist/cjs/bs-tab.cjs.entry.js +1 -1
  56. package/dist/cjs/bs-tabs.cjs.entry.js +1 -1
  57. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  58. package/dist/cjs/loader.cjs.js +1 -1
  59. package/dist/collection/collection-manifest.json +2 -0
  60. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  61. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  62. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  63. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  64. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  65. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  66. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  67. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  68. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  69. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  70. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  71. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  72. package/dist/collection/components/bs-input/bs-input.js +2 -2
  73. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  74. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  75. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  76. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  77. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  78. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.cmp.test.js +42 -0
  79. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.css +29 -0
  80. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +162 -0
  81. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.stories.js +59 -0
  82. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.cmp.test.js +73 -0
  83. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.css +258 -0
  84. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +231 -0
  85. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  86. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  87. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  88. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  89. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  90. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +1 -1
  91. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  92. package/dist/components/bs-ai-disclaimer.js +1 -1
  93. package/dist/components/bs-ai-greeting.js +1 -1
  94. package/dist/components/bs-ai-thinking.js +1 -1
  95. package/dist/components/bs-attachment-list.js +1 -1
  96. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  97. package/dist/components/bs-breadcrumbs.js +1 -1
  98. package/dist/components/bs-button-skeleton.js +1 -1
  99. package/dist/components/bs-chatbot-feedback.js +1 -1
  100. package/dist/components/bs-chatbot-header.js +1 -1
  101. package/dist/components/bs-chatbot-response-action.js +1 -1
  102. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  103. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  104. package/dist/components/bs-checkbox-skeleton.js +1 -1
  105. package/dist/components/bs-inline-tab.js +1 -1
  106. package/dist/components/bs-input.js +1 -1
  107. package/dist/components/bs-menu-item.js +1 -1
  108. package/dist/components/bs-menu.js +1 -1
  109. package/dist/components/bs-navigation-drawer-item.js +1 -1
  110. package/dist/components/bs-navigation-drawer.js +1 -1
  111. package/dist/components/bs-pagination.js +1 -1
  112. package/dist/components/bs-radio.js +1 -1
  113. package/dist/components/bs-source-link.js +1 -1
  114. package/dist/components/bs-stepper-step.d.ts +11 -0
  115. package/dist/components/bs-stepper-step.js +1 -0
  116. package/dist/components/bs-stepper.d.ts +11 -0
  117. package/dist/components/bs-stepper.js +1 -0
  118. package/dist/components/bs-switch.js +1 -1
  119. package/dist/components/bs-tab.js +1 -1
  120. package/dist/components/bs-tabs.js +1 -1
  121. package/dist/components/bs-tooltip.js +1 -1
  122. package/dist/components/{p-BtX5URLk.js → p-Bs7nEbqK.js} +1 -1
  123. package/dist/components/{p-CgaPcyEJ.js → p-CPSCOLIf.js} +1 -1
  124. package/dist/components/{p-qK1XlpTA.js → p-CUa8zihb.js} +1 -1
  125. package/dist/esm/brandsync-wc.js +1 -1
  126. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  127. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  128. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  129. package/dist/esm/bs-attachment-list.entry.js +1 -1
  130. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  131. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  132. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  133. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  134. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  135. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  136. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  137. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  138. package/dist/esm/bs-inline-tab.entry.js +1 -1
  139. package/dist/esm/bs-input.entry.js +2 -2
  140. package/dist/esm/bs-menu-item.entry.js +1 -1
  141. package/dist/esm/bs-menu.entry.js +1 -1
  142. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  143. package/dist/esm/bs-navigation-drawer.entry.js +1 -1
  144. package/dist/esm/bs-pagination.entry.js +1 -1
  145. package/dist/esm/bs-radio.entry.js +1 -1
  146. package/dist/esm/bs-source-link.entry.js +2 -2
  147. package/dist/esm/bs-stepper-step.entry.js +42 -0
  148. package/dist/esm/bs-stepper.entry.js +60 -0
  149. package/dist/esm/bs-switch.entry.js +1 -1
  150. package/dist/esm/bs-tab.entry.js +1 -1
  151. package/dist/esm/bs-tabs.entry.js +1 -1
  152. package/dist/esm/bs-tooltip.entry.js +1 -1
  153. package/dist/esm/loader.js +1 -1
  154. package/dist/types/components/bs-stepper/bs-stepper/bs-stepper.cmp.test.d.ts +1 -0
  155. package/dist/types/components/bs-stepper/bs-stepper/bs-stepper.d.ts +48 -0
  156. package/dist/types/components/bs-stepper/bs-stepper/bs-stepper.stories.d.ts +14 -0
  157. package/dist/types/components/bs-stepper/bs-stepper-step/bs-stepper-step.cmp.test.d.ts +1 -0
  158. package/dist/types/components/bs-stepper/bs-stepper-step/bs-stepper-step.d.ts +55 -0
  159. package/dist/types/components.d.ts +298 -0
  160. package/package.json +1 -1
  161. package/dist/brandsync-wc/p-1b7c9928.entry.js +0 -1
@@ -25,6 +25,8 @@ import { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
25
25
  import { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
26
26
  import { BsSliderType } from "./components/bs-slider/bs-slider";
27
27
  import { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
28
+ import { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
29
+ import { BsStepperDirection as BsStepperDirection1, BsStepperStepComputedState } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
28
30
  import { BsSwitchSize } from "./components/bs-switch/bs-switch";
29
31
  import { BsTabIconPosition } from "./components/bs-tab/bs-tab/bs-tab";
30
32
  import { BsTabsOrientation, BsTabsType } from "./components/bs-tab/bs-tabs/bs-tabs";
@@ -48,6 +50,8 @@ export { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
48
50
  export { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
49
51
  export { BsSliderType } from "./components/bs-slider/bs-slider";
50
52
  export { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
53
+ export { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
54
+ export { BsStepperDirection as BsStepperDirection1, BsStepperStepComputedState } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
51
55
  export { BsSwitchSize } from "./components/bs-switch/bs-switch";
52
56
  export { BsTabIconPosition } from "./components/bs-tab/bs-tab/bs-tab";
53
57
  export { BsTabsOrientation, BsTabsType } from "./components/bs-tab/bs-tabs/bs-tabs";
@@ -1682,6 +1686,98 @@ export namespace Components {
1682
1686
  */
1683
1687
  "version"?: string;
1684
1688
  }
1689
+ /**
1690
+ * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
1691
+ * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
1692
+ * disabled, connected by a rail between them.
1693
+ * This container is intentionally thin: it renders a `<slot>` for `<bs-stepper-step>` children and
1694
+ * propagates `currentStep`/`direction`/`showDescription` down to them as JS properties whenever any
1695
+ * of those change or the slotted children themselves change -- the same "container pushes state
1696
+ * onto its slotted children" pattern `bs-tabs` uses for `selected` and `bs-breadcrumbs` uses for
1697
+ * `size`. Each step computes its own `enabled`/`current`/`done` state from its position among its
1698
+ * siblings relative to `currentStep`, unless that step's own `error`/`disabled` prop overrides it.
1699
+ * This is a static status display, not an interactive control -- Figma's spec shows no
1700
+ * hover/pressed treatment on any step, so nothing here is clickable.
1701
+ * ## When to use
1702
+ * - Showing where the user is in a fixed, ordered, multi-step flow.
1703
+ * ## When not to use
1704
+ * - A flow whose steps aren't fixed/known in advance -- a stepper implies the full sequence is
1705
+ * already known.
1706
+ * - As a substitute for actual in-page navigation between steps -- pair this with real controls
1707
+ * (Next/Back buttons) elsewhere in the flow, this component only displays status.
1708
+ */
1709
+ interface BsStepper {
1710
+ /**
1711
+ * 0-indexed: which step is current. Every step before this index reads as "done" (unless that step's own `error`/`disabled` overrides it), every step after reads as "enabled".
1712
+ * @default 0
1713
+ */
1714
+ "currentStep": number;
1715
+ /**
1716
+ * `horizontal` (icon above name/description, connected by a horizontal rail) or `vertical` (icon beside name/description, connected by a vertical rail). Propagated to every slotted `bs-stepper-step`, and reflected as an attribute so this container's own `:host` CSS can switch its `flex-direction` to match -- a bare `<slot>` with no wrapping element (see `render()`) means the slotted steps' flex-row/column layout comes directly from `:host` here, not from any wrapper div.
1717
+ * @default 'horizontal'
1718
+ */
1719
+ "direction": BsStepperDirection;
1720
+ /**
1721
+ * Whether each step's description renders at all. Propagated to every slotted `bs-stepper-step`.
1722
+ * @default true
1723
+ */
1724
+ "showDescription": boolean;
1725
+ }
1726
+ /**
1727
+ * A single step within a `<bs-stepper>` sequence: an icon/indicator plus a name and optional
1728
+ * description, connected to the next step by a trailing rail.
1729
+ * `computedState` is set automatically by the parent `<bs-stepper>` based on this step's position
1730
+ * relative to its `currentStep` (before it = "done", at it = "current", after it = "enabled") --
1731
+ * same "container pushes state onto its slotted children" pattern `bs-tabs` uses for `selected`
1732
+ * and `bs-breadcrumbs` uses for `size`. This step's own `error`/`disabled` props, when set directly
1733
+ * by the consumer, override that computed value -- e.g. a step before `currentStep` would normally
1734
+ * read as "done", but `error` on that step wins regardless.
1735
+ * The trailing rail is owned by this component, not the container: `:host(:last-child)` hides it
1736
+ * on whichever step is visually last, mirroring `bs-breadcrumb`'s own `:host(:first-child)` rule
1737
+ * for its leading separator (same technique, opposite end -- see that component for why pure DOM
1738
+ * position, not CSS `:last-of-type`, is what actually needs checking here too).
1739
+ * ## When to use
1740
+ * - As a child of `<bs-stepper>`, one per step in the sequence.
1741
+ * ## When not to use
1742
+ * - Standalone, outside a `<bs-stepper>` wrapper -- `computedState`/`direction`/`showDescription`
1743
+ * depend on that parent propagating them; alone, this defaults to `enabled`/`horizontal`/`true`.
1744
+ */
1745
+ interface BsStepperStep {
1746
+ /**
1747
+ * Set automatically by the parent `<bs-stepper>` from this step's position relative to its `currentStep` -- see the class doc above. Can be set directly for a standalone step.
1748
+ * @default 'enabled'
1749
+ */
1750
+ "computedState": BsStepperStepComputedState;
1751
+ /**
1752
+ * Optional supporting text below the name. Only rendered when `showDescription` (propagated from the parent `<bs-stepper>`) is also true.
1753
+ */
1754
+ "description"?: string;
1755
+ /**
1756
+ * Set automatically by the parent `<bs-stepper>`, propagated to every slotted step.
1757
+ * @default 'horizontal'
1758
+ */
1759
+ "direction": BsStepperDirection1;
1760
+ /**
1761
+ * Shows the disabled treatment for this step, regardless of its `computedState`. Takes priority over `error` if both are somehow set.
1762
+ * @default false
1763
+ */
1764
+ "disabled": boolean;
1765
+ /**
1766
+ * Shows the error treatment for this step, regardless of its `computedState`.
1767
+ * @default false
1768
+ */
1769
+ "error": boolean;
1770
+ /**
1771
+ * This step's name/title.
1772
+ * @default ''
1773
+ */
1774
+ "name": string;
1775
+ /**
1776
+ * Set automatically by the parent `<bs-stepper>`, propagated to every slotted step.
1777
+ * @default true
1778
+ */
1779
+ "showDescription": boolean;
1780
+ }
1685
1781
  /**
1686
1782
  * A toggle switch for an on/off setting that takes effect immediately (no explicit form
1687
1783
  * submission required).
@@ -3234,6 +3330,57 @@ declare global {
3234
3330
  prototype: HTMLBsSourceLinkElement;
3235
3331
  new (): HTMLBsSourceLinkElement;
3236
3332
  };
3333
+ /**
3334
+ * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
3335
+ * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
3336
+ * disabled, connected by a rail between them.
3337
+ * This container is intentionally thin: it renders a `<slot>` for `<bs-stepper-step>` children and
3338
+ * propagates `currentStep`/`direction`/`showDescription` down to them as JS properties whenever any
3339
+ * of those change or the slotted children themselves change -- the same "container pushes state
3340
+ * onto its slotted children" pattern `bs-tabs` uses for `selected` and `bs-breadcrumbs` uses for
3341
+ * `size`. Each step computes its own `enabled`/`current`/`done` state from its position among its
3342
+ * siblings relative to `currentStep`, unless that step's own `error`/`disabled` prop overrides it.
3343
+ * This is a static status display, not an interactive control -- Figma's spec shows no
3344
+ * hover/pressed treatment on any step, so nothing here is clickable.
3345
+ * ## When to use
3346
+ * - Showing where the user is in a fixed, ordered, multi-step flow.
3347
+ * ## When not to use
3348
+ * - A flow whose steps aren't fixed/known in advance -- a stepper implies the full sequence is
3349
+ * already known.
3350
+ * - As a substitute for actual in-page navigation between steps -- pair this with real controls
3351
+ * (Next/Back buttons) elsewhere in the flow, this component only displays status.
3352
+ */
3353
+ interface HTMLBsStepperElement extends Components.BsStepper, HTMLStencilElement {
3354
+ }
3355
+ var HTMLBsStepperElement: {
3356
+ prototype: HTMLBsStepperElement;
3357
+ new (): HTMLBsStepperElement;
3358
+ };
3359
+ /**
3360
+ * A single step within a `<bs-stepper>` sequence: an icon/indicator plus a name and optional
3361
+ * description, connected to the next step by a trailing rail.
3362
+ * `computedState` is set automatically by the parent `<bs-stepper>` based on this step's position
3363
+ * relative to its `currentStep` (before it = "done", at it = "current", after it = "enabled") --
3364
+ * same "container pushes state onto its slotted children" pattern `bs-tabs` uses for `selected`
3365
+ * and `bs-breadcrumbs` uses for `size`. This step's own `error`/`disabled` props, when set directly
3366
+ * by the consumer, override that computed value -- e.g. a step before `currentStep` would normally
3367
+ * read as "done", but `error` on that step wins regardless.
3368
+ * The trailing rail is owned by this component, not the container: `:host(:last-child)` hides it
3369
+ * on whichever step is visually last, mirroring `bs-breadcrumb`'s own `:host(:first-child)` rule
3370
+ * for its leading separator (same technique, opposite end -- see that component for why pure DOM
3371
+ * position, not CSS `:last-of-type`, is what actually needs checking here too).
3372
+ * ## When to use
3373
+ * - As a child of `<bs-stepper>`, one per step in the sequence.
3374
+ * ## When not to use
3375
+ * - Standalone, outside a `<bs-stepper>` wrapper -- `computedState`/`direction`/`showDescription`
3376
+ * depend on that parent propagating them; alone, this defaults to `enabled`/`horizontal`/`true`.
3377
+ */
3378
+ interface HTMLBsStepperStepElement extends Components.BsStepperStep, HTMLStencilElement {
3379
+ }
3380
+ var HTMLBsStepperStepElement: {
3381
+ prototype: HTMLBsStepperStepElement;
3382
+ new (): HTMLBsStepperStepElement;
3383
+ };
3237
3384
  interface HTMLBsSwitchElementEventMap {
3238
3385
  "bsChange": boolean;
3239
3386
  }
@@ -3391,6 +3538,8 @@ declare global {
3391
3538
  "bs-slider": HTMLBsSliderElement;
3392
3539
  "bs-snackbar": HTMLBsSnackbarElement;
3393
3540
  "bs-source-link": HTMLBsSourceLinkElement;
3541
+ "bs-stepper": HTMLBsStepperElement;
3542
+ "bs-stepper-step": HTMLBsStepperStepElement;
3394
3543
  "bs-switch": HTMLBsSwitchElement;
3395
3544
  "bs-tab": HTMLBsTabElement;
3396
3545
  "bs-tabs": HTMLBsTabsElement;
@@ -5213,6 +5362,98 @@ declare namespace LocalJSX {
5213
5362
  */
5214
5363
  "version"?: string;
5215
5364
  }
5365
+ /**
5366
+ * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
5367
+ * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
5368
+ * disabled, connected by a rail between them.
5369
+ * This container is intentionally thin: it renders a `<slot>` for `<bs-stepper-step>` children and
5370
+ * propagates `currentStep`/`direction`/`showDescription` down to them as JS properties whenever any
5371
+ * of those change or the slotted children themselves change -- the same "container pushes state
5372
+ * onto its slotted children" pattern `bs-tabs` uses for `selected` and `bs-breadcrumbs` uses for
5373
+ * `size`. Each step computes its own `enabled`/`current`/`done` state from its position among its
5374
+ * siblings relative to `currentStep`, unless that step's own `error`/`disabled` prop overrides it.
5375
+ * This is a static status display, not an interactive control -- Figma's spec shows no
5376
+ * hover/pressed treatment on any step, so nothing here is clickable.
5377
+ * ## When to use
5378
+ * - Showing where the user is in a fixed, ordered, multi-step flow.
5379
+ * ## When not to use
5380
+ * - A flow whose steps aren't fixed/known in advance -- a stepper implies the full sequence is
5381
+ * already known.
5382
+ * - As a substitute for actual in-page navigation between steps -- pair this with real controls
5383
+ * (Next/Back buttons) elsewhere in the flow, this component only displays status.
5384
+ */
5385
+ interface BsStepper {
5386
+ /**
5387
+ * 0-indexed: which step is current. Every step before this index reads as "done" (unless that step's own `error`/`disabled` overrides it), every step after reads as "enabled".
5388
+ * @default 0
5389
+ */
5390
+ "currentStep"?: number;
5391
+ /**
5392
+ * `horizontal` (icon above name/description, connected by a horizontal rail) or `vertical` (icon beside name/description, connected by a vertical rail). Propagated to every slotted `bs-stepper-step`, and reflected as an attribute so this container's own `:host` CSS can switch its `flex-direction` to match -- a bare `<slot>` with no wrapping element (see `render()`) means the slotted steps' flex-row/column layout comes directly from `:host` here, not from any wrapper div.
5393
+ * @default 'horizontal'
5394
+ */
5395
+ "direction"?: BsStepperDirection;
5396
+ /**
5397
+ * Whether each step's description renders at all. Propagated to every slotted `bs-stepper-step`.
5398
+ * @default true
5399
+ */
5400
+ "showDescription"?: boolean;
5401
+ }
5402
+ /**
5403
+ * A single step within a `<bs-stepper>` sequence: an icon/indicator plus a name and optional
5404
+ * description, connected to the next step by a trailing rail.
5405
+ * `computedState` is set automatically by the parent `<bs-stepper>` based on this step's position
5406
+ * relative to its `currentStep` (before it = "done", at it = "current", after it = "enabled") --
5407
+ * same "container pushes state onto its slotted children" pattern `bs-tabs` uses for `selected`
5408
+ * and `bs-breadcrumbs` uses for `size`. This step's own `error`/`disabled` props, when set directly
5409
+ * by the consumer, override that computed value -- e.g. a step before `currentStep` would normally
5410
+ * read as "done", but `error` on that step wins regardless.
5411
+ * The trailing rail is owned by this component, not the container: `:host(:last-child)` hides it
5412
+ * on whichever step is visually last, mirroring `bs-breadcrumb`'s own `:host(:first-child)` rule
5413
+ * for its leading separator (same technique, opposite end -- see that component for why pure DOM
5414
+ * position, not CSS `:last-of-type`, is what actually needs checking here too).
5415
+ * ## When to use
5416
+ * - As a child of `<bs-stepper>`, one per step in the sequence.
5417
+ * ## When not to use
5418
+ * - Standalone, outside a `<bs-stepper>` wrapper -- `computedState`/`direction`/`showDescription`
5419
+ * depend on that parent propagating them; alone, this defaults to `enabled`/`horizontal`/`true`.
5420
+ */
5421
+ interface BsStepperStep {
5422
+ /**
5423
+ * Set automatically by the parent `<bs-stepper>` from this step's position relative to its `currentStep` -- see the class doc above. Can be set directly for a standalone step.
5424
+ * @default 'enabled'
5425
+ */
5426
+ "computedState"?: BsStepperStepComputedState;
5427
+ /**
5428
+ * Optional supporting text below the name. Only rendered when `showDescription` (propagated from the parent `<bs-stepper>`) is also true.
5429
+ */
5430
+ "description"?: string;
5431
+ /**
5432
+ * Set automatically by the parent `<bs-stepper>`, propagated to every slotted step.
5433
+ * @default 'horizontal'
5434
+ */
5435
+ "direction"?: BsStepperDirection1;
5436
+ /**
5437
+ * Shows the disabled treatment for this step, regardless of its `computedState`. Takes priority over `error` if both are somehow set.
5438
+ * @default false
5439
+ */
5440
+ "disabled"?: boolean;
5441
+ /**
5442
+ * Shows the error treatment for this step, regardless of its `computedState`.
5443
+ * @default false
5444
+ */
5445
+ "error"?: boolean;
5446
+ /**
5447
+ * This step's name/title.
5448
+ * @default ''
5449
+ */
5450
+ "name"?: string;
5451
+ /**
5452
+ * Set automatically by the parent `<bs-stepper>`, propagated to every slotted step.
5453
+ * @default true
5454
+ */
5455
+ "showDescription"?: boolean;
5456
+ }
5216
5457
  /**
5217
5458
  * A toggle switch for an on/off setting that takes effect immediately (no explicit form
5218
5459
  * submission required).
@@ -5584,6 +5825,20 @@ declare namespace LocalJSX {
5584
5825
  "href": string;
5585
5826
  "target": string;
5586
5827
  }
5828
+ interface BsStepperAttributes {
5829
+ "currentStep": number;
5830
+ "direction": BsStepperDirection;
5831
+ "showDescription": boolean;
5832
+ }
5833
+ interface BsStepperStepAttributes {
5834
+ "name": string;
5835
+ "description": string;
5836
+ "error": boolean;
5837
+ "disabled": boolean;
5838
+ "computedState": BsStepperStepComputedState;
5839
+ "direction": BsStepperDirection;
5840
+ "showDescription": boolean;
5841
+ }
5587
5842
  interface BsSwitchAttributes {
5588
5843
  "size": BsSwitchSize;
5589
5844
  "checked": boolean;
@@ -5643,6 +5898,8 @@ declare namespace LocalJSX {
5643
5898
  "bs-slider": Omit<BsSlider, keyof BsSliderAttributes> & { [K in keyof BsSlider & keyof BsSliderAttributes]?: BsSlider[K] } & { [K in keyof BsSlider & keyof BsSliderAttributes as `attr:${K}`]?: BsSliderAttributes[K] } & { [K in keyof BsSlider & keyof BsSliderAttributes as `prop:${K}`]?: BsSlider[K] };
5644
5899
  "bs-snackbar": Omit<BsSnackbar, keyof BsSnackbarAttributes> & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes]?: BsSnackbar[K] } & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes as `attr:${K}`]?: BsSnackbarAttributes[K] } & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes as `prop:${K}`]?: BsSnackbar[K] };
5645
5900
  "bs-source-link": Omit<BsSourceLink, keyof BsSourceLinkAttributes> & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes]?: BsSourceLink[K] } & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes as `attr:${K}`]?: BsSourceLinkAttributes[K] } & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes as `prop:${K}`]?: BsSourceLink[K] };
5901
+ "bs-stepper": Omit<BsStepper, keyof BsStepperAttributes> & { [K in keyof BsStepper & keyof BsStepperAttributes]?: BsStepper[K] } & { [K in keyof BsStepper & keyof BsStepperAttributes as `attr:${K}`]?: BsStepperAttributes[K] } & { [K in keyof BsStepper & keyof BsStepperAttributes as `prop:${K}`]?: BsStepper[K] };
5902
+ "bs-stepper-step": Omit<BsStepperStep, keyof BsStepperStepAttributes> & { [K in keyof BsStepperStep & keyof BsStepperStepAttributes]?: BsStepperStep[K] } & { [K in keyof BsStepperStep & keyof BsStepperStepAttributes as `attr:${K}`]?: BsStepperStepAttributes[K] } & { [K in keyof BsStepperStep & keyof BsStepperStepAttributes as `prop:${K}`]?: BsStepperStep[K] };
5646
5903
  "bs-switch": Omit<BsSwitch, keyof BsSwitchAttributes> & { [K in keyof BsSwitch & keyof BsSwitchAttributes]?: BsSwitch[K] } & { [K in keyof BsSwitch & keyof BsSwitchAttributes as `attr:${K}`]?: BsSwitchAttributes[K] } & { [K in keyof BsSwitch & keyof BsSwitchAttributes as `prop:${K}`]?: BsSwitch[K] };
5647
5904
  "bs-tab": Omit<BsTab, keyof BsTabAttributes> & { [K in keyof BsTab & keyof BsTabAttributes]?: BsTab[K] } & { [K in keyof BsTab & keyof BsTabAttributes as `attr:${K}`]?: BsTabAttributes[K] } & { [K in keyof BsTab & keyof BsTabAttributes as `prop:${K}`]?: BsTab[K] };
5648
5905
  "bs-tabs": Omit<BsTabs, keyof BsTabsAttributes> & { [K in keyof BsTabs & keyof BsTabsAttributes]?: BsTabs[K] } & { [K in keyof BsTabs & keyof BsTabsAttributes as `attr:${K}`]?: BsTabsAttributes[K] } & { [K in keyof BsTabs & keyof BsTabsAttributes as `prop:${K}`]?: BsTabs[K] };
@@ -6526,6 +6783,47 @@ declare module "@stencil/core" {
6526
6783
  * `--bs-text-secondary`.
6527
6784
  */
6528
6785
  "bs-source-link": LocalJSX.IntrinsicElements["bs-source-link"] & JSXBase.HTMLAttributes<HTMLBsSourceLinkElement>;
6786
+ /**
6787
+ * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
6788
+ * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
6789
+ * disabled, connected by a rail between them.
6790
+ * This container is intentionally thin: it renders a `<slot>` for `<bs-stepper-step>` children and
6791
+ * propagates `currentStep`/`direction`/`showDescription` down to them as JS properties whenever any
6792
+ * of those change or the slotted children themselves change -- the same "container pushes state
6793
+ * onto its slotted children" pattern `bs-tabs` uses for `selected` and `bs-breadcrumbs` uses for
6794
+ * `size`. Each step computes its own `enabled`/`current`/`done` state from its position among its
6795
+ * siblings relative to `currentStep`, unless that step's own `error`/`disabled` prop overrides it.
6796
+ * This is a static status display, not an interactive control -- Figma's spec shows no
6797
+ * hover/pressed treatment on any step, so nothing here is clickable.
6798
+ * ## When to use
6799
+ * - Showing where the user is in a fixed, ordered, multi-step flow.
6800
+ * ## When not to use
6801
+ * - A flow whose steps aren't fixed/known in advance -- a stepper implies the full sequence is
6802
+ * already known.
6803
+ * - As a substitute for actual in-page navigation between steps -- pair this with real controls
6804
+ * (Next/Back buttons) elsewhere in the flow, this component only displays status.
6805
+ */
6806
+ "bs-stepper": LocalJSX.IntrinsicElements["bs-stepper"] & JSXBase.HTMLAttributes<HTMLBsStepperElement>;
6807
+ /**
6808
+ * A single step within a `<bs-stepper>` sequence: an icon/indicator plus a name and optional
6809
+ * description, connected to the next step by a trailing rail.
6810
+ * `computedState` is set automatically by the parent `<bs-stepper>` based on this step's position
6811
+ * relative to its `currentStep` (before it = "done", at it = "current", after it = "enabled") --
6812
+ * same "container pushes state onto its slotted children" pattern `bs-tabs` uses for `selected`
6813
+ * and `bs-breadcrumbs` uses for `size`. This step's own `error`/`disabled` props, when set directly
6814
+ * by the consumer, override that computed value -- e.g. a step before `currentStep` would normally
6815
+ * read as "done", but `error` on that step wins regardless.
6816
+ * The trailing rail is owned by this component, not the container: `:host(:last-child)` hides it
6817
+ * on whichever step is visually last, mirroring `bs-breadcrumb`'s own `:host(:first-child)` rule
6818
+ * for its leading separator (same technique, opposite end -- see that component for why pure DOM
6819
+ * position, not CSS `:last-of-type`, is what actually needs checking here too).
6820
+ * ## When to use
6821
+ * - As a child of `<bs-stepper>`, one per step in the sequence.
6822
+ * ## When not to use
6823
+ * - Standalone, outside a `<bs-stepper>` wrapper -- `computedState`/`direction`/`showDescription`
6824
+ * depend on that parent propagating them; alone, this defaults to `enabled`/`horizontal`/`true`.
6825
+ */
6826
+ "bs-stepper-step": LocalJSX.IntrinsicElements["bs-stepper-step"] & JSXBase.HTMLAttributes<HTMLBsStepperStepElement>;
6529
6827
  /**
6530
6828
  * A toggle switch for an on/off setting that takes effect immediately (no explicit form
6531
6829
  * submission required).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brandsync/wc",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1 +0,0 @@
1
- import{r as s,c as t,a as c,h as b}from"./p-Do3l4of3.js";const i=class{constructor(c){s(this,c),this.bsChange=t(this,"bsChange")}get el(){return c(this)}size="lg";checked=!1;disabled=!1;ariaLabel=null;bsChange;onChange=s=>{const t=s.target.checked;this.checked=t,this.bsChange.emit(t)};render(){const s=["bs-switch__track",`bs-switch__track--${this.size}`,this.checked?"bs-switch__track--checked":"",this.disabled?"bs-switch__track--disabled":""].filter(Boolean).join(" "),t=["bs-switch__knob",`bs-switch__knob--${this.size}`,this.disabled?"bs-switch__knob--disabled":""].filter(Boolean).join(" ");return b("label",{key:"888dbe0671ca3c921bc3407c3b78f3cedc772054",class:"bs-switch "+(this.disabled?"bs-switch--disabled":"")},b("input",{key:"8883e408fb0f81448bbe7acbf69e3ea73b27b372",class:"bs-switch__input",type:"checkbox",role:"switch",checked:this.checked,disabled:this.disabled,"aria-checked":String(this.checked),"aria-label":this.ariaLabel,onChange:this.onChange}),b("span",{key:"84aa58e74886151ed394543f493d09faa3d5cb89",part:"track",class:s},b("span",{key:"e4bceff4f3419d1f1aa7345fe2083e9e1f1e3b91",part:"knob",class:t})),b("span",{key:"e9816fb5961fea50b9c51d395fc359a08d1c4df9",part:"label",class:"bs-switch__label"},b("slot",{key:"7ec1076999b1a249756a61feee2f9caf969f71c2"})))}static get delegatesFocus(){return!0}};i.style=":host{display:inline-block;--bs-switch-radius:var(--bs-border-radius-full);--bs-switch-padding:var(--bs-spacing-25);--bs-switch-gap:var(--bs-spacing-100);--bs-switch-track-width-md:36px;--bs-switch-track-height-md:20px;--bs-switch-track-width-lg:48px;--bs-switch-track-height-lg:28px;--bs-switch-knob-size-md:16px;--bs-switch-knob-size-lg:24px;--bs-switch-border-width:1px;--bs-switch-track-bg:var(--bs-switch-track-bg-default);--bs-switch-track-bg-checked:var(--bs-switch-track-bg-checked-default);--bs-switch-track-bg-checked-focus:var(--bs-switch-track-bg-checked-focused);--bs-switch-track-border:var(--bs-switch-track-border-default);--bs-switch-focus-ring-color:var(--bs-switch-track-border-focus);--bs-switch-knob-bg:var(--bs-switch-thumb-bg-default);--bs-switch-knob-bg-hover:var(--bs-switch-thumb-bg-hover);--bs-switch-knob-bg-checked:var(--bs-switch-thumb-bg-checked);--bs-switch-knob-bg-disabled:var(--bs-switch-thumb-bg-disabled);--bs-switch-label-color:var(--bs-text-default);--bs-switch-label-color-disabled:var(--bs-text-on-disabled)}.bs-switch{position:relative;display:inline-flex;align-items:center;gap:var(--bs-switch-gap);font-family:inherit;cursor:pointer}.bs-switch--disabled{cursor:not-allowed}.bs-switch__input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.bs-switch__input:disabled{cursor:not-allowed}.bs-switch__track{box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:flex-start;flex-shrink:0;padding:var(--bs-switch-padding);border:var(--bs-switch-border-width) solid var(--bs-switch-track-border);border-radius:var(--bs-switch-radius);background:var(--bs-switch-track-bg);transition:background-color 0.15s ease, border-color 0.15s ease}.bs-switch__track--md{width:var(--bs-switch-track-width-md);height:var(--bs-switch-track-height-md)}.bs-switch__track--lg{width:var(--bs-switch-track-width-lg);height:var(--bs-switch-track-height-lg)}.bs-switch__track--checked{justify-content:flex-end;background:var(--bs-switch-track-bg-checked)}.bs-switch__knob{box-sizing:border-box;border-radius:var(--bs-border-radius-full);background:var(--bs-switch-knob-bg);transition:background-color 0.15s ease}.bs-switch__knob--md{width:var(--bs-switch-knob-size-md);height:var(--bs-switch-knob-size-md)}.bs-switch__knob--lg{width:var(--bs-switch-knob-size-lg);height:var(--bs-switch-knob-size-lg)}.bs-switch__track--checked .bs-switch__knob{background:var(--bs-switch-knob-bg-checked)}.bs-switch__input:hover:not(:disabled)~.bs-switch__track{background:var(--bs-switch-track-bg-hover);border-color:var(--bs-switch-track-border-hover)}.bs-switch__input:hover:not(:disabled)~.bs-switch__track .bs-switch__knob{background:var(--bs-switch-knob-bg-hover)}.bs-switch__input:hover:not(:disabled)~.bs-switch__track--checked{background:var(--bs-switch-track-bg-checked-hover)}.bs-switch__input:focus-visible~.bs-switch__track{border-color:var(--bs-switch-track-border-hover);outline:2px solid var(--bs-switch-focus-ring-color);outline-offset:2px}.bs-switch__input:focus-visible~.bs-switch__track--checked{background:var(--bs-switch-track-bg-checked-focus)}.bs-switch__track--disabled{background:var(--bs-switch-track-bg-disabled);border-color:var(--bs-switch-track-border)}.bs-switch__track--disabled.bs-switch__track--checked{background:var(--bs-switch-track-bg-disabled)}.bs-switch__knob--disabled{background:var(--bs-switch-knob-bg-disabled)}.bs-switch__label{font-size:var(--bs-font-size-md);color:var(--bs-switch-label-color)}.bs-switch--disabled .bs-switch__label{color:var(--bs-switch-label-color-disabled)}";export{i as bs_switch}