@payloadcms/ui 3.0.0-beta.87 → 3.0.0-beta.89

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 (194) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -0
  2. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.js +98 -82
  3. package/dist/elements/AddNewRelation/index.js.map +1 -0
  4. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.scss +7 -3
  5. package/dist/elements/AddNewRelation/types.d.ts +11 -0
  6. package/dist/elements/AddNewRelation/types.d.ts.map +1 -0
  7. package/dist/elements/AddNewRelation/types.js.map +1 -0
  8. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -0
  9. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.js +1 -1
  10. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -0
  11. package/dist/elements/Banner/index.d.ts +2 -2
  12. package/dist/elements/Banner/index.d.ts.map +1 -1
  13. package/dist/elements/Banner/index.js.map +1 -1
  14. package/dist/elements/BulkUpload/ActionsBar/index.d.ts +9 -0
  15. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -0
  16. package/dist/elements/BulkUpload/ActionsBar/index.js +186 -0
  17. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -0
  18. package/dist/elements/BulkUpload/ActionsBar/index.scss +59 -0
  19. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +9 -0
  20. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -0
  21. package/dist/elements/BulkUpload/AddFilesView/index.js +44 -0
  22. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -0
  23. package/dist/elements/BulkUpload/AddFilesView/index.scss +15 -0
  24. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +4 -0
  25. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -0
  26. package/dist/elements/BulkUpload/AddingFilesView/index.js +98 -0
  27. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -0
  28. package/dist/elements/BulkUpload/AddingFilesView/index.scss +23 -0
  29. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts +4 -0
  30. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts.map +1 -0
  31. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +89 -0
  32. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -0
  33. package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts +9 -0
  34. package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts.map +1 -0
  35. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +38 -0
  36. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -0
  37. package/dist/elements/BulkUpload/DrawerCloseButton/index.scss +27 -0
  38. package/dist/elements/BulkUpload/EditForm/index.d.ts +5 -0
  39. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -0
  40. package/dist/elements/BulkUpload/EditForm/index.js +176 -0
  41. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -0
  42. package/dist/elements/BulkUpload/EditForm/index.scss +9 -0
  43. package/dist/elements/BulkUpload/EditForm/types.d.ts +4 -0
  44. package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -0
  45. package/dist/elements/BulkUpload/EditForm/types.js +2 -0
  46. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -0
  47. package/dist/elements/BulkUpload/FileSidebar/index.d.ts +4 -0
  48. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -0
  49. package/dist/elements/BulkUpload/FileSidebar/index.js +242 -0
  50. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -0
  51. package/dist/elements/BulkUpload/FileSidebar/index.scss +275 -0
  52. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +3 -0
  53. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -0
  54. package/dist/elements/BulkUpload/FormsManager/createFormData.js +22 -0
  55. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -0
  56. package/dist/elements/BulkUpload/FormsManager/index.d.ts +35 -0
  57. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -0
  58. package/dist/elements/BulkUpload/FormsManager/index.js +308 -0
  59. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -0
  60. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +30 -0
  61. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -0
  62. package/dist/elements/BulkUpload/FormsManager/reducer.js +69 -0
  63. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -0
  64. package/dist/elements/BulkUpload/Header/index.d.ts +9 -0
  65. package/dist/elements/BulkUpload/Header/index.d.ts.map +1 -0
  66. package/dist/elements/BulkUpload/Header/index.js +22 -0
  67. package/dist/elements/BulkUpload/Header/index.js.map +1 -0
  68. package/dist/elements/BulkUpload/Header/index.scss +12 -0
  69. package/dist/elements/BulkUpload/index.d.ts +10 -0
  70. package/dist/elements/BulkUpload/index.d.ts.map +1 -0
  71. package/dist/elements/BulkUpload/index.js +114 -0
  72. package/dist/elements/BulkUpload/index.js.map +1 -0
  73. package/dist/elements/BulkUpload/index.scss +0 -0
  74. package/dist/elements/Button/index.d.ts.map +1 -1
  75. package/dist/elements/Button/index.js +127 -79
  76. package/dist/elements/Button/index.js.map +1 -1
  77. package/dist/elements/Button/index.scss +109 -43
  78. package/dist/elements/Button/types.d.ts +2 -1
  79. package/dist/elements/Button/types.d.ts.map +1 -1
  80. package/dist/elements/Button/types.js.map +1 -1
  81. package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
  82. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  83. package/dist/elements/DocumentDrawer/index.js +1 -1
  84. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  85. package/dist/elements/Dropzone/index.scss +2 -0
  86. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +20 -0
  87. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -0
  88. package/dist/elements/FileDetails/DraggableFileDetails/index.js +116 -0
  89. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -0
  90. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +33 -0
  91. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +17 -0
  92. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -0
  93. package/dist/elements/FileDetails/StaticFileDetails/index.js +71 -0
  94. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -0
  95. package/dist/elements/FileDetails/{index.scss → StaticFileDetails/index.scss} +1 -1
  96. package/dist/elements/FileDetails/index.d.ts +19 -4
  97. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  98. package/dist/elements/FileDetails/index.js +11 -62
  99. package/dist/elements/FileDetails/index.js.map +1 -1
  100. package/dist/elements/FullscreenModal/index.d.ts +4 -0
  101. package/dist/elements/FullscreenModal/index.d.ts.map +1 -0
  102. package/dist/elements/FullscreenModal/index.js +38 -0
  103. package/dist/elements/FullscreenModal/index.js.map +1 -0
  104. package/dist/elements/ListControls/index.d.ts.map +1 -1
  105. package/dist/elements/ListControls/index.js +15 -10
  106. package/dist/elements/ListControls/index.js.map +1 -1
  107. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  108. package/dist/elements/ListDrawer/DrawerContent.js +45 -33
  109. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  110. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  111. package/dist/elements/ListDrawer/index.js.map +1 -1
  112. package/dist/elements/ListDrawer/types.d.ts +4 -1
  113. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  114. package/dist/elements/ListDrawer/types.js.map +1 -1
  115. package/dist/elements/ListHeader/index.d.ts +10 -0
  116. package/dist/elements/ListHeader/index.d.ts.map +1 -0
  117. package/dist/elements/ListHeader/index.js +17 -0
  118. package/dist/elements/ListHeader/index.js.map +1 -0
  119. package/dist/elements/ListHeader/index.scss +10 -0
  120. package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -1
  121. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  122. package/dist/elements/Popup/PopupButtonList/index.js +4 -4
  123. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  124. package/dist/elements/Popup/PopupTrigger/index.d.ts +2 -0
  125. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  126. package/dist/elements/Popup/PopupTrigger/index.js +5 -2
  127. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  128. package/dist/elements/Popup/PopupTrigger/index.scss +4 -1
  129. package/dist/elements/Popup/index.d.ts +2 -0
  130. package/dist/elements/Popup/index.d.ts.map +1 -1
  131. package/dist/elements/Popup/index.js +6 -0
  132. package/dist/elements/Popup/index.js.map +1 -1
  133. package/dist/elements/SelectMany/index.d.ts +6 -0
  134. package/dist/elements/SelectMany/index.d.ts.map +1 -0
  135. package/dist/elements/SelectMany/index.js +29 -0
  136. package/dist/elements/SelectMany/index.js.map +1 -0
  137. package/dist/elements/Table/DefaultCell/index.js +1 -1
  138. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  139. package/dist/elements/ViewDescription/index.d.ts +3 -2
  140. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  141. package/dist/elements/ViewDescription/index.js +39 -16
  142. package/dist/elements/ViewDescription/index.js.map +1 -1
  143. package/dist/exports/client/index.d.ts +5 -0
  144. package/dist/exports/client/index.d.ts.map +1 -1
  145. package/dist/exports/client/index.js +19 -19
  146. package/dist/exports/client/index.js.map +4 -4
  147. package/dist/fields/Blocks/SectionTitle/index.scss +1 -1
  148. package/dist/fields/Relationship/index.d.ts.map +1 -1
  149. package/dist/fields/Relationship/index.js +1 -3
  150. package/dist/fields/Relationship/index.js.map +1 -1
  151. package/dist/fields/Upload/HasMany/index.d.ts +4 -0
  152. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -0
  153. package/dist/fields/Upload/HasMany/index.js +474 -0
  154. package/dist/fields/Upload/HasMany/index.js.map +1 -0
  155. package/dist/fields/Upload/HasMany/index.scss +47 -0
  156. package/dist/fields/Upload/{Input.d.ts → HasOne/Input.d.ts} +1 -1
  157. package/dist/fields/Upload/HasOne/Input.d.ts.map +1 -0
  158. package/dist/fields/Upload/{Input.js → HasOne/Input.js} +12 -12
  159. package/dist/fields/Upload/HasOne/Input.js.map +1 -0
  160. package/dist/fields/Upload/HasOne/index.d.ts +12 -0
  161. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -0
  162. package/dist/fields/Upload/HasOne/index.js +131 -0
  163. package/dist/fields/Upload/HasOne/index.js.map +1 -0
  164. package/dist/fields/Upload/{index.scss → HasOne/index.scss} +1 -1
  165. package/dist/fields/Upload/index.d.ts +4 -4
  166. package/dist/fields/Upload/index.d.ts.map +1 -1
  167. package/dist/fields/Upload/index.js +84 -98
  168. package/dist/fields/Upload/index.js.map +1 -1
  169. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  170. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +1 -27
  171. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  172. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  173. package/dist/providers/Config/createClientConfig/collections.js +3 -4
  174. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  175. package/dist/providers/ListInfo/index.d.ts +6 -0
  176. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  177. package/dist/providers/ListInfo/index.js.map +1 -1
  178. package/dist/providers/Selection/index.d.ts +5 -3
  179. package/dist/providers/Selection/index.d.ts.map +1 -1
  180. package/dist/providers/Selection/index.js.map +1 -1
  181. package/dist/styles.css +1 -1
  182. package/package.json +4 -4
  183. package/dist/fields/Relationship/AddNew/index.d.ts.map +0 -1
  184. package/dist/fields/Relationship/AddNew/index.js.map +0 -1
  185. package/dist/fields/Relationship/AddNew/types.d.ts +0 -12
  186. package/dist/fields/Relationship/AddNew/types.d.ts.map +0 -1
  187. package/dist/fields/Relationship/AddNew/types.js.map +0 -1
  188. package/dist/fields/Relationship/AddNew/useRelatedCollections.d.ts.map +0 -1
  189. package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +0 -1
  190. package/dist/fields/Upload/Input.d.ts.map +0 -1
  191. package/dist/fields/Upload/Input.js.map +0 -1
  192. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.d.ts +0 -0
  193. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/types.js +0 -0
  194. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","React","EditDepthProvider","useEditDepth","Drawer","DrawerToggler","AddFilesView","AddingFilesView","DiscardWithoutSaving","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","$","addFiles","forms","closeModal","t0","acceptedFiles","onDrop","length","t1","t2","_jsx","onCancel","BulkUploadDrawer","collectionSlug","onSuccess","currentDepth","depth","children","Header","gutter","slug","_jsxs","BulkUploadToggler","Fragment"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { EditDepthProvider, useEditDepth } from '../../providers/EditDepth/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { DiscardWithoutSaving } from './DiscardWithoutSaving/index.js'\nimport { FormsManagerProvider, useFormsManager } from './FormsManager/index.js'\n\nexport const drawerSlug = 'bulk-upload-drawer'\n\nfunction DrawerContent() {\n const { addFiles, forms } = useFormsManager()\n const { closeModal } = useModal()\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n addFiles(acceptedFiles)\n },\n [addFiles],\n )\n\n if (!forms.length) {\n return <AddFilesView onCancel={() => closeModal(drawerSlug)} onDrop={onDrop} />\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly onSuccess: () => void\n}\n\nexport function BulkUploadDrawer({ collectionSlug, onSuccess }: Omit<BulkUploadProps, 'children'>) {\n const currentDepth = useEditDepth()\n\n return (\n <EditDepthProvider depth={currentDepth || 1}>\n <Drawer Header={null} gutter={false} slug={drawerSlug}>\n <FormsManagerProvider collectionSlug={collectionSlug} onSuccess={onSuccess}>\n <DrawerContent />\n <DiscardWithoutSaving />\n </FormsManagerProvider>\n </Drawer>\n </EditDepthProvider>\n )\n}\n\nexport function BulkUploadToggler({ children, collectionSlug, onSuccess }: BulkUploadProps) {\n return (\n <React.Fragment>\n <DrawerToggler slug={drawerSlug}>{children}</DrawerToggler>\n <BulkUploadDrawer collectionSlug={collectionSlug} onSuccess={onSuccess} />\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,MAAW;AAElB,SAASC,iBAAiB,EAAEC,YAAY,QAAQ;AAChD,SAASC,MAAM,EAAEC,aAAa,QAAQ;AACtC,SAASC,YAAY,QAAQ;AAC7B,SAASC,eAAe,QAAQ;AAChC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,EAAEC,eAAe,QAAQ;AAEtD,OAAO,MAAMC,UAAA,GAAa;AAE1B,SAAAC,cAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EACE;IAAAe,QAAA;IAAAC;EAAA,IAA4BL,eAAA;EAC5B;IAAAM;EAAA,IAAuBhB,QAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAJ,CAAA,QAAAC,QAAA;IAGrBG,EAAA,GAAAC,aAAA;MACEJ,QAAA,CAASI,aAAA;IAAA;IACXL,CAAA,MAAAC,QAAA;IAAAD,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAHF,MAAAM,MAAA,GAAeF,EAIH;EAAA,KAGPF,KAAA,CAAAK,MAAA;IAAA,IAAAC,EAAA;IAAA,IAAAR,CAAA,QAAAG,UAAA;MAC4BK,EAAA,GAAAA,CAAA,KAAML,UAAA,CAAAL,UAAW;MAAAE,CAAA,MAAAG,UAAA;MAAAH,CAAA,MAAAQ,EAAA;IAAA;MAAAA,EAAA,GAAAR,CAAA;IAAA;IAAA,IAAAS,EAAA;IAAA,IAAAT,CAAA,QAAAQ,EAAA,IAAAR,CAAA,QAAAM,MAAA;MAAzCG,EAAA,GAAAC,IAAA,CAAAjB,YAAA;QAAAkB,QAAA,EAAwBH,EAAiB;QAAAF;MAAA,C;;;;;;;WAAzCG,E;;;;MAEAD,EAAA,GAAAE,IAAA,CAAAhB,eAAA,IAAC;MAAAM,CAAA,MAAAQ,EAAA;IAAA;MAAAA,EAAA,GAAAR,CAAA;IAAA;IAAA,OAADQ,EAAC;EAAA;AAAA;AAUZ,OAAO,SAAAI,iBAAAR,EAAA;EAAA,MAAAJ,CAAA,GAAAd,EAAA;EAA0B;IAAA2B,cAAA;IAAAC;EAAA,IAAAV,EAAgE;EAC/F,MAAAW,YAAA,GAAqBzB,YAAA;EAGO,MAAAkB,EAAA,GAAAO,YAAA,KAAgB;EAAA,IAAAN,EAAA;EAAA,IAAAT,CAAA,QAAAa,cAAA,IAAAb,CAAA,QAAAc,SAAA,IAAAd,CAAA,QAAAQ,EAAA;IAA1CC,EAAA,GAAAC,IAAA,CAAArB,iBAAA;MAAA2B,KAAA,EAA0BR,EAAgB;MAAAS,QAAA,EACxCP,IAAA,CAAAnB,MAAA;QAAA2B,MAAA;QAAAC,MAAA;QAAAC,IAAA,EAAAtB,UAAA;QAAAmB,QAAA,EACEI,KAAA,CAAAzB,oBAAA;UAAAiB,cAAA;UAAAC,SAAA;UAAAG,QAAA,GACEP,IAAA,CAAAX,aAAA,IAAC,GACDW,IAAA,CAAAf,oBAAA,IAAC;QAAA,C;;;;;;;;;;SAJPc,E;;AAWJ,OAAO,SAASa,kBAAkB;EAAEL,QAAQ;EAAEJ,cAAc;EAAEC;AAAS,CAAmB;EACxF,oBACEO,KAAA,CAACjC,KAAA,CAAMmC,QAAQ;4BACbb,IAAA,CAAClB,aAAA;MAAc4B,IAAA,EAAMtB,UAAA;gBAAamB;qBAClCP,IAAA,CAACE,gBAAA;MAAiBC,cAAA,EAAgBA,cAAA;MAAgBC,SAAA,EAAWA;;;AAGnE","ignoreList":[]}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Button/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAA;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AASvC,OAAO,cAAc,CAAA;AAarB,eAAO,MAAM,cAAc;;;;;uBAqB1B,CAAA;AAED,eAAO,MAAM,MAAM,qGAgGjB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Button/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAA;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAUvC,OAAO,cAAc,CAAA;AAarB,eAAO,MAAM,cAAc;;;;;uBAqB1B,CAAA;AAED,eAAO,MAAM,MAAM,qGAuIjB,CAAA"}
@@ -9,6 +9,7 @@ import { LinkIcon } from '../../icons/Link/index.js';
9
9
  import { PlusIcon } from '../../icons/Plus/index.js';
10
10
  import { SwapIcon } from '../../icons/Swap/index.js';
11
11
  import { XIcon } from '../../icons/X/index.js';
12
+ import { Popup } from '../Popup/index.js';
12
13
  import { Tooltip } from '../Tooltip/index.js';
13
14
  import './index.scss';
14
15
  const icons = {
@@ -45,11 +46,12 @@ export const ButtonContents = ({
45
46
  });
46
47
  };
47
48
  export const Button = /*#__PURE__*/forwardRef((props, ref) => {
48
- const $ = _c(38);
49
+ const $ = _c(48);
49
50
  const {
50
51
  id,
51
52
  type: t0,
52
53
  Link,
54
+ SubMenuPopupContent,
53
55
  "aria-label": ariaLabel,
54
56
  buttonStyle: t1,
55
57
  children,
@@ -75,18 +77,16 @@ export const Button = /*#__PURE__*/forwardRef((props, ref) => {
75
77
  const size = t5 === undefined ? "medium" : t5;
76
78
  const [showTooltip, setShowTooltip] = React.useState(false);
77
79
  const t6 = className && className;
78
- const t7 = buttonStyle && `${baseClass}--style-${buttonStyle}`;
79
- const t8 = icon && `${baseClass}--icon`;
80
- const t9 = iconStyle && `${baseClass}--icon-style-${iconStyle}`;
81
- const t10 = icon && !children && `${baseClass}--icon-only`;
82
- const t11 = disabled && `${baseClass}--disabled`;
83
- const t12 = round && `${baseClass}--round`;
84
- const t13 = size && `${baseClass}--size-${size}`;
85
- const t14 = icon && iconPosition && `${baseClass}--icon-position-${iconPosition}`;
86
- const t15 = tooltip && `${baseClass}--has-tooltip`;
87
- let t16;
88
- if ($[0] !== t6 || $[1] !== t7 || $[2] !== t8 || $[3] !== t9 || $[4] !== t10 || $[5] !== t11 || $[6] !== t12 || $[7] !== t13 || $[8] !== t14 || $[9] !== t15) {
89
- t16 = [baseClass, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15].filter(Boolean);
80
+ const t7 = icon && `${baseClass}--icon`;
81
+ const t8 = iconStyle && `${baseClass}--icon-style-${iconStyle}`;
82
+ const t9 = icon && !children && `${baseClass}--icon-only`;
83
+ const t10 = size && `${baseClass}--size-${size}`;
84
+ const t11 = icon && iconPosition && `${baseClass}--icon-position-${iconPosition}`;
85
+ const t12 = tooltip && `${baseClass}--has-tooltip`;
86
+ const t13 = !SubMenuPopupContent && `${baseClass}--withoutPopup`;
87
+ let t14;
88
+ if ($[0] !== t6 || $[1] !== t7 || $[2] !== t8 || $[3] !== t9 || $[4] !== t10 || $[5] !== t11 || $[6] !== t12 || $[7] !== t13) {
89
+ t14 = [baseClass, t6, t7, t8, t9, t10, t11, t12, t13].filter(Boolean);
90
90
  $[0] = t6;
91
91
  $[1] = t7;
92
92
  $[2] = t8;
@@ -96,15 +96,13 @@ export const Button = /*#__PURE__*/forwardRef((props, ref) => {
96
96
  $[6] = t12;
97
97
  $[7] = t13;
98
98
  $[8] = t14;
99
- $[9] = t15;
100
- $[10] = t16;
101
99
  } else {
102
- t16 = $[10];
100
+ t14 = $[8];
103
101
  }
104
- const classes = t16.join(" ");
105
- let t17;
106
- if ($[11] !== type || $[12] !== onClick) {
107
- t17 = function handleClick(event) {
102
+ const classes = t14.join(" ");
103
+ let t15;
104
+ if ($[9] !== type || $[10] !== onClick) {
105
+ t15 = function handleClick(event) {
108
106
  setShowTooltip(false);
109
107
  if (type !== "submit" && onClick) {
110
108
  event.preventDefault();
@@ -113,58 +111,89 @@ export const Button = /*#__PURE__*/forwardRef((props, ref) => {
113
111
  onClick(event);
114
112
  }
115
113
  };
116
- $[11] = type;
117
- $[12] = onClick;
118
- $[13] = t17;
114
+ $[9] = type;
115
+ $[10] = onClick;
116
+ $[11] = t15;
119
117
  } else {
120
- t17 = $[13];
118
+ t15 = $[11];
121
119
  }
122
- const handleClick = t17;
123
- const t18 = !disabled ? handleClick : undefined;
124
- let t19;
125
- if ($[14] !== tooltip) {
126
- t19 = tooltip ? () => setShowTooltip(true) : undefined;
127
- $[14] = tooltip;
120
+ const handleClick = t15;
121
+ const t16 = buttonStyle && `${baseClass}--style-${buttonStyle}`;
122
+ const t17 = disabled && `${baseClass}--disabled`;
123
+ const t18 = round && `${baseClass}--round`;
124
+ const t19 = SubMenuPopupContent ? `${baseClass}--withPopup` : `${baseClass}--withoutPopup`;
125
+ let t20;
126
+ if ($[12] !== t16 || $[13] !== t17 || $[14] !== t18 || $[15] !== t19) {
127
+ t20 = [t16, t17, t18, t19].filter(Boolean);
128
+ $[12] = t16;
129
+ $[13] = t17;
130
+ $[14] = t18;
128
131
  $[15] = t19;
132
+ $[16] = t20;
129
133
  } else {
130
- t19 = $[15];
134
+ t20 = $[16];
131
135
  }
132
- let t20;
133
- if ($[16] !== tooltip) {
134
- t20 = tooltip ? () => setShowTooltip(false) : undefined;
135
- $[16] = tooltip;
136
- $[17] = t20;
136
+ const styleClasses = t20.join(" ");
137
+ let t21;
138
+ if ($[17] !== SubMenuPopupContent || $[18] !== classes || $[19] !== styleClasses) {
139
+ t21 = !SubMenuPopupContent ? [classes, styleClasses].join(" ") : classes;
140
+ $[17] = SubMenuPopupContent;
141
+ $[18] = classes;
142
+ $[19] = styleClasses;
143
+ $[20] = t21;
137
144
  } else {
138
- t20 = $[17];
145
+ t21 = $[20];
139
146
  }
140
- const t21 = newTab ? "noopener noreferrer" : undefined;
141
- const t22 = newTab ? "_blank" : undefined;
147
+ const t22 = !disabled ? handleClick : undefined;
142
148
  let t23;
143
- if ($[18] !== id || $[19] !== type || $[20] !== disabled || $[21] !== ariaLabel || $[22] !== classes || $[23] !== t18 || $[24] !== t19 || $[25] !== t20 || $[26] !== t21 || $[27] !== t22 || $[28] !== el || $[29] !== Link || $[30] !== children || $[31] !== to || $[32] !== url || $[33] !== icon || $[34] !== showTooltip || $[35] !== tooltip || $[36] !== ref) {
144
- t23 = Symbol.for("react.early_return_sentinel");
149
+ if ($[21] !== tooltip) {
150
+ t23 = tooltip ? () => setShowTooltip(true) : undefined;
151
+ $[21] = tooltip;
152
+ $[22] = t23;
153
+ } else {
154
+ t23 = $[22];
155
+ }
156
+ let t24;
157
+ if ($[23] !== tooltip) {
158
+ t24 = tooltip ? () => setShowTooltip(false) : undefined;
159
+ $[23] = tooltip;
160
+ $[24] = t24;
161
+ } else {
162
+ t24 = $[24];
163
+ }
164
+ const t25 = newTab ? "noopener noreferrer" : undefined;
165
+ const t26 = newTab ? "_blank" : undefined;
166
+ let buttonElement;
167
+ let t27;
168
+ if ($[25] !== id || $[26] !== type || $[27] !== disabled || $[28] !== ariaLabel || $[29] !== t21 || $[30] !== t22 || $[31] !== t23 || $[32] !== t24 || $[33] !== t25 || $[34] !== t26 || $[35] !== el || $[36] !== Link || $[37] !== children || $[38] !== to || $[39] !== url || $[40] !== icon || $[41] !== showTooltip || $[42] !== tooltip || $[43] !== ref || $[44] !== SubMenuPopupContent || $[45] !== styleClasses) {
169
+ t27 = Symbol.for("react.early_return_sentinel");
145
170
  bb0: {
146
171
  const buttonProps = {
147
172
  id,
148
173
  type,
149
174
  "aria-disabled": disabled,
150
175
  "aria-label": ariaLabel,
151
- className: classes,
176
+ className: t21,
152
177
  disabled,
153
- onClick: t18,
154
- onMouseEnter: t19,
155
- onMouseLeave: t20,
156
- rel: t21,
157
- target: t22
178
+ onClick: t22,
179
+ onMouseEnter: t23,
180
+ onMouseLeave: t24,
181
+ rel: t25,
182
+ target: t26
158
183
  };
159
- switch (el) {
184
+ bb1: switch (el) {
160
185
  case "link":
161
186
  {
162
187
  if (!Link) {
163
188
  console.error("Link is required when using el=\"link\"", children);
164
- t23 = null;
189
+ t27 = null;
165
190
  break bb0;
166
191
  }
167
- t23 = _jsx(Link, {
192
+ let LinkTag = Link;
193
+ if (disabled) {
194
+ LinkTag = "div";
195
+ }
196
+ buttonElement = _jsx(LinkTag, {
168
197
  ...buttonProps,
169
198
  href: to || url,
170
199
  to: to || url,
@@ -175,13 +204,13 @@ export const Button = /*#__PURE__*/forwardRef((props, ref) => {
175
204
  children
176
205
  })
177
206
  });
178
- break bb0;
207
+ break bb1;
179
208
  }
180
209
  case "anchor":
181
210
  {
182
- t23 = _jsx("a", {
211
+ buttonElement = _jsx("a", {
183
212
  ...buttonProps,
184
- href: url,
213
+ href: !disabled ? url : undefined,
185
214
  ref,
186
215
  children: _jsx(ButtonContents, {
187
216
  icon,
@@ -190,12 +219,12 @@ export const Button = /*#__PURE__*/forwardRef((props, ref) => {
190
219
  children
191
220
  })
192
221
  });
193
- break bb0;
222
+ break bb1;
194
223
  }
195
224
  default:
196
225
  {
197
226
  const Tag = el;
198
- t23 = _jsx(Tag, {
227
+ buttonElement = _jsx(Tag, {
199
228
  ref,
200
229
  type: "submit",
201
230
  ...buttonProps,
@@ -206,35 +235,54 @@ export const Button = /*#__PURE__*/forwardRef((props, ref) => {
206
235
  children
207
236
  })
208
237
  });
209
- break bb0;
210
238
  }
211
239
  }
240
+ if (SubMenuPopupContent) {
241
+ t27 = _jsxs("div", {
242
+ className: styleClasses,
243
+ children: [buttonElement, _jsx(Popup, {
244
+ button: _jsx(ChevronIcon, {}),
245
+ className: disabled ? `${baseClass}--popup-disabled` : "",
246
+ horizontalAlign: "right",
247
+ noBackground: true,
248
+ size: "large",
249
+ verticalAlign: "bottom",
250
+ children: SubMenuPopupContent
251
+ })]
252
+ });
253
+ break bb0;
254
+ }
212
255
  }
213
- $[18] = id;
214
- $[19] = type;
215
- $[20] = disabled;
216
- $[21] = ariaLabel;
217
- $[22] = classes;
218
- $[23] = t18;
219
- $[24] = t19;
220
- $[25] = t20;
221
- $[26] = t21;
222
- $[27] = t22;
223
- $[28] = el;
224
- $[29] = Link;
225
- $[30] = children;
226
- $[31] = to;
227
- $[32] = url;
228
- $[33] = icon;
229
- $[34] = showTooltip;
230
- $[35] = tooltip;
231
- $[36] = ref;
232
- $[37] = t23;
256
+ $[25] = id;
257
+ $[26] = type;
258
+ $[27] = disabled;
259
+ $[28] = ariaLabel;
260
+ $[29] = t21;
261
+ $[30] = t22;
262
+ $[31] = t23;
263
+ $[32] = t24;
264
+ $[33] = t25;
265
+ $[34] = t26;
266
+ $[35] = el;
267
+ $[36] = Link;
268
+ $[37] = children;
269
+ $[38] = to;
270
+ $[39] = url;
271
+ $[40] = icon;
272
+ $[41] = showTooltip;
273
+ $[42] = tooltip;
274
+ $[43] = ref;
275
+ $[44] = SubMenuPopupContent;
276
+ $[45] = styleClasses;
277
+ $[46] = buttonElement;
278
+ $[47] = t27;
233
279
  } else {
234
- t23 = $[37];
280
+ buttonElement = $[46];
281
+ t27 = $[47];
235
282
  }
236
- if (t23 !== Symbol.for("react.early_return_sentinel")) {
237
- return t23;
283
+ if (t27 !== Symbol.for("react.early_return_sentinel")) {
284
+ return t27;
238
285
  }
286
+ return buttonElement;
239
287
  });
240
288
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Fragment","forwardRef","isValidElement","ChevronIcon","EditIcon","LinkIcon","PlusIcon","SwapIcon","XIcon","Tooltip","icons","chevron","edit","link","plus","swap","x","baseClass","ButtonContents","children","icon","showTooltip","tooltip","BuiltInIcon","_jsxs","_jsx","className","show","Button","props","ref","$","id","type","t0","Link","ariaLabel","buttonStyle","t1","disabled","el","t2","iconPosition","t3","iconStyle","t4","newTab","onClick","round","size","t5","to","url","undefined","setShowTooltip","useState","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","filter","Boolean","classes","join","t17","handleClick","event","preventDefault","t18","t19","t20","t21","t22","t23","Symbol","for","bb0","buttonProps","onMouseEnter","onMouseLeave","rel","target","console","error","href","Tag"],"sources":["../../../src/elements/Button/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment, forwardRef, isValidElement } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { EditIcon } from '../../icons/Edit/index.js'\nimport { LinkIcon } from '../../icons/Link/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { SwapIcon } from '../../icons/Swap/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst icons = {\n chevron: ChevronIcon,\n edit: EditIcon,\n link: LinkIcon,\n plus: PlusIcon,\n swap: SwapIcon,\n x: XIcon,\n}\n\nconst baseClass = 'btn'\n\nexport const ButtonContents = ({ children, icon, showTooltip, tooltip }) => {\n const BuiltInIcon = icons[icon]\n\n return (\n <Fragment>\n {tooltip && (\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {tooltip}\n </Tooltip>\n )}\n <span className={`${baseClass}__content`}>\n {children && <span className={`${baseClass}__label`}>{children}</span>}\n {icon && (\n <span className={`${baseClass}__icon`}>\n {isValidElement(icon) && icon}\n {BuiltInIcon && <BuiltInIcon />}\n </span>\n )}\n </span>\n </Fragment>\n )\n}\n\nexport const Button = forwardRef<HTMLAnchorElement | HTMLButtonElement, Props>((props, ref) => {\n const {\n id,\n type = 'button',\n Link,\n 'aria-label': ariaLabel,\n buttonStyle = 'primary',\n children,\n className,\n disabled,\n el = 'button',\n icon,\n iconPosition = 'right',\n iconStyle = 'without-border',\n newTab,\n onClick,\n round,\n size = 'medium',\n to,\n tooltip,\n url,\n } = props\n\n const [showTooltip, setShowTooltip] = React.useState(false)\n\n const classes = [\n baseClass,\n className && className,\n buttonStyle && `${baseClass}--style-${buttonStyle}`,\n icon && `${baseClass}--icon`,\n iconStyle && `${baseClass}--icon-style-${iconStyle}`,\n icon && !children && `${baseClass}--icon-only`,\n disabled && `${baseClass}--disabled`,\n round && `${baseClass}--round`,\n size && `${baseClass}--size-${size}`,\n icon && iconPosition && `${baseClass}--icon-position-${iconPosition}`,\n tooltip && `${baseClass}--has-tooltip`,\n ]\n .filter(Boolean)\n .join(' ')\n\n function handleClick(event) {\n setShowTooltip(false)\n if (type !== 'submit' && onClick) event.preventDefault()\n if (onClick) onClick(event)\n }\n\n const buttonProps = {\n id,\n type,\n 'aria-disabled': disabled,\n 'aria-label': ariaLabel,\n className: classes,\n disabled,\n onClick: !disabled ? handleClick : undefined,\n onMouseEnter: tooltip ? () => setShowTooltip(true) : undefined,\n onMouseLeave: tooltip ? () => setShowTooltip(false) : undefined,\n rel: newTab ? 'noopener noreferrer' : undefined,\n target: newTab ? '_blank' : undefined,\n }\n\n switch (el) {\n case 'link':\n if (!Link) {\n console.error('Link is required when using el=\"link\"', children)\n return null\n }\n\n return (\n <Link {...buttonProps} href={to || url} to={to || url}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </Link>\n )\n\n case 'anchor':\n return (\n <a {...buttonProps} href={url} ref={ref as React.Ref<HTMLAnchorElement>}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </a>\n )\n\n default:\n const Tag = el // eslint-disable-line no-case-declarations\n\n return (\n <Tag ref={ref} type=\"submit\" {...buttonProps}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </Tag>\n )\n }\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Fragment","forwardRef","isValidElement","ChevronIcon","EditIcon","LinkIcon","PlusIcon","SwapIcon","XIcon","Popup","Tooltip","icons","chevron","edit","link","plus","swap","x","baseClass","ButtonContents","children","icon","showTooltip","tooltip","BuiltInIcon","_jsxs","_jsx","className","show","Button","props","ref","$","id","type","t0","Link","SubMenuPopupContent","ariaLabel","buttonStyle","t1","disabled","el","t2","iconPosition","t3","iconStyle","t4","newTab","onClick","round","size","t5","to","url","undefined","setShowTooltip","useState","t6","t7","t8","t9","t10","t11","t12","t13","t14","filter","Boolean","classes","join","t15","handleClick","event","preventDefault","t16","t17","t18","t19","t20","styleClasses","t21","t22","t23","t24","t25","t26","buttonElement","t27","Symbol","for","bb0","buttonProps","onMouseEnter","onMouseLeave","rel","target","bb1","console","error","LinkTag","href","Tag","button","horizontalAlign","noBackground","verticalAlign"],"sources":["../../../src/elements/Button/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment, forwardRef, isValidElement } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { EditIcon } from '../../icons/Edit/index.js'\nimport { LinkIcon } from '../../icons/Link/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { SwapIcon } from '../../icons/Swap/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { Popup } from '../Popup/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst icons = {\n chevron: ChevronIcon,\n edit: EditIcon,\n link: LinkIcon,\n plus: PlusIcon,\n swap: SwapIcon,\n x: XIcon,\n}\n\nconst baseClass = 'btn'\n\nexport const ButtonContents = ({ children, icon, showTooltip, tooltip }) => {\n const BuiltInIcon = icons[icon]\n\n return (\n <Fragment>\n {tooltip && (\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {tooltip}\n </Tooltip>\n )}\n <span className={`${baseClass}__content`}>\n {children && <span className={`${baseClass}__label`}>{children}</span>}\n {icon && (\n <span className={`${baseClass}__icon`}>\n {isValidElement(icon) && icon}\n {BuiltInIcon && <BuiltInIcon />}\n </span>\n )}\n </span>\n </Fragment>\n )\n}\n\nexport const Button = forwardRef<HTMLAnchorElement | HTMLButtonElement, Props>((props, ref) => {\n const {\n id,\n type = 'button',\n Link,\n SubMenuPopupContent,\n 'aria-label': ariaLabel,\n buttonStyle = 'primary',\n children,\n className,\n disabled,\n el = 'button',\n icon,\n iconPosition = 'right',\n iconStyle = 'without-border',\n newTab,\n onClick,\n round,\n size = 'medium',\n to,\n tooltip,\n url,\n } = props\n\n const [showTooltip, setShowTooltip] = React.useState(false)\n\n const classes = [\n baseClass,\n className && className,\n icon && `${baseClass}--icon`,\n iconStyle && `${baseClass}--icon-style-${iconStyle}`,\n icon && !children && `${baseClass}--icon-only`,\n size && `${baseClass}--size-${size}`,\n icon && iconPosition && `${baseClass}--icon-position-${iconPosition}`,\n tooltip && `${baseClass}--has-tooltip`,\n !SubMenuPopupContent && `${baseClass}--withoutPopup`,\n ]\n .filter(Boolean)\n .join(' ')\n\n function handleClick(event) {\n setShowTooltip(false)\n if (type !== 'submit' && onClick) event.preventDefault()\n if (onClick) onClick(event)\n }\n\n const styleClasses = [\n buttonStyle && `${baseClass}--style-${buttonStyle}`,\n disabled && `${baseClass}--disabled`,\n round && `${baseClass}--round`,\n SubMenuPopupContent ? `${baseClass}--withPopup` : `${baseClass}--withoutPopup`,\n ]\n .filter(Boolean)\n .join(' ')\n\n const buttonProps = {\n id,\n type,\n 'aria-disabled': disabled,\n 'aria-label': ariaLabel,\n className: !SubMenuPopupContent ? [classes, styleClasses].join(' ') : classes,\n disabled,\n onClick: !disabled ? handleClick : undefined,\n onMouseEnter: tooltip ? () => setShowTooltip(true) : undefined,\n onMouseLeave: tooltip ? () => setShowTooltip(false) : undefined,\n rel: newTab ? 'noopener noreferrer' : undefined,\n target: newTab ? '_blank' : undefined,\n }\n\n let buttonElement\n\n switch (el) {\n case 'link':\n if (!Link) {\n console.error('Link is required when using el=\"link\"', children)\n return null\n }\n\n let LinkTag = Link // eslint-disable-line no-case-declarations\n\n if (disabled) LinkTag = 'div'\n\n buttonElement = (\n <LinkTag {...buttonProps} href={to || url} to={to || url}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </LinkTag>\n )\n break\n\n case 'anchor':\n buttonElement = (\n <a\n {...buttonProps}\n href={!disabled ? url : undefined}\n ref={ref as React.Ref<HTMLAnchorElement>}\n >\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </a>\n )\n break\n\n default:\n const Tag = el // eslint-disable-line no-case-declarations\n\n buttonElement = (\n <Tag ref={ref} type=\"submit\" {...buttonProps}>\n <ButtonContents icon={icon} showTooltip={showTooltip} tooltip={tooltip}>\n {children}\n </ButtonContents>\n </Tag>\n )\n break\n }\n if (SubMenuPopupContent)\n return (\n <div className={styleClasses}>\n {buttonElement}\n <Popup\n button={<ChevronIcon />}\n className={disabled ? `${baseClass}--popup-disabled` : ''}\n horizontalAlign=\"right\"\n noBackground\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n {SubMenuPopupContent}\n </Popup>\n </div>\n )\n\n return buttonElement\n})\n"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,99 @@ a.btn {
4
4
  display: inline-block;
5
5
  }
6
6
 
7
+ .btn--withPopup {
8
+ margin-block: 24px;
9
+ .btn {
10
+ margin: 0;
11
+ }
12
+ }
13
+
14
+ .btn {
15
+ // colors
16
+ &--style-primary {
17
+ --color: var(--theme-elevation-0);
18
+ --bg-color: var(--theme-elevation-800);
19
+ --box-shadow: none;
20
+ --hover-bg: var(--theme-elevation-600);
21
+ --hover-color: var(--color);
22
+
23
+ &.btn--disabled {
24
+ --bg-color: var(--theme-elevation-200);
25
+ --color: var(--theme-elevation-800);
26
+ --hover-bg: var(--bg-color);
27
+ --hover-color: var(--color);
28
+ }
29
+ }
30
+
31
+ &--style-secondary {
32
+ --color: var(--theme-text);
33
+ --bg-color: transparent;
34
+ --box-shadow: inset 0 0 0 1px var(--theme-elevation-800);
35
+ --hover-color: var(--theme-elevation-600);
36
+ --hover-box-shadow: inset 0 0 0 1px var(--theme-elevation-400);
37
+
38
+ &.btn--disabled {
39
+ --color: var(--theme-elevation-200);
40
+ --box-shadow: inset 0 0 0 1px var(--theme-elevation-200);
41
+ --hover-box-shadow: inset 0 0 0 1px var(--theme-elevation-200);
42
+ --hover-color: var(--color);
43
+ }
44
+ }
45
+
46
+ &--style-pill {
47
+ --bg-color: var(--theme-elevation-150);
48
+ --color: var(--theme-elevation-800);
49
+ --hover-color: var(--color);
50
+ --hover-bg: var(--theme-elevation-100);
51
+
52
+ &.btn--disabled {
53
+ --color: var(--theme-elevation-600);
54
+ --hover-bg: var(--bg-color);
55
+ --hover-color: var(--color);
56
+ }
57
+ }
58
+ }
59
+
60
+ .btn--withPopup {
61
+ .popup-button {
62
+ color: var(--color, inherit);
63
+ background-color: var(--bg-color);
64
+ box-shadow: var(--box-shadow);
65
+ border-radius: $style-radius-m;
66
+ border-left: 1px solid var(--theme-bg);
67
+ border-top-left-radius: 0;
68
+ border-bottom-left-radius: 0;
69
+ align-items: center;
70
+
71
+ &:hover,
72
+ &:focus-visible,
73
+ &:focus,
74
+ &:active {
75
+ background-color: var(--hover-bg);
76
+ color: var(--hover-color);
77
+ box-shadow: var(--hover-box-shadow);
78
+ }
79
+ }
80
+ }
81
+
82
+ .btn,
83
+ .btn--withPopup .btn {
84
+ &:hover,
85
+ &:focus-visible,
86
+ &:focus,
87
+ &:active {
88
+ color: var(--hover-color);
89
+ box-shadow: var(--hover-box-shadow);
90
+ background-color: var(--hover-bg);
91
+ }
92
+ }
93
+
94
+ .btn--disabled,
95
+ .btn--disabled .btn {
96
+ cursor: not-allowed;
97
+ }
98
+
7
99
  .btn {
8
- background: transparent;
9
100
  border-radius: $style-radius-s;
10
101
  font-size: var(--base-body-size);
11
102
  margin-block: base(1.2);
@@ -14,11 +105,20 @@ a.btn {
14
105
  cursor: pointer;
15
106
  font-weight: normal;
16
107
  text-decoration: none;
17
- color: inherit;
18
108
  transition-property: border, color, box-shadow, background;
19
109
  transition-duration: 100ms;
20
110
  transition-timing-function: cubic-bezier(0, 0.2, 0.2, 1);
21
111
 
112
+ color: var(--color, inherit);
113
+ background-color: var(--bg-color, transparent);
114
+ box-shadow: var(--box-shadow, none);
115
+
116
+ .icon {
117
+ @include color-svg(var(--color, currentColor));
118
+ width: 100%;
119
+ height: 100%;
120
+ }
121
+
22
122
  &__content {
23
123
  display: flex;
24
124
  align-items: center;
@@ -33,7 +133,6 @@ a.btn {
33
133
  justify-content: center;
34
134
  border: 1px solid;
35
135
  border-radius: 100%;
36
- @include color-svg(currentColor);
37
136
  padding: base(0.1);
38
137
  color: inherit;
39
138
 
@@ -47,6 +146,10 @@ a.btn {
47
146
  }
48
147
  }
49
148
 
149
+ &--withPopup {
150
+ display: flex;
151
+ }
152
+
50
153
  &--has-tooltip {
51
154
  position: relative;
52
155
  }
@@ -127,46 +230,9 @@ a.btn {
127
230
  }
128
231
  }
129
232
 
130
- &--style-primary {
131
- background: var(--theme-elevation-800);
132
- color: var(--theme-elevation-0);
133
-
134
- &.btn--disabled {
135
- background: var(--theme-elevation-200);
136
- }
137
-
138
- &:not(.btn--disabled) {
139
- &:hover,
140
- &:focus-visible,
141
- &:focus,
142
- &:active {
143
- background: var(--theme-elevation-600);
144
- }
145
- }
146
-
147
- .icon {
148
- @include color-svg(var(--theme-elevation-0));
149
- }
150
- }
151
-
152
- &--style-secondary {
153
- box-shadow: inset 0 0 0 1px var(--theme-elevation-800);
154
- color: var(--theme-text);
155
-
156
- &.btn--disabled {
157
- color: var(--theme-elevation-200);
158
- box-shadow: inset 0 0 0 1px var(--theme-elevation-200);
159
- }
160
-
161
- &:not(.btn--disabled) {
162
- &:hover,
163
- &:focus-visible,
164
- &:focus,
165
- &:active {
166
- color: var(--theme-elevation-600);
167
- box-shadow: inset 0 0 0 1px var(--theme-elevation-400);
168
- }
169
- }
233
+ &--withPopup .btn {
234
+ border-top-right-radius: 0;
235
+ border-bottom-right-radius: 0;
170
236
  }
171
237
 
172
238
  &--style-icon-label,
@@ -2,9 +2,10 @@ import type { ElementType, MouseEvent } from 'react';
2
2
  import type React from 'react';
3
3
  export type Props = {
4
4
  Link?: React.ElementType;
5
+ SubMenuPopupContent?: React.ReactNode;
5
6
  'aria-label'?: string;
6
7
  buttonId?: string;
7
- buttonStyle?: 'error' | 'icon-label' | 'none' | 'primary' | 'secondary' | 'transparent';
8
+ buttonStyle?: 'error' | 'icon-label' | 'none' | 'pill' | 'primary' | 'secondary' | 'transparent';
8
9
  children?: React.ReactNode;
9
10
  className?: string;
10
11
  disabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/Button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAA;IACvF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAA;IACpC,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAA;IAC5D,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,gBAAgB,CAAA;IACrD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/Button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IACxB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAA;IAChG,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAA;IACpC,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAA;IAC5D,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,gBAAgB,CAAA;IACrD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/Button/types.ts"],"sourcesContent":["import type { ElementType, MouseEvent } from 'react'\nimport type React from 'react'\n\nexport type Props = {\n Link?: React.ElementType\n 'aria-label'?: string\n buttonId?: string\n buttonStyle?: 'error' | 'icon-label' | 'none' | 'primary' | 'secondary' | 'transparent'\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n el?: 'anchor' | 'link' | ElementType\n icon?: ['chevron' | 'edit' | 'plus' | 'x'] | React.ReactNode\n iconPosition?: 'left' | 'right'\n iconStyle?: 'none' | 'with-border' | 'without-border'\n id?: string\n newTab?: boolean\n onClick?: (event: MouseEvent) => void\n round?: boolean\n size?: 'large' | 'medium' | 'small'\n to?: string\n tooltip?: string\n type?: 'button' | 'submit'\n url?: string\n}\n"],"mappings":"AAGA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/Button/types.ts"],"sourcesContent":["import type { ElementType, MouseEvent } from 'react'\nimport type React from 'react'\n\nexport type Props = {\n Link?: React.ElementType\n SubMenuPopupContent?: React.ReactNode\n 'aria-label'?: string\n buttonId?: string\n buttonStyle?: 'error' | 'icon-label' | 'none' | 'pill' | 'primary' | 'secondary' | 'transparent'\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n el?: 'anchor' | 'link' | ElementType\n icon?: ['chevron' | 'edit' | 'plus' | 'x'] | React.ReactNode\n iconPosition?: 'left' | 'right'\n iconStyle?: 'none' | 'with-border' | 'without-border'\n id?: string\n newTab?: boolean\n onClick?: (event: MouseEvent) => void\n round?: boolean\n size?: 'large' | 'medium' | 'small'\n to?: string\n tooltip?: string\n type?: 'button' | 'submit'\n url?: string\n}\n"],"mappings":"AAGA","ignoreList":[]}
@@ -5,13 +5,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useModal } from '@faceless-ui/modal';
6
6
  import React, { useCallback, useEffect, useState } from 'react';
7
7
  import { toast } from 'sonner';
8
- import { useRelatedCollections } from '../../fields/Relationship/AddNew/useRelatedCollections.js';
9
8
  import { XIcon } from '../../icons/X/index.js';
10
9
  import { RenderComponent } from '../../providers/Config/RenderComponent.js';
11
10
  import { useConfig } from '../../providers/Config/index.js';
12
11
  import { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js';
13
12
  import { useLocale } from '../../providers/Locale/index.js';
14
13
  import { useTranslation } from '../../providers/Translation/index.js';
14
+ import { useRelatedCollections } from '../AddNewRelation/useRelatedCollections.js';
15
15
  import { Gutter } from '../Gutter/index.js';
16
16
  import { IDLabel } from '../IDLabel/index.js';
17
17
  import { RenderTitle } from '../RenderTitle/index.js';