@pega/cosmos-react-core 9.0.0-build.1.0 → 9.0.0-build.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (687) hide show
  1. package/lib/components/AppShell/AppHeader.d.ts.map +1 -1
  2. package/lib/components/AppShell/AppHeader.js +4 -1
  3. package/lib/components/AppShell/AppHeader.js.map +1 -1
  4. package/lib/components/AppShell/AppShell.styles.d.ts.map +1 -1
  5. package/lib/components/AppShell/AppShell.styles.js +3 -1
  6. package/lib/components/AppShell/AppShell.styles.js.map +1 -1
  7. package/lib/components/AppShell/NavigationListItemWrapper.d.ts.map +1 -1
  8. package/lib/components/AppShell/NavigationListItemWrapper.js +3 -4
  9. package/lib/components/AppShell/NavigationListItemWrapper.js.map +1 -1
  10. package/lib/components/AppShell/ThemeSwitcher.d.ts +9 -0
  11. package/lib/components/AppShell/ThemeSwitcher.d.ts.map +1 -0
  12. package/lib/components/AppShell/ThemeSwitcher.js +58 -0
  13. package/lib/components/AppShell/ThemeSwitcher.js.map +1 -0
  14. package/lib/components/AppShell/ThemeSwitcher.test-ids.d.ts +2 -0
  15. package/lib/components/AppShell/ThemeSwitcher.test-ids.d.ts.map +1 -0
  16. package/lib/components/AppShell/ThemeSwitcher.test-ids.js +3 -0
  17. package/lib/components/AppShell/ThemeSwitcher.test-ids.js.map +1 -0
  18. package/lib/components/Avatar/Avatar.d.ts.map +1 -1
  19. package/lib/components/Avatar/Avatar.js +10 -4
  20. package/lib/components/Avatar/Avatar.js.map +1 -1
  21. package/lib/components/Banner/Banner.js +1 -1
  22. package/lib/components/Banner/Banner.js.map +1 -1
  23. package/lib/components/Card/CardHeader.d.ts.map +1 -1
  24. package/lib/components/Card/CardHeader.js +2 -2
  25. package/lib/components/Card/CardHeader.js.map +1 -1
  26. package/lib/components/ComboBox/ComboBox.d.ts.map +1 -1
  27. package/lib/components/ComboBox/ComboBox.js +8 -3
  28. package/lib/components/ComboBox/ComboBox.js.map +1 -1
  29. package/lib/components/ComboBox/ComboBox.types.d.ts +5 -0
  30. package/lib/components/ComboBox/ComboBox.types.d.ts.map +1 -1
  31. package/lib/components/ComboBox/ComboBox.types.js.map +1 -1
  32. package/lib/components/CompositeInput/CompositeInput.d.ts.map +1 -1
  33. package/lib/components/CompositeInput/CompositeInput.js +3 -9
  34. package/lib/components/CompositeInput/CompositeInput.js.map +1 -1
  35. package/lib/components/Configuration/Configuration.d.ts +7 -2
  36. package/lib/components/Configuration/Configuration.d.ts.map +1 -1
  37. package/lib/components/Configuration/Configuration.js +6 -4
  38. package/lib/components/Configuration/Configuration.js.map +1 -1
  39. package/lib/components/CreditCard/CreditCardInput.d.ts +1 -1
  40. package/lib/components/Currency/CurrencyInput.d.ts.map +1 -1
  41. package/lib/components/Currency/CurrencyInput.js +8 -4
  42. package/lib/components/Currency/CurrencyInput.js.map +1 -1
  43. package/lib/components/DateTime/Input/DateInput.d.ts.map +1 -1
  44. package/lib/components/DateTime/Input/DateInput.js +8 -6
  45. package/lib/components/DateTime/Input/DateInput.js.map +1 -1
  46. package/lib/components/DateTime/Input/DateTime.styles.d.ts.map +1 -1
  47. package/lib/components/DateTime/Input/DateTime.styles.js +0 -4
  48. package/lib/components/DateTime/Input/DateTime.styles.js.map +1 -1
  49. package/lib/components/DateTime/Input/DateTimeInput.d.ts.map +1 -1
  50. package/lib/components/DateTime/Input/DateTimeInput.js +29 -10
  51. package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
  52. package/lib/components/DateTime/Input/MonthInput.d.ts.map +1 -1
  53. package/lib/components/DateTime/Input/MonthInput.js +1 -1
  54. package/lib/components/DateTime/Input/MonthInput.js.map +1 -1
  55. package/lib/components/DateTime/Input/PartInput.d.ts.map +1 -1
  56. package/lib/components/DateTime/Input/PartInput.js +6 -1
  57. package/lib/components/DateTime/Input/PartInput.js.map +1 -1
  58. package/lib/components/DateTime/Input/QuarterInput.d.ts.map +1 -1
  59. package/lib/components/DateTime/Input/QuarterInput.js +1 -1
  60. package/lib/components/DateTime/Input/QuarterInput.js.map +1 -1
  61. package/lib/components/DateTime/Input/TimeInput.d.ts.map +1 -1
  62. package/lib/components/DateTime/Input/TimeInput.js +1 -1
  63. package/lib/components/DateTime/Input/TimeInput.js.map +1 -1
  64. package/lib/components/DateTime/Input/WeekInput.d.ts.map +1 -1
  65. package/lib/components/DateTime/Input/WeekInput.js +7 -5
  66. package/lib/components/DateTime/Input/WeekInput.js.map +1 -1
  67. package/lib/components/DateTime/Input/utils.d.ts +2 -2
  68. package/lib/components/DateTime/Input/utils.d.ts.map +1 -1
  69. package/lib/components/DateTime/Input/utils.js +4 -3
  70. package/lib/components/DateTime/Input/utils.js.map +1 -1
  71. package/lib/components/DateTime/Picker/utils.d.ts.map +1 -1
  72. package/lib/components/DateTime/Picker/utils.js +2 -6
  73. package/lib/components/DateTime/Picker/utils.js.map +1 -1
  74. package/lib/components/Dialog/Dialog.types.d.ts +4 -0
  75. package/lib/components/Dialog/Dialog.types.d.ts.map +1 -1
  76. package/lib/components/Dialog/Dialog.types.js.map +1 -1
  77. package/lib/components/Dialog/FormDialog.d.ts.map +1 -1
  78. package/lib/components/Dialog/FormDialog.js +7 -2
  79. package/lib/components/Dialog/FormDialog.js.map +1 -1
  80. package/lib/components/Dialog/InfoDialog.js +1 -1
  81. package/lib/components/Dialog/InfoDialog.js.map +1 -1
  82. package/lib/components/Drawer/Drawer.d.ts +8 -1
  83. package/lib/components/Drawer/Drawer.d.ts.map +1 -1
  84. package/lib/components/Drawer/Drawer.js +67 -8
  85. package/lib/components/Drawer/Drawer.js.map +1 -1
  86. package/lib/components/Drawer/ResizeHandle.d.ts +9 -0
  87. package/lib/components/Drawer/ResizeHandle.d.ts.map +1 -0
  88. package/lib/components/Drawer/ResizeHandle.js +109 -0
  89. package/lib/components/Drawer/ResizeHandle.js.map +1 -0
  90. package/lib/components/Drawer/index.d.ts +2 -0
  91. package/lib/components/Drawer/index.d.ts.map +1 -1
  92. package/lib/components/Drawer/index.js +1 -0
  93. package/lib/components/Drawer/index.js.map +1 -1
  94. package/lib/components/FieldGroup/FieldGroup.d.ts +5 -0
  95. package/lib/components/FieldGroup/FieldGroup.d.ts.map +1 -1
  96. package/lib/components/FieldGroup/FieldGroup.js +10 -6
  97. package/lib/components/FieldGroup/FieldGroup.js.map +1 -1
  98. package/lib/components/FieldGroup/FieldGroupList.d.ts +17 -2
  99. package/lib/components/FieldGroup/FieldGroupList.d.ts.map +1 -1
  100. package/lib/components/FieldGroup/FieldGroupList.js +202 -50
  101. package/lib/components/FieldGroup/FieldGroupList.js.map +1 -1
  102. package/lib/components/FieldGroup/FieldGroupList.utils.d.ts +33 -0
  103. package/lib/components/FieldGroup/FieldGroupList.utils.d.ts.map +1 -0
  104. package/lib/components/FieldGroup/FieldGroupList.utils.js +74 -0
  105. package/lib/components/FieldGroup/FieldGroupList.utils.js.map +1 -0
  106. package/lib/components/FieldGroup/FieldGroupListContext.d.ts +8 -0
  107. package/lib/components/FieldGroup/FieldGroupListContext.d.ts.map +1 -0
  108. package/lib/components/FieldGroup/FieldGroupListContext.js +9 -0
  109. package/lib/components/FieldGroup/FieldGroupListContext.js.map +1 -0
  110. package/lib/components/FieldGroup/index.d.ts +2 -0
  111. package/lib/components/FieldGroup/index.d.ts.map +1 -1
  112. package/lib/components/FieldGroup/index.js +2 -0
  113. package/lib/components/FieldGroup/index.js.map +1 -1
  114. package/lib/components/FieldValueList/FieldValueList.d.ts.map +1 -1
  115. package/lib/components/FieldValueList/FieldValueList.js +11 -5
  116. package/lib/components/FieldValueList/FieldValueList.js.map +1 -1
  117. package/lib/components/File/FileInput.d.ts.map +1 -1
  118. package/lib/components/File/FileInput.js +4 -3
  119. package/lib/components/File/FileInput.js.map +1 -1
  120. package/lib/components/File/FileItem.d.ts.map +1 -1
  121. package/lib/components/File/FileItem.js +2 -2
  122. package/lib/components/File/FileItem.js.map +1 -1
  123. package/lib/components/Form/Form.d.ts +2 -0
  124. package/lib/components/Form/Form.d.ts.map +1 -1
  125. package/lib/components/Form/Form.js +2 -2
  126. package/lib/components/Form/Form.js.map +1 -1
  127. package/lib/components/FormField/FormField.d.ts.map +1 -1
  128. package/lib/components/FormField/FormField.js +3 -2
  129. package/lib/components/FormField/FormField.js.map +1 -1
  130. package/lib/components/Fullscreen/Fullscreen.d.ts.map +1 -1
  131. package/lib/components/Fullscreen/Fullscreen.js +8 -5
  132. package/lib/components/Fullscreen/Fullscreen.js.map +1 -1
  133. package/lib/components/Icon/Icon.d.ts.map +1 -1
  134. package/lib/components/Icon/Icon.js +7 -2
  135. package/lib/components/Icon/Icon.js.map +1 -1
  136. package/lib/components/Icon/streamline-icons/archive-solid.icon.d.ts +5 -0
  137. package/lib/components/Icon/streamline-icons/archive-solid.icon.d.ts.map +1 -0
  138. package/lib/components/Icon/streamline-icons/archive-solid.icon.js +7 -0
  139. package/lib/components/Icon/streamline-icons/archive-solid.icon.js.map +1 -0
  140. package/lib/components/Icon/streamline-icons/archive.icon.d.ts +5 -0
  141. package/lib/components/Icon/streamline-icons/archive.icon.d.ts.map +1 -0
  142. package/lib/components/Icon/streamline-icons/archive.icon.js +7 -0
  143. package/lib/components/Icon/streamline-icons/archive.icon.js.map +1 -0
  144. package/lib/components/Icon/streamline-icons/article-solid.icon.d.ts +5 -0
  145. package/lib/components/Icon/streamline-icons/article-solid.icon.d.ts.map +1 -0
  146. package/lib/components/Icon/streamline-icons/article-solid.icon.js +7 -0
  147. package/lib/components/Icon/streamline-icons/article-solid.icon.js.map +1 -0
  148. package/lib/components/Icon/streamline-icons/article.icon.d.ts +5 -0
  149. package/lib/components/Icon/streamline-icons/article.icon.d.ts.map +1 -0
  150. package/lib/components/Icon/streamline-icons/article.icon.js +7 -0
  151. package/lib/components/Icon/streamline-icons/article.icon.js.map +1 -0
  152. package/lib/components/Icon/streamline-icons/bell-solid.icon.d.ts +5 -0
  153. package/lib/components/Icon/streamline-icons/bell-solid.icon.d.ts.map +1 -0
  154. package/lib/components/Icon/streamline-icons/bell-solid.icon.js +7 -0
  155. package/lib/components/Icon/streamline-icons/bell-solid.icon.js.map +1 -0
  156. package/lib/components/Icon/streamline-icons/browser-site.icon.d.ts +5 -0
  157. package/lib/components/Icon/streamline-icons/browser-site.icon.d.ts.map +1 -0
  158. package/lib/components/Icon/streamline-icons/browser-site.icon.js +7 -0
  159. package/lib/components/Icon/streamline-icons/browser-site.icon.js.map +1 -0
  160. package/lib/components/Icon/streamline-icons/circle-mixed-right.icon.d.ts +5 -0
  161. package/lib/components/Icon/streamline-icons/circle-mixed-right.icon.d.ts.map +1 -0
  162. package/lib/components/Icon/streamline-icons/circle-mixed-right.icon.js +7 -0
  163. package/lib/components/Icon/streamline-icons/circle-mixed-right.icon.js.map +1 -0
  164. package/lib/components/Icon/streamline-icons/circle-stacked-mixed.icon.d.ts +5 -0
  165. package/lib/components/Icon/streamline-icons/circle-stacked-mixed.icon.d.ts.map +1 -0
  166. package/lib/components/Icon/streamline-icons/circle-stacked-mixed.icon.js +7 -0
  167. package/lib/components/Icon/streamline-icons/circle-stacked-mixed.icon.js.map +1 -0
  168. package/lib/components/Icon/streamline-icons/circle-stacked.icon.d.ts +5 -0
  169. package/lib/components/Icon/streamline-icons/circle-stacked.icon.d.ts.map +1 -0
  170. package/lib/components/Icon/streamline-icons/circle-stacked.icon.js +7 -0
  171. package/lib/components/Icon/streamline-icons/circle-stacked.icon.js.map +1 -0
  172. package/lib/components/Icon/streamline-icons/cloud-nodes.icon.d.ts +5 -0
  173. package/lib/components/Icon/streamline-icons/cloud-nodes.icon.d.ts.map +1 -0
  174. package/lib/components/Icon/streamline-icons/cloud-nodes.icon.js +7 -0
  175. package/lib/components/Icon/streamline-icons/cloud-nodes.icon.js.map +1 -0
  176. package/lib/components/Icon/streamline-icons/condition-critical.icon.d.ts +5 -0
  177. package/lib/components/Icon/streamline-icons/condition-critical.icon.d.ts.map +1 -0
  178. package/lib/components/Icon/streamline-icons/condition-critical.icon.js +7 -0
  179. package/lib/components/Icon/streamline-icons/condition-critical.icon.js.map +1 -0
  180. package/lib/components/Icon/streamline-icons/condition-satisfactory.icon.d.ts +5 -0
  181. package/lib/components/Icon/streamline-icons/condition-satisfactory.icon.d.ts.map +1 -0
  182. package/lib/components/Icon/streamline-icons/condition-satisfactory.icon.js +7 -0
  183. package/lib/components/Icon/streamline-icons/condition-satisfactory.icon.js.map +1 -0
  184. package/lib/components/Icon/streamline-icons/disc-document.icon.d.ts +5 -0
  185. package/lib/components/Icon/streamline-icons/disc-document.icon.d.ts.map +1 -0
  186. package/lib/components/Icon/streamline-icons/disc-document.icon.js +7 -0
  187. package/lib/components/Icon/streamline-icons/disc-document.icon.js.map +1 -0
  188. package/lib/components/Icon/streamline-icons/disc-nodes.icon.d.ts +5 -0
  189. package/lib/components/Icon/streamline-icons/disc-nodes.icon.d.ts.map +1 -0
  190. package/lib/components/Icon/streamline-icons/disc-nodes.icon.js +7 -0
  191. package/lib/components/Icon/streamline-icons/disc-nodes.icon.js.map +1 -0
  192. package/lib/components/Icon/streamline-icons/document-doc.icon.d.ts +5 -0
  193. package/lib/components/Icon/streamline-icons/document-doc.icon.d.ts.map +1 -0
  194. package/lib/components/Icon/streamline-icons/document-doc.icon.js +7 -0
  195. package/lib/components/Icon/streamline-icons/document-doc.icon.js.map +1 -0
  196. package/lib/components/Icon/streamline-icons/document-json.icon.d.ts +5 -0
  197. package/lib/components/Icon/streamline-icons/document-json.icon.d.ts.map +1 -0
  198. package/lib/components/Icon/streamline-icons/document-json.icon.js +7 -0
  199. package/lib/components/Icon/streamline-icons/document-json.icon.js.map +1 -0
  200. package/lib/components/Icon/streamline-icons/document-xls.icon.d.ts +5 -0
  201. package/lib/components/Icon/streamline-icons/document-xls.icon.d.ts.map +1 -0
  202. package/lib/components/Icon/streamline-icons/document-xls.icon.js +7 -0
  203. package/lib/components/Icon/streamline-icons/document-xls.icon.js.map +1 -0
  204. package/lib/components/Icon/streamline-icons/documents.icon.d.ts +5 -0
  205. package/lib/components/Icon/streamline-icons/documents.icon.d.ts.map +1 -0
  206. package/lib/components/Icon/streamline-icons/documents.icon.js +7 -0
  207. package/lib/components/Icon/streamline-icons/documents.icon.js.map +1 -0
  208. package/lib/components/Icon/streamline-icons/field-cursor.icon.js +1 -1
  209. package/lib/components/Icon/streamline-icons/field-cursor.icon.js.map +1 -1
  210. package/lib/components/Icon/streamline-icons/filter-on.icon.d.ts +5 -0
  211. package/lib/components/Icon/streamline-icons/filter-on.icon.d.ts.map +1 -0
  212. package/lib/components/Icon/streamline-icons/filter-on.icon.js +7 -0
  213. package/lib/components/Icon/streamline-icons/filter-on.icon.js.map +1 -0
  214. package/lib/components/Icon/streamline-icons/freeze-column.icon.d.ts +5 -0
  215. package/lib/components/Icon/streamline-icons/freeze-column.icon.d.ts.map +1 -0
  216. package/lib/components/Icon/streamline-icons/freeze-column.icon.js +7 -0
  217. package/lib/components/Icon/streamline-icons/freeze-column.icon.js.map +1 -0
  218. package/lib/components/Icon/streamline-icons/galaxy.icon.d.ts +5 -0
  219. package/lib/components/Icon/streamline-icons/galaxy.icon.d.ts.map +1 -0
  220. package/lib/components/Icon/streamline-icons/galaxy.icon.js +7 -0
  221. package/lib/components/Icon/streamline-icons/galaxy.icon.js.map +1 -0
  222. package/lib/components/Icon/streamline-icons/grid-solid.icon.d.ts +5 -0
  223. package/lib/components/Icon/streamline-icons/grid-solid.icon.d.ts.map +1 -0
  224. package/lib/components/Icon/streamline-icons/grid-solid.icon.js +7 -0
  225. package/lib/components/Icon/streamline-icons/grid-solid.icon.js.map +1 -0
  226. package/lib/components/Icon/streamline-icons/grid.icon.d.ts +5 -0
  227. package/lib/components/Icon/streamline-icons/grid.icon.d.ts.map +1 -0
  228. package/lib/components/Icon/streamline-icons/grid.icon.js +7 -0
  229. package/lib/components/Icon/streamline-icons/grid.icon.js.map +1 -0
  230. package/lib/components/Icon/streamline-icons/language-pack.icon.d.ts +5 -0
  231. package/lib/components/Icon/streamline-icons/language-pack.icon.d.ts.map +1 -0
  232. package/lib/components/Icon/streamline-icons/language-pack.icon.js +7 -0
  233. package/lib/components/Icon/streamline-icons/language-pack.icon.js.map +1 -0
  234. package/lib/components/Icon/streamline-icons/layout.icon.d.ts +5 -0
  235. package/lib/components/Icon/streamline-icons/layout.icon.d.ts.map +1 -0
  236. package/lib/components/Icon/streamline-icons/layout.icon.js +7 -0
  237. package/lib/components/Icon/streamline-icons/layout.icon.js.map +1 -0
  238. package/lib/components/Icon/streamline-icons/lock-closed.icon.d.ts +5 -0
  239. package/lib/components/Icon/streamline-icons/lock-closed.icon.d.ts.map +1 -0
  240. package/lib/components/Icon/streamline-icons/lock-closed.icon.js +7 -0
  241. package/lib/components/Icon/streamline-icons/lock-closed.icon.js.map +1 -0
  242. package/lib/components/Icon/streamline-icons/mail-solid.icon.d.ts +5 -0
  243. package/lib/components/Icon/streamline-icons/mail-solid.icon.d.ts.map +1 -0
  244. package/lib/components/Icon/streamline-icons/mail-solid.icon.js +7 -0
  245. package/lib/components/Icon/streamline-icons/mail-solid.icon.js.map +1 -0
  246. package/lib/components/Icon/streamline-icons/mail.icon.d.ts.map +1 -1
  247. package/lib/components/Icon/streamline-icons/mail.icon.js +1 -1
  248. package/lib/components/Icon/streamline-icons/mail.icon.js.map +1 -1
  249. package/lib/components/Icon/streamline-icons/mobius.icon.d.ts +5 -0
  250. package/lib/components/Icon/streamline-icons/mobius.icon.d.ts.map +1 -0
  251. package/lib/components/Icon/streamline-icons/mobius.icon.js +7 -0
  252. package/lib/components/Icon/streamline-icons/mobius.icon.js.map +1 -0
  253. package/lib/components/Icon/streamline-icons/phone-in-solid.icon.d.ts +5 -0
  254. package/lib/components/Icon/streamline-icons/phone-in-solid.icon.d.ts.map +1 -0
  255. package/lib/components/Icon/streamline-icons/phone-in-solid.icon.js +7 -0
  256. package/lib/components/Icon/streamline-icons/phone-in-solid.icon.js.map +1 -0
  257. package/lib/components/Icon/streamline-icons/picture-solid.icon.d.ts +5 -0
  258. package/lib/components/Icon/streamline-icons/picture-solid.icon.d.ts.map +1 -0
  259. package/lib/components/Icon/streamline-icons/picture-solid.icon.js +7 -0
  260. package/lib/components/Icon/streamline-icons/picture-solid.icon.js.map +1 -0
  261. package/lib/components/Icon/streamline-icons/plug-connect.icon.d.ts +5 -0
  262. package/lib/components/Icon/streamline-icons/plug-connect.icon.d.ts.map +1 -0
  263. package/lib/components/Icon/streamline-icons/plug-connect.icon.js +7 -0
  264. package/lib/components/Icon/streamline-icons/plug-connect.icon.js.map +1 -0
  265. package/lib/components/Icon/streamline-icons/return.icon.d.ts +5 -0
  266. package/lib/components/Icon/streamline-icons/return.icon.d.ts.map +1 -0
  267. package/lib/components/Icon/streamline-icons/return.icon.js +7 -0
  268. package/lib/components/Icon/streamline-icons/return.icon.js.map +1 -0
  269. package/lib/components/Icon/streamline-icons/robot-solid.icon.d.ts +5 -0
  270. package/lib/components/Icon/streamline-icons/robot-solid.icon.d.ts.map +1 -0
  271. package/lib/components/Icon/streamline-icons/robot-solid.icon.js +7 -0
  272. package/lib/components/Icon/streamline-icons/robot-solid.icon.js.map +1 -0
  273. package/lib/components/Icon/streamline-icons/shapes.icon.d.ts +5 -0
  274. package/lib/components/Icon/streamline-icons/shapes.icon.d.ts.map +1 -0
  275. package/lib/components/Icon/streamline-icons/shapes.icon.js +7 -0
  276. package/lib/components/Icon/streamline-icons/shapes.icon.js.map +1 -0
  277. package/lib/components/Icon/streamline-icons/share-case.icon.d.ts +5 -0
  278. package/lib/components/Icon/streamline-icons/share-case.icon.d.ts.map +1 -0
  279. package/lib/components/Icon/streamline-icons/share-case.icon.js +7 -0
  280. package/lib/components/Icon/streamline-icons/share-case.icon.js.map +1 -0
  281. package/lib/components/Icon/streamline-icons/share-document.icon.d.ts +5 -0
  282. package/lib/components/Icon/streamline-icons/share-document.icon.d.ts.map +1 -0
  283. package/lib/components/Icon/streamline-icons/share-document.icon.js +7 -0
  284. package/lib/components/Icon/streamline-icons/share-document.icon.js.map +1 -0
  285. package/lib/components/Icon/streamline-icons/shield-lock.icon.d.ts +5 -0
  286. package/lib/components/Icon/streamline-icons/shield-lock.icon.d.ts.map +1 -0
  287. package/lib/components/Icon/streamline-icons/shield-lock.icon.js +7 -0
  288. package/lib/components/Icon/streamline-icons/shield-lock.icon.js.map +1 -0
  289. package/lib/components/Icon/streamline-icons/slideshow-solid.icon.d.ts +5 -0
  290. package/lib/components/Icon/streamline-icons/slideshow-solid.icon.d.ts.map +1 -0
  291. package/lib/components/Icon/streamline-icons/slideshow-solid.icon.js +7 -0
  292. package/lib/components/Icon/streamline-icons/slideshow-solid.icon.js.map +1 -0
  293. package/lib/components/Icon/streamline-icons/speaker-on-sold.icon.d.ts +5 -0
  294. package/lib/components/Icon/streamline-icons/speaker-on-sold.icon.d.ts.map +1 -0
  295. package/lib/components/Icon/streamline-icons/speaker-on-sold.icon.js +7 -0
  296. package/lib/components/Icon/streamline-icons/speaker-on-sold.icon.js.map +1 -0
  297. package/lib/components/Icon/streamline-icons/speaker-on.icon.d.ts +5 -0
  298. package/lib/components/Icon/streamline-icons/speaker-on.icon.d.ts.map +1 -0
  299. package/lib/components/Icon/streamline-icons/speaker-on.icon.js +7 -0
  300. package/lib/components/Icon/streamline-icons/speaker-on.icon.js.map +1 -0
  301. package/lib/components/Icon/streamline-icons/table-disc.icon.d.ts +5 -0
  302. package/lib/components/Icon/streamline-icons/table-disc.icon.d.ts.map +1 -0
  303. package/lib/components/Icon/streamline-icons/table-disc.icon.js +7 -0
  304. package/lib/components/Icon/streamline-icons/table-disc.icon.js.map +1 -0
  305. package/lib/components/Icon/streamline-icons/translate.icon.d.ts +5 -0
  306. package/lib/components/Icon/streamline-icons/translate.icon.d.ts.map +1 -0
  307. package/lib/components/Icon/streamline-icons/translate.icon.js +7 -0
  308. package/lib/components/Icon/streamline-icons/translate.icon.js.map +1 -0
  309. package/lib/components/Icon/streamline-icons/user-check-solid.icon.d.ts +5 -0
  310. package/lib/components/Icon/streamline-icons/user-check-solid.icon.d.ts.map +1 -0
  311. package/lib/components/Icon/streamline-icons/user-check-solid.icon.js +7 -0
  312. package/lib/components/Icon/streamline-icons/user-check-solid.icon.js.map +1 -0
  313. package/lib/components/Icon/streamline-icons/user-close-solid.icon.d.ts +5 -0
  314. package/lib/components/Icon/streamline-icons/user-close-solid.icon.d.ts.map +1 -0
  315. package/lib/components/Icon/streamline-icons/user-close-solid.icon.js +7 -0
  316. package/lib/components/Icon/streamline-icons/user-close-solid.icon.js.map +1 -0
  317. package/lib/components/Icon/streamline-icons/user-close.icon.d.ts +5 -0
  318. package/lib/components/Icon/streamline-icons/user-close.icon.d.ts.map +1 -0
  319. package/lib/components/Icon/streamline-icons/user-close.icon.js +7 -0
  320. package/lib/components/Icon/streamline-icons/user-close.icon.js.map +1 -0
  321. package/lib/components/Icon/streamline-icons/user-female-solid.icon.d.ts +5 -0
  322. package/lib/components/Icon/streamline-icons/user-female-solid.icon.d.ts.map +1 -0
  323. package/lib/components/Icon/streamline-icons/user-female-solid.icon.js +7 -0
  324. package/lib/components/Icon/streamline-icons/user-female-solid.icon.js.map +1 -0
  325. package/lib/components/Icon/streamline-icons/user-female.icon.d.ts +5 -0
  326. package/lib/components/Icon/streamline-icons/user-female.icon.d.ts.map +1 -0
  327. package/lib/components/Icon/streamline-icons/user-female.icon.js +7 -0
  328. package/lib/components/Icon/streamline-icons/user-female.icon.js.map +1 -0
  329. package/lib/components/Icon/streamline-icons/user-list-solid.icon.d.ts +5 -0
  330. package/lib/components/Icon/streamline-icons/user-list-solid.icon.d.ts.map +1 -0
  331. package/lib/components/Icon/streamline-icons/user-list-solid.icon.js +7 -0
  332. package/lib/components/Icon/streamline-icons/user-list-solid.icon.js.map +1 -0
  333. package/lib/components/Icon/streamline-icons/user-list.icon.d.ts +5 -0
  334. package/lib/components/Icon/streamline-icons/user-list.icon.d.ts.map +1 -0
  335. package/lib/components/Icon/streamline-icons/user-list.icon.js +7 -0
  336. package/lib/components/Icon/streamline-icons/user-list.icon.js.map +1 -0
  337. package/lib/components/Icon/streamline-icons/user-plus-solid.icon.d.ts +5 -0
  338. package/lib/components/Icon/streamline-icons/user-plus-solid.icon.d.ts.map +1 -0
  339. package/lib/components/Icon/streamline-icons/user-plus-solid.icon.js +7 -0
  340. package/lib/components/Icon/streamline-icons/user-plus-solid.icon.js.map +1 -0
  341. package/lib/components/Icon/streamline-icons/user-plus.icon.d.ts +5 -0
  342. package/lib/components/Icon/streamline-icons/user-plus.icon.d.ts.map +1 -0
  343. package/lib/components/Icon/streamline-icons/user-plus.icon.js +7 -0
  344. package/lib/components/Icon/streamline-icons/user-plus.icon.js.map +1 -0
  345. package/lib/components/Icon/streamline-icons/user-question-mark-solid.icon.d.ts +5 -0
  346. package/lib/components/Icon/streamline-icons/user-question-mark-solid.icon.d.ts.map +1 -0
  347. package/lib/components/Icon/streamline-icons/user-question-mark-solid.icon.js +7 -0
  348. package/lib/components/Icon/streamline-icons/user-question-mark-solid.icon.js.map +1 -0
  349. package/lib/components/Icon/streamline-icons/user-question-mark.icon.d.ts +5 -0
  350. package/lib/components/Icon/streamline-icons/user-question-mark.icon.d.ts.map +1 -0
  351. package/lib/components/Icon/streamline-icons/user-question-mark.icon.js +7 -0
  352. package/lib/components/Icon/streamline-icons/user-question-mark.icon.js.map +1 -0
  353. package/lib/components/Icon/streamline-icons/user-search-solid.icon.d.ts +5 -0
  354. package/lib/components/Icon/streamline-icons/user-search-solid.icon.d.ts.map +1 -0
  355. package/lib/components/Icon/streamline-icons/user-search-solid.icon.js +7 -0
  356. package/lib/components/Icon/streamline-icons/user-search-solid.icon.js.map +1 -0
  357. package/lib/components/Icon/streamline-icons/user-search.icon.d.ts +5 -0
  358. package/lib/components/Icon/streamline-icons/user-search.icon.d.ts.map +1 -0
  359. package/lib/components/Icon/streamline-icons/user-search.icon.js +7 -0
  360. package/lib/components/Icon/streamline-icons/user-search.icon.js.map +1 -0
  361. package/lib/components/Icon/streamline-icons/user-star-solid.icon.d.ts +5 -0
  362. package/lib/components/Icon/streamline-icons/user-star-solid.icon.d.ts.map +1 -0
  363. package/lib/components/Icon/streamline-icons/user-star-solid.icon.js +7 -0
  364. package/lib/components/Icon/streamline-icons/user-star-solid.icon.js.map +1 -0
  365. package/lib/components/Icon/streamline-icons/user-star.icon.js +2 -2
  366. package/lib/components/Icon/streamline-icons/user-star.icon.js.map +1 -1
  367. package/lib/components/Icon/streamline-icons/users-solid.icon.d.ts +5 -0
  368. package/lib/components/Icon/streamline-icons/users-solid.icon.d.ts.map +1 -0
  369. package/lib/components/Icon/streamline-icons/users-solid.icon.js +7 -0
  370. package/lib/components/Icon/streamline-icons/users-solid.icon.js.map +1 -0
  371. package/lib/components/Icon/streamline-icons/users.icon.d.ts +5 -0
  372. package/lib/components/Icon/streamline-icons/users.icon.d.ts.map +1 -0
  373. package/lib/components/Icon/streamline-icons/users.icon.js +7 -0
  374. package/lib/components/Icon/streamline-icons/users.icon.js.map +1 -0
  375. package/lib/components/Icon/streamline-icons/versions.icon.d.ts +5 -0
  376. package/lib/components/Icon/streamline-icons/versions.icon.d.ts.map +1 -0
  377. package/lib/components/Icon/streamline-icons/versions.icon.js +7 -0
  378. package/lib/components/Icon/streamline-icons/versions.icon.js.map +1 -0
  379. package/lib/components/Icon/streamline-icons/video-off.icon.d.ts +5 -0
  380. package/lib/components/Icon/streamline-icons/video-off.icon.d.ts.map +1 -0
  381. package/lib/components/Icon/streamline-icons/video-off.icon.js +7 -0
  382. package/lib/components/Icon/streamline-icons/video-off.icon.js.map +1 -0
  383. package/lib/components/Icon/streamline-icons/video-solid.icon.d.ts +5 -0
  384. package/lib/components/Icon/streamline-icons/video-solid.icon.d.ts.map +1 -0
  385. package/lib/components/Icon/streamline-icons/video-solid.icon.js +7 -0
  386. package/lib/components/Icon/streamline-icons/video-solid.icon.js.map +1 -0
  387. package/lib/components/Icon/streamline-icons/video.icon.d.ts +5 -0
  388. package/lib/components/Icon/streamline-icons/video.icon.d.ts.map +1 -0
  389. package/lib/components/Icon/streamline-icons/video.icon.js +7 -0
  390. package/lib/components/Icon/streamline-icons/video.icon.js.map +1 -0
  391. package/lib/components/Icon/streamline-icons/voicemail.icon.d.ts +5 -0
  392. package/lib/components/Icon/streamline-icons/voicemail.icon.d.ts.map +1 -0
  393. package/lib/components/Icon/streamline-icons/voicemail.icon.js +7 -0
  394. package/lib/components/Icon/streamline-icons/voicemail.icon.js.map +1 -0
  395. package/lib/components/Icon/streamline-icons/vr-solid.icon.d.ts +5 -0
  396. package/lib/components/Icon/streamline-icons/vr-solid.icon.d.ts.map +1 -0
  397. package/lib/components/Icon/streamline-icons/vr-solid.icon.js +7 -0
  398. package/lib/components/Icon/streamline-icons/vr-solid.icon.js.map +1 -0
  399. package/lib/components/Icon/streamline-icons/vr.icon.d.ts +5 -0
  400. package/lib/components/Icon/streamline-icons/vr.icon.d.ts.map +1 -0
  401. package/lib/components/Icon/streamline-icons/vr.icon.js +7 -0
  402. package/lib/components/Icon/streamline-icons/vr.icon.js.map +1 -0
  403. package/lib/components/Icon/streamline-icons/walkie-solid.icon.d.ts +5 -0
  404. package/lib/components/Icon/streamline-icons/walkie-solid.icon.d.ts.map +1 -0
  405. package/lib/components/Icon/streamline-icons/walkie-solid.icon.js +7 -0
  406. package/lib/components/Icon/streamline-icons/walkie-solid.icon.js.map +1 -0
  407. package/lib/components/Icon/streamline-icons/walkie.icon.d.ts +5 -0
  408. package/lib/components/Icon/streamline-icons/walkie.icon.d.ts.map +1 -0
  409. package/lib/components/Icon/streamline-icons/walkie.icon.js +7 -0
  410. package/lib/components/Icon/streamline-icons/walkie.icon.js.map +1 -0
  411. package/lib/components/Icon/streamline-icons/wallet-solid.icon.d.ts +5 -0
  412. package/lib/components/Icon/streamline-icons/wallet-solid.icon.d.ts.map +1 -0
  413. package/lib/components/Icon/streamline-icons/wallet-solid.icon.js +7 -0
  414. package/lib/components/Icon/streamline-icons/wallet-solid.icon.js.map +1 -0
  415. package/lib/components/Icon/streamline-icons/wallet.icon.d.ts +5 -0
  416. package/lib/components/Icon/streamline-icons/wallet.icon.d.ts.map +1 -0
  417. package/lib/components/Icon/streamline-icons/wallet.icon.js +7 -0
  418. package/lib/components/Icon/streamline-icons/wallet.icon.js.map +1 -0
  419. package/lib/components/Icon/streamline-icons/watch-solid.icon.d.ts +5 -0
  420. package/lib/components/Icon/streamline-icons/watch-solid.icon.d.ts.map +1 -0
  421. package/lib/components/Icon/streamline-icons/watch-solid.icon.js +7 -0
  422. package/lib/components/Icon/streamline-icons/watch-solid.icon.js.map +1 -0
  423. package/lib/components/Icon/streamline-icons/watch.icon.d.ts +5 -0
  424. package/lib/components/Icon/streamline-icons/watch.icon.d.ts.map +1 -0
  425. package/lib/components/Icon/streamline-icons/watch.icon.js +7 -0
  426. package/lib/components/Icon/streamline-icons/watch.icon.js.map +1 -0
  427. package/lib/components/Icon/streamline-icons/waypoint-solid.icon.d.ts +5 -0
  428. package/lib/components/Icon/streamline-icons/waypoint-solid.icon.d.ts.map +1 -0
  429. package/lib/components/Icon/streamline-icons/waypoint-solid.icon.js +7 -0
  430. package/lib/components/Icon/streamline-icons/waypoint-solid.icon.js.map +1 -0
  431. package/lib/components/Icon/streamline-icons/waypoint.icon.d.ts +5 -0
  432. package/lib/components/Icon/streamline-icons/waypoint.icon.d.ts.map +1 -0
  433. package/lib/components/Icon/streamline-icons/waypoint.icon.js +7 -0
  434. package/lib/components/Icon/streamline-icons/waypoint.icon.js.map +1 -0
  435. package/lib/components/Icon/streamline-icons/webcam-solid.icon.d.ts +5 -0
  436. package/lib/components/Icon/streamline-icons/webcam-solid.icon.d.ts.map +1 -0
  437. package/lib/components/Icon/streamline-icons/webcam-solid.icon.js +7 -0
  438. package/lib/components/Icon/streamline-icons/webcam-solid.icon.js.map +1 -0
  439. package/lib/components/Icon/streamline-icons/webcam.icon.d.ts +5 -0
  440. package/lib/components/Icon/streamline-icons/webcam.icon.d.ts.map +1 -0
  441. package/lib/components/Icon/streamline-icons/webcam.icon.js +7 -0
  442. package/lib/components/Icon/streamline-icons/webcam.icon.js.map +1 -0
  443. package/lib/components/Icon/streamline-icons/whatsapp.icon.d.ts +5 -0
  444. package/lib/components/Icon/streamline-icons/whatsapp.icon.d.ts.map +1 -0
  445. package/lib/components/Icon/streamline-icons/whatsapp.icon.js +7 -0
  446. package/lib/components/Icon/streamline-icons/whatsapp.icon.js.map +1 -0
  447. package/lib/components/Icon/streamline-icons/wifi-none.icon.d.ts +5 -0
  448. package/lib/components/Icon/streamline-icons/wifi-none.icon.d.ts.map +1 -0
  449. package/lib/components/Icon/streamline-icons/wifi-none.icon.js +7 -0
  450. package/lib/components/Icon/streamline-icons/wifi-none.icon.js.map +1 -0
  451. package/lib/components/Icon/streamline-icons/wifi-off.icon.d.ts +5 -0
  452. package/lib/components/Icon/streamline-icons/wifi-off.icon.d.ts.map +1 -0
  453. package/lib/components/Icon/streamline-icons/wifi-off.icon.js +7 -0
  454. package/lib/components/Icon/streamline-icons/wifi-off.icon.js.map +1 -0
  455. package/lib/components/Icon/streamline-icons/wizard-solid.icon.d.ts +5 -0
  456. package/lib/components/Icon/streamline-icons/wizard-solid.icon.d.ts.map +1 -0
  457. package/lib/components/Icon/streamline-icons/wizard-solid.icon.js +7 -0
  458. package/lib/components/Icon/streamline-icons/wizard-solid.icon.js.map +1 -0
  459. package/lib/components/Icon/streamline-icons/wizard.icon.d.ts +5 -0
  460. package/lib/components/Icon/streamline-icons/wizard.icon.d.ts.map +1 -0
  461. package/lib/components/Icon/streamline-icons/wizard.icon.js +7 -0
  462. package/lib/components/Icon/streamline-icons/wizard.icon.js.map +1 -0
  463. package/lib/components/Icon/streamline-icons/wrench-solid.icon.d.ts +5 -0
  464. package/lib/components/Icon/streamline-icons/wrench-solid.icon.d.ts.map +1 -0
  465. package/lib/components/Icon/streamline-icons/wrench-solid.icon.js +7 -0
  466. package/lib/components/Icon/streamline-icons/wrench-solid.icon.js.map +1 -0
  467. package/lib/components/Icon/streamline-icons/wrench.icon.d.ts +5 -0
  468. package/lib/components/Icon/streamline-icons/wrench.icon.d.ts.map +1 -0
  469. package/lib/components/Icon/streamline-icons/wrench.icon.js +7 -0
  470. package/lib/components/Icon/streamline-icons/wrench.icon.js.map +1 -0
  471. package/lib/components/Icon/streamlineIconNames.d.ts +1 -1
  472. package/lib/components/Icon/streamlineIconNames.d.ts.map +1 -1
  473. package/lib/components/Icon/streamlineIconNames.js +82 -0
  474. package/lib/components/Icon/streamlineIconNames.js.map +1 -1
  475. package/lib/components/IconPicker/IconPicker.d.ts +4 -4
  476. package/lib/components/IconPicker/IconPicker.d.ts.map +1 -1
  477. package/lib/components/IconPicker/IconPicker.js +19 -25
  478. package/lib/components/IconPicker/IconPicker.js.map +1 -1
  479. package/lib/components/Input/Input.styles.d.ts.map +1 -1
  480. package/lib/components/Input/Input.styles.js +2 -17
  481. package/lib/components/Input/Input.styles.js.map +1 -1
  482. package/lib/components/Lightbox/Lightbox.d.ts +1 -1
  483. package/lib/components/Lightbox/Lightbox.d.ts.map +1 -1
  484. package/lib/components/Lightbox/Lightbox.js +9 -3
  485. package/lib/components/Lightbox/Lightbox.js.map +1 -1
  486. package/lib/components/Lightbox/Lightbox.test-ids.d.ts +1 -1
  487. package/lib/components/Lightbox/Lightbox.test-ids.d.ts.map +1 -1
  488. package/lib/components/Lightbox/Lightbox.test-ids.js +1 -0
  489. package/lib/components/Lightbox/Lightbox.test-ids.js.map +1 -1
  490. package/lib/components/ListToolbar/ListToolbar.d.ts.map +1 -1
  491. package/lib/components/ListToolbar/ListToolbar.js +100 -39
  492. package/lib/components/ListToolbar/ListToolbar.js.map +1 -1
  493. package/lib/components/ListToolbar/ListToolbar.styles.d.ts.map +1 -1
  494. package/lib/components/ListToolbar/ListToolbar.styles.js +9 -14
  495. package/lib/components/ListToolbar/ListToolbar.styles.js.map +1 -1
  496. package/lib/components/ListToolbar/ListToolbar.types.d.ts +7 -3
  497. package/lib/components/ListToolbar/ListToolbar.types.d.ts.map +1 -1
  498. package/lib/components/ListToolbar/ListToolbar.types.js.map +1 -1
  499. package/lib/components/Location/CurrentLocationButton.d.ts.map +1 -1
  500. package/lib/components/Location/CurrentLocationButton.js +4 -2
  501. package/lib/components/Location/CurrentLocationButton.js.map +1 -1
  502. package/lib/components/Location/GoogleMapsAPI.d.ts +43 -0
  503. package/lib/components/Location/GoogleMapsAPI.d.ts.map +1 -0
  504. package/lib/components/Location/GoogleMapsAPI.js +244 -0
  505. package/lib/components/Location/GoogleMapsAPI.js.map +1 -0
  506. package/lib/components/Location/Location.types.d.ts +3 -2
  507. package/lib/components/Location/Location.types.d.ts.map +1 -1
  508. package/lib/components/Location/Location.types.js.map +1 -1
  509. package/lib/components/Location/LocationAPI.types.d.ts +23 -0
  510. package/lib/components/Location/LocationAPI.types.d.ts.map +1 -0
  511. package/lib/components/Location/LocationAPI.types.js +2 -0
  512. package/lib/components/Location/LocationAPI.types.js.map +1 -0
  513. package/lib/components/Location/LocationDisplay.d.ts.map +1 -1
  514. package/lib/components/Location/LocationDisplay.js +5 -3
  515. package/lib/components/Location/LocationDisplay.js.map +1 -1
  516. package/lib/components/Location/LocationInput.d.ts.map +1 -1
  517. package/lib/components/Location/LocationInput.js +24 -21
  518. package/lib/components/Location/LocationInput.js.map +1 -1
  519. package/lib/components/Location/LocationView.d.ts.map +1 -1
  520. package/lib/components/Location/LocationView.js +8 -5
  521. package/lib/components/Location/LocationView.js.map +1 -1
  522. package/lib/components/Location/index.d.ts +2 -1
  523. package/lib/components/Location/index.d.ts.map +1 -1
  524. package/lib/components/Location/index.js +2 -1
  525. package/lib/components/Location/index.js.map +1 -1
  526. package/lib/components/Location/utils.d.ts +3 -19
  527. package/lib/components/Location/utils.d.ts.map +1 -1
  528. package/lib/components/Location/utils.js +7 -161
  529. package/lib/components/Location/utils.js.map +1 -1
  530. package/lib/components/MetaList/MetaList.d.ts.map +1 -1
  531. package/lib/components/MetaList/MetaList.js +3 -2
  532. package/lib/components/MetaList/MetaList.js.map +1 -1
  533. package/lib/components/Modal/Modal.styles.d.ts.map +1 -1
  534. package/lib/components/Modal/Modal.styles.js +5 -1
  535. package/lib/components/Modal/Modal.styles.js.map +1 -1
  536. package/lib/components/MultiStepForm/MultiStepForm.d.ts.map +1 -1
  537. package/lib/components/MultiStepForm/MultiStepForm.js +29 -3
  538. package/lib/components/MultiStepForm/MultiStepForm.js.map +1 -1
  539. package/lib/components/Number/NumberInput.js +2 -2
  540. package/lib/components/Number/NumberInput.js.map +1 -1
  541. package/lib/components/Number/utils.d.ts +1 -1
  542. package/lib/components/Number/utils.d.ts.map +1 -1
  543. package/lib/components/Number/utils.js +1 -2
  544. package/lib/components/Number/utils.js.map +1 -1
  545. package/lib/components/PageTemplates/DashboardPage.js +2 -2
  546. package/lib/components/PageTemplates/DashboardPage.js.map +1 -1
  547. package/lib/components/PageTemplates/GridLayout/EditorBackground.js +1 -1
  548. package/lib/components/PageTemplates/GridLayout/EditorBackground.js.map +1 -1
  549. package/lib/components/PageTemplates/GridLayout/GridLayoutEditor.js +1 -1
  550. package/lib/components/PageTemplates/GridLayout/GridLayoutEditor.js.map +1 -1
  551. package/lib/components/PageTemplates/GridLayout/GridLayoutViewer.d.ts +5 -0
  552. package/lib/components/PageTemplates/GridLayout/GridLayoutViewer.d.ts.map +1 -1
  553. package/lib/components/PageTemplates/GridLayout/GridLayoutViewer.js +2 -2
  554. package/lib/components/PageTemplates/GridLayout/GridLayoutViewer.js.map +1 -1
  555. package/lib/components/PageTemplates/GridLayout/config.d.ts +1 -1
  556. package/lib/components/PageTemplates/GridLayout/config.d.ts.map +1 -1
  557. package/lib/components/PageTemplates/GridLayout/config.js +3 -3
  558. package/lib/components/PageTemplates/GridLayout/config.js.map +1 -1
  559. package/lib/components/PageTemplates/PageTemplates.d.ts.map +1 -1
  560. package/lib/components/PageTemplates/PageTemplates.js +33 -5
  561. package/lib/components/PageTemplates/PageTemplates.js.map +1 -1
  562. package/lib/components/Phone/PhoneInput.d.ts.map +1 -1
  563. package/lib/components/Phone/PhoneInput.js +1 -1
  564. package/lib/components/Phone/PhoneInput.js.map +1 -1
  565. package/lib/components/Popover/Popover.d.ts.map +1 -1
  566. package/lib/components/Popover/Popover.js +4 -22
  567. package/lib/components/Popover/Popover.js.map +1 -1
  568. package/lib/components/Popover/Popover.styles.d.ts.map +1 -1
  569. package/lib/components/Popover/Popover.styles.js +19 -4
  570. package/lib/components/Popover/Popover.styles.js.map +1 -1
  571. package/lib/components/Popover/modifiers.d.ts.map +1 -1
  572. package/lib/components/Popover/modifiers.js +10 -0
  573. package/lib/components/Popover/modifiers.js.map +1 -1
  574. package/lib/components/Tabs/TabPanel.d.ts.map +1 -1
  575. package/lib/components/Tabs/TabPanel.js +8 -0
  576. package/lib/components/Tabs/TabPanel.js.map +1 -1
  577. package/lib/components/Toaster/Toaster.d.ts.map +1 -1
  578. package/lib/components/Toaster/Toaster.js +9 -5
  579. package/lib/components/Toaster/Toaster.js.map +1 -1
  580. package/lib/components/Toaster/Toaster.types.d.ts +3 -3
  581. package/lib/components/Toaster/Toaster.types.d.ts.map +1 -1
  582. package/lib/components/Toaster/Toaster.types.js.map +1 -1
  583. package/lib/components/Tooltip/Tooltip.d.ts.map +1 -1
  584. package/lib/components/Tooltip/Tooltip.js +3 -1
  585. package/lib/components/Tooltip/Tooltip.js.map +1 -1
  586. package/lib/components/Tree/Tree.js +1 -1
  587. package/lib/components/Tree/Tree.js.map +1 -1
  588. package/lib/hooks/index.d.ts +2 -0
  589. package/lib/hooks/index.d.ts.map +1 -1
  590. package/lib/hooks/index.js +2 -0
  591. package/lib/hooks/index.js.map +1 -1
  592. package/lib/hooks/useAnimatedText.d.ts +11 -0
  593. package/lib/hooks/useAnimatedText.d.ts.map +1 -0
  594. package/lib/hooks/useAnimatedText.js +96 -0
  595. package/lib/hooks/useAnimatedText.js.map +1 -0
  596. package/lib/hooks/useBreakpoint.d.ts.map +1 -1
  597. package/lib/hooks/useBreakpoint.js +5 -2
  598. package/lib/hooks/useBreakpoint.js.map +1 -1
  599. package/lib/hooks/useChToPxConversionFactor.d.ts +2 -2
  600. package/lib/hooks/useChToPxConversionFactor.d.ts.map +1 -1
  601. package/lib/hooks/useChToPxConversionFactor.js +4 -13
  602. package/lib/hooks/useChToPxConversionFactor.js.map +1 -1
  603. package/lib/hooks/useI18n.d.ts +181 -2
  604. package/lib/hooks/useI18n.d.ts.map +1 -1
  605. package/lib/hooks/useItemIntersection.d.ts +2 -1
  606. package/lib/hooks/useItemIntersection.d.ts.map +1 -1
  607. package/lib/hooks/useItemIntersection.js +10 -4
  608. package/lib/hooks/useItemIntersection.js.map +1 -1
  609. package/lib/hooks/usePopoverMap.d.ts +10 -0
  610. package/lib/hooks/usePopoverMap.d.ts.map +1 -0
  611. package/lib/hooks/usePopoverMap.js +34 -0
  612. package/lib/hooks/usePopoverMap.js.map +1 -0
  613. package/lib/hooks/useThemeMode.d.ts +10 -0
  614. package/lib/hooks/useThemeMode.d.ts.map +1 -0
  615. package/lib/hooks/useThemeMode.js +11 -0
  616. package/lib/hooks/useThemeMode.js.map +1 -0
  617. package/lib/i18n/default.d.ts +185 -2
  618. package/lib/i18n/default.d.ts.map +1 -1
  619. package/lib/i18n/default.js +199 -5
  620. package/lib/i18n/default.js.map +1 -1
  621. package/lib/i18n/i18n.d.ts +181 -2
  622. package/lib/i18n/i18n.d.ts.map +1 -1
  623. package/lib/styles/GlobalStyle.d.ts +2 -2
  624. package/lib/styles/GlobalStyle.d.ts.map +1 -1
  625. package/lib/styles/GlobalStyle.js +8 -3
  626. package/lib/styles/GlobalStyle.js.map +1 -1
  627. package/lib/styles/animations.d.ts +9 -0
  628. package/lib/styles/animations.d.ts.map +1 -0
  629. package/lib/styles/animations.js +78 -0
  630. package/lib/styles/animations.js.map +1 -0
  631. package/lib/styles/constants.d.ts +5 -0
  632. package/lib/styles/constants.d.ts.map +1 -0
  633. package/lib/styles/constants.js +5 -0
  634. package/lib/styles/constants.js.map +1 -0
  635. package/lib/styles/gradients.d.ts +2 -0
  636. package/lib/styles/gradients.d.ts.map +1 -1
  637. package/lib/styles/gradients.js +4 -1
  638. package/lib/styles/gradients.js.map +1 -1
  639. package/lib/styles/index.d.ts +1 -0
  640. package/lib/styles/index.d.ts.map +1 -1
  641. package/lib/styles/index.js +1 -0
  642. package/lib/styles/index.js.map +1 -1
  643. package/lib/styles/utils.d.ts +1 -1
  644. package/lib/styles/utils.d.ts.map +1 -1
  645. package/lib/styles/utils.js +1 -1
  646. package/lib/styles/utils.js.map +1 -1
  647. package/lib/theme/index.d.ts +2 -0
  648. package/lib/theme/index.d.ts.map +1 -1
  649. package/lib/theme/index.js +2 -0
  650. package/lib/theme/index.js.map +1 -1
  651. package/lib/theme/theme.d.ts +150 -0
  652. package/lib/theme/theme.d.ts.map +1 -1
  653. package/lib/theme/themeDefinition.json +82 -0
  654. package/lib/theme/themeOverrides.schema.json +102 -0
  655. package/lib/theme/themes/bootes2025Theme.json +3 -3
  656. package/lib/theme/themes/cygnus2025Theme.json +17 -17
  657. package/lib/theme/themes/studioDarkTheme.json +240 -0
  658. package/lib/theme/themes/studioTheme.json +240 -0
  659. package/lib/utils/focusNonInteractiveElement.d.ts +9 -0
  660. package/lib/utils/focusNonInteractiveElement.d.ts.map +1 -0
  661. package/lib/utils/focusNonInteractiveElement.js +27 -0
  662. package/lib/utils/focusNonInteractiveElement.js.map +1 -0
  663. package/lib/utils/getChToPxConversionFactor.d.ts +11 -0
  664. package/lib/utils/getChToPxConversionFactor.d.ts.map +1 -0
  665. package/lib/utils/getChToPxConversionFactor.js +18 -0
  666. package/lib/utils/getChToPxConversionFactor.js.map +1 -0
  667. package/lib/utils/getChildOfRootNode.d.ts +10 -0
  668. package/lib/utils/getChildOfRootNode.d.ts.map +1 -0
  669. package/lib/utils/getChildOfRootNode.js +19 -0
  670. package/lib/utils/getChildOfRootNode.js.map +1 -0
  671. package/lib/utils/getFocusables.d.ts +4 -2
  672. package/lib/utils/getFocusables.d.ts.map +1 -1
  673. package/lib/utils/getFocusables.js +9 -7
  674. package/lib/utils/getFocusables.js.map +1 -1
  675. package/lib/utils/index.d.ts +4 -0
  676. package/lib/utils/index.d.ts.map +1 -1
  677. package/lib/utils/index.js +4 -0
  678. package/lib/utils/index.js.map +1 -1
  679. package/lib/utils/isInstance.d.ts +4 -4
  680. package/lib/utils/isInstance.d.ts.map +1 -1
  681. package/lib/utils/isInstance.js +20 -8
  682. package/lib/utils/isInstance.js.map +1 -1
  683. package/lib/utils/markdownTokenizer.d.ts +3 -0
  684. package/lib/utils/markdownTokenizer.d.ts.map +1 -0
  685. package/lib/utils/markdownTokenizer.js +159 -0
  686. package/lib/utils/markdownTokenizer.js.map +1 -0
  687. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"FieldGroup.d.ts","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAY7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAK7D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACxC,sCAAsC;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;CAChC,GAAG,CACE;IACE,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,4DAA4D;IAC5D,cAAc,CAAC,EAAE;QACf,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;KAC1C,CAAC;IACF,gDAAgD;IAChD,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC,GACD;IACE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,iBAAiB,CAAC,EAAE,KAAK,CAAC;CAC3B,CACJ,CAAC;AA+BJ,eAAO,MAAM,oBAAoB,0GAAgB,CAAC;AAElD,eAAO,MAAM,sBAAsB,4IA+BlC,CAAC;AAIF,eAAO,MAAM,gBAAgB,8GAiC5B,CAAC;AAIF,eAAO,MAAM,oBAAoB;gBAA4B,OAAO;aAAW,OAAO;SA+BrF,CAAC;AA6BF,QAAA,MAAM,UAAU,EAAE,+BAA+B,CAAC,eAAe,CAmF/D,CAAC;AAEH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"FieldGroup.d.ts","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAY7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAK7D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACxC,sCAAsC;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;CAChC,GAAG,CACE;IACE,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,4DAA4D;IAC5D,cAAc,CAAC,EAAE;QACf,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;KAC1C,CAAC;IACF,gDAAgD;IAChD,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC,GACD;IACE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,iBAAiB,CAAC,EAAE,KAAK,CAAC;CAC3B,CACJ,CAAC;AAgCJ,eAAO,MAAM,oBAAoB,0GAAgB,CAAC;AAElD,eAAO,MAAM,iBAAiB,gKAAiB,CAAC;AAEhD,eAAO,MAAM,uBAAuB,gKAAiB,CAAC;AAEtD,eAAO,MAAM,sBAAsB,4IA+BlC,CAAC;AAIF,eAAO,MAAM,gBAAgB,8GAiC5B,CAAC;AAIF,eAAO,MAAM,oBAAoB;gBAA4B,OAAO;aAAW,OAAO;SA+BrF,CAAC;AAiCF,QAAA,MAAM,UAAU,EAAE,+BAA+B,CAAC,eAAe,CAuF/D,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -32,6 +32,8 @@ const StyledExpandButton = styled(Button)(({ theme: { base: { animation } } }) =
32
32
  });
33
33
  StyledExpandButton.defaultProps = defaultThemeProp;
34
34
  export const StyledFieldGroupName = styled.span ``;
35
+ export const StyledFieldHeader = styled(Flex) ``;
36
+ export const StyledFieldGroupContent = styled(Grid) ``;
35
37
  export const StyledFieldGroupLegend = styled.legend.withConfig(omitProps('collapsed'))(({ collapsed, theme: { base: { spacing, animation, 'hit-area': { 'mouse-min': hitAreaMouse, 'finger-min': hitAreaFinger } } } }) => {
36
38
  return css `
37
39
  width: 100%;
@@ -100,16 +102,18 @@ export const StyledGroupContainer = styled.div(({ theme, collapsed, border }) =>
100
102
  });
101
103
  StyledGroupContainer.defaultProps = defaultThemeProp;
102
104
  // Components
103
- const FieldGroupLegend = ({ name, children, collapsed, actions, additionalInfo }) => {
104
- return (_jsx(StyledFieldGroupLegend, { collapsed: collapsed, children: _jsxs(Flex, { container: { alignItems: 'center', justify: 'between', gap: 0.5 }, children: [_jsxs(Flex, { container: { alignItems: 'center', gap: 0.5 }, children: [children, additionalInfo && (_jsx(AdditionalInfo, { heading: additionalInfo.heading, contextualLabel: name, children: additionalInfo.content }))] }), actions && _jsx(Actions, { items: actions })] }) }));
105
+ const FieldGroupLegend = ({ name, contextualLabel, children, collapsed, actions, additionalInfo }) => {
106
+ return (_jsx(StyledFieldGroupLegend, { collapsed: collapsed, children: _jsxs(Flex, { container: { alignItems: 'center', justify: 'between', gap: 0.5 }, children: [_jsxs(Flex, { container: { alignItems: 'center', gap: 0.5 }, as: StyledFieldHeader, children: [children, additionalInfo && (_jsx(AdditionalInfo, { heading: additionalInfo.heading, contextualLabel: contextualLabel || name, children: additionalInfo.content }))] }), actions && _jsx(Actions, { items: actions, contextualLabel: contextualLabel })] }) }));
105
107
  };
106
- const FieldGroup = forwardRef(function FieldGroup({ children, description, name, additionalInfo, actions, collapsed, headingTag, onToggleCollapsed, variant, ...restProps }, ref) {
108
+ const FieldGroup = forwardRef(function FieldGroup({ children, description, name, contextualLabel, additionalInfo, actions, collapsed, headingTag, onToggleCollapsed, variant, ...restProps }, ref) {
107
109
  const t = useI18n();
108
110
  const uid = useUID();
109
- const descAndChildren = (_jsxs(Grid, { container: { cols: 'minmax(0, 1fr)', gap: 2 }, children: [description && _jsx(HTML, { id: `${uid}-description`, as: 'p', content: description }), _jsx("div", { children: children })] }));
110
- return (_jsx(StyledGroupContainer, { border: variant === 'form-group', collapsed: collapsed, children: _jsxs(StyledFieldGroup, { "aria-label": name, "aria-describedby": description ? `${uid}-description` : undefined, as: name ? 'fieldset' : 'div', ...restProps, ref: ref, children: [name && (_jsx(FieldGroupLegend, { collapsed: collapsed, actions: actions, additionalInfo: additionalInfo, name: name, children: typeof collapsed === 'boolean' ? (_jsx(StyledExpandButton, { type: 'button', variant: 'text', onClick: () => {
111
+ const descAndChildren = (_jsxs(StyledFieldGroupContent, { container: { cols: 'minmax(0, 1fr)', gap: 2 }, children: [description && _jsx(HTML, { id: `${uid}-description`, as: 'p', content: description }), _jsx("div", { children: children })] }));
112
+ return (_jsx(StyledGroupContainer, { border: variant === 'form-group', collapsed: collapsed, children: _jsxs(StyledFieldGroup, { "aria-label": contextualLabel || name, "aria-describedby": description ? `${uid}-description` : undefined, as: name ? 'fieldset' : 'div', ...restProps, ref: ref, children: [name && (_jsx(FieldGroupLegend, { collapsed: collapsed, actions: actions, additionalInfo: additionalInfo, name: name, contextualLabel: contextualLabel, children: typeof collapsed === 'boolean' ? (_jsx(StyledExpandButton, { type: 'button', variant: 'text', onClick: () => {
111
113
  onToggleCollapsed?.();
112
- }, "aria-expanded": !collapsed, "aria-label": t(collapsed ? 'expand_noun' : 'collapse_noun', [name]), children: _jsxs(Flex, { container: { direction: 'row', alignItems: 'center', gap: 0.5 }, forwardedAs: 'span', children: [_jsx(Icon, { name: 'caret-right' }), headingTag ? (_jsx(Text, { variant: headingTag, children: name })) : (_jsx(StyledFieldGroupName, { children: name }))] }) })) : (_jsx(_Fragment, { children: headingTag ? (_jsx(Text, { variant: headingTag, children: name })) : (_jsx(StyledFieldGroupName, { children: name })) })) })), typeof collapsed === 'boolean' ? (_jsx(ExpandCollapse, { collapsed: collapsed, children: descAndChildren })) : (descAndChildren)] }) }));
114
+ }, "aria-expanded": !collapsed, "aria-label": t(collapsed ? 'expand_noun' : 'collapse_noun', [
115
+ contextualLabel || name
116
+ ]), children: _jsxs(Flex, { container: { direction: 'row', alignItems: 'center', gap: 0.5 }, forwardedAs: 'span', children: [_jsx(Icon, { name: 'caret-right' }), headingTag ? (_jsx(Text, { variant: headingTag, children: name })) : (_jsx(StyledFieldGroupName, { children: name }))] }) })) : (_jsx(_Fragment, { children: headingTag ? (_jsx(Text, { variant: headingTag, children: name })) : (_jsx(StyledFieldGroupName, { children: name })) })) })), typeof collapsed === 'boolean' ? (_jsx(ExpandCollapse, { collapsed: collapsed, children: descAndChildren })) : (descAndChildren)] }) }));
113
117
  });
114
118
  export default FieldGroup;
115
119
  //# sourceMappingURL=FieldGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldGroup.js","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,cAAc,MAAM,gCAAgC,CAAC;AACjE,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C,YAAY,CAAC,cAAc,CAAC,CAAC;AAqD7B,SAAS;AACT,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACzC,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,SAAS,EAAE,EACpB,EACF,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAA;MACN,UAAU;8BACc,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI;;8BAExC,UAAU;;;+BAGT,UAAU;0BACf,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;GAEpC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,kBAAkB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAA,EAAE,CAAC;AAElD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAC5D,SAAS,CAAC,WAAW,CAAC,CACvB,CACC,CAAC,EACC,SAAS,EACT,KAAK,EAAE,EACL,IAAI,EAAE,EACJ,OAAO,EACP,SAAS,EACT,UAAU,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,EACvE,EACF,EACF,EAAE,EAAE;IACH,OAAO,GAAG,CAAA;;;QAGN,CAAC,SAAS;QACZ,GAAG,CAAA;uCAC8B,OAAO;OACvC;qCAC8B,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI;;UAEnE,kBAAkB;sBACN,YAAY;;;wBAGV,aAAa;;;KAGhC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,sBAAsB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAC7C,CAAC,EACC,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EACxD,UAAU,EAAE,EAAE,IAAI,EAAE,EACrB,EACF,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEzD,OAAO,GAAG,CAAA;;;UAGJ,oBAAoB;qBACT,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAa,CAAC;uBACzC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;;;YAGjC,oBAAoB;qBACX,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAa,CAAC;uBACzC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;;;cAG/B,oBAAoB;qBACb,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAa,CAAC;uBACzC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;;;gBAG7B,oBAAoB;qBACf,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAa,CAAC;uBACzC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;;KAExC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAC5C,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/B,MAAM,EACJ,IAAI,EAAE,EACJ,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAC5B,OAAO,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,EACvC,OAAO,EACP,eAAe,EAAE,gBAAgB,EAClC,EACD,UAAU,EAAE,EACV,cAAc,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,EAChD,EACF,GAAG,KAAK,CAAC;IACV,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC;IAE9B,OAAO,GAAG,CAAA;iBACG,OAAO;4BACI,gBAAgB;gBAC5B,WAAW;;6BAEE,KAAK;oCACE,MAAM,CAAC,IAAI;;QAEvC,UAAU;QACZ,GAAG,CAAA;wBACe,WAAW;OAC5B;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAErD,aAAa;AACb,MAAM,gBAAgB,GAAG,CAAC,EACxB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,cAAc,EACQ,EAAE,EAAE;IAC1B,OAAO,CACL,KAAC,sBAAsB,IAAC,SAAS,EAAE,SAAS,YAC1C,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,aACrE,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,aAChD,QAAQ,EACR,cAAc,IAAI,CACjB,KAAC,cAAc,IAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,YACnE,cAAc,CAAC,OAAO,GACR,CAClB,IACI,EACN,OAAO,IAAI,KAAC,OAAO,IAAC,KAAK,EAAE,OAAO,GAAI,IAClC,GACgB,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAqD,UAAU,CAAC,SAAS,UAAU,CACjG,EACE,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,OAAO,EACP,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,GAAG,SAAS,EACqB,EACnC,GAA2B;IAE3B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,MAAM,eAAe,GAAG,CACtB,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,aAChD,WAAW,IAAI,KAAC,IAAI,IAAC,EAAE,EAAE,GAAG,GAAG,cAAc,EAAE,EAAE,EAAC,GAAG,EAAC,OAAO,EAAE,WAAW,GAAI,EAC/E,wBAAM,QAAQ,GAAO,IAChB,CACR,CAAC;IAEF,OAAO,CACL,KAAC,oBAAoB,IAAC,MAAM,EAAE,OAAO,KAAK,YAAY,EAAE,SAAS,EAAE,SAAS,YAC1E,MAAC,gBAAgB,kBACH,IAAI,sBACE,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,EAChE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,KACzB,SAAS,EACb,GAAG,EAAE,GAAG,aAEP,IAAI,IAAI,CACP,KAAC,gBAAgB,IACf,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,YAET,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAChC,KAAC,kBAAkB,IACjB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,EAAE,EAAE,CAAC;wBACxB,CAAC,mBACc,CAAC,SAAS,gBACb,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,YAElE,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,EAC/D,WAAW,EAAC,MAAM,aAElB,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,GAAG,EAC1B,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,IAAI,IAAC,OAAO,EAAE,UAAU,YAAG,IAAI,GAAQ,CACzC,CAAC,CAAC,CAAC,CACF,KAAC,oBAAoB,cAAE,IAAI,GAAwB,CACpD,IACI,GACY,CACtB,CAAC,CAAC,CAAC,CACF,4BACG,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,IAAI,IAAC,OAAO,EAAE,UAAU,YAAG,IAAI,GAAQ,CACzC,CAAC,CAAC,CAAC,CACF,KAAC,oBAAoB,cAAE,IAAI,GAAwB,CACpD,GACA,CACJ,GACgB,CACpB,EAEA,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAChC,KAAC,cAAc,IAAC,SAAS,EAAE,SAAS,YAAG,eAAe,GAAkB,CACzE,CAAC,CAAC,CAAC,CACF,eAAe,CAChB,IACgB,GACE,CACxB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC","sourcesContent":["import { forwardRef } from 'react';\nimport type { PropsWithoutRef, Ref, ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Text from '../Text';\nimport Button from '../Button';\nimport ExpandCollapse from '../ExpandCollapse';\nimport Flex from '../Flex';\nimport Grid from '../Grid';\nimport HTML from '../HTML';\nimport Icon, { StyledIcon, registerIcon } from '../Icon';\nimport * as caretRightIcon from '../Icon/icons/caret-right.icon';\nimport Actions from '../Actions';\nimport type { ActionsProps } from '../Actions';\nimport { defaultThemeProp } from '../../theme';\nimport type { BaseProps, ForwardRefForwardPropsComponent, HeadingTag } from '../../types';\nimport { useDirection, useI18n, useUID } from '../../hooks';\nimport { calculateFontSize, omitProps } from '../../styles';\nimport type { FontSize } from '../../styles';\nimport AdditionalInfo from '../AdditionalInfo';\nimport type { AdditionalInfoProps } from '../AdditionalInfo';\n\nregisterIcon(caretRightIcon);\n\n// Types\nexport type FieldGroupProps = BaseProps & {\n /** The content of the Field Group. */\n children: ReactNode;\n /** A description of the field group to be displayed above the controls. */\n description?: string;\n /** The display and markup variant to apply to the group. */\n variant?: 'form-group';\n /** A reference to the wrapping element. */\n ref?: Ref<HTMLFieldSetElement>;\n} & (\n | {\n /** The name associated with the Field Group. */\n name: string;\n /** Select the heading tag for header */\n headingTag?: HeadingTag;\n /** Provides additional info relevant to the field group. */\n additionalInfo?: {\n heading?: AdditionalInfoProps['heading'];\n content: AdditionalInfoProps['children'];\n };\n /** An array of actions to add to the header. */\n actions?: ActionsProps['items'];\n /**\n * Controls the collapsed state of the field group.\n * Passing undefined will render the field group as non-collapsible.\n * @default false\n */\n collapsed?: boolean;\n /**\n * Called when user clicks the toggle button.\n */\n onToggleCollapsed?: () => void;\n }\n | {\n name?: undefined;\n headingTag?: never;\n additionalInfo?: never;\n actions?: never;\n collapsed?: never;\n onToggleCollapsed?: never;\n }\n );\n\ninterface FieldGroupLegendProps extends Pick<FieldGroupProps, 'collapsed'> {\n name: NonNullable<FieldGroupProps['name']>;\n actions?: ActionsProps['items'];\n children?: ReactNode;\n additionalInfo?: FieldGroupProps['additionalInfo'];\n}\n\n// Styles\nconst StyledExpandButton = styled(Button)(({\n theme: {\n base: { animation }\n }\n}) => {\n const { rtl } = useDirection();\n return css`\n ${StyledIcon} {\n transition: transform ${animation.speed} ${animation.timing.ease};\n }\n &[aria-expanded='true'] ${StyledIcon} {\n transform: rotate(90deg);\n }\n &[aria-expanded='false'] ${StyledIcon} {\n transform: rotate(${rtl ? 180 : 0}deg);\n }\n `;\n});\n\nStyledExpandButton.defaultProps = defaultThemeProp;\n\nexport const StyledFieldGroupName = styled.span``;\n\nexport const StyledFieldGroupLegend = styled.legend.withConfig<Pick<FieldGroupProps, 'collapsed'>>(\n omitProps('collapsed')\n)(\n ({\n collapsed,\n theme: {\n base: {\n spacing,\n animation,\n 'hit-area': { 'mouse-min': hitAreaMouse, 'finger-min': hitAreaFinger }\n }\n }\n }) => {\n return css`\n width: 100%;\n margin-bottom: 0;\n ${!collapsed &&\n css`\n margin-block-end: calc(1.5 * ${spacing});\n `}\n transition: margin-block-end ${animation.speed} ${animation.timing.ease};\n\n > ${StyledExpandButton} {\n min-height: ${hitAreaMouse};\n\n @media (pointer: 'coarse') {\n min-height: ${hitAreaFinger};\n }\n }\n `;\n }\n);\n\nStyledFieldGroupLegend.defaultProps = defaultThemeProp;\n\nexport const StyledFieldGroup = styled.fieldset(\n ({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale },\n components: { text }\n }\n }) => {\n const fontSizes = calculateFontSize(fontSize, fontScale);\n\n return css`\n border: none;\n\n & ${StyledFieldGroupName} {\n font-size: ${fontSizes[text.h3['font-size'] as FontSize]};\n font-weight: ${text.h3['font-weight']};\n }\n\n & & ${StyledFieldGroupName} {\n font-size: ${fontSizes[text.h4['font-size'] as FontSize]};\n font-weight: ${text.h4['font-weight']};\n }\n\n & & & ${StyledFieldGroupName} {\n font-size: ${fontSizes[text.h5['font-size'] as FontSize]};\n font-weight: ${text.h5['font-weight']};\n }\n\n & & & & ${StyledFieldGroupName} {\n font-size: ${fontSizes[text.h6['font-size'] as FontSize]};\n font-weight: ${text.h6['font-weight']};\n }\n `;\n }\n);\n\nStyledFieldGroup.defaultProps = defaultThemeProp;\n\nexport const StyledGroupContainer = styled.div<{ collapsed?: boolean; border?: boolean }>(\n ({ theme, collapsed, border }) => {\n const {\n base: {\n animation: { speed, timing },\n palette: { 'border-line': borderColor },\n spacing,\n 'border-radius': baseBorderRadius\n },\n components: {\n 'form-control': { 'border-width': borderWidth }\n }\n } = theme;\n if (!border) return null;\n\n const showBorder = !collapsed;\n\n return css`\n padding: ${spacing};\n border-radius: calc(${baseBorderRadius} / 2);\n border: ${borderWidth} solid transparent;\n transition-property: border-color;\n transition-duration: ${speed};\n transition-timing-function: ${timing.ease};\n\n ${showBorder &&\n css`\n border-color: ${borderColor};\n `}\n `;\n }\n);\n\nStyledGroupContainer.defaultProps = defaultThemeProp;\n\n// Components\nconst FieldGroupLegend = ({\n name,\n children,\n collapsed,\n actions,\n additionalInfo\n}: FieldGroupLegendProps) => {\n return (\n <StyledFieldGroupLegend collapsed={collapsed}>\n <Flex container={{ alignItems: 'center', justify: 'between', gap: 0.5 }}>\n <Flex container={{ alignItems: 'center', gap: 0.5 }}>\n {children}\n {additionalInfo && (\n <AdditionalInfo heading={additionalInfo.heading} contextualLabel={name}>\n {additionalInfo.content}\n </AdditionalInfo>\n )}\n </Flex>\n {actions && <Actions items={actions} />}\n </Flex>\n </StyledFieldGroupLegend>\n );\n};\n\nconst FieldGroup: ForwardRefForwardPropsComponent<FieldGroupProps> = forwardRef(function FieldGroup(\n {\n children,\n description,\n name,\n additionalInfo,\n actions,\n collapsed,\n headingTag,\n onToggleCollapsed,\n variant,\n ...restProps\n }: PropsWithoutRef<FieldGroupProps>,\n ref: FieldGroupProps['ref']\n) {\n const t = useI18n();\n const uid = useUID();\n\n const descAndChildren = (\n <Grid container={{ cols: 'minmax(0, 1fr)', gap: 2 }}>\n {description && <HTML id={`${uid}-description`} as='p' content={description} />}\n <div>{children}</div>\n </Grid>\n );\n\n return (\n <StyledGroupContainer border={variant === 'form-group'} collapsed={collapsed}>\n <StyledFieldGroup\n aria-label={name}\n aria-describedby={description ? `${uid}-description` : undefined}\n as={name ? 'fieldset' : 'div'}\n {...restProps}\n ref={ref}\n >\n {name && (\n <FieldGroupLegend\n collapsed={collapsed}\n actions={actions}\n additionalInfo={additionalInfo}\n name={name}\n >\n {typeof collapsed === 'boolean' ? (\n <StyledExpandButton\n type='button'\n variant='text'\n onClick={() => {\n onToggleCollapsed?.();\n }}\n aria-expanded={!collapsed}\n aria-label={t(collapsed ? 'expand_noun' : 'collapse_noun', [name])}\n >\n <Flex\n container={{ direction: 'row', alignItems: 'center', gap: 0.5 }}\n forwardedAs='span'\n >\n <Icon name='caret-right' />\n {headingTag ? (\n <Text variant={headingTag}>{name}</Text>\n ) : (\n <StyledFieldGroupName>{name}</StyledFieldGroupName>\n )}\n </Flex>\n </StyledExpandButton>\n ) : (\n <>\n {headingTag ? (\n <Text variant={headingTag}>{name}</Text>\n ) : (\n <StyledFieldGroupName>{name}</StyledFieldGroupName>\n )}\n </>\n )}\n </FieldGroupLegend>\n )}\n\n {typeof collapsed === 'boolean' ? (\n <ExpandCollapse collapsed={collapsed}>{descAndChildren}</ExpandCollapse>\n ) : (\n descAndChildren\n )}\n </StyledFieldGroup>\n </StyledGroupContainer>\n );\n});\n\nexport default FieldGroup;\n"]}
1
+ {"version":3,"file":"FieldGroup.js","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef } from 'react';\nimport type { PropsWithoutRef, Ref, ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Text from '../Text';\nimport Button from '../Button';\nimport ExpandCollapse from '../ExpandCollapse';\nimport Flex from '../Flex';\nimport Grid from '../Grid';\nimport HTML from '../HTML';\nimport Icon, { StyledIcon, registerIcon } from '../Icon';\nimport * as caretRightIcon from '../Icon/icons/caret-right.icon';\nimport Actions from '../Actions';\nimport type { ActionsProps } from '../Actions';\nimport { defaultThemeProp } from '../../theme';\nimport type { BaseProps, ForwardRefForwardPropsComponent, HeadingTag } from '../../types';\nimport { useDirection, useI18n, useUID } from '../../hooks';\nimport { calculateFontSize, omitProps } from '../../styles';\nimport type { FontSize } from '../../styles';\nimport AdditionalInfo from '../AdditionalInfo';\nimport type { AdditionalInfoProps } from '../AdditionalInfo';\n\nregisterIcon(caretRightIcon);\n\n// Types\nexport type FieldGroupProps = BaseProps & {\n /** The content of the Field Group. */\n children: ReactNode;\n /** A description of the field group to be displayed above the controls. */\n description?: string;\n /** The display and markup variant to apply to the group. */\n variant?: 'form-group';\n /** A reference to the wrapping element. */\n ref?: Ref<HTMLFieldSetElement>;\n} & (\n | {\n /** The name associated with the Field Group. */\n name: string;\n /** Provides a contextual label for the name. */\n contextualLabel?: string;\n /** Select the heading tag for header */\n headingTag?: HeadingTag;\n /** Provides additional info relevant to the field group. */\n additionalInfo?: {\n heading?: AdditionalInfoProps['heading'];\n content: AdditionalInfoProps['children'];\n };\n /** An array of actions to add to the header. */\n actions?: ActionsProps['items'];\n /**\n * Controls the collapsed state of the field group.\n * Passing undefined will render the field group as non-collapsible.\n * @default false\n */\n collapsed?: boolean;\n /**\n * Called when user clicks the toggle button.\n */\n onToggleCollapsed?: () => void;\n }\n | {\n name?: undefined;\n contextualLabel?: never;\n headingTag?: never;\n additionalInfo?: never;\n actions?: never;\n collapsed?: never;\n onToggleCollapsed?: never;\n }\n );\n\ninterface FieldGroupLegendProps extends Pick<FieldGroupProps, 'collapsed'> {\n name: NonNullable<FieldGroupProps['name']>;\n actions?: ActionsProps['items'];\n children?: ReactNode;\n additionalInfo?: FieldGroupProps['additionalInfo'];\n contextualLabel?: FieldGroupProps['contextualLabel'];\n}\n\n// Styles\nconst StyledExpandButton = styled(Button)(({\n theme: {\n base: { animation }\n }\n}) => {\n const { rtl } = useDirection();\n return css`\n ${StyledIcon} {\n transition: transform ${animation.speed} ${animation.timing.ease};\n }\n &[aria-expanded='true'] ${StyledIcon} {\n transform: rotate(90deg);\n }\n &[aria-expanded='false'] ${StyledIcon} {\n transform: rotate(${rtl ? 180 : 0}deg);\n }\n `;\n});\n\nStyledExpandButton.defaultProps = defaultThemeProp;\n\nexport const StyledFieldGroupName = styled.span``;\n\nexport const StyledFieldHeader = styled(Flex)``;\n\nexport const StyledFieldGroupContent = styled(Grid)``;\n\nexport const StyledFieldGroupLegend = styled.legend.withConfig<Pick<FieldGroupProps, 'collapsed'>>(\n omitProps('collapsed')\n)(\n ({\n collapsed,\n theme: {\n base: {\n spacing,\n animation,\n 'hit-area': { 'mouse-min': hitAreaMouse, 'finger-min': hitAreaFinger }\n }\n }\n }) => {\n return css`\n width: 100%;\n margin-bottom: 0;\n ${!collapsed &&\n css`\n margin-block-end: calc(1.5 * ${spacing});\n `}\n transition: margin-block-end ${animation.speed} ${animation.timing.ease};\n\n > ${StyledExpandButton} {\n min-height: ${hitAreaMouse};\n\n @media (pointer: 'coarse') {\n min-height: ${hitAreaFinger};\n }\n }\n `;\n }\n);\n\nStyledFieldGroupLegend.defaultProps = defaultThemeProp;\n\nexport const StyledFieldGroup = styled.fieldset(\n ({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale },\n components: { text }\n }\n }) => {\n const fontSizes = calculateFontSize(fontSize, fontScale);\n\n return css`\n border: none;\n\n & ${StyledFieldGroupName} {\n font-size: ${fontSizes[text.h3['font-size'] as FontSize]};\n font-weight: ${text.h3['font-weight']};\n }\n\n & & ${StyledFieldGroupName} {\n font-size: ${fontSizes[text.h4['font-size'] as FontSize]};\n font-weight: ${text.h4['font-weight']};\n }\n\n & & & ${StyledFieldGroupName} {\n font-size: ${fontSizes[text.h5['font-size'] as FontSize]};\n font-weight: ${text.h5['font-weight']};\n }\n\n & & & & ${StyledFieldGroupName} {\n font-size: ${fontSizes[text.h6['font-size'] as FontSize]};\n font-weight: ${text.h6['font-weight']};\n }\n `;\n }\n);\n\nStyledFieldGroup.defaultProps = defaultThemeProp;\n\nexport const StyledGroupContainer = styled.div<{ collapsed?: boolean; border?: boolean }>(\n ({ theme, collapsed, border }) => {\n const {\n base: {\n animation: { speed, timing },\n palette: { 'border-line': borderColor },\n spacing,\n 'border-radius': baseBorderRadius\n },\n components: {\n 'form-control': { 'border-width': borderWidth }\n }\n } = theme;\n if (!border) return null;\n\n const showBorder = !collapsed;\n\n return css`\n padding: ${spacing};\n border-radius: calc(${baseBorderRadius} / 2);\n border: ${borderWidth} solid transparent;\n transition-property: border-color;\n transition-duration: ${speed};\n transition-timing-function: ${timing.ease};\n\n ${showBorder &&\n css`\n border-color: ${borderColor};\n `}\n `;\n }\n);\n\nStyledGroupContainer.defaultProps = defaultThemeProp;\n\n// Components\nconst FieldGroupLegend = ({\n name,\n contextualLabel,\n children,\n collapsed,\n actions,\n additionalInfo\n}: FieldGroupLegendProps) => {\n return (\n <StyledFieldGroupLegend collapsed={collapsed}>\n <Flex container={{ alignItems: 'center', justify: 'between', gap: 0.5 }}>\n <Flex container={{ alignItems: 'center', gap: 0.5 }} as={StyledFieldHeader}>\n {children}\n {additionalInfo && (\n <AdditionalInfo\n heading={additionalInfo.heading}\n contextualLabel={contextualLabel || name}\n >\n {additionalInfo.content}\n </AdditionalInfo>\n )}\n </Flex>\n {actions && <Actions items={actions} contextualLabel={contextualLabel} />}\n </Flex>\n </StyledFieldGroupLegend>\n );\n};\n\nconst FieldGroup: ForwardRefForwardPropsComponent<FieldGroupProps> = forwardRef(function FieldGroup(\n {\n children,\n description,\n name,\n contextualLabel,\n additionalInfo,\n actions,\n collapsed,\n headingTag,\n onToggleCollapsed,\n variant,\n ...restProps\n }: PropsWithoutRef<FieldGroupProps>,\n ref: FieldGroupProps['ref']\n) {\n const t = useI18n();\n const uid = useUID();\n\n const descAndChildren = (\n <StyledFieldGroupContent container={{ cols: 'minmax(0, 1fr)', gap: 2 }}>\n {description && <HTML id={`${uid}-description`} as='p' content={description} />}\n <div>{children}</div>\n </StyledFieldGroupContent>\n );\n\n return (\n <StyledGroupContainer border={variant === 'form-group'} collapsed={collapsed}>\n <StyledFieldGroup\n aria-label={contextualLabel || name}\n aria-describedby={description ? `${uid}-description` : undefined}\n as={name ? 'fieldset' : 'div'}\n {...restProps}\n ref={ref}\n >\n {name && (\n <FieldGroupLegend\n collapsed={collapsed}\n actions={actions}\n additionalInfo={additionalInfo}\n name={name}\n contextualLabel={contextualLabel}\n >\n {typeof collapsed === 'boolean' ? (\n <StyledExpandButton\n type='button'\n variant='text'\n onClick={() => {\n onToggleCollapsed?.();\n }}\n aria-expanded={!collapsed}\n aria-label={t(collapsed ? 'expand_noun' : 'collapse_noun', [\n contextualLabel || name\n ])}\n >\n <Flex\n container={{ direction: 'row', alignItems: 'center', gap: 0.5 }}\n forwardedAs='span'\n >\n <Icon name='caret-right' />\n {headingTag ? (\n <Text variant={headingTag}>{name}</Text>\n ) : (\n <StyledFieldGroupName>{name}</StyledFieldGroupName>\n )}\n </Flex>\n </StyledExpandButton>\n ) : (\n <>\n {headingTag ? (\n <Text variant={headingTag}>{name}</Text>\n ) : (\n <StyledFieldGroupName>{name}</StyledFieldGroupName>\n )}\n </>\n )}\n </FieldGroupLegend>\n )}\n\n {typeof collapsed === 'boolean' ? (\n <ExpandCollapse collapsed={collapsed}>{descAndChildren}</ExpandCollapse>\n ) : (\n descAndChildren\n )}\n </StyledFieldGroup>\n </StyledGroupContainer>\n );\n});\n\nexport default FieldGroup;\n"]}
@@ -6,15 +6,30 @@ export type FieldGroupListItemProps = FieldGroupProps & {
6
6
  id: string;
7
7
  /** Item level onDelete callback. */
8
8
  onDelete?: (id: string) => void;
9
+ /** Indicates if the item is dynamic. */
10
+ isDynamic?: boolean;
9
11
  };
10
12
  export interface FieldGroupListProps {
11
13
  items: FieldGroupListItemProps[];
12
14
  contextualLabel?: string;
15
+ label?: string;
16
+ additionalContext?: string | JSX.Element;
13
17
  onAdd?: () => void;
14
18
  onDelete?: (id: string) => void;
15
- ref?: Ref<HTMLDivElement>;
19
+ ref?: Ref<HTMLOListElement>;
16
20
  }
17
- export declare const StyledListItem: import("styled-components").StyledComponent<ForwardRefForwardPropsComponent<FieldGroupProps>, import("styled-components").DefaultTheme, {}, never>;
21
+ export interface ListItemProps {
22
+ item: FieldGroupListItemProps;
23
+ index: number;
24
+ isAddFocused: boolean;
25
+ handleDelete: FieldGroupListProps['onDelete'];
26
+ fieldGroupRef: (el: HTMLFieldSetElement | null) => void;
27
+ }
28
+ export declare const StyledListItem: import("styled-components").StyledComponent<"li", import("styled-components").DefaultTheme, {
29
+ depth: number;
30
+ listGroupIndex: number;
31
+ shouldHighlight: boolean;
32
+ }, never>;
18
33
  declare const FieldGroupList: ForwardRefForwardPropsComponent<FieldGroupListProps>;
19
34
  export default FieldGroupList;
20
35
  //# sourceMappingURL=FieldGroupList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldGroupList.d.ts","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,GAAG,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AASnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG;IACtD,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AAcD,eAAO,MAAM,cAAc,oJAa1B,CAAC;AAYF,QAAA,MAAM,cAAc,EAAE,+BAA+B,CAAC,mBAAmB,CAoFxE,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"FieldGroupList.d.ts","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,GAAG,EAAc,MAAM,OAAO,CAAC;AAI9D,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAqBnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG;IACtD,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC9C,aAAa,EAAE,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD;AAUD,eAAO,MAAM,cAAc;WAClB,MAAM;oBACG,MAAM;qBACL,OAAO;SA2EzB,CAAC;AAuJF,QAAA,MAAM,cAAc,EAAE,+BAA+B,CAAC,mBAAmB,CAkJxE,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,75 +1,227 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useEffect, useRef } from 'react';
2
+ import { forwardRef, useRef, useLayoutEffect, useContext, useMemo, useState } from 'react';
3
3
  import styled, { css } from 'styled-components';
4
+ import { transparentize } from 'polished';
4
5
  import Button from '../Button';
5
6
  import Icon, { registerIcon } from '../Icon';
6
7
  import * as plusIcon from '../Icon/icons/plus.icon';
7
- import { useI18n } from '../../hooks';
8
+ import { useDirection, useI18n, useLiveLog } from '../../hooks';
8
9
  import { defaultThemeProp } from '../../theme';
9
- import { getActiveElement, getFocusables } from '../../utils';
10
- import FieldGroup, { StyledFieldGroup } from './FieldGroup';
10
+ import { getActiveElement, getFocusables, tryCatch } from '../../utils';
11
+ import Flex from '../Flex';
12
+ import EmptyState from '../EmptyState';
13
+ import AdditionalInfo from '../AdditionalInfo';
14
+ import Text from '../Text';
15
+ import { nlpColors, readableHue } from '../../styles';
16
+ import { getIndexDetails } from './FieldGroupList.utils';
17
+ import FieldGroup, { StyledFieldGroup, StyledFieldGroupContent, StyledFieldGroupLegend, StyledGroupContainer, StyledFieldHeader } from './FieldGroup';
18
+ import FieldGroupListContext from './FieldGroupListContext';
11
19
  registerIcon(plusIcon);
12
- const StyledFieldGroupList = styled.div(({ theme }) => css `
13
- margin-block-start: ${theme.base.spacing};
14
-
15
- ${StyledFieldGroup} {
16
- margin-block-start: 0;
17
- }
20
+ const StyledFieldGroupList = styled.ol(() => css `
21
+ list-style: none;
18
22
  `);
19
23
  StyledFieldGroupList.defaultProps = defaultThemeProp;
20
- export const StyledListItem = styled(FieldGroup)(({ theme }) => css `
21
- padding: ${theme.base.spacing} 0 calc(2 * ${theme.base.spacing});
24
+ export const StyledListItem = styled.li(({ theme: { base: { spacing, palette, 'border-radius': borderRadius } }, depth, listGroupIndex, shouldHighlight }) => {
25
+ const bgColor = tryCatch(() => readableHue(nlpColors[listGroupIndex % nlpColors.length], palette['app-background']), () => nlpColors[listGroupIndex % nlpColors.length]);
26
+ return css `
27
+ display: block;
22
28
 
23
- &:not(:last-of-type) {
24
- border-bottom: 0.0625rem solid ${theme.base.palette['border-line']};
25
- margin-block-end: calc(2 * ${theme.base.spacing});
26
- }
29
+ > ${StyledGroupContainer} {
30
+ position: relative;
31
+ padding-inline-end: ${spacing};
27
32
 
28
- legend {
29
- margin-block-end: 0;
30
- }
31
- `);
33
+ &::before {
34
+ content: '';
35
+ position: absolute;
36
+ inset-block-start: 0;
37
+ bottom: 0;
38
+ inset-inline-start: 0;
39
+ width: calc(0.5 * ${spacing});
40
+ background: ${transparentize(0.75, bgColor)};
41
+ }
42
+
43
+ ${depth > 1 &&
44
+ css `
45
+ margin-inline-end: -${spacing};
46
+ `}
47
+
48
+ ${shouldHighlight &&
49
+ css `
50
+ border-start-end-radius: calc(0.5 * ${borderRadius});
51
+ border-end-end-radius: calc(0.5 * ${borderRadius});
52
+ background: ${transparentize(0.95, palette['foreground-color'])};
53
+ `}
54
+ }
55
+
56
+ > ${StyledGroupContainer} > ${StyledFieldGroup} {
57
+ margin-block-start: 0;
58
+ padding: ${spacing} 0;
59
+
60
+ &:not(:last-of-type) {
61
+ border-bottom: 0.0625rem solid ${palette['border-line']};
62
+ margin-block-end: calc(2 * ${spacing});
63
+ }
64
+
65
+ legend {
66
+ margin-block-end: 0;
67
+ }
68
+ }
69
+
70
+ > ${StyledGroupContainer} > ${StyledFieldGroup} > ${StyledFieldGroupContent} {
71
+ padding-inline-start: calc(1.5 * ${spacing});
72
+ }
73
+
74
+ > ${StyledGroupContainer} > ${StyledFieldGroup} > ${StyledFieldGroupLegend} {
75
+ ${StyledFieldHeader} {
76
+ margin-inline-start: calc(0.5 * ${spacing});
77
+ padding-inline: ${spacing};
78
+ height: calc(4 * ${spacing});
79
+ border-start-end-radius: calc(0.5 * ${borderRadius});
80
+ border-end-end-radius: calc(0.5 * ${borderRadius});
81
+ background: ${transparentize(0.75, bgColor)};
82
+ }
83
+ }
84
+ `;
85
+ });
32
86
  StyledListItem.defaultProps = defaultThemeProp;
33
- const StyledAddButton = styled(Button)(({ theme }) => css `
34
- margin-top: ${theme.base.spacing};
87
+ const StyledAddButton = styled(Button)(({ theme: { base: { spacing, 'hit-area': { 'mouse-min': hitAreaMouse } } } }) => css `
88
+ display: inline-flex;
89
+ align-items: center;
90
+ min-height: ${hitAreaMouse};
91
+ min-width: ${hitAreaMouse};
92
+ width: fit-content;
93
+ margin-inline-start: calc(2 * ${spacing});
35
94
  `);
36
95
  StyledAddButton.defaultProps = defaultThemeProp;
37
- const FieldGroupList = forwardRef(function FieldGroupList({ items, onAdd, onDelete, contextualLabel, ...restProps }, ref) {
96
+ const StyledFieldGroupListContainer = styled.div(({ theme: { base: { spacing, palette, 'border-radius': borderRadius } }, hasAdd }) => css `
97
+ position: relative;
98
+ margin-block-start: ${spacing};
99
+
100
+ ${hasAdd &&
101
+ css `
102
+ &::before {
103
+ content: '';
104
+ position: absolute;
105
+ inset-inline-start: 0;
106
+ bottom: calc(1.5 * ${spacing});
107
+ width: calc(1.5 * ${spacing});
108
+ height: calc(2.5 * ${spacing});
109
+ border-end-start-radius: calc(0.5 * ${borderRadius});
110
+ border-inline-start: calc(0.5 * ${spacing}) solid ${palette['border-line']};
111
+ border-bottom: calc(0.5 * ${spacing}) solid ${palette['border-line']};
112
+ }
113
+ `}
114
+ `);
115
+ StyledFieldGroupListContainer.defaultProps = defaultThemeProp;
116
+ const StyledDivider = styled.div(({ theme: { base: { spacing, palette } } }) => css `
117
+ flex: 1;
118
+ height: calc(0.5 * ${spacing});
119
+ background-color: ${palette['border-line']};
120
+ `);
121
+ StyledDivider.defaultProps = defaultThemeProp;
122
+ const ListItem = ({ item, index, isAddFocused, handleDelete, fieldGroupRef }) => {
123
+ const { id, children, name = '', isDynamic, headingTag, ...restItemProps } = item;
124
+ const t = useI18n();
125
+ const { rtl } = useDirection();
126
+ const { announcePolite } = useLiveLog();
127
+ const { depth = 1, ancestorIndices = [], isAncestorHighlighted = false } = useContext(FieldGroupListContext);
128
+ const [isItemFocused, setIsItemFocused] = useState(false);
129
+ const [isDeleteHovered, setIsDeleteHovered] = useState(false);
130
+ const listIndices = [...ancestorIndices, index];
131
+ const { rootIndex, currentIndex, compoundIndex } = getIndexDetails(listIndices);
132
+ const shouldHighlight = !isAncestorHighlighted && (isAddFocused || isDeleteHovered || isItemFocused);
133
+ let formattedName;
134
+ if (isDynamic) {
135
+ formattedName = name;
136
+ }
137
+ else {
138
+ formattedName = rtl ? `${currentIndex}\u200F ${name}` : `${currentIndex} ${name}`;
139
+ }
140
+ const contextualLabel = isDynamic ? name : `${name} ${compoundIndex}`;
141
+ const ctxValue = useMemo(() => ({
142
+ depth: depth + 1,
143
+ isAncestorHighlighted: shouldHighlight || isAncestorHighlighted,
144
+ ancestorIndices: listIndices
145
+ }), [depth, index, shouldHighlight, isAncestorHighlighted, listIndices]);
146
+ return (_jsx(StyledListItem, { depth: depth, listGroupIndex: rootIndex, shouldHighlight: shouldHighlight, onFocus: () => {
147
+ setIsItemFocused(true);
148
+ }, onBlur: () => {
149
+ setIsItemFocused(false);
150
+ }, children: _jsx(FieldGroupListContext.Provider, { value: ctxValue, children: _jsx(FieldGroup, { name: formattedName, contextualLabel: contextualLabel, headingTag: headingTag, ...restItemProps, actions: handleDelete
151
+ ? [
152
+ {
153
+ id: 'delete',
154
+ text: t('delete'),
155
+ icon: 'trash',
156
+ iconOnly: true,
157
+ onClick: () => {
158
+ handleDelete(id);
159
+ announcePolite({ message: t('deleted', [contextualLabel]) });
160
+ },
161
+ onMouseEnter: () => setIsDeleteHovered(true),
162
+ onMouseLeave: () => setIsDeleteHovered(false)
163
+ }
164
+ ]
165
+ : undefined, ref: fieldGroupRef, children: children }) }) }));
166
+ };
167
+ const FieldGroupList = forwardRef(function FieldGroupList({ label, additionalContext, items, onAdd, onDelete, contextualLabel, ...restProps }, ref) {
38
168
  const t = useI18n();
39
- const lastItemRef = useRef(null);
40
169
  const addBtnRef = useRef(null);
41
- useEffect(() => {
170
+ const itemRefs = useRef([]);
171
+ const deletedItemIndexRef = useRef(null);
172
+ const [isAddFocused, setIsAddFocused] = useState(false);
173
+ const focusElement = (itemRef, focusPreference) => {
174
+ if (!itemRef)
175
+ return;
176
+ const focusables = getFocusables(itemRef);
177
+ const groupItemLegend = itemRef.querySelector(':scope > legend');
178
+ const groupActionButtons = focusables.filter(focusable => groupItemLegend?.contains(focusable));
179
+ const groupContentFocusables = focusables.filter(focusable => !groupItemLegend?.contains(focusable));
180
+ if (focusPreference === 'action') {
181
+ (groupActionButtons[0] || groupContentFocusables[0])?.focus();
182
+ }
183
+ else {
184
+ (groupContentFocusables[0] || groupActionButtons[0])?.focus();
185
+ }
186
+ };
187
+ useLayoutEffect(() => {
42
188
  const currentActiveEl = getActiveElement();
43
- if (currentActiveEl === addBtnRef.current && lastItemRef.current) {
44
- const groupItemLegend = lastItemRef.current.querySelector(':scope > legend');
45
- const focusables = getFocusables(lastItemRef.current);
46
- const groupActionButtons = focusables.filter(focusable => groupItemLegend?.contains(focusable));
47
- const groupContentFocusables = focusables.filter(focusable => !groupItemLegend?.contains(focusable));
48
- if (groupContentFocusables.length > 0) {
49
- groupContentFocusables[0].focus();
189
+ if (deletedItemIndexRef.current !== null) {
190
+ const deletedIndex = deletedItemIndexRef.current;
191
+ if (items.length === 0 && addBtnRef.current) {
192
+ addBtnRef.current.focus();
50
193
  }
51
194
  else {
52
- groupActionButtons[0]?.focus();
195
+ const nextIndex = Math.min(deletedIndex, items.length - 1);
196
+ const nextItemRef = itemRefs.current[nextIndex];
197
+ focusElement(nextItemRef, 'action');
53
198
  }
199
+ deletedItemIndexRef.current = null;
200
+ }
201
+ if (currentActiveEl === addBtnRef.current) {
202
+ const lastIndex = items.length - 1;
203
+ const lastItemRef = itemRefs.current[lastIndex];
204
+ focusElement(lastItemRef, 'content');
54
205
  }
55
206
  }, [items.length]);
56
- return (_jsxs(StyledFieldGroupList, { ref: ref, ...restProps, children: [items.map(({ id, children, name, headingTag, onDelete: itemOnDelete, ...restItemProps }, index) => {
57
- const isLastItem = index === items.length - 1;
58
- return (_jsx(StyledListItem, { name: name, headingTag: headingTag, ...restItemProps, actions: onDelete || itemOnDelete
59
- ? [
60
- {
61
- id: 'delete',
62
- text: t('delete'),
63
- icon: 'trash',
64
- iconOnly: true,
65
- onClick: () => {
66
- itemOnDelete?.(id);
67
- onDelete?.(id);
68
- }
69
- }
70
- ]
71
- : undefined, ref: isLastItem ? lastItemRef : undefined, children: children }, id));
72
- }), onAdd && (_jsxs(StyledAddButton, { variant: 'link', onClick: onAdd, ref: addBtnRef, children: [_jsx(Icon, { name: 'plus' }), contextualLabel ? t('add_noun', [contextualLabel]) : t('add')] }))] }));
207
+ return (_jsxs(Flex, { container: { direction: 'column', gap: 1 }, as: StyledFieldGroupListContainer, hasAdd: !!onAdd, onFocus: (e) => {
208
+ e.stopPropagation();
209
+ }, onBlur: (e) => {
210
+ e.stopPropagation();
211
+ }, children: [label && (_jsxs(Flex, { container: { gap: 0.5, alignItems: 'center' }, children: [_jsx(Text, { variant: 'h3', children: label }), additionalContext && (_jsx(AdditionalInfo, { contextualLabel: label, children: additionalContext })), _jsx(StyledDivider, { "aria-hidden": 'true' })] })), items.length === 0 ? (_jsx(EmptyState, {})) : (_jsx(Flex, { container: { direction: 'column', gap: 1 }, as: StyledFieldGroupList, ref: ref, "aria-label": label, ...restProps, children: items.map((item, index) => {
212
+ const handleDelete = onDelete || item.onDelete
213
+ ? (id) => {
214
+ deletedItemIndexRef.current = index;
215
+ item.onDelete?.(id);
216
+ onDelete?.(id);
217
+ }
218
+ : undefined;
219
+ return (_jsx(ListItem, { item: item, index: index, isAddFocused: isAddFocused, handleDelete: handleDelete, fieldGroupRef: (el) => {
220
+ itemRefs.current[index] = el;
221
+ } }, item.id));
222
+ }) })), onAdd && (_jsxs(StyledAddButton, { variant: 'link', onClick: onAdd, onFocus: () => {
223
+ setIsAddFocused(true);
224
+ }, onBlur: () => setIsAddFocused(false), ref: addBtnRef, children: [_jsx(Icon, { name: 'plus' }), contextualLabel ? t('add_noun', [contextualLabel]) : t('add')] }))] }));
73
225
  });
74
226
  export default FieldGroupList;
75
227
  //# sourceMappingURL=FieldGroupList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldGroupList.js","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useRef } from 'react';\nimport type { PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport type { ForwardRefForwardPropsComponent } from '../../types';\nimport Button from '../Button';\nimport Icon, { registerIcon } from '../Icon';\nimport * as plusIcon from '../Icon/icons/plus.icon';\nimport { useI18n } from '../../hooks';\nimport { defaultThemeProp } from '../../theme';\nimport { getActiveElement, getFocusables } from '../../utils';\n\nimport FieldGroup, { StyledFieldGroup } from './FieldGroup';\nimport type { FieldGroupProps } from './FieldGroup';\n\nregisterIcon(plusIcon);\n\nexport type FieldGroupListItemProps = FieldGroupProps & {\n /** The ID of the field group list item */\n id: string;\n /** Item level onDelete callback. */\n onDelete?: (id: string) => void;\n};\n\nexport interface FieldGroupListProps {\n items: FieldGroupListItemProps[];\n contextualLabel?: string;\n onAdd?: () => void;\n onDelete?: (id: string) => void;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst StyledFieldGroupList = styled.div(\n ({ theme }) => css`\n margin-block-start: ${theme.base.spacing};\n\n ${StyledFieldGroup} {\n margin-block-start: 0;\n }\n `\n);\n\nStyledFieldGroupList.defaultProps = defaultThemeProp;\n\nexport const StyledListItem = styled(FieldGroup)(\n ({ theme }) => css`\n padding: ${theme.base.spacing} 0 calc(2 * ${theme.base.spacing});\n\n &:not(:last-of-type) {\n border-bottom: 0.0625rem solid ${theme.base.palette['border-line']};\n margin-block-end: calc(2 * ${theme.base.spacing});\n }\n\n legend {\n margin-block-end: 0;\n }\n `\n);\n\nStyledListItem.defaultProps = defaultThemeProp;\n\nconst StyledAddButton = styled(Button)(\n ({ theme }) => css`\n margin-top: ${theme.base.spacing};\n `\n);\n\nStyledAddButton.defaultProps = defaultThemeProp;\n\nconst FieldGroupList: ForwardRefForwardPropsComponent<FieldGroupListProps> = forwardRef(\n function FieldGroupList(\n { items, onAdd, onDelete, contextualLabel, ...restProps }: PropsWithoutRef<FieldGroupListProps>,\n ref: FieldGroupListProps['ref']\n ) {\n const t = useI18n();\n const lastItemRef = useRef<HTMLDivElement>(null);\n const addBtnRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n const currentActiveEl = getActiveElement();\n if (currentActiveEl === addBtnRef.current && lastItemRef.current) {\n const groupItemLegend = lastItemRef.current.querySelector(':scope > legend');\n const focusables = getFocusables(lastItemRef.current);\n\n const groupActionButtons = focusables.filter(focusable =>\n groupItemLegend?.contains(focusable)\n );\n\n const groupContentFocusables = focusables.filter(\n focusable => !groupItemLegend?.contains(focusable)\n );\n\n if (groupContentFocusables.length > 0) {\n groupContentFocusables[0].focus();\n } else {\n groupActionButtons[0]?.focus();\n }\n }\n }, [items.length]);\n\n return (\n <StyledFieldGroupList ref={ref} {...restProps}>\n {items.map(\n (\n {\n id,\n children,\n name,\n headingTag,\n onDelete: itemOnDelete,\n ...restItemProps\n }: FieldGroupListItemProps,\n index\n ) => {\n const isLastItem = index === items.length - 1;\n return (\n <StyledListItem\n key={id}\n name={name}\n headingTag={headingTag}\n {...restItemProps}\n actions={\n onDelete || itemOnDelete\n ? [\n {\n id: 'delete',\n text: t('delete'),\n icon: 'trash',\n iconOnly: true,\n onClick: () => {\n itemOnDelete?.(id);\n onDelete?.(id);\n }\n }\n ]\n : undefined\n }\n ref={isLastItem ? lastItemRef : undefined}\n >\n {children}\n </StyledListItem>\n );\n }\n )}\n {onAdd && (\n <StyledAddButton variant='link' onClick={onAdd} ref={addBtnRef}>\n <Icon name='plus' />\n {contextualLabel ? t('add_noun', [contextualLabel]) : t('add')}\n </StyledAddButton>\n )}\n </StyledFieldGroupList>\n );\n }\n);\n\nexport default FieldGroupList;\n"]}
1
+ {"version":3,"file":"FieldGroupList.js","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useRef, useLayoutEffect, useContext, useMemo, useState } from 'react';\nimport type { PropsWithoutRef, Ref, FocusEvent } from 'react';\nimport styled, { css } from 'styled-components';\nimport { transparentize } from 'polished';\n\nimport type { ForwardRefForwardPropsComponent } from '../../types';\nimport Button from '../Button';\nimport Icon, { registerIcon } from '../Icon';\nimport * as plusIcon from '../Icon/icons/plus.icon';\nimport { useDirection, useI18n, useLiveLog } from '../../hooks';\nimport { defaultThemeProp } from '../../theme';\nimport { getActiveElement, getFocusables, tryCatch } from '../../utils';\nimport Flex from '../Flex';\nimport EmptyState from '../EmptyState';\nimport AdditionalInfo from '../AdditionalInfo';\nimport Text from '../Text';\nimport { nlpColors, readableHue } from '../../styles';\n\nimport { getIndexDetails } from './FieldGroupList.utils';\nimport FieldGroup, {\n StyledFieldGroup,\n StyledFieldGroupContent,\n StyledFieldGroupLegend,\n StyledGroupContainer,\n StyledFieldHeader\n} from './FieldGroup';\nimport type { FieldGroupProps } from './FieldGroup';\nimport FieldGroupListContext from './FieldGroupListContext';\n\nregisterIcon(plusIcon);\n\nexport type FieldGroupListItemProps = FieldGroupProps & {\n /** The ID of the field group list item */\n id: string;\n /** Item level onDelete callback. */\n onDelete?: (id: string) => void;\n /** Indicates if the item is dynamic. */\n isDynamic?: boolean;\n};\n\nexport interface FieldGroupListProps {\n items: FieldGroupListItemProps[];\n contextualLabel?: string;\n label?: string;\n additionalContext?: string | JSX.Element;\n onAdd?: () => void;\n onDelete?: (id: string) => void;\n ref?: Ref<HTMLOListElement>;\n}\n\nexport interface ListItemProps {\n item: FieldGroupListItemProps;\n index: number;\n isAddFocused: boolean;\n handleDelete: FieldGroupListProps['onDelete'];\n fieldGroupRef: (el: HTMLFieldSetElement | null) => void;\n}\n\nconst StyledFieldGroupList = styled.ol(\n () => css`\n list-style: none;\n `\n);\n\nStyledFieldGroupList.defaultProps = defaultThemeProp;\n\nexport const StyledListItem = styled.li<{\n depth: number;\n listGroupIndex: number;\n shouldHighlight: boolean;\n}>(\n ({\n theme: {\n base: { spacing, palette, 'border-radius': borderRadius }\n },\n depth,\n listGroupIndex,\n shouldHighlight\n }) => {\n const bgColor = tryCatch(\n () => readableHue(nlpColors[listGroupIndex % nlpColors.length], palette['app-background']),\n () => nlpColors[listGroupIndex % nlpColors.length]\n );\n\n return css`\n display: block;\n\n > ${StyledGroupContainer} {\n position: relative;\n padding-inline-end: ${spacing};\n\n &::before {\n content: '';\n position: absolute;\n inset-block-start: 0;\n bottom: 0;\n inset-inline-start: 0;\n width: calc(0.5 * ${spacing});\n background: ${transparentize(0.75, bgColor)};\n }\n\n ${depth > 1 &&\n css`\n margin-inline-end: -${spacing};\n `}\n\n ${shouldHighlight &&\n css`\n border-start-end-radius: calc(0.5 * ${borderRadius});\n border-end-end-radius: calc(0.5 * ${borderRadius});\n background: ${transparentize(0.95, palette['foreground-color'])};\n `}\n }\n\n > ${StyledGroupContainer} > ${StyledFieldGroup} {\n margin-block-start: 0;\n padding: ${spacing} 0;\n\n &:not(:last-of-type) {\n border-bottom: 0.0625rem solid ${palette['border-line']};\n margin-block-end: calc(2 * ${spacing});\n }\n\n legend {\n margin-block-end: 0;\n }\n }\n\n > ${StyledGroupContainer} > ${StyledFieldGroup} > ${StyledFieldGroupContent} {\n padding-inline-start: calc(1.5 * ${spacing});\n }\n\n > ${StyledGroupContainer} > ${StyledFieldGroup} > ${StyledFieldGroupLegend} {\n ${StyledFieldHeader} {\n margin-inline-start: calc(0.5 * ${spacing});\n padding-inline: ${spacing};\n height: calc(4 * ${spacing});\n border-start-end-radius: calc(0.5 * ${borderRadius});\n border-end-end-radius: calc(0.5 * ${borderRadius});\n background: ${transparentize(0.75, bgColor)};\n }\n }\n `;\n }\n);\n\nStyledListItem.defaultProps = defaultThemeProp;\n\nconst StyledAddButton = styled(Button)(\n ({\n theme: {\n base: {\n spacing,\n 'hit-area': { 'mouse-min': hitAreaMouse }\n }\n }\n }) => css`\n display: inline-flex;\n align-items: center;\n min-height: ${hitAreaMouse};\n min-width: ${hitAreaMouse};\n width: fit-content;\n margin-inline-start: calc(2 * ${spacing});\n `\n);\n\nStyledAddButton.defaultProps = defaultThemeProp;\n\nconst StyledFieldGroupListContainer = styled.div<{ hasAdd: boolean }>(\n ({\n theme: {\n base: { spacing, palette, 'border-radius': borderRadius }\n },\n hasAdd\n }) => css`\n position: relative;\n margin-block-start: ${spacing};\n\n ${hasAdd &&\n css`\n &::before {\n content: '';\n position: absolute;\n inset-inline-start: 0;\n bottom: calc(1.5 * ${spacing});\n width: calc(1.5 * ${spacing});\n height: calc(2.5 * ${spacing});\n border-end-start-radius: calc(0.5 * ${borderRadius});\n border-inline-start: calc(0.5 * ${spacing}) solid ${palette['border-line']};\n border-bottom: calc(0.5 * ${spacing}) solid ${palette['border-line']};\n }\n `}\n `\n);\n\nStyledFieldGroupListContainer.defaultProps = defaultThemeProp;\n\nconst StyledDivider = styled.div(\n ({\n theme: {\n base: { spacing, palette }\n }\n }) => css`\n flex: 1;\n height: calc(0.5 * ${spacing});\n background-color: ${palette['border-line']};\n `\n);\n\nStyledDivider.defaultProps = defaultThemeProp;\n\nconst ListItem = ({ item, index, isAddFocused, handleDelete, fieldGroupRef }: ListItemProps) => {\n const { id, children, name = '', isDynamic, headingTag, ...restItemProps } = item;\n\n const t = useI18n();\n const { rtl } = useDirection();\n const { announcePolite } = useLiveLog();\n\n const {\n depth = 1,\n ancestorIndices = [],\n isAncestorHighlighted = false\n } = useContext(FieldGroupListContext);\n\n const [isItemFocused, setIsItemFocused] = useState(false);\n const [isDeleteHovered, setIsDeleteHovered] = useState(false);\n\n const listIndices = [...ancestorIndices, index];\n const { rootIndex, currentIndex, compoundIndex } = getIndexDetails(listIndices);\n\n const shouldHighlight =\n !isAncestorHighlighted && (isAddFocused || isDeleteHovered || isItemFocused);\n\n let formattedName: string;\n if (isDynamic) {\n formattedName = name;\n } else {\n formattedName = rtl ? `${currentIndex}\\u200F ${name}` : `${currentIndex} ${name}`;\n }\n const contextualLabel = isDynamic ? name : `${name} ${compoundIndex}`;\n\n const ctxValue = useMemo(\n () => ({\n depth: depth + 1,\n isAncestorHighlighted: shouldHighlight || isAncestorHighlighted,\n ancestorIndices: listIndices\n }),\n [depth, index, shouldHighlight, isAncestorHighlighted, listIndices]\n );\n\n return (\n <StyledListItem\n depth={depth}\n listGroupIndex={rootIndex}\n shouldHighlight={shouldHighlight}\n onFocus={() => {\n setIsItemFocused(true);\n }}\n onBlur={() => {\n setIsItemFocused(false);\n }}\n >\n <FieldGroupListContext.Provider value={ctxValue}>\n <FieldGroup\n name={formattedName}\n contextualLabel={contextualLabel}\n headingTag={headingTag}\n {...restItemProps}\n actions={\n handleDelete\n ? [\n {\n id: 'delete',\n text: t('delete'),\n icon: 'trash',\n iconOnly: true,\n onClick: () => {\n handleDelete(id);\n announcePolite({ message: t('deleted', [contextualLabel]) });\n },\n onMouseEnter: () => setIsDeleteHovered(true),\n onMouseLeave: () => setIsDeleteHovered(false)\n }\n ]\n : undefined\n }\n ref={fieldGroupRef}\n >\n {children}\n </FieldGroup>\n </FieldGroupListContext.Provider>\n </StyledListItem>\n );\n};\n\nconst FieldGroupList: ForwardRefForwardPropsComponent<FieldGroupListProps> = forwardRef(\n function FieldGroupList(\n {\n label,\n additionalContext,\n items,\n onAdd,\n onDelete,\n contextualLabel,\n ...restProps\n }: PropsWithoutRef<FieldGroupListProps>,\n ref: FieldGroupListProps['ref']\n ) {\n const t = useI18n();\n\n const addBtnRef = useRef<HTMLButtonElement>(null);\n const itemRefs = useRef<(HTMLFieldSetElement | null)[]>([]);\n const deletedItemIndexRef = useRef<number | null>(null);\n\n const [isAddFocused, setIsAddFocused] = useState(false);\n\n const focusElement = (\n itemRef: HTMLFieldSetElement | null,\n focusPreference: 'action' | 'content'\n ) => {\n if (!itemRef) return;\n\n const focusables = getFocusables(itemRef);\n const groupItemLegend = itemRef.querySelector(':scope > legend');\n\n const groupActionButtons = focusables.filter(focusable =>\n groupItemLegend?.contains(focusable)\n );\n\n const groupContentFocusables = focusables.filter(\n focusable => !groupItemLegend?.contains(focusable)\n );\n\n if (focusPreference === 'action') {\n (groupActionButtons[0] || groupContentFocusables[0])?.focus();\n } else {\n (groupContentFocusables[0] || groupActionButtons[0])?.focus();\n }\n };\n\n useLayoutEffect(() => {\n const currentActiveEl = getActiveElement();\n\n if (deletedItemIndexRef.current !== null) {\n const deletedIndex = deletedItemIndexRef.current;\n\n if (items.length === 0 && addBtnRef.current) {\n addBtnRef.current.focus();\n } else {\n const nextIndex = Math.min(deletedIndex, items.length - 1);\n const nextItemRef = itemRefs.current[nextIndex];\n focusElement(nextItemRef, 'action');\n }\n\n deletedItemIndexRef.current = null;\n }\n\n if (currentActiveEl === addBtnRef.current) {\n const lastIndex = items.length - 1;\n const lastItemRef = itemRefs.current[lastIndex];\n focusElement(lastItemRef, 'content');\n }\n }, [items.length]);\n\n return (\n <Flex\n container={{ direction: 'column', gap: 1 }}\n as={StyledFieldGroupListContainer}\n hasAdd={!!onAdd}\n onFocus={(e: FocusEvent) => {\n e.stopPropagation();\n }}\n onBlur={(e: FocusEvent) => {\n e.stopPropagation();\n }}\n >\n {label && (\n <Flex container={{ gap: 0.5, alignItems: 'center' }}>\n <Text variant='h3'>{label}</Text>\n\n {additionalContext && (\n <AdditionalInfo contextualLabel={label}>{additionalContext}</AdditionalInfo>\n )}\n\n <StyledDivider aria-hidden='true' />\n </Flex>\n )}\n\n {items.length === 0 ? (\n <EmptyState />\n ) : (\n <Flex\n container={{ direction: 'column', gap: 1 }}\n as={StyledFieldGroupList}\n ref={ref}\n aria-label={label}\n {...restProps}\n >\n {items.map((item, index) => {\n const handleDelete =\n onDelete || item.onDelete\n ? (id: string) => {\n deletedItemIndexRef.current = index;\n item.onDelete?.(id);\n onDelete?.(id);\n }\n : undefined;\n\n return (\n <ListItem\n key={item.id}\n item={item}\n index={index}\n isAddFocused={isAddFocused}\n handleDelete={handleDelete}\n fieldGroupRef={(el: HTMLFieldSetElement | null) => {\n itemRefs.current[index] = el;\n }}\n />\n );\n })}\n </Flex>\n )}\n\n {onAdd && (\n <StyledAddButton\n variant='link'\n onClick={onAdd}\n onFocus={() => {\n setIsAddFocused(true);\n }}\n onBlur={() => setIsAddFocused(false)}\n ref={addBtnRef}\n >\n <Icon name='plus' />\n {contextualLabel ? t('add_noun', [contextualLabel]) : t('add')}\n </StyledAddButton>\n )}\n </Flex>\n );\n }\n);\n\nexport default FieldGroupList;\n"]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Converts a number to a Roman numeral.
3
+ * @param num - The number to convert.
4
+ * @returns The Roman numeral representation.
5
+ */
6
+ export declare const convertToRoman: (num: number) => string;
7
+ /**
8
+ * Converts a number to a base-26 alphabetic string (a, b, c... aa, ab, ac...).
9
+ * @param num - The 0-based index to convert.
10
+ * @returns The alphabetic representation.
11
+ */
12
+ export declare const convertToAlphabetic: (num: number) => string;
13
+ /**
14
+ * Generates a list number based on depth and index.
15
+ * @param levelIndex - The index of the item in the list (0-based).
16
+ * @param depth - The depth of the list (0-based).
17
+ * @returns The formatted list number.
18
+ */
19
+ export declare const getFormattedListNumber: (levelIndex: number, depth: number) => string;
20
+ /**
21
+ * Generates a compound index and the current list index based on the depth and index of the current item and its ancestors.
22
+ * @param indices - An array of indices representing the position at each depth (e.g., [0, 1, 2]).
23
+ * @returns An object containing:
24
+ * - `rootIndex`: The zero-based index at the root level (e.g., 0 for "1.", 1 for "2.").
25
+ * - `currentIndex`: The index at the latest depth (e.g., "a." or "i.").
26
+ * - `compoundIndex`: The full compound index (e.g., "1 A II").
27
+ */
28
+ export declare const getIndexDetails: (indices: number[]) => {
29
+ rootIndex: number;
30
+ currentIndex: string;
31
+ compoundIndex: string;
32
+ };
33
+ //# sourceMappingURL=FieldGroupList.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldGroupList.utils.d.ts","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,WA0BzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,WAQ9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,YAAY,MAAM,EAAE,OAAO,MAAM,WAUvE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EAAE,KAChB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAUlE,CAAC"}