@boostdev/design-system-components 1.2.7 → 2.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 (172) hide show
  1. package/AGENTS.md +7 -5
  2. package/README.md +55 -37
  3. package/dist/client.cjs +54 -51
  4. package/dist/client.css +525 -524
  5. package/dist/client.d.cts +39 -3
  6. package/dist/client.d.ts +39 -3
  7. package/dist/client.js +53 -51
  8. package/dist/index.cjs +54 -51
  9. package/dist/index.css +525 -524
  10. package/dist/index.d.cts +39 -3
  11. package/dist/index.d.ts +39 -3
  12. package/dist/index.js +53 -51
  13. package/dist/native/index.cjs +3 -1
  14. package/dist/native/index.d.cts +11 -3
  15. package/dist/native/index.d.ts +11 -3
  16. package/dist/native/index.js +3 -1
  17. package/dist/web-components/{chunk-DZRSJGPB.js → chunk-3S42DZ7W.js} +1 -1
  18. package/dist/web-components/globals.js +1 -1
  19. package/dist/web-components/index.js +1 -1
  20. package/package.json +3 -3
  21. package/src/components/interaction/Button/Button.mdx +14 -4
  22. package/src/components/interaction/Button/Button.module.css +1 -1
  23. package/src/components/interaction/Button/Button.native.mdx +2 -2
  24. package/src/components/interaction/Button/Button.tsx +28 -0
  25. package/src/components/interaction/Command/Command.module.css +1 -1
  26. package/src/components/interaction/Dialog/Dialog.module.css +1 -1
  27. package/src/components/interaction/Dialog/Dialog.native.mdx +2 -2
  28. package/src/components/interaction/Drawer/Drawer.module.css +1 -1
  29. package/src/components/interaction/Drawer/Drawer.native.mdx +2 -2
  30. package/src/components/interaction/DropdownMenu/DropdownMenu.module.css +1 -1
  31. package/src/components/interaction/DropdownMenu/DropdownMenu.native.mdx +2 -2
  32. package/src/components/interaction/Popover/Popover.module.css +1 -1
  33. package/src/components/interaction/Popover/Popover.native.mdx +2 -2
  34. package/src/components/interaction/Rating/Rating.module.css +1 -1
  35. package/src/components/interaction/Rating/Rating.native.mdx +1 -1
  36. package/src/components/interaction/Toast/Toast.module.css +1 -1
  37. package/src/components/interaction/Toast/Toast.native.mdx +3 -3
  38. package/src/components/interaction/form/Checkbox/Checkbox.module.css +1 -1
  39. package/src/components/interaction/form/Checkbox/Checkbox.native.mdx +1 -1
  40. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.module.css +1 -1
  41. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.native.mdx +1 -1
  42. package/src/components/interaction/form/Combobox/Combobox.module.css +1 -1
  43. package/src/components/interaction/form/Combobox/Combobox.native.mdx +1 -1
  44. package/src/components/interaction/form/FileInput/FileInput.module.css +1 -1
  45. package/src/components/interaction/form/FileInput/FileInput.native.mdx +1 -1
  46. package/src/components/interaction/form/FormInput/FormInput.module.css +1 -1
  47. package/src/components/interaction/form/FormInput/FormInput.native.mdx +1 -1
  48. package/src/components/interaction/form/NumberInput/NumberInput.module.css +1 -1
  49. package/src/components/interaction/form/NumberInput/NumberInput.native.mdx +1 -1
  50. package/src/components/interaction/form/Radio/Radio.module.css +1 -1
  51. package/src/components/interaction/form/RadioGroup/RadioGroup.module.css +1 -1
  52. package/src/components/interaction/form/RadioGroup/RadioGroup.native.mdx +1 -1
  53. package/src/components/interaction/form/SegmentedControl/SegmentedControl.module.css +1 -1
  54. package/src/components/interaction/form/SegmentedControl/SegmentedControl.native.mdx +1 -1
  55. package/src/components/interaction/form/Select/Select.module.css +1 -1
  56. package/src/components/interaction/form/Select/Select.native.mdx +1 -1
  57. package/src/components/interaction/form/Slider/Slider.module.css +1 -1
  58. package/src/components/interaction/form/Slider/Slider.native.mdx +1 -1
  59. package/src/components/interaction/form/Switch/Switch.module.css +1 -1
  60. package/src/components/interaction/form/Textarea/Textarea.module.css +1 -1
  61. package/src/components/interaction/form/Textarea/Textarea.native.mdx +1 -1
  62. package/src/components/interaction/form/atoms/InputContainer.module.css +1 -1
  63. package/src/components/interaction/form/atoms/Label.module.css +1 -1
  64. package/src/components/interaction/form/atoms/Message.module.css +1 -1
  65. package/src/components/layout/ButtonGroup/ButtonGroup.mdx +5 -3
  66. package/src/components/layout/ButtonGroup/ButtonGroup.module.css +2 -1
  67. package/src/components/layout/ButtonGroup/ButtonGroup.native.tsx +12 -2
  68. package/src/components/layout/ButtonGroup/ButtonGroup.spec.tsx +14 -5
  69. package/src/components/layout/ButtonGroup/ButtonGroup.stories.tsx +10 -10
  70. package/src/components/layout/ButtonGroup/ButtonGroup.tsx +12 -2
  71. package/src/components/layout/ButtonGroup/index.ts +2 -2
  72. package/src/components/layout/Card/Card.module.css +1 -1
  73. package/src/components/layout/IconWrapper/IconWrapper.module.css +1 -1
  74. package/src/components/layout/SectionHeader/SectionHeader.module.css +1 -1
  75. package/src/components/ui/Accordion/Accordion.module.css +1 -1
  76. package/src/components/ui/Accordion/Accordion.native.mdx +1 -1
  77. package/src/components/ui/Accordion/Accordion.native.stories.tsx +1 -1
  78. package/src/components/ui/Alert/Alert.module.css +1 -1
  79. package/src/components/ui/Alert/Alert.native.mdx +1 -1
  80. package/src/components/ui/Avatar/Avatar.module.css +1 -1
  81. package/src/components/ui/Avatar/Avatar.native.mdx +1 -1
  82. package/src/components/ui/Badge/Badge.module.css +1 -1
  83. package/src/components/ui/Badge/Badge.native.mdx +1 -1
  84. package/src/components/ui/Breadcrumb/Breadcrumb.module.css +1 -1
  85. package/src/components/ui/Breadcrumb/Breadcrumb.native.mdx +1 -1
  86. package/src/components/ui/Calendar/Calendar.module.css +1 -1
  87. package/src/components/ui/Calendar/Calendar.native.mdx +1 -1
  88. package/src/components/ui/Carousel/Carousel.module.css +1 -1
  89. package/src/components/ui/Carousel/Carousel.native.mdx +1 -1
  90. package/src/components/ui/Collapsible/Collapsible.module.css +1 -1
  91. package/src/components/ui/Collapsible/Collapsible.native.mdx +1 -1
  92. package/src/components/ui/DescriptionList/DescriptionList.module.css +1 -1
  93. package/src/components/ui/DescriptionList/DescriptionList.native.mdx +1 -1
  94. package/src/components/ui/Link/Link.module.css +1 -1
  95. package/src/components/ui/Link/Link.native.mdx +1 -1
  96. package/src/components/ui/Loading/Loading.module.css +1 -1
  97. package/src/components/ui/NotificationBanner/NotificationBanner.module.css +1 -1
  98. package/src/components/ui/Pagination/Pagination.module.css +1 -1
  99. package/src/components/ui/Pagination/Pagination.native.mdx +1 -1
  100. package/src/components/ui/Progress/Progress.module.css +1 -1
  101. package/src/components/ui/ProgressCircle/ProgressCircle.module.css +1 -1
  102. package/src/components/ui/ProgressCircle/ProgressCircle.native.mdx +1 -1
  103. package/src/components/ui/Separator/Separator.module.css +1 -1
  104. package/src/components/ui/Skeleton/Skeleton.module.css +1 -1
  105. package/src/components/ui/SkipLink/SkipLink.module.css +1 -1
  106. package/src/components/ui/Table/Table.module.css +1 -1
  107. package/src/components/ui/Table/Table.native.mdx +1 -1
  108. package/src/components/ui/Tabs/Tabs.module.css +1 -1
  109. package/src/components/ui/Tabs/Tabs.native.mdx +1 -1
  110. package/src/components/ui/Tooltip/Tooltip.module.css +1 -1
  111. package/src/components/ui/Tooltip/Tooltip.native.mdx +1 -1
  112. package/src/components/ui/Typography/Typography.module.css +1 -1
  113. package/src/components/ui/Typography/Typography.native.mdx +1 -1
  114. package/src/css/bdc.css +1 -1
  115. package/src/css/index.css +1 -1
  116. package/src/index.ts +2 -2
  117. package/src/native.ts +2 -2
  118. package/src/stories/DesignSystem/Borders.mdx +3 -3
  119. package/src/stories/DesignSystem/Colors.mdx +1 -1
  120. package/src/stories/DesignSystem/DarkMode.mdx +3 -3
  121. package/src/stories/DesignSystem/Overview.mdx +16 -5
  122. package/src/stories/DesignSystem/Typography.mdx +1 -1
  123. package/src/stories/Introduction.mdx +4 -4
  124. package/src/stories/ReactNative.mdx +6 -6
  125. package/src/web-components/globals.ts +1 -1
  126. package/src/web-components/interaction/BdsAccordion.mdx +3 -3
  127. package/src/web-components/interaction/BdsAccordion.stories.tsx +1 -1
  128. package/src/web-components/interaction/BdsButton.mdx +2 -2
  129. package/src/web-components/interaction/BdsCollapsible.mdx +2 -2
  130. package/src/web-components/interaction/BdsDialog.mdx +2 -2
  131. package/src/web-components/interaction/BdsDrawer.mdx +2 -2
  132. package/src/web-components/interaction/BdsDropdownMenu.mdx +2 -2
  133. package/src/web-components/interaction/BdsPopover.mdx +1 -1
  134. package/src/web-components/interaction/BdsSkipLink.mdx +2 -2
  135. package/src/web-components/interaction/BdsTabs.mdx +2 -2
  136. package/src/web-components/interaction/BdsToastProvider.mdx +3 -3
  137. package/src/web-components/interaction/BdsTooltip.mdx +2 -2
  138. package/src/web-components/interaction/form/BdsCheckbox.mdx +1 -1
  139. package/src/web-components/interaction/form/BdsCheckboxGroup.mdx +1 -1
  140. package/src/web-components/interaction/form/BdsCombobox.mdx +1 -1
  141. package/src/web-components/interaction/form/BdsFileInput.mdx +1 -1
  142. package/src/web-components/interaction/form/BdsFormInput.mdx +1 -1
  143. package/src/web-components/interaction/form/BdsNumberInput.mdx +1 -1
  144. package/src/web-components/interaction/form/BdsRadio.mdx +1 -1
  145. package/src/web-components/interaction/form/BdsRadioGroup.mdx +1 -1
  146. package/src/web-components/interaction/form/BdsSegmentedControl.mdx +1 -1
  147. package/src/web-components/interaction/form/BdsSelect.mdx +1 -1
  148. package/src/web-components/interaction/form/BdsSlider.mdx +1 -1
  149. package/src/web-components/interaction/form/BdsSwitch.mdx +1 -1
  150. package/src/web-components/interaction/form/BdsTextarea.mdx +1 -1
  151. package/src/web-components/ui/BdsAlert.mdx +1 -1
  152. package/src/web-components/ui/BdsAvatar.mdx +1 -1
  153. package/src/web-components/ui/BdsBadge.mdx +1 -1
  154. package/src/web-components/ui/BdsBreadcrumb.mdx +1 -1
  155. package/src/web-components/ui/BdsButtonGroup.mdx +1 -1
  156. package/src/web-components/ui/BdsCalendar.mdx +1 -1
  157. package/src/web-components/ui/BdsCard.mdx +1 -1
  158. package/src/web-components/ui/BdsCarousel.mdx +1 -1
  159. package/src/web-components/ui/BdsDescriptionList.mdx +1 -1
  160. package/src/web-components/ui/BdsIconWrapper.mdx +1 -1
  161. package/src/web-components/ui/BdsLink.mdx +1 -1
  162. package/src/web-components/ui/BdsLoading.mdx +1 -1
  163. package/src/web-components/ui/BdsNotificationBanner.mdx +1 -1
  164. package/src/web-components/ui/BdsPagination.mdx +1 -1
  165. package/src/web-components/ui/BdsProgress.mdx +1 -1
  166. package/src/web-components/ui/BdsProgressCircle.mdx +1 -1
  167. package/src/web-components/ui/BdsRating.mdx +1 -1
  168. package/src/web-components/ui/BdsSectionHeader.mdx +1 -1
  169. package/src/web-components/ui/BdsSeparator.mdx +2 -2
  170. package/src/web-components/ui/BdsSkeleton.mdx +1 -1
  171. package/src/web-components/ui/BdsTable.mdx +1 -1
  172. package/src/web-components/ui/BdsTypography.mdx +1 -1
package/AGENTS.md CHANGED
@@ -13,7 +13,7 @@ A component library with three targets:
13
13
  ```css
14
14
  @import '@boostdev/design-system-foundation/css';
15
15
  ```
16
- All component styles live inside `@layer component`.
16
+ All component styles live inside `@layer boostdev.component`.
17
17
 
18
18
  **Web Components:** import the bundle to register all custom elements:
19
19
  ```js
@@ -28,7 +28,7 @@ import '@boostdev/design-system-components/web-components';
28
28
  - **ui/**: Accordion, Alert, Avatar, Badge, Breadcrumb, Calendar, Carousel, Collapsible, DescriptionList, Link, Loading, NotificationBanner, Pagination, Progress, ProgressCircle, Separator, Skeleton, SkipLink, Table, Tabs, Tooltip, Typography
29
29
  - **interaction/**: Button, Command, Dialog, Drawer, DropdownMenu, Popover, Rating, Toast (ToastProvider + useToast hook)
30
30
  - **interaction/form/**: Checkbox, CheckboxGroup, Combobox, FileInput, FormInput, NumberInput, Radio, RadioGroup, SegmentedControl, Select, Slider, Switch, Textarea (+ atom primitives: Label, Message, InputContainer)
31
- - **layout/**: ButtonGroup, Card, IconWrapper, SectionHeader
31
+ - **layout/**: ButtonContainer (formerly ButtonGroup — deprecated alias still available), Card, IconWrapper, SectionHeader
32
32
 
33
33
  ### Web Components (experimental) — `src/web-components/`
34
34
  Custom elements built with Lit. Entry: `src/web-components/index.ts`. Bundled with Lit (no peer dep required).
@@ -77,7 +77,7 @@ React Native overview: `src/stories/ReactNative.mdx`.
77
77
  ## Styling conventions
78
78
 
79
79
  - CSS Modules (`.module.css`) for all components — styles are scoped, no global leakage
80
- - All rules placed inside `@layer component` to sit above token layers in the cascade
80
+ - All rules placed inside `@layer boostdev.component` to sit above token layers in the cascade
81
81
  - Variant classes follow the pattern `--{variant}` or `--{group}_{variant}` matching the source
82
82
  - Component-level CSS custom properties (e.g. `--button_bg`) can be overridden from a parent
83
83
  - Never hardcode colours, spacing, or typography values — always use design tokens
@@ -212,6 +212,8 @@ import '@boostdev/design-system-components/css';
212
212
 
213
213
  > **`cn()` in Server Components**: For `cn` only, prefer `@boostdev/design-system-components/utils` — the root entry includes a CSS side-effect import.
214
214
 
215
+ > **Next.js styles not applying?** Import the pre-built CSS once at the root: `import '@boostdev/design-system-components/css'` (exposed via the `./css` subpath in the package's `exports` map). `transpilePackages` is **not** required — class names are renamed to `bds{version}{Component}-*` at build time by `scripts/patch-css-modules.mjs`, and the JS bundle contains no runtime CSS Module imports. Forgetting the CSS import is the most common cause of unstyled components.
216
+
215
217
  ## Accessibility requirements (WCAG 2.1 AA)
216
218
 
217
219
  Every component must meet WCAG 2.1 Level AA:
@@ -233,7 +235,7 @@ References: https://developer.mozilla.org/en-US/docs/Web/Accessibility | https:/
233
235
 
234
236
  ## Usage guidelines
235
237
 
236
- - **Form buttons must be wrapped in `ButtonGroup`**: Whenever buttons are used inside a form (submit, reset, cancel, navigation), wrap them in a `ButtonGroup` component. Use `variant="flow"` for multi-step form navigation (Back / Next) and `variant="card"` for single-form submissions. This ensures consistent spacing, alignment, and responsive behaviour.
238
+ - **Form buttons must be wrapped in `ButtonContainer`**: Whenever buttons are used inside a form (submit, reset, cancel, navigation), wrap them in a `ButtonContainer` component. Use `variant="flow"` for multi-step form navigation (Back / Next) and `variant="card"` for single-form submissions. This ensures consistent spacing, alignment, and responsive behaviour. (`ButtonGroup` is a deprecated alias — use `ButtonContainer` for new code.)
237
239
 
238
240
  ## Key decisions
239
241
 
@@ -271,7 +273,7 @@ Key patterns:
271
273
 
272
274
  1. Create `src/components/{category}/{ComponentName}/`
273
275
  2. Add `ComponentName.tsx`, `ComponentName.module.css`, `index.ts`
274
- 3. Wrap all CSS rules in `@layer component { ... }`
276
+ 3. Wrap all CSS rules in `@layer boostdev.component { ... }`
275
277
  4. Use only design token custom properties for colours, spacing, typography
276
278
  5. Export the props interface (`export interface ComponentNameProps`) from the component file
277
279
  6. Re-export component and props type from the local `index.ts` and from `src/index.ts`
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @boostdev/components
1
+ # @boostdev/design-system-components
2
2
 
3
3
  Accessible, token-driven React components built on [`@boostdev/design-system-foundation`](https://www.npmjs.com/package/@boostdev/design-system-foundation).
4
4
  Zero extra runtime — bring your own CSS reset and token layer, then import the components.
@@ -6,9 +6,9 @@ Zero extra runtime — bring your own CSS reset and token layer, then import the
6
6
  ## Installation
7
7
 
8
8
  ```bash
9
- pnpm add @boostdev/components @boostdev/design-system-foundation
10
- npm install @boostdev/components @boostdev/design-system-foundation
11
- yarn add @boostdev/components @boostdev/design-system-foundation
9
+ pnpm add @boostdev/design-system-components @boostdev/design-system-foundation
10
+ npm install @boostdev/design-system-components @boostdev/design-system-foundation
11
+ yarn add @boostdev/design-system-components @boostdev/design-system-foundation
12
12
  ```
13
13
 
14
14
  `@boostdev/design-system-foundation` is a required peer dependency. The components rely on its
@@ -21,7 +21,7 @@ Import the design system tokens and the component styles once at your app root:
21
21
  ```css
22
22
  /* app.css */
23
23
  @import "@boostdev/design-system-foundation/css";
24
- @import "@boostdev/components/css";
24
+ @import "@boostdev/design-system-components/css";
25
25
  ```
26
26
 
27
27
  Or with a JS bundler (Vite, Next.js, etc.):
@@ -29,17 +29,17 @@ Or with a JS bundler (Vite, Next.js, etc.):
29
29
  ```ts
30
30
  // main.ts / layout.tsx
31
31
  import '@boostdev/design-system-foundation/css';
32
- import '@boostdev/components/css';
32
+ import '@boostdev/design-system-components/css';
33
33
  ```
34
34
 
35
- All component styles live inside `@layer component`, which sits above the token layers in the
35
+ All component styles live inside `@layer boostdev.component`, which sits above the token layers in the
36
36
  cascade. You can override any component from outside without specificity fights.
37
37
 
38
38
  ---
39
39
 
40
40
  ## Next.js / React Server Components
41
41
 
42
- The main `@boostdev/components` entry has no `'use client'` directive. When Next.js evaluates the
42
+ The main `@boostdev/design-system-components` entry has no `'use client'` directive. When Next.js evaluates the
43
43
  bundle in a React Server Component context, components that call `createContext` (e.g. `Toast`) will
44
44
  crash at module evaluation time.
45
45
 
@@ -48,15 +48,33 @@ bundle, which tells Next.js to treat it as client-only code:
48
48
 
49
49
  ```ts
50
50
  // Plain React / Vite — unchanged
51
- import { Button, Card } from '@boostdev/components';
51
+ import { Button, Card } from '@boostdev/design-system-components';
52
52
 
53
53
  // Next.js / RSC — use the /client subpath
54
- import { Button, Card } from '@boostdev/components/client';
54
+ import { Button, Card } from '@boostdev/design-system-components/client';
55
55
 
56
56
  // Server-safe utilities (cn, WithClassName) — works in Server Components, layouts, middleware
57
- import { cn } from '@boostdev/components/utils';
57
+ import { cn } from '@boostdev/design-system-components/utils';
58
58
  ```
59
59
 
60
+ ### Styles won't apply? Import the CSS file
61
+
62
+ The most common cause of unstyled components in a Next.js app is forgetting to import the CSS
63
+ bundle. This package ships pre-built, already-scoped CSS (class names are renamed at build time
64
+ to `bds{version}{Component}-*`), so Next.js does **not** need to process it — you just need to
65
+ load it once at the root:
66
+
67
+ ```ts
68
+ // app/layout.tsx (App Router) or pages/_app.tsx (Pages Router)
69
+ import '@boostdev/design-system-foundation/css';
70
+ import '@boostdev/design-system-components/css';
71
+ ```
72
+
73
+ The `./css` subpath is exposed in the package's `exports` map and points at the pre-built
74
+ `dist/index.css`. You do **not** need `transpilePackages` for this library — classes are already
75
+ scoped at publish time and the JS bundle contains no runtime CSS Module imports. Add
76
+ `transpilePackages` only if another dependency in your tree genuinely requires it.
77
+
60
78
  ---
61
79
 
62
80
  ## Usage
@@ -66,7 +84,7 @@ import { cn } from '@boostdev/components/utils';
66
84
  #### Badge
67
85
 
68
86
  ```tsx
69
- import { Badge } from '@boostdev/components';
87
+ import { Badge } from '@boostdev/design-system-components';
70
88
 
71
89
  <Badge>New</Badge>
72
90
  <Badge variant="success">Active</Badge>
@@ -82,7 +100,7 @@ Variants: `primary` (default) · `secondary` · `success` · `error` · `warning
82
100
  #### Collapsible
83
101
 
84
102
  ```tsx
85
- import { Collapsible } from '@boostdev/components';
103
+ import { Collapsible } from '@boostdev/design-system-components';
86
104
 
87
105
  <Collapsible summary="What is the return policy?" defaultOpen>
88
106
  You can return any item within 30 days of purchase.
@@ -100,7 +118,7 @@ Built on native `<details>`/`<summary>`. Use `name` to group multiple Collapsibl
100
118
  #### Typography
101
119
 
102
120
  ```tsx
103
- import { Typography } from '@boostdev/components';
121
+ import { Typography } from '@boostdev/design-system-components';
104
122
 
105
123
  <Typography variant="h1">Page title</Typography>
106
124
  <Typography variant="h2">Section title</Typography>
@@ -121,7 +139,7 @@ Variants: `h1` · `h2` · `h3` · `body` (default) · `body_s`
121
139
  #### Loading
122
140
 
123
141
  ```tsx
124
- import { Loading } from '@boostdev/components';
142
+ import { Loading } from '@boostdev/design-system-components';
125
143
 
126
144
  <Loading />
127
145
  <Loading size="small" />
@@ -135,7 +153,7 @@ Sizes: `small` · `medium` (default) · `large`
135
153
  #### Skeleton
136
154
 
137
155
  ```tsx
138
- import { Skeleton } from '@boostdev/components';
156
+ import { Skeleton } from '@boostdev/design-system-components';
139
157
 
140
158
  <Skeleton className="w-48 h-4" />
141
159
  ```
@@ -149,7 +167,7 @@ Renders an `aria-hidden` shimmer block. Size it with a `className` or inline sty
149
167
  #### Button
150
168
 
151
169
  ```tsx
152
- import { Button } from '@boostdev/components';
170
+ import { Button } from '@boostdev/design-system-components';
153
171
 
154
172
  <Button>Click me</Button>
155
173
  <Button variant="outline">Cancel</Button>
@@ -187,7 +205,7 @@ import { Button } from '@boostdev/components';
187
205
  #### Dialog
188
206
 
189
207
  ```tsx
190
- import { Dialog } from '@boostdev/components';
208
+ import { Dialog } from '@boostdev/design-system-components';
191
209
 
192
210
  <Dialog isOpen={open} onClose={() => setOpen(false)}>
193
211
  <h2>Confirm</h2>
@@ -206,7 +224,7 @@ Override the backdrop colour via `--color_backdrop` (default: `rgb(0 0 0 / 50%)`
206
224
  #### Rating
207
225
 
208
226
  ```tsx
209
- import { Rating } from '@boostdev/components';
227
+ import { Rating } from '@boostdev/design-system-components';
210
228
 
211
229
  <Rating value={3} />
212
230
  <Rating value={4} max={10} />
@@ -220,7 +238,7 @@ background colour.
220
238
  #### Toast
221
239
 
222
240
  ```tsx
223
- import { ToastProvider, useToast } from '@boostdev/components';
241
+ import { ToastProvider, useToast } from '@boostdev/design-system-components';
224
242
 
225
243
  // Wrap your app (or layout) once:
226
244
  <ToastProvider>
@@ -251,7 +269,7 @@ All components accept native HTML attributes for their root element via `...rest
251
269
  #### FormInput
252
270
 
253
271
  ```tsx
254
- import { FormInput } from '@boostdev/components';
272
+ import { FormInput } from '@boostdev/design-system-components';
255
273
 
256
274
  <FormInput
257
275
  label="Email"
@@ -265,7 +283,7 @@ import { FormInput } from '@boostdev/components';
265
283
  #### Checkbox
266
284
 
267
285
  ```tsx
268
- import { Checkbox, CheckboxGroup } from '@boostdev/components';
286
+ import { Checkbox, CheckboxGroup } from '@boostdev/design-system-components';
269
287
 
270
288
  <Checkbox
271
289
  label="I agree to the terms"
@@ -287,7 +305,7 @@ Group multiple checkboxes with a shared label using `CheckboxGroup`:
287
305
  #### Radio
288
306
 
289
307
  ```tsx
290
- import { Radio, RadioGroup } from '@boostdev/components';
308
+ import { Radio, RadioGroup } from '@boostdev/design-system-components';
291
309
 
292
310
  <RadioGroup legend="Preferred contact" required>
293
311
  <Radio label="Option A" name="choice" value="a" description="Optional supporting text." />
@@ -298,7 +316,7 @@ import { Radio, RadioGroup } from '@boostdev/components';
298
316
  #### Switch
299
317
 
300
318
  ```tsx
301
- import { Switch } from '@boostdev/components';
319
+ import { Switch } from '@boostdev/design-system-components';
302
320
 
303
321
  <Switch label="Enable notifications" name="notifications" />
304
322
  <Switch label="Dark mode" name="dark-mode" defaultChecked />
@@ -310,7 +328,7 @@ Sizes: `small` · `medium` (default) · `large`
310
328
  #### SegmentedControl
311
329
 
312
330
  ```tsx
313
- import { SegmentedControl } from '@boostdev/components';
331
+ import { SegmentedControl } from '@boostdev/design-system-components';
314
332
 
315
333
  <SegmentedControl aria-label="Calendar view" selectedIndex={1}>
316
334
  <button>Day</button>
@@ -334,7 +352,7 @@ Children-based API — pass `<button>`, `<a>`, or router `<Link>` elements direc
334
352
  #### ButtonGroup
335
353
 
336
354
  ```tsx
337
- import { ButtonGroup, Button } from '@boostdev/components';
355
+ import { ButtonGroup, Button } from '@boostdev/design-system-components';
338
356
 
339
357
  <ButtonGroup variant="flow" aria-label="Page navigation">
340
358
  <Button>Back</Button>
@@ -352,7 +370,7 @@ import { ButtonGroup, Button } from '@boostdev/components';
352
370
  #### Card
353
371
 
354
372
  ```tsx
355
- import { Card } from '@boostdev/components';
373
+ import { Card } from '@boostdev/design-system-components';
356
374
 
357
375
  <Card>Basic card</Card>
358
376
  <Card variant="elevated" padding="large">Elevated</Card>
@@ -372,7 +390,7 @@ import { Card } from '@boostdev/components';
372
390
  #### SectionHeader
373
391
 
374
392
  ```tsx
375
- import { SectionHeader } from '@boostdev/components';
393
+ import { SectionHeader } from '@boostdev/design-system-components';
376
394
 
377
395
  <SectionHeader title="Our services" />
378
396
  <SectionHeader
@@ -395,7 +413,7 @@ import { SectionHeader } from '@boostdev/components';
395
413
  #### IconWrapper
396
414
 
397
415
  ```tsx
398
- import { IconWrapper } from '@boostdev/components';
416
+ import { IconWrapper } from '@boostdev/design-system-components';
399
417
 
400
418
  <IconWrapper>
401
419
  <svg>...</svg>
@@ -420,10 +438,10 @@ Composes class name strings, filtering out falsy values:
420
438
 
421
439
  ```ts
422
440
  // Server-safe — works in Server Components, layouts, middleware
423
- import { cn } from '@boostdev/components/utils';
441
+ import { cn } from '@boostdev/design-system-components/utils';
424
442
 
425
443
  // Also available from root or /client (but these are client-only in Next.js)
426
- import { cn } from '@boostdev/components';
444
+ import { cn } from '@boostdev/design-system-components';
427
445
 
428
446
  cn('card', isActive && 'card--active', [extraClass])
429
447
  // → "card card--active extraClass"
@@ -444,7 +462,7 @@ Every component exposes CSS custom properties as a styling API. Set them on a pa
444
462
  }
445
463
  ```
446
464
 
447
- All component styles sit in `@layer component`. You can also write rules in a higher layer:
465
+ All component styles sit in `@layer boostdev.component`. You can also write rules in a higher layer:
448
466
 
449
467
  ```css
450
468
  @layer my-overrides {
@@ -500,7 +518,7 @@ retheme all components at once:
500
518
 
501
519
  ```css
502
520
  /* tokens.config.css — import after the design system CSS */
503
- @layer tokens.override {
521
+ @layer boostdev.tokens.override {
504
522
  :root {
505
523
  --bds-cta: var(--bds-BASE__color--orange);
506
524
  --bds-on-cta: var(--bds-BASE__color--white);
@@ -516,7 +534,7 @@ and progress indicators. Override it once to retheme checkboxes, radio buttons,
516
534
  bars, and the switch thumb simultaneously:
517
535
 
518
536
  ```css
519
- @layer tokens.override {
537
+ @layer boostdev.tokens.override {
520
538
  :root {
521
539
  --bds-active: var(--bds-BASE__color--blue);
522
540
  --bds-on-active: var(--bds-BASE__color--white);
@@ -548,7 +566,7 @@ pnpm storybook # Storybook dev server on port 6006
548
566
 
549
567
  1. Create `src/components/{category}/{Name}/`
550
568
  2. Add `Name.tsx`, `Name.module.css`, `index.ts`
551
- 3. Wrap all CSS in `@layer component { ... }`
569
+ 3. Wrap all CSS in `@layer boostdev.component { ... }`
552
570
  4. Use only design token custom properties — no hard-coded colours, spacing, or font sizes
553
571
  5. Re-export from `src/index.ts`
554
572
  6. Run `pnpm build && pnpm typecheck && pnpm lint && pnpm lint:css && pnpm test`
@@ -587,13 +605,13 @@ pnpm mcp:start # listens on http://localhost:3001/api/mcp
587
605
  47 components are available for React Native — near-complete parity with the web library. Metro auto-resolves the native entry via the `"react-native"` export condition.
588
606
 
589
607
  ```tsx
590
- import { Button, FormInput, Dialog, Tabs } from '@boostdev/components';
608
+ import { Button, FormInput, Dialog, Tabs } from '@boostdev/design-system-components';
591
609
  ```
592
610
 
593
611
  Wrap your app in `ThemeProvider`:
594
612
 
595
613
  ```tsx
596
- import { ThemeProvider } from '@boostdev/components/native/ThemeContext';
614
+ import { ThemeProvider } from '@boostdev/design-system-components/native/ThemeContext';
597
615
 
598
616
  export default function App() {
599
617
  return (