@bikdotai/bik-widgets 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/dist-package/index.css +95 -0
  2. package/dist-package/index.js +2 -0
  3. package/package.json +17 -4
  4. package/.eslintrc +0 -22
  5. package/.eslintrc.js +0 -19
  6. package/.github/workflows/main.yml +0 -293
  7. package/.prettierignore +0 -13
  8. package/.prettierrc +0 -10
  9. package/cypress/apiHelper/endpoints.ts +0 -21
  10. package/cypress/apiHelper/executor.ts +0 -42
  11. package/cypress/e2e/bottomDrawer.cy.ts +0 -49
  12. package/cypress/e2e/directReward.cy.ts +0 -67
  13. package/cypress/e2e/scratchTheCard.cy.ts +0 -68
  14. package/cypress/e2e/stw.cy.ts +0 -82
  15. package/cypress/e2e/waRedirection.cy.ts +0 -46
  16. package/cypress/fixtures/payloads.ts +0 -330
  17. package/cypress/support/commands.ts +0 -37
  18. package/cypress/support/e2e.ts +0 -20
  19. package/cypress.staging.config.ts +0 -23
  20. package/jsconfig.json +0 -6
  21. package/localtest.sh +0 -10
  22. package/log-server.js +0 -86
  23. package/postcss.config.js +0 -8
  24. package/src/Globals.d.ts +0 -2
  25. package/src/assets/lottie/santa.json +0 -11722
  26. package/src/assets/svg/CalendarClockIcon.tsx +0 -30
  27. package/src/assets/svg/CalendarIcon.tsx +0 -24
  28. package/src/assets/svg/CheckIcon.tsx +0 -17
  29. package/src/assets/svg/ChevronIcon.tsx +0 -21
  30. package/src/assets/svg/Close.tsx +0 -39
  31. package/src/assets/svg/Confetti.tsx +0 -140
  32. package/src/assets/svg/Copy.tsx +0 -26
  33. package/src/assets/svg/DropdownCheckIcon.tsx +0 -35
  34. package/src/assets/svg/ErrorIcon.tsx +0 -27
  35. package/src/assets/svg/RadioIcon.tsx +0 -25
  36. package/src/assets/svg/UncheckedCheckboxIcon.tsx +0 -28
  37. package/src/assets/svg/UncheckedRadioIcon.tsx +0 -26
  38. package/src/assets/svg/info.tsx +0 -30
  39. package/src/assets/svg/qrcode.svg +0 -14
  40. package/src/bootstrap.tsx +0 -8
  41. package/src/components/CtaCard/index.tsx +0 -37
  42. package/src/components/CtaCard/preview.module.css +0 -32
  43. package/src/components/CtaCard/style.module.css +0 -32
  44. package/src/components/EmailInput/emailInputBox.tsx +0 -95
  45. package/src/components/Fab/index.tsx +0 -224
  46. package/src/components/Fab/preview.module.css +0 -28
  47. package/src/components/Fab/style.module.css +0 -37
  48. package/src/components/Icons/Call.tsx +0 -26
  49. package/src/components/Icons/Cross.tsx +0 -24
  50. package/src/components/Icons/Gmail.tsx +0 -61
  51. package/src/components/Icons/Instagram.tsx +0 -60
  52. package/src/components/Icons/LiveChat.tsx +0 -43
  53. package/src/components/Icons/Messenger.tsx +0 -57
  54. package/src/components/Icons/Send.tsx +0 -22
  55. package/src/components/Icons/Whatsapp.tsx +0 -24
  56. package/src/components/Shimmer/index.tsx +0 -12
  57. package/src/components/Shimmer/style.module.css +0 -37
  58. package/src/components/SmsInput/smsInputBox.tsx +0 -135
  59. package/src/components/UserDetailsV2/userDetailsV2.desktop.module.css +0 -52
  60. package/src/components/UserDetailsV2/userDetailsV2.mobile.module.css +0 -52
  61. package/src/components/UserDetailsV2/userDetailsV2.module.css +0 -81
  62. package/src/components/UserDetailsV2/userDetailsV2.tsx +0 -527
  63. package/src/components/WhatsappInput/Spinner.tsx +0 -26
  64. package/src/components/WhatsappInput/whatsappInput.module.css +0 -106
  65. package/src/components/WhatsappInput/whatsappInputBox.tsx +0 -155
  66. package/src/components/WhatsappInput/whatsappInputPreviewDesktop.module.css +0 -71
  67. package/src/components/WhatsappInput/whatsappInputPreviewMobile.module.css +0 -65
  68. package/src/components/checkbox/checkbox.module.css +0 -19
  69. package/src/components/checkbox/checkbox.tsx +0 -88
  70. package/src/components/countryCodePicker/countriesDropdown.module.css +0 -77
  71. package/src/components/countryCodePicker/countriesDropdown.tsx +0 -81
  72. package/src/components/couponDetails/coupon.module.css +0 -208
  73. package/src/components/couponDetails/coupon.tsx +0 -210
  74. package/src/components/couponDetails/couponPreviewDesktop.module.css +0 -158
  75. package/src/components/couponDetails/couponPreviewMobile.module.css +0 -164
  76. package/src/components/index.ts +0 -3
  77. package/src/components/inputComponents/Checkbox.module.css +0 -197
  78. package/src/components/inputComponents/Checkbox.tsx +0 -85
  79. package/src/components/inputComponents/DatePicker.module.css +0 -565
  80. package/src/components/inputComponents/DatePicker.tsx +0 -278
  81. package/src/components/inputComponents/Dropdown.module.css +0 -796
  82. package/src/components/inputComponents/Dropdown.tsx +0 -630
  83. package/src/components/inputComponents/InputBox.module.css +0 -401
  84. package/src/components/inputComponents/InputBox.tsx +0 -209
  85. package/src/components/selectedCountry/selectedCountry.module.css +0 -76
  86. package/src/components/selectedCountry/selectedCountry.tsx +0 -76
  87. package/src/components/selectedCountry/selectedCountryPreviewDesktop.module.css +0 -56
  88. package/src/components/selectedCountry/selectedCountryPreviewMobile.module.css +0 -57
  89. package/src/components/userDetailsForm/RenderCustomFields.tsx +0 -333
  90. package/src/components/userDetailsForm/userDetailsForm.tsx +0 -675
  91. package/src/hooks/index.ts +0 -4
  92. package/src/hooks/useExitIntent.ts +0 -452
  93. package/src/hooks/useIsMobile.tsx +0 -21
  94. package/src/hooks/useMessageEvent.ts +0 -8
  95. package/src/hooks/useTriggeredIntentDetails.ts +0 -43
  96. package/src/hooks/useUrlListerner.ts +0 -30
  97. package/src/hooks/useWebSocketLogger.ts +0 -59
  98. package/src/hooks/useWindowEvent.ts +0 -8
  99. package/src/icons/copyIcon.tsx +0 -26
  100. package/src/icons/crossIconDesktop.tsx +0 -20
  101. package/src/icons/crossIconMobile.tsx +0 -20
  102. package/src/index.html +0 -30
  103. package/src/index.ts +0 -32
  104. package/src/index.tsx +0 -1
  105. package/src/repo/widgetRepo.ts +0 -21
  106. package/src/types/customFields.ts +0 -73
  107. package/src/utilities/cookie.ts +0 -70
  108. package/src/utilities/customFieldTypeMapping.ts +0 -67
  109. package/src/utilities/customFieldValidation.ts +0 -201
  110. package/src/utilities/encryption.ts +0 -21
  111. package/src/utilities/exitIntentUtils.ts +0 -31
  112. package/src/utilities/global.css +0 -11
  113. package/src/utilities/languageUtilities.ts +0 -235
  114. package/src/utilities/localRunner.js +0 -26
  115. package/src/utilities/localRunner.ts +0 -27
  116. package/src/utilities/localStorage.ts +0 -40
  117. package/src/utilities/script.tsx +0 -15
  118. package/src/utilities/stringUtils.ts +0 -5
  119. package/src/utilities/styleUtils.ts +0 -134
  120. package/src/utilities/variables.ts +0 -11
  121. package/src/utilities/widgetUtils.js +0 -342
  122. package/src/utilities/widgetUtils.ts +0 -313
  123. package/src/widgets/BottomDrawer/config.ts +0 -41
  124. package/src/widgets/BottomDrawer/index.tsx +0 -116
  125. package/src/widgets/BottomDrawer/modal.tsx +0 -286
  126. package/src/widgets/BottomDrawer/preview.module.css +0 -122
  127. package/src/widgets/BottomDrawer/previewMobile.module.css +0 -124
  128. package/src/widgets/BottomDrawer/style.module.css +0 -279
  129. package/src/widgets/CaptivateBanner/captivateBanner.tsx +0 -200
  130. package/src/widgets/CaptivateBanner/config.ts +0 -72
  131. package/src/widgets/CaptivateBanner/index.tsx +0 -204
  132. package/src/widgets/CaptivateBanner/previewDesktop.module.css +0 -51
  133. package/src/widgets/CaptivateBanner/previewMobile.module.css +0 -51
  134. package/src/widgets/CaptivateBanner/style.module.css +0 -77
  135. package/src/widgets/CaptivateBanner/utils.ts +0 -104
  136. package/src/widgets/CentrallyAlignedPopup/config.ts +0 -42
  137. package/src/widgets/CentrallyAlignedPopup/index.tsx +0 -109
  138. package/src/widgets/CentrallyAlignedPopup/modal.tsx +0 -269
  139. package/src/widgets/CentrallyAlignedPopup/preview.module.css +0 -153
  140. package/src/widgets/CentrallyAlignedPopup/previewMobile.module.css +0 -153
  141. package/src/widgets/CentrallyAlignedPopup/style.module.css +0 -283
  142. package/src/widgets/DirectReward/components/couponDetails.tsx +0 -265
  143. package/src/widgets/DirectReward/components/userDetails.tsx +0 -117
  144. package/src/widgets/DirectReward/config.ts +0 -186
  145. package/src/widgets/DirectReward/directReward.tsx +0 -350
  146. package/src/widgets/DirectReward/index.tsx +0 -579
  147. package/src/widgets/DirectReward/previewStyles/thankYouPreviewDesktop.module.css +0 -276
  148. package/src/widgets/DirectReward/previewStyles/thankYouPreviewMobile.module.css +0 -303
  149. package/src/widgets/DirectReward/previewStyles/userDetailsPreviewDesktop.module.css +0 -511
  150. package/src/widgets/DirectReward/previewStyles/userDetailsPreviewMobile.module.css +0 -462
  151. package/src/widgets/DirectReward/style.module.css +0 -836
  152. package/src/widgets/ExitIntentHook.tsx +0 -28
  153. package/src/widgets/STW/api.ts +0 -70
  154. package/src/widgets/STW/components/svgFactory.tsx +0 -44
  155. package/src/widgets/STW/config.ts +0 -193
  156. package/src/widgets/STW/context.ts +0 -7
  157. package/src/widgets/STW/couponDetails.tsx +0 -121
  158. package/src/widgets/STW/index.tsx +0 -733
  159. package/src/widgets/STW/previewStyles/thankyouPreviewDesktop.module.css +0 -215
  160. package/src/widgets/STW/previewStyles/thankyouPreviewMobile.module.css +0 -205
  161. package/src/widgets/STW/previewStyles/userInputsPreviewDesktop.module.css +0 -732
  162. package/src/widgets/STW/previewStyles/userInputsPreviewMobile.module.css +0 -661
  163. package/src/widgets/STW/previewStyles/wheelPreviewDesktop.module.css +0 -498
  164. package/src/widgets/STW/previewStyles/wheelPreviewMobile.module.css +0 -497
  165. package/src/widgets/STW/stw1.tsx +0 -119
  166. package/src/widgets/STW/stw2Components/wheelDesign.tsx +0 -183
  167. package/src/widgets/STW/stw2Pages/couponDetails.tsx +0 -72
  168. package/src/widgets/STW/stw2Pages/stw2.tsx +0 -212
  169. package/src/widgets/STW/stw2Pages/style.module.css +0 -1226
  170. package/src/widgets/STW/stw2Pages/userDetails.tsx +0 -86
  171. package/src/widgets/STW/stw2Pages/wheel.tsx +0 -117
  172. package/src/widgets/STW/stw2PreviewStyles/thankyouPreviewDesktop.module.css +0 -835
  173. package/src/widgets/STW/stw2PreviewStyles/thankyouPreviewMobile.module.css +0 -787
  174. package/src/widgets/STW/stw2PreviewStyles/userInputsPreviewDesktop.module.css +0 -867
  175. package/src/widgets/STW/stw2PreviewStyles/userInputsPreviewMobile.module.css +0 -798
  176. package/src/widgets/STW/stw2PreviewStyles/wheelPreviewDesktop.module.css +0 -572
  177. package/src/widgets/STW/stw2PreviewStyles/wheelPreviewMobile.module.css +0 -559
  178. package/src/widgets/STW/style.module.css +0 -901
  179. package/src/widgets/STW/userDetails.tsx +0 -150
  180. package/src/widgets/STW/utility.ts +0 -664
  181. package/src/widgets/STW/wheel.tsx +0 -304
  182. package/src/widgets/ScratchCard/ScratchOff/scratchOff.tsx +0 -157
  183. package/src/widgets/ScratchCard/config.ts +0 -152
  184. package/src/widgets/ScratchCard/globalStyle.module.css +0 -931
  185. package/src/widgets/ScratchCard/index.tsx +0 -546
  186. package/src/widgets/ScratchCard/modal.tsx +0 -225
  187. package/src/widgets/ScratchCard/preview.module.css +0 -250
  188. package/src/widgets/ScratchCard/previewMobile.module.css +0 -247
  189. package/src/widgets/ScratchCard/previewStyles/userDetailsPreviewDesktop.module.css +0 -537
  190. package/src/widgets/ScratchCard/previewStyles/userDetailsPreviewMobile.module.css +0 -463
  191. package/src/widgets/ScratchCard/style.module.css +0 -220
  192. package/src/widgets/ShopifyForm/config.ts +0 -168
  193. package/src/widgets/ShopifyForm/index.tsx +0 -214
  194. package/src/widgets/ShopifyForm/previewDesktop.module.css +0 -117
  195. package/src/widgets/ShopifyForm/previewMobile.module.css +0 -131
  196. package/src/widgets/ShopifyForm/shopifyForm.tsx +0 -445
  197. package/src/widgets/ShopifyForm/style.module.css +0 -161
  198. package/src/widgets/SingleButtonRedirection/config.ts +0 -47
  199. package/src/widgets/SingleButtonRedirection/index.tsx +0 -121
  200. package/src/widgets/WebStories/config.ts +0 -105
  201. package/src/widgets/WebStories/index.css +0 -3
  202. package/src/widgets/WebStories/index.tsx +0 -282
  203. package/src/widgets/WebStories/style.module.css +0 -26
  204. package/src/widgets/index.tsx +0 -3
  205. package/src/widgets/utility.ts +0 -31
  206. package/tsconfig.json +0 -12
  207. package/webpack.config.js +0 -239
@@ -1,565 +0,0 @@
1
- /* Variables */
2
-
3
- .bik-datePicker__container {
4
- /* Color and style variables */
5
- --bik-datePicker-border-color: #e0e0e0; /* Default border color */
6
- --bik-datePicker-focus-color: #3b82f6; /* Border color on focus */
7
- --bik-datePicker-error-color: #ef4444; /* Error state color */
8
- --bik-datePicker-text-color: #1f2937; /* Main text color */
9
- --bik-datePicker-text-light: #6b7280; /* Light text color (labels, icons) */
10
- --bik-datePicker-text-muted: #9ca3af; /* Muted/disabled text color */
11
- --bik-datePicker-background: rgba(255, 255, 255, 0.3); /* Input background */
12
- --bik-datePicker-border-radius: 8px; /* Border radius for rounded corners */
13
- --bik-datePicker-transition: 0.2s ease; /* Transition for interactive states */
14
-
15
- /* Icon and label sizing */
16
- --bik-datePicker-icon-size: 20px;
17
- --bik-datePicker-icon-offset: 16px;
18
- --bik-datePicker-label-offset: 8px;
19
-
20
- /* Heights and paddings for desktop, mobile, and preview modes */
21
- --bik-datePicker-height-desktop: 56px;
22
- --bik-datePicker-height-mobile: 48px;
23
- --bik-datePicker-height-preview: 20px;
24
- --bik-datePicker-padding-desktop: 16px 4px 2px 19px;
25
- --bik-datePicker-padding-mobile: 16px 4px 4px 14px;
26
- --bik-datePicker-padding-preview: 2px 2px 2px 4px;
27
- --bik-datePicker-label-padding-desktop: 20px;
28
- --bik-datePicker-label-padding-mobile: 18px;
29
- --bik-datePicker-label-padding-preview: 12px;
30
-
31
- /* Preview mode font/icon sizes */
32
- --bik-datePicker-preview-input-font: 8px;
33
- --bik-datePicker-preview-label-font: 7px;
34
- --bik-datePicker-preview-label-font-floated: 6px;
35
- --bik-datePicker-preview-icon-size: 10px;
36
- --bik-datePicker-preview-icon-svg: 8px;
37
- --bik-datePicker-preview-error-font: 6px;
38
- --bik-datePicker-preview-error-icon: 8px;
39
- --bik-datePicker-preview-input-font-mobile: 7px;
40
- --bik-datePicker-preview-label-font-mobile: 6px;
41
- --bik-datePicker-preview-label-font-floated-mobile: 5px;
42
- --bik-datePicker-preview-icon-size-mobile: 8px;
43
- --bik-datePicker-preview-icon-svg-mobile: 6px;
44
- --bik-datePicker-preview-error-font-mobile: 5px;
45
- --bik-datePicker-preview-error-icon-mobile: 6px;
46
-
47
- /* Container layout */
48
- position: relative;
49
- width: 100%;
50
- margin: 8px 0;
51
- }
52
-
53
- /* Input Wrapper */
54
- .bik-datePicker__inputWrapper {
55
- position: relative;
56
- display: flex;
57
- align-items: center;
58
- background: var(--bik-datePicker-background);
59
- border: 1px solid var(--bik-datePicker-border-color);
60
- border-radius: var(--bik-datePicker-border-radius);
61
- transition: all var(--bik-datePicker-transition);
62
- overflow: hidden;
63
- height: var(--bik-datePicker-height-desktop);
64
- }
65
-
66
- /* Subtle gradient overlay for visual depth */
67
- .bik-datePicker__inputWrapper::before {
68
- content: '';
69
- position: absolute;
70
- inset: 0;
71
- background: linear-gradient(135deg, transparent, rgba(255, 255, 255, 0.1));
72
- border-radius: inherit;
73
- pointer-events: none;
74
- }
75
-
76
- /* Hover state for input wrapper */
77
- .bik-datePicker__inputWrapper:hover:not([data-disabled]) {
78
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
79
- }
80
-
81
- /* Focused state for input wrapper */
82
- .bik-datePicker__inputWrapper[data-focused] {
83
- border-color: var(--bik-datePicker-focus-color);
84
- box-shadow: 0 2px 8px rgba(59, 130, 246, 0.2);
85
- }
86
-
87
- /* Error state for input wrapper */
88
- .bik-datePicker__inputWrapper[data-error] {
89
- border-color: var(--bik-datePicker-error-color);
90
- }
91
-
92
- /* Disabled state for input wrapper */
93
- .bik-datePicker__inputWrapper[data-disabled] {
94
- opacity: 0.6;
95
- cursor: not-allowed;
96
- }
97
-
98
- /* Input Field */
99
- .bik-datePicker__input {
100
- padding: var(--bik-datePicker-padding-desktop) !important;
101
- border: none;
102
- background: transparent !important;
103
- font-weight: 400 !important;
104
- font-size: 14px !important;
105
- color: var(--bik-datePicker-text-color) !important;
106
- width: 100%;
107
- outline: none;
108
- appearance: none;
109
- transition: color 0.15s ease;
110
- cursor: pointer;
111
- box-shadow: none !important;
112
- }
113
-
114
- /* Disabled input field */
115
- .bik-datePicker__input:disabled {
116
- color: var(--bik-datePicker-text-muted);
117
- cursor: not-allowed;
118
- }
119
-
120
- /* Placeholder text style */
121
- .bik-datePicker__input::placeholder {
122
- color: var(--bik-datePicker-text-muted);
123
- opacity: 1;
124
- }
125
-
126
- /* Force light color scheme for date/datetime-local inputs */
127
- .bik-datePicker__input[type='date'],
128
- .bik-datePicker__input[type='datetime-local'] {
129
- color-scheme: light;
130
- }
131
-
132
- /* Minimum width for date input */
133
- .bik-datePicker__input[type='date'] {
134
- min-width: var(--bik-datePicker-height-desktop);
135
- }
136
-
137
- /* Minimum width for datetime-local input */
138
- .bik-datePicker__input[type='datetime-local'] {
139
- min-width: calc(var(--bik-datePicker-height-desktop) * 3);
140
- }
141
-
142
- /* Invalid state for date/datetime-local input */
143
- .bik-datePicker__input[type='date']:invalid,
144
- .bik-datePicker__input[type='datetime-local']:invalid {
145
- color: var(--bik-datePicker-text-muted);
146
- }
147
-
148
- /* Focused + invalid state for date/datetime-local input */
149
- .bik-datePicker__input[type='date']:focus:invalid,
150
- .bik-datePicker__input[type='datetime-local']:focus:invalid {
151
- color: var(--bik-datePicker-text-color);
152
- }
153
-
154
- /* Hide default calendar icon, allow custom icon click-through */
155
- .bik-datePicker__input::-webkit-calendar-picker-indicator {
156
- opacity: 0;
157
- position: absolute;
158
- inset: 0;
159
- width: 100%;
160
- height: 100%;
161
- cursor: pointer;
162
- z-index: 3;
163
- }
164
-
165
- /* Remove default padding from date/datetime fields */
166
- .bik-datePicker__input::-webkit-datetime-edit-fields-wrapper {
167
- padding: 0;
168
- }
169
-
170
- /* Style for all date/datetime field parts (webkit) */
171
- .bik-datePicker__input::-webkit-datetime-edit-text,
172
- .bik-datePicker__input::-webkit-datetime-edit-month-field,
173
- .bik-datePicker__input::-webkit-datetime-edit-day-field,
174
- .bik-datePicker__input::-webkit-datetime-edit-year-field,
175
- .bik-datePicker__input::-webkit-datetime-edit-hour-field,
176
- .bik-datePicker__input::-webkit-datetime-edit-minute-field {
177
- color: var(--bik-datePicker-text-color);
178
- background: transparent;
179
- font-size: 12px !important;
180
- }
181
-
182
- /* Label */
183
- .bik-datePicker__label {
184
- position: absolute;
185
- left: var(--bik-datePicker-label-padding-desktop);
186
- top: 50%;
187
- transform: translateY(-50%);
188
- font-weight: 400;
189
- font-size: 14px;
190
- color: var(--bik-datePicker-text-light);
191
- background: transparent;
192
- max-width: calc(100% - 80px);
193
- transition: all var(--bik-datePicker-transition);
194
- }
195
-
196
- /* Label floating, focus, and filled states */
197
- .bik-datePicker__label[data-floated],
198
- .bik-datePicker__input:focus + .bik-datePicker__label,
199
- .bik-datePicker__input:not(:placeholder-shown) + .bik-datePicker__label,
200
- .bik-datePicker__label--floated {
201
- top: var(--bik-datePicker-label-offset);
202
- transform: none;
203
- font-size: 12px;
204
- font-weight: 400;
205
- color: var(--bik-datePicker-text-muted);
206
- }
207
-
208
- /* Error state for label */
209
- .bik-datePicker__label[data-error],
210
- .bik-datePicker__label--error {
211
- color: var(--bik-datePicker-error-color);
212
- }
213
-
214
- /* Disabled state for label */
215
- .bik-datePicker__label[data-disabled],
216
- .bik-datePicker__label--disabled {
217
- color: var(--bik-datePicker-text-muted);
218
- }
219
-
220
- /* Required asterisk style */
221
- .bik-datePicker__required {
222
- color: var(--bik-datePicker-error-color);
223
- font-weight: 500;
224
- margin-left: 2px;
225
- font-size: 14px;
226
- }
227
-
228
- /* Icon */
229
-
230
- .bik-datePicker__icon {
231
- position: absolute;
232
- right: var(--bik-datePicker-icon-offset);
233
- top: 50%;
234
- transform: translateY(-50%);
235
- width: var(--bik-datePicker-icon-size);
236
- height: var(--bik-datePicker-icon-size);
237
- display: flex;
238
- align-items: center;
239
- justify-content: center;
240
- color: var(--bik-datePicker-text-light);
241
- user-select: none;
242
- z-index: 4;
243
- pointer-events: auto;
244
- }
245
-
246
- /* Error */
247
-
248
- .bik-datePicker__error {
249
- color: var(--bik-datePicker-error-color);
250
- font-size: 10px;
251
- display: flex;
252
- gap: 4px;
253
- margin: 4px 0 0 6px;
254
- align-items: center;
255
- animation: bik-slideInError 0.2s ease-out;
256
- }
257
-
258
- .bik-datePicker__errorIcon {
259
- width: 12px;
260
- height: 12px;
261
- flex-shrink: 0;
262
- color: var(--bik-datePicker-error-color);
263
- }
264
-
265
- /* Error message slide-in animation */
266
- @keyframes bik-slideInError {
267
- from {
268
- opacity: 0;
269
- transform: translateY(-4px);
270
- }
271
- to {
272
- opacity: 1;
273
- transform: translateY(0);
274
- }
275
- }
276
-
277
- /* Accessibility & Prefs */
278
-
279
- /* Reduce motion for accessibility */
280
- @media (prefers-reduced-motion: reduce) {
281
- .bik-datePicker__container * {
282
- transition-duration: 0.01ms !important;
283
- animation-duration: 0.01ms !important;
284
- animation-iteration-count: 1 !important;
285
- }
286
- }
287
-
288
- /* High contrast mode for accessibility */
289
- @media (prefers-contrast: high) {
290
- .bik-datePicker__inputWrapper {
291
- border-width: 2px;
292
- border-color: CanvasText;
293
- }
294
-
295
- .bik-datePicker__inputWrapper[data-focused] {
296
- border-color: Highlight;
297
- outline: 2px solid Highlight;
298
- outline-offset: 2px;
299
- }
300
-
301
- .bik-datePicker__inputWrapper[data-error] {
302
- border-color: #cc0000;
303
- outline: 2px solid #cc0000;
304
- outline-offset: 2px;
305
- }
306
-
307
- .bik-datePicker__label,
308
- .bik-datePicker__input {
309
- color: CanvasText;
310
- font-weight: 400;
311
- }
312
- }
313
-
314
- /* Preview Mode */
315
-
316
- .bik-datePicker__container[data-mode='preview'] {
317
- /* Preview mode variable overrides for compact display */
318
- --bik-current-input-font: var(--bik-datePicker-preview-input-font);
319
- --bik-current-label-font: var(--bik-datePicker-preview-label-font);
320
- --bik-current-label-font-floated: var(
321
- --bik-datePicker-preview-label-font-floated
322
- );
323
- --bik-current-icon-size: var(--bik-datePicker-preview-icon-size);
324
- --bik-current-icon-svg: var(--bik-datePicker-preview-icon-svg);
325
- --bik-current-error-font: var(--bik-datePicker-preview-error-font);
326
- --bik-current-error-icon: var(--bik-datePicker-preview-error-icon);
327
- }
328
-
329
- /* Preview mode input wrapper */
330
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__inputWrapper {
331
- height: var(--bik-datePicker-height-preview);
332
- box-shadow: none;
333
- }
334
-
335
- /* Preview mode input field */
336
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__input {
337
- padding: var(--bik-datePicker-padding-preview);
338
- font-size: var(--bik-current-input-font);
339
- line-height: 1.2;
340
- height: var(--bik-datePicker-height-preview);
341
- }
342
-
343
- /* Preview mode: min-height for date/datetime-local */
344
- .bik-datePicker__container[data-mode='preview']
345
- .bik-datePicker__input[type='date'],
346
- .bik-datePicker__container[data-mode='preview']
347
- .bik-datePicker__input[type='datetime-local'] {
348
- height: var(--bik-datePicker-height-preview);
349
- }
350
-
351
- /* Preview mode: min-width for date */
352
- .bik-datePicker__container[data-mode='preview']
353
- .bik-datePicker__input[type='date'] {
354
- min-width: var(--bik-datePicker-height-preview);
355
- }
356
-
357
- /* Preview mode: min-width and width for datetime-local */
358
- .bik-datePicker__container[data-mode='preview']
359
- .bik-datePicker__input[type='datetime-local'] {
360
- min-width: var(--bik-datePicker-height-preview);
361
- width: var(--bik-datePicker-height-preview);
362
- }
363
-
364
- /* Preview mode label style */
365
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__label {
366
- left: var(--bik-datePicker-label-padding-preview);
367
- font-size: var(--bik-current-label-font);
368
- line-height: 1.2;
369
- padding: 0 4px;
370
- margin-left: -4px;
371
- top: 40%;
372
- max-width: calc(100% - 54px);
373
- white-space: nowrap;
374
- overflow: hidden;
375
- text-overflow: ellipsis;
376
- pointer-events: none;
377
- transition: all var(--bik-datePicker-transition);
378
- z-index: 2;
379
- }
380
-
381
- /* Preview mode required asterisk */
382
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__required {
383
- font-size: var(--bik-current-label-font-floated);
384
- }
385
-
386
- /* Preview mode: floated label */
387
- .bik-datePicker__container[data-mode='preview']
388
- .bik-datePicker__label[data-floated],
389
- .bik-datePicker__container[data-mode='preview']
390
- .bik-datePicker__input:focus
391
- + .bik-datePicker__label,
392
- .bik-datePicker__container[data-mode='preview']
393
- .bik-datePicker__input:not(:placeholder-shown)
394
- + .bik-datePicker__label {
395
- top: 6px;
396
- font-size: var(--bik-current-label-font-floated);
397
- padding: 0 2px;
398
- margin-left: -8px;
399
- }
400
-
401
- /* Preview mode icon style */
402
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__icon {
403
- width: var(--bik-current-icon-size);
404
- height: var(--bik-current-icon-size);
405
- right: 4px;
406
- }
407
-
408
- /* Preview mode icon SVG size */
409
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__icon svg {
410
- width: var(--bik-current-icon-svg);
411
- height: var(--bik-current-icon-svg);
412
- }
413
-
414
- /* Preview mode error message */
415
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__error {
416
- font-size: var(--bik-current-error-font);
417
- margin: 2px 0 0 2px;
418
- }
419
-
420
- /* Preview mode error icon */
421
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__errorIcon {
422
- width: var(--bik-current-error-icon);
423
- height: var(--bik-current-error-icon);
424
- }
425
-
426
- /* Hide browser default date/time elements in preview mode */
427
- .bik-datePicker__container[data-mode='preview']
428
- .bik-datePicker__input::-webkit-datetime-edit-fields-wrapper,
429
- .bik-datePicker__container[data-mode='preview']
430
- .bik-datePicker__input::-webkit-datetime-edit-text,
431
- .bik-datePicker__container[data-mode='preview']
432
- .bik-datePicker__input::-webkit-datetime-edit-month-field,
433
- .bik-datePicker__container[data-mode='preview']
434
- .bik-datePicker__input::-webkit-datetime-edit-day-field,
435
- .bik-datePicker__container[data-mode='preview']
436
- .bik-datePicker__input::-webkit-datetime-edit-year-field,
437
- .bik-datePicker__container[data-mode='preview']
438
- .bik-datePicker__input::-webkit-datetime-edit-hour-field,
439
- .bik-datePicker__container[data-mode='preview']
440
- .bik-datePicker__input::-webkit-datetime-edit-minute-field {
441
- opacity: 0;
442
- color: transparent;
443
- display: none;
444
- }
445
-
446
- /* Hide text for invalid/placeholder in preview mode */
447
- .bik-datePicker__container[data-mode='preview']
448
- .bik-datePicker__input[type='date']:invalid,
449
- .bik-datePicker__container[data-mode='preview']
450
- .bik-datePicker__input[type='datetime-local']:invalid,
451
- .bik-datePicker__container[data-mode='preview']
452
- .bik-datePicker__input[type='date']:placeholder-shown,
453
- .bik-datePicker__container[data-mode='preview']
454
- .bik-datePicker__input[type='datetime-local']:placeholder-shown {
455
- color: transparent;
456
- }
457
-
458
- /* Mobile Responsiveness */
459
-
460
- @media (max-width: 768px) {
461
- /* Container margin for mobile */
462
- .bik-datePicker__container {
463
- margin-bottom: 20px;
464
- }
465
-
466
- /* Input wrapper min-height for mobile */
467
- .bik-datePicker__inputWrapper {
468
- min-height: var(--bik-datePicker-height-mobile);
469
- }
470
-
471
- /* Input field padding and min-height for mobile */
472
- .bik-datePicker__input {
473
- padding: var(--bik-datePicker-padding-mobile) !important;
474
- min-height: var(--bik-datePicker-height-mobile) !important;
475
- }
476
-
477
- /* Date/datetime-local min-heights for mobile */
478
- .bik-datePicker__input[type='date'],
479
- .bik-datePicker__input[type='datetime-local'] {
480
- min-height: var(--bik-datePicker-height-mobile);
481
- }
482
-
483
- /* Date min-width for mobile */
484
- .bik-datePicker__input[type='date'] {
485
- min-width: var(--bik-datePicker-height-mobile);
486
- }
487
-
488
- /* Datetime-local min-width for mobile */
489
- .bik-datePicker__input[type='datetime-local'] {
490
- min-width: calc(var(--bik-datePicker-height-mobile) * 3);
491
- }
492
-
493
- /* Label left padding for mobile */
494
- .bik-datePicker__label {
495
- left: var(--bik-datePicker-label-padding-mobile);
496
- }
497
-
498
- /* Preview mode mobile variable overrides */
499
- .bik-datePicker__container[data-mode='preview'] {
500
- --bik-current-input-font: var(--bik-datePicker-preview-input-font-mobile);
501
- --bik-current-label-font: var(--bik-datePicker-preview-label-font-mobile);
502
- --bik-current-label-font-floated: var(
503
- --bik-datePicker-preview-label-font-floated-mobile
504
- );
505
- --bik-current-icon-size: var(--bik-datePicker-preview-icon-size-mobile);
506
- --bik-current-icon-svg: var(--bik-datePicker-preview-icon-svg-mobile);
507
- --bik-current-error-font: var(--bik-datePicker-preview-error-font-mobile);
508
- --bik-current-error-icon: var(--bik-datePicker-preview-error-icon-mobile);
509
- }
510
-
511
- /* Preview mode label for mobile */
512
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__label {
513
- left: var(--bik-datePicker-label-padding-preview);
514
- padding: 0 3px;
515
- margin-left: -3px;
516
- }
517
-
518
- /* Preview mode floated label for mobile */
519
- .bik-datePicker__container[data-mode='preview']
520
- .bik-datePicker__label[data-floated],
521
- .bik-datePicker__container[data-mode='preview']
522
- .bik-datePicker__input:focus
523
- + .bik-datePicker__label,
524
- .bik-datePicker__container[data-mode='preview']
525
- .bik-datePicker__input:not(:placeholder-shown)
526
- + .bik-datePicker__label {
527
- top: 1px;
528
- padding: 0 2px;
529
- margin-left: -2px;
530
- }
531
-
532
- /* Preview mode icon for mobile */
533
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__icon {
534
- right: 3px;
535
- }
536
-
537
- /* Preview mode error margin for mobile */
538
- .bik-datePicker__container[data-mode='preview'] .bik-datePicker__error {
539
- margin: 1px 0 0 1px;
540
- }
541
- }
542
-
543
- /* Browser Compatibility */
544
-
545
- /* Modern browser support for z-index and text alignment */
546
- @supports (selector(:where(*))) {
547
- .bik-datePicker__input[type='date'],
548
- .bik-datePicker__input[type='datetime-local'] {
549
- position: relative;
550
- z-index: 1;
551
- }
552
-
553
- .bik-datePicker__input[type='date']::-webkit-date-and-time-value,
554
- .bik-datePicker__input[type='datetime-local']::-webkit-date-and-time-value {
555
- text-align: left;
556
- }
557
- }
558
-
559
- /* Firefox support for transparent background */
560
- @supports (-moz-appearance: none) {
561
- .bik-datePicker__input[type='date'],
562
- .bik-datePicker__input[type='datetime-local'] {
563
- background: transparent;
564
- }
565
- }