loon-bulma-react 2025.0.34 → 2025.1.0

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 (468) hide show
  1. package/.github/workflows/deploy-example.yml +43 -0
  2. package/.github/workflows/run-test.yml +31 -0
  3. package/.prettierignore +5 -0
  4. package/.prettierrc.json +19 -0
  5. package/dist/classes/Console.d.ts +29 -0
  6. package/dist/classes/FetchWrapper.d.ts +124 -0
  7. package/dist/components/AspectRatio/AspectRatio.d.ts +28 -0
  8. package/dist/components/Block/Block.d.ts +9 -0
  9. package/dist/components/Box/BorderBox.d.ts +29 -0
  10. package/dist/components/Box/Box.d.ts +20 -0
  11. package/dist/components/Button/Button.d.ts +84 -0
  12. package/dist/components/ButtonGroup/ButtonGroup.d.ts +26 -0
  13. package/dist/components/Calendar/CalendarItems/CalendarColoredItem.d.ts +18 -0
  14. package/dist/components/Calendar/CalendarItems/CalendarItem.d.ts +18 -0
  15. package/dist/components/Calendar/DayContainer.d.ts +25 -0
  16. package/dist/components/Calendar/EventDescriptions.d.ts +33 -0
  17. package/dist/components/Calendar/Fourweeks/FourweeksView.d.ts +23 -0
  18. package/dist/components/Calendar/Mini/MiniView.d.ts +24 -0
  19. package/dist/components/Calendar/Month/MonthView.d.ts +23 -0
  20. package/dist/components/Calendar/Planning/PlanningView.d.ts +42 -0
  21. package/dist/components/Calendar/Props.d.ts +58 -0
  22. package/dist/components/Calendar/Week/AlldayContainer.d.ts +19 -0
  23. package/dist/components/Calendar/Week/HourRow.d.ts +30 -0
  24. package/dist/components/Calendar/Week/WeekView.d.ts +24 -0
  25. package/dist/components/Calendar/calendar.functions.d.ts +10 -0
  26. package/dist/components/Calendar/index.d.ts +15 -0
  27. package/dist/components/CodeBlock/CodeBlock.d.ts +49 -0
  28. package/dist/components/Columns/Column.d.ts +207 -0
  29. package/dist/components/Columns/Columns.d.ts +35 -0
  30. package/dist/components/Container/Container.d.ts +44 -0
  31. package/dist/components/Content/Content.d.ts +22 -0
  32. package/dist/components/DataTable/DataTable.d.ts +187 -0
  33. package/dist/components/Divider/Divider.d.ts +8 -0
  34. package/dist/components/Dropdown/Dropdown.d.ts +25 -0
  35. package/dist/components/Footer/Footer.d.ts +22 -0
  36. package/dist/components/Help/Help.d.ts +19 -0
  37. package/dist/components/Hero/Hero.d.ts +104 -0
  38. package/dist/components/Icon/Icon.d.ts +82 -0
  39. package/dist/components/Image/Image.d.ts +28 -0
  40. package/dist/components/Indicator/Indicator.d.ts +25 -0
  41. package/dist/components/Kbd/Kbd.d.ts +30 -0
  42. package/dist/components/Label/Label.d.ts +11 -0
  43. package/dist/components/Link/Link.d.ts +44 -0
  44. package/dist/components/Menu/Menu.d.ts +64 -0
  45. package/dist/components/Message/Message.d.ts +49 -0
  46. package/dist/components/Modal/Modal.d.ts +74 -0
  47. package/dist/components/Notification/Notification.d.ts +38 -0
  48. package/dist/components/Pagination/Pagination.d.ts +56 -0
  49. package/dist/components/Panel/Panel.d.ts +98 -0
  50. package/dist/components/ProgressBar/ProgressBar.d.ts +28 -0
  51. package/dist/components/QuickView/QuickView.d.ts +61 -0
  52. package/dist/components/ScrollArea/ScrollArea.d.ts +76 -0
  53. package/dist/components/Section/Section.d.ts +21 -0
  54. package/dist/components/SimpleTable/SimpleTable.d.ts +121 -0
  55. package/dist/components/Steps/Steps.d.ts +61 -0
  56. package/dist/components/TabBar/TabBar.d.ts +47 -0
  57. package/dist/components/Tag/Tag.d.ts +54 -0
  58. package/dist/components/TimeLine/TimeLine.d.ts +62 -0
  59. package/dist/components/Titles/Titles.d.ts +71 -0
  60. package/dist/components/ToggleBar/ToggleBar.d.ts +80 -0
  61. package/dist/components/Tooltip/Tooltip.d.ts +49 -0
  62. package/dist/components/TreeView/TreeView.d.ts +48 -0
  63. package/dist/contexts/ActionSheet/ActionSheetContextProvider.d.ts +76 -0
  64. package/dist/contexts/AppProvider/AppProviders.d.ts +18 -0
  65. package/dist/contexts/ColorSchemeProvider/ColorSchemeProvider.d.ts +15 -0
  66. package/dist/contexts/Confirm/ConfirmContextProvider.d.ts +60 -0
  67. package/dist/contexts/DefaultsProvider/DefaultsProvider.d.ts +94 -0
  68. package/dist/contexts/DialogsProvider/DialogsProvider.d.ts +4 -0
  69. package/dist/contexts/KeysProvider/KeysProvider.d.ts +35 -0
  70. package/dist/contexts/ModalProvider/ModalProvider.d.ts +11 -0
  71. package/dist/contexts/ModeProvider/ModeProvider.d.ts +14 -0
  72. package/dist/contexts/Notifier/Notifier.d.ts +81 -0
  73. package/dist/contexts/Prompt/PromptContextProvider.d.ts +71 -0
  74. package/dist/forms/Checkbox/Checkbox.d.ts +47 -0
  75. package/dist/forms/ComboBox/ComboBox.d.ts +44 -0
  76. package/dist/forms/ComboBox/MultiComboBox.d.ts +44 -0
  77. package/dist/forms/ComboBox/useComboBoxScroll.d.ts +4 -0
  78. package/dist/forms/Currency/CurrencyInput.d.ts +47 -0
  79. package/dist/forms/Datetimes/DateInput.d.ts +37 -0
  80. package/dist/forms/Datetimes/DateTimeInput.d.ts +44 -0
  81. package/dist/forms/Datetimes/TimeInput.d.ts +42 -0
  82. package/dist/forms/File/FileInput.d.ts +71 -0
  83. package/dist/forms/Input.d.ts +223 -0
  84. package/dist/forms/MaskedInput/MaskedInput.d.ts +46 -0
  85. package/dist/forms/Numeric/NumberInput.d.ts +14 -0
  86. package/dist/forms/Numeric/RangeInput.d.ts +21 -0
  87. package/dist/forms/Others/ColorInput.d.ts +56 -0
  88. package/dist/forms/Others/HiddenInput.d.ts +29 -0
  89. package/dist/forms/Others/TelephoneInput.d.ts +14 -0
  90. package/dist/forms/Others/URLInput.d.ts +14 -0
  91. package/dist/forms/Periodes/MonthInput.d.ts +43 -0
  92. package/dist/forms/Periodes/WeekInput.d.ts +43 -0
  93. package/dist/forms/Radio/Radio.d.ts +97 -0
  94. package/dist/forms/Select/Select.d.ts +132 -0
  95. package/dist/forms/TagsInput/TagsInput.d.ts +44 -0
  96. package/dist/forms/Text/EmailInput.d.ts +14 -0
  97. package/dist/forms/Text/FormattedInput.d.ts +54 -0
  98. package/dist/forms/Text/PasswordInput.d.ts +19 -0
  99. package/dist/forms/Text/TextArea.d.ts +31 -0
  100. package/dist/forms/Text/TextEditor.d.ts +36 -0
  101. package/dist/forms/Text/TextInput.d.ts +30 -0
  102. package/dist/hooks/useCaretPosition.d.ts +8 -0
  103. package/dist/hooks/useClickOutside.d.ts +15 -0
  104. package/dist/hooks/useClipboard.d.ts +21 -0
  105. package/dist/hooks/useContextMenu.d.ts +29 -0
  106. package/dist/hooks/useCookieState.d.ts +37 -0
  107. package/dist/hooks/useDebounced.hooks.d.ts +55 -0
  108. package/dist/hooks/useFetchApi.d.ts +65 -0
  109. package/dist/hooks/useHotkeys.d.ts +44 -0
  110. package/dist/hooks/useIndexedDb.d.ts +89 -0
  111. package/dist/hooks/useLocalStoredState.d.ts +36 -0
  112. package/dist/hooks/usePagination.d.ts +25 -0
  113. package/dist/hooks/usePropState.d.ts +16 -0
  114. package/dist/hooks/useScrollIntoView.d.ts +59 -0
  115. package/dist/hooks/useSessionStoredState.d.ts +38 -0
  116. package/dist/hooks/useToggle.d.ts +16 -0
  117. package/dist/hooks/useUncontrolled.d.ts +44 -0
  118. package/dist/hooks/useValidatedState.d.ts +21 -0
  119. package/dist/index.d.ts +169 -5773
  120. package/dist/index.js +37319 -55
  121. package/dist/internal_functions/createIconsInternal.d.ts +17 -0
  122. package/dist/internal_functions/getAlignmentClass.d.ts +16 -0
  123. package/dist/internal_functions/getColorClass.d.ts +23 -0
  124. package/dist/internal_functions/getPositionClass.d.ts +2 -0
  125. package/dist/internal_functions/getSizeClass.d.ts +23 -0
  126. package/dist/internal_functions/index.d.ts +8 -0
  127. package/{styles → dist/styles}/_all.scss +3 -1
  128. package/dist/styles/tooltip.scss +32 -0
  129. package/dist/test-data.d.ts +9 -0
  130. package/dist/types/index.d.ts +111 -0
  131. package/dist/utils/JSDateTime.class.d.ts +510 -0
  132. package/dist/utils/JSDuration.class.d.ts +79 -0
  133. package/dist/utils/calculateTxtColor.function.d.ts +14 -0
  134. package/dist/utils/colors.d.ts +26 -0
  135. package/dist/utils/colorscheme.d.ts +5 -0
  136. package/dist/utils/compare.d.ts +7 -0
  137. package/dist/utils/deserialize.function.d.ts +2 -0
  138. package/dist/utils/hasBSN.function.d.ts +27 -0
  139. package/dist/utils/isIBAN.function.d.ts +24 -0
  140. package/dist/utils/math.d.ts +22 -0
  141. package/dist/utils/operators.d.ts +192 -0
  142. package/dist/utils/serialize.function.d.ts +2 -0
  143. package/dist/utils/sorting.d.ts +34 -0
  144. package/dist/utils/string.utils.d.ts +72 -0
  145. package/eslint.config.js +108 -0
  146. package/index.html +16 -0
  147. package/jest.config.ts +12 -0
  148. package/lib/classes/Console.ts +78 -0
  149. package/lib/classes/FetchWrapper.ts +392 -0
  150. package/lib/components/AspectRatio/AspectRatio.test.tsx +67 -0
  151. package/lib/components/AspectRatio/AspectRatio.tsx +40 -0
  152. package/lib/components/Block/Block.test.tsx +24 -0
  153. package/lib/components/Block/Block.tsx +13 -0
  154. package/lib/components/Box/BorderBox.test.tsx +24 -0
  155. package/lib/components/Box/BorderBox.tsx +79 -0
  156. package/lib/components/Box/Box.test.tsx +24 -0
  157. package/lib/components/Box/Box.tsx +30 -0
  158. package/lib/components/Button/Button.test.tsx +871 -0
  159. package/lib/components/Button/Button.tsx +217 -0
  160. package/lib/components/ButtonGroup/ButtonGroup.test.tsx +115 -0
  161. package/lib/components/ButtonGroup/ButtonGroup.tsx +130 -0
  162. package/lib/components/Calendar/CalendarItems/CalendarColoredItem.tsx +63 -0
  163. package/lib/components/Calendar/CalendarItems/CalendarItem.tsx +49 -0
  164. package/lib/components/Calendar/DayContainer.tsx +115 -0
  165. package/lib/components/Calendar/EventDescriptions.tsx +131 -0
  166. package/lib/components/Calendar/Fourweeks/FourweeksView.test.tsx +262 -0
  167. package/lib/components/Calendar/Fourweeks/FourweeksView.tsx +169 -0
  168. package/lib/components/Calendar/Mini/MiniView.tsx +127 -0
  169. package/lib/components/Calendar/Month/MonthView.test.tsx +266 -0
  170. package/lib/components/Calendar/Month/MonthView.tsx +178 -0
  171. package/lib/components/Calendar/Planning/PlanningView.tsx +195 -0
  172. package/lib/components/Calendar/Props.tsx +64 -0
  173. package/lib/components/Calendar/Week/AlldayContainer.tsx +38 -0
  174. package/lib/components/Calendar/Week/HourRow.tsx +159 -0
  175. package/lib/components/Calendar/Week/WeekView.test.tsx +291 -0
  176. package/lib/components/Calendar/Week/WeekView.tsx +176 -0
  177. package/lib/components/Calendar/calendar.functions.ts +32 -0
  178. package/lib/components/Calendar/index.ts +17 -0
  179. package/lib/components/CodeBlock/CodeBlock.tsx +128 -0
  180. package/lib/components/Columns/Column.test.tsx +145 -0
  181. package/lib/components/Columns/Column.tsx +316 -0
  182. package/lib/components/Columns/Columns.test.tsx +95 -0
  183. package/lib/components/Columns/Columns.tsx +62 -0
  184. package/lib/components/Container/Container.test.tsx +87 -0
  185. package/lib/components/Container/Container.tsx +140 -0
  186. package/lib/components/Content/Content.test.tsx +51 -0
  187. package/lib/components/Content/Content.tsx +31 -0
  188. package/lib/components/DataTable/DataTable.test.tsx +403 -0
  189. package/lib/components/DataTable/DataTable.tsx +726 -0
  190. package/lib/components/Divider/Divider.tsx +18 -0
  191. package/lib/components/Dropdown/Dropdown.tsx +112 -0
  192. package/lib/components/Footer/Footer.test.tsx +42 -0
  193. package/lib/components/Footer/Footer.tsx +34 -0
  194. package/lib/components/Help/Help.test.tsx +83 -0
  195. package/lib/components/Help/Help.tsx +25 -0
  196. package/lib/components/Hero/Hero.test.tsx +222 -0
  197. package/lib/components/Hero/Hero.tsx +214 -0
  198. package/lib/components/Icon/Icon.test.tsx +157 -0
  199. package/lib/components/Icon/Icon.tsx +192 -0
  200. package/lib/components/Image/Image.test.tsx +72 -0
  201. package/lib/components/Image/Image.tsx +60 -0
  202. package/lib/components/Indicator/Indicator.test.tsx +68 -0
  203. package/lib/components/Indicator/Indicator.tsx +46 -0
  204. package/lib/components/Kbd/Kbd.test.tsx +49 -0
  205. package/lib/components/Kbd/Kbd.tsx +51 -0
  206. package/lib/components/Label/Label.tsx +21 -0
  207. package/lib/components/Link/Link.test.tsx +84 -0
  208. package/lib/components/Link/Link.tsx +87 -0
  209. package/lib/components/Menu/Menu.test.tsx +154 -0
  210. package/lib/components/Menu/Menu.tsx +264 -0
  211. package/lib/components/Message/Message.test.tsx +112 -0
  212. package/lib/components/Message/Message.tsx +154 -0
  213. package/lib/components/Modal/Modal.test.tsx +188 -0
  214. package/lib/components/Modal/Modal.tsx +188 -0
  215. package/lib/components/Notification/Notification.test.tsx +175 -0
  216. package/lib/components/Notification/Notification.tsx +110 -0
  217. package/lib/components/Pagination/Pagination.tsx +143 -0
  218. package/lib/components/Panel/Panel.tsx +225 -0
  219. package/lib/components/ProgressBar/ProgressBar.test.tsx +92 -0
  220. package/lib/components/ProgressBar/ProgressBar.tsx +42 -0
  221. package/lib/components/QuickView/QuickView.test.tsx +81 -0
  222. package/lib/components/QuickView/QuickView.tsx +122 -0
  223. package/lib/components/ScrollArea/ScrollArea.test.tsx +682 -0
  224. package/lib/components/ScrollArea/ScrollArea.tsx +183 -0
  225. package/lib/components/Section/Section.test.tsx +24 -0
  226. package/lib/components/Section/Section.tsx +32 -0
  227. package/lib/components/SimpleTable/SimpleTable.test.tsx +135 -0
  228. package/lib/components/SimpleTable/SimpleTable.tsx +327 -0
  229. package/lib/components/Steps/Steps.test.tsx +356 -0
  230. package/lib/components/Steps/Steps.tsx +164 -0
  231. package/lib/components/TabBar/TabBar.test.tsx +134 -0
  232. package/lib/components/TabBar/TabBar.tsx +125 -0
  233. package/lib/components/Tag/Tag.test.tsx +184 -0
  234. package/lib/components/Tag/Tag.tsx +131 -0
  235. package/lib/components/TimeLine/TimeLine.test.tsx +149 -0
  236. package/lib/components/TimeLine/TimeLine.tsx +116 -0
  237. package/lib/components/Titles/Titles.test.tsx +53 -0
  238. package/lib/components/Titles/Titles.tsx +205 -0
  239. package/lib/components/ToggleBar/ToggleBar.test.tsx +228 -0
  240. package/lib/components/ToggleBar/ToggleBar.tsx +208 -0
  241. package/lib/components/Tooltip/Tooltip.test.tsx +61 -0
  242. package/lib/components/Tooltip/Tooltip.tsx +203 -0
  243. package/lib/components/TreeView/TreeView.tsx +233 -0
  244. package/lib/contexts/ActionSheet/ActionSheetContextProvider.test.tsx +24 -0
  245. package/lib/contexts/ActionSheet/ActionSheetContextProvider.tsx +237 -0
  246. package/lib/contexts/AppProvider/AppProviders.tsx +56 -0
  247. package/lib/contexts/ColorSchemeProvider/ColorSchemeProvider.tsx +49 -0
  248. package/lib/contexts/Confirm/ConfirmContextProvider.test.tsx +24 -0
  249. package/lib/contexts/Confirm/ConfirmContextProvider.tsx +227 -0
  250. package/lib/contexts/DefaultsProvider/DefaultsProvider.tsx +178 -0
  251. package/lib/contexts/DialogsProvider/DialogsProvider.tsx +14 -0
  252. package/lib/contexts/KeysProvider/KeysProvider.tsx +344 -0
  253. package/lib/contexts/ModalProvider/ModalProvider.tsx +59 -0
  254. package/lib/contexts/ModeProvider/ModeProvider.tsx +26 -0
  255. package/lib/contexts/Notifier/Notifier.test.tsx +342 -0
  256. package/lib/contexts/Notifier/Notifier.tsx +209 -0
  257. package/lib/contexts/Prompt/PromptContextProvider.test.tsx +24 -0
  258. package/lib/contexts/Prompt/PromptContextProvider.tsx +280 -0
  259. package/lib/forms/Checkbox/Checkbox.test.tsx +171 -0
  260. package/lib/forms/Checkbox/Checkbox.tsx +256 -0
  261. package/lib/forms/ComboBox/ComboBox.test.tsx +24 -0
  262. package/lib/forms/ComboBox/ComboBox.tsx +464 -0
  263. package/lib/forms/ComboBox/MultiComboBox.test.tsx +30 -0
  264. package/lib/forms/ComboBox/MultiComboBox.tsx +282 -0
  265. package/lib/forms/ComboBox/useComboBoxScroll.test.ts +30 -0
  266. package/lib/forms/ComboBox/useComboBoxScroll.ts +35 -0
  267. package/lib/forms/Currency/CurrencyInput.test.tsx +131 -0
  268. package/lib/forms/Currency/CurrencyInput.tsx +269 -0
  269. package/lib/forms/Datetimes/DateInput.test.tsx +198 -0
  270. package/lib/forms/Datetimes/DateInput.tsx +56 -0
  271. package/lib/forms/Datetimes/DateTimeInput.test.tsx +223 -0
  272. package/lib/forms/Datetimes/DateTimeInput.tsx +102 -0
  273. package/lib/forms/Datetimes/TimeInput.test.tsx +218 -0
  274. package/lib/forms/Datetimes/TimeInput.tsx +100 -0
  275. package/lib/forms/File/FileInput.test.tsx +175 -0
  276. package/lib/forms/File/FileInput.tsx +240 -0
  277. package/lib/forms/Input.test.tsx +158 -0
  278. package/lib/forms/Input.tsx +542 -0
  279. package/lib/forms/MaskedInput/MaskedInput.tsx +651 -0
  280. package/lib/forms/Numeric/NumberInput.test.tsx +233 -0
  281. package/lib/forms/Numeric/NumberInput.tsx +171 -0
  282. package/lib/forms/Numeric/RangeInput.test.tsx +187 -0
  283. package/lib/forms/Numeric/RangeInput.tsx +166 -0
  284. package/lib/forms/Others/ColorInput.test.tsx +181 -0
  285. package/lib/forms/Others/ColorInput.tsx +117 -0
  286. package/lib/forms/Others/HiddenInput.test.tsx +25 -0
  287. package/lib/forms/Others/HiddenInput.tsx +46 -0
  288. package/lib/forms/Others/TelephoneInput.test.tsx +153 -0
  289. package/lib/forms/Others/TelephoneInput.tsx +26 -0
  290. package/lib/forms/Others/URLInput.test.tsx +153 -0
  291. package/lib/forms/Others/URLInput.tsx +30 -0
  292. package/lib/forms/Periodes/MonthInput.test.tsx +119 -0
  293. package/lib/forms/Periodes/MonthInput.tsx +63 -0
  294. package/lib/forms/Periodes/WeekInput.test.tsx +119 -0
  295. package/lib/forms/Periodes/WeekInput.tsx +63 -0
  296. package/lib/forms/Radio/Radio.test.tsx +322 -0
  297. package/lib/forms/Radio/Radio.tsx +347 -0
  298. package/lib/forms/Select/Select.test.tsx +223 -0
  299. package/lib/forms/Select/Select.tsx +405 -0
  300. package/lib/forms/TagsInput/TagsInput.test.tsx +27 -0
  301. package/lib/forms/TagsInput/TagsInput.tsx +289 -0
  302. package/lib/forms/Text/EmailInput.test.tsx +153 -0
  303. package/lib/forms/Text/EmailInput.tsx +29 -0
  304. package/lib/forms/Text/FormattedInput.tsx +271 -0
  305. package/lib/forms/Text/PasswordInput.test.tsx +160 -0
  306. package/lib/forms/Text/PasswordInput.tsx +154 -0
  307. package/lib/forms/Text/TextArea.test.tsx +164 -0
  308. package/lib/forms/Text/TextArea.tsx +169 -0
  309. package/lib/forms/Text/TextEditor.test.tsx +12 -0
  310. package/lib/forms/Text/TextEditor.tsx +612 -0
  311. package/lib/forms/Text/TextInput.test.tsx +147 -0
  312. package/lib/forms/Text/TextInput.tsx +60 -0
  313. package/lib/hooks/useCaretPosition.test.tsx +31 -0
  314. package/lib/hooks/useCaretPosition.tsx +23 -0
  315. package/lib/hooks/useClickOutside.test.tsx +101 -0
  316. package/lib/hooks/useClickOutside.ts +44 -0
  317. package/lib/hooks/useClipboard.ts +59 -0
  318. package/lib/hooks/useContextMenu.tsx +74 -0
  319. package/lib/hooks/useCookieState.tsx +117 -0
  320. package/lib/hooks/useDebounced.hooks.test.ts +70 -0
  321. package/lib/hooks/useDebounced.hooks.ts +110 -0
  322. package/lib/hooks/useFetchApi.ts +91 -0
  323. package/lib/hooks/useHotkeys.test.tsx +111 -0
  324. package/lib/hooks/useHotkeys.ts +139 -0
  325. package/lib/hooks/useIndexedDb.tsx +337 -0
  326. package/lib/hooks/useLocalStoredState.test.tsx +98 -0
  327. package/lib/hooks/useLocalStoredState.ts +86 -0
  328. package/lib/hooks/usePagination.test.ts +113 -0
  329. package/lib/hooks/usePagination.ts +96 -0
  330. package/lib/hooks/usePropState.ts +25 -0
  331. package/lib/hooks/useScrollIntoView.ts +250 -0
  332. package/lib/hooks/useSessionStoredState.ts +87 -0
  333. package/lib/hooks/useToggle.test.tsx +52 -0
  334. package/lib/hooks/useToggle.ts +30 -0
  335. package/lib/hooks/useUncontrolled.test.ts +52 -0
  336. package/lib/hooks/useUncontrolled.ts +65 -0
  337. package/lib/hooks/useValidatedState.test.tsx +37 -0
  338. package/lib/hooks/useValidatedState.ts +37 -0
  339. package/lib/index.ts +246 -0
  340. package/lib/internal_functions/createIconsInternal.tsx +94 -0
  341. package/lib/internal_functions/getAlignmentClass.ts +37 -0
  342. package/lib/internal_functions/getColorClass.ts +73 -0
  343. package/lib/internal_functions/getPositionClass.ts +15 -0
  344. package/lib/internal_functions/getSizeClass.ts +57 -0
  345. package/lib/internal_functions/index.ts +9 -0
  346. package/lib/styles/_all.scss +457 -0
  347. package/lib/styles/bulma-box.scss +135 -0
  348. package/lib/styles/button.scss +565 -0
  349. package/lib/styles/buttons.scss +19 -0
  350. package/lib/styles/calendar.scss +148 -0
  351. package/lib/styles/checkradio.scss +662 -0
  352. package/lib/styles/datalist.scss +27 -0
  353. package/lib/styles/divider.scss +30 -0
  354. package/lib/styles/dropdown.scss +175 -0
  355. package/lib/styles/extra-inputs.scss +77 -0
  356. package/lib/styles/hero.scss +285 -0
  357. package/lib/styles/indicators.scss +142 -0
  358. package/lib/styles/keyboard.scss +15 -0
  359. package/lib/styles/linkbutton.scss +40 -0
  360. package/lib/styles/menu.scss +164 -0
  361. package/lib/styles/mini-calendar.scss +70 -0
  362. package/lib/styles/notifier-container.scss +27 -0
  363. package/lib/styles/panel.scss +222 -0
  364. package/lib/styles/quickview.scss +140 -0
  365. package/lib/styles/range-sliders.scss +298 -0
  366. package/lib/styles/select.scss +144 -0
  367. package/lib/styles/steps.scss +288 -0
  368. package/lib/styles/table.scss +330 -0
  369. package/lib/styles/tabs.scss +271 -0
  370. package/lib/styles/timeline.scss +314 -0
  371. package/lib/styles/tooltip.scss +32 -0
  372. package/lib/styles/treeview.scss +37 -0
  373. package/lib/test-data.ts +9002 -0
  374. package/lib/types/index.tsx +180 -0
  375. package/lib/types/react-app-env.d.ts +1 -0
  376. package/lib/types/typings.d.ts +373 -0
  377. package/lib/utils/JSDateTime.class.test.ts +890 -0
  378. package/lib/utils/JSDateTime.class.ts +766 -0
  379. package/lib/utils/JSDuration.class.test.ts +98 -0
  380. package/lib/utils/JSDuration.class.ts +159 -0
  381. package/lib/utils/calculateTxtColor.function.test.ts +53 -0
  382. package/lib/utils/calculateTxtColor.function.ts +56 -0
  383. package/lib/utils/colors.test.ts +78 -0
  384. package/lib/utils/colors.ts +178 -0
  385. package/lib/utils/colorscheme.ts +26 -0
  386. package/lib/utils/compare.test.ts +137 -0
  387. package/lib/utils/compare.ts +32 -0
  388. package/lib/utils/deserialize.function.test.ts +15 -0
  389. package/lib/utils/deserialize.function.ts +9 -0
  390. package/lib/utils/hasBSN.function.test.ts +27 -0
  391. package/lib/utils/hasBSN.function.ts +53 -0
  392. package/lib/utils/isIBAN.function.test.ts +25 -0
  393. package/lib/utils/isIBAN.function.ts +131 -0
  394. package/lib/utils/math.test.ts +70 -0
  395. package/lib/utils/math.ts +32 -0
  396. package/lib/utils/operators.test.ts +619 -0
  397. package/lib/utils/operators.ts +242 -0
  398. package/lib/utils/serialize.function.test.ts +13 -0
  399. package/lib/utils/serialize.function.ts +9 -0
  400. package/lib/utils/sorting.test.ts +114 -0
  401. package/lib/utils/sorting.ts +50 -0
  402. package/lib/utils/string.utils.test.ts +85 -0
  403. package/lib/utils/string.utils.ts +146 -0
  404. package/lib/vite-env.d.ts +1 -0
  405. package/package.json +55 -83
  406. package/public/vite.svg +1 -0
  407. package/src/App.tsx +77 -0
  408. package/src/AppHero.tsx +102 -0
  409. package/src/Console.ts +28 -0
  410. package/src/MOCK_DATA.ts +10014 -0
  411. package/src/Tabs/AspectRatioTab.tsx +235 -0
  412. package/src/Tabs/ButtonsAndTags.tsx +843 -0
  413. package/src/Tabs/CalendarTab.tsx +560 -0
  414. package/src/Tabs/ContextsTab.tsx +820 -0
  415. package/src/Tabs/DataTableTab.tsx +291 -0
  416. package/src/Tabs/FunctionsTab.tsx +947 -0
  417. package/src/Tabs/HooksTab.tsx +1008 -0
  418. package/src/Tabs/InputsTab.tsx +2319 -0
  419. package/src/Tabs/LayoutsTab.tsx +751 -0
  420. package/src/Tabs/Nieuw.tsx +440 -0
  421. package/src/Tabs/NotificationTab.tsx +301 -0
  422. package/src/Tabs/OverigeTab.tsx +1631 -0
  423. package/src/Tabs/ReadmeTab.tsx +260 -0
  424. package/src/Tabs/TestTab.tsx +44 -0
  425. package/src/Tabs/datatable.css +7 -0
  426. package/src/Tabs/index.ts +14 -0
  427. package/src/assets/react.svg +1 -0
  428. package/src/components/Chevrons.tsx +15 -0
  429. package/src/components/CodeVoorbeeld.tsx +41 -0
  430. package/src/components/Nieuwsblok.tsx +22 -0
  431. package/src/main.tsx +10 -0
  432. package/src/styles/example-styles.scss +8 -0
  433. package/src/styles.css +14244 -0
  434. package/src/styles.css.map +1 -0
  435. package/src/vite-env.d.ts +1 -0
  436. package/tsconfig.app.json +32 -0
  437. package/tsconfig.build.json +132 -0
  438. package/tsconfig.json +11 -0
  439. package/tsconfig.node.json +30 -0
  440. package/vite.config.ts +52 -0
  441. package/dist/index.cjs +0 -283
  442. package/dist/index.d.cts +0 -5773
  443. package/styles/tooltip.scss +0 -201
  444. /package/{styles → dist/styles}/bulma-box.scss +0 -0
  445. /package/{styles → dist/styles}/button.scss +0 -0
  446. /package/{styles → dist/styles}/buttons.scss +0 -0
  447. /package/{styles → dist/styles}/calendar.scss +0 -0
  448. /package/{styles → dist/styles}/checkradio.scss +0 -0
  449. /package/{styles → dist/styles}/datalist.scss +0 -0
  450. /package/{styles → dist/styles}/divider.scss +0 -0
  451. /package/{styles → dist/styles}/dropdown.scss +0 -0
  452. /package/{styles → dist/styles}/extra-inputs.scss +0 -0
  453. /package/{styles → dist/styles}/hero.scss +0 -0
  454. /package/{styles → dist/styles}/indicators.scss +0 -0
  455. /package/{styles → dist/styles}/keyboard.scss +0 -0
  456. /package/{styles → dist/styles}/linkbutton.scss +0 -0
  457. /package/{styles → dist/styles}/menu.scss +0 -0
  458. /package/{styles → dist/styles}/mini-calendar.scss +0 -0
  459. /package/{styles → dist/styles}/notifier-container.scss +0 -0
  460. /package/{styles → dist/styles}/panel.scss +0 -0
  461. /package/{styles → dist/styles}/quickview.scss +0 -0
  462. /package/{styles → dist/styles}/range-sliders.scss +0 -0
  463. /package/{styles → dist/styles}/select.scss +0 -0
  464. /package/{styles → dist/styles}/steps.scss +0 -0
  465. /package/{styles → dist/styles}/table.scss +0 -0
  466. /package/{styles → dist/styles}/tabs.scss +0 -0
  467. /package/{styles → dist/styles}/timeline.scss +0 -0
  468. /package/{styles → dist/styles}/treeview.scss +0 -0
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import { IconProp } from '@fortawesome/fontawesome-svg-core';
3
+ import { SizeProp, ColorProp, StrictOmit } from '@lib/types';
4
+ type MessageProps = {
5
+ /** ID voor de message */
6
+ id?: string;
7
+ /** Content van de message */
8
+ children: React.ReactNode;
9
+ /** Optionele titel voor de message */
10
+ title?: React.ReactNode | undefined;
11
+ /** De grootte van de tekst in de messages (default = 'm') */
12
+ size?: SizeProp;
13
+ /** Kleur van de message (default = 'i') */
14
+ color?: ColorProp;
15
+ /** Eigen icon op de Message-header, anders de default:
16
+ * - `'i'`, `'l'`, `'p'` = faInfo
17
+ * - `'s'` = faCheck
18
+ * - `'w'` = faExclamation
19
+ * - `'d'` = faExclamationTriangle
20
+ */
21
+ icon?: string | IconProp;
22
+ /** dismissable messages hebben ene callback voor deze functie. Als deze functie gedefinieerd is, krijgt de message een sluitknop */
23
+ onDismiss?: () => void;
24
+ /** is deze message inklapbaar? (default = `false`) */
25
+ collapsable?: boolean;
26
+ /** begint deze message ingeklapt? (default = `false`).
27
+ * Werkt natuurlijk alleen bij `collapsable = true`
28
+ */
29
+ startCollapsed?: boolean;
30
+ itemRef?: React.RefObject<any> | null;
31
+ };
32
+ /** Zelf regelbare message.
33
+ * @returns een message
34
+ * @example <Message color="p" size="l" title="This is a title">This is a message</Message>
35
+ * @example <Message color="s" size="m" title="This is a title" collapsable>This is a message that is collapsable</Message>
36
+ * @example <Message color="w" size="s" title="This is a title" collapsable startCollapsed>This is a message that starts collapsed</Message>
37
+ * @example <Message color="d" size="s" title="This is a title" startCollapsed>This is a message that could NOT be collapsed/expanded</Message>
38
+ */
39
+ declare const Message: {
40
+ ({ id, children, title, size, color, icon: customIcon, collapsable, startCollapsed, itemRef, onDismiss, }: MessageProps): import("react/jsx-runtime").JSX.Element;
41
+ Primary(props: StrictOmit<MessageProps, "color">): import("react/jsx-runtime").JSX.Element;
42
+ Success(props: StrictOmit<MessageProps, "color">): import("react/jsx-runtime").JSX.Element;
43
+ Danger(props: StrictOmit<MessageProps, "color">): import("react/jsx-runtime").JSX.Element;
44
+ Warning(props: StrictOmit<MessageProps, "color">): import("react/jsx-runtime").JSX.Element;
45
+ Info(props: StrictOmit<MessageProps, "color">): import("react/jsx-runtime").JSX.Element;
46
+ Link(props: StrictOmit<MessageProps, "color">): import("react/jsx-runtime").JSX.Element;
47
+ };
48
+ export { Message };
49
+ export type { MessageProps };
@@ -0,0 +1,74 @@
1
+ import { SizeProp } from '@lib/types';
2
+ import React from 'react';
3
+ type ModalProps = {
4
+ /** Content van de modal. Als deze te lang wordt, wordt hij scrollable */
5
+ children: React.ReactNode;
6
+ /**
7
+ * Afhandeling van de dismiss van de modal
8
+ * @param e event
9
+ */
10
+ onDismiss?: (e?: React.MouseEvent<HTMLElement>) => void;
11
+ /** Callback voor openen van de modal */
12
+ onOpened?: (helptag?: string) => void;
13
+ /** De grootte van de modal: met SizeProp of een string. ( DEFAULT = 'm', 800px)
14
+ * - `function` met windowWidth als parameter, retourneert een string met px, %, em of vw
15
+ * - `SizeProp`: s: 600px, m: 800px, l: 1000px, xl: 1200px, max: 95%;
16
+ * - `string`: '834px', '50%, 60em', '100%'
17
+ * - `number`: size < 100 ? als percentage, anders als px
18
+ */
19
+ size?: SizeProp | 'max' | string | number | ((windowWidth: number) => `${number}${'px' | '%' | 'em' | 'vw'}`) | undefined;
20
+ /** Helptag in Loon voor de modal */
21
+ helpTag?: string | undefined;
22
+ /** blokkeer sluiten van modal als je er buiten klikt? (default = false)
23
+ * @deprecated > click-outside gaat weg
24
+ */
25
+ enableClickOutsideDismiss?: boolean;
26
+ /** id for the modal itself */
27
+ id?: string | undefined;
28
+ z?: number | undefined;
29
+ };
30
+ /**
31
+ * Een modal-component. Als een modal een Foot en een Head heeft, wordt de rest automatisch toegevoegd in een Body
32
+ * @param props modal props
33
+ * @returns een modal
34
+ * @example
35
+ * <Modal onDismiss={handleDismiss}>Modal without head and foot, all body</Modal>
36
+ *
37
+ * <Modal onDismiss={handleDismissModal} size="m">
38
+ * <Modal.Head>Optional Modal Head</Modal.Head>
39
+ * <Modal.Body>Optional Modal Body</Modal.Body>
40
+ * <Modal.Foot>Optional Modal Foot</Modal.Foot>
41
+ * </Modal>
42
+ */
43
+ declare const Modal: {
44
+ ({ id, z, size, children: nodeChildren, onOpened, onDismiss, helpTag }: ModalProps): import("react/jsx-runtime").JSX.Element;
45
+ Head({ children, id }: {
46
+ id?: string | undefined;
47
+ children: React.ReactNode;
48
+ }): import("react/jsx-runtime").JSX.Element;
49
+ /**
50
+ * Een scrollende body voor de modal
51
+ * @param props
52
+ * @returns modal body
53
+ * @example <Modal.Body>Modal Body</Modal.Body>
54
+ */
55
+ Body: typeof InternBody;
56
+ /**
57
+ * Een niet-scrollende, altijd zichtbare foot voor de modal
58
+ * @param props props
59
+ * @returns modal foot
60
+ * @example <Modal.Foot>Optional Modal Foot</Modal.Foot>
61
+ */
62
+ Foot: typeof InternFoot;
63
+ };
64
+ declare function InternBody({ id, children, helpTag }: {
65
+ id?: string | undefined;
66
+ children: React.ReactNode;
67
+ helpTag?: string | undefined;
68
+ }): import("react/jsx-runtime").JSX.Element;
69
+ declare function InternFoot({ id, children }: {
70
+ id?: string | undefined;
71
+ children: React.ReactNode;
72
+ }): import("react/jsx-runtime").JSX.Element;
73
+ export { Modal };
74
+ export type { ModalProps };
@@ -0,0 +1,38 @@
1
+ import { IconProp } from '@fortawesome/fontawesome-svg-core';
2
+ import { ColorProp, StrictOmit } from '@lib/types';
3
+ import React from 'react';
4
+ /** Props voor een Notification */
5
+ export type NotificationProps = {
6
+ /** Content van de notificatie */
7
+ children: React.ReactNode;
8
+ /**
9
+ * Afhandeling van dismiss-click notificatie
10
+ * @param e event
11
+ */
12
+ onDismiss(_e?: React.MouseEvent<HTMLButtonElement>): void;
13
+ /** onclick callback */
14
+ onClick?(_e?: React.MouseEvent<HTMLDivElement>): void;
15
+ /** Roep de @see onDismiss() automatisch aan na ... milliseconden */
16
+ autoDismissAfter?: number;
17
+ /** kleur van de notificatie (default = 'i') */
18
+ color?: ColorProp;
19
+ icon?: string | IconProp;
20
+ itemRef?: React.RefObject<any> | null;
21
+ id?: string;
22
+ };
23
+ /**
24
+ * Een instelbare notificatie. Default is een info-notificatie
25
+ * @param props
26
+ * @returns notificatie
27
+ * @example <Notification>Hello World</Notification>
28
+ */
29
+ declare const Notification: {
30
+ ({ children, onDismiss, onClick, autoDismissAfter, color, icon, id, itemRef }: NotificationProps): import("react/jsx-runtime").JSX.Element;
31
+ Primary(props: StrictOmit<NotificationProps, "color">): import("react/jsx-runtime").JSX.Element;
32
+ Danger(props: StrictOmit<NotificationProps, "color">): import("react/jsx-runtime").JSX.Element;
33
+ Warning(props: StrictOmit<NotificationProps, "color">): import("react/jsx-runtime").JSX.Element;
34
+ Success(props: StrictOmit<NotificationProps, "color">): import("react/jsx-runtime").JSX.Element;
35
+ Link(props: StrictOmit<NotificationProps, "color">): import("react/jsx-runtime").JSX.Element;
36
+ Info(props: StrictOmit<NotificationProps, "color">): import("react/jsx-runtime").JSX.Element;
37
+ };
38
+ export { Notification };
@@ -0,0 +1,56 @@
1
+ import { SizeProp } from '@lib/types';
2
+ type PaginationProps = {
3
+ /** current selected page number */ currentPage: number;
4
+ /** range to render bijvoorbeeld van de `usePagination()`-hook. Bestaat uit numbers en `'dots'` op de plekken waar puntjes moeten komen
5
+ * @example const range = [1, 'dots', 6, 7, 8, 'dots', 100] */
6
+ range: Array<number | 'dots'>;
7
+ /** grootte van de pagination buttons (default = `s`) */
8
+ size?: SizeProp;
9
+ /** verberg de `vorige-pagina`-button (default = `false)` */
10
+ hidePrev?: boolean;
11
+ /** verberg de `volgende-pagina`-button (default = `false)` */
12
+ hideNext?: boolean;
13
+ /** verberg de `eerste pagina`-button (default = `false)` */
14
+ hideFirst?: boolean;
15
+ /** verberg de `laatste-pagina`-button (default = `false)` */
16
+ hideLast?: boolean;
17
+ /** verberg de `1, 2, 3,`-buttons (default = `false)` */
18
+ hideNumbers?: boolean;
19
+ /** function om de pagina te setten */
20
+ set?: (page: number) => void;
21
+ /** function om de currentPage op de eerste pagina te setten */
22
+ first?: () => void;
23
+ /** function om de currentPage op de laatste pagina te setten */
24
+ last?: () => void;
25
+ /** function om de currentPage op vorige pagina te setten */
26
+ prev?: () => void;
27
+ /** function om de currentPage op volgende pagina te setten */
28
+ next?: () => void;
29
+ };
30
+ /**
31
+ * Pagination component voor gebruik met de `usePagination()`-hook.
32
+ * @example
33
+ * const data: Data[] = createArrayWithRandomDataOfLength(1000);
34
+ * const maxRows = 20;
35
+ * const { range, active, next, prev, first, last, setPage } = usePagination({
36
+ * total: Math.ceil(data.length / maxRows),
37
+ * });
38
+ *
39
+ * return <Pagination range={range} currentPage={currentPage} next={next} prev={prev} first={first} last={last} set={set} />
40
+ * @param range - array met de pagina-nummers die getoond moeten worden OF `'dots'` waar de puntjes moeten komen
41
+ * @param currentPage - huidige pagina
42
+ * @param size - grootte van de pagination
43
+ * @param hidePrev - verberg de vorige-pagina knop
44
+ * @param hideNext - verberg de volgende-pagina knop
45
+ * @param hideFirst - verberg de eerste-pagina knop
46
+ * @param hideLast - verberg de laatste-pagina knop
47
+ * @param hideNumbers - verberg de pagina-nummers
48
+ * @param set - functie die wordt aangeroepen als er op een pagina-nummer wordt geklikt
49
+ * @param first - functie die wordt aangeroepen als er op de eerste-pagina knop wordt geklikt
50
+ * @param last - functie die wordt aangeroepen als er op de laatste-pagina knop wordt geklikt
51
+ * @param prev - functie die wordt aangeroepen als er op de vorige-pagina knop wordt geklikt
52
+ * @param next - functie die wordt aangeroepen als er op de volgende-pagina knop wordt geklikt
53
+ */
54
+ declare function Pagination({ range, currentPage, size, hideFirst, hideLast, hidePrev, hideNext, hideNumbers, set, first, last, prev, next, }: PaginationProps): import("react/jsx-runtime").JSX.Element;
55
+ export { Pagination };
56
+ export type { PaginationProps };
@@ -0,0 +1,98 @@
1
+ import { IconProp } from '@fortawesome/fontawesome-svg-core';
2
+ import { InputValueType, InputPropsType, InputStylingPropsType } from '@lib/forms/Input';
3
+ import { ColorProp, PrettierType, StrictOmit } from '@lib/types';
4
+ import React from 'react';
5
+ type PanelProps = {
6
+ /** de kleur van het Panel (default = `i`) */
7
+ color?: ColorProp | undefined;
8
+ /** panel-children */
9
+ children?: React.ReactNode | undefined;
10
+ className?: string | undefined;
11
+ };
12
+ type PanelItemProps = {
13
+ /** Is dit panel item active? */
14
+ active?: boolean;
15
+ /** Is dit panel item disabled? */
16
+ disabled?: boolean;
17
+ /** Icon van het panel item (optioneel) */
18
+ icon?: string | IconProp;
19
+ /** content van het panelitem */
20
+ children: React.ReactNode;
21
+ /** Functie die wordt aangeroepen als er op het panel item wordt geklikt */
22
+ onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
23
+ };
24
+ type PanelTabsProps = {
25
+ /** Tabs van het panel, voor als je niet de `tabs`-prop wilt gebruikten */
26
+ children?: React.ReactNode | undefined;
27
+ /** wat is de active tab? */
28
+ activeTab?: string | undefined;
29
+ /** Functie die wordt aangeroepen als er op een tab wordt geklikt */
30
+ onTabChange?: (tab: string) => void | undefined;
31
+ /** Array van tabs, voor als je geen children wilt gebruiken */
32
+ tabs?: string[] | Array<{
33
+ label: string;
34
+ value: string;
35
+ disabled?: boolean;
36
+ }> | undefined;
37
+ };
38
+ type PanelTabItemProps = {
39
+ /** is dit tab-item active? */
40
+ active?: boolean;
41
+ /** is dit tab-item disabled? */
42
+ disabled?: boolean;
43
+ /** Functie die wordt aangeroepen als er op het tab-item wordt geklikt */
44
+ onClick?: () => void;
45
+ /** content van het tab-item */
46
+ children: React.ReactNode;
47
+ };
48
+ type PanelInputProps<T extends InputValueType> = PrettierType<StrictOmit<InputPropsType<T>, 'optionList' | 'name'> & StrictOmit<InputStylingPropsType, 'labelHidden' | 'direction' | 'icon'> & {
49
+ icon?: string | IconProp | undefined;
50
+ infoData?: string | React.ReactNode | ((helptag?: string | undefined) => void) | undefined;
51
+ name?: string | undefined;
52
+ }>;
53
+ /**
54
+ * Een panel is een soort menu
55
+ * @example
56
+ * <Panel color={panelTab}>
57
+ * <Panel.Header>Panel header</Panel.Header>
58
+ * <Panel.Item>Hieronder staan tabs. Verander het kleurtje</Panel.Item>
59
+ * <Panel.Tabs tabs={panelTabs} activeTab={panelTab} onTabChange={handleChangeActivePanelTab}>
60
+ * <Panel.TabItem disabled onClick={() => console.log('Woohoo!')}>
61
+ * WOOHOO
62
+ * </Panel.TabItem>
63
+ * </Panel.Tabs>
64
+ * <Panel.Item>Dit is een Panel Item</Panel.Item>
65
+ * <Panel.Item active>Dit is een active Panel Item</Panel.Item>
66
+ * <Panel.Item disabled>Dit is een disabled Panel Item</Panel.Item>
67
+ * <Panel.Item onClick={() => console.log('clickable panel item clicked')}>
68
+ * Dit is een klikbaar Panel Item
69
+ * </Panel.Item>
70
+ *
71
+ * <Panel.Header>Panel header in het midden</Panel.Header>
72
+ * <Panel.Item icon={faBomb}>Dit is ook een Panel Item, maar met icon</Panel.Item>
73
+ * <Panel.Item icon={faBomb} active>
74
+ * Dit is ook een active Panel Item
75
+ * </Panel.Item>
76
+ * <Panel.Item onClick={() => console.log('clickable panel item clicked')} icon={faFire}>
77
+ * Dit is een klikbaar Panel Item
78
+ * </Panel.Item>
79
+ * <Panel.Item icon={faBomb} disabled>
80
+ * Dit is een disabled item
81
+ * </Panel.Item>
82
+ * <Panel.Header>Panel header an het end</Panel.Header>
83
+ * </Panel>
84
+ */
85
+ declare const Panel: {
86
+ ({ color, className: cnProp, children }: PanelProps): import("react/jsx-runtime").JSX.Element;
87
+ Tabs({ tabs, activeTab, onTabChange, children }: PanelTabsProps): import("react/jsx-runtime").JSX.Element;
88
+ TabItem({ active, disabled, onClick, children }: PanelTabItemProps): import("react/jsx-runtime").JSX.Element;
89
+ Header({ children }: {
90
+ children: React.ReactNode;
91
+ }): import("react/jsx-runtime").JSX.Element;
92
+ Item({ icon, active, disabled, children, onClick }: PanelItemProps): import("react/jsx-runtime").JSX.Element;
93
+ /** Een input op het panel */
94
+ Input: typeof PanelInput;
95
+ };
96
+ declare function PanelInput({ icon, id: idProp, infoData, helpTag, name, onBlur, onFocus, ...props }: PanelInputProps<string>): import("react/jsx-runtime").JSX.Element;
97
+ export { Panel };
98
+ export type { PanelProps };
@@ -0,0 +1,28 @@
1
+ import { SizeProp, ColorProp } from '@lib/types';
2
+ type ProgressBarProps = {
3
+ /** Grootte van de progressbar */
4
+ size?: SizeProp;
5
+ /** De maximale waarde, default = 100 */
6
+ max?: number;
7
+ /** De waarde waarop de progressbar staat. Vul `undefined` of `'indeterminate'` in voor een onbepaalde, loopende progressbar */
8
+ value?: number | 'indeterminate';
9
+ /** teken of symbool **voor** de waarde (bijvoorbeeld in de title) */ prefix?: '%' | '€' | 'º' | '$' | '£' | '¢' | '¥' | (string & {});
10
+ /** teken of symbool **achter** de waarde (bijvoorbeeld in de title) */ suffix?: '%' | '€' | 'º' | '$' | '£' | '¢' | '¥' | (string & {});
11
+ /** De kleur van de progressbar (default = 'i') */
12
+ color?: ColorProp;
13
+ /** (optionele) hover-title voor de progress-bar. Als er geen title is gebruikt, wordt de `value` weergegeven (met pre- en suffix) */
14
+ title?: string | ((v?: number | 'indeterminate') => string);
15
+ };
16
+ /**
17
+ * Maak een progress-bar met de <progress> tag.
18
+ * Door de attribute `value` de waarde `undefined` of `'indeterminate'` te geven, krijg je een loopende progress bar
19
+ * @param props
20
+ * @returns een progress bar
21
+ * @example
22
+ * <ProgressBar value={50} />
23
+ * <ProgressBar value={50} extension="%" />
24
+ * <ProgressBar size='xl' />
25
+ */
26
+ declare function ProgressBar({ color, size, prefix, suffix, max, value, title: titleProp }: ProgressBarProps): import("react/jsx-runtime").JSX.Element;
27
+ export { ProgressBar };
28
+ export type { ProgressBarProps };
@@ -0,0 +1,61 @@
1
+ import { ColorProp } from '@lib/types';
2
+ import React from 'react';
3
+ type QuickViewProps = {
4
+ /** ref naar de quickview. Bijvoorbeeld voor gebruik met de `useClickOutside()`-hook */
5
+ itemRef?: any | null;
6
+ /** ID van de quickview */
7
+ id?: string;
8
+ /** Content van de quickview, kunnen Quickview.Head,er, Quickview.Body of Quickview.Footer elementen zijn. Andere elementen worden gewrapped in Quickview.Body */
9
+ children?: React.ReactNode;
10
+ /** onDismiss callback (voor de close-button) */
11
+ onDismiss?: () => void;
12
+ /** on Opened callback met optionele helptag */
13
+ onOpened?: (helptag?: string) => void;
14
+ /** de helptag van de quickview */
15
+ tag?: string;
16
+ /** header-kleur voor de quickview */
17
+ color?: ColorProp;
18
+ /** alignment van de quickview. LET OP: default = 'r' */
19
+ alignment?: 'l' | 'r';
20
+ /** begint deze quickview in de open-stand? */
21
+ startOpen?: boolean;
22
+ };
23
+ /**
24
+ * Component om aan (default) de rechterkant van het scherm een schermpje te tonen.
25
+ * @example
26
+ * <QuickView onDismiss={handleDismiss} tag="helpTag" color='d'>
27
+ * <QuickView.Header>Optional QuickView Head</QuickView.Head>
28
+ * <QuickView.Body>QuickView Body</QuickView.Body>
29
+ * <QuickView.Footer>Optional QuickView Foot</QuickView.Foot>
30
+ * </QuickView>
31
+ * @example
32
+ * <QuickView onDismiss={handleDismiss} tag="helpTag" color='d'>
33
+ * <div>This will be wrapped inside a QuickView.Body. A header with a dismiss-button will be added automatically</div>
34
+ * </QuickView>
35
+ * @example // met itemRef
36
+ * const itemRef = useOutsideClick(() => closeQuickView());
37
+ * // ...
38
+ * return <QuickView itemRef={itemRef} onDismiss={handleDismiss} tag="helpTag" color='d'>
39
+ * <div>This will be wrapped inside a QuickView.Body</div>
40
+ * </QuickView>
41
+ */
42
+ declare const QuickView: {
43
+ ({ children, id, itemRef, color, alignment, tag, onDismiss, onOpened }: QuickViewProps): import("react/jsx-runtime").JSX.Element;
44
+ Header: typeof InternHeader;
45
+ Body: ({ children }: InternBodyProps) => import("react/jsx-runtime").JSX.Element;
46
+ Footer: ({ children }: InternFooterProps) => import("react/jsx-runtime").JSX.Element;
47
+ };
48
+ type InternHeaderProps = {
49
+ children?: React.ReactNode;
50
+ color?: ColorProp;
51
+ onDismiss?: () => void;
52
+ };
53
+ declare function InternHeader({ children, color, onDismiss }: InternHeaderProps): import("react/jsx-runtime").JSX.Element;
54
+ type InternBodyProps = {
55
+ children: React.ReactNode;
56
+ };
57
+ type InternFooterProps = {
58
+ children: React.ReactNode;
59
+ };
60
+ export { QuickView };
61
+ export type { QuickViewProps };
@@ -0,0 +1,76 @@
1
+ import { AlignmentProp } from '@lib/types';
2
+ import React from 'react';
3
+ /**
4
+ * Maak een ScrollArea om in een bepaalde richting te kunnen scrollen. De scrollareas maken gebruik van flexbox.
5
+ */
6
+ declare const ScrollArea: {
7
+ /** Maak een horizontale flexbox container om items naast elkaar (default: van links naar rechts) neer te zetten, met of zonder wrappen
8
+ * @param props
9
+ * @returns ScrollArea in horizontale richting
10
+ * @example <ScrollArea.Horizontal>...</ScrollArea.Horizontal>
11
+ */
12
+ Horizontal: (props: {
13
+ id?: string;
14
+ itemRef?: React.RefObject<any> | null;
15
+ /** Wat moet er in de flexbox container komen */
16
+ children: React.ReactNode;
17
+ /** Moeten de items gewrapped worden (meerdere rijen/kolommen) (default = false) */
18
+ wrap?: boolean;
19
+ /** Moeten de items van eind tot begin of begin tot eind komen? (default = false) */
20
+ reverse?: boolean;
21
+ /** De ruimte tussen items (default = 0px):
22
+ * - `number`: aantal px
23
+ * - `string`: '16px', '1em', '1rem', etc
24
+ * Kan voor kolom/rij anders worden aangegeven
25
+ */
26
+ gap?: number | string | {
27
+ /** Gap voor row */
28
+ row: number | string;
29
+ /** Gap voor column */
30
+ col: number | string;
31
+ };
32
+ /** Alignment van de items (default = 'l') */
33
+ alignment?: AlignmentProp;
34
+ /** Max width van een item in de horizontal scroll area
35
+ * - `number`: aantal px
36
+ * - `string`: '160x', '10em', etc.
37
+ */
38
+ maxItemWidth?: number | string;
39
+ /** Max width van een item in de horizontal scroll area
40
+ * - `number`: aantal px
41
+ * - `string`: '160x', '10em', etc.
42
+ */
43
+ minItemWidth?: number | string;
44
+ }) => import("react/jsx-runtime").JSX.Element;
45
+ /** Maak een verticale flexbox container om items onder elkaar (default van boven naar beneden) neer te zetten, met of zonder wrappen
46
+ * @param props
47
+ * @returns ScrollArea in verticale richting
48
+ * @example <ScrollArea.Vertical>...</ScrollArea.Vertical>
49
+ */
50
+ Vertical: (props: {
51
+ itemRef?: React.RefObject<any>;
52
+ id?: string;
53
+ /** Wat moet er in de flexbox container komen */
54
+ children: React.ReactNode;
55
+ /** Moeten de items gewrapped worden (meerdere rijen/kolommen) (default = false) */
56
+ wrap?: boolean;
57
+ /** Moeten de items van eind tot begin of begin tot eind komen? (default = false) */
58
+ reverse?: boolean;
59
+ /** De ruimte tussen items (default = 0px):
60
+ * - `number`: aantal px
61
+ * - `string`: '16px', '1em', '1rem', etc
62
+ * Kan voor kolom/rij anders worden aangegeven
63
+ */
64
+ gap?: number | string | {
65
+ /** Gap voor row */
66
+ row: number | string;
67
+ /** Gap voor column */
68
+ col: number | string;
69
+ };
70
+ /** Alignment van de items (default = 'l') */
71
+ alignment?: AlignmentProp;
72
+ /** Alleen voor verticale flexboxen: een met een maximale hoogte waarna de container gaat scrollen */
73
+ maxHeight?: number | string;
74
+ }) => import("react/jsx-runtime").JSX.Element;
75
+ };
76
+ export { ScrollArea };
@@ -0,0 +1,21 @@
1
+ import { TagSizeProp } from '@lib/types';
2
+ import React from 'react';
3
+ type SectionPropsType = {
4
+ id?: string;
5
+ itemRef?: React.RefObject<HTMLElement | HTMLDivElement | any> | null;
6
+ children?: React.ReactNode | undefined;
7
+ className?: string;
8
+ /** extra styles voor dit object */
9
+ styles?: React.CSSProperties;
10
+ /** size voor de section, de verticale margin. (default = `s`). Deze gebruikt maar 3 sizes! */
11
+ size?: TagSizeProp;
12
+ };
13
+ /**
14
+ * Maak een simpele container m een pagina te verdelen in secties.
15
+ * Een section heeft een responsive padding.
16
+ * @param props alleen de children van de section
17
+ * @returns een sectie voor op de pagina, met ruimte eromheen
18
+ * @example <Section>This is a section</Section>
19
+ */
20
+ export declare function Section({ children, className: cn, styles, id, itemRef, size }: SectionPropsType): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,121 @@
1
+ import { KeyOf, StrictOmit } from '@lib/types';
2
+ import React from 'react';
3
+ type SimpleTableProps<T extends unknown = unknown> = {
4
+ id?: string;
5
+ tableRef?: React.RefObject<HTMLTableElement>;
6
+ containerRef?: React.RefObject<HTMLDivElement>;
7
+ /**
8
+ * Zichtbare kolommen:
9
+ * - `string[]`: object keys
10
+ * - `TableColProps`: naam van de kolom en de object-key die daarbij hoort. Als name undefined, wordt de key genomen
11
+ * - `undefined`: alle object keys worden gebruikt en getoont
12
+ */
13
+ columns?: KeyOf<T>[] | SimpleTableColProps<T>[];
14
+ /** De data van tabel: een array objects */
15
+ data: T[];
16
+ /** Waarmee moet een rij worden geidentificeerd. Anders wordt index gebruikt, liever niet: react-performance */
17
+ rowIdentifier: KeyOf<T> | ((item: T) => string | number);
18
+ /** Is de tabel narrow ? (default false) */
19
+ narrow?: boolean;
20
+ /** Is de tabel striped ? (default false) */
21
+ striped?: boolean;
22
+ /** Is de tabel bordered ? (default false) */
23
+ bordered?: boolean;
24
+ /** Is de tabel hovered (default false) */
25
+ hoverable?: boolean;
26
+ /** Is de tabel fullwidth (default false) */
27
+ fullwidth?: boolean;
28
+ /** Moet de inhoud van de table-header ook onderaan verschijnen ? (default false) */
29
+ hasFooter?: boolean;
30
+ /** Is de tabel horizontaal scrollable als er niet genoeg ruimte op het scherm is? (default false) */
31
+ scrollX?: boolean;
32
+ /** Terugkoppeling voor een geselecteerde rij.
33
+ * @param item: Het geselecteerde item
34
+ * @param row: de tabel-rij waarop geklikt is (<tr> tag). Om de row 'selected' te laten lijken: toggle de 'is-selected' class
35
+ */
36
+ onRowSelected?(item: T, row: HTMLTableRowElement): void;
37
+ };
38
+ type SimpleTableColProps<T extends unknown = unknown> = {
39
+ /** De naam van de kolom
40
+ * - Als niet opgegeven wordt de obj key gebruikt uit de 'value'prop (als dat een string is)
41
+ * - Als je geen header wil tonen, zet dan een lege string als header
42
+ */
43
+ header?: string;
44
+ /** De obj-property die gebruikt moet worden in de kolom
45
+ * - Als string: object[value] geeft de waarde
46
+ * - Als function: eigen function om de value te zetten
47
+ */
48
+ value: KeyOf<T> | ((v: T) => string | React.ReactNode);
49
+ hidden?: boolean;
50
+ };
51
+ /**
52
+ * Render een tabel. Als je een tabel met zoekfunctie, pagination en sorteren wil, moet je een @see DataTable nemen.
53
+ * @param props
54
+ * @returns een tabel gestyled met bulma
55
+ * @example
56
+ * <SimpleTable
57
+ * data={customTableData}
58
+ * columns={['id', 'first_name', 'last_name', 'email']}
59
+ * rowIdentifier="id"
60
+ * striped={true}
61
+ * fullwidth={true}
62
+ * hoverable={true}
63
+ * narrow={true}
64
+ * bordered={false}
65
+ * />
66
+ */
67
+ declare function SimpleTable<T extends unknown = unknown>({ rowIdentifier: rowKey, columns: cols, data, onRowSelected, tableRef, containerRef, id, hasFooter, ...props }: SimpleTableProps<T>): import("react/jsx-runtime").JSX.Element;
68
+ type TableProps = {
69
+ id?: string;
70
+ containerRef?: React.RefObject<HTMLDivElement>;
71
+ tableRef?: React.RefObject<HTMLTableElement>;
72
+ /** Is de tabel scrollbaar in horizontale richting ? (default false) */ scrollX?: boolean;
73
+ /** Is de tabel narrow ? (default false) */ narrow?: boolean;
74
+ /** Is de tabel striped ? (default false) */ striped?: boolean;
75
+ /** Is de tabel bordered ? (default false) */ bordered?: boolean;
76
+ /** Is de tabel hovered (default false) */ hoverable?: boolean;
77
+ /** Is de tabel fullwidth (default false) */ fullwidth?: boolean;
78
+ /** De tabel rows, headers, body, etc */ children: React.ReactNode;
79
+ /** Extra classnames */ className?: string;
80
+ };
81
+ type TablePartProps<T extends HTMLElement = HTMLElement> = {
82
+ children?: React.ReactNode;
83
+ } & React.HTMLProps<T>;
84
+ /** Simpele wrapper om een Bulma-tabel heen. De classes van bulma woren hier gebruikt, verder is het een gewone HTML-tabel, je moet dus alles nog zelf regelen.
85
+ * @param props de props voor de tabel
86
+ * @description
87
+ * - `Table` - is alleen de `<table>`-tag. Met de extra functions op dit object kan je dingen aan de tabel toevoegen.
88
+ * - `Table.Head`, `Table.Body` en `Table.Foot` zijn de `<thead>`, `<tbody>` en `<tfoot>` tags. Deze kan je gebruiken om de tabel op te bouwen.
89
+ * - `Table.Row` is de `<tr>` tag. Deze kan je gebruiken om een rij in de tabel te maken.
90
+ * - `Table.HCell` of `Table.TH` - is de `<th>` tag. Deze kan je gebruiken om een header-cel in de tabel te maken.
91
+ * - `Table.Cell` of `Table.TD` zijn de `<td>` tag. Deze kan je gebruiken om een cel in de tabel te maken.
92
+ * - `Table.ColGroup` is de `<colgroup>` tag. Deze kan je gebruiken om een colgroup in de tabel te maken.
93
+ * - `Table.Col` is de `<col>` tag. Deze kan je gebruiken om een column in de tabel te maken en deze bijvoorbeeld met een achtergrondkleur te vullen.
94
+ */
95
+ declare const Table: {
96
+ ({ id, containerRef, tableRef, scrollX, striped, bordered, hoverable, fullwidth, narrow, children, className: extraClasses, }: TableProps): import("react/jsx-runtime").JSX.Element;
97
+ Head({ children, className, ...props }: TablePartProps<HTMLTableSectionElement>): import("react/jsx-runtime").JSX.Element;
98
+ Foot({ children, className, ...props }: TablePartProps<HTMLTableSectionElement>): import("react/jsx-runtime").JSX.Element;
99
+ Body({ children, className, ...props }: TablePartProps<HTMLTableSectionElement>): import("react/jsx-runtime").JSX.Element;
100
+ Row({ children, className, ...props }: TablePartProps<HTMLTableRowElement>): import("react/jsx-runtime").JSX.Element;
101
+ Cell({ children, className, ...props }: TablePartProps<HTMLTableCellElement> & {
102
+ children?: React.ReactNode;
103
+ }): import("react/jsx-runtime").JSX.Element;
104
+ HCell({ children, className, ...props }: TablePartProps<HTMLTableCellElement> & {
105
+ children?: React.ReactNode;
106
+ }): import("react/jsx-runtime").JSX.Element;
107
+ ColGroup({ className, ...props }: StrictOmit<TablePartProps<HTMLTableColElement>, "span">): import("react/jsx-runtime").JSX.Element;
108
+ Col(props: StrictOmit<TablePartProps<HTMLTableColElement>, "children">): import("react/jsx-runtime").JSX.Element;
109
+ /** `<tr>`, table-row */
110
+ TR: ({ children, className, ...props }: TablePartProps<HTMLTableRowElement>) => import("react/jsx-runtime").JSX.Element;
111
+ /** `<td>`-cell */
112
+ TD: ({ children, className, ...props }: TablePartProps<HTMLTableCellElement> & {
113
+ children?: React.ReactNode;
114
+ }) => import("react/jsx-runtime").JSX.Element;
115
+ /** `<th>`-cell */
116
+ TH: ({ children, className, ...props }: TablePartProps<HTMLTableCellElement> & {
117
+ children?: React.ReactNode;
118
+ }) => import("react/jsx-runtime").JSX.Element;
119
+ };
120
+ export { SimpleTable, Table };
121
+ export type { SimpleTableProps, SimpleTableColProps };