fuma 2.0.49 → 2.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 (338) hide show
  1. package/dist/action/index.d.ts +2 -5
  2. package/dist/action/index.js +2 -5
  3. package/dist/action/list/handlers.d.ts +6 -6
  4. package/dist/action/list/handlers.js +6 -5
  5. package/dist/action/list/index.d.ts +1 -1
  6. package/dist/action/list/index.js +11 -5
  7. package/dist/action/list/trigger.js +6 -2
  8. package/dist/action/list/utils.js +1 -1
  9. package/dist/action/tip.js +2 -2
  10. package/dist/command/command.svelte.d.ts +16 -0
  11. package/dist/command/command.svelte.js +68 -0
  12. package/dist/command/index.d.ts +1 -0
  13. package/dist/command/index.js +1 -0
  14. package/dist/data.d.ts +87 -0
  15. package/dist/data.js +51 -0
  16. package/dist/index.d.ts +5 -5
  17. package/dist/index.js +5 -5
  18. package/dist/input/InputBoolean.svelte +107 -0
  19. package/dist/input/InputBoolean.svelte.d.ts +12 -0
  20. package/dist/input/InputNumber.svelte +33 -0
  21. package/dist/input/InputNumber.svelte.d.ts +10 -0
  22. package/dist/input/InputRadio.svelte +56 -0
  23. package/dist/input/InputRadio.svelte.d.ts +11 -0
  24. package/dist/input/InputRange.svelte +30 -0
  25. package/dist/input/InputRange.svelte.d.ts +10 -0
  26. package/dist/input/InputRelation.svelte +119 -0
  27. package/dist/input/InputRelation.svelte.d.ts +39 -0
  28. package/dist/input/InputSelect.svelte +113 -0
  29. package/dist/input/InputSelect.svelte.d.ts +37 -0
  30. package/dist/input/InputSelectNative.svelte +56 -0
  31. package/dist/input/InputSelectNative.svelte.d.ts +12 -0
  32. package/dist/input/InputString.svelte +48 -0
  33. package/dist/input/InputString.svelte.d.ts +11 -0
  34. package/dist/input/InputTextarea.svelte +47 -0
  35. package/dist/input/InputTextarea.svelte.d.ts +11 -0
  36. package/dist/input/Issues.svelte +21 -0
  37. package/dist/input/Issues.svelte.d.ts +7 -0
  38. package/dist/input/index.d.ts +11 -0
  39. package/dist/input/index.js +10 -0
  40. package/dist/input/type.d.ts +5 -0
  41. package/dist/input/type.js +1 -0
  42. package/dist/popover/Popover.svelte +50 -0
  43. package/dist/popover/index.d.ts +2 -0
  44. package/dist/popover/index.js +2 -0
  45. package/dist/popover/popover.svelte.d.ts +26 -0
  46. package/dist/popover/popover.svelte.js +101 -0
  47. package/dist/remote/useForm.d.ts +6 -0
  48. package/dist/remote/useForm.js +22 -0
  49. package/dist/search/Spans.svelte +15 -0
  50. package/dist/search/Spans.svelte.d.ts +7 -0
  51. package/dist/search/index.d.ts +2 -0
  52. package/dist/search/index.js +2 -0
  53. package/dist/search/search.js +96 -0
  54. package/dist/server/index.d.ts +0 -4
  55. package/dist/server/index.js +0 -4
  56. package/dist/server/parseQuery.js +1 -1
  57. package/dist/server/sse.js +4 -4
  58. package/dist/server/table.js +1 -1
  59. package/dist/state/index.d.ts +1 -0
  60. package/dist/state/index.js +1 -0
  61. package/dist/state/param.svelte.d.ts +18 -0
  62. package/dist/state/param.svelte.js +66 -0
  63. package/dist/ui/button/ButtonDelete.svelte +49 -28
  64. package/dist/ui/button/ButtonDelete.svelte.d.ts +12 -31
  65. package/dist/ui/button/index.d.ts +0 -1
  66. package/dist/ui/button/index.js +0 -1
  67. package/dist/ui/copy/ButtonCopy.svelte +43 -0
  68. package/dist/ui/copy/ButtonCopy.svelte.d.ts +17 -0
  69. package/dist/ui/copy/index.d.ts +2 -0
  70. package/dist/ui/copy/index.js +2 -0
  71. package/dist/ui/copy/useCopy.svelte.d.ts +10 -0
  72. package/dist/ui/copy/useCopy.svelte.js +36 -0
  73. package/dist/ui/dialog/Dialog.svelte +56 -26
  74. package/dist/ui/dialog/Dialog.svelte.d.ts +14 -35
  75. package/dist/ui/dialog/index.d.ts +0 -1
  76. package/dist/ui/dialog/index.js +0 -1
  77. package/dist/ui/drawer/Drawer.svelte +53 -45
  78. package/dist/ui/drawer/Drawer.svelte.d.ts +8 -63
  79. package/dist/ui/drawer/drawerFly.js +1 -1
  80. package/dist/ui/drawer/useLayer.svelte.d.ts +5 -0
  81. package/dist/ui/drawer/useLayer.svelte.js +33 -0
  82. package/dist/ui/index.d.ts +4 -12
  83. package/dist/ui/index.js +4 -12
  84. package/dist/ui/menu/ContextMenu.svelte +27 -26
  85. package/dist/ui/menu/ContextMenu.svelte.d.ts +9 -35
  86. package/dist/ui/menu/DropDown.svelte +44 -26
  87. package/dist/ui/menu/DropDown.svelte.d.ts +18 -43
  88. package/dist/ui/menu/DropDownMenu.svelte +51 -41
  89. package/dist/ui/menu/DropDownMenu.svelte.d.ts +7 -29
  90. package/dist/ui/menu/dropdown.css +4 -4
  91. package/dist/ui/menu/index.d.ts +1 -1
  92. package/dist/ui/menu/index.js +2 -1
  93. package/dist/ui/mode/ToggleMode.svelte +25 -14
  94. package/dist/ui/mode/ToggleMode.svelte.d.ts +10 -35
  95. package/dist/ui/mode/index.d.ts +1 -1
  96. package/dist/ui/mode/index.js +1 -1
  97. package/dist/ui/mode/useMode.svelte.d.ts +8 -0
  98. package/dist/ui/mode/useMode.svelte.js +40 -0
  99. package/dist/ui/pagination/Pagination.svelte +18 -14
  100. package/dist/ui/pagination/Pagination.svelte.d.ts +4 -18
  101. package/dist/ui/range/RangePicker.svelte +3 -2
  102. package/dist/ui/range/RangePickerButton.svelte +49 -37
  103. package/dist/ui/range/RangePickerButton.svelte.d.ts +7 -21
  104. package/dist/ui/range/index.d.ts +1 -1
  105. package/dist/ui/range/index.js +1 -1
  106. package/dist/ui/table/Table.svelte +15 -21
  107. package/dist/ui/table/Table.svelte.d.ts +1 -1
  108. package/dist/ui/table/TableBody.svelte +1 -1
  109. package/dist/ui/table/TableBody.svelte.d.ts +1 -1
  110. package/dist/ui/table/TableFieldsEdition.svelte +90 -78
  111. package/dist/ui/table/TableFieldsEdition.svelte.d.ts +14 -13
  112. package/dist/ui/table/TableHead.svelte +1 -1
  113. package/dist/ui/table/TableViewSelect.svelte +69 -69
  114. package/dist/ui/table/TableViewSelect.svelte.d.ts +10 -23
  115. package/dist/ui/table/cell/TableCellArray.svelte +1 -1
  116. package/dist/ui/table/cell/TableCellBoolean.svelte +3 -4
  117. package/dist/ui/table/cell/index.d.ts +1 -1
  118. package/dist/ui/table/cell/index.js +1 -1
  119. package/dist/ui/table/head/OrderButtons.svelte +18 -13
  120. package/dist/ui/table/head/OrderButtons.svelte.d.ts +11 -23
  121. package/dist/ui/table/head/TableHeadBoolean.svelte +3 -3
  122. package/dist/ui/table/head/TableHeadDate.svelte +41 -53
  123. package/dist/ui/table/head/TableHeadDate.svelte.d.ts +1 -1
  124. package/dist/ui/table/head/TableHeadDefault.svelte +2 -1
  125. package/dist/ui/table/head/TableHeadNumber.svelte +94 -108
  126. package/dist/ui/table/head/TableHeadNumber.svelte.d.ts +13 -10
  127. package/dist/ui/table/head/TableHeadSelect.svelte +55 -52
  128. package/dist/ui/table/head/TableHeadSelect.svelte.d.ts +13 -10
  129. package/dist/ui/table/head/TableHeadString.svelte +28 -34
  130. package/dist/ui/table/head/index.d.ts +3 -3
  131. package/dist/ui/table/head/index.js +3 -3
  132. package/dist/ui/table/index.d.ts +5 -5
  133. package/dist/ui/table/index.js +4 -5
  134. package/dist/utils/csv.js +1 -1
  135. package/dist/utils/eventEmitter.d.ts +2 -2
  136. package/dist/utils/eventEmitter.js +18 -11
  137. package/dist/utils/index.d.ts +4 -6
  138. package/dist/utils/index.js +4 -6
  139. package/dist/utils/normalizePath.js +1 -1
  140. package/dist/utils/options.d.ts +6 -5
  141. package/dist/utils/options.js +3 -2
  142. package/dist/utils/tippy.d.ts +1 -1
  143. package/dist/utils/tippy.js +1 -1
  144. package/dist/validation/index.d.ts +0 -1
  145. package/dist/validation/index.js +0 -1
  146. package/dist/validation/zod.d.ts +12 -393
  147. package/dist/validation/zod.js +22 -82
  148. package/package.json +111 -134
  149. package/dist/action/heightScreen.d.ts +0 -10
  150. package/dist/action/heightScreen.js +0 -24
  151. package/dist/action/portal.d.ts +0 -3
  152. package/dist/action/portal.js +0 -9
  153. package/dist/action/selector.d.ts +0 -15
  154. package/dist/action/selector.js +0 -71
  155. package/dist/api/client.d.ts +0 -3
  156. package/dist/api/client.js +0 -24
  157. package/dist/api/config.d.ts +0 -46
  158. package/dist/api/config.js +0 -7
  159. package/dist/api/index.d.ts +0 -3
  160. package/dist/api/index.js +0 -3
  161. package/dist/api/server.d.ts +0 -11
  162. package/dist/api/server.js +0 -17
  163. package/dist/private/Meta.svelte +0 -16
  164. package/dist/private/Meta.svelte.d.ts +0 -30
  165. package/dist/private/api.d.ts +0 -61
  166. package/dist/private/api.js +0 -10
  167. package/dist/private/constant.d.ts +0 -14
  168. package/dist/private/constant.js +0 -6
  169. package/dist/private/model.d.ts +0 -70
  170. package/dist/private/model.js +0 -25
  171. package/dist/private/prisma.d.ts +0 -2
  172. package/dist/private/prisma.js +0 -2
  173. package/dist/private/store.d.ts +0 -1
  174. package/dist/private/store.js +0 -2
  175. package/dist/server/auth.d.ts +0 -12
  176. package/dist/server/auth.js +0 -15
  177. package/dist/server/formAction.d.ts +0 -13
  178. package/dist/server/formAction.js +0 -8
  179. package/dist/server/json.d.ts +0 -1
  180. package/dist/server/json.js +0 -16
  181. package/dist/server/parseFormData.d.ts +0 -10
  182. package/dist/server/parseFormData.js +0 -85
  183. package/dist/server/try.d.ts +0 -9
  184. package/dist/server/try.js +0 -41
  185. package/dist/store/index.d.ts +0 -2
  186. package/dist/store/index.js +0 -2
  187. package/dist/store/isSmallScreen.d.ts +0 -1
  188. package/dist/store/isSmallScreen.js +0 -14
  189. package/dist/store/param.d.ts +0 -22
  190. package/dist/store/param.js +0 -61
  191. package/dist/store/session.d.ts +0 -1
  192. package/dist/store/session.js +0 -13
  193. package/dist/ui/badge/Badge.svelte +0 -9
  194. package/dist/ui/badge/Badge.svelte.d.ts +0 -21
  195. package/dist/ui/badge/index.d.ts +0 -1
  196. package/dist/ui/badge/index.js +0 -1
  197. package/dist/ui/button/ButtonCopy.svelte +0 -59
  198. package/dist/ui/button/ButtonCopy.svelte.d.ts +0 -27
  199. package/dist/ui/card/Card.svelte +0 -43
  200. package/dist/ui/card/Card.svelte.d.ts +0 -41
  201. package/dist/ui/card/CardBasic.svelte +0 -15
  202. package/dist/ui/card/CardBasic.svelte.d.ts +0 -31
  203. package/dist/ui/card/CardCollapse.svelte +0 -71
  204. package/dist/ui/card/CardCollapse.svelte.d.ts +0 -39
  205. package/dist/ui/card/CardFullScreen.svelte +0 -31
  206. package/dist/ui/card/CardFullScreen.svelte.d.ts +0 -38
  207. package/dist/ui/card/CardLink.svelte +0 -22
  208. package/dist/ui/card/CardLink.svelte.d.ts +0 -31
  209. package/dist/ui/card/index.d.ts +0 -5
  210. package/dist/ui/card/index.js +0 -5
  211. package/dist/ui/context.d.ts +0 -6
  212. package/dist/ui/context.js +0 -12
  213. package/dist/ui/dialog/DialogConfirm.svelte +0 -24
  214. package/dist/ui/dialog/DialogConfirm.svelte.d.ts +0 -35
  215. package/dist/ui/drawer/layers.d.ts +0 -7
  216. package/dist/ui/drawer/layers.js +0 -68
  217. package/dist/ui/form/Form.svelte +0 -168
  218. package/dist/ui/form/Form.svelte.d.ts +0 -62
  219. package/dist/ui/form/FormInput.svelte +0 -15
  220. package/dist/ui/form/FormSection.svelte +0 -78
  221. package/dist/ui/form/FormSection.svelte.d.ts +0 -39
  222. package/dist/ui/form/form.d.ts +0 -37
  223. package/dist/ui/form/form.js +0 -57
  224. package/dist/ui/form/formInput.js +0 -33
  225. package/dist/ui/form/index.d.ts +0 -3
  226. package/dist/ui/form/index.js +0 -3
  227. package/dist/ui/icon/Icon.svelte +0 -53
  228. package/dist/ui/icon/Icon.svelte.d.ts +0 -29
  229. package/dist/ui/icon/index.d.ts +0 -1
  230. package/dist/ui/icon/index.js +0 -1
  231. package/dist/ui/input/FormControl.svelte +0 -77
  232. package/dist/ui/input/FormControl.svelte.d.ts +0 -34
  233. package/dist/ui/input/InputBoolean.svelte +0 -33
  234. package/dist/ui/input/InputBoolean.svelte.d.ts +0 -46
  235. package/dist/ui/input/InputCheckboxs.svelte +0 -71
  236. package/dist/ui/input/InputCheckboxs.svelte.d.ts +0 -57
  237. package/dist/ui/input/InputCheckboxsMenu.svelte +0 -106
  238. package/dist/ui/input/InputCheckboxsMenu.svelte.d.ts +0 -59
  239. package/dist/ui/input/InputCheckboxsTree.svelte +0 -18
  240. package/dist/ui/input/InputCheckboxsTree.svelte.d.ts +0 -25
  241. package/dist/ui/input/InputCheckboxsTreeNodes.svelte +0 -68
  242. package/dist/ui/input/InputCheckboxsTreeNodes.svelte.d.ts +0 -27
  243. package/dist/ui/input/InputCombo.svelte +0 -99
  244. package/dist/ui/input/InputCombo.svelte.d.ts +0 -59
  245. package/dist/ui/input/InputDate.svelte +0 -47
  246. package/dist/ui/input/InputDate.svelte.d.ts +0 -46
  247. package/dist/ui/input/InputDateTime.svelte +0 -41
  248. package/dist/ui/input/InputDateTime.svelte.d.ts +0 -23
  249. package/dist/ui/input/InputImage.svelte +0 -116
  250. package/dist/ui/input/InputImage.svelte.d.ts +0 -48
  251. package/dist/ui/input/InputImagePreview.svelte +0 -60
  252. package/dist/ui/input/InputImagePreview.svelte.d.ts +0 -27
  253. package/dist/ui/input/InputNumber.svelte +0 -31
  254. package/dist/ui/input/InputNumber.svelte.d.ts +0 -23
  255. package/dist/ui/input/InputOptionInParam.svelte +0 -36
  256. package/dist/ui/input/InputOptionInParam.svelte.d.ts +0 -24
  257. package/dist/ui/input/InputOptions.svelte +0 -85
  258. package/dist/ui/input/InputOptions.svelte.d.ts +0 -21
  259. package/dist/ui/input/InputPassword.svelte +0 -25
  260. package/dist/ui/input/InputPassword.svelte.d.ts +0 -45
  261. package/dist/ui/input/InputRadio.svelte +0 -84
  262. package/dist/ui/input/InputRadio.svelte.d.ts +0 -56
  263. package/dist/ui/input/InputRelation.svelte +0 -171
  264. package/dist/ui/input/InputRelation.svelte.d.ts +0 -76
  265. package/dist/ui/input/InputRelations.svelte +0 -166
  266. package/dist/ui/input/InputRelations.svelte.d.ts +0 -55
  267. package/dist/ui/input/InputSearch.svelte +0 -59
  268. package/dist/ui/input/InputSearch.svelte.d.ts +0 -29
  269. package/dist/ui/input/InputSelect.svelte +0 -84
  270. package/dist/ui/input/InputSelect.svelte.d.ts +0 -29
  271. package/dist/ui/input/InputText.svelte +0 -46
  272. package/dist/ui/input/InputText.svelte.d.ts +0 -30
  273. package/dist/ui/input/InputTextarea.svelte +0 -23
  274. package/dist/ui/input/InputTextarea.svelte.d.ts +0 -23
  275. package/dist/ui/input/InputTime.svelte +0 -47
  276. package/dist/ui/input/InputTime.svelte.d.ts +0 -46
  277. package/dist/ui/input/RelationAfter.svelte +0 -34
  278. package/dist/ui/input/RelationAfter.svelte.d.ts +0 -26
  279. package/dist/ui/input/SelectorList.svelte +0 -50
  280. package/dist/ui/input/SelectorList.svelte.d.ts +0 -49
  281. package/dist/ui/input/action.d.ts +0 -13
  282. package/dist/ui/input/action.js +0 -56
  283. package/dist/ui/input/index.d.ts +0 -26
  284. package/dist/ui/input/index.js +0 -26
  285. package/dist/ui/input/textRich/InputTextRich.svelte +0 -72
  286. package/dist/ui/input/textRich/InputTextRich.svelte.d.ts +0 -48
  287. package/dist/ui/input/textRich/SuggesionList.svelte +0 -25
  288. package/dist/ui/input/textRich/SuggesionList.svelte.d.ts +0 -23
  289. package/dist/ui/input/textRich/ToolMark.svelte +0 -22
  290. package/dist/ui/input/textRich/ToolMark.svelte.d.ts +0 -25
  291. package/dist/ui/input/textRich/ToolMarkColor.svelte +0 -36
  292. package/dist/ui/input/textRich/ToolMarkColor.svelte.d.ts +0 -23
  293. package/dist/ui/input/textRich/ToolMarkLink.svelte +0 -72
  294. package/dist/ui/input/textRich/ToolMarkLink.svelte.d.ts +0 -21
  295. package/dist/ui/input/textRich/ToolMenu.svelte +0 -66
  296. package/dist/ui/input/textRich/ToolMenu.svelte.d.ts +0 -33
  297. package/dist/ui/input/textRich/ToolMenuAlign.svelte +0 -50
  298. package/dist/ui/input/textRich/ToolMenuAlign.svelte.d.ts +0 -21
  299. package/dist/ui/input/textRich/ToolMenuInsert.svelte +0 -54
  300. package/dist/ui/input/textRich/ToolMenuInsert.svelte.d.ts +0 -23
  301. package/dist/ui/input/textRich/ToolMenuNode.svelte +0 -60
  302. package/dist/ui/input/textRich/ToolMenuNode.svelte.d.ts +0 -21
  303. package/dist/ui/input/textRich/ToolsBar.svelte +0 -61
  304. package/dist/ui/input/textRich/ToolsBar.svelte.d.ts +0 -24
  305. package/dist/ui/input/textRich/extensions.d.ts +0 -2
  306. package/dist/ui/input/textRich/extensions.js +0 -62
  307. package/dist/ui/input/textRich/indent.d.ts +0 -13
  308. package/dist/ui/input/textRich/indent.js +0 -112
  309. package/dist/ui/input/textRich/index.d.ts +0 -3
  310. package/dist/ui/input/textRich/index.js +0 -3
  311. package/dist/ui/input/textRich/suggestion.d.ts +0 -7
  312. package/dist/ui/input/textRich/suggestion.js +0 -55
  313. package/dist/ui/input/textRich/tiptapParser.d.ts +0 -4
  314. package/dist/ui/input/textRich/tiptapParser.js +0 -29
  315. package/dist/ui/input/types.d.ts +0 -15
  316. package/dist/ui/input/types.js +0 -1
  317. package/dist/ui/login/Login.svelte +0 -99
  318. package/dist/ui/login/Login.svelte.d.ts +0 -20
  319. package/dist/ui/login/index.d.ts +0 -1
  320. package/dist/ui/login/index.js +0 -1
  321. package/dist/ui/placeholder/Placeholder.svelte +0 -12
  322. package/dist/ui/placeholder/Placeholder.svelte.d.ts +0 -30
  323. package/dist/ui/placeholder/PlaceholderImage.svelte +0 -16
  324. package/dist/ui/placeholder/PlaceholderImage.svelte.d.ts +0 -30
  325. package/dist/ui/placeholder/index.d.ts +0 -2
  326. package/dist/ui/placeholder/index.js +0 -2
  327. package/dist/ui/tabs/Tabs.svelte +0 -32
  328. package/dist/ui/tabs/Tabs.svelte.d.ts +0 -22
  329. package/dist/ui/tabs/TabsIcon.svelte +0 -60
  330. package/dist/ui/tabs/TabsIcon.svelte.d.ts +0 -24
  331. package/dist/ui/tabs/index.d.ts +0 -8
  332. package/dist/ui/tabs/index.js +0 -2
  333. package/dist/utils/avatar.d.ts +0 -1
  334. package/dist/utils/avatar.js +0 -5
  335. package/dist/utils/component.d.ts +0 -6
  336. package/dist/utils/component.js +0 -3
  337. package/dist/validation/form.d.ts +0 -34
  338. package/dist/validation/form.js +0 -103
@@ -1,14 +1,13 @@
1
1
  <script lang="ts">
2
- import { onMount } from 'svelte'
3
- import { mdiChevronDown, mdiContentSaveEditOutline, mdiPlus } from '@mdi/js'
4
- import { page } from '$app/stores'
2
+ import { ChevronDownIcon, PlusIcon, SaveIcon } from '@lucide/svelte'
5
3
  import { enhance } from '$app/forms'
4
+ import { page } from '$app/state'
6
5
 
7
- import { Icon } from '../icon/index.js'
8
6
  import { Dialog } from '../dialog/index.js'
9
7
  import { DropDown } from '../menu/index.js'
10
- import { InputText } from '../input/index.js'
11
- import { useForm } from '../../validation/form.js'
8
+
9
+ // import { InputText } from '../input/index.js';
10
+ // import { useForm } from '../../validation/form.jss';
12
11
 
13
12
  type View = {
14
13
  id: string
@@ -16,70 +15,71 @@
16
15
  query: string
17
16
  }
18
17
 
19
- export let key: string
20
- export let views: View[]
21
- export let action = ''
22
- export let actionCreate = '?/view_create'
23
- export let actionUpdate = '?/view_update'
24
- export let actionDelete = '?/view_delete'
25
-
26
- let dialog: HTMLDialogElement
27
- const form = useForm({
28
- onSuccess() {
29
- dialog.close()
30
- }
31
- })
32
-
33
- let query = getQuery($page.url)
34
- let selectedView = views.find((v) => v.query === query)
35
- let isNewView = !!query && !selectedView
36
-
37
- onMount(() =>
38
- page.subscribe(({ url }) => {
39
- query = getQuery(url)
40
- selectedView = views.find((v) => v.query === query)
41
- isNewView = !!query && !selectedView
42
- })
43
- )
44
-
45
- function getQuery({ searchParams }: URL) {
46
- const searchParam = new URLSearchParams(searchParams)
18
+ let {
19
+ key,
20
+ views,
21
+ action = '',
22
+ actionCreate = '?/view_create',
23
+ actionUpdate = '?/view_update',
24
+ actionDelete = '?/view_delete'
25
+ }: {
26
+ key: string
27
+ views: View[]
28
+ action?: string
29
+ actionCreate?: string
30
+ actionUpdate?: string
31
+ actionDelete?: string
32
+ } = $props()
33
+
34
+ let dialog = $state<HTMLDialogElement>()
35
+ // const form = useForm({
36
+ // onSuccess() {
37
+ // dialog?.close();
38
+ // }
39
+ // });
40
+
41
+ let query = $derived.by(() => {
42
+ const searchParam = new URLSearchParams(page.url.searchParams)
47
43
  searchParam.delete('skip')
48
44
  searchParam.delete('take')
49
45
  return searchParam.toString()
50
- }
46
+ })
47
+
48
+ let selectedView = $derived(views.find((v) => v.query === query))
49
+ let isNewView = $derived(!!query && !selectedView)
51
50
  </script>
52
51
 
53
52
  <DropDown>
54
- <button
55
- type="button"
56
- slot="activator"
57
- class="menu-item bordered btn-sm gap-1 rounded-lg border font-semibold opacity-90"
58
- >
59
- <span>{isNewView ? 'Nouvelle vue' : selectedView?.name || 'Vue simple'}</span>
60
- <Icon path={mdiChevronDown} size={20} class="translate-x-1 translate-y-px opacity-90" />
61
- </button>
53
+ {#snippet activator()}
54
+ <button
55
+ type="button"
56
+ class="menu-item bordered gap-1 rounded-lg border font-semibold opacity-90 btn-sm"
57
+ >
58
+ <span>{isNewView ? 'Nouvelle vue' : selectedView?.name || 'Vue simple'}</span>
59
+ <ChevronDownIcon size={20} class="translate-x-1 translate-y-px opacity-90" />
60
+ </button>
61
+ {/snippet}
62
62
 
63
63
  <ul class="flex flex-col gap-1">
64
64
  {#if isNewView}
65
65
  <li>
66
66
  <button
67
67
  type="button"
68
- class="menu-item w-full pr-[6px]"
69
- on:click={() => {
68
+ class="menu-item w-full pr-1.5"
69
+ onclick={() => {
70
70
  selectedView = undefined
71
- dialog.showModal()
71
+ dialog?.showModal()
72
72
  }}
73
73
  >
74
74
  <span>Ajouter la nouvelle vue</span>
75
- <Icon path={mdiPlus} class="ml-auto opacity-80" size={21} />
75
+ <PlusIcon class="ml-auto opacity-80" size={21} />
76
76
  </button>
77
77
  <hr class="my-1" />
78
78
  </li>
79
79
  {/if}
80
80
 
81
81
  <li>
82
- <a href={$page.url.pathname} class="menu-item" class:active={!query}>
82
+ <a href={page.url.pathname} class="menu-item" class:active={!query}>
83
83
  <span class="grow">Vue simple</span>
84
84
  </a>
85
85
  </li>
@@ -87,21 +87,21 @@
87
87
  {#each views as view (view.id)}
88
88
  <li>
89
89
  <a
90
- href="{$page.url.pathname}?{view.query}"
90
+ href="{page.url.pathname}?{view.query}"
91
91
  class="menu-item group pr-1"
92
92
  class:active={view.id === selectedView?.id}
93
93
  >
94
94
  <span class="grow">{view.name}</span>
95
95
  <button
96
96
  type="button"
97
- class="btn btn-square btn-ghost btn-xs rounded"
98
- on:click|preventDefault={() => {
97
+ class="btn btn-square rounded btn-ghost btn-xs"
98
+ onclick={(e) => {
99
+ e.preventDefault()
99
100
  selectedView = view
100
- dialog.showModal()
101
+ dialog?.showModal()
101
102
  }}
102
103
  >
103
- <Icon
104
- path={mdiContentSaveEditOutline}
104
+ <SaveIcon
105
105
  class="opacity-50 group-hover:opacity-80"
106
106
  size={18}
107
107
  title="Modifier la vue '{view.name}'"
@@ -114,14 +114,18 @@
114
114
  </DropDown>
115
115
 
116
116
  <Dialog bind:dialog>
117
- <h2 slot="header" class="title">
118
- {#if selectedView}
119
- Modifier la vue
120
- {:else}
121
- Ajouter la nouvelle vue
122
- {/if}
123
- </h2>
124
-
117
+ {#snippet header()}
118
+ <h2 class="title">
119
+ {#if selectedView}
120
+ Modifier la vue
121
+ {:else}
122
+ Ajouter la nouvelle vue
123
+ {/if}
124
+ </h2>
125
+ {/snippet}
126
+
127
+ <span>TODO: how to build basic form (create update) with new system ?</span>
128
+ <!--
125
129
  <form
126
130
  action="{action}{selectedView ? actionUpdate : actionCreate}"
127
131
  method="post"
@@ -133,18 +137,14 @@
133
137
  <input type="hidden" name="key" value={key} />
134
138
  <input type="hidden" name="query" value={query} />
135
139
 
136
- <InputText
137
- key="name"
138
- input={{ placeholder: 'Nom de la vue' }}
139
- value={selectedView?.name || ''}
140
- />
140
+ <Input key="name" input={{ placeholder: 'Nom de la vue' }} value={selectedView?.name || ''} />
141
141
 
142
142
  <div class="mt-2 flex flex-row-reverse gap-2">
143
143
  <button class="btn"> Valider </button>
144
144
 
145
- <button formaction="{action}{actionDelete}" class="btn btn-ghost text-error">
145
+ <button formaction="{action}{actionDelete}" class="btn text-error btn-ghost">
146
146
  Supprimer
147
147
  </button>
148
148
  </div>
149
- </form>
149
+ </form> -->
150
150
  </Dialog>
@@ -1,29 +1,16 @@
1
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- declare const TableViewSelect: $$__sveltets_2_IsomorphicComponent<{
1
+ type View = {
2
+ id: string;
3
+ name: string;
4
+ query: string;
5
+ };
6
+ type $$ComponentProps = {
15
7
  key: string;
16
- views: {
17
- id: string;
18
- name: string;
19
- query: string;
20
- }[];
8
+ views: View[];
21
9
  action?: string;
22
10
  actionCreate?: string;
23
11
  actionUpdate?: string;
24
12
  actionDelete?: string;
25
- }, {
26
- [evt: string]: CustomEvent<any>;
27
- }, {}, {}, string>;
28
- type TableViewSelect = InstanceType<typeof TableViewSelect>;
13
+ };
14
+ declare const TableViewSelect: import("svelte").Component<$$ComponentProps, {}, "">;
15
+ type TableViewSelect = ReturnType<typeof TableViewSelect>;
29
16
  export default TableViewSelect;
@@ -4,7 +4,7 @@
4
4
 
5
5
  <td>
6
6
  {#each cell as content}
7
- <span class="badge mr-1 whitespace-nowrap">
7
+ <span class="mr-1 badge whitespace-nowrap">
8
8
  {content}
9
9
  </span>
10
10
  {/each}
@@ -1,14 +1,13 @@
1
1
  <script lang="ts">
2
- import { mdiCheck, mdiClose } from '@mdi/js'
3
- import { Icon } from '../../icon/index.js'
2
+ import { CheckIcon, XIcon } from '@lucide/svelte'
4
3
 
5
4
  let { cell }: { cell: boolean } = $props()
6
5
  </script>
7
6
 
8
7
  <td>
9
8
  {#if cell}
10
- <Icon path={mdiCheck} class="fill-success" />
9
+ <CheckIcon class="fill-success" />
11
10
  {:else}
12
- <Icon path={mdiClose} class="fill-error" />
11
+ <XIcon class="fill-error" />
13
12
  {/if}
14
13
  </td>
@@ -1,5 +1,5 @@
1
1
  export { default as TableCellArray } from './TableCellArray.svelte';
2
2
  export { default as TableCellBoolean } from './TableCellBoolean.svelte';
3
+ export { default as TableCellDate } from './TableCellDate.svelte';
3
4
  export { default as TableCellNumber } from './TableCellNumber.svelte';
4
5
  export { default as TableCellString } from './TableCellString.svelte';
5
- export { default as TableCellDate } from './TableCellDate.svelte';
@@ -1,5 +1,5 @@
1
1
  export { default as TableCellArray } from './TableCellArray.svelte';
2
2
  export { default as TableCellBoolean } from './TableCellBoolean.svelte';
3
+ export { default as TableCellDate } from './TableCellDate.svelte';
3
4
  export { default as TableCellNumber } from './TableCellNumber.svelte';
4
5
  export { default as TableCellString } from './TableCellString.svelte';
5
- export { default as TableCellDate } from './TableCellDate.svelte';
@@ -1,19 +1,24 @@
1
1
  <script lang="ts">
2
- import { Icon } from '../../icon/index.js'
3
- import { mdiSortAscending, mdiSortDescending } from '@mdi/js'
4
- import { createEventDispatcher } from 'svelte'
2
+ import { ArrowDownNarrowWideIcon, ArrowDownWideNarrowIcon, type IconProps } from '@lucide/svelte'
3
+ import type { Component } from 'svelte'
5
4
 
6
5
  type Order = 'asc' | 'desc' | undefined
7
- export let order: Order
8
- export let iconAsc = mdiSortAscending
9
- export let iconDesc = mdiSortDescending
10
-
11
- const dispatch = createEventDispatcher<{ change: Order }>()
6
+ let {
7
+ order = $bindable(),
8
+ IconAsc = ArrowDownNarrowWideIcon,
9
+ IconDesc = ArrowDownWideNarrowIcon,
10
+ onChange
11
+ }: {
12
+ order: Order
13
+ IconAsc?: Component<IconProps>
14
+ IconDesc?: Component<IconProps>
15
+ onChange?: (order: Order) => void
16
+ } = $props()
12
17
 
13
18
  const handleOrderClick = (orderBy: 'asc' | 'desc') => () => {
14
19
  if (order === orderBy) order = undefined
15
20
  else order = orderBy
16
- dispatch('change', order)
21
+ onChange?.(order)
17
22
  }
18
23
  </script>
19
24
 
@@ -23,17 +28,17 @@
23
28
  <button
24
29
  class="btn ring-primary"
25
30
  class:ring-2={order === 'asc'}
26
- on:click={handleOrderClick('asc')}
31
+ onclick={handleOrderClick('asc')}
27
32
  >
28
- <Icon path={iconAsc} />
33
+ <IconAsc />
29
34
  <span>Ascendant</span>
30
35
  </button>
31
36
  <button
32
37
  class="btn ring-primary"
33
38
  class:ring-2={order === 'desc'}
34
- on:click={handleOrderClick('desc')}
39
+ onclick={handleOrderClick('desc')}
35
40
  >
36
- <Icon path={iconDesc} />
41
+ <IconDesc />
37
42
  <span>Descendant</span>
38
43
  </button>
39
44
  </div>
@@ -1,24 +1,12 @@
1
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- declare const OrderButtons: $$__sveltets_2_IsomorphicComponent<{
15
- order: "desc" | "asc" | undefined;
16
- iconAsc?: string;
17
- iconDesc?: string;
18
- }, {
19
- change: CustomEvent<"desc" | "asc" | undefined>;
20
- } & {
21
- [evt: string]: CustomEvent<any>;
22
- }, {}, {}, string>;
23
- type OrderButtons = InstanceType<typeof OrderButtons>;
1
+ import { type IconProps } from '@lucide/svelte';
2
+ import type { Component } from 'svelte';
3
+ type Order = 'asc' | 'desc' | undefined;
4
+ type $$ComponentProps = {
5
+ order: Order;
6
+ IconAsc?: Component<IconProps>;
7
+ IconDesc?: Component<IconProps>;
8
+ onChange?: (order: Order) => void;
9
+ };
10
+ declare const OrderButtons: Component<$$ComponentProps, {}, "order">;
11
+ type OrderButtons = ReturnType<typeof OrderButtons>;
24
12
  export default OrderButtons;
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" generics="Item extends ItemBase">
2
- import { mdiCheck, mdiClose } from '@mdi/js'
2
+ import { CheckIcon, XIcon } from '@lucide/svelte'
3
3
  import type { ItemBase, TableField } from '../index.js'
4
4
  import TableHeadSelect from './TableHeadSelect.svelte'
5
5
 
@@ -9,7 +9,7 @@
9
9
  <TableHeadSelect
10
10
  {field}
11
11
  options={[
12
- { value: 'true', label: 'Oui', icon: mdiCheck },
13
- { value: 'false', label: 'Non', icon: mdiClose }
12
+ { value: 'true', label: 'Oui', icon: CheckIcon },
13
+ { value: 'false', label: 'Non', icon: XIcon }
14
14
  ]}
15
15
  />
@@ -1,27 +1,26 @@
1
1
  <script lang="ts" generics="Item extends ItemBase">
2
+ import { CalendarArrowDownIcon, CalendarArrowUpIcon, CalendarSearchIcon } from '@lucide/svelte'
2
3
  import { goto } from '$app/navigation'
3
4
  import { page } from '$app/state'
4
- import {
5
- mdiCalendarFilterOutline,
6
- mdiSortClockAscendingOutline,
7
- mdiSortClockDescendingOutline
8
- } from '@mdi/js'
9
-
5
+ import { urlParam } from '../../../state/param.svelte.ts'
10
6
  import { DropDown } from '../../menu/index.js'
11
- import { InputTime } from '../../input/index.js'
12
- import type { ItemBase, TableField } from '../index.js'
13
7
  import { formatRange } from '../../range/format.js'
14
- import { RangePicker, type RangeAsDate } from '../../range/index.js'
15
- import { urlParam } from '../../../store/param.js'
8
+ import { type RangeAsDate, RangePicker } from '../../range/index.js'
9
+ import type { ItemBase, TableField } from '../index.js'
16
10
  import { jsonParse } from '../../../utils/jsonParse.js'
17
- import { Icon } from '../../icon/index.js'
18
11
  import OrderButtons from './OrderButtons.svelte'
19
12
 
20
- let { field }: { field: TableField<Item> } = $props()
13
+ let { field }: { field: Omit<TableField<Item>, 'cell'> } = $props()
21
14
 
22
15
  let dropDown: DropDown
23
16
  let rangePicker: RangePicker
24
- let initialValue = jsonParse<{ start?: string; end?: string; order?: 'asc' | 'desc' }>(
17
+
18
+ let initialValue = jsonParse<{
19
+ start?: string
20
+ end?: string
21
+ order?: 'asc' | 'desc'
22
+ }>(
23
+ // svelte-ignore state_referenced_locally
25
24
  page.url.searchParams.get(field.key),
26
25
  {}
27
26
  )
@@ -37,7 +36,7 @@
37
36
  function updateUrl() {
38
37
  isValidPeriod = !!range.start && !!range.end
39
38
  if (!isValidPeriod && !order) {
40
- goto($urlParam.without(field.key, 'skip', 'take'), {
39
+ goto(urlParam.without(field.key, 'skip', 'take'), {
41
40
  replaceState: true,
42
41
  noScroll: true,
43
42
  keepFocus: true
@@ -45,7 +44,7 @@
45
44
  return
46
45
  }
47
46
  goto(
48
- $urlParam.with(
47
+ urlParam.with(
49
48
  {
50
49
  [field.key]: JSON.stringify({
51
50
  ...(isValidPeriod
@@ -70,7 +69,7 @@
70
69
  range = { start: null, end: null }
71
70
  dropDown.hide()
72
71
  rangePicker.clear()
73
- goto($urlParam.without(field.key, 'skip', 'take'), {
72
+ goto(urlParam.without(field.key, 'skip', 'take'), {
74
73
  replaceState: true,
75
74
  noScroll: true,
76
75
  keepFocus: true
@@ -85,37 +84,37 @@
85
84
  hideOnNav={false}
86
85
  class="max-h-none"
87
86
  >
88
- <button slot="activator" class="menu-item min-h-8 w-full flex-wrap gap-y-1">
89
- <div class="flex gap-2">
90
- <span>{field.label}</span>
91
- {#if !isValidPeriod}
92
- <Icon path={mdiCalendarFilterOutline} size={15} class="opacity-50" />
93
- {/if}
94
- </div>
87
+ {#snippet activator()}
88
+ <button class="menu-item min-h-8 w-full flex-wrap gap-y-1">
89
+ <div class="flex gap-2">
90
+ <span>{field.label}</span>
91
+ {#if !isValidPeriod}
92
+ <CalendarSearchIcon size={15} class="opacity-50" />
93
+ {/if}
94
+ </div>
95
95
 
96
- {#if isValidPeriod}
97
- <span class="badge badge-primary badge-xs text-[0.7rem] font-normal text-white">
98
- {formatRange(range)}
99
- </span>
100
- {/if}
101
- {#if order}
102
- <Icon
103
- path={order === 'asc' ? mdiSortClockAscendingOutline : mdiSortClockDescendingOutline}
104
- size={18}
105
- class="fill-primary"
106
- />
107
- {/if}
108
- </button>
96
+ {#if isValidPeriod}
97
+ <span class="badge badge-xs text-[0.7rem] font-normal text-white badge-primary">
98
+ {formatRange(range)}
99
+ </span>
100
+ {/if}
101
+ {#if order === 'asc'}
102
+ <CalendarArrowDownIcon size={18} class="fill-primary" />
103
+ {:else if order === 'desc'}
104
+ <CalendarArrowUpIcon size={18} class="fill-primary" />
105
+ {/if}
106
+ </button>
107
+ {/snippet}
109
108
 
110
109
  {#if field.sortable !== false}
111
110
  <OrderButtons
112
111
  bind:order
113
- on:change={() => {
112
+ onChange={() => {
114
113
  updateUrl()
115
114
  dropDown.hide()
116
115
  }}
117
- iconAsc={mdiSortClockAscendingOutline}
118
- iconDesc={mdiSortClockDescendingOutline}
116
+ IconAsc={CalendarArrowDownIcon}
117
+ IconDesc={CalendarArrowUpIcon}
119
118
  />
120
119
  {/if}
121
120
 
@@ -141,20 +140,9 @@
141
140
  <input class="hidden" type="text" name="end" value={range.end?.toJSON()} />
142
141
 
143
142
  <div class="m-2 flex gap-2">
144
- <InputTime
145
- label="A partir de"
146
- bind:value={range.start}
147
- enhanceDisabled
148
- class="grow"
149
- on:input={updateUrl}
150
- />
151
- <InputTime
152
- label="Jusqu'à"
153
- bind:value={range.end}
154
- enhanceDisabled
155
- class="grow"
156
- on:input={updateUrl}
157
- />
143
+ <!-- <InputTime label="A partir de" bind:value={range.start} class="grow" on:input={updateUrl} />
144
+ <InputTime label="Jusqu'à" bind:value={range.end} class="grow" on:input={updateUrl} /> -->
145
+ <span>TODO: same problème with input...</span>
158
146
  </div>
159
147
 
160
148
  <div class="m-2 flex flex-row-reverse gap-2">
@@ -1,7 +1,7 @@
1
1
  import type { ItemBase, TableField } from '../index.js';
2
2
  declare function $$render<Item extends ItemBase>(): {
3
3
  props: {
4
- field: TableField<Item>;
4
+ field: Omit<TableField<Item>, "cell">;
5
5
  };
6
6
  exports: {};
7
7
  bindings: "";
@@ -1,6 +1,7 @@
1
1
  <script lang="ts" generics="Item extends ItemBase">
2
- import type { ItemBase, TableField } from '../index.js'
3
2
  import { tip } from '../../../action/tip.js'
3
+ import type { ItemBase, TableField } from '../index.js'
4
+
4
5
  let { field }: { field: TableField<Item> } = $props()
5
6
  </script>
6
7