@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
@@ -1,21 +1,31 @@
1
1
  "use client";
2
2
  var __defProp = Object.defineProperty;
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
- import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
5
5
  import { memo, useRef, useState, useEffect, useCallback, useMemo } from "react";
6
6
  import { createPortal } from "react-dom";
7
+ import { create } from "../../helpers/bem.js";
8
+ import styles from "./Select.module.scss.js";
7
9
  import { SelectView } from "./Select.view.js";
10
+ import { Icon } from "../icon/Icon.js";
11
+ const bem = create(styles, "Select");
8
12
  function isMulti(v) {
9
13
  return Array.isArray(v);
10
14
  }
11
15
  __name(isMulti, "isMulti");
12
16
  const toDatasetKey = /* @__PURE__ */ __name((k) => k.replace(/-([a-z])/g, (_, c) => c.toUpperCase()), "toDatasetKey");
13
17
  function mergeValue(oldVal, newVal, multiple = false) {
14
- return multiple ? (() => {
15
- const s = new Set(isMulti(oldVal) ? oldVal : []);
16
- s.has(newVal) ? s.delete(newVal) : s.add(newVal);
17
- return [...s];
18
- })() : newVal;
18
+ return multiple ? (
19
+ /* istanbul ignore next */
20
+ (() => {
21
+ const s = new Set(
22
+ /* istanbul ignore next */
23
+ isMulti(oldVal) ? oldVal : []
24
+ );
25
+ s.has(newVal) ? s.delete(newVal) : s.add(newVal);
26
+ return [...s];
27
+ })()
28
+ ) : newVal;
19
29
  }
20
30
  __name(mergeValue, "mergeValue");
21
31
  function SelectClient({
@@ -37,6 +47,8 @@ function SelectClient({
37
47
  );
38
48
  const [popupStyle, setPopupStyle] = useState({});
39
49
  const [popupReady, setPopupReady] = useState(false);
50
+ const [isMobile, setIsMobile] = useState(false);
51
+ const sheetSwipeStart = useRef(null);
40
52
  const hasPlaceholder = !Boolean(required) && !Boolean(multiple);
41
53
  const optionCount = (hasPlaceholder ? 1 : 0) + items.length;
42
54
  useEffect(() => {
@@ -64,7 +76,10 @@ function SelectClient({
64
76
  );
65
77
  const valueToIndex = useCallback(() => {
66
78
  if (!Boolean(multiple)) {
67
- const current = String(val ?? "");
79
+ const current = String(
80
+ /* istanbul ignore next */
81
+ val ?? ""
82
+ );
68
83
  if (hasPlaceholder && current === "") return 0;
69
84
  const idx = items.findIndex((x) => String(x.value) === current);
70
85
  if (idx >= 0) return idx + (hasPlaceholder ? 1 : 0);
@@ -81,19 +96,23 @@ function SelectClient({
81
96
  setPopupReady(false);
82
97
  (_a = btnRef == null ? void 0 : btnRef.current) == null ? void 0 : _a.focus();
83
98
  }, []);
84
- const updatePopupPosition = useCallback(() => {
85
- const btn = btnRef.current;
86
- if (!btn) return false;
87
- const r = btn.getBoundingClientRect();
88
- setPopupStyle({
89
- position: "fixed",
90
- left: r.left,
91
- top: r.bottom,
92
- width: r.width,
93
- zIndex: 2147483647
94
- });
95
- return true;
96
- }, []);
99
+ const updatePopupPosition = useCallback(
100
+ /* istanbul ignore next */
101
+ () => {
102
+ const btn = btnRef.current;
103
+ if (!btn) return false;
104
+ const r = btn.getBoundingClientRect();
105
+ setPopupStyle({
106
+ position: "fixed",
107
+ left: r.left,
108
+ top: r.bottom,
109
+ width: r.width,
110
+ zIndex: 2147483647
111
+ });
112
+ return true;
113
+ },
114
+ []
115
+ );
97
116
  useEffect(() => {
98
117
  if (!open || !popupReady) return;
99
118
  setActiveIndex(valueToIndex());
@@ -142,54 +161,77 @@ function SelectClient({
142
161
  window.addEventListener("click", handleOutside);
143
162
  return () => window.removeEventListener("click", handleOutside);
144
163
  }, [open, close]);
145
- const handleKey = /* @__PURE__ */ __name((e) => {
146
- var _a, _b;
147
- if (Boolean(disabled)) return;
148
- if (e.key === "Escape") {
149
- e.preventDefault();
150
- close();
151
- return;
152
- }
153
- if (e.key === "ArrowDown") {
154
- e.preventDefault();
155
- if (!open) {
156
- openWithPosition();
164
+ useEffect(() => {
165
+ const mq = window.matchMedia("(max-width: 480px)");
166
+ setIsMobile(mq.matches);
167
+ const handler = /* @__PURE__ */ __name((e) => setIsMobile(e.matches), "handler");
168
+ mq.addEventListener("change", handler);
169
+ return () => mq.removeEventListener("change", handler);
170
+ }, []);
171
+ const handleKey = (
172
+ /* istanbul ignore next */
173
+ /* @__PURE__ */ __name((e) => {
174
+ var _a, _b;
175
+ if (Boolean(disabled)) return;
176
+ if (e.key === "Escape") {
177
+ e.preventDefault();
178
+ close();
157
179
  return;
158
180
  }
159
- setActiveIndex((i) => clampIndex((i < 0 ? valueToIndex() : i) + 1));
160
- (_a = listRef.current) == null ? void 0 : _a.focus();
161
- return;
162
- }
163
- if (e.key === "ArrowUp") {
164
- e.preventDefault();
165
- if (!open) {
166
- openWithPosition();
181
+ if (e.key === "ArrowDown") {
182
+ e.preventDefault();
183
+ if (!open) {
184
+ openWithPosition();
185
+ return;
186
+ }
187
+ setActiveIndex((i) => clampIndex((i < 0 ? valueToIndex() : i) + 1));
188
+ (_a = listRef.current) == null ? void 0 : _a.focus();
167
189
  return;
168
190
  }
169
- setActiveIndex((i) => clampIndex((i < 0 ? valueToIndex() : i) - 1));
170
- (_b = listRef.current) == null ? void 0 : _b.focus();
171
- }
172
- }, "handleKey");
173
- const dataset = useMemo(() => {
174
- const d = {};
175
- for (const [k, v] of Object.entries(rest)) {
176
- if (k.startsWith("data-")) d[toDatasetKey(k.slice(5))] = v;
177
- }
178
- return d;
179
- }, [rest]);
180
- const clickOption = /* @__PURE__ */ __name((opt) => {
181
- const newVal = opt === null ? Boolean(multiple) ? [] : "" : mergeValue(val, opt, multiple);
182
- const syntheticEvt = { target: { dataset } };
183
- setVal(newVal);
184
- onChange == null ? void 0 : onChange(syntheticEvt, newVal);
185
- if (!Boolean(multiple)) close();
186
- }, "clickOption");
187
- const onOptionKeyDown = /* @__PURE__ */ __name((e, v) => {
188
- if (e.key === "Enter" || e.key === " ") {
189
- e.preventDefault();
190
- clickOption(v);
191
- }
192
- }, "onOptionKeyDown");
191
+ if (e.key === "ArrowUp") {
192
+ e.preventDefault();
193
+ if (!open) {
194
+ openWithPosition();
195
+ return;
196
+ }
197
+ setActiveIndex((i) => clampIndex((i < 0 ? valueToIndex() : i) - 1));
198
+ (_b = listRef.current) == null ? void 0 : _b.focus();
199
+ }
200
+ }, "handleKey")
201
+ );
202
+ const dataset = useMemo(
203
+ /* istanbul ignore next */
204
+ () => {
205
+ const d = {};
206
+ for (const [k, v] of Object.entries(rest)) {
207
+ if (k.startsWith("data-")) d[toDatasetKey(k.slice(5))] = v;
208
+ }
209
+ return d;
210
+ },
211
+ [rest]
212
+ );
213
+ const clickOption = (
214
+ /* istanbul ignore next */
215
+ /* @__PURE__ */ __name((opt) => {
216
+ const newVal = opt === null ? (
217
+ /* istanbul ignore next */
218
+ Boolean(multiple) ? [] : ""
219
+ ) : mergeValue(val, opt, multiple);
220
+ const syntheticEvt = { target: { dataset } };
221
+ setVal(newVal);
222
+ onChange == null ? void 0 : onChange(syntheticEvt, newVal);
223
+ if (!Boolean(multiple)) close();
224
+ }, "clickOption")
225
+ );
226
+ const onOptionKeyDown = (
227
+ /* istanbul ignore next */
228
+ /* @__PURE__ */ __name((e, v) => {
229
+ if (e.key === "Enter" || e.key === " ") {
230
+ e.preventDefault();
231
+ clickOption(v);
232
+ }
233
+ }, "onOptionKeyDown")
234
+ );
193
235
  return /* @__PURE__ */ jsx(
194
236
  SelectView,
195
237
  {
@@ -211,38 +253,181 @@ function SelectClient({
211
253
  if (!args.open) return null;
212
254
  if (!popupReady) return null;
213
255
  if (typeof document === "undefined") return null;
214
- const onListKeyDown = /* @__PURE__ */ __name((e) => {
215
- if (e.key === "Escape") {
216
- e.preventDefault();
217
- close();
218
- return;
219
- }
220
- if (e.key === "ArrowDown") {
221
- e.preventDefault();
222
- setActiveIndex((i) => clampIndex((i < 0 ? valueToIndex() : i) + 1));
223
- return;
224
- }
225
- if (e.key === "ArrowUp") {
226
- e.preventDefault();
227
- setActiveIndex((i) => clampIndex((i < 0 ? valueToIndex() : i) - 1));
228
- return;
229
- }
230
- if (e.key === "Home") {
231
- e.preventDefault();
232
- setActiveIndex(optionCount > 0 ? 0 : -1);
233
- return;
234
- }
235
- if (e.key === "End") {
236
- e.preventDefault();
237
- setActiveIndex(optionCount > 0 ? optionCount - 1 : -1);
238
- return;
239
- }
240
- if (e.key === "Enter" || e.key === " ") {
241
- e.preventDefault();
242
- const v = indexToValue(activeIndex);
243
- clickOption(v);
244
- }
245
- }, "onListKeyDown");
256
+ const onListKeyDown = (
257
+ /* istanbul ignore next */
258
+ /* @__PURE__ */ __name((e) => {
259
+ if (e.key === "Escape") {
260
+ e.preventDefault();
261
+ close();
262
+ return;
263
+ }
264
+ if (e.key === "ArrowDown") {
265
+ e.preventDefault();
266
+ setActiveIndex((i) => clampIndex((i < 0 ? valueToIndex() : i) + 1));
267
+ return;
268
+ }
269
+ if (e.key === "ArrowUp") {
270
+ e.preventDefault();
271
+ setActiveIndex((i) => clampIndex((i < 0 ? valueToIndex() : i) - 1));
272
+ return;
273
+ }
274
+ if (e.key === "Home") {
275
+ e.preventDefault();
276
+ setActiveIndex(optionCount > 0 ? 0 : -1);
277
+ return;
278
+ }
279
+ if (e.key === "End") {
280
+ e.preventDefault();
281
+ setActiveIndex(optionCount > 0 ? optionCount - 1 : -1);
282
+ return;
283
+ }
284
+ if (e.key === "Enter" || e.key === " ") {
285
+ e.preventDefault();
286
+ const v = indexToValue(activeIndex);
287
+ clickOption(v);
288
+ }
289
+ }, "onListKeyDown")
290
+ );
291
+ if (isMobile) {
292
+ const sheetVariant = rest.color ?? "primary";
293
+ const handleSheetTouchStart = /* @__PURE__ */ __name((e) => {
294
+ var _a;
295
+ sheetSwipeStart.current = ((_a = e.touches[0]) == null ? void 0 : _a.clientY) ?? null;
296
+ }, "handleSheetTouchStart");
297
+ const handleSheetTouchEnd = /* @__PURE__ */ __name((e) => {
298
+ var _a;
299
+ const startY = sheetSwipeStart.current;
300
+ sheetSwipeStart.current = null;
301
+ if (startY === null) return;
302
+ const dy = (((_a = e.changedTouches[0]) == null ? void 0 : _a.clientY) ?? startY) - startY;
303
+ if (dy > 60) close();
304
+ }, "handleSheetTouchEnd");
305
+ const sheet = /* @__PURE__ */ jsxs(Fragment, { children: [
306
+ /* @__PURE__ */ jsx(
307
+ "div",
308
+ {
309
+ "aria-hidden": "true",
310
+ className: bem("sheet__backdrop"),
311
+ onClick: close
312
+ }
313
+ ),
314
+ /* @__PURE__ */ jsxs(
315
+ "div",
316
+ {
317
+ "aria-label": rest.label,
318
+ "aria-modal": "true",
319
+ className: bem("sheet", { [sheetVariant]: true }),
320
+ role: "dialog",
321
+ onTouchEnd: handleSheetTouchEnd,
322
+ onTouchStart: handleSheetTouchStart,
323
+ children: [
324
+ /* @__PURE__ */ jsxs("div", { className: bem("sheet__header"), children: [
325
+ /* @__PURE__ */ jsx("span", { className: bem("sheet__title"), children: rest.label }),
326
+ /* @__PURE__ */ jsx(
327
+ "button",
328
+ {
329
+ "aria-label": "Close",
330
+ className: bem("sheet__close"),
331
+ type: "button",
332
+ onClick: close,
333
+ children: /* @__PURE__ */ jsx(Icon, { name: "Cancel01Icon", size: "sm" })
334
+ }
335
+ )
336
+ ] }),
337
+ /* @__PURE__ */ jsxs(
338
+ "ul",
339
+ {
340
+ ref: listRef,
341
+ "aria-multiselectable": Boolean(args.multiple) || void 0,
342
+ className: bem("sheet__list"),
343
+ id: args.id,
344
+ role: "listbox",
345
+ tabIndex: 0,
346
+ "aria-activedescendant": activeIndex >= 0 ? `${args.id}-opt-${activeIndex}` : void 0,
347
+ onKeyDown: onListKeyDown,
348
+ children: [
349
+ !Boolean(args.required) && !Boolean(args.multiple) && /* @__PURE__ */ jsx(
350
+ "li",
351
+ {
352
+ id: `${args.id}-opt-0`,
353
+ role: "option",
354
+ tabIndex: -1,
355
+ "aria-selected": (
356
+ /* istanbul ignore next */
357
+ Array.isArray(args.value) ? args.value.length === 0 : String(args.value ?? "") === ""
358
+ ),
359
+ className: bem("sheet__item", {
360
+ selected: (
361
+ /* istanbul ignore next */
362
+ Array.isArray(args.value) ? args.value.length === 0 : String(args.value ?? "") === ""
363
+ ),
364
+ active: activeIndex === 0
365
+ }),
366
+ onClick: (
367
+ /* istanbul ignore next */
368
+ /* @__PURE__ */ __name(() => args.onOptionClick(null), "onClick")
369
+ ),
370
+ onKeyDown: (
371
+ /* istanbul ignore next */
372
+ /* @__PURE__ */ __name((e) => onOptionKeyDown(e, null), "onKeyDown")
373
+ ),
374
+ onMouseMove: (
375
+ /* istanbul ignore next */
376
+ /* @__PURE__ */ __name(() => setActiveIndex(0), "onMouseMove")
377
+ ),
378
+ children: args.placeholder
379
+ },
380
+ "placeholder"
381
+ ),
382
+ args.items.map((opt) => {
383
+ var _a;
384
+ const hasPh = !Boolean(args.required) && !Boolean(args.multiple);
385
+ const idx = args.items.findIndex(
386
+ (x) => x.value === opt.value
387
+ );
388
+ const index = idx + (hasPh ? 1 : 0);
389
+ const selected = Array.isArray(args.value) ? args.value.includes(opt.value) : opt.value === args.value;
390
+ return /* @__PURE__ */ jsxs(
391
+ "li",
392
+ {
393
+ "aria-selected": selected,
394
+ id: `${args.id}-opt-${index}`,
395
+ role: "option",
396
+ tabIndex: -1,
397
+ className: bem("sheet__item", {
398
+ selected,
399
+ active: activeIndex === index
400
+ }),
401
+ onClick: /* @__PURE__ */ __name(() => args.onOptionClick(opt.value), "onClick"),
402
+ onMouseMove: /* @__PURE__ */ __name(() => setActiveIndex(index), "onMouseMove"),
403
+ onKeyDown: /* @__PURE__ */ __name((e) => onOptionKeyDown(e, opt.value), "onKeyDown"),
404
+ children: [
405
+ Boolean(args.iconVisible) && /* istanbul ignore next */
406
+ ((_a = opt.icon) == null ? void 0 : _a.call(opt)),
407
+ opt.label
408
+ ]
409
+ },
410
+ `${args.id}-${opt.value}`
411
+ );
412
+ })
413
+ ]
414
+ }
415
+ ),
416
+ Boolean(args.multiple) && /* @__PURE__ */ jsx("div", { className: bem("sheet__footer"), children: /* @__PURE__ */ jsx(
417
+ "button",
418
+ {
419
+ className: bem("sheet__done"),
420
+ type: "button",
421
+ onClick: close,
422
+ children: "Done"
423
+ }
424
+ ) })
425
+ ]
426
+ }
427
+ )
428
+ ] });
429
+ return createPortal(sheet, document.body);
430
+ }
246
431
  const listbox = /* @__PURE__ */ jsxs(
247
432
  "ul",
248
433
  {
@@ -262,14 +447,29 @@ function SelectClient({
262
447
  id: `${args.id}-opt-0`,
263
448
  role: "option",
264
449
  tabIndex: -1,
265
- "aria-selected": Array.isArray(args.value) ? args.value.length === 0 : String(args.value ?? "") === "",
450
+ "aria-selected": (
451
+ /* istanbul ignore next */
452
+ Array.isArray(args.value) ? args.value.length === 0 : String(args.value ?? "") === ""
453
+ ),
266
454
  className: args.bemItem({
267
- selected: Array.isArray(args.value) ? args.value.length === 0 : String(args.value ?? "") === "",
455
+ selected: (
456
+ /* istanbul ignore next */
457
+ Array.isArray(args.value) ? args.value.length === 0 : String(args.value ?? "") === ""
458
+ ),
268
459
  active: activeIndex === 0
269
460
  }),
270
- onClick: /* @__PURE__ */ __name(() => args.onOptionClick(null), "onClick"),
271
- onKeyDown: /* @__PURE__ */ __name((e) => onOptionKeyDown(e, null), "onKeyDown"),
272
- onMouseMove: /* @__PURE__ */ __name(() => setActiveIndex(0), "onMouseMove"),
461
+ onClick: (
462
+ /* istanbul ignore next */
463
+ /* @__PURE__ */ __name(() => args.onOptionClick(null), "onClick")
464
+ ),
465
+ onKeyDown: (
466
+ /* istanbul ignore next */
467
+ /* @__PURE__ */ __name((e) => onOptionKeyDown(e, null), "onKeyDown")
468
+ ),
469
+ onMouseMove: (
470
+ /* istanbul ignore next */
471
+ /* @__PURE__ */ __name(() => setActiveIndex(0), "onMouseMove")
472
+ ),
273
473
  children: args.placeholder
274
474
  },
275
475
  "placeholder"
@@ -305,7 +505,8 @@ function SelectClient({
305
505
  type: "checkbox"
306
506
  }
307
507
  ),
308
- Boolean(args.iconVisible) && ((_a = opt.icon) == null ? void 0 : _a.call(opt)),
508
+ Boolean(args.iconVisible) && /* istanbul ignore next */
509
+ ((_a = opt.icon) == null ? void 0 : _a.call(opt)),
309
510
  opt.label
310
511
  ]
311
512
  },