@carbon/web-components 2.60.0 → 2.61.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 (210) hide show
  1. package/custom-elements.json +1401 -361
  2. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  3. package/es/components/breadcrumb/breadcrumb.scss.js.map +1 -1
  4. package/es/components/date-picker/date-picker-input.d.ts +13 -1
  5. package/es/components/date-picker/date-picker-input.d.ts.map +1 -1
  6. package/es/components/date-picker/date-picker-input.js +36 -16
  7. package/es/components/date-picker/date-picker-input.js.map +1 -1
  8. package/es/components/date-picker/date-picker.d.ts +6 -0
  9. package/es/components/date-picker/date-picker.d.ts.map +1 -1
  10. package/es/components/date-picker/date-picker.js +10 -2
  11. package/es/components/date-picker/date-picker.js.map +1 -1
  12. package/es/components/date-picker/date-picker.scss.js +1 -1
  13. package/es/components/date-picker/date-picker.scss.js.map +1 -1
  14. package/es/components/date-picker/defs.d.ts +18 -1
  15. package/es/components/date-picker/defs.d.ts.map +1 -1
  16. package/es/components/date-picker/defs.js +19 -1
  17. package/es/components/date-picker/defs.js.map +1 -1
  18. package/es/components/date-picker/next/adapters/web-component-adapter.d.ts +143 -0
  19. package/es/components/date-picker/next/adapters/web-component-adapter.d.ts.map +1 -0
  20. package/es/components/date-picker/next/adapters/web-component-adapter.js +215 -0
  21. package/es/components/date-picker/next/adapters/web-component-adapter.js.map +1 -0
  22. package/es/components/date-picker/next/components/calendar-renderer.d.ts +136 -0
  23. package/es/components/date-picker/next/components/calendar-renderer.d.ts.map +1 -0
  24. package/es/components/date-picker/next/components/calendar-renderer.js +278 -0
  25. package/es/components/date-picker/next/components/calendar-renderer.js.map +1 -0
  26. package/es/components/date-picker/next/components/date-picker-input-skeleton.d.ts +35 -0
  27. package/es/components/date-picker/next/components/date-picker-input-skeleton.d.ts.map +1 -0
  28. package/es/components/date-picker/next/components/date-picker-input-skeleton.js +73 -0
  29. package/es/components/date-picker/next/components/date-picker-input-skeleton.js.map +1 -0
  30. package/es/components/date-picker/next/components/date-picker-input.d.ts +196 -0
  31. package/es/components/date-picker/next/components/date-picker-input.d.ts.map +1 -0
  32. package/es/components/date-picker/next/components/date-picker-input.js +334 -0
  33. package/es/components/date-picker/next/components/date-picker-input.js.map +1 -0
  34. package/es/components/date-picker/next/components/date-picker.d.ts +329 -0
  35. package/es/components/date-picker/next/components/date-picker.d.ts.map +1 -0
  36. package/es/components/date-picker/next/components/date-picker.js +621 -0
  37. package/es/components/date-picker/next/components/date-picker.js.map +1 -0
  38. package/es/components/date-picker/next/components/date-picker.scss.js +14 -0
  39. package/es/components/date-picker/next/components/date-picker.scss.js.map +1 -0
  40. package/es/components/date-picker/next/index.d.ts +11 -0
  41. package/es/components/date-picker/next/index.d.ts.map +1 -0
  42. package/es/components/date-picker/next/index.js +11 -0
  43. package/es/components/dropdown/dropdown.d.ts +8 -0
  44. package/es/components/dropdown/dropdown.d.ts.map +1 -1
  45. package/es/components/dropdown/dropdown.js +4 -2
  46. package/es/components/dropdown/dropdown.js.map +1 -1
  47. package/es/components/fluid-date-picker/fluid-date-picker-input.d.ts +39 -0
  48. package/es/components/fluid-date-picker/fluid-date-picker-input.d.ts.map +1 -0
  49. package/es/components/fluid-date-picker/fluid-date-picker-input.js +59 -0
  50. package/es/components/fluid-date-picker/fluid-date-picker-input.js.map +1 -0
  51. package/es/components/fluid-date-picker/fluid-date-picker-skeleton.d.ts +20 -0
  52. package/es/components/fluid-date-picker/fluid-date-picker-skeleton.d.ts.map +1 -0
  53. package/es/components/fluid-date-picker/fluid-date-picker-skeleton.js +74 -0
  54. package/es/components/fluid-date-picker/fluid-date-picker-skeleton.js.map +1 -0
  55. package/es/components/fluid-date-picker/fluid-date-picker.d.ts +24 -0
  56. package/es/components/fluid-date-picker/fluid-date-picker.d.ts.map +1 -0
  57. package/es/components/fluid-date-picker/fluid-date-picker.js +51 -0
  58. package/es/components/fluid-date-picker/fluid-date-picker.js.map +1 -0
  59. package/es/components/fluid-date-picker/fluid-date-picker.scss.js +14 -0
  60. package/es/components/fluid-date-picker/fluid-date-picker.scss.js.map +1 -0
  61. package/es/components/fluid-date-picker/index.d.ts +10 -0
  62. package/es/components/fluid-date-picker/index.d.ts.map +1 -0
  63. package/es/components/fluid-date-picker/index.js +10 -0
  64. package/es/components/pagination/pagination.scss.js +1 -1
  65. package/es/components/password-input/password-input.d.ts.map +1 -1
  66. package/es/components/password-input/password-input.js +3 -2
  67. package/es/components/password-input/password-input.js.map +1 -1
  68. package/es/components/radio-button/radio-button.js +1 -1
  69. package/es/components/radio-button/radio-button.js.map +1 -1
  70. package/es/components/select/select.d.ts +8 -0
  71. package/es/components/select/select.d.ts.map +1 -1
  72. package/es/components/select/select.js +4 -2
  73. package/es/components/select/select.js.map +1 -1
  74. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  75. package/es/components/text-input/text-input.d.ts +17 -0
  76. package/es/components/text-input/text-input.d.ts.map +1 -1
  77. package/es/components/text-input/text-input.js +28 -6
  78. package/es/components/text-input/text-input.js.map +1 -1
  79. package/es/components/textarea/textarea.d.ts.map +1 -1
  80. package/es/components/textarea/textarea.js +2 -1
  81. package/es/components/textarea/textarea.js.map +1 -1
  82. package/es/components/ui-shell/header.scss.js +1 -1
  83. package/es/components/ui-shell/header.scss.js.map +1 -1
  84. package/es/index.js +1 -1
  85. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  86. package/es-custom/components/breadcrumb/breadcrumb.scss.js.map +1 -1
  87. package/es-custom/components/date-picker/date-picker-input.d.ts +13 -1
  88. package/es-custom/components/date-picker/date-picker-input.d.ts.map +1 -1
  89. package/es-custom/components/date-picker/date-picker-input.js +36 -16
  90. package/es-custom/components/date-picker/date-picker-input.js.map +1 -1
  91. package/es-custom/components/date-picker/date-picker.d.ts +6 -0
  92. package/es-custom/components/date-picker/date-picker.d.ts.map +1 -1
  93. package/es-custom/components/date-picker/date-picker.js +10 -2
  94. package/es-custom/components/date-picker/date-picker.js.map +1 -1
  95. package/es-custom/components/date-picker/date-picker.scss.js +1 -1
  96. package/es-custom/components/date-picker/date-picker.scss.js.map +1 -1
  97. package/es-custom/components/date-picker/defs.d.ts +18 -1
  98. package/es-custom/components/date-picker/defs.d.ts.map +1 -1
  99. package/es-custom/components/date-picker/defs.js +19 -1
  100. package/es-custom/components/date-picker/defs.js.map +1 -1
  101. package/es-custom/components/date-picker/next/adapters/web-component-adapter.d.ts +143 -0
  102. package/es-custom/components/date-picker/next/adapters/web-component-adapter.d.ts.map +1 -0
  103. package/es-custom/components/date-picker/next/adapters/web-component-adapter.js +215 -0
  104. package/es-custom/components/date-picker/next/adapters/web-component-adapter.js.map +1 -0
  105. package/es-custom/components/date-picker/next/components/calendar-renderer.d.ts +136 -0
  106. package/es-custom/components/date-picker/next/components/calendar-renderer.d.ts.map +1 -0
  107. package/es-custom/components/date-picker/next/components/calendar-renderer.js +278 -0
  108. package/es-custom/components/date-picker/next/components/calendar-renderer.js.map +1 -0
  109. package/es-custom/components/date-picker/next/components/date-picker-input-skeleton.d.ts +35 -0
  110. package/es-custom/components/date-picker/next/components/date-picker-input-skeleton.d.ts.map +1 -0
  111. package/es-custom/components/date-picker/next/components/date-picker-input-skeleton.js +73 -0
  112. package/es-custom/components/date-picker/next/components/date-picker-input-skeleton.js.map +1 -0
  113. package/es-custom/components/date-picker/next/components/date-picker-input.d.ts +196 -0
  114. package/es-custom/components/date-picker/next/components/date-picker-input.d.ts.map +1 -0
  115. package/es-custom/components/date-picker/next/components/date-picker-input.js +334 -0
  116. package/es-custom/components/date-picker/next/components/date-picker-input.js.map +1 -0
  117. package/es-custom/components/date-picker/next/components/date-picker.d.ts +329 -0
  118. package/es-custom/components/date-picker/next/components/date-picker.d.ts.map +1 -0
  119. package/es-custom/components/date-picker/next/components/date-picker.js +621 -0
  120. package/es-custom/components/date-picker/next/components/date-picker.js.map +1 -0
  121. package/es-custom/components/date-picker/next/components/date-picker.scss.js +14 -0
  122. package/es-custom/components/date-picker/next/components/date-picker.scss.js.map +1 -0
  123. package/es-custom/components/date-picker/next/index.d.ts +11 -0
  124. package/es-custom/components/date-picker/next/index.d.ts.map +1 -0
  125. package/es-custom/components/date-picker/next/index.js +11 -0
  126. package/es-custom/components/dropdown/dropdown.d.ts +8 -0
  127. package/es-custom/components/dropdown/dropdown.d.ts.map +1 -1
  128. package/es-custom/components/dropdown/dropdown.js +4 -2
  129. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  130. package/es-custom/components/fluid-date-picker/fluid-date-picker-input.d.ts +39 -0
  131. package/es-custom/components/fluid-date-picker/fluid-date-picker-input.d.ts.map +1 -0
  132. package/es-custom/components/fluid-date-picker/fluid-date-picker-input.js +59 -0
  133. package/es-custom/components/fluid-date-picker/fluid-date-picker-input.js.map +1 -0
  134. package/es-custom/components/fluid-date-picker/fluid-date-picker-skeleton.d.ts +20 -0
  135. package/es-custom/components/fluid-date-picker/fluid-date-picker-skeleton.d.ts.map +1 -0
  136. package/es-custom/components/fluid-date-picker/fluid-date-picker-skeleton.js +74 -0
  137. package/es-custom/components/fluid-date-picker/fluid-date-picker-skeleton.js.map +1 -0
  138. package/es-custom/components/fluid-date-picker/fluid-date-picker.d.ts +24 -0
  139. package/es-custom/components/fluid-date-picker/fluid-date-picker.d.ts.map +1 -0
  140. package/es-custom/components/fluid-date-picker/fluid-date-picker.js +51 -0
  141. package/es-custom/components/fluid-date-picker/fluid-date-picker.js.map +1 -0
  142. package/es-custom/components/fluid-date-picker/fluid-date-picker.scss.js +14 -0
  143. package/es-custom/components/fluid-date-picker/fluid-date-picker.scss.js.map +1 -0
  144. package/es-custom/components/fluid-date-picker/index.d.ts +10 -0
  145. package/es-custom/components/fluid-date-picker/index.d.ts.map +1 -0
  146. package/es-custom/components/fluid-date-picker/index.js +10 -0
  147. package/es-custom/components/pagination/pagination.scss.js +1 -1
  148. package/es-custom/components/password-input/password-input.d.ts.map +1 -1
  149. package/es-custom/components/password-input/password-input.js +3 -2
  150. package/es-custom/components/password-input/password-input.js.map +1 -1
  151. package/es-custom/components/radio-button/radio-button.js +1 -1
  152. package/es-custom/components/radio-button/radio-button.js.map +1 -1
  153. package/es-custom/components/select/select.d.ts +8 -0
  154. package/es-custom/components/select/select.d.ts.map +1 -1
  155. package/es-custom/components/select/select.js +4 -2
  156. package/es-custom/components/select/select.js.map +1 -1
  157. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  158. package/es-custom/components/text-input/text-input.d.ts +17 -0
  159. package/es-custom/components/text-input/text-input.d.ts.map +1 -1
  160. package/es-custom/components/text-input/text-input.js +28 -6
  161. package/es-custom/components/text-input/text-input.js.map +1 -1
  162. package/es-custom/components/textarea/textarea.d.ts.map +1 -1
  163. package/es-custom/components/textarea/textarea.js +2 -1
  164. package/es-custom/components/textarea/textarea.js.map +1 -1
  165. package/es-custom/components/ui-shell/header.scss.js +1 -1
  166. package/es-custom/components/ui-shell/header.scss.js.map +1 -1
  167. package/es-custom/index.js +1 -1
  168. package/lib/components/date-picker/date-picker-input.d.ts +13 -1
  169. package/lib/components/date-picker/date-picker-input.d.ts.map +1 -1
  170. package/lib/components/date-picker/date-picker.d.ts +6 -0
  171. package/lib/components/date-picker/date-picker.d.ts.map +1 -1
  172. package/lib/components/date-picker/defs.d.ts +18 -1
  173. package/lib/components/date-picker/defs.d.ts.map +1 -1
  174. package/lib/components/date-picker/defs.js +19 -0
  175. package/lib/components/date-picker/defs.js.map +1 -1
  176. package/lib/components/date-picker/next/adapters/web-component-adapter.d.ts +143 -0
  177. package/lib/components/date-picker/next/adapters/web-component-adapter.d.ts.map +1 -0
  178. package/lib/components/date-picker/next/components/calendar-renderer.d.ts +136 -0
  179. package/lib/components/date-picker/next/components/calendar-renderer.d.ts.map +1 -0
  180. package/lib/components/date-picker/next/components/date-picker-input-skeleton.d.ts +35 -0
  181. package/lib/components/date-picker/next/components/date-picker-input-skeleton.d.ts.map +1 -0
  182. package/lib/components/date-picker/next/components/date-picker-input.d.ts +196 -0
  183. package/lib/components/date-picker/next/components/date-picker-input.d.ts.map +1 -0
  184. package/lib/components/date-picker/next/components/date-picker.d.ts +329 -0
  185. package/lib/components/date-picker/next/components/date-picker.d.ts.map +1 -0
  186. package/lib/components/date-picker/next/index.d.ts +11 -0
  187. package/lib/components/date-picker/next/index.d.ts.map +1 -0
  188. package/lib/components/dropdown/dropdown.d.ts +8 -0
  189. package/lib/components/dropdown/dropdown.d.ts.map +1 -1
  190. package/lib/components/fluid-date-picker/fluid-date-picker-input.d.ts +39 -0
  191. package/lib/components/fluid-date-picker/fluid-date-picker-input.d.ts.map +1 -0
  192. package/lib/components/fluid-date-picker/fluid-date-picker-skeleton.d.ts +20 -0
  193. package/lib/components/fluid-date-picker/fluid-date-picker-skeleton.d.ts.map +1 -0
  194. package/lib/components/fluid-date-picker/fluid-date-picker.d.ts +24 -0
  195. package/lib/components/fluid-date-picker/fluid-date-picker.d.ts.map +1 -0
  196. package/lib/components/fluid-date-picker/index.d.ts +10 -0
  197. package/lib/components/fluid-date-picker/index.d.ts.map +1 -0
  198. package/lib/components/password-input/password-input.d.ts.map +1 -1
  199. package/lib/components/select/select.d.ts +8 -0
  200. package/lib/components/select/select.d.ts.map +1 -1
  201. package/lib/components/text-input/text-input.d.ts +17 -0
  202. package/lib/components/text-input/text-input.d.ts.map +1 -1
  203. package/lib/components/textarea/textarea.d.ts.map +1 -1
  204. package/package.json +10 -10
  205. package/scss/components/breadcrumb/breadcrumb.scss +4 -2
  206. package/scss/components/date-picker/date-picker.scss +6 -0
  207. package/scss/components/date-picker/next/components/date-picker.scss +124 -0
  208. package/scss/components/fluid-date-picker/fluid-date-picker.scss +282 -0
  209. package/scss/components/ui-shell/header.scss +14 -8
  210. package/telemetry.yml +29 -11
@@ -184,3 +184,9 @@ $css--plex: true !default;
184
184
  .#{$prefix}--date-picker__input--decorator {
185
185
  @include ai-gradient;
186
186
  }
187
+
188
+ .#{$prefix}--form-requirement {
189
+ box-sizing: border-box;
190
+ inline-size: 0;
191
+ min-inline-size: 100%;
192
+ }
@@ -0,0 +1,124 @@
1
+ //
2
+ // Copyright IBM Corp. 2026
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @use '@carbon/styles/scss/components/date-picker/date-picker' as *;
9
+ @use '@carbon/styles/scss/components/date-picker/date-picker-next' as
10
+ date-picker-next;
11
+ @use '@carbon/styles/scss/config' as *;
12
+ @use '@carbon/styles/scss/spacing' as *;
13
+ @use '@carbon/styles/scss/theme' as *;
14
+ @use '@carbon/styles/scss/utilities' as *;
15
+
16
+ @include date-picker;
17
+ @include date-picker-next.date-picker-next-rules;
18
+
19
+ // =============================================================================
20
+ // WEB COMPONENTS SPECIFIC STYLES
21
+ // These styles add :host() selectors and ::slotted() for shadow DOM
22
+ // =============================================================================
23
+
24
+ :host(#{$prefix}-preview-date-picker) {
25
+ @extend .#{$prefix}--date-picker;
26
+
27
+ position: relative;
28
+ }
29
+
30
+ :host(#{$prefix}-preview-date-picker-input),
31
+ :host(#{$prefix}-preview-date-picker-input-skeleton) {
32
+ @extend .#{$prefix}--date-picker-container;
33
+ }
34
+
35
+ :host(#{$prefix}-preview-date-picker-input[warn]:not([invalid])) {
36
+ @extend .#{$prefix}--date-picker-container--warn;
37
+ }
38
+
39
+ :host(#{$prefix}-preview-date-picker-input[kind='simple']),
40
+ :host(#{$prefix}-preview-date-picker-input-skeleton[kind='simple']) {
41
+ @extend .#{$prefix}--date-picker-container--simple;
42
+ }
43
+
44
+ :host(#{$prefix}-preview-date-picker-input[kind='simple'][short]),
45
+ :host(#{$prefix}-preview-date-picker-input-skeleton[kind='simple'][short]) {
46
+ @extend .#{$prefix}--date-picker-container--simple;
47
+ @extend .#{$prefix}--date-picker-container--short;
48
+ }
49
+
50
+ :host(#{$prefix}-preview-date-picker-input[kind='single']),
51
+ :host(#{$prefix}-preview-date-picker-input-skeleton[kind='single']) {
52
+ @extend .#{$prefix}--date-picker-container--single;
53
+ }
54
+
55
+ :host(#{$prefix}-preview-date-picker-input[kind='from']),
56
+ :host(#{$prefix}-preview-date-picker-input-skeleton[kind='from']) {
57
+ @extend .#{$prefix}--date-picker-container--from;
58
+ }
59
+
60
+ :host(#{$prefix}-preview-date-picker-input[kind='from']),
61
+ :host(#{$prefix}-preview-date-picker-input[kind='to']),
62
+ :host(#{$prefix}-preview-date-picker-input-skeleton[kind='from']),
63
+ :host(#{$prefix}-preview-date-picker-input-skeleton[kind='to']) {
64
+ @extend .#{$prefix}--date-picker-container--from;
65
+ }
66
+
67
+ :host(#{$prefix}-preview-date-picker-input) {
68
+ .#{$prefix}--date-picker__icon {
69
+ @extend .#{$prefix}--date-picker__icon;
70
+ }
71
+
72
+ .#{$prefix}--date-picker__icon--warn {
73
+ @extend .#{$prefix}--date-picker__icon--warn;
74
+ }
75
+
76
+ .#{$prefix}--date-picker__icon--invalid {
77
+ @extend .#{$prefix}--date-picker__icon--invalid;
78
+ }
79
+
80
+ // Shadow DOM slotted content
81
+ ::slotted(#{$prefix}-ai-label),
82
+ ::slotted(#{$prefix}-slug) {
83
+ position: absolute;
84
+ inset-block-start: 50%;
85
+ inset-inline-end: $spacing-08;
86
+ }
87
+
88
+ ::slotted(#{$prefix}-ai-label:not([revert-active])),
89
+ ::slotted(#{$prefix}-slug:not([revert-active])) {
90
+ transform: translateY(-50%);
91
+ }
92
+ }
93
+
94
+ :host(#{$prefix}-preview-date-picker-input-skeleton) {
95
+ @extend .#{$prefix}--date-picker-input-skeleton;
96
+ }
97
+
98
+ :host(#{$prefix}-preview-date-picker-input-skeleton[range]) {
99
+ @extend .#{$prefix}--date-picker-input-skeleton--range;
100
+ }
101
+
102
+ :host(#{$prefix}-preview-date-picker-input[ai-label]) {
103
+ @extend .#{$prefix}--date-picker-container--ai-label;
104
+ }
105
+
106
+ // Calendar component in shadow DOM
107
+ :host(#{$prefix}-preview-date-picker-calendar) {
108
+ display: block;
109
+ outline: none;
110
+
111
+ .#{$prefix}--date-picker__calendar {
112
+ // Override shared styles for Web Components
113
+ // Use box-sizing to include padding in width calculation
114
+ // This ensures the 288px includes the padding, making the content area 272px
115
+ box-sizing: border-box;
116
+ inline-size: rem(288px);
117
+ max-inline-size: rem(288px);
118
+ }
119
+
120
+ .#{$prefix}--date-picker__day,
121
+ .#{$prefix}--date-picker__month-nav {
122
+ font-family: inherit;
123
+ }
124
+ }
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ $css--plex: true !default;
9
+
10
+ @use '@carbon/styles/scss/config' as *;
11
+ @use '@carbon/styles/scss/theme' as *;
12
+ @use '@carbon/styles/scss/spacing' as *;
13
+ @use '@carbon/styles/scss/layout' as *;
14
+ @use '@carbon/styles/scss/utilities/convert';
15
+ @use '@carbon/styles/scss/utilities/skeleton' as *;
16
+ @use '@carbon/styles/scss/components/fluid-date-picker' as *;
17
+ @use '@carbon/styles/scss/components/date-picker/index';
18
+ @use '@carbon/styles/scss/utilities/focus-outline' as *;
19
+
20
+ // ── Fluid date picker (wrapper) ──────────────────────────────────────────────
21
+
22
+ :host(#{$prefix}-fluid-date-picker) {
23
+ @extend .#{$prefix}--date-picker--fluid;
24
+ @include emit-layout-tokens();
25
+
26
+ display: inline-flex;
27
+ inline-size: fit-content;
28
+ max-inline-size: 100%;
29
+
30
+ #floating-menu-container {
31
+ position: absolute;
32
+ inline-size: 100%;
33
+ }
34
+
35
+ .#{$prefix}--date-picker__calendar.open {
36
+ margin-block-start: 0;
37
+ }
38
+
39
+ .flatpickr-next-month,
40
+ .flatpickr-prev-month {
41
+ svg {
42
+ transform: rotate(0) #{'/*rtl:rotate(180deg)*/'};
43
+ }
44
+ }
45
+
46
+ .#{$prefix}--date-picker__day.flatpickr-disabled,
47
+ .flatpickr-day.flatpickr-disabled {
48
+ color: $layer-selected-inverse;
49
+ cursor: not-allowed;
50
+ opacity: 0.5;
51
+
52
+ &:hover {
53
+ background: transparent;
54
+ }
55
+ }
56
+
57
+ .flatpickr-next-month.flatpickr-disabled,
58
+ .flatpickr-prev-month.flatpickr-disabled {
59
+ svg {
60
+ cursor: not-allowed;
61
+ fill: $layer-selected-inverse;
62
+ opacity: 0.5;
63
+ }
64
+
65
+ &:hover {
66
+ svg {
67
+ fill: $layer-selected-inverse;
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ :host(#{$prefix}-fluid-date-picker[invalid]) {
74
+ @extend .#{$prefix}--date-picker--fluid--invalid;
75
+ }
76
+
77
+ :host(#{$prefix}-fluid-date-picker[warn]:not([invalid])) {
78
+ @extend .#{$prefix}--date-picker--fluid--warn;
79
+ }
80
+
81
+ :host(#{$prefix}-fluid-date-picker[readonly]) {
82
+ @extend .#{$prefix}--date-picker--fluid--readonly;
83
+ }
84
+
85
+ // ── Fluid date picker input ──────────────────────────────────────────────────
86
+
87
+ :host(#{$prefix}-fluid-date-picker-input) {
88
+ position: relative;
89
+ display: block;
90
+ box-sizing: border-box;
91
+ background: $field;
92
+ block-size: convert.to-rem(64px);
93
+ border-block-end: 1px solid $border-strong;
94
+ inline-size: 100%;
95
+ max-inline-size: 100%;
96
+ outline: none;
97
+ }
98
+
99
+ :host(#{$prefix}-fluid-date-picker-input[disabled]),
100
+ :host(#{$prefix}-fluid-date-picker-input[readonly]) {
101
+ border-block-end: 1px solid $border-subtle;
102
+ }
103
+
104
+ // When invalid or warn, allow host to grow beyond 64px for error message
105
+ :host(
106
+ #{$prefix}-fluid-date-picker-input[invalid]:not([disabled]):not([readonly])
107
+ ),
108
+ :host(
109
+ #{$prefix}-fluid-date-picker-input[warn]:not([invalid]):not([disabled]):not(
110
+ [readonly]
111
+ )
112
+ ) {
113
+ block-size: auto;
114
+ border-block-end: none;
115
+ min-block-size: convert.to-rem(64px);
116
+ }
117
+
118
+ // Divider between input area and error/warn message
119
+ :host(#{$prefix}-fluid-date-picker-input) .#{$prefix}--date-picker__divider {
120
+ border-style: solid;
121
+ border-color: $border-subtle;
122
+ margin: 0 1rem;
123
+ border-block-end: none;
124
+ inline-size: calc(100% - 2rem);
125
+ }
126
+
127
+ // Hide divider when disabled or readonly
128
+ :host(#{$prefix}-fluid-date-picker-input[disabled])
129
+ .#{$prefix}--date-picker__divider,
130
+ :host(#{$prefix}-fluid-date-picker-input[readonly])
131
+ .#{$prefix}--date-picker__divider {
132
+ display: none;
133
+ }
134
+
135
+ // Error / warn message padding
136
+ :host(
137
+ #{$prefix}-fluid-date-picker-input[invalid]:not([disabled]):not([readonly])
138
+ )
139
+ .#{$prefix}--form-requirement,
140
+ :host(
141
+ #{$prefix}-fluid-date-picker-input[warn]:not([invalid]):not([disabled]):not(
142
+ [readonly]
143
+ )
144
+ )
145
+ .#{$prefix}--form-requirement {
146
+ padding: $spacing-03 convert.to-rem(40px) $spacing-03 $spacing-05;
147
+ margin: 0;
148
+ }
149
+
150
+ // Hide form requirement when disabled or readonly
151
+ :host(#{$prefix}-fluid-date-picker-input[disabled])
152
+ .#{$prefix}--form-requirement,
153
+ :host(#{$prefix}-fluid-date-picker-input[readonly])
154
+ .#{$prefix}--form-requirement {
155
+ display: none;
156
+ }
157
+
158
+ :host(#{$prefix}-fluid-date-picker-input[warn]:not([invalid])) {
159
+ .#{$prefix}--form-requirement {
160
+ color: $text-primary;
161
+ }
162
+ }
163
+
164
+ :host(#{$prefix}-fluid-date-picker-input[kind='single']) {
165
+ max-inline-size: convert.to-rem(288px);
166
+
167
+ .#{$prefix}--date-picker__input {
168
+ inline-size: convert.to-rem(288px);
169
+ }
170
+ }
171
+
172
+ :host(#{$prefix}-fluid-date-picker-input[kind='from']),
173
+ :host(#{$prefix}-fluid-date-picker-input[kind='to']) {
174
+ inline-size: convert.to-rem(143.5px);
175
+
176
+ .#{$prefix}--date-picker__input {
177
+ inline-size: convert.to-rem(143.5px);
178
+ }
179
+ }
180
+
181
+ :host(#{$prefix}-fluid-date-picker-input[kind='to']) {
182
+ border-inline-start: 1px solid $border-strong;
183
+ }
184
+
185
+ :host(#{$prefix}-fluid-date-picker-input[kind='to'][disabled]),
186
+ :host(#{$prefix}-fluid-date-picker-input[kind='to'][readonly]) {
187
+ border-inline-start: 1px solid $border-subtle;
188
+ }
189
+
190
+ :host(
191
+ #{$prefix}-fluid-date-picker-input[invalid]:not([disabled]):not([readonly])
192
+ ) {
193
+ @extend .#{$prefix}--date-picker--fluid--invalid;
194
+ @include focus-outline('invalid');
195
+ }
196
+
197
+ :host(#{$prefix}-fluid-date-picker-input[warn]:not([invalid])) {
198
+ @extend .#{$prefix}--date-picker--fluid--warn;
199
+ }
200
+
201
+ :host(#{$prefix}-fluid-date-picker-input[readonly]) {
202
+ @extend .#{$prefix}--date-picker--fluid--readonly;
203
+ }
204
+
205
+ :host(#{$prefix}-fluid-date-picker-input) .#{$prefix}--label {
206
+ position: absolute;
207
+ z-index: 1;
208
+ display: flex;
209
+ align-items: center;
210
+ margin: 0;
211
+ block-size: convert.to-rem(16px);
212
+ inline-size: calc(100% - 2rem);
213
+ inset-block-start: convert.to-rem(13px);
214
+ inset-inline-start: $spacing-05;
215
+ }
216
+
217
+ :host(#{$prefix}-fluid-date-picker-input) .#{$prefix}--date-picker__input {
218
+ border: none;
219
+ background: transparent;
220
+ block-size: calc(100% - #{convert.to-rem(1px)});
221
+ inline-size: 100%;
222
+ max-inline-size: 100%;
223
+ outline: none;
224
+ padding-block-end: convert.to-rem(13px);
225
+ padding-block-start: convert.to-rem(32px);
226
+ padding-inline: $spacing-05;
227
+
228
+ &:focus {
229
+ @include focus-outline('outline');
230
+ }
231
+ }
232
+
233
+ // Push the calendar icon down to account for the floating label above the input value
234
+ :host(#{$prefix}-fluid-date-picker-input) .#{$prefix}--date-picker__icon {
235
+ inset-block-start: convert.to-rem(43px);
236
+ }
237
+
238
+ :host(#{$prefix}-fluid-date-picker-input[invalid])
239
+ .#{$prefix}--date-picker__icon--invalid,
240
+ :host(#{$prefix}-fluid-date-picker-input[warn]:not([invalid]))
241
+ .#{$prefix}--date-picker__icon--warn {
242
+ inset-block-start: convert.to-rem(80px);
243
+ }
244
+
245
+ :host(#{$prefix}-fluid-date-picker-input[invalid])
246
+ .#{$prefix}--date-picker__icon:not(.#{$prefix}--date-picker__icon--invalid),
247
+ :host(#{$prefix}-fluid-date-picker-input[warn]:not([invalid]))
248
+ .#{$prefix}--date-picker__icon:not(.#{$prefix}--date-picker__icon--warn) {
249
+ display: block;
250
+ }
251
+
252
+ :host(#{$prefix}-fluid-date-picker-input[kind='simple'][invalid])
253
+ .#{$prefix}--date-picker__icon--invalid,
254
+ :host(#{$prefix}-fluid-date-picker-input[kind='simple'][warn]:not([invalid]))
255
+ .#{$prefix}--date-picker__icon--warn {
256
+ display: block;
257
+ }
258
+
259
+ // ── Fluid date picker skeleton ───────────────────────────────────────────────
260
+
261
+ :host(#{$prefix}-fluid-date-picker-skeleton) {
262
+ @extend .#{$prefix}--date-picker--fluid__skeleton;
263
+
264
+ display: block;
265
+ }
266
+
267
+ .#{$prefix}--skeleton {
268
+ &::before {
269
+ position: absolute;
270
+ animation: 3000ms ease-in-out #{$prefix}--skeleton infinite;
271
+ background: $skeleton-element;
272
+ block-size: 100%;
273
+ content: '';
274
+ inline-size: 100%;
275
+ inset-inline-start: 0;
276
+ will-change: transform-origin, transform, opacity;
277
+
278
+ @media (prefers-reduced-motion: reduce) {
279
+ animation: none;
280
+ }
281
+ }
282
+ }
@@ -1,5 +1,5 @@
1
1
  //
2
- // Copyright IBM Corp. 2019, 2024
2
+ // Copyright IBM Corp. 2019, 2026
3
3
  //
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
@@ -58,9 +58,11 @@ $css--plex: true !default;
58
58
  background-color: $layer;
59
59
  block-size: $spacing-09;
60
60
 
61
- &:hover {
62
- background-color: $background-hover;
63
- color: $text-primary;
61
+ @media (any-hover: hover) {
62
+ &:hover {
63
+ background-color: $background-hover;
64
+ color: $text-primary;
65
+ }
64
66
  }
65
67
 
66
68
  &:active {
@@ -71,8 +73,10 @@ $css--plex: true !default;
71
73
  a.#{$prefix}--header__menu-item--current {
72
74
  background-color: $layer-selected;
73
75
 
74
- &:hover {
75
- background-color: $layer-selected-hover;
76
+ @media (any-hover: hover) {
77
+ &:hover {
78
+ background-color: $layer-selected-hover;
79
+ }
76
80
  }
77
81
 
78
82
  &::after {
@@ -92,8 +96,10 @@ $css--plex: true !default;
92
96
  fill: $icon-secondary;
93
97
  }
94
98
 
95
- &:hover ::slotted(svg) {
96
- fill: $icon-primary;
99
+ @media (any-hover: hover) {
100
+ &:hover ::slotted(svg) {
101
+ fill: $icon-primary;
102
+ }
97
103
  }
98
104
 
99
105
  .#{$prefix}--popover {
package/telemetry.yml CHANGED
@@ -20,6 +20,7 @@ collect:
20
20
  - alignment-axis-offset
21
21
  - allow-custom-value
22
22
  - allow-empty
23
+ - allow-input
23
24
  - aria-current
24
25
  - aria-label
25
26
  - aria-labelledby
@@ -50,6 +51,7 @@ collect:
50
51
  - close-icon-description
51
52
  - close-on-activation
52
53
  - close-on-escape
54
+ - close-on-select
53
55
  - collapse-mode
54
56
  - color-scheme
55
57
  - cols
@@ -59,6 +61,7 @@ collect:
59
61
  - counter-mode
60
62
  - danger-description
61
63
  - data-table
64
+ - date-format
62
65
  - decrement-button-assistive-text
63
66
  - default-checked
64
67
  - default-open
@@ -74,6 +77,7 @@ collect:
74
77
  - enable-counter
75
78
  - enable-dialog-element
76
79
  - enable-v12-overflowmenu
80
+ - enabled-range
77
81
  - enter-delay-ms
78
82
  - even
79
83
  - expandable
@@ -120,6 +124,7 @@ collect:
120
124
  - is-active
121
125
  - is-condensed
122
126
  - is-expressive
127
+ - is-fluid
123
128
  - is-not-child-of-header
124
129
  - is-selectable
125
130
  - is-sortable
@@ -145,9 +150,11 @@ collect:
145
150
  - low-contrast
146
151
  - max
147
152
  - max-count
153
+ - max-date
148
154
  - max-length
149
155
  - menu-alignment
150
156
  - min
157
+ - min-date
151
158
  - multiple
152
159
  - name
153
160
  - nested
@@ -159,6 +166,8 @@ collect:
159
166
  - oncds-combo-box-toggled
160
167
  - oncds-content-switcher-beingselected
161
168
  - oncds-content-switcher-selected
169
+ - oncds-date-picker-changed
170
+ - oncds-date-picker-flatpickr-error
162
171
  - oncds-dropdown-beingselected
163
172
  - oncds-dropdown-beingtoggled
164
173
  - oncds-dropdown-selected
@@ -227,6 +236,7 @@ collect:
227
236
  - selection-name
228
237
  - selection-value
229
238
  - selector-initial-focus
239
+ - short
230
240
  - shortcut
231
241
  - should-filter-item
232
242
  - show-password-label
@@ -316,17 +326,6 @@ collect:
316
326
  - oncds-contained-list-item-click
317
327
  # cds-copy-button
318
328
  - autoAlign
319
- # cds-date-picker
320
- - allow-input
321
- - close-on-select
322
- - date-format
323
- - enabled-range
324
- - max-date
325
- - min-date
326
- - oncds-date-picker-changed
327
- - oncds-date-picker-flatpickr-error
328
- # cds-date-picker-input
329
- - short
330
329
  # cds-definition-tooltip
331
330
  - open-on-hover
332
331
  # cds-dialog
@@ -357,6 +356,8 @@ collect:
357
356
  - error-subject
358
357
  - oncds-file-uploader-item-beingdeleted
359
358
  - oncds-file-uploader-item-deleted
359
+ # cds-fluid-date-picker-skeleton
360
+ - date-picker-type
360
361
  # cds-fluid-time-picker-skeleton
361
362
  - is-only-two
362
363
  # cds-form-group
@@ -450,6 +451,19 @@ collect:
450
451
  - items-shown
451
452
  - loop
452
453
  - oncds-page-changed
454
+ # cds-preview-date-picker
455
+ - oncds-preview-date-picker-changed
456
+ - oncds-preview-date-picker-error
457
+ # cds-preview-date-picker-calendar
458
+ - dateFormat
459
+ - focusedDate
460
+ - maxDate
461
+ - minDate
462
+ - oncds-preview-date-picker-calendar-date-select
463
+ - oncds-preview-date-picker-calendar-month-change
464
+ - rangeMode
465
+ - selectedDates
466
+ - viewDate
453
467
  # cds-progress-indicator
454
468
  - current-index
455
469
  - ononChange
@@ -634,6 +648,10 @@ collect:
634
648
  # General - type
635
649
  - number
636
650
  - text
651
+ # cds-fluid-date-picker-skeleton - date-picker-type
652
+ - range
653
+ - simple
654
+ - single
637
655
  # cds-layout - density
638
656
  - condensed
639
657
  - normal