@wwtdev/bsds-css 2.29.0 → 3.0.0-rc.21

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 (94) hide show
  1. package/README.md +4 -4
  2. package/dist/wwt-bsds-preset.js +196 -68
  3. package/dist/wwt-bsds.css +2182 -1460
  4. package/dist/wwt-bsds.min.css +1 -1
  5. package/package.json +7 -11
  6. package/dist/components/_accordions.scss +0 -122
  7. package/dist/components/_alert.scss +0 -143
  8. package/dist/components/_badge.scss +0 -95
  9. package/dist/components/_banner.scss +0 -68
  10. package/dist/components/_buttons.scss +0 -289
  11. package/dist/components/_chart.scss +0 -169
  12. package/dist/components/_circle-buttons.scss +0 -231
  13. package/dist/components/_dropdown-options.scss +0 -236
  14. package/dist/components/_dropdown.scss +0 -189
  15. package/dist/components/_empty-state.scss +0 -99
  16. package/dist/components/_filter-buttons.scss +0 -116
  17. package/dist/components/_flyout.scss +0 -75
  18. package/dist/components/_form-booleans.scss +0 -182
  19. package/dist/components/_form-character-count.scss +0 -21
  20. package/dist/components/_form-container.scss +0 -111
  21. package/dist/components/_form-elements.scss +0 -40
  22. package/dist/components/_form-field-details.scss +0 -19
  23. package/dist/components/_form-hints.scss +0 -22
  24. package/dist/components/_form-input-composite.scss +0 -312
  25. package/dist/components/_form-input-phone.scss +0 -21
  26. package/dist/components/_form-input-search.scss +0 -74
  27. package/dist/components/_form-labels.scss +0 -40
  28. package/dist/components/_form-switches.scss +0 -154
  29. package/dist/components/_form-text-fields.scss +0 -205
  30. package/dist/components/_horizontal-navigation-mobile.scss +0 -238
  31. package/dist/components/_horizontal-navigation.scss +0 -220
  32. package/dist/components/_inline-tabs.scss +0 -86
  33. package/dist/components/_loader.scss +0 -105
  34. package/dist/components/_modal.scss +0 -185
  35. package/dist/components/_overlay.scss +0 -34
  36. package/dist/components/_pagination.scss +0 -85
  37. package/dist/components/_pills.scss +0 -216
  38. package/dist/components/_profile-details.scss +0 -44
  39. package/dist/components/_profile-img.scss +0 -73
  40. package/dist/components/_profile-layout.scss +0 -29
  41. package/dist/components/_spinner.scss +0 -95
  42. package/dist/components/_tab-list.scss +0 -151
  43. package/dist/components/_table.scss +0 -331
  44. package/dist/components/_tables.scss +0 -84
  45. package/dist/components/_timeline.scss +0 -122
  46. package/dist/components/_toast.scss +0 -149
  47. package/dist/components/_toaster.scss +0 -27
  48. package/dist/components/_tooltip.scss +0 -183
  49. package/dist/components/_vertical-navigation.scss +0 -280
  50. package/dist/components/accordions.css +0 -118
  51. package/dist/components/alert.css +0 -139
  52. package/dist/components/badge.css +0 -91
  53. package/dist/components/banner.css +0 -64
  54. package/dist/components/buttons.css +0 -285
  55. package/dist/components/chart.css +0 -165
  56. package/dist/components/circle-buttons.css +0 -227
  57. package/dist/components/dropdown-options.css +0 -232
  58. package/dist/components/dropdown.css +0 -185
  59. package/dist/components/empty-state.css +0 -95
  60. package/dist/components/filter-buttons.css +0 -112
  61. package/dist/components/flyout.css +0 -71
  62. package/dist/components/form-booleans.css +0 -178
  63. package/dist/components/form-character-count.css +0 -17
  64. package/dist/components/form-container.css +0 -108
  65. package/dist/components/form-elements.css +0 -36
  66. package/dist/components/form-field-details.css +0 -15
  67. package/dist/components/form-hints.css +0 -18
  68. package/dist/components/form-input-composite.css +0 -308
  69. package/dist/components/form-input-phone.css +0 -17
  70. package/dist/components/form-input-search.css +0 -70
  71. package/dist/components/form-labels.css +0 -36
  72. package/dist/components/form-switches.css +0 -150
  73. package/dist/components/form-text-fields.css +0 -201
  74. package/dist/components/horizontal-navigation-mobile.css +0 -234
  75. package/dist/components/horizontal-navigation.css +0 -216
  76. package/dist/components/inline-tabs.css +0 -83
  77. package/dist/components/loader.css +0 -101
  78. package/dist/components/modal.css +0 -181
  79. package/dist/components/overlay.css +0 -30
  80. package/dist/components/pagination.css +0 -81
  81. package/dist/components/pills.css +0 -212
  82. package/dist/components/profile-details.css +0 -40
  83. package/dist/components/profile-img.css +0 -69
  84. package/dist/components/profile-layout.css +0 -25
  85. package/dist/components/spinner.css +0 -91
  86. package/dist/components/tab-list.css +0 -147
  87. package/dist/components/table.css +0 -327
  88. package/dist/components/tables.css +0 -80
  89. package/dist/components/timeline.css +0 -118
  90. package/dist/components/toast.css +0 -145
  91. package/dist/components/toaster.css +0 -23
  92. package/dist/components/tooltip.css +0 -179
  93. package/dist/components/vertical-navigation.css +0 -276
  94. package/dist/wwt-bsds-wc-base.css +0 -1129
@@ -1,178 +0,0 @@
1
- /* Containers and Labels for Checkbox/Radio */
2
- .bs-boolean {
3
- display: inline-flex;
4
- align-items: center;
5
- font-size: var(--bs-text-base);
6
- font-weight: 400;
7
- line-height: 115%;
8
- }
9
-
10
- .bs-boolean:where([data-size='sm']) input {
11
- height: .875rem;
12
- width: .875rem;
13
- }
14
-
15
- .bs-boolean label {
16
- font-size: var(--bs-text-base);
17
- font-weight: 400;
18
- line-height: 1.5;
19
- width: auto;
20
- }
21
-
22
- /* not using gap on .bs-boolean due to dead click zone */
23
- .bs-boolean label {
24
- padding-inline-end: 0.5em;
25
- }
26
-
27
- .bs-boolean input + label {
28
- padding-inline: 0.5em 0;
29
- }
30
-
31
- .bs-boolean:where([data-size='sm']),
32
- .bs-boolean:where([data-size='sm']) label {
33
- font-size: var(--bs-text-sm);
34
- }
35
-
36
-
37
- /* Checkbox & Radio Input */
38
-
39
- :where(input[type='checkbox'], input[type='radio']),
40
- :is(.bs-boolean :where(input), .bs-checkbox) { /* .bs-checkbox added to accommodate 'fake' cbs */
41
- appearance: none;
42
- box-shadow: inset 0 0 0 0.125rem var(--box-shadow, var(--bs-ink-base));
43
- cursor: pointer;
44
- display: grid;
45
- height: 1rem;
46
- margin: 0;
47
- place-content: center;
48
- position: relative;
49
- width: 1rem;
50
- }
51
-
52
- :where(input[type='checkbox'], input[type='radio']):focus-visible,
53
- :is(.bs-boolean :where(input), .bs-checkbox):focus-visible {
54
- box-shadow: inset 0 0 0 0.125rem var(--box-shadow, var(--bs-ink-base)),
55
- 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
56
- 0 0 0 4px var(--outline-color, var(--bs-blue-base));
57
- outline: 2px solid transparent;
58
- }
59
-
60
- :where(input[type='checkbox']),
61
- :is(.bs-boolean :where([type='checkbox']), .bs-checkbox) {
62
- border-radius: 0.125rem;
63
- }
64
-
65
- :where(input[type='radio']),
66
- .bs-boolean :where([type='radio']) {
67
- border-radius: 50%;
68
- }
69
-
70
- /* Checkbox's checkbox, checkmark. Checkmark is hidden unless checked/indeterminate. */
71
- input:where([type='checkbox'])::before,
72
- :is(.bs-boolean :where([type="checkbox"]), .bs-checkbox)::before {
73
- --cb-filled-size: var(--filled-size, 1rem);
74
- content: '';
75
- border-radius: 0.125rem;
76
- box-shadow: inset var(--cb-filled-size) var(--cb-filled-size) var(--fill-bg-color, var(--bs-blue-base));
77
- height: var(--cb-filled-size);
78
- visibility: hidden;
79
- width: var(--cb-filled-size);
80
- }
81
-
82
- input:where([type='checkbox'])::after,
83
- :is(.bs-boolean :where([type="checkbox"]), .bs-checkbox)::after {
84
- border: solid var(--bs-bg-base);
85
- border-width: 0 0.125rem 0.125rem 0;
86
- content: '';
87
- height: var(--inner-check-height, 0.75em);
88
- left: 50%;
89
- position: absolute;
90
- top: 50%;
91
- transform-origin: center;
92
- transform: translate(-50%, -60%) rotate(45deg);
93
- visibility: hidden;
94
- width: var(--inner-check-width, 0.375em);
95
- }
96
-
97
- input:where([type='checkbox']):where(:indeterminate)::after,
98
- .bs-boolean :where([type="checkbox"]):where(:indeterminate)::after,
99
- .bs-checkbox:where([data-indeterminate="true"], :indeterminate)::after {
100
- border: none;
101
- background-color: var(--bs-bg-base);
102
- height: var(--inner-dash-height, 0.125rem);
103
- transform: translate(-50%, -0.0625rem) rotate(0deg);
104
- width: var(--inner-dash-width, 0.625em);
105
- }
106
-
107
- /* Radio outer circle, Radio dot. Dot is hidden unless checked. */
108
- input:where([type='radio'])::before,
109
- .bs-boolean :where([type="radio"])::before {
110
- --radio-filled-size: var(--filled-size, 1rem);
111
- background-color: var(--fill-bg-color, var(--bs-blue-base));
112
- border-radius: 50%;
113
- box-sizing: content-box;
114
- content: '';
115
- height: var(--radio-filled-size);
116
- visibility: hidden;
117
- width: var(--radio-filled-size);
118
- }
119
-
120
- input:where([type='radio'])::after,
121
- .bs-boolean :where([type="radio"])::after {
122
- background-color: var(--bs-bg-base);
123
- border-radius: 50%;
124
- box-sizing: content-box;
125
- content: '';
126
- height: var(--inner-dot-size, 0.375rem);
127
- left: 50%;
128
- position: absolute;
129
- top: 50%;
130
- transform: translate(-50%, -50%);
131
- visibility: hidden;
132
- width: var(--inner-dot-size, 0.375rem);
133
- }
134
-
135
- /* Show checkmark, indeterminate mark, or radio dot */
136
-
137
- .bs-checkbox:where([data-indeterminate="true"], [data-checked="true"], :checked, :indeterminate)::before,
138
- .bs-checkbox:where([data-indeterminate="true"], [data-checked="true"], :checked, :indeterminate)::after,
139
- input:where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='radio']:checked)::before,
140
- input:where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='radio']:checked)::after,
141
- .bs-boolean :where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='radio']:checked)::before,
142
- .bs-boolean :where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='radio']:checked)::after {
143
- visibility: visible;
144
- }
145
-
146
- /* ---------- Sizes ----------- */
147
-
148
- .bs-boolean:where([data-size="sm"]),
149
- .bs-checkbox:where([data-size="sm"]) {
150
- --filled-size: 0.75rem;
151
- --inner-check-height: 0.5625rem;
152
- --inner-check-width: 0.3125rem;
153
- --inner-dash-height: 0.125rem;
154
- --inner-dash-width: .75em;
155
- --inner-dot-size: 0.25rem;
156
- }
157
-
158
- /* ---------- Disabled State ----------- */
159
-
160
- :where(input[type="checkbox"], input[type="radio"]):disabled,
161
- .bs-boolean:where([data-disabled="true"]),
162
- .bs-checkbox:where([data-disabled="true"]) {
163
- --box-shadow: var(--bs-ink-disabled);
164
- --fill-bg-color: var(--bs-ink-disabled);
165
- background-color: transparent;
166
- cursor: default;
167
- pointer-events: none;
168
- }
169
-
170
- /* ---------- Error state ----------- */
171
-
172
- input:where([type='checkbox'], [type='radio'])[data-error]:where(:not([data-error="false"])),
173
- .bs-boolean :where(input[data-error="true"]), /* deprecate this one in favor of next line */
174
- .bs-boolean:where([data-error="true"]),
175
- .bs-checkbox:where([data-error="true"]) {
176
- --box-shadow: var(--bs-red-base);
177
- --outline-color: var(--bs-red-base);
178
- }
@@ -1,17 +0,0 @@
1
- .bs-character-count {
2
- color: var(--bs-ink-base);
3
- font-size: var(--bs-text-xs);
4
- font-weight: 400;
5
- text-align: right;
6
- white-space: nowrap;
7
- }
8
-
9
- :where(:disabled, [data-disabled="true"]) + .bs-character-count,
10
- :where(:disabled, [data-disabled="true"]) .bs-character-count,
11
- .bs-character-count:where([data-disabled="true"]) {
12
- visibility: hidden;
13
- }
14
-
15
- .bs-character-count:where([data-error="true"]) {
16
- color: var(--bs-ink-red);
17
- }
@@ -1,108 +0,0 @@
1
- .bs-form-container {
2
- background: var(--bs-bg-base-to-light);
3
- border-radius: 0;
4
- }
5
-
6
- @media (min-width: 752px) {
7
- .bs-form-container {
8
- border-radius: 8px;
9
- }
10
- }
11
-
12
- .bs-form-container :where(.bs-form-container-header-wrapper) {
13
- padding: var(--bs-space-3) var(--bs-space-4);
14
- display: flex;
15
- }
16
-
17
- .bs-form-container :where(.bs-form-container-header) {
18
- padding-right: var(--bs-space-6);
19
- display: flex;
20
- flex: 1;
21
- flex-direction: column;
22
- flex-wrap: wrap;
23
- justify-content: center;
24
- }
25
-
26
- .bs-form-container :where(.bs-form-container-title-wrapper) {
27
- margin-right: auto;
28
- display: flex;
29
- align-items: center;
30
- }
31
-
32
- .bs-form-container :where(.bs-form-container-title) {
33
- color: var(--bs-ink-medium);
34
- font-size: var(--bs-text-base);
35
- }
36
-
37
- .bs-form-container :where(.bs-form-container-title-addon) {
38
- margin-left: var(--bs-space-2);
39
- display: flex;
40
- align-items: center;
41
- gap: var(--bs-space-2);
42
- }
43
-
44
- .bs-form-container :where(.bs-form-container-header-icon) {
45
- margin-right: var(--bs-space-2);
46
- color: var(--bs-ink-base);
47
- height: 1rem;
48
- width: 1rem;
49
- }
50
-
51
- .bs-form-container :where(.bs-form-container-subtitle) {
52
- margin-top: var(--bs-space-1);
53
- color: var(--bs-ink-light);
54
- font-size: var(--bs-text-sm);
55
- }
56
-
57
- .bs-form-container :where(.bs-form-container-header-actions) {
58
- display: flex;
59
- align-items: center;
60
- gap: var(--bs-space-4);
61
- }
62
-
63
- .bs-form-container :where(.bs-form-container-content) {
64
- display: none;
65
- padding: var(--bs-space-6);
66
- border-top: 1px solid var(--bs-border-light);
67
- }
68
-
69
- .bs-form-container :where(.bs-form-container-content):where([data-open="true"]) {
70
- display: flex;
71
- }
72
-
73
- /* adds styling utilities for icons in header actions slot */
74
- .bs-form-container :where(.bs-form-container-header-actions) :where(.bs-icon) {
75
- color: var(--bs-ink-medium);
76
- cursor: pointer;
77
- transition: transform 200ms ease-in-out, color 100ms ease-in-out;
78
-
79
- /* color utilities for specified icons */
80
- &:where([data-component="bs-icon-caret-down"]) {
81
- color: var(--bs-ink-base);
82
- }
83
-
84
- &:where([data-component="bs-icon-edit"]):hover {
85
- color: var(--bs-ink-blue);
86
- }
87
-
88
- &:where([data-component="bs-icon-delete"]):hover {
89
- color: var(--bs-ink-red);
90
- }
91
- }
92
-
93
- .bs-form-container :where(.bs-form-container-header-actions):where([data-open="true"]) {
94
- /* transition utilities for specified icons */
95
- :where([data-component="bs-icon-caret-down"]) {
96
- transform: rotate(180deg);
97
- }
98
- }
99
-
100
- /* inactive state styles */
101
- .bs-form-container:where([data-inactive="true"]) {
102
- background: rgba(255, 255, 255, 0.5);
103
- }
104
-
105
- .bs-form-container :where(.bs-form-container-title:where([data-inactive="true"])),
106
- .bs-form-container :where(.bs-form-container-subtitle:where([data-inactive="true"])) {
107
- color: var(--bs-ink-disabled);
108
- }
@@ -1,36 +0,0 @@
1
- /* Generally applicable (all input types) */
2
- :where([data-required]:not([data-required="false"])) {
3
- color: var(--bs-ink-red);
4
- font-weight: var(--bs-font-bold, 600);
5
- }
6
-
7
- :where([data-disabled]:not([data-disabled="false"]), [data-disabled]:not([data-disabled="false"]) [data-required]:not([data-required="false"])) {
8
- color: var(--bs-gray-400);
9
- }
10
-
11
- :where(.box) :is(input, textarea, select):where(:focus-visible),
12
- :where(.box) :is(.bs-input, .bs-textarea, .bs-select):where(:focus-visible) {
13
- --offset-color: var(--bs-bg-medium);
14
- }
15
- :where(.box[data-invert]) :is(input, textarea, select):where(:focus-visible),
16
- :where(.box[data-invert]) :is(.bs-input, .bs-textarea, .bs-select):where(:focus-visible) {
17
- --offset-color: var(--bs-bg-invert-to-base);
18
- }
19
-
20
- /* Errors and Messages */
21
- :is(input, select, textarea):where([data-error]:not([data-error="false"])),
22
- :is(.bs-input, .bs-select, .bs-textarea):where([data-error]:not([data-error="false"])) {
23
- --input-border: var(--bs-ink-red);
24
- }
25
-
26
- /* Fieldset */
27
- :where(fieldset) {
28
- border: none;
29
- margin-left: 0;
30
- margin-right: 0;
31
- padding: 0;
32
- }
33
- :where(fieldset legend) {
34
- margin-bottom: 0.25rem;
35
- padding: 0;
36
- }
@@ -1,15 +0,0 @@
1
- .bs-field-details {
2
- display: flex;
3
- justify-content: space-between;
4
- align-items: flex-start;
5
- gap: var(--bs-space-2);
6
- margin-top: 0.5rem;
7
- }
8
-
9
- :where(textarea, bs-textarea) + .bs-field-details {
10
- margin-top: 0.25rem;
11
- }
12
-
13
- .bs-field-details :where(.bs-character-count:first-child) {
14
- margin-left: auto;
15
- }
@@ -1,18 +0,0 @@
1
- .bs-hint {
2
- --hint-color: var(--bs-ink-light);
3
- color: var(--hint-color);
4
- font-size: var(--bs-text-xs);
5
- list-style: none;
6
- margin: 0;
7
- min-width: 0;
8
- overflow-wrap: break-word;
9
- padding: 0;
10
- }
11
-
12
- .bs-hint:where([data-error]:not([data-error="false"])) {
13
- --hint-color: var(--bs-ink-red);
14
- }
15
-
16
- :where(:disabled, [data-disabled="true"]) .bs-hint {
17
- --hint-color: var(--bs-ink-disabled);
18
- }
@@ -1,308 +0,0 @@
1
- /* 0 0 1 for width to allow e.g. tailwind override */
2
- :is(div, *):where(.bs-input-addon) {
3
- width: 100%;
4
- }
5
-
6
- .bs-input-addon {
7
- --input-border: var(--bs-border-input);
8
- align-items: center;
9
- background-color: var(--input-bg, var(--bs-bg-base));
10
- border-radius: .25rem;
11
- color: var(--bs-ink-base);
12
- display: flex;
13
- height: var(--input-addon-height, 2.5rem);
14
- overflow: hidden;
15
- padding: 0;
16
- pointer-events: none;
17
- position: relative;
18
- }
19
-
20
- :where(.dark) .bs-input-addon {
21
- background-color: var(--input-bg, transparent);
22
- }
23
-
24
- .bs-input-addon * {
25
- background-color: transparent;
26
- }
27
-
28
- /* Fix issue in Windows, where <select> options would be invisible, due to background-color: transparent */
29
- .bs-input-addon :where(.bs-select, select) {
30
- background-color: var(--input-bg, var(--bs-bg-base));
31
- }
32
-
33
- /**
34
- Implement an outer 'border' via pseudo-element instead of
35
- on main element to avoid content shifting, double-stroke effect,
36
- and issues with box-sizing
37
- */
38
- .bs-input-addon::after,
39
- .bs-input-addon::before,
40
- .bs-input-addon ::after,
41
- .bs-input-addon ::before {
42
- pointer-events: none;
43
- }
44
-
45
- .bs-input-addon::after,
46
- .bs-input-addon::before {
47
- content: '';
48
- height: 100%;
49
- left: 0;
50
- position: absolute;
51
- top: 0;
52
- width: 100%;
53
- }
54
-
55
- .bs-input-addon::after {
56
- border-color: var(--input-border);
57
- border-radius: .25rem;
58
- border-style: solid;
59
- border-width: var(--input-border-width, 1px);
60
- }
61
-
62
- .bs-input-addon :where(.bs-input-addon)::after {
63
- border-color: var(--input-addon-nested-border);
64
- border-style: solid;
65
- border-width: var(--input-border-width, 1px);
66
- }
67
-
68
- .bs-input-addon > * {
69
- flex-grow: 0;
70
- flex-shrink: 0;
71
- position: relative;
72
- }
73
-
74
- .bs-input-addon > :where([data-part="main"], .bs-input-addon, bs-input, .bs-input),
75
- .bs-input-addon > :where([data-autowidth]:not([data-autowidth="false"]), .bs-input-addon, bs-input, .bs-input) {
76
- flex-grow: 1;
77
- flex-shrink: 1;
78
- }
79
-
80
- .bs-input-addon > :where([data-part="main"]) > :where(input, select),
81
- .bs-input-addon > :where([data-autowidth]:not([data-autowidth="false"])) > :where(input, select) {
82
- width: 100%;
83
- }
84
-
85
- .bs-input-addon > *:where(:not(.bs-input-addon)) {
86
- align-items: center;
87
- border-width: 0px;
88
- display: flex;
89
- height: 100%;
90
- overflow: hidden;
91
- pointer-events: auto;
92
- }
93
-
94
- /* Remove (hide) children's borders, outlines */
95
- .bs-input-addon > *,
96
- .bs-input-addon :where(input, select),
97
- .bs-input-addon :is(bs-input, bs-select) :where(input, select),
98
- .bs-input-addon :is(input, select):where(.bs-input, .bs-select),
99
- .bs-input-addon :where(.bs-input-addon) {
100
- --input-border: transparent;
101
- --input-border-width: 0px;
102
- }
103
-
104
- .bs-input-addon {
105
- --input-addon-nested-border: transparent;
106
- }
107
-
108
- .bs-input-addon :where(:focus-within) :where(input, select, button),
109
- .bs-input-addon :where(:focus-within) :is(bs-input, bs-select) :where(input, select),
110
- .bs-input-addon :where(:focus-within) :is(input, select, button):where(.bs-input, .bs-select),
111
- .bs-input-addon :where(input, select, button):where(:focus, :focus-within, :focus-visible),
112
- .bs-input-addon :is(input, select):where(.bs-input, .bs-select):where(:focus, :focus-within, :focus-visible),
113
- .bs-input-addon :is(bs-input, bs-select) :where(input, select):where(:focus, :focus-within, :focus-visible) {
114
- --input-border: transparent;
115
- box-shadow: none;
116
- outline: none;
117
- }
118
-
119
- /* -------- Inner-bordered styles -------- */
120
- /** Inner borders should be straight; shown only if variant: "inner-bordered" */
121
-
122
- .bs-input-addon:where([data-variant="inner-bordered"]) {
123
- --input-addon-nested-border: var(--bs-violet-200);
124
- }
125
-
126
- .bs-input-addon > :where(.bs-input-addon:not(:last-child, :focus-within, [data-part="right"])),
127
- .bs-input-addon > :where(:not(:last-child, :focus-within, [data-part="right"]))::after {
128
- border-top-right-radius: 0;
129
- border-bottom-right-radius: 0;
130
- }
131
-
132
- .bs-input-addon > :where(.bs-input-addon:not(:first-child, :focus-within, [data-part="left"])),
133
- .bs-input-addon > :where(:not(:first-child, :focus-within, [data-part="left"]))::after {
134
- border-top-left-radius: 0;
135
- border-bottom-left-radius: 0;
136
- }
137
-
138
- .bs-input-addon:where([data-variant="inner-bordered"]) > :where(:not(:focus, :focus-within))::after {
139
- border-left-width: 0px;
140
- border-right-width: 1px;
141
- border-right-color: var(--input-addon-nested-border);
142
- }
143
-
144
- .bs-input-addon:where([data-variant="inner-bordered"]) > :where(:not(.bs-input-addon, :focus, :focus-within))::after {
145
- content: '';
146
- height: 100%;
147
- left: 0;
148
- position: absolute;
149
- top: 0;
150
- width: 100%;
151
- }
152
-
153
- .bs-input-addon:where([data-variant="inner-bordered"]) > :where(.bs-input-addon)::after {
154
- border-radius: 0px;
155
- }
156
-
157
- /* -------- Auto Padding for Children, Auto Sizing Icons -------- */
158
- /* Opt in for now, for backwards compatibility */
159
- .bs-input-addon:where([data-autopad="true"], [data-variant="combobox"]) > *:where(:not(.bs-input-addon)) {
160
- padding-inline: 0;
161
- }
162
-
163
- .bs-input-addon:where([data-autopad="true"], [data-variant="combobox"]) > :where([data-part="left"]:not(.bs-input-addon)),
164
- .bs-input-addon:where([data-autopad="true"], [data-variant="combobox"]) > :where(:first-child:not(.bs-input-addon)) {
165
- padding-inline: 0.75rem 0.5rem;
166
- }
167
-
168
- .bs-input-addon:where([data-autopad="true"], [data-variant="combobox"]) > :where([data-part="right"]:not(.bs-input-addon)),
169
- .bs-input-addon:where([data-autopad="true"], [data-variant="combobox"]) > :where(:last-child:not(.bs-input-addon)) {
170
- padding-inline: 0.5rem 0.75rem;
171
- }
172
-
173
- .bs-input-addon:where([data-autopad="true"][data-multifocus]) > *:where(:not(.bs-input-addon)) {
174
- padding-inline: 0.75rem;
175
- }
176
-
177
- .bs-input-addon:where([data-autosize-icons="true"], [data-variant="combobox"]) > :where(:not([data-autowidth], [data-part="main"], .bs-input-addon)) {
178
- height: 100%;
179
- min-width: min-content;
180
- }
181
-
182
- .bs-input-addon:where([data-autosize-icons="true"], [data-variant="combobox"]) :where(svg) {
183
- height: auto;
184
- max-height: 100%;
185
- width: 1rem;
186
- }
187
-
188
- /* -------- Focus styles -------- */
189
- .bs-input-addon {
190
- --focus-border: var(--bs-blue-base);
191
- }
192
-
193
- .bs-input-addon:where(:not([data-multifocus]):focus-within),
194
- .bs-input-addon:where([data-multifocus="false"]:focus-within),
195
- .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) :where(input, select):where(:focus, :focus-within, :focus-visible),
196
- .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) :is(input, select):where(.bs-input, .bs-select):where(:focus, :focus-within, :focus-visible),
197
- .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) :is(bs-input, bs-select) :where(input, select):where(:focus, :focus-within, :focus-visible) {
198
- --input-border: var(--focus-border);
199
- position: relative;
200
- z-index: 1;
201
- }
202
-
203
- .bs-input-addon :where(.bs-input-addon:focus-within) {
204
- --input-addon-nested-border: var(--focus-border);
205
- z-index: 1;
206
- }
207
-
208
- .bs-input-addon :where(.bs-input-addon:focus-within)::after {
209
- z-index: 1;
210
- }
211
-
212
- .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) > :where(:not(.bs-input-addon)) > :is(input, select, button):where(:focus),
213
- .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) > :is(input, select):where(.bs-input, .bs-select):where(:focus),
214
- .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) > :is(bs-input, bs-select) :where(input:focus, select:focus),
215
- .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) > :where(input:focus, select:focus, button:focus) {
216
- border-radius: .25rem;
217
- box-shadow: var(--focus-border) 0px 0px 0px 1px inset;
218
- z-index: 1;
219
- }
220
-
221
- .bs-input-addon:where(:not([data-multifocus]):focus-within)::after,
222
- .bs-input-addon:where([data-multifocus="false"]:focus-within)::after {
223
- border-width: 1px;
224
- border-radius: .25rem;
225
- }
226
-
227
- .bs-input-addon:where(:focus-within) :where(:not(:focus, :focus-within))::after,
228
- .bs-input-addon:where(:focus-within) :where(:not(:focus, :focus-within)) {
229
- border-color: transparent;
230
- }
231
-
232
- /* Straight-lined ::before border to fill the gap below the rounded ::after border */
233
- .bs-input-addon:where([data-multifocus]:not([data-multifocus="false"])) :where(:focus-within)::before {
234
- border-bottom-width: 1px;
235
- border-color: var(--bs-violet-300);
236
- border-radius: 0;
237
- border-top-width: 1px;
238
- z-index: 1;
239
- }
240
-
241
- /* -------- Disabled styles -------- */
242
- .bs-input-addon:where([data-disabled]:not([data-disabled="false"])),
243
- .bs-input-addon:where([data-disabled]:not([data-disabled="false"])) .bs-button {
244
- --input-bg: var(--bs-bg-disabled);
245
- --input-border: var(--bs-ink-disabled);
246
- --input-addon-nested-border: var(--bs-ink-disabled);
247
- color: var(--bs-ink-disabled);
248
- }
249
- .bs-input-addon:where([data-disabled]:not([data-disabled="false"])) * {
250
- pointer-events: none;
251
- }
252
- .bs-input-addon:where([data-disabled]:not([data-disabled="false"]))::after,
253
- .bs-input-addon:where([data-disabled]:not([data-disabled="false"]))::before,
254
- .bs-input-addon:where([data-disabled]:not([data-disabled="false"])):where([data-variant="inner-bordered"]) {
255
- --input-border-width: 0;
256
- }
257
-
258
- .bs-input-addon:where([data-disabled]:not([data-disabled="false"])):where([data-variant="inner-bordered"]) > :where(:not(:focus, :focus-within))::after {
259
- border-right-width: 0;
260
- }
261
-
262
- /* -------- Error styles -------- */
263
- .bs-input-addon:where([data-error]:not([data-error="false"])),
264
- .bs-input-addon:where([data-error]:not([data-error="false"])) :where(.bs-input-addon) {
265
- --focus-border: var(--bs-ink-red);
266
- --input-border: var(--bs-ink-red);
267
- }
268
-
269
- .bs-input-addon:where([data-error]:not([data-error="false"]),[data-disabled]:not([data-disabled="false"])) > *::before,
270
- .bs-input-addon:where(.bs-input-addon[data-error]:not([data-error="false"]) .bs-input-addon, .bs-input-addon[data-disabled]:not([data-disabled="false"]) .bs-input-addon) > *::before {
271
- border-color: var(--input-border);
272
- }
273
-
274
- /* -------- Label margin -------- */
275
- :where(label, .bs-label, bs-label) + .bs-input-addon {
276
- margin-top: 0.25rem;
277
- }
278
-
279
- /* ----------------- Variant: Combobox Input ----------------- */
280
- /*
281
- Combobox variant also shares styles with data-autopad="true" &
282
- data-autosize-icons="true" - see above
283
- */
284
- .bs-input-addon:where([data-variant="combobox"]) {
285
- --input-addon-nested-border: transparent;
286
- }
287
-
288
- .bs-input-addon:where([data-variant="combobox"]) :where(button svg) {
289
- transform: var(--icon-btn-transform, none);
290
- transition: var(--bs-trans-rotate180);
291
- }
292
-
293
- .bs-input-addon:where([data-variant="combobox"]) :where(button[data-open="true"]) {
294
- --icon-btn-transform: rotate(180deg);
295
- }
296
-
297
- .bs-input-addon:where([data-variant="combobox"][data-disabled="true"]) > :where(button) {
298
- opacity: 0;
299
- }
300
-
301
- .bs-input-addon:where([data-variant="combobox"]) > :where(button) {
302
- border-radius: .25rem;
303
- outline: 1px solid transparent;
304
- }
305
-
306
- .bs-input-addon:where([data-variant="combobox"]) > :where(button:focus-visible) {
307
- outline: 1px solid var(--focus-border);
308
- }
@@ -1,17 +0,0 @@
1
- .bs-input-phone :where(.bs-input-addon) > button {
2
- align-items: center;
3
- column-gap: .5rem;
4
- cursor: pointer;
5
- display: grid;
6
- grid-template-columns: 1.25rem auto .75rem;
7
- min-width: 6rem;
8
- padding: 0 1rem;
9
- }
10
-
11
- .bs-input-phone .bs-input-addon:where([data-disabled]:not([data-disabled="false"])) :where(button) :where(span) {
12
- filter: grayscale(1);
13
- }
14
-
15
- .bs-input-phone ul:where(.bs-dropdown-options) {
16
- min-width: 7.5rem;
17
- }