native-document 1.0.165 → 1.0.168

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 (488) hide show
  1. package/.vitepress/config.js +166 -0
  2. package/CHANGELOG.md +153 -0
  3. package/components.d.ts +2 -0
  4. package/components.js +2 -1
  5. package/devtools/widget.js +1 -1
  6. package/dist/native-document.components.min.js +11589 -2983
  7. package/dist/native-document.dev.js +2280 -396
  8. package/dist/native-document.dev.js.map +1 -1
  9. package/dist/native-document.min.js +1 -1
  10. package/docs/advanced-components.md +213 -608
  11. package/docs/anchor.md +173 -312
  12. package/docs/cache.md +95 -803
  13. package/docs/cli.md +179 -0
  14. package/docs/components/accordion.md +172 -0
  15. package/docs/components/alert.md +99 -0
  16. package/docs/components/avatar.md +160 -0
  17. package/docs/components/badge.md +102 -0
  18. package/docs/components/breadcrumb.md +89 -0
  19. package/docs/components/button.md +183 -0
  20. package/docs/components/card.md +69 -0
  21. package/docs/components/context-menu.md +118 -0
  22. package/docs/components/data-table.md +345 -0
  23. package/docs/components/dropdown.md +214 -0
  24. package/docs/components/form/autocomplete-field.md +81 -0
  25. package/docs/components/form/checkbox-field.md +41 -0
  26. package/docs/components/form/checkbox-group-field.md +54 -0
  27. package/docs/components/form/color-field.md +64 -0
  28. package/docs/components/form/date-field.md +92 -0
  29. package/docs/components/form/field-collection.md +63 -0
  30. package/docs/components/form/file-field.md +203 -0
  31. package/docs/components/form/form-control.md +87 -0
  32. package/docs/components/form/image-field.md +90 -0
  33. package/docs/components/form/index.md +115 -0
  34. package/docs/components/form/number-field.md +65 -0
  35. package/docs/components/form/radio-field.md +51 -0
  36. package/docs/components/form/select-field.md +123 -0
  37. package/docs/components/form/slider.md +136 -0
  38. package/docs/components/form/string-field.md +134 -0
  39. package/docs/components/form/textarea-field.md +65 -0
  40. package/docs/components/form-fields.md +372 -0
  41. package/docs/components/getting-started.md +264 -0
  42. package/docs/components/index.md +337 -0
  43. package/docs/components/layout.md +279 -0
  44. package/docs/components/list.md +73 -0
  45. package/docs/components/menu.md +215 -0
  46. package/docs/components/modal.md +156 -0
  47. package/docs/components/pagination.md +95 -0
  48. package/docs/components/popover.md +131 -0
  49. package/docs/components/progress.md +111 -0
  50. package/docs/components/shortcut-manager.md +221 -0
  51. package/docs/components/simple-table.md +107 -0
  52. package/docs/components/skeleton.md +155 -0
  53. package/docs/components/spinner.md +100 -0
  54. package/docs/components/splitter.md +133 -0
  55. package/docs/components/stepper.md +163 -0
  56. package/docs/components/switch.md +113 -0
  57. package/docs/components/tabs.md +153 -0
  58. package/docs/components/toast.md +119 -0
  59. package/docs/components/tooltip.md +151 -0
  60. package/docs/components/traits.md +261 -0
  61. package/docs/conditional-rendering.md +170 -588
  62. package/docs/contributing.md +300 -25
  63. package/docs/core-concepts.md +205 -374
  64. package/docs/elements.md +251 -367
  65. package/docs/extending-native-document-element.md +192 -207
  66. package/docs/filters.md +153 -1122
  67. package/docs/getting-started.md +193 -267
  68. package/docs/i18n.md +241 -0
  69. package/docs/index.md +76 -0
  70. package/docs/lifecycle-events.md +143 -75
  71. package/docs/list-rendering.md +227 -852
  72. package/docs/memory-management.md +134 -47
  73. package/docs/native-document-element.md +337 -186
  74. package/docs/native-fetch.md +99 -630
  75. package/docs/observable-resource.md +364 -0
  76. package/docs/observables.md +592 -526
  77. package/docs/routing.md +244 -653
  78. package/docs/state-management.md +134 -241
  79. package/docs/svg-elements.md +231 -0
  80. package/docs/theming.md +409 -0
  81. package/docs/validation.md +95 -97
  82. package/docs/vitepress-conventions.md +219 -0
  83. package/eslint.config.js +28 -33
  84. package/i18n.js +1 -1
  85. package/i18n.ts +2 -0
  86. package/index.js +3 -0
  87. package/package.json +36 -14
  88. package/readme.md +269 -89
  89. package/src/components/$traits/has-draggable/HasDraggable.d.ts +4 -0
  90. package/src/components/$traits/has-draggable/HasDraggable.js +13 -0
  91. package/src/components/$traits/has-items/HasItems.d.ts +9 -0
  92. package/src/components/$traits/has-items/HasItems.js +6 -6
  93. package/src/components/$traits/has-position/HasFullPosition.d.ts +14 -0
  94. package/src/components/$traits/has-position/HasFullPosition.js +44 -0
  95. package/src/components/$traits/has-position/HasPosition.d.ts +7 -0
  96. package/src/components/$traits/has-position/HasPosition.js +23 -1
  97. package/src/components/$traits/has-resizable/HasResizable.d.ts +13 -0
  98. package/src/components/$traits/has-resizable/HasResizable.js +9 -0
  99. package/src/components/$traits/has-validation/HasValidation.d.ts +17 -0
  100. package/src/components/$traits/has-validation/HasValidation.js +54 -7
  101. package/src/components/BaseComponent.d.ts +32 -0
  102. package/src/components/BaseComponent.js +65 -9
  103. package/src/components/accordion/Accordion.js +39 -14
  104. package/src/components/accordion/AccordionItem.js +45 -14
  105. package/src/components/accordion/index.js +2 -2
  106. package/src/components/accordion/types/Accordion.d.ts +47 -0
  107. package/src/components/accordion/types/AccordionItem.d.ts +48 -0
  108. package/src/components/alert/Alert.js +70 -38
  109. package/src/components/alert/index.js +2 -2
  110. package/src/components/alert/types/Alert.d.ts +62 -0
  111. package/src/components/avatar/Avatar.js +49 -12
  112. package/src/components/avatar/AvatarGroup.js +50 -2
  113. package/src/components/avatar/index.js +2 -2
  114. package/src/components/avatar/types/Avatar.d.ts +74 -0
  115. package/src/components/avatar/types/AvatarGroup.d.ts +32 -0
  116. package/src/components/badge/Badge.js +125 -5
  117. package/src/components/badge/index.js +2 -2
  118. package/src/components/badge/types/Badge.d.ts +51 -0
  119. package/src/components/breadcrumb/BreadCrumb.js +61 -5
  120. package/src/components/breadcrumb/index.js +2 -2
  121. package/src/components/breadcrumb/types/BreadCrumb.d.ts +42 -0
  122. package/src/components/button/Button.js +164 -9
  123. package/src/components/button/index.js +1 -1
  124. package/src/components/button/types/Button.d.ts +62 -0
  125. package/src/components/card/Card.js +204 -32
  126. package/src/components/card/index.js +4 -4
  127. package/src/components/card/types/Card.d.ts +42 -0
  128. package/src/components/context-menu/ContextMenu.js +49 -5
  129. package/src/components/context-menu/ContextMenuGroup.js +15 -2
  130. package/src/components/context-menu/ContextMenuItem.js +14 -2
  131. package/src/components/context-menu/index.js +5 -5
  132. package/src/components/context-menu/types/ContextMenu.d.ts +30 -0
  133. package/src/components/context-menu/types/ContextMenuGroup.d.ts +18 -0
  134. package/src/components/context-menu/types/ContextMenuItem.d.ts +18 -0
  135. package/src/components/divider/Divider.js +120 -4
  136. package/src/components/divider/index.js +3 -3
  137. package/src/components/divider/types/Divider.d.ts +55 -0
  138. package/src/components/dropdown/Dropdown.js +239 -16
  139. package/src/components/dropdown/DropdownDivider.js +22 -2
  140. package/src/components/dropdown/DropdownGroup.js +44 -5
  141. package/src/components/dropdown/DropdownItem.js +76 -3
  142. package/src/components/dropdown/DropdownTrigger.js +49 -20
  143. package/src/components/dropdown/helpers.js +1 -1
  144. package/src/components/dropdown/index.js +6 -6
  145. package/src/components/dropdown/types/Dropdown.d.ts +88 -0
  146. package/src/components/dropdown/types/DropdownDivider.d.ts +20 -0
  147. package/src/components/dropdown/types/DropdownGroup.d.ts +25 -0
  148. package/src/components/dropdown/types/DropdownItem.d.ts +41 -0
  149. package/src/components/dropdown/types/DropdownTrigger.d.ts +32 -0
  150. package/src/components/form/FormControl.js +156 -13
  151. package/src/components/form/field/Field.js +172 -9
  152. package/src/components/form/field/FieldCollection.js +116 -12
  153. package/src/components/form/field/types/AutocompleteField.js +92 -2
  154. package/src/components/form/field/types/CheckboxField.js +43 -2
  155. package/src/components/form/field/types/CheckboxGroupField.js +83 -6
  156. package/src/components/form/field/types/ColorField.js +56 -3
  157. package/src/components/form/field/types/DateField.js +155 -4
  158. package/src/components/form/field/types/EmailField.js +54 -4
  159. package/src/components/form/field/types/FileField.js +140 -6
  160. package/src/components/form/field/types/HiddenField.js +27 -1
  161. package/src/components/form/field/types/ImageField.js +82 -3
  162. package/src/components/form/field/types/NumberField.js +97 -4
  163. package/src/components/form/field/types/PasswordField.js +103 -7
  164. package/src/components/form/field/types/RadioField.js +75 -4
  165. package/src/components/form/field/types/RangeField.js +67 -1
  166. package/src/components/form/field/types/SearchField.js +41 -2
  167. package/src/components/form/field/types/SelectField.js +133 -4
  168. package/src/components/form/field/types/StringField.js +91 -2
  169. package/src/components/form/field/types/TelField.js +55 -4
  170. package/src/components/form/field/types/TextAreaField.js +76 -2
  171. package/src/components/form/field/types/TimeField.js +120 -5
  172. package/src/components/form/field/types/UrlField.js +59 -4
  173. package/src/components/form/field/types/file-field-mode/FileAvatarMode.js +83 -4
  174. package/src/components/form/field/types/file-field-mode/FileDropzoneMode.js +61 -3
  175. package/src/components/form/field/types/file-field-mode/FileItemPreview.js +79 -3
  176. package/src/components/form/field/types/file-field-mode/FileNativeMode.js +24 -2
  177. package/src/components/form/field/types/file-field-mode/FileUploadButtonMode.js +64 -3
  178. package/src/components/form/field/types/file-field-mode/FileWallMode.js +56 -3
  179. package/src/components/form/index.js +28 -28
  180. package/src/components/form/types/Field.d.ts +73 -0
  181. package/src/components/form/types/FieldCollection.d.ts +53 -0
  182. package/src/components/form/types/FormControl.d.ts +64 -0
  183. package/src/components/form/types/fields/AutocompleteField.d.ts +48 -0
  184. package/src/components/form/types/fields/CheckboxField.d.ts +33 -0
  185. package/src/components/form/types/fields/CheckboxGroupField.d.ts +49 -0
  186. package/src/components/form/types/fields/ColorField.d.ts +37 -0
  187. package/src/components/form/types/fields/DateField.d.ts +70 -0
  188. package/src/components/form/types/fields/EmailField.d.ts +35 -0
  189. package/src/components/form/types/fields/FileAvatarMode.d.ts +46 -0
  190. package/src/components/form/types/fields/FileDropzoneMode.d.ts +28 -0
  191. package/src/components/form/types/fields/FileField.d.ts +56 -0
  192. package/src/components/form/types/fields/FileItemPreview.d.ts +35 -0
  193. package/src/components/form/types/fields/FileNativeMode.d.ts +21 -0
  194. package/src/components/form/types/fields/FileUploadButtonMode.d.ts +34 -0
  195. package/src/components/form/types/fields/FileWallMode.d.ts +32 -0
  196. package/src/components/form/types/fields/HiddenField.d.ts +26 -0
  197. package/src/components/form/types/fields/ImageField.d.ts +45 -0
  198. package/src/components/form/types/fields/NumberField.d.ts +48 -0
  199. package/src/components/form/types/fields/PasswordField.d.ts +46 -0
  200. package/src/components/form/types/fields/RadioField.d.ts +48 -0
  201. package/src/components/form/types/fields/RangeField.d.ts +44 -0
  202. package/src/components/form/types/fields/SearchField.d.ts +34 -0
  203. package/src/components/form/types/fields/SelectField.d.ts +71 -0
  204. package/src/components/form/types/fields/StringField.d.ts +48 -0
  205. package/src/components/form/types/fields/TelField.d.ts +37 -0
  206. package/src/components/form/types/fields/TextAreaField.d.ts +44 -0
  207. package/src/components/form/types/fields/TimeField.d.ts +51 -0
  208. package/src/components/form/types/fields/UrlField.d.ts +35 -0
  209. package/src/components/form/validation/Validation.js +54 -54
  210. package/src/components/index.d.ts +160 -0
  211. package/src/components/list/HasListItem.js +171 -0
  212. package/src/components/list/List.js +85 -67
  213. package/src/components/list/ListDivider.js +39 -0
  214. package/src/components/list/ListGroup.js +105 -38
  215. package/src/components/list/ListItem.js +158 -49
  216. package/src/components/list/index.js +8 -6
  217. package/src/components/list/types/List.d.ts +43 -0
  218. package/src/components/list/types/ListGroup.d.ts +37 -0
  219. package/src/components/list/types/ListItem.d.ts +53 -0
  220. package/src/components/menu/HasMenuItem.js +55 -6
  221. package/src/components/menu/Menu.js +113 -22
  222. package/src/components/menu/MenuDivider.js +18 -2
  223. package/src/components/menu/MenuGroup.js +61 -6
  224. package/src/components/menu/MenuItem.js +95 -11
  225. package/src/components/menu/MenuLink.js +27 -2
  226. package/src/components/menu/index.js +6 -6
  227. package/src/components/menu/types/Menu.d.ts +60 -0
  228. package/src/components/menu/types/MenuDivider.d.ts +19 -0
  229. package/src/components/menu/types/MenuGroup.d.ts +44 -0
  230. package/src/components/menu/types/MenuItem.d.ts +46 -0
  231. package/src/components/menu/types/MenuLink.d.ts +16 -0
  232. package/src/components/modal/Modal.js +258 -17
  233. package/src/components/modal/index.js +3 -3
  234. package/src/components/modal/types/Modal.d.ts +94 -0
  235. package/src/components/pagination/Pagination.js +155 -7
  236. package/src/components/pagination/index.js +3 -3
  237. package/src/components/pagination/types/Pagination.d.ts +68 -0
  238. package/src/components/popover/Popover.js +198 -11
  239. package/src/components/popover/PopoverFooter.js +33 -9
  240. package/src/components/popover/PopoverHeader.js +33 -8
  241. package/src/components/popover/index.js +4 -4
  242. package/src/components/popover/types/Popover.d.ts +83 -0
  243. package/src/components/popover/types/PopoverFooter.d.ts +24 -0
  244. package/src/components/popover/types/PopoverHeader.d.ts +26 -0
  245. package/src/components/progress/Progress.js +182 -13
  246. package/src/components/progress/index.js +3 -3
  247. package/src/components/progress/types/Progress.d.ts +77 -0
  248. package/src/components/skeleton/Skeleton.js +117 -49
  249. package/src/components/skeleton/index.js +3 -3
  250. package/src/components/skeleton/types/Skeleton.d.ts +55 -0
  251. package/src/components/slider/Slider.js +207 -10
  252. package/src/components/slider/index.js +2 -2
  253. package/src/components/slider/types/Slider.d.ts +82 -0
  254. package/src/components/spacer/Spacer.js +12 -3
  255. package/src/components/spacer/index.js +2 -2
  256. package/src/components/spacer/types/Spacer.d.ts +19 -0
  257. package/src/components/spinner/Spinner.js +180 -9
  258. package/src/components/spinner/index.js +3 -3
  259. package/src/components/spinner/types/Spinner.d.ts +71 -0
  260. package/src/components/splitter/Splitter.js +76 -13
  261. package/src/components/splitter/SplitterGutter.js +67 -5
  262. package/src/components/splitter/SplitterPanel.js +69 -2
  263. package/src/components/splitter/index.js +5 -5
  264. package/src/components/splitter/types/Splitter.d.ts +38 -0
  265. package/src/components/splitter/types/SplitterGutter.d.ts +38 -0
  266. package/src/components/splitter/types/SplitterPanel.d.ts +41 -0
  267. package/src/components/stacks/AbsoluteStack.js +23 -3
  268. package/src/components/stacks/FixedStack.js +23 -3
  269. package/src/components/stacks/HStack.js +24 -3
  270. package/src/components/stacks/PositionStack.js +111 -3
  271. package/src/components/stacks/RelativeStack.js +23 -3
  272. package/src/components/stacks/Stack.js +73 -2
  273. package/src/components/stacks/VStack.js +24 -4
  274. package/src/components/stacks/index.js +7 -7
  275. package/src/components/stacks/types/AbsoluteStack.d.ts +16 -0
  276. package/src/components/stacks/types/FixedStack.d.ts +16 -0
  277. package/src/components/stacks/types/HStack.d.ts +16 -0
  278. package/src/components/stacks/types/PositionStack.d.ts +54 -0
  279. package/src/components/stacks/types/RelativeStack.d.ts +17 -0
  280. package/src/components/stacks/types/Stack.d.ts +39 -0
  281. package/src/components/stacks/types/VStack.d.ts +16 -0
  282. package/src/components/stepper/Stepper.js +152 -12
  283. package/src/components/stepper/StepperStep.js +104 -3
  284. package/src/components/stepper/index.js +4 -4
  285. package/src/components/stepper/types/Stepper.d.ts +68 -0
  286. package/src/components/stepper/types/StepperStep.d.ts +54 -0
  287. package/src/components/switch/Switch.js +143 -6
  288. package/src/components/switch/index.js +1 -1
  289. package/src/components/switch/types/Switch.d.ts +55 -0
  290. package/src/components/table/Column.js +105 -6
  291. package/src/components/table/ColumnGroup.js +48 -3
  292. package/src/components/table/DataTable.js +256 -19
  293. package/src/components/table/SimpleTable.js +58 -4
  294. package/src/components/table/index.js +2 -2
  295. package/src/components/table/types/Column.d.ts +49 -0
  296. package/src/components/table/types/ColumnGroup.d.ts +28 -0
  297. package/src/components/table/types/DataTable.d.ts +97 -0
  298. package/src/components/table/types/SimpleTable.d.ts +40 -0
  299. package/src/components/tabs/Tabs.js +192 -5
  300. package/src/components/tabs/index.js +3 -3
  301. package/src/components/tabs/types/Tabs.d.ts +78 -0
  302. package/src/components/toast/Toast.js +133 -5
  303. package/src/components/toast/index.js +3 -3
  304. package/src/components/toast/types/Toast.d.ts +57 -0
  305. package/src/components/toast/types/ToastError.d.ts +7 -0
  306. package/src/components/toast/types/ToastInfo.d.ts +7 -0
  307. package/src/components/toast/types/ToastSuccess.d.ts +7 -0
  308. package/src/components/toast/types/ToastWarning.d.ts +7 -0
  309. package/src/components/tooltip/Tooltip.js +157 -13
  310. package/src/components/tooltip/index.js +2 -2
  311. package/src/components/tooltip/prototypes.js +1 -1
  312. package/src/components/tooltip/types/Tooltip.d.ts +65 -0
  313. package/src/core/data/MemoryManager.js +2 -2
  314. package/src/core/data/Observable.js +15 -18
  315. package/src/core/data/ObservableArray.js +118 -46
  316. package/src/core/data/ObservableChecker.js +2 -2
  317. package/src/core/data/ObservableItem.js +135 -21
  318. package/src/core/data/ObservableObject.js +126 -35
  319. package/src/core/data/ObservableResource.js +118 -3
  320. package/src/core/data/Store.js +142 -26
  321. package/src/core/data/observable-helpers/observable.is-to.js +196 -1
  322. package/src/core/data/observable-helpers/observable.prototypes.js +35 -8
  323. package/src/core/elements/anchor/anchor-with-sentinel.js +23 -2
  324. package/src/core/elements/anchor/anchor.js +16 -7
  325. package/src/core/elements/anchor/one-child-anchor-overwriting.js +2 -2
  326. package/src/core/elements/content-formatter.js +1 -1
  327. package/src/core/elements/control/for-each-array.js +9 -9
  328. package/src/core/elements/control/for-each.js +14 -14
  329. package/src/core/elements/control/show-if.js +11 -11
  330. package/src/core/elements/control/show-when.js +5 -5
  331. package/src/core/elements/control/switch.js +14 -14
  332. package/src/core/elements/description-list.js +1 -1
  333. package/src/core/elements/form.js +2 -2
  334. package/src/core/elements/fragment.js +1 -1
  335. package/src/core/elements/html5-semantics.js +1 -1
  336. package/src/core/elements/img.js +3 -3
  337. package/src/core/elements/interactive.js +1 -1
  338. package/src/core/elements/list.js +1 -1
  339. package/src/core/elements/medias.js +1 -1
  340. package/src/core/elements/meta-data.js +1 -1
  341. package/src/core/elements/svg.js +1 -1
  342. package/src/core/elements/table.js +1 -1
  343. package/src/core/errors/ArgTypesError.js +1 -1
  344. package/src/core/utils/HasEventEmitter.js +36 -2
  345. package/src/core/utils/args-types.js +9 -9
  346. package/src/core/utils/cache.js +1 -1
  347. package/src/core/utils/callback-handler.js +29 -0
  348. package/src/core/utils/debug-manager.js +6 -6
  349. package/src/core/utils/events.js +139 -139
  350. package/src/core/utils/filters/date.js +84 -3
  351. package/src/core/utils/filters/standard.js +136 -11
  352. package/src/core/utils/filters/strings.js +34 -2
  353. package/src/core/utils/filters/utils.js +40 -4
  354. package/src/core/utils/formatters.js +4 -4
  355. package/src/core/utils/helpers.js +39 -7
  356. package/src/core/utils/localstorage.js +11 -11
  357. package/src/core/utils/memoize.js +56 -3
  358. package/src/core/utils/plugins-manager.js +3 -3
  359. package/src/core/utils/property-accumulator.js +6 -6
  360. package/src/core/utils/prototypes.js +26 -1
  361. package/src/core/utils/shortcut-manager.js +2 -2
  362. package/src/core/utils/validator.js +8 -8
  363. package/src/core/wrappers/AttributesWrapper.js +32 -22
  364. package/src/core/wrappers/DocumentObserver.js +3 -3
  365. package/src/core/wrappers/ElementCreator.js +5 -5
  366. package/src/core/wrappers/HtmlElementWrapper.js +38 -12
  367. package/src/core/wrappers/NDElement.js +328 -22
  368. package/src/core/wrappers/NdPrototype.js +60 -16
  369. package/src/core/wrappers/SingletonView.js +50 -2
  370. package/src/core/wrappers/SvgElementWrapper.js +1 -1
  371. package/src/core/wrappers/constants.js +35 -2
  372. package/src/core/wrappers/prototypes/attributes-extensions.js +7 -7
  373. package/src/core/wrappers/prototypes/nd-element-extensions.js +72 -6
  374. package/src/core/wrappers/prototypes/nd-element.transition.extensions.js +42 -2
  375. package/src/core/wrappers/template-cloner/NodeCloner.js +53 -8
  376. package/src/core/wrappers/template-cloner/TemplateCloner.js +75 -6
  377. package/src/core/wrappers/template-cloner/attributes-hydrator.js +58 -2
  378. package/src/core/wrappers/template-cloner/utils.js +42 -6
  379. package/src/fetch/NativeFetch.js +3 -3
  380. package/src/i18n/bin/scan.js +6 -6
  381. package/src/i18n/index.d.ts +2 -0
  382. package/src/i18n/service/I18nService.d.ts +27 -0
  383. package/src/i18n/service/I18nService.js +5 -5
  384. package/src/i18n/service/functions.d.ts +22 -0
  385. package/src/i18n/service/functions.js +2 -2
  386. package/src/router/Route.js +3 -3
  387. package/src/router/RouteGroupHelper.js +2 -2
  388. package/src/router/Router.js +15 -15
  389. package/src/router/RouterComponent.js +33 -7
  390. package/src/router/link.js +4 -4
  391. package/src/router/modes/HashRouter.js +2 -2
  392. package/src/router/modes/HistoryRouter.js +2 -2
  393. package/src/router/modes/MemoryRouter.js +1 -1
  394. package/src/ui/components/accordion/AccordionItemRender.js +3 -3
  395. package/src/ui/components/accordion/AccordionRender.js +1 -1
  396. package/src/ui/components/alert/AlertRender.js +10 -10
  397. package/src/ui/components/avatar/avata-group/AvatarGroupRender.js +1 -1
  398. package/src/ui/components/avatar/avatar/AvatarRender.js +1 -1
  399. package/src/ui/components/breadcrumb/BreadcrumbRender.js +2 -2
  400. package/src/ui/components/button/ButtonRender.js +1 -1
  401. package/src/ui/components/card/CardRender.js +133 -0
  402. package/src/ui/components/card/card.css +169 -0
  403. package/src/ui/components/contextmenu/ContextmenuRender.js +6 -6
  404. package/src/ui/components/dropdown/DropdownRender.js +8 -8
  405. package/src/ui/components/dropdown/group/DropdownGroupRender.js +2 -2
  406. package/src/ui/components/dropdown/item/DropdownItemRender.js +1 -1
  407. package/src/ui/components/form/FieldCollectionRender.js +2 -2
  408. package/src/ui/components/form/FormControlRender.js +5 -5
  409. package/src/ui/components/form/fields/AutocompleteFieldRender.js +3 -3
  410. package/src/ui/components/form/fields/CheckboxFieldRender.js +1 -1
  411. package/src/ui/components/form/fields/CheckboxGroupFieldRender.js +1 -1
  412. package/src/ui/components/form/fields/DateFieldRender.js +7 -7
  413. package/src/ui/components/form/fields/EmailFieldRender.js +1 -1
  414. package/src/ui/components/form/fields/FieldRender.js +4 -4
  415. package/src/ui/components/form/fields/FileFieldRender.js +1 -1
  416. package/src/ui/components/form/fields/PasswordFieldRender.js +2 -2
  417. package/src/ui/components/form/fields/RadioFieldRender.js +1 -1
  418. package/src/ui/components/form/fields/RangeFieldRender.js +1 -1
  419. package/src/ui/components/form/fields/SelectFieldRender.js +2 -2
  420. package/src/ui/components/form/fields/SliderFieldRender.js +6 -6
  421. package/src/ui/components/form/fields/StringFieldRender.js +1 -1
  422. package/src/ui/components/form/fields/TelFieldRender.js +1 -1
  423. package/src/ui/components/form/fields/TextAreaFieldRender.js +1 -1
  424. package/src/ui/components/form/fields/TimeFieldRender.js +3 -3
  425. package/src/ui/components/form/fields/UrlFieldRender.js +1 -1
  426. package/src/ui/components/form/file-upload-mode/FileAvatarModeRender.js +1 -1
  427. package/src/ui/components/form/file-upload-mode/FileDropzoneModeRender.js +2 -2
  428. package/src/ui/components/form/file-upload-mode/FileUploadButtonModeRender.js +2 -2
  429. package/src/ui/components/form/file-upload-mode/FileWallModeRender.js +1 -1
  430. package/src/ui/components/form/helpers.js +8 -8
  431. package/src/ui/components/form/index.js +27 -27
  432. package/src/ui/components/list/ListRender.js +18 -0
  433. package/src/ui/components/list/divider/ListDividerRender.js +10 -0
  434. package/src/ui/components/list/divider/list-divider.css +12 -0
  435. package/src/ui/components/list/group/ListGroupRender.js +61 -0
  436. package/src/ui/components/list/group/list-group.css +62 -0
  437. package/src/ui/components/list/item/ListItemRender.js +238 -0
  438. package/src/ui/components/list/item/list-item.css +191 -0
  439. package/src/ui/components/list/list.css +24 -0
  440. package/src/ui/components/menu/MenuDividerRender.js +1 -1
  441. package/src/ui/components/menu/MenuGroupRender.js +3 -3
  442. package/src/ui/components/menu/MenuItemRender.js +2 -2
  443. package/src/ui/components/menu/MenuLinkRender.js +3 -3
  444. package/src/ui/components/menu/helpers.js +4 -4
  445. package/src/ui/components/modal/ModalRender.js +4 -4
  446. package/src/ui/components/pagination/PaginationRender.js +9 -9
  447. package/src/ui/components/popover/PopoverRender.js +7 -7
  448. package/src/ui/components/progress/ProgressRender.js +12 -12
  449. package/src/ui/components/skeleton/SkeletonRender.js +56 -0
  450. package/src/ui/components/spacer/SpacerRender.js +10 -0
  451. package/src/ui/components/splitter/SplitterGutterRender.js +1 -1
  452. package/src/ui/components/splitter/SplitterPanelRender.js +2 -2
  453. package/src/ui/components/stacks/PositionStackRender.js +1 -1
  454. package/src/ui/components/stacks/StackRender.js +1 -1
  455. package/src/ui/components/stacks/absolute-stack/AbsoluteStackRender.js +1 -1
  456. package/src/ui/components/stacks/fixed-stack/FixedStackRender.js +1 -1
  457. package/src/ui/components/stacks/h-stack/HStackRender.js +1 -1
  458. package/src/ui/components/stacks/index.js +5 -5
  459. package/src/ui/components/stacks/relative-stack/RelativeStackRender.js +1 -1
  460. package/src/ui/components/stacks/v-stack/VStackRender.js +1 -1
  461. package/src/ui/components/stepper/StepperRender.js +2 -2
  462. package/src/ui/components/stepper/StepperStepRender.js +4 -4
  463. package/src/ui/components/switch/SwitchRender.js +4 -4
  464. package/src/ui/components/table/data-table/DataTableRender.js +5 -5
  465. package/src/ui/components/table/data-table/bulk-actions.js +7 -7
  466. package/src/ui/components/table/data-table/pagination.js +6 -6
  467. package/src/ui/components/table/data-table/tables.js +25 -25
  468. package/src/ui/components/table/data-table/toolbar.js +3 -3
  469. package/src/ui/components/table/simple-table/SimpleTableRender.js +8 -8
  470. package/src/ui/components/tabs/TabsRender.js +11 -11
  471. package/src/ui/components/toast/ToastRender.js +3 -3
  472. package/src/ui/components/tooltip/TooltipRender.js +1 -1
  473. package/src/ui/index.js +44 -36
  474. package/types/elements.d.ts +163 -1037
  475. package/types/forms.d.ts +16 -20
  476. package/types/globals.d.ts +543 -0
  477. package/types/images.d.ts +2 -2
  478. package/types/observable-resource.d.ts +3 -0
  479. package/types/property-accumulator.d.ts +4 -4
  480. package/types/store.d.ts +26 -2
  481. package/types/validator.ts +3 -3
  482. package/ui.js +1 -0
  483. package/src/components/form/field/DefaultRender.js +0 -77
  484. package/src/components/form/field/FieldFactory.js +0 -107
  485. package/src/components/skeleton/SkeletonList.js +0 -0
  486. package/src/components/skeleton/SkeletonParagraph.js +0 -0
  487. package/src/components/skeleton/SkeletonTable.js +0 -0
  488. /package/{src/components/skeleton/SkeletonCard.js → docs/tutorials/.gitkeep} +0 -0
@@ -0,0 +1,19 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { BaseComponent } from '../../BaseComponent';
3
+ import type { GlobalAttributes } from '../../../../types/globals';
4
+
5
+ export type MenuDividerDescription = { props: GlobalAttributes; };
6
+
7
+ export interface MenuDividerInterface extends BaseComponent {
8
+ render(template: (description: MenuDividerDescription, instance: MenuDividerInterface) => ValidChild): this;
9
+ }
10
+
11
+
12
+ export declare function MenuDivider(props?: Record<string, unknown>): MenuDividerInterface;
13
+ export declare namespace MenuDivider {
14
+
15
+
16
+ function use(template: (description: MenuDividerDescription, instance: MenuDividerInterface) => ValidChild): void;
17
+
18
+
19
+ }
@@ -0,0 +1,44 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { ObservableItem } from '../../../../types/observable';
3
+ import type { BaseComponent } from '../../BaseComponent';
4
+ import type { MenuItemInterface } from './MenuItem';
5
+ import type { MenuDividerInterface } from './MenuDivider';
6
+ import type { GlobalAttributes } from '../../../../types/globals';
7
+
8
+ export type MenuGroupDescription = {
9
+ icon: ValidChild | null;
10
+ label: ValidChild;
11
+ data: unknown | null;
12
+ items: ObservableItem<Array<MenuItemInterface | MenuDividerInterface>>;
13
+ render: ((desc: MenuGroupDescription, instance: MenuGroupInterface) => ValidChild) | null;
14
+ collapsable: boolean;
15
+ collapsed: boolean | null;
16
+ visibility: ObservableItem<boolean>;
17
+ collapsableOpenedIcon: ValidChild | null;
18
+ collapsableClosedIcon: ValidChild | null;
19
+ props: GlobalAttributes;
20
+ };
21
+
22
+ export interface MenuGroupInterface extends BaseComponent {
23
+ data(data: unknown): this;
24
+ icon(icon: ValidChild): this;
25
+ collapsable(mode?: boolean, openedIcon?: ValidChild, closedIcon?: ValidChild): this;
26
+ collapsed(mode?: boolean): this;
27
+ divider(): this;
28
+ visibility(mode: boolean | ObservableItem<boolean>): this;
29
+ item(label: ValidChild, ...args: unknown[]): this;
30
+ link(label: ValidChild, ...args: unknown[]): this;
31
+ separator(): this;
32
+ add(item: MenuItemInterface | MenuDividerInterface): this;
33
+ render(template: (description: MenuGroupDescription, instance: MenuGroupInterface) => ValidChild): this;
34
+ }
35
+
36
+
37
+ export declare function MenuGroup(label: ValidChild, props?: Record<string, unknown>): MenuGroupInterface;
38
+ export declare namespace MenuGroup {
39
+
40
+
41
+ function use(template: (description: MenuGroupDescription, instance: MenuGroupInterface) => ValidChild): void;
42
+
43
+
44
+ }
@@ -0,0 +1,46 @@
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 MenuItemDescription = {
7
+ key: string | null;
8
+ action: string | Record<string, unknown> | null;
9
+ label: ValidChild | null;
10
+ icon: ValidChild | null;
11
+ shortcut: ValidChild | null;
12
+ disabled: ObservableItem<boolean> | boolean | null;
13
+ selected: ObservableItem<boolean> | boolean | null;
14
+ value: unknown;
15
+ data: unknown | null;
16
+ render: ((desc: MenuItemDescription, instance: MenuItemInterface) => ValidChild) | null;
17
+ trailing: ValidChild | null;
18
+ visibility: ObservableItem<boolean> | null;
19
+ props: GlobalAttributes;
20
+ };
21
+
22
+ export interface MenuItemInterface extends BaseComponent {
23
+ label(label: ValidChild): this;
24
+ icon(icon: ValidChild): this;
25
+ trailing(trailing: ValidChild): this;
26
+ shortcut(shortcut: ValidChild): this;
27
+ disabled(disabled?: boolean | ObservableItem<boolean>): this;
28
+ selected(selected?: boolean | ObservableItem<boolean>): this;
29
+ value(value: unknown): this;
30
+ action(action: string | Record<string, unknown>): this;
31
+ data(data: unknown): this;
32
+ divider(): this;
33
+ key(key: string): this;
34
+ visibility(mode: boolean | ObservableItem<boolean>): this;
35
+ render(template: (description: MenuItemDescription, instance: MenuItemInterface) => ValidChild): this;
36
+ }
37
+
38
+
39
+ export declare function MenuItem(props?: Record<string, unknown>): MenuItemInterface;
40
+ export declare namespace MenuItem {
41
+
42
+
43
+ function use(template: (description: MenuItemDescription, instance: MenuItemInterface) => ValidChild): void;
44
+
45
+
46
+ }
@@ -0,0 +1,16 @@
1
+ import type { ValidChild } from '../../../../types/elements';
2
+ import type { MenuItemInterface, MenuItemDescription } from './MenuItem';
3
+
4
+ export interface MenuLinkInterface extends MenuItemInterface {
5
+ target(target: '_blank' | '_self' | '_parent' | '_top' | string): this;
6
+ }
7
+
8
+
9
+ export declare function MenuLink(props?: Record<string, unknown>): MenuLinkInterface;
10
+ export declare namespace MenuLink {
11
+
12
+
13
+ function use(template: (description: MenuItemDescription, instance: MenuLinkInterface) => ValidChild): void;
14
+
15
+
16
+ }
@@ -1,12 +1,43 @@
1
- import BaseComponent from "../BaseComponent";
2
- import HasEventEmitter from "../../core/utils/HasEventEmitter";
3
- import { Observable } from "../../core/data/Observable";
4
- import {NDElement} from "../../core/wrappers/NDElement";
5
- import HasDraggable from "../$traits/has-draggable/HasDraggable";
6
- import HasResizable from "../$traits/has-resizable/HasResizable";
7
- import DebugManager from "../../core/utils/debug-manager";
8
-
9
-
1
+ import BaseComponent from '../BaseComponent';
2
+ import HasEventEmitter from '../../core/utils/HasEventEmitter';
3
+ import { Observable } from '../../core/data/Observable';
4
+ import {NDElement} from '../../core/wrappers/NDElement';
5
+ import HasDraggable from '../$traits/has-draggable/HasDraggable';
6
+ import HasResizable from '../$traits/has-resizable/HasResizable';
7
+ import DebugManager from '../../core/utils/debug-manager';
8
+
9
+ /**
10
+ * Dialog overlay with header, content, and footer slots. Supports draggable, resizable, scroll lock, focus trap, and close-on-backdrop/escape.
11
+ *
12
+ *
13
+ * @example
14
+ * const modal = new Modal(Div('Modal body content'))
15
+ * .title(Span('Confirm deletion'))
16
+ * .footer(HStack(cancelBtn, confirmBtn))
17
+ * .size('medium')
18
+ * .centered()
19
+ * .closeOnEscape(true)
20
+ * .closable(true)
21
+ * .focusTrap(true)
22
+ * .onOpen(() => console.log('opened'))
23
+ * .onClose(() => console.log('closed'));
24
+ *
25
+ * // Attach to trigger
26
+ * const triggerEl = modal.trigger(Button(Span('Open')));
27
+ *
28
+ * Modal.use((description, instance) => {
29
+ * return Div(
30
+ * { class: 'modal' },
31
+ * description.title,
32
+ * description.content,
33
+ * description.footer
34
+ * );
35
+ * });
36
+ *
37
+ * @constructor
38
+ * @param {NdChild} content
39
+ * @param {GlobalAttributes} [props={}]
40
+ */
10
41
  export default function Modal(content, props = {}) {
11
42
  if(!(this instanceof Modal)) {
12
43
  return new Modal(content, props);
@@ -34,7 +65,7 @@ export default function Modal(content, props = {}) {
34
65
  lockScroll: true,
35
66
  isOpen: Observable(false),
36
67
  variant: null,
37
- props
68
+ props,
38
69
  };
39
70
  }
40
71
 
@@ -43,6 +74,31 @@ BaseComponent.use(Modal, HasEventEmitter, HasDraggable, HasResizable);
43
74
 
44
75
  // Theming
45
76
  Modal.defaultTemplate = null;
77
+
78
+ /**
79
+ * Registers the render template for Modal.
80
+ * @param {(description: {
81
+ * centered: boolean,
82
+ * scrollable: boolean,
83
+ * title: NdChild|null,
84
+ * content: NdChild,
85
+ * footer: NdChild|null,
86
+ * size: 'small'|'medium'|'large'|'extra-large'|'fullscreen'|null,
87
+ * closeOnBackdrop: boolean,
88
+ * closeOnEscape: boolean,
89
+ * closable: boolean,
90
+ * layout: ((desc: *, instance: Modal) => NdChild)|null,
91
+ * fullscreen: boolean,
92
+ * draggable: boolean,
93
+ * dragByHeader: boolean,
94
+ * resizable: boolean,
95
+ * focusTrap: boolean,
96
+ * lockScroll: boolean,
97
+ * isOpen: Observable<boolean>,
98
+ * variant: string|null,
99
+ * props: GlobalAttributes,
100
+ * }, instance: Modal) => NdChild} template
101
+ */
46
102
  Modal.use = function(template) {
47
103
  Modal.defaultTemplate = template;
48
104
 
@@ -62,16 +118,24 @@ Modal.use = function(template) {
62
118
  this.nd.onClick(() => modal.open());
63
119
  });
64
120
  return this;
65
- }
121
+ };
66
122
  }
67
123
  };
68
124
 
125
+ /**
126
+ * @param {HTMLElement|NDElement} trigger
127
+ * @returns {HTMLElement|NDElement}
128
+ */
69
129
  Modal.prototype.trigger = function(trigger) {
70
130
  this.toNdElement();
71
131
  trigger.nd.onClick(() => this.open());
72
132
  return trigger;
73
133
  };
74
134
 
135
+ /**
136
+ * @param {string} name
137
+ * @param {(m: Modal) => Modal} callback
138
+ */
75
139
  Modal.preset = function(name, callback) {
76
140
  if (Modal.prototype[name] || Modal[name]) {
77
141
  DebugManager.warn(`Warning: the ${name} method already exist in Modal.`);
@@ -80,118 +144,230 @@ Modal.preset = function(name, callback) {
80
144
  Modal[name] = (content, props) => callback(new Modal(content, props));
81
145
  };
82
146
 
147
+ /**
148
+ * @param {Record<string, (m: Modal) => Modal>} presets
149
+ */
83
150
  Modal.presets = function(presets) {
84
151
  for (const name in presets) {
85
152
  Modal.preset(name, presets[name]);
86
153
  }
87
154
  };
88
155
 
89
-
156
+ /**
157
+ * @returns {void}
158
+ */
90
159
  Modal.prototype.open = function() {
91
160
  this.emit('beforeOpen');
92
161
  this.$description.isOpen.set(true);
93
162
  this.emit('open');
94
163
  };
164
+
165
+ /**
166
+ * @returns {void}
167
+ */
95
168
  Modal.prototype.close = function() {
96
169
  this.emit('beforeClose');
97
170
  this.$description.isOpen.set(false);
98
171
  this.emit('close');
99
172
  };
173
+
174
+ /**
175
+ * @returns {boolean}
176
+ */
100
177
  Modal.prototype.isOpen = function() {
101
178
  return this.$description.isOpen.val();
102
179
  };
180
+
181
+ /**
182
+ * @returns {boolean}
183
+ */
103
184
  Modal.prototype.isClose = function() {
104
185
  return !this.isOpen();
105
186
  };
106
187
 
107
188
  // Configuration
189
+ /**
190
+ * @param {NdChild} title
191
+ * @returns {this}
192
+ */
108
193
  Modal.prototype.title = function(title) {
109
194
  this.$description.title = title;
110
195
  return this;
111
196
  };
197
+
198
+ /**
199
+ * @param {NdChild} content
200
+ * @returns {this}
201
+ */
112
202
  Modal.prototype.content = function(content) {
113
203
  this.$description.content = content;
114
204
  return this;
115
205
  };
206
+
207
+ /**
208
+ * @param {NdChild} footer
209
+ * @returns {this}
210
+ */
116
211
  Modal.prototype.footer = function(footer) {
117
212
  this.$description.footer = footer;
118
213
  return this;
119
214
  };
120
215
 
216
+ /**
217
+ * @param {'small'|'medium'|'large'|'extra-large'|'fullscreen'} size
218
+ * @returns {this}
219
+ */
121
220
  Modal.prototype.size = function(size) {
122
221
  this.$description.size = size;
123
222
  return this;
124
223
  };
224
+
225
+ /**
226
+ * @returns {this}
227
+ */
125
228
  Modal.prototype.small = function() {
126
229
  return this.size('small');
127
230
  };
231
+
232
+ /**
233
+ * @returns {this}
234
+ */
128
235
  Modal.prototype.medium = function() {
129
236
  return this.size('medium');
130
237
  };
238
+
239
+ /**
240
+ * @returns {this}
241
+ */
131
242
  Modal.prototype.large = function() {
132
243
  return this.size('large');
133
244
  };
245
+
246
+ /**
247
+ * @returns {this}
248
+ */
134
249
  Modal.prototype.extraLarge = function() {
135
250
  return this.size('extra-large');
136
251
  };
252
+
253
+ /**
254
+ * @returns {this}
255
+ */
137
256
  Modal.prototype.fullscreen = function() {
138
257
  return this.size('fullscreen');
139
258
  };
140
259
 
260
+ /**
261
+ * @returns {this}
262
+ */
141
263
  Modal.prototype.centered = function() {
142
264
  this.$description.centered = true;
143
265
  return this;
144
266
  };
267
+
268
+ /**
269
+ * @param {boolean} scrollable
270
+ * @returns {this}
271
+ */
145
272
  Modal.prototype.scrollable = function(scrollable = true) {
146
273
  this.$description.scrollable = scrollable;
147
274
  return this;
148
275
  };
149
276
 
150
-
277
+ /**
278
+ * @param {boolean} enabled
279
+ * @returns {this}
280
+ */
151
281
  Modal.prototype.closeOnBackdrop = function(enabled = true) {
152
282
  this.$description.closeOnBackdrop = enabled;
153
283
  return this;
154
284
  };
285
+
286
+ /**
287
+ * @param {boolean} enabled
288
+ * @returns {this}
289
+ */
155
290
  Modal.prototype.closeOnEscape = function(enabled = true) {
156
291
  this.$description.closeOnEscape = enabled;
157
292
  return this;
158
293
  };
294
+
295
+ /**
296
+ * @param {*} [enabled]
297
+ * @returns {this}
298
+ */
159
299
  Modal.prototype.closable = function(enabled = true) {
160
300
  this.$description.closable = enabled;
161
301
  return this;
162
302
  };
163
303
 
164
-
304
+ /**
305
+ * @param {Function} handler
306
+ * @returns {this}
307
+ */
165
308
  Modal.prototype.onOpen = function(handler) {
166
309
  this.on('open', handler);
167
310
  return this;
168
311
  };
312
+
313
+ /**
314
+ * @param {Function} handler
315
+ * @returns {this}
316
+ */
169
317
  Modal.prototype.onClose = function(handler) {
170
318
  this.on('close', handler);
171
319
  return this;
172
320
  };
321
+
322
+ /**
323
+ * @param {Function} handler
324
+ * @returns {this}
325
+ */
173
326
  Modal.prototype.onBeforeOpen = function(handler) {
174
327
  this.on('beforeOpen', handler);
175
328
  return this;
176
329
  };
330
+
331
+ /**
332
+ * @param {Function} handler
333
+ * @returns {this}
334
+ */
177
335
  Modal.prototype.onBeforeClose = function(handler) {
178
336
  this.on('beforeClose', handler);
179
337
  return this;
180
338
  };
181
339
 
340
+ /**
341
+ * @param {(desc: *, instance: *) => NdChild} renderFn
342
+ * @returns {this}
343
+ */
182
344
  Modal.prototype.renderHeader = function(renderFn) {
183
- this.$description.renderHeader = renderFn
345
+ this.$description.renderHeader = renderFn;
184
346
  return this;
185
347
  };
348
+
349
+ /**
350
+ * @param {(desc: *, instance: *) => NdChild} renderFn
351
+ * @returns {this}
352
+ */
186
353
  Modal.prototype.renderContent = function(renderFn) {
187
- this.$description.renderContent = renderFn
354
+ this.$description.renderContent = renderFn;
188
355
  return this;
189
356
  };
357
+
358
+ /**
359
+ * @param {(desc: *, instance: *) => NdChild} renderFn
360
+ * @returns {this}
361
+ */
190
362
  Modal.prototype.renderFooter = function(renderFn) {
191
- this.$description.renderFooter = renderFn
363
+ this.$description.renderFooter = renderFn;
192
364
  return this;
193
365
  };
194
366
 
367
+ /**
368
+ * @param {(desc: *, instance: *) => NdChild} layoutFn
369
+ * @returns {this}
370
+ */
195
371
  Modal.prototype.layout = function(layoutFn) {
196
372
  this.$description.layout = layoutFn;
197
373
  return this;
@@ -202,15 +378,26 @@ Modal.prototype.fullscreen = function(fullscreen = true) {
202
378
  return this;
203
379
  };
204
380
 
381
+ /**
382
+ * @returns {this}
383
+ */
205
384
  Modal.prototype.draggable = function() {
206
385
  this.$description.draggable = true;
207
386
  return this;
208
387
  };
388
+
389
+ /**
390
+ * @returns {this}
391
+ */
209
392
  Modal.prototype.dragByHeader = function() {
210
393
  this.$description.dragByHeader = true;
211
394
  return this;
212
395
  };
213
396
 
397
+ /**
398
+ * @param {{ directions?: string[], size?: { minWidth?: number, maxWidth?: number, minHeight?: number, maxHeight?: number } }} [options={}]
399
+ * @returns {this}
400
+ */
214
401
  Modal.prototype.resizable = function(options = {}) {
215
402
  this.$description.resizable = true;
216
403
  for(const key in options) {
@@ -218,65 +405,119 @@ Modal.prototype.resizable = function(options = {}) {
218
405
  }
219
406
  return this;
220
407
  };
408
+
409
+ /**
410
+ * @param {string[]} directions
411
+ * @returns {this}
412
+ */
221
413
  Modal.prototype.resizeDirections = function(directions) {
222
414
  this.$description.resizableOptions.directions = directions;
223
415
  return this;
224
416
  };
225
417
 
418
+ /**
419
+ * @param {*} minWidth
420
+ * @returns {this}
421
+ */
226
422
  Modal.prototype.minWidth = function(minWidth) {
227
423
  this.$description.resizableOptions.size.minWidth = minWidth;
228
424
  return this;
229
425
  };
230
426
 
427
+ /**
428
+ * @param {*} maxWidth
429
+ * @returns {this}
430
+ */
231
431
  Modal.prototype.maxWidth = function(maxWidth) {
232
432
  this.$description.resizableOptions.size.maxWidth = maxWidth;
233
433
  return this;
234
434
  };
235
435
 
436
+ /**
437
+ * @param {*} minHeight
438
+ * @returns {this}
439
+ */
236
440
  Modal.prototype.minHeight = function(minHeight) {
237
441
  this.$description.resizableOptions.size.minHeight = minHeight;
238
442
  return this;
239
443
  };
240
444
 
445
+ /**
446
+ * @param {*} maxHeight
447
+ * @returns {this}
448
+ */
241
449
  Modal.prototype.maxHeight = function(maxHeight) {
242
450
  this.$description.resizableOptions.size.maxHeight = maxHeight;
243
451
  return this;
244
452
  };
245
453
 
454
+ /**
455
+ * @param {*} focusTrap
456
+ * @returns {this}
457
+ */
246
458
  Modal.prototype.focusTrap = function(focusTrap = true) {
247
459
  this.$description.focusTrap = focusTrap;
248
460
  return this;
249
461
  };
250
462
 
463
+ /**
464
+ * @param {*} lockScroll
465
+ * @returns {this}
466
+ */
251
467
  Modal.prototype.lockScroll = function(lockScroll = true) {
252
468
  this.$description.lockScroll = lockScroll;
253
469
  return this;
254
470
  };
255
471
 
472
+ /**
473
+ * @param {Function} handler
474
+ * @returns {this}
475
+ */
256
476
  Modal.prototype.onDragStart = function(handler) {
257
477
  this.on('onDragStart', handler);
258
478
  return this;
259
479
  };
260
480
 
481
+ /**
482
+ * @param {Function} handler
483
+ * @returns {this}
484
+ */
261
485
  Modal.prototype.onDrag = function(handler) {
262
486
  this.on('onDrag', handler);
263
487
  return this;
264
488
  };
265
489
 
490
+ /**
491
+ * @param {Function} handler
492
+ * @returns {this}
493
+ */
266
494
  Modal.prototype.onDragEnd = function(handler) {
267
495
  this.on('onDragEnd', handler);
268
496
  return this;
269
497
  };
498
+
499
+ /**
500
+ * @param {Function} handler
501
+ * @returns {this}
502
+ */
270
503
  Modal.prototype.onResizeStart = function(handler) {
271
504
  this.on('onResizeStart', handler);
272
505
  return this;
273
506
  };
274
507
 
508
+ /**
509
+ * @param {Function} handler
510
+ * @returns {this}
511
+ */
275
512
  Modal.prototype.onResize = function(handler) {
276
513
  this.on('onResize', handler);
277
514
  return this;
278
515
  };
279
516
 
517
+ /**
518
+ * @param {Function} handler
519
+ * @returns {this}
520
+ */
280
521
  Modal.prototype.onResizeEnd = function(handler) {
281
522
  this.on('onResizeEnd', handler);
282
523
  return this;
@@ -1,5 +1,5 @@
1
- import Modal from './Modal'
1
+ import Modal from './Modal';
2
2
 
3
3
  export {
4
- Modal
5
- }
4
+ Modal,
5
+ };