mountain-ui 1.0.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 (164) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +139 -0
  3. package/index.js +36 -0
  4. package/package.json +79 -0
  5. package/src/app.html +12 -0
  6. package/src/lib/assets/favicon.svg +1 -0
  7. package/src/lib/registry/entityRegistry/components/EntityButton.svelte +14 -0
  8. package/src/lib/registry/entityRegistry/components/EntityCard.svelte +64 -0
  9. package/src/lib/registry/entityRegistry/components/EntityForm.svelte +98 -0
  10. package/src/lib/registry/entityRegistry/components/FieldButton copy.svelte +41 -0
  11. package/src/lib/registry/entityRegistry/components/FieldButton.svelte +41 -0
  12. package/src/lib/registry/entityRegistry/components/FieldCard.svelte +60 -0
  13. package/src/lib/registry/entityRegistry/components/FieldIcon.svelte +21 -0
  14. package/src/lib/registry/entityRegistry/components/FieldInput.svelte +23 -0
  15. package/src/lib/registry/entityRegistry/components/FieldIsRequiredIcon.svelte +22 -0
  16. package/src/lib/registry/entityRegistry/components/FieldIsSecretIcon.svelte +19 -0
  17. package/src/lib/registry/entityRegistry/components/FieldIsUniqueIcon.svelte +21 -0
  18. package/src/lib/registry/entityRegistry/components/FormCtx.svelte +7 -0
  19. package/src/lib/registry/entityRegistry/components/LinkIcon.svelte +20 -0
  20. package/src/lib/registry/entityRegistry/createEntity.js +40 -0
  21. package/src/lib/registry/entityRegistry/registry.svelte.js +140 -0
  22. package/src/lib/registry/fieldTypeRegistry/components/FieldTypeButton.svelte +12 -0
  23. package/src/lib/registry/fieldTypeRegistry/components/FieldTypeCard.svelte +11 -0
  24. package/src/lib/registry/fieldTypeRegistry/components/FieldTypeIcon.svelte +11 -0
  25. package/src/lib/registry/fieldTypeRegistry/components/FieldTypeInput.svelte +11 -0
  26. package/src/lib/registry/fieldTypeRegistry/components/Label.svelte +28 -0
  27. package/src/lib/registry/fieldTypeRegistry/components/Line.svelte +31 -0
  28. package/src/lib/registry/fieldTypeRegistry/createFieldType.js +34 -0
  29. package/src/lib/registry/fieldTypeRegistry/fieldTypes/FieldTypeButton.svelte +10 -0
  30. package/src/lib/registry/fieldTypeRegistry/fieldTypes/FieldTypeCard.svelte +41 -0
  31. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Lines/Button.svelte +10 -0
  32. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Lines/Card.svelte +6 -0
  33. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Lines/Icon.svelte +5 -0
  34. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Lines/Input.svelte +150 -0
  35. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Lines/index.js +37 -0
  36. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Link/Button.svelte +10 -0
  37. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Link/Card.svelte +6 -0
  38. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Link/Icon.svelte +4 -0
  39. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Link/Input/Input.svelte +106 -0
  40. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Link/Input/LinkCard.svelte +49 -0
  41. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Link/Input/LinkCardSelection.svelte +65 -0
  42. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Link/Input/utils.js +25 -0
  43. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Link/index.js +37 -0
  44. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Primary/Button.svelte +10 -0
  45. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Primary/Card.svelte +6 -0
  46. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Primary/Icon.svelte +5 -0
  47. package/src/lib/registry/fieldTypeRegistry/fieldTypes/Primary/index.js +36 -0
  48. package/src/lib/registry/fieldTypeRegistry/fieldTypes/calculation/CalculationColumn/Button.svelte +8 -0
  49. package/src/lib/registry/fieldTypeRegistry/fieldTypes/calculation/CalculationColumn/Card.svelte +6 -0
  50. package/src/lib/registry/fieldTypeRegistry/fieldTypes/calculation/CalculationColumn/Icon.svelte +9 -0
  51. package/src/lib/registry/fieldTypeRegistry/fieldTypes/calculation/CalculationColumn/Input.svelte +153 -0
  52. package/src/lib/registry/fieldTypeRegistry/fieldTypes/calculation/CalculationColumn/index.js +37 -0
  53. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListCheckbox/Button.svelte +8 -0
  54. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListCheckbox/Card.svelte +6 -0
  55. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListCheckbox/Icon.svelte +4 -0
  56. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListCheckbox/Input.svelte +88 -0
  57. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListCheckbox/index.js +39 -0
  58. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListRadio/Button.svelte +8 -0
  59. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListRadio/Card.svelte +6 -0
  60. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListRadio/Icon.svelte +4 -0
  61. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListRadio/Input.svelte +95 -0
  62. package/src/lib/registry/fieldTypeRegistry/fieldTypes/list/ListRadio/index.js +44 -0
  63. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/NumberInt/Button.svelte +8 -0
  64. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/NumberInt/Card.svelte +6 -0
  65. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/NumberInt/Icon.svelte +5 -0
  66. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/NumberInt/Input.svelte +16 -0
  67. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/NumberInt/index.js +41 -0
  68. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/FieldTypeInputFloat.svelte +55 -0
  69. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatDefault/Button.svelte +8 -0
  70. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatDefault/Card.svelte +6 -0
  71. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatDefault/Icon.svelte +7 -0
  72. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatDefault/Input.svelte +14 -0
  73. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatDefault/index.js +41 -0
  74. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPercent/Button.svelte +8 -0
  75. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPercent/Card.svelte +6 -0
  76. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPercent/Icon.svelte +6 -0
  77. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPercent/Input.svelte +15 -0
  78. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPercent/index.js +41 -0
  79. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPrice/Button.svelte +8 -0
  80. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPrice/Card.svelte +6 -0
  81. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPrice/Icon.svelte +5 -0
  82. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPrice/Input.svelte +15 -0
  83. package/src/lib/registry/fieldTypeRegistry/fieldTypes/number/float/NumberFloatPrice/index.js +41 -0
  84. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/TextTextarea/Button.svelte +8 -0
  85. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/TextTextarea/Card.svelte +6 -0
  86. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/TextTextarea/Icon.svelte +8 -0
  87. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/TextTextarea/Input.svelte +14 -0
  88. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/TextTextarea/index.js +39 -0
  89. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/FieldTypeInputText.svelte +14 -0
  90. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharDefault/Button.svelte +8 -0
  91. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharDefault/Card.svelte +6 -0
  92. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharDefault/Icon.svelte +8 -0
  93. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharDefault/Input.svelte +15 -0
  94. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharDefault/index.js +38 -0
  95. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharEmail/Button.svelte +8 -0
  96. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharEmail/Card.svelte +6 -0
  97. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharEmail/Icon.svelte +4 -0
  98. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharEmail/Input.svelte +14 -0
  99. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharEmail/index.js +38 -0
  100. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPassword/Button.svelte +8 -0
  101. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPassword/Card.svelte +6 -0
  102. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPassword/Icon.svelte +7 -0
  103. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPassword/Input.svelte +37 -0
  104. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPassword/index.js +38 -0
  105. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPhone/Button.svelte +8 -0
  106. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPhone/Card.svelte +6 -0
  107. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPhone/Icon.svelte +3 -0
  108. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPhone/Input.svelte +14 -0
  109. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharPhone/index.js +38 -0
  110. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharUrl/Button.svelte +8 -0
  111. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharUrl/Card.svelte +6 -0
  112. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharUrl/Icon.svelte +7 -0
  113. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharUrl/Input.svelte +14 -0
  114. package/src/lib/registry/fieldTypeRegistry/fieldTypes/text/varchar/TextVarcharUrl/index.js +38 -0
  115. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeCreatedAt/Button.svelte +8 -0
  116. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeCreatedAt/Card.svelte +6 -0
  117. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeCreatedAt/Icon.svelte +11 -0
  118. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeCreatedAt/index.js +38 -0
  119. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDate/Button.svelte +8 -0
  120. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDate/Card.svelte +6 -0
  121. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDate/Icon.svelte +12 -0
  122. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDate/Input.svelte +15 -0
  123. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDate/index.js +39 -0
  124. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDatetime/Button.svelte +8 -0
  125. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDatetime/Card.svelte +6 -0
  126. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDatetime/Icon.svelte +11 -0
  127. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDatetime/Input.svelte +15 -0
  128. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDatetime/index.js +39 -0
  129. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDay/Button.svelte +8 -0
  130. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDay/Card.svelte +6 -0
  131. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDay/Icon.svelte +12 -0
  132. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDay/Input.svelte +15 -0
  133. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeDay/index.js +39 -0
  134. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeHour/Button.svelte +8 -0
  135. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeHour/Card.svelte +6 -0
  136. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeHour/Icon.svelte +4 -0
  137. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeHour/Input.svelte +15 -0
  138. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeHour/index.js +39 -0
  139. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonth/Button.svelte +8 -0
  140. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonth/Card.svelte +6 -0
  141. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonth/Icon.svelte +12 -0
  142. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonth/Input.svelte +15 -0
  143. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonth/index.js +39 -0
  144. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonthOfYear/Button.svelte +8 -0
  145. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonthOfYear/Card.svelte +6 -0
  146. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonthOfYear/Icon.svelte +12 -0
  147. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonthOfYear/Input.svelte +15 -0
  148. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeMonthOfYear/index.js +39 -0
  149. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeUpdatedAt/Button.svelte +8 -0
  150. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeUpdatedAt/Card.svelte +6 -0
  151. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeUpdatedAt/Icon.svelte +11 -0
  152. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeUpdatedAt/index.js +38 -0
  153. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeYear/Button.svelte +8 -0
  154. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeYear/Card.svelte +6 -0
  155. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeYear/Icon.svelte +12 -0
  156. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeYear/Input.svelte +15 -0
  157. package/src/lib/registry/fieldTypeRegistry/fieldTypes/time/TimeYear/index.js +39 -0
  158. package/src/lib/registry/fieldTypeRegistry/registerDefaultFieldTypes.js +66 -0
  159. package/src/lib/registry/fieldTypeRegistry/registry.svelte.js +72 -0
  160. package/src/routes/+layout.svelte +623 -0
  161. package/src/routes/+page.svelte +196 -0
  162. package/src/routes/global.css +197 -0
  163. package/src/routes/login/+page.svelte +112 -0
  164. package/src/routes/registry/fieldRegistry.svelte.js +37 -0
@@ -0,0 +1,88 @@
1
+ <script>
2
+ import Label from '$lib/registry/fieldTypeRegistry/components/Label.svelte';
3
+ import Line from '$lib/registry/fieldTypeRegistry/components/Line.svelte';
4
+ import { Checkbox, Tag } from 'hamzus-ui';
5
+
6
+ let {
7
+ value = $bindable(null),
8
+ name = '',
9
+ label = '',
10
+ required = false,
11
+ unique = false,
12
+ secret = false,
13
+ compact = false,
14
+ choices = [],
15
+ onChange = () => {},
16
+ onChangeDetails = () => {},
17
+ ...props
18
+ } = $props();
19
+
20
+ const selected = $derived.by(() => {
21
+ if (!value) return [];
22
+
23
+ try {
24
+ const parsed = JSON.parse(value);
25
+ return Array.isArray(parsed) ? parsed : [];
26
+ } catch {
27
+ return [];
28
+ }
29
+ });
30
+
31
+ function isChecked(choice) {
32
+ return selected.includes(choice.value);
33
+ }
34
+
35
+ function handleChange(choice, checked) {
36
+ const values = [...selected];
37
+
38
+ if (checked) {
39
+ if (!values.includes(choice.value)) {
40
+ values.push(choice.value);
41
+ }
42
+ } else {
43
+ const index = values.indexOf(choice.value);
44
+ if (index !== -1) {
45
+ values.splice(index, 1);
46
+ }
47
+ }
48
+
49
+ value = values.length ? JSON.stringify(values) : null;
50
+ onChange(value);
51
+ onChangeDetails(values);
52
+ }
53
+ </script>
54
+
55
+ <Line {compact}>
56
+ <Label {unique} {secret} {label} {required}></Label>
57
+ <div class="choices">
58
+ <input type="text" bind:value {name} {required} style="display:none" {...props} />
59
+
60
+ {#each choices as choice}
61
+ <Checkbox
62
+ checked={isChecked(choice)}
63
+ onChange={(checked) => handleChange(choice, checked)}
64
+ direction="rtl"
65
+ >
66
+ <Tag color={choice.color.replace('--', '')}>
67
+ {choice.value}
68
+ </Tag>
69
+ </Checkbox>
70
+ {/each}
71
+ </div>
72
+ </Line>
73
+
74
+ <style>
75
+ .choices {
76
+ display: flex;
77
+ flex-direction: column;
78
+ row-gap: var(--pad-m);
79
+ padding: var(--pad-m);
80
+ background-color: var(--bg-2);
81
+ border-radius: var(--radius-m);
82
+ width: 100%;
83
+ }
84
+
85
+ .choices:has(input:user-invalid) {
86
+ border: 1px solid var(--red);
87
+ }
88
+ </style>
@@ -0,0 +1,39 @@
1
+ import { createFieldType } from "$lib/registry/fieldTypeRegistry/createFieldType"
2
+
3
+ import Icon from "./Icon.svelte"
4
+ import Button from "./Button.svelte"
5
+ import Card from "./Card.svelte"
6
+ import Input from "./Input.svelte"
7
+
8
+ export default createFieldType({
9
+ type: "list-checkbox",
10
+
11
+ category_path: "list",
12
+
13
+ label: "Case à cocher",
14
+ description: "Sélection multiple à l’aide de cases à cocher.",
15
+
16
+ is_hidden: false,
17
+
18
+ defaultProps:{
19
+
20
+ },
21
+
22
+ can_be_required: true,
23
+ can_be_unique: true,
24
+
25
+ components: {
26
+ icon: Icon,
27
+ button: Button,
28
+ card: Card,
29
+ input: Input,
30
+ cell: null,
31
+ filter: null,
32
+ properties: null
33
+ },
34
+
35
+ formatter: (value) => value,
36
+ parser: (value) => value,
37
+
38
+ validate: () => true,
39
+ })
@@ -0,0 +1,8 @@
1
+ <script>
2
+ import FieldTypeButton from '../../FieldTypeButton.svelte';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let { ...props } = $props();
6
+ </script>
7
+
8
+ <FieldTypeButton {...props}></FieldTypeButton>
@@ -0,0 +1,6 @@
1
+ <script>
2
+ import FieldCard from "../../FieldTypeCard.svelte";
3
+ let {...props} = $props()
4
+ </script>
5
+
6
+ <FieldCard {...props}></FieldCard>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 22.75C6.07 22.75 1.25 17.93 1.25 12C1.25 6.07 6.07 1.25 12 1.25C17.93 1.25 22.75 6.07 22.75 12C22.75 17.93 17.93 22.75 12 22.75ZM12 2.75C6.9 2.75 2.75 6.9 2.75 12C2.75 17.1 6.9 21.25 12 21.25C17.1 21.25 21.25 17.1 21.25 12C21.25 6.9 17.1 2.75 12 2.75Z" fill="#292D32"/>
3
+ <path d="M10.5795 15.5801C10.3795 15.5801 10.1895 15.5001 10.0495 15.3601L7.21945 12.5301C6.92945 12.2401 6.92945 11.7601 7.21945 11.4701C7.50945 11.1801 7.98945 11.1801 8.27945 11.4701L10.5795 13.7701L15.7195 8.6301C16.0095 8.3401 16.4895 8.3401 16.7795 8.6301C17.0695 8.9201 17.0695 9.4001 16.7795 9.6901L11.1095 15.3601C10.9695 15.5001 10.7795 15.5801 10.5795 15.5801Z" fill="#292D32"/>
4
+ </svg>
@@ -0,0 +1,95 @@
1
+ <script>
2
+ import Label from '$lib/registry/fieldTypeRegistry/components/Label.svelte';
3
+ import Line from '$lib/registry/fieldTypeRegistry/components/Line.svelte';
4
+ import { Button, DropdownMenu, Tag } from 'hamzus-ui';
5
+
6
+ let {
7
+ value = $bindable(''),
8
+ onChange = () => {},
9
+ name = '',
10
+ label = '',
11
+ compact = false,
12
+ unique = false,
13
+ secret = false,
14
+ required = false,
15
+ choices = [],
16
+ ...props
17
+ } = $props();
18
+
19
+ function handleClick(choice) {
20
+ if (choice === null) {
21
+ value = null
22
+ onChange(value)
23
+ return
24
+ }
25
+ if (value === choice.value) return;
26
+
27
+ value = choice.value;
28
+
29
+ onChange(choice.value);
30
+ }
31
+
32
+ const selectedChoice = $derived(choices.find((choice) => choice.value === value));
33
+ </script>
34
+
35
+ <Line {compact}>
36
+ <Label {unique} {secret} {label} {required}></Label>
37
+ <div class="choices">
38
+
39
+
40
+ <input type="text" {name} bind:value {required} style="display:none" {...props} />
41
+
42
+ <DropdownMenu.Root direction="bottom">
43
+ <DropdownMenu.Trigger slot="trigger">
44
+ <Button variant="outline" style="width:100%;">
45
+ {#if selectedChoice}
46
+ <Tag color={selectedChoice.color.replace('--', '')}>
47
+ {selectedChoice.value}
48
+ </Tag>
49
+ {:else}
50
+ Sélectionner
51
+ {/if}
52
+ </Button>
53
+ </DropdownMenu.Trigger>
54
+
55
+ <DropdownMenu.Content slot="content" width="var(--hamzus-tigger-width)">
56
+ {#if !required}
57
+ <Button
58
+ variant="ghost"
59
+ style="width:100%;color:{value === null ? 'var(--accent)' : ''}"
60
+ onClick={() => handleClick(null)}
61
+ >
62
+ <h5>aucun</h5>
63
+ </Button>
64
+
65
+ {/if}
66
+ {#each choices as choice}
67
+ <Button
68
+ variant="ghost"
69
+ style="width:100%;color:{value === choice.value ? 'var(--accent)' : ''}"
70
+ onClick={() => handleClick(choice)}
71
+ >
72
+ <Tag color={choice.color.replace('--', '')}>
73
+ {choice.value}
74
+ </Tag>
75
+ </Button>
76
+ {/each}
77
+ </DropdownMenu.Content>
78
+ </DropdownMenu.Root>
79
+ </div>
80
+ </Line>
81
+
82
+ <style>
83
+ .choices {
84
+ display: flex;
85
+ flex-direction: column;
86
+ row-gap: var(--pad-m);
87
+ padding: var(--pad-m);
88
+ background-color: var(--bg-2);
89
+ border-radius: var(--radius-m);
90
+ }
91
+
92
+ .choices:has(input:user-invalid) {
93
+ border: 1px solid var(--red);
94
+ }
95
+ </style>
@@ -0,0 +1,44 @@
1
+ import { createFieldType } from "$lib/registry/fieldTypeRegistry/createFieldType"
2
+
3
+ import Icon from "./Icon.svelte"
4
+ import Button from "./Button.svelte"
5
+ import Card from "./Card.svelte"
6
+ import Input from "./Input.svelte"
7
+
8
+ export default createFieldType({
9
+ type: "list-radio",
10
+
11
+ category_path: "list",
12
+
13
+ label: "Bouton radio",
14
+ description: "Sélection unique parmi plusieurs choix possibles.",
15
+
16
+ is_hidden: false,
17
+
18
+ defaultProps:{
19
+ choices:[
20
+ {
21
+ value:"",
22
+ color:"--blue"
23
+ }
24
+ ]
25
+ },
26
+
27
+ can_be_required: true,
28
+ can_be_unique: true,
29
+
30
+ components: {
31
+ icon: Icon,
32
+ button: Button,
33
+ card: Card,
34
+ input: Input,
35
+ cell: null,
36
+ filter: null,
37
+ properties: null
38
+ },
39
+
40
+ formatter: (value) => value,
41
+ parser: (value) => value,
42
+
43
+ validate: () => true,
44
+ })
@@ -0,0 +1,8 @@
1
+ <script>
2
+ import FieldTypeButton from '../../FieldTypeButton.svelte';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let { ...props } = $props();
6
+ </script>
7
+
8
+ <FieldTypeButton {...props}></FieldTypeButton>
@@ -0,0 +1,6 @@
1
+ <script>
2
+ import FieldCard from "../../FieldTypeCard.svelte";
3
+ let {...props} = $props()
4
+ </script>
5
+
6
+ <FieldCard {...props}></FieldCard>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 21.4701C11.59 21.4701 11.25 21.1301 11.25 20.7201V4.11011C11.25 3.70011 11.59 3.36011 12 3.36011C12.41 3.36011 12.75 3.70011 12.75 4.11011V20.7201C12.75 21.1401 12.41 21.4701 12 21.4701Z" fill="#292D32"/>
3
+ <path d="M15.9405 21.47H8.06055C7.65055 21.47 7.31055 21.13 7.31055 20.72C7.31055 20.31 7.65055 19.97 8.06055 19.97H15.9405C16.3505 19.97 16.6905 20.31 16.6905 20.72C16.6905 21.13 16.3505 21.47 15.9405 21.47Z" fill="#292D32"/>
4
+ <path d="M12.5301 4.64936L7.79423 9.38569C7.50431 9.6756 7.02348 9.6756 6.73356 9.38569C6.44365 9.09578 6.44365 8.61494 6.73357 8.32503L11.4694 3.5887C11.7593 3.29879 12.2402 3.29879 12.5301 3.5887C12.82 3.87861 12.82 4.35945 12.5301 4.64936Z" fill="#292D32"/>
5
+ </svg>
@@ -0,0 +1,16 @@
1
+ <script>
2
+ import Label from "$lib/registry/fieldTypeRegistry/components/Label.svelte";
3
+ import Line from "$lib/registry/fieldTypeRegistry/components/Line.svelte";
4
+ import { Input } from "hamzus-ui";
5
+
6
+ let {label,
7
+ unique = false,
8
+ secret = false, compact=false, required, ...props} = $props()
9
+
10
+
11
+ </script>
12
+
13
+ <Line {compact}>
14
+ <Label {unique} {secret} {label} {required}></Label>
15
+ <Input {...props} type="number" step="1" placeholder="un nombre entier" {required}/>
16
+ </Line>
@@ -0,0 +1,41 @@
1
+ import { createFieldType } from "$lib/registry/fieldTypeRegistry/createFieldType"
2
+
3
+ import Icon from "./Icon.svelte"
4
+ import Button from "./Button.svelte"
5
+ import Card from "./Card.svelte"
6
+ import Input from "./Input.svelte"
7
+
8
+ export default createFieldType({
9
+ type: "number-int",
10
+
11
+ category_path: "number",
12
+
13
+ label: "Entier",
14
+ description: "Nombre entier sans décimale, utile pour compter ou indexer.",
15
+
16
+ is_hidden: false,
17
+
18
+ defaultProps:{
19
+ min:null,
20
+ max:null,
21
+ default:null,
22
+ },
23
+
24
+ can_be_required: true,
25
+ can_be_unique: true,
26
+
27
+ components: {
28
+ icon: Icon,
29
+ button: Button,
30
+ card: Card,
31
+ input: Input,
32
+ cell: null,
33
+ filter: null,
34
+ properties: null
35
+ },
36
+
37
+ formatter: (value) => value,
38
+ parser: (value) => value,
39
+
40
+ validate: () => true,
41
+ })
@@ -0,0 +1,55 @@
1
+ <script>
2
+ import { Input } from 'hamzus-ui';
3
+ import { onMount } from 'svelte';
4
+
5
+ let {
6
+ defaultValue = '',
7
+ min = '',
8
+ max = '',
9
+ symbol = '',
10
+
11
+ onChange = (val) => {},
12
+ value = defaultValue,
13
+ ...props
14
+ } = $props();
15
+
16
+ onMount(() => {
17
+ if (defaultValue) {
18
+ onChange(value);
19
+ }
20
+ });
21
+
22
+ function handleCheckMinMax() {
23
+ let inputValue = value;
24
+ if (inputValue === '') {
25
+ return;
26
+ }
27
+
28
+ inputValue = parseFloat(inputValue);
29
+ min = parseFloat(min);
30
+ max = parseFloat(max);
31
+
32
+ // verifier si il y a un min et qu il n est pas plus grand que la valeur
33
+ if (min && min > inputValue) {
34
+ value = min;
35
+ return;
36
+ }
37
+ // verifier le max et quil soit pas plus petit
38
+ if (max && max < inputValue) {
39
+ value = max;
40
+ return;
41
+ }
42
+ }
43
+
44
+ function handleChange(val) {
45
+ onChange(val);
46
+ }
47
+ </script>
48
+
49
+ <Input {...props} onChange={handleChange} bind:value onBlur={handleCheckMinMax}>
50
+ <div slot="endContent">
51
+ {#if symbol}
52
+ <h4>{symbol}</h4>
53
+ {/if}
54
+ </div>
55
+ </Input>
@@ -0,0 +1,8 @@
1
+ <script>
2
+ import FieldTypeButton from '../../../FieldTypeButton.svelte';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let { ...props } = $props();
6
+ </script>
7
+
8
+ <FieldTypeButton {...props}></FieldTypeButton>
@@ -0,0 +1,6 @@
1
+ <script>
2
+ import FieldCard from "../../../FieldTypeCard.svelte";
3
+ let {...props} = $props()
4
+ </script>
5
+
6
+ <FieldCard {...props}></FieldCard>
@@ -0,0 +1,7 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M10.2441 18.85C9.83414 18.85 9.49414 18.51 9.49414 18.1V2.56934C9.49414 2.15934 9.83414 1.81934 10.2441 1.81934C10.6541 1.81934 10.9941 2.15934 10.9941 2.56934V18.1C10.9941 18.52 10.6541 18.85 10.2441 18.85Z" fill="#292D32"/>
3
+ <path d="M11.1005 18.8499H6.87109C6.46109 18.8499 6.12109 18.5099 6.12109 18.0999C6.12109 17.6899 6.46109 17.3499 6.87109 17.3499H11.1005C11.5105 17.3499 11.8505 17.6899 11.8505 18.0999C11.8505 18.5099 11.5105 18.8499 11.1005 18.8499Z" fill="#292D32"/>
4
+ <path d="M10.7742 3.10003L6.03849 7.83625C5.74867 8.12606 5.26775 8.12615 4.97784 7.83624C4.68793 7.54632 4.68801 7.0654 4.97783 6.77559L9.71356 2.03937C10.0034 1.74956 10.4843 1.74947 10.7742 2.03938C11.0641 2.3293 11.064 2.81022 10.7742 3.10003Z" fill="#292D32"/>
5
+ <circle cx="12.9297" cy="18.0999" r="0.75" fill="#292D32"/>
6
+ <path d="M20.7194 12.5498C20.7194 11.1142 20.3155 9.84323 19.6975 8.9499C19.0777 8.05412 18.2879 7.59023 17.4948 7.59023C16.7017 7.59023 15.9119 8.05412 15.2921 8.9499C14.6741 9.84323 14.2702 11.1142 14.2702 12.5498C14.2702 13.9855 14.6741 15.2564 15.2921 16.1497C15.912 17.0456 16.7016 17.5094 17.4948 17.5094C18.288 17.5094 19.0777 17.0456 19.6975 16.1497C20.3155 15.2564 20.7194 13.9855 20.7194 12.5498ZM22.0599 12.5498C22.0599 14.2234 21.5914 15.7682 20.7997 16.9125C20.0099 18.0539 18.8525 18.8499 17.4948 18.8499C16.1371 18.8499 14.9797 18.0539 14.1899 16.9125C13.3982 15.7682 12.9297 14.2234 12.9297 12.5498C12.9297 10.8763 13.3983 9.33228 14.1899 8.18803C14.9797 7.04641 16.1369 6.24976 17.4948 6.24976C18.8527 6.24976 20.0099 7.04641 20.7997 8.18803C21.5913 9.33228 22.0599 10.8763 22.0599 12.5498Z" fill="#292D32"/>
7
+ </svg>
@@ -0,0 +1,14 @@
1
+ <script>
2
+ import Label from "$lib/registry/fieldTypeRegistry/components/Label.svelte";
3
+ import Line from "$lib/registry/fieldTypeRegistry/components/Line.svelte";
4
+ import FieldTypeInputFloat from "../FieldTypeInputFloat.svelte";
5
+
6
+ let {label,
7
+ unique = false,
8
+ secret = false, compact=false, required, ...props} = $props()
9
+
10
+ </script>
11
+ <Line {compact}>
12
+ <Label {unique} {secret} {label} {required}></Label>
13
+ <FieldTypeInputFloat {required} placeholder="un nombre flotant" type="number" {...props}></FieldTypeInputFloat>
14
+ </Line>
@@ -0,0 +1,41 @@
1
+ import { createFieldType } from "$lib/registry/fieldTypeRegistry/createFieldType"
2
+
3
+ import Icon from "./Icon.svelte"
4
+ import Button from "./Button.svelte"
5
+ import Card from "./Card.svelte"
6
+ import Input from "./Input.svelte"
7
+
8
+ export default createFieldType({
9
+ type: "number-float-default",
10
+
11
+ category_path: "number-float",
12
+
13
+ label: "Nombre décimal",
14
+ description: "Nombre à virgule flottante sans usage spécifique.",
15
+
16
+ is_hidden: false,
17
+
18
+ defaultProps:{
19
+ min:null,
20
+ max:null,
21
+ default:null,
22
+ },
23
+
24
+ can_be_required: true,
25
+ can_be_unique: true,
26
+
27
+ components: {
28
+ icon: Icon,
29
+ button: Button,
30
+ card: Card,
31
+ input: Input,
32
+ cell: null,
33
+ filter: null,
34
+ properties: null
35
+ },
36
+
37
+ formatter: (value) => value,
38
+ parser: (value) => value,
39
+
40
+ validate: () => true,
41
+ })
@@ -0,0 +1,8 @@
1
+ <script>
2
+ import FieldTypeButton from '../../../FieldTypeButton.svelte';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let { ...props } = $props();
6
+ </script>
7
+
8
+ <FieldTypeButton {...props}></FieldTypeButton>
@@ -0,0 +1,6 @@
1
+ <script>
2
+ import FieldCard from "../../../FieldTypeCard.svelte";
3
+ let {...props} = $props()
4
+ </script>
5
+
6
+ <FieldCard {...props}></FieldCard>
@@ -0,0 +1,6 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 22.7498C11.37 22.7498 10.78 22.5099 10.34 22.0599L8.82001 20.5399C8.70001 20.4199 8.38 20.2899 8.22 20.2899H6.06C4.76 20.2899 3.70999 19.2398 3.70999 17.9398V15.7799C3.70999 15.6199 3.57999 15.2999 3.45999 15.1799L1.94 13.6599C1.5 13.2199 1.25 12.6298 1.25 11.9998C1.25 11.3698 1.49 10.7798 1.94 10.3398L3.45999 8.81979C3.57999 8.69979 3.70999 8.37981 3.70999 8.21981V6.0599C3.70999 4.7599 4.76 3.7098 6.06 3.7098H8.22C8.38 3.7098 8.70001 3.5798 8.82001 3.4598L10.34 1.93979C11.22 1.05979 12.78 1.05979 13.66 1.93979L15.18 3.4598C15.3 3.5798 15.62 3.7098 15.78 3.7098H17.94C19.24 3.7098 20.29 4.7599 20.29 6.0599V8.21981C20.29 8.37981 20.42 8.69979 20.54 8.81979L22.06 10.3398C22.5 10.7798 22.75 11.3698 22.75 11.9998C22.75 12.6298 22.51 13.2199 22.06 13.6599L20.54 15.1799C20.42 15.2999 20.29 15.6199 20.29 15.7799V17.9398C20.29 19.2398 19.24 20.2899 17.94 20.2899H15.78C15.62 20.2899 15.3 20.4199 15.18 20.5399L13.66 22.0599C13.22 22.5099 12.63 22.7498 12 22.7498ZM4.51999 14.1198C4.91999 14.5198 5.20999 15.2199 5.20999 15.7799V17.9398C5.20999 18.4098 5.59 18.7899 6.06 18.7899H8.22C8.78 18.7899 9.48001 19.0798 9.88 19.4798L11.4 20.9998C11.72 21.3198 12.28 21.3198 12.6 20.9998L14.12 19.4798C14.52 19.0798 15.22 18.7899 15.78 18.7899H17.94C18.41 18.7899 18.79 18.4098 18.79 17.9398V15.7799C18.79 15.2199 19.08 14.5198 19.48 14.1198L21 12.5998C21.16 12.4398 21.25 12.2298 21.25 11.9998C21.25 11.7698 21.16 11.5599 21 11.3999L19.48 9.87985C19.08 9.47985 18.79 8.77981 18.79 8.21981V6.0599C18.79 5.5899 18.41 5.2098 17.94 5.2098H15.78C15.22 5.2098 14.52 4.91986 14.12 4.51986L12.6 2.99984C12.28 2.67984 11.72 2.67984 11.4 2.99984L9.88 4.51986C9.48001 4.91986 8.78 5.2098 8.22 5.2098H6.06C5.59 5.2098 5.20999 5.5899 5.20999 6.0599V8.21981C5.20999 8.77981 4.91999 9.47985 4.51999 9.87985L3 11.3999C2.84 11.5599 2.75 11.7698 2.75 11.9998C2.75 12.2298 2.84 12.4398 3 12.5998L4.51999 14.1198Z" fill="#292D32"/>
3
+ <path d="M15.0002 16C14.4402 16 13.9902 15.55 13.9902 15C13.9902 14.45 14.4402 14 14.9902 14C15.5402 14 15.9902 14.45 15.9902 15C15.9902 15.55 15.5502 16 15.0002 16Z" fill="#292D32"/>
4
+ <path d="M9.01001 10C8.45001 10 8 9.55 8 9C8 8.45 8.45 8 9 8C9.55 8 10 8.45 10 9C10 9.55 9.56001 10 9.01001 10Z" fill="#292D32"/>
5
+ <path d="M8.99945 15.75C8.80945 15.75 8.61945 15.68 8.46945 15.53C8.17945 15.24 8.17945 14.7599 8.46945 14.4699L14.4695 8.46994C14.7595 8.17994 15.2395 8.17994 15.5295 8.46994C15.8195 8.75994 15.8195 9.24 15.5295 9.53L9.52945 15.53C9.37945 15.68 9.18945 15.75 8.99945 15.75Z" fill="#292D32"/>
6
+ </svg>
@@ -0,0 +1,15 @@
1
+ <script>
2
+ import Label from "$lib/registry/fieldTypeRegistry/components/Label.svelte";
3
+ import Line from "$lib/registry/fieldTypeRegistry/components/Line.svelte";
4
+ import FieldTypeInputFloat from "../FieldTypeInputFloat.svelte";
5
+
6
+ let {label,
7
+ unique = false,
8
+ secret = false,compact=false, required, ...props} = $props()
9
+
10
+
11
+ </script>
12
+ <Line {compact}>
13
+ <Label {unique} {secret} {label} {required}></Label>
14
+ <FieldTypeInputFloat {...props} {required} placeholder="un pourcentage" type="number" symbol="%"></FieldTypeInputFloat>
15
+ </Line>
@@ -0,0 +1,41 @@
1
+ import { createFieldType } from "$lib/registry/fieldTypeRegistry/createFieldType"
2
+
3
+ import Icon from "./Icon.svelte"
4
+ import Button from "./Button.svelte"
5
+ import Card from "./Card.svelte"
6
+ import Input from "./Input.svelte"
7
+
8
+ export default createFieldType({
9
+ type: "number-float-percent",
10
+
11
+ category_path: "number-float",
12
+
13
+ label: "Pourcentage",
14
+ description: "Valeur exprimée en pourcentage.",
15
+
16
+ is_hidden: false,
17
+
18
+ defaultProps:{
19
+ min:null,
20
+ max:null,
21
+ default:null,
22
+ },
23
+
24
+ can_be_required: true,
25
+ can_be_unique: true,
26
+
27
+ components: {
28
+ icon: Icon,
29
+ button: Button,
30
+ card: Card,
31
+ input: Input,
32
+ cell: null,
33
+ filter: null,
34
+ properties: null
35
+ },
36
+
37
+ formatter: (value) => value,
38
+ parser: (value) => value,
39
+
40
+ validate: () => true,
41
+ })
@@ -0,0 +1,8 @@
1
+ <script>
2
+ import FieldTypeButton from '../../../FieldTypeButton.svelte';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let { ...props } = $props();
6
+ </script>
7
+
8
+ <FieldTypeButton {...props}></FieldTypeButton>
@@ -0,0 +1,6 @@
1
+ <script>
2
+ import FieldCard from "../../../FieldTypeCard.svelte";
3
+ let {...props} = $props()
4
+ </script>
5
+
6
+ <FieldCard {...props}></FieldCard>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13.4002 17.4201H10.8902C9.25016 17.4201 7.92016 16.0401 7.92016 14.3401C7.92016 13.9301 8.26016 13.5901 8.67016 13.5901C9.08016 13.5901 9.42016 13.9301 9.42016 14.3401C9.42016 15.2101 10.0802 15.9201 10.8902 15.9201H13.4002C14.0502 15.9201 14.5902 15.3401 14.5902 14.6401C14.5902 13.7701 14.2802 13.6001 13.7702 13.4201L9.74016 12.0001C8.96016 11.7301 7.91016 11.1501 7.91016 9.36008C7.91016 7.82008 9.12016 6.58008 10.6002 6.58008H13.1102C14.7502 6.58008 16.0802 7.96008 16.0802 9.66008C16.0802 10.0701 15.7402 10.4101 15.3302 10.4101C14.9202 10.4101 14.5802 10.0701 14.5802 9.66008C14.5802 8.79008 13.9202 8.08008 13.1102 8.08008H10.6002C9.95016 8.08008 9.41016 8.66008 9.41016 9.36008C9.41016 10.2301 9.72016 10.4001 10.2302 10.5801L14.2602 12.0001C15.0402 12.2701 16.0902 12.8501 16.0902 14.6401C16.0802 16.1701 14.8802 17.4201 13.4002 17.4201Z" fill="#292D32"/>
3
+ <path d="M12 18.75C11.59 18.75 11.25 18.41 11.25 18V6C11.25 5.59 11.59 5.25 12 5.25C12.41 5.25 12.75 5.59 12.75 6V18C12.75 18.41 12.41 18.75 12 18.75Z" fill="#292D32"/>
4
+ <path d="M12 22.75C6.07 22.75 1.25 17.93 1.25 12C1.25 6.07 6.07 1.25 12 1.25C17.93 1.25 22.75 6.07 22.75 12C22.75 17.93 17.93 22.75 12 22.75ZM12 2.75C6.9 2.75 2.75 6.9 2.75 12C2.75 17.1 6.9 21.25 12 21.25C17.1 21.25 21.25 17.1 21.25 12C21.25 6.9 17.1 2.75 12 2.75Z" fill="#292D32"/>
5
+ </svg>
@@ -0,0 +1,15 @@
1
+ <script>
2
+ import Label from "$lib/registry/fieldTypeRegistry/components/Label.svelte";
3
+ import Line from "$lib/registry/fieldTypeRegistry/components/Line.svelte";
4
+ import FieldTypeInputFloat from "../FieldTypeInputFloat.svelte";
5
+
6
+ let {label,
7
+ unique = false,
8
+ secret = false,compact=false, required, ...props} = $props()
9
+
10
+
11
+ </script>
12
+ <Line {compact}>
13
+ <Label {unique} {secret} {label} {required}></Label>
14
+ <FieldTypeInputFloat {required} placeholder="un prix" type="number" {...props} symbol="€"></FieldTypeInputFloat>
15
+ </Line>