@boostdev/design-system-components 1.2.0 → 1.2.2

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 (168) hide show
  1. package/AGENTS.md +46 -4
  2. package/README.md +15 -15
  3. package/dist/client.cjs +149 -124
  4. package/dist/client.css +503 -525
  5. package/dist/client.d.cts +71 -96
  6. package/dist/client.d.ts +71 -96
  7. package/dist/client.js +149 -124
  8. package/dist/index.cjs +149 -124
  9. package/dist/index.css +503 -525
  10. package/dist/index.d.cts +71 -96
  11. package/dist/index.d.ts +71 -96
  12. package/dist/index.js +149 -124
  13. package/dist/web-components/{chunk-6MH5UWUD.js → chunk-2FGATTGT.js} +5 -0
  14. package/dist/web-components/{chunk-5IPHEONG.js → chunk-6I2DBFQ7.js} +1 -0
  15. package/dist/web-components/{chunk-DI46Q2EA.js → chunk-OCODKRVZ.js} +57 -82
  16. package/dist/web-components/index.d.ts +571 -1
  17. package/dist/web-components/index.js +1501 -4
  18. package/dist/web-components/interaction/bds-collapsible.js +1 -1
  19. package/dist/web-components/interaction/bds-drawer.js +1 -1
  20. package/dist/web-components/interaction/form/bds-segmented-control.js +1 -1
  21. package/package.json +1 -1
  22. package/src/components/interaction/Command/Command.tsx +4 -3
  23. package/src/components/interaction/Dialog/Dialog.tsx +4 -5
  24. package/src/components/interaction/Drawer/Drawer.module.css +37 -62
  25. package/src/components/interaction/Drawer/Drawer.spec.tsx +3 -3
  26. package/src/components/interaction/Drawer/Drawer.tsx +25 -24
  27. package/src/components/interaction/DropdownMenu/DropdownMenu.tsx +4 -2
  28. package/src/components/interaction/Popover/Popover.tsx +4 -3
  29. package/src/components/interaction/Rating/Rating.tsx +4 -2
  30. package/src/components/interaction/form/CheckboxGroup/CheckboxGroup.tsx +4 -6
  31. package/src/components/interaction/form/Combobox/Combobox.tsx +4 -2
  32. package/src/components/interaction/form/FileInput/FileInput.tsx +4 -3
  33. package/src/components/interaction/form/NumberInput/NumberInput.tsx +4 -3
  34. package/src/components/interaction/form/RadioGroup/RadioGroup.tsx +4 -6
  35. package/src/components/interaction/form/SegmentedControl/SegmentedControl.mdx +8 -4
  36. package/src/components/interaction/form/SegmentedControl/SegmentedControl.module.css +13 -6
  37. package/src/components/interaction/form/SegmentedControl/SegmentedControl.tsx +4 -6
  38. package/src/components/interaction/form/atoms/InputContainer.tsx +2 -2
  39. package/src/components/layout/ButtonGroup/ButtonGroup.tsx +4 -6
  40. package/src/components/layout/Card/Card.tsx +4 -10
  41. package/src/components/layout/IconWrapper/IconWrapper.tsx +4 -5
  42. package/src/components/layout/SectionHeader/SectionHeader.tsx +5 -4
  43. package/src/components/ui/Accordion/Accordion.tsx +4 -3
  44. package/src/components/ui/Alert/Alert.tsx +4 -3
  45. package/src/components/ui/Avatar/Avatar.tsx +5 -3
  46. package/src/components/ui/Badge/Badge.tsx +4 -5
  47. package/src/components/ui/Breadcrumb/Breadcrumb.tsx +4 -3
  48. package/src/components/ui/Calendar/Calendar.tsx +4 -4
  49. package/src/components/ui/Carousel/Carousel.tsx +4 -4
  50. package/src/components/ui/DescriptionList/DescriptionList.tsx +4 -4
  51. package/src/components/ui/Loading/Loading.tsx +4 -3
  52. package/src/components/ui/NotificationBanner/NotificationBanner.tsx +4 -2
  53. package/src/components/ui/Pagination/Pagination.tsx +4 -2
  54. package/src/components/ui/Progress/Progress.tsx +4 -2
  55. package/src/components/ui/ProgressCircle/ProgressCircle.tsx +4 -1
  56. package/src/components/ui/Separator/Separator.tsx +5 -3
  57. package/src/components/ui/Skeleton/Skeleton.tsx +4 -3
  58. package/src/components/ui/SkipLink/SkipLink.tsx +4 -5
  59. package/src/components/ui/Tabs/Tabs.tsx +4 -4
  60. package/src/components/ui/Tooltip/Tooltip.tsx +4 -2
  61. package/src/components/ui/Typography/Typography.tsx +4 -5
  62. package/src/stories/DesignSystem/Grid.mdx +2 -0
  63. package/src/stories/Introduction.mdx +2 -1
  64. package/src/web-components/index.ts +12 -0
  65. package/src/web-components/interaction/BdsAccordion.mdx +80 -28
  66. package/src/web-components/interaction/BdsAccordion.stories.tsx +67 -58
  67. package/src/web-components/interaction/BdsCollapsible.mdx +93 -23
  68. package/src/web-components/interaction/BdsCollapsible.stories.tsx +29 -48
  69. package/src/web-components/interaction/BdsDialog.mdx +88 -27
  70. package/src/web-components/interaction/BdsDialog.stories.tsx +129 -47
  71. package/src/web-components/interaction/BdsDrawer.mdx +85 -27
  72. package/src/web-components/interaction/BdsDrawer.stories.tsx +161 -31
  73. package/src/web-components/interaction/BdsDropdownMenu.mdx +108 -0
  74. package/src/web-components/interaction/BdsDropdownMenu.stories.tsx +91 -0
  75. package/src/web-components/interaction/BdsSkipLink.mdx +72 -16
  76. package/src/web-components/interaction/BdsSkipLink.stories.tsx +47 -34
  77. package/src/web-components/interaction/BdsTabs.mdx +97 -27
  78. package/src/web-components/interaction/BdsTabs.stories.tsx +69 -55
  79. package/src/web-components/interaction/BdsTooltip.mdx +84 -18
  80. package/src/web-components/interaction/BdsTooltip.stories.tsx +49 -30
  81. package/src/web-components/interaction/bds-collapsible.ts +1 -0
  82. package/src/web-components/interaction/bds-drawer.ts +59 -82
  83. package/src/web-components/interaction/bds-dropdown-menu-item.ts +124 -0
  84. package/src/web-components/interaction/bds-dropdown-menu.spec.ts +102 -0
  85. package/src/web-components/interaction/bds-dropdown-menu.ts +200 -0
  86. package/src/web-components/interaction/form/BdsCheckbox.mdx +57 -20
  87. package/src/web-components/interaction/form/BdsCheckbox.stories.tsx +35 -36
  88. package/src/web-components/interaction/form/BdsCheckboxGroup.mdx +70 -0
  89. package/src/web-components/interaction/form/BdsCheckboxGroup.stories.tsx +81 -0
  90. package/src/web-components/interaction/form/BdsCombobox.mdx +52 -33
  91. package/src/web-components/interaction/form/BdsCombobox.stories.tsx +55 -53
  92. package/src/web-components/interaction/form/BdsFileInput.mdx +59 -24
  93. package/src/web-components/interaction/form/BdsFileInput.stories.tsx +38 -53
  94. package/src/web-components/interaction/form/BdsFormInput.mdx +98 -0
  95. package/src/web-components/interaction/form/BdsFormInput.stories.tsx +139 -0
  96. package/src/web-components/interaction/form/BdsNumberInput.mdx +51 -22
  97. package/src/web-components/interaction/form/BdsNumberInput.stories.tsx +24 -46
  98. package/src/web-components/interaction/form/BdsRadio.mdx +53 -22
  99. package/src/web-components/interaction/form/BdsRadio.stories.tsx +19 -51
  100. package/src/web-components/interaction/form/BdsRadioGroup.mdx +73 -0
  101. package/src/web-components/interaction/form/BdsRadioGroup.stories.tsx +88 -0
  102. package/src/web-components/interaction/form/BdsSegmentedControl.mdx +76 -23
  103. package/src/web-components/interaction/form/BdsSegmentedControl.stories.tsx +64 -54
  104. package/src/web-components/interaction/form/BdsSelect.mdx +59 -21
  105. package/src/web-components/interaction/form/BdsSelect.stories.tsx +47 -56
  106. package/src/web-components/interaction/form/BdsSlider.mdx +55 -27
  107. package/src/web-components/interaction/form/BdsSlider.stories.tsx +23 -44
  108. package/src/web-components/interaction/form/BdsSwitch.mdx +53 -20
  109. package/src/web-components/interaction/form/BdsSwitch.stories.tsx +22 -37
  110. package/src/web-components/interaction/form/BdsTextarea.mdx +54 -22
  111. package/src/web-components/interaction/form/BdsTextarea.stories.tsx +35 -44
  112. package/src/web-components/interaction/form/bds-checkbox-group.spec.ts +55 -0
  113. package/src/web-components/interaction/form/bds-checkbox-group.ts +117 -0
  114. package/src/web-components/interaction/form/bds-form-input.spec.ts +83 -0
  115. package/src/web-components/interaction/form/bds-form-input.ts +268 -0
  116. package/src/web-components/interaction/form/bds-radio-group.spec.ts +62 -0
  117. package/src/web-components/interaction/form/bds-radio-group.ts +142 -0
  118. package/src/web-components/interaction/form/bds-segmented-control.ts +5 -0
  119. package/src/web-components/ui/BdsAvatar.mdx +29 -20
  120. package/src/web-components/ui/BdsAvatar.stories.tsx +14 -28
  121. package/src/web-components/ui/BdsBreadcrumb.mdx +22 -19
  122. package/src/web-components/ui/BdsBreadcrumb.stories.tsx +11 -21
  123. package/src/web-components/ui/BdsButtonGroup.mdx +69 -0
  124. package/src/web-components/ui/BdsButtonGroup.stories.tsx +66 -0
  125. package/src/web-components/ui/BdsCalendar.mdx +93 -0
  126. package/src/web-components/ui/BdsCalendar.stories.tsx +63 -0
  127. package/src/web-components/ui/BdsCard.mdx +30 -25
  128. package/src/web-components/ui/BdsCard.stories.tsx +19 -42
  129. package/src/web-components/ui/BdsCarousel.mdx +83 -0
  130. package/src/web-components/ui/BdsCarousel.stories.tsx +96 -0
  131. package/src/web-components/ui/BdsDescriptionList.mdx +13 -16
  132. package/src/web-components/ui/BdsDescriptionList.stories.tsx +34 -49
  133. package/src/web-components/ui/BdsIconWrapper.mdx +20 -20
  134. package/src/web-components/ui/BdsIconWrapper.stories.tsx +46 -41
  135. package/src/web-components/ui/BdsLink.mdx +21 -17
  136. package/src/web-components/ui/BdsLink.stories.tsx +19 -20
  137. package/src/web-components/ui/BdsLoading.mdx +9 -13
  138. package/src/web-components/ui/BdsLoading.stories.tsx +8 -10
  139. package/src/web-components/ui/BdsNotificationBanner.mdx +32 -37
  140. package/src/web-components/ui/BdsNotificationBanner.stories.tsx +38 -47
  141. package/src/web-components/ui/BdsPagination.mdx +74 -0
  142. package/src/web-components/ui/BdsPagination.stories.tsx +36 -0
  143. package/src/web-components/ui/BdsProgress.mdx +24 -17
  144. package/src/web-components/ui/BdsProgress.stories.tsx +55 -29
  145. package/src/web-components/ui/BdsProgressCircle.mdx +24 -18
  146. package/src/web-components/ui/BdsProgressCircle.stories.tsx +17 -29
  147. package/src/web-components/ui/BdsRating.mdx +22 -22
  148. package/src/web-components/ui/BdsRating.stories.tsx +19 -13
  149. package/src/web-components/ui/BdsSectionHeader.mdx +31 -28
  150. package/src/web-components/ui/BdsSectionHeader.stories.tsx +21 -23
  151. package/src/web-components/ui/BdsSeparator.mdx +22 -8
  152. package/src/web-components/ui/BdsSeparator.stories.tsx +27 -19
  153. package/src/web-components/ui/BdsSkeleton.mdx +20 -26
  154. package/src/web-components/ui/BdsSkeleton.stories.tsx +23 -23
  155. package/src/web-components/ui/BdsTable.mdx +81 -0
  156. package/src/web-components/ui/BdsTable.stories.tsx +83 -0
  157. package/src/web-components/ui/BdsTypography.mdx +20 -29
  158. package/src/web-components/ui/BdsTypography.stories.tsx +19 -18
  159. package/src/web-components/ui/bds-button-group.spec.ts +40 -0
  160. package/src/web-components/ui/bds-button-group.ts +78 -0
  161. package/src/web-components/ui/bds-calendar.spec.ts +91 -0
  162. package/src/web-components/ui/bds-calendar.ts +427 -0
  163. package/src/web-components/ui/bds-carousel.spec.ts +64 -0
  164. package/src/web-components/ui/bds-carousel.ts +296 -0
  165. package/src/web-components/ui/bds-pagination.spec.ts +67 -0
  166. package/src/web-components/ui/bds-pagination.ts +197 -0
  167. package/src/web-components/ui/bds-table.spec.ts +45 -0
  168. package/src/web-components/ui/bds-table.ts +96 -0
@@ -97,8 +97,13 @@ var BdsSegmentedControl = class extends i2 {
97
97
  display: none;
98
98
  }
99
99
 
100
+ :host([variant='outline']) .item {
101
+ background-color: var(--segmented_item-bg, transparent);
102
+ }
103
+
100
104
  :host([variant='outline']) .item.--active {
101
105
  color: var(--segmented_color--active, var(--bds-color_interactive));
106
+ background-color: var(--segmented_item-bg--active, var(--bds-color_bg));
102
107
  }
103
108
 
104
109
  :host([variant='outline']) .indicator {
@@ -72,6 +72,7 @@ var BdsCollapsible = class extends i2 {
72
72
 
73
73
  .content {
74
74
  padding: var(--bds-space_m);
75
+ background-color: var(--collapsible_content-bg, var(--bds-color_bg));
75
76
  color: var(--collapsible_on-color, var(--bds-color_on-bg));
76
77
  font-size: var(--bds-font_size--body);
77
78
  line-height: var(--bds-font_line-height--body);
@@ -14,85 +14,65 @@ var BdsDrawer = class extends i2 {
14
14
 
15
15
  .drawer {
16
16
  position: fixed;
17
- inset: 0;
17
+ inset-block: 0;
18
+ inset-inline: auto 0;
19
+ inline-size: min(28rem, 90vw);
20
+ max-inline-size: 100vw;
21
+ block-size: 100dvh;
22
+ max-block-size: 100dvh;
18
23
  margin: 0;
19
24
  padding: 0;
20
- inline-size: 100%;
21
- max-inline-size: 100%;
22
- block-size: 100%;
23
- max-block-size: 100%;
24
- border: none;
25
- background: transparent;
26
- overflow: hidden;
27
- transition:
28
- display var(--bds-animation_transition-duration) allow-discrete,
29
- overlay var(--bds-animation_transition-duration) allow-discrete;
30
- }
31
-
32
- .drawer::backdrop {
33
- background-color: var(--color_backdrop, rgb(0 0 0 / 50%));
34
- backdrop-filter: blur(3px);
35
- transition:
36
- display var(--bds-animation_transition-duration) allow-discrete,
37
- overlay var(--bds-animation_transition-duration) allow-discrete,
38
- background-color var(--bds-animation_transition-duration) var(--bds-animation_easing),
39
- backdrop-filter var(--bds-animation_transition-duration) var(--bds-animation_easing);
40
- }
41
-
42
- @starting-style {
43
- .drawer[open]::backdrop {
44
- background-color: transparent;
45
- backdrop-filter: blur(0);
46
- }
47
- }
48
-
49
- .panel {
50
- position: absolute;
51
- inset-block: 0;
52
25
  display: flex;
53
26
  flex-direction: column;
54
- inline-size: min(28rem, 90vw);
55
- block-size: 100%;
56
27
  background-color: var(--drawer_color, var(--bds-color_bg));
57
28
  color: var(--drawer_on-color, var(--bds-color_on-bg));
29
+ border: none;
58
30
  box-shadow: var(--bds-shadow_xl);
59
31
  overflow: hidden;
60
32
  translate: 100% 0;
61
- transition: translate var(--bds-animation_transition-duration) var(--bds-animation_easing);
62
- }
63
-
64
- :host([side='right']) .panel {
65
- inset-inline-end: 0;
66
- translate: 100% 0;
33
+ transition:
34
+ translate var(--bds-animation_transition-duration) var(--bds-animation_easing),
35
+ display var(--bds-animation_transition-duration) var(--bds-animation_easing) allow-discrete,
36
+ overlay var(--bds-animation_transition-duration) var(--bds-animation_easing) allow-discrete;
67
37
  }
68
38
 
69
- :host([side='left']) .panel,
70
- :host(:not([side])) .panel {
71
- inset-inline-start: 0;
39
+ :host([side='left']) .drawer {
40
+ inset-inline: 0 auto;
72
41
  translate: -100% 0;
73
42
  }
74
43
 
75
- .drawer[open] .panel {
44
+ .drawer[open] {
76
45
  translate: 0 0;
77
46
  }
78
47
 
79
- :host([side='right']) .drawer[open] .panel,
80
- :host(:not([side])) .drawer[open] .panel {
81
- animation: bds-drawer-slide-right var(--bds-animation_transition-duration) var(--bds-animation_easing) both;
48
+ @starting-style {
49
+ .drawer[open] {
50
+ translate: 100% 0;
51
+ }
52
+
53
+ :host([side='left']) .drawer[open] {
54
+ translate: -100% 0;
55
+ }
82
56
  }
83
57
 
84
- :host([side='left']) .drawer[open] .panel {
85
- animation: bds-drawer-slide-left var(--bds-animation_transition-duration) var(--bds-animation_easing) both;
58
+ .drawer::backdrop {
59
+ background-color: var(--color_backdrop, rgb(0 0 0 / 50%));
60
+ backdrop-filter: blur(3px);
61
+ opacity: 0;
62
+ transition:
63
+ opacity var(--bds-animation_transition-duration) var(--bds-animation_easing),
64
+ display var(--bds-animation_transition-duration) allow-discrete,
65
+ overlay var(--bds-animation_transition-duration) allow-discrete;
86
66
  }
87
67
 
88
- @keyframes bds-drawer-slide-right {
89
- from { translate: 100% 0; }
90
- to { translate: 0 0; }
68
+ .drawer[open]::backdrop {
69
+ opacity: 1;
91
70
  }
92
71
 
93
- @keyframes bds-drawer-slide-left {
94
- from { translate: -100% 0; }
95
- to { translate: 0 0; }
72
+ @starting-style {
73
+ .drawer[open]::backdrop {
74
+ opacity: 0;
75
+ }
96
76
  }
97
77
 
98
78
  .header {
@@ -147,16 +127,9 @@ var BdsDrawer = class extends i2 {
147
127
 
148
128
  @media (prefers-reduced-motion: reduce) {
149
129
  .drawer,
150
- .drawer::backdrop,
151
- .panel {
130
+ .drawer::backdrop {
152
131
  transition: none;
153
132
  }
154
-
155
- :host([side='right']) .drawer[open] .panel,
156
- :host(:not([side])) .drawer[open] .panel,
157
- :host([side='left']) .drawer[open] .panel {
158
- animation: none;
159
- }
160
133
  }
161
134
  `;
162
135
  static properties = {
@@ -214,7 +187,11 @@ var BdsDrawer = class extends i2 {
214
187
  this.dispatchEvent(new CustomEvent("bds-close", { bubbles: true, composed: true }));
215
188
  }
216
189
  _handleBackdropClick(e) {
217
- if (e.target === this._dialog) this._closeDrawer();
190
+ const dialog = this._dialog;
191
+ if (!dialog) return;
192
+ const rect = dialog.getBoundingClientRect();
193
+ const outside = e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom;
194
+ if (outside) this._closeDrawer();
218
195
  }
219
196
  _handleCancel(e) {
220
197
  e.preventDefault();
@@ -249,23 +226,21 @@ var BdsDrawer = class extends i2 {
249
226
  @cancel=${this._handleCancel}
250
227
  @keydown=${this._handleKeydown}
251
228
  >
252
- <div class="panel">
253
- <div class="header">
254
- <span class="title"><slot name="title"></slot></span>
255
- <button
256
- type="button"
257
- class="close-button"
258
- aria-label="Close drawer"
259
- @click=${this._closeDrawer}
260
- >
261
- <svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
262
- <path stroke-linecap="round" stroke-linejoin="round" d="M18 6L6 18M6 6l12 12" />
263
- </svg>
264
- </button>
265
- </div>
266
- <div class="body">
267
- <slot></slot>
268
- </div>
229
+ <div class="header">
230
+ <span class="title"><slot name="title"></slot></span>
231
+ <button
232
+ type="button"
233
+ class="close-button"
234
+ aria-label="Close drawer"
235
+ @click=${this._closeDrawer}
236
+ >
237
+ <svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
238
+ <path stroke-linecap="round" stroke-linejoin="round" d="M18 6L6 18M6 6l12 12" />
239
+ </svg>
240
+ </button>
241
+ </div>
242
+ <div class="body">
243
+ <slot></slot>
269
244
  </div>
270
245
  </dialog>
271
246
  `;