native-document 1.0.164 → 1.0.166

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 (398) hide show
  1. package/components.d.ts +2 -0
  2. package/devtools/widget.js +1 -1
  3. package/dist/native-document.components.min.js +11074 -2735
  4. package/dist/native-document.dev.js +2269 -392
  5. package/dist/native-document.dev.js.map +1 -1
  6. package/dist/native-document.min.js +1 -1
  7. package/eslint.config.js +28 -33
  8. package/i18n.js +1 -1
  9. package/i18n.ts +2 -0
  10. package/index.js +4 -1
  11. package/package.json +3 -2
  12. package/src/components/$traits/has-draggable/HasDraggable.d.ts +4 -0
  13. package/src/components/$traits/has-draggable/HasDraggable.js +13 -0
  14. package/src/components/$traits/has-items/HasItems.d.ts +9 -0
  15. package/src/components/$traits/has-items/HasItems.js +6 -6
  16. package/src/components/$traits/has-position/HasFullPosition.d.ts +14 -0
  17. package/src/components/$traits/has-position/HasFullPosition.js +44 -0
  18. package/src/components/$traits/has-position/HasPosition.d.ts +7 -0
  19. package/src/components/$traits/has-position/HasPosition.js +23 -1
  20. package/src/components/$traits/has-resizable/HasResizable.d.ts +13 -0
  21. package/src/components/$traits/has-resizable/HasResizable.js +9 -0
  22. package/src/components/$traits/has-validation/HasValidation.d.ts +17 -0
  23. package/src/components/$traits/has-validation/HasValidation.js +54 -7
  24. package/src/components/BaseComponent.d.ts +32 -0
  25. package/src/components/BaseComponent.js +65 -9
  26. package/src/components/accordion/Accordion.js +39 -14
  27. package/src/components/accordion/AccordionItem.js +45 -14
  28. package/src/components/accordion/index.js +2 -2
  29. package/src/components/accordion/types/Accordion.d.ts +47 -0
  30. package/src/components/accordion/types/AccordionItem.d.ts +48 -0
  31. package/src/components/alert/Alert.js +70 -38
  32. package/src/components/alert/index.js +2 -2
  33. package/src/components/alert/types/Alert.d.ts +62 -0
  34. package/src/components/avatar/Avatar.js +49 -12
  35. package/src/components/avatar/AvatarGroup.js +50 -2
  36. package/src/components/avatar/index.js +2 -2
  37. package/src/components/avatar/types/Avatar.d.ts +74 -0
  38. package/src/components/avatar/types/AvatarGroup.d.ts +32 -0
  39. package/src/components/badge/Badge.js +125 -5
  40. package/src/components/badge/index.js +2 -2
  41. package/src/components/badge/types/Badge.d.ts +51 -0
  42. package/src/components/breadcrumb/BreadCrumb.js +61 -5
  43. package/src/components/breadcrumb/index.js +2 -2
  44. package/src/components/breadcrumb/types/BreadCrumb.d.ts +42 -0
  45. package/src/components/button/Button.js +164 -9
  46. package/src/components/button/index.js +1 -1
  47. package/src/components/button/types/Button.d.ts +62 -0
  48. package/src/components/card/Card.js +128 -10
  49. package/src/components/card/index.js +3 -3
  50. package/src/components/card/types/Card.d.ts +42 -0
  51. package/src/components/context-menu/ContextMenu.js +49 -5
  52. package/src/components/context-menu/ContextMenuGroup.js +15 -2
  53. package/src/components/context-menu/ContextMenuItem.js +14 -2
  54. package/src/components/context-menu/index.js +5 -5
  55. package/src/components/context-menu/types/ContextMenu.d.ts +30 -0
  56. package/src/components/context-menu/types/ContextMenuGroup.d.ts +18 -0
  57. package/src/components/context-menu/types/ContextMenuItem.d.ts +18 -0
  58. package/src/components/divider/Divider.js +120 -4
  59. package/src/components/divider/index.js +3 -3
  60. package/src/components/divider/types/Divider.d.ts +55 -0
  61. package/src/components/dropdown/Dropdown.js +239 -16
  62. package/src/components/dropdown/DropdownDivider.js +22 -2
  63. package/src/components/dropdown/DropdownGroup.js +44 -5
  64. package/src/components/dropdown/DropdownItem.js +76 -3
  65. package/src/components/dropdown/DropdownTrigger.js +49 -20
  66. package/src/components/dropdown/helpers.js +1 -1
  67. package/src/components/dropdown/index.js +6 -6
  68. package/src/components/dropdown/types/Dropdown.d.ts +88 -0
  69. package/src/components/dropdown/types/DropdownDivider.d.ts +20 -0
  70. package/src/components/dropdown/types/DropdownGroup.d.ts +25 -0
  71. package/src/components/dropdown/types/DropdownItem.d.ts +41 -0
  72. package/src/components/dropdown/types/DropdownTrigger.d.ts +32 -0
  73. package/src/components/form/FormControl.js +156 -13
  74. package/src/components/form/field/Field.js +172 -9
  75. package/src/components/form/field/FieldCollection.js +116 -12
  76. package/src/components/form/field/types/AutocompleteField.js +92 -2
  77. package/src/components/form/field/types/CheckboxField.js +43 -2
  78. package/src/components/form/field/types/CheckboxGroupField.js +83 -6
  79. package/src/components/form/field/types/ColorField.js +56 -3
  80. package/src/components/form/field/types/DateField.js +155 -4
  81. package/src/components/form/field/types/EmailField.js +54 -4
  82. package/src/components/form/field/types/FileField.js +140 -6
  83. package/src/components/form/field/types/HiddenField.js +27 -1
  84. package/src/components/form/field/types/ImageField.js +82 -3
  85. package/src/components/form/field/types/NumberField.js +97 -4
  86. package/src/components/form/field/types/PasswordField.js +103 -7
  87. package/src/components/form/field/types/RadioField.js +75 -4
  88. package/src/components/form/field/types/RangeField.js +67 -1
  89. package/src/components/form/field/types/SearchField.js +41 -2
  90. package/src/components/form/field/types/SelectField.js +133 -4
  91. package/src/components/form/field/types/StringField.js +91 -2
  92. package/src/components/form/field/types/TelField.js +55 -4
  93. package/src/components/form/field/types/TextAreaField.js +76 -2
  94. package/src/components/form/field/types/TimeField.js +120 -5
  95. package/src/components/form/field/types/UrlField.js +59 -4
  96. package/src/components/form/field/types/file-field-mode/FileAvatarMode.js +83 -4
  97. package/src/components/form/field/types/file-field-mode/FileDropzoneMode.js +61 -3
  98. package/src/components/form/field/types/file-field-mode/FileItemPreview.js +79 -3
  99. package/src/components/form/field/types/file-field-mode/FileNativeMode.js +24 -2
  100. package/src/components/form/field/types/file-field-mode/FileUploadButtonMode.js +64 -3
  101. package/src/components/form/field/types/file-field-mode/FileWallMode.js +56 -3
  102. package/src/components/form/index.js +28 -28
  103. package/src/components/form/types/Field.d.ts +73 -0
  104. package/src/components/form/types/FieldCollection.d.ts +53 -0
  105. package/src/components/form/types/FormControl.d.ts +64 -0
  106. package/src/components/form/types/fields/AutocompleteField.d.ts +48 -0
  107. package/src/components/form/types/fields/CheckboxField.d.ts +33 -0
  108. package/src/components/form/types/fields/CheckboxGroupField.d.ts +49 -0
  109. package/src/components/form/types/fields/ColorField.d.ts +37 -0
  110. package/src/components/form/types/fields/DateField.d.ts +70 -0
  111. package/src/components/form/types/fields/EmailField.d.ts +35 -0
  112. package/src/components/form/types/fields/FileAvatarMode.d.ts +46 -0
  113. package/src/components/form/types/fields/FileDropzoneMode.d.ts +28 -0
  114. package/src/components/form/types/fields/FileField.d.ts +56 -0
  115. package/src/components/form/types/fields/FileItemPreview.d.ts +35 -0
  116. package/src/components/form/types/fields/FileNativeMode.d.ts +21 -0
  117. package/src/components/form/types/fields/FileUploadButtonMode.d.ts +34 -0
  118. package/src/components/form/types/fields/FileWallMode.d.ts +32 -0
  119. package/src/components/form/types/fields/HiddenField.d.ts +26 -0
  120. package/src/components/form/types/fields/ImageField.d.ts +45 -0
  121. package/src/components/form/types/fields/NumberField.d.ts +48 -0
  122. package/src/components/form/types/fields/PasswordField.d.ts +46 -0
  123. package/src/components/form/types/fields/RadioField.d.ts +48 -0
  124. package/src/components/form/types/fields/RangeField.d.ts +44 -0
  125. package/src/components/form/types/fields/SearchField.d.ts +34 -0
  126. package/src/components/form/types/fields/SelectField.d.ts +71 -0
  127. package/src/components/form/types/fields/StringField.d.ts +48 -0
  128. package/src/components/form/types/fields/TelField.d.ts +37 -0
  129. package/src/components/form/types/fields/TextAreaField.d.ts +44 -0
  130. package/src/components/form/types/fields/TimeField.d.ts +51 -0
  131. package/src/components/form/types/fields/UrlField.d.ts +35 -0
  132. package/src/components/form/validation/Validation.js +54 -54
  133. package/src/components/index.d.ts +160 -0
  134. package/src/components/list/List.js +99 -15
  135. package/src/components/list/ListGroup.js +58 -8
  136. package/src/components/list/ListItem.js +79 -18
  137. package/src/components/list/index.js +5 -5
  138. package/src/components/list/types/List.d.ts +43 -0
  139. package/src/components/list/types/ListGroup.d.ts +37 -0
  140. package/src/components/list/types/ListItem.d.ts +42 -0
  141. package/src/components/menu/HasMenuItem.js +55 -6
  142. package/src/components/menu/Menu.js +113 -22
  143. package/src/components/menu/MenuDivider.js +18 -2
  144. package/src/components/menu/MenuGroup.js +61 -6
  145. package/src/components/menu/MenuItem.js +95 -11
  146. package/src/components/menu/MenuLink.js +27 -2
  147. package/src/components/menu/index.js +6 -6
  148. package/src/components/menu/types/Menu.d.ts +60 -0
  149. package/src/components/menu/types/MenuDivider.d.ts +19 -0
  150. package/src/components/menu/types/MenuGroup.d.ts +44 -0
  151. package/src/components/menu/types/MenuItem.d.ts +46 -0
  152. package/src/components/menu/types/MenuLink.d.ts +16 -0
  153. package/src/components/modal/Modal.js +258 -17
  154. package/src/components/modal/index.js +3 -3
  155. package/src/components/modal/types/Modal.d.ts +94 -0
  156. package/src/components/pagination/Pagination.js +155 -7
  157. package/src/components/pagination/index.js +3 -3
  158. package/src/components/pagination/types/Pagination.d.ts +68 -0
  159. package/src/components/popover/Popover.js +198 -11
  160. package/src/components/popover/PopoverFooter.js +33 -9
  161. package/src/components/popover/PopoverHeader.js +33 -8
  162. package/src/components/popover/index.js +4 -4
  163. package/src/components/popover/types/Popover.d.ts +83 -0
  164. package/src/components/popover/types/PopoverFooter.d.ts +24 -0
  165. package/src/components/popover/types/PopoverHeader.d.ts +26 -0
  166. package/src/components/progress/Progress.js +182 -13
  167. package/src/components/progress/index.js +3 -3
  168. package/src/components/progress/types/Progress.d.ts +77 -0
  169. package/src/components/skeleton/Skeleton.js +117 -49
  170. package/src/components/skeleton/index.js +3 -3
  171. package/src/components/skeleton/types/Skeleton.d.ts +55 -0
  172. package/src/components/slider/Slider.js +207 -10
  173. package/src/components/slider/index.js +2 -2
  174. package/src/components/slider/types/Slider.d.ts +82 -0
  175. package/src/components/spacer/Spacer.js +11 -2
  176. package/src/components/spacer/index.js +2 -2
  177. package/src/components/spacer/types/Spacer.d.ts +19 -0
  178. package/src/components/spinner/Spinner.js +180 -9
  179. package/src/components/spinner/index.js +3 -3
  180. package/src/components/spinner/types/Spinner.d.ts +71 -0
  181. package/src/components/splitter/Splitter.js +76 -13
  182. package/src/components/splitter/SplitterGutter.js +67 -5
  183. package/src/components/splitter/SplitterPanel.js +69 -2
  184. package/src/components/splitter/index.js +5 -5
  185. package/src/components/splitter/types/Splitter.d.ts +38 -0
  186. package/src/components/splitter/types/SplitterGutter.d.ts +38 -0
  187. package/src/components/splitter/types/SplitterPanel.d.ts +41 -0
  188. package/src/components/stacks/AbsoluteStack.js +23 -3
  189. package/src/components/stacks/FixedStack.js +23 -3
  190. package/src/components/stacks/HStack.js +24 -3
  191. package/src/components/stacks/PositionStack.js +111 -3
  192. package/src/components/stacks/RelativeStack.js +23 -3
  193. package/src/components/stacks/Stack.js +73 -2
  194. package/src/components/stacks/VStack.js +24 -4
  195. package/src/components/stacks/index.js +7 -7
  196. package/src/components/stacks/types/AbsoluteStack.d.ts +16 -0
  197. package/src/components/stacks/types/FixedStack.d.ts +16 -0
  198. package/src/components/stacks/types/HStack.d.ts +16 -0
  199. package/src/components/stacks/types/PositionStack.d.ts +54 -0
  200. package/src/components/stacks/types/RelativeStack.d.ts +17 -0
  201. package/src/components/stacks/types/Stack.d.ts +39 -0
  202. package/src/components/stacks/types/VStack.d.ts +16 -0
  203. package/src/components/stepper/Stepper.js +152 -12
  204. package/src/components/stepper/StepperStep.js +104 -3
  205. package/src/components/stepper/index.js +4 -4
  206. package/src/components/stepper/types/Stepper.d.ts +68 -0
  207. package/src/components/stepper/types/StepperStep.d.ts +54 -0
  208. package/src/components/switch/Switch.js +143 -6
  209. package/src/components/switch/index.js +1 -1
  210. package/src/components/switch/types/Switch.d.ts +55 -0
  211. package/src/components/table/Column.js +105 -6
  212. package/src/components/table/ColumnGroup.js +48 -3
  213. package/src/components/table/DataTable.js +256 -19
  214. package/src/components/table/SimpleTable.js +58 -4
  215. package/src/components/table/index.js +2 -2
  216. package/src/components/table/types/Column.d.ts +49 -0
  217. package/src/components/table/types/ColumnGroup.d.ts +28 -0
  218. package/src/components/table/types/DataTable.d.ts +97 -0
  219. package/src/components/table/types/SimpleTable.d.ts +40 -0
  220. package/src/components/tabs/Tabs.js +192 -5
  221. package/src/components/tabs/index.js +3 -3
  222. package/src/components/tabs/types/Tabs.d.ts +78 -0
  223. package/src/components/toast/Toast.js +133 -5
  224. package/src/components/toast/index.js +3 -3
  225. package/src/components/toast/types/Toast.d.ts +57 -0
  226. package/src/components/toast/types/ToastError.d.ts +7 -0
  227. package/src/components/toast/types/ToastInfo.d.ts +7 -0
  228. package/src/components/toast/types/ToastSuccess.d.ts +7 -0
  229. package/src/components/toast/types/ToastWarning.d.ts +7 -0
  230. package/src/components/tooltip/Tooltip.js +157 -13
  231. package/src/components/tooltip/index.js +2 -2
  232. package/src/components/tooltip/prototypes.js +1 -1
  233. package/src/components/tooltip/types/Tooltip.d.ts +65 -0
  234. package/src/core/data/MemoryManager.js +2 -2
  235. package/src/core/data/Observable.js +15 -18
  236. package/src/core/data/ObservableArray.js +118 -46
  237. package/src/core/data/ObservableChecker.js +2 -2
  238. package/src/core/data/ObservableItem.js +135 -21
  239. package/src/core/data/ObservableObject.js +126 -35
  240. package/src/core/data/ObservableResource.js +113 -3
  241. package/src/core/data/Store.js +142 -26
  242. package/src/core/data/observable-helpers/observable.is-to.js +196 -1
  243. package/src/core/data/observable-helpers/observable.prototypes.js +33 -8
  244. package/src/core/elements/anchor/anchor-with-sentinel.js +23 -2
  245. package/src/core/elements/anchor/anchor.js +16 -7
  246. package/src/core/elements/anchor/one-child-anchor-overwriting.js +2 -2
  247. package/src/core/elements/content-formatter.js +1 -1
  248. package/src/core/elements/control/for-each-array.js +9 -9
  249. package/src/core/elements/control/for-each.js +14 -14
  250. package/src/core/elements/control/show-if.js +11 -11
  251. package/src/core/elements/control/show-when.js +5 -5
  252. package/src/core/elements/control/switch.js +14 -14
  253. package/src/core/elements/description-list.js +1 -1
  254. package/src/core/elements/form.js +2 -2
  255. package/src/core/elements/fragment.js +1 -1
  256. package/src/core/elements/html5-semantics.js +1 -1
  257. package/src/core/elements/img.js +3 -3
  258. package/src/core/elements/interactive.js +1 -1
  259. package/src/core/elements/list.js +1 -1
  260. package/src/core/elements/medias.js +1 -1
  261. package/src/core/elements/meta-data.js +1 -1
  262. package/src/core/elements/svg.js +1 -1
  263. package/src/core/elements/table.js +1 -1
  264. package/src/core/errors/ArgTypesError.js +1 -1
  265. package/src/core/utils/HasEventEmitter.js +36 -2
  266. package/src/core/utils/args-types.js +9 -9
  267. package/src/core/utils/cache.js +1 -1
  268. package/src/core/utils/callback-handler.js +29 -0
  269. package/src/core/utils/debug-manager.js +6 -6
  270. package/src/core/utils/events.js +139 -139
  271. package/src/core/utils/filters/date.js +84 -3
  272. package/src/core/utils/filters/standard.js +136 -11
  273. package/src/core/utils/filters/strings.js +34 -2
  274. package/src/core/utils/filters/utils.js +40 -4
  275. package/src/core/utils/formatters.js +4 -4
  276. package/src/core/utils/helpers.js +39 -7
  277. package/src/core/utils/localstorage.js +11 -11
  278. package/src/core/utils/memoize.js +56 -3
  279. package/src/core/utils/plugins-manager.js +3 -3
  280. package/src/core/utils/property-accumulator.js +6 -6
  281. package/src/core/utils/prototypes.js +26 -1
  282. package/src/core/utils/shortcut-manager.js +2 -2
  283. package/src/core/utils/validator.js +8 -8
  284. package/src/core/wrappers/AttributesWrapper.js +32 -22
  285. package/src/core/wrappers/DocumentObserver.js +3 -3
  286. package/src/core/wrappers/ElementCreator.js +5 -5
  287. package/src/core/wrappers/HtmlElementWrapper.js +38 -12
  288. package/src/core/wrappers/NDElement.js +328 -22
  289. package/src/core/wrappers/NdPrototype.js +60 -16
  290. package/src/core/wrappers/SingletonView.js +50 -2
  291. package/src/core/wrappers/SvgElementWrapper.js +1 -1
  292. package/src/core/wrappers/constants.js +35 -2
  293. package/src/core/wrappers/prototypes/attributes-extensions.js +7 -7
  294. package/src/core/wrappers/prototypes/nd-element-extensions.js +72 -6
  295. package/src/core/wrappers/prototypes/nd-element.transition.extensions.js +42 -2
  296. package/src/core/wrappers/template-cloner/NodeCloner.js +53 -8
  297. package/src/core/wrappers/template-cloner/TemplateCloner.js +75 -6
  298. package/src/core/wrappers/template-cloner/attributes-hydrator.js +58 -2
  299. package/src/core/wrappers/template-cloner/utils.js +42 -6
  300. package/src/fetch/NativeFetch.js +3 -3
  301. package/src/i18n/bin/scan.js +6 -6
  302. package/src/i18n/index.d.ts +2 -0
  303. package/src/i18n/service/I18nService.d.ts +27 -0
  304. package/src/i18n/service/I18nService.js +5 -5
  305. package/src/i18n/service/functions.d.ts +22 -0
  306. package/src/i18n/service/functions.js +2 -2
  307. package/src/router/Route.js +3 -3
  308. package/src/router/RouteGroupHelper.js +2 -2
  309. package/src/router/Router.js +15 -15
  310. package/src/router/RouterComponent.js +33 -7
  311. package/src/router/link.js +4 -4
  312. package/src/router/modes/HashRouter.js +2 -2
  313. package/src/router/modes/HistoryRouter.js +2 -2
  314. package/src/router/modes/MemoryRouter.js +1 -1
  315. package/src/ui/components/accordion/AccordionItemRender.js +3 -3
  316. package/src/ui/components/accordion/AccordionRender.js +1 -1
  317. package/src/ui/components/alert/AlertRender.js +10 -10
  318. package/src/ui/components/avatar/avata-group/AvatarGroupRender.js +1 -1
  319. package/src/ui/components/avatar/avatar/AvatarRender.js +1 -1
  320. package/src/ui/components/breadcrumb/BreadcrumbRender.js +2 -2
  321. package/src/ui/components/button/ButtonRender.js +1 -1
  322. package/src/ui/components/contextmenu/ContextmenuRender.js +5 -5
  323. package/src/ui/components/dropdown/DropdownRender.js +8 -8
  324. package/src/ui/components/dropdown/group/DropdownGroupRender.js +2 -2
  325. package/src/ui/components/dropdown/item/DropdownItemRender.js +1 -1
  326. package/src/ui/components/form/FieldCollectionRender.js +2 -2
  327. package/src/ui/components/form/FormControlRender.js +5 -5
  328. package/src/ui/components/form/fields/AutocompleteFieldRender.js +3 -3
  329. package/src/ui/components/form/fields/CheckboxFieldRender.js +1 -1
  330. package/src/ui/components/form/fields/CheckboxGroupFieldRender.js +1 -1
  331. package/src/ui/components/form/fields/DateFieldRender.js +7 -7
  332. package/src/ui/components/form/fields/EmailFieldRender.js +1 -1
  333. package/src/ui/components/form/fields/FieldRender.js +4 -4
  334. package/src/ui/components/form/fields/FileFieldRender.js +1 -1
  335. package/src/ui/components/form/fields/PasswordFieldRender.js +2 -2
  336. package/src/ui/components/form/fields/RadioFieldRender.js +1 -1
  337. package/src/ui/components/form/fields/RangeFieldRender.js +1 -1
  338. package/src/ui/components/form/fields/SelectFieldRender.js +2 -2
  339. package/src/ui/components/form/fields/SliderFieldRender.js +6 -6
  340. package/src/ui/components/form/fields/StringFieldRender.js +1 -1
  341. package/src/ui/components/form/fields/TelFieldRender.js +1 -1
  342. package/src/ui/components/form/fields/TextAreaFieldRender.js +1 -1
  343. package/src/ui/components/form/fields/TimeFieldRender.js +3 -3
  344. package/src/ui/components/form/fields/UrlFieldRender.js +1 -1
  345. package/src/ui/components/form/file-upload-mode/FileAvatarModeRender.js +1 -1
  346. package/src/ui/components/form/file-upload-mode/FileDropzoneModeRender.js +2 -2
  347. package/src/ui/components/form/file-upload-mode/FileUploadButtonModeRender.js +2 -2
  348. package/src/ui/components/form/file-upload-mode/FileWallModeRender.js +1 -1
  349. package/src/ui/components/form/helpers.js +8 -8
  350. package/src/ui/components/form/index.js +27 -27
  351. package/src/ui/components/menu/MenuDividerRender.js +1 -1
  352. package/src/ui/components/menu/MenuGroupRender.js +3 -3
  353. package/src/ui/components/menu/MenuItemRender.js +2 -2
  354. package/src/ui/components/menu/MenuLinkRender.js +3 -3
  355. package/src/ui/components/menu/helpers.js +4 -4
  356. package/src/ui/components/modal/ModalRender.js +4 -4
  357. package/src/ui/components/pagination/PaginationRender.js +9 -9
  358. package/src/ui/components/popover/PopoverRender.js +7 -7
  359. package/src/ui/components/progress/ProgressRender.js +12 -12
  360. package/src/ui/components/skeleton/SkeletonRender.js +56 -0
  361. package/src/ui/components/splitter/SplitterGutterRender.js +1 -1
  362. package/src/ui/components/splitter/SplitterPanelRender.js +2 -2
  363. package/src/ui/components/stacks/PositionStackRender.js +1 -1
  364. package/src/ui/components/stacks/StackRender.js +1 -1
  365. package/src/ui/components/stacks/absolute-stack/AbsoluteStackRender.js +1 -1
  366. package/src/ui/components/stacks/fixed-stack/FixedStackRender.js +1 -1
  367. package/src/ui/components/stacks/h-stack/HStackRender.js +1 -1
  368. package/src/ui/components/stacks/index.js +5 -5
  369. package/src/ui/components/stacks/relative-stack/RelativeStackRender.js +1 -1
  370. package/src/ui/components/stacks/v-stack/VStackRender.js +1 -1
  371. package/src/ui/components/stepper/StepperRender.js +2 -2
  372. package/src/ui/components/stepper/StepperStepRender.js +4 -4
  373. package/src/ui/components/switch/SwitchRender.js +4 -4
  374. package/src/ui/components/table/data-table/DataTableRender.js +5 -5
  375. package/src/ui/components/table/data-table/bulk-actions.js +7 -7
  376. package/src/ui/components/table/data-table/pagination.js +6 -6
  377. package/src/ui/components/table/data-table/tables.js +25 -25
  378. package/src/ui/components/table/data-table/toolbar.js +3 -3
  379. package/src/ui/components/table/simple-table/SimpleTableRender.js +8 -8
  380. package/src/ui/components/tabs/TabsRender.js +11 -11
  381. package/src/ui/components/toast/ToastRender.js +3 -3
  382. package/src/ui/components/tooltip/TooltipRender.js +1 -1
  383. package/src/ui/index.js +36 -36
  384. package/types/elements.d.ts +163 -1037
  385. package/types/forms.d.ts +16 -20
  386. package/types/globals.d.ts +543 -0
  387. package/types/images.d.ts +2 -2
  388. package/types/observable-resource.d.ts +3 -0
  389. package/types/property-accumulator.d.ts +4 -4
  390. package/types/store.d.ts +26 -2
  391. package/types/validator.ts +3 -3
  392. package/ui.js +1 -0
  393. package/src/components/form/field/DefaultRender.js +0 -77
  394. package/src/components/form/field/FieldFactory.js +0 -107
  395. package/src/components/skeleton/SkeletonCard.js +0 -0
  396. package/src/components/skeleton/SkeletonList.js +0 -0
  397. package/src/components/skeleton/SkeletonParagraph.js +0 -0
  398. package/src/components/skeleton/SkeletonTable.js +0 -0
@@ -1,11 +1,33 @@
1
- import BaseComponent from "../BaseComponent";
2
- import HasEventEmitter from "../../core/utils/HasEventEmitter";
3
- import { Observable } from "../../core/data/Observable";
4
- import {ElementCreator} from "../../core/wrappers/ElementCreator";
5
- import {NDElement} from "../../core/wrappers/NDElement";
6
- import DebugManager from "../../core/utils/debug-manager";
7
- import HasFullPosition from "../$traits/has-position/HasFullPosition";
8
-
1
+ import BaseComponent from '../BaseComponent';
2
+ import HasEventEmitter from '../../core/utils/HasEventEmitter';
3
+ import { Observable } from '../../core/data/Observable';
4
+ import {ElementCreator} from '../../core/wrappers/ElementCreator';
5
+ import {NDElement} from '../../core/wrappers/NDElement';
6
+ import DebugManager from '../../core/utils/debug-manager';
7
+ import HasFullPosition from '../$traits/has-position/HasFullPosition';
8
+
9
+ /**
10
+ * Floating panel anchored to a trigger element. Supports click/hover/focus interactions, arrow, position, header/footer slots, and focus trap.
11
+ *
12
+ *
13
+ * @example
14
+ * const popover = new Popover(Div('Popover content'))
15
+ * .trigger(myBtn)
16
+ * .onClicked()
17
+ * .position('bottom')
18
+ * .offset(8)
19
+ * .arrow(true)
20
+ * .closeOnEscape(true)
21
+ * .onOpen(() => console.log('open'));
22
+ *
23
+ * Popover.use((description, instance) => {
24
+ * return Div({ class: 'popover' }, description.header, description.content, description.footer);
25
+ * });
26
+ *
27
+ * @constructor
28
+ * @param {NdChild} content
29
+ * @param {GlobalAttributes} [props={}]
30
+ */
9
31
  export default function Popover(content, props = {}) {
10
32
  if (!(this instanceof Popover)) {
11
33
  return new Popover(content, props);
@@ -55,6 +77,34 @@ BaseComponent.use(Popover, HasEventEmitter, HasFullPosition);
55
77
 
56
78
  Popover.defaultTemplate = null;
57
79
 
80
+ /**
81
+ * Registers the render template for Popover.
82
+ * @param {(description: {
83
+ * trigger: HTMLElement|null,
84
+ * interaction: 'click'|'hover'|'focus',
85
+ * content: NdChild,
86
+ * header: NdChild|PopoverHeader|null,
87
+ * footer: NdChild|PopoverFooter|null,
88
+ * isOpen: Observable<boolean>,
89
+ * closeOnEscape: boolean,
90
+ * closeOnClickOutside: boolean,
91
+ * focusTrap: boolean,
92
+ * returnFocus: boolean,
93
+ * position: string,
94
+ * offset: number,
95
+ * shift: Record<string, number>,
96
+ * arrow: boolean,
97
+ * data: *|null,
98
+ * renderContent: ((desc: *, instance: Popover) => NdChild)|null,
99
+ * renderHeader: ((desc: *, instance: Popover) => NdChild)|null,
100
+ * renderFooter: ((desc: *, instance: Popover) => NdChild)|null,
101
+ * render: ((desc: *, instance: Popover) => NdChild)|null,
102
+ * variant: string|null,
103
+ * matchTriggerWidth: boolean|null,
104
+ * updatePositionOn: Observable<*>|null,
105
+ * props: GlobalAttributes,
106
+ * }, instance: Popover) => NdChild} template
107
+ */
58
108
  Popover.use = function(template) {
59
109
  Popover.defaultTemplate = template;
60
110
 
@@ -74,15 +124,17 @@ Popover.use = function(template) {
74
124
  } else {
75
125
  this.ghostDom(Popover(content, props).trigger(this.$element));
76
126
  }
77
- })
127
+ });
78
128
  return this;
79
129
  };
80
130
  }
81
131
 
82
132
  };
83
133
 
84
-
85
-
134
+ /**
135
+ * @param {string} name
136
+ * @param {Function} callback
137
+ */
86
138
  Popover.preset = function(name, callback) {
87
139
  if (Popover.prototype[name] || Popover[name]) {
88
140
  DebugManager.warn(`Warning: the ${name} method already exist in Popover.`);
@@ -91,181 +143,316 @@ Popover.preset = function(name, callback) {
91
143
  Popover[name] = (content, props) => callback(new Popover(content, props));
92
144
  };
93
145
 
146
+ /**
147
+ * @param {*} presets
148
+ */
94
149
  Popover.presets = function(presets) {
95
150
  for (const name in presets) {
96
151
  Popover.preset(name, presets[name]);
97
152
  }
98
153
  };
99
154
 
155
+ /**
156
+ * @param {HTMLElement|NDElement} trigger
157
+ * @returns {this}
158
+ */
100
159
  Popover.prototype.trigger = function(trigger) {
101
160
  this.$description.trigger = ElementCreator.getChild(trigger);
102
161
  return this;
103
162
  };
104
163
 
164
+ /**
165
+ * @param {'click'|'hover'|'focus'} interaction
166
+ * @returns {this}
167
+ */
105
168
  Popover.prototype.interaction = function(interaction) {
106
169
  this.$description.interaction = interaction;
107
170
  };
108
171
 
172
+ /**
173
+ * @returns {this}
174
+ */
109
175
  Popover.prototype.onClicked = function() {
110
176
  this.$description.interaction = 'click';
111
177
  return this;
112
178
  };
113
179
 
180
+ /**
181
+ * @returns {this}
182
+ */
114
183
  Popover.prototype.onHovered = function() {
115
184
  this.$description.interaction = 'hover';
116
185
  return this;
117
186
  };
118
187
 
188
+ /**
189
+ * @returns {this}
190
+ */
119
191
  Popover.prototype.onFocused = function() {
120
192
  this.$description.interaction = 'focus';
121
193
  return this;
122
194
  };
123
195
 
196
+ /**
197
+ * @param {NdChild} content
198
+ * @returns {this}
199
+ */
124
200
  Popover.prototype.content = function(content) {
125
201
  this.$description.content = content;
126
202
  return this;
127
203
  };
128
204
 
205
+ /**
206
+ * @param {NdChild|PopoverHeader} header
207
+ * @returns {this}
208
+ */
129
209
  Popover.prototype.header = function(header) {
130
210
  this.$description.header = header;
131
211
  return this;
132
212
  };
133
213
 
214
+ /**
215
+ * @param {NdChild|PopoverFooter} footer
216
+ * @returns {this}
217
+ */
134
218
  Popover.prototype.footer = function(footer) {
135
219
  this.$description.footer = footer;
136
220
  return this;
137
221
  };
138
222
 
223
+ /**
224
+ * @param {*} [closeOnEscape]
225
+ * @returns {this}
226
+ */
139
227
  Popover.prototype.closeOnEscape = function(closeOnEscape = true) {
140
228
  this.$description.closeOnEscape = closeOnEscape;
141
229
  return this;
142
230
  };
143
231
 
232
+ /**
233
+ * @param {*} [closeOnClickOutside]
234
+ * @returns {this}
235
+ */
144
236
  Popover.prototype.closeOnClickOutside = function(closeOnClickOutside = true) {
145
237
  this.$description.closeOnClickOutside = closeOnClickOutside;
146
238
  return this;
147
239
  };
148
240
 
241
+ /**
242
+ * @param {*} [trap]
243
+ * @returns {this}
244
+ */
149
245
  Popover.prototype.focusTrap = function(trap = true) {
150
246
  this.$description.focusTrap = trap;
151
247
  return this;
152
248
  };
153
249
 
250
+ /**
251
+ * @param {*} [returnFocus]
252
+ * @returns {this}
253
+ */
154
254
  Popover.prototype.returnFocus = function(returnFocus = true) {
155
255
  this.$description.returnFocus = returnFocus;
156
256
  return this;
157
257
  };
158
258
 
259
+ /**
260
+ * @param {string} position
261
+ * @returns {this}
262
+ */
159
263
  Popover.prototype.position = function(position) {
160
264
  this.$description.position = position;
161
265
  return this;
162
266
  };
163
267
 
268
+ /**
269
+ * @param {number} offset
270
+ * @returns {this}
271
+ */
164
272
  Popover.prototype.offset = function(offset) {
165
273
  this.$description.offset = offset;
166
274
  return this;
167
275
  };
168
276
 
277
+ /**
278
+ * @param {*} [arrow]
279
+ * @returns {this}
280
+ */
169
281
  Popover.prototype.arrow = function(arrow = true) {
170
282
  this.$description.arrow = arrow;
171
283
  return this;
172
284
  };
173
285
 
286
+ /**
287
+ * @param {*} shift
288
+ * @returns {this}
289
+ */
174
290
  Popover.prototype.shift = function(shift) {
175
291
  this.$description.shift = shift;
176
292
  return this;
177
293
  };
178
294
 
295
+ /**
296
+ * @param {Observable<boolean>} observable
297
+ * @returns {this}
298
+ */
179
299
  Popover.prototype.bindOpen = function(observable) {
180
300
  this.$description.isOpen = observable;
181
301
  return this;
182
302
  };
183
303
 
304
+ /**
305
+ * @param {*} data
306
+ * @returns {this}
307
+ */
184
308
  Popover.prototype.data = function(data) {
185
309
  this.$description.data = data;
186
310
  return this;
187
311
  };
188
312
 
313
+ /**
314
+ * @returns {this}
315
+ */
189
316
  Popover.prototype.open = function() {
190
317
  this.$description.isOpen.set(true);
191
318
  this.emit('open');
192
319
  return this;
193
320
  };
194
321
 
322
+
323
+ /**
324
+ * @returns {this}
325
+ */
195
326
  Popover.prototype.close = function() {
196
327
  this.$description.isOpen.set(false);
197
328
  this.emit('close');
198
329
  return this;
199
330
  };
200
331
 
332
+
333
+ /**
334
+ * @returns {this}
335
+ */
201
336
  Popover.prototype.toggle = function() {
202
337
  this.$description.isOpen.val() ? this.close() : this.open();
203
338
  return this;
204
339
  };
205
340
 
341
+ /**
342
+ * @param {Function} handler
343
+ * @returns {this}
344
+ */
206
345
  Popover.prototype.onOpen = function(handler) {
207
346
  this.on('open', handler);
208
347
  return this;
209
348
  };
210
349
 
350
+ /**
351
+ * @param {Function} handler
352
+ * @returns {this}
353
+ */
211
354
  Popover.prototype.onClose = function(handler) {
212
355
  this.on('close', handler);
213
356
  return this;
214
357
  };
215
358
 
359
+ /**
360
+ * @param {(desc: *, instance: *) => NdChild} renderFn
361
+ * @returns {this}
362
+ */
216
363
  Popover.prototype.renderTrigger = function(renderFn) {
217
364
  this.$description.renderTrigger = renderFn;
218
365
  return this;
219
366
  };
220
367
 
368
+ /**
369
+ * @param {(desc: *, instance: *) => NdChild} renderFn
370
+ * @returns {this}
371
+ */
221
372
  Popover.prototype.renderContent = function(renderFn) {
222
373
  this.$description.renderContent = renderFn;
223
374
  return this;
224
375
  };
225
376
 
377
+ /**
378
+ * @param {(desc: *, instance: *) => NdChild} renderFn
379
+ * @returns {this}
380
+ */
226
381
  Popover.prototype.renderHeader = function(renderFn) {
227
382
  this.$description.renderHeader = renderFn;
228
383
  return this;
229
384
  };
230
385
 
386
+ /**
387
+ * @param {(desc: *, instance: *) => NdChild} renderFn
388
+ * @returns {this}
389
+ */
231
390
  Popover.prototype.renderFooter = function(renderFn) {
232
391
  this.$description.renderFooter = renderFn;
233
392
  return this;
234
393
  };
235
394
 
395
+ /**
396
+ * @param {string} variant
397
+ * @returns {this}
398
+ */
236
399
  Popover.prototype.variant = function(variant) {
237
400
  this.$description.variant = variant;
238
401
  return this;
239
402
  };
240
403
 
404
+ /**
405
+ * @returns {this}
406
+ */
241
407
  Popover.prototype.primary = function() {
242
408
  this.$description.variant = 'primary';
243
409
  return this;
244
410
  };
245
411
 
412
+ /**
413
+ * @returns {this}
414
+ */
246
415
  Popover.prototype.success = function() {
247
416
  this.$description.variant = 'success';
248
417
  return this;
249
418
  };
250
419
 
420
+ /**
421
+ * @returns {this}
422
+ */
251
423
  Popover.prototype.warning = function() {
252
424
  this.$description.variant = 'warning';
253
425
  return this;
254
426
  };
255
427
 
428
+ /**
429
+ * @returns {this}
430
+ */
256
431
  Popover.prototype.danger = function() {
257
432
  this.$description.variant = 'danger';
258
433
  return this;
259
434
  };
260
435
 
436
+ /**
437
+ * @returns {this}
438
+ */
261
439
  Popover.prototype.info = function() {
262
440
  this.$description.variant = 'info';
263
441
  return this;
264
442
  };
443
+
444
+ /**
445
+ * @returns {this}
446
+ */
265
447
  Popover.prototype.matchTriggerWidth = function() {
266
448
  this.$description.matchTriggerWidth = true;
267
449
  return this;
268
450
  };
451
+
452
+ /**
453
+ * @param {*} updatePositionOn
454
+ * @returns {this}
455
+ */
269
456
  Popover.prototype.updatePositionOn = function(updatePositionOn) {
270
457
  this.$description.updatePositionOn = updatePositionOn;
271
458
  return this;
@@ -1,5 +1,18 @@
1
- import BaseComponent from "../BaseComponent";
2
-
1
+ import BaseComponent from '../BaseComponent';
2
+
3
+ /**
4
+ * Optional footer slot for a Popover.
5
+ *
6
+ *
7
+ * @example
8
+ * const footer = new PopoverFooter(
9
+ * HStack(Button(Span('Cancel')), Button(Span('Apply')))
10
+ * );
11
+ *
12
+ * @constructor
13
+ * @param {NdChild} [content]
14
+ * @param {GlobalAttributes} [config={}]
15
+ */
3
16
  export default function PopoverFooter(content, config = {}) {
4
17
  if(!(this instanceof PopoverFooter)) {
5
18
  return new PopoverFooter(content, config);
@@ -9,7 +22,7 @@ export default function PopoverFooter(content, config = {}) {
9
22
  content: content || null,
10
23
  data: null,
11
24
  render: null,
12
- ...config
25
+ ...config,
13
26
  };
14
27
  }
15
28
 
@@ -17,21 +30,32 @@ BaseComponent.extends(PopoverFooter);
17
30
 
18
31
  PopoverFooter.defaultTemplate = null;
19
32
 
33
+ /**
34
+ * Registers the render template for PopoverFooter.
35
+ * @param {(description: {
36
+ * content: NdChild|null,
37
+ * data: *|null,
38
+ * render: ((desc: *, instance: PopoverFooter) => NdChild)|null,
39
+ * }, instance: PopoverFooter) => NdChild} template
40
+ */
20
41
  PopoverFooter.use = function(template) {
21
42
  PopoverFooter.defaultTemplate = template.popoverFooter;
22
43
  };
23
44
 
45
+ /**
46
+ * @param {NdChild} content
47
+ * @returns {this}
48
+ */
24
49
  PopoverFooter.prototype.content = function(content) {
25
50
  this.$description.content = content;
26
51
  return this;
27
52
  };
28
53
 
54
+ /**
55
+ * @param {*} data
56
+ * @returns {this}
57
+ */
29
58
  PopoverFooter.prototype.data = function(data) {
30
59
  this.$description.data = data;
31
60
  return this;
32
- };
33
-
34
- PopoverFooter.prototype.render = function(renderFn) {
35
- this.$description.render = renderFn;
36
- return this;
37
- };
61
+ };
@@ -1,5 +1,18 @@
1
- import BaseComponent from "../BaseComponent";
1
+ import BaseComponent from '../BaseComponent';
2
2
 
3
+ /**
4
+ * Optional header slot for a Popover, with an optional close button.
5
+ *
6
+ *
7
+ * @example
8
+ * const header = new PopoverHeader(Span('Filter options'))
9
+ * .showClose(true)
10
+ * .render((desc, instance) => H4(desc.content));
11
+ *
12
+ * @constructor
13
+ * @param {NdChild} [content]
14
+ * @param {GlobalAttributes} [config={}]
15
+ */
3
16
  export default function PopoverHeader(content, config = {}) {
4
17
  if(!(this instanceof PopoverHeader)) {
5
18
  return new PopoverHeader(content, config);
@@ -10,7 +23,7 @@ export default function PopoverHeader(content, config = {}) {
10
23
  showClose: false,
11
24
  data: null,
12
25
  render: null,
13
- ...config
26
+ ...config,
14
27
  };
15
28
  }
16
29
 
@@ -18,10 +31,23 @@ BaseComponent.extends(PopoverHeader);
18
31
 
19
32
  PopoverHeader.defaultTemplate = null;
20
33
 
34
+ /**
35
+ * Registers the render template for PopoverHeader.
36
+ * @param {(description: {
37
+ * content: NdChild|null,
38
+ * showClose: boolean,
39
+ * data: *|null,
40
+ * render: ((desc: *, instance: PopoverHeader) => NdChild)|null,
41
+ * }, instance: PopoverHeader) => NdChild} template
42
+ */
21
43
  PopoverHeader.use = function(template) {
22
44
  PopoverHeader.defaultTemplate = template.popoverHeader;
23
45
  };
24
46
 
47
+ /**
48
+ * @param {NdChild} content
49
+ * @returns {this}
50
+ */
25
51
  PopoverHeader.prototype.content = function(content) {
26
52
  this.$description.content = content;
27
53
  return this;
@@ -32,12 +58,11 @@ PopoverHeader.prototype.showClose = function(show = true) {
32
58
  return this;
33
59
  };
34
60
 
61
+ /**
62
+ * @param {*} data
63
+ * @returns {this}
64
+ */
35
65
  PopoverHeader.prototype.data = function(data) {
36
66
  this.$description.data = data;
37
67
  return this;
38
- };
39
-
40
- PopoverHeader.prototype.render = function(renderFn) {
41
- this.$description.render = renderFn;
42
- return this;
43
- };
68
+ };
@@ -1,10 +1,10 @@
1
- import Popover from "./Popover";
2
- import PopoverHeader from "./PopoverHeader";
3
- import PopoverFooter from "./PopoverFooter";
1
+ import Popover from './Popover';
2
+ import PopoverHeader from './PopoverHeader';
3
+ import PopoverFooter from './PopoverFooter';
4
4
 
5
5
 
6
6
  export {
7
7
  Popover,
8
8
  PopoverHeader,
9
- PopoverFooter
9
+ PopoverFooter,
10
10
  };
@@ -0,0 +1,83 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { ObservableItem } from '../../../../types/observable';
3
+ import type { BaseComponent } from '../../BaseComponent';
4
+ import type { PopoverHeaderInterface } from './PopoverHeader';
5
+ import type { PopoverFooterInterface } from './PopoverFooter';
6
+ import type { GlobalAttributes } from '../../../../types/globals';
7
+
8
+ export type PopoverDescription = {
9
+ trigger: HTMLElement | null;
10
+ interaction: 'click' | 'hover' | 'focus';
11
+ content: ValidChild;
12
+ header: ValidChild | PopoverHeaderInterface | null;
13
+ footer: ValidChild | PopoverFooterInterface | null;
14
+ isOpen: ObservableItem<boolean>;
15
+ closeOnEscape: boolean;
16
+ closeOnClickOutside: boolean;
17
+ focusTrap: boolean;
18
+ returnFocus: boolean;
19
+ position: string;
20
+ offset: number;
21
+ shift: Record<string, number>;
22
+ arrow: boolean;
23
+ data: unknown | null;
24
+ renderContent: ((desc: PopoverDescription, instance: PopoverInterface) => ValidChild) | null;
25
+ renderHeader: ((desc: PopoverDescription, instance: PopoverInterface) => ValidChild) | null;
26
+ renderFooter: ((desc: PopoverDescription, instance: PopoverInterface) => ValidChild) | null;
27
+ render: ((desc: PopoverDescription, instance: PopoverInterface) => ValidChild) | null;
28
+ variant: string | null;
29
+ matchTriggerWidth: boolean | null;
30
+ updatePositionOn: ObservableItem<unknown> | null;
31
+ props: GlobalAttributes;
32
+ };
33
+
34
+ export interface PopoverInterface extends BaseComponent {
35
+ trigger(trigger: HTMLElement): this;
36
+ interaction(interaction: 'click' | 'hover' | 'focus'): this;
37
+ onClicked(): this;
38
+ onHovered(): this;
39
+ onFocused(): this;
40
+ content(content: ValidChild): this;
41
+ header(header: ValidChild | PopoverHeaderInterface): this;
42
+ footer(footer: ValidChild | PopoverFooterInterface): this;
43
+ closeOnEscape(closeOnEscape?: boolean): this;
44
+ closeOnClickOutside(closeOnClickOutside?: boolean): this;
45
+ focusTrap(trap?: boolean): this;
46
+ returnFocus(returnFocus?: boolean): this;
47
+ position(position: string): this;
48
+ offset(offset: number): this;
49
+ arrow(arrow?: boolean): this;
50
+ shift(shift: Record<string, number>): this;
51
+ bindOpen(observable: ObservableItem<boolean>): this;
52
+ data(data: unknown): this;
53
+ open(): this;
54
+ close(): this;
55
+ toggle(): this;
56
+ onOpen(handler: () => void): this;
57
+ onClose(handler: () => void): this;
58
+ renderTrigger(renderFn: (desc: PopoverDescription, instance: PopoverInterface) => ValidChild): this;
59
+ renderContent(renderFn: (desc: PopoverDescription, instance: PopoverInterface) => ValidChild): this;
60
+ renderHeader(renderFn: (desc: PopoverDescription, instance: PopoverInterface) => ValidChild): this;
61
+ renderFooter(renderFn: (desc: PopoverDescription, instance: PopoverInterface) => ValidChild): this;
62
+ variant(variant: string): this;
63
+ primary(): this;
64
+ success(): this;
65
+ warning(): this;
66
+ danger(): this;
67
+ info(): this;
68
+ matchTriggerWidth(): this;
69
+ updatePositionOn(obs: ObservableItem<unknown> | unknown): this;
70
+ render(template: (description: PopoverDescription, instance: PopoverInterface) => ValidChild): this;
71
+ }
72
+
73
+
74
+ export declare function Popover(content: ValidChild, props?: Record<string, unknown>): PopoverInterface;
75
+ export declare namespace Popover {
76
+
77
+
78
+ function use(template: (description: PopoverDescription, instance: PopoverInterface) => ValidChild): void;
79
+ function preset(name: string, callback: (instance: PopoverInterface) => PopoverInterface): void;
80
+ function presets(presets: Record<string, (instance: PopoverInterface) => PopoverInterface>): void;
81
+
82
+
83
+ }
@@ -0,0 +1,24 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { BaseComponent } from '../../BaseComponent';
3
+
4
+ export type PopoverFooterDescription = {
5
+ content: ValidChild | null;
6
+ data: unknown | null;
7
+ render: ((desc: PopoverFooterDescription, instance: PopoverFooterInterface) => ValidChild) | null;
8
+ };
9
+
10
+ export interface PopoverFooterInterface extends BaseComponent {
11
+ content(content: ValidChild): this;
12
+ data(data: unknown): this;
13
+ render(renderFn: (desc: PopoverFooterDescription, instance: PopoverFooterInterface) => ValidChild): this;
14
+ }
15
+
16
+
17
+ export declare function PopoverFooter(content?: ValidChild, config?: Record<string, unknown>): PopoverFooterInterface;
18
+ export declare namespace PopoverFooter {
19
+
20
+
21
+ function use(template: (description: PopoverFooterDescription, instance: PopoverFooterInterface) => ValidChild): void;
22
+
23
+
24
+ }
@@ -0,0 +1,26 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { BaseComponent } from '../../BaseComponent';
3
+
4
+ export type PopoverHeaderDescription = {
5
+ content: ValidChild | null;
6
+ showClose: boolean;
7
+ data: unknown | null;
8
+ render: ((desc: PopoverHeaderDescription, instance: PopoverHeaderInterface) => ValidChild) | null;
9
+ };
10
+
11
+ export interface PopoverHeaderInterface extends BaseComponent {
12
+ content(content: ValidChild): this;
13
+ showClose(show?: boolean): this;
14
+ data(data: unknown): this;
15
+ render(renderFn: (desc: PopoverHeaderDescription, instance: PopoverHeaderInterface) => ValidChild): this;
16
+ }
17
+
18
+
19
+ export declare function PopoverHeader(content?: ValidChild, config?: Record<string, unknown>): PopoverHeaderInterface;
20
+ export declare namespace PopoverHeader {
21
+
22
+
23
+ function use(template: (description: PopoverHeaderDescription, instance: PopoverHeaderInterface) => ValidChild): void;
24
+
25
+
26
+ }