native-document 1.0.164 → 1.0.166

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/components.d.ts +2 -0
  2. package/devtools/widget.js +1 -1
  3. package/dist/native-document.components.min.js +11074 -2735
  4. package/dist/native-document.dev.js +2269 -392
  5. package/dist/native-document.dev.js.map +1 -1
  6. package/dist/native-document.min.js +1 -1
  7. package/eslint.config.js +28 -33
  8. package/i18n.js +1 -1
  9. package/i18n.ts +2 -0
  10. package/index.js +4 -1
  11. package/package.json +3 -2
  12. package/src/components/$traits/has-draggable/HasDraggable.d.ts +4 -0
  13. package/src/components/$traits/has-draggable/HasDraggable.js +13 -0
  14. package/src/components/$traits/has-items/HasItems.d.ts +9 -0
  15. package/src/components/$traits/has-items/HasItems.js +6 -6
  16. package/src/components/$traits/has-position/HasFullPosition.d.ts +14 -0
  17. package/src/components/$traits/has-position/HasFullPosition.js +44 -0
  18. package/src/components/$traits/has-position/HasPosition.d.ts +7 -0
  19. package/src/components/$traits/has-position/HasPosition.js +23 -1
  20. package/src/components/$traits/has-resizable/HasResizable.d.ts +13 -0
  21. package/src/components/$traits/has-resizable/HasResizable.js +9 -0
  22. package/src/components/$traits/has-validation/HasValidation.d.ts +17 -0
  23. package/src/components/$traits/has-validation/HasValidation.js +54 -7
  24. package/src/components/BaseComponent.d.ts +32 -0
  25. package/src/components/BaseComponent.js +65 -9
  26. package/src/components/accordion/Accordion.js +39 -14
  27. package/src/components/accordion/AccordionItem.js +45 -14
  28. package/src/components/accordion/index.js +2 -2
  29. package/src/components/accordion/types/Accordion.d.ts +47 -0
  30. package/src/components/accordion/types/AccordionItem.d.ts +48 -0
  31. package/src/components/alert/Alert.js +70 -38
  32. package/src/components/alert/index.js +2 -2
  33. package/src/components/alert/types/Alert.d.ts +62 -0
  34. package/src/components/avatar/Avatar.js +49 -12
  35. package/src/components/avatar/AvatarGroup.js +50 -2
  36. package/src/components/avatar/index.js +2 -2
  37. package/src/components/avatar/types/Avatar.d.ts +74 -0
  38. package/src/components/avatar/types/AvatarGroup.d.ts +32 -0
  39. package/src/components/badge/Badge.js +125 -5
  40. package/src/components/badge/index.js +2 -2
  41. package/src/components/badge/types/Badge.d.ts +51 -0
  42. package/src/components/breadcrumb/BreadCrumb.js +61 -5
  43. package/src/components/breadcrumb/index.js +2 -2
  44. package/src/components/breadcrumb/types/BreadCrumb.d.ts +42 -0
  45. package/src/components/button/Button.js +164 -9
  46. package/src/components/button/index.js +1 -1
  47. package/src/components/button/types/Button.d.ts +62 -0
  48. package/src/components/card/Card.js +128 -10
  49. package/src/components/card/index.js +3 -3
  50. package/src/components/card/types/Card.d.ts +42 -0
  51. package/src/components/context-menu/ContextMenu.js +49 -5
  52. package/src/components/context-menu/ContextMenuGroup.js +15 -2
  53. package/src/components/context-menu/ContextMenuItem.js +14 -2
  54. package/src/components/context-menu/index.js +5 -5
  55. package/src/components/context-menu/types/ContextMenu.d.ts +30 -0
  56. package/src/components/context-menu/types/ContextMenuGroup.d.ts +18 -0
  57. package/src/components/context-menu/types/ContextMenuItem.d.ts +18 -0
  58. package/src/components/divider/Divider.js +120 -4
  59. package/src/components/divider/index.js +3 -3
  60. package/src/components/divider/types/Divider.d.ts +55 -0
  61. package/src/components/dropdown/Dropdown.js +239 -16
  62. package/src/components/dropdown/DropdownDivider.js +22 -2
  63. package/src/components/dropdown/DropdownGroup.js +44 -5
  64. package/src/components/dropdown/DropdownItem.js +76 -3
  65. package/src/components/dropdown/DropdownTrigger.js +49 -20
  66. package/src/components/dropdown/helpers.js +1 -1
  67. package/src/components/dropdown/index.js +6 -6
  68. package/src/components/dropdown/types/Dropdown.d.ts +88 -0
  69. package/src/components/dropdown/types/DropdownDivider.d.ts +20 -0
  70. package/src/components/dropdown/types/DropdownGroup.d.ts +25 -0
  71. package/src/components/dropdown/types/DropdownItem.d.ts +41 -0
  72. package/src/components/dropdown/types/DropdownTrigger.d.ts +32 -0
  73. package/src/components/form/FormControl.js +156 -13
  74. package/src/components/form/field/Field.js +172 -9
  75. package/src/components/form/field/FieldCollection.js +116 -12
  76. package/src/components/form/field/types/AutocompleteField.js +92 -2
  77. package/src/components/form/field/types/CheckboxField.js +43 -2
  78. package/src/components/form/field/types/CheckboxGroupField.js +83 -6
  79. package/src/components/form/field/types/ColorField.js +56 -3
  80. package/src/components/form/field/types/DateField.js +155 -4
  81. package/src/components/form/field/types/EmailField.js +54 -4
  82. package/src/components/form/field/types/FileField.js +140 -6
  83. package/src/components/form/field/types/HiddenField.js +27 -1
  84. package/src/components/form/field/types/ImageField.js +82 -3
  85. package/src/components/form/field/types/NumberField.js +97 -4
  86. package/src/components/form/field/types/PasswordField.js +103 -7
  87. package/src/components/form/field/types/RadioField.js +75 -4
  88. package/src/components/form/field/types/RangeField.js +67 -1
  89. package/src/components/form/field/types/SearchField.js +41 -2
  90. package/src/components/form/field/types/SelectField.js +133 -4
  91. package/src/components/form/field/types/StringField.js +91 -2
  92. package/src/components/form/field/types/TelField.js +55 -4
  93. package/src/components/form/field/types/TextAreaField.js +76 -2
  94. package/src/components/form/field/types/TimeField.js +120 -5
  95. package/src/components/form/field/types/UrlField.js +59 -4
  96. package/src/components/form/field/types/file-field-mode/FileAvatarMode.js +83 -4
  97. package/src/components/form/field/types/file-field-mode/FileDropzoneMode.js +61 -3
  98. package/src/components/form/field/types/file-field-mode/FileItemPreview.js +79 -3
  99. package/src/components/form/field/types/file-field-mode/FileNativeMode.js +24 -2
  100. package/src/components/form/field/types/file-field-mode/FileUploadButtonMode.js +64 -3
  101. package/src/components/form/field/types/file-field-mode/FileWallMode.js +56 -3
  102. package/src/components/form/index.js +28 -28
  103. package/src/components/form/types/Field.d.ts +73 -0
  104. package/src/components/form/types/FieldCollection.d.ts +53 -0
  105. package/src/components/form/types/FormControl.d.ts +64 -0
  106. package/src/components/form/types/fields/AutocompleteField.d.ts +48 -0
  107. package/src/components/form/types/fields/CheckboxField.d.ts +33 -0
  108. package/src/components/form/types/fields/CheckboxGroupField.d.ts +49 -0
  109. package/src/components/form/types/fields/ColorField.d.ts +37 -0
  110. package/src/components/form/types/fields/DateField.d.ts +70 -0
  111. package/src/components/form/types/fields/EmailField.d.ts +35 -0
  112. package/src/components/form/types/fields/FileAvatarMode.d.ts +46 -0
  113. package/src/components/form/types/fields/FileDropzoneMode.d.ts +28 -0
  114. package/src/components/form/types/fields/FileField.d.ts +56 -0
  115. package/src/components/form/types/fields/FileItemPreview.d.ts +35 -0
  116. package/src/components/form/types/fields/FileNativeMode.d.ts +21 -0
  117. package/src/components/form/types/fields/FileUploadButtonMode.d.ts +34 -0
  118. package/src/components/form/types/fields/FileWallMode.d.ts +32 -0
  119. package/src/components/form/types/fields/HiddenField.d.ts +26 -0
  120. package/src/components/form/types/fields/ImageField.d.ts +45 -0
  121. package/src/components/form/types/fields/NumberField.d.ts +48 -0
  122. package/src/components/form/types/fields/PasswordField.d.ts +46 -0
  123. package/src/components/form/types/fields/RadioField.d.ts +48 -0
  124. package/src/components/form/types/fields/RangeField.d.ts +44 -0
  125. package/src/components/form/types/fields/SearchField.d.ts +34 -0
  126. package/src/components/form/types/fields/SelectField.d.ts +71 -0
  127. package/src/components/form/types/fields/StringField.d.ts +48 -0
  128. package/src/components/form/types/fields/TelField.d.ts +37 -0
  129. package/src/components/form/types/fields/TextAreaField.d.ts +44 -0
  130. package/src/components/form/types/fields/TimeField.d.ts +51 -0
  131. package/src/components/form/types/fields/UrlField.d.ts +35 -0
  132. package/src/components/form/validation/Validation.js +54 -54
  133. package/src/components/index.d.ts +160 -0
  134. package/src/components/list/List.js +99 -15
  135. package/src/components/list/ListGroup.js +58 -8
  136. package/src/components/list/ListItem.js +79 -18
  137. package/src/components/list/index.js +5 -5
  138. package/src/components/list/types/List.d.ts +43 -0
  139. package/src/components/list/types/ListGroup.d.ts +37 -0
  140. package/src/components/list/types/ListItem.d.ts +42 -0
  141. package/src/components/menu/HasMenuItem.js +55 -6
  142. package/src/components/menu/Menu.js +113 -22
  143. package/src/components/menu/MenuDivider.js +18 -2
  144. package/src/components/menu/MenuGroup.js +61 -6
  145. package/src/components/menu/MenuItem.js +95 -11
  146. package/src/components/menu/MenuLink.js +27 -2
  147. package/src/components/menu/index.js +6 -6
  148. package/src/components/menu/types/Menu.d.ts +60 -0
  149. package/src/components/menu/types/MenuDivider.d.ts +19 -0
  150. package/src/components/menu/types/MenuGroup.d.ts +44 -0
  151. package/src/components/menu/types/MenuItem.d.ts +46 -0
  152. package/src/components/menu/types/MenuLink.d.ts +16 -0
  153. package/src/components/modal/Modal.js +258 -17
  154. package/src/components/modal/index.js +3 -3
  155. package/src/components/modal/types/Modal.d.ts +94 -0
  156. package/src/components/pagination/Pagination.js +155 -7
  157. package/src/components/pagination/index.js +3 -3
  158. package/src/components/pagination/types/Pagination.d.ts +68 -0
  159. package/src/components/popover/Popover.js +198 -11
  160. package/src/components/popover/PopoverFooter.js +33 -9
  161. package/src/components/popover/PopoverHeader.js +33 -8
  162. package/src/components/popover/index.js +4 -4
  163. package/src/components/popover/types/Popover.d.ts +83 -0
  164. package/src/components/popover/types/PopoverFooter.d.ts +24 -0
  165. package/src/components/popover/types/PopoverHeader.d.ts +26 -0
  166. package/src/components/progress/Progress.js +182 -13
  167. package/src/components/progress/index.js +3 -3
  168. package/src/components/progress/types/Progress.d.ts +77 -0
  169. package/src/components/skeleton/Skeleton.js +117 -49
  170. package/src/components/skeleton/index.js +3 -3
  171. package/src/components/skeleton/types/Skeleton.d.ts +55 -0
  172. package/src/components/slider/Slider.js +207 -10
  173. package/src/components/slider/index.js +2 -2
  174. package/src/components/slider/types/Slider.d.ts +82 -0
  175. package/src/components/spacer/Spacer.js +11 -2
  176. package/src/components/spacer/index.js +2 -2
  177. package/src/components/spacer/types/Spacer.d.ts +19 -0
  178. package/src/components/spinner/Spinner.js +180 -9
  179. package/src/components/spinner/index.js +3 -3
  180. package/src/components/spinner/types/Spinner.d.ts +71 -0
  181. package/src/components/splitter/Splitter.js +76 -13
  182. package/src/components/splitter/SplitterGutter.js +67 -5
  183. package/src/components/splitter/SplitterPanel.js +69 -2
  184. package/src/components/splitter/index.js +5 -5
  185. package/src/components/splitter/types/Splitter.d.ts +38 -0
  186. package/src/components/splitter/types/SplitterGutter.d.ts +38 -0
  187. package/src/components/splitter/types/SplitterPanel.d.ts +41 -0
  188. package/src/components/stacks/AbsoluteStack.js +23 -3
  189. package/src/components/stacks/FixedStack.js +23 -3
  190. package/src/components/stacks/HStack.js +24 -3
  191. package/src/components/stacks/PositionStack.js +111 -3
  192. package/src/components/stacks/RelativeStack.js +23 -3
  193. package/src/components/stacks/Stack.js +73 -2
  194. package/src/components/stacks/VStack.js +24 -4
  195. package/src/components/stacks/index.js +7 -7
  196. package/src/components/stacks/types/AbsoluteStack.d.ts +16 -0
  197. package/src/components/stacks/types/FixedStack.d.ts +16 -0
  198. package/src/components/stacks/types/HStack.d.ts +16 -0
  199. package/src/components/stacks/types/PositionStack.d.ts +54 -0
  200. package/src/components/stacks/types/RelativeStack.d.ts +17 -0
  201. package/src/components/stacks/types/Stack.d.ts +39 -0
  202. package/src/components/stacks/types/VStack.d.ts +16 -0
  203. package/src/components/stepper/Stepper.js +152 -12
  204. package/src/components/stepper/StepperStep.js +104 -3
  205. package/src/components/stepper/index.js +4 -4
  206. package/src/components/stepper/types/Stepper.d.ts +68 -0
  207. package/src/components/stepper/types/StepperStep.d.ts +54 -0
  208. package/src/components/switch/Switch.js +143 -6
  209. package/src/components/switch/index.js +1 -1
  210. package/src/components/switch/types/Switch.d.ts +55 -0
  211. package/src/components/table/Column.js +105 -6
  212. package/src/components/table/ColumnGroup.js +48 -3
  213. package/src/components/table/DataTable.js +256 -19
  214. package/src/components/table/SimpleTable.js +58 -4
  215. package/src/components/table/index.js +2 -2
  216. package/src/components/table/types/Column.d.ts +49 -0
  217. package/src/components/table/types/ColumnGroup.d.ts +28 -0
  218. package/src/components/table/types/DataTable.d.ts +97 -0
  219. package/src/components/table/types/SimpleTable.d.ts +40 -0
  220. package/src/components/tabs/Tabs.js +192 -5
  221. package/src/components/tabs/index.js +3 -3
  222. package/src/components/tabs/types/Tabs.d.ts +78 -0
  223. package/src/components/toast/Toast.js +133 -5
  224. package/src/components/toast/index.js +3 -3
  225. package/src/components/toast/types/Toast.d.ts +57 -0
  226. package/src/components/toast/types/ToastError.d.ts +7 -0
  227. package/src/components/toast/types/ToastInfo.d.ts +7 -0
  228. package/src/components/toast/types/ToastSuccess.d.ts +7 -0
  229. package/src/components/toast/types/ToastWarning.d.ts +7 -0
  230. package/src/components/tooltip/Tooltip.js +157 -13
  231. package/src/components/tooltip/index.js +2 -2
  232. package/src/components/tooltip/prototypes.js +1 -1
  233. package/src/components/tooltip/types/Tooltip.d.ts +65 -0
  234. package/src/core/data/MemoryManager.js +2 -2
  235. package/src/core/data/Observable.js +15 -18
  236. package/src/core/data/ObservableArray.js +118 -46
  237. package/src/core/data/ObservableChecker.js +2 -2
  238. package/src/core/data/ObservableItem.js +135 -21
  239. package/src/core/data/ObservableObject.js +126 -35
  240. package/src/core/data/ObservableResource.js +113 -3
  241. package/src/core/data/Store.js +142 -26
  242. package/src/core/data/observable-helpers/observable.is-to.js +196 -1
  243. package/src/core/data/observable-helpers/observable.prototypes.js +33 -8
  244. package/src/core/elements/anchor/anchor-with-sentinel.js +23 -2
  245. package/src/core/elements/anchor/anchor.js +16 -7
  246. package/src/core/elements/anchor/one-child-anchor-overwriting.js +2 -2
  247. package/src/core/elements/content-formatter.js +1 -1
  248. package/src/core/elements/control/for-each-array.js +9 -9
  249. package/src/core/elements/control/for-each.js +14 -14
  250. package/src/core/elements/control/show-if.js +11 -11
  251. package/src/core/elements/control/show-when.js +5 -5
  252. package/src/core/elements/control/switch.js +14 -14
  253. package/src/core/elements/description-list.js +1 -1
  254. package/src/core/elements/form.js +2 -2
  255. package/src/core/elements/fragment.js +1 -1
  256. package/src/core/elements/html5-semantics.js +1 -1
  257. package/src/core/elements/img.js +3 -3
  258. package/src/core/elements/interactive.js +1 -1
  259. package/src/core/elements/list.js +1 -1
  260. package/src/core/elements/medias.js +1 -1
  261. package/src/core/elements/meta-data.js +1 -1
  262. package/src/core/elements/svg.js +1 -1
  263. package/src/core/elements/table.js +1 -1
  264. package/src/core/errors/ArgTypesError.js +1 -1
  265. package/src/core/utils/HasEventEmitter.js +36 -2
  266. package/src/core/utils/args-types.js +9 -9
  267. package/src/core/utils/cache.js +1 -1
  268. package/src/core/utils/callback-handler.js +29 -0
  269. package/src/core/utils/debug-manager.js +6 -6
  270. package/src/core/utils/events.js +139 -139
  271. package/src/core/utils/filters/date.js +84 -3
  272. package/src/core/utils/filters/standard.js +136 -11
  273. package/src/core/utils/filters/strings.js +34 -2
  274. package/src/core/utils/filters/utils.js +40 -4
  275. package/src/core/utils/formatters.js +4 -4
  276. package/src/core/utils/helpers.js +39 -7
  277. package/src/core/utils/localstorage.js +11 -11
  278. package/src/core/utils/memoize.js +56 -3
  279. package/src/core/utils/plugins-manager.js +3 -3
  280. package/src/core/utils/property-accumulator.js +6 -6
  281. package/src/core/utils/prototypes.js +26 -1
  282. package/src/core/utils/shortcut-manager.js +2 -2
  283. package/src/core/utils/validator.js +8 -8
  284. package/src/core/wrappers/AttributesWrapper.js +32 -22
  285. package/src/core/wrappers/DocumentObserver.js +3 -3
  286. package/src/core/wrappers/ElementCreator.js +5 -5
  287. package/src/core/wrappers/HtmlElementWrapper.js +38 -12
  288. package/src/core/wrappers/NDElement.js +328 -22
  289. package/src/core/wrappers/NdPrototype.js +60 -16
  290. package/src/core/wrappers/SingletonView.js +50 -2
  291. package/src/core/wrappers/SvgElementWrapper.js +1 -1
  292. package/src/core/wrappers/constants.js +35 -2
  293. package/src/core/wrappers/prototypes/attributes-extensions.js +7 -7
  294. package/src/core/wrappers/prototypes/nd-element-extensions.js +72 -6
  295. package/src/core/wrappers/prototypes/nd-element.transition.extensions.js +42 -2
  296. package/src/core/wrappers/template-cloner/NodeCloner.js +53 -8
  297. package/src/core/wrappers/template-cloner/TemplateCloner.js +75 -6
  298. package/src/core/wrappers/template-cloner/attributes-hydrator.js +58 -2
  299. package/src/core/wrappers/template-cloner/utils.js +42 -6
  300. package/src/fetch/NativeFetch.js +3 -3
  301. package/src/i18n/bin/scan.js +6 -6
  302. package/src/i18n/index.d.ts +2 -0
  303. package/src/i18n/service/I18nService.d.ts +27 -0
  304. package/src/i18n/service/I18nService.js +5 -5
  305. package/src/i18n/service/functions.d.ts +22 -0
  306. package/src/i18n/service/functions.js +2 -2
  307. package/src/router/Route.js +3 -3
  308. package/src/router/RouteGroupHelper.js +2 -2
  309. package/src/router/Router.js +15 -15
  310. package/src/router/RouterComponent.js +33 -7
  311. package/src/router/link.js +4 -4
  312. package/src/router/modes/HashRouter.js +2 -2
  313. package/src/router/modes/HistoryRouter.js +2 -2
  314. package/src/router/modes/MemoryRouter.js +1 -1
  315. package/src/ui/components/accordion/AccordionItemRender.js +3 -3
  316. package/src/ui/components/accordion/AccordionRender.js +1 -1
  317. package/src/ui/components/alert/AlertRender.js +10 -10
  318. package/src/ui/components/avatar/avata-group/AvatarGroupRender.js +1 -1
  319. package/src/ui/components/avatar/avatar/AvatarRender.js +1 -1
  320. package/src/ui/components/breadcrumb/BreadcrumbRender.js +2 -2
  321. package/src/ui/components/button/ButtonRender.js +1 -1
  322. package/src/ui/components/contextmenu/ContextmenuRender.js +5 -5
  323. package/src/ui/components/dropdown/DropdownRender.js +8 -8
  324. package/src/ui/components/dropdown/group/DropdownGroupRender.js +2 -2
  325. package/src/ui/components/dropdown/item/DropdownItemRender.js +1 -1
  326. package/src/ui/components/form/FieldCollectionRender.js +2 -2
  327. package/src/ui/components/form/FormControlRender.js +5 -5
  328. package/src/ui/components/form/fields/AutocompleteFieldRender.js +3 -3
  329. package/src/ui/components/form/fields/CheckboxFieldRender.js +1 -1
  330. package/src/ui/components/form/fields/CheckboxGroupFieldRender.js +1 -1
  331. package/src/ui/components/form/fields/DateFieldRender.js +7 -7
  332. package/src/ui/components/form/fields/EmailFieldRender.js +1 -1
  333. package/src/ui/components/form/fields/FieldRender.js +4 -4
  334. package/src/ui/components/form/fields/FileFieldRender.js +1 -1
  335. package/src/ui/components/form/fields/PasswordFieldRender.js +2 -2
  336. package/src/ui/components/form/fields/RadioFieldRender.js +1 -1
  337. package/src/ui/components/form/fields/RangeFieldRender.js +1 -1
  338. package/src/ui/components/form/fields/SelectFieldRender.js +2 -2
  339. package/src/ui/components/form/fields/SliderFieldRender.js +6 -6
  340. package/src/ui/components/form/fields/StringFieldRender.js +1 -1
  341. package/src/ui/components/form/fields/TelFieldRender.js +1 -1
  342. package/src/ui/components/form/fields/TextAreaFieldRender.js +1 -1
  343. package/src/ui/components/form/fields/TimeFieldRender.js +3 -3
  344. package/src/ui/components/form/fields/UrlFieldRender.js +1 -1
  345. package/src/ui/components/form/file-upload-mode/FileAvatarModeRender.js +1 -1
  346. package/src/ui/components/form/file-upload-mode/FileDropzoneModeRender.js +2 -2
  347. package/src/ui/components/form/file-upload-mode/FileUploadButtonModeRender.js +2 -2
  348. package/src/ui/components/form/file-upload-mode/FileWallModeRender.js +1 -1
  349. package/src/ui/components/form/helpers.js +8 -8
  350. package/src/ui/components/form/index.js +27 -27
  351. package/src/ui/components/menu/MenuDividerRender.js +1 -1
  352. package/src/ui/components/menu/MenuGroupRender.js +3 -3
  353. package/src/ui/components/menu/MenuItemRender.js +2 -2
  354. package/src/ui/components/menu/MenuLinkRender.js +3 -3
  355. package/src/ui/components/menu/helpers.js +4 -4
  356. package/src/ui/components/modal/ModalRender.js +4 -4
  357. package/src/ui/components/pagination/PaginationRender.js +9 -9
  358. package/src/ui/components/popover/PopoverRender.js +7 -7
  359. package/src/ui/components/progress/ProgressRender.js +12 -12
  360. package/src/ui/components/skeleton/SkeletonRender.js +56 -0
  361. package/src/ui/components/splitter/SplitterGutterRender.js +1 -1
  362. package/src/ui/components/splitter/SplitterPanelRender.js +2 -2
  363. package/src/ui/components/stacks/PositionStackRender.js +1 -1
  364. package/src/ui/components/stacks/StackRender.js +1 -1
  365. package/src/ui/components/stacks/absolute-stack/AbsoluteStackRender.js +1 -1
  366. package/src/ui/components/stacks/fixed-stack/FixedStackRender.js +1 -1
  367. package/src/ui/components/stacks/h-stack/HStackRender.js +1 -1
  368. package/src/ui/components/stacks/index.js +5 -5
  369. package/src/ui/components/stacks/relative-stack/RelativeStackRender.js +1 -1
  370. package/src/ui/components/stacks/v-stack/VStackRender.js +1 -1
  371. package/src/ui/components/stepper/StepperRender.js +2 -2
  372. package/src/ui/components/stepper/StepperStepRender.js +4 -4
  373. package/src/ui/components/switch/SwitchRender.js +4 -4
  374. package/src/ui/components/table/data-table/DataTableRender.js +5 -5
  375. package/src/ui/components/table/data-table/bulk-actions.js +7 -7
  376. package/src/ui/components/table/data-table/pagination.js +6 -6
  377. package/src/ui/components/table/data-table/tables.js +25 -25
  378. package/src/ui/components/table/data-table/toolbar.js +3 -3
  379. package/src/ui/components/table/simple-table/SimpleTableRender.js +8 -8
  380. package/src/ui/components/tabs/TabsRender.js +11 -11
  381. package/src/ui/components/toast/ToastRender.js +3 -3
  382. package/src/ui/components/tooltip/TooltipRender.js +1 -1
  383. package/src/ui/index.js +36 -36
  384. package/types/elements.d.ts +163 -1037
  385. package/types/forms.d.ts +16 -20
  386. package/types/globals.d.ts +543 -0
  387. package/types/images.d.ts +2 -2
  388. package/types/observable-resource.d.ts +3 -0
  389. package/types/property-accumulator.d.ts +4 -4
  390. package/types/store.d.ts +26 -2
  391. package/types/validator.ts +3 -3
  392. package/ui.js +1 -0
  393. package/src/components/form/field/DefaultRender.js +0 -77
  394. package/src/components/form/field/FieldFactory.js +0 -107
  395. package/src/components/skeleton/SkeletonCard.js +0 -0
  396. package/src/components/skeleton/SkeletonList.js +0 -0
  397. package/src/components/skeleton/SkeletonParagraph.js +0 -0
  398. package/src/components/skeleton/SkeletonTable.js +0 -0
@@ -1,8 +1,8 @@
1
- import { Observable } from "../../data/Observable";
2
- import Validator from "../../utils/validator";
3
- import DebugManager from "../../utils/debug-manager.js";
4
- import Anchor from "../anchor/anchor";
5
- import {ElementCreator} from "../../wrappers/ElementCreator";
1
+ import { Observable } from '../../data/Observable';
2
+ import Validator from '../../utils/validator';
3
+ import DebugManager from '../../utils/debug-manager.js';
4
+ import Anchor from '../anchor/anchor';
5
+ import {ElementCreator} from '../../wrappers/ElementCreator';
6
6
 
7
7
  /**
8
8
  * Conditionally shows an element based on an observable condition.
@@ -20,11 +20,11 @@ import {ElementCreator} from "../../wrappers/ElementCreator";
20
20
  */
21
21
  export const ShowIf = function(condition, child, { comment = null, shouldKeepInCache = true} = {}) {
22
22
  if(!Validator.isObservable(condition)) {
23
- if(typeof condition === "boolean") {
23
+ if(typeof condition === 'boolean') {
24
24
  return condition ? ElementCreator.getChild(child) : null;
25
25
  }
26
26
 
27
- return DebugManager.warn('ShowIf', "ShowIf : condition must be an Observable or boolean / "+comment, condition);
27
+ return DebugManager.warn('ShowIf', 'ShowIf : condition must be an Observable or boolean / '+comment, condition);
28
28
  }
29
29
  const element = Anchor('Show if : '+(comment || ''));
30
30
 
@@ -47,7 +47,7 @@ export const ShowIf = function(condition, child, { comment = null, shouldKeepInC
47
47
  }
48
48
 
49
49
  condition.subscribe((value) => {
50
- if(!!value) {
50
+ if(value) {
51
51
  element.appendChild(getChildElement());
52
52
  return;
53
53
  }
@@ -55,7 +55,7 @@ export const ShowIf = function(condition, child, { comment = null, shouldKeepInC
55
55
  });
56
56
 
57
57
  return element;
58
- }
58
+ };
59
59
 
60
60
  /**
61
61
  * Conditionally hides an element when the observable condition is true.
@@ -76,7 +76,7 @@ export const HideIf = function(condition, child, configs) {
76
76
  condition.subscribe(value => hideCondition.set(!value));
77
77
 
78
78
  return ShowIf(hideCondition, child, configs);
79
- }
79
+ };
80
80
 
81
81
  /**
82
82
  * Conditionally hides an element when the observable condition is false.
@@ -91,4 +91,4 @@ export const HideIf = function(condition, child, configs) {
91
91
  */
92
92
  export const HideIfNot = function(condition, child, configs) {
93
93
  return ShowIf(condition, child, configs);
94
- }
94
+ };
@@ -1,6 +1,6 @@
1
- import Validator from "../../utils/validator.js";
2
- import NativeDocumentError from "../../errors/NativeDocumentError.js";
3
- import {ShowIf} from "./show-if.js";
1
+ import Validator from '../../utils/validator.js';
2
+ import NativeDocumentError from '../../errors/NativeDocumentError.js';
3
+ import {ShowIf} from './show-if.js';
4
4
 
5
5
  /**
6
6
  * Shows content when an observable equals a specific value.
@@ -31,7 +31,7 @@ export const ShowWhen = function() {
31
31
  if(!Validator.isObservableWhenResult(observer)) {
32
32
  throw new NativeDocumentError('showWhen observer must be an ObservableWhenResult', {
33
33
  data: observer,
34
- 'help': 'Use observer.when(target) to create an ObservableWhenResult'
34
+ 'help': 'Use observer.when(target) to create an ObservableWhenResult',
35
35
  });
36
36
  }
37
37
  return ShowIf(observer, target);
@@ -49,6 +49,6 @@ export const ShowWhen = function() {
49
49
  data: [
50
50
  'showWhen(observer, target, view)',
51
51
  'showWhen(observerWhenResult, view)',
52
- ]
52
+ ],
53
53
  });
54
54
  };
@@ -1,7 +1,7 @@
1
- import NativeDocumentError from "../../errors/NativeDocumentError";
2
- import Validator from "../../utils/validator";
3
- import Anchor from "../anchor/anchor";
4
- import {ElementCreator} from "../../wrappers/ElementCreator";
1
+ import NativeDocumentError from '../../errors/NativeDocumentError';
2
+ import Validator from '../../utils/validator';
3
+ import Anchor from '../anchor/anchor';
4
+ import {ElementCreator} from '../../wrappers/ElementCreator';
5
5
 
6
6
 
7
7
 
@@ -28,7 +28,7 @@ import {ElementCreator} from "../../wrappers/ElementCreator";
28
28
  export const Match = function($condition, values, shouldKeepInCache = true) {
29
29
 
30
30
  if(!Validator.isObservable($condition)) {
31
- throw new NativeDocumentError("Toggle : condition must be an Observable");
31
+ throw new NativeDocumentError('Toggle : condition must be an Observable');
32
32
  }
33
33
 
34
34
  const anchor = Anchor('Match');
@@ -48,7 +48,7 @@ export const Match = function($condition, values, shouldKeepInCache = true) {
48
48
  }
49
49
  shouldKeepInCache && cache.set(key, item);
50
50
  return item;
51
- }
51
+ };
52
52
 
53
53
  const defaultValue = $condition.val();
54
54
  const defaultContent = getItem(defaultValue);
@@ -75,9 +75,9 @@ export const Match = function($condition, values, shouldKeepInCache = true) {
75
75
  shouldKeepInCache && cache.delete(key);
76
76
  $condition.set([...cache.keys()].at(-1) ?? '');
77
77
  delete values[key];
78
- }
78
+ },
79
79
  });
80
- }
80
+ };
81
81
 
82
82
 
83
83
  /**
@@ -97,14 +97,14 @@ export const Match = function($condition, values, shouldKeepInCache = true) {
97
97
  */
98
98
  export const Switch = function ($condition, onTrue, onFalse) {
99
99
  if(!Validator.isObservable($condition)) {
100
- throw new NativeDocumentError("Toggle : condition must be an Observable");
100
+ throw new NativeDocumentError('Toggle : condition must be an Observable');
101
101
  }
102
102
 
103
103
  return Match($condition.toBoolean(), {
104
104
  true: onTrue,
105
105
  false: onFalse,
106
106
  });
107
- }
107
+ };
108
108
 
109
109
  /**
110
110
  * Provides a fluent API for conditional rendering with show/otherwise pattern.
@@ -119,7 +119,7 @@ export const Switch = function ($condition, onTrue, onFalse) {
119
119
  */
120
120
  export const When = function($condition) {
121
121
  if(!Validator.isObservable($condition)) {
122
- throw new NativeDocumentError("When : condition must be an Observable");
122
+ throw new NativeDocumentError('When : condition must be an Observable');
123
123
  }
124
124
 
125
125
  let $onTrue = null;
@@ -136,6 +136,6 @@ export const When = function($condition) {
136
136
  },
137
137
  toNdElement() {
138
138
  return Switch($condition, $onTrue, $onFalse);
139
- }
140
- }
141
- }
139
+ },
140
+ };
141
+ };
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
  /**
4
4
  * Creates a `<dl>` element.
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
 
4
4
  /**
@@ -27,7 +27,7 @@ export const Form = HtmlElementWrapper('form', (el) => {
27
27
  el.multipartFormData = function() {
28
28
  this.setAttribute('enctype', 'multipart/form-data');
29
29
  return el;
30
- }
30
+ };
31
31
  el.post = function(action) {
32
32
  this.setAttribute('method', 'post');
33
33
  this.setAttribute('action', action);
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
  /**
4
4
  * Creates an empty `DocumentFragment` wrapper.
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
  /**
4
4
  * Creates a `<main>` element.
@@ -1,6 +1,6 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper"
2
- import Validator from "../utils/validator";
3
- import NativeDocumentError from "../errors/NativeDocumentError";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
+ import Validator from '../utils/validator';
3
+ import NativeDocumentError from '../errors/NativeDocumentError';
4
4
 
5
5
  /**
6
6
  * Creates an `<img>` element.
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
  /**
4
4
  * Creates a `<details>` element.
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
  /**
4
4
  * Creates an `<ol>` element.
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
  /**
4
4
  * Creates an `<audio>` element.
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
  /**
4
4
  * Creates a `<time>` element.
@@ -1,4 +1,4 @@
1
- import SvgElementWrapper from "../wrappers/SvgElementWrapper";
1
+ import SvgElementWrapper from '../wrappers/SvgElementWrapper';
2
2
 
3
3
  export const SvgSvg = SvgElementWrapper('svg');
4
4
  export const SvgCircle = SvgElementWrapper('circle');
@@ -1,4 +1,4 @@
1
- import HtmlElementWrapper from "../wrappers/HtmlElementWrapper";
1
+ import HtmlElementWrapper from '../wrappers/HtmlElementWrapper';
2
2
 
3
3
  /**
4
4
  * Creates a `<caption>` element.
@@ -2,6 +2,6 @@
2
2
 
3
3
  export default class ArgTypesError extends Error {
4
4
  constructor(message, errors) {
5
- super(`${message}\n\n${errors.join("\n")}\n\n`);
5
+ super(`${message}\n\n${errors.join('\n')}\n\n`);
6
6
  }
7
7
  }
@@ -1,10 +1,30 @@
1
-
1
+ /**
2
+ * Mixin constructor that adds a simple synchronous/async event emitter to any class.
3
+ * Extend or call this in your constructor to gain .on(), .trigger(), and .emit().
4
+ *
5
+ * @constructor
6
+ * @example
7
+ * function MyClass() {
8
+ * HasEventEmitter.call(this);
9
+ * }
10
+ * MyClass.prototype = Object.create(HasEventEmitter.prototype);
11
+ * const instance = new MyClass();
12
+ * instance.on('ready', () => console.log('ready!'));
13
+ * instance.trigger('ready');
14
+ */
2
15
  export default function HasEventEmitter() {
3
16
 
4
17
  this.__$events = null;
5
18
 
6
19
  }
7
20
 
21
+ /**
22
+ * Registers a callback for the given event name.
23
+ * Multiple callbacks for the same event are collected into an array.
24
+ *
25
+ * @param {string} eventName - Event identifier
26
+ * @param {Function} callback - Handler to register
27
+ */
8
28
  HasEventEmitter.prototype.on = function(eventName, callback) {
9
29
  if(!this.__$events) {
10
30
  this.__$events = new Map();
@@ -21,6 +41,12 @@ HasEventEmitter.prototype.on = function(eventName, callback) {
21
41
  existingCallback.push(callback);
22
42
  };
23
43
 
44
+ /**
45
+ * Returns true if at least one callback is registered for the given event.
46
+ *
47
+ * @param {string} eventName - Event identifier
48
+ * @returns {boolean}
49
+ */
24
50
  HasEventEmitter.prototype.hasListeners = function(eventName) {
25
51
  if(!this.__$events) {
26
52
  return false;
@@ -28,6 +54,14 @@ HasEventEmitter.prototype.hasListeners = function(eventName) {
28
54
  return !!this.__$events.get(eventName);
29
55
  };
30
56
 
57
+ /**
58
+ * Fires all registered callbacks for the given event name, awaiting each one in sequence.
59
+ * Returns the result of the last callback. Alias: .emit()
60
+ *
61
+ * @param {string} eventName - Event identifier
62
+ * @param {...*} args - Arguments passed to each callback
63
+ * @returns {Promise<*>} Result of the last callback, or undefined if none
64
+ */
31
65
  HasEventEmitter.prototype.trigger = async function(eventName, ...args) {
32
66
  if(!this.__$events) {
33
67
  return;
@@ -39,7 +73,7 @@ HasEventEmitter.prototype.trigger = async function(eventName, ...args) {
39
73
  }
40
74
 
41
75
  if(typeof callbacks === 'function') {
42
- return await Promise.resolve(callbacks.apply(this, args))
76
+ return await Promise.resolve(callbacks.apply(this, args));
43
77
  }
44
78
 
45
79
  let result = null;
@@ -1,6 +1,6 @@
1
- import Validator from "./validator";
2
- import ArgTypesError from "../errors/ArgTypesError";
3
- import NativeDocumentError from "../errors/NativeDocumentError";
1
+ import Validator from './validator';
2
+ import ArgTypesError from '../errors/ArgTypesError';
3
+ import NativeDocumentError from '../errors/NativeDocumentError';
4
4
 
5
5
  let withValidation = (fn) => fn;
6
6
  let ArgTypes = {};
@@ -43,8 +43,8 @@ if(process.env.NODE_ENV === 'development') {
43
43
  name,
44
44
  type: 'oneOf',
45
45
  types: argTypes,
46
- validate: (v) => argTypes.some(type => type.validate(v))
47
- })
46
+ validate: (v) => argTypes.some(type => type.validate(v)),
47
+ }),
48
48
  };
49
49
 
50
50
 
@@ -84,7 +84,7 @@ if(process.env.NODE_ENV === 'development') {
84
84
  });
85
85
 
86
86
  if (errors.length > 0) {
87
- throw new ArgTypesError(`Argument validation failed`, errors);
87
+ throw new ArgTypesError('Argument validation failed', errors);
88
88
  }
89
89
  };
90
90
 
@@ -123,7 +123,7 @@ if(process.env.NODE_ENV === 'production') {
123
123
  optional: () => true,
124
124
 
125
125
  // Union types
126
- oneOf: () => true
126
+ oneOf: () => true,
127
127
  };
128
128
  }
129
129
 
@@ -132,9 +132,9 @@ export const normalizeComponentArgs = function(props, children = null) {
132
132
  return { props, children };
133
133
  }
134
134
  if(typeof props !== 'object' || Array.isArray(props) || props === null || props.constructor.name !== 'Object' || props.$hydrate) { // IF it's not a JSON
135
- return { props: children, children: props }
135
+ return { props: children, children: props };
136
136
  }
137
137
  return { props, children };
138
- }
138
+ };
139
139
 
140
140
  export { ArgTypes, withValidation };
@@ -1,4 +1,4 @@
1
- import { once as _once, autoMemoize, autoOnce } from "./memoize.js";
1
+ import { once as _once, autoMemoize, autoOnce } from './memoize.js';
2
2
 
3
3
  export const once = fn => autoOnce(fn);
4
4
  export const singleton = fn => _once(fn);
@@ -1,5 +1,18 @@
1
1
 
2
2
 
3
+ /**
4
+ * Associates a shared callback with per-target context objects.
5
+ * Useful when the same event handler needs to behave differently depending on which element triggered it,
6
+ * without creating a new function closure per element (e.g.: in TemplateCloner).
7
+ *
8
+ * @constructor
9
+ * @param {(context: *, ...args: any[]) => void} callback - Handler receiving the stored context followed by event arguments
10
+ * @example
11
+ * const handler = CallbackHandler((item, event) => list.removeItem(item));
12
+ * handler.set(buttonElement, todoItem);
13
+ * buttonElement.addEventListener('click', handler.callback);
14
+ * // When clicked, calls callback(todoItem, event)
15
+ */
3
16
  export function CallbackHandler(callback) {
4
17
 
5
18
  if(!(this instanceof CallbackHandler)) {
@@ -8,10 +21,26 @@ export function CallbackHandler(callback) {
8
21
 
9
22
  const $contextSore = new WeakMap();
10
23
 
24
+ /**
25
+ * Associates a context value with a specific target (usually a DOM element).
26
+ * The context is retrieved and passed to the callback when .callback is invoked on that target.
27
+ *
28
+ * @param {object} target - The target object (usually an HTMLElement) used as the WeakMap key
29
+ * @param {*} context - The context value to store for this target
30
+ */
11
31
  this.set = (target, context) => {
12
32
  $contextSore.set(target, context);
13
33
  };
14
34
 
35
+ /**
36
+ * Event handler function to attach to DOM elements.
37
+ * When called, look up the context stored for `this` (the element) and invoke the callback.
38
+ * Designed to be passed directly to addEventListener.
39
+ *
40
+ * @type {EventListener}
41
+ * @example
42
+ * element.addEventListener('click', handler.callback);
43
+ */
15
44
  this.callback = function() {
16
45
  const context = $contextSore.get(this);
17
46
  if(context) {
@@ -5,7 +5,7 @@ if(process.env.NODE_ENV === 'development') {
5
5
  enabled: true,
6
6
 
7
7
  enable() {
8
- DebugManager.log('🔍 NativeDocument Debug Mode enabled');
8
+ DebugManager.log('NativeDocument Debug Mode enabled');
9
9
  },
10
10
 
11
11
  disable() {
@@ -13,19 +13,19 @@ if(process.env.NODE_ENV === 'development') {
13
13
  },
14
14
 
15
15
  log(category, message, data) {
16
- console.group(`🔍 [${category}] ${message}`);
16
+ console.group(`[${category}] ${message}`);
17
17
  if (data) console.log(data);
18
18
  console.trace();
19
19
  console.groupEnd();
20
20
  },
21
21
 
22
22
  warn(category, message, data) {
23
- console.warn(`⚠️ [${category}] ${message}`, data);
23
+ console.warn(`[${category}] ${message}`, data);
24
24
  },
25
25
 
26
26
  error(category, message, error) {
27
- console.error(`❌ [${category}] ${message}`, error);
28
- }
27
+ console.error(`[${category}] ${message}`, error);
28
+ },
29
29
  };
30
30
 
31
31
  }
@@ -34,7 +34,7 @@ if(process.env.NODE_ENV === 'production') {
34
34
  log() {},
35
35
  warn() {},
36
36
  error() {},
37
- disable() {}
37
+ disable() {},
38
38
  };
39
39
  }
40
40
  export default DebugManager;