@persona/design-system 0.2.0 → 0.2.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 (264) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{Action-B25g4O9p.d.mts → Action-DnR0YTxO.d.mts} +2 -2
  3. package/dist/Action.d.mts +1 -1
  4. package/dist/Attribute.d.mts +3 -3
  5. package/dist/{Badge-Bd_k492g.mjs → Badge-DRn_r6is.mjs} +2 -2
  6. package/dist/{Badge-Bd_k492g.mjs.map → Badge-DRn_r6is.mjs.map} +1 -1
  7. package/dist/{Breadcrumbs-C9udlH48.mjs → Breadcrumbs-Byf2ye6H.mjs} +8 -8
  8. package/dist/{Breadcrumbs-C9udlH48.mjs.map → Breadcrumbs-Byf2ye6H.mjs.map} +1 -1
  9. package/dist/{Button-KCl4uRtU.d.mts → Button-DkjwN_Op.d.mts} +2 -2
  10. package/dist/Button.d.mts +1 -1
  11. package/dist/CalendarBase.d.mts +1 -1
  12. package/dist/{Card-8DuhHQIk.d.mts → Card-DxFajLnx.d.mts} +4 -4
  13. package/dist/Card.d.mts +1 -1
  14. package/dist/Card2.d.mts +2 -2
  15. package/dist/{CardV2-_GfXFd3d.mjs → CardV2-m9yOInMU.mjs} +10 -10
  16. package/dist/{CardV2-_GfXFd3d.mjs.map → CardV2-m9yOInMU.mjs.map} +1 -1
  17. package/dist/{Checkbox-D77Rg7La.mjs → Checkbox-CU27-Aa8.mjs} +6 -6
  18. package/dist/{Checkbox-D77Rg7La.mjs.map → Checkbox-CU27-Aa8.mjs.map} +1 -1
  19. package/dist/{Combobox-DVI8PoKx.d.mts → Combobox-BgKEHP9p.d.mts} +3 -3
  20. package/dist/{Combobox-BzqlrMK0.mjs → Combobox-DhTUY8JT.mjs} +10 -10
  21. package/dist/{Combobox-BzqlrMK0.mjs.map → Combobox-DhTUY8JT.mjs.map} +1 -1
  22. package/dist/Combobox.d.mts +2 -2
  23. package/dist/{ComboboxBase-B8evOZpf.d.mts → ComboboxBase-Dmzn8a53.d.mts} +6 -6
  24. package/dist/ComboboxBase.d.mts +1 -1
  25. package/dist/{ComboboxMultiSelect-KJarhRm4.d.mts → ComboboxMultiSelect-BLKUKNEW.d.mts} +2 -2
  26. package/dist/ComboboxMultiSelect.d.mts +1 -1
  27. package/dist/{ComboboxSingleSelect-CcIGaphR.d.mts → ComboboxSingleSelect-Kpl-iOok.d.mts} +3 -3
  28. package/dist/ComboboxSingleSelect.d.mts +1 -1
  29. package/dist/{CompactBar-DfP7Wu1l.d.mts → CompactBar-E9hPDRvI.d.mts} +2 -2
  30. package/dist/CompactBar.d.mts +1 -1
  31. package/dist/{ConfigFormGroup-D1Qma23p.mjs → ConfigFormGroup-GgzSDzgL.mjs} +3 -3
  32. package/dist/{ConfigFormGroup-D1Qma23p.mjs.map → ConfigFormGroup-GgzSDzgL.mjs.map} +1 -1
  33. package/dist/DataTable.d.mts +1 -1
  34. package/dist/{DatePicker-CK2D9jvG.mjs → DatePicker-DpGvo7Bd.mjs} +9 -9
  35. package/dist/{DatePicker-CK2D9jvG.mjs.map → DatePicker-DpGvo7Bd.mjs.map} +1 -1
  36. package/dist/{DropdownButton-CaM0itat.mjs → DropdownButton-DGgfGW_o.mjs} +3 -3
  37. package/dist/{DropdownButton-CaM0itat.mjs.map → DropdownButton-DGgfGW_o.mjs.map} +1 -1
  38. package/dist/DropdownButton.d.mts +2 -2
  39. package/dist/{DropdownMenu-Bgho2AsJ.d.mts → DropdownMenu-B2t3Bwky.d.mts} +3 -3
  40. package/dist/{DropdownMenu-B4f3LNoW.mjs → DropdownMenu-DZIFSJXD.mjs} +3 -3
  41. package/dist/{DropdownMenu-B4f3LNoW.mjs.map → DropdownMenu-DZIFSJXD.mjs.map} +1 -1
  42. package/dist/DropdownMenu.d.mts +1 -1
  43. package/dist/{FormControl-CFYlkv7E.mjs → FormControl-BIXJ-FPI.mjs} +5 -5
  44. package/dist/{FormControl-CFYlkv7E.mjs.map → FormControl-BIXJ-FPI.mjs.map} +1 -1
  45. package/dist/{FormControl-iPeOOlFb.d.mts → FormControl-CZFmub1N.d.mts} +2 -2
  46. package/dist/FormControl.d.mts +1 -1
  47. package/dist/FormControlLabel.d.mts +2 -2
  48. package/dist/{FormField-BruK7Des.d.mts → FormField-8rlT8pm0.d.mts} +2 -2
  49. package/dist/{FormField-Bol8gzNt.mjs → FormField-DcGQvgNW.mjs} +25 -24
  50. package/dist/FormField-DcGQvgNW.mjs.map +1 -0
  51. package/dist/FormField.d.mts +1 -1
  52. package/dist/{Header-BxTdWg0Q.d.mts → Header-OLZuv8fF.d.mts} +2 -2
  53. package/dist/Header.d.mts +1 -1
  54. package/dist/{HelperTooltip-Z5NdrLCT.d.mts → HelperTooltip-CJDG7Ugp.d.mts} +2 -2
  55. package/dist/HelperTooltip.d.mts +1 -1
  56. package/dist/{HoverCopyableField-C8AdtVrT.mjs → HoverCopyableField-BHdCaR-R.mjs} +4 -4
  57. package/dist/{HoverCopyableField-C8AdtVrT.mjs.map → HoverCopyableField-BHdCaR-R.mjs.map} +1 -1
  58. package/dist/{IconButton-Bi4kdsbV.mjs → IconButton-DC4rh6ow.mjs} +6 -6
  59. package/dist/{IconButton-Bi4kdsbV.mjs.map → IconButton-DC4rh6ow.mjs.map} +1 -1
  60. package/dist/{IconButton-BycIGS3p.d.mts → IconButton-Dc17jZPG.d.mts} +2 -2
  61. package/dist/IconButton.d.mts +1 -1
  62. package/dist/ImageTile.d.mts +1 -1
  63. package/dist/InlineCombobox.d.mts +1 -1
  64. package/dist/InlineInput.d.mts +1 -1
  65. package/dist/{Input-CEcoDtTu.d.mts → Input-DsS4J78T.d.mts} +4 -4
  66. package/dist/{Input-CSOxMzlt.mjs → Input-PWfwMSJ7.mjs} +5 -5
  67. package/dist/{Input-CSOxMzlt.mjs.map → Input-PWfwMSJ7.mjs.map} +1 -1
  68. package/dist/Input.d.mts +1 -1
  69. package/dist/{ListBox-CSMVAgHm.mjs → ListBox-BwD-q7wF.mjs} +11 -11
  70. package/dist/{ListBox-CSMVAgHm.mjs.map → ListBox-BwD-q7wF.mjs.map} +1 -1
  71. package/dist/{ListBox-CajNIX9P.d.mts → ListBox-Nl9aOBeh.d.mts} +3 -3
  72. package/dist/ListBox.d.mts +1 -1
  73. package/dist/ListBoxField.d.mts +2 -2
  74. package/dist/{LoadingShimmer-Dsc_RCCf.mjs → LoadingShimmer-BPYPtFE1.mjs} +1 -1
  75. package/dist/{LoadingShimmer-Dsc_RCCf.mjs.map → LoadingShimmer-BPYPtFE1.mjs.map} +1 -1
  76. package/dist/LoadingShimmer.d.mts +1 -1
  77. package/dist/{LogicRow-DK1NcP2a.d.mts → LogicRow-BAREMenx.d.mts} +2 -2
  78. package/dist/LogicRow.d.mts +1 -1
  79. package/dist/MaskedInput.d.mts +2 -2
  80. package/dist/MatchHighlight.d.mts +1 -1
  81. package/dist/{Menu-BLtjpLst.d.mts → Menu-DM9OoZ71.d.mts} +4 -4
  82. package/dist/{Menu-DDXR9uHy.mjs → Menu-DpM8o234.mjs} +5 -5
  83. package/dist/{Menu-DDXR9uHy.mjs.map → Menu-DpM8o234.mjs.map} +1 -1
  84. package/dist/Menu.d.mts +1 -1
  85. package/dist/{MiddleTruncatedText-DjsUk8HM.mjs → MiddleTruncatedText-Bzpg3zAU.mjs} +2 -2
  86. package/dist/{MiddleTruncatedText-DjsUk8HM.mjs.map → MiddleTruncatedText-Bzpg3zAU.mjs.map} +1 -1
  87. package/dist/Modal.d.mts +2 -2
  88. package/dist/{PageHeader-BI2gxol5.mjs → PageHeader-Dq-J3san.mjs} +2 -2
  89. package/dist/{PageHeader-BI2gxol5.mjs.map → PageHeader-Dq-J3san.mjs.map} +1 -1
  90. package/dist/PageHeader.d.mts +1 -1
  91. package/dist/PageLayout.d.mts +1 -1
  92. package/dist/{PageSelector-BDo3ge1E.d.mts → PageSelector-Ca4TcyxG.d.mts} +2 -2
  93. package/dist/PageSelector.d.mts +1 -1
  94. package/dist/{Pagination-DiaJX5Da.mjs → Pagination-GALyid4q.mjs} +5 -5
  95. package/dist/{Pagination-DiaJX5Da.mjs.map → Pagination-GALyid4q.mjs.map} +1 -1
  96. package/dist/{Pii-CSBV5Is7.mjs → Pii-BalLvfze.mjs} +2 -2
  97. package/dist/{Pii-CSBV5Is7.mjs.map → Pii-BalLvfze.mjs.map} +1 -1
  98. package/dist/{Popover-5y0p85Sw.mjs → Popover-BZ5Bs80y.mjs} +2 -2
  99. package/dist/{Popover-5y0p85Sw.mjs.map → Popover-BZ5Bs80y.mjs.map} +1 -1
  100. package/dist/{Radio-aMjdUp4K.mjs → Radio-CtPz3EzX.mjs} +4 -4
  101. package/dist/{Radio-aMjdUp4K.mjs.map → Radio-CtPz3EzX.mjs.map} +1 -1
  102. package/dist/{RadioGroup-BpoKyoi3.mjs → RadioGroup-sjBzFE_-.mjs} +3 -3
  103. package/dist/{RadioGroup-BpoKyoi3.mjs.map → RadioGroup-sjBzFE_-.mjs.map} +1 -1
  104. package/dist/Section.d.mts +1 -1
  105. package/dist/{SectionHeading-BxKNuU2m.d.mts → SectionHeading-DvP9NEgN.d.mts} +2 -2
  106. package/dist/SectionHeading.d.mts +1 -1
  107. package/dist/{SegmentedControl-Cgs6qlhN.mjs → SegmentedControl-BugnH-h2.mjs} +3 -3
  108. package/dist/{SegmentedControl-Cgs6qlhN.mjs.map → SegmentedControl-BugnH-h2.mjs.map} +1 -1
  109. package/dist/{Select-COT4bkPb.d.mts → Select-BmJ1OjXA.d.mts} +2 -2
  110. package/dist/{Select-CmJEiYXU.mjs → Select-DL-AjL0Q.mjs} +8 -8
  111. package/dist/{Select-CmJEiYXU.mjs.map → Select-DL-AjL0Q.mjs.map} +1 -1
  112. package/dist/Select.d.mts +1 -1
  113. package/dist/{Spinner-BXfYWjC_.mjs → Spinner-BgBCCHGo.mjs} +2 -2
  114. package/dist/{Spinner-BXfYWjC_.mjs.map → Spinner-BgBCCHGo.mjs.map} +1 -1
  115. package/dist/{Stack-DHaK1-dw.d.mts → Stack-CbcJykx9.d.mts} +2 -2
  116. package/dist/Stack.d.mts +1 -1
  117. package/dist/{Sticker-BOlAy2TE.mjs → Sticker-B0TbkV4o.mjs} +4 -4
  118. package/dist/{Sticker-BOlAy2TE.mjs.map → Sticker-B0TbkV4o.mjs.map} +1 -1
  119. package/dist/{Sticker-C8rvpu7M.d.mts → Sticker-BIVuastf.d.mts} +4 -4
  120. package/dist/Sticker.d.mts +1 -1
  121. package/dist/Tab.d.mts +2 -2
  122. package/dist/{TabBar-DX1Spi6D.mjs → TabBar-DLf4Hwa4.mjs} +6 -6
  123. package/dist/{TabBar-DX1Spi6D.mjs.map → TabBar-DLf4Hwa4.mjs.map} +1 -1
  124. package/dist/TabBarIconButton.d.mts +2 -2
  125. package/dist/{Table-BnYZVCLj.mjs → Table-C-mx8Uj0.mjs} +6 -6
  126. package/dist/{Table-BnYZVCLj.mjs.map → Table-C-mx8Uj0.mjs.map} +1 -1
  127. package/dist/{TableBox-BC5l3UMT.mjs → TableBox-DGjKVQFO.mjs} +13 -13
  128. package/dist/{TableBox-BC5l3UMT.mjs.map → TableBox-DGjKVQFO.mjs.map} +1 -1
  129. package/dist/TableBox.d.mts +1 -1
  130. package/dist/{TableBoxCell-CWh_riC8.d.mts → TableBoxCell-BmoPs1u1.d.mts} +6 -6
  131. package/dist/TableBoxCell.d.mts +1 -1
  132. package/dist/TableBoxField.d.mts +3 -3
  133. package/dist/{TableBoxRow-JnJXVqMr.d.mts → TableBoxRow-BAYvEDjT.d.mts} +2 -2
  134. package/dist/TableBoxRow.d.mts +1 -1
  135. package/dist/{TableBoxRowActions-CfEE1r4C.d.mts → TableBoxRowActions-DRs4MdK0.d.mts} +2 -2
  136. package/dist/TableBoxRowActions.d.mts +1 -1
  137. package/dist/TableCell.d.mts +1 -1
  138. package/dist/{TableControls-51NYgFvI.mjs → TableControls-BK8DCsqi.mjs} +28 -28
  139. package/dist/TableControls-BK8DCsqi.mjs.map +1 -0
  140. package/dist/TableTH.d.mts +1 -1
  141. package/dist/{TechnicalSticker-D7viw4H5.mjs → TechnicalSticker-BrvR0zhC.mjs} +5 -5
  142. package/dist/{TechnicalSticker-D7viw4H5.mjs.map → TechnicalSticker-BrvR0zhC.mjs.map} +1 -1
  143. package/dist/{Text-CEisq2at.d.mts → Text-CfIFUyHt.d.mts} +2 -2
  144. package/dist/Text.d.mts +1 -1
  145. package/dist/{TextArea-DjmlpCdJ.mjs → TextArea-BFsXUkuj.mjs} +3 -3
  146. package/dist/{TextArea-DjmlpCdJ.mjs.map → TextArea-BFsXUkuj.mjs.map} +1 -1
  147. package/dist/{TextUnderlineTooltip-BKE4peKI.d.mts → TextUnderlineTooltip-Bs6Jn5yr.d.mts} +3 -3
  148. package/dist/TextUnderlineTooltip.d.mts +1 -1
  149. package/dist/Tile.d.mts +1 -1
  150. package/dist/{Toggle-D1rEjYoN.mjs → Toggle-CC2FTAKS.mjs} +6 -6
  151. package/dist/{Toggle-D1rEjYoN.mjs.map → Toggle-CC2FTAKS.mjs.map} +1 -1
  152. package/dist/{Tooltip-DZVPqxai.d.mts → Tooltip-0iXDCV2O.d.mts} +3 -3
  153. package/dist/{Tooltip-B-DDlRMw.mjs → Tooltip-CDvOu1UN.mjs} +3 -3
  154. package/dist/{Tooltip-B-DDlRMw.mjs.map → Tooltip-CDvOu1UN.mjs.map} +1 -1
  155. package/dist/Tooltip.d.mts +1 -1
  156. package/dist/{TruncatedText-D2R7uy_y.d.mts → TruncatedText-CdeU19Ev.d.mts} +2 -2
  157. package/dist/components/Attribute/index.mjs +8 -8
  158. package/dist/components/Attribute/index.mjs.map +1 -1
  159. package/dist/components/Badge/index.mjs +1 -1
  160. package/dist/components/Banner/index.mjs +2 -2
  161. package/dist/components/Breadcrumbs/index.mjs +1 -1
  162. package/dist/components/Button/index.d.mts +2 -2
  163. package/dist/components/Button/index.mjs +1 -1
  164. package/dist/components/ButtonGroup/index.mjs +3 -3
  165. package/dist/components/Card/index.d.mts +2 -2
  166. package/dist/components/CardV2/index.d.mts +1 -1
  167. package/dist/components/CardV2/index.mjs +1 -1
  168. package/dist/components/Checkbox/index.mjs +1 -1
  169. package/dist/components/Combobox/index.d.mts +2 -2
  170. package/dist/components/Combobox/index.mjs +1 -1
  171. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  172. package/dist/components/DataTable/TableControls/index.d.mts +1 -1
  173. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  174. package/dist/components/DataTable/index.mjs +14 -14
  175. package/dist/components/DataTable/types.d.mts +2 -2
  176. package/dist/components/DatePicker/index.mjs +1 -1
  177. package/dist/components/DropdownButton/index.mjs +1 -1
  178. package/dist/components/DropdownMenu/index.d.mts +1 -1
  179. package/dist/components/DropdownMenu/index.mjs +1 -1
  180. package/dist/components/FormControl/index.d.mts +1 -1
  181. package/dist/components/FormControl/index.mjs +2 -2
  182. package/dist/components/FormField/index.d.mts +1 -1
  183. package/dist/components/FormField/index.mjs +1 -1
  184. package/dist/components/HoverCopyableField/index.mjs +1 -1
  185. package/dist/components/ImageTile/index.mjs +8 -8
  186. package/dist/components/Input/index.d.mts +1 -1
  187. package/dist/components/Input/index.mjs +1 -1
  188. package/dist/components/Link/index.mjs +2 -2
  189. package/dist/components/ListBox/index.d.mts +3 -3
  190. package/dist/components/ListBox/index.mjs +1 -1
  191. package/dist/components/LoadingShimmer/index.mjs +1 -1
  192. package/dist/components/MaskedInput/index.mjs +1 -1
  193. package/dist/components/Menu/index.d.mts +1 -1
  194. package/dist/components/Menu/index.mjs +1 -1
  195. package/dist/components/Modal/index.mjs +12 -4
  196. package/dist/components/Modal/index.mjs.map +1 -1
  197. package/dist/components/PageHeader/index.mjs +1 -1
  198. package/dist/components/Pagination/index.d.mts +1 -1
  199. package/dist/components/Pagination/index.mjs +1 -1
  200. package/dist/components/Pii/index.mjs +1 -1
  201. package/dist/components/Popover/index.mjs +1 -1
  202. package/dist/components/ProgressBar/index.mjs +1 -1
  203. package/dist/components/ProgressIndicator/index.mjs +1 -1
  204. package/dist/components/Radio/index.mjs +1 -1
  205. package/dist/components/RadioGroup/index.mjs +1 -1
  206. package/dist/components/SegmentedControl/index.mjs +1 -1
  207. package/dist/components/Select/index.d.mts +1 -1
  208. package/dist/components/Select/index.mjs +1 -1
  209. package/dist/components/Slider/index.mjs +3 -3
  210. package/dist/components/Spinner/index.mjs +1 -1
  211. package/dist/components/Stack/index.d.mts +1 -1
  212. package/dist/components/StatusIndicator/index.mjs +1 -1
  213. package/dist/components/Sticker/index.d.mts +1 -1
  214. package/dist/components/Sticker/index.mjs +1 -1
  215. package/dist/components/TabBar/index.mjs +1 -1
  216. package/dist/components/Table/index.d.mts +1 -1
  217. package/dist/components/Table/index.mjs +1 -1
  218. package/dist/components/TableBox/index.d.mts +1 -1
  219. package/dist/components/TableBox/index.mjs +1 -1
  220. package/dist/components/TechnicalSticker/index.mjs +1 -1
  221. package/dist/components/Text/index.d.mts +1 -1
  222. package/dist/components/TextArea/index.mjs +1 -1
  223. package/dist/components/Tile/index.mjs +2 -2
  224. package/dist/components/Toast/index.mjs +4 -4
  225. package/dist/components/Toggle/index.mjs +1 -1
  226. package/dist/components/Tooltip/index.d.mts +3 -3
  227. package/dist/components/Tooltip/index.mjs +1 -1
  228. package/dist/fieldPickerOptions.d.mts +1 -1
  229. package/dist/{index-DLV1eMsr.d.mts → index-CdaoOvFH.d.mts} +3 -3
  230. package/dist/{index-Doptc4HI.d.mts → index-DJn4AeE4.d.mts} +2 -2
  231. package/dist/index.d.mts +1 -1
  232. package/dist/inputFields.d.mts +5 -5
  233. package/dist/{intersperse-vOYvFOfF.mjs → intersperse-yd3oMrQl.mjs} +1 -1
  234. package/dist/{intersperse-vOYvFOfF.mjs.map → intersperse-yd3oMrQl.mjs.map} +1 -1
  235. package/dist/lib/MiddleTruncatedText.mjs +1 -1
  236. package/dist/lib/TruncatedText.d.mts +1 -1
  237. package/dist/lib/TruncatedText.mjs +1 -1
  238. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  239. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  240. package/dist/lib/embeddedSurfaceProtocol.d.mts +29 -0
  241. package/dist/lib/embeddedSurfaceProtocol.mjs +74 -0
  242. package/dist/lib/embeddedSurfaceProtocol.mjs.map +1 -0
  243. package/dist/lib/embeddedSurfaceRegistry.d.mts +11 -0
  244. package/dist/lib/embeddedSurfaceRegistry.mjs +19 -0
  245. package/dist/lib/embeddedSurfaceRegistry.mjs.map +1 -0
  246. package/dist/lib/useEmbeddedSurface.d.mts +6 -0
  247. package/dist/lib/useEmbeddedSurface.mjs +135 -0
  248. package/dist/lib/useEmbeddedSurface.mjs.map +1 -0
  249. package/dist/lib/zindex.d.mts +2 -0
  250. package/dist/lib/zindex.mjs +2 -0
  251. package/dist/lib/zindex.mjs.map +1 -1
  252. package/dist/mixins/hoverable.mjs +1 -1
  253. package/dist/mixins/input.mjs +1 -1
  254. package/dist/patterns/LayoutLoadingShimmer/index.mjs +4 -4
  255. package/dist/useComboboxFooterAction.d.mts +1 -1
  256. package/dist/{useFormField-DhYd6bNn.mjs → useFormField-eftOPiXj.mjs} +2 -2
  257. package/dist/{useFormField-DhYd6bNn.mjs.map → useFormField-eftOPiXj.mjs.map} +1 -1
  258. package/dist/{useFormGroup-DWVW7A9f.mjs → useFormGroup-BMukAMAd.mjs} +1 -1
  259. package/dist/{useFormGroup-DWVW7A9f.mjs.map → useFormGroup-BMukAMAd.mjs.map} +1 -1
  260. package/dist/useTruncation.d.mts +1 -1
  261. package/package.json +7 -1
  262. package/skills/ui-authoring/SKILL.md +1 -1
  263. package/dist/FormField-Bol8gzNt.mjs.map +0 -1
  264. package/dist/TableControls-51NYgFvI.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { t as TableHeaderCell } from "./TableHeaderCell-CWTMf2Fe.mjs";
2
2
  import { n as TableRowProps } from "./TableRow-lvjbVccA.mjs";
3
+ import * as _$styled_components0 from "styled-components";
3
4
  import * as _$react from "react";
4
5
  import { ComponentPropsWithoutRef, ReactNode } from "react";
5
- import * as _$styled_components0 from "styled-components";
6
6
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
7
7
 
8
8
  //#region components/Table/TableTH.d.ts
@@ -72,4 +72,4 @@ declare const TableTR: _$styled_components0.StyledComponent<"tr", any, {
72
72
  }, "role">;
73
73
  //#endregion
74
74
  export { TableCellProps as a, TableTD as c, TableTHProps as d, TableCell as i, TableTR as l, StickyTH as n, TableCellTitle as o, TableActionTD as r, TableIconTD as s, StickyTD as t, TableTH as u };
75
- //# sourceMappingURL=index-Doptc4HI.d.mts.map
75
+ //# sourceMappingURL=index-DJn4AeE4.d.mts.map
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as Root, i as HeaderProps, n as Header, o as Title, r as HeaderContainer, s as TitleContainer, t as ActionsContainer } from "./Header-BxTdWg0Q.mjs";
1
+ import { a as Root, i as HeaderProps, n as Header, o as Title, r as HeaderContainer, s as TitleContainer, t as ActionsContainer } from "./Header-OLZuv8fF.mjs";
2
2
  export { ActionsContainer, HeaderContainer, HeaderProps, Root, Title, TitleContainer, Header as default };
@@ -1,11 +1,11 @@
1
1
  import { n as CheckboxProps } from "./Checkbox-Bmm-r5ei.mjs";
2
- import { a as InputProps } from "./Input-CEcoDtTu.mjs";
3
- import { n as ComboboxMultiSelectProps } from "./ComboboxMultiSelect-KJarhRm4.mjs";
4
- import { n as ComboboxSingleSelectProps } from "./ComboboxSingleSelect-CcIGaphR.mjs";
5
- import { n as FormFieldBaseProps } from "./FormField-BruK7Des.mjs";
2
+ import { a as InputProps } from "./Input-DsS4J78T.mjs";
3
+ import { n as ComboboxMultiSelectProps } from "./ComboboxMultiSelect-BLKUKNEW.mjs";
4
+ import { n as ComboboxSingleSelectProps } from "./ComboboxSingleSelect-Kpl-iOok.mjs";
5
+ import { n as FormFieldBaseProps } from "./FormField-8rlT8pm0.mjs";
6
6
  import { n as RadioGroupProps } from "./RadioGroup-Xn46ovrV.mjs";
7
7
  import { i as SegmentedControlProps } from "./SegmentedControl-DckAdhcD.mjs";
8
- import { i as SelectProps } from "./Select-COT4bkPb.mjs";
8
+ import { i as SelectProps } from "./Select-BmJ1OjXA.mjs";
9
9
  import { t as TextAreaProps } from "./TextArea-DiKEhpfD.mjs";
10
10
  import { n as ToggleProps } from "./Toggle-oukvAn6V.mjs";
11
11
  import * as _$react from "react";
@@ -18,4 +18,4 @@ function intersperse(arr, separator) {
18
18
  //#endregion
19
19
  export { intersperse as t };
20
20
 
21
- //# sourceMappingURL=intersperse-vOYvFOfF.mjs.map
21
+ //# sourceMappingURL=intersperse-yd3oMrQl.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"intersperse-vOYvFOfF.mjs","names":[],"sources":["../lib/intersperse.ts"],"sourcesContent":["/**\n * @name intersperse\n *\n * Inserts an element between array items using a separator function. The\n * separator function is passed the previous index, the previous element, and\n * the next element.\n *\n * ```typescript\n * const nodeList: React.ReactNode[] = [...]\n * const commaSeparatedList = intersperse(nodeList, () => ', ')\n * const advancedSeparatedList = intersperse(nodeList, i => <Separator key={i}/>)\n * ```\n */\nexport function intersperse<T>(arr: T[], separator: (n: number, prev: T, curr: T) => T): T[] {\n return arr.flatMap((a, i) => (i > 0 ? [separator(i - 1, arr[i - 1], a), a] : [a]));\n}\n"],"mappings":";;;;;;;;;;;;;;AAaA,SAAgB,YAAe,KAAU,WAAoD;AAC3F,QAAO,IAAI,SAAS,GAAG,MAAO,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAE"}
1
+ {"version":3,"file":"intersperse-yd3oMrQl.mjs","names":[],"sources":["../lib/intersperse.ts"],"sourcesContent":["/**\n * @name intersperse\n *\n * Inserts an element between array items using a separator function. The\n * separator function is passed the previous index, the previous element, and\n * the next element.\n *\n * ```typescript\n * const nodeList: React.ReactNode[] = [...]\n * const commaSeparatedList = intersperse(nodeList, () => ', ')\n * const advancedSeparatedList = intersperse(nodeList, i => <Separator key={i}/>)\n * ```\n */\nexport function intersperse<T>(arr: T[], separator: (n: number, prev: T, curr: T) => T): T[] {\n return arr.flatMap((a, i) => (i > 0 ? [separator(i - 1, arr[i - 1], a), a] : [a]));\n}\n"],"mappings":";;;;;;;;;;;;;;AAaA,SAAgB,YAAe,KAAU,WAAoD;AAC3F,QAAO,IAAI,SAAS,GAAG,MAAO,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAE"}
@@ -1,2 +1,2 @@
1
- import { t as MiddleTruncatedText } from "../MiddleTruncatedText-DjsUk8HM.mjs";
1
+ import { t as MiddleTruncatedText } from "../MiddleTruncatedText-Bzpg3zAU.mjs";
2
2
  export { MiddleTruncatedText, MiddleTruncatedText as default };
@@ -1,2 +1,2 @@
1
- import { n as TruncatedText, r as TruncatedTextProps, t as OverflowEllipsisSpan } from "../TruncatedText-D2R7uy_y.mjs";
1
+ import { n as TruncatedText, r as TruncatedTextProps, t as OverflowEllipsisSpan } from "../TruncatedText-CdeU19Ev.mjs";
2
2
  export { OverflowEllipsisSpan, TruncatedText, TruncatedText as default, TruncatedTextProps };
@@ -1,6 +1,6 @@
1
1
  import { useIsOverflow } from "./useIsOverflow.mjs";
2
- import { useRef } from "react";
3
2
  import styled from "styled-components";
3
+ import { useRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region lib/TruncatedText.tsx
6
6
  const OverflowEllipsisSpan = styled.span`
@@ -1,4 +1,4 @@
1
- import { n as Tooltip } from "../Tooltip-DZVPqxai.mjs";
1
+ import { n as Tooltip } from "../Tooltip-0iXDCV2O.mjs";
2
2
  import { ComponentProps, ComponentPropsWithoutRef, FC } from "react";
3
3
 
4
4
  //#region lib/TruncatedTextWithTooltip.d.ts
@@ -1,6 +1,6 @@
1
1
  import { useIsOverflow } from "./useIsOverflow.mjs";
2
2
  import { OverflowEllipsisSpan } from "./TruncatedText.mjs";
3
- import { a as Tooltip } from "../Tooltip-B-DDlRMw.mjs";
3
+ import { a as Tooltip } from "../Tooltip-CDvOu1UN.mjs";
4
4
  import { useRef } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region lib/TruncatedTextWithTooltip.tsx
@@ -0,0 +1,29 @@
1
+ //#region lib/embeddedSurfaceProtocol.d.ts
2
+ declare const EMBEDDED_SURFACE_CHANNEL = "persona-embedded-surface";
3
+ declare const EMBEDDED_SURFACE_PROTOCOL_VERSION = 1;
4
+ type EmbeddedSurfaceKind = 'hello' | 'surfaceSnapshot' | 'welcome';
5
+ type EmbeddedSurfacePayloads = {
6
+ hello: Record<string, never>;
7
+ surfaceSnapshot: {
8
+ epoch: string;
9
+ surfaces: Array<{
10
+ surfaceId: string;
11
+ }>;
12
+ };
13
+ welcome: {
14
+ epoch: string;
15
+ };
16
+ };
17
+ interface EmbeddedSurfaceEnvelope<K extends EmbeddedSurfaceKind = EmbeddedSurfaceKind> {
18
+ channel: typeof EMBEDDED_SURFACE_CHANNEL;
19
+ version: typeof EMBEDDED_SURFACE_PROTOCOL_VERSION;
20
+ connectionId: string;
21
+ kind: K;
22
+ payload: EmbeddedSurfacePayloads[K];
23
+ }
24
+ type EmbeddedSurfaceEnvelopeUnion = { [K in EmbeddedSurfaceKind]: EmbeddedSurfaceEnvelope<K> }[EmbeddedSurfaceKind];
25
+ declare const coerceHostboundEnvelope: (value: unknown) => EmbeddedSurfaceEnvelopeUnion | undefined;
26
+ declare const coerceChildboundEnvelope: (value: unknown) => EmbeddedSurfaceEnvelopeUnion | undefined;
27
+ //#endregion
28
+ export { EMBEDDED_SURFACE_CHANNEL, EMBEDDED_SURFACE_PROTOCOL_VERSION, EmbeddedSurfaceEnvelope, EmbeddedSurfaceEnvelopeUnion, EmbeddedSurfaceKind, EmbeddedSurfacePayloads, coerceChildboundEnvelope, coerceHostboundEnvelope };
29
+ //# sourceMappingURL=embeddedSurfaceProtocol.d.mts.map
@@ -0,0 +1,74 @@
1
+ //#region lib/embeddedSurfaceProtocol.ts
2
+ const EMBEDDED_SURFACE_CHANNEL = "persona-embedded-surface";
3
+ const EMBEDDED_SURFACE_PROTOCOL_VERSION = 1;
4
+ const IDENTIFIER_PATTERN = /^[A-Za-z0-9_:-]+$/;
5
+ const MAX_IDENTIFIER_LENGTH = 64;
6
+ const MAX_SURFACE_IDS = 16;
7
+ const coerceIdentifier = (value) => {
8
+ if (typeof value !== "string" || value.length < 1 || value.length > MAX_IDENTIFIER_LENGTH || !IDENTIFIER_PATTERN.test(value)) return;
9
+ return value;
10
+ };
11
+ const isRecord = (value) => typeof value === "object" && value != null && !Array.isArray(value);
12
+ const isKnownKind = (value) => value === "hello" || value === "surfaceSnapshot" || value === "welcome";
13
+ const getEnvelopeMetadata = (value) => {
14
+ if (value.channel !== "persona-embedded-surface" || value.version !== 1) return;
15
+ const connectionId = coerceIdentifier(value.connectionId);
16
+ return connectionId != null ? { connectionId } : void 0;
17
+ };
18
+ const coerceHostboundEnvelope = (value) => {
19
+ if (!isRecord(value) || !isKnownKind(value.kind)) return;
20
+ const metadata = getEnvelopeMetadata(value);
21
+ if (metadata == null) return;
22
+ const payload = isRecord(value.payload) ? value.payload : void 0;
23
+ if (payload == null) return;
24
+ switch (value.kind) {
25
+ case "hello": return {
26
+ channel: EMBEDDED_SURFACE_CHANNEL,
27
+ version: 1,
28
+ ...metadata,
29
+ kind: value.kind,
30
+ payload: {}
31
+ };
32
+ case "surfaceSnapshot": {
33
+ const epoch = coerceIdentifier(payload.epoch);
34
+ if (epoch == null || !Array.isArray(payload.surfaces) || payload.surfaces.length > MAX_SURFACE_IDS) return;
35
+ const surfaces = [];
36
+ for (const surface of payload.surfaces) {
37
+ if (!isRecord(surface)) return;
38
+ const surfaceId = coerceIdentifier(surface.surfaceId);
39
+ if (surfaceId == null) return;
40
+ surfaces.push({ surfaceId });
41
+ }
42
+ return {
43
+ channel: EMBEDDED_SURFACE_CHANNEL,
44
+ version: 1,
45
+ ...metadata,
46
+ kind: value.kind,
47
+ payload: {
48
+ epoch,
49
+ surfaces
50
+ }
51
+ };
52
+ }
53
+ case "welcome": return;
54
+ }
55
+ };
56
+ const coerceChildboundEnvelope = (value) => {
57
+ if (!isRecord(value) || value.kind !== "welcome") return;
58
+ const metadata = getEnvelopeMetadata(value);
59
+ const payload = isRecord(value.payload) ? value.payload : void 0;
60
+ if (metadata == null || payload == null) return;
61
+ const epoch = coerceIdentifier(payload.epoch);
62
+ if (epoch == null) return;
63
+ return {
64
+ channel: EMBEDDED_SURFACE_CHANNEL,
65
+ version: 1,
66
+ ...metadata,
67
+ kind: value.kind,
68
+ payload: { epoch }
69
+ };
70
+ };
71
+ //#endregion
72
+ export { EMBEDDED_SURFACE_CHANNEL, EMBEDDED_SURFACE_PROTOCOL_VERSION, coerceChildboundEnvelope, coerceHostboundEnvelope };
73
+
74
+ //# sourceMappingURL=embeddedSurfaceProtocol.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddedSurfaceProtocol.mjs","names":[],"sources":["../../lib/embeddedSurfaceProtocol.ts"],"sourcesContent":["export const EMBEDDED_SURFACE_CHANNEL = 'persona-embedded-surface';\nexport const EMBEDDED_SURFACE_PROTOCOL_VERSION = 1;\n\nexport type EmbeddedSurfaceKind = 'hello' | 'surfaceSnapshot' | 'welcome';\n\nexport type EmbeddedSurfacePayloads = {\n hello: Record<string, never>;\n surfaceSnapshot: {\n epoch: string;\n surfaces: Array<{ surfaceId: string }>;\n };\n welcome: {\n epoch: string;\n };\n};\n\nexport interface EmbeddedSurfaceEnvelope<K extends EmbeddedSurfaceKind = EmbeddedSurfaceKind> {\n channel: typeof EMBEDDED_SURFACE_CHANNEL;\n version: typeof EMBEDDED_SURFACE_PROTOCOL_VERSION;\n connectionId: string;\n kind: K;\n payload: EmbeddedSurfacePayloads[K];\n}\n\nexport type EmbeddedSurfaceEnvelopeUnion = {\n [K in EmbeddedSurfaceKind]: EmbeddedSurfaceEnvelope<K>;\n}[EmbeddedSurfaceKind];\n\nconst IDENTIFIER_PATTERN = /^[A-Za-z0-9_:-]+$/;\nconst MAX_IDENTIFIER_LENGTH = 64;\nconst MAX_SURFACE_IDS = 16;\n\nconst coerceIdentifier = (value: unknown): string | undefined => {\n if (\n typeof value !== 'string' ||\n value.length < 1 ||\n value.length > MAX_IDENTIFIER_LENGTH ||\n !IDENTIFIER_PATTERN.test(value)\n ) {\n return undefined;\n }\n return value;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value != null && !Array.isArray(value);\n\nconst isKnownKind = (value: unknown): value is EmbeddedSurfaceKind =>\n value === 'hello' || value === 'surfaceSnapshot' || value === 'welcome';\n\nconst getEnvelopeMetadata = (\n value: Record<string, unknown>,\n): { connectionId: string } | undefined => {\n if (\n value.channel !== EMBEDDED_SURFACE_CHANNEL ||\n value.version !== EMBEDDED_SURFACE_PROTOCOL_VERSION\n ) {\n return undefined;\n }\n const connectionId = coerceIdentifier(value.connectionId);\n return connectionId != null ? { connectionId } : undefined;\n};\n\nexport const coerceHostboundEnvelope = (\n value: unknown,\n): EmbeddedSurfaceEnvelopeUnion | undefined => {\n if (!isRecord(value) || !isKnownKind(value.kind)) {\n return undefined;\n }\n const metadata = getEnvelopeMetadata(value);\n if (metadata == null) {\n return undefined;\n }\n const payload = isRecord(value.payload) ? value.payload : undefined;\n if (payload == null) {\n return undefined;\n }\n\n switch (value.kind) {\n case 'hello':\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: {},\n };\n case 'surfaceSnapshot': {\n const epoch = coerceIdentifier(payload.epoch);\n if (\n epoch == null ||\n !Array.isArray(payload.surfaces) ||\n payload.surfaces.length > MAX_SURFACE_IDS\n ) {\n return undefined;\n }\n const surfaces = [];\n for (const surface of payload.surfaces) {\n if (!isRecord(surface)) {\n return undefined;\n }\n const surfaceId = coerceIdentifier(surface.surfaceId);\n if (surfaceId == null) {\n return undefined;\n }\n surfaces.push({ surfaceId });\n }\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: { epoch, surfaces },\n };\n }\n case 'welcome':\n return undefined;\n }\n};\n\nexport const coerceChildboundEnvelope = (\n value: unknown,\n): EmbeddedSurfaceEnvelopeUnion | undefined => {\n if (!isRecord(value) || value.kind !== 'welcome') {\n return undefined;\n }\n const metadata = getEnvelopeMetadata(value);\n const payload = isRecord(value.payload) ? value.payload : undefined;\n if (metadata == null || payload == null) {\n return undefined;\n }\n\n const epoch = coerceIdentifier(payload.epoch);\n if (epoch == null) {\n return undefined;\n }\n\n return {\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n ...metadata,\n kind: value.kind,\n payload: { epoch },\n };\n};\n"],"mappings":";AAAA,MAAa,2BAA2B;AACxC,MAAa,oCAAoC;AA2BjD,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AAExB,MAAM,oBAAoB,UAAuC;AAC/D,KACE,OAAO,UAAU,YACjB,MAAM,SAAS,KACf,MAAM,SAAS,yBACf,CAAC,mBAAmB,KAAK,MAAM,CAE/B;AAEF,QAAO;;AAGT,MAAM,YAAY,UAChB,OAAO,UAAU,YAAY,SAAS,QAAQ,CAAC,MAAM,QAAQ,MAAM;AAErE,MAAM,eAAe,UACnB,UAAU,WAAW,UAAU,qBAAqB,UAAU;AAEhE,MAAM,uBACJ,UACyC;AACzC,KACE,MAAM,YAAA,8BACN,MAAM,YAAA,EAEN;CAEF,MAAM,eAAe,iBAAiB,MAAM,aAAa;AACzD,QAAO,gBAAgB,OAAO,EAAE,cAAc,GAAG,KAAA;;AAGnD,MAAa,2BACX,UAC6C;AAC7C,KAAI,CAAC,SAAS,MAAM,IAAI,CAAC,YAAY,MAAM,KAAK,CAC9C;CAEF,MAAM,WAAW,oBAAoB,MAAM;AAC3C,KAAI,YAAY,KACd;CAEF,MAAM,UAAU,SAAS,MAAM,QAAQ,GAAG,MAAM,UAAU,KAAA;AAC1D,KAAI,WAAW,KACb;AAGF,SAAQ,MAAM,MAAd;EACE,KAAK,QACH,QAAO;GACL,SAAS;GACT,SAAA;GACA,GAAG;GACH,MAAM,MAAM;GACZ,SAAS,EAAE;GACZ;EACH,KAAK,mBAAmB;GACtB,MAAM,QAAQ,iBAAiB,QAAQ,MAAM;AAC7C,OACE,SAAS,QACT,CAAC,MAAM,QAAQ,QAAQ,SAAS,IAChC,QAAQ,SAAS,SAAS,gBAE1B;GAEF,MAAM,WAAW,EAAE;AACnB,QAAK,MAAM,WAAW,QAAQ,UAAU;AACtC,QAAI,CAAC,SAAS,QAAQ,CACpB;IAEF,MAAM,YAAY,iBAAiB,QAAQ,UAAU;AACrD,QAAI,aAAa,KACf;AAEF,aAAS,KAAK,EAAE,WAAW,CAAC;;AAE9B,UAAO;IACL,SAAS;IACT,SAAA;IACA,GAAG;IACH,MAAM,MAAM;IACZ,SAAS;KAAE;KAAO;KAAU;IAC7B;;EAEH,KAAK,UACH;;;AAIN,MAAa,4BACX,UAC6C;AAC7C,KAAI,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,UACrC;CAEF,MAAM,WAAW,oBAAoB,MAAM;CAC3C,MAAM,UAAU,SAAS,MAAM,QAAQ,GAAG,MAAM,UAAU,KAAA;AAC1D,KAAI,YAAY,QAAQ,WAAW,KACjC;CAGF,MAAM,QAAQ,iBAAiB,QAAQ,MAAM;AAC7C,KAAI,SAAS,KACX;AAGF,QAAO;EACL,SAAS;EACT,SAAA;EACA,GAAG;EACH,MAAM,MAAM;EACZ,SAAS,EAAE,OAAO;EACnB"}
@@ -0,0 +1,11 @@
1
+ //#region lib/embeddedSurfaceRegistry.d.ts
2
+ interface EmbeddedSurfaceTransport {
3
+ send(message: unknown): void;
4
+ subscribe(callback: (message: unknown) => void): () => void;
5
+ }
6
+ declare const setEmbeddedSurfaceTransport: (nextTransport: EmbeddedSurfaceTransport | null) => void;
7
+ declare const getEmbeddedSurfaceTransport: () => EmbeddedSurfaceTransport | null;
8
+ declare const subscribeEmbeddedSurfaceTransportChanges: (callback: () => void) => (() => void);
9
+ //#endregion
10
+ export { EmbeddedSurfaceTransport, getEmbeddedSurfaceTransport, setEmbeddedSurfaceTransport, subscribeEmbeddedSurfaceTransportChanges };
11
+ //# sourceMappingURL=embeddedSurfaceRegistry.d.mts.map
@@ -0,0 +1,19 @@
1
+ //#region lib/embeddedSurfaceRegistry.ts
2
+ let transport = null;
3
+ const transportChangeSubscribers = /* @__PURE__ */ new Set();
4
+ const setEmbeddedSurfaceTransport = (nextTransport) => {
5
+ if (transport === nextTransport) return;
6
+ transport = nextTransport;
7
+ transportChangeSubscribers.forEach((subscriber) => subscriber());
8
+ };
9
+ const getEmbeddedSurfaceTransport = () => transport;
10
+ const subscribeEmbeddedSurfaceTransportChanges = (callback) => {
11
+ transportChangeSubscribers.add(callback);
12
+ return () => {
13
+ transportChangeSubscribers.delete(callback);
14
+ };
15
+ };
16
+ //#endregion
17
+ export { getEmbeddedSurfaceTransport, setEmbeddedSurfaceTransport, subscribeEmbeddedSurfaceTransportChanges };
18
+
19
+ //# sourceMappingURL=embeddedSurfaceRegistry.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddedSurfaceRegistry.mjs","names":[],"sources":["../../lib/embeddedSurfaceRegistry.ts"],"sourcesContent":["export interface EmbeddedSurfaceTransport {\n send(message: unknown): void;\n subscribe(callback: (message: unknown) => void): () => void;\n}\n\nlet transport: EmbeddedSurfaceTransport | null = null;\nconst transportChangeSubscribers = new Set<() => void>();\n\nexport const setEmbeddedSurfaceTransport = (\n nextTransport: EmbeddedSurfaceTransport | null,\n): void => {\n if (transport === nextTransport) {\n return;\n }\n transport = nextTransport;\n transportChangeSubscribers.forEach((subscriber) => subscriber());\n};\n\nexport const getEmbeddedSurfaceTransport = (): EmbeddedSurfaceTransport | null => transport;\n\nexport const subscribeEmbeddedSurfaceTransportChanges = (callback: () => void): (() => void) => {\n transportChangeSubscribers.add(callback);\n return () => {\n transportChangeSubscribers.delete(callback);\n };\n};\n"],"mappings":";AAKA,IAAI,YAA6C;AACjD,MAAM,6CAA6B,IAAI,KAAiB;AAExD,MAAa,+BACX,kBACS;AACT,KAAI,cAAc,cAChB;AAEF,aAAY;AACZ,4BAA2B,SAAS,eAAe,YAAY,CAAC;;AAGlE,MAAa,oCAAqE;AAElF,MAAa,4CAA4C,aAAuC;AAC9F,4BAA2B,IAAI,SAAS;AACxC,cAAa;AACX,6BAA2B,OAAO,SAAS"}
@@ -0,0 +1,6 @@
1
+ //#region lib/useEmbeddedSurface.d.ts
2
+ /** Mount-scoped because React Aria mounts overlay content only while it is open. */
3
+ declare function useEmbeddedSurface(): void;
4
+ //#endregion
5
+ export { useEmbeddedSurface as default };
6
+ //# sourceMappingURL=useEmbeddedSurface.d.mts.map
@@ -0,0 +1,135 @@
1
+ import { EMBEDDED_SURFACE_CHANNEL, coerceChildboundEnvelope } from "./embeddedSurfaceProtocol.mjs";
2
+ import { getEmbeddedSurfaceTransport, subscribeEmbeddedSurfaceTransportChanges } from "./embeddedSurfaceRegistry.mjs";
3
+ import { useEffect, useRef, useState } from "react";
4
+ //#region lib/useEmbeddedSurface.ts
5
+ const SURFACE_REANNOUNCE_INTERVAL_MS = 2e3;
6
+ const HELLO_ROTATION_THRESHOLD = 2;
7
+ let fallbackId = 0;
8
+ const sessions = /* @__PURE__ */ new WeakMap();
9
+ const mintId = (prefix) => {
10
+ const randomUUID = typeof crypto !== "undefined" && typeof crypto.randomUUID === "function" ? crypto.randomUUID() : void 0;
11
+ if (randomUUID) return `${prefix}-${randomUUID}`;
12
+ fallbackId += 1;
13
+ return `${prefix}-${fallbackId.toString(36)}`;
14
+ };
15
+ const getSession = (transport) => {
16
+ const current = sessions.get(transport);
17
+ if (current) return current;
18
+ const session = {
19
+ connectionId: mintId("connection"),
20
+ surfaces: /* @__PURE__ */ new Set(),
21
+ unansweredHellos: 0
22
+ };
23
+ sessions.set(transport, session);
24
+ return session;
25
+ };
26
+ const send = (transport, session, kind, payload) => {
27
+ transport.send({
28
+ channel: EMBEDDED_SURFACE_CHANNEL,
29
+ version: 1,
30
+ connectionId: session.connectionId,
31
+ kind,
32
+ payload
33
+ });
34
+ };
35
+ const sendSnapshot = (transport, session) => {
36
+ if (session.epoch == null) return;
37
+ send(transport, session, "surfaceSnapshot", {
38
+ epoch: session.epoch,
39
+ surfaces: Array.from(session.surfaces, (surfaceId) => ({ surfaceId }))
40
+ });
41
+ };
42
+ const rotateConnection = (session) => {
43
+ session.connectionId = mintId("connection");
44
+ session.epoch = void 0;
45
+ session.unansweredHellos = 0;
46
+ };
47
+ const startSurfaceLease = (transport, session) => {
48
+ if (session.leaseTimer != null) return;
49
+ session.leaseTimer = window.setInterval(() => {
50
+ session.unansweredHellos += 1;
51
+ if (session.unansweredHellos >= HELLO_ROTATION_THRESHOLD) rotateConnection(session);
52
+ send(transport, session, "hello", {});
53
+ sendSnapshot(transport, session);
54
+ }, SURFACE_REANNOUNCE_INTERVAL_MS);
55
+ };
56
+ const stopSurfaceLease = (session) => {
57
+ if (session.leaseTimer == null) return;
58
+ window.clearInterval(session.leaseTimer);
59
+ session.leaseTimer = void 0;
60
+ };
61
+ const activateSession = (transport, session) => {
62
+ if (session.unsubscribe != null) return;
63
+ session.epoch = void 0;
64
+ session.unansweredHellos = 0;
65
+ session.unsubscribe = transport.subscribe((message) => {
66
+ const childbound = coerceChildboundEnvelope(message);
67
+ if (!childbound || childbound.connectionId !== session.connectionId) return;
68
+ session.unansweredHellos = 0;
69
+ session.epoch = childbound.payload.epoch;
70
+ sendSnapshot(transport, session);
71
+ });
72
+ send(transport, session, "hello", {});
73
+ };
74
+ const deactivateSession = (session) => {
75
+ session.unsubscribe?.();
76
+ session.unsubscribe = void 0;
77
+ stopSurfaceLease(session);
78
+ session.epoch = void 0;
79
+ session.unansweredHellos = 0;
80
+ };
81
+ /** Mount-scoped because React Aria mounts overlay content only while it is open. */
82
+ function useEmbeddedSurface() {
83
+ const [transport, setTransport] = useState(getEmbeddedSurfaceTransport);
84
+ const surfaceIdRef = useRef(void 0);
85
+ useEffect(() => {
86
+ const unsubscribe = subscribeEmbeddedSurfaceTransportChanges(() => {
87
+ setTransport(getEmbeddedSurfaceTransport());
88
+ });
89
+ setTransport(getEmbeddedSurfaceTransport());
90
+ return unsubscribe;
91
+ }, []);
92
+ useEffect(() => {
93
+ if (!transport) return;
94
+ const surfaceId = surfaceIdRef.current ??= mintId("surface");
95
+ const session = getSession(transport);
96
+ activateSession(transport, session);
97
+ session.surfaces.add(surfaceId);
98
+ if (session.surfaces.size === 1) startSurfaceLease(transport, session);
99
+ if (session.epoch != null) sendSnapshot(transport, session);
100
+ return () => {
101
+ session.surfaces.delete(surfaceId);
102
+ if (session.surfaces.size === 0) {
103
+ if (session.epoch != null) sendSnapshot(transport, session);
104
+ deactivateSession(session);
105
+ } else sendSnapshot(transport, session);
106
+ };
107
+ }, [transport]);
108
+ useEffect(() => {
109
+ if (!transport) return;
110
+ let active = true;
111
+ let pendingAnimationFrame = null;
112
+ const handleFocusOut = (event) => {
113
+ if (event.relatedTarget != null) return;
114
+ event.stopImmediatePropagation();
115
+ if (!(event.target instanceof HTMLElement)) return;
116
+ const target = event.target;
117
+ if (pendingAnimationFrame != null) cancelAnimationFrame(pendingAnimationFrame);
118
+ pendingAnimationFrame = requestAnimationFrame(() => {
119
+ pendingAnimationFrame = null;
120
+ if (!active || !target.isConnected) return;
121
+ if (document.hasFocus() && (document.activeElement == null || document.activeElement === document.body)) target.focus();
122
+ });
123
+ };
124
+ document.addEventListener("focusout", handleFocusOut, true);
125
+ return () => {
126
+ active = false;
127
+ if (pendingAnimationFrame != null) cancelAnimationFrame(pendingAnimationFrame);
128
+ document.removeEventListener("focusout", handleFocusOut, true);
129
+ };
130
+ }, [transport]);
131
+ }
132
+ //#endregion
133
+ export { useEmbeddedSurface as default };
134
+
135
+ //# sourceMappingURL=useEmbeddedSurface.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEmbeddedSurface.mjs","names":[],"sources":["../../lib/useEmbeddedSurface.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport {\n EMBEDDED_SURFACE_PROTOCOL_VERSION,\n EMBEDDED_SURFACE_CHANNEL,\n coerceChildboundEnvelope,\n} from 'design-system/lib/embeddedSurfaceProtocol';\nimport {\n getEmbeddedSurfaceTransport,\n subscribeEmbeddedSurfaceTransportChanges,\n type EmbeddedSurfaceTransport,\n} from 'design-system/lib/embeddedSurfaceRegistry';\n\nconst SURFACE_REANNOUNCE_INTERVAL_MS = 2000;\nconst HELLO_ROTATION_THRESHOLD = 2;\n\nlet fallbackId = 0;\ntype SurfaceSession = {\n connectionId: string;\n surfaces: Set<string>;\n leaseTimer?: number;\n unsubscribe?: () => void;\n unansweredHellos: number;\n epoch?: string;\n};\nconst sessions = new WeakMap<EmbeddedSurfaceTransport, SurfaceSession>();\n\nconst mintId = (prefix: string): string => {\n const randomUUID =\n typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function'\n ? crypto.randomUUID()\n : undefined;\n if (randomUUID) {\n return `${prefix}-${randomUUID}`;\n }\n fallbackId += 1;\n return `${prefix}-${fallbackId.toString(36)}`;\n};\n\nconst getSession = (transport: EmbeddedSurfaceTransport) => {\n const current = sessions.get(transport);\n if (current) {\n return current;\n }\n const session: SurfaceSession = {\n connectionId: mintId('connection'),\n surfaces: new Set<string>(),\n unansweredHellos: 0,\n };\n sessions.set(transport, session);\n return session;\n};\n\nconst send = (\n transport: EmbeddedSurfaceTransport,\n session: SurfaceSession,\n kind: 'hello' | 'surfaceSnapshot',\n payload: Record<string, never> | { epoch: string; surfaces: Array<{ surfaceId: string }> },\n) => {\n transport.send({\n channel: EMBEDDED_SURFACE_CHANNEL,\n version: EMBEDDED_SURFACE_PROTOCOL_VERSION,\n connectionId: session.connectionId,\n kind,\n payload,\n });\n};\n\nconst sendSnapshot = (transport: EmbeddedSurfaceTransport, session: SurfaceSession) => {\n if (session.epoch == null) {\n return;\n }\n send(transport, session, 'surfaceSnapshot', {\n epoch: session.epoch,\n surfaces: Array.from(session.surfaces, (surfaceId) => ({ surfaceId })),\n });\n};\n\nconst rotateConnection = (session: SurfaceSession) => {\n // The host may have retired this connectionId in its LRU, so hellos stay dropped\n // until a fresh connectionId is minted.\n session.connectionId = mintId('connection');\n session.epoch = undefined;\n session.unansweredHellos = 0;\n};\n\nconst startSurfaceLease = (transport: EmbeddedSurfaceTransport, session: SurfaceSession) => {\n if (session.leaseTimer != null) {\n return;\n }\n // Re-announces active surfaces to renew the host's lease. If the child stops\n // running, announcements cease and the host releases shell effects after timeout.\n session.leaseTimer = window.setInterval(() => {\n session.unansweredHellos += 1;\n if (session.unansweredHellos >= HELLO_ROTATION_THRESHOLD) {\n rotateConnection(session);\n }\n send(transport, session, 'hello', {});\n sendSnapshot(transport, session);\n }, SURFACE_REANNOUNCE_INTERVAL_MS);\n};\n\nconst stopSurfaceLease = (session: SurfaceSession) => {\n if (session.leaseTimer == null) {\n return;\n }\n window.clearInterval(session.leaseTimer);\n session.leaseTimer = undefined;\n};\n\nconst activateSession = (transport: EmbeddedSurfaceTransport, session: SurfaceSession) => {\n if (session.unsubscribe != null) {\n return;\n }\n session.epoch = undefined;\n session.unansweredHellos = 0;\n session.unsubscribe = transport.subscribe((message) => {\n const childbound = coerceChildboundEnvelope(message);\n if (!childbound || childbound.connectionId !== session.connectionId) {\n return;\n }\n session.unansweredHellos = 0;\n session.epoch = childbound.payload.epoch;\n sendSnapshot(transport, session);\n });\n send(transport, session, 'hello', {});\n};\n\nconst deactivateSession = (session: SurfaceSession) => {\n session.unsubscribe?.();\n session.unsubscribe = undefined;\n stopSurfaceLease(session);\n session.epoch = undefined;\n session.unansweredHellos = 0;\n};\n\n/** Mount-scoped because React Aria mounts overlay content only while it is open. */\nexport default function useEmbeddedSurface(): void {\n const [transport, setTransport] = useState<EmbeddedSurfaceTransport | null>(\n getEmbeddedSurfaceTransport,\n );\n const surfaceIdRef = useRef<string | undefined>(undefined);\n\n useEffect(() => {\n const unsubscribe = subscribeEmbeddedSurfaceTransportChanges(() => {\n setTransport(getEmbeddedSurfaceTransport());\n });\n // A transport can register between render and this effect, and the registry only\n // notifies on change, so reconcile once the subscription is installed.\n setTransport(getEmbeddedSurfaceTransport());\n return unsubscribe;\n }, []);\n\n useEffect(() => {\n if (!transport) {\n return;\n }\n const surfaceId = (surfaceIdRef.current ??= mintId('surface'));\n const session = getSession(transport);\n activateSession(transport, session);\n session.surfaces.add(surfaceId);\n const wasEmpty = session.surfaces.size === 1;\n if (wasEmpty) {\n startSurfaceLease(transport, session);\n }\n if (session.epoch != null) {\n sendSnapshot(transport, session);\n }\n\n return () => {\n session.surfaces.delete(surfaceId);\n if (session.surfaces.size === 0) {\n if (session.epoch != null) {\n sendSnapshot(transport, session);\n }\n deactivateSession(session);\n } else {\n sendSnapshot(transport, session);\n }\n };\n }, [transport]);\n\n useEffect(() => {\n if (!transport) {\n return;\n }\n let active = true;\n let pendingAnimationFrame: number | null = null;\n const handleFocusOut = (event: FocusEvent) => {\n if (event.relatedTarget != null) {\n return;\n }\n event.stopImmediatePropagation();\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n const target = event.target;\n if (pendingAnimationFrame != null) {\n cancelAnimationFrame(pendingAnimationFrame);\n }\n pendingAnimationFrame = requestAnimationFrame(() => {\n pendingAnimationFrame = null;\n if (!active || !target.isConnected) {\n return;\n }\n if (\n document.hasFocus() &&\n (document.activeElement == null || document.activeElement === document.body)\n ) {\n target.focus();\n }\n });\n };\n document.addEventListener('focusout', handleFocusOut, true);\n return () => {\n active = false;\n if (pendingAnimationFrame != null) {\n cancelAnimationFrame(pendingAnimationFrame);\n }\n document.removeEventListener('focusout', handleFocusOut, true);\n };\n }, [transport]);\n}\n"],"mappings":"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"}
@@ -11,6 +11,8 @@ declare const Z_INDICES: {
11
11
  readonly banner: 2000;
12
12
  readonly sideNav: 3000;
13
13
  readonly topNavTooltip: 3001;
14
+ readonly embeddedSurfaceBackdrop: 9998;
15
+ readonly embeddedSurface: 9999;
14
16
  readonly modal: 10000;
15
17
  readonly modalElevated: 10001;
16
18
  readonly modalDropdown: 10010;
@@ -11,6 +11,8 @@ const Z_INDICES = {
11
11
  banner: 2e3,
12
12
  sideNav: 3e3,
13
13
  topNavTooltip: 3001,
14
+ embeddedSurfaceBackdrop: 9998,
15
+ embeddedSurface: 9999,
14
16
  modal: 1e4,
15
17
  modalElevated: 10001,
16
18
  modalDropdown: 10010,
@@ -1 +1 @@
1
- {"version":3,"file":"zindex.mjs","names":[],"sources":["../../lib/zindex.ts"],"sourcesContent":["/*\n * Prefer adding these values together instead of adding new ones if possible.\n */\nexport const Z_INDICES = {\n withShadow: 1,\n\n sticky: 2,\n\n loadingOverlays: 5,\n\n tooltip: 10,\n\n floatingBar: 100,\n\n /*\n * The main levels we have in dashboard\n */\n topNav: 1000,\n dropdown: 1001,\n layeredDropdown: 1002,\n banner: 2000,\n sideNav: 3000,\n topNavTooltip: 3001,\n modal: 10000,\n /*\n * For elements that should expand out of modals, but NOT cover things like dropdowns\n */\n modalElevated: 10001,\n modalDropdown: 10010,\n modalDropdownTooltip: 10020,\n personaAssistant: 10011,\n /*\n * Full-app blocking modal overlays that must sit above in-app floating panels and\n * their portaled UI (e.g. flow editor rule panels at Z_INDICES.modal).\n */\n modalBlocking: 10030,\n toast: 100000,\n} as const;\n\nexport type ZIndex = (typeof Z_INDICES)[keyof typeof Z_INDICES];\n"],"mappings":";AAGA,MAAa,YAAY;CACvB,YAAY;CAEZ,QAAQ;CAER,iBAAiB;CAEjB,SAAS;CAET,aAAa;CAKb,QAAQ;CACR,UAAU;CACV,iBAAiB;CACjB,QAAQ;CACR,SAAS;CACT,eAAe;CACf,OAAO;CAIP,eAAe;CACf,eAAe;CACf,sBAAsB;CACtB,kBAAkB;CAKlB,eAAe;CACf,OAAO;CACR"}
1
+ {"version":3,"file":"zindex.mjs","names":[],"sources":["../../lib/zindex.ts"],"sourcesContent":["/*\n * Prefer adding these values together instead of adding new ones if possible.\n */\nexport const Z_INDICES = {\n withShadow: 1,\n\n sticky: 2,\n\n loadingOverlays: 5,\n\n tooltip: 10,\n\n floatingBar: 100,\n\n /*\n * The main levels we have in dashboard\n */\n topNav: 1000,\n dropdown: 1001,\n layeredDropdown: 1002,\n banner: 2000,\n sideNav: 3000,\n topNavTooltip: 3001,\n embeddedSurfaceBackdrop: 9998,\n embeddedSurface: 9999,\n modal: 10000,\n /*\n * For elements that should expand out of modals, but NOT cover things like dropdowns\n */\n modalElevated: 10001,\n modalDropdown: 10010,\n modalDropdownTooltip: 10020,\n personaAssistant: 10011,\n /*\n * Full-app blocking modal overlays that must sit above in-app floating panels and\n * their portaled UI (e.g. flow editor rule panels at Z_INDICES.modal).\n */\n modalBlocking: 10030,\n toast: 100000,\n} as const;\n\nexport type ZIndex = (typeof Z_INDICES)[keyof typeof Z_INDICES];\n"],"mappings":";AAGA,MAAa,YAAY;CACvB,YAAY;CAEZ,QAAQ;CAER,iBAAiB;CAEjB,SAAS;CAET,aAAa;CAKb,QAAQ;CACR,UAAU;CACV,iBAAiB;CACjB,QAAQ;CACR,SAAS;CACT,eAAe;CACf,yBAAyB;CACzB,iBAAiB;CACjB,OAAO;CAIP,eAAe;CACf,eAAe;CACf,sBAAsB;CACtB,kBAAkB;CAKlB,eAAe;CACf,OAAO;CACR"}
@@ -1,7 +1,7 @@
1
- import "../variables/transitions.mjs";
2
1
  import { isDisabled, isHovered, isNotDisabled } from "../lib/pseudoClass.mjs";
3
2
  import { focusOutlineControlled } from "./focus.mjs";
4
3
  import "../variables/effect.mjs";
4
+ import "../variables/transitions.mjs";
5
5
  import { css } from "styled-components";
6
6
  //#region mixins/hoverable.ts
7
7
  const hoverMixin = css`
@@ -1,6 +1,6 @@
1
- import "../variables/transitions.mjs";
2
1
  import { isDisabled, isHovered, isNotDisabled } from "../lib/pseudoClass.mjs";
3
2
  import { focusOutlineControlled } from "./focus.mjs";
3
+ import "../variables/transitions.mjs";
4
4
  import { printMixins } from "./print/index.mjs";
5
5
  import { Color, Spacing, Typography } from "@persona/design-tokens";
6
6
  import { css } from "styled-components";
@@ -1,8 +1,8 @@
1
1
  import { n as Stack, t as HStack } from "../../Stack-ckRN7LrP.mjs";
2
- import { t as LoadingShimmer } from "../../LoadingShimmer-Dsc_RCCf.mjs";
3
- import { t as Card_default } from "../../CardV2-_GfXFd3d.mjs";
4
- import { n as PageHeaderContainer } from "../../PageHeader-BI2gxol5.mjs";
5
- import { h as Table, m as TableHeaderCell, n as TableBody, p as TableRow, r as TableHead, s as TableCell } from "../../Table-BnYZVCLj.mjs";
2
+ import { t as LoadingShimmer } from "../../LoadingShimmer-BPYPtFE1.mjs";
3
+ import { t as Card_default } from "../../CardV2-m9yOInMU.mjs";
4
+ import { h as Table, m as TableHeaderCell, n as TableBody, p as TableRow, r as TableHead, s as TableCell } from "../../Table-C-mx8Uj0.mjs";
5
+ import { n as PageHeaderContainer } from "../../PageHeader-Dq-J3san.mjs";
6
6
  import { Color, Spacing } from "@persona/design-tokens";
7
7
  import styled from "styled-components";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { p as FooterAction } from "./ComboboxBase-B8evOZpf.mjs";
1
+ import { p as FooterAction } from "./ComboboxBase-Dmzn8a53.mjs";
2
2
  import { KeyboardEvent } from "react";
3
3
 
4
4
  //#region components/Combobox/useComboboxFooterAction.d.ts
@@ -1,4 +1,4 @@
1
- import { n as useFormGroup } from "./useFormGroup-DWVW7A9f.mjs";
1
+ import { n as useFormGroup } from "./useFormGroup-BMukAMAd.mjs";
2
2
  import { createContext, useContext } from "react";
3
3
  //#region components/FormControl/useFormField.ts
4
4
  const FormControlContext = createContext({});
@@ -22,4 +22,4 @@ const useFormField = (props) => {
22
22
  //#endregion
23
23
  export { useFormField as n, FormControlContext as t };
24
24
 
25
- //# sourceMappingURL=useFormField-DhYd6bNn.mjs.map
25
+ //# sourceMappingURL=useFormField-eftOPiXj.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormField-DhYd6bNn.mjs","names":[],"sources":["../components/FormControl/useFormField.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\nexport interface FormControlContextProps extends ErrorProps {\n inputId?: string;\n helperTextId?: string;\n errorTextId?: string;\n warningTextId?: string;\n labelId?: string;\n disabled?: boolean;\n maxLength?: number;\n configField?: boolean;\n}\n\nexport const FormControlContext = createContext<FormControlContextProps>({});\n\nconst useFormField = (props: Partial<FormControlContextProps>) => {\n const group = useFormGroup();\n const field = useContext(FormControlContext);\n\n const inputId = props.inputId ?? field.inputId;\n\n return {\n configField: props.configField ?? group.configField,\n hasError: props.hasError ?? field.hasError,\n hasWarning: props.hasWarning ?? field.hasWarning,\n inputId,\n helperTextId: props.helperTextId ?? field.helperTextId,\n errorTextId: props.errorTextId ?? field.errorTextId,\n warningTextId: props.warningTextId ?? field.warningTextId,\n labelId: props.labelId ?? field.labelId,\n disabled: props.disabled ?? field.disabled,\n maxLength: props.maxLength ?? field.maxLength,\n };\n};\n\nexport default useFormField;\n"],"mappings":";;;AAgBA,MAAa,qBAAqB,cAAuC,EAAE,CAAC;AAE5E,MAAM,gBAAgB,UAA4C;CAChE,MAAM,QAAQ,cAAc;CAC5B,MAAM,QAAQ,WAAW,mBAAmB;CAE5C,MAAM,UAAU,MAAM,WAAW,MAAM;AAEvC,QAAO;EACL,aAAa,MAAM,eAAe,MAAM;EACxC,UAAU,MAAM,YAAY,MAAM;EAClC,YAAY,MAAM,cAAc,MAAM;EACtC;EACA,cAAc,MAAM,gBAAgB,MAAM;EAC1C,aAAa,MAAM,eAAe,MAAM;EACxC,eAAe,MAAM,iBAAiB,MAAM;EAC5C,SAAS,MAAM,WAAW,MAAM;EAChC,UAAU,MAAM,YAAY,MAAM;EAClC,WAAW,MAAM,aAAa,MAAM;EACrC"}
1
+ {"version":3,"file":"useFormField-eftOPiXj.mjs","names":[],"sources":["../components/FormControl/useFormField.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\nexport interface FormControlContextProps extends ErrorProps {\n inputId?: string;\n helperTextId?: string;\n errorTextId?: string;\n warningTextId?: string;\n labelId?: string;\n disabled?: boolean;\n maxLength?: number;\n configField?: boolean;\n}\n\nexport const FormControlContext = createContext<FormControlContextProps>({});\n\nconst useFormField = (props: Partial<FormControlContextProps>) => {\n const group = useFormGroup();\n const field = useContext(FormControlContext);\n\n const inputId = props.inputId ?? field.inputId;\n\n return {\n configField: props.configField ?? group.configField,\n hasError: props.hasError ?? field.hasError,\n hasWarning: props.hasWarning ?? field.hasWarning,\n inputId,\n helperTextId: props.helperTextId ?? field.helperTextId,\n errorTextId: props.errorTextId ?? field.errorTextId,\n warningTextId: props.warningTextId ?? field.warningTextId,\n labelId: props.labelId ?? field.labelId,\n disabled: props.disabled ?? field.disabled,\n maxLength: props.maxLength ?? field.maxLength,\n };\n};\n\nexport default useFormField;\n"],"mappings":";;;AAgBA,MAAa,qBAAqB,cAAuC,EAAE,CAAC;AAE5E,MAAM,gBAAgB,UAA4C;CAChE,MAAM,QAAQ,cAAc;CAC5B,MAAM,QAAQ,WAAW,mBAAmB;CAE5C,MAAM,UAAU,MAAM,WAAW,MAAM;AAEvC,QAAO;EACL,aAAa,MAAM,eAAe,MAAM;EACxC,UAAU,MAAM,YAAY,MAAM;EAClC,YAAY,MAAM,cAAc,MAAM;EACtC;EACA,cAAc,MAAM,gBAAgB,MAAM;EAC1C,aAAa,MAAM,eAAe,MAAM;EACxC,eAAe,MAAM,iBAAiB,MAAM;EAC5C,SAAS,MAAM,WAAW,MAAM;EAChC,UAAU,MAAM,YAAY,MAAM;EAClC,WAAW,MAAM,aAAa,MAAM;EACrC"}
@@ -11,4 +11,4 @@ const useFormGroup = (props) => {
11
11
  //#endregion
12
12
  export { useFormGroup as n, FormGroupContext as t };
13
13
 
14
- //# sourceMappingURL=useFormGroup-DWVW7A9f.mjs.map
14
+ //# sourceMappingURL=useFormGroup-BMukAMAd.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormGroup-DWVW7A9f.mjs","names":[],"sources":["../components/ConfigFormGroup/useFormGroup.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface FormGroupContextProps {\n configField?: boolean;\n /**\n * The z-index to use when labels are rendered as tooltips (e.g. when configField is true).\n */\n labelTooltipZIndex?: number;\n}\n\nexport const FormGroupContext = createContext<FormGroupContextProps>({});\n\nconst useFormGroup = (props?: Partial<FormGroupContextProps>) => {\n const field = useContext(FormGroupContext);\n\n return {\n configField: props?.configField ?? field.configField,\n labelTooltipZIndex: props?.labelTooltipZIndex ?? field.labelTooltipZIndex,\n };\n};\n\nexport default useFormGroup;\n"],"mappings":";;AAUA,MAAa,mBAAmB,cAAqC,EAAE,CAAC;AAExE,MAAM,gBAAgB,UAA2C;CAC/D,MAAM,QAAQ,WAAW,iBAAiB;AAE1C,QAAO;EACL,aAAa,OAAO,eAAe,MAAM;EACzC,oBAAoB,OAAO,sBAAsB,MAAM;EACxD"}
1
+ {"version":3,"file":"useFormGroup-BMukAMAd.mjs","names":[],"sources":["../components/ConfigFormGroup/useFormGroup.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface FormGroupContextProps {\n configField?: boolean;\n /**\n * The z-index to use when labels are rendered as tooltips (e.g. when configField is true).\n */\n labelTooltipZIndex?: number;\n}\n\nexport const FormGroupContext = createContext<FormGroupContextProps>({});\n\nconst useFormGroup = (props?: Partial<FormGroupContextProps>) => {\n const field = useContext(FormGroupContext);\n\n return {\n configField: props?.configField ?? field.configField,\n labelTooltipZIndex: props?.labelTooltipZIndex ?? field.labelTooltipZIndex,\n };\n};\n\nexport default useFormGroup;\n"],"mappings":";;AAUA,MAAa,mBAAmB,cAAqC,EAAE,CAAC;AAExE,MAAM,gBAAgB,UAA2C;CAC/D,MAAM,QAAQ,WAAW,iBAAiB;AAE1C,QAAO;EACL,aAAa,OAAO,eAAe,MAAM;EACzC,oBAAoB,OAAO,sBAAsB,MAAM;EACxD"}
@@ -1,4 +1,4 @@
1
- import { i as ComboboxOption } from "./ComboboxBase-B8evOZpf.mjs";
1
+ import { i as ComboboxOption } from "./ComboboxBase-Dmzn8a53.mjs";
2
2
  import { MutableRefObject, RefObject } from "react";
3
3
 
4
4
  //#region components/Combobox/useTruncation.d.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@persona/design-system",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "React components for Persona UI",
5
5
  "keywords": [
6
6
  "tanstack-intent"
@@ -76,6 +76,8 @@
76
76
  "./lib/ConfigContext": "./dist/lib/ConfigContext.mjs",
77
77
  "./lib/copyTextToClipboard": "./dist/lib/copyTextToClipboard.mjs",
78
78
  "./lib/datePickerHelper": "./dist/lib/datePickerHelper.mjs",
79
+ "./lib/embeddedSurfaceProtocol": "./dist/lib/embeddedSurfaceProtocol.mjs",
80
+ "./lib/embeddedSurfaceRegistry": "./dist/lib/embeddedSurfaceRegistry.mjs",
79
81
  "./lib/GlobalStyles": "./dist/lib/GlobalStyles.mjs",
80
82
  "./lib/HeadlessAriaButton": "./dist/lib/HeadlessAriaButton.mjs",
81
83
  "./lib/message": "./dist/lib/message.mjs",
@@ -87,6 +89,7 @@
87
89
  "./lib/TruncatedText": "./dist/lib/TruncatedText.mjs",
88
90
  "./lib/TruncatedTextWithTooltip": "./dist/lib/TruncatedTextWithTooltip.mjs",
89
91
  "./lib/useControlled": "./dist/lib/useControlled.mjs",
92
+ "./lib/useEmbeddedSurface": "./dist/lib/useEmbeddedSurface.mjs",
90
93
  "./lib/useIsOverflow": "./dist/lib/useIsOverflow.mjs",
91
94
  "./lib/useOutsideClick": "./dist/lib/useOutsideClick.mjs",
92
95
  "./lib/useScrollOverflow": "./dist/lib/useScrollOverflow.mjs",
@@ -255,6 +258,8 @@
255
258
  "./lib/ConfigContext": "./dist/lib/ConfigContext.mjs",
256
259
  "./lib/copyTextToClipboard": "./dist/lib/copyTextToClipboard.mjs",
257
260
  "./lib/datePickerHelper": "./dist/lib/datePickerHelper.mjs",
261
+ "./lib/embeddedSurfaceProtocol": "./dist/lib/embeddedSurfaceProtocol.mjs",
262
+ "./lib/embeddedSurfaceRegistry": "./dist/lib/embeddedSurfaceRegistry.mjs",
258
263
  "./lib/GlobalStyles": "./dist/lib/GlobalStyles.mjs",
259
264
  "./lib/HeadlessAriaButton": "./dist/lib/HeadlessAriaButton.mjs",
260
265
  "./lib/message": "./dist/lib/message.mjs",
@@ -266,6 +271,7 @@
266
271
  "./lib/TruncatedText": "./dist/lib/TruncatedText.mjs",
267
272
  "./lib/TruncatedTextWithTooltip": "./dist/lib/TruncatedTextWithTooltip.mjs",
268
273
  "./lib/useControlled": "./dist/lib/useControlled.mjs",
274
+ "./lib/useEmbeddedSurface": "./dist/lib/useEmbeddedSurface.mjs",
269
275
  "./lib/useIsOverflow": "./dist/lib/useIsOverflow.mjs",
270
276
  "./lib/useOutsideClick": "./dist/lib/useOutsideClick.mjs",
271
277
  "./lib/useScrollOverflow": "./dist/lib/useScrollOverflow.mjs",
@@ -3,7 +3,7 @@ name: ui-authoring
3
3
  description: Use when implementing UI, styling React components, working with design tokens, or making frontend changes, or when file paths include design-system/components/ or styled-components.
4
4
  metadata:
5
5
  library: '@persona/design-system'
6
- library_version: '0.2.0'
6
+ library_version: '0.2.1'
7
7
  ---
8
8
 
9
9
  # UI Authoring