@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
package/pop/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { NectaryElement } from '../utils';
2
- import type { TSinchPopOrientation } from './types';
3
- import type { TRect } from '../types';
4
- export * from './types';
2
+ import type { TSinchPopOrientation, TSinchPop } from './types';
3
+ import type { NectaryComponentReact, NectaryComponentVanilla, TRect } from '../types';
5
4
  export declare class Pop extends NectaryElement {
6
5
  #private;
7
6
  constructor();
@@ -20,3 +19,23 @@ export declare class Pop extends NectaryElement {
20
19
  get popoverRect(): TRect;
21
20
  attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
22
21
  }
22
+ declare global {
23
+ interface NectaryComponentMap {
24
+ 'sinch-pop': TSinchPop;
25
+ }
26
+ interface HTMLElementTagNameMap {
27
+ 'sinch-pop': NectaryComponentVanilla<'sinch-pop'>;
28
+ }
29
+ namespace JSX {
30
+ interface IntrinsicElements {
31
+ 'sinch-pop': NectaryComponentReact<'sinch-pop'>;
32
+ }
33
+ }
34
+ }
35
+ declare module 'react' {
36
+ namespace JSX {
37
+ interface IntrinsicElements extends globalThis.JSX.IntrinsicElements {
38
+ 'sinch-pop': NectaryComponentReact<'sinch-pop'>;
39
+ }
40
+ }
41
+ }
package/pop/index.js CHANGED
@@ -1,16 +1,9 @@
1
- import { Context, subscribeContext } from "../utils/context.js";
2
- import { getBooleanAttribute, updateBooleanAttribute, getLiteralAttribute, updateLiteralAttribute, updateIntegerAttribute, getIntegerAttribute, isAttrEqual, isAttrTrue } from "../utils/dom.js";
3
- import { defineCustomElement, NectaryElement } from "../utils/element.js";
4
- import { getRect } from "../utils/rect.js";
5
- import { getFirstSlotElement, getFirstFocusableElement, isElementFocused } from "../utils/slot.js";
6
- import { throttleAnimationFrame } from "../utils/throttle.js";
7
- import { getReactEventHandler } from "../utils/get-react-event-handler.js";
8
- import { isTargetEqual } from "../utils/event-target.js";
9
- import { orientationValues, disableOverscroll, enableOverscroll } from "./utils.js";
10
- const templateHTML = '<style>\n:host {\n display: contents;\n position: relative;\n}\n\ndialog {\n position: fixed;\n left: 0;\n top: 0;\n margin: 0;\n outline: none;\n padding: 0;\n border: none;\n box-sizing: border-box;\n max-width: unset;\n max-height: unset;\n z-index: 1;\n background: none;\n overflow: visible;\n}\n\ndialog:not([open]) {\n display: none;\n}\n\ndialog::backdrop {\n background-color: transparent;\n}\n\n#content {\n position: relative;\n z-index: 1;\n}\n\n#target-open {\n display: flex;\n flex-direction: column;\n position: absolute;\n left: 0;\n top: 0;\n}\n\n#focus {\n display: none;\n position: absolute;\n width: 0;\n height: 0;\n}\n</style>\n\n<slot id="target" name="target" aria-haspopup="dialog" aria-expanded="false"></slot>\n<div id="focus"></div>\n<dialog id="dialog">\n <div id="target-open">\n <slot name="target-open"></slot>\n </div>\n <div id="content">\n <slot name="content"></slot>\n </div>\n</dialog>\n';
11
- const template = document.createElement("template");
1
+ import { defineCustomElement, getBooleanAttribute, getLiteralAttribute, getRect, isAttrTrue, updateLiteralAttribute, getReactEventHandler, updateBooleanAttribute, NectaryElement, throttleAnimationFrame, isElementFocused, updateIntegerAttribute, getIntegerAttribute, getFirstFocusableElement, getFirstSlotElement, Context, subscribeContext, isTargetEqual, isAttrEqual } from '../utils';
2
+ const templateHTML = '<style>:host{display:contents;position:relative}dialog{position:fixed;left:0;top:0;margin:0;outline:0;padding:0;border:none;box-sizing:border-box;max-width:unset;max-height:unset;z-index:1;background:0 0;overflow:visible}dialog:not([open]){display:none}dialog::backdrop{background-color:transparent}#content{position:relative;z-index:1}#target-open{display:flex;flex-direction:column;position:absolute;left:0;top:0}#focus{display:none;position:absolute;width:0;height:0}</style><slot id="target" name="target" aria-haspopup="dialog" aria-expanded="false"></slot><div id="focus"></div><dialog id="dialog"><div id="target-open"><slot name="target-open"></slot></div><div id="content"><slot name="content"></slot></div></dialog>';
3
+ import { disableOverscroll, enableOverscroll, orientationValues } from './utils';
4
+ const template = document.createElement('template');
12
5
  template.innerHTML = templateHTML;
13
- class Pop extends NectaryElement {
6
+ export class Pop extends NectaryElement {
14
7
  #$targetWrapper;
15
8
  #$focus;
16
9
  #$dialog;
@@ -30,16 +23,16 @@ class Pop extends NectaryElement {
30
23
  super();
31
24
  const shadowRoot = this.attachShadow();
32
25
  shadowRoot.appendChild(template.content.cloneNode(true));
33
- this.#$targetWrapper = shadowRoot.querySelector("#target");
34
- this.#$focus = shadowRoot.querySelector("#focus");
35
- this.#$dialog = shadowRoot.querySelector("#dialog");
26
+ this.#$targetWrapper = shadowRoot.querySelector('#target');
27
+ this.#$focus = shadowRoot.querySelector('#focus');
28
+ this.#$dialog = shadowRoot.querySelector('#dialog');
36
29
  this.#$targetSlot = shadowRoot.querySelector('slot[name="target"]');
37
30
  this.#$targetOpenSlot = shadowRoot.querySelector('slot[name="target-open"]');
38
31
  this.#$contentSlot = shadowRoot.querySelector('slot[name="content"]');
39
- this.#$targetOpenWrapper = shadowRoot.querySelector("#target-open");
32
+ this.#$targetOpenWrapper = shadowRoot.querySelector('#target-open');
40
33
  this.#resizeThrottle = throttleAnimationFrame(this.#updateOrientation);
41
- this.#keydownContext = new Context(this.#$contentSlot, "keydown");
42
- this.#visibilityContext = new Context(this.#$contentSlot, "visibility");
34
+ this.#keydownContext = new Context(this.#$contentSlot, 'keydown');
35
+ this.#visibilityContext = new Context(this.#$contentSlot, 'visibility');
43
36
  this.#controller = new AbortController();
44
37
  }
45
38
  connectedCallback() {
@@ -47,15 +40,23 @@ class Pop extends NectaryElement {
47
40
  if (this.#controller === null) {
48
41
  this.#controller = new AbortController();
49
42
  }
50
- const { signal } = this.#controller;
43
+ const {
44
+ signal
45
+ } = this.#controller;
51
46
  this.#keydownContext.listen(signal);
52
47
  this.#visibilityContext.listen(signal);
53
- this.setAttribute("role", "dialog");
54
- this.#$dialog.addEventListener("cancel", this.#onCancel, { signal });
55
- this.#$dialog.addEventListener("mousedown", this.#onBackdropMouseDown, { signal });
56
- this.addEventListener("-close", this.#onCloseReactHandler, { signal });
57
- subscribeContext(this, "visibility", this.#onContextVisibility, signal);
58
- if (getBooleanAttribute(this, "open")) {
48
+ this.setAttribute('role', 'dialog');
49
+ this.#$dialog.addEventListener('cancel', this.#onCancel, {
50
+ signal
51
+ });
52
+ this.#$dialog.addEventListener('mousedown', this.#onBackdropMouseDown, {
53
+ signal
54
+ });
55
+ this.addEventListener('-close', this.#onCloseReactHandler, {
56
+ signal
57
+ });
58
+ subscribeContext(this, 'visibility', this.#onContextVisibility, signal);
59
+ if (getBooleanAttribute(this, 'open')) {
59
60
  this.#onExpand();
60
61
  }
61
62
  }
@@ -67,34 +68,31 @@ class Pop extends NectaryElement {
67
68
  this.#onCollapse();
68
69
  }
69
70
  static get observedAttributes() {
70
- return [
71
- "orientation",
72
- "open"
73
- ];
71
+ return ['orientation', 'open'];
74
72
  }
75
73
  set modal(isModal) {
76
- updateBooleanAttribute(this, "modal", isModal);
74
+ updateBooleanAttribute(this, 'modal', isModal);
77
75
  }
78
76
  get modal() {
79
- return getBooleanAttribute(this, "modal");
77
+ return getBooleanAttribute(this, 'modal');
80
78
  }
81
79
  set open(isOpen) {
82
- updateBooleanAttribute(this, "open", isOpen);
80
+ updateBooleanAttribute(this, 'open', isOpen);
83
81
  }
84
82
  get open() {
85
- return getBooleanAttribute(this, "open");
83
+ return getBooleanAttribute(this, 'open');
86
84
  }
87
85
  get orientation() {
88
- return getLiteralAttribute(this, orientationValues, "orientation");
86
+ return getLiteralAttribute(this, orientationValues, 'orientation');
89
87
  }
90
88
  set orientation(value) {
91
- updateLiteralAttribute(this, orientationValues, "orientation", value);
89
+ updateLiteralAttribute(this, orientationValues, 'orientation', value);
92
90
  }
93
91
  set inset(inset) {
94
- updateIntegerAttribute(this, "inset", inset);
92
+ updateIntegerAttribute(this, 'inset', inset);
95
93
  }
96
94
  get inset() {
97
- return getIntegerAttribute(this, "inset", 0);
95
+ return getIntegerAttribute(this, 'inset', 0);
98
96
  }
99
97
  get footprintRect() {
100
98
  return this.#getTargetRect();
@@ -107,26 +105,28 @@ class Pop extends NectaryElement {
107
105
  return;
108
106
  }
109
107
  switch (name) {
110
- case "open": {
111
- const shouldOpen = isAttrTrue(newVal);
112
- if (shouldOpen) {
113
- requestAnimationFrame(() => {
114
- if (this.isDomConnected && getBooleanAttribute(this, "open")) {
115
- this.#onExpand();
116
- }
117
- });
118
- } else {
119
- this.#onCollapse();
108
+ case 'open':
109
+ {
110
+ const shouldOpen = isAttrTrue(newVal);
111
+ if (shouldOpen) {
112
+ requestAnimationFrame(() => {
113
+ if (this.isDomConnected && getBooleanAttribute(this, 'open')) {
114
+ this.#onExpand();
115
+ }
116
+ });
117
+ } else {
118
+ this.#onCollapse();
119
+ }
120
+ updateBooleanAttribute(this, 'open', shouldOpen);
121
+ break;
120
122
  }
121
- updateBooleanAttribute(this, "open", shouldOpen);
122
- break;
123
- }
124
- case "orientation": {
125
- if (this.#$dialog.open) {
126
- this.#updateOrientation();
123
+ case 'orientation':
124
+ {
125
+ if (this.#$dialog.open) {
126
+ this.#updateOrientation();
127
+ }
128
+ break;
127
129
  }
128
- break;
129
- }
130
130
  }
131
131
  }
132
132
  #getTargetRect() {
@@ -137,7 +137,7 @@ class Pop extends NectaryElement {
137
137
  if (item === null) {
138
138
  return getRect(this.#$targetWrapper);
139
139
  }
140
- if (Reflect.has(item, "footprintRect")) {
140
+ if (Reflect.has(item, 'footprintRect')) {
141
141
  return item.footprintRect;
142
142
  }
143
143
  return getRect(item);
@@ -153,17 +153,17 @@ class Pop extends NectaryElement {
153
153
  if (!this.isDomConnected || this.#$dialog.open) {
154
154
  return;
155
155
  }
156
- this.#$targetSlot.addEventListener("blur", this.#stopEventPropagation, true);
157
- this.#$focus.setAttribute("tabindex", "-1");
158
- this.#$focus.style.display = "block";
159
- this.#$focus.addEventListener("focus", this.#captureRelatedActiveElement);
156
+ this.#$targetSlot.addEventListener('blur', this.#stopEventPropagation, true);
157
+ this.#$focus.setAttribute('tabindex', '-1');
158
+ this.#$focus.style.display = 'block';
159
+ this.#$focus.addEventListener('focus', this.#captureRelatedActiveElement);
160
160
  this.#$focus.focus();
161
- this.#$focus.removeEventListener("focus", this.#captureRelatedActiveElement);
162
- this.#$targetSlot.removeEventListener("blur", this.#stopEventPropagation, true);
163
- this.#$focus.removeAttribute("tabindex");
164
- this.#$focus.removeAttribute("style");
161
+ this.#$focus.removeEventListener('focus', this.#captureRelatedActiveElement);
162
+ this.#$targetSlot.removeEventListener('blur', this.#stopEventPropagation, true);
163
+ this.#$focus.removeAttribute('tabindex');
164
+ this.#$focus.removeAttribute('style');
165
165
  this.#$dialog.showModal();
166
- this.#$targetWrapper.setAttribute("aria-expanded", "true");
166
+ this.#$targetWrapper.setAttribute('aria-expanded', 'true');
167
167
  this.#updateOrientation();
168
168
  if (this.modal) {
169
169
  getFirstFocusableElement(this.#$contentSlot)?.focus();
@@ -175,41 +175,43 @@ class Pop extends NectaryElement {
175
175
  const marginTop = parseInt(targetElComputedStyle.marginTop);
176
176
  const marginBottom = parseInt(targetElComputedStyle.marginBottom);
177
177
  const targetRect = this.#getTargetRect();
178
- this.#$targetWrapper.style.setProperty("display", "block");
179
- this.#$targetWrapper.style.setProperty("width", `${targetRect.width + marginLeft + marginRight}px`);
180
- this.#$targetWrapper.style.setProperty("height", `${targetRect.height + marginTop + marginBottom}px`);
181
- this.#$targetOpenWrapper.style.setProperty("width", `${targetRect.width}px`);
182
- this.#$targetOpenWrapper.style.setProperty("height", `${targetRect.height}px`);
183
- this.#targetStyleValue = $targetEl.getAttribute("style");
184
- $targetEl.style.setProperty("margin", "0");
185
- $targetEl.style.setProperty("position", "static");
186
- if (targetElComputedStyle.transform !== "none") {
178
+ this.#$targetWrapper.style.setProperty('display', 'block');
179
+ this.#$targetWrapper.style.setProperty('width', `${targetRect.width + marginLeft + marginRight}px`);
180
+ this.#$targetWrapper.style.setProperty('height', `${targetRect.height + marginTop + marginBottom}px`);
181
+ this.#$targetOpenWrapper.style.setProperty('width', `${targetRect.width}px`);
182
+ this.#$targetOpenWrapper.style.setProperty('height', `${targetRect.height}px`);
183
+ this.#targetStyleValue = $targetEl.getAttribute('style');
184
+ $targetEl.style.setProperty('margin', '0');
185
+ $targetEl.style.setProperty('position', 'static');
186
+ if (targetElComputedStyle.transform !== 'none') {
187
187
  const matrix = new DOMMatrixReadOnly(targetElComputedStyle.transform);
188
- $targetEl.style.setProperty("transform", matrix.translate(-matrix.e, -matrix.f).toString());
188
+ $targetEl.style.setProperty('transform', matrix.translate(-matrix.e, -matrix.f).toString());
189
189
  }
190
- getFirstSlotElement(this.#$targetSlot)?.setAttribute("slot", "target-open");
191
- this.#$targetOpenSlot.addEventListener("keydown", this.#onTargetKeydown);
190
+ getFirstSlotElement(this.#$targetSlot)?.setAttribute('slot', 'target-open');
191
+ this.#$targetOpenSlot.addEventListener('keydown', this.#onTargetKeydown);
192
192
  if (this.#targetActiveElement !== null) {
193
- this.#$targetOpenSlot.addEventListener("focus", this.#stopEventPropagation, true);
193
+ this.#$targetOpenSlot.addEventListener('focus', this.#stopEventPropagation, true);
194
194
  this.#targetActiveElement.focus();
195
- this.#$targetOpenSlot.removeEventListener("focus", this.#stopEventPropagation, true);
195
+ this.#$targetOpenSlot.removeEventListener('focus', this.#stopEventPropagation, true);
196
196
  if (!isElementFocused(this.#targetActiveElement)) {
197
197
  requestAnimationFrame(() => {
198
198
  if (this.isDomConnected && this.#$dialog.open) {
199
- this.#$targetOpenSlot.addEventListener("focus", this.#stopEventPropagation, true);
199
+ this.#$targetOpenSlot.addEventListener('focus', this.#stopEventPropagation, true);
200
200
  this.#targetActiveElement.focus();
201
- this.#$targetOpenSlot.removeEventListener("focus", this.#stopEventPropagation, true);
201
+ this.#$targetOpenSlot.removeEventListener('focus', this.#stopEventPropagation, true);
202
202
  }
203
203
  });
204
204
  }
205
205
  }
206
206
  }
207
207
  disableOverscroll();
208
- window.addEventListener("scroll", this.#updatePosition, { passive: false });
209
- window.addEventListener("resize", this.#onResize);
208
+ window.addEventListener('scroll', this.#updatePosition, {
209
+ passive: false
210
+ });
211
+ window.addEventListener('resize', this.#onResize);
210
212
  requestAnimationFrame(() => {
211
213
  if (this.isDomConnected && this.#$dialog.open) {
212
- this.#$contentSlot.addEventListener("slotchange", this.#onContentSlotChange);
214
+ this.#$contentSlot.addEventListener('slotchange', this.#onContentSlotChange);
213
215
  }
214
216
  });
215
217
  this.#dispatchContentVisibility(true);
@@ -220,41 +222,45 @@ class Pop extends NectaryElement {
220
222
  }
221
223
  const isNonModal = !this.modal;
222
224
  this.#dispatchContentVisibility(false);
223
- this.#$targetOpenSlot.removeEventListener("keydown", this.#onTargetKeydown);
225
+ this.#$targetOpenSlot.removeEventListener('keydown', this.#onTargetKeydown);
224
226
  if (isNonModal) {
225
- this.#$targetOpenSlot.addEventListener("blur", this.#captureActiveElement, true);
227
+ this.#$targetOpenSlot.addEventListener('blur', this.#captureActiveElement, true);
226
228
  }
227
229
  this.#$dialog.close();
228
- this.#$targetWrapper.setAttribute("aria-expanded", "false");
230
+ this.#$targetWrapper.setAttribute('aria-expanded', 'false');
229
231
  if (isNonModal) {
230
- this.#$targetOpenSlot.removeEventListener("blur", this.#captureActiveElement, true);
232
+ this.#$targetOpenSlot.removeEventListener('blur', this.#captureActiveElement, true);
231
233
  }
232
234
  if (isNonModal) {
233
235
  const targetEl = this.#getFirstTargetElement(this.#$targetOpenSlot);
234
- targetEl.style.removeProperty("margin");
235
- targetEl.style.removeProperty("position");
236
- targetEl.style.removeProperty("transform");
236
+ targetEl.style.removeProperty('margin');
237
+ targetEl.style.removeProperty('position');
238
+ targetEl.style.removeProperty('transform');
237
239
  if (this.#targetStyleValue !== null) {
238
- targetEl.setAttribute("style", this.#targetStyleValue);
240
+ targetEl.setAttribute('style', this.#targetStyleValue);
239
241
  this.#targetStyleValue = null;
240
242
  }
241
- getFirstSlotElement(this.#$targetOpenSlot)?.setAttribute("slot", "target");
242
- this.#$targetWrapper.style.removeProperty("display");
243
- this.#$targetWrapper.style.removeProperty("width");
244
- this.#$targetWrapper.style.removeProperty("height");
243
+ getFirstSlotElement(this.#$targetOpenSlot)?.setAttribute('slot', 'target');
244
+ this.#$targetWrapper.style.removeProperty('display');
245
+ this.#$targetWrapper.style.removeProperty('width');
246
+ this.#$targetWrapper.style.removeProperty('height');
245
247
  }
246
248
  if (this.#targetActiveElement !== null) {
247
249
  if (!isElementFocused(this.#targetActiveElement)) {
248
- this.#$targetSlot.addEventListener("focus", this.#stopEventPropagation, true);
249
- this.#targetActiveElement.focus({ preventScroll: true });
250
- this.#$targetSlot.removeEventListener("focus", this.#stopEventPropagation, true);
250
+ this.#$targetSlot.addEventListener('focus', this.#stopEventPropagation, true);
251
+ this.#targetActiveElement.focus({
252
+ preventScroll: true
253
+ });
254
+ this.#$targetSlot.removeEventListener('focus', this.#stopEventPropagation, true);
251
255
  if (!isElementFocused(this.#targetActiveElement)) {
252
256
  const $targetEl = this.#targetActiveElement;
253
257
  requestAnimationFrame(() => {
254
258
  if (this.isDomConnected && !this.#$dialog.open) {
255
- this.#$targetSlot.addEventListener("focus", this.#stopEventPropagation, true);
256
- $targetEl.focus({ preventScroll: true });
257
- this.#$targetSlot.removeEventListener("focus", this.#stopEventPropagation, true);
259
+ this.#$targetSlot.addEventListener('focus', this.#stopEventPropagation, true);
260
+ $targetEl.focus({
261
+ preventScroll: true
262
+ });
263
+ this.#$targetSlot.removeEventListener('focus', this.#stopEventPropagation, true);
258
264
  }
259
265
  });
260
266
  }
@@ -263,9 +269,9 @@ class Pop extends NectaryElement {
263
269
  }
264
270
  enableOverscroll();
265
271
  this.#resizeThrottle.cancel();
266
- window.removeEventListener("resize", this.#onResize);
267
- window.removeEventListener("scroll", this.#updatePosition);
268
- this.#$contentSlot.removeEventListener("slotchange", this.#onContentSlotChange);
272
+ window.removeEventListener('resize', this.#onResize);
273
+ window.removeEventListener('scroll', this.#updatePosition);
274
+ this.#$contentSlot.removeEventListener('slotchange', this.#onContentSlotChange);
269
275
  }
270
276
  #onResize = () => {
271
277
  this.#resizeThrottle.fn();
@@ -278,47 +284,47 @@ class Pop extends NectaryElement {
278
284
  const inset = this.inset;
279
285
  let xPos = 0;
280
286
  let yPos = 0;
281
- if (orient === "bottom-right" || orient === "top-right" || orient === "top-stretch" || orient === "bottom-stretch") {
287
+ if (orient === 'bottom-right' || orient === 'top-right' || orient === 'top-stretch' || orient === 'bottom-stretch') {
282
288
  xPos = targetRect.x;
283
289
  }
284
- if (orient === "bottom-left" || orient === "top-left") {
290
+ if (orient === 'bottom-left' || orient === 'top-left') {
285
291
  xPos = targetRect.x + targetRect.width - modalWidth;
286
292
  }
287
- if (orient === "bottom-center" || orient === "top-center") {
293
+ if (orient === 'bottom-center' || orient === 'top-center') {
288
294
  xPos = targetRect.x + targetRect.width / 2 - modalWidth / 2;
289
295
  }
290
- if (orient === "center-right") {
296
+ if (orient === 'center-right') {
291
297
  xPos = targetRect.x + targetRect.width;
292
298
  }
293
- if (orient === "center-left") {
299
+ if (orient === 'center-left') {
294
300
  xPos = targetRect.x - modalWidth;
295
301
  }
296
- if (orient === "bottom-left" || orient === "bottom-right" || orient === "bottom-stretch" || orient === "bottom-center") {
302
+ if (orient === 'bottom-left' || orient === 'bottom-right' || orient === 'bottom-stretch' || orient === 'bottom-center') {
297
303
  yPos = targetRect.y + targetRect.height;
298
304
  }
299
- if (orient === "top-left" || orient === "top-right" || orient === "top-stretch" || orient === "top-center") {
305
+ if (orient === 'top-left' || orient === 'top-right' || orient === 'top-stretch' || orient === 'top-center') {
300
306
  yPos = targetRect.y - modalHeight;
301
307
  }
302
- if (orient === "center-left" || orient === "center-right") {
308
+ if (orient === 'center-left' || orient === 'center-right') {
303
309
  yPos = targetRect.y + targetRect.height / 2 - modalHeight / 2;
304
310
  }
305
311
  const clampedXPos = Math.max(inset, Math.min(xPos, window.innerWidth - modalWidth - inset));
306
312
  const clampedYPos = Math.max(inset, Math.min(yPos, window.innerHeight - modalHeight - inset));
307
- this.#$dialog.style.setProperty("left", `${clampedXPos}px`);
308
- this.#$dialog.style.setProperty("top", `${clampedYPos}px`);
313
+ this.#$dialog.style.setProperty('left', `${clampedXPos}px`);
314
+ this.#$dialog.style.setProperty('top', `${clampedYPos}px`);
309
315
  if (!this.modal) {
310
316
  const targetLeftPos = targetRect.x - clampedXPos;
311
317
  const targetTopPos = targetRect.y - clampedYPos;
312
- this.#$targetOpenWrapper.style.setProperty("left", `${targetLeftPos}px`);
313
- this.#$targetOpenWrapper.style.setProperty("top", `${targetTopPos}px`);
318
+ this.#$targetOpenWrapper.style.setProperty('left', `${targetLeftPos}px`);
319
+ this.#$targetOpenWrapper.style.setProperty('top', `${targetTopPos}px`);
314
320
  }
315
321
  };
316
322
  #updateOrientation = () => {
317
- this.#$dialog.style.setProperty("width", "max-content");
323
+ this.#$dialog.style.setProperty('width', 'max-content');
318
324
  const targetRect = this.#getTargetRect();
319
325
  const modalRect = this.#$dialog.getBoundingClientRect();
320
326
  const orient = this.orientation;
321
- const shouldSetWidthToTarget = orient === "top-stretch" || orient === "bottom-stretch";
327
+ const shouldSetWidthToTarget = orient === 'top-stretch' || orient === 'bottom-stretch';
322
328
  const modalHeight = modalRect.height;
323
329
  const modalWidth = shouldSetWidthToTarget ? targetRect.width : modalRect.width;
324
330
  const inset = this.inset;
@@ -326,43 +332,43 @@ class Pop extends NectaryElement {
326
332
  let yPos = 0;
327
333
  this.#modalHeight = modalHeight;
328
334
  this.#modalWidth = modalWidth;
329
- if (orient === "bottom-right" || orient === "top-right" || orient === "top-stretch" || orient === "bottom-stretch") {
335
+ if (orient === 'bottom-right' || orient === 'top-right' || orient === 'top-stretch' || orient === 'bottom-stretch') {
330
336
  xPos = targetRect.x;
331
337
  }
332
- if (orient === "bottom-left" || orient === "top-left") {
338
+ if (orient === 'bottom-left' || orient === 'top-left') {
333
339
  xPos = targetRect.x + targetRect.width - modalWidth;
334
340
  }
335
- if (orient === "bottom-center" || orient === "top-center") {
341
+ if (orient === 'bottom-center' || orient === 'top-center') {
336
342
  xPos = targetRect.x + targetRect.width / 2 - modalWidth / 2;
337
343
  }
338
- if (orient === "center-right") {
344
+ if (orient === 'center-right') {
339
345
  xPos = targetRect.x + targetRect.width;
340
346
  }
341
- if (orient === "center-left") {
347
+ if (orient === 'center-left') {
342
348
  xPos = targetRect.x - modalWidth;
343
349
  }
344
- if (orient === "bottom-left" || orient === "bottom-right" || orient === "bottom-stretch" || orient === "bottom-center") {
350
+ if (orient === 'bottom-left' || orient === 'bottom-right' || orient === 'bottom-stretch' || orient === 'bottom-center') {
345
351
  yPos = targetRect.y + targetRect.height;
346
352
  }
347
- if (orient === "top-left" || orient === "top-right" || orient === "top-stretch" || orient === "top-center") {
353
+ if (orient === 'top-left' || orient === 'top-right' || orient === 'top-stretch' || orient === 'top-center') {
348
354
  yPos = targetRect.y - modalHeight;
349
355
  }
350
- if (orient === "center-left" || orient === "center-right") {
356
+ if (orient === 'center-left' || orient === 'center-right') {
351
357
  yPos = targetRect.y + targetRect.height / 2 - modalHeight / 2;
352
358
  }
353
359
  xPos = Math.round(Math.max(inset, Math.min(xPos, window.innerWidth - modalWidth - inset)));
354
360
  yPos = Math.round(Math.max(inset, Math.min(yPos, window.innerHeight - modalHeight - inset)));
355
- this.#$dialog.style.setProperty("left", `${xPos}px`);
356
- this.#$dialog.style.setProperty("top", `${yPos}px`);
357
- this.#$dialog.style.setProperty("width", `${modalWidth}px`);
361
+ this.#$dialog.style.setProperty('left', `${xPos}px`);
362
+ this.#$dialog.style.setProperty('top', `${yPos}px`);
363
+ this.#$dialog.style.setProperty('width', `${modalWidth}px`);
358
364
  if (!this.modal) {
359
365
  const targetLeftPos = targetRect.x - xPos;
360
366
  const targetTopPos = targetRect.y - yPos;
361
- this.#$targetOpenWrapper.style.setProperty("left", `${targetLeftPos}px`);
362
- this.#$targetOpenWrapper.style.setProperty("top", `${targetTopPos}px`);
367
+ this.#$targetOpenWrapper.style.setProperty('left', `${targetLeftPos}px`);
368
+ this.#$targetOpenWrapper.style.setProperty('top', `${targetTopPos}px`);
363
369
  }
364
370
  };
365
- #onBackdropMouseDown = (e) => {
371
+ #onBackdropMouseDown = e => {
366
372
  if (isTargetEqual(e, this.#$dialog)) {
367
373
  const rect = this.popoverRect;
368
374
  const isInside = e.x >= rect.x && e.x < rect.x + rect.width && e.y >= rect.y && e.y < rect.y + rect.height;
@@ -372,34 +378,32 @@ class Pop extends NectaryElement {
372
378
  }
373
379
  }
374
380
  };
375
- #onCancel = (e) => {
381
+ #onCancel = e => {
376
382
  e.preventDefault();
377
383
  e.stopPropagation();
378
384
  this.#dispatchCloseEvent();
379
385
  };
380
- #onCloseReactHandler = (e) => {
381
- getReactEventHandler(this, "on-close")?.(e);
386
+ #onCloseReactHandler = e => {
387
+ getReactEventHandler(this, 'on-close')?.(e);
382
388
  };
383
389
  #dispatchCloseEvent() {
384
- this.dispatchEvent(
385
- new CustomEvent("-close")
386
- );
390
+ this.dispatchEvent(new CustomEvent('-close'));
387
391
  }
388
- #captureRelatedActiveElement = (e) => {
392
+ #captureRelatedActiveElement = e => {
389
393
  e.stopPropagation();
390
394
  this.#targetActiveElement = e.relatedTarget;
391
395
  };
392
- #captureActiveElement = (e) => {
396
+ #captureActiveElement = e => {
393
397
  e.stopPropagation();
394
398
  this.#targetActiveElement = e.target;
395
399
  };
396
- #stopEventPropagation = (e) => {
400
+ #stopEventPropagation = e => {
397
401
  e.stopPropagation();
398
402
  };
399
403
  #dispatchContentVisibility(isVisible) {
400
404
  this.#visibilityContext.dispatch(isVisible);
401
405
  }
402
- #onTargetKeydown = (e) => {
406
+ #onTargetKeydown = e => {
403
407
  this.#keydownContext.dispatch({
404
408
  code: e.code,
405
409
  preventDefault: () => {
@@ -407,19 +411,16 @@ class Pop extends NectaryElement {
407
411
  }
408
412
  });
409
413
  };
410
- #onContextVisibility = (e) => {
414
+ #onContextVisibility = e => {
411
415
  if (!e.detail) {
412
416
  this.#dispatchCloseEvent();
413
417
  }
414
418
  };
415
- #onContentSlotChange = (e) => {
419
+ #onContentSlotChange = e => {
416
420
  e.stopPropagation();
417
421
  if (this.#$dialog.open) {
418
422
  this.#updateOrientation();
419
423
  }
420
424
  };
421
425
  }
422
- defineCustomElement("sinch-pop", Pop);
423
- export {
424
- Pop
425
- };
426
+ defineCustomElement('sinch-pop', Pop);
package/pop/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { NectaryComponentReactByType, NectaryComponentVanillaByType, TRect, NectaryComponentReact, NectaryComponentVanilla } from '../types';
1
+ import type { NectaryComponentReactByType, NectaryComponentVanillaByType, TRect } from '../types';
2
2
  export type TSinchPopOrientation = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'bottom-center' | 'bottom-stretch' | 'top-center' | 'top-stretch' | 'center-right' | 'center-left';
3
3
  export type TSinchPopProps = {
4
4
  /** Open/close state */
@@ -23,23 +23,3 @@ export type TSinchPop = {
23
23
  };
24
24
  export type TSinchPopElement = NectaryComponentVanillaByType<TSinchPop>;
25
25
  export type TSinchPopReact = NectaryComponentReactByType<TSinchPop>;
26
- declare global {
27
- interface NectaryComponentMap {
28
- 'sinch-pop': TSinchPop;
29
- }
30
- interface HTMLElementTagNameMap {
31
- 'sinch-pop': NectaryComponentVanilla<'sinch-pop'>;
32
- }
33
- namespace JSX {
34
- interface IntrinsicElements {
35
- 'sinch-pop': NectaryComponentReact<'sinch-pop'>;
36
- }
37
- }
38
- }
39
- declare module 'react' {
40
- namespace JSX {
41
- interface IntrinsicElements extends globalThis.JSX.IntrinsicElements {
42
- 'sinch-pop': NectaryComponentReact<'sinch-pop'>;
43
- }
44
- }
45
- }
package/pop/types.js CHANGED
@@ -1 +1 @@
1
-
1
+ export {};
package/pop/utils.js CHANGED
@@ -1,32 +1,16 @@
1
- const orientationValues = [
2
- "top-left",
3
- "top-right",
4
- "bottom-left",
5
- "bottom-right",
6
- "bottom-stretch",
7
- "bottom-center",
8
- "top-stretch",
9
- "top-center",
10
- "center-left",
11
- "center-right"
12
- ];
1
+ export const orientationValues = ['top-left', 'top-right', 'bottom-left', 'bottom-right', 'bottom-stretch', 'bottom-center', 'top-stretch', 'top-center', 'center-left', 'center-right'];
13
2
  const bodyEl = document.body;
14
- const disableOverscroll = () => {
3
+ export const disableOverscroll = () => {
15
4
  bodyEl.__pop_counter__ = (bodyEl.__pop_counter__ ?? 0) + 1;
16
5
  if (bodyEl.__pop_counter__ === 1) {
17
- bodyEl.style.setProperty("overscroll-behavior", "none");
18
- document.documentElement.style.setProperty("overscroll-behavior", "none");
6
+ bodyEl.style.setProperty('overscroll-behavior', 'none');
7
+ document.documentElement.style.setProperty('overscroll-behavior', 'none');
19
8
  }
20
9
  };
21
- const enableOverscroll = () => {
10
+ export const enableOverscroll = () => {
22
11
  bodyEl.__pop_counter__ = Math.max(0, (bodyEl.__pop_counter__ ?? 0) - 1);
23
12
  if (bodyEl.__pop_counter__ === 0) {
24
- bodyEl.style.removeProperty("overscroll-behavior");
25
- document.documentElement.style.removeProperty("overscroll-behavior");
13
+ bodyEl.style.removeProperty('overscroll-behavior');
14
+ document.documentElement.style.removeProperty('overscroll-behavior');
26
15
  }
27
- };
28
- export {
29
- disableOverscroll,
30
- enableOverscroll,
31
- orientationValues
32
- };
16
+ };