native-document 1.0.165 → 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 +3 -0
  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,15 +1,28 @@
1
1
  import { $ } from '../../core/data/Observable';
2
- import BaseComponent from "../BaseComponent";
3
- import HasEventEmitter from "../../core/utils/HasEventEmitter";
4
-
5
- /**
6
- * Represents an individual item within an Accordion component
7
- * @param {{ id?: string|number, title?: string, icon?: string, collapsible?: boolean, content?: ValidChildren, renderHeader?: Function, renderContent?: Function, render?: Function, expanded?: Observable<boolean>, disabled?: boolean }} config - Configuration object
8
- * @class
2
+ import BaseComponent from '../BaseComponent';
3
+ import HasEventEmitter from '../../core/utils/HasEventEmitter';
4
+
5
+ /**
6
+ * A single collapsible item inside an Accordion. Manages its own expanded/collapsed state.
7
+ *
8
+ *
9
+ * @example
10
+ * const item = new AccordionItem()
11
+ * .title(Span('My title'))
12
+ * .icon(SomeIcon())
13
+ * .content(Div('Body content'))
14
+ * .collapsible(true)
15
+ * .disabled(false);
16
+ *
17
+ * item.onExpand(() => console.log('expanded'))
18
+ * .onCollapse(() => console.log('collapsed'));
19
+ *
20
+ * @constructor
21
+ * @param {GlobalAttributes} [props]
9
22
  */
10
23
  export default function AccordionItem(props = {}) {
11
24
  if(!(this instanceof AccordionItem)){
12
- return new AccordionItem()
25
+ return new AccordionItem();
13
26
  }
14
27
 
15
28
  BaseComponent.call(this, props);
@@ -26,7 +39,7 @@ export default function AccordionItem(props = {}) {
26
39
  render: null,
27
40
  expanded: $(false),
28
41
  disabled: $(false),
29
- props
42
+ props,
30
43
  };
31
44
  }
32
45
 
@@ -34,6 +47,24 @@ BaseComponent.extends(AccordionItem);
34
47
  BaseComponent.use(AccordionItem, HasEventEmitter);
35
48
 
36
49
  AccordionItem.defaultTemplate = null;
50
+
51
+ /**
52
+ * Registers the render template for AccordionItem.
53
+ * @param {(description: {
54
+ * id: string|number|null,
55
+ * title: NdChild|null,
56
+ * icon: NdChild|null,
57
+ * collapsible: boolean,
58
+ * content: NdChild|null,
59
+ * renderHeader: ((desc: *, instance: AccordionItem) => NdChild)|null,
60
+ * renderIndicator: ((desc: *, instance: AccordionItem) => NdChild)|null,
61
+ * renderContent: ((desc: *, instance: AccordionItem) => NdChild)|null,
62
+ * render: ((desc: *, instance: AccordionItem) => NdChild)|null,
63
+ * expanded: Observable<boolean>,
64
+ * disabled: Observable<boolean>,
65
+ * props: GlobalAttributes,
66
+ * }, instance: AccordionItem) => NdChild} template
67
+ */
37
68
  AccordionItem.use = function(template) {
38
69
  AccordionItem.defaultTemplate = template;
39
70
  };
@@ -45,7 +76,7 @@ AccordionItem.use = function(template) {
45
76
  Object.defineProperty(AccordionItem.prototype, 'id', {
46
77
  get() {
47
78
  return this.$description.id;
48
- }
79
+ },
49
80
  });
50
81
 
51
82
  /**
@@ -60,7 +91,7 @@ AccordionItem.prototype.identifyBy = function(id) {
60
91
 
61
92
  /**
62
93
  * Sets the content of the accordion item
63
- * @param {ValidChildren} content - The content to display
94
+ * @param {NdChild} content - The content to display
64
95
  * @returns {AccordionItem}
65
96
  */
66
97
  AccordionItem.prototype.content = function(content) {
@@ -70,7 +101,7 @@ AccordionItem.prototype.content = function(content) {
70
101
 
71
102
  /**
72
103
  * Sets the title of the accordion item
73
- * @param {ValidChildren} title
104
+ * @param {NdChild} title
74
105
  * @returns {AccordionItem}
75
106
  */
76
107
  AccordionItem.prototype.title = function(title) {
@@ -80,7 +111,7 @@ AccordionItem.prototype.title = function(title) {
80
111
 
81
112
  /**
82
113
  * Sets the icon for the accordion item
83
- * @param {ValidChildren} icon - The icon identifier or element
114
+ * @param {NdChild} icon - The icon identifier or element
84
115
  * @returns {AccordionItem}
85
116
  */
86
117
  AccordionItem.prototype.icon = function(icon) {
@@ -96,7 +127,7 @@ AccordionItem.prototype.icon = function(icon) {
96
127
  AccordionItem.prototype.showIndicator = function(show = true) {
97
128
  this.$description.showIndicator = show;
98
129
  return this;
99
- }
130
+ };
100
131
 
101
132
  /**
102
133
  * Sets whether the item can be collapsed
@@ -3,5 +3,5 @@ import AccordionItem from './AccordionItem';
3
3
 
4
4
  export {
5
5
  Accordion,
6
- AccordionItem
7
- }
6
+ AccordionItem,
7
+ };
@@ -0,0 +1,47 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { ObservableItem } from '../../../../types/observable';
3
+ import type { BaseComponent } from '../../BaseComponent';
4
+ import type { AccordionItemInterface, AccordionItemConstructor } from './AccordionItem';
5
+ import type { GlobalAttributes } from '../../../../types/globals';
6
+
7
+ export type AccordionDescription = {
8
+ items: AccordionItemInterface[];
9
+ multiple: boolean | null;
10
+ variant: string | null;
11
+ renderContent: ((desc: AccordionDescription, instance: AccordionInterface) => ValidChild) | null;
12
+ renderIndicator: ((desc: AccordionDescription, instance: AccordionInterface) => ValidChild) | null;
13
+ props: GlobalAttributes;
14
+ };
15
+
16
+ export interface AccordionInterface extends BaseComponent {
17
+ item(title: ValidChild | AccordionItemInterface, content?: ValidChild, options?: Record<string, unknown> | ((item: AccordionItemInterface) => void)): this;
18
+ items(items: AccordionItemInterface[]): this;
19
+ addItem(title: ValidChild | AccordionItemInterface, content?: ValidChild, options?: unknown): this;
20
+ removeItemById(id: string | number): this;
21
+ remove(filter: (item: AccordionItemInterface) => boolean): this;
22
+ multiple(enabled?: boolean): this;
23
+ variant(name: string): this;
24
+ bordered(): this;
25
+ separated(): this;
26
+ flush(): this;
27
+ getByKey(key: string): AccordionItemInterface | undefined;
28
+ expanded(key: string, state?: boolean): this;
29
+ expandAll(): this;
30
+ collapseAll(): this;
31
+ isExpanded(key: string): boolean | undefined;
32
+ onExpand(handler: (key: string, state: boolean) => void): this;
33
+ onCollapse(handler: (key: string, state: boolean) => void): this;
34
+ renderContent(renderFn: (desc: AccordionDescription, instance: AccordionInterface) => ValidChild): this;
35
+ renderIndicator(renderFn: (desc: AccordionDescription, instance: AccordionInterface) => ValidChild): this;
36
+ render(template: (description: AccordionDescription, instance: AccordionInterface) => ValidChild): this;
37
+ }
38
+
39
+
40
+ export declare function Accordion(props?: Record<string, unknown>): AccordionInterface;
41
+ export declare namespace Accordion {
42
+
43
+
44
+ function use(template: (description: AccordionDescription, instance: AccordionInterface) => ValidChild): void;
45
+
46
+
47
+ }
@@ -0,0 +1,48 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { ObservableItem } from '../../../../types/observable';
3
+ import type { BaseComponent } from '../../BaseComponent';
4
+ import type { GlobalAttributes } from '../../../../types/globals';
5
+
6
+ export type AccordionItemDescription = {
7
+ id: string | number | null;
8
+ title: ValidChild | null;
9
+ icon: ValidChild | null;
10
+ collapsible: boolean;
11
+ content: ValidChild | null;
12
+ renderHeader: ((desc: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild) | null;
13
+ renderIndicator: ((desc: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild) | null;
14
+ renderContent: ((desc: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild) | null;
15
+ render: ((desc: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild) | null;
16
+ expanded: ObservableItem<boolean>;
17
+ disabled: ObservableItem<boolean>;
18
+ props: GlobalAttributes;
19
+ };
20
+
21
+ export interface AccordionItemInterface extends BaseComponent {
22
+ identifyBy(id: string | number): this;
23
+ content(content: ValidChild): this;
24
+ title(title: ValidChild): this;
25
+ icon(icon: ValidChild): this;
26
+ showIndicator(show?: boolean): this;
27
+ collapsible(collapsible?: boolean): this;
28
+ expanded(expanded?: boolean): this;
29
+ toggle(): this;
30
+ disabled(disabled?: boolean): this;
31
+ isExpanded(): boolean;
32
+ onExpand(handler: () => void): this;
33
+ onCollapse(handler: () => void): this;
34
+ renderHeader(renderFn: (desc: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild): this;
35
+ renderContent(renderFn: (desc: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild): this;
36
+ renderIndicator(renderFn: (desc: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild): this;
37
+ render(template: (description: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild): this;
38
+ }
39
+
40
+
41
+ export declare function AccordionItem(props?: Record<string, unknown>): AccordionItemInterface;
42
+ export declare namespace AccordionItem {
43
+
44
+
45
+ function use(template: (description: AccordionItemDescription, instance: AccordionItemInterface) => ValidChild): void;
46
+
47
+
48
+ }
@@ -1,12 +1,28 @@
1
- import BaseComponent from "../BaseComponent";
2
- import HasEventEmitter from "../../core/utils/HasEventEmitter";
3
- import DebugManager from "../../core/utils/debug-manager";
1
+ import BaseComponent from '../BaseComponent';
2
+ import HasEventEmitter from '../../core/utils/HasEventEmitter';
3
+ import DebugManager from '../../core/utils/debug-manager';
4
4
 
5
5
  /**
6
- * Component for displaying alert messages with various styles and variants
7
- * @param {ValidChildren} content - The alert message content
8
- * @param {{ title?: ValidChildren, content?: ValidChildren, outline?: boolean, style?: string, variant?: string, closable?: boolean, autoDismiss?: number, icon?: ValidChildren, showIcon?: boolean }} config - Configuration object
9
- * @class
6
+ * Contextual feedback alert. Supports variants (info, success, warning, error), icons, closable/auto-dismiss, and action buttons.
7
+ *
8
+ *
9
+ * @example
10
+ * const alert = new Alert(Span('Operation completed successfully.'))
11
+ * .variant('success')
12
+ * .showIcon(true)
13
+ * .closable(true)
14
+ * .autoDismiss(5000)
15
+ * .action('Undo', () => console.log('undo'))
16
+ * .onClose(() => console.log('closed'));
17
+ *
18
+ * Alert.use((description, instance) => {
19
+ * // description.content, description.variant, description.actions...
20
+ * return Div({ class: \`alert alert--\${description.variant}\` }, description.content);
21
+ * });
22
+ *
23
+ * @constructor
24
+ * @param {NdChild} content
25
+ * @param {GlobalAttributes} [props={}]
10
26
  */
11
27
  export default function Alert(content, props = {}) {
12
28
  if(!(this instanceof Alert)) {
@@ -33,8 +49,20 @@ export default function Alert(content, props = {}) {
33
49
  Alert.defaultTemplate = null;
34
50
 
35
51
  /**
36
- * Sets the default template for all Alert instances
37
- * @param {ValidChildren} template - Template object containing alert factory function
52
+ * Registers the render template for Alert.
53
+ * @param {(description: {
54
+ * title: NdChild|null,
55
+ * content: NdChild,
56
+ * outline: boolean|null,
57
+ * appearance: 'filled'|'bordered'|null,
58
+ * variant: 'info'|'success'|'warning'|'error'|'danger'|string,
59
+ * closable: boolean,
60
+ * autoDismiss: number|null,
61
+ * icon: NdChild|null,
62
+ * showIcon: boolean,
63
+ * actions: Array<{ label: NdChild, handler: Function|null, variant: string|null }>,
64
+ * props: GlobalAttributes,
65
+ * }, instance: Alert) => NdChild} template
38
66
  */
39
67
  Alert.use = function(template) {
40
68
  Alert.defaultTemplate = template;
@@ -43,6 +71,10 @@ Alert.use = function(template) {
43
71
  BaseComponent.extends(Alert);
44
72
  BaseComponent.use(Alert, HasEventEmitter);
45
73
 
74
+ /**
75
+ * @param {string} name
76
+ * @param {(a: Alert) => Alert} callback
77
+ */
46
78
  Alert.preset = function(name, callback) {
47
79
  if (Alert.prototype[name] || Alert[name]) {
48
80
  DebugManager.warn(`Warning: the ${name} method already exist in Alert.`);
@@ -51,6 +83,9 @@ Alert.preset = function(name, callback) {
51
83
  Alert[name] = (content, props) => callback(new Alert(content, props));
52
84
  };
53
85
 
86
+ /**
87
+ * @param {Record<string, (a: Alert) => Alert>} presets
88
+ */
54
89
  Alert.presets = function(presets) {
55
90
  for (const name in presets) {
56
91
  Alert.preset(name, presets[name]);
@@ -60,7 +95,7 @@ Alert.presets = function(presets) {
60
95
  /**
61
96
  * Sets the variant style for the alert
62
97
  * @param {string} variant - The variant name (info, success, warning, error, danger)
63
- * @returns {Alert}
98
+ * @returns {this}
64
99
  */
65
100
  Alert.prototype.variant = function(variant) {
66
101
  this.$description.variant = variant;
@@ -69,7 +104,7 @@ Alert.prototype.variant = function(variant) {
69
104
 
70
105
  /**
71
106
  * Sets the alert variant to 'info'
72
- * @returns {Alert}
107
+ * @returns {this}
73
108
  */
74
109
  Alert.prototype.info = function() {
75
110
  return this.variant('info');
@@ -77,7 +112,7 @@ Alert.prototype.info = function() {
77
112
 
78
113
  /**
79
114
  * Sets the alert variant to 'success'
80
- * @returns {Alert}
115
+ * @returns {this}
81
116
  */
82
117
  Alert.prototype.success = function() {
83
118
  return this.variant('success');
@@ -85,7 +120,7 @@ Alert.prototype.success = function() {
85
120
 
86
121
  /**
87
122
  * Sets the alert variant to 'warning'
88
- * @returns {Alert}
123
+ * @returns {this}
89
124
  */
90
125
  Alert.prototype.warning = function() {
91
126
  return this.variant('warning');
@@ -93,7 +128,7 @@ Alert.prototype.warning = function() {
93
128
 
94
129
  /**
95
130
  * Sets the alert variant to 'error'
96
- * @returns {Alert}
131
+ * @returns {this}
97
132
  */
98
133
  Alert.prototype.error = function() {
99
134
  return this.variant('error');
@@ -101,7 +136,7 @@ Alert.prototype.error = function() {
101
136
 
102
137
  /**
103
138
  * Sets the alert variant to 'danger'
104
- * @returns {Alert}
139
+ * @returns {this}
105
140
  */
106
141
  Alert.prototype.danger = function() {
107
142
  return this.variant('danger');
@@ -110,7 +145,7 @@ Alert.prototype.danger = function() {
110
145
  /**
111
146
  * Sets the appearance type for the alert
112
147
  * @param {string} appearance - The style name (filled, bordered, outline)
113
- * @returns {Alert}
148
+ * @returns {this}
114
149
  */
115
150
  Alert.prototype.appearance = function(appearance) {
116
151
  this.$description.appearance = appearance;
@@ -119,7 +154,7 @@ Alert.prototype.appearance = function(appearance) {
119
154
 
120
155
  /**
121
156
  * Sets the alert appearance to 'filled'
122
- * @returns {Alert}
157
+ * @returns {this}
123
158
  */
124
159
  Alert.prototype.filled = function() {
125
160
  return this.appearance('filled');
@@ -127,7 +162,7 @@ Alert.prototype.filled = function() {
127
162
 
128
163
  /**
129
164
  * Sets the alert appearance to 'bordered'
130
- * @returns {Alert}
165
+ * @returns {this}
131
166
  */
132
167
  Alert.prototype.bordered = function() {
133
168
  return this.appearance('bordered');
@@ -136,7 +171,7 @@ Alert.prototype.bordered = function() {
136
171
  /**
137
172
  * Sets the alert appearance to 'outline'
138
173
  * @param {boolean} [outline=true] - Whether to use outline style
139
- * @returns {Alert}
174
+ * @returns {this}
140
175
  */
141
176
  Alert.prototype.outline = function(outline = true) {
142
177
  return this.appearance('outline');
@@ -145,7 +180,7 @@ Alert.prototype.outline = function(outline = true) {
145
180
  /**
146
181
  * Sets the title of the alert
147
182
  * @param {ValidChildren} title - The title content
148
- * @returns {Alert}
183
+ * @returns {this}
149
184
  */
150
185
  Alert.prototype.title = function(title) {
151
186
  this.$description.title = title;
@@ -155,7 +190,7 @@ Alert.prototype.title = function(title) {
155
190
  /**
156
191
  * Sets the content of the alert
157
192
  * @param {ValidChildren} content - The content to display
158
- * @returns {Alert}
193
+ * @returns {this}
159
194
  */
160
195
  Alert.prototype.content = function(content) {
161
196
  this.$description.content = content;
@@ -165,7 +200,7 @@ Alert.prototype.content = function(content) {
165
200
  /**
166
201
  * Sets the title render function
167
202
  * @param {Function} callback - Function to render the title
168
- * @returns {Alert}
203
+ * @returns {this}
169
204
  */
170
205
  Alert.prototype.renderTitle = function(callback) {
171
206
  this.$description.renderTitle = callback;
@@ -175,7 +210,7 @@ Alert.prototype.renderTitle = function(callback) {
175
210
  /**
176
211
  * Sets the content render function
177
212
  * @param {Function} callback - Function to render the content
178
- * @returns {Alert}
213
+ * @returns {this}
179
214
  */
180
215
  Alert.prototype.renderContent = function(callback) {
181
216
  this.$description.renderContent = callback;
@@ -184,7 +219,7 @@ Alert.prototype.renderContent = function(callback) {
184
219
 
185
220
  /**
186
221
  * Clears all actions from the alert
187
- * @returns {Alert}
222
+ * @returns {this}
188
223
  */
189
224
  Alert.prototype.renderFooter = function(callback) {
190
225
  this.$description.renderFooter = callback;
@@ -192,12 +227,9 @@ Alert.prototype.renderFooter = function(callback) {
192
227
  };
193
228
 
194
229
  /**
195
- * Adds an action button to the alert
196
- * @param {string} label - The button label
197
- * @param {Function} handler - The click handler
198
- * @returns {Alert}
230
+ * @returns {this}
199
231
  */
200
- Alert.prototype.clearActions = function(label, handler) {
232
+ Alert.prototype.clearActions = function() {
201
233
  this.$description.actions = [];
202
234
  return this;
203
235
  };
@@ -207,7 +239,7 @@ Alert.prototype.clearActions = function(label, handler) {
207
239
  * @param {string} label - The button label
208
240
  * @param {Function} handler - The click handler
209
241
  * @param {?string} variant - The button variant style
210
- * @returns {Alert}
242
+ * @returns {this}
211
243
  */
212
244
  Alert.prototype.action = function(label, handler, variant = null) {
213
245
  handler = handler || ((_, instance) => instance.hide());
@@ -218,7 +250,7 @@ Alert.prototype.action = function(label, handler, variant = null) {
218
250
  /**
219
251
  * Sets the layout function for the alert
220
252
  * @param {Function} layoutFn - Function to layout the alert
221
- * @returns {Alert}
253
+ * @returns {this}
222
254
  */
223
255
  Alert.prototype.layout = function(layoutFn) {
224
256
  this.$description.layout = layoutFn;
@@ -228,7 +260,7 @@ Alert.prototype.layout = function(layoutFn) {
228
260
  /**
229
261
  * Sets the icon for the alert
230
262
  * @param {ValidChildren} icon - The icon to display
231
- * @returns {Alert}
263
+ * @returns {this}
232
264
  */
233
265
  Alert.prototype.icon = function(icon) {
234
266
  this.$description.icon = icon;
@@ -238,7 +270,7 @@ Alert.prototype.icon = function(icon) {
238
270
  /**
239
271
  * Shows or hides the icon
240
272
  * @param {boolean} [show=true] - Whether to show the icon
241
- * @returns {Alert}
273
+ * @returns {this}
242
274
  */
243
275
  Alert.prototype.showIcon = function(show = true) {
244
276
  this.$description.showIcon = show;
@@ -247,7 +279,7 @@ Alert.prototype.showIcon = function(show = true) {
247
279
  /**
248
280
  * Sets whether the alert can be closed
249
281
  * @param {boolean} [closable=true] - Whether the alert is closable
250
- * @returns {Alert}
282
+ * @returns {this}
251
283
  */
252
284
  Alert.prototype.closable = function(closable = true) {
253
285
  this.$description.closable = !!closable;
@@ -260,7 +292,7 @@ Alert.prototype.closable = function(closable = true) {
260
292
  /**
261
293
  * Sets whether the alert is dismissible (alias for closable)
262
294
  * @param {boolean} [dismissible=true] - Whether the alert is dismissible
263
- * @returns {Alert}
295
+ * @returns {this}
264
296
  */
265
297
  Alert.prototype.dismissible = function(dismissible = true) {
266
298
  return this.closable(dismissible);
@@ -269,7 +301,7 @@ Alert.prototype.dismissible = function(dismissible = true) {
269
301
  /**
270
302
  * Sets auto-dismiss delay for the alert
271
303
  * @param {number} delay - Delay in milliseconds before auto-dismissing
272
- * @returns {Alert}
304
+ * @returns {this}
273
305
  */
274
306
  Alert.prototype.autoDismiss = function(delay) {
275
307
  this.$description.autoDismiss = delay;
@@ -300,7 +332,7 @@ Alert.prototype.hide = Alert.prototype.close;
300
332
  /**
301
333
  * Registers a handler for the close event
302
334
  * @param {(element: Alert) => void} handler - The event handler
303
- * @returns {Alert}
335
+ * @returns {this}
304
336
  */
305
337
  Alert.prototype.onClose = function(handler) {
306
338
  this.on('close', handler);
@@ -310,7 +342,7 @@ Alert.prototype.onClose = function(handler) {
310
342
  /**
311
343
  * Registers a handler for the show event
312
344
  * @param {(element: Alert) => void} handler - The event handler
313
- * @returns {Alert}
345
+ * @returns {this}
314
346
  */
315
347
  Alert.prototype.onShow = function(handler) {
316
348
  this.on('show', handler);
@@ -2,5 +2,5 @@ import Alert from './Alert';
2
2
 
3
3
 
4
4
  export {
5
- Alert
6
- }
5
+ Alert,
6
+ };
@@ -0,0 +1,62 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { ObservableItem } from '../../../../types/observable';
3
+ import type { BaseComponent } from '../../BaseComponent';
4
+ import type { GlobalAttributes } from '../../../../types/globals';
5
+
6
+ export type AlertDescription = {
7
+ title: ValidChild | null;
8
+ content: ValidChild;
9
+ outline: boolean | null;
10
+ appearance: 'filled' | 'bordered' | null;
11
+ variant: 'info' | 'success' | 'warning' | 'error' | 'danger' | string;
12
+ closable: boolean;
13
+ autoDismiss: number | null;
14
+ icon: ValidChild | null;
15
+ showIcon: boolean;
16
+ actions: Array<{ label: ValidChild; handler: (() => void) | null; variant: string | null }>;
17
+ props: GlobalAttributes;
18
+ };
19
+
20
+ export interface AlertInterface extends BaseComponent {
21
+ variant(variant: 'info' | 'success' | 'warning' | 'error' | 'danger' | string): this;
22
+ info(): this;
23
+ success(): this;
24
+ warning(): this;
25
+ error(): this;
26
+ danger(): this;
27
+ appearance(appearance: 'filled' | 'bordered'): this;
28
+ filled(): this;
29
+ bordered(): this;
30
+ outline(outline?: boolean): this;
31
+ title(title: ValidChild): this;
32
+ content(content: ValidChild): this;
33
+ renderTitle(callback: (desc: AlertDescription, instance: AlertInterface) => ValidChild): this;
34
+ renderContent(callback: (desc: AlertDescription, instance: AlertInterface) => ValidChild): this;
35
+ renderFooter(callback: (desc: AlertDescription, instance: AlertInterface) => ValidChild): this;
36
+ clearActions(): this;
37
+ action(label: ValidChild, handler?: () => void, variant?: string | null): this;
38
+ layout(layoutFn: (desc: AlertDescription, instance: AlertInterface) => ValidChild): this;
39
+ icon(icon: ValidChild): this;
40
+ showIcon(show?: boolean): this;
41
+ closable(closable?: boolean): this;
42
+ dismissible(dismissible?: boolean): this;
43
+ autoDismiss(delay: number): this;
44
+ close(): this;
45
+ show(): this;
46
+ hide(): this;
47
+ onClose(handler: () => void): this;
48
+ onShow(handler: () => void): this;
49
+ render(template: (description: AlertDescription, instance: AlertInterface) => ValidChild): this;
50
+ }
51
+
52
+
53
+ export declare function Alert(content: ValidChild, props?: Record<string, unknown>): AlertInterface;
54
+ export declare namespace Alert {
55
+
56
+
57
+ function use(template: (description: AlertDescription, instance: AlertInterface) => ValidChild): void;
58
+ function preset(name: string, callback: (instance: AlertInterface) => AlertInterface): void;
59
+ function presets(presets: Record<string, (instance: AlertInterface) => AlertInterface>): void;
60
+
61
+
62
+ }