@nectary/components 4.12.0 → 4.12.1

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 (585) hide show
  1. package/accordion/index.d.ts +22 -1
  2. package/accordion/index.js +39 -41
  3. package/accordion/types.d.ts +1 -21
  4. package/accordion/types.js +1 -1
  5. package/accordion-item/index.d.ts +22 -2
  6. package/accordion-item/index.js +49 -53
  7. package/accordion-item/types.d.ts +1 -21
  8. package/accordion-item/types.js +1 -1
  9. package/accordion-item/utils.js +1 -4
  10. package/action-menu/index.d.ts +22 -1
  11. package/action-menu/index.js +77 -62
  12. package/action-menu/types.d.ts +1 -21
  13. package/action-menu/types.js +1 -1
  14. package/action-menu-option/index.d.ts +22 -1
  15. package/action-menu-option/index.js +41 -39
  16. package/action-menu-option/types.d.ts +1 -21
  17. package/action-menu-option/types.js +1 -1
  18. package/action-menu-option/utils.js +3 -6
  19. package/alert/index.d.ts +22 -2
  20. package/alert/index.js +21 -24
  21. package/alert/types.d.ts +1 -21
  22. package/alert/types.js +1 -1
  23. package/alert/utils.js +1 -4
  24. package/avatar/colors.js +1 -1
  25. package/avatar/index.d.ts +22 -2
  26. package/avatar/index.js +41 -42
  27. package/avatar/types.d.ts +1 -21
  28. package/avatar/types.js +1 -1
  29. package/avatar/utils.js +4 -9
  30. package/badge/index.d.ts +22 -3
  31. package/badge/index.js +51 -52
  32. package/badge/types.d.ts +1 -21
  33. package/badge/types.js +1 -1
  34. package/badge/utils.js +1 -4
  35. package/button/index.d.ts +22 -2
  36. package/button/index.js +111 -101
  37. package/button/types.d.ts +1 -21
  38. package/button/types.js +1 -1
  39. package/button/utils.js +2 -18
  40. package/button-group/index.d.ts +22 -1
  41. package/button-group/index.js +18 -20
  42. package/button-group/types.d.ts +3 -22
  43. package/button-group/types.js +1 -1
  44. package/button-group-item/index.d.ts +22 -2
  45. package/button-group-item/index.js +42 -31
  46. package/button-group-item/types.d.ts +3 -22
  47. package/button-group-item/types.js +1 -1
  48. package/card/index.d.ts +40 -0
  49. package/card/index.js +134 -0
  50. package/card/types.d.ts +17 -0
  51. package/card/types.js +1 -0
  52. package/card-container/index.d.ts +21 -1
  53. package/card-container/index.js +5 -8
  54. package/card-container/types.d.ts +1 -21
  55. package/card-container/types.js +1 -1
  56. package/card-v2/index.d.ts +22 -1
  57. package/card-v2/index.js +57 -59
  58. package/card-v2/types.d.ts +1 -21
  59. package/card-v2/types.js +1 -1
  60. package/card-v2-title/index.d.ts +22 -2
  61. package/card-v2-title/index.js +26 -28
  62. package/card-v2-title/types.d.ts +1 -21
  63. package/card-v2-title/types.js +1 -1
  64. package/checkbox/index.d.ts +22 -1
  65. package/checkbox/index.js +81 -88
  66. package/checkbox/types.d.ts +1 -21
  67. package/checkbox/types.js +1 -1
  68. package/chip/colors.js +1 -1
  69. package/chip/index.d.ts +22 -1
  70. package/chip/index.js +75 -62
  71. package/chip/types.d.ts +1 -21
  72. package/chip/types.js +1 -1
  73. package/chip/utils.js +3 -7
  74. package/code-tag/index.d.ts +22 -1
  75. package/code-tag/index.js +14 -17
  76. package/code-tag/types.d.ts +1 -21
  77. package/code-tag/types.js +1 -1
  78. package/color-menu/index.d.ts +22 -2
  79. package/color-menu/index.js +115 -115
  80. package/color-menu/types.d.ts +1 -21
  81. package/color-menu/types.js +1 -1
  82. package/color-menu/utils.js +3 -6
  83. package/color-menu-option/index.d.ts +22 -1
  84. package/color-menu-option/index.js +26 -30
  85. package/color-menu-option/types.d.ts +1 -21
  86. package/color-menu-option/types.js +1 -1
  87. package/color-menu-option/utils.js +3 -6
  88. package/color-swatch/index.d.ts +22 -1
  89. package/color-swatch/index.js +20 -23
  90. package/color-swatch/types.d.ts +1 -21
  91. package/color-swatch/types.js +1 -1
  92. package/color-swatch/utils.js +3 -7
  93. package/date-picker/index.d.ts +22 -2
  94. package/date-picker/index.js +150 -157
  95. package/date-picker/types.d.ts +1 -21
  96. package/date-picker/types.js +1 -1
  97. package/date-picker/utils.js +42 -59
  98. package/dialog/index.d.ts +22 -1
  99. package/dialog/index.js +58 -71
  100. package/dialog/types.d.ts +1 -21
  101. package/dialog/types.js +1 -1
  102. package/dialog/utils.js +7 -11
  103. package/emoji/index.d.ts +22 -1
  104. package/emoji/index.js +16 -19
  105. package/emoji/types.d.ts +1 -21
  106. package/emoji/types.js +1 -1
  107. package/emoji/utils.js +17 -22
  108. package/emoji-picker/index.d.ts +22 -2
  109. package/emoji-picker/index.js +118 -138
  110. package/emoji-picker/types.d.ts +1 -21
  111. package/emoji-picker/types.js +1 -1
  112. package/field/index.d.ts +22 -1
  113. package/field/index.js +60 -63
  114. package/field/types.d.ts +1 -21
  115. package/field/types.js +1 -1
  116. package/file-drop/index.d.ts +22 -1
  117. package/file-drop/index.js +98 -103
  118. package/file-drop/types.d.ts +1 -21
  119. package/file-drop/types.js +1 -1
  120. package/file-drop/utils.js +22 -27
  121. package/file-picker/index.d.ts +22 -1
  122. package/file-picker/index.js +48 -53
  123. package/file-picker/types.d.ts +1 -21
  124. package/file-picker/types.js +1 -1
  125. package/file-picker/utils.js +3 -6
  126. package/file-status/index.d.ts +22 -2
  127. package/file-status/index.js +22 -33
  128. package/file-status/types.d.ts +1 -21
  129. package/file-status/types.js +1 -1
  130. package/file-status/utils.js +1 -4
  131. package/flag/index.d.ts +22 -1
  132. package/flag/index.js +16 -19
  133. package/flag/types.d.ts +1 -21
  134. package/flag/types.js +1 -1
  135. package/flag/utils.js +8 -11
  136. package/grid/index.d.ts +22 -1
  137. package/grid/index.js +5 -8
  138. package/grid/types.d.ts +1 -21
  139. package/grid/types.js +1 -1
  140. package/grid-item/index.d.ts +22 -1
  141. package/grid-item/index.js +13 -17
  142. package/grid-item/types.d.ts +1 -21
  143. package/grid-item/types.js +1 -1
  144. package/help-tooltip/index.d.ts +22 -1
  145. package/help-tooltip/index.js +26 -29
  146. package/help-tooltip/types.d.ts +1 -21
  147. package/help-tooltip/types.js +1 -1
  148. package/horizontal-stepper/index.d.ts +33 -0
  149. package/horizontal-stepper/index.js +62 -0
  150. package/horizontal-stepper/types.d.ts +42 -0
  151. package/horizontal-stepper/types.js +1 -0
  152. package/horizontal-stepper-item/index.d.ts +38 -0
  153. package/horizontal-stepper-item/index.js +62 -0
  154. package/horizontal-stepper-item/types.d.ts +38 -0
  155. package/horizontal-stepper-item/types.js +1 -0
  156. package/horizontal-stepper-item/utils.d.ts +2 -0
  157. package/horizontal-stepper-item/utils.js +1 -0
  158. package/icon/generated-icon-type.js +1 -1
  159. package/icon/index.d.ts +22 -1
  160. package/icon/index.js +28 -30
  161. package/icon/types.d.ts +1 -21
  162. package/icon/types.js +1 -1
  163. package/inline-alert/index.d.ts +22 -2
  164. package/inline-alert/index.js +39 -58
  165. package/inline-alert/types.d.ts +1 -21
  166. package/inline-alert/types.js +1 -1
  167. package/inline-alert/utils.js +1 -4
  168. package/input/index.d.ts +22 -2
  169. package/input/index.js +317 -295
  170. package/input/types.d.ts +1 -21
  171. package/input/types.js +1 -1
  172. package/input/utils.js +46 -56
  173. package/link/index.d.ts +22 -1
  174. package/link/index.js +79 -88
  175. package/link/types.d.ts +1 -21
  176. package/link/types.js +1 -1
  177. package/list/index.d.ts +21 -1
  178. package/list/index.js +6 -9
  179. package/list/types.d.ts +1 -21
  180. package/list/types.js +1 -1
  181. package/list-item/index.d.ts +22 -1
  182. package/list-item/index.js +6 -9
  183. package/list-item/types.d.ts +1 -21
  184. package/list-item/types.js +1 -1
  185. package/package.json +5 -11
  186. package/pagination/index.d.ts +22 -2
  187. package/pagination/index.js +46 -64
  188. package/pagination/types.d.ts +1 -21
  189. package/pagination/types.js +1 -1
  190. package/persistent-overlay/index.d.ts +22 -1
  191. package/persistent-overlay/index.js +44 -42
  192. package/persistent-overlay/types.d.ts +1 -21
  193. package/persistent-overlay/types.js +1 -1
  194. package/pop/index.d.ts +22 -3
  195. package/pop/index.js +150 -149
  196. package/pop/types.d.ts +1 -21
  197. package/pop/types.js +1 -1
  198. package/pop/utils.js +8 -24
  199. package/popover/index.d.ts +22 -2
  200. package/popover/index.js +68 -75
  201. package/popover/types.d.ts +1 -21
  202. package/popover/types.js +1 -1
  203. package/popover/utils.js +7 -18
  204. package/progress/index.d.ts +22 -1
  205. package/progress/index.js +33 -30
  206. package/progress/types.d.ts +1 -21
  207. package/progress/types.js +1 -1
  208. package/progress-stepper/index.d.ts +22 -2
  209. package/progress-stepper/index.js +66 -64
  210. package/progress-stepper/types.d.ts +1 -21
  211. package/progress-stepper/types.js +1 -1
  212. package/progress-stepper-item/index.d.ts +22 -1
  213. package/progress-stepper-item/index.js +50 -58
  214. package/progress-stepper-item/types.d.ts +1 -21
  215. package/progress-stepper-item/types.js +1 -1
  216. package/progress-stepper-item/utils.js +11 -22
  217. package/radio/index.d.ts +22 -1
  218. package/radio/index.js +83 -79
  219. package/radio/types.d.ts +1 -21
  220. package/radio/types.js +1 -1
  221. package/radio-option/index.d.ts +22 -1
  222. package/radio-option/index.js +41 -47
  223. package/radio-option/types.d.ts +1 -21
  224. package/radio-option/types.js +1 -1
  225. package/rich-text/index.d.ts +22 -1
  226. package/rich-text/index.js +46 -45
  227. package/rich-text/types.d.ts +1 -21
  228. package/rich-text/types.js +1 -1
  229. package/rich-text/utils.js +33 -31
  230. package/rich-textarea/index.d.ts +22 -1
  231. package/rich-textarea/index.js +194 -201
  232. package/rich-textarea/types.d.ts +1 -21
  233. package/rich-textarea/types.js +1 -1
  234. package/rich-textarea/utils.js +340 -313
  235. package/segment/index.d.ts +40 -0
  236. package/segment/index.js +110 -0
  237. package/segment/types.d.ts +23 -0
  238. package/segment/types.js +1 -0
  239. package/segment/utils.d.ts +3 -0
  240. package/segment/utils.js +16 -0
  241. package/segment-collapse/index.d.ts +22 -1
  242. package/segment-collapse/index.js +25 -31
  243. package/segment-collapse/types.d.ts +1 -21
  244. package/segment-collapse/types.js +1 -1
  245. package/segmented-control/index.d.ts +22 -1
  246. package/segmented-control/index.js +45 -45
  247. package/segmented-control/types.d.ts +1 -21
  248. package/segmented-control/types.js +1 -1
  249. package/segmented-control-option/index.d.ts +22 -1
  250. package/segmented-control-option/index.js +46 -44
  251. package/segmented-control-option/types.d.ts +1 -21
  252. package/segmented-control-option/types.js +1 -1
  253. package/segmented-icon-control/index.d.ts +22 -1
  254. package/segmented-icon-control/index.js +50 -51
  255. package/segmented-icon-control/types.d.ts +1 -21
  256. package/segmented-icon-control/types.js +1 -1
  257. package/segmented-icon-control-option/index.d.ts +22 -1
  258. package/segmented-icon-control-option/index.js +37 -36
  259. package/segmented-icon-control-option/types.d.ts +1 -21
  260. package/segmented-icon-control-option/types.js +1 -1
  261. package/select-button/index.d.ts +26 -1
  262. package/select-button/index.js +112 -104
  263. package/select-button/types.d.ts +1 -25
  264. package/select-button/types.js +1 -1
  265. package/select-menu/index.d.ts +22 -1
  266. package/select-menu/index.js +164 -201
  267. package/select-menu/types.d.ts +1 -21
  268. package/select-menu/types.js +1 -1
  269. package/select-menu-option/index.d.ts +22 -1
  270. package/select-menu-option/index.js +33 -41
  271. package/select-menu-option/types.d.ts +1 -21
  272. package/select-menu-option/types.js +1 -1
  273. package/select-menu-option/utils.js +1 -4
  274. package/skeleton/index.d.ts +22 -1
  275. package/skeleton/index.js +38 -35
  276. package/skeleton/types.d.ts +1 -21
  277. package/skeleton/types.js +1 -1
  278. package/skeleton-item/index.d.ts +22 -1
  279. package/skeleton-item/index.js +5 -8
  280. package/skeleton-item/types.d.ts +1 -21
  281. package/skeleton-item/types.js +1 -1
  282. package/spinner/index.d.ts +22 -1
  283. package/spinner/index.js +29 -31
  284. package/spinner/types.d.ts +1 -21
  285. package/spinner/types.js +1 -1
  286. package/standalone.d.ts +8 -0
  287. package/standalone.js +87 -79
  288. package/standalone.ts +8 -0
  289. package/stop-events/index.js +12 -12
  290. package/table/index.d.ts +21 -1
  291. package/table/index.js +6 -9
  292. package/table/types.d.ts +1 -21
  293. package/table/types.js +1 -1
  294. package/table-body/index.d.ts +21 -1
  295. package/table-body/index.js +6 -9
  296. package/table-body/types.d.ts +1 -21
  297. package/table-body/types.js +1 -1
  298. package/table-cell/index.d.ts +22 -2
  299. package/table-cell/index.js +9 -13
  300. package/table-cell/types.d.ts +1 -21
  301. package/table-cell/types.js +1 -1
  302. package/table-cell/utils.js +1 -4
  303. package/table-head/index.d.ts +21 -1
  304. package/table-head/index.js +6 -9
  305. package/table-head/types.d.ts +1 -21
  306. package/table-head/types.js +1 -1
  307. package/table-head-cell/index.d.ts +22 -1
  308. package/table-head-cell/index.js +27 -29
  309. package/table-head-cell/types.d.ts +1 -21
  310. package/table-head-cell/types.js +1 -1
  311. package/table-row/index.d.ts +22 -1
  312. package/table-row/index.js +17 -20
  313. package/table-row/types.d.ts +1 -21
  314. package/table-row/types.js +1 -1
  315. package/tabs/index.d.ts +22 -2
  316. package/tabs/index.js +35 -32
  317. package/tabs/types.d.ts +1 -21
  318. package/tabs/types.js +1 -1
  319. package/tabs-icon-option/index.d.ts +22 -1
  320. package/tabs-icon-option/index.js +40 -38
  321. package/tabs-icon-option/types.d.ts +1 -21
  322. package/tabs-icon-option/types.js +1 -1
  323. package/tabs-option/index.d.ts +22 -1
  324. package/tabs-option/index.js +43 -41
  325. package/tabs-option/types.d.ts +1 -21
  326. package/tabs-option/types.js +1 -1
  327. package/tag/colors.js +1 -1
  328. package/tag/index.d.ts +22 -1
  329. package/tag/index.js +44 -45
  330. package/tag/types.d.ts +1 -21
  331. package/tag/types.js +1 -1
  332. package/tag/utils.js +3 -7
  333. package/text/index.d.ts +22 -2
  334. package/text/index.js +28 -33
  335. package/text/types.d.ts +1 -21
  336. package/text/types.js +1 -1
  337. package/text/utils.js +1 -4
  338. package/textarea/index.d.ts +22 -1
  339. package/textarea/index.js +152 -147
  340. package/textarea/types.d.ts +1 -21
  341. package/textarea/types.js +1 -1
  342. package/tile-control/index.d.ts +39 -0
  343. package/tile-control/index.js +111 -0
  344. package/tile-control/types.d.ts +29 -0
  345. package/tile-control/types.js +1 -0
  346. package/tile-control-option/index.d.ts +40 -0
  347. package/tile-control-option/index.js +99 -0
  348. package/tile-control-option/types.d.ts +52 -0
  349. package/tile-control-option/types.js +1 -0
  350. package/time-picker/index.d.ts +22 -2
  351. package/time-picker/index.js +123 -119
  352. package/time-picker/types.d.ts +1 -21
  353. package/time-picker/types.js +1 -1
  354. package/time-picker/utils.js +33 -31
  355. package/title/index.d.ts +22 -2
  356. package/title/index.js +31 -32
  357. package/title/types.d.ts +1 -21
  358. package/title/types.js +1 -1
  359. package/title/utils.js +14 -18
  360. package/toast/index.d.ts +22 -2
  361. package/toast/index.js +34 -37
  362. package/toast/types.d.ts +1 -21
  363. package/toast/types.js +1 -1
  364. package/toast/utils.js +1 -4
  365. package/toast-manager/index.d.ts +22 -3
  366. package/toast-manager/index.js +63 -77
  367. package/toast-manager/types.d.ts +1 -21
  368. package/toast-manager/types.js +1 -1
  369. package/toast-manager/utils.js +1 -4
  370. package/toggle/index.d.ts +22 -1
  371. package/toggle/index.js +75 -81
  372. package/toggle/types.d.ts +1 -21
  373. package/toggle/types.js +1 -1
  374. package/tooltip/index.d.ts +22 -3
  375. package/tooltip/index.js +93 -105
  376. package/tooltip/tooltip-state.js +64 -56
  377. package/tooltip/types.d.ts +1 -21
  378. package/tooltip/types.js +1 -1
  379. package/tooltip/utils.js +13 -32
  380. package/types.d.ts +29 -12
  381. package/utils/adapters.js +1 -1
  382. package/utils/context.js +42 -32
  383. package/utils/countries.js +2 -490
  384. package/utils/csv.js +6 -13
  385. package/utils/debounce.js +3 -10
  386. package/utils/dom.js +53 -60
  387. package/utils/element.d.ts +15 -107
  388. package/utils/element.js +19 -100
  389. package/utils/event-target.js +5 -11
  390. package/utils/form.js +12 -17
  391. package/utils/get-react-event-handler.js +3 -6
  392. package/utils/index.js +12 -65
  393. package/utils/markdown.js +43 -56
  394. package/utils/rect.js +18 -13
  395. package/utils/size.js +3 -8
  396. package/utils/slot.js +9 -13
  397. package/utils/throttle.js +2 -5
  398. package/utils/uid.js +2 -5
  399. package/vertical-stepper/index.d.ts +33 -0
  400. package/vertical-stepper/index.js +58 -0
  401. package/vertical-stepper/types.d.ts +34 -0
  402. package/vertical-stepper/types.js +1 -0
  403. package/vertical-stepper-item/index.d.ts +38 -0
  404. package/vertical-stepper-item/index.js +62 -0
  405. package/vertical-stepper-item/types.d.ts +42 -0
  406. package/vertical-stepper-item/types.js +1 -0
  407. package/vertical-stepper-item/utils.d.ts +2 -0
  408. package/vertical-stepper-item/utils.js +1 -0
  409. package/accordion/global/index.d.ts +0 -1
  410. package/accordion/global/index.js +0 -2
  411. package/accordion-item/global/index.d.ts +0 -1
  412. package/accordion-item/global/index.js +0 -2
  413. package/action-menu/global/index.d.ts +0 -1
  414. package/action-menu/global/index.js +0 -2
  415. package/action-menu-option/global/index.d.ts +0 -1
  416. package/action-menu-option/global/index.js +0 -2
  417. package/alert/global/index.d.ts +0 -1
  418. package/alert/global/index.js +0 -2
  419. package/avatar/global/index.d.ts +0 -1
  420. package/avatar/global/index.js +0 -2
  421. package/badge/global/index.d.ts +0 -1
  422. package/badge/global/index.js +0 -2
  423. package/bundle.d.ts +0 -78
  424. package/bundle.js +0 -13033
  425. package/bundle.ts +0 -80
  426. package/button/global/index.d.ts +0 -1
  427. package/button/global/index.js +0 -2
  428. package/button-group/global/index.d.ts +0 -1
  429. package/button-group/global/index.js +0 -2
  430. package/button-group-item/global/index.d.ts +0 -1
  431. package/button-group-item/global/index.js +0 -2
  432. package/card-container/global/index.d.ts +0 -1
  433. package/card-container/global/index.js +0 -2
  434. package/card-v2/global/index.d.ts +0 -1
  435. package/card-v2/global/index.js +0 -2
  436. package/card-v2-title/global/index.d.ts +0 -1
  437. package/card-v2-title/global/index.js +0 -2
  438. package/checkbox/global/index.d.ts +0 -1
  439. package/checkbox/global/index.js +0 -2
  440. package/chip/global/index.d.ts +0 -1
  441. package/chip/global/index.js +0 -2
  442. package/code-tag/global/index.d.ts +0 -1
  443. package/code-tag/global/index.js +0 -2
  444. package/color-menu/global/index.d.ts +0 -1
  445. package/color-menu/global/index.js +0 -2
  446. package/color-menu-option/global/index.d.ts +0 -1
  447. package/color-menu-option/global/index.js +0 -2
  448. package/color-swatch/global/index.d.ts +0 -1
  449. package/color-swatch/global/index.js +0 -2
  450. package/date-picker/global/index.d.ts +0 -1
  451. package/date-picker/global/index.js +0 -2
  452. package/dialog/global/index.d.ts +0 -1
  453. package/dialog/global/index.js +0 -2
  454. package/emoji/global/index.d.ts +0 -1
  455. package/emoji/global/index.js +0 -2
  456. package/emoji-picker/global/index.d.ts +0 -1
  457. package/emoji-picker/global/index.js +0 -2
  458. package/field/global/index.d.ts +0 -1
  459. package/field/global/index.js +0 -2
  460. package/file-drop/global/index.d.ts +0 -1
  461. package/file-drop/global/index.js +0 -2
  462. package/file-picker/global/index.d.ts +0 -1
  463. package/file-picker/global/index.js +0 -2
  464. package/file-status/global/index.d.ts +0 -1
  465. package/file-status/global/index.js +0 -2
  466. package/flag/global/index.d.ts +0 -1
  467. package/flag/global/index.js +0 -2
  468. package/grid/global/index.d.ts +0 -1
  469. package/grid/global/index.js +0 -2
  470. package/grid-item/global/index.d.ts +0 -1
  471. package/grid-item/global/index.js +0 -2
  472. package/help-tooltip/global/index.d.ts +0 -1
  473. package/help-tooltip/global/index.js +0 -2
  474. package/icon/global/index.d.ts +0 -1
  475. package/icon/global/index.js +0 -2
  476. package/inline-alert/global/index.d.ts +0 -1
  477. package/inline-alert/global/index.js +0 -2
  478. package/input/global/index.d.ts +0 -1
  479. package/input/global/index.js +0 -2
  480. package/link/global/index.d.ts +0 -1
  481. package/link/global/index.js +0 -2
  482. package/list/global/index.d.ts +0 -1
  483. package/list/global/index.js +0 -2
  484. package/list-item/global/index.d.ts +0 -1
  485. package/list-item/global/index.js +0 -2
  486. package/pagination/global/index.d.ts +0 -1
  487. package/pagination/global/index.js +0 -2
  488. package/persistent-overlay/global/index.d.ts +0 -1
  489. package/persistent-overlay/global/index.js +0 -2
  490. package/pop/global/index.d.ts +0 -1
  491. package/pop/global/index.js +0 -2
  492. package/popover/global/index.d.ts +0 -1
  493. package/popover/global/index.js +0 -2
  494. package/progress/global/index.d.ts +0 -1
  495. package/progress/global/index.js +0 -2
  496. package/progress-stepper/global/index.d.ts +0 -1
  497. package/progress-stepper/global/index.js +0 -2
  498. package/progress-stepper-item/global/index.d.ts +0 -1
  499. package/progress-stepper-item/global/index.js +0 -2
  500. package/radio/global/index.d.ts +0 -1
  501. package/radio/global/index.js +0 -2
  502. package/radio-option/global/index.d.ts +0 -1
  503. package/radio-option/global/index.js +0 -2
  504. package/rich-text/global/index.d.ts +0 -1
  505. package/rich-text/global/index.js +0 -2
  506. package/rich-textarea/global/index.d.ts +0 -1
  507. package/rich-textarea/global/index.js +0 -2
  508. package/segment-collapse/global/index.d.ts +0 -1
  509. package/segment-collapse/global/index.js +0 -2
  510. package/segmented-control/global/index.d.ts +0 -1
  511. package/segmented-control/global/index.js +0 -2
  512. package/segmented-control-option/global/index.d.ts +0 -1
  513. package/segmented-control-option/global/index.js +0 -2
  514. package/segmented-icon-control/global/index.d.ts +0 -1
  515. package/segmented-icon-control/global/index.js +0 -2
  516. package/segmented-icon-control-option/global/index.d.ts +0 -1
  517. package/segmented-icon-control-option/global/index.js +0 -2
  518. package/select-button/global/index.d.ts +0 -1
  519. package/select-button/global/index.js +0 -2
  520. package/select-menu/global/index.d.ts +0 -1
  521. package/select-menu/global/index.js +0 -2
  522. package/select-menu-option/global/index.d.ts +0 -1
  523. package/select-menu-option/global/index.js +0 -2
  524. package/skeleton/global/index.d.ts +0 -1
  525. package/skeleton/global/index.js +0 -2
  526. package/skeleton-item/global/index.d.ts +0 -1
  527. package/skeleton-item/global/index.js +0 -2
  528. package/spinner/global/index.d.ts +0 -1
  529. package/spinner/global/index.js +0 -2
  530. package/table/global/index.d.ts +0 -1
  531. package/table/global/index.js +0 -2
  532. package/table-body/global/index.d.ts +0 -1
  533. package/table-body/global/index.js +0 -2
  534. package/table-cell/global/index.d.ts +0 -1
  535. package/table-cell/global/index.js +0 -2
  536. package/table-head/global/index.d.ts +0 -1
  537. package/table-head/global/index.js +0 -2
  538. package/table-head-cell/global/index.d.ts +0 -1
  539. package/table-head-cell/global/index.js +0 -2
  540. package/table-row/global/index.d.ts +0 -1
  541. package/table-row/global/index.js +0 -2
  542. package/tabs/global/index.d.ts +0 -1
  543. package/tabs/global/index.js +0 -2
  544. package/tabs-icon-option/global/index.d.ts +0 -1
  545. package/tabs-icon-option/global/index.js +0 -2
  546. package/tabs-option/global/index.d.ts +0 -1
  547. package/tabs-option/global/index.js +0 -2
  548. package/tag/global/index.d.ts +0 -1
  549. package/tag/global/index.js +0 -2
  550. package/text/global/index.d.ts +0 -1
  551. package/text/global/index.js +0 -2
  552. package/textarea/global/index.d.ts +0 -1
  553. package/textarea/global/index.js +0 -2
  554. package/time-picker/global/index.d.ts +0 -1
  555. package/time-picker/global/index.js +0 -2
  556. package/title/global/index.d.ts +0 -1
  557. package/title/global/index.js +0 -2
  558. package/toast/global/index.d.ts +0 -1
  559. package/toast/global/index.js +0 -2
  560. package/toast-manager/global/index.d.ts +0 -1
  561. package/toast-manager/global/index.js +0 -2
  562. package/toggle/global/index.d.ts +0 -1
  563. package/toggle/global/index.js +0 -2
  564. package/tooltip/global/index.d.ts +0 -1
  565. package/tooltip/global/index.js +0 -2
  566. package/utils/component-names.d.ts +0 -3
  567. package/utils/component-names.js +0 -85
  568. package/utils/global-components-constants.d.ts +0 -3
  569. package/utils/global-components-constants.js +0 -8
  570. package/utils/global-components-manager.d.ts +0 -71
  571. package/utils/global-components-manager.js +0 -24
  572. package/utils/shared/global-elements-manager.d.js +0 -1
  573. package/utils/shared/global-elements-manager.d.ts +0 -62
  574. package/utils/shared/global-elements-manager.js +0 -163
  575. package/utils/shared/global-elements-store.d.js +0 -1
  576. package/utils/shared/global-elements-store.d.ts +0 -12
  577. package/utils/shared/global-elements-store.js +0 -31
  578. package/utils/shared/index.d.js +0 -11
  579. package/utils/shared/index.d.ts +0 -3
  580. package/utils/shared/index.js +0 -11
  581. package/utils/shared/nectary-element-base.d.js +0 -1
  582. package/utils/shared/nectary-element-base.d.ts +0 -9
  583. package/utils/shared/nectary-element-base.js +0 -25
  584. package/utils/shared/package.json +0 -9
  585. package/utils/shared/tsconfig.json +0 -20
@@ -1,21 +1,15 @@
1
- import "../input/index.js";
2
- import "../icon/index.js";
3
- import "../text/index.js";
4
- import { isSelectMenuOption } from "../select-menu-option/utils.js";
5
- import { subscribeContext } from "../utils/context.js";
6
- import { unpackCsv, getFirstCsvValue, updateCsv } from "../utils/csv.js";
7
- import { getBooleanAttribute, updateAttribute, attrValueToPixels, updateExplicitBooleanAttribute, isAttrTrue, getAttribute, updateIntegerAttribute, getIntegerAttribute, updateBooleanAttribute, hasClass, setClass } from "../utils/dom.js";
8
- import { defineCustomElement, NectaryElement } from "../utils/element.js";
9
- import { debounceTimeout } from "../utils/debounce.js";
10
- import { getReactEventHandler } from "../utils/get-react-event-handler.js";
11
- import { isTargetEqual } from "../utils/event-target.js";
12
- import { setFormValue, CSVToFormData } from "../utils/form.js";
13
- const templateHTML = '<style>\n :host {\n display: block;\n outline: none;\n }\n\n #listbox {\n overflow-y: auto;\n max-height: var(--sinch-comp-select-menu-font-max-height);\n }\n\n #search {\n display: none;\n margin: 10px;\n }\n\n #search.active {\n display: block;\n }\n\n #search-clear:not(.active) {\n display: none;\n }\n\n #not-found {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 30px;\n margin-bottom: 10px;\n pointer-events: none;\n user-select: none;\n\n --sinch-comp-text-font: var(--sinch-comp-select-menu-font-not-found-text);\n --sinch-global-color-text:\n var(\n --sinch-comp-select-menu-color-default-not-found-text-initial\n );\n }\n\n #not-found:not(.active) {\n display: none;\n }\n\n ::slotted(.hidden) {\n display: none;\n }\n\n ::slotted(sinch-title) {\n padding: 8px 16px;\n\n --sinch-global-color-text: var(--sinch-comp-select-menu-color-default-title-initial);\n }\n</style>\n\n<sinch-input id="search" size="s" placeholder="Search">\n <sinch-icon icons-version="2" name="magnifying-glass"\n id="icon-search"\n slot="icon"\n ></sinch-icon>\n <sinch-button id="search-clear" slot="right">\n <sinch-icon icons-version="2" name="fa-xmark" slot="icon"></sinch-icon>\n </sinch-button>\n</sinch-input>\n<div id="not-found">\n <sinch-text type="m">No results</sinch-text>\n</div>\n<div id="listbox" role="presentation">\n <slot></slot>\n</div>\n';
1
+ import '../input';
2
+ import '../icon';
3
+ import '../text';
4
+ import { isSelectMenuOption } from '../select-menu-option/utils';
5
+ import { attrValueToPixels, defineCustomElement, getAttribute, getBooleanAttribute, unpackCsv, getFirstCsvValue, getIntegerAttribute, getReactEventHandler, isAttrTrue, NectaryElement, updateAttribute, updateBooleanAttribute, updateCsv, updateExplicitBooleanAttribute, updateIntegerAttribute, debounceTimeout, setClass, subscribeContext, hasClass, isTargetEqual } from '../utils';
6
+ import { CSVToFormData, setFormValue } from '../utils/form';
7
+ const templateHTML = '<style>:host{display:block;outline:0}#listbox{overflow-y:auto;max-height:var(--sinch-comp-select-menu-font-max-height)}#search{display:none;margin:10px}#search.active{display:block}#search-clear:not(.active){display:none}#not-found{display:flex;align-items:center;justify-content:center;width:100%;height:30px;margin-bottom:10px;pointer-events:none;user-select:none;--sinch-comp-text-font:var(--sinch-comp-select-menu-font-not-found-text);--sinch-global-color-text:var(--sinch-comp-select-menu-color-default-not-found-text-initial)}#not-found:not(.active){display:none}::slotted(.hidden){display:none}::slotted(sinch-title){padding:8px 16px;--sinch-global-color-text:var(--sinch-comp-select-menu-color-default-title-initial)}</style><sinch-input id="search" size="s" placeholder="Search"><sinch-icon icons-version="2" name="magnifying-glass" id="icon-search" slot="icon"></sinch-icon><sinch-button id="search-clear" slot="right"><sinch-icon icons-version="2" name="fa-xmark" slot="icon"></sinch-icon></sinch-button></sinch-input><div id="not-found"><sinch-text type="m">No results</sinch-text></div><div id="listbox" role="presentation"><slot></slot></div>';
14
8
  const ITEM_HEIGHT = 40;
15
9
  const NUM_ITEMS_SEARCH = 7;
16
- const template = document.createElement("template");
10
+ const template = document.createElement('template');
17
11
  template.innerHTML = templateHTML;
18
- class SelectMenu extends NectaryElement {
12
+ export class SelectMenu extends NectaryElement {
19
13
  #$optionSlot;
20
14
  #$listbox;
21
15
  #$search;
@@ -31,11 +25,11 @@ class SelectMenu extends NectaryElement {
31
25
  const shadowRoot = this.attachShadow();
32
26
  shadowRoot.appendChild(template.content.cloneNode(true));
33
27
  this.#internals = this.attachInternals();
34
- this.#$optionSlot = shadowRoot.querySelector("slot");
35
- this.#$listbox = shadowRoot.querySelector("#listbox");
36
- this.#$search = shadowRoot.querySelector("#search");
37
- this.#$searchClear = shadowRoot.querySelector("#search-clear");
38
- this.#$notFound = shadowRoot.querySelector("#not-found");
28
+ this.#$optionSlot = shadowRoot.querySelector('slot');
29
+ this.#$listbox = shadowRoot.querySelector('#listbox');
30
+ this.#$search = shadowRoot.querySelector('#search');
31
+ this.#$searchClear = shadowRoot.querySelector('#search-clear');
32
+ this.#$notFound = shadowRoot.querySelector('#not-found');
39
33
  this.#searchDebounce = debounceTimeout(200)(this.#updateSearchValue);
40
34
  }
41
35
  connectedCallback() {
@@ -43,46 +37,20 @@ class SelectMenu extends NectaryElement {
43
37
  const options = {
44
38
  signal: this.#controller.signal
45
39
  };
46
- this.setAttribute("role", "listbox");
47
- this.#internals.role = "listbox";
40
+ this.setAttribute('role', 'listbox');
41
+ this.#internals.role = 'listbox';
48
42
  this.tabIndex = 0;
49
- this.addEventListener("keydown", this.#onListboxKeyDown, options);
50
- this.addEventListener("focus", this.#onFocus, options);
51
- this.addEventListener("blur", this.#onListboxBlur, options);
52
- this.#$listbox.addEventListener("click", this.#onListboxClick, options);
53
- this.#$search.addEventListener(
54
- "-change",
55
- this.#onSearchChange,
56
- options
57
- );
58
- this.#$searchClear.addEventListener(
59
- "-click",
60
- this.#onSearchClearClick,
61
- options
62
- );
63
- this.#$optionSlot.addEventListener(
64
- "slotchange",
65
- this.#onOptionSlotChange,
66
- options
67
- );
68
- this.addEventListener(
69
- "-search-change",
70
- this.#onSearchChangeReactHandler,
71
- options
72
- );
73
- this.addEventListener("-change", this.#onChangeReactHandler, options);
74
- subscribeContext(
75
- this,
76
- "keydown",
77
- this.#onContextKeyDown,
78
- this.#controller.signal
79
- );
80
- subscribeContext(
81
- this,
82
- "visibility",
83
- this.#onContextVisibility,
84
- this.#controller.signal
85
- );
43
+ this.addEventListener('keydown', this.#onListboxKeyDown, options);
44
+ this.addEventListener('focus', this.#onFocus, options);
45
+ this.addEventListener('blur', this.#onListboxBlur, options);
46
+ this.#$listbox.addEventListener('click', this.#onListboxClick, options);
47
+ this.#$search.addEventListener('-change', this.#onSearchChange, options);
48
+ this.#$searchClear.addEventListener('-click', this.#onSearchClearClick, options);
49
+ this.#$optionSlot.addEventListener('slotchange', this.#onOptionSlotChange, options);
50
+ this.addEventListener('-search-change', this.#onSearchChangeReactHandler, options);
51
+ this.addEventListener('-change', this.#onChangeReactHandler, options);
52
+ subscribeContext(this, 'keydown', this.#onContextKeyDown, this.#controller.signal);
53
+ subscribeContext(this, 'visibility', this.#onContextVisibility, this.#controller.signal);
86
54
  this.#onOptionSlotChange();
87
55
  }
88
56
  disconnectedCallback() {
@@ -94,126 +62,121 @@ class SelectMenu extends NectaryElement {
94
62
  setFormValue(this.#internals, CSVToFormData(this.name, this.value));
95
63
  }
96
64
  formResetCallback() {
97
- this.value = "";
98
- setFormValue(this.#internals, "");
65
+ this.value = '';
66
+ setFormValue(this.#internals, '');
99
67
  }
100
68
  formStateRestoreCallback(state) {
101
- if (this.#internals.form === null || getBooleanAttribute(this.#internals.form, "data-form-state-restore") === false) {
69
+ if (this.#internals.form === null || getBooleanAttribute(this.#internals.form, 'data-form-state-restore') === false) {
102
70
  return;
103
71
  }
104
72
  if (state !== null) {
105
- const value = typeof state === "string" ? state : state.get(this.name);
106
- this.value = value?.toString() ?? "";
107
- setFormValue(this.#internals, CSVToFormData(this.name, value?.toString() ?? ""));
73
+ const value = typeof state === 'string' ? state : state.get(this.name);
74
+ this.value = value?.toString() ?? '';
75
+ setFormValue(this.#internals, CSVToFormData(this.name, value?.toString() ?? ''));
108
76
  }
109
77
  }
110
78
  static get observedAttributes() {
111
- return [
112
- "value",
113
- "rows",
114
- "multiple",
115
- "search-value",
116
- "search-placeholder",
117
- "search-autocomplete"
118
- ];
79
+ return ['value', 'rows', 'multiple', 'search-value', 'search-placeholder', 'search-autocomplete'];
119
80
  }
120
81
  attributeChangedCallback(name, oldVal, newVal) {
121
82
  switch (name) {
122
- case "multiple": {
123
- this.#onValueChange(this.value);
124
- updateExplicitBooleanAttribute(
125
- this,
126
- "aria-multiselectable",
127
- isAttrTrue(newVal)
128
- );
129
- this.#internals.ariaMultiSelectable = isAttrTrue(newVal).toString();
130
- break;
131
- }
132
- case "search-autocomplete": {
133
- updateAttribute(this.#$search, "autocomplete", newVal);
134
- break;
135
- }
136
- case "value": {
137
- this.#onValueChange(newVal ?? "");
138
- break;
139
- }
140
- case "rows": {
141
- const numberOfItems = this.#$optionSlot.assignedElements().length;
142
- const maxNumberOfRows = parseInt(newVal ?? "0", 10);
143
- this.#$listbox.style.maxHeight = attrValueToPixels(newVal, {
144
- min: 2,
145
- itemSizeMultiplier: ITEM_HEIGHT,
146
- addExtraSpace: numberOfItems > maxNumberOfRows
147
- });
148
- break;
149
- }
150
- case "search-placeholder": {
151
- updateAttribute(this.#$search, "placeholder", newVal);
152
- break;
153
- }
154
- case "search-value": {
155
- updateAttribute(this.#$search, "value", newVal);
156
- this.#userManagedSearch = true;
157
- this.#updateSearchList(newVal !== null ? newVal : "");
158
- break;
159
- }
83
+ case 'multiple':
84
+ {
85
+ this.#onValueChange(this.value);
86
+ updateExplicitBooleanAttribute(this, 'aria-multiselectable', isAttrTrue(newVal));
87
+ this.#internals.ariaMultiSelectable = isAttrTrue(newVal).toString();
88
+ break;
89
+ }
90
+ case 'search-autocomplete':
91
+ {
92
+ updateAttribute(this.#$search, 'autocomplete', newVal);
93
+ break;
94
+ }
95
+ case 'value':
96
+ {
97
+ this.#onValueChange(newVal ?? '');
98
+ break;
99
+ }
100
+ case 'rows':
101
+ {
102
+ const numberOfItems = this.#$optionSlot.assignedElements().length;
103
+ const maxNumberOfRows = parseInt(newVal ?? '0', 10);
104
+ this.#$listbox.style.maxHeight = attrValueToPixels(newVal, {
105
+ min: 2,
106
+ itemSizeMultiplier: ITEM_HEIGHT,
107
+ addExtraSpace: numberOfItems > maxNumberOfRows
108
+ });
109
+ break;
110
+ }
111
+ case 'search-placeholder':
112
+ {
113
+ updateAttribute(this.#$search, 'placeholder', newVal);
114
+ break;
115
+ }
116
+ case 'search-value':
117
+ {
118
+ updateAttribute(this.#$search, 'value', newVal);
119
+ this.#userManagedSearch = true;
120
+ this.#updateSearchList(newVal !== null ? newVal : '');
121
+ break;
122
+ }
160
123
  }
161
124
  }
162
125
  set name(value) {
163
- updateAttribute(this, "name", value);
126
+ updateAttribute(this, 'name', value);
164
127
  }
165
128
  get name() {
166
- return getAttribute(this, "name", "");
129
+ return getAttribute(this, 'name', '');
167
130
  }
168
131
  set value(value) {
169
- updateAttribute(this, "value", value);
132
+ updateAttribute(this, 'value', value);
170
133
  }
171
134
  get value() {
172
- return getAttribute(this, "value", "");
135
+ return getAttribute(this, 'value', '');
173
136
  }
174
137
  set rows(value) {
175
- updateIntegerAttribute(this, "rows", value);
138
+ updateIntegerAttribute(this, 'rows', value);
176
139
  }
177
140
  get rows() {
178
- return getIntegerAttribute(this, "rows", null);
141
+ return getIntegerAttribute(this, 'rows', null);
179
142
  }
180
143
  set multiple(isMultiple) {
181
- updateBooleanAttribute(this, "multiple", isMultiple);
144
+ updateBooleanAttribute(this, 'multiple', isMultiple);
182
145
  }
183
146
  get multiple() {
184
- return getBooleanAttribute(this, "multiple");
147
+ return getBooleanAttribute(this, 'multiple');
185
148
  }
186
149
  set searchable(isSearchable) {
187
- updateBooleanAttribute(this, "searchable", isSearchable);
150
+ updateBooleanAttribute(this, 'searchable', isSearchable);
188
151
  }
189
152
  get searchable() {
190
- const searchableAttribute = this.getAttribute("searchable");
153
+ const searchableAttribute = this.getAttribute('searchable');
191
154
  return searchableAttribute === null ? searchableAttribute : isAttrTrue(searchableAttribute);
192
155
  }
193
- set "search-autocomplete"(autocomplete) {
194
- updateAttribute(this.#$search, "autocomplete", autocomplete);
156
+ set 'search-autocomplete'(autocomplete) {
157
+ updateAttribute(this.#$search, 'autocomplete', autocomplete);
195
158
  }
196
- get "search-autocomplete"() {
197
- return getAttribute(this.#$search, "autocomplete", "");
159
+ get 'search-autocomplete'() {
160
+ return getAttribute(this.#$search, 'autocomplete', '');
198
161
  }
199
- set "search-placeholder"(placeholder) {
200
- updateAttribute(this.#$search, "placeholder", placeholder);
162
+ set 'search-placeholder'(placeholder) {
163
+ updateAttribute(this.#$search, 'placeholder', placeholder);
201
164
  }
202
- get "search-placeholder"() {
203
- return getAttribute(this.#$search, "placeholder", "");
165
+ get 'search-placeholder'() {
166
+ return getAttribute(this.#$search, 'placeholder', '');
204
167
  }
205
- set "search-value"(value) {
206
- updateAttribute(this, "search-value", value);
168
+ set 'search-value'(value) {
169
+ updateAttribute(this, 'search-value', value);
207
170
  this.#userManagedSearch = true;
208
171
  }
209
- get "search-value"() {
210
- return getAttribute(this, "search-value", "");
172
+ get 'search-value'() {
173
+ return getAttribute(this, 'search-value', '');
211
174
  }
212
175
  get focusable() {
213
176
  return true;
214
177
  }
215
178
  #onFocus = () => {
216
- const isSearchActive = hasClass(this.#$search, "active");
179
+ const isSearchActive = hasClass(this.#$search, 'active');
217
180
  if (isSearchActive) {
218
181
  this.#$search.focus();
219
182
  }
@@ -221,39 +184,39 @@ class SelectMenu extends NectaryElement {
221
184
  #onListboxBlur = () => {
222
185
  this.#selectOption(null);
223
186
  };
224
- #onListboxClick = (e) => {
187
+ #onListboxClick = e => {
225
188
  const $elem = e.target;
226
189
  if ($elem == null || !($elem instanceof Element) || !isSelectMenuOption($elem)) {
227
190
  return;
228
191
  }
229
192
  this.focus();
230
- if (!isTargetEqual(e, this.#$listbox) && !getBooleanAttribute($elem, "disabled")) {
193
+ if (!isTargetEqual(e, this.#$listbox) && !getBooleanAttribute($elem, 'disabled')) {
231
194
  this.#selectOption($elem);
232
195
  this.#dispatchChangeEvent($elem);
233
196
  }
234
197
  };
235
- #onSearchChange = (e) => {
198
+ #onSearchChange = e => {
236
199
  if (!this.#userManagedSearch) {
237
200
  this.#$search.value = e.detail;
238
201
  this.#searchDebounce.fn();
239
202
  } else {
240
203
  this.#updateSearchValue(e.detail);
241
204
  }
242
- setClass(this.#$searchClear, "active", e.detail.length > 0);
205
+ setClass(this.#$searchClear, 'active', e.detail.length > 0);
243
206
  };
244
207
  #onSearchClearClick = () => {
245
208
  if (!this.#userManagedSearch) {
246
- this.#$search.value = "";
209
+ this.#$search.value = '';
247
210
  this.#searchDebounce.fn();
248
211
  } else {
249
- this.#updateSearchValue("");
212
+ this.#updateSearchValue('');
250
213
  }
251
214
  this.#$search.focus();
252
- setClass(this.#$searchClear, "active", false);
215
+ setClass(this.#$searchClear, 'active', false);
253
216
  };
254
- #updateSearchValue = (newValue) => {
255
- const searchValue = newValue === void 0 ? this.#$search.value.toLowerCase() : newValue;
256
- const searchChangedEvent = new CustomEvent("-search-change", {
217
+ #updateSearchValue = newValue => {
218
+ const searchValue = newValue === undefined ? this.#$search.value.toLowerCase() : newValue;
219
+ const searchChangedEvent = new CustomEvent('-search-change', {
257
220
  detail: searchValue,
258
221
  cancelable: true
259
222
  });
@@ -262,21 +225,21 @@ class SelectMenu extends NectaryElement {
262
225
  this.#updateSearchList(searchValue);
263
226
  }
264
227
  };
265
- #updateSearchList = (searchValue) => {
228
+ #updateSearchList = searchValue => {
266
229
  const $options = this.#getOptionElements();
267
230
  let someFound = false;
268
231
  for (const $opt of $options) {
269
232
  const isHidden = searchValue.length > 0 && !$opt.matchesSearch(searchValue);
270
233
  someFound ||= !isHidden;
271
- setClass($opt, "hidden", isHidden);
234
+ setClass($opt, 'hidden', isHidden);
272
235
  }
273
- setClass(this.#$notFound, "active", !someFound);
236
+ setClass(this.#$notFound, 'active', !someFound);
274
237
  this.#selectOption(null);
275
238
  };
276
- #onContextKeyDown = (e) => {
239
+ #onContextKeyDown = e => {
277
240
  this.#handleKeydown(e.detail);
278
241
  };
279
- #onContextVisibility = (e) => {
242
+ #onContextVisibility = e => {
280
243
  if (e.detail) {
281
244
  this.#selectOption(this.#findCheckedOption());
282
245
  this.#onFocus();
@@ -284,30 +247,33 @@ class SelectMenu extends NectaryElement {
284
247
  this.#selectOption(null);
285
248
  }
286
249
  };
287
- #onListboxKeyDown = (e) => {
250
+ #onListboxKeyDown = e => {
288
251
  this.#handleKeydown(e);
289
252
  };
290
253
  #handleKeydown(e) {
291
254
  switch (e.code) {
292
- case "Space":
293
- case "Enter": {
294
- const $option = this.#findSelectedOption();
295
- if ($option !== null) {
255
+ case 'Space':
256
+ case 'Enter':
257
+ {
258
+ const $option = this.#findSelectedOption();
259
+ if ($option !== null) {
260
+ e.preventDefault();
261
+ this.#dispatchChangeEvent($option);
262
+ }
263
+ break;
264
+ }
265
+ case 'ArrowUp':
266
+ {
296
267
  e.preventDefault();
297
- this.#dispatchChangeEvent($option);
268
+ this.#selectOption(this.#getPrevOption());
269
+ break;
270
+ }
271
+ case 'ArrowDown':
272
+ {
273
+ e.preventDefault();
274
+ this.#selectOption(this.#getNextOption());
275
+ break;
298
276
  }
299
- break;
300
- }
301
- case "ArrowUp": {
302
- e.preventDefault();
303
- this.#selectOption(this.#getPrevOption());
304
- break;
305
- }
306
- case "ArrowDown": {
307
- e.preventDefault();
308
- this.#selectOption(this.#getNextOption());
309
- break;
310
- }
311
277
  }
312
278
  }
313
279
  #onOptionSlotChange = () => {
@@ -316,37 +282,37 @@ class SelectMenu extends NectaryElement {
316
282
  const isEnoughOptions = options.length >= NUM_ITEMS_SEARCH;
317
283
  const isSearchActive = isEnoughOptions && searchable !== false || Boolean(searchable);
318
284
  if (!isSearchActive) {
319
- updateAttribute(this.#$search, "value", null);
285
+ updateAttribute(this.#$search, 'value', null);
320
286
  }
321
- setClass(this.#$search, "active", isSearchActive);
287
+ setClass(this.#$search, 'active', isSearchActive);
322
288
  this.#onValueChange(this.value);
323
289
  };
324
290
  #onValueChange(csv) {
325
291
  if (this.multiple) {
326
292
  const values = unpackCsv(csv);
327
293
  for (const $option of this.#getOptionElements()) {
328
- const isChecked = !getBooleanAttribute($option, "disabled") && values.includes(getAttribute($option, "value", ""));
329
- updateBooleanAttribute($option, "data-checked", isChecked);
294
+ const isChecked = !getBooleanAttribute($option, 'disabled') && values.includes(getAttribute($option, 'value', ''));
295
+ updateBooleanAttribute($option, 'data-checked', isChecked);
330
296
  }
331
297
  const formData = new FormData();
332
- values.forEach((value) => {
298
+ values.forEach(value => {
333
299
  formData.append(this.name, value);
334
300
  });
335
301
  setFormValue(this.#internals, formData);
336
302
  } else {
337
303
  const value = getFirstCsvValue(csv);
338
304
  for (const $option of this.#getOptionElements()) {
339
- const isChecked = !getBooleanAttribute($option, "disabled") && value === getAttribute($option, "value", "");
340
- updateBooleanAttribute($option, "data-checked", isChecked);
305
+ const isChecked = !getBooleanAttribute($option, 'disabled') && value === getAttribute($option, 'value', '');
306
+ updateBooleanAttribute($option, 'data-checked', isChecked);
341
307
  }
342
- setFormValue(this.#internals, value ?? "");
308
+ setFormValue(this.#internals, value ?? '');
343
309
  }
344
310
  }
345
311
  #getFirstOption() {
346
312
  const $options = this.#getOptionElements();
347
313
  for (let i = 0; i < $options.length; i++) {
348
314
  const el = $options[i];
349
- if (!getBooleanAttribute(el, "disabled") && !el.classList.contains("hidden")) {
315
+ if (!getBooleanAttribute(el, 'disabled') && !el.classList.contains('hidden')) {
350
316
  return el;
351
317
  }
352
318
  }
@@ -356,7 +322,7 @@ class SelectMenu extends NectaryElement {
356
322
  const $options = this.#getOptionElements();
357
323
  for (let i = $options.length - 1; i >= 0; i--) {
358
324
  const el = $options[i];
359
- if (!getBooleanAttribute(el, "disabled") && !el.classList.contains("hidden")) {
325
+ if (!getBooleanAttribute(el, 'disabled') && !el.classList.contains('hidden')) {
360
326
  return el;
361
327
  }
362
328
  }
@@ -368,7 +334,7 @@ class SelectMenu extends NectaryElement {
368
334
  const $options = this.#getOptionElements();
369
335
  for (let i = 1; i <= $options.length; i++) {
370
336
  const el = $options[(i + index) % $options.length];
371
- if (!getBooleanAttribute(el, "disabled") && !el.classList.contains("hidden")) {
337
+ if (!getBooleanAttribute(el, 'disabled') && !el.classList.contains('hidden')) {
372
338
  return el;
373
339
  }
374
340
  }
@@ -381,7 +347,7 @@ class SelectMenu extends NectaryElement {
381
347
  const $options = this.#getOptionElements();
382
348
  for (let i = 1; i <= $options.length; i++) {
383
349
  const el = $options[(index - i + $options.length) % $options.length];
384
- if (!getBooleanAttribute(el, "disabled") && !el.classList.contains("hidden")) {
350
+ if (!getBooleanAttribute(el, 'disabled') && !el.classList.contains('hidden')) {
385
351
  return el;
386
352
  }
387
353
  }
@@ -389,12 +355,14 @@ class SelectMenu extends NectaryElement {
389
355
  return this.#getLastOption();
390
356
  }
391
357
  #selectOption($option) {
392
- const hasRows = this.hasAttribute("rows");
358
+ const hasRows = this.hasAttribute('rows');
393
359
  for (const $op of this.#getOptionElements()) {
394
360
  const isSelected = $op === $option;
395
- updateBooleanAttribute($op, "data-selected", isSelected);
396
- if (isSelected && Boolean(hasRows)) {
397
- $op.scrollIntoView?.({ block: "nearest" });
361
+ updateBooleanAttribute($op, 'data-selected', isSelected);
362
+ if (isSelected && hasRows) {
363
+ $op.scrollIntoView?.({
364
+ block: 'nearest'
365
+ });
398
366
  }
399
367
  }
400
368
  }
@@ -406,7 +374,7 @@ class SelectMenu extends NectaryElement {
406
374
  const elements = this.#getOptionElements();
407
375
  for (let i = 0; i < elements.length; i++) {
408
376
  const el = elements[i];
409
- if (!getBooleanAttribute(el, "disabled") && getBooleanAttribute(el, "data-selected")) {
377
+ if (!getBooleanAttribute(el, 'disabled') && getBooleanAttribute(el, 'data-selected')) {
410
378
  return i;
411
379
  }
412
380
  }
@@ -415,7 +383,7 @@ class SelectMenu extends NectaryElement {
415
383
  #findSelectedOption() {
416
384
  const elements = this.#getOptionElements();
417
385
  for (const el of elements) {
418
- if (!getBooleanAttribute(el, "disabled") && getBooleanAttribute(el, "data-selected")) {
386
+ if (!getBooleanAttribute(el, 'disabled') && getBooleanAttribute(el, 'data-selected')) {
419
387
  return el;
420
388
  }
421
389
  }
@@ -425,7 +393,7 @@ class SelectMenu extends NectaryElement {
425
393
  const elements = this.#getOptionElements();
426
394
  const value = this.multiple ? getFirstCsvValue(this.value) : this.value;
427
395
  for (const $el of elements) {
428
- if (!getBooleanAttribute($el, "disabled") && getAttribute($el, "value") === value) {
396
+ if (!getBooleanAttribute($el, 'disabled') && getAttribute($el, 'value') === value) {
429
397
  return $el;
430
398
  }
431
399
  }
@@ -436,21 +404,16 @@ class SelectMenu extends NectaryElement {
436
404
  return;
437
405
  }
438
406
  const value = $opt.value;
439
- const result = this.multiple ? updateCsv(
440
- this.value,
441
- value,
442
- !getBooleanAttribute($opt, "data-checked")
443
- ) : value;
444
- this.dispatchEvent(new CustomEvent("-change", { detail: result }));
445
- }
446
- #onChangeReactHandler = (e) => {
447
- getReactEventHandler(this, "on-change")?.(e);
407
+ const result = this.multiple ? updateCsv(this.value, value, !getBooleanAttribute($opt, 'data-checked')) : value;
408
+ this.dispatchEvent(new CustomEvent('-change', {
409
+ detail: result
410
+ }));
411
+ }
412
+ #onChangeReactHandler = e => {
413
+ getReactEventHandler(this, 'on-change')?.(e);
448
414
  };
449
- #onSearchChangeReactHandler = (e) => {
450
- getReactEventHandler(this, "on-search-change")?.(e);
415
+ #onSearchChangeReactHandler = e => {
416
+ getReactEventHandler(this, 'on-search-change')?.(e);
451
417
  };
452
418
  }
453
- defineCustomElement("sinch-select-menu", SelectMenu);
454
- export {
455
- SelectMenu
456
- };
419
+ defineCustomElement('sinch-select-menu', SelectMenu);
@@ -1,4 +1,4 @@
1
- import type { NectaryComponentReactByType, NectaryComponentVanillaByType, NectaryComponentReact, NectaryComponentVanilla } from '../types';
1
+ import type { NectaryComponentReactByType, NectaryComponentVanillaByType } from '../types';
2
2
  export type TSinchSelectMenuProps = {
3
3
  /** Identification for uncontrolled form submissions */
4
4
  name?: string;
@@ -36,23 +36,3 @@ export type TSinchSelectMenu = {
36
36
  };
37
37
  export type TSinchSelectMenuElement = NectaryComponentVanillaByType<TSinchSelectMenu>;
38
38
  export type TSinchSelectMenuReact = NectaryComponentReactByType<TSinchSelectMenu>;
39
- declare global {
40
- interface NectaryComponentMap {
41
- 'sinch-select-menu': TSinchSelectMenu;
42
- }
43
- interface HTMLElementTagNameMap {
44
- 'sinch-select-menu': NectaryComponentVanilla<'sinch-select-menu'>;
45
- }
46
- namespace JSX {
47
- interface IntrinsicElements {
48
- 'sinch-select-menu': NectaryComponentReact<'sinch-select-menu'>;
49
- }
50
- }
51
- }
52
- declare module 'react' {
53
- namespace JSX {
54
- interface IntrinsicElements extends globalThis.JSX.IntrinsicElements {
55
- 'sinch-select-menu': NectaryComponentReact<'sinch-select-menu'>;
56
- }
57
- }
58
- }
@@ -1 +1 @@
1
-
1
+ export {};
@@ -1,7 +1,8 @@
1
1
  import '../icon';
2
2
  import '../text';
3
3
  import { NectaryElement } from '../utils';
4
- export * from './types';
4
+ import type { TSinchSelectMenuOption } from './types';
5
+ import type { NectaryComponentReact, NectaryComponentVanilla } from '../types';
5
6
  export declare class SelectMenuOption extends NectaryElement {
6
7
  #private;
7
8
  constructor();
@@ -16,3 +17,23 @@ export declare class SelectMenuOption extends NectaryElement {
16
17
  get disabled(): boolean;
17
18
  matchesSearch(searchValue: string): boolean;
18
19
  }
20
+ declare global {
21
+ interface NectaryComponentMap {
22
+ 'sinch-select-menu-option': TSinchSelectMenuOption;
23
+ }
24
+ interface HTMLElementTagNameMap {
25
+ 'sinch-select-menu-option': NectaryComponentVanilla<'sinch-select-menu-option'>;
26
+ }
27
+ namespace JSX {
28
+ interface IntrinsicElements {
29
+ 'sinch-select-menu-option': NectaryComponentReact<'sinch-select-menu-option'>;
30
+ }
31
+ }
32
+ }
33
+ declare module 'react' {
34
+ namespace JSX {
35
+ interface IntrinsicElements extends globalThis.JSX.IntrinsicElements {
36
+ 'sinch-select-menu-option': NectaryComponentReact<'sinch-select-menu-option'>;
37
+ }
38
+ }
39
+ }