@persona/design-system 0.8.2 → 0.9.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 (549) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/Accordion.d.mts +1 -1
  3. package/dist/AccordionItem.d.mts +1 -1
  4. package/dist/{Action-C6yvIekn.d.mts → Action-BleGvmsy.d.mts} +3 -3
  5. package/dist/Action.d.mts +1 -1
  6. package/dist/AdvancedFilterRuleRow.d.mts +2 -2
  7. package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
  8. package/dist/ArrayValueControl.d.mts +1 -1
  9. package/dist/Attribute.d.mts +4 -4
  10. package/dist/{Badge-uY8l1p1R.mjs → Badge-BYa-iqNE.mjs} +2 -2
  11. package/dist/{Badge-uY8l1p1R.mjs.map → Badge-BYa-iqNE.mjs.map} +1 -1
  12. package/dist/BooleanValueControl.d.mts +1 -1
  13. package/dist/{Breadcrumb-Tjk9FyiF.d.mts → Breadcrumb-CEHEUe8l.d.mts} +1 -1
  14. package/dist/Breadcrumb.d.mts +1 -1
  15. package/dist/{Breadcrumbs-DSCbZmAx.d.mts → Breadcrumbs-BQ-Gj6UV.d.mts} +2 -2
  16. package/dist/{Breadcrumbs-EQm5iiRA.mjs → Breadcrumbs-BmlndU4V.mjs} +8 -8
  17. package/dist/{Breadcrumbs-EQm5iiRA.mjs.map → Breadcrumbs-BmlndU4V.mjs.map} +1 -1
  18. package/dist/Breadcrumbs.d.mts +1 -1
  19. package/dist/{Button-22DkIpYp.d.mts → Button-Dx7mHjWC.d.mts} +5 -5
  20. package/dist/Button.d.mts +1 -1
  21. package/dist/{Calendar-DANGQNlH.d.mts → Calendar-BvsTQ3e1.d.mts} +1 -1
  22. package/dist/Calendar.d.mts +1 -1
  23. package/dist/CalendarBase.d.mts +1 -1
  24. package/dist/{Card-DQE1J3gk.d.mts → Card-BPY0OU7e.d.mts} +4 -4
  25. package/dist/Card.d.mts +1 -1
  26. package/dist/Card2.d.mts +1 -1
  27. package/dist/CardGrouping.d.mts +38 -0
  28. package/dist/{CardV2-Ds6e577k.mjs → CardV2-Cq4QODeE.mjs} +11 -11
  29. package/dist/{CardV2-Ds6e577k.mjs.map → CardV2-Cq4QODeE.mjs.map} +1 -1
  30. package/dist/{Checkbox-CsJlWz-r.d.mts → Checkbox-CVa8WOf2.d.mts} +1 -1
  31. package/dist/{Checkbox-BQC_SmBt.mjs → Checkbox-Cttn1t8T.mjs} +10 -6
  32. package/dist/{Checkbox-BQC_SmBt.mjs.map → Checkbox-Cttn1t8T.mjs.map} +1 -1
  33. package/dist/Checkbox.d.mts +1 -1
  34. package/dist/{CheckboxGroupField-DjKp63Dr.d.mts → CheckboxGroupField-BpHN_2QP.d.mts} +3 -3
  35. package/dist/CheckboxGroupField.d.mts +1 -1
  36. package/dist/ChoicesValueControl.d.mts +1 -1
  37. package/dist/{Combobox-D1iXiYGV.d.mts → Combobox-C4C2P8lF.d.mts} +3 -3
  38. package/dist/{Combobox-MCaDc7h6.mjs → Combobox-CsXnJKvB.mjs} +73 -29
  39. package/dist/Combobox-CsXnJKvB.mjs.map +1 -0
  40. package/dist/Combobox.d.mts +2 -2
  41. package/dist/{ComboboxBase-DXhu2YSh.d.mts → ComboboxBase-2nVpt8oj.d.mts} +7 -7
  42. package/dist/ComboboxBase.d.mts +1 -1
  43. package/dist/{ComboboxMultiSelect-BSyJc46m.d.mts → ComboboxMultiSelect-BvJ--m6z.d.mts} +2 -2
  44. package/dist/ComboboxMultiSelect.d.mts +1 -1
  45. package/dist/{ComboboxSingleSelect-Dg_6h4iB.d.mts → ComboboxSingleSelect-BWrnRA2x.d.mts} +5 -4
  46. package/dist/ComboboxSingleSelect.d.mts +1 -1
  47. package/dist/{CompactBar-CVGNq7Zu.d.mts → CompactBar-CmTT9iuT.d.mts} +3 -3
  48. package/dist/CompactBar.d.mts +1 -1
  49. package/dist/{ConfigFormGroup-CidT_cE9.mjs → ConfigFormGroup-C0orlWwb.mjs} +2 -2
  50. package/dist/{ConfigFormGroup-CidT_cE9.mjs.map → ConfigFormGroup-C0orlWwb.mjs.map} +1 -1
  51. package/dist/{ControlBar-K43YI-LU.d.mts → ControlBar-Cg36sjz3.d.mts} +2 -2
  52. package/dist/ControlBar.d.mts +1 -1
  53. package/dist/DataTable.d.mts +4 -4
  54. package/dist/{DateField-DY3xCygL.d.mts → DateField-BXUuqbnb.d.mts} +2 -2
  55. package/dist/DateField.d.mts +1 -1
  56. package/dist/{DatePicker-C56kJLiX.d.mts → DatePicker-Cmn1vViU.d.mts} +2 -2
  57. package/dist/{DatePicker-CKk6Hnj2.mjs → DatePicker-DQHVCGnP.mjs} +10 -10
  58. package/dist/{DatePicker-CKk6Hnj2.mjs.map → DatePicker-DQHVCGnP.mjs.map} +1 -1
  59. package/dist/DatePicker.d.mts +1 -1
  60. package/dist/{DateRangePicker-C96NKOon.d.mts → DateRangePicker-CKhp9Obv.d.mts} +3 -3
  61. package/dist/DateRangePicker.d.mts +1 -1
  62. package/dist/DateRangeValueControl.d.mts +2 -2
  63. package/dist/DateValueControl.d.mts +1 -1
  64. package/dist/{DropdownButton-B-cYK2oi.mjs → DropdownButton-C9wWnB5w.mjs} +3 -3
  65. package/dist/{DropdownButton-B-cYK2oi.mjs.map → DropdownButton-C9wWnB5w.mjs.map} +1 -1
  66. package/dist/DropdownButton.d.mts +2 -2
  67. package/dist/{DropdownMenu-BwPtzVWg.d.mts → DropdownMenu-BZ62b8Cv.d.mts} +3 -3
  68. package/dist/{DropdownMenu-CedsmO5h.mjs → DropdownMenu-CPE8Q56k.mjs} +2 -2
  69. package/dist/{DropdownMenu-CedsmO5h.mjs.map → DropdownMenu-CPE8Q56k.mjs.map} +1 -1
  70. package/dist/DropdownMenu.d.mts +1 -1
  71. package/dist/{ErrorProps-C-sfKFxK.d.mts → ErrorProps-oCHtJzEB.d.mts} +1 -1
  72. package/dist/ErrorProps.d.mts +1 -1
  73. package/dist/{FieldRegistry-C2eIbP1X.d.mts → FieldRegistry-DAk_3PhH.d.mts} +2 -2
  74. package/dist/FieldRegistry.d.mts +1 -1
  75. package/dist/{FilterBar-BNbMjWDC.d.mts → FilterBar-C7ch6kYM.d.mts} +4 -4
  76. package/dist/FilterBar.d.mts +1 -1
  77. package/dist/FilterPickerMenu.d.mts +2 -2
  78. package/dist/FilterPill.d.mts +1 -1
  79. package/dist/FilterPopover.d.mts +3 -1
  80. package/dist/FloatValueControl.d.mts +6 -5
  81. package/dist/{FormControl-C4CiA0H-.mjs → FormControl-CD_FdAXA.mjs} +4 -4
  82. package/dist/{FormControl-C4CiA0H-.mjs.map → FormControl-CD_FdAXA.mjs.map} +1 -1
  83. package/dist/{FormControl-DICrNHcc.d.mts → FormControl-DX4vtUp6.d.mts} +3 -3
  84. package/dist/FormControl.d.mts +1 -1
  85. package/dist/FormControlLabel.d.mts +2 -2
  86. package/dist/{FormField-D97xQCxF.d.mts → FormField-C80kGAIV.d.mts} +2 -2
  87. package/dist/{FormField-CB0yCMro.mjs → FormField-DjysBTKn.mjs} +15 -15
  88. package/dist/{FormField-CB0yCMro.mjs.map → FormField-DjysBTKn.mjs.map} +1 -1
  89. package/dist/FormField.d.mts +1 -1
  90. package/dist/{Header-Ca554S1F.d.mts → Header-C-a5fL3k.d.mts} +2 -2
  91. package/dist/Header.d.mts +1 -1
  92. package/dist/{HelperTooltip-Dk2eqeC_.d.mts → HelperTooltip-hhMFkKmn.d.mts} +2 -2
  93. package/dist/HelperTooltip.d.mts +1 -1
  94. package/dist/HighlightedText.d.mts +3 -3
  95. package/dist/{HoverCopyableField-CewUtxZl.mjs → HoverCopyableField-Cgu3W31s.mjs} +4 -4
  96. package/dist/{HoverCopyableField-CewUtxZl.mjs.map → HoverCopyableField-Cgu3W31s.mjs.map} +1 -1
  97. package/dist/{I18nContext-DXcImEuM.d.mts → I18nContext-ioYM_vqG.d.mts} +2 -2
  98. package/dist/I18nContext.d.mts +1 -1
  99. package/dist/{IconButton-H5vDZOdo.mjs → IconButton-D4awF770.mjs} +7 -7
  100. package/dist/{IconButton-H5vDZOdo.mjs.map → IconButton-D4awF770.mjs.map} +1 -1
  101. package/dist/{IconButton-Vq0MUaNj.d.mts → IconButton-DJ3L_ZqN.d.mts} +2 -2
  102. package/dist/IconButton.d.mts +1 -1
  103. package/dist/ImageTile.d.mts +1 -1
  104. package/dist/InlineCombobox.d.mts +1 -1
  105. package/dist/InlineInput.d.mts +1 -1
  106. package/dist/{Input-BRe0qyUe.d.mts → Input-D3lXfJHq.d.mts} +4 -4
  107. package/dist/{Input-CY14-YeD.mjs → Input-DD4jzJhK.mjs} +5 -5
  108. package/dist/{Input-CY14-YeD.mjs.map → Input-DD4jzJhK.mjs.map} +1 -1
  109. package/dist/Input.d.mts +1 -1
  110. package/dist/{InputProps-B2ngFfvF.d.mts → InputProps-BU9iiBBz.d.mts} +2 -2
  111. package/dist/InputProps.d.mts +1 -1
  112. package/dist/IntegerValueControl.d.mts +6 -5
  113. package/dist/{Link-BSuXrvTu.mjs → Link-DGZu4J0x.mjs} +4 -4
  114. package/dist/{Link-BSuXrvTu.mjs.map → Link-DGZu4J0x.mjs.map} +1 -1
  115. package/dist/Link.d.mts +1 -1
  116. package/dist/{ListBox-2aYWNlO_.mjs → ListBox-BhWLad_L.mjs} +12 -12
  117. package/dist/{ListBox-2aYWNlO_.mjs.map → ListBox-BhWLad_L.mjs.map} +1 -1
  118. package/dist/{ListBox-DzZY7IFz.d.mts → ListBox-CjGb0mMY.d.mts} +3 -3
  119. package/dist/ListBox.d.mts +1 -1
  120. package/dist/{ListBoxField-DT_-4_Ct.d.mts → ListBoxField-BUkPeLiB.d.mts} +4 -4
  121. package/dist/ListBoxField.d.mts +1 -1
  122. package/dist/LoadingShimmer.d.mts +2 -2
  123. package/dist/{LogicRow-l66qss7_.d.mts → LogicRow-Bt6NPLOd.d.mts} +3 -3
  124. package/dist/LogicRow.d.mts +1 -1
  125. package/dist/MaskedInput.d.mts +2 -2
  126. package/dist/MatchHighlight.d.mts +1 -1
  127. package/dist/{Menu-DQXbnpDB.d.mts → Menu-BMrsN-Jz.d.mts} +4 -4
  128. package/dist/{Menu-Dw6Rcpk6.mjs → Menu-DlN0A5Nb.mjs} +4 -4
  129. package/dist/{Menu-Dw6Rcpk6.mjs.map → Menu-DlN0A5Nb.mjs.map} +1 -1
  130. package/dist/Menu.d.mts +1 -1
  131. package/dist/{Modal-Bz5Rer1b.d.mts → Modal-BoeGuR-h.d.mts} +3 -3
  132. package/dist/{Modal-dpBu2MKp.mjs → Modal-Cs5cZpEr.mjs} +4 -4
  133. package/dist/{Modal-dpBu2MKp.mjs.map → Modal-Cs5cZpEr.mjs.map} +1 -1
  134. package/dist/Modal.d.mts +1 -1
  135. package/dist/{PageHeader-CLO8SMXV.mjs → PageHeader-CCoAJUwJ.mjs} +2 -2
  136. package/dist/{PageHeader-CLO8SMXV.mjs.map → PageHeader-CCoAJUwJ.mjs.map} +1 -1
  137. package/dist/PageHeader.d.mts +2 -2
  138. package/dist/PageLayout-BlCo4hN4.d.mts +16 -0
  139. package/dist/PageLayout-C7ZC7GBA.mjs +132 -0
  140. package/dist/PageLayout-C7ZC7GBA.mjs.map +1 -0
  141. package/dist/PageLayout.d.mts +2 -16
  142. package/dist/PageLayoutFrame--HlvI4Pp.d.mts +28 -0
  143. package/dist/PageLayoutFrame.d.mts +2 -28
  144. package/dist/{PageSelector--kFA7Xt6.d.mts → PageSelector-BmevrorJ.d.mts} +3 -3
  145. package/dist/PageSelector.d.mts +1 -1
  146. package/dist/{Pagination-CglxJr3f.d.mts → Pagination-C67fsrxl.d.mts} +2 -2
  147. package/dist/{Pagination-BEddsarh.mjs → Pagination-Du2CPW2l.mjs} +5 -5
  148. package/dist/{Pagination-BEddsarh.mjs.map → Pagination-Du2CPW2l.mjs.map} +1 -1
  149. package/dist/Pagination.d.mts +1 -1
  150. package/dist/{Pii-Ct7yDY7d.mjs → Pii-CFVWZ_Yx.mjs} +2 -2
  151. package/dist/{Pii-Ct7yDY7d.mjs.map → Pii-CFVWZ_Yx.mjs.map} +1 -1
  152. package/dist/{PillShell-CvJzkRFh.d.mts → PillShell-jr6OyAd3.d.mts} +2 -2
  153. package/dist/PillShell.d.mts +1 -1
  154. package/dist/{Popover-532iYFek.mjs → Popover-DewrGOJB.mjs} +2 -2
  155. package/dist/{Popover-532iYFek.mjs.map → Popover-DewrGOJB.mjs.map} +1 -1
  156. package/dist/{ProgressIndicator-Cleq0Tfb.d.mts → ProgressIndicator-CdhC2LVI.d.mts} +1 -1
  157. package/dist/{ProgressIndicator-STyTM0Hq.mjs → ProgressIndicator-xV5Cl2Bw.mjs} +3 -3
  158. package/dist/{ProgressIndicator-STyTM0Hq.mjs.map → ProgressIndicator-xV5Cl2Bw.mjs.map} +1 -1
  159. package/dist/ProgressIndicator.d.mts +1 -1
  160. package/dist/{PseudoClassProps-B2R2dyr3.d.mts → PseudoClassProps-CverE9Ni.d.mts} +1 -1
  161. package/dist/PseudoClassProps.d.mts +1 -1
  162. package/dist/{Radio-BtomkCkL.mjs → Radio-i7AEQZHb.mjs} +4 -4
  163. package/dist/{Radio-BtomkCkL.mjs.map → Radio-i7AEQZHb.mjs.map} +1 -1
  164. package/dist/{RadioGroup-B6UaoJRd.mjs → RadioGroup-B0KcQpS7.mjs} +2 -2
  165. package/dist/{RadioGroup-B6UaoJRd.mjs.map → RadioGroup-B0KcQpS7.mjs.map} +1 -1
  166. package/dist/{RadioGroup-B3B4PCz6.d.mts → RadioGroup-CDEfCg-b.d.mts} +1 -1
  167. package/dist/RadioGroup.d.mts +1 -1
  168. package/dist/{RangeCalendar-C24q-nvR.d.mts → RangeCalendar-BOt59kTG.d.mts} +2 -2
  169. package/dist/RangeCalendar.d.mts +1 -1
  170. package/dist/RangeCalendarPresets.d.mts +1 -1
  171. package/dist/{RouterContext-BhPPG7d3.d.mts → RouterContext-D7HBESqO.d.mts} +2 -2
  172. package/dist/RouterContext.d.mts +1 -1
  173. package/dist/{RouterLink-IDO10cDE.d.mts → RouterLink-dppNWLgP.d.mts} +2 -2
  174. package/dist/RouterLink.d.mts +1 -1
  175. package/dist/RuleEditorFields.d.mts +2 -2
  176. package/dist/RulesPill.d.mts +1 -1
  177. package/dist/{SearchInput-7pBMxhuN.d.mts → SearchInput-B7JYHJZI.d.mts} +2 -2
  178. package/dist/SearchInput.d.mts +1 -1
  179. package/dist/SectionHeading.d.mts +1 -1
  180. package/dist/{SegmentedControl-BNVwf7nL.mjs → SegmentedControl-B2_bS806.mjs} +2 -2
  181. package/dist/{SegmentedControl-BNVwf7nL.mjs.map → SegmentedControl-B2_bS806.mjs.map} +1 -1
  182. package/dist/{SegmentedControl-B9yo9yMy.d.mts → SegmentedControl-C_7mTcuL.d.mts} +1 -1
  183. package/dist/SegmentedControl.d.mts +1 -1
  184. package/dist/{Select-D7_npfZr.d.mts → Select-BpAA5ETS.d.mts} +3 -3
  185. package/dist/{Select-DD7mFvR8.mjs → Select-oVJ0uLa7.mjs} +8 -8
  186. package/dist/{Select-DD7mFvR8.mjs.map → Select-oVJ0uLa7.mjs.map} +1 -1
  187. package/dist/Select.d.mts +1 -1
  188. package/dist/SingleColumnLayout-ByWxiD7d.d.mts +16 -0
  189. package/dist/SingleColumnLayout.d.mts +2 -16
  190. package/dist/SmartTextInput.d.mts +6 -6
  191. package/dist/SmartTextInputField.d.mts +2 -2
  192. package/dist/SmartTextInputFunctionDialog.d.mts +4 -4
  193. package/dist/SmartTextInputListbox.d.mts +2 -2
  194. package/dist/SmartTextInputPopover.d.mts +2 -2
  195. package/dist/{Spinner-uVZyOh1T.mjs → Spinner-0Vqw_68r.mjs} +2 -2
  196. package/dist/{Spinner-uVZyOh1T.mjs.map → Spinner-0Vqw_68r.mjs.map} +1 -1
  197. package/dist/SplitColumnLayout-DYyJabQ3.d.mts +19 -0
  198. package/dist/SplitColumnLayout.d.mts +2 -19
  199. package/dist/{Stack-opuYfQvc.d.mts → Stack-DpWl6orU.d.mts} +2 -2
  200. package/dist/Stack.d.mts +1 -1
  201. package/dist/{StatusIndicator-akDwBiBW.mjs → StatusIndicator-QsVgjRrt.mjs} +3 -3
  202. package/dist/{StatusIndicator-akDwBiBW.mjs.map → StatusIndicator-QsVgjRrt.mjs.map} +1 -1
  203. package/dist/{Sticker-rxBNVYlX.d.mts → Sticker-C260e6kl.d.mts} +5 -5
  204. package/dist/{Sticker-DdhSpTcV.mjs → Sticker-CUqHa9Mo.mjs} +5 -5
  205. package/dist/{Sticker-DdhSpTcV.mjs.map → Sticker-CUqHa9Mo.mjs.map} +1 -1
  206. package/dist/Sticker.d.mts +1 -1
  207. package/dist/StringValueControl.d.mts +1 -1
  208. package/dist/Tab.d.mts +2 -2
  209. package/dist/{TabBar-DBOPWUUa.mjs → TabBar-w_gxXSwA.mjs} +5 -5
  210. package/dist/{TabBar-DBOPWUUa.mjs.map → TabBar-w_gxXSwA.mjs.map} +1 -1
  211. package/dist/{Table-Bt7zAlgQ.d.mts → Table-BtNYI6QX.d.mts} +1 -1
  212. package/dist/{Table--o4ZLRbb.mjs → Table-PbYGf3PG.mjs} +8 -8
  213. package/dist/{Table--o4ZLRbb.mjs.map → Table-PbYGf3PG.mjs.map} +1 -1
  214. package/dist/Table.d.mts +1 -1
  215. package/dist/{TableBody-9AYpXi2y.d.mts → TableBody-DQ7pivxP.d.mts} +1 -1
  216. package/dist/TableBody.d.mts +1 -1
  217. package/dist/{TableBox-BGabyY7E.mjs → TableBox-DMYLTIpr.mjs} +13 -13
  218. package/dist/{TableBox-BGabyY7E.mjs.map → TableBox-DMYLTIpr.mjs.map} +1 -1
  219. package/dist/TableBox.d.mts +2 -2
  220. package/dist/{TableBoxCell-6ovTrboM.d.mts → TableBoxCell-DwAOA-oO.d.mts} +7 -7
  221. package/dist/TableBoxCell.d.mts +1 -1
  222. package/dist/{TableBoxField-mGTYb-Bz.d.mts → TableBoxField-Bdj_nY7j.d.mts} +5 -5
  223. package/dist/TableBoxField.d.mts +1 -1
  224. package/dist/{TableBoxRow-56QatuNm.d.mts → TableBoxRow-5WBwyAyn.d.mts} +3 -3
  225. package/dist/TableBoxRow.d.mts +1 -1
  226. package/dist/{TableBoxRowActions-9rR-k_4H.d.mts → TableBoxRowActions-Dq_Z2ted.d.mts} +2 -2
  227. package/dist/TableBoxRowActions.d.mts +1 -1
  228. package/dist/{TableCell-WD0ultKh.d.mts → TableCell-DXBHZ52E.d.mts} +3 -3
  229. package/dist/TableCell.d.mts +1 -1
  230. package/dist/{TableControls-B5UGCoO-.mjs → TableControls-C1MF2JvY.mjs} +390 -144
  231. package/dist/TableControls-C1MF2JvY.mjs.map +1 -0
  232. package/dist/{TableControls-DVO-obFo.d.mts → TableControls-Cw7LDHWj.d.mts} +3 -3
  233. package/dist/TableControls.d.mts +1 -1
  234. package/dist/{TableControlsContext-BDl9k4o4.d.mts → TableControlsContext-DgoZhMpQ.d.mts} +2 -2
  235. package/dist/TableControlsContext.d.mts +1 -1
  236. package/dist/{TableHead-DqcFsWpz.d.mts → TableHead-BGUg_aXc.d.mts} +1 -1
  237. package/dist/TableHead.d.mts +1 -1
  238. package/dist/{TableHeaderCell-C1PJHhXZ.d.mts → TableHeaderCell-DcZcMQyR.d.mts} +1 -1
  239. package/dist/TableHeaderCell.d.mts +1 -1
  240. package/dist/{TableLayout-B4qzMWXH.d.mts → TableLayout-CwYQaZlA.d.mts} +1 -1
  241. package/dist/TableLayout.d.mts +1 -1
  242. package/dist/{TableRow-B1yeAiVf.d.mts → TableRow-Dad6_CoD.d.mts} +2 -2
  243. package/dist/TableRow.d.mts +1 -1
  244. package/dist/TableTH.d.mts +1 -1
  245. package/dist/{TableViewConfigurationDropdown-DBdUHK__.d.mts → TableViewConfigurationDropdown-BGuWAarQ.d.mts} +2 -2
  246. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  247. package/dist/{TechnicalSticker-CALVwnrT.mjs → TechnicalSticker-RQ-4_Tdr.mjs} +5 -5
  248. package/dist/{TechnicalSticker-CALVwnrT.mjs.map → TechnicalSticker-RQ-4_Tdr.mjs.map} +1 -1
  249. package/dist/{Text-D4GzsXFA.d.mts → Text-BBMau410.d.mts} +4 -4
  250. package/dist/Text.d.mts +1 -1
  251. package/dist/{TextArea-kOkhZxNR.mjs → TextArea-BaA8H7s7.mjs} +2 -2
  252. package/dist/{TextArea-kOkhZxNR.mjs.map → TextArea-BaA8H7s7.mjs.map} +1 -1
  253. package/dist/{TextArea-BL8BTgwk.d.mts → TextArea-Djd1uT3B.d.mts} +2 -2
  254. package/dist/TextArea.d.mts +1 -1
  255. package/dist/{TextUnderlineTooltip-Sdxqsr6y.d.mts → TextUnderlineTooltip-C4N0bqbh.d.mts} +3 -3
  256. package/dist/TextUnderlineTooltip.d.mts +1 -1
  257. package/dist/Tile.d.mts +1 -1
  258. package/dist/Toast.d.mts +1 -1
  259. package/dist/{Toggle-CZF6iBql.mjs → Toggle-C9cZnajR.mjs} +6 -6
  260. package/dist/{Toggle-CZF6iBql.mjs.map → Toggle-C9cZnajR.mjs.map} +1 -1
  261. package/dist/{Toggle-cUtrUIIO.d.mts → Toggle-EYpW34LO.d.mts} +1 -1
  262. package/dist/Toggle.d.mts +1 -1
  263. package/dist/{Tooltip-CSM977L6.d.mts → Tooltip-Dj-DtGKz.d.mts} +3 -3
  264. package/dist/{Tooltip-B-0VRuKT.mjs → Tooltip-DogEteGl.mjs} +2 -2
  265. package/dist/{Tooltip-B-0VRuKT.mjs.map → Tooltip-DogEteGl.mjs.map} +1 -1
  266. package/dist/Tooltip.d.mts +1 -1
  267. package/dist/{TruncatedText-CCUrvW2a.d.mts → TruncatedText-BDNFUuhG.d.mts} +2 -2
  268. package/dist/VersionHistory.d.mts +1 -1
  269. package/dist/{VersionHistoryItem-DBjL9S5_.d.mts → VersionHistoryItem-iUabmk_y.d.mts} +1 -1
  270. package/dist/VersionHistoryItem.d.mts +1 -1
  271. package/dist/WizardModal.d.mts +2 -2
  272. package/dist/{accordionTitleTypography--GAczLo7.d.mts → accordionTitleTypography-C7VVJvlx.d.mts} +2 -2
  273. package/dist/accordionTitleTypography.d.mts +1 -1
  274. package/dist/{chainTypes-dY6jc22J.d.mts → chainTypes-DT-9j_sG.d.mts} +4 -4
  275. package/dist/{codec-D2uE0_oJ.d.mts → codec-CGj8cwcj.d.mts} +2 -2
  276. package/dist/codec.d.mts +1 -1
  277. package/dist/{color-DuKiTH5t.d.mts → color-BOm5A1Si.d.mts} +2 -2
  278. package/dist/components/Accordion/index.d.mts +1 -1
  279. package/dist/components/Accordion/index.mjs +4 -4
  280. package/dist/components/Attribute/index.mjs +4 -4
  281. package/dist/components/Badge/index.mjs +1 -1
  282. package/dist/components/Banner/index.mjs +3 -3
  283. package/dist/components/BottomPanel/index.mjs +4 -4
  284. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  285. package/dist/components/Breadcrumbs/index.mjs +1 -1
  286. package/dist/components/Button/index.d.mts +2 -2
  287. package/dist/components/Button/index.mjs +1 -1
  288. package/dist/components/ButtonGroup/index.mjs +2 -2
  289. package/dist/components/Card/index.d.mts +2 -2
  290. package/dist/components/CardV2/index.d.mts +1 -1
  291. package/dist/components/CardV2/index.mjs +1 -1
  292. package/dist/components/Checkbox/index.d.mts +1 -1
  293. package/dist/components/Checkbox/index.mjs +1 -1
  294. package/dist/components/CodeHighlight/index.mjs +3 -3
  295. package/dist/components/Combobox/index.d.mts +2 -2
  296. package/dist/components/Combobox/index.mjs +1 -1
  297. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  298. package/dist/components/DataTable/TableControls/index.d.mts +20 -20
  299. package/dist/components/DataTable/TableControls/index.mjs +2 -2
  300. package/dist/components/DataTable/index.mjs +18 -18
  301. package/dist/components/DataTable/index.mjs.map +1 -1
  302. package/dist/components/DataTable/types.d.mts +2 -2
  303. package/dist/components/DatePicker/index.d.mts +5 -5
  304. package/dist/components/DatePicker/index.mjs +1 -1
  305. package/dist/components/DropdownButton/index.mjs +1 -1
  306. package/dist/components/DropdownMenu/index.d.mts +1 -1
  307. package/dist/components/DropdownMenu/index.mjs +1 -1
  308. package/dist/components/FloatingPanel/index.mjs +5 -5
  309. package/dist/components/FormControl/index.d.mts +2 -2
  310. package/dist/components/FormControl/index.mjs +2 -2
  311. package/dist/components/FormField/index.d.mts +5 -5
  312. package/dist/components/FormField/index.mjs +1 -1
  313. package/dist/components/HoverCopyableField/index.mjs +1 -1
  314. package/dist/components/ImageTile/index.mjs +6 -6
  315. package/dist/components/Input/index.d.mts +1 -1
  316. package/dist/components/Input/index.mjs +1 -1
  317. package/dist/components/Link/index.mjs +1 -1
  318. package/dist/components/ListBox/index.d.mts +3 -3
  319. package/dist/components/ListBox/index.mjs +1 -1
  320. package/dist/components/MaskedInput/index.mjs +1 -1
  321. package/dist/components/Menu/index.d.mts +1 -1
  322. package/dist/components/Menu/index.mjs +1 -1
  323. package/dist/components/Modal/index.d.mts +1 -1
  324. package/dist/components/Modal/index.mjs +1 -1
  325. package/dist/components/PageHeader/index.mjs +1 -1
  326. package/dist/components/Pagination/index.d.mts +3 -3
  327. package/dist/components/Pagination/index.mjs +1 -1
  328. package/dist/components/Pii/index.mjs +1 -1
  329. package/dist/components/Popover/index.mjs +1 -1
  330. package/dist/components/ProgressBar/index.mjs +1 -1
  331. package/dist/components/ProgressIndicator/index.d.mts +1 -1
  332. package/dist/components/ProgressIndicator/index.mjs +1 -1
  333. package/dist/components/Radio/index.mjs +1 -1
  334. package/dist/components/RadioGroup/index.d.mts +1 -1
  335. package/dist/components/RadioGroup/index.mjs +1 -1
  336. package/dist/components/RightPanel/index.mjs +2 -2
  337. package/dist/components/SegmentedControl/index.d.mts +1 -1
  338. package/dist/components/SegmentedControl/index.mjs +1 -1
  339. package/dist/components/Select/index.d.mts +1 -1
  340. package/dist/components/Select/index.mjs +1 -1
  341. package/dist/components/Slider/index.mjs +2 -2
  342. package/dist/components/SmartTextInput/index.d.mts +2 -2
  343. package/dist/components/SmartTextInput/index.mjs +9 -8
  344. package/dist/components/SmartTextInput/index.mjs.map +1 -1
  345. package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +1 -1
  346. package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +2 -2
  347. package/dist/components/Spinner/index.mjs +1 -1
  348. package/dist/components/Stack/index.d.mts +1 -1
  349. package/dist/components/StatusIndicator/index.mjs +1 -1
  350. package/dist/components/Sticker/index.d.mts +1 -1
  351. package/dist/components/Sticker/index.mjs +1 -1
  352. package/dist/components/TabBar/index.mjs +1 -1
  353. package/dist/components/Table/index.d.mts +8 -8
  354. package/dist/components/Table/index.mjs +1 -1
  355. package/dist/components/TableBox/index.d.mts +2 -2
  356. package/dist/components/TableBox/index.mjs +1 -1
  357. package/dist/components/TechnicalSticker/index.mjs +1 -1
  358. package/dist/components/Text/index.d.mts +1 -1
  359. package/dist/components/TextArea/index.d.mts +1 -1
  360. package/dist/components/TextArea/index.mjs +1 -1
  361. package/dist/components/Tile/index.mjs +2 -2
  362. package/dist/components/Toast/index.mjs +4 -4
  363. package/dist/components/Toggle/index.d.mts +1 -1
  364. package/dist/components/Toggle/index.mjs +1 -1
  365. package/dist/components/Tooltip/index.d.mts +3 -3
  366. package/dist/components/Tooltip/index.mjs +1 -1
  367. package/dist/components/VersionHistory/index.d.mts +1 -1
  368. package/dist/components/VersionHistory/index.mjs +7 -7
  369. package/dist/compound-expression.d.mts +1 -1
  370. package/dist/{constants-BiOvZGO5.d.mts → constants-CwzbyAdc.d.mts} +1 -1
  371. package/dist/constants.d.mts +1 -1
  372. package/dist/{createPath-B8EZDtSz.d.mts → createPath-C4jIHe68.d.mts} +2 -2
  373. package/dist/createPath.d.mts +1 -1
  374. package/dist/{date-range-rule-value-DObVM8xO.d.mts → date-range-rule-value-BkbGpLNH.d.mts} +2 -2
  375. package/dist/date-range-rule-value.d.mts +1 -1
  376. package/dist/{date-rule-intent-DhMMe_wq.d.mts → date-rule-intent-zdKP-tW_.d.mts} +3 -3
  377. package/dist/date-rule-intent.d.mts +1 -1
  378. package/dist/display.d.mts +2 -2
  379. package/dist/fieldPickerOptions.d.mts +2 -2
  380. package/dist/{filter-size-context-DaBdvJHf.d.mts → filter-size-context-CW1guBfI.d.mts} +2 -2
  381. package/dist/filter-size-context.d.mts +1 -1
  382. package/dist/{formatDateTime-mPH4DsDC.d.mts → formatDateTime-zyRMjfH8.d.mts} +1 -1
  383. package/dist/formatDateTime.d.mts +1 -1
  384. package/dist/helpers.d.mts +2 -2
  385. package/dist/{i18n-UiE7OC4k.mjs → i18n-CeRarJIa.mjs} +11 -2
  386. package/dist/i18n-CeRarJIa.mjs.map +1 -0
  387. package/dist/{index-Blo6W_k0.d.mts → index-B7KIL3U6.d.mts} +2 -2
  388. package/dist/{index-CeUb5INA.d.mts → index-C7hEdRqK.d.mts} +2 -2
  389. package/dist/{index-CTcM_LlP.d.mts → index-DxFh2ArY.d.mts} +3 -3
  390. package/dist/index-xAZnxq0d2.d.mts +1 -0
  391. package/dist/index.d.mts +1 -1
  392. package/dist/index2.d.mts +1 -1
  393. package/dist/index3.d.mts +3 -3
  394. package/dist/index4.d.mts +1 -1
  395. package/dist/index5.d.mts +15 -15
  396. package/dist/{input-D9rsMlzl.d.mts → input-DMPo8gRT.d.mts} +3 -3
  397. package/dist/{inputFields-CXelxYhd.d.mts → inputFields-BCNC1FWx.d.mts} +11 -11
  398. package/dist/inputFields.d.mts +1 -1
  399. package/dist/{intersperse-ObkRVOag.mjs → intersperse-B8s6clcc.mjs} +1 -1
  400. package/dist/{intersperse-ObkRVOag.mjs.map → intersperse-B8s6clcc.mjs.map} +1 -1
  401. package/dist/{jsonSchema-BMPLdT4p.d.mts → jsonSchema-6mcLrVG3.d.mts} +1 -1
  402. package/dist/lib/PDSProvider.d.mts +3 -3
  403. package/dist/lib/PDSProvider.mjs +1 -1
  404. package/dist/lib/TruncatedText.d.mts +1 -1
  405. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  406. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  407. package/dist/lib/chainTypes.d.mts +1 -1
  408. package/dist/lib/color.d.mts +1 -1
  409. package/dist/lib/customFunctionSchema.d.mts +1 -1
  410. package/dist/lib/date-filter/index.d.mts +2 -2
  411. package/dist/lib/i18n/index.d.mts +3 -3
  412. package/dist/lib/i18n/index.mjs +1 -1
  413. package/dist/lib/jsonSchema.d.mts +1 -1
  414. package/dist/lib/jsonSchemaType.d.mts +1 -1
  415. package/dist/lib/message.d.mts +1 -1
  416. package/dist/lib/methodChain.d.mts +2 -2
  417. package/dist/lib/methodChainNormalize.d.mts +2 -2
  418. package/dist/lib/methodChainTypes.d.mts +1 -1
  419. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  420. package/dist/lib/platformObject.d.mts +1 -1
  421. package/dist/lib/pseudoClass.d.mts +1 -1
  422. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  423. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  424. package/dist/lib/router/index.d.mts +5 -5
  425. package/dist/lib/schemaOptions.d.mts +1 -1
  426. package/dist/lib/semanticColor.d.mts +1 -1
  427. package/dist/lib/useChain.d.mts +1 -1
  428. package/dist/{listbox-options-BFaMbK-g.d.mts → listbox-options-yLjqZp4H.d.mts} +3 -3
  429. package/dist/listbox-options.d.mts +1 -1
  430. package/dist/{message-BOzjC5yA.d.mts → message-C5n7wFiN.d.mts} +1 -1
  431. package/dist/{methodChain-CGTIWafl.d.mts → methodChain-BNDytoaD.d.mts} +4 -4
  432. package/dist/{methodChainTypes-BtSMV5OZ.d.mts → methodChainTypes-BuwpPC73.d.mts} +2 -2
  433. package/dist/mixins/focus.d.mts +1 -1
  434. package/dist/mixins/focus.mjs +1 -1
  435. package/dist/mixins/hoverable.d.mts +2 -2
  436. package/dist/mixins/hoverable.mjs +1 -1
  437. package/dist/mixins/input.d.mts +1 -1
  438. package/dist/mixins/input.mjs +2 -2
  439. package/dist/mixins/menuItem.d.mts +2 -2
  440. package/dist/mixins/scrollbar.d.mts +1 -1
  441. package/dist/mixins/text.d.mts +1 -1
  442. package/dist/{operators-DfvW8Kmr.d.mts → operators-C34nhBuK.d.mts} +42 -12
  443. package/dist/operators.d.mts +2 -2
  444. package/dist/{palette-CBOBcVu3.d.mts → palette-BCszfY7I.d.mts} +3 -3
  445. package/dist/palette.d.mts +1 -1
  446. package/dist/patterns/CardGrouping/index.d.mts +2 -0
  447. package/dist/patterns/CardGrouping/index.mjs +280 -0
  448. package/dist/patterns/CardGrouping/index.mjs.map +1 -0
  449. package/dist/patterns/LayoutLoadingShimmer/index.mjs +3 -3
  450. package/dist/patterns/PageLayout/index.d.mts +5 -5
  451. package/dist/patterns/PageLayout/index.mjs +1 -131
  452. package/dist/patterns/WizardModal/index.mjs +3 -3
  453. package/dist/reactRouterFallback.d.mts +1 -1
  454. package/dist/relative-date-label.d.mts +1 -1
  455. package/dist/safe-parse.d.mts +1 -1
  456. package/dist/{schemaOptions-DTeNBwir.d.mts → schemaOptions-DBOUChxi.d.mts} +3 -3
  457. package/dist/{semantic-CfiNA4Yy.d.mts → semantic-Duoh2Pxp.d.mts} +1 -1
  458. package/dist/{semanticColor-BCPOKF9L.d.mts → semanticColor-BuG977_M.d.mts} +3 -3
  459. package/dist/{strings-BaQZhOjo.d.mts → strings-CUZrwL-Q.d.mts} +11 -1
  460. package/dist/strings.d.mts +1 -1
  461. package/dist/{text-ucZmPNyH.d.mts → text-B7hx6G99.d.mts} +1 -1
  462. package/dist/{theme-CAPmp1it.d.mts → theme-BKg55Zk1.d.mts} +3 -3
  463. package/dist/theme.d.mts +1 -1
  464. package/dist/tone.d.mts +3 -3
  465. package/dist/tree.d.mts +1 -1
  466. package/dist/{types-l-arEBLb.d.mts → types-4wnr5R9P.d.mts} +1 -1
  467. package/dist/{types-CBfgdnuB.d.mts → types-6QeQmbFm.d.mts} +1 -1
  468. package/dist/{types-CoTzVfFl.d.mts → types-BjMJFNYH.d.mts} +1 -1
  469. package/dist/{types-CptsgFbu.d.mts → types-CEQWndtF.d.mts} +4 -4
  470. package/dist/{types-BfrEduGv.d.mts → types-C_ZEgHNa.d.mts} +2 -2
  471. package/dist/{types-ClbV4wNp.d.mts → types-CgKSEQyB.d.mts} +1 -1
  472. package/dist/{types-B1KzKgBp.d.mts → types-CwzwClJx.d.mts} +1 -1
  473. package/dist/{types-Rj-C3LGL.d.mts → types-DEzlAdZW.d.mts} +35 -9
  474. package/dist/{types-BB5WwerD.d.mts → types-VgGkS4JB.d.mts} +2 -2
  475. package/dist/types.d.mts +1 -1
  476. package/dist/types2.d.mts +1 -1
  477. package/dist/types3.d.mts +1 -1
  478. package/dist/types4.d.mts +2 -2
  479. package/dist/types5.d.mts +1 -1
  480. package/dist/types6.d.mts +1 -1
  481. package/dist/types7.d.mts +1 -1
  482. package/dist/{url-state-CrnZ3Ocy.d.mts → url-state-B_gTQ9uu.d.mts} +2 -2
  483. package/dist/url-state.d.mts +1 -1
  484. package/dist/{useChain-DQq1UsGZ.d.mts → useChain-DPRVMwX8.d.mts} +6 -6
  485. package/dist/useChainAtCursor.d.mts +6 -6
  486. package/dist/useCodeChainFunctionPanel.d.mts +1 -1
  487. package/dist/useComboboxFooterAction.d.mts +5 -2
  488. package/dist/{useFilterStateV2-CGGABOcq.d.mts → useFilterStateV2-BQZppUR0.d.mts} +5 -4
  489. package/dist/useFilterStateV2.d.mts +1 -1
  490. package/dist/{useFormField-CbNYbDdp.mjs → useFormField-BAmkdxtA.mjs} +2 -2
  491. package/dist/{useFormField-CbNYbDdp.mjs.map → useFormField-BAmkdxtA.mjs.map} +1 -1
  492. package/dist/{useFormField-4w9TNFgD.d.mts → useFormField-DAwApAKK.d.mts} +2 -2
  493. package/dist/useFormField.d.mts +1 -1
  494. package/dist/{useFormGroup-CsKC93Pt.mjs → useFormGroup-BZayb9fZ.mjs} +1 -1
  495. package/dist/{useFormGroup-CsKC93Pt.mjs.map → useFormGroup-BZayb9fZ.mjs.map} +1 -1
  496. package/dist/{useLocationPathname-CZwH8h5n.d.mts → useLocationPathname-BHL0pgiu.d.mts} +1 -1
  497. package/dist/useLocationPathname.d.mts +1 -1
  498. package/dist/{useTableBoxDragAndDrop-Bw93rNFH.d.mts → useTableBoxDragAndDrop-Dq30b6yY.d.mts} +1 -1
  499. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  500. package/dist/useTruncation.d.mts +1 -1
  501. package/dist/{utilities-B8PzMOza.d.mts → utilities-B2ry7_20.d.mts} +1 -1
  502. package/dist/utilities.d.mts +1 -1
  503. package/dist/utils/testing.d.mts +1 -1
  504. package/dist/utils.d.mts +1 -1
  505. package/dist/utils4.d.mts +5 -5
  506. package/dist/{validation-DP8f6tgh.d.mts → validation-BODkbEvr.d.mts} +3 -3
  507. package/dist/validation.d.mts +1 -1
  508. package/dist/validation2.d.mts +4 -4
  509. package/dist/{value-control-resolver-CwjOaVAn.d.mts → value-control-resolver-BcZiReQ7.d.mts} +2 -2
  510. package/dist/value-control-resolver.d.mts +1 -1
  511. package/dist/variables/effect.d.mts +1 -1
  512. package/dist/variables/semantic.d.mts +1 -1
  513. package/llms.txt +1 -0
  514. package/package.json +5 -3
  515. package/skills/ui-authoring/COMPONENTS.md +1 -0
  516. package/skills/ui-authoring/PATTERNS.md +7 -2
  517. package/dist/Combobox-MCaDc7h6.mjs.map +0 -1
  518. package/dist/TableControls-B5UGCoO-.mjs.map +0 -1
  519. package/dist/i18n-UiE7OC4k.mjs.map +0 -1
  520. package/dist/patterns/PageLayout/index.mjs.map +0 -1
  521. /package/dist/{index-1-AkepUA.d.mts → index-7in8TPrM.d.mts} +0 -0
  522. /package/dist/{index-B-Y-ZG2x.d.mts → index-8SLBz2NH.d.mts} +0 -0
  523. /package/dist/{index-BO_854F2.d.mts → index-B24gUwOx.d.mts} +0 -0
  524. /package/dist/{index-BSVhZrWN.d.mts → index-B8M0Grl_2.d.mts} +0 -0
  525. /package/dist/{index-BYARwRq7.d.mts → index-BFnNtGdX.d.mts} +0 -0
  526. /package/dist/{index-B_BBnMou.d.mts → index-BTviwbFV.d.mts} +0 -0
  527. /package/dist/{index-BbPybiOV.d.mts → index-BjgW3E7y.d.mts} +0 -0
  528. /package/dist/{index-BcsXXrHq.d.mts → index-BwFl_eS0.d.mts} +0 -0
  529. /package/dist/{index-Bt4QNofW.d.mts → index-C3kE54DD.d.mts} +0 -0
  530. /package/dist/{index-C9achTF6.d.mts → index-C3usUse7.d.mts} +0 -0
  531. /package/dist/{index-CCt0lwyI.d.mts → index-C6HcjJiY.d.mts} +0 -0
  532. /package/dist/{index-CFuHCx9T.d.mts → index-CP2eJYlK.d.mts} +0 -0
  533. /package/dist/{index-CIABef8t.d.mts → index-CSf15oCd.d.mts} +0 -0
  534. /package/dist/{index-CTHojwxd.d.mts → index-CX869wwk.d.mts} +0 -0
  535. /package/dist/{index-CliqZ9rj.d.mts → index-CXaDbCtw.d.mts} +0 -0
  536. /package/dist/{index-Cm-1i165.d.mts → index-D4DUvwPf.d.mts} +0 -0
  537. /package/dist/{index-CryTAIZM.d.mts → index-DB7t8whN.d.mts} +0 -0
  538. /package/dist/{index-CzItj62a.d.mts → index-Deol7ZWO.d.mts} +0 -0
  539. /package/dist/{index-CzUpNo0e.d.mts → index-DhiymMxa.d.mts} +0 -0
  540. /package/dist/{index-D-giXKyu.d.mts → index-DjOaHFU3.d.mts} +0 -0
  541. /package/dist/{index-DGsJdI5l.d.mts → index-DkrC-i1D.d.mts} +0 -0
  542. /package/dist/{index-DMRtRo7y.d.mts → index-DvwPIy8X.d.mts} +0 -0
  543. /package/dist/{index-DUF59i3Q2.d.mts → index-Oio5ygqN.d.mts} +0 -0
  544. /package/dist/{index-DgJfEygr.d.mts → index-Wc1llEvP.d.mts} +0 -0
  545. /package/dist/{index-Es5nKSSL.d.mts → index-dzI_9J-Z.d.mts} +0 -0
  546. /package/dist/{index-NKYLt_R9.d.mts → index-gpCH5158.d.mts} +0 -0
  547. /package/dist/{index-Qwqzz3XM.d.mts → index-lIMqGGJz.d.mts} +0 -0
  548. /package/dist/{index-T2S0_qsg.d.mts → index-luywJTzJ.d.mts} +0 -0
  549. /package/dist/{index-kxcPLmUx2.d.mts → index-sViox9YW.d.mts} +0 -0
@@ -1,6 +1,6 @@
1
- import { f as FilterSize, p as FilterStateV2 } from "./types-Rj-C3LGL.mjs";
2
- import { t as FieldRegistry } from "./FieldRegistry-C2eIbP1X.mjs";
3
- import { n as ValueControlResolver } from "./value-control-resolver-CwjOaVAn.mjs";
1
+ import { m as FilterStateV2, p as FilterSize } from "./types-DEzlAdZW.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-DAk_3PhH.mjs";
3
+ import { n as ValueControlResolver } from "./value-control-resolver-BcZiReQ7.mjs";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
6
6
  //#region components/DataTable/TableControls/FiltersV2/FilterBar/FilterBar.d.ts
@@ -113,4 +113,4 @@ declare function FilterBar({
113
113
  }: FilterBarProps): _$react_jsx_runtime0.JSX.Element;
114
114
  //#endregion
115
115
  export { FilterBarProps as n, FilterBar as t };
116
- //# sourceMappingURL=FilterBar-BNbMjWDC.d.mts.map
116
+ //# sourceMappingURL=FilterBar-C7ch6kYM.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as FilterBarProps, t as FilterBar } from "./FilterBar-BNbMjWDC.mjs";
1
+ import { n as FilterBarProps, t as FilterBar } from "./FilterBar-C7ch6kYM.mjs";
2
2
  export { FilterBarProps, FilterBar as default };
@@ -1,5 +1,5 @@
1
- import { a as FilterField, f as FilterSize } from "./types-Rj-C3LGL.mjs";
2
- import { t as FieldRegistry } from "./FieldRegistry-C2eIbP1X.mjs";
1
+ import { o as FilterField, p as FilterSize } from "./types-DEzlAdZW.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-DAk_3PhH.mjs";
3
3
  import { HTMLAttributes } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
@@ -1,4 +1,4 @@
1
- import { a as FilterField, f as FilterSize, l as FilterRule } from "./types-Rj-C3LGL.mjs";
1
+ import { o as FilterField, p as FilterSize, u as FilterRule } from "./types-DEzlAdZW.mjs";
2
2
  import * as _$react from "react";
3
3
  import { HTMLAttributes } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as FilterField, c as FilterOperator, f as FilterSize } from "./types-Rj-C3LGL.mjs";
1
+ import { l as FilterOperator, o as FilterField, p as FilterSize } from "./types-DEzlAdZW.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -36,6 +36,7 @@ interface FilterPopoverProps {
36
36
  valueControlSlot: ReactNode;
37
37
  /** Called when the popover should close (e.g. Escape, click-outside). */
38
38
  onClose: () => void;
39
+ onApply?: () => void;
39
40
  /** Anchor element — passed through to Radix `Popover.Trigger` as a child. */
40
41
  trigger: ReactNode;
41
42
  /**
@@ -82,6 +83,7 @@ declare const FilterPopover: ({
82
83
  onChangeOperator,
83
84
  valueControlSlot,
84
85
  onClose,
86
+ onApply,
85
87
  trigger,
86
88
  open,
87
89
  onOpenChange,
@@ -1,4 +1,4 @@
1
- import { t as ValueControlProps } from "./types-BfrEduGv.mjs";
1
+ import { t as ValueControlProps } from "./types-C_ZEgHNa.mjs";
2
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region components/DataTable/TableControls/FiltersV2/value-controls/FloatValueControl/FloatValueControl.d.ts
@@ -6,10 +6,11 @@ type FloatValueControlProps = ValueControlProps;
6
6
  /**
7
7
  * Float-typed value control for the Filter UI v2 popover.
8
8
  *
9
- * Used for `float` fields with operators `is` / `is_not`. The popover
9
+ * Used for `float` fields with operators `is` / `is_not`, and with the
10
+ * opt-in comparisons `gt` / `lt` when the field's
11
+ * `allowedOperators` lists them — all carry a single number. The popover
10
12
  * renders nothing when the operator is valueless (`is_empty` /
11
- * `is_not_empty`). Range operators are not part of the current numeric
12
- * field vocabulary.
13
+ * `is_not_empty`). Range operators are not part of the numeric vocabulary.
13
14
  *
14
15
  * The control accepts decimal input and emits a `number` via `onChange`.
15
16
  * We keep local display state as a string so partial input like `"3."` is
@@ -26,7 +27,7 @@ type FloatValueControlProps = ValueControlProps;
26
27
  * rule actually carries when focus leaves.
27
28
  *
28
29
  * `onChange` is debounced (300ms) to avoid committing on every keystroke;
29
- * the debounce flushes on blur and on unmount so no pending value is lost.
30
+ * the debounce flushes on blur or Enter and cancels on unmount.
30
31
  */
31
32
  declare const FloatValueControl: ({
32
33
  field,
@@ -1,8 +1,8 @@
1
1
  import { a as styled, r as css } from "./styledComponentsInterop-NxwFjeA4.mjs";
2
2
  import { semanticColor } from "./lib/semanticColor.mjs";
3
- import { a as Tooltip, n as TextWithDashedUnderline } from "./Tooltip-B-0VRuKT.mjs";
4
- import { n as useFormGroup } from "./useFormGroup-CsKC93Pt.mjs";
5
- import { n as useFormField, t as FormControlContext } from "./useFormField-CbNYbDdp.mjs";
3
+ import { a as Tooltip, n as TextWithDashedUnderline } from "./Tooltip-DogEteGl.mjs";
4
+ import { n as useFormGroup } from "./useFormGroup-BZayb9fZ.mjs";
5
+ import { n as useFormField, t as FormControlContext } from "./useFormField-BAmkdxtA.mjs";
6
6
  import { Color, Spacing, Typography } from "@persona/design-tokens";
7
7
  import { Children, forwardRef, isValidElement, useMemo } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -181,4 +181,4 @@ const FormControl = forwardRef(function FormControl({ children, hasError, hasWar
181
181
  //#endregion
182
182
  export { FormLabel as a, FormInputContainer as i, ErrorText as n, HelperText as o, FormControl as r, WarningText as s, Container as t };
183
183
 
184
- //# sourceMappingURL=FormControl-C4CiA0H-.mjs.map
184
+ //# sourceMappingURL=FormControl-CD_FdAXA.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormControl-C4CiA0H-.mjs","names":[],"sources":["../components/FormControl/FormControl.tsx"],"sourcesContent":["import { Root } from '@radix-ui/react-label';\nimport { uniqueId } from 'lodash-es';\nimport {\n Children,\n type ComponentPropsWithoutRef,\n forwardRef,\n isValidElement,\n type ReactNode,\n useMemo,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport useFormField, {\n FormControlContext,\n type FormControlContextProps,\n} from 'design-system/components/FormControl/useFormField';\nimport Tooltip, { TextWithDashedUnderline } from 'design-system/components/Tooltip';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\ntype LabelSizes = 'md' | 'sm';\n\ninterface StyledLabelProps {\n $size?: LabelSizes;\n}\n\nconst LabelBase = styled(Root)<StyledLabelProps>`\n ${({ $size }) => {\n switch ($size) {\n default:\n case 'md':\n return css`\n ${Typography.TextMedium};\n `;\n case 'sm':\n return css`\n ${Typography.TextSmall};\n `;\n }\n }}\n\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', theme.color.text.primary)};\n`;\n\nexport interface FormLabelProps extends ComponentPropsWithoutRef<typeof Root> {\n tooltip?: ReactNode;\n size?: LabelSizes;\n side?: 'top' | 'right' | 'bottom' | 'left';\n labelTooltipZIndex?: number;\n required?: boolean;\n}\n\nconst RequiredIndicator = styled.span`\n margin-left: ${Spacing[1]};\n vertical-align: top;\n color: ${({ theme }) => semanticColor(theme, 'FgDanger1', theme.color.variants.danger.default)};\n`;\n\nexport const FormLabel = ({\n tooltip,\n side,\n size,\n children,\n labelTooltipZIndex,\n required,\n ...props\n}: FormLabelProps) => {\n const field = useFormField({ labelId: props.id, required });\n const formGroup = useFormGroup();\n const labelProps = {\n id: field.labelId,\n htmlFor: field.inputId,\n ...props,\n };\n\n // Use labelTooltipZIndex from props, then from form group context\n const effectivelabelTooltipZIndex = labelTooltipZIndex ?? formGroup.labelTooltipZIndex;\n\n if (tooltip) {\n return (\n <Tooltip\n size={size}\n trigger={\n <LabelBase {...labelProps} $size={size}>\n <TextWithDashedUnderline>{children}</TextWithDashedUnderline>\n {field.required && <RequiredIndicator aria-hidden>*</RequiredIndicator>}\n </LabelBase>\n }\n side={side}\n {...(effectivelabelTooltipZIndex != null && { zIndex: effectivelabelTooltipZIndex })}\n >\n {tooltip}\n </Tooltip>\n );\n }\n\n return (\n <LabelBase {...labelProps} $size={size}>\n {children}\n {field.required && <RequiredIndicator aria-hidden>*</RequiredIndicator>}\n </LabelBase>\n );\n};\n\n/**\n * Used to target an input field within a FormControl.\n */\nexport const FormInputContainer = styled.div``;\n\nconst HelperTextBase = styled.div<ErrorProps>`\n ${Typography.TextSmall};\n line-height: 1;\n color: ${({ theme, hasWarning, hasError }) =>\n hasError\n ? semanticColor(theme, 'FgDanger1', theme.color.variants.danger.default)\n : hasWarning\n ? semanticColor(theme, 'FgWarning1', Color.CoreOrange900)\n : semanticColor(theme, 'FgSecondary', theme.color.text.secondary)};\n`;\n\ninterface HelperTextProps extends ComponentPropsWithoutRef<'div'>, ErrorProps {}\n\nexport const HelperText = forwardRef<HTMLDivElement, HelperTextProps>(\n function HelperText(props, ref) {\n const field = useFormField({ helperTextId: props.id });\n return (\n <HelperTextBase\n hasError={field.hasError}\n hasWarning={field.hasWarning}\n id={field.helperTextId}\n ref={ref}\n {...props}\n />\n );\n },\n);\n\nexport const ErrorText = forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n function ErrorText(props, ref) {\n const field = useFormField({ errorTextId: props.id });\n return <HelperTextBase hasError id={field.errorTextId} ref={ref} {...props} />;\n },\n);\n\nexport const WarningText = forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n function WarningText(props, ref) {\n const field = useFormField({ warningTextId: props.id });\n return <HelperTextBase hasWarning id={field.warningTextId} ref={ref} {...props} />;\n },\n);\n\nexport const Container = styled.div<{\n $configField?: boolean;\n $hasRightActions?: boolean;\n $configFieldInputWidth?: string;\n}>`\n display: flex;\n ${({ $configField, $hasRightActions, $configFieldInputWidth }) =>\n $configField\n ? $hasRightActions\n ? css`\n flex-direction: column;\n `\n : css`\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: ${Spacing[4]};\n min-width: 288px;\n\n > ${FormInputContainer} {\n display: flex;\n flex-direction: row-reverse;\n width: ${$configFieldInputWidth ?? '50%'};\n min-width: 180px;\n }\n\n &:has(textarea) {\n flex-direction: column;\n align-items: flex-start;\n gap: ${Spacing[1]};\n\n > ${FormInputContainer} {\n width: 100%;\n }\n }\n `\n : css`\n flex-direction: column;\n margin-bottom: ${Spacing[3]};\n `}\n\n > *:not(:first-child) {\n margin-top: ${({ $configField, $hasRightActions }) =>\n $hasRightActions ? Spacing[1] : $configField ? Spacing[0] : Spacing[2]};\n }\n\n > ${HelperTextBase} {\n margin-top: ${Spacing[1]};\n }\n`;\n\nexport interface FormControlBaseProps extends ErrorProps {\n inputId?: string;\n disabled?: boolean;\n /** Marks the field as required. `FormLabel` renders an asterisk. */\n required?: boolean;\n /**\n * Whether to render the form field as a config field.\n * This will remove the label and helper text.\n */\n configField?: boolean;\n /**\n * Whether the form field has right actions.\n */\n hasRightActions?: boolean;\n /**\n * Override the width of the form input container when `configField` is true.\n * Accepts any valid CSS width value (e.g. `'33%'`, `'66.67%'`).\n * Defaults to `'50%'`.\n */\n configFieldInputWidth?: string;\n}\n\nexport interface FormControlProps extends ComponentPropsWithoutRef<'div'>, FormControlBaseProps {}\n\nexport const FormControl = forwardRef<HTMLDivElement, FormControlProps>(function FormControl(\n {\n children,\n hasError,\n hasWarning,\n inputId,\n disabled,\n required,\n configField,\n hasRightActions,\n configFieldInputWidth,\n ...props\n }: FormControlProps,\n ref,\n) {\n const generatedId = useMemo(() => uniqueId('pds_form_control__'), []);\n\n const initFormField: FormControlContextProps = {\n hasError,\n hasWarning,\n disabled,\n required: required ?? false,\n inputId: inputId ?? generatedId,\n configField,\n };\n\n Children.map(children, (child: ReactNode) => {\n if (isValidElement(child)) {\n switch (child.type) {\n case FormLabel: {\n initFormField.labelId = child.props.id ?? `${initFormField.inputId}-label`;\n break;\n }\n case HelperText: {\n initFormField.helperTextId = child.props.id ?? `${initFormField.inputId}-help-text`;\n break;\n }\n case ErrorText: {\n initFormField.errorTextId = child.props.id ?? `${initFormField.inputId}-error-text`;\n break;\n }\n case WarningText: {\n initFormField.warningTextId = child.props.id ?? `${initFormField.inputId}-warning-text`;\n break;\n }\n }\n }\n });\n\n const field = useFormField(initFormField);\n\n return (\n <FormControlContext.Provider value={field}>\n <Container\n ref={ref}\n $configField={field.configField}\n $hasRightActions={hasRightActions}\n $configFieldInputWidth={configFieldInputWidth}\n {...props}\n >\n {children}\n </Container>\n </FormControlContext.Provider>\n );\n});\n\nexport default FormControl;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormControl-CD_FdAXA.mjs","names":[],"sources":["../components/FormControl/FormControl.tsx"],"sourcesContent":["import { Root } from '@radix-ui/react-label';\nimport { uniqueId } from 'lodash-es';\nimport {\n Children,\n type ComponentPropsWithoutRef,\n forwardRef,\n isValidElement,\n type ReactNode,\n useMemo,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport useFormField, {\n FormControlContext,\n type FormControlContextProps,\n} from 'design-system/components/FormControl/useFormField';\nimport Tooltip, { TextWithDashedUnderline } from 'design-system/components/Tooltip';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\ntype LabelSizes = 'md' | 'sm';\n\ninterface StyledLabelProps {\n $size?: LabelSizes;\n}\n\nconst LabelBase = styled(Root)<StyledLabelProps>`\n ${({ $size }) => {\n switch ($size) {\n default:\n case 'md':\n return css`\n ${Typography.TextMedium};\n `;\n case 'sm':\n return css`\n ${Typography.TextSmall};\n `;\n }\n }}\n\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', theme.color.text.primary)};\n`;\n\nexport interface FormLabelProps extends ComponentPropsWithoutRef<typeof Root> {\n tooltip?: ReactNode;\n size?: LabelSizes;\n side?: 'top' | 'right' | 'bottom' | 'left';\n labelTooltipZIndex?: number;\n required?: boolean;\n}\n\nconst RequiredIndicator = styled.span`\n margin-left: ${Spacing[1]};\n vertical-align: top;\n color: ${({ theme }) => semanticColor(theme, 'FgDanger1', theme.color.variants.danger.default)};\n`;\n\nexport const FormLabel = ({\n tooltip,\n side,\n size,\n children,\n labelTooltipZIndex,\n required,\n ...props\n}: FormLabelProps) => {\n const field = useFormField({ labelId: props.id, required });\n const formGroup = useFormGroup();\n const labelProps = {\n id: field.labelId,\n htmlFor: field.inputId,\n ...props,\n };\n\n // Use labelTooltipZIndex from props, then from form group context\n const effectivelabelTooltipZIndex = labelTooltipZIndex ?? formGroup.labelTooltipZIndex;\n\n if (tooltip) {\n return (\n <Tooltip\n size={size}\n trigger={\n <LabelBase {...labelProps} $size={size}>\n <TextWithDashedUnderline>{children}</TextWithDashedUnderline>\n {field.required && <RequiredIndicator aria-hidden>*</RequiredIndicator>}\n </LabelBase>\n }\n side={side}\n {...(effectivelabelTooltipZIndex != null && { zIndex: effectivelabelTooltipZIndex })}\n >\n {tooltip}\n </Tooltip>\n );\n }\n\n return (\n <LabelBase {...labelProps} $size={size}>\n {children}\n {field.required && <RequiredIndicator aria-hidden>*</RequiredIndicator>}\n </LabelBase>\n );\n};\n\n/**\n * Used to target an input field within a FormControl.\n */\nexport const FormInputContainer = styled.div``;\n\nconst HelperTextBase = styled.div<ErrorProps>`\n ${Typography.TextSmall};\n line-height: 1;\n color: ${({ theme, hasWarning, hasError }) =>\n hasError\n ? semanticColor(theme, 'FgDanger1', theme.color.variants.danger.default)\n : hasWarning\n ? semanticColor(theme, 'FgWarning1', Color.CoreOrange900)\n : semanticColor(theme, 'FgSecondary', theme.color.text.secondary)};\n`;\n\ninterface HelperTextProps extends ComponentPropsWithoutRef<'div'>, ErrorProps {}\n\nexport const HelperText = forwardRef<HTMLDivElement, HelperTextProps>(\n function HelperText(props, ref) {\n const field = useFormField({ helperTextId: props.id });\n return (\n <HelperTextBase\n hasError={field.hasError}\n hasWarning={field.hasWarning}\n id={field.helperTextId}\n ref={ref}\n {...props}\n />\n );\n },\n);\n\nexport const ErrorText = forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n function ErrorText(props, ref) {\n const field = useFormField({ errorTextId: props.id });\n return <HelperTextBase hasError id={field.errorTextId} ref={ref} {...props} />;\n },\n);\n\nexport const WarningText = forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(\n function WarningText(props, ref) {\n const field = useFormField({ warningTextId: props.id });\n return <HelperTextBase hasWarning id={field.warningTextId} ref={ref} {...props} />;\n },\n);\n\nexport const Container = styled.div<{\n $configField?: boolean;\n $hasRightActions?: boolean;\n $configFieldInputWidth?: string;\n}>`\n display: flex;\n ${({ $configField, $hasRightActions, $configFieldInputWidth }) =>\n $configField\n ? $hasRightActions\n ? css`\n flex-direction: column;\n `\n : css`\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: ${Spacing[4]};\n min-width: 288px;\n\n > ${FormInputContainer} {\n display: flex;\n flex-direction: row-reverse;\n width: ${$configFieldInputWidth ?? '50%'};\n min-width: 180px;\n }\n\n &:has(textarea) {\n flex-direction: column;\n align-items: flex-start;\n gap: ${Spacing[1]};\n\n > ${FormInputContainer} {\n width: 100%;\n }\n }\n `\n : css`\n flex-direction: column;\n margin-bottom: ${Spacing[3]};\n `}\n\n > *:not(:first-child) {\n margin-top: ${({ $configField, $hasRightActions }) =>\n $hasRightActions ? Spacing[1] : $configField ? Spacing[0] : Spacing[2]};\n }\n\n > ${HelperTextBase} {\n margin-top: ${Spacing[1]};\n }\n`;\n\nexport interface FormControlBaseProps extends ErrorProps {\n inputId?: string;\n disabled?: boolean;\n /** Marks the field as required. `FormLabel` renders an asterisk. */\n required?: boolean;\n /**\n * Whether to render the form field as a config field.\n * This will remove the label and helper text.\n */\n configField?: boolean;\n /**\n * Whether the form field has right actions.\n */\n hasRightActions?: boolean;\n /**\n * Override the width of the form input container when `configField` is true.\n * Accepts any valid CSS width value (e.g. `'33%'`, `'66.67%'`).\n * Defaults to `'50%'`.\n */\n configFieldInputWidth?: string;\n}\n\nexport interface FormControlProps extends ComponentPropsWithoutRef<'div'>, FormControlBaseProps {}\n\nexport const FormControl = forwardRef<HTMLDivElement, FormControlProps>(function FormControl(\n {\n children,\n hasError,\n hasWarning,\n inputId,\n disabled,\n required,\n configField,\n hasRightActions,\n configFieldInputWidth,\n ...props\n }: FormControlProps,\n ref,\n) {\n const generatedId = useMemo(() => uniqueId('pds_form_control__'), []);\n\n const initFormField: FormControlContextProps = {\n hasError,\n hasWarning,\n disabled,\n required: required ?? false,\n inputId: inputId ?? generatedId,\n configField,\n };\n\n Children.map(children, (child: ReactNode) => {\n if (isValidElement(child)) {\n switch (child.type) {\n case FormLabel: {\n initFormField.labelId = child.props.id ?? `${initFormField.inputId}-label`;\n break;\n }\n case HelperText: {\n initFormField.helperTextId = child.props.id ?? `${initFormField.inputId}-help-text`;\n break;\n }\n case ErrorText: {\n initFormField.errorTextId = child.props.id ?? `${initFormField.inputId}-error-text`;\n break;\n }\n case WarningText: {\n initFormField.warningTextId = child.props.id ?? `${initFormField.inputId}-warning-text`;\n break;\n }\n }\n }\n });\n\n const field = useFormField(initFormField);\n\n return (\n <FormControlContext.Provider value={field}>\n <Container\n ref={ref}\n $configField={field.configField}\n $hasRightActions={hasRightActions}\n $configFieldInputWidth={configFieldInputWidth}\n {...props}\n >\n {children}\n </Container>\n </FormControlContext.Provider>\n );\n});\n\nexport default FormControl;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { t as ErrorProps } from "./ErrorProps-C-sfKFxK.mjs";
1
+ import { t as ErrorProps } from "./ErrorProps-oCHtJzEB.mjs";
2
+ import * as _$styled_components0 from "styled-components";
2
3
  import * as _$react from "react";
3
4
  import { ComponentPropsWithoutRef, ReactNode } from "react";
4
- import * as _$styled_components0 from "styled-components";
5
5
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
6
6
  import { Root } from "@radix-ui/react-label";
7
7
 
@@ -61,4 +61,4 @@ interface FormControlProps extends ComponentPropsWithoutRef<'div'>, FormControlB
61
61
  declare const FormControl: _$react.ForwardRefExoticComponent<FormControlProps & _$react.RefAttributes<HTMLDivElement>>;
62
62
  //#endregion
63
63
  export { FormControlProps as a, FormLabelProps as c, FormControlBaseProps as i, HelperText as l, ErrorText as n, FormInputContainer as o, FormControl as r, FormLabel as s, Container as t, WarningText as u };
64
- //# sourceMappingURL=FormControl-DICrNHcc.d.mts.map
64
+ //# sourceMappingURL=FormControl-DX4vtUp6.d.mts.map
@@ -1,2 +1,2 @@
1
- import { a as FormControlProps, c as FormLabelProps, i as FormControlBaseProps, l as HelperText, n as ErrorText, o as FormInputContainer, r as FormControl, s as FormLabel, t as Container, u as WarningText } from "./FormControl-DICrNHcc.mjs";
1
+ import { a as FormControlProps, c as FormLabelProps, i as FormControlBaseProps, l as HelperText, n as ErrorText, o as FormInputContainer, r as FormControl, s as FormLabel, t as Container, u as WarningText } from "./FormControl-DX4vtUp6.mjs";
2
2
  export { Container, ErrorText, FormControl, FormControl as default, FormControlBaseProps, FormControlProps, FormInputContainer, FormLabel, FormLabelProps, HelperText, WarningText };
@@ -1,6 +1,6 @@
1
- import { c as ParagraphProps, o as LabelProps, u as SpanProps } from "./Text-D4GzsXFA.mjs";
2
- import * as _$react from "react";
1
+ import { c as ParagraphProps, o as LabelProps, u as SpanProps } from "./Text-BBMau410.mjs";
3
2
  import * as _$styled_components0 from "styled-components";
3
+ import * as _$react from "react";
4
4
 
5
5
  //#region components/DataTable/FormControlLabel/FormControlLabel.d.ts
6
6
  declare const FormControlLabel: _$styled_components0.StyledComponent<_$react.FC<_$react.PropsWithChildren<SpanProps>>, any, ParagraphProps & LabelProps & {
@@ -1,4 +1,4 @@
1
- import { a as FormControlProps, l as HelperText, n as ErrorText, s as FormLabel, u as WarningText } from "./FormControl-DICrNHcc.mjs";
1
+ import { a as FormControlProps, l as HelperText, n as ErrorText, s as FormLabel, u as WarningText } from "./FormControl-DX4vtUp6.mjs";
2
2
  import * as _$react from "react";
3
3
  import { ComponentPropsWithRef, ReactElement, ReactNode } from "react";
4
4
 
@@ -67,4 +67,4 @@ interface FormFieldProps extends Omit<FormControlProps, 'children'>, FormFieldBa
67
67
  declare const FormField: _$react.ForwardRefExoticComponent<FormFieldProps & _$react.RefAttributes<HTMLDivElement>>;
68
68
  //#endregion
69
69
  export { FormFieldBaseProps as n, FormFieldProps as r, FormField as t };
70
- //# sourceMappingURL=FormField-D97xQCxF.d.mts.map
70
+ //# sourceMappingURL=FormField-C80kGAIV.d.mts.map
@@ -1,19 +1,19 @@
1
1
  import { t as HStack } from "./Stack-BkC7FCdF.mjs";
2
- import { t as IconButton } from "./IconButton-H5vDZOdo.mjs";
3
- import { n as useFormGroup } from "./useFormGroup-CsKC93Pt.mjs";
4
- import { t as FormControlContext } from "./useFormField-CbNYbDdp.mjs";
2
+ import { t as IconButton } from "./IconButton-D4awF770.mjs";
3
+ import { n as useFormGroup } from "./useFormGroup-BZayb9fZ.mjs";
4
+ import { t as FormControlContext } from "./useFormField-BAmkdxtA.mjs";
5
5
  import Input_default from "./components/Input/index.mjs";
6
- import { n as DropdownMenu_default } from "./DropdownMenu-CedsmO5h.mjs";
7
- import { t as Checkbox } from "./Checkbox-BQC_SmBt.mjs";
8
- import { t as Combobox } from "./Combobox-MCaDc7h6.mjs";
9
- import { n as Select } from "./Select-DD7mFvR8.mjs";
10
- import { t as Toggle } from "./Toggle-CZF6iBql.mjs";
11
- import { a as FormLabel, i as FormInputContainer, n as ErrorText, o as HelperText, r as FormControl, s as WarningText } from "./FormControl-C4CiA0H-.mjs";
12
- import { t as ListBox } from "./ListBox-2aYWNlO_.mjs";
13
- import { t as RadioGroup } from "./RadioGroup-B6UaoJRd.mjs";
14
- import { t as SegmentedControl } from "./SegmentedControl-BNVwf7nL.mjs";
15
- import { t as TextAreaWithStyle } from "./TextArea-kOkhZxNR.mjs";
16
- import { t as TableBox } from "./TableBox-BGabyY7E.mjs";
6
+ import { n as DropdownMenu_default } from "./DropdownMenu-CPE8Q56k.mjs";
7
+ import { t as Checkbox } from "./Checkbox-Cttn1t8T.mjs";
8
+ import { t as Combobox } from "./Combobox-CsXnJKvB.mjs";
9
+ import { n as Select } from "./Select-oVJ0uLa7.mjs";
10
+ import { t as Toggle } from "./Toggle-C9cZnajR.mjs";
11
+ import { a as FormLabel, i as FormInputContainer, n as ErrorText, o as HelperText, r as FormControl, s as WarningText } from "./FormControl-CD_FdAXA.mjs";
12
+ import { t as ListBox } from "./ListBox-BhWLad_L.mjs";
13
+ import { t as RadioGroup } from "./RadioGroup-B0KcQpS7.mjs";
14
+ import { t as SegmentedControl } from "./SegmentedControl-B2_bS806.mjs";
15
+ import { t as TextAreaWithStyle } from "./TextArea-BaA8H7s7.mjs";
16
+ import { t as TableBox } from "./TableBox-DMYLTIpr.mjs";
17
17
  import { Spacing } from "@persona/design-tokens";
18
18
  import { Children, Fragment, cloneElement, createContext, forwardRef, useContext, useMemo, useRef, useState } from "react";
19
19
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -483,4 +483,4 @@ TableBoxField.Cell = TableBox.Cell;
483
483
  //#endregion
484
484
  export { CheckboxField as a, SegmentedControlField as c, TextField as d, ToggleField as f, CheckboxGroupField as i, SelectField as l, FormField as m, TableBoxField as n, ComboboxField as o, splitOutFormFieldProps as p, ListBoxField as r, RadioGroupField as s, TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL as t, TextAreaField as u };
485
485
 
486
- //# sourceMappingURL=FormField-CB0yCMro.mjs.map
486
+ //# sourceMappingURL=FormField-DjysBTKn.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormField-CB0yCMro.mjs","names":["Input","TextArea","DropdownMenu","DropdownMenu"],"sources":["../components/FormField/FormField.tsx","../components/FormField/inputFields.tsx","../components/FormField/CheckboxGroupField.tsx","../components/FormField/ListBoxField.tsx","../components/FormField/TableBoxField.tsx"],"sourcesContent":["import { type ComponentPropsWithRef, forwardRef, type ReactElement, type ReactNode } from 'react';\n\nimport { Spacing } from '@persona/design-tokens';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport FormControl, {\n ErrorText,\n type FormControlProps,\n FormInputContainer,\n FormLabel,\n HelperText,\n WarningText,\n} from 'design-system/components/FormControl';\nimport { HStack } from 'design-system/components/Stack';\n\nexport interface FormFieldBaseProps {\n /**\n * Renders `<Label>` above input\n */\n label?: ReactNode;\n\n /**\n * ID of the input element. Providing this will automatically link the label to the input.\n */\n inputId?: string;\n\n /** Marks the field as required. The label renders an asterisk; composed fields also forward `required` to their input. */\n required?: boolean;\n\n /**\n * Renders `<HelperText>` below input\n */\n helperText?: ReactNode;\n\n /**\n * Renders `<ErrorText>` below input and helper text.\n */\n errorText?: ReactNode;\n\n /**\n * Renders `<WarningText>` below input and helper text.\n */\n warningText?: ReactNode;\n\n /**\n * Should be an input of some sort\n */\n children?: ReactElement;\n\n labelProps?: ComponentPropsWithRef<typeof FormLabel>;\n helperProps?: ComponentPropsWithRef<typeof HelperText>;\n warningProps?: ComponentPropsWithRef<typeof WarningText>;\n errorProps?: ComponentPropsWithRef<typeof ErrorText>;\n\n /**\n * Whether to render the form field as a config field.\n * This will render the helper text as a tooltip.\n */\n configField?: boolean;\n\n /**\n * Override the width of the input area when `configField` is true.\n * Accepts any valid CSS width value (e.g. `'33%'`, `'66.67%'`).\n * Defaults to `'50%'`.\n */\n configFieldInputWidth?: string;\n\n /**\n * Renders actions to the right of the label.\n */\n rightActions?: ReactNode;\n}\n\nexport interface FormFieldProps extends Omit<FormControlProps, 'children'>, FormFieldBaseProps {}\n\n/**\n * Helper component with preset slots for label, input, and helper texts.\n *\n * Prefer a composed field component, such as `<TextField>`, `<SelectField>`, or\n * `<CheckboxField>`, when one is available for the input type. Use `<FormField>` directly\n * when composing a custom control or layout.\n *\n * ## Usage\n *\n * ```tsx\n * import FormField from 'design-system/components/FormField';\n * ```\n */\nexport const FormField = forwardRef<HTMLDivElement, FormFieldProps>(function FormField(\n {\n label,\n children,\n helperText,\n warningText,\n errorText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField: configFieldProp,\n configFieldInputWidth,\n rightActions,\n ...props\n }: FormFieldProps,\n ref,\n) {\n const { configField: configFieldFormGroup } = useFormGroup();\n const configField = configFieldProp ?? configFieldFormGroup;\n\n const labelElement = label ? (\n <FormLabel tooltip={configField && helperText ? helperText : undefined} {...labelProps}>\n {label}\n </FormLabel>\n ) : null;\n\n return (\n <FormControl\n hasError={!!errorText}\n hasWarning={!!warningText}\n ref={ref}\n configField={configField}\n hasRightActions={!!rightActions}\n configFieldInputWidth={configFieldInputWidth}\n {...props}\n >\n {rightActions ? (\n <HStack justify='space-between' align='center'>\n {labelElement}\n <HStack spacing={Spacing[1]}>{rightActions}</HStack>\n </HStack>\n ) : (\n labelElement\n )}\n <FormInputContainer>{children}</FormInputContainer>\n {!configField && helperText && <HelperText {...helperProps}>{helperText}</HelperText>}\n {!configField && warningText && <WarningText {...warningProps}>{warningText}</WarningText>}\n {!configField && errorText && <ErrorText {...errorProps}>{errorText}</ErrorText>}\n </FormControl>\n );\n});\n\nexport default FormField;\n","import { uniqueId } from 'lodash-es';\nimport { forwardRef, useMemo } from 'react';\n\nimport Checkbox, { type CheckboxProps } from 'design-system/components/Checkbox';\nimport Combobox from 'design-system/components/Combobox';\nimport type { ComboboxMultiSelectProps } from 'design-system/components/Combobox/ComboboxMultiSelect';\nimport type { ComboboxSingleSelectProps } from 'design-system/components/Combobox/ComboboxSingleSelect';\nimport FormField, { type FormFieldBaseProps } from 'design-system/components/FormField/FormField';\nimport Input, { type InputProps } from 'design-system/components/Input';\nimport RadioGroup, { type RadioGroupProps } from 'design-system/components/RadioGroup';\nimport SegmentedControl, {\n type SegmentedControlProps,\n} from 'design-system/components/SegmentedControl';\nimport Select, { type SelectProps } from 'design-system/components/Select';\nimport TextArea, { type TextAreaProps } from 'design-system/components/TextArea';\nimport Toggle, { type ToggleProps } from 'design-system/components/Toggle';\n\nexport type ImplementsFormField = Omit<FormFieldBaseProps, 'children'>;\n\ntype ExtractFormFieldProps<T extends ImplementsFormField> = Pick<\n T,\n | 'label'\n | 'inputId'\n | 'required'\n | 'helperText'\n | 'errorText'\n | 'warningText'\n | 'labelProps'\n | 'helperProps'\n | 'warningProps'\n | 'errorProps'\n | 'configField'\n | 'configFieldInputWidth'\n | 'rightActions'\n>;\ntype OmitFormFieldProps<T extends ImplementsFormField> = Omit<\n T,\n Exclude<keyof ExtractFormFieldProps<T>, 'required'>\n>;\n\n/**\n * Helper to split out props that are sent to the FormField component from props sent\n * to the underlying input component.\n */\nexport const splitOutFormFieldProps = <T extends ImplementsFormField>(\n props: T,\n): {\n formFieldProps: ExtractFormFieldProps<T>;\n inputProps: OmitFormFieldProps<T>;\n} => {\n const {\n label,\n inputId,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField,\n configFieldInputWidth,\n rightActions,\n ...inputProps\n } = props;\n\n return {\n formFieldProps: {\n label,\n inputId,\n required: props.required,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField,\n configFieldInputWidth,\n rightActions,\n },\n inputProps,\n };\n};\n\nexport interface TextFieldProps extends ImplementsFormField, InputProps {}\n\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n function TextField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const { id, ...rest } = inputProps;\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: props.size, ...formFieldProps.labelProps }}\n inputId={formFieldProps.inputId ?? id}\n >\n <Input {...rest} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface TextAreaFieldProps extends ImplementsFormField, TextAreaProps {}\n\nexport const TextAreaField = forwardRef<HTMLTextAreaElement, TextAreaFieldProps>(\n function TextAreaField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const { id, ...rest } = inputProps;\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: props.size, ...formFieldProps.labelProps }}\n inputId={formFieldProps.inputId ?? id}\n >\n <TextArea {...rest} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface SelectFieldProps extends ImplementsFormField, SelectProps {}\n\nexport const SelectField = ({ id, children, ...props }: SelectFieldProps) => {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const linkedId = useMemo(\n () => formFieldProps.inputId ?? id ?? uniqueId('pds-form-field-input-fields-select__'),\n [formFieldProps.inputId, id],\n );\n\n return (\n <FormField\n {...formFieldProps}\n inputId={linkedId}\n labelProps={{ htmlFor: linkedId, size: inputProps.size, ...formFieldProps.labelProps }}\n >\n <Select {...inputProps} id={linkedId}>\n {children}\n </Select>\n </FormField>\n );\n};\n\nexport interface RadioGroupFieldProps\n extends Omit<ImplementsFormField, 'configField'>, RadioGroupProps {}\n\nexport const RadioGroupField = ({\n label,\n helperText,\n errorText,\n warningText,\n required,\n children,\n ...props\n}: RadioGroupFieldProps) => {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n required={required}\n >\n <RadioGroup {...props} aria-required={required}>\n {children}\n </RadioGroup>\n </FormField>\n );\n};\n\nexport interface CheckboxFieldProps extends ImplementsFormField, CheckboxProps {\n checkboxLabel?: CheckboxProps['label'];\n}\n\nexport const CheckboxField = ({\n label,\n helperText,\n errorText,\n warningText,\n checkboxLabel,\n configField,\n labelProps,\n required,\n ...props\n}: CheckboxFieldProps) => {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n configField={configField}\n labelProps={labelProps}\n required={required}\n >\n <Checkbox label={checkboxLabel} required={required} {...props} />\n </FormField>\n );\n};\n\nexport interface ToggleFieldProps extends ImplementsFormField, ToggleProps {}\n\nexport const ToggleField = forwardRef<HTMLDivElement, ToggleFieldProps>(\n function ToggleField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: inputProps.size, ...formFieldProps.labelProps }}\n >\n <Toggle {...inputProps} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface SegmentedControlFieldProps\n extends ImplementsFormField, Omit<SegmentedControlProps, 'children'> {\n children?: SegmentedControlProps['children'];\n}\n\nexport const SegmentedControlField = forwardRef<HTMLDivElement, SegmentedControlFieldProps>(\n function SegmentedControlField(\n {\n label,\n helperText,\n errorText,\n warningText,\n configField,\n required,\n children,\n labelProps,\n ...props\n },\n ref,\n ) {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n configField={configField}\n labelProps={labelProps}\n required={required}\n >\n <SegmentedControl fullWidth {...props} aria-required={required} ref={ref}>\n {children}\n </SegmentedControl>\n </FormField>\n );\n },\n);\n\nexport type ComboboxSingleSelectFieldProps<T = string> = ImplementsFormField &\n ComboboxSingleSelectProps<T>;\nexport type ComboboxMultiSelectFieldProps<T = string> = ImplementsFormField &\n ComboboxMultiSelectProps<T>;\n\nexport const ComboboxField = (\n props: ComboboxSingleSelectFieldProps | ComboboxMultiSelectFieldProps,\n) => {\n // `Combobox` registers its own id with the surrounding `FormControl`, which is what links the\n // label to it, so the field only forwards an explicit `inputId` when one is given. Each mode is\n // split separately: `multiple` discriminates the two, and a union split at once loses that.\n if (props.multiple) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField {...formFieldProps}>\n <Combobox {...inputProps} />\n </FormField>\n );\n }\n\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField {...formFieldProps}>\n <Combobox {...inputProps} />\n </FormField>\n );\n};\n","import {\n Children,\n cloneElement,\n type ComponentPropsWithRef,\n createContext,\n type ReactElement,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\nimport {\n type AriaCheckboxGroupProps,\n mergeProps,\n useCheckboxGroup,\n useCheckboxGroupItem,\n} from 'react-aria';\nimport innerText from 'react-innertext';\nimport { type CheckboxGroupState, useCheckboxGroupState } from 'react-stately';\n\nimport type { CheckboxProps } from 'design-system/components/Checkbox';\nimport type Checkbox from 'design-system/components/Checkbox';\nimport { FormControlContext } from 'design-system/components/FormControl/useFormField';\nimport FormField from 'design-system/components/FormField/FormField';\nimport type { ImplementsFormField } from 'design-system/components/FormField/inputFields';\n\n/* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\nconst CheckboxGroupContext = createContext<CheckboxGroupState>(null);\n\n/** Preserves the parent FormControl context (disabled, hasError, etc.) but clears\n * inputId so each Checkbox inside the group generates its own unique id. */\nconst ClearGroupInputId = ({ children }: { children: ReactNode }) => {\n const parentContext = useContext(FormControlContext);\n return (\n <FormControlContext.Provider value={{ ...parentContext, inputId: undefined }}>\n {children}\n </FormControlContext.Provider>\n );\n};\n\ninterface CheckboxGroupItemProps {\n children: ReactElement<ComponentPropsWithRef<typeof Checkbox>>;\n}\n\nconst CheckboxGroupItem = (props: CheckboxGroupItemProps) => {\n const { children } = props;\n const checkboxProps = children.props;\n\n const state = useContext(CheckboxGroupContext);\n const ref = useRef();\n const { inputProps } = useCheckboxGroupItem(\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n {\n ...checkboxProps,\n onChange: undefined,\n isDisabled: checkboxProps.disabled,\n isReadOnly: checkboxProps.readOnly,\n isRequired: checkboxProps.required,\n isIndeterminate: checkboxProps.indeterminate,\n value: String(children.props.value),\n 'aria-label': innerText(checkboxProps.label),\n },\n state,\n ref,\n );\n\n return cloneElement(\n children,\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n mergeProps(inputProps, {\n onChange: checkboxProps.onChange,\n disabled: state.isDisabled || checkboxProps.disabled,\n checked: state.isSelected(String(inputProps.value)),\n ref,\n } as ComponentPropsWithRef<typeof Checkbox>),\n );\n};\n\ninterface CheckboxGroupFieldProps\n extends\n Omit<ImplementsFormField, 'configField'>,\n Omit<\n AriaCheckboxGroupProps,\n 'description' | 'disabled' | 'isReadOnly' | 'isRequired' | 'errorMessage'\n > {\n children?: ReactElement<CheckboxProps>[];\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n}\n\nconst CheckboxGroupField = ({\n children,\n name,\n onChange,\n disabled,\n readOnly,\n required,\n ...props\n}: CheckboxGroupFieldProps) => {\n const reactAriaProps = {\n ...props,\n description: props.helperText,\n errorMessage: props.errorText,\n onChange,\n name,\n isDisabled: disabled,\n isReadOnly: readOnly,\n isRequired: required,\n };\n const state = useCheckboxGroupState(reactAriaProps);\n const { groupProps, labelProps, descriptionProps, errorMessageProps } = useCheckboxGroup(\n reactAriaProps,\n state,\n );\n\n return (\n <FormField\n labelProps={labelProps}\n helperProps={descriptionProps}\n errorProps={errorMessageProps}\n disabled={disabled}\n required={required}\n {...groupProps}\n {...props}\n >\n <ClearGroupInputId>\n <CheckboxGroupContext.Provider value={state}>\n {Children.map(children, (checkbox) => (\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n <CheckboxGroupItem>{checkbox}</CheckboxGroupItem>\n ))}\n </CheckboxGroupContext.Provider>\n </ClearGroupInputId>\n </FormField>\n );\n};\n\nexport default CheckboxGroupField;\n","import { type ReactNode, useState } from 'react';\n\nimport { MoreIcon, PlusIcon } from '@persona/icons';\nimport { IconButton } from 'design-system/components/Button';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport DropdownMenu from 'design-system/components/DropdownMenu';\nimport FormField from 'design-system/components/FormField/FormField';\nimport type { ImplementsFormField } from 'design-system/components/FormField/inputFields';\nimport ListBox, { type ListBoxProps } from 'design-system/components/ListBox';\nimport type { MenuItemProps } from 'design-system/components/Menu';\n\ninterface ListBoxFieldAction extends Omit<MenuItemProps, 'children'> {\n label: string;\n onClick: (selectedKeys: ListBoxProps<any>['selectedKeys']) => void;\n}\n\ninterface AddDropdownConfig {\n options: ({ label: ReactNode; value: string } & Omit<MenuItemProps, 'children'>)[];\n onSelection: (value: string) => void;\n}\n\ninterface ListBoxFieldProps<T extends object> extends ImplementsFormField, ListBoxProps<T> {\n actions?: ListBoxFieldAction[];\n addDropdownConfig?: AddDropdownConfig;\n /** Disables the add button, e.g. while the list is read-only. */\n addDisabled?: boolean;\n}\n\nconst ListBoxField = <T extends object>({\n label,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n errorProps,\n warningProps,\n inputId,\n required,\n onAdd,\n onDelete,\n deleteDisabled,\n configField: configFieldProp,\n size = 'md',\n actions = [],\n addDropdownConfig,\n addDisabled,\n selectedKeys: selectedKeysProp,\n onSelectionChange,\n defaultSelectedKeys,\n ...props\n}: ListBoxFieldProps<T>) => {\n const { configField } = useFormGroup({ configField: configFieldProp });\n const menuActions: ListBoxFieldAction[] = [...actions];\n const [selectedKeysState, setSelectedKeys] = useState(defaultSelectedKeys);\n const selectedKeys = selectedKeysProp ?? selectedKeysState;\n const effectiveSize = configField ? 'sm' : size;\n\n if (onDelete) {\n menuActions.unshift({\n label: 'Delete',\n onClick: () => onDelete(selectedKeys),\n disabled:\n deleteDisabled ||\n selectedKeys == null ||\n (typeof selectedKeys === 'object' && [...selectedKeys].length === 0),\n });\n }\n\n const addButton = (\n <IconButton size='sm' onClick={onAdd} aria-label='Add item to list' disabled={addDisabled}>\n <PlusIcon />\n </IconButton>\n );\n\n return (\n <FormField\n label={label}\n helperText={helperText}\n errorText={errorText}\n warningText={warningText}\n labelProps={labelProps}\n helperProps={helperProps}\n errorProps={errorProps}\n warningProps={warningProps}\n inputId={inputId}\n required={required}\n configField={configField}\n rightActions={\n configField && (\n <>\n {menuActions.length > 0 && (\n <DropdownMenu\n trigger={\n <IconButton aria-label='Actions' size='sm'>\n <MoreIcon />\n </IconButton>\n }\n portal\n >\n {menuActions.map((action) => (\n <DropdownMenu.Item\n key={action.label}\n {...action}\n onClick={() => action.onClick(selectedKeys)}\n size={effectiveSize}\n >\n {action.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n {onAdd && !addDropdownConfig && addButton}\n {addDropdownConfig && (\n <DropdownMenu trigger={addButton} align='start' portal>\n {addDropdownConfig.options.map((option) => (\n <DropdownMenu.Item\n key={option.value}\n {...option}\n onClick={() => addDropdownConfig.onSelection(option.value)}\n size={effectiveSize}\n >\n {option.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n </>\n )\n }\n >\n <ListBox\n id={inputId}\n fullWidth={configField}\n size={effectiveSize}\n deleteDisabled={deleteDisabled}\n // We have to control the keys so we can power the `rightActions`\n selectedKeys={selectedKeys}\n onSelectionChange={(keys) => {\n onSelectionChange?.(keys);\n setSelectedKeys(keys);\n }}\n {...props}\n />\n </FormField>\n );\n};\n\nexport default ListBoxField;\n","import { Fragment, type MouseEvent, type ReactNode, useState } from 'react';\n\nimport { IconButton } from '@persona/design-system/components/Button';\nimport { useFormGroup } from '@persona/design-system/components/ConfigFormGroup';\nimport DropdownMenu from '@persona/design-system/components/DropdownMenu';\nimport type { FormLabelProps } from '@persona/design-system/components/FormControl';\nimport type { MenuItemProps } from '@persona/design-system/components/Menu';\nimport TableBox, { type TableBoxProps } from '@persona/design-system/components/TableBox';\nimport { MoreIcon, PlusIcon } from '@persona/icons';\n\nimport FormField from './FormField';\nimport type { ImplementsFormField } from './inputFields';\n\nexport interface TableBoxFieldAction extends Omit<MenuItemProps, 'children'> {\n label: string;\n onClick: (selectedKey: TableBoxProps['selectedKey']) => void;\n}\n\nexport interface TableBoxFieldActionGroup {\n type: 'group';\n heading: string;\n actions: TableBoxFieldAction[];\n}\n\nexport type TableBoxFieldActionEntry = TableBoxFieldAction | TableBoxFieldActionGroup;\n\n/** Aria-label on TableBoxField's + button. Consumers that style or detect that\n * button (e.g. popover toggle guards) should import this rather than redefining it. */\nexport const TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL = 'Add item to table';\n\nconst isActionGroup = (action: TableBoxFieldActionEntry): action is TableBoxFieldActionGroup =>\n 'type' in action && action.type === 'group';\n\ninterface AddDropdownConfig {\n options: Array<{ label: string; value: string }>;\n onSelection: (value: string) => void;\n}\n\ninterface TableBoxFieldProps<T extends object = object>\n extends ImplementsFormField, Omit<TableBoxProps<T>, 'aria-label' | 'onCreateNewRow'> {\n onAdd?: (e: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: (selectedKey: string | null) => void;\n deleteDisabled?: boolean;\n /** Actions and labeled action groups rendered in order. Empty groups are omitted. */\n actions?: TableBoxFieldActionEntry[];\n addDropdownConfig?: AddDropdownConfig;\n\n /**\n * Callback to create a new row and add it to the rows array\n * Should return the id of the newly created row\n */\n createNewRow?: () => string;\n children?: ReactNode;\n}\n\nconst TableBoxField = <T extends object = object>({\n label,\n helperText,\n errorText,\n warningText,\n labelProps: labelPropsProp,\n helperProps,\n errorProps,\n warningProps,\n inputId,\n required,\n onAdd,\n onDelete,\n deleteDisabled,\n configField: configFieldProp = true,\n actions = [],\n addDropdownConfig,\n selectedKey: selectedKeyProp,\n onSelectionChange,\n defaultSelectedKey,\n selectionMode,\n disabled,\n createNewRow,\n children,\n emptyText = 'No data',\n ...props\n}: TableBoxFieldProps<T>) => {\n const { configField } = useFormGroup({ configField: configFieldProp });\n const menuActions: TableBoxFieldActionEntry[] = [...actions];\n const [selectedKeyState, setSelectedKey] = useState(defaultSelectedKey);\n const selectedKey = selectedKeyProp ?? selectedKeyState;\n const [newRowId, setNewRowId] = useState<string | null>(null);\n const labelProps: FormLabelProps = { size: 'sm', ...labelPropsProp };\n\n const handleCreateNewRow = () => {\n if (createNewRow) {\n setNewRowId(createNewRow());\n }\n };\n\n // Handle add button click\n const handleAddClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (createNewRow) {\n handleCreateNewRow();\n } else if (onAdd) {\n onAdd(e);\n }\n };\n\n if (onDelete) {\n menuActions.unshift({\n label: 'Delete',\n onClick: () => selectedKey && onDelete(selectedKey),\n disabled: deleteDisabled || selectedKey == null,\n });\n }\n const visibleMenuActions = menuActions.filter(\n (action) => !isActionGroup(action) || action.actions.length > 0,\n );\n\n const addButton = (\n <IconButton\n size='sm'\n onClick={handleAddClick}\n aria-label={TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL}\n disabled={disabled}\n >\n <PlusIcon />\n </IconButton>\n );\n\n return (\n <FormField\n label={label}\n helperText={helperText}\n errorText={errorText}\n warningText={warningText}\n labelProps={labelProps}\n helperProps={helperProps}\n errorProps={errorProps}\n warningProps={warningProps}\n inputId={inputId}\n required={required}\n rightActions={\n configField && (\n <>\n {visibleMenuActions.length > 0 && (\n <DropdownMenu\n trigger={\n <IconButton aria-label='Actions' size='sm' disabled={disabled}>\n <MoreIcon />\n </IconButton>\n }\n portal\n >\n {visibleMenuActions.map((entry, entryIndex) => {\n const previousEntry = visibleMenuActions[entryIndex - 1];\n if (isActionGroup(entry)) {\n return (\n <Fragment key={`${entry.heading}-${entryIndex}`}>\n {entryIndex > 0 && <DropdownMenu.Divider />}\n <DropdownMenu.Heading size='sm'>{entry.heading}</DropdownMenu.Heading>\n {entry.actions.map((action) => (\n <DropdownMenu.Item\n key={action.label}\n {...action}\n disabled={disabled || action.disabled}\n onClick={() => action.onClick(selectedKey)}\n size='sm'\n >\n {action.label}\n </DropdownMenu.Item>\n ))}\n </Fragment>\n );\n }\n\n return (\n <Fragment key={`${entry.label}-${entryIndex}`}>\n {previousEntry && isActionGroup(previousEntry) && <DropdownMenu.Divider />}\n <DropdownMenu.Item\n {...entry}\n disabled={disabled || entry.disabled}\n onClick={() => entry.onClick(selectedKey)}\n size='sm'\n >\n {entry.label}\n </DropdownMenu.Item>\n </Fragment>\n );\n })}\n </DropdownMenu>\n )}\n {(onAdd || createNewRow) && !addDropdownConfig && addButton}\n {addDropdownConfig && (\n <DropdownMenu trigger={addButton} portal>\n {addDropdownConfig.options.map((option) => (\n <DropdownMenu.Item\n key={option.value}\n {...option}\n onClick={() => addDropdownConfig.onSelection(option.value)}\n size='sm'\n >\n {option.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n </>\n )\n }\n >\n <TableBox\n aria-label={`${label} table`}\n // We have to control the keys so we can power the `rightActions`\n selectedKey={selectedKey}\n onSelectionChange={(key) => {\n onSelectionChange?.(key);\n setSelectedKey(key);\n }}\n selectionMode={selectionMode}\n newRowId={newRowId}\n onCreateNewRow={createNewRow ? handleCreateNewRow : undefined}\n emptyText={emptyText}\n disabled={disabled}\n {...props}\n >\n {children}\n </TableBox>\n </FormField>\n );\n};\n\n// Attach subcomponents to TableBoxField\nTableBoxField.Row = TableBox.Row;\nTableBoxField.Cell = TableBox.Cell;\n\nexport default TableBoxField;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,MAAa,YAAY,WAA2C,SAAS,UAC3E,EACE,OACA,UACA,YACA,aACA,WACA,YACA,aACA,cACA,YACA,aAAa,iBACb,uBACA,cACA,GAAG,SAEL,KACA;CACA,MAAM,EAAE,aAAa,yBAAyB,cAAc;CAC5D,MAAM,cAAc,mBAAmB;CAEvC,MAAM,eAAe,QACnB,oBAAC,WAAD;EAAW,SAAS,eAAe,aAAa,aAAa,KAAA;EAAW,GAAI;YACzE;EACS,CAAA,GACV;AAEJ,QACE,qBAAC,aAAD;EACE,UAAU,CAAC,CAAC;EACZ,YAAY,CAAC,CAAC;EACT;EACQ;EACb,iBAAiB,CAAC,CAAC;EACI;EACvB,GAAI;YAPN;GASG,eACC,qBAAC,QAAD;IAAQ,SAAQ;IAAgB,OAAM;cAAtC,CACG,cACD,oBAAC,QAAD;KAAQ,SAAS,QAAQ;eAAK;KAAsB,CAAA,CAC7C;QAET;GAEF,oBAAC,oBAAD,EAAqB,UAA8B,CAAA;GAClD,CAAC,eAAe,cAAc,oBAAC,YAAD;IAAY,GAAI;cAAc;IAAwB,CAAA;GACpF,CAAC,eAAe,eAAe,oBAAC,aAAD;IAAa,GAAI;cAAe;IAA0B,CAAA;GACzF,CAAC,eAAe,aAAa,oBAAC,WAAD;IAAW,GAAI;cAAa;IAAsB,CAAA;GACpE;;EAEhB;;;;;;;AC9FF,MAAa,0BACX,UAIG;CACH,MAAM,EACJ,OACA,SACA,YACA,WACA,aACA,YACA,aACA,cACA,YACA,aACA,uBACA,cACA,GAAG,eACD;AAEJ,QAAO;EACL,gBAAgB;GACd;GACA;GACA,UAAU,MAAM;GAChB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD;EACD;;AAKH,MAAa,YAAY,WACvB,SAAS,UAAU,OAAO,KAAK;CAC7B,MAAM,EAAE,gBAAgB,eAAe,uBAAuB,MAAM;CACpE,MAAM,EAAE,IAAI,GAAG,SAAS;AAExB,QACE,oBAAC,WAAD;EACE,GAAI;EACJ,YAAY;GAAE,MAAM,MAAM;GAAM,GAAG,eAAe;GAAY;EAC9D,SAAS,eAAe,WAAW;YAEnC,oBAACA,eAAD;GAAO,GAAI;GAAW;GAAO,CAAA;EACnB,CAAA;EAGjB;AAID,MAAa,gBAAgB,WAC3B,SAAS,cAAc,OAAO,KAAK;CACjC,MAAM,EAAE,gBAAgB,eAAe,uBAAuB,MAAM;CACpE,MAAM,EAAE,IAAI,GAAG,SAAS;AAExB,QACE,oBAAC,WAAD;EACE,GAAI;EACJ,YAAY;GAAE,MAAM,MAAM;GAAM,GAAG,eAAe;GAAY;EAC9D,SAAS,eAAe,WAAW;YAEnC,oBAACC,mBAAD;GAAU,GAAI;GAAW;GAAO,CAAA;EACtB,CAAA;EAGjB;AAID,MAAa,eAAe,EAAE,IAAI,UAAU,GAAG,YAA8B;CAC3E,MAAM,EAAE,gBAAgB,eAAe,uBAAuB,MAAM;CACpE,MAAM,WAAW,cACT,eAAe,WAAW,MAAM,SAAS,uCAAuC,EACtF,CAAC,eAAe,SAAS,GAAG,CAC7B;AAED,QACE,oBAAC,WAAD;EACE,GAAI;EACJ,SAAS;EACT,YAAY;GAAE,SAAS;GAAU,MAAM,WAAW;GAAM,GAAG,eAAe;GAAY;YAEtF,oBAAC,QAAD;GAAQ,GAAI;GAAY,IAAI;GACzB;GACM,CAAA;EACC,CAAA;;AAOhB,MAAa,mBAAmB,EAC9B,OACA,YACA,WACA,aACA,UACA,UACA,GAAG,YACuB;AAC1B,QACE,oBAAC,WAAD;EACS;EACK;EACC;EACF;EACD;YAEV,oBAAC,YAAD;GAAY,GAAI;GAAO,iBAAe;GACnC;GACU,CAAA;EACH,CAAA;;AAQhB,MAAa,iBAAiB,EAC5B,OACA,YACA,WACA,aACA,eACA,aACA,YACA,UACA,GAAG,YACqB;AACxB,QACE,oBAAC,WAAD;EACS;EACK;EACC;EACF;EACE;EACD;EACF;YAEV,oBAAC,UAAD;GAAU,OAAO;GAAyB;GAAU,GAAI;GAAS,CAAA;EACvD,CAAA;;AAMhB,MAAa,cAAc,WACzB,SAAS,YAAY,OAAO,KAAK;CAC/B,MAAM,EAAE,gBAAgB,eAAe,uBAAuB,MAAM;AAEpE,QACE,oBAAC,WAAD;EACE,GAAI;EACJ,YAAY;GAAE,MAAM,WAAW;GAAM,GAAG,eAAe;GAAY;YAEnE,oBAAC,QAAD;GAAQ,GAAI;GAAiB;GAAO,CAAA;EAC1B,CAAA;EAGjB;AAOD,MAAa,wBAAwB,WACnC,SAAS,sBACP,EACE,OACA,YACA,WACA,aACA,aACA,UACA,UACA,YACA,GAAG,SAEL,KACA;AACA,QACE,oBAAC,WAAD;EACS;EACK;EACC;EACF;EACE;EACD;EACF;YAEV,oBAAC,kBAAD;GAAkB,WAAA;GAAU,GAAI;GAAO,iBAAe;GAAe;GAClE;GACgB,CAAA;EACT,CAAA;EAGjB;AAOD,MAAa,iBACX,UACG;AAIH,KAAI,MAAM,UAAU;EAClB,MAAM,EAAE,gBAAgB,eAAe,uBAAuB,MAAM;AAEpE,SACE,oBAAC,WAAD;GAAW,GAAI;aACb,oBAAC,UAAD,EAAU,GAAI,YAAc,CAAA;GAClB,CAAA;;CAIhB,MAAM,EAAE,gBAAgB,eAAe,uBAAuB,MAAM;AAEpE,QACE,oBAAC,WAAD;EAAW,GAAI;YACb,oBAAC,UAAD,EAAU,GAAI,YAAc,CAAA;EAClB,CAAA;;;;AClQhB,MAAM,uBAAuB,cAAkC,KAAK;;;AAIpE,MAAM,qBAAqB,EAAE,eAAwC;CACnE,MAAM,gBAAgB,WAAW,mBAAmB;AACpD,QACE,oBAAC,mBAAmB,UAApB;EAA6B,OAAO;GAAE,GAAG;GAAe,SAAS,KAAA;GAAW;EACzE;EAC2B,CAAA;;AAQlC,MAAM,qBAAqB,UAAkC;CAC3D,MAAM,EAAE,aAAa;CACrB,MAAM,gBAAgB,SAAS;CAE/B,MAAM,QAAQ,WAAW,qBAAqB;CAC9C,MAAM,MAAM,QAAQ;CACpB,MAAM,EAAE,eAAe,qBAErB;EACE,GAAG;EACH,UAAU,KAAA;EACV,YAAY,cAAc;EAC1B,YAAY,cAAc;EAC1B,YAAY,cAAc;EAC1B,iBAAiB,cAAc;EAC/B,OAAO,OAAO,SAAS,MAAM,MAAM;EACnC,cAAc,UAAU,cAAc,MAAM;EAC7C,EACD,OACA,IACD;AAED,QAAO,aACL,UAEA,WAAW,YAAY;EACrB,UAAU,cAAc;EACxB,UAAU,MAAM,cAAc,cAAc;EAC5C,SAAS,MAAM,WAAW,OAAO,WAAW,MAAM,CAAC;EACnD;EACD,CAA2C,CAC7C;;AAgBH,MAAM,sBAAsB,EAC1B,UACA,MACA,UACA,UACA,UACA,UACA,GAAG,YAC0B;CAC7B,MAAM,iBAAiB;EACrB,GAAG;EACH,aAAa,MAAM;EACnB,cAAc,MAAM;EACpB;EACA;EACA,YAAY;EACZ,YAAY;EACZ,YAAY;EACb;CACD,MAAM,QAAQ,sBAAsB,eAAe;CACnD,MAAM,EAAE,YAAY,YAAY,kBAAkB,sBAAsB,iBACtE,gBACA,MACD;AAED,QACE,oBAAC,WAAD;EACc;EACZ,aAAa;EACb,YAAY;EACF;EACA;EACV,GAAI;EACJ,GAAI;YAEJ,oBAAC,mBAAD,EAAA,UACE,oBAAC,qBAAqB,UAAtB;GAA+B,OAAO;aACnC,SAAS,IAAI,WAAW,aAEvB,oBAAC,mBAAD,EAAA,UAAoB,UAA6B,CAAA,CACjD;GAC4B,CAAA,EACd,CAAA;EACV,CAAA;;;;ACzGhB,MAAM,gBAAkC,EACtC,OACA,YACA,WACA,aACA,YACA,aACA,YACA,cACA,SACA,UACA,OACA,UACA,gBACA,aAAa,iBACb,OAAO,MACP,UAAU,EAAE,EACZ,mBACA,aACA,cAAc,kBACd,mBACA,qBACA,GAAG,YACuB;CAC1B,MAAM,EAAE,gBAAgB,aAAa,EAAE,aAAa,iBAAiB,CAAC;CACtE,MAAM,cAAoC,CAAC,GAAG,QAAQ;CACtD,MAAM,CAAC,mBAAmB,mBAAmB,SAAS,oBAAoB;CAC1E,MAAM,eAAe,oBAAoB;CACzC,MAAM,gBAAgB,cAAc,OAAO;AAE3C,KAAI,SACF,aAAY,QAAQ;EAClB,OAAO;EACP,eAAe,SAAS,aAAa;EACrC,UACE,kBACA,gBAAgB,QACf,OAAO,iBAAiB,YAAY,CAAC,GAAG,aAAa,CAAC,WAAW;EACrE,CAAC;CAGJ,MAAM,YACJ,oBAAC,YAAD;EAAY,MAAK;EAAK,SAAS;EAAO,cAAW;EAAmB,UAAU;YAC5E,oBAAC,UAAD,EAAY,CAAA;EACD,CAAA;AAGf,QACE,oBAAC,WAAD;EACS;EACK;EACD;EACE;EACD;EACC;EACD;EACE;EACL;EACC;EACG;EACb,cACE,eACE,qBAAA,YAAA,EAAA,UAAA;GACG,YAAY,SAAS,KACpB,oBAACC,sBAAD;IACE,SACE,oBAAC,YAAD;KAAY,cAAW;KAAU,MAAK;eACpC,oBAAC,UAAD,EAAY,CAAA;KACD,CAAA;IAEf,QAAA;cAEC,YAAY,KAAK,WAChB,oBAACA,qBAAa,MAAd;KAEE,GAAI;KACJ,eAAe,OAAO,QAAQ,aAAa;KAC3C,MAAM;eAEL,OAAO;KACU,EANb,OAAO,MAMM,CACpB;IACW,CAAA;GAEhB,SAAS,CAAC,qBAAqB;GAC/B,qBACC,oBAACA,sBAAD;IAAc,SAAS;IAAW,OAAM;IAAQ,QAAA;cAC7C,kBAAkB,QAAQ,KAAK,WAC9B,oBAACA,qBAAa,MAAd;KAEE,GAAI;KACJ,eAAe,kBAAkB,YAAY,OAAO,MAAM;KAC1D,MAAM;eAEL,OAAO;KACU,EANb,OAAO,MAMM,CACpB;IACW,CAAA;GAEhB,EAAA,CAAA;YAIP,oBAAC,SAAD;GACE,IAAI;GACJ,WAAW;GACX,MAAM;GACU;GAEF;GACd,oBAAoB,SAAS;AAC3B,wBAAoB,KAAK;AACzB,oBAAgB,KAAK;;GAEvB,GAAI;GACJ,CAAA;EACQ,CAAA;;;;;;ACpHhB,MAAa,wCAAwC;AAErD,MAAM,iBAAiB,WACrB,UAAU,UAAU,OAAO,SAAS;AAwBtC,MAAM,iBAA4C,EAChD,OACA,YACA,WACA,aACA,YAAY,gBACZ,aACA,YACA,cACA,SACA,UACA,OACA,UACA,gBACA,aAAa,kBAAkB,MAC/B,UAAU,EAAE,EACZ,mBACA,aAAa,iBACb,mBACA,oBACA,eACA,UACA,cACA,UACA,YAAY,WACZ,GAAG,YACwB;CAC3B,MAAM,EAAE,gBAAgB,aAAa,EAAE,aAAa,iBAAiB,CAAC;CACtE,MAAM,cAA0C,CAAC,GAAG,QAAQ;CAC5D,MAAM,CAAC,kBAAkB,kBAAkB,SAAS,mBAAmB;CACvE,MAAM,cAAc,mBAAmB;CACvC,MAAM,CAAC,UAAU,eAAe,SAAwB,KAAK;CAC7D,MAAM,aAA6B;EAAE,MAAM;EAAM,GAAG;EAAgB;CAEpE,MAAM,2BAA2B;AAC/B,MAAI,aACF,aAAY,cAAc,CAAC;;CAK/B,MAAM,kBAAkB,MAAqC;AAC3D,MAAI,aACF,qBAAoB;WACX,MACT,OAAM,EAAE;;AAIZ,KAAI,SACF,aAAY,QAAQ;EAClB,OAAO;EACP,eAAe,eAAe,SAAS,YAAY;EACnD,UAAU,kBAAkB,eAAe;EAC5C,CAAC;CAEJ,MAAM,qBAAqB,YAAY,QACpC,WAAW,CAAC,cAAc,OAAO,IAAI,OAAO,QAAQ,SAAS,EAC/D;CAED,MAAM,YACJ,oBAAC,YAAD;EACE,MAAK;EACL,SAAS;EACT,cAAY;EACF;YAEV,oBAAC,UAAD,EAAY,CAAA;EACD,CAAA;AAGf,QACE,oBAAC,WAAD;EACS;EACK;EACD;EACE;EACD;EACC;EACD;EACE;EACL;EACC;EACV,cACE,eACE,qBAAA,YAAA,EAAA,UAAA;GACG,mBAAmB,SAAS,KAC3B,oBAACC,sBAAD;IACE,SACE,oBAAC,YAAD;KAAY,cAAW;KAAU,MAAK;KAAe;eACnD,oBAAC,UAAD,EAAY,CAAA;KACD,CAAA;IAEf,QAAA;cAEC,mBAAmB,KAAK,OAAO,eAAe;KAC7C,MAAM,gBAAgB,mBAAmB,aAAa;AACtD,SAAI,cAAc,MAAM,CACtB,QACE,qBAAC,UAAD,EAAA,UAAA;MACG,aAAa,KAAK,oBAACA,qBAAa,SAAd,EAAwB,CAAA;MAC3C,oBAACA,qBAAa,SAAd;OAAsB,MAAK;iBAAM,MAAM;OAA+B,CAAA;MACrE,MAAM,QAAQ,KAAK,WAClB,oBAACA,qBAAa,MAAd;OAEE,GAAI;OACJ,UAAU,YAAY,OAAO;OAC7B,eAAe,OAAO,QAAQ,YAAY;OAC1C,MAAK;iBAEJ,OAAO;OACU,EAPb,OAAO,MAOM,CACpB;MACO,EAAA,EAdI,GAAG,MAAM,QAAQ,GAAG,aAcxB;AAIf,YACE,qBAAC,UAAD,EAAA,UAAA,CACG,iBAAiB,cAAc,cAAc,IAAI,oBAACA,qBAAa,SAAd,EAAwB,CAAA,EAC1E,oBAACA,qBAAa,MAAd;MACE,GAAI;MACJ,UAAU,YAAY,MAAM;MAC5B,eAAe,MAAM,QAAQ,YAAY;MACzC,MAAK;gBAEJ,MAAM;MACW,CAAA,CACX,EAAA,EAVI,GAAG,MAAM,MAAM,GAAG,aAUtB;MAEb;IACW,CAAA;IAEf,SAAS,iBAAiB,CAAC,qBAAqB;GACjD,qBACC,oBAACA,sBAAD;IAAc,SAAS;IAAW,QAAA;cAC/B,kBAAkB,QAAQ,KAAK,WAC9B,oBAACA,qBAAa,MAAd;KAEE,GAAI;KACJ,eAAe,kBAAkB,YAAY,OAAO,MAAM;KAC1D,MAAK;eAEJ,OAAO;KACU,EANb,OAAO,MAMM,CACpB;IACW,CAAA;GAEhB,EAAA,CAAA;YAIP,oBAAC,UAAD;GACE,cAAY,GAAG,MAAM;GAER;GACb,oBAAoB,QAAQ;AAC1B,wBAAoB,IAAI;AACxB,mBAAe,IAAI;;GAEN;GACL;GACV,gBAAgB,eAAe,qBAAqB,KAAA;GACzC;GACD;GACV,GAAI;GAEH;GACQ,CAAA;EACD,CAAA;;AAKhB,cAAc,MAAM,SAAS;AAC7B,cAAc,OAAO,SAAS"}
1
+ {"version":3,"file":"FormField-DjysBTKn.mjs","names":["Input","TextArea","DropdownMenu","DropdownMenu"],"sources":["../components/FormField/FormField.tsx","../components/FormField/inputFields.tsx","../components/FormField/CheckboxGroupField.tsx","../components/FormField/ListBoxField.tsx","../components/FormField/TableBoxField.tsx"],"sourcesContent":["import { type ComponentPropsWithRef, forwardRef, type ReactElement, type ReactNode } from 'react';\n\nimport { Spacing } from '@persona/design-tokens';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport FormControl, {\n ErrorText,\n type FormControlProps,\n FormInputContainer,\n FormLabel,\n HelperText,\n WarningText,\n} from 'design-system/components/FormControl';\nimport { HStack } from 'design-system/components/Stack';\n\nexport interface FormFieldBaseProps {\n /**\n * Renders `<Label>` above input\n */\n label?: ReactNode;\n\n /**\n * ID of the input element. Providing this will automatically link the label to the input.\n */\n inputId?: string;\n\n /** Marks the field as required. The label renders an asterisk; composed fields also forward `required` to their input. */\n required?: boolean;\n\n /**\n * Renders `<HelperText>` below input\n */\n helperText?: ReactNode;\n\n /**\n * Renders `<ErrorText>` below input and helper text.\n */\n errorText?: ReactNode;\n\n /**\n * Renders `<WarningText>` below input and helper text.\n */\n warningText?: ReactNode;\n\n /**\n * Should be an input of some sort\n */\n children?: ReactElement;\n\n labelProps?: ComponentPropsWithRef<typeof FormLabel>;\n helperProps?: ComponentPropsWithRef<typeof HelperText>;\n warningProps?: ComponentPropsWithRef<typeof WarningText>;\n errorProps?: ComponentPropsWithRef<typeof ErrorText>;\n\n /**\n * Whether to render the form field as a config field.\n * This will render the helper text as a tooltip.\n */\n configField?: boolean;\n\n /**\n * Override the width of the input area when `configField` is true.\n * Accepts any valid CSS width value (e.g. `'33%'`, `'66.67%'`).\n * Defaults to `'50%'`.\n */\n configFieldInputWidth?: string;\n\n /**\n * Renders actions to the right of the label.\n */\n rightActions?: ReactNode;\n}\n\nexport interface FormFieldProps extends Omit<FormControlProps, 'children'>, FormFieldBaseProps {}\n\n/**\n * Helper component with preset slots for label, input, and helper texts.\n *\n * Prefer a composed field component, such as `<TextField>`, `<SelectField>`, or\n * `<CheckboxField>`, when one is available for the input type. Use `<FormField>` directly\n * when composing a custom control or layout.\n *\n * ## Usage\n *\n * ```tsx\n * import FormField from 'design-system/components/FormField';\n * ```\n */\nexport const FormField = forwardRef<HTMLDivElement, FormFieldProps>(function FormField(\n {\n label,\n children,\n helperText,\n warningText,\n errorText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField: configFieldProp,\n configFieldInputWidth,\n rightActions,\n ...props\n }: FormFieldProps,\n ref,\n) {\n const { configField: configFieldFormGroup } = useFormGroup();\n const configField = configFieldProp ?? configFieldFormGroup;\n\n const labelElement = label ? (\n <FormLabel tooltip={configField && helperText ? helperText : undefined} {...labelProps}>\n {label}\n </FormLabel>\n ) : null;\n\n return (\n <FormControl\n hasError={!!errorText}\n hasWarning={!!warningText}\n ref={ref}\n configField={configField}\n hasRightActions={!!rightActions}\n configFieldInputWidth={configFieldInputWidth}\n {...props}\n >\n {rightActions ? (\n <HStack justify='space-between' align='center'>\n {labelElement}\n <HStack spacing={Spacing[1]}>{rightActions}</HStack>\n </HStack>\n ) : (\n labelElement\n )}\n <FormInputContainer>{children}</FormInputContainer>\n {!configField && helperText && <HelperText {...helperProps}>{helperText}</HelperText>}\n {!configField && warningText && <WarningText {...warningProps}>{warningText}</WarningText>}\n {!configField && errorText && <ErrorText {...errorProps}>{errorText}</ErrorText>}\n </FormControl>\n );\n});\n\nexport default FormField;\n","import { uniqueId } from 'lodash-es';\nimport { forwardRef, useMemo } from 'react';\n\nimport Checkbox, { type CheckboxProps } from 'design-system/components/Checkbox';\nimport Combobox from 'design-system/components/Combobox';\nimport type { ComboboxMultiSelectProps } from 'design-system/components/Combobox/ComboboxMultiSelect';\nimport type { ComboboxSingleSelectProps } from 'design-system/components/Combobox/ComboboxSingleSelect';\nimport FormField, { type FormFieldBaseProps } from 'design-system/components/FormField/FormField';\nimport Input, { type InputProps } from 'design-system/components/Input';\nimport RadioGroup, { type RadioGroupProps } from 'design-system/components/RadioGroup';\nimport SegmentedControl, {\n type SegmentedControlProps,\n} from 'design-system/components/SegmentedControl';\nimport Select, { type SelectProps } from 'design-system/components/Select';\nimport TextArea, { type TextAreaProps } from 'design-system/components/TextArea';\nimport Toggle, { type ToggleProps } from 'design-system/components/Toggle';\n\nexport type ImplementsFormField = Omit<FormFieldBaseProps, 'children'>;\n\ntype ExtractFormFieldProps<T extends ImplementsFormField> = Pick<\n T,\n | 'label'\n | 'inputId'\n | 'required'\n | 'helperText'\n | 'errorText'\n | 'warningText'\n | 'labelProps'\n | 'helperProps'\n | 'warningProps'\n | 'errorProps'\n | 'configField'\n | 'configFieldInputWidth'\n | 'rightActions'\n>;\ntype OmitFormFieldProps<T extends ImplementsFormField> = Omit<\n T,\n Exclude<keyof ExtractFormFieldProps<T>, 'required'>\n>;\n\n/**\n * Helper to split out props that are sent to the FormField component from props sent\n * to the underlying input component.\n */\nexport const splitOutFormFieldProps = <T extends ImplementsFormField>(\n props: T,\n): {\n formFieldProps: ExtractFormFieldProps<T>;\n inputProps: OmitFormFieldProps<T>;\n} => {\n const {\n label,\n inputId,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField,\n configFieldInputWidth,\n rightActions,\n ...inputProps\n } = props;\n\n return {\n formFieldProps: {\n label,\n inputId,\n required: props.required,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n warningProps,\n errorProps,\n configField,\n configFieldInputWidth,\n rightActions,\n },\n inputProps,\n };\n};\n\nexport interface TextFieldProps extends ImplementsFormField, InputProps {}\n\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n function TextField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const { id, ...rest } = inputProps;\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: props.size, ...formFieldProps.labelProps }}\n inputId={formFieldProps.inputId ?? id}\n >\n <Input {...rest} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface TextAreaFieldProps extends ImplementsFormField, TextAreaProps {}\n\nexport const TextAreaField = forwardRef<HTMLTextAreaElement, TextAreaFieldProps>(\n function TextAreaField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const { id, ...rest } = inputProps;\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: props.size, ...formFieldProps.labelProps }}\n inputId={formFieldProps.inputId ?? id}\n >\n <TextArea {...rest} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface SelectFieldProps extends ImplementsFormField, SelectProps {}\n\nexport const SelectField = ({ id, children, ...props }: SelectFieldProps) => {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n const linkedId = useMemo(\n () => formFieldProps.inputId ?? id ?? uniqueId('pds-form-field-input-fields-select__'),\n [formFieldProps.inputId, id],\n );\n\n return (\n <FormField\n {...formFieldProps}\n inputId={linkedId}\n labelProps={{ htmlFor: linkedId, size: inputProps.size, ...formFieldProps.labelProps }}\n >\n <Select {...inputProps} id={linkedId}>\n {children}\n </Select>\n </FormField>\n );\n};\n\nexport interface RadioGroupFieldProps\n extends Omit<ImplementsFormField, 'configField'>, RadioGroupProps {}\n\nexport const RadioGroupField = ({\n label,\n helperText,\n errorText,\n warningText,\n required,\n children,\n ...props\n}: RadioGroupFieldProps) => {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n required={required}\n >\n <RadioGroup {...props} aria-required={required}>\n {children}\n </RadioGroup>\n </FormField>\n );\n};\n\nexport interface CheckboxFieldProps extends ImplementsFormField, CheckboxProps {\n checkboxLabel?: CheckboxProps['label'];\n}\n\nexport const CheckboxField = ({\n label,\n helperText,\n errorText,\n warningText,\n checkboxLabel,\n configField,\n labelProps,\n required,\n ...props\n}: CheckboxFieldProps) => {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n configField={configField}\n labelProps={labelProps}\n required={required}\n >\n <Checkbox label={checkboxLabel} required={required} {...props} />\n </FormField>\n );\n};\n\nexport interface ToggleFieldProps extends ImplementsFormField, ToggleProps {}\n\nexport const ToggleField = forwardRef<HTMLDivElement, ToggleFieldProps>(\n function ToggleField(props, ref) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField\n {...formFieldProps}\n labelProps={{ size: inputProps.size, ...formFieldProps.labelProps }}\n >\n <Toggle {...inputProps} ref={ref} />\n </FormField>\n );\n },\n);\n\nexport interface SegmentedControlFieldProps\n extends ImplementsFormField, Omit<SegmentedControlProps, 'children'> {\n children?: SegmentedControlProps['children'];\n}\n\nexport const SegmentedControlField = forwardRef<HTMLDivElement, SegmentedControlFieldProps>(\n function SegmentedControlField(\n {\n label,\n helperText,\n errorText,\n warningText,\n configField,\n required,\n children,\n labelProps,\n ...props\n },\n ref,\n ) {\n return (\n <FormField\n label={label}\n helperText={helperText}\n warningText={warningText}\n errorText={errorText}\n configField={configField}\n labelProps={labelProps}\n required={required}\n >\n <SegmentedControl fullWidth {...props} aria-required={required} ref={ref}>\n {children}\n </SegmentedControl>\n </FormField>\n );\n },\n);\n\nexport type ComboboxSingleSelectFieldProps<T = string> = ImplementsFormField &\n ComboboxSingleSelectProps<T>;\nexport type ComboboxMultiSelectFieldProps<T = string> = ImplementsFormField &\n ComboboxMultiSelectProps<T>;\n\nexport const ComboboxField = (\n props: ComboboxSingleSelectFieldProps | ComboboxMultiSelectFieldProps,\n) => {\n // `Combobox` registers its own id with the surrounding `FormControl`, which is what links the\n // label to it, so the field only forwards an explicit `inputId` when one is given. Each mode is\n // split separately: `multiple` discriminates the two, and a union split at once loses that.\n if (props.multiple) {\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField {...formFieldProps}>\n <Combobox {...inputProps} />\n </FormField>\n );\n }\n\n const { formFieldProps, inputProps } = splitOutFormFieldProps(props);\n\n return (\n <FormField {...formFieldProps}>\n <Combobox {...inputProps} />\n </FormField>\n );\n};\n","import {\n Children,\n cloneElement,\n type ComponentPropsWithRef,\n createContext,\n type ReactElement,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\nimport {\n type AriaCheckboxGroupProps,\n mergeProps,\n useCheckboxGroup,\n useCheckboxGroupItem,\n} from 'react-aria';\nimport innerText from 'react-innertext';\nimport { type CheckboxGroupState, useCheckboxGroupState } from 'react-stately';\n\nimport type { CheckboxProps } from 'design-system/components/Checkbox';\nimport type Checkbox from 'design-system/components/Checkbox';\nimport { FormControlContext } from 'design-system/components/FormControl/useFormField';\nimport FormField from 'design-system/components/FormField/FormField';\nimport type { ImplementsFormField } from 'design-system/components/FormField/inputFields';\n\n/* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\nconst CheckboxGroupContext = createContext<CheckboxGroupState>(null);\n\n/** Preserves the parent FormControl context (disabled, hasError, etc.) but clears\n * inputId so each Checkbox inside the group generates its own unique id. */\nconst ClearGroupInputId = ({ children }: { children: ReactNode }) => {\n const parentContext = useContext(FormControlContext);\n return (\n <FormControlContext.Provider value={{ ...parentContext, inputId: undefined }}>\n {children}\n </FormControlContext.Provider>\n );\n};\n\ninterface CheckboxGroupItemProps {\n children: ReactElement<ComponentPropsWithRef<typeof Checkbox>>;\n}\n\nconst CheckboxGroupItem = (props: CheckboxGroupItemProps) => {\n const { children } = props;\n const checkboxProps = children.props;\n\n const state = useContext(CheckboxGroupContext);\n const ref = useRef();\n const { inputProps } = useCheckboxGroupItem(\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n {\n ...checkboxProps,\n onChange: undefined,\n isDisabled: checkboxProps.disabled,\n isReadOnly: checkboxProps.readOnly,\n isRequired: checkboxProps.required,\n isIndeterminate: checkboxProps.indeterminate,\n value: String(children.props.value),\n 'aria-label': innerText(checkboxProps.label),\n },\n state,\n ref,\n );\n\n return cloneElement(\n children,\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n mergeProps(inputProps, {\n onChange: checkboxProps.onChange,\n disabled: state.isDisabled || checkboxProps.disabled,\n checked: state.isSelected(String(inputProps.value)),\n ref,\n } as ComponentPropsWithRef<typeof Checkbox>),\n );\n};\n\ninterface CheckboxGroupFieldProps\n extends\n Omit<ImplementsFormField, 'configField'>,\n Omit<\n AriaCheckboxGroupProps,\n 'description' | 'disabled' | 'isReadOnly' | 'isRequired' | 'errorMessage'\n > {\n children?: ReactElement<CheckboxProps>[];\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n}\n\nconst CheckboxGroupField = ({\n children,\n name,\n onChange,\n disabled,\n readOnly,\n required,\n ...props\n}: CheckboxGroupFieldProps) => {\n const reactAriaProps = {\n ...props,\n description: props.helperText,\n errorMessage: props.errorText,\n onChange,\n name,\n isDisabled: disabled,\n isReadOnly: readOnly,\n isRequired: required,\n };\n const state = useCheckboxGroupState(reactAriaProps);\n const { groupProps, labelProps, descriptionProps, errorMessageProps } = useCheckboxGroup(\n reactAriaProps,\n state,\n );\n\n return (\n <FormField\n labelProps={labelProps}\n helperProps={descriptionProps}\n errorProps={errorMessageProps}\n disabled={disabled}\n required={required}\n {...groupProps}\n {...props}\n >\n <ClearGroupInputId>\n <CheckboxGroupContext.Provider value={state}>\n {Children.map(children, (checkbox) => (\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n <CheckboxGroupItem>{checkbox}</CheckboxGroupItem>\n ))}\n </CheckboxGroupContext.Provider>\n </ClearGroupInputId>\n </FormField>\n );\n};\n\nexport default CheckboxGroupField;\n","import { type ReactNode, useState } from 'react';\n\nimport { MoreIcon, PlusIcon } from '@persona/icons';\nimport { IconButton } from 'design-system/components/Button';\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport DropdownMenu from 'design-system/components/DropdownMenu';\nimport FormField from 'design-system/components/FormField/FormField';\nimport type { ImplementsFormField } from 'design-system/components/FormField/inputFields';\nimport ListBox, { type ListBoxProps } from 'design-system/components/ListBox';\nimport type { MenuItemProps } from 'design-system/components/Menu';\n\ninterface ListBoxFieldAction extends Omit<MenuItemProps, 'children'> {\n label: string;\n onClick: (selectedKeys: ListBoxProps<any>['selectedKeys']) => void;\n}\n\ninterface AddDropdownConfig {\n options: ({ label: ReactNode; value: string } & Omit<MenuItemProps, 'children'>)[];\n onSelection: (value: string) => void;\n}\n\ninterface ListBoxFieldProps<T extends object> extends ImplementsFormField, ListBoxProps<T> {\n actions?: ListBoxFieldAction[];\n addDropdownConfig?: AddDropdownConfig;\n /** Disables the add button, e.g. while the list is read-only. */\n addDisabled?: boolean;\n}\n\nconst ListBoxField = <T extends object>({\n label,\n helperText,\n errorText,\n warningText,\n labelProps,\n helperProps,\n errorProps,\n warningProps,\n inputId,\n required,\n onAdd,\n onDelete,\n deleteDisabled,\n configField: configFieldProp,\n size = 'md',\n actions = [],\n addDropdownConfig,\n addDisabled,\n selectedKeys: selectedKeysProp,\n onSelectionChange,\n defaultSelectedKeys,\n ...props\n}: ListBoxFieldProps<T>) => {\n const { configField } = useFormGroup({ configField: configFieldProp });\n const menuActions: ListBoxFieldAction[] = [...actions];\n const [selectedKeysState, setSelectedKeys] = useState(defaultSelectedKeys);\n const selectedKeys = selectedKeysProp ?? selectedKeysState;\n const effectiveSize = configField ? 'sm' : size;\n\n if (onDelete) {\n menuActions.unshift({\n label: 'Delete',\n onClick: () => onDelete(selectedKeys),\n disabled:\n deleteDisabled ||\n selectedKeys == null ||\n (typeof selectedKeys === 'object' && [...selectedKeys].length === 0),\n });\n }\n\n const addButton = (\n <IconButton size='sm' onClick={onAdd} aria-label='Add item to list' disabled={addDisabled}>\n <PlusIcon />\n </IconButton>\n );\n\n return (\n <FormField\n label={label}\n helperText={helperText}\n errorText={errorText}\n warningText={warningText}\n labelProps={labelProps}\n helperProps={helperProps}\n errorProps={errorProps}\n warningProps={warningProps}\n inputId={inputId}\n required={required}\n configField={configField}\n rightActions={\n configField && (\n <>\n {menuActions.length > 0 && (\n <DropdownMenu\n trigger={\n <IconButton aria-label='Actions' size='sm'>\n <MoreIcon />\n </IconButton>\n }\n portal\n >\n {menuActions.map((action) => (\n <DropdownMenu.Item\n key={action.label}\n {...action}\n onClick={() => action.onClick(selectedKeys)}\n size={effectiveSize}\n >\n {action.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n {onAdd && !addDropdownConfig && addButton}\n {addDropdownConfig && (\n <DropdownMenu trigger={addButton} align='start' portal>\n {addDropdownConfig.options.map((option) => (\n <DropdownMenu.Item\n key={option.value}\n {...option}\n onClick={() => addDropdownConfig.onSelection(option.value)}\n size={effectiveSize}\n >\n {option.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n </>\n )\n }\n >\n <ListBox\n id={inputId}\n fullWidth={configField}\n size={effectiveSize}\n deleteDisabled={deleteDisabled}\n // We have to control the keys so we can power the `rightActions`\n selectedKeys={selectedKeys}\n onSelectionChange={(keys) => {\n onSelectionChange?.(keys);\n setSelectedKeys(keys);\n }}\n {...props}\n />\n </FormField>\n );\n};\n\nexport default ListBoxField;\n","import { Fragment, type MouseEvent, type ReactNode, useState } from 'react';\n\nimport { IconButton } from '@persona/design-system/components/Button';\nimport { useFormGroup } from '@persona/design-system/components/ConfigFormGroup';\nimport DropdownMenu from '@persona/design-system/components/DropdownMenu';\nimport type { FormLabelProps } from '@persona/design-system/components/FormControl';\nimport type { MenuItemProps } from '@persona/design-system/components/Menu';\nimport TableBox, { type TableBoxProps } from '@persona/design-system/components/TableBox';\nimport { MoreIcon, PlusIcon } from '@persona/icons';\n\nimport FormField from './FormField';\nimport type { ImplementsFormField } from './inputFields';\n\nexport interface TableBoxFieldAction extends Omit<MenuItemProps, 'children'> {\n label: string;\n onClick: (selectedKey: TableBoxProps['selectedKey']) => void;\n}\n\nexport interface TableBoxFieldActionGroup {\n type: 'group';\n heading: string;\n actions: TableBoxFieldAction[];\n}\n\nexport type TableBoxFieldActionEntry = TableBoxFieldAction | TableBoxFieldActionGroup;\n\n/** Aria-label on TableBoxField's + button. Consumers that style or detect that\n * button (e.g. popover toggle guards) should import this rather than redefining it. */\nexport const TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL = 'Add item to table';\n\nconst isActionGroup = (action: TableBoxFieldActionEntry): action is TableBoxFieldActionGroup =>\n 'type' in action && action.type === 'group';\n\ninterface AddDropdownConfig {\n options: Array<{ label: string; value: string }>;\n onSelection: (value: string) => void;\n}\n\ninterface TableBoxFieldProps<T extends object = object>\n extends ImplementsFormField, Omit<TableBoxProps<T>, 'aria-label' | 'onCreateNewRow'> {\n onAdd?: (e: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: (selectedKey: string | null) => void;\n deleteDisabled?: boolean;\n /** Actions and labeled action groups rendered in order. Empty groups are omitted. */\n actions?: TableBoxFieldActionEntry[];\n addDropdownConfig?: AddDropdownConfig;\n\n /**\n * Callback to create a new row and add it to the rows array\n * Should return the id of the newly created row\n */\n createNewRow?: () => string;\n children?: ReactNode;\n}\n\nconst TableBoxField = <T extends object = object>({\n label,\n helperText,\n errorText,\n warningText,\n labelProps: labelPropsProp,\n helperProps,\n errorProps,\n warningProps,\n inputId,\n required,\n onAdd,\n onDelete,\n deleteDisabled,\n configField: configFieldProp = true,\n actions = [],\n addDropdownConfig,\n selectedKey: selectedKeyProp,\n onSelectionChange,\n defaultSelectedKey,\n selectionMode,\n disabled,\n createNewRow,\n children,\n emptyText = 'No data',\n ...props\n}: TableBoxFieldProps<T>) => {\n const { configField } = useFormGroup({ configField: configFieldProp });\n const menuActions: TableBoxFieldActionEntry[] = [...actions];\n const [selectedKeyState, setSelectedKey] = useState(defaultSelectedKey);\n const selectedKey = selectedKeyProp ?? selectedKeyState;\n const [newRowId, setNewRowId] = useState<string | null>(null);\n const labelProps: FormLabelProps = { size: 'sm', ...labelPropsProp };\n\n const handleCreateNewRow = () => {\n if (createNewRow) {\n setNewRowId(createNewRow());\n }\n };\n\n // Handle add button click\n const handleAddClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (createNewRow) {\n handleCreateNewRow();\n } else if (onAdd) {\n onAdd(e);\n }\n };\n\n if (onDelete) {\n menuActions.unshift({\n label: 'Delete',\n onClick: () => selectedKey && onDelete(selectedKey),\n disabled: deleteDisabled || selectedKey == null,\n });\n }\n const visibleMenuActions = menuActions.filter(\n (action) => !isActionGroup(action) || action.actions.length > 0,\n );\n\n const addButton = (\n <IconButton\n size='sm'\n onClick={handleAddClick}\n aria-label={TABLE_BOX_FIELD_ADD_BUTTON_ARIA_LABEL}\n disabled={disabled}\n >\n <PlusIcon />\n </IconButton>\n );\n\n return (\n <FormField\n label={label}\n helperText={helperText}\n errorText={errorText}\n warningText={warningText}\n labelProps={labelProps}\n helperProps={helperProps}\n errorProps={errorProps}\n warningProps={warningProps}\n inputId={inputId}\n required={required}\n rightActions={\n configField && (\n <>\n {visibleMenuActions.length > 0 && (\n <DropdownMenu\n trigger={\n <IconButton aria-label='Actions' size='sm' disabled={disabled}>\n <MoreIcon />\n </IconButton>\n }\n portal\n >\n {visibleMenuActions.map((entry, entryIndex) => {\n const previousEntry = visibleMenuActions[entryIndex - 1];\n if (isActionGroup(entry)) {\n return (\n <Fragment key={`${entry.heading}-${entryIndex}`}>\n {entryIndex > 0 && <DropdownMenu.Divider />}\n <DropdownMenu.Heading size='sm'>{entry.heading}</DropdownMenu.Heading>\n {entry.actions.map((action) => (\n <DropdownMenu.Item\n key={action.label}\n {...action}\n disabled={disabled || action.disabled}\n onClick={() => action.onClick(selectedKey)}\n size='sm'\n >\n {action.label}\n </DropdownMenu.Item>\n ))}\n </Fragment>\n );\n }\n\n return (\n <Fragment key={`${entry.label}-${entryIndex}`}>\n {previousEntry && isActionGroup(previousEntry) && <DropdownMenu.Divider />}\n <DropdownMenu.Item\n {...entry}\n disabled={disabled || entry.disabled}\n onClick={() => entry.onClick(selectedKey)}\n size='sm'\n >\n {entry.label}\n </DropdownMenu.Item>\n </Fragment>\n );\n })}\n </DropdownMenu>\n )}\n {(onAdd || createNewRow) && !addDropdownConfig && addButton}\n {addDropdownConfig && (\n <DropdownMenu trigger={addButton} portal>\n {addDropdownConfig.options.map((option) => (\n <DropdownMenu.Item\n key={option.value}\n {...option}\n onClick={() => addDropdownConfig.onSelection(option.value)}\n size='sm'\n >\n {option.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n </>\n )\n }\n >\n <TableBox\n aria-label={`${label} table`}\n // We have to control the keys so we can power the `rightActions`\n selectedKey={selectedKey}\n onSelectionChange={(key) => {\n onSelectionChange?.(key);\n setSelectedKey(key);\n }}\n selectionMode={selectionMode}\n newRowId={newRowId}\n onCreateNewRow={createNewRow ? handleCreateNewRow : undefined}\n emptyText={emptyText}\n disabled={disabled}\n {...props}\n >\n {children}\n </TableBox>\n </FormField>\n );\n};\n\n// Attach subcomponents to TableBoxField\nTableBoxField.Row = TableBox.Row;\nTableBoxField.Cell = TableBox.Cell;\n\nexport default TableBoxField;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { n as FormFieldBaseProps, r as FormFieldProps, t as FormField } from "./FormField-D97xQCxF.mjs";
1
+ import { n as FormFieldBaseProps, r as FormFieldProps, t as FormField } from "./FormField-C80kGAIV.mjs";
2
2
  export { FormField, FormField as default, FormFieldBaseProps, FormFieldProps };
@@ -1,5 +1,5 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from "react";
2
1
  import * as _$styled_components0 from "styled-components";
2
+ import { ComponentPropsWithoutRef, ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
5
5
  //#region components/Card/Header/Header.d.ts
@@ -32,4 +32,4 @@ declare const Root: ({
32
32
  }: HeaderProps & ComponentPropsWithoutRef<"div">) => _$react_jsx_runtime0.JSX.Element;
33
33
  //#endregion
34
34
  export { Root as a, HeaderProps as i, Header as n, Title as o, HeaderContainer as r, TitleContainer as s, ActionsContainer as t };
35
- //# sourceMappingURL=Header-Ca554S1F.d.mts.map
35
+ //# sourceMappingURL=Header-C-a5fL3k.d.mts.map
package/dist/Header.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-Ca554S1F.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-C-a5fL3k.mjs";
2
2
  export { ActionsContainer, HeaderContainer, HeaderProps, Root, Title, TitleContainer, Header as default };
@@ -1,4 +1,4 @@
1
- import { i as TooltipWithIconProps } from "./Tooltip-CSM977L6.mjs";
1
+ import { i as TooltipWithIconProps } from "./Tooltip-Dj-DtGKz.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -17,4 +17,4 @@ declare const HelperTooltip: ({
17
17
  }: HelperTooltipProps) => _$react_jsx_runtime0.JSX.Element;
18
18
  //#endregion
19
19
  export { HelperTooltipProps as n, HelperTooltip as t };
20
- //# sourceMappingURL=HelperTooltip-Dk2eqeC_.d.mts.map
20
+ //# sourceMappingURL=HelperTooltip-hhMFkKmn.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as HelperTooltipProps, t as HelperTooltip } from "./HelperTooltip-Dk2eqeC_.mjs";
1
+ import { n as HelperTooltipProps, t as HelperTooltip } from "./HelperTooltip-hhMFkKmn.mjs";
2
2
  export { HelperTooltipProps, HelperTooltip as default };
@@ -1,9 +1,9 @@
1
- import { t as ASTNode } from "./types-BB5WwerD.mjs";
2
- import { a as Mode, l as TextStyle, u as ValueType } from "./types-CptsgFbu.mjs";
1
+ import { t as ASTNode } from "./types-VgGkS4JB.mjs";
2
+ import { a as Mode, l as TextStyle, u as ValueType } from "./types-CEQWndtF.mjs";
3
3
  import { SchemaValidator } from "./validation2.mjs";
4
+ import * as _$styled_components0 from "styled-components";
4
5
  import * as _$react from "react";
5
6
  import { FC, ReactNode } from "react";
6
- import * as _$styled_components0 from "styled-components";
7
7
 
8
8
  //#region components/SmartTextInput/HighlightedText.d.ts
9
9
  type OverlayContainerProps = {
@@ -1,11 +1,11 @@
1
1
  import { a as styled } from "./styledComponentsInterop-NxwFjeA4.mjs";
2
+ import "./variables/transitions.mjs";
2
3
  import { t as Card_default } from "./Card-BXNxWX5C.mjs";
3
4
  import { i as Paragraph } from "./Text-CSwFifQF.mjs";
4
5
  import { t as useToggle } from "./useToggle-DRzCDqrc.mjs";
5
6
  import { fadeIn } from "./variables/keyframes.mjs";
6
- import "./variables/transitions.mjs";
7
- import { n as Button } from "./IconButton-H5vDZOdo.mjs";
8
- import { s as Popover_default } from "./Popover-532iYFek.mjs";
7
+ import { n as Button } from "./IconButton-D4awF770.mjs";
8
+ import { s as Popover_default } from "./Popover-DewrGOJB.mjs";
9
9
  import { Spacing } from "@persona/design-tokens";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  import { CopyIcon } from "@persona/icons";
@@ -111,4 +111,4 @@ const HoverCopyableField = ({ copyValue, confirmationText = "Copied", onCopySucc
111
111
  //#endregion
112
112
  export { HoverCopyableField as t };
113
113
 
114
- //# sourceMappingURL=HoverCopyableField-CewUtxZl.mjs.map
114
+ //# sourceMappingURL=HoverCopyableField-Cgu3W31s.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"HoverCopyableField-CewUtxZl.mjs","names":["Card","Popover"],"sources":["../components/HoverCopyableField/HoverCopyableField.tsx"],"sourcesContent":["import type { MouseEvent, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { CopyIcon } from '@persona/icons';\nimport Button from 'design-system/components/Button';\nimport Card from 'design-system/components/Card';\nimport Popover from 'design-system/components/Popover';\nimport { Paragraph } from 'design-system/components/Text';\nimport useToggle from 'design-system/lib/useToggle';\nimport { fadeIn } from 'design-system/variables/keyframes';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nexport type CopySuccessDetail = {\n text: string;\n clientX: number;\n clientY: number;\n};\n\nexport type HoverCopyableFieldProps = {\n copyValue: string | undefined;\n confirmationText?: string;\n /**\n * Called after a successful clipboard write. When provided, the Copied\n * popover is skipped so the host can own post-copy UX.\n */\n onCopySuccess?: (detail: CopySuccessDetail) => void;\n children: ReactNode;\n};\n\nconst copyToClipboard = async (text: string): Promise<boolean> => {\n try {\n if ('clipboard' in navigator) {\n await navigator.clipboard.writeText(text);\n return true;\n } else {\n return document.execCommand('copy', true, text);\n }\n } catch {\n return false;\n }\n};\n\nconst clickOrigin = (e: MouseEvent<HTMLButtonElement>): { clientX: number; clientY: number } => {\n const rect = e.currentTarget.getBoundingClientRect();\n const hasPointer = e.clientX !== 0 || e.clientY !== 0;\n return {\n clientX: hasPointer ? e.clientX : rect.left + rect.width / 2,\n clientY: rect.top,\n };\n};\n\nconst CopyableFieldContainer = styled.div`\n display: flex;\n gap: ${Spacing[1]};\n align-items: center;\n`;\n\nconst CopyButton = styled(Button).attrs(() => ({\n type: 'button',\n variant: 'inverse',\n width: 'icon',\n}))<{ isActive: boolean }>`\n height: ${Spacing[5]};\n width: ${Spacing[5]};\n visibility: ${({ isActive }) => (isActive ? 'visible' : 'hidden')};\n animation: ${fadeIn} ${TransitionDuration.Medium} ease-in-out;\n svg {\n width: 14px;\n height: 14px;\n }\n`;\n\nconst StyledCard = styled(Card)`\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n animation: ${fadeIn} ${TransitionDuration.Medium} ease-in-out;\n padding: 6px;\n margin: 0;\n`;\n\nconst HoverCopyableField = ({\n copyValue,\n confirmationText = 'Copied',\n onCopySuccess,\n children,\n}: HoverCopyableFieldProps) => {\n const [copyButtonActive, { enable: showCopyButton, disable: hideCopyButton }] = useToggle(false);\n const [confirmationActive, { enable: showConfirmation, disable: hideConfirmation }] =\n useToggle(false);\n\n const copyTextToClipboard = async (origin: { clientX: number; clientY: number }) => {\n if (copyValue == null) {\n return;\n }\n const copyWasSuccessful = await copyToClipboard(copyValue);\n if (!copyWasSuccessful) {\n return;\n }\n if (onCopySuccess) {\n onCopySuccess({ text: copyValue, ...origin });\n hideCopyButton();\n return;\n }\n showConfirmation();\n setTimeout(() => {\n hideCopyButton();\n hideConfirmation();\n }, 1200);\n };\n\n const copyField = (e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n void copyTextToClipboard(clickOrigin(e));\n };\n\n return copyValue != null && copyValue.trim().length > 0 ? (\n <CopyableFieldContainer onMouseEnter={showCopyButton} onMouseLeave={hideCopyButton}>\n {children}\n <Popover open={confirmationActive}>\n <Popover.Anchor asChild>\n <CopyButton\n id='hover-copyable-field__copy-button'\n isActive={copyButtonActive || confirmationActive}\n onClick={copyField}\n >\n <CopyIcon width={16} height={16} />\n </CopyButton>\n </Popover.Anchor>\n <Popover.Content side='top' align='center' style={{ zIndex: 2 }}>\n <StyledCard elevated>\n <Paragraph>{confirmationText}</Paragraph>\n </StyledCard>\n </Popover.Content>\n </Popover>\n </CopyableFieldContainer>\n ) : null;\n};\n\nexport default HoverCopyableField;\n"],"mappings":";;;;;;;;;;;;AA8BA,MAAM,kBAAkB,OAAO,SAAmC;AAChE,KAAI;AACF,MAAI,eAAe,WAAW;AAC5B,SAAM,UAAU,UAAU,UAAU,KAAK;AACzC,UAAO;QAEP,QAAO,SAAS,YAAY,QAAQ,MAAM,KAAK;SAE3C;AACN,SAAO;;;AAIX,MAAM,eAAe,MAA2E;CAC9F,MAAM,OAAO,EAAE,cAAc,uBAAuB;AAEpD,QAAO;EACL,SAFiB,EAAE,YAAY,KAAK,EAAE,YAAY,IAE5B,EAAE,UAAU,KAAK,OAAO,KAAK,QAAQ;EAC3D,SAAS,KAAK;EACf;;AAGH,MAAM,yBAAyB,OAAO,GAAG;;SAEhC,QAAQ,GAAG;;;AAIpB,MAAM,aAAa,OAAO,OAAO,CAAC,aAAa;CAC7C,MAAM;CACN,SAAS;CACT,OAAO;CACR,EAAE;YACS,QAAQ,GAAG;WACZ,QAAQ,GAAG;iBACL,EAAE,eAAgB,WAAW,YAAY,SAAU;eACrD,OAAO,GAAA,QAA6B;;;;;;AAOnD,MAAM,aAAa,OAAOA,aAAK;;;;;eAKhB,OAAO,GAAA,QAA6B;;;;AAKnD,MAAM,sBAAsB,EAC1B,WACA,mBAAmB,UACnB,eACA,eAC6B;CAC7B,MAAM,CAAC,kBAAkB,EAAE,QAAQ,gBAAgB,SAAS,oBAAoB,UAAU,MAAM;CAChG,MAAM,CAAC,oBAAoB,EAAE,QAAQ,kBAAkB,SAAS,sBAC9D,UAAU,MAAM;CAElB,MAAM,sBAAsB,OAAO,WAAiD;AAClF,MAAI,aAAa,KACf;AAGF,MAAI,CAAC,MAD2B,gBAAgB,UAAU,CAExD;AAEF,MAAI,eAAe;AACjB,iBAAc;IAAE,MAAM;IAAW,GAAG;IAAQ,CAAC;AAC7C,mBAAgB;AAChB;;AAEF,oBAAkB;AAClB,mBAAiB;AACf,mBAAgB;AAChB,qBAAkB;KACjB,KAAK;;CAGV,MAAM,aAAa,MAAqC;AACtD,IAAE,gBAAgB;AAClB,IAAE,iBAAiB;AACd,sBAAoB,YAAY,EAAE,CAAC;;AAG1C,QAAO,aAAa,QAAQ,UAAU,MAAM,CAAC,SAAS,IACpD,qBAAC,wBAAD;EAAwB,cAAc;EAAgB,cAAc;YAApE,CACG,UACD,qBAACC,iBAAD;GAAS,MAAM;aAAf,CACE,oBAACA,gBAAQ,QAAT;IAAgB,SAAA;cACd,oBAAC,YAAD;KACE,IAAG;KACH,UAAU,oBAAoB;KAC9B,SAAS;eAET,oBAAC,UAAD;MAAU,OAAO;MAAI,QAAQ;MAAM,CAAA;KACxB,CAAA;IACE,CAAA,EACjB,oBAACA,gBAAQ,SAAT;IAAiB,MAAK;IAAM,OAAM;IAAS,OAAO,EAAE,QAAQ,GAAG;cAC7D,oBAAC,YAAD;KAAY,UAAA;eACV,oBAAC,WAAD,EAAA,UAAY,kBAA6B,CAAA;KAC9B,CAAA;IACG,CAAA,CACV;KACa;MACvB"}
1
+ {"version":3,"file":"HoverCopyableField-Cgu3W31s.mjs","names":["Card","Popover"],"sources":["../components/HoverCopyableField/HoverCopyableField.tsx"],"sourcesContent":["import type { MouseEvent, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { CopyIcon } from '@persona/icons';\nimport Button from 'design-system/components/Button';\nimport Card from 'design-system/components/Card';\nimport Popover from 'design-system/components/Popover';\nimport { Paragraph } from 'design-system/components/Text';\nimport useToggle from 'design-system/lib/useToggle';\nimport { fadeIn } from 'design-system/variables/keyframes';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nexport type CopySuccessDetail = {\n text: string;\n clientX: number;\n clientY: number;\n};\n\nexport type HoverCopyableFieldProps = {\n copyValue: string | undefined;\n confirmationText?: string;\n /**\n * Called after a successful clipboard write. When provided, the Copied\n * popover is skipped so the host can own post-copy UX.\n */\n onCopySuccess?: (detail: CopySuccessDetail) => void;\n children: ReactNode;\n};\n\nconst copyToClipboard = async (text: string): Promise<boolean> => {\n try {\n if ('clipboard' in navigator) {\n await navigator.clipboard.writeText(text);\n return true;\n } else {\n return document.execCommand('copy', true, text);\n }\n } catch {\n return false;\n }\n};\n\nconst clickOrigin = (e: MouseEvent<HTMLButtonElement>): { clientX: number; clientY: number } => {\n const rect = e.currentTarget.getBoundingClientRect();\n const hasPointer = e.clientX !== 0 || e.clientY !== 0;\n return {\n clientX: hasPointer ? e.clientX : rect.left + rect.width / 2,\n clientY: rect.top,\n };\n};\n\nconst CopyableFieldContainer = styled.div`\n display: flex;\n gap: ${Spacing[1]};\n align-items: center;\n`;\n\nconst CopyButton = styled(Button).attrs(() => ({\n type: 'button',\n variant: 'inverse',\n width: 'icon',\n}))<{ isActive: boolean }>`\n height: ${Spacing[5]};\n width: ${Spacing[5]};\n visibility: ${({ isActive }) => (isActive ? 'visible' : 'hidden')};\n animation: ${fadeIn} ${TransitionDuration.Medium} ease-in-out;\n svg {\n width: 14px;\n height: 14px;\n }\n`;\n\nconst StyledCard = styled(Card)`\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n animation: ${fadeIn} ${TransitionDuration.Medium} ease-in-out;\n padding: 6px;\n margin: 0;\n`;\n\nconst HoverCopyableField = ({\n copyValue,\n confirmationText = 'Copied',\n onCopySuccess,\n children,\n}: HoverCopyableFieldProps) => {\n const [copyButtonActive, { enable: showCopyButton, disable: hideCopyButton }] = useToggle(false);\n const [confirmationActive, { enable: showConfirmation, disable: hideConfirmation }] =\n useToggle(false);\n\n const copyTextToClipboard = async (origin: { clientX: number; clientY: number }) => {\n if (copyValue == null) {\n return;\n }\n const copyWasSuccessful = await copyToClipboard(copyValue);\n if (!copyWasSuccessful) {\n return;\n }\n if (onCopySuccess) {\n onCopySuccess({ text: copyValue, ...origin });\n hideCopyButton();\n return;\n }\n showConfirmation();\n setTimeout(() => {\n hideCopyButton();\n hideConfirmation();\n }, 1200);\n };\n\n const copyField = (e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n void copyTextToClipboard(clickOrigin(e));\n };\n\n return copyValue != null && copyValue.trim().length > 0 ? (\n <CopyableFieldContainer onMouseEnter={showCopyButton} onMouseLeave={hideCopyButton}>\n {children}\n <Popover open={confirmationActive}>\n <Popover.Anchor asChild>\n <CopyButton\n id='hover-copyable-field__copy-button'\n isActive={copyButtonActive || confirmationActive}\n onClick={copyField}\n >\n <CopyIcon width={16} height={16} />\n </CopyButton>\n </Popover.Anchor>\n <Popover.Content side='top' align='center' style={{ zIndex: 2 }}>\n <StyledCard elevated>\n <Paragraph>{confirmationText}</Paragraph>\n </StyledCard>\n </Popover.Content>\n </Popover>\n </CopyableFieldContainer>\n ) : null;\n};\n\nexport default HoverCopyableField;\n"],"mappings":";;;;;;;;;;;;AA8BA,MAAM,kBAAkB,OAAO,SAAmC;AAChE,KAAI;AACF,MAAI,eAAe,WAAW;AAC5B,SAAM,UAAU,UAAU,UAAU,KAAK;AACzC,UAAO;QAEP,QAAO,SAAS,YAAY,QAAQ,MAAM,KAAK;SAE3C;AACN,SAAO;;;AAIX,MAAM,eAAe,MAA2E;CAC9F,MAAM,OAAO,EAAE,cAAc,uBAAuB;AAEpD,QAAO;EACL,SAFiB,EAAE,YAAY,KAAK,EAAE,YAAY,IAE5B,EAAE,UAAU,KAAK,OAAO,KAAK,QAAQ;EAC3D,SAAS,KAAK;EACf;;AAGH,MAAM,yBAAyB,OAAO,GAAG;;SAEhC,QAAQ,GAAG;;;AAIpB,MAAM,aAAa,OAAO,OAAO,CAAC,aAAa;CAC7C,MAAM;CACN,SAAS;CACT,OAAO;CACR,EAAE;YACS,QAAQ,GAAG;WACZ,QAAQ,GAAG;iBACL,EAAE,eAAgB,WAAW,YAAY,SAAU;eACrD,OAAO,GAAA,QAA6B;;;;;;AAOnD,MAAM,aAAa,OAAOA,aAAK;;;;;eAKhB,OAAO,GAAA,QAA6B;;;;AAKnD,MAAM,sBAAsB,EAC1B,WACA,mBAAmB,UACnB,eACA,eAC6B;CAC7B,MAAM,CAAC,kBAAkB,EAAE,QAAQ,gBAAgB,SAAS,oBAAoB,UAAU,MAAM;CAChG,MAAM,CAAC,oBAAoB,EAAE,QAAQ,kBAAkB,SAAS,sBAC9D,UAAU,MAAM;CAElB,MAAM,sBAAsB,OAAO,WAAiD;AAClF,MAAI,aAAa,KACf;AAGF,MAAI,CAAC,MAD2B,gBAAgB,UAAU,CAExD;AAEF,MAAI,eAAe;AACjB,iBAAc;IAAE,MAAM;IAAW,GAAG;IAAQ,CAAC;AAC7C,mBAAgB;AAChB;;AAEF,oBAAkB;AAClB,mBAAiB;AACf,mBAAgB;AAChB,qBAAkB;KACjB,KAAK;;CAGV,MAAM,aAAa,MAAqC;AACtD,IAAE,gBAAgB;AAClB,IAAE,iBAAiB;AACd,sBAAoB,YAAY,EAAE,CAAC;;AAG1C,QAAO,aAAa,QAAQ,UAAU,MAAM,CAAC,SAAS,IACpD,qBAAC,wBAAD;EAAwB,cAAc;EAAgB,cAAc;YAApE,CACG,UACD,qBAACC,iBAAD;GAAS,MAAM;aAAf,CACE,oBAACA,gBAAQ,QAAT;IAAgB,SAAA;cACd,oBAAC,YAAD;KACE,IAAG;KACH,UAAU,oBAAoB;KAC9B,SAAS;eAET,oBAAC,UAAD;MAAU,OAAO;MAAI,QAAQ;MAAM,CAAA;KACxB,CAAA;IACE,CAAA,EACjB,oBAACA,gBAAQ,SAAT;IAAiB,MAAK;IAAM,OAAM;IAAS,OAAO,EAAE,QAAQ,GAAG;cAC7D,oBAAC,YAAD;KAAY,UAAA;eACV,oBAAC,WAAD,EAAA,UAAY,kBAA6B,CAAA;KAC9B,CAAA;IACG,CAAA,CACV;KACa;MACvB"}
@@ -1,4 +1,4 @@
1
- import { i as CommonStrings, n as CommonStringOverrides } from "./strings-BaQZhOjo.mjs";
1
+ import { i as CommonStrings, n as CommonStringOverrides } from "./strings-CUZrwL-Q.mjs";
2
2
  import { FC, PropsWithChildren } from "react";
3
3
 
4
4
  //#region lib/i18n/I18nContext.d.ts
@@ -19,4 +19,4 @@ declare function usePDSStrings(): CommonStrings;
19
19
  declare function usePDSLocale(): string | undefined;
20
20
  //#endregion
21
21
  export { usePDSStrings as i, PDSI18nProviderProps as n, usePDSLocale as r, PDSI18nProvider as t };
22
- //# sourceMappingURL=I18nContext-DXcImEuM.d.mts.map
22
+ //# sourceMappingURL=I18nContext-ioYM_vqG.d.mts.map
@@ -1,2 +1,2 @@
1
- import { i as usePDSStrings, n as PDSI18nProviderProps, r as usePDSLocale, t as PDSI18nProvider } from "./I18nContext-DXcImEuM.mjs";
1
+ import { i as usePDSStrings, n as PDSI18nProviderProps, r as usePDSLocale, t as PDSI18nProvider } from "./I18nContext-ioYM_vqG.mjs";
2
2
  export { PDSI18nProvider, PDSI18nProviderProps, usePDSLocale, usePDSStrings };