@brandsync/wc 0.0.7 → 0.0.9

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 (195) hide show
  1. package/custom-elements.json +1810 -355
  2. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  3. package/dist/brandsync-wc/p-0d64ea40.entry.js +1 -0
  4. package/dist/brandsync-wc/{p-c63d16e1.entry.js → p-1515498e.entry.js} +1 -1
  5. package/dist/brandsync-wc/p-16a54578.entry.js +1 -0
  6. package/dist/brandsync-wc/p-18af02df.entry.js +1 -0
  7. package/dist/brandsync-wc/p-30a0e168.entry.js +1 -0
  8. package/dist/brandsync-wc/p-3dacae70.entry.js +1 -0
  9. package/dist/brandsync-wc/p-5333bb5a.entry.js +1 -0
  10. package/dist/brandsync-wc/p-575ce905.entry.js +1 -0
  11. package/dist/brandsync-wc/{p-dd0fea0e.entry.js → p-7776b57b.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-bfd09c98.entry.js → p-805644e4.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-f88d9a6e.entry.js → p-8a78d6ea.entry.js} +1 -1
  14. package/dist/brandsync-wc/p-8d12ed96.entry.js +1 -0
  15. package/dist/brandsync-wc/p-94ed898a.entry.js +1 -0
  16. package/dist/brandsync-wc/{p-9e5d2211.entry.js → p-96f374be.entry.js} +1 -1
  17. package/dist/brandsync-wc/{p-ab5cc7af.entry.js → p-a34f460d.entry.js} +1 -1
  18. package/dist/brandsync-wc/p-bc72439a.entry.js +1 -0
  19. package/dist/brandsync-wc/{p-76eca100.entry.js → p-ce0914a7.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-5a0fe72e.entry.js → p-d682675e.entry.js} +1 -1
  21. package/dist/brandsync-wc/p-dad4a92c.entry.js +1 -0
  22. package/dist/brandsync-wc/{p-cfc3421b.entry.js → p-dd747a12.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-2742ecef.entry.js → p-eb4d87f0.entry.js} +1 -1
  24. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  25. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +17 -0
  26. package/dist/cjs/bs-ai-greeting.cjs.entry.js +24 -0
  27. package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
  28. package/dist/cjs/bs-attachment-list.cjs.entry.js +47 -0
  29. package/dist/cjs/bs-attachment.cjs.entry.js +46 -0
  30. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  31. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  32. package/dist/cjs/bs-button.cjs.entry.js +1 -1
  33. package/dist/cjs/bs-card.cjs.entry.js +1 -1
  34. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +94 -0
  35. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  36. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  37. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +38 -0
  38. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  39. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +43 -0
  40. package/dist/cjs/bs-composer.cjs.entry.js +16 -2
  41. package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
  42. package/dist/cjs/bs-input.cjs.entry.js +270 -4
  43. package/dist/cjs/{bs-menu-item.cjs.entry.js → bs-menu_2.cjs.entry.js} +14 -1
  44. package/dist/cjs/bs-source-link.cjs.entry.js +39 -0
  45. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  46. package/dist/cjs/loader.cjs.js +1 -1
  47. package/dist/collection/collection-manifest.json +8 -0
  48. package/dist/collection/components/bs-ai-chatbot/bs-ai-chatbot.stories.js +180 -0
  49. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.cmp.test.js +14 -0
  50. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.css +27 -0
  51. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +41 -0
  52. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.stories.js +15 -0
  53. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.cmp.test.js +22 -0
  54. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.css +53 -0
  55. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +103 -0
  56. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.stories.js +23 -0
  57. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.css +31 -17
  58. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +9 -11
  59. package/dist/collection/components/bs-attachment/bs-attachment.cmp.test.js +41 -0
  60. package/dist/collection/components/bs-attachment/bs-attachment.css +184 -0
  61. package/dist/collection/components/bs-attachment/bs-attachment.js +230 -0
  62. package/dist/collection/components/bs-attachment/bs-attachment.stories.js +58 -0
  63. package/dist/collection/components/bs-attachment-list/bs-attachment-list.cmp.test.js +28 -0
  64. package/dist/collection/components/bs-attachment-list/bs-attachment-list.css +56 -0
  65. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +105 -0
  66. package/dist/collection/components/bs-attachment-list/bs-attachment-list.stories.js +47 -0
  67. package/dist/collection/components/bs-badge/bs-badge.js +1 -1
  68. package/dist/collection/components/bs-button/bs-button.js +1 -1
  69. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  70. package/dist/collection/components/bs-card/bs-card.js +1 -1
  71. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.cmp.test.js +73 -0
  72. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.css +253 -0
  73. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +324 -0
  74. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.stories.js +54 -0
  75. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  76. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  77. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.cmp.test.js +34 -0
  78. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.css +106 -0
  79. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +142 -0
  80. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.stories.js +44 -0
  81. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  82. package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +12 -0
  83. package/dist/collection/components/bs-composer/bs-composer.css +10 -0
  84. package/dist/collection/components/bs-composer/bs-composer.js +25 -1
  85. package/dist/collection/components/bs-composer/bs-composer.stories.js +13 -0
  86. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.cmp.test.js +42 -0
  87. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.css +173 -0
  88. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +270 -0
  89. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.stories.js +75 -0
  90. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  91. package/dist/collection/components/bs-input/bs-input.cmp.test.js +296 -0
  92. package/dist/collection/components/bs-input/bs-input.css +333 -23
  93. package/dist/collection/components/bs-input/bs-input.js +647 -11
  94. package/dist/collection/components/bs-input/bs-input.stories.js +128 -1
  95. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  96. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  97. package/dist/collection/components/bs-source-link/bs-source-link.cmp.test.js +42 -0
  98. package/dist/collection/components/bs-source-link/bs-source-link.css +114 -0
  99. package/dist/collection/components/bs-source-link/bs-source-link.js +192 -0
  100. package/dist/collection/components/bs-source-link/bs-source-link.stories.js +33 -0
  101. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  102. package/dist/components/bs-ai-disclaimer.d.ts +11 -0
  103. package/dist/components/bs-ai-disclaimer.js +1 -0
  104. package/dist/components/bs-ai-greeting.d.ts +11 -0
  105. package/dist/components/bs-ai-greeting.js +1 -0
  106. package/dist/components/bs-ai-thinking.js +1 -1
  107. package/dist/components/bs-attachment-list.d.ts +11 -0
  108. package/dist/components/bs-attachment-list.js +1 -0
  109. package/dist/components/bs-attachment.d.ts +11 -0
  110. package/dist/components/bs-attachment.js +1 -0
  111. package/dist/components/bs-badge.js +1 -1
  112. package/dist/components/bs-button-skeleton.js +1 -1
  113. package/dist/components/bs-button.js +1 -1
  114. package/dist/components/bs-card.js +1 -1
  115. package/dist/components/bs-chatbot-feedback.d.ts +11 -0
  116. package/dist/components/bs-chatbot-feedback.js +1 -0
  117. package/dist/components/bs-chatbot-header.js +1 -1
  118. package/dist/components/bs-chatbot-response-action.js +1 -1
  119. package/dist/components/bs-chatbot-sources-drawer.d.ts +11 -0
  120. package/dist/components/bs-chatbot-sources-drawer.js +1 -0
  121. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  122. package/dist/components/bs-composer-status-banner.d.ts +11 -0
  123. package/dist/components/bs-composer-status-banner.js +1 -0
  124. package/dist/components/bs-composer.js +1 -1
  125. package/dist/components/bs-data-table.js +1 -1
  126. package/dist/components/bs-input.js +1 -1
  127. package/dist/components/bs-menu-item.js +1 -1
  128. package/dist/components/bs-menu.js +1 -1
  129. package/dist/components/bs-source-link.d.ts +11 -0
  130. package/dist/components/bs-source-link.js +1 -0
  131. package/dist/components/bs-tooltip.js +1 -1
  132. package/dist/components/{p-CoC4LQCI.js → p-Cz2nfz2j.js} +1 -1
  133. package/dist/components/p-DndQiCMP.js +1 -0
  134. package/dist/components/p-_vXDfB3V.js +1 -0
  135. package/dist/esm/brandsync-wc.js +1 -1
  136. package/dist/esm/bs-ai-disclaimer.entry.js +15 -0
  137. package/dist/esm/bs-ai-greeting.entry.js +22 -0
  138. package/dist/esm/bs-ai-thinking.entry.js +2 -2
  139. package/dist/esm/bs-attachment-list.entry.js +45 -0
  140. package/dist/esm/bs-attachment.entry.js +44 -0
  141. package/dist/esm/bs-badge.entry.js +1 -1
  142. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  143. package/dist/esm/bs-button.entry.js +1 -1
  144. package/dist/esm/bs-card.entry.js +1 -1
  145. package/dist/esm/bs-chatbot-feedback.entry.js +92 -0
  146. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  147. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  148. package/dist/esm/bs-chatbot-sources-drawer.entry.js +36 -0
  149. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  150. package/dist/esm/bs-composer-status-banner.entry.js +41 -0
  151. package/dist/esm/bs-composer.entry.js +17 -3
  152. package/dist/esm/bs-data-table.entry.js +2 -2
  153. package/dist/esm/bs-input.entry.js +271 -5
  154. package/dist/esm/{bs-menu-item.entry.js → bs-menu_2.entry.js} +15 -3
  155. package/dist/esm/bs-source-link.entry.js +37 -0
  156. package/dist/esm/bs-tooltip.entry.js +1 -1
  157. package/dist/esm/loader.js +1 -1
  158. package/dist/types/components/bs-ai-chatbot/bs-ai-chatbot.stories.d.ts +18 -0
  159. package/dist/types/components/bs-ai-disclaimer/bs-ai-disclaimer.cmp.test.d.ts +1 -0
  160. package/dist/types/components/bs-ai-disclaimer/bs-ai-disclaimer.d.ts +26 -0
  161. package/dist/types/components/bs-ai-disclaimer/bs-ai-disclaimer.stories.d.ts +8 -0
  162. package/dist/types/components/bs-ai-greeting/bs-ai-greeting.cmp.test.d.ts +1 -0
  163. package/dist/types/components/bs-ai-greeting/bs-ai-greeting.d.ts +42 -0
  164. package/dist/types/components/bs-ai-greeting/bs-ai-greeting.stories.d.ts +10 -0
  165. package/dist/types/components/bs-ai-thinking/bs-ai-thinking.d.ts +8 -10
  166. package/dist/types/components/bs-attachment/bs-attachment.cmp.test.d.ts +1 -0
  167. package/dist/types/components/bs-attachment/bs-attachment.d.ts +59 -0
  168. package/dist/types/components/bs-attachment/bs-attachment.stories.d.ts +17 -0
  169. package/dist/types/components/bs-attachment-list/bs-attachment-list.cmp.test.d.ts +1 -0
  170. package/dist/types/components/bs-attachment-list/bs-attachment-list.d.ts +42 -0
  171. package/dist/types/components/bs-attachment-list/bs-attachment-list.stories.d.ts +10 -0
  172. package/dist/types/components/bs-chatbot-feedback/bs-chatbot-feedback.cmp.test.d.ts +1 -0
  173. package/dist/types/components/bs-chatbot-feedback/bs-chatbot-feedback.d.ts +90 -0
  174. package/dist/types/components/bs-chatbot-feedback/bs-chatbot-feedback.stories.d.ts +16 -0
  175. package/dist/types/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.cmp.test.d.ts +1 -0
  176. package/dist/types/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.d.ts +54 -0
  177. package/dist/types/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.stories.d.ts +10 -0
  178. package/dist/types/components/bs-composer/bs-composer.d.ts +14 -0
  179. package/dist/types/components/bs-composer/bs-composer.stories.d.ts +1 -0
  180. package/dist/types/components/bs-composer-status-banner/bs-composer-status-banner.cmp.test.d.ts +1 -0
  181. package/dist/types/components/bs-composer-status-banner/bs-composer-status-banner.d.ts +88 -0
  182. package/dist/types/components/bs-composer-status-banner/bs-composer-status-banner.stories.d.ts +20 -0
  183. package/dist/types/components/bs-input/bs-input.d.ts +139 -6
  184. package/dist/types/components/bs-input/bs-input.stories.d.ts +19 -0
  185. package/dist/types/components/bs-source-link/bs-source-link.cmp.test.d.ts +1 -0
  186. package/dist/types/components/bs-source-link/bs-source-link.d.ts +51 -0
  187. package/dist/types/components/bs-source-link/bs-source-link.stories.d.ts +13 -0
  188. package/dist/types/components.d.ts +1778 -55
  189. package/package.json +1 -1
  190. package/dist/brandsync-wc/p-6abdfaf0.entry.js +0 -1
  191. package/dist/brandsync-wc/p-6c1fa4da.entry.js +0 -1
  192. package/dist/brandsync-wc/p-a12d0a60.entry.js +0 -1
  193. package/dist/brandsync-wc/p-f5f443e2.entry.js +0 -1
  194. package/dist/cjs/bs-menu.cjs.entry.js +0 -17
  195. package/dist/esm/bs-menu.entry.js +0 -15
@@ -1,64 +1,374 @@
1
+ /**
2
+ * @prop --bs-input-radius: Corner radius of the field. Aliased to --bs-border-radius-100.
3
+ * @prop --bs-input-height: Height of the field. Aliased to --bs-spacing-600.
4
+ * @prop --bs-input-padding-x: Horizontal padding inside the field. Aliased to --bs-spacing-150.
5
+ * @prop --bs-input-padding-y: Vertical padding inside the field. Aliased to --bs-spacing-100.
6
+ * @prop --bs-input-gap: Gap between the icon(s) and the native input. Aliased to --bs-spacing-200.
7
+ * @prop --bs-input-icon-size: Width/height of the leading/trailing icon. Aliased to --bs-spacing-300.
8
+ * @prop --bs-input-stack-gap: Vertical gap between the label, field, and description/error. Aliased to --bs-spacing-50.
9
+ * @prop --bs-input-error-icon-size: Width/height of the warning icon shown before the error message. Aliased to --bs-spacing-250.
10
+ * @prop --bs-input-icon-color: Icon color in the default state. Aliased to --bs-icon-muted.
11
+ * @prop --bs-input-icon-color-error: Icon color when error is set. Aliased to --bs-input-icon-error.
12
+ * @prop --bs-input-icon-color-disabled: Icon color when disabled is set. Aliased to --bs-input-icon-disabled.
13
+ * @prop --bs-input-field-bg: Field background. Aliased to --bs-input-bg-default.
14
+ * @prop --bs-input-field-bg-disabled: Field background when disabled is set. Aliased to --bs-input-bg-disabled.
15
+ * @prop --bs-input-field-border: Field border color. Aliased to --bs-input-border-default.
16
+ * @prop --bs-input-field-border-hover: Field border color on hover. Aliased to --bs-input-border-hover.
17
+ * @prop --bs-input-field-border-focus: Field border color when focused. Aliased to --bs-input-border-focus.
18
+ * @prop --bs-input-field-border-error: Field border color when error is set. Aliased to --bs-input-border-error.
19
+ * @prop --bs-input-field-text: Input text color. Aliased to --bs-input-text.
20
+ * @prop --bs-input-field-placeholder: Placeholder text color. Aliased to --bs-input-placeholder.
21
+ * @prop --bs-input-label-color: Label text color. Aliased to --bs-input-label.
22
+ * @prop --bs-input-description-color: Description text color. Aliased to --bs-input-description.
23
+ * @prop --bs-input-error-color: Error message text color. Aliased to --bs-input-error.
24
+ * @prop --bs-input-chip-bg: Chip pill background for type="chip". Aliased to --bs-input-bg-disabled.
25
+ * @prop --bs-input-chip-text: Chip pill text color for type="chip". Aliased to --bs-input-text.
26
+ */
1
27
  :host {
2
28
  display: block;
29
+
30
+ --bs-input-radius: var(--bs-border-radius-100);
31
+ --bs-input-height: var(--bs-spacing-600);
32
+ --bs-input-padding-x: var(--bs-spacing-150);
33
+ --bs-input-padding-y: var(--bs-spacing-100);
34
+ --bs-input-gap: var(--bs-spacing-200);
35
+ --bs-input-icon-size: var(--bs-spacing-300);
36
+ --bs-input-stack-gap: var(--bs-spacing-50);
37
+ --bs-input-error-icon-size: var(--bs-spacing-250);
38
+
39
+ --bs-input-field-bg: var(--bs-input-bg-default);
40
+ --bs-input-field-bg-disabled: var(--bs-input-bg-disabled);
41
+ --bs-input-field-border: var(--bs-input-border-default);
42
+ --bs-input-field-border-hover: var(--bs-input-border-hover);
43
+ --bs-input-field-border-focus: var(--bs-input-border-focus);
44
+ --bs-input-field-border-error: var(--bs-input-border-error);
45
+ --bs-input-field-text: var(--bs-input-text);
46
+ --bs-input-field-placeholder: var(--bs-input-placeholder);
47
+ --bs-input-label-color: var(--bs-input-label);
48
+ --bs-input-description-color: var(--bs-input-description);
49
+ --bs-input-error-color: var(--bs-input-error);
50
+
51
+ /* --bs-input-icon carries a malformed value in the vendored tokens.css (see CLAUDE.md's "Known
52
+ harmless noise" note) -- --bs-icon-muted is aliased directly here instead. */
53
+ --bs-input-icon-color: var(--bs-icon-muted);
54
+ --bs-input-icon-color-error: var(--bs-input-icon-error);
55
+ --bs-input-icon-color-disabled: var(--bs-input-icon-disabled);
56
+
57
+ --bs-input-chip-bg: var(--bs-input-bg-disabled);
58
+ --bs-input-chip-text: var(--bs-input-text);
3
59
  }
4
60
 
5
61
  .bs-input {
6
62
  display: flex;
7
63
  flex-direction: column;
8
- gap: var(--bs-spacing-100);
64
+ gap: var(--bs-input-stack-gap);
9
65
  font-family: inherit;
10
66
  }
11
67
 
12
68
  .bs-input__label {
13
69
  font-size: var(--bs-font-size-sm);
14
70
  font-weight: var(--bs-font-weight-medium);
15
- color: var(--bs-input-label);
71
+ color: var(--bs-input-label-color);
16
72
  }
17
73
 
18
- .bs-input__control {
19
- height: var(--bs-spacing-600);
20
- padding: 0 var(--bs-spacing-300);
21
- border: 1px solid var(--bs-input-border-default);
22
- border-radius: var(--bs-border-radius-100);
23
- background: var(--bs-input-bg-default);
24
- color: var(--bs-input-text);
25
- font-size: var(--bs-font-size-md);
26
- font-family: inherit;
74
+ .bs-input__required {
75
+ color: var(--bs-input-error-color);
76
+ margin-left: 2px;
27
77
  }
28
78
 
29
- .bs-input__control::placeholder {
30
- color: var(--bs-input-placeholder);
79
+ .bs-input__field {
80
+ /* border-box so padding-y/padding-x from the Figma redline sits inside the fixed height,
81
+ instead of adding to it. */
82
+ box-sizing: border-box;
83
+ display: flex;
84
+ align-items: center;
85
+ gap: var(--bs-input-gap);
86
+ height: var(--bs-input-height);
87
+ padding: var(--bs-input-padding-y) var(--bs-input-padding-x);
88
+ border: 1px solid var(--bs-input-field-border);
89
+ border-radius: var(--bs-input-radius);
90
+ background: var(--bs-input-field-bg);
91
+ }
92
+
93
+ .bs-input__field:hover:not(.bs-input__field--disabled) {
94
+ border-color: var(--bs-input-field-border-hover);
95
+ }
96
+
97
+ .bs-input__field:focus-within {
98
+ border-color: var(--bs-input-field-border-focus);
99
+ }
100
+
101
+ .bs-input__field--error {
102
+ border-color: var(--bs-input-field-border-error);
31
103
  }
32
104
 
33
- .bs-input__control:hover:not(:disabled) {
34
- border-color: var(--bs-input-border-hover);
105
+ .bs-input__field--disabled {
106
+ background: var(--bs-input-field-bg-disabled);
107
+ cursor: not-allowed;
35
108
  }
36
109
 
37
- .bs-input__control:focus-visible {
110
+ .bs-input__control {
111
+ flex: 1;
112
+ min-width: 0;
113
+ border: none;
38
114
  outline: none;
39
- border-color: var(--bs-input-border-focus);
115
+ padding: 0;
116
+ background: transparent;
117
+ color: var(--bs-input-field-text);
118
+ font-size: var(--bs-font-size-md);
119
+ font-family: inherit;
120
+ }
121
+
122
+ .bs-input__control::placeholder {
123
+ color: var(--bs-input-field-placeholder);
40
124
  }
41
125
 
42
126
  .bs-input__control:disabled {
43
- background: var(--bs-input-bg-disabled);
44
127
  color: var(--bs-input-text-disabled);
45
128
  cursor: not-allowed;
46
129
  }
47
130
 
48
- .bs-input--error .bs-input__control {
49
- border-color: var(--bs-input-border-error);
131
+ /* Suppress the browser's own password-field decorations (Safari/Chrome's "suggest strong
132
+ password" key icon, Edge's reveal/clear buttons) -- type="password" renders its own
133
+ show/hide toggle via .bs-input__password-toggle, so the native one just collides with it. */
134
+ .bs-input__control::-webkit-strong-password-auto-fill-button,
135
+ .bs-input__control::-webkit-credentials-auto-fill-button {
136
+ display: none !important;
137
+ visibility: hidden;
138
+ pointer-events: none;
139
+ position: absolute;
140
+ right: 0;
141
+ }
142
+
143
+ .bs-input__control::-webkit-textfield-decoration-container {
144
+ visibility: hidden;
145
+ }
146
+
147
+ .bs-input__control::-ms-reveal,
148
+ .bs-input__control::-ms-clear {
149
+ display: none;
50
150
  }
51
151
 
52
152
  .bs-input--error .bs-input__label {
53
- color: var(--bs-input-label);
153
+ color: var(--bs-input-label-color);
154
+ }
155
+
156
+ .bs-input__icon,
157
+ .bs-input__end-icon {
158
+ display: none;
159
+ align-items: center;
160
+ flex-shrink: 0;
161
+ color: var(--bs-input-icon-color);
162
+ }
163
+
164
+ .bs-input__icon--visible,
165
+ .bs-input__end-icon--visible {
166
+ display: flex;
167
+ }
168
+
169
+ .bs-input__icon ::slotted(*),
170
+ .bs-input__end-icon ::slotted(*) {
171
+ display: block;
172
+ /* Fixed 24px artboard, independent of the field's font size -- not 1em. */
173
+ width: var(--bs-input-icon-size);
174
+ height: var(--bs-input-icon-size);
175
+ }
176
+
177
+ .bs-input__field--error .bs-input__icon,
178
+ .bs-input__field--error .bs-input__end-icon {
179
+ color: var(--bs-input-icon-color-error);
180
+ }
181
+
182
+ .bs-input__field--disabled .bs-input__icon,
183
+ .bs-input__field--disabled .bs-input__end-icon {
184
+ color: var(--bs-input-icon-color-disabled);
54
185
  }
55
186
 
56
187
  .bs-input__description {
57
188
  font-size: var(--bs-font-size-xs);
58
- color: var(--bs-input-description);
189
+ color: var(--bs-input-description-color);
59
190
  }
60
191
 
61
192
  .bs-input__error {
193
+ display: flex;
194
+ align-items: center;
195
+ gap: var(--bs-input-stack-gap);
62
196
  font-size: var(--bs-font-size-xs);
63
- color: var(--bs-input-error);
197
+ color: var(--bs-input-error-color);
198
+ }
199
+
200
+ .bs-input__error-icon {
201
+ flex-shrink: 0;
202
+ width: var(--bs-input-error-icon-size);
203
+ height: var(--bs-input-error-icon-size);
204
+ }
205
+
206
+ /* Textarea (type="textarea"): the field grows to fit rows, instead of a fixed single-line height. */
207
+ .bs-input__field--textarea {
208
+ height: auto;
209
+ align-items: flex-start;
210
+ }
211
+
212
+ .bs-input__control--textarea {
213
+ resize: vertical;
214
+ }
215
+
216
+ /* Number stepper (type="number") */
217
+ .bs-input__stepper {
218
+ display: flex;
219
+ flex-direction: column;
220
+ }
221
+
222
+ .bs-input__stepper-btn {
223
+ display: flex;
224
+ align-items: center;
225
+ justify-content: center;
226
+ border: none;
227
+ background: transparent;
228
+ color: inherit;
229
+ padding: 0;
230
+ cursor: pointer;
231
+ }
232
+
233
+ .bs-input__stepper-btn:disabled {
234
+ cursor: not-allowed;
235
+ }
236
+
237
+ /* Password toggle (type="password") */
238
+ .bs-input__password-toggle {
239
+ display: flex;
240
+ align-items: center;
241
+ justify-content: center;
242
+ border: none;
243
+ background: transparent;
244
+ color: inherit;
245
+ padding: 0;
246
+ cursor: pointer;
247
+ width: var(--bs-input-icon-size);
248
+ height: var(--bs-input-icon-size);
249
+ }
250
+
251
+ .bs-input__password-toggle:disabled {
252
+ cursor: not-allowed;
253
+ }
254
+
255
+ .bs-input__password-toggle svg {
256
+ width: 100%;
257
+ height: 100%;
258
+ }
259
+
260
+ /* Dropdown (type="dropdown") */
261
+ .bs-input__chevron {
262
+ width: var(--bs-input-icon-size);
263
+ height: var(--bs-input-icon-size);
264
+ }
265
+
266
+ .bs-input__field-wrapper {
267
+ position: relative;
268
+ width: 100%;
269
+ }
270
+
271
+ .bs-input__dropdown-menu {
272
+ position: absolute;
273
+ top: calc(100% + var(--bs-input-stack-gap));
274
+ left: 0;
275
+ right: 0;
276
+ z-index: 1;
277
+ }
278
+
279
+ /* Date (type="date") default calendar icon */
280
+ .bs-input__calendar {
281
+ width: var(--bs-input-icon-size);
282
+ height: var(--bs-input-icon-size);
283
+ }
284
+
285
+ /* Search (type="search") default magnifying-glass icon */
286
+ .bs-input__search-icon {
287
+ width: var(--bs-input-icon-size);
288
+ height: var(--bs-input-icon-size);
289
+ }
290
+
291
+ /* Chip input (type="chip") */
292
+ .bs-input__field--chip {
293
+ flex-wrap: wrap;
294
+ height: auto;
295
+ min-height: var(--bs-input-height);
296
+ }
297
+
298
+ .bs-input__chips {
299
+ display: flex;
300
+ flex-wrap: wrap;
301
+ align-items: center;
302
+ gap: var(--bs-spacing-100);
303
+ flex: 1;
304
+ min-width: 0;
305
+ }
306
+
307
+ .bs-input__chip {
308
+ display: inline-flex;
309
+ align-items: center;
310
+ gap: 4px;
311
+ background: var(--bs-input-chip-bg);
312
+ color: var(--bs-input-chip-text);
313
+ border-radius: var(--bs-input-radius);
314
+ padding: 2px 6px;
315
+ font-size: var(--bs-font-size-sm);
316
+ }
317
+
318
+ .bs-input__chip-remove {
319
+ border: none;
320
+ background: transparent;
321
+ color: inherit;
322
+ cursor: pointer;
323
+ padding: 0;
324
+ line-height: 1;
325
+ }
326
+
327
+ .bs-input__chip-input {
328
+ flex: 1;
329
+ min-width: 60px;
330
+ }
331
+
332
+ /* Initials/Country composite selects (type="initials"/"country") */
333
+ .bs-input__title-select,
334
+ .bs-input__country-select {
335
+ flex-shrink: 0;
336
+ width: auto;
337
+ border: none;
338
+ outline: none;
339
+ background: transparent;
340
+ color: var(--bs-input-field-text);
341
+ font-size: var(--bs-font-size-md);
342
+ font-family: inherit;
343
+ }
344
+
345
+ /* Pin input (type="pin") */
346
+ .bs-input__field--pin {
347
+ border: none;
348
+ padding: 0;
349
+ background: transparent;
350
+ gap: var(--bs-input-gap);
351
+ }
352
+
353
+ .bs-input__pin-cell {
354
+ box-sizing: border-box;
355
+ width: var(--bs-input-height);
356
+ height: var(--bs-input-height);
357
+ text-align: center;
358
+ border: 1px solid var(--bs-input-field-border);
359
+ border-radius: var(--bs-input-radius);
360
+ background: var(--bs-input-field-bg);
361
+ color: var(--bs-input-field-text);
362
+ font-size: var(--bs-font-size-md);
363
+ font-family: inherit;
364
+ outline: none;
365
+ }
366
+
367
+ .bs-input__pin-cell:focus {
368
+ border-color: var(--bs-input-field-border-focus);
369
+ }
370
+
371
+ .bs-input__field--pin.bs-input__field--disabled .bs-input__pin-cell {
372
+ background: var(--bs-input-field-bg-disabled);
373
+ cursor: not-allowed;
64
374
  }