@prokodo/ui 0.1.14 → 1.0.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 (351) hide show
  1. package/LICENSE +187 -26
  2. package/NOTICE +24 -0
  3. package/README.md +32 -302
  4. package/dist/components/RTE/RTE.client.js +0 -1
  5. package/dist/components/RTE/RTE.css +180 -68
  6. package/dist/components/RTE/RTE.js +4 -1
  7. package/dist/components/RTE/RTE.module.css +180 -68
  8. package/dist/components/RTE/RTE.module.scss.js +10 -0
  9. package/dist/components/RTE/RTE.view.js +5 -1
  10. package/dist/components/accordion/Accordion.css +120 -67
  11. package/dist/components/accordion/Accordion.js +8 -2
  12. package/dist/components/accordion/Accordion.module.css +120 -67
  13. package/dist/components/accordion/Accordion.module.scss.js +12 -5
  14. package/dist/components/accordion/Accordion.view.js +4 -4
  15. package/dist/components/animated/Animated.client.js +13 -5
  16. package/dist/components/animated/Animated.js +8 -2
  17. package/dist/components/animatedText/AnimatedText.client.js +10 -2
  18. package/dist/components/animatedText/AnimatedText.js +8 -2
  19. package/dist/components/autocomplete/Autocomplete.client.js +5 -1
  20. package/dist/components/autocomplete/Autocomplete.css +111 -95
  21. package/dist/components/autocomplete/Autocomplete.js +4 -1
  22. package/dist/components/autocomplete/Autocomplete.module.css +111 -95
  23. package/dist/components/autocomplete/Autocomplete.module.scss.js +11 -4
  24. package/dist/components/autocomplete/Autocomplete.view.js +16 -5
  25. package/dist/components/avatar/Avatar.css +11 -8
  26. package/dist/components/avatar/Avatar.js +4 -1
  27. package/dist/components/avatar/Avatar.module.css +11 -8
  28. package/dist/components/avatar/Avatar.module.scss.js +1 -0
  29. package/dist/components/avatar/Avatar.view.js +22 -15
  30. package/dist/components/base-link/BaseLink.js +4 -1
  31. package/dist/components/base-link/BaseLink.view.js +3 -0
  32. package/dist/components/button/Button.client.js +12 -16
  33. package/dist/components/button/Button.css +85 -137
  34. package/dist/components/button/Button.js +4 -1
  35. package/dist/components/button/Button.module.css +85 -137
  36. package/dist/components/button/Button.module.scss.js +15 -19
  37. package/dist/components/button/Button.view.js +8 -2
  38. package/dist/components/calendly/Calendly.css +132 -0
  39. package/dist/components/calendly/Calendly.js +8 -2
  40. package/dist/components/calendly/Calendly.module.css +132 -0
  41. package/dist/components/calendly/Calendly.module.scss.js +6 -0
  42. package/dist/components/calendly/Calendly.view.js +12 -6
  43. package/dist/components/card/Card.client.js +6 -1
  44. package/dist/components/card/Card.css +67 -32
  45. package/dist/components/card/Card.js +11 -5
  46. package/dist/components/card/Card.module.css +67 -32
  47. package/dist/components/card/Card.module.scss.js +8 -2
  48. package/dist/components/card/Card.view.js +25 -8
  49. package/dist/components/carousel/Carousel.client.js +138 -129
  50. package/dist/components/carousel/Carousel.css +8 -4
  51. package/dist/components/carousel/Carousel.js +8 -2
  52. package/dist/components/carousel/Carousel.module.css +8 -4
  53. package/dist/components/carousel/Carousel.view.js +10 -0
  54. package/dist/components/checkbox/Checkbox.css +100 -79
  55. package/dist/components/checkbox/Checkbox.js +4 -1
  56. package/dist/components/checkbox/Checkbox.module.css +100 -79
  57. package/dist/components/checkbox/Checkbox.module.scss.js +11 -4
  58. package/dist/components/checkbox/Checkbox.view.js +7 -2
  59. package/dist/components/checkbox-group/CheckboxGroup.css +39 -6
  60. package/dist/components/checkbox-group/CheckboxGroup.js +4 -1
  61. package/dist/components/checkbox-group/CheckboxGroup.module.css +39 -6
  62. package/dist/components/checkbox-group/CheckboxGroup.module.scss.js +8 -0
  63. package/dist/components/checkbox-group/CheckboxGroup.view.js +7 -2
  64. package/dist/components/chip/Chip.css +185 -61
  65. package/dist/components/chip/Chip.js +4 -1
  66. package/dist/components/chip/Chip.module.css +185 -61
  67. package/dist/components/chip/Chip.module.scss.js +13 -17
  68. package/dist/components/chip/Chip.view.js +7 -4
  69. package/dist/components/datePicker/DatePicker.client.js +211 -66
  70. package/dist/components/datePicker/DatePicker.css +940 -0
  71. package/dist/components/datePicker/DatePicker.js +4 -1
  72. package/dist/components/datePicker/DatePicker.module.css +940 -0
  73. package/dist/components/datePicker/DatePicker.module.scss.js +62 -0
  74. package/dist/components/datePicker/DatePicker.server.js +31 -1
  75. package/dist/components/datePicker/DatePicker.utils.js +103 -0
  76. package/dist/components/datePicker/DatePicker.view.js +113 -41
  77. package/dist/components/datePicker/DatePickerDialog.view.js +291 -0
  78. package/dist/components/dialog/Dialog.css +107 -132
  79. package/dist/components/dialog/Dialog.js +8 -2
  80. package/dist/components/dialog/Dialog.module.css +107 -132
  81. package/dist/components/dialog/Dialog.module.scss.js +13 -8
  82. package/dist/components/dialog/Dialog.view.js +23 -5
  83. package/dist/components/drawer/Drawer.client.js +0 -1
  84. package/dist/components/drawer/Drawer.css +8 -8
  85. package/dist/components/drawer/Drawer.js +4 -1
  86. package/dist/components/drawer/Drawer.module.css +8 -8
  87. package/dist/components/drawer/Drawer.view.js +14 -3
  88. package/dist/components/dynamic-list/DynamicList.client.js +1 -0
  89. package/dist/components/dynamic-list/DynamicList.css +20 -12
  90. package/dist/components/dynamic-list/DynamicList.js +4 -1
  91. package/dist/components/dynamic-list/DynamicList.module.css +20 -12
  92. package/dist/components/dynamic-list/DynamicList.module.scss.js +1 -0
  93. package/dist/components/dynamic-list/DynamicList.view.js +89 -44
  94. package/dist/components/form/Form.client.js +4 -1
  95. package/dist/components/form/Form.js +4 -1
  96. package/dist/components/form/Form.view.js +6 -4
  97. package/dist/components/form/FormField.client.js +59 -4
  98. package/dist/components/form/FormField.js +4 -1
  99. package/dist/components/form/FormField.server.js +10 -4
  100. package/dist/components/form/FormResponse.js +6 -3
  101. package/dist/components/grid/Grid.css +1 -1
  102. package/dist/components/grid/Grid.module.css +1 -1
  103. package/dist/components/headline/Headline.css +16 -16
  104. package/dist/components/headline/Headline.js +13 -8
  105. package/dist/components/headline/Headline.module.css +16 -16
  106. package/dist/components/headline/Headline.module.scss.js +1 -1
  107. package/dist/components/headline/Headline.variants.js +4 -1
  108. package/dist/components/icon/Icon.css +14 -14
  109. package/dist/components/icon/Icon.js +8 -2
  110. package/dist/components/icon/Icon.module.css +14 -14
  111. package/dist/components/image/Image.client.js +9 -5
  112. package/dist/components/image/Image.css +4 -3
  113. package/dist/components/image/Image.js +8 -2
  114. package/dist/components/image/Image.module.css +4 -3
  115. package/dist/components/image/Image.server.js +2 -1
  116. package/dist/components/image-text/ImageText.css +43 -14
  117. package/dist/components/image-text/ImageText.js +68 -50
  118. package/dist/components/image-text/ImageText.module.css +43 -14
  119. package/dist/components/image-text/ImageText.module.scss.js +11 -2
  120. package/dist/components/input/Input.client.js +15 -2
  121. package/dist/components/input/Input.css +197 -115
  122. package/dist/components/input/Input.js +4 -1
  123. package/dist/components/input/Input.module.css +197 -115
  124. package/dist/components/input/Input.module.scss.js +19 -3
  125. package/dist/components/input/Input.view.js +102 -63
  126. package/dist/components/input/InputValidation.js +6 -2
  127. package/dist/components/inputOTP/InputOTP.client.js +165 -0
  128. package/dist/components/inputOTP/InputOTP.css +155 -7
  129. package/dist/components/inputOTP/InputOTP.js +10 -194
  130. package/dist/components/inputOTP/InputOTP.lazy.js +12 -0
  131. package/dist/components/inputOTP/InputOTP.module.css +155 -7
  132. package/dist/components/inputOTP/InputOTP.module.scss.js +14 -0
  133. package/dist/components/inputOTP/InputOTP.server.js +32 -0
  134. package/dist/components/inputOTP/InputOTP.view.js +117 -0
  135. package/dist/components/label/Label.css +33 -14
  136. package/dist/components/label/Label.js +37 -35
  137. package/dist/components/label/Label.module.css +33 -14
  138. package/dist/components/label/Label.module.scss.js +9 -2
  139. package/dist/components/link/Link.css +13 -13
  140. package/dist/components/link/Link.js +5 -3
  141. package/dist/components/link/Link.module.css +13 -13
  142. package/dist/components/link/Link.view.js +16 -13
  143. package/dist/components/list/List.css +71 -32
  144. package/dist/components/list/List.js +74 -28
  145. package/dist/components/list/List.module.css +71 -32
  146. package/dist/components/list/List.module.scss.js +1 -1
  147. package/dist/components/loading/Loading.js +4 -1
  148. package/dist/components/loading/Loading.view.js +47 -7
  149. package/dist/components/lottie/Lottie.css +16 -0
  150. package/dist/components/lottie/Lottie.js +9 -5
  151. package/dist/components/lottie/Lottie.module.css +16 -0
  152. package/dist/components/lottie/Lottie.module.scss.js +6 -2
  153. package/dist/components/map/Map.css +130 -0
  154. package/dist/components/map/Map.js +67 -46
  155. package/dist/components/map/Map.module.css +130 -0
  156. package/dist/components/map/Map.module.scss.js +6 -0
  157. package/dist/components/pagination/Pagination.css +127 -11
  158. package/dist/components/pagination/Pagination.js +4 -1
  159. package/dist/components/pagination/Pagination.module.css +127 -11
  160. package/dist/components/pagination/Pagination.module.scss.js +12 -4
  161. package/dist/components/pagination/Pagination.view.js +16 -2
  162. package/dist/components/post-item/PostItem.css +16 -16
  163. package/dist/components/post-item/PostItem.js +4 -1
  164. package/dist/components/post-item/PostItem.module.css +16 -16
  165. package/dist/components/post-item/PostItem.view.js +14 -5
  166. package/dist/components/post-item/PostItemAuthor.js +4 -1
  167. package/dist/components/post-teaser/PostTeaser.css +13 -13
  168. package/dist/components/post-teaser/PostTeaser.js +4 -1
  169. package/dist/components/post-teaser/PostTeaser.module.css +13 -13
  170. package/dist/components/post-teaser/PostTeaser.view.js +14 -5
  171. package/dist/components/post-widget/PostWidget.css +6 -8
  172. package/dist/components/post-widget/PostWidget.js +5 -3
  173. package/dist/components/post-widget/PostWidget.module.css +6 -8
  174. package/dist/components/post-widget/PostWidget.view.js +21 -8
  175. package/dist/components/post-widget-carousel/PostWidgetCarousel.css +7 -7
  176. package/dist/components/post-widget-carousel/PostWidgetCarousel.js +8 -2
  177. package/dist/components/post-widget-carousel/PostWidgetCarousel.module.css +7 -7
  178. package/dist/components/post-widget-carousel/PostWidgetCarousel.view.js +32 -14
  179. package/dist/components/progressBar/ProgressBar.css +4 -4
  180. package/dist/components/progressBar/ProgressBar.js +8 -2
  181. package/dist/components/progressBar/ProgressBar.module.css +4 -4
  182. package/dist/components/progressBar/ProgressBar.view.js +6 -3
  183. package/dist/components/quote/Quote.css +21 -6
  184. package/dist/components/quote/Quote.js +5 -5
  185. package/dist/components/quote/Quote.module.css +21 -6
  186. package/dist/components/quote/Quote.module.scss.js +5 -0
  187. package/dist/components/rating/Rating.client.js +6 -1
  188. package/dist/components/rating/Rating.css +34 -21
  189. package/dist/components/rating/Rating.js +4 -1
  190. package/dist/components/rating/Rating.module.css +34 -21
  191. package/dist/components/rating/Rating.module.scss.js +8 -0
  192. package/dist/components/rating/Rating.view.js +4 -2
  193. package/dist/components/rich-text/RichText.client.js +55 -20
  194. package/dist/components/rich-text/RichText.css +47 -31
  195. package/dist/components/rich-text/RichText.js +8 -2
  196. package/dist/components/rich-text/RichText.module.css +47 -31
  197. package/dist/components/rich-text/RichText.server.js +3 -0
  198. package/dist/components/select/Select.client.js +303 -102
  199. package/dist/components/select/Select.css +542 -221
  200. package/dist/components/select/Select.js +8 -2
  201. package/dist/components/select/Select.module.css +542 -221
  202. package/dist/components/select/Select.module.scss.js +57 -14
  203. package/dist/components/select/Select.view.js +75 -25
  204. package/dist/components/sidenav/SideNav.client.js +24 -1
  205. package/dist/components/sidenav/SideNav.css +89 -21
  206. package/dist/components/sidenav/SideNav.js +8 -2
  207. package/dist/components/sidenav/SideNav.module.css +89 -21
  208. package/dist/components/sidenav/SideNav.module.scss.js +6 -1
  209. package/dist/components/sidenav/SideNav.view.js +69 -14
  210. package/dist/components/skeleton/Skeleton.css +7 -7
  211. package/dist/components/skeleton/Skeleton.module.css +7 -7
  212. package/dist/components/slider/Slider.client.js +11 -2
  213. package/dist/components/slider/Slider.css +177 -112
  214. package/dist/components/slider/Slider.js +4 -1
  215. package/dist/components/slider/Slider.module.css +177 -112
  216. package/dist/components/slider/Slider.module.scss.js +11 -2
  217. package/dist/components/slider/Slider.view.js +140 -90
  218. package/dist/components/snackbar/Snackbar.client.js +5 -1
  219. package/dist/components/snackbar/Snackbar.css +125 -64
  220. package/dist/components/snackbar/Snackbar.js +4 -1
  221. package/dist/components/snackbar/Snackbar.module.css +125 -64
  222. package/dist/components/snackbar/Snackbar.module.scss.js +11 -13
  223. package/dist/components/snackbar/Snackbar.view.js +2 -2
  224. package/dist/components/snackbar/SnackbarProvider.js +8 -2
  225. package/dist/components/stepper/Stepper.client.js +27 -9
  226. package/dist/components/stepper/Stepper.css +46 -11
  227. package/dist/components/stepper/Stepper.js +4 -1
  228. package/dist/components/stepper/Stepper.module.css +46 -11
  229. package/dist/components/stepper/Stepper.module.scss.js +7 -0
  230. package/dist/components/stepper/Stepper.server.js +2 -0
  231. package/dist/components/stepper/Stepper.view.js +6 -1
  232. package/dist/components/switch/Switch.css +108 -84
  233. package/dist/components/switch/Switch.js +4 -1
  234. package/dist/components/switch/Switch.module.css +108 -84
  235. package/dist/components/switch/Switch.module.scss.js +14 -12
  236. package/dist/components/switch/Switch.view.js +10 -8
  237. package/dist/components/table/Table.css +19 -14
  238. package/dist/components/table/Table.js +1 -0
  239. package/dist/components/table/Table.module.css +19 -14
  240. package/dist/components/tabs/Tabs.client.js +1 -0
  241. package/dist/components/tabs/Tabs.css +53 -27
  242. package/dist/components/tabs/Tabs.js +8 -2
  243. package/dist/components/tabs/Tabs.module.css +53 -27
  244. package/dist/components/tabs/Tabs.module.scss.js +7 -2
  245. package/dist/components/tabs/Tabs.view.js +12 -4
  246. package/dist/components/teaser/Teaser.css +5 -5
  247. package/dist/components/teaser/Teaser.js +4 -4
  248. package/dist/components/teaser/Teaser.module.css +5 -5
  249. package/dist/components/tooltip/Tooltip.client.js +140 -95
  250. package/dist/components/tooltip/Tooltip.css +46 -9
  251. package/dist/components/tooltip/Tooltip.js +10 -4
  252. package/dist/components/tooltip/Tooltip.module.css +46 -9
  253. package/dist/components/tooltip/Tooltip.module.scss.js +5 -1
  254. package/dist/components/tooltip/Tooltip.view.js +7 -1
  255. package/dist/constants/project.js +1 -1
  256. package/dist/helpers/createIsland.js +1 -0
  257. package/dist/helpers/createLazyWrapper.js +1 -0
  258. package/dist/hooks/useGoogleMaps.js +0 -1
  259. package/dist/theme.css +3269 -1588
  260. package/dist/tsconfig.build.tsbuildinfo +1 -1
  261. package/dist/types/components/RTE/RTE.d.ts +6 -1
  262. package/dist/types/components/RTE/RTE.lazy.d.ts +6 -1
  263. package/dist/types/components/RTE/RTE.view.d.ts +1 -1
  264. package/dist/types/components/accordion/Accordion.d.ts +1 -1
  265. package/dist/types/components/accordion/Accordion.lazy.d.ts +1 -1
  266. package/dist/types/components/accordion/Accordion.model.d.ts +1 -1
  267. package/dist/types/components/accordion/Accordion.view.d.ts +1 -1
  268. package/dist/types/components/autocomplete/Autocomplete.model.d.ts +2 -0
  269. package/dist/types/components/autocomplete/Autocomplete.view.d.ts +1 -1
  270. package/dist/types/components/avatar/Avatar.d.ts +1 -1
  271. package/dist/types/components/avatar/Avatar.lazy.d.ts +1 -1
  272. package/dist/types/components/avatar/Avatar.model.d.ts +1 -1
  273. package/dist/types/components/avatar/Avatar.view.d.ts +1 -1
  274. package/dist/types/components/calendly/Calendly.view.d.ts +1 -1
  275. package/dist/types/components/card/Card.model.d.ts +1 -1
  276. package/dist/types/components/card/Card.view.d.ts +1 -1
  277. package/dist/types/components/carousel/Carousel.view.d.ts +1 -1
  278. package/dist/types/components/checkbox/Checkbox.d.ts +1 -0
  279. package/dist/types/components/checkbox/Checkbox.lazy.d.ts +1 -0
  280. package/dist/types/components/checkbox/Checkbox.model.d.ts +2 -0
  281. package/dist/types/components/checkbox/Checkbox.view.d.ts +1 -1
  282. package/dist/types/components/checkbox-group/CheckboxGroup.model.d.ts +2 -0
  283. package/dist/types/components/checkbox-group/CheckboxGroup.view.d.ts +1 -1
  284. package/dist/types/components/datePicker/DatePicker.model.d.ts +70 -1
  285. package/dist/types/components/datePicker/DatePicker.utils.d.ts +10 -0
  286. package/dist/types/components/datePicker/DatePicker.view.d.ts +7 -4
  287. package/dist/types/components/datePicker/DatePickerDialog.view.d.ts +4 -0
  288. package/dist/types/components/dynamic-list/DynamicList.model.d.ts +3 -1
  289. package/dist/types/components/dynamic-list/DynamicList.view.d.ts +1 -1
  290. package/dist/types/components/form/Form.d.ts +1 -1
  291. package/dist/types/components/form/Form.lazy.d.ts +1 -1
  292. package/dist/types/components/form/Form.model.d.ts +19 -4
  293. package/dist/types/components/form/FormField.client.d.ts +2 -2
  294. package/dist/types/components/form/FormField.d.ts +1 -1
  295. package/dist/types/components/form/FormField.lazy.d.ts +1 -1
  296. package/dist/types/components/form/FormField.server.d.ts +2 -2
  297. package/dist/types/components/headline/Headline.model.d.ts +2 -2
  298. package/dist/types/components/input/Input.model.d.ts +8 -1
  299. package/dist/types/components/input/Input.view.d.ts +1 -1
  300. package/dist/types/components/inputOTP/InputOTP.client.d.ts +4 -0
  301. package/dist/types/components/inputOTP/InputOTP.d.ts +10 -3
  302. package/dist/types/components/inputOTP/InputOTP.lazy.d.ts +11 -0
  303. package/dist/types/components/inputOTP/InputOTP.model.d.ts +10 -0
  304. package/dist/types/components/inputOTP/InputOTP.server.d.ts +3 -0
  305. package/dist/types/components/inputOTP/InputOTP.view.d.ts +3 -0
  306. package/dist/types/components/inputOTP/index.d.ts +1 -1
  307. package/dist/types/components/label/Label.model.d.ts +2 -0
  308. package/dist/types/components/link/Link.model.d.ts +1 -1
  309. package/dist/types/components/link/Link.view.d.ts +1 -1
  310. package/dist/types/components/list/List.d.ts +1 -1
  311. package/dist/types/components/list/List.model.d.ts +14 -5
  312. package/dist/types/components/list/index.d.ts +1 -1
  313. package/dist/types/components/loading/Loading.model.d.ts +2 -0
  314. package/dist/types/components/loading/index.d.ts +1 -1
  315. package/dist/types/components/pagination/Pagination.model.d.ts +2 -0
  316. package/dist/types/components/pagination/Pagination.view.d.ts +1 -1
  317. package/dist/types/components/post-item/PostItem.model.d.ts +2 -1
  318. package/dist/types/components/post-teaser/PostTeaser.model.d.ts +2 -1
  319. package/dist/types/components/post-widget/PostWidget.view.d.ts +1 -1
  320. package/dist/types/components/progressBar/ProgressBar.d.ts +1 -1
  321. package/dist/types/components/progressBar/ProgressBar.lazy.d.ts +1 -1
  322. package/dist/types/components/progressBar/ProgressBar.model.d.ts +3 -2
  323. package/dist/types/components/progressBar/ProgressBar.view.d.ts +1 -1
  324. package/dist/types/components/progressBar/index.d.ts +1 -1
  325. package/dist/types/components/quote/Quote.model.d.ts +1 -1
  326. package/dist/types/components/rating/Rating.model.d.ts +2 -0
  327. package/dist/types/components/rich-text/RichText.client.d.ts +1 -1
  328. package/dist/types/components/rich-text/RichText.d.ts +1 -1
  329. package/dist/types/components/rich-text/RichText.lazy.d.ts +1 -1
  330. package/dist/types/components/rich-text/RichText.model.d.ts +1 -1
  331. package/dist/types/components/select/Select.model.d.ts +2 -0
  332. package/dist/types/components/select/Select.view.d.ts +1 -1
  333. package/dist/types/components/sidenav/SideNav.client.d.ts +1 -1
  334. package/dist/types/components/sidenav/SideNav.model.d.ts +16 -2
  335. package/dist/types/components/sidenav/SideNav.view.d.ts +1 -1
  336. package/dist/types/components/slider/Slider.model.d.ts +2 -0
  337. package/dist/types/components/snackbar/Snackbar.model.d.ts +3 -2
  338. package/dist/types/components/snackbar/Snackbar.view.d.ts +3 -2
  339. package/dist/types/components/snackbar/index.d.ts +1 -1
  340. package/dist/types/components/stepper/Stepper.d.ts +1 -0
  341. package/dist/types/components/stepper/Stepper.lazy.d.ts +1 -0
  342. package/dist/types/components/stepper/Stepper.model.d.ts +3 -0
  343. package/dist/types/components/stepper/Stepper.server.d.ts +1 -1
  344. package/dist/types/components/switch/Switch.d.ts +2 -2
  345. package/dist/types/components/switch/Switch.lazy.d.ts +2 -2
  346. package/dist/types/components/switch/Switch.model.d.ts +3 -4
  347. package/dist/types/components/tabs/Tabs.model.d.ts +2 -0
  348. package/dist/types/components/tabs/Tabs.view.d.ts +1 -1
  349. package/dist/types/components/teaser/Teaser.model.d.ts +1 -1
  350. package/dist/types/components/tooltip/Tooltip.model.d.ts +2 -0
  351. package/package.json +53 -24
@@ -32,8 +32,12 @@ const buildCustomRegex = /* @__PURE__ */ __name((pattern) => {
32
32
  var _a;
33
33
  const m = pattern.match(/^\/([\s\S]*)\/([gimuy]*)$/);
34
34
  const src = m ? m[1] : pattern;
35
- const flags = m ? (_a = m[2]) == null ? void 0 : _a.replace(/[^gimuy]/g, "") : "";
36
- return new RegExp(src ?? "", flags);
35
+ const flags = m ? (
36
+ /* istanbul ignore next */
37
+ (_a = m[2]) == null ? void 0 : _a.replace(/[^gimuy]/g, "")
38
+ ) : "";
39
+ return new RegExp(src ?? /* istanbul ignore next */
40
+ "", flags);
37
41
  }, "buildCustomRegex");
38
42
  const handleValidation = /* @__PURE__ */ __name((type, name, value, required, min, max, customRegexPattern, errorTranslations, onValidate) => {
39
43
  if (!onValidate) return;
@@ -0,0 +1,165 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { memo, useState, useRef, useEffect, useCallback } from "react";
4
+ import { InputOTPView } from "./InputOTP.view.js";
5
+ const InputOTPClient = memo(
6
+ ({ length = 6, onComplete, onChange, ...props }) => {
7
+ const [otp, setOtp] = useState(
8
+ () => Array(length).fill("")
9
+ );
10
+ const inputs = useRef([]);
11
+ useEffect(() => {
12
+ inputs.current = inputs.current.slice(0, length);
13
+ setOtp((prev) => {
14
+ const next = Array(length).fill("");
15
+ for (let i = 0; i < Math.min(prev.length, length); i++)
16
+ next[i] = prev[i] ?? "";
17
+ return next;
18
+ });
19
+ }, [length]);
20
+ const completedRef = useRef(false);
21
+ const focusIndex = useCallback((idx) => {
22
+ var _a;
23
+ const el = inputs.current[idx];
24
+ if (el) {
25
+ el.focus();
26
+ (_a = el.setSelectionRange) == null ? void 0 : _a.call(el, 0, el.value.length);
27
+ }
28
+ }, []);
29
+ const emitChange = useCallback(
30
+ (next) => {
31
+ const joined = next.join("");
32
+ onChange == null ? void 0 : onChange(joined);
33
+ const complete = next.every((d) => d !== "");
34
+ if (complete && !completedRef.current) {
35
+ completedRef.current = true;
36
+ onComplete == null ? void 0 : onComplete(joined);
37
+ } else if (!complete && completedRef.current) {
38
+ completedRef.current = false;
39
+ }
40
+ },
41
+ [onChange, onComplete]
42
+ );
43
+ const setDigit = useCallback(
44
+ (digit, index) => {
45
+ const d = digit.replace(/\D/g, "");
46
+ if (d.length > 1) return;
47
+ setOtp((prev) => {
48
+ if (prev[index] === d) return prev;
49
+ const next = [...prev];
50
+ next[index] = d;
51
+ if (d !== "" && index < length - 1) {
52
+ const nextEmpty = next.findIndex(
53
+ (val, i) => i > index && val === ""
54
+ );
55
+ const to = nextEmpty !== -1 ? nextEmpty : index + 1;
56
+ focusIndex(to);
57
+ }
58
+ emitChange(next);
59
+ return next;
60
+ });
61
+ },
62
+ [emitChange, focusIndex, length]
63
+ );
64
+ const handleDigitChange = useCallback(
65
+ (e, index) => {
66
+ setDigit(e.target.value, index);
67
+ },
68
+ [setDigit]
69
+ );
70
+ const handleDigitKeyDown = useCallback(
71
+ (e, index) => {
72
+ const { key } = e;
73
+ if (key === "Backspace") {
74
+ e.preventDefault();
75
+ setOtp((prev) => {
76
+ const next = [...prev];
77
+ if (next[index] !== "") {
78
+ next[index] = "";
79
+ focusIndex(index);
80
+ } else if (index > 0) {
81
+ next[index - 1] = "";
82
+ focusIndex(index - 1);
83
+ }
84
+ emitChange(next);
85
+ return next;
86
+ });
87
+ return;
88
+ }
89
+ if (key === "ArrowLeft") {
90
+ e.preventDefault();
91
+ if (index > 0) focusIndex(index - 1);
92
+ return;
93
+ }
94
+ if (key === "ArrowRight") {
95
+ e.preventDefault();
96
+ if (index < length - 1) focusIndex(index + 1);
97
+ return;
98
+ }
99
+ if (key === "Home") {
100
+ e.preventDefault();
101
+ focusIndex(0);
102
+ return;
103
+ }
104
+ if (key === "End") {
105
+ e.preventDefault();
106
+ focusIndex(length - 1);
107
+ return;
108
+ }
109
+ if (key.length === 1 && !/[0-9]/.test(key)) {
110
+ e.preventDefault();
111
+ }
112
+ },
113
+ [emitChange, focusIndex, length]
114
+ );
115
+ const handleDigitFocus = useCallback((index) => {
116
+ var _a;
117
+ const el = inputs.current[index];
118
+ (_a = el == null ? void 0 : el.setSelectionRange) == null ? void 0 : _a.call(el, 0, el.value.length);
119
+ }, []);
120
+ const handleGroupPaste = useCallback(
121
+ (e) => {
122
+ e.preventDefault();
123
+ const digits = (e.clipboardData.getData("text") || "").replace(/\D/g, "").slice(0, length).split("");
124
+ if (digits.length === 0) return;
125
+ setOtp((prev) => {
126
+ const next = [...prev];
127
+ let writeIndex = next.findIndex((d) => d === "");
128
+ if (writeIndex === -1) writeIndex = 0;
129
+ for (let i = 0; i < digits.length && writeIndex < length; i++) {
130
+ next[writeIndex] = digits[i];
131
+ writeIndex++;
132
+ }
133
+ emitChange(next);
134
+ const nextEmpty = next.findIndex((d) => d === "");
135
+ focusIndex(nextEmpty === -1 ? length - 1 : nextEmpty);
136
+ return next;
137
+ });
138
+ },
139
+ [emitChange, focusIndex, length]
140
+ );
141
+ const getInputRef = useCallback(
142
+ (index) => (el) => {
143
+ inputs.current[index] = el;
144
+ },
145
+ []
146
+ );
147
+ return /* @__PURE__ */ jsx(
148
+ InputOTPView,
149
+ {
150
+ ...props,
151
+ getInputRef,
152
+ length,
153
+ otp,
154
+ onDigitChange: handleDigitChange,
155
+ onDigitFocus: handleDigitFocus,
156
+ onDigitKeyDown: handleDigitKeyDown,
157
+ onGroupPaste: handleGroupPaste
158
+ }
159
+ );
160
+ }
161
+ );
162
+ InputOTPClient.displayName = "InputOTP";
163
+ export {
164
+ InputOTPClient as default
165
+ };
@@ -126,7 +126,68 @@
126
126
  */
127
127
  .prokodo-InputOTP {
128
128
  display: flex;
129
- justify-content: space-between;
129
+ flex-direction: column;
130
+ gap: 0;
131
+ }
132
+ .prokodo-InputOTP--primary {
133
+ --pk-otp-gradient-from: var(--pk-color-brand);
134
+ --pk-otp-gradient-to: var(--pk-color-accent);
135
+ --pk-input-gradient-from: var(--pk-color-brand);
136
+ --pk-input-gradient-to: var(--pk-color-accent);
137
+ --pk-input-border-focus: var(--pk-color-brand);
138
+ --pk-input-label-focused-fg: var(--pk-color-brand);
139
+ --pk-input-shadow-color-focus: color-mix(in srgb, var(--pk-color-brand) 30%, transparent);
140
+ }
141
+ .prokodo-InputOTP--secondary {
142
+ --pk-otp-gradient-from: var(--pk-color-accent);
143
+ --pk-otp-gradient-to: var(--pk-color-brand);
144
+ --pk-input-gradient-from: var(--pk-color-accent);
145
+ --pk-input-gradient-to: var(--pk-color-brand);
146
+ --pk-input-border-focus: var(--pk-color-accent);
147
+ --pk-input-label-focused-fg: var(--pk-color-accent);
148
+ --pk-input-shadow-color-focus: color-mix(in srgb, var(--pk-color-accent) 30%, transparent);
149
+ }
150
+ .prokodo-InputOTP--success {
151
+ --pk-otp-gradient-from: var(--pk-color-success);
152
+ --pk-otp-gradient-to: #10CCB8;
153
+ --pk-input-gradient-from: var(--pk-color-success);
154
+ --pk-input-gradient-to: #10CCB8;
155
+ --pk-input-border-focus: var(--pk-color-success);
156
+ --pk-input-label-focused-fg: var(--pk-color-success);
157
+ --pk-input-shadow-color-focus: color-mix(in srgb, var(--pk-color-success) 30%, transparent);
158
+ }
159
+ .prokodo-InputOTP--warning {
160
+ --pk-otp-gradient-from: var(--pk-color-warning);
161
+ --pk-otp-gradient-to: #f7cc6a;
162
+ --pk-input-gradient-from: var(--pk-color-warning);
163
+ --pk-input-gradient-to: #f7cc6a;
164
+ --pk-input-border-focus: var(--pk-color-warning);
165
+ --pk-input-label-focused-fg: var(--pk-color-warning);
166
+ --pk-input-shadow-color-focus: color-mix(in srgb, var(--pk-color-warning) 30%, transparent);
167
+ }
168
+ .prokodo-InputOTP--error {
169
+ --pk-otp-gradient-from: var(--pk-color-error);
170
+ --pk-otp-gradient-to: #ff6b6b;
171
+ --pk-input-gradient-from: var(--pk-color-error);
172
+ --pk-input-gradient-to: #ff6b6b;
173
+ --pk-input-border-focus: var(--pk-color-error);
174
+ --pk-input-label-focused-fg: var(--pk-color-error);
175
+ --pk-input-shadow-color-focus: color-mix(in srgb, var(--pk-color-error) 30%, transparent);
176
+ }
177
+ .prokodo-InputOTP--info, .prokodo-InputOTP--inherit, .prokodo-InputOTP--white {
178
+ --pk-otp-gradient-from: var(--pk-color-muted);
179
+ --pk-otp-gradient-to: var(--pk-color-border);
180
+ --pk-input-gradient-from: var(--pk-color-muted);
181
+ --pk-input-gradient-to: var(--pk-color-border);
182
+ --pk-input-border-focus: var(--pk-color-muted);
183
+ --pk-input-label-focused-fg: var(--pk-color-muted);
184
+ }
185
+ .prokodo-InputOTP--disabled {
186
+ opacity: 0.5;
187
+ cursor: not-allowed;
188
+ pointer-events: none;
189
+ --pk-otp-gradient-from: var(--pk-color-border);
190
+ --pk-otp-gradient-to: var(--pk-color-muted);
130
191
  }
131
192
  .prokodo-InputOTP__label, .prokodo-InputOTP__instruction {
132
193
  position: absolute;
@@ -136,20 +197,107 @@
136
197
  height: 0;
137
198
  text-indent: -99999px;
138
199
  }
200
+ .prokodo-InputOTP__visible-label {
201
+ margin-bottom: var(--pk-space-sm);
202
+ }
203
+ .prokodo-InputOTP__row {
204
+ display: flex;
205
+ align-items: center;
206
+ gap: var(--pk-otp-gap);
207
+ }
208
+ .prokodo-InputOTP__footer {
209
+ display: flex;
210
+ margin-top: var(--pk-space-xs);
211
+ }
212
+ .prokodo-InputOTP__helperText {
213
+ color: var(--pk-input-helper-fg);
214
+ font-weight: 400;
215
+ font-size: 1rem;
216
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
217
+ font-style: normal;
218
+ line-height: 1.45;
219
+ letter-spacing: 0.03em;
220
+ text-transform: none;
221
+ text-align: left;
222
+ text-decoration: none;
223
+ }
224
+ @media screen and (min-width: 480px) {
225
+ .prokodo-InputOTP__helperText {
226
+ font-size: 0.875rem;
227
+ line-height: 1.4;
228
+ }
229
+ }
230
+ @media screen and (min-width: 960px) {
231
+ .prokodo-InputOTP__helperText {
232
+ font-size: 0.875rem;
233
+ line-height: 1.4;
234
+ }
235
+ }
236
+ .prokodo-InputOTP__helperText__content--is-error {
237
+ color: var(--pk-color-error);
238
+ }
139
239
  .prokodo-InputOTP__field {
140
- width: 42px;
141
- height: 42px;
240
+ position: relative;
241
+ width: var(--pk-otp-cell-size);
242
+ height: var(--pk-otp-cell-size);
243
+ border-radius: var(--pk-otp-cell-radius) !important;
244
+ flex-shrink: 0;
245
+ }
246
+ .prokodo-InputOTP__field::before {
247
+ content: "";
248
+ position: absolute;
249
+ inset: 0;
250
+ border-radius: var(--pk-otp-cell-radius);
251
+ padding: 2px;
252
+ background: conic-gradient(from 180deg, var(--pk-otp-gradient-from), var(--pk-otp-gradient-to), var(--pk-otp-gradient-from));
253
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
254
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
255
+ -webkit-mask-composite: destination-out;
256
+ mask-composite: exclude;
257
+ pointer-events: none;
258
+ z-index: 1;
142
259
  }
143
260
  .prokodo-InputOTP__input {
144
- width: 42px;
145
- height: 42px;
261
+ width: var(--pk-otp-cell-size);
262
+ height: var(--pk-otp-cell-size);
146
263
  }
147
264
  .prokodo-InputOTP__input__container {
148
265
  width: 100%;
149
266
  height: 100%;
150
- border-radius: 80px;
267
+ border-radius: var(--pk-otp-cell-radius);
268
+ overflow: hidden;
269
+ background: transparent !important;
270
+ animation: none !important;
151
271
  }
152
272
  .prokodo-InputOTP__input__node {
153
273
  width: 100%;
154
- padding: 0.5rem 1rem;
274
+ height: 100%;
275
+ padding: 0;
276
+ background: var(--pk-input-bg);
277
+ border-radius: var(--pk-otp-cell-radius);
278
+ font-weight: 700;
279
+ font-feature-settings: "tnum";
280
+ font-variant-numeric: tabular-nums;
281
+ font-weight: 400;
282
+ font-size: 1.125rem;
283
+ font-family: var(--font-secondary), -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
284
+ font-style: normal;
285
+ line-height: 1.55;
286
+ letter-spacing: 0.03em;
287
+ text-transform: none;
288
+ text-align: left;
289
+ text-decoration: none;
290
+ }
291
+ @media screen and (min-width: 480px) {
292
+ .prokodo-InputOTP__input__node {
293
+ font-size: 1rem;
294
+ }
295
+ }
296
+ @media screen and (min-width: 960px) {
297
+ .prokodo-InputOTP__input__node {
298
+ font-size: 1rem;
299
+ }
300
+ }
301
+ .prokodo-InputOTP__input__node {
302
+ text-align: center;
155
303
  }
@@ -1,199 +1,15 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { jsxs, jsx } from "react/jsx-runtime";
4
- import { memo, useState, useRef, useEffect, useCallback } from "react";
5
- import { create } from "../../helpers/bem.js";
6
- import styles from "./InputOTP.module.scss.js";
7
- import { Input } from "../input/Input.js";
8
- const bem = create(styles, "InputOTP");
9
- const InputOTP = memo(
10
- ({
11
- className,
12
- groupLabel,
13
- groupInstruction,
14
- length = 6,
15
- onComplete,
16
- onChange,
17
- ...props
18
- }) => {
19
- const [otp, setOtp] = useState(
20
- () => Array(length).fill("")
21
- );
22
- const inputs = useRef([]);
23
- useEffect(() => {
24
- inputs.current = inputs.current.slice(0, length);
25
- setOtp((prev) => {
26
- const next = Array(length).fill("");
27
- for (let i = 0; i < Math.min(prev.length, length); i++)
28
- next[i] = prev[i] ?? "";
29
- return next;
30
- });
31
- }, [length]);
32
- const completedRef = useRef(false);
33
- const focusIndex = useCallback((idx) => {
34
- var _a;
35
- const el = inputs.current[idx];
36
- if (el) {
37
- el.focus();
38
- (_a = el.setSelectionRange) == null ? void 0 : _a.call(el, 0, el.value.length);
39
- }
40
- }, []);
41
- const emitChange = useCallback(
42
- (next) => {
43
- const joined = next.join("");
44
- onChange == null ? void 0 : onChange(joined);
45
- const complete = next.every((d) => d !== "");
46
- if (complete && !completedRef.current) {
47
- completedRef.current = true;
48
- onComplete == null ? void 0 : onComplete(joined);
49
- } else if (!complete && completedRef.current) {
50
- completedRef.current = false;
51
- }
52
- },
53
- [onChange, onComplete]
54
- );
55
- const setDigit = useCallback(
56
- (digit, index) => {
57
- const d = digit.replace(/\D/g, "");
58
- if (d.length > 1) return;
59
- setOtp((prev) => {
60
- if (prev[index] === d) return prev;
61
- const next = [...prev];
62
- next[index] = d;
63
- if (d !== "" && index < length - 1) {
64
- const nextEmpty = next.findIndex(
65
- (val, i) => i > index && val === ""
66
- );
67
- const to = nextEmpty !== -1 ? nextEmpty : index + 1;
68
- focusIndex(to);
69
- }
70
- emitChange(next);
71
- return next;
72
- });
73
- },
74
- [emitChange, focusIndex, length]
75
- );
76
- const handleChange = useCallback(
77
- (e, index) => {
78
- setDigit(e.target.value, index);
79
- },
80
- [setDigit]
81
- );
82
- const handleKeyDown = useCallback(
83
- (e, index) => {
84
- const { key } = e;
85
- if (key === "Backspace") {
86
- e.preventDefault();
87
- setOtp((prev) => {
88
- const next = [...prev];
89
- if (next[index] !== "") {
90
- next[index] = "";
91
- focusIndex(index);
92
- } else if (index > 0) {
93
- next[index - 1] = "";
94
- focusIndex(index - 1);
95
- }
96
- emitChange(next);
97
- return next;
98
- });
99
- return;
100
- }
101
- if (key === "ArrowLeft") {
102
- e.preventDefault();
103
- if (index > 0) focusIndex(index - 1);
104
- return;
105
- }
106
- if (key === "ArrowRight") {
107
- e.preventDefault();
108
- if (index < length - 1) focusIndex(index + 1);
109
- return;
110
- }
111
- if (key === "Home") {
112
- e.preventDefault();
113
- focusIndex(0);
114
- return;
115
- }
116
- if (key === "End") {
117
- e.preventDefault();
118
- focusIndex(length - 1);
119
- return;
120
- }
121
- if (key.length === 1 && !/[0-9]/.test(key)) {
122
- e.preventDefault();
123
- }
124
- },
125
- [emitChange, focusIndex, length]
126
- );
127
- const handleFocus = useCallback((index) => {
128
- var _a;
129
- const el = inputs.current[index];
130
- (_a = el == null ? void 0 : el.setSelectionRange) == null ? void 0 : _a.call(el, 0, el.value.length);
131
- }, []);
132
- const handlePaste = useCallback(
133
- (e) => {
134
- e.preventDefault();
135
- const digits = (e.clipboardData.getData("text") || "").replace(/\D/g, "").slice(0, length).split("");
136
- if (digits.length === 0) return;
137
- setOtp((prev) => {
138
- const next = [...prev];
139
- let writeIndex = next.findIndex((d) => d === "");
140
- if (writeIndex === -1) writeIndex = 0;
141
- for (let i = 0; i < digits.length && writeIndex < length; i++) {
142
- next[writeIndex] = digits[i];
143
- writeIndex++;
144
- }
145
- emitChange(next);
146
- const nextEmpty = next.findIndex((d) => d === "");
147
- focusIndex(nextEmpty === -1 ? length - 1 : nextEmpty);
148
- return next;
149
- });
150
- },
151
- [emitChange, focusIndex, length]
152
- );
153
- return /* @__PURE__ */ jsxs(
154
- "div",
155
- {
156
- "aria-describedby": "otp-instructions",
157
- "aria-labelledby": "otp-group-label",
158
- className: bem(void 0, void 0, className),
159
- role: "group",
160
- onPaste: handlePaste,
161
- children: [
162
- /* @__PURE__ */ jsx("span", { className: bem("label"), id: "otp-group-label", children: groupLabel ?? "Enter your OTP" }),
163
- /* @__PURE__ */ jsx("span", { className: bem("instruction"), id: "otp-instructions", children: groupInstruction ?? "Use the arrow keys to navigate between digits." }),
164
- otp.map((value, index) => /* @__PURE__ */ jsx(
165
- Input,
166
- {
167
- ...props,
168
- hideCounter: true,
169
- "aria-label": `${(props == null ? void 0 : props["aria-label"]) ?? "OTP digit"} ${index + 1}`,
170
- autoComplete: "one-time-code",
171
- className: bem("input"),
172
- fieldClassName: bem("field"),
173
- inputClassName: bem("input__node"),
174
- inputContainerClassName: bem("input__container"),
175
- inputMode: "numeric",
176
- maxLength: 1,
177
- name: `otp-${index}`,
178
- pattern: "\\\\d*",
179
- placeholder: "•",
180
- type: "text",
181
- value,
182
- inputRef: /* @__PURE__ */ __name((el) => {
183
- inputs.current[index] = el ?? null;
184
- }, "inputRef"),
185
- onFocus: /* @__PURE__ */ __name(() => handleFocus(index), "onFocus"),
186
- onChange: /* @__PURE__ */ __name((e) => handleChange(e, index), "onChange"),
187
- onKeyDown: /* @__PURE__ */ __name((e) => handleKeyDown(e, index), "onKeyDown")
188
- },
189
- `otp-${index}`
190
- ))
191
- ]
192
- }
193
- );
194
- }
195
- );
196
- InputOTP.displayName = "InputOTP";
3
+ import { createIsland } from "../../helpers/createIsland.js";
4
+ import InputOTPServer from "./InputOTP.server.js";
5
+ const InputOTP = createIsland({
6
+ name: "InputOTP",
7
+ Server: InputOTPServer,
8
+ loadLazy: (
9
+ /* istanbul ignore next */
10
+ /* @__PURE__ */ __name(() => import("./InputOTP.lazy.js"), "loadLazy")
11
+ )
12
+ });
197
13
  export {
198
14
  InputOTP
199
15
  };
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { createLazyWrapper } from "../../helpers/createLazyWrapper.js";
3
+ import InputOTPClient from "./InputOTP.client.js";
4
+ import InputOTPServer from "./InputOTP.server.js";
5
+ const InputOTP_lazy = createLazyWrapper({
6
+ name: "InputOTP",
7
+ Client: InputOTPClient,
8
+ Server: InputOTPServer
9
+ });
10
+ export {
11
+ InputOTP_lazy as default
12
+ };