@brandsync/wc 1.7.0 → 1.9.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 (345) hide show
  1. package/custom-elements.json +340 -24
  2. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  3. package/dist/brandsync-wc/{p-fde5e9f1.entry.js → p-051d3064.entry.js} +1 -1
  4. package/dist/brandsync-wc/{p-f243683f.entry.js → p-05c7de28.entry.js} +1 -1
  5. package/dist/brandsync-wc/{p-2d6955d6.entry.js → p-062cfa34.entry.js} +1 -1
  6. package/dist/brandsync-wc/p-0e39b9cc.entry.js +1 -0
  7. package/dist/brandsync-wc/p-0eed6813.entry.js +1 -0
  8. package/dist/brandsync-wc/{p-d25b7b74.entry.js → p-107b1c5d.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-538cc08e.entry.js → p-114d2fd8.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-6754dfa9.entry.js → p-1c0db4d6.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-4a1a5d6e.entry.js → p-1f7208cb.entry.js} +1 -1
  12. package/dist/brandsync-wc/p-2181378f.entry.js +1 -0
  13. package/dist/brandsync-wc/{p-d06543a5.entry.js → p-235ae012.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-2700a63e.entry.js → p-275072dd.entry.js} +1 -1
  15. package/dist/brandsync-wc/p-27bbed83.entry.js +1 -0
  16. package/dist/brandsync-wc/p-2891d40b.entry.js +1 -0
  17. package/dist/brandsync-wc/p-29027559.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-a36a0e6a.entry.js → p-3176d1d3.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-0d86c22d.entry.js → p-33e44094.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-e427bbda.entry.js → p-360452c2.entry.js} +1 -1
  21. package/dist/brandsync-wc/p-36bf37d9.entry.js +1 -0
  22. package/dist/brandsync-wc/p-3b64e3cd.entry.js +1 -0
  23. package/dist/brandsync-wc/p-3ec74d35.entry.js +1 -0
  24. package/dist/brandsync-wc/p-4574a707.entry.js +1 -0
  25. package/dist/brandsync-wc/p-4e5dcaff.entry.js +1 -0
  26. package/dist/brandsync-wc/{p-61db6ce2.entry.js → p-61c1a2a3.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-85c70f6d.entry.js → p-6331de9c.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-9c1be2a0.entry.js → p-6bf2f116.entry.js} +1 -1
  29. package/dist/brandsync-wc/p-6fd7dd6a.entry.js +1 -0
  30. package/dist/brandsync-wc/{p-c3a28a89.entry.js → p-70f64b25.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-06e9b45d.entry.js → p-7b00dd36.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-13e4966c.entry.js → p-7c94e6ae.entry.js} +1 -1
  33. package/dist/brandsync-wc/p-835a8dc7.entry.js +1 -0
  34. package/dist/brandsync-wc/{p-77433277.entry.js → p-8ee0153b.entry.js} +1 -1
  35. package/dist/brandsync-wc/{p-e1069ba9.entry.js → p-9f65f998.entry.js} +1 -1
  36. package/dist/brandsync-wc/p-9f6fe37d.entry.js +1 -0
  37. package/dist/brandsync-wc/{p-b2dc9886.entry.js → p-9f8852a0.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-DuyFft7h.js → p-AgoOSYvW.js} +2 -2
  39. package/dist/brandsync-wc/{p-fba01c96.entry.js → p-a09e157f.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-55e6438c.entry.js → p-a0d5a620.entry.js} +1 -1
  41. package/dist/brandsync-wc/{p-8b2ab522.entry.js → p-a5feaad4.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-cbaa19ab.entry.js → p-a92eec48.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-3eab22a5.entry.js → p-ae978c9a.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-f2ce9a1f.entry.js → p-bbcc47b0.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-80cf96ff.entry.js → p-be2c1740.entry.js} +1 -1
  46. package/dist/brandsync-wc/p-c10d2529.entry.js +1 -0
  47. package/dist/brandsync-wc/{p-819a3dae.entry.js → p-c3f72584.entry.js} +1 -1
  48. package/dist/brandsync-wc/{p-8b57f606.entry.js → p-c4de155c.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-c197cc95.entry.js → p-cfcf3f0a.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-f8f03334.entry.js → p-de7c946d.entry.js} +1 -1
  51. package/dist/brandsync-wc/{p-600b5434.entry.js → p-e9b43754.entry.js} +1 -1
  52. package/dist/brandsync-wc/{p-4bff9b4b.entry.js → p-f006d962.entry.js} +1 -1
  53. package/dist/brandsync-wc/p-f074f94e.entry.js +1 -0
  54. package/dist/brandsync-wc/{p-7ed5670e.entry.js → p-f7d47c17.entry.js} +1 -1
  55. package/dist/brandsync-wc/p-fc240aa0.entry.js +1 -0
  56. package/dist/brandsync-wc/{p-f518f486.entry.js → p-fc58c663.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-be14f99f.entry.js → p-fddc7bd1.entry.js} +1 -1
  58. package/dist/cjs/brandsync-wc.cjs.js +2 -2
  59. package/dist/cjs/bs-accordion.cjs.entry.js +2 -2
  60. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  61. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  62. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  63. package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
  64. package/dist/cjs/bs-attachment.cjs.entry.js +2 -2
  65. package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
  66. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  67. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +15 -3
  68. package/dist/cjs/bs-breadcrumb.cjs.entry.js +16 -2
  69. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  70. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  71. package/dist/cjs/bs-button.cjs.entry.js +23 -4
  72. package/dist/cjs/bs-card.cjs.entry.js +2 -2
  73. package/dist/cjs/bs-carousel.cjs.entry.js +1 -1
  74. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
  75. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  76. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  77. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  78. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  79. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  80. package/dist/cjs/bs-checkbox.cjs.entry.js +48 -3
  81. package/dist/cjs/bs-chip-filter.cjs.entry.js +2 -2
  82. package/dist/cjs/bs-chip-informative.cjs.entry.js +2 -2
  83. package/dist/cjs/bs-chip-input.cjs.entry.js +2 -2
  84. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  85. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  86. package/dist/cjs/bs-data-table.cjs.entry.js +20 -6
  87. package/dist/cjs/bs-dialog.cjs.entry.js +2 -2
  88. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  89. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  90. package/dist/cjs/bs-icon-button.cjs.entry.js +23 -4
  91. package/dist/cjs/bs-inline-tab.cjs.entry.js +11 -3
  92. package/dist/cjs/bs-input.cjs.entry.js +69 -5
  93. package/dist/cjs/bs-logo.cjs.entry.js +1 -1
  94. package/dist/cjs/bs-menu-item.cjs.entry.js +1 -1
  95. package/dist/cjs/bs-menu.cjs.entry.js +25 -3
  96. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +2 -2
  97. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +119 -6
  98. package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
  99. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-progress-linear.cjs.entry.js +1 -1
  101. package/dist/cjs/bs-progress.cjs.entry.js +8 -3
  102. package/dist/cjs/bs-radio.cjs.entry.js +81 -12
  103. package/dist/cjs/bs-slider.cjs.entry.js +54 -2
  104. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  105. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  106. package/dist/cjs/bs-stepper-step.cjs.entry.js +2 -2
  107. package/dist/cjs/bs-stepper.cjs.entry.js +3 -2
  108. package/dist/cjs/bs-switch.cjs.entry.js +36 -3
  109. package/dist/cjs/bs-tab.cjs.entry.js +11 -3
  110. package/dist/cjs/bs-tabs.cjs.entry.js +97 -3
  111. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  112. package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
  113. package/dist/cjs/{index-D7e6DfLV.js → index-kk9YXF2S.js} +43 -5
  114. package/dist/cjs/loader.cjs.js +2 -2
  115. package/dist/collection/components/bs-a11y.cmp.test.js +54 -0
  116. package/dist/collection/components/bs-accordion/bs-accordion.css +5 -5
  117. package/dist/collection/components/bs-attachment/bs-attachment.css +1 -1
  118. package/dist/collection/components/bs-attachment-list/bs-attachment-list.css +1 -1
  119. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.cmp.test.js +63 -0
  120. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +32 -1
  121. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.cmp.test.js +45 -0
  122. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.css +1 -1
  123. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +30 -1
  124. package/dist/collection/components/bs-button/bs-button/bs-button.css +17 -10
  125. package/dist/collection/components/bs-button/bs-button/bs-button.js +16 -3
  126. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +20 -0
  127. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +21 -4
  128. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +18 -4
  129. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.stories.js +10 -0
  130. package/dist/collection/components/bs-card/bs-card.css +4 -0
  131. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.css +1 -1
  132. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.css +3 -3
  133. package/dist/collection/components/bs-checkbox/bs-checkbox.css +8 -1
  134. package/dist/collection/components/bs-checkbox/bs-checkbox.js +100 -2
  135. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.css +4 -4
  136. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.css +4 -4
  137. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.css +5 -5
  138. package/dist/collection/components/bs-data-table/bs-data-table.cmp.test.js +19 -0
  139. package/dist/collection/components/bs-data-table/bs-data-table.css +1 -1
  140. package/dist/collection/components/bs-data-table/bs-data-table.js +19 -5
  141. package/dist/collection/components/bs-data-table/bs-data-table.stories.js +8 -1
  142. package/dist/collection/components/bs-dialog/bs-dialog.css +5 -1
  143. package/dist/collection/components/bs-form-association.cmp.test.js +172 -0
  144. package/dist/collection/components/bs-input/bs-input.css +10 -4
  145. package/dist/collection/components/bs-input/bs-input.js +82 -4
  146. package/dist/collection/components/bs-keyboard-nav.cmp.test.js +100 -0
  147. package/dist/collection/components/bs-logo/bs-logo.cmp.test.js +52 -3
  148. package/dist/collection/components/bs-menu/bs-menu.css +4 -0
  149. package/dist/collection/components/bs-menu/bs-menu.js +33 -1
  150. package/dist/collection/components/bs-menu/bs-menu.stories.js +54 -0
  151. package/dist/collection/components/bs-progress/bs-progress.js +27 -2
  152. package/dist/collection/components/bs-radio/bs-radio.cmp.test.js +4 -10
  153. package/dist/collection/components/bs-radio/bs-radio.css +7 -1
  154. package/dist/collection/components/bs-radio/bs-radio.js +92 -14
  155. package/dist/collection/components/bs-radio/bs-radio.stories.js +1 -10
  156. package/dist/collection/components/bs-slider/bs-slider.js +68 -2
  157. package/dist/collection/components/bs-source-link/bs-source-link.css +2 -2
  158. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +3 -2
  159. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.css +3 -3
  160. package/dist/collection/components/bs-switch/bs-switch.css +10 -1
  161. package/dist/collection/components/bs-switch/bs-switch.js +69 -2
  162. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +2 -2
  163. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +47 -1
  164. package/dist/collection/components/bs-tab/bs-tab/bs-tab.css +2 -2
  165. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +47 -1
  166. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.cmp.test.js +88 -0
  167. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +139 -2
  168. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.stories.js +24 -0
  169. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  170. package/dist/collection/components/forms/forms.stories.js +63 -0
  171. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.js +173 -5
  172. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.css +106 -34
  173. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +181 -5
  174. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.js +48 -0
  175. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  176. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +68 -0
  177. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +31 -17
  178. package/dist/components/bs-accordion.js +1 -1
  179. package/dist/components/bs-ai-disclaimer.js +1 -1
  180. package/dist/components/bs-ai-greeting.js +1 -1
  181. package/dist/components/bs-ai-thinking.js +1 -1
  182. package/dist/components/bs-attachment-list.js +1 -1
  183. package/dist/components/bs-attachment.js +1 -1
  184. package/dist/components/bs-avatar.js +1 -1
  185. package/dist/components/bs-badge.js +1 -1
  186. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  187. package/dist/components/bs-breadcrumb.js +1 -1
  188. package/dist/components/bs-breadcrumbs.js +1 -1
  189. package/dist/components/bs-button-skeleton.js +1 -1
  190. package/dist/components/bs-button.js +1 -1
  191. package/dist/components/bs-card.js +1 -1
  192. package/dist/components/bs-carousel.js +1 -1
  193. package/dist/components/bs-chatbot-feedback.js +1 -1
  194. package/dist/components/bs-chatbot-header.js +1 -1
  195. package/dist/components/bs-chatbot-response-action.js +1 -1
  196. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  197. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  198. package/dist/components/bs-checkbox-skeleton.js +1 -1
  199. package/dist/components/bs-checkbox.js +1 -1
  200. package/dist/components/bs-chip-filter.js +1 -1
  201. package/dist/components/bs-chip-informative.js +1 -1
  202. package/dist/components/bs-chip-input.js +1 -1
  203. package/dist/components/bs-composer-status-banner.js +1 -1
  204. package/dist/components/bs-composer.js +1 -1
  205. package/dist/components/bs-data-table.js +1 -1
  206. package/dist/components/bs-dialog.js +1 -1
  207. package/dist/components/bs-file-upload-item.js +1 -1
  208. package/dist/components/bs-file-upload.js +1 -1
  209. package/dist/components/bs-icon-button.js +1 -1
  210. package/dist/components/bs-inline-tab.js +1 -1
  211. package/dist/components/bs-input.js +1 -1
  212. package/dist/components/bs-logo.js +1 -1
  213. package/dist/components/bs-menu-item.js +1 -1
  214. package/dist/components/bs-menu.js +1 -1
  215. package/dist/components/bs-navigation-drawer-item.js +1 -1
  216. package/dist/components/bs-navigation-drawer.js +1 -1
  217. package/dist/components/bs-navigation-header.js +1 -1
  218. package/dist/components/bs-pagination.js +1 -1
  219. package/dist/components/bs-progress-linear.js +1 -1
  220. package/dist/components/bs-progress.js +1 -1
  221. package/dist/components/bs-radio.js +1 -1
  222. package/dist/components/bs-slider.js +1 -1
  223. package/dist/components/bs-snackbar.js +1 -1
  224. package/dist/components/bs-source-link.js +1 -1
  225. package/dist/components/bs-stepper-step.js +1 -1
  226. package/dist/components/bs-stepper.js +1 -1
  227. package/dist/components/bs-switch.js +1 -1
  228. package/dist/components/bs-tab.js +1 -1
  229. package/dist/components/bs-tabs.js +1 -1
  230. package/dist/components/bs-toast.js +1 -1
  231. package/dist/components/bs-tooltip.js +1 -1
  232. package/dist/components/index.js +1 -1
  233. package/dist/components/{p-LYvoWZt4.js → p-BA3c9Rom.js} +1 -1
  234. package/dist/components/{p-Dqt-Qp4W.js → p-BfEyD6Ku.js} +1 -1
  235. package/dist/components/p-BoeorHNv.js +1 -0
  236. package/dist/components/p-Buly0d5G.js +1 -0
  237. package/dist/components/p-CpUHnsq9.js +1 -0
  238. package/dist/components/{p-BxFJ74fI.js → p-EtXc94lJ.js} +1 -1
  239. package/dist/components/{p-mnGJPH85.js → p-JYlmcxBn.js} +1 -1
  240. package/dist/components/{p-BhvV55-6.js → p-R2MlkUzD.js} +1 -1
  241. package/dist/components/{p-Dx8gAOVC.js → p-wei0Ija2.js} +1 -1
  242. package/dist/esm/brandsync-wc.js +3 -3
  243. package/dist/esm/bs-accordion.entry.js +2 -2
  244. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  245. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  246. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  247. package/dist/esm/bs-attachment-list.entry.js +2 -2
  248. package/dist/esm/bs-attachment.entry.js +2 -2
  249. package/dist/esm/bs-avatar.entry.js +1 -1
  250. package/dist/esm/bs-badge.entry.js +1 -1
  251. package/dist/esm/bs-breadcrumb-overflow.entry.js +15 -3
  252. package/dist/esm/bs-breadcrumb.entry.js +16 -2
  253. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  254. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  255. package/dist/esm/bs-button.entry.js +23 -4
  256. package/dist/esm/bs-card.entry.js +2 -2
  257. package/dist/esm/bs-carousel.entry.js +1 -1
  258. package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
  259. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  260. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  261. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  262. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  263. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  264. package/dist/esm/bs-checkbox.entry.js +48 -3
  265. package/dist/esm/bs-chip-filter.entry.js +2 -2
  266. package/dist/esm/bs-chip-informative.entry.js +2 -2
  267. package/dist/esm/bs-chip-input.entry.js +2 -2
  268. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  269. package/dist/esm/bs-composer.entry.js +1 -1
  270. package/dist/esm/bs-data-table.entry.js +20 -6
  271. package/dist/esm/bs-dialog.entry.js +2 -2
  272. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  273. package/dist/esm/bs-file-upload.entry.js +1 -1
  274. package/dist/esm/bs-icon-button.entry.js +23 -4
  275. package/dist/esm/bs-inline-tab.entry.js +11 -3
  276. package/dist/esm/bs-input.entry.js +69 -5
  277. package/dist/esm/bs-logo.entry.js +1 -1
  278. package/dist/esm/bs-menu-item.entry.js +1 -1
  279. package/dist/esm/bs-menu.entry.js +25 -3
  280. package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
  281. package/dist/esm/bs-navigation-drawer.entry.js +119 -6
  282. package/dist/esm/bs-navigation-header.entry.js +2 -2
  283. package/dist/esm/bs-pagination.entry.js +1 -1
  284. package/dist/esm/bs-progress-linear.entry.js +1 -1
  285. package/dist/esm/bs-progress.entry.js +8 -3
  286. package/dist/esm/bs-radio.entry.js +81 -12
  287. package/dist/esm/bs-slider.entry.js +54 -2
  288. package/dist/esm/bs-snackbar.entry.js +1 -1
  289. package/dist/esm/bs-source-link.entry.js +2 -2
  290. package/dist/esm/bs-stepper-step.entry.js +2 -2
  291. package/dist/esm/bs-stepper.entry.js +3 -2
  292. package/dist/esm/bs-switch.entry.js +36 -3
  293. package/dist/esm/bs-tab.entry.js +11 -3
  294. package/dist/esm/bs-tabs.entry.js +97 -3
  295. package/dist/esm/bs-toast.entry.js +1 -1
  296. package/dist/esm/bs-tooltip.entry.js +2 -2
  297. package/dist/esm/{index-DuyFft7h.js → index-AgoOSYvW.js} +43 -5
  298. package/dist/esm/loader.js +3 -3
  299. package/dist/types/components/bs-a11y.cmp.test.d.ts +1 -0
  300. package/dist/types/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.d.ts +10 -0
  301. package/dist/types/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.d.ts +8 -0
  302. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +4 -1
  303. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +6 -2
  304. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.stories.d.ts +1 -0
  305. package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +12 -0
  306. package/dist/types/components/bs-data-table/bs-data-table.d.ts +16 -2
  307. package/dist/types/components/bs-form-association.cmp.test.d.ts +1 -0
  308. package/dist/types/components/bs-input/bs-input.d.ts +12 -0
  309. package/dist/types/components/bs-keyboard-nav.cmp.test.d.ts +1 -0
  310. package/dist/types/components/bs-menu/bs-menu.d.ts +4 -0
  311. package/dist/types/components/bs-menu/bs-menu.stories.d.ts +1 -0
  312. package/dist/types/components/bs-progress/bs-progress.d.ts +5 -0
  313. package/dist/types/components/bs-radio/bs-radio.d.ts +23 -9
  314. package/dist/types/components/bs-slider/bs-slider.d.ts +9 -0
  315. package/dist/types/components/bs-switch/bs-switch.d.ts +10 -0
  316. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +8 -0
  317. package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +8 -0
  318. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.d.ts +24 -0
  319. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.stories.d.ts +1 -0
  320. package/dist/types/components/forms/forms.stories.d.ts +6 -0
  321. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.d.ts +50 -1
  322. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.d.ts +2 -0
  323. package/dist/types/components.d.ts +271 -9
  324. package/package.json +1 -1
  325. package/readme.md +14 -0
  326. package/dist/brandsync-wc/p-18021c05.entry.js +0 -1
  327. package/dist/brandsync-wc/p-1c8160c2.entry.js +0 -1
  328. package/dist/brandsync-wc/p-21c14465.entry.js +0 -1
  329. package/dist/brandsync-wc/p-27100489.entry.js +0 -1
  330. package/dist/brandsync-wc/p-309f920e.entry.js +0 -1
  331. package/dist/brandsync-wc/p-30d6a6d0.entry.js +0 -1
  332. package/dist/brandsync-wc/p-387ed85f.entry.js +0 -1
  333. package/dist/brandsync-wc/p-4b0938a5.entry.js +0 -1
  334. package/dist/brandsync-wc/p-5312b6a5.entry.js +0 -1
  335. package/dist/brandsync-wc/p-70e035ed.entry.js +0 -1
  336. package/dist/brandsync-wc/p-777a9dbf.entry.js +0 -1
  337. package/dist/brandsync-wc/p-a96856fd.entry.js +0 -1
  338. package/dist/brandsync-wc/p-b0634051.entry.js +0 -1
  339. package/dist/brandsync-wc/p-bcee3d60.entry.js +0 -1
  340. package/dist/brandsync-wc/p-d03eba2b.entry.js +0 -1
  341. package/dist/brandsync-wc/p-e61efe4d.entry.js +0 -1
  342. package/dist/brandsync-wc/p-f14bda01.entry.js +0 -1
  343. package/dist/components/p-BaxFLlKS.js +0 -1
  344. package/dist/components/p-DI5GgSqL.js +0 -1
  345. package/dist/components/p-v4T0qPVn.js +0 -1
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
- const bsInputCss = () => `:host{display:block;--bs-input-radius:var(--bs-border-radius-100);--bs-input-height:var(--bs-spacing-600);--bs-input-padding-x:var(--bs-spacing-150);--bs-input-padding-y:var(--bs-spacing-100);--bs-input-gap:var(--bs-spacing-200);--bs-input-icon-size:var(--bs-spacing-300);--bs-input-stack-gap:var(--bs-spacing-50);--bs-input-error-icon-size:var(--bs-spacing-250);--bs-input-field-bg:var(--bs-input-bg-default);--bs-input-field-bg-disabled:var(--bs-input-bg-disabled);--bs-input-field-border:var(--bs-input-border-default);--bs-input-field-border-hover:var(--bs-input-border-hover);--bs-input-field-border-focus:var(--bs-input-border-focus);--bs-input-field-border-error:var(--bs-input-border-error);--bs-input-field-text:var(--bs-input-text);--bs-input-field-placeholder:var(--bs-input-placeholder);--bs-input-label-color:var(--bs-input-label);--bs-input-description-color:var(--bs-input-description);--bs-input-error-color:var(--bs-input-error);--bs-input-icon-color:var(--bs-icon-muted);--bs-input-icon-color-error:var(--bs-input-icon-error);--bs-input-icon-color-disabled:var(--bs-input-icon-disabled);--bs-input-chip-bg:var(--bs-input-bg-disabled);--bs-input-chip-text:var(--bs-input-text);--bs-input-initials-title-width:80px;--bs-input-initials-gap:var(--bs-spacing-50)}.bs-input{display:flex;flex-direction:column;gap:var(--bs-input-stack-gap);font-family:inherit}.bs-input__label{font-size:var(--bs-font-size-sm);font-weight:var(--bs-font-weight-medium);color:var(--bs-input-label-color)}.bs-input__required{color:var(--bs-input-error-color);margin-left:2px}.bs-input__field{box-sizing:border-box;display:flex;align-items:center;gap:var(--bs-input-gap);height:var(--bs-input-height);padding:var(--bs-input-padding-y) var(--bs-input-padding-x);border:1px solid var(--bs-input-field-border);border-radius:var(--bs-input-radius);background:var(--bs-input-field-bg)}.bs-input__field:hover:not(.bs-input__field--disabled){border-color:var(--bs-input-field-border-hover)}.bs-input__field:focus-within{border-color:var(--bs-input-field-border-focus)}.bs-input__field--error{border-color:var(--bs-input-field-border-error)}.bs-input__field--disabled{background:var(--bs-input-field-bg-disabled);cursor:not-allowed}.bs-input__control{flex:1;min-width:0;border:none;outline:none;padding:0;background:transparent;color:var(--bs-input-field-text);font-size:var(--bs-font-size-md);font-family:inherit}.bs-input__control::placeholder{color:var(--bs-input-field-placeholder)}.bs-input__control:disabled{color:var(--bs-input-text-disabled);cursor:not-allowed}.bs-input__control::-webkit-strong-password-auto-fill-button,.bs-input__control::-webkit-credentials-auto-fill-button{display:none !important;visibility:hidden;pointer-events:none;position:absolute;right:0}.bs-input__control::-webkit-textfield-decoration-container{visibility:hidden}.bs-input__control::-ms-reveal,.bs-input__control::-ms-clear{display:none}.bs-input--error .bs-input__label{color:var(--bs-input-label-color)}.bs-input__icon,.bs-input__end-icon{display:none;align-items:center;flex-shrink:0;color:var(--bs-input-icon-color)}.bs-input__icon--visible,.bs-input__end-icon--visible{display:flex}.bs-input__icon ::slotted(*),.bs-input__end-icon ::slotted(*){display:block;width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__field--error .bs-input__icon,.bs-input__field--error .bs-input__end-icon{color:var(--bs-input-icon-color-error)}.bs-input__field--disabled .bs-input__icon,.bs-input__field--disabled .bs-input__end-icon{color:var(--bs-input-icon-color-disabled)}.bs-input__description{font-size:var(--bs-font-size-xs);color:var(--bs-input-description-color)}.bs-input__error{display:flex;align-items:center;gap:var(--bs-input-stack-gap);font-size:var(--bs-font-size-xs);color:var(--bs-input-error-color)}.bs-input__error-icon{flex-shrink:0;width:var(--bs-input-error-icon-size);height:var(--bs-input-error-icon-size)}.bs-input__field--textarea{height:auto;align-items:flex-start}.bs-input__control--textarea{resize:vertical}.bs-input__stepper{display:flex;flex-direction:column}.bs-input__stepper-btn{display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;padding:0;cursor:pointer}.bs-input__stepper-btn:disabled{cursor:not-allowed}.bs-input__password-toggle{display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;padding:0;cursor:pointer;width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__password-toggle:disabled{cursor:not-allowed}.bs-input__password-toggle svg{width:100%;height:100%}.bs-input__chevron{width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__field-wrapper{position:relative;width:100%}.bs-input__dropdown-menu{position:absolute;top:calc(100% + var(--bs-input-stack-gap));left:0;right:0;z-index:1}.bs-input__calendar{width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__search-icon{width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__field--chip{flex-wrap:wrap;height:auto;min-height:var(--bs-input-height)}.bs-input__chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--bs-spacing-100);flex:1;min-width:0}.bs-input__chip{display:inline-flex;align-items:center;gap:4px;background:var(--bs-input-chip-bg);color:var(--bs-input-chip-text);border-radius:var(--bs-input-radius);padding:2px 6px;font-size:var(--bs-font-size-sm)}.bs-input__chip-remove{border:none;background:transparent;color:inherit;cursor:pointer;padding:0;line-height:1}.bs-input__chip-input{flex:1;min-width:60px}.bs-input__country-select{flex-shrink:0;width:auto;border:none;outline:none;background:transparent;color:var(--bs-input-field-text);font-size:var(--bs-font-size-md);font-family:inherit}.bs-input__title-select,.bs-input__country-select{appearance:none;-webkit-appearance:none;-moz-appearance:none}.bs-input__title-select::-ms-expand,.bs-input__country-select::-ms-expand{display:none}.bs-input__select-chevron{flex-shrink:0;width:var(--bs-input-icon-size);height:var(--bs-input-icon-size);color:var(--bs-input-icon-color);pointer-events:none}.bs-input__field--disabled .bs-input__select-chevron{color:var(--bs-input-icon-color-disabled)}.bs-input__initials-row{display:flex;gap:var(--bs-input-initials-gap);width:100%}.bs-input__field--initials-title{flex:0 0 auto;width:var(--bs-input-initials-title-width);gap:var(--bs-spacing-50)}.bs-input__field--initials-title .bs-input__select-chevron{width:10px;height:10px}.bs-input__field--initials-value{flex:1;min-width:0}.bs-input__country-select{width:auto}.bs-input__field--pin{border:none;padding:0;background:transparent;gap:var(--bs-input-gap)}.bs-input__pin-cell{box-sizing:border-box;width:var(--bs-input-height);height:var(--bs-input-height);text-align:center;border:1px solid var(--bs-input-field-border);border-radius:var(--bs-input-radius);background:var(--bs-input-field-bg);color:var(--bs-input-field-text);font-size:var(--bs-font-size-md);font-family:inherit;outline:none}.bs-input__pin-cell:focus{border-color:var(--bs-input-field-border-focus)}.bs-input__field--pin.bs-input__field--disabled .bs-input__pin-cell{background:var(--bs-input-field-bg-disabled);cursor:not-allowed}.bs-input__field--pin.bs-input__field--error .bs-input__pin-cell{border-color:var(--bs-input-field-border-error)}`;
5
+ const bsInputCss = () => `:host{display:block;--bs-input-radius:var(--bs-border-radius-100);--bs-input-height:var(--bs-spacing-600);--bs-input-padding-x:var(--bs-spacing-150);--bs-input-padding-y:var(--bs-spacing-100);--bs-input-gap:var(--bs-spacing-200);--bs-input-icon-size:var(--bs-spacing-300);--bs-input-stack-gap:var(--bs-spacing-50);--bs-input-error-icon-size:var(--bs-spacing-250);--bs-input-field-bg:var(--bs-input-bg-default);--bs-input-field-bg-disabled:var(--bs-input-bg-disabled);--bs-input-field-border:var(--bs-input-border-default);--bs-input-field-border-hover:var(--bs-input-border-hover);--bs-input-field-border-focus:var(--bs-input-border-focus);--bs-input-field-border-error:var(--bs-input-border-error);--bs-input-field-text:var(--bs-input-text);--bs-input-field-placeholder:var(--bs-input-placeholder);--bs-input-label-color:var(--bs-input-label);--bs-input-description-color:var(--bs-input-description);--bs-input-error-color:var(--bs-input-error);--bs-input-icon-color:var(--bs-icon-muted);--bs-input-icon-color-error:var(--bs-input-icon-error);--bs-input-icon-color-disabled:var(--bs-input-icon-disabled);--bs-input-chip-bg:var(--bs-input-bg-disabled);--bs-input-chip-text:var(--bs-input-text);--bs-input-initials-title-width:80px;--bs-input-initials-gap:var(--bs-spacing-50)}.bs-input{display:flex;flex-direction:column;gap:var(--bs-input-stack-gap);font-family:inherit}.bs-input__label{font-size:var(--bs-font-size-sm);font-weight:var(--bs-font-weight-medium);color:var(--bs-input-label-color)}.bs-input__required{color:var(--bs-input-error-color);margin-inline-start:2px}.bs-input__field{box-sizing:border-box;display:flex;align-items:center;gap:var(--bs-input-gap);height:var(--bs-input-height);padding:var(--bs-input-padding-y) var(--bs-input-padding-x);border:1px solid var(--bs-input-field-border);border-radius:var(--bs-input-radius);background:var(--bs-input-field-bg)}.bs-input__field:hover:not(.bs-input__field--disabled){border-color:var(--bs-input-field-border-hover)}.bs-input__field:focus-within{border-color:var(--bs-input-field-border-focus)}.bs-input__field--error{border-color:var(--bs-input-field-border-error)}.bs-input__field--disabled{background:var(--bs-input-field-bg-disabled);cursor:not-allowed}.bs-input__control{flex:1;min-width:0;border:none;outline:none;padding:0;background:transparent;color:var(--bs-input-field-text);font-size:var(--bs-font-size-md);font-family:inherit}.bs-input__control::placeholder{color:var(--bs-input-field-placeholder)}.bs-input__control:disabled{color:var(--bs-input-text-disabled);cursor:not-allowed}.bs-input__control::-webkit-strong-password-auto-fill-button,.bs-input__control::-webkit-credentials-auto-fill-button{display:none !important;visibility:hidden;pointer-events:none;position:absolute;inset-inline-end:0}.bs-input__control::-webkit-textfield-decoration-container{visibility:hidden}.bs-input__control::-ms-reveal,.bs-input__control::-ms-clear{display:none}.bs-input--error .bs-input__label{color:var(--bs-input-label-color)}.bs-input__icon,.bs-input__end-icon{display:none;align-items:center;flex-shrink:0;color:var(--bs-input-icon-color)}.bs-input__icon--visible,.bs-input__end-icon--visible{display:flex}.bs-input__icon ::slotted(*),.bs-input__end-icon ::slotted(*){display:block;width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__field--error .bs-input__icon,.bs-input__field--error .bs-input__end-icon{color:var(--bs-input-icon-color-error)}.bs-input__field--disabled .bs-input__icon,.bs-input__field--disabled .bs-input__end-icon{color:var(--bs-input-icon-color-disabled)}.bs-input__description{font-size:var(--bs-font-size-xs);color:var(--bs-input-description-color)}.bs-input__error{display:flex;align-items:center;gap:var(--bs-input-stack-gap);font-size:var(--bs-font-size-xs);color:var(--bs-input-error-color)}.bs-input__error-icon{flex-shrink:0;width:var(--bs-input-error-icon-size);height:var(--bs-input-error-icon-size)}.bs-input__field--textarea{height:auto;align-items:flex-start}.bs-input__control--textarea{resize:vertical}.bs-input__stepper{display:flex;flex-direction:column}.bs-input__stepper-btn{display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;padding:0;cursor:pointer}.bs-input__stepper-btn:disabled{cursor:not-allowed}.bs-input__password-toggle{display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;padding:0;cursor:pointer;width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__password-toggle:disabled{cursor:not-allowed}.bs-input__password-toggle svg{width:100%;height:100%}.bs-input__chevron{width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__field-wrapper{position:relative;width:100%}.bs-input__dropdown-menu{position:absolute;top:calc(100% + var(--bs-input-stack-gap));inset-inline-start:0;inset-inline-end:0;z-index:1}.bs-input__calendar{width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__search-icon{width:var(--bs-input-icon-size);height:var(--bs-input-icon-size)}.bs-input__field--chip{flex-wrap:wrap;height:auto;min-height:var(--bs-input-height)}.bs-input__chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--bs-spacing-100);flex:1;min-width:0}.bs-input__chip{display:inline-flex;align-items:center;gap:4px;background:var(--bs-input-chip-bg);color:var(--bs-input-chip-text);border-radius:var(--bs-input-radius);padding:2px 6px;font-size:var(--bs-font-size-sm)}.bs-input__chip-remove{border:none;background:transparent;color:inherit;cursor:pointer;padding:0;line-height:1}.bs-input__chip-input{flex:1;min-width:60px}.bs-input__country-select{flex-shrink:0;width:auto;border:none;outline:none;background:transparent;color:var(--bs-input-field-text);font-size:var(--bs-font-size-md);font-family:inherit}.bs-input__title-select,.bs-input__country-select{appearance:none;-webkit-appearance:none;-moz-appearance:none}.bs-input__title-select::-ms-expand,.bs-input__country-select::-ms-expand{display:none}.bs-input__select-chevron{flex-shrink:0;width:var(--bs-input-icon-size);height:var(--bs-input-icon-size);color:var(--bs-input-icon-color);pointer-events:none}.bs-input__field--disabled .bs-input__select-chevron{color:var(--bs-input-icon-color-disabled)}.bs-input__initials-row{display:flex;gap:var(--bs-input-initials-gap);width:100%}.bs-input__field--initials-title{flex:0 0 auto;width:var(--bs-input-initials-title-width);gap:var(--bs-spacing-50)}.bs-input__field--initials-title .bs-input__select-chevron{width:10px;height:10px}.bs-input__field--initials-value{flex:1;min-width:0}.bs-input__country-select{width:auto}.bs-input__field--pin{border:none;padding:0;background:transparent;gap:var(--bs-input-gap)}.bs-input__pin-cell{box-sizing:border-box;width:var(--bs-input-height);height:var(--bs-input-height);text-align:center;border:1px solid var(--bs-input-field-border);border-radius:var(--bs-input-radius);background:var(--bs-input-field-bg);color:var(--bs-input-field-text);font-size:var(--bs-font-size-md);font-family:inherit;outline:none}.bs-input__pin-cell:focus{border-color:var(--bs-input-field-border-focus)}.bs-input__field--pin.bs-input__field--disabled .bs-input__pin-cell{background:var(--bs-input-field-bg-disabled);cursor:not-allowed}.bs-input__field--pin.bs-input__field--error .bs-input__pin-cell{border-color:var(--bs-input-field-border-error)}@media (forced-colors: active){.bs-input__control{border:1px solid FieldText}.bs-input__control:focus-visible{outline:2px solid Highlight;outline-offset:2px}}`;
6
6
 
7
7
  const BsInput = class {
8
8
  constructor(hostRef) {
@@ -14,8 +14,19 @@ const BsInput = class {
14
14
  this.bsChipRemove = index.createEvent(this, "bsChipRemove");
15
15
  this.bsTitleChange = index.createEvent(this, "bsTitleChange");
16
16
  this.bsCountryChange = index.createEvent(this, "bsCountryChange");
17
+ if (hostRef.$hostElement$["s-ei"]) {
18
+ this.internals = hostRef.$hostElement$["s-ei"];
19
+ }
20
+ else {
21
+ this.internals = hostRef.$hostElement$.attachInternals();
22
+ hostRef.$hostElement$["s-ei"] = this.internals;
23
+ }
17
24
  }
18
25
  get el() { return index.getElement(this); }
26
+ internals;
27
+ initialValue = '';
28
+ /** The `name` the value is submitted under in a surrounding `<form>`'s `FormData`. */
29
+ name;
19
30
  /** Current value. Native `input`/`change` events don't cross the Shadow DOM boundary, so this
20
31
  * component re-dispatches them as `bsInput`/`bsChange` custom events instead. Mutable so the
21
32
  * `number` type's stepper buttons can update it directly. */
@@ -91,9 +102,44 @@ const BsInput = class {
91
102
  * children, before first render -- see `bs-button`'s `componentWillLoad` for why `slotchange`
92
103
  * alone isn't enough for a slot that starts (and stays) empty. */
93
104
  componentWillLoad() {
105
+ this.initialValue = this.value;
106
+ this.syncFormValue();
94
107
  this.hasIcon = this.hasSlottedContent('icon');
95
108
  this.hasEndIcon = this.hasSlottedContent('end-icon');
96
109
  }
110
+ onFormStateChange() {
111
+ this.syncFormValue();
112
+ }
113
+ /** Pushes the current value + validity to the surrounding form. `chip` submits one entry per
114
+ * chip under `name`; every other type submits `value` as a single string. */
115
+ syncFormValue() {
116
+ if (!this.internals?.setFormValue)
117
+ return;
118
+ if (this.type === 'chip' && this.name) {
119
+ const data = new FormData();
120
+ this.chips.forEach(c => data.append(this.name, c));
121
+ this.internals.setFormValue(data);
122
+ }
123
+ else {
124
+ this.internals.setFormValue(this.value ?? '');
125
+ }
126
+ const empty = this.type === 'chip' ? this.chips.length === 0 : !this.value;
127
+ if (this.required && empty) {
128
+ this.internals.setValidity({ valueMissing: true }, 'Please fill out this field.');
129
+ }
130
+ else {
131
+ this.internals.setValidity({});
132
+ }
133
+ }
134
+ /** Called by the browser when the surrounding `<form>` is reset. */
135
+ formResetCallback() {
136
+ this.value = this.initialValue;
137
+ }
138
+ /** Called when the browser restores form state (back/forward navigation, autofill). */
139
+ formStateRestoreCallback(state) {
140
+ if (typeof state === 'string')
141
+ this.value = state;
142
+ }
97
143
  hasSlottedContent(slotName) {
98
144
  return Array.from(this.el.childNodes).some(node => node.nodeType === Node.ELEMENT_NODE && node.getAttribute('slot') === slotName);
99
145
  }
@@ -105,10 +151,12 @@ const BsInput = class {
105
151
  };
106
152
  onInput = (ev) => {
107
153
  const value = ev.target.value;
154
+ this.value = value;
108
155
  this.bsInput.emit(value);
109
156
  };
110
157
  onChange = (ev) => {
111
158
  const value = ev.target.value;
159
+ this.value = value;
112
160
  this.bsChange.emit(value);
113
161
  };
114
162
  clampNumber(n) {
@@ -203,7 +251,8 @@ const BsInput = class {
203
251
  if (value && index < this.length - 1) {
204
252
  this.pinInputs[index + 1]?.focus();
205
253
  }
206
- this.bsChange.emit(this.pinInputs.map(i => i?.value ?? '').join(''));
254
+ this.value = this.pinInputs.map(i => i?.value ?? '').join('');
255
+ this.bsChange.emit(this.value);
207
256
  };
208
257
  onPinKeydown = (index) => (ev) => {
209
258
  if (ev.key === 'Backspace' && !ev.target.value && index > 0) {
@@ -308,12 +357,27 @@ const BsInput = class {
308
357
  return (index.h("div", { part: "field", class: `bs-input__field bs-input__field--pin ${errorClass} ${disabledClass}` }, Array.from({ length: this.length }).map((_, i) => (index.h("input", { id: i === 0 ? 'control' : undefined, ref: el => (this.pinInputs[i] = el), part: "control", class: "bs-input__pin-cell", type: "text", inputMode: "numeric", maxLength: 1, value: this.value[i] ?? '', disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, onInput: this.onPinInput(i), onKeyDown: this.onPinKeydown(i) })))));
309
358
  }
310
359
  render() {
311
- return (index.h("div", { key: 'd65ab3191cd18c77385ffbb8b827e6161dafceaf', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
360
+ return (index.h("div", { key: '1149cfe8eaa6085007a8d9a963b6c909bb6cda13', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
312
361
  // "control" is a fixed id, not a generated one -- safe because Shadow DOM scopes ids
313
362
  // to this instance's own shadow root, so it can never collide with another bs-input.
314
- index.h("label", { key: '762c10bb8afcd1f0609ba75b0d6d8162c483b5b5', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label, this.required && (index.h("span", { key: '9a74743816c07b81b4db39616cee80ef69d60ca1', part: "required", class: "bs-input__required", "aria-hidden": "true" }, "*")))), this.type === 'pin' ? this.renderPinField() : this.type === 'initials' ? this.renderInitialsField() : this.renderField(), this.error ? (index.h("span", { id: "description-or-error", part: "error", class: "bs-input__error" }, index.h("svg", { part: "error-icon", class: "bs-input__error-icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, index.h("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", "stroke-width": "1.2" }), index.h("path", { d: "M8 5V8.5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round" }), index.h("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })), this.error)) : this.description ? (index.h("span", { id: "description-or-error", part: "description", class: "bs-input__description" }, this.description)) : null));
363
+ index.h("label", { key: 'd737018c1e1ebcde529710d8ea58c6bed76f2abf', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label, this.required && (index.h("span", { key: '5993b19cbfcb8725550c1292c00795c8463e554c', part: "required", class: "bs-input__required", "aria-hidden": "true" }, "*")))), this.type === 'pin' ? this.renderPinField() : this.type === 'initials' ? this.renderInitialsField() : this.renderField(), this.error ? (index.h("span", { id: "description-or-error", part: "error", class: "bs-input__error" }, index.h("svg", { part: "error-icon", class: "bs-input__error-icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, index.h("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", "stroke-width": "1.2" }), index.h("path", { d: "M8 5V8.5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round" }), index.h("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })), this.error)) : this.description ? (index.h("span", { id: "description-or-error", part: "description", class: "bs-input__description" }, this.description)) : null));
315
364
  }
316
365
  static get delegatesFocus() { return true; }
366
+ static get formAssociated() { return true; }
367
+ static get watchers() { return {
368
+ "value": [{
369
+ "onFormStateChange": 0
370
+ }],
371
+ "type": [{
372
+ "onFormStateChange": 0
373
+ }],
374
+ "chips": [{
375
+ "onFormStateChange": 0
376
+ }],
377
+ "required": [{
378
+ "onFormStateChange": 0
379
+ }]
380
+ }; }
317
381
  };
318
382
  BsInput.style = bsInputCss();
319
383
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
5
  // BrandSync brand mark (icon + "EG BrandSync" wordmark) on a light background, exported directly
6
6
  // from Figma's "Logo" component set (node 10909:30421, Device=Desktop, Background=Light) and
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
5
  const bsMenuItemCss = () => `:host{display:block;--bs-menu-item-radius:var(--bs-border-radius-100);--bs-menu-item-padding-y:var(--bs-spacing-100);--bs-menu-item-padding-x:var(--bs-spacing-150);--bs-menu-item-gap:var(--bs-spacing-100);--bs-menu-item-hover:var(--bs-color-neutral-container-hover);--bs-menu-item-pressed:var(--bs-color-neutral-container-pressed);--bs-menu-item-disabled-bg:var(--bs-surface-action-disabled);--bs-menu-item-icon-color:var(--bs-icon-default);--bs-menu-item-icon-color-disabled:var(--bs-icon-disabled);--bs-menu-item-color:var(--bs-text-muted);--bs-menu-item-color-disabled:var(--bs-text-on-disabled);--bs-menu-item-font-size:var(--bs-font-size-md);--bs-menu-item-line-height:var(--bs-line-height-body-md)}.bs-menu-item{box-sizing:border-box;display:flex;align-items:center;width:100%;height:48px;border:none;cursor:pointer;background:transparent;color:var(--bs-menu-item-color);font-family:inherit;border-radius:var(--bs-menu-item-radius);padding:var(--bs-menu-item-padding-y) var(--bs-menu-item-padding-x);gap:var(--bs-menu-item-gap);transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-menu-item:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-menu-item:hover{background:var(--bs-menu-item-hover)}.bs-menu-item:active{background:var(--bs-menu-item-pressed)}.bs-menu-item--disabled{background:var(--bs-menu-item-disabled-bg);color:var(--bs-menu-item-color-disabled);cursor:not-allowed}.bs-menu-item--disabled:hover,.bs-menu-item--disabled:active{background:var(--bs-menu-item-disabled-bg)}.bs-menu-item--disabled .bs-menu-item__icon{color:var(--bs-menu-item-icon-color-disabled)}.bs-menu-item__icon{display:none;width:24px;height:24px;flex-shrink:0;color:var(--bs-menu-item-icon-color)}.bs-menu-item__icon--has-content{display:inline-flex;align-items:center;justify-content:center}.bs-menu-item__icon ::slotted(svg){width:24px;height:24px}.bs-menu-item__label{font-size:var(--bs-menu-item-font-size);line-height:calc(var(--bs-menu-item-line-height) * 1px);white-space:nowrap}`;
6
6
 
@@ -1,15 +1,37 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
- const bsMenuCss = () => `:host{display:block;--bs-menu-bg:var(--bs-surface-raised);--bs-menu-radius:var(--bs-border-radius-100);--bs-menu-padding-y:var(--bs-spacing-50);--bs-menu-gap:var(--bs-spacing-50);--bs-menu-shadow:var(--bs-shadow-sm)}.bs-menu{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-menu-gap);background:var(--bs-menu-bg);border-radius:var(--bs-menu-radius);padding:var(--bs-menu-padding-y) 0;box-shadow:var(--bs-menu-shadow);font-family:inherit}`;
5
+ const bsMenuCss = () => `:host{display:block;--bs-menu-bg:var(--bs-surface-raised);--bs-menu-radius:var(--bs-border-radius-100);--bs-menu-padding-y:var(--bs-spacing-50);--bs-menu-gap:var(--bs-spacing-50);--bs-menu-shadow:var(--bs-shadow-sm)}.bs-menu{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-menu-gap);background:var(--bs-menu-bg);border-radius:var(--bs-menu-radius);padding:var(--bs-menu-padding-y) 0;box-shadow:var(--bs-menu-shadow);font-family:inherit}@media (forced-colors: active){.bs-menu{border:1px solid CanvasText}}`;
6
6
 
7
7
  const BsMenu = class {
8
8
  constructor(hostRef) {
9
9
  index.registerInstance(this, hostRef);
10
10
  }
11
+ get el() { return index.getElement(this); }
12
+ /** WAI-ARIA menu pattern: Up/Down move focus between enabled items (wrapping), Home/End jump
13
+ * to the first/last. Items are the slotted `bs-menu-item` children. */
14
+ onKeyDown(ev) {
15
+ if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(ev.key))
16
+ return;
17
+ const items = Array.from(this.el.querySelectorAll('bs-menu-item')).filter(i => !i.disabled);
18
+ if (items.length === 0)
19
+ return;
20
+ const current = items.findIndex(i => i === ev.target || i.contains(ev.target));
21
+ ev.preventDefault();
22
+ let next;
23
+ if (ev.key === 'Home')
24
+ next = 0;
25
+ else if (ev.key === 'End')
26
+ next = items.length - 1;
27
+ else if (ev.key === 'ArrowDown')
28
+ next = current === -1 ? 0 : (current + 1) % items.length;
29
+ else
30
+ next = current === -1 ? items.length - 1 : (current - 1 + items.length) % items.length;
31
+ items[next].shadowRoot?.querySelector('button')?.focus();
32
+ }
11
33
  render() {
12
- return (index.h("div", { key: '6d24ccbadf6c68bba52b6737e91c4d131fbce331', part: "list", class: "bs-menu", role: "menu" }, index.h("slot", { key: '94cc6884049a7836b3438a2fc112f0a2c7a1473a' })));
34
+ return (index.h("div", { key: '4f2995d0f53f85656de8595fb6a9909833c6369d', part: "list", class: "bs-menu", role: "menu" }, index.h("slot", { key: '0824f2a784eb4cfa28a2868f19c056570b56ba63' })));
13
35
  }
14
36
  };
15
37
  BsMenu.style = bsMenuCss();
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
5
  const bsNavigationDrawerItemCss = () => `:host{display:block;--bs-navigation-drawer-item-gap:var(--bs-spacing-100);--bs-navigation-drawer-item-radius:var(--bs-border-radius-100);--bs-navigation-drawer-item-padding-y:var(--bs-spacing-150);--bs-navigation-drawer-item-padding-x:var(--bs-spacing-100);--bs-navigation-drawer-item-padding-left-nested:var(--bs-spacing-600);--bs-navigation-drawer-item-font-weight:var(--bs-font-weight-medium);--bs-navigation-drawer-item-font-size:var(--bs-font-size-md);--bs-navigation-drawer-item-line-height:var(--bs-line-height-body-md);--bs-navigation-drawer-item-color:var(--bs-text-muted);--bs-navigation-drawer-item-color-selected:var(--bs-text-default);--bs-navigation-drawer-item-color-hover:var(--bs-text-secondary);--bs-navigation-drawer-item-bg-selected:var(--bs-surface-selected);--bs-navigation-drawer-item-bg-hover:var(--bs-surface-hover);--bs-navigation-drawer-item-bg-pressed:var(--bs-surface-pressed);--bs-navigation-drawer-item-bg-focus:var(--bs-surface-focus);--bs-navigation-drawer-item-bg-selected-hover:var(--bs-surface-selected-hover);--bs-navigation-drawer-item-bg-selected-pressed:var(--bs-surface-selected-pressed);--bs-navigation-drawer-item-bg-selected-focus:var(--bs-surface-selected-focus);--bs-navigation-drawer-item-focus-ring-color:var(--bs-border-neutral-focus);--bs-navigation-drawer-item-children-gap:var(--bs-spacing-100);--bs-navigation-drawer-item-collapsed-gap:var(--bs-spacing-100);--bs-navigation-drawer-item-collapsed-padding:var(--bs-spacing-100);--bs-navigation-drawer-item-collapsed-icon-padding-x:var(--bs-spacing-300);--bs-navigation-drawer-item-collapsed-icon-padding-y:var(--bs-spacing-50);--bs-navigation-drawer-item-collapsed-font-size:var(--bs-fontsize-caption-sm);--bs-navigation-drawer-item-collapsed-line-height:var(--bs-line-height-caption-sm)}.bs-navigation-drawer-item__root{display:contents}.bs-navigation-drawer-item{box-sizing:border-box;width:100%;display:flex;align-items:center;gap:var(--bs-navigation-drawer-item-gap);border:none;border-radius:var(--bs-navigation-drawer-item-radius);padding:var(--bs-navigation-drawer-item-padding-y) var(--bs-navigation-drawer-item-padding-x);background:transparent;color:var(--bs-navigation-drawer-item-color);font-family:inherit;font-weight:var(--bs-navigation-drawer-item-font-weight);font-size:var(--bs-navigation-drawer-item-font-size);line-height:calc(var(--bs-navigation-drawer-item-line-height) * 1px);text-align:left;cursor:pointer;transition:color var(--bs-duration-fast) var(--bs-easing-standard), background-color var(--bs-duration-fast) var(--bs-easing-standard)}:host(:not([collapsed])) .bs-navigation-drawer-item:hover:not(.bs-navigation-drawer-item--selected){background:var(--bs-navigation-drawer-item-bg-hover);color:var(--bs-navigation-drawer-item-color-hover)}:host(:not([collapsed])) .bs-navigation-drawer-item:active:not(.bs-navigation-drawer-item--selected){background:var(--bs-navigation-drawer-item-bg-pressed);color:var(--bs-navigation-drawer-item-color-hover)}:host(:not([collapsed])) .bs-navigation-drawer-item:focus-visible:not(.bs-navigation-drawer-item--selected){background:var(--bs-navigation-drawer-item-bg-focus);color:var(--bs-navigation-drawer-item-color-hover)}:host(:not([collapsed])) .bs-navigation-drawer-item--selected:hover{background:var(--bs-navigation-drawer-item-bg-selected-hover)}:host(:not([collapsed])) .bs-navigation-drawer-item--selected:active{background:var(--bs-navigation-drawer-item-bg-selected-pressed)}:host(:not([collapsed])) .bs-navigation-drawer-item--selected:focus-visible{background:var(--bs-navigation-drawer-item-bg-selected-focus)}.bs-navigation-drawer-item:focus-visible{outline:2px solid var(--bs-navigation-drawer-item-focus-ring-color);outline-offset:-2px}.bs-navigation-drawer-item--nested{padding-left:var(--bs-navigation-drawer-item-padding-left-nested)}.bs-navigation-drawer-item--selected{background:var(--bs-navigation-drawer-item-bg-selected);color:var(--bs-navigation-drawer-item-color-selected)}.bs-navigation-drawer-item--selected .bs-navigation-drawer-item__icon--has-content{color:var(--bs-navigation-drawer-item-color-selected)}:host([collapsed]) .bs-navigation-drawer-item{flex-direction:column;justify-content:center;gap:var(--bs-navigation-drawer-item-collapsed-gap);padding:var(--bs-navigation-drawer-item-collapsed-padding);background:transparent}.bs-navigation-drawer-item__icon{display:none;width:24px;height:24px;flex-shrink:0;color:inherit}.bs-navigation-drawer-item__icon--has-content{display:inline-flex;align-items:center;justify-content:center}.bs-navigation-drawer-item__icon ::slotted(svg){width:24px;height:24px}:host([collapsed]) .bs-navigation-drawer-item__icon--has-content{padding:var(--bs-navigation-drawer-item-collapsed-icon-padding-y) var(--bs-navigation-drawer-item-collapsed-icon-padding-x);border-radius:var(--bs-navigation-drawer-item-radius)}:host([collapsed][selected]) .bs-navigation-drawer-item__icon--has-content{background:var(--bs-navigation-drawer-item-bg-selected)}:host([collapsed]:not([selected])) .bs-navigation-drawer-item:hover .bs-navigation-drawer-item__icon--has-content{background:var(--bs-navigation-drawer-item-bg-hover)}:host([collapsed]:not([selected])) .bs-navigation-drawer-item:active .bs-navigation-drawer-item__icon--has-content{background:var(--bs-navigation-drawer-item-bg-pressed)}:host([collapsed]:not([selected])) .bs-navigation-drawer-item:focus-visible .bs-navigation-drawer-item__icon--has-content{background:var(--bs-navigation-drawer-item-bg-focus)}:host([collapsed][selected]) .bs-navigation-drawer-item:hover .bs-navigation-drawer-item__icon--has-content{background:var(--bs-navigation-drawer-item-bg-selected-hover)}:host([collapsed][selected]) .bs-navigation-drawer-item:active .bs-navigation-drawer-item__icon--has-content{background:var(--bs-navigation-drawer-item-bg-selected-pressed)}:host([collapsed][selected]) .bs-navigation-drawer-item:focus-visible .bs-navigation-drawer-item__icon--has-content{background:var(--bs-navigation-drawer-item-bg-selected-focus)}:host([collapsed]:not([selected])) .bs-navigation-drawer-item:hover .bs-navigation-drawer-item__label,:host([collapsed]:not([selected])) .bs-navigation-drawer-item:active .bs-navigation-drawer-item__label,:host([collapsed]:not([selected])) .bs-navigation-drawer-item:focus-visible .bs-navigation-drawer-item__label,:host([collapsed]:not([selected])) .bs-navigation-drawer-item:hover .bs-navigation-drawer-item__icon--has-content,:host([collapsed]:not([selected])) .bs-navigation-drawer-item:active .bs-navigation-drawer-item__icon--has-content,:host([collapsed]:not([selected])) .bs-navigation-drawer-item:focus-visible .bs-navigation-drawer-item__icon--has-content{color:var(--bs-navigation-drawer-item-color-hover)}.bs-navigation-drawer-item__label{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([collapsed]) .bs-navigation-drawer-item__label{flex:none;width:100%;text-align:center;font-size:var(--bs-navigation-drawer-item-collapsed-font-size);line-height:calc(var(--bs-navigation-drawer-item-collapsed-line-height) * 1px)}.bs-navigation-drawer-item__chevron{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:inherit;transition:transform var(--bs-duration-fast) var(--bs-easing-standard)}.bs-navigation-drawer-item__chevron svg{width:16px;height:16px}.bs-navigation-drawer-item__chevron--expanded{transform:rotate(180deg)}.bs-navigation-drawer-item__children{display:flex;flex-direction:column;gap:var(--bs-navigation-drawer-item-children-gap)}:host(:not([expanded])) .bs-navigation-drawer-item__children{display:none}:host([collapsed]) .bs-navigation-drawer-item__chevron,:host([collapsed]) .bs-navigation-drawer-item__children{display:none}`;
6
6
 
@@ -93,7 +93,7 @@ const BsNavigationDrawerItem = class {
93
93
  // incorrectly also toggle this parent row on every child click. Both are wrapped in a
94
94
  // `display: contents` container so render() still returns a single root node (this codebase's
95
95
  // convention, e.g. bs-input.tsx) without that wrapper affecting layout at all.
96
- return (index.h("div", { key: 'bb51c715175ff08caa34b5c2e3c5f7fecdd92059', class: "bs-navigation-drawer-item__root" }, index.h("button", { key: '799bb1bd74e830e8630c5a8bebe91ffa8e988c07', type: "button", part: "item", class: rowClasses, "aria-expanded": this.expandable ? String(this.expanded) : undefined, "aria-label": this.ariaLabel ?? undefined, onClick: this.onClick }, !this.nested && (index.h("span", { key: '78cf9b9281f94d44928b8f7e93de4ed327ca2e6e', part: "icon", class: `bs-navigation-drawer-item__icon ${this.hasIcon ? 'bs-navigation-drawer-item__icon--has-content' : ''}` }, index.h("slot", { key: '94b6037e69f7f1aa77a5abf3c726ae1f02eb55e0', name: "icon", onSlotchange: this.onIconSlotchange }))), index.h("span", { key: 'f7b355c4ef9b4a1d115083fbcb19003aee1a56a4', part: "label", class: "bs-navigation-drawer-item__label" }, index.h("slot", { key: '68ad8fb87791f5533a13eafa1348990f0acff6d4' })), this.expandable && (index.h("span", { key: 'd0f2ef997e4ee619013d63a0793008bb797b2776', part: "chevron", class: `bs-navigation-drawer-item__chevron ${this.expanded ? 'bs-navigation-drawer-item__chevron--expanded' : ''}` }, index.h(ChevronDownIcon, { key: '20286773f2ec74c370335bdcb30b36cd868c3a58' })))), this.expandable && (index.h("span", { key: 'e9b7a658742af43fcc570c33e82f28bbb87b5a05', part: "children", class: "bs-navigation-drawer-item__children" }, index.h("slot", { key: '172adb88df778a8411cbe3de3250af1917564b5d', name: "children" })))));
96
+ return (index.h("div", { key: '34d31ff7c612fa135b6dc14b757d66d4b00f99e4', class: "bs-navigation-drawer-item__root" }, index.h("button", { key: '08e244c8ada605dc7705df5b1d45ebce80165f3e', type: "button", part: "item", class: rowClasses, "aria-expanded": this.expandable ? String(this.expanded) : undefined, "aria-label": this.ariaLabel ?? undefined, onClick: this.onClick }, !this.nested && (index.h("span", { key: 'a6e09b5edb35ec8f76ed6d6a78ddd1eb141f87b6', part: "icon", class: `bs-navigation-drawer-item__icon ${this.hasIcon ? 'bs-navigation-drawer-item__icon--has-content' : ''}` }, index.h("slot", { key: '851289379dacae965639ed7963d800c8a92472c2', name: "icon", onSlotchange: this.onIconSlotchange }))), index.h("span", { key: '4b46c2ca6a5bf4d5e777ae72c9ea826ffcffea02', part: "label", class: "bs-navigation-drawer-item__label" }, index.h("slot", { key: 'df214a2bcea435a678c18d0f461d9011c767a995' })), this.expandable && (index.h("span", { key: 'd12e91043617e96567acd5497a53dd98c612c6af', part: "chevron", class: `bs-navigation-drawer-item__chevron ${this.expanded ? 'bs-navigation-drawer-item__chevron--expanded' : ''}` }, index.h(ChevronDownIcon, { key: 'c278774ae33cf86e7d1b3f70f4e99b8c7afc4d68' })))), this.expandable && (index.h("span", { key: '85081ed698d078b94225c7b984eaee1edfd22b49', part: "children", class: "bs-navigation-drawer-item__children" }, index.h("slot", { key: '85c22788467a67f18b9cca6018c179a28d06fa19', name: "children" })))));
97
97
  }
98
98
  };
99
99
  // 16x16 native viewBox (not a 24x24 icon scaled down) -- authored directly at display size, per
@@ -1,14 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
- const bsNavigationDrawerCss = () => `:host{display:block;--bs-navigation-drawer-bg:var(--bs-surface-base);--bs-navigation-drawer-border:var(--bs-border-neutral-container);--bs-navigation-drawer-padding-y:var(--bs-spacing-300);--bs-navigation-drawer-padding-left:var(--bs-spacing-300);--bs-navigation-drawer-padding-right:var(--bs-spacing-200);--bs-navigation-drawer-gap:var(--bs-spacing-300);--bs-navigation-drawer-width:280px;--bs-navigation-drawer-title-font-family:var(--bs-typography-font-family-heading);--bs-navigation-drawer-title-font-weight:var(--bs-font-weight-bold);--bs-navigation-drawer-title-font-size:var(--bs-font-size-md);--bs-navigation-drawer-title-line-height:var(--bs-line-height-heading-h6);--bs-navigation-drawer-title-color:var(--bs-text-default);--bs-navigation-drawer-collapse-size:48px;--bs-navigation-drawer-collapse-radius:var(--bs-border-radius-100);--bs-navigation-drawer-collapse-hover:var(--bs-color-neutral-container);--bs-navigation-drawer-collapse-pressed:var(--bs-color-neutral-container-pressed);--bs-navigation-drawer-collapse-icon:var(--bs-icon-default);--bs-navigation-drawer-items-gap:var(--bs-spacing-100);--bs-navigation-drawer-collapsed-width:96px;--bs-navigation-drawer-search-trigger-size:44px;--bs-navigation-drawer-search-trigger-bg:var(--bs-color-neutral-container);--bs-navigation-drawer-search-trigger-border:var(--bs-border-neutral-container);--bs-navigation-drawer-search-trigger-icon:var(--bs-icon-default)}.bs-navigation-drawer{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-navigation-drawer-gap);width:var(--bs-navigation-drawer-width);height:100%;background:var(--bs-navigation-drawer-bg);border-right:1px solid var(--bs-navigation-drawer-border);padding:var(--bs-navigation-drawer-padding-y) var(--bs-navigation-drawer-padding-right) var(--bs-navigation-drawer-padding-y) var(--bs-navigation-drawer-padding-left);font-family:inherit;transition:width var(--bs-duration-fast) var(--bs-easing-standard), padding var(--bs-duration-fast) var(--bs-easing-standard)}:host([collapsed]) .bs-navigation-drawer{width:var(--bs-navigation-drawer-collapsed-width);padding-left:0;padding-right:0;align-items:center}.bs-navigation-drawer__logo{flex-shrink:0;display:flex;align-items:center}.bs-navigation-drawer__logo--mark{display:none}:host([collapsed]) .bs-navigation-drawer__logo--full{display:none}:host([collapsed]) .bs-navigation-drawer__logo--mark{display:flex}.bs-navigation-drawer__title-row{flex-shrink:0;display:flex;align-items:center;gap:var(--bs-navigation-drawer-gap)}.bs-navigation-drawer__title{flex:1;min-width:0;font-family:var(--bs-navigation-drawer-title-font-family);font-weight:var(--bs-navigation-drawer-title-font-weight);font-size:var(--bs-navigation-drawer-title-font-size);line-height:calc(var(--bs-navigation-drawer-title-line-height) * 1px);color:var(--bs-navigation-drawer-title-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([collapsed]) .bs-navigation-drawer__title{display:none}.bs-navigation-drawer__collapse{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--bs-navigation-drawer-collapse-size);height:var(--bs-navigation-drawer-collapse-size);border:none;border-radius:var(--bs-navigation-drawer-collapse-radius);padding:0;background:transparent;color:var(--bs-navigation-drawer-collapse-icon);cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-navigation-drawer__collapse svg{width:24px;height:24px}.bs-navigation-drawer__collapse:hover{background:var(--bs-navigation-drawer-collapse-hover)}.bs-navigation-drawer__collapse:active{background:var(--bs-navigation-drawer-collapse-pressed)}.bs-navigation-drawer__collapse:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-navigation-drawer__search{flex-shrink:0;width:100%}:host([collapsed]) .bs-navigation-drawer__search{display:none}.bs-navigation-drawer__search-trigger{display:none;flex-shrink:0;align-items:center;justify-content:center;box-sizing:border-box;width:var(--bs-navigation-drawer-search-trigger-size);height:var(--bs-navigation-drawer-search-trigger-size);border:1px solid var(--bs-navigation-drawer-search-trigger-border);border-radius:var(--bs-navigation-drawer-collapse-radius);background:var(--bs-navigation-drawer-search-trigger-bg);color:var(--bs-navigation-drawer-search-trigger-icon);cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-navigation-drawer__search-trigger svg{width:24px;height:24px}.bs-navigation-drawer__search-trigger:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}:host([collapsed]) .bs-navigation-drawer__search-trigger{display:inline-flex}.bs-navigation-drawer__items{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--bs-navigation-drawer-items-gap);scrollbar-width:none}.bs-navigation-drawer__items::-webkit-scrollbar{display:none}@media (max-width: 768px){.bs-navigation-drawer{width:var(--bs-navigation-drawer-collapsed-width);padding-left:0;padding-right:0;align-items:center}.bs-navigation-drawer__logo--full{display:none}.bs-navigation-drawer__logo--mark{display:flex}.bs-navigation-drawer__title{display:none}.bs-navigation-drawer__search{display:none}.bs-navigation-drawer__search-trigger{display:inline-flex}}`;
5
+ const bsNavigationDrawerCss = () => `:host{display:block;--bs-navigation-drawer-bg:var(--bs-surface-base);--bs-navigation-drawer-border:var(--bs-border-neutral-container);--bs-navigation-drawer-padding-y:var(--bs-spacing-300);--bs-navigation-drawer-padding-left:var(--bs-spacing-300);--bs-navigation-drawer-padding-right:var(--bs-spacing-200);--bs-navigation-drawer-gap:var(--bs-spacing-300);--bs-navigation-drawer-width:280px;--bs-navigation-drawer-title-font-family:var(--bs-typography-font-family-heading);--bs-navigation-drawer-title-font-weight:var(--bs-font-weight-bold);--bs-navigation-drawer-title-font-size:var(--bs-font-size-md);--bs-navigation-drawer-title-line-height:var(--bs-line-height-heading-h6);--bs-navigation-drawer-title-color:var(--bs-text-default);--bs-navigation-drawer-collapse-size:48px;--bs-navigation-drawer-collapse-radius:var(--bs-border-radius-100);--bs-navigation-drawer-collapse-hover:var(--bs-color-neutral-container);--bs-navigation-drawer-collapse-pressed:var(--bs-color-neutral-container-pressed);--bs-navigation-drawer-collapse-icon:var(--bs-icon-default);--bs-navigation-drawer-items-gap:var(--bs-spacing-100);--bs-navigation-drawer-collapsed-width:96px;--bs-navigation-drawer-search-trigger-size:44px;--bs-navigation-drawer-search-trigger-bg:var(--bs-color-neutral-container);--bs-navigation-drawer-search-trigger-border:var(--bs-border-neutral-container);--bs-navigation-drawer-search-trigger-icon:var(--bs-icon-default);--bs-navigation-drawer-backdrop:var(--bs-surface-overlay-level-2);--bs-navigation-drawer-overlay-shadow:var(--bs-shadow-lg);--bs-navigation-drawer-overlay-z-index:var(--bs-z-index-modal);--bs-navigation-drawer-overlay-duration:var(--bs-duration-default)}.bs-navigation-drawer{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-navigation-drawer-gap);width:var(--bs-navigation-drawer-width);height:100%;background:var(--bs-navigation-drawer-bg);border-right:1px solid var(--bs-navigation-drawer-border);padding:var(--bs-navigation-drawer-padding-y) var(--bs-navigation-drawer-padding-right) var(--bs-navigation-drawer-padding-y) var(--bs-navigation-drawer-padding-left);font-family:inherit;transition:width var(--bs-duration-fast) var(--bs-easing-standard), padding var(--bs-duration-fast) var(--bs-easing-standard)}:host([collapsed]) .bs-navigation-drawer{width:var(--bs-navigation-drawer-collapsed-width);padding-left:0;padding-right:0;align-items:center}.bs-navigation-drawer__logo{flex-shrink:0;display:flex;align-items:center}.bs-navigation-drawer__logo--mark{display:none}:host([collapsed]) .bs-navigation-drawer__logo--full{display:none}:host([collapsed]) .bs-navigation-drawer__logo--mark{display:flex}.bs-navigation-drawer__title-row{flex-shrink:0;display:flex;align-items:center;gap:var(--bs-navigation-drawer-gap)}.bs-navigation-drawer__title{flex:1;min-width:0;font-family:var(--bs-navigation-drawer-title-font-family);font-weight:var(--bs-navigation-drawer-title-font-weight);font-size:var(--bs-navigation-drawer-title-font-size);line-height:calc(var(--bs-navigation-drawer-title-line-height) * 1px);color:var(--bs-navigation-drawer-title-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([collapsed]) .bs-navigation-drawer__title{display:none}.bs-navigation-drawer__collapse{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--bs-navigation-drawer-collapse-size);height:var(--bs-navigation-drawer-collapse-size);border:none;border-radius:var(--bs-navigation-drawer-collapse-radius);padding:0;background:transparent;color:var(--bs-navigation-drawer-collapse-icon);cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-navigation-drawer__collapse svg{width:24px;height:24px}.bs-navigation-drawer__collapse:hover{background:var(--bs-navigation-drawer-collapse-hover)}.bs-navigation-drawer__collapse:active{background:var(--bs-navigation-drawer-collapse-pressed)}.bs-navigation-drawer__collapse:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-navigation-drawer__search{flex-shrink:0;width:100%}:host([collapsed]) .bs-navigation-drawer__search{display:none}.bs-navigation-drawer__search-trigger{display:none;flex-shrink:0;align-items:center;justify-content:center;box-sizing:border-box;width:var(--bs-navigation-drawer-search-trigger-size);height:var(--bs-navigation-drawer-search-trigger-size);border:1px solid var(--bs-navigation-drawer-search-trigger-border);border-radius:var(--bs-navigation-drawer-collapse-radius);background:var(--bs-navigation-drawer-search-trigger-bg);color:var(--bs-navigation-drawer-search-trigger-icon);cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-navigation-drawer__search-trigger svg{width:24px;height:24px}.bs-navigation-drawer__search-trigger:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}:host([collapsed]) .bs-navigation-drawer__search-trigger{display:inline-flex}.bs-navigation-drawer__items{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--bs-navigation-drawer-items-gap);scrollbar-width:none}.bs-navigation-drawer__items::-webkit-scrollbar{display:none}.bs-navigation-drawer:focus{outline:none;}:host([data-overlay]) .bs-navigation-drawer{position:fixed;inset-block:0;inset-inline-start:0;z-index:calc(var(--bs-navigation-drawer-overlay-z-index) + 1);width:var(--bs-navigation-drawer-width);max-width:100vw;padding:var(--bs-navigation-drawer-padding-y) var(--bs-navigation-drawer-padding-right) var(--bs-navigation-drawer-padding-y) var(--bs-navigation-drawer-padding-left);align-items:stretch;box-shadow:var(--bs-navigation-drawer-overlay-shadow);transform:translateX(-100%);visibility:hidden;transition:transform var(--bs-navigation-drawer-overlay-duration) var(--bs-easing-standard), visibility 0s linear var(--bs-navigation-drawer-overlay-duration)}:host([data-overlay]:dir(rtl)) .bs-navigation-drawer{transform:translateX(100%)}:host([data-overlay]) .bs-navigation-drawer.bs-navigation-drawer--open{transform:none;visibility:visible;transition:transform var(--bs-navigation-drawer-overlay-duration) var(--bs-easing-standard), visibility 0s}:host([data-overlay]) .bs-navigation-drawer__logo--full{display:flex}:host([data-overlay]) .bs-navigation-drawer__logo--mark{display:none}:host([data-overlay]) .bs-navigation-drawer__title{display:block}:host([data-overlay]) .bs-navigation-drawer__search{display:block}:host([data-overlay]) .bs-navigation-drawer__search-trigger,:host([data-overlay]) .bs-navigation-drawer__collapse{display:none}.bs-navigation-drawer__backdrop{position:fixed;inset:0;z-index:var(--bs-navigation-drawer-overlay-z-index);background:var(--bs-navigation-drawer-backdrop);opacity:0;visibility:hidden;transition:opacity var(--bs-navigation-drawer-overlay-duration) var(--bs-easing-standard), visibility 0s linear var(--bs-navigation-drawer-overlay-duration)}:host([open]) .bs-navigation-drawer__backdrop{opacity:1;visibility:visible;transition:opacity var(--bs-navigation-drawer-overlay-duration) var(--bs-easing-standard), visibility 0s}@media (prefers-reduced-motion: reduce){:host([data-overlay]) .bs-navigation-drawer,.bs-navigation-drawer__backdrop{transition:none}}@media (forced-colors: active){:host([data-overlay]) .bs-navigation-drawer{border:1px solid CanvasText}}`;
6
6
 
7
7
  const BsNavigationDrawer = class {
8
8
  constructor(hostRef) {
9
9
  index.registerInstance(this, hostRef);
10
10
  this.bsCollapse = index.createEvent(this, "bsCollapse");
11
11
  this.bsSearchClick = index.createEvent(this, "bsSearchClick");
12
+ this.bsClose = index.createEvent(this, "bsClose");
12
13
  }
13
14
  get el() { return index.getElement(this); }
14
15
  /** Heading text shown next to the collapse toggle, and used as the `<nav>` landmark's
@@ -46,11 +47,112 @@ const BsNavigationDrawer = class {
46
47
  * pairing works too: a header that keeps its own logo (`alignment="default"`) paired with this
47
48
  * drawer set to `showLogo={false}`, so the brand mark only ever appears once. */
48
49
  showLogo = true;
49
- onCollapsedChange(collapsed) {
50
- this.syncItemsCollapsed(collapsed);
50
+ /** Small screens only (768px and below): whether the off-canvas overlay is shown. Mutable and
51
+ * reflected -- the drawer sets it back to `false` itself when the user dismisses it (Escape or
52
+ * the backdrop), and emits `bsClose`. Ignored on wider screens, where the drawer is always in
53
+ * the page flow. There is no built-in trigger: set this from your own button. */
54
+ open = false;
55
+ /** Fires when the user dismisses the overlay (Escape, or a click on the backdrop), after `open`
56
+ * has been set back to `false`. Does not fire when you set `open = false` yourself. */
57
+ bsClose;
58
+ /** Whether the viewport is in the small-screen range (<= 768px), tracked with `matchMedia`. */
59
+ mobile = false;
60
+ mediaQuery;
61
+ focusPending = false;
62
+ navRef;
63
+ previouslyFocused;
64
+ bodyOverflowBefore;
65
+ get overlayOpen() {
66
+ return this.mobile && this.open;
67
+ }
68
+ connectedCallback() {
69
+ this.mediaQuery = window.matchMedia?.('(max-width: 768px)');
70
+ if (this.mediaQuery) {
71
+ this.mobile = this.mediaQuery.matches;
72
+ this.mediaQuery.addEventListener('change', this.onMediaChange);
73
+ }
74
+ }
75
+ disconnectedCallback() {
76
+ this.mediaQuery?.removeEventListener('change', this.onMediaChange);
77
+ this.unlockScroll();
78
+ }
79
+ onMediaChange = (ev) => {
80
+ this.mobile = ev.matches;
81
+ };
82
+ onCollapsedChange() {
83
+ this.syncItems();
84
+ }
85
+ onMobileChange() {
86
+ this.syncItems();
87
+ this.applyOverlayState();
88
+ }
89
+ onOpenChange() {
90
+ this.applyOverlayState();
51
91
  }
52
92
  componentDidLoad() {
53
- this.syncItemsCollapsed(this.collapsed);
93
+ this.syncItems();
94
+ this.applyOverlayState();
95
+ this.flushFocus();
96
+ }
97
+ componentDidRender() {
98
+ this.flushFocus();
99
+ }
100
+ /** Focus is moved only after the render that makes the panel visible -- focusing earlier races the
101
+ * re-render (the panel is still `visibility: hidden`), and a hidden element can't take focus. */
102
+ flushFocus() {
103
+ if (this.focusPending && this.overlayOpen) {
104
+ this.focusPending = false;
105
+ requestAnimationFrame(() => this.navRef?.focus());
106
+ }
107
+ }
108
+ /** In the small-screen overlay the items always use their expanded layout -- the collapsed
109
+ * (icon-above-caption) layout is for the desktop rail, and would clip labels in a full-width
110
+ * panel and hide nested items. */
111
+ syncItems() {
112
+ this.syncItemsCollapsed(this.mobile ? false : this.collapsed);
113
+ }
114
+ /** Scroll lock, focus entry and focus return for the overlay, mirroring `bs-dialog`: the focus
115
+ * move is deferred a frame because focusing right after the panel becomes visible does not
116
+ * reliably land. */
117
+ applyOverlayState() {
118
+ if (this.overlayOpen) {
119
+ if (this.bodyOverflowBefore === undefined) {
120
+ this.bodyOverflowBefore = document.body.style.overflow;
121
+ document.body.style.overflow = 'hidden';
122
+ }
123
+ if (!this.previouslyFocused) {
124
+ this.previouslyFocused = document.activeElement;
125
+ }
126
+ this.focusPending = true;
127
+ }
128
+ else {
129
+ this.focusPending = false;
130
+ this.unlockScroll();
131
+ if (this.previouslyFocused?.isConnected)
132
+ this.previouslyFocused.focus();
133
+ this.previouslyFocused = undefined;
134
+ }
135
+ }
136
+ unlockScroll() {
137
+ if (this.bodyOverflowBefore !== undefined) {
138
+ document.body.style.overflow = this.bodyOverflowBefore;
139
+ this.bodyOverflowBefore = undefined;
140
+ }
141
+ }
142
+ requestClose = () => {
143
+ this.open = false;
144
+ this.bsClose.emit();
145
+ };
146
+ onDocumentKeydown(ev) {
147
+ if (this.overlayOpen && ev.key === 'Escape')
148
+ this.requestClose();
149
+ }
150
+ /** Keeps focus inside the open overlay: focus that lands anywhere outside this component is
151
+ * pulled back in. `composedPath()` is used so this works across shadow-DOM boundaries (same
152
+ * approach as `bs-dialog`). */
153
+ onDocumentFocusIn(ev) {
154
+ if (this.overlayOpen && !ev.composedPath().includes(this.el))
155
+ this.navRef?.focus();
54
156
  }
55
157
  /** Keeps every direct-child `bs-navigation-drawer-item`'s `collapsed` prop in sync with this
56
158
  * component's own -- same direct-children-prop-sync approach `bs-tabs` uses for `selected`
@@ -71,11 +173,22 @@ const BsNavigationDrawer = class {
71
173
  this.bsSearchClick.emit();
72
174
  };
73
175
  render() {
74
- return (index.h("nav", { key: '4f39df22dc1027094a67c3d331021a90c471bef6', class: "bs-navigation-drawer", "aria-label": this.heading }, this.showLogo && (index.h("div", { key: '68101afc424bba6fd56d6b155d8130b77fcb42a9', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--full" }, index.h("bs-logo", { key: '7ec295e0411d6fe6ed33ea67e632fcda72a49611', variant: "full", background: this.logoBackground }))), this.showLogo && (index.h("div", { key: 'ee9db23aeb0c7ad6297bed6a4baa17dbe4b2f6d4', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--mark" }, index.h("bs-logo", { key: 'e69f31b910c3302d2c5851ae9bfdbfec1999fd4e', variant: "mark", background: this.logoBackground }))), index.h("div", { key: '8d69e56009e183c1745ddafebc75417ce6ea5bdc', class: "bs-navigation-drawer__title-row" }, index.h("span", { key: '434dd310adc86473876e125fab81f97b0beb5c4b', part: "title", class: "bs-navigation-drawer__title" }, this.heading), this.collapsible && (index.h("button", { key: '27508cb2c5f417d450b1a059b8e07d47396d3e69', type: "button", part: "collapse", class: "bs-navigation-drawer__collapse", "aria-label": this.collapsed ? 'Expand' : 'Collapse', "aria-pressed": this.collapsed ? 'true' : 'false', onClick: this.onCollapseClick }, index.h(CaretLeftIcon, { key: '96ee586ecd6edc378a95a0afcc114919230a52af' })))), index.h("div", { key: '3b20ffc4e837b7a2e7229ba575b429e54fc9f3ac', part: "search", class: "bs-navigation-drawer__search" }, index.h("slot", { key: 'f62aae2397c1eada4c0d52fd6d4cba778f475a58', name: "search" })), index.h("button", { key: 'a00b4871692f612c62d5e1b6de9511ca7ce7ebe3', type: "button", part: "search-trigger", class: "bs-navigation-drawer__search-trigger", "aria-label": "Search", onClick: this.onSearchTriggerClick }, index.h(SearchIcon, { key: '8402ace02e086a862bcc3bc92beb324940f7fda0' })), index.h("div", { key: '3ac74499c23530d89061d04fa23c4fd6a7e8c7b4', part: "items", class: "bs-navigation-drawer__items" }, index.h("slot", { key: '89baa650f1449c813f7a1e9f29f6525dcf6e2699' }))));
176
+ const classes = ['bs-navigation-drawer', this.mobile ? 'bs-navigation-drawer--overlay' : '', this.overlayOpen ? 'bs-navigation-drawer--open' : ''].filter(Boolean).join(' ');
177
+ return (index.h(index.Host, { key: '94c3fbfb2d9826979f2f90ec0c9571aadc484450', "data-overlay": this.mobile ? '' : undefined }, this.mobile && index.h("div", { key: 'cc8b62b02a561dfbb0a15918e4bbbf241919ea7d', part: "backdrop", class: "bs-navigation-drawer__backdrop", onClick: this.requestClose }), index.h("nav", { key: 'ad3e970438fca27636992cc434584bfae7888895', ref: el => (this.navRef = el), class: classes, "aria-label": this.heading,
178
+ // Stays a plain <nav> landmark in every state: ARIA does not allow role="dialog" on <nav>
179
+ // (axe: aria-allowed-role). Modality is behavioral -- focus is held inside, the page behind is
180
+ // scrimmed, Escape closes -- rather than announced through aria-modal.
181
+ tabIndex: this.mobile ? -1 : undefined }, this.showLogo && (index.h("div", { key: '41552cc9bc1fd33081119b6b6a475e9a81281e97', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--full" }, index.h("bs-logo", { key: '96503cee7e467c535747171f46ab8b36f2d9262a', variant: "full", background: this.logoBackground }))), this.showLogo && (index.h("div", { key: '6b4e91b0296772ea492a2e12c1f81933be1af02b', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--mark" }, index.h("bs-logo", { key: '72c4cae8f25aebef923d2b346ee3a3224a1a4550', variant: "mark", background: this.logoBackground }))), index.h("div", { key: '2fde5f92e629d34321e0e0e6eaf776027614836a', class: "bs-navigation-drawer__title-row" }, index.h("span", { key: 'fde5717eeec30bbade48f574e44f9eec841bab36', part: "title", class: "bs-navigation-drawer__title" }, this.heading), this.collapsible && (index.h("button", { key: '59d514aec296c5b4eb459de259aa29d77a435ecf', type: "button", part: "collapse", class: "bs-navigation-drawer__collapse", "aria-label": this.collapsed ? 'Expand' : 'Collapse', "aria-pressed": this.collapsed ? 'true' : 'false', onClick: this.onCollapseClick }, index.h(CaretLeftIcon, { key: 'a992c1fcaa3e143ee9f1469958eeab12e03bce03' })))), index.h("div", { key: '1a74885abe2e50b3a6eccd7d4cacca4582dc5fa9', part: "search", class: "bs-navigation-drawer__search" }, index.h("slot", { key: 'ac98f9ca62a289e21fcbf0f005c6c0f7e02d9967', name: "search" })), index.h("button", { key: 'c7c50e5cf2c81ec8445a557505faf2ea40add094', type: "button", part: "search-trigger", class: "bs-navigation-drawer__search-trigger", "aria-label": "Search", onClick: this.onSearchTriggerClick }, index.h(SearchIcon, { key: '538bcfc474036d2c79fe821011490bf7cbd4d018' })), index.h("div", { key: '1a7aa824a99823b2d06309c5192a200afe378a7b', part: "items", class: "bs-navigation-drawer__items" }, index.h("slot", { key: '1a79d4f0e809b16a9d19efb06d36052c0539bba2' })))));
75
182
  }
76
183
  static get watchers() { return {
77
184
  "collapsed": [{
78
185
  "onCollapsedChange": 0
186
+ }],
187
+ "mobile": [{
188
+ "onMobileChange": 0
189
+ }],
190
+ "open": [{
191
+ "onOpenChange": 0
79
192
  }]
80
193
  }; }
81
194
  };
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
- const bsNavigationHeaderCss = () => `:host{display:block;--bs-navigation-header-bg:var(--bs-surface-base);--bs-navigation-header-border:var(--bs-border-default);--bs-navigation-header-padding-top:var(--bs-spacing-200);--bs-navigation-header-padding-bottom:var(--bs-spacing-100);--bs-navigation-header-padding-x:var(--bs-margin-fluid);--bs-navigation-header-max-width:1920px;--bs-navigation-header-item-gap:calc(var(--bs-navigation-header-gap) * 1px);--bs-navigation-header-slot-gap:var(--bs-spacing-100);--bs-navigation-header-skip-link-bg:var(--bs-surface-action);--bs-navigation-header-skip-link-color:var(--bs-text-inverse)}.bs-navigation-header{box-sizing:border-box;position:relative;display:flex;align-items:center;width:100%;max-width:var(--bs-navigation-header-max-width);background:var(--bs-navigation-header-bg);border-bottom:1px solid var(--bs-navigation-header-border);padding:var(--bs-navigation-header-padding-top) var(--bs-navigation-header-padding-x) var(--bs-navigation-header-padding-bottom)}.bs-navigation-header__skip-link{position:absolute;top:var(--bs-spacing-100);left:-9999px;z-index:1;padding:var(--bs-spacing-100) var(--bs-spacing-200);border-radius:var(--bs-border-radius-100);background:var(--bs-navigation-header-skip-link-bg);color:var(--bs-navigation-header-skip-link-color);font-size:var(--bs-font-size-sm);text-decoration:underline}.bs-navigation-header__skip-link:focus{left:var(--bs-navigation-header-padding-x)}.bs-navigation-header--default,.bs-navigation-header--with-navigation-drawer{gap:var(--bs-navigation-header-item-gap)}.bs-navigation-header__logo{flex-shrink:0;display:flex;align-items:center}.bs-navigation-header--center .bs-navigation-header__logo{flex:1 0 0;min-width:0}.bs-navigation-header__left{display:flex;align-items:center;gap:var(--bs-navigation-header-slot-gap);flex-shrink:0}.bs-navigation-header__right{display:flex;align-items:center;justify-content:flex-end;gap:var(--bs-navigation-header-slot-gap);flex:1 0 0;min-width:0}@media (max-width: 768px){.bs-navigation-header--default,.bs-navigation-header--with-navigation-drawer{flex-wrap:wrap;row-gap:var(--bs-navigation-header-slot-gap)}.bs-navigation-header--default .bs-navigation-header__right,.bs-navigation-header--with-navigation-drawer .bs-navigation-header__right{flex:1 1 100%;justify-content:flex-end}}`;
5
+ const bsNavigationHeaderCss = () => `:host{display:block;--bs-navigation-header-bg:var(--bs-surface-base);--bs-navigation-header-border:var(--bs-border-default);--bs-navigation-header-padding-top:var(--bs-spacing-200);--bs-navigation-header-padding-bottom:var(--bs-spacing-100);--bs-navigation-header-padding-x:var(--bs-margin-fluid);--bs-navigation-header-max-width:none;--bs-navigation-header-item-gap:calc(var(--bs-navigation-header-gap) * 1px);--bs-navigation-header-slot-gap:var(--bs-spacing-100);--bs-navigation-header-skip-link-bg:var(--bs-surface-action);--bs-navigation-header-skip-link-color:var(--bs-text-inverse)}.bs-navigation-header{box-sizing:border-box;position:relative;display:flex;align-items:center;width:100%;max-width:var(--bs-navigation-header-max-width);background:var(--bs-navigation-header-bg);border-bottom:1px solid var(--bs-navigation-header-border);padding:var(--bs-navigation-header-padding-top) var(--bs-navigation-header-padding-x) var(--bs-navigation-header-padding-bottom)}.bs-navigation-header__skip-link{position:absolute;top:var(--bs-spacing-100);left:-9999px;z-index:1;padding:var(--bs-spacing-100) var(--bs-spacing-200);border-radius:var(--bs-border-radius-100);background:var(--bs-navigation-header-skip-link-bg);color:var(--bs-navigation-header-skip-link-color);font-size:var(--bs-font-size-sm);text-decoration:underline}.bs-navigation-header__skip-link:focus{left:var(--bs-navigation-header-padding-x)}.bs-navigation-header--default,.bs-navigation-header--with-navigation-drawer{gap:var(--bs-navigation-header-item-gap)}.bs-navigation-header__logo{flex-shrink:0;display:flex;align-items:center}.bs-navigation-header--center .bs-navigation-header__logo{flex:1 0 0;min-width:0}.bs-navigation-header__left{display:flex;align-items:center;gap:var(--bs-navigation-header-slot-gap);flex-shrink:0}.bs-navigation-header__right{display:flex;align-items:center;justify-content:flex-end;gap:var(--bs-navigation-header-slot-gap);flex:1 0 0;min-width:0}@media (max-width: 768px){.bs-navigation-header--default,.bs-navigation-header--with-navigation-drawer{flex-wrap:wrap;row-gap:var(--bs-navigation-header-slot-gap)}.bs-navigation-header--default .bs-navigation-header__left,.bs-navigation-header--with-navigation-drawer .bs-navigation-header__left{flex:1 1 0%;min-width:0}.bs-navigation-header--default .bs-navigation-header__right,.bs-navigation-header--with-navigation-drawer .bs-navigation-header__right{flex:0 0 auto;margin-inline-start:auto;justify-content:flex-end}}`;
6
6
 
7
7
  const BsNavigationHeader = class {
8
8
  constructor(hostRef) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
5
  const bsPaginationCss = () => `:host{display:inline-block;--bs-pagination-gap:var(--bs-spacing-50);--bs-pagination-size:var(--bs-spacing-550);--bs-pagination-radius:var(--bs-border-radius-100);--bs-pagination-font-size:var(--bs-font-size-md);--bs-pagination-line-height:var(--bs-line-height-body-md);--bs-pagination-color:var(--bs-text-secondary);--bs-pagination-color-disabled:var(--bs-icon-disabled);--bs-pagination-hover:var(--bs-color-neutral-container-hover);--bs-pagination-pressed:var(--bs-color-neutral-container-pressed);--bs-pagination-current-bg:var(--bs-color-primary-default);--bs-pagination-current-bg-hover:var(--bs-color-primary-hover);--bs-pagination-current-bg-pressed:var(--bs-color-primary-pressed);--bs-pagination-current-color:var(--bs-text-on-action);--bs-pagination-focus-ring-color:var(--bs-border-neutral-focus)}.bs-pagination__list{display:flex;align-items:center;flex-wrap:wrap;margin:0;padding:0;list-style:none;gap:var(--bs-pagination-gap);font-family:inherit}.bs-pagination__item{display:flex}.bs-pagination__control{display:flex;align-items:center;justify-content:center;width:var(--bs-pagination-size);height:var(--bs-pagination-size);padding:0;border:none;border-radius:var(--bs-pagination-radius);background:transparent;color:var(--bs-pagination-color);font-family:inherit;font-size:var(--bs-pagination-font-size);line-height:calc(var(--bs-pagination-line-height) * 1px);cursor:pointer}.bs-pagination__control svg{width:24px;height:24px}.bs-pagination__control:disabled{color:var(--bs-pagination-color-disabled);cursor:not-allowed}.bs-pagination__page:not(:disabled):hover{background:var(--bs-pagination-hover)}.bs-pagination__page:not(:disabled):active{background:var(--bs-pagination-pressed)}.bs-pagination__control:focus-visible{outline:2px solid var(--bs-pagination-focus-ring-color);outline-offset:2px}.bs-pagination__page--current{background:var(--bs-pagination-current-bg);color:var(--bs-pagination-current-color)}.bs-pagination__page--current:hover{background:var(--bs-pagination-current-bg-hover)}.bs-pagination__page--current:active{background:var(--bs-pagination-current-bg-pressed)}.bs-pagination__ellipsis{display:flex;align-items:center;justify-content:center;width:var(--bs-pagination-size);height:var(--bs-pagination-size);color:var(--bs-pagination-color)}.bs-pagination__ellipsis svg{width:24px;height:24px}`;
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
5
  const bsProgressLinearCss = () => `:host{display:flex;--bs-progress-linear-gap:var(--bs-spacing-100);--bs-progress-linear-track:var(--bs-surface-container);--bs-progress-linear-fill:var(--bs-color-primary-default);--bs-progress-linear-radius:120px;--bs-progress-linear-height-sm:4px;--bs-progress-linear-height-lg:8px;--bs-progress-linear-label-color:var(--bs-text-default);--bs-progress-linear-label-font-size:var(--bs-fontsize-body-md);--bs-progress-linear-label-line-height:var(--bs-line-height-body-md);--bs-progress-linear-transition-duration:0.3s;--bs-progress-linear-slide-duration:1.6s}.bs-progress-linear{display:flex;flex-direction:column;width:100%;gap:var(--bs-progress-linear-gap);font-family:inherit}.bs-progress-linear__track{position:relative;width:100%;border-radius:var(--bs-progress-linear-radius);background:var(--bs-progress-linear-track);overflow:hidden}.bs-progress-linear__track--small{height:var(--bs-progress-linear-height-sm)}.bs-progress-linear__track--large{height:var(--bs-progress-linear-height-lg)}.bs-progress-linear__fill{height:100%;border-radius:var(--bs-progress-linear-radius);background:var(--bs-progress-linear-fill);transition:width var(--bs-progress-linear-transition-duration) ease}.bs-progress-linear__fill--indeterminate{position:absolute;top:0;left:0;width:24%;min-width:80px;background:linear-gradient(90deg, transparent 0%, var(--bs-progress-linear-fill) 50%, transparent 100%);animation:bs-progress-linear-slide var(--bs-progress-linear-slide-duration) ease-in-out infinite}@keyframes bs-progress-linear-slide{from{transform:translateX(-100%)}to{transform:translateX(250%)}}@media (prefers-reduced-motion: reduce){.bs-progress-linear__fill--indeterminate{animation-duration:calc(var(--bs-progress-linear-slide-duration) * 4)}}.bs-progress-linear__label{color:var(--bs-progress-linear-label-color);font-size:var(--bs-progress-linear-label-font-size);line-height:calc(var(--bs-progress-linear-label-line-height) * 1px)}`;
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-D7e6DfLV.js');
3
+ var index = require('./index-kk9YXF2S.js');
4
4
 
5
5
  const bsProgressCss = () => `:host{display:inline-flex;--bs-progress-gap:var(--bs-spacing-100);--bs-progress-track:var(--bs-neutral-200);--bs-progress-arc:var(--bs-color-primary-default);--bs-progress-label-color:var(--bs-color-primary-default);--bs-progress-label-font-size-sm:var(--bs-fontsize-caption-md);--bs-progress-label-line-height-sm:var(--bs-line-height-caption-md);--bs-progress-label-font-size-lg:var(--bs-fontsize-body-md);--bs-progress-label-line-height-lg:var(--bs-line-height-body-md);--bs-progress-label-font-weight:var(--bs-font-weight-medium);--bs-progress-spin-duration:1.4s}.bs-progress{display:inline-flex;flex-direction:column;align-items:center;gap:var(--bs-progress-gap);font-family:inherit}.bs-progress__box{position:relative;display:inline-flex}.bs-progress__ring{transform:rotate(-90deg);overflow:visible}.bs-progress__track{stroke:var(--bs-progress-track)}.bs-progress__arc{stroke:var(--bs-progress-arc);transition:stroke-dashoffset 0.3s ease}.bs-progress__spinner{width:100%;height:100%;border-radius:50%;background:conic-gradient(from 0deg, transparent 0deg, var(--bs-progress-arc) var(--bs-progress-spinner-sweep), transparent var(--bs-progress-spinner-sweep));-webkit-mask:radial-gradient( farthest-side, transparent calc(100% - var(--bs-progress-spinner-stroke-width) - 1px), #000 calc(100% - var(--bs-progress-spinner-stroke-width)) );mask:radial-gradient( farthest-side, transparent calc(100% - var(--bs-progress-spinner-stroke-width) - 1px), #000 calc(100% - var(--bs-progress-spinner-stroke-width)) );animation:bs-progress-spin var(--bs-progress-spin-duration) linear infinite}@keyframes bs-progress-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.bs-progress__spinner{animation-duration:calc(var(--bs-progress-spin-duration) * 4)}}.bs-progress__label{color:var(--bs-progress-label-color);font-weight:var(--bs-progress-label-font-weight);text-align:center}.bs-progress__label--small,.bs-progress__label--medium{font-size:var(--bs-progress-label-font-size-sm);line-height:calc(var(--bs-progress-label-line-height-sm) * 1px)}.bs-progress__label--large{font-size:var(--bs-progress-label-font-size-lg);line-height:calc(var(--bs-progress-label-line-height-lg) * 1px)}`;
6
6
 
@@ -33,6 +33,11 @@ const BsProgress = class {
33
33
  * `indeterminate` never shows a label regardless of this prop, since there's no percentage to
34
34
  * show. Defaults to `true`. */
35
35
  showLabel = true;
36
+ /** Accessible name for the progress bar (e.g. "Uploading report"). Required for assistive tech --
37
+ * a `role="progressbar"` with no name is an axe-core `aria-progressbar-name` violation. Setting
38
+ * `aria-label` on the host doesn't reach the inner element across the shadow boundary, so this
39
+ * prop binds it directly -- same pattern as `bs-button`'s `ariaLabel`. */
40
+ ariaLabel = null;
36
41
  get clampedValue() {
37
42
  return Math.min(100, Math.max(0, this.value));
38
43
  }
@@ -52,7 +57,7 @@ const BsProgress = class {
52
57
  const isDeterminate = this.type === 'determinate';
53
58
  const value = this.clampedValue;
54
59
  const dashOffset = circumference * (1 - value / 100);
55
- return (index.h("div", { key: '0534b118c5954b821dc3e9f1bb0b4a0ac746633a', part: "container", class: "bs-progress" }, index.h("div", { key: 'fd20dfde6fe2de74c0622589294a066f526fe213', class: "bs-progress__box", style: { width: `${diameter}px`, height: `${diameter}px` }, role: "progressbar", "aria-valuemin": isDeterminate ? '0' : undefined, "aria-valuemax": isDeterminate ? '100' : undefined, "aria-valuenow": isDeterminate ? String(value) : undefined, "aria-busy": isDeterminate ? undefined : 'true' }, isDeterminate ? (index.h("svg", { class: "bs-progress__ring", width: diameter, height: diameter, viewBox: `0 0 ${diameter} ${diameter}` }, index.h("circle", { part: "track", class: "bs-progress__track", cx: diameter / 2, cy: diameter / 2, r: radius, "stroke-width": this.strokeWidth, fill: "none" }), index.h("circle", { part: "arc", class: "bs-progress__arc", cx: diameter / 2, cy: diameter / 2, r: radius, "stroke-width": this.strokeWidth, fill: "none", "stroke-linecap": "round", "stroke-dasharray": circumference, "stroke-dashoffset": dashOffset }))) : (
60
+ return (index.h("div", { key: 'add8dfafdbee4eaa9712c6e2ba6ddff6f8f6c47f', part: "container", class: "bs-progress" }, index.h("div", { key: 'fd89c73aa247fc3770187a45dc4681857e257d4e', class: "bs-progress__box", style: { width: `${diameter}px`, height: `${diameter}px` }, role: "progressbar", "aria-label": this.ariaLabel, "aria-valuemin": isDeterminate ? '0' : undefined, "aria-valuemax": isDeterminate ? '100' : undefined, "aria-valuenow": isDeterminate ? String(value) : undefined, "aria-busy": isDeterminate ? undefined : 'true' }, isDeterminate ? (index.h("svg", { class: "bs-progress__ring", width: diameter, height: diameter, viewBox: `0 0 ${diameter} ${diameter}` }, index.h("circle", { part: "track", class: "bs-progress__track", cx: diameter / 2, cy: diameter / 2, r: radius, "stroke-width": this.strokeWidth, fill: "none" }), index.h("circle", { part: "arc", class: "bs-progress__arc", cx: diameter / 2, cy: diameter / 2, r: radius, "stroke-width": this.strokeWidth, fill: "none", "stroke-linecap": "round", "stroke-dasharray": circumference, "stroke-dashoffset": dashOffset }))) : (
56
61
  // Figma's indeterminate ring is a fading "comet tail" (transparent -> solid color),
57
62
  // not a flat-colored partial arc -- SVG has no angular/conic gradient primitive, so a
58
63
  // CSS conic-gradient (color varying by angle) + a radial-gradient mask (carving the
@@ -61,7 +66,7 @@ const BsProgress = class {
61
66
  index.h("div", { part: "arc", class: "bs-progress__spinner", style: {
62
67
  '--bs-progress-spinner-stroke-width': `${this.strokeWidth}px`,
63
68
  '--bs-progress-spinner-sweep': `${INDETERMINATE_SWEEP_DEGREES}deg`,
64
- } }))), isDeterminate && this.showLabel && (index.h("span", { key: '20b74322a926ff40188de525103f91992d9bc508', part: "label", class: `bs-progress__label bs-progress__label--${this.size}` }, value, "%"))));
69
+ } }))), isDeterminate && this.showLabel && (index.h("span", { key: '9c86dc195204f28c06e05bf09f823241bf9f3a86', part: "label", class: `bs-progress__label bs-progress__label--${this.size}` }, value, "%"))));
65
70
  }
66
71
  };
67
72
  BsProgress.style = bsProgressCss();