@likable-hair/svelte 4.2.4 → 4.3.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 (120) hide show
  1. package/dist/components/composed/buttons/ActivableButton.svelte +25 -7
  2. package/dist/components/composed/common/HeadersDrawer.svelte +66 -28
  3. package/dist/components/composed/common/HeadersDrawer.svelte.d.ts +22 -12
  4. package/dist/components/composed/common/MenuOrDrawer.svelte +40 -12
  5. package/dist/components/composed/common/MenuOrDrawerOptions.svelte +51 -27
  6. package/dist/components/composed/common/MenuOrDrawerOptions.svelte.d.ts +15 -10
  7. package/dist/components/composed/common/QuickActions.css +5 -5
  8. package/dist/components/composed/common/QuickActions.svelte +76 -33
  9. package/dist/components/composed/common/ToolTip.svelte +51 -32
  10. package/dist/components/composed/dashboard/DashboardShaper.svelte +280 -147
  11. package/dist/components/composed/dashboard/DashboardShaper.svelte.d.ts +54 -45
  12. package/dist/components/composed/forms/AsyncAutocomplete.svelte +81 -30
  13. package/dist/components/composed/forms/AsyncAutocomplete.svelte.d.ts +17 -5
  14. package/dist/components/composed/forms/AvatarDropdown.svelte +146 -70
  15. package/dist/components/composed/forms/AvatarDropdown.svelte.d.ts +27 -22
  16. package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte +65 -19
  17. package/dist/components/composed/forms/CountriesAutocomplete.svelte +33 -4
  18. package/dist/components/composed/forms/DatePickerTextField.svelte +266 -161
  19. package/dist/components/composed/forms/Dropdown.svelte +89 -22
  20. package/dist/components/composed/forms/Dropdown.svelte.d.ts +18 -13
  21. package/dist/components/composed/forms/IconsDropdown.svelte +85 -40
  22. package/dist/components/composed/forms/IconsDropdown.svelte.d.ts +15 -8
  23. package/dist/components/composed/forms/LabelAndSelect.svelte +46 -5
  24. package/dist/components/composed/forms/LabelAndTextField.svelte +56 -3
  25. package/dist/components/composed/forms/PeriodPicker.svelte +38 -18
  26. package/dist/components/composed/forms/PeriodPicker.svelte.d.ts +32 -7
  27. package/dist/components/composed/forms/PeriodSelector.svelte +427 -312
  28. package/dist/components/composed/forms/PeriodSelector.svelte.d.ts +20 -13
  29. package/dist/components/composed/forms/ToggleList.svelte +71 -37
  30. package/dist/components/composed/forms/ToggleList.svelte.d.ts +14 -7
  31. package/dist/components/composed/forms/YearPickerTextField.svelte +154 -82
  32. package/dist/components/composed/list/DynamicTable.svelte +1377 -808
  33. package/dist/components/composed/list/DynamicTable.svelte.d.ts +85 -70
  34. package/dist/components/composed/list/EnhancedPaginatedTable.svelte +75 -32
  35. package/dist/components/composed/list/EnhancedPaginatedTable.svelte.d.ts +16 -6
  36. package/dist/components/composed/list/PaginatedTable.svelte +325 -120
  37. package/dist/components/composed/list/PaginatedTable.svelte.d.ts +26 -22
  38. package/dist/components/composed/progress/HorizontalStackedProgress.svelte +67 -29
  39. package/dist/components/composed/search/DynamicFilters.svelte +126 -91
  40. package/dist/components/composed/search/FilterEditor.svelte +178 -115
  41. package/dist/components/composed/search/Filters.svelte +441 -301
  42. package/dist/components/composed/search/GlobalSearchTextField.svelte +102 -42
  43. package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +23 -20
  44. package/dist/components/composed/search/MobileFilterEditor.svelte +174 -120
  45. package/dist/components/composed/search/QuickFilters.svelte +133 -23
  46. package/dist/components/composed/search/SearchBar.svelte +42 -3
  47. package/dist/components/composed/search/SearchResults.svelte +48 -5
  48. package/dist/components/composed/search/SearchResults.svelte.d.ts +17 -17
  49. package/dist/components/layouts/CollapsibleSideBarLayout.svelte +100 -24
  50. package/dist/components/layouts/StableDividedSideBarLayout.svelte +74 -24
  51. package/dist/components/layouts/UnstableDividedSideBarLayout.svelte +140 -57
  52. package/dist/components/simple/buttons/Button.svelte +86 -36
  53. package/dist/components/simple/buttons/LinkButton.svelte +81 -25
  54. package/dist/components/simple/charts/BarChart.svelte +137 -105
  55. package/dist/components/simple/charts/LineChart.svelte +124 -92
  56. package/dist/components/simple/charts/PieChart.svelte +51 -23
  57. package/dist/components/simple/common/CollapsibleDivider.svelte +58 -26
  58. package/dist/components/simple/common/Divider.svelte +2 -1
  59. package/dist/components/simple/common/InfiniteScroll.svelte +60 -34
  60. package/dist/components/simple/common/MediaQuery.svelte +28 -3
  61. package/dist/components/simple/common/Menu.svelte +516 -390
  62. package/dist/components/simple/common/NoData.svelte +18 -4
  63. package/dist/components/simple/common/VerticalDraggableList.svelte +52 -26
  64. package/dist/components/simple/common/VerticalDraggableList.svelte.d.ts +20 -9
  65. package/dist/components/simple/dashboards/DashboardGridShaper.svelte +28 -22
  66. package/dist/components/simple/dates/Calendar.svelte +142 -72
  67. package/dist/components/simple/dates/DatePicker.svelte +138 -71
  68. package/dist/components/simple/dates/MonthSelector.svelte +49 -13
  69. package/dist/components/simple/dates/YearSelector.svelte +73 -30
  70. package/dist/components/simple/dialogs/Dialog.svelte +109 -59
  71. package/dist/components/simple/forms/Autocomplete.css +3 -0
  72. package/dist/components/simple/forms/Autocomplete.svelte +366 -164
  73. package/dist/components/simple/forms/Autocomplete.svelte.d.ts +31 -19
  74. package/dist/components/simple/forms/Checkbox.svelte +57 -29
  75. package/dist/components/simple/forms/FileInput.svelte +103 -58
  76. package/dist/components/simple/forms/FileInputList.svelte +115 -51
  77. package/dist/components/simple/forms/RadioButton.svelte +36 -3
  78. package/dist/components/simple/forms/Select.svelte +30 -3
  79. package/dist/components/simple/forms/SimpleTextField.svelte +94 -4
  80. package/dist/components/simple/forms/Switch.svelte +33 -11
  81. package/dist/components/simple/forms/Textarea.svelte +22 -5
  82. package/dist/components/simple/forms/VerticalSwitch.svelte +19 -2
  83. package/dist/components/simple/forms/VerticalTextSwitch.svelte +35 -3
  84. package/dist/components/simple/lists/BoxList.svelte +42 -11
  85. package/dist/components/simple/lists/ColorInvertedSelector.svelte +83 -25
  86. package/dist/components/simple/lists/HierarchyMenu.svelte +55 -20
  87. package/dist/components/simple/lists/Paginator.svelte +53 -34
  88. package/dist/components/simple/lists/SelectableMenuList.svelte +52 -16
  89. package/dist/components/simple/lists/SelectableVerticalList.svelte +169 -85
  90. package/dist/components/simple/lists/SelectableVerticalList.svelte.d.ts +21 -14
  91. package/dist/components/simple/lists/SidebarMenuList.svelte +127 -79
  92. package/dist/components/simple/lists/SimpleTable.svelte +449 -239
  93. package/dist/components/simple/lists/SimpleTable.svelte.d.ts +31 -22
  94. package/dist/components/simple/loaders/CircularLoader.css +1 -1
  95. package/dist/components/simple/loaders/CircularLoader.svelte +11 -3
  96. package/dist/components/simple/loaders/Skeleton.svelte +3 -2
  97. package/dist/components/simple/media/Avatar.svelte +35 -15
  98. package/dist/components/simple/media/DescriptiveAvatar.svelte +30 -4
  99. package/dist/components/simple/media/FlagIcon.svelte +13 -3
  100. package/dist/components/simple/media/Icon.svelte +21 -6
  101. package/dist/components/simple/navigation/Breadcrumb.svelte +41 -9
  102. package/dist/components/simple/navigation/Chip.css +1 -1
  103. package/dist/components/simple/navigation/Chip.svelte +65 -36
  104. package/dist/components/simple/navigation/Drawer.svelte +132 -71
  105. package/dist/components/simple/navigation/HeaderMenu.svelte +69 -25
  106. package/dist/components/simple/navigation/Navigator.svelte +45 -11
  107. package/dist/components/simple/navigation/TabSwitcher.svelte +60 -19
  108. package/dist/components/simple/notifiers/AlertBanner.svelte +59 -11
  109. package/dist/components/simple/progress/ProgressBar.svelte +26 -10
  110. package/dist/components/simple/timeline/SimpleTimeLine.svelte +52 -5
  111. package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +16 -9
  112. package/dist/components/simple/typography/Code.svelte +41 -12
  113. package/dist/stores/layouts/unstableSidebarOpened.d.ts +1 -1
  114. package/dist/stores/layouts/unstableSidebarOpened.js +1 -1
  115. package/dist/stores/theme.js +2 -2
  116. package/dist/utils/filters/builder.d.ts +2 -2
  117. package/dist/utils/filters/builder.js +7 -7
  118. package/dist/utils/filters/modifiers/where.d.ts +1 -1
  119. package/dist/utils/teleporter.js +4 -4
  120. package/package.json +39 -33
@@ -1,37 +1,88 @@
1
- <script lang="ts" module>export {};
1
+ <script lang="ts" module>
2
+ import type { Item } from "../../../components/simple/forms/Autocomplete.svelte";
3
+ export type { Item }
2
4
  </script>
3
5
 
4
- <script lang="ts" generics="Data">import Autocomplete from "../../../components/simple/forms/Autocomplete.svelte";
5
- import debounceStore from "../../../stores/debounce";
6
- import { writable } from 'svelte/store';
7
- import Menu from "../../simple/common/Menu.svelte";
8
- let { items = [], values = $bindable(), multiple = false, searcher, placeholder, searchThreshold = 2, debounceTimeout = 500, searching = false, search = false, searchText = $bindable(), maxVisibleChips, menuOpened = $bindable(false), mobileDrawer = false, closeOnSelect = false, disabled = false, menuAnchor, menuWidth, onchange, ...restProps } = $props();
9
- const searchTextValue = writable(searchText);
10
- let searchTextDebounce = $derived(debounceStore(searchTextValue, debounceTimeout));
11
- $effect(() => {
12
- if (!!$searchTextDebounce && searchThreshold <= $searchTextDebounce.length) {
13
- searching = true;
14
- searcher({ searchText: $searchTextDebounce }).then((it) => {
15
- items = it;
16
- }).finally(() => {
17
- searching = false;
18
- });
6
+ <script lang="ts" generics="Data">
7
+ import Autocomplete from "../../../components/simple/forms/Autocomplete.svelte";
8
+ import debounceStore from "../../../stores/debounce";
9
+ import { writable } from 'svelte/store';
10
+ import type { ComponentProps } from "svelte";
11
+ import Menu from "../../simple/common/Menu.svelte";
12
+
13
+ type AsyncAutocompleteItem = Item<Data>
14
+
15
+ type Props = {
16
+ items: AsyncAutocompleteItem[];
17
+ values?: AsyncAutocompleteItem[];
18
+ multiple?: boolean;
19
+ searcher: (params: {
20
+ searchText: string
21
+ }) => Promise<AsyncAutocompleteItem[]>;
22
+ placeholder?: string;
23
+ searchThreshold?: number;
24
+ debounceTimeout?: number;
25
+ searching?: boolean;
26
+ search?: boolean;
27
+ searchText?: string;
28
+ maxVisibleChips?: number;
29
+ menuOpened?: boolean;
30
+ mobileDrawer?: boolean;
31
+ closeOnSelect?: boolean;
32
+ disabled?: boolean;
33
+ menuWidth?: string;
34
+ menuAnchor?: ComponentProps<typeof Menu>['anchor']
35
+ } & ComponentProps<typeof Autocomplete<Data>>
36
+
37
+ let {
38
+ items = [],
39
+ values = $bindable(),
40
+ multiple = false,
41
+ searcher,
42
+ placeholder,
43
+ searchThreshold = 2,
44
+ debounceTimeout = 500,
45
+ searching = false,
46
+ search = false,
47
+ searchText = $bindable(),
48
+ maxVisibleChips,
49
+ menuOpened = $bindable(false),
50
+ mobileDrawer = false,
51
+ closeOnSelect = false,
52
+ disabled = false,
53
+ menuAnchor,
54
+ menuWidth,
55
+ onchange,
56
+ ...restProps
57
+ }: Props = $props();
58
+
59
+ const searchTextValue = writable<string | undefined>(searchText)
60
+ let searchTextDebounce = $derived(debounceStore(searchTextValue, debounceTimeout))
61
+
62
+ $effect(() => {
63
+ if(!!$searchTextDebounce && searchThreshold <= $searchTextDebounce.length) {
64
+ searching = true
65
+ searcher({ searchText: $searchTextDebounce }).then((it) => {
66
+ items = it
67
+ }).finally(() => {
68
+ searching = false
69
+ })
19
70
  }
20
- });
21
- $effect(() => {
22
- if (search) {
23
- search = false;
24
- searching = true;
25
- searcher({ searchText: $searchTextDebounce }).then((it) => {
26
- items = it;
27
- }).finally(() => {
28
- searching = false;
29
- });
71
+ })
72
+ $effect(() => {
73
+ if(search) {
74
+ search = false
75
+ searching = true
76
+ searcher({ searchText: $searchTextDebounce }).then((it) => {
77
+ items = it
78
+ }).finally(() => {
79
+ searching = false
80
+ })
30
81
  }
31
- });
32
- $effect(() => {
33
- $searchTextValue = searchText;
34
- });
82
+ })
83
+ $effect(() => {
84
+ $searchTextValue = searchText
85
+ })
35
86
  </script>
36
87
 
37
88
  <Autocomplete
@@ -2,10 +2,10 @@ import type { Item } from "../../../components/simple/forms/Autocomplete.svelte"
2
2
  export type { Item };
3
3
  import type { ComponentProps } from "svelte";
4
4
  import Menu from "../../simple/common/Menu.svelte";
5
- declare class __sveltets_Render<Data> {
6
- props(): {
5
+ declare function $$render<Data>(): {
6
+ props: {
7
7
  items: Item<Data>[];
8
- values?: Item<Data>[] | undefined;
8
+ values?: Item<Data>[];
9
9
  multiple?: boolean;
10
10
  searcher: (params: {
11
11
  searchText: string;
@@ -50,10 +50,12 @@ declare class __sveltets_Render<Data> {
50
50
  menuFlipOnOverflow?: ComponentProps<typeof Menu>["flipOnOverflow"];
51
51
  menuMaxHeight?: string;
52
52
  adaptInputWidth?: boolean;
53
+ hint?: string;
53
54
  class?: {
54
55
  activator?: string;
55
56
  menu?: string;
56
57
  simpleTextfield?: ComponentProps<typeof import("../../..").SimpleTextField>["class"];
58
+ hint?: string;
57
59
  } | undefined;
58
60
  selectionContainerSnippet?: import("svelte").Snippet<[{
59
61
  values: Item<Data>[];
@@ -87,6 +89,9 @@ declare class __sveltets_Render<Data> {
87
89
  index: number;
88
90
  selected: boolean;
89
91
  }]> | undefined;
92
+ hintSnippet?: import("svelte").Snippet<[{
93
+ hint?: string;
94
+ }]> | undefined;
90
95
  onchange?: ((event: {
91
96
  detail: {
92
97
  unselect: Item<Data> | undefined;
@@ -99,8 +104,15 @@ declare class __sveltets_Render<Data> {
99
104
  onkeydown?: ((e: KeyboardEvent) => void) | undefined;
100
105
  onclose?: ComponentProps<typeof import("../../..").Drawer>["onclose"];
101
106
  };
102
- events(): {};
103
- slots(): {};
107
+ exports: {};
108
+ bindings: "values" | "menuOpened" | "searchText";
109
+ slots: {};
110
+ events: {};
111
+ };
112
+ declare class __sveltets_Render<Data> {
113
+ props(): ReturnType<typeof $$render<Data>>['props'];
114
+ events(): ReturnType<typeof $$render<Data>>['events'];
115
+ slots(): ReturnType<typeof $$render<Data>>['slots'];
104
116
  bindings(): "values" | "menuOpened" | "searchText";
105
117
  exports(): {};
106
118
  }
@@ -1,80 +1,156 @@
1
- <script lang="ts" module>export {};
1
+ <script lang="ts" module>
2
+ export type AvatarItem<Data = any> = {
3
+ value: string | number,
4
+ tooltip?: string | number,
5
+ label?: string | number,
6
+ text?: string
7
+ src?: string
8
+ alt?: string
9
+ data?: Data
10
+ };
2
11
  </script>
3
12
 
4
- <script lang="ts" generics="Data">import lodash from "lodash";
5
- import Autocomplete, {} from "../../../components/simple/forms/Autocomplete.svelte";
6
- import Icon from '../../simple/media/Icon.svelte';
7
- import Avatar from "../../simple/media/Avatar.svelte";
8
- import ToolTip from "../common/ToolTip.svelte";
9
- let { items = [], values = $bindable([]), multiple = true, menuOpened = $bindable(false), openingId = $bindable("autocomplete-menu"), width, minWidth = 'auto', disabled = false, menuWidth = "144px", onchange: onchangeInternal, labelSnippet, noValuesSnippet, itemLabelSnippet: itemLabelInternalSnippet, } = $props();
10
- function handleCloseClick(params) {
11
- let unselected = lodash.cloneDeep(values[params.index]);
12
- values.splice(params.index, 1);
13
- values = [...values];
14
- if (onchangeInternal) {
15
- onchangeInternal({
16
- detail: {
17
- unselect: unselected,
18
- select: undefined,
19
- selection: values
20
- }
21
- });
13
+ <script lang="ts" generics="Data">
14
+ import lodash from "lodash";
15
+ import Autocomplete, { type Item } from "../../../components/simple/forms/Autocomplete.svelte";
16
+ import Icon from '../../simple/media/Icon.svelte'
17
+ import Avatar from "../../simple/media/Avatar.svelte";
18
+ import ToolTip from "../common/ToolTip.svelte";
19
+ import type { ComponentProps, Snippet } from "svelte";
20
+
21
+ type AvatarItemData = AvatarItem<Data>
22
+
23
+ type AutocompleteData = {
24
+ tooltip?: string | number,
25
+ label?: string | number,
26
+ text?: string
27
+ src?: string
28
+ alt?: string
29
+ data?: Data
30
+ }
31
+ type AutocompleteItem = Item<AutocompleteData>
32
+
33
+ interface Props {
34
+ items?: AvatarItemData[];
35
+ values?: AvatarItemData[];
36
+ multiple?: boolean;
37
+ menuOpened?: boolean;
38
+ openingId?: string;
39
+ width?: string;
40
+ minWidth?: string;
41
+ disabled?: boolean;
42
+ menuWidth?: string | null;
43
+ onchange?: (event: {
44
+ detail: {
45
+ unselect: AvatarItemData | undefined;
46
+ select: AvatarItemData | undefined;
47
+ selection: AvatarItemData[];
48
+ }
49
+ }) => void
50
+ labelSnippet?: Snippet<[{
51
+ values: AvatarItemData[]
52
+ items: AvatarItemData[]
53
+ handleCloseClick: typeof handleCloseClick
54
+ }]>
55
+ noValuesSnippet?: Snippet<[{
56
+ values: AvatarItemData[]
57
+ items: AvatarItemData[]
58
+ handleCloseClick: typeof handleCloseClick
59
+ }]>
60
+ itemLabelSnippet?: ComponentProps<typeof Autocomplete<AutocompleteData>>['itemLabelSnippet']
61
+ }
62
+
63
+ let {
64
+ items = [],
65
+ values = $bindable([]),
66
+ multiple = true,
67
+ menuOpened = $bindable(false),
68
+ openingId = $bindable("autocomplete-menu"),
69
+ width,
70
+ minWidth = 'auto',
71
+ disabled = false,
72
+ menuWidth = "144px",
73
+ onchange: onchangeInternal,
74
+ labelSnippet,
75
+ noValuesSnippet,
76
+ itemLabelSnippet: itemLabelInternalSnippet,
77
+ }: Props = $props();
78
+
79
+ function handleCloseClick(params: { index: number }) {
80
+ let unselected = lodash.cloneDeep(values[params.index])
81
+ values.splice(params.index, 1)
82
+ values = [...values]
83
+
84
+ if(onchangeInternal){
85
+ onchangeInternal({
86
+ detail: {
87
+ unselect: unselected,
88
+ select: undefined,
89
+ selection: values
90
+ }
91
+ })
22
92
  }
23
- }
24
- function onchange(event) {
93
+ }
94
+
95
+ function onchange(event: Parameters<NonNullable<ComponentProps<typeof Autocomplete<AutocompleteData>>['onchange']>>[0]) {
25
96
  values = event.detail.selection.map((e) => ({
26
- value: e.value,
27
- tooltip: e.data?.tooltip,
28
- label: e.data?.label,
29
- text: e.data?.text,
30
- src: e.data?.src,
31
- alt: e.data?.alt,
32
- data: e.data?.data,
33
- }));
34
- if (onchangeInternal) {
35
- onchangeInternal({
36
- detail: {
37
- unselect: !!event.detail.unselect ? {
38
- ...event.detail.unselect.data,
39
- value: event.detail.unselect.value,
40
- } : undefined,
41
- select: !!event.detail.select ? {
42
- value: event.detail.select.value,
43
- ...event.detail.select.data
44
- } : undefined,
45
- selection: values
46
- }
47
- });
97
+ value: e.value,
98
+ tooltip: e.data?.tooltip,
99
+ label: e.data?.label,
100
+ text: e.data?.text,
101
+ src: e.data?.src,
102
+ alt: e.data?.alt,
103
+ data: e.data?.data,
104
+ }))
105
+
106
+ if(onchangeInternal) {
107
+ onchangeInternal({
108
+ detail: {
109
+ unselect: !!event.detail.unselect ? {
110
+ ...event.detail.unselect.data,
111
+ value: event.detail.unselect.value,
112
+ } : undefined,
113
+ select: !!event.detail.select ? {
114
+ value: event.detail.select.value,
115
+ ...event.detail.select.data
116
+ } : undefined,
117
+ selection: values
118
+ }
119
+ })
48
120
  }
49
- }
50
- let autocompleteValues = $state([]);
51
- $effect(() => {
121
+ }
122
+
123
+ let autocompleteValues: AutocompleteItem[] = $state([])
124
+
125
+ $effect(() => {
52
126
  autocompleteValues = values.map((e) => ({
53
- value: e.value,
54
- label: e.label || e.text,
55
- data: {
56
- data: e.data,
57
- text: e.text,
58
- src: e.src,
59
- alt: e.alt,
60
- label: e.label,
61
- tooltip: e.tooltip
62
- }
63
- }));
64
- });
65
- let autocompleteItems = $derived(items.map((e) => {
127
+ value: e.value,
128
+ label: e.label || e.text,
129
+ data: {
130
+ data: e.data,
131
+ text: e.text,
132
+ src: e.src,
133
+ alt: e.alt,
134
+ label: e.label,
135
+ tooltip: e.tooltip
136
+ }
137
+ }))
138
+ })
139
+
140
+ let autocompleteItems: AutocompleteItem[] = $derived(items.map((e) => {
66
141
  return {
67
- value: e.value,
68
- label: e.label || e.text,
69
- data: {
70
- data: e.data,
71
- text: e.text,
72
- src: e.src,
73
- alt: e.alt,
74
- }
75
- };
76
- }));
77
- let tooltipsActivator = [];
142
+ value: e.value,
143
+ label: e.label || e.text,
144
+ data: {
145
+ data: e.data,
146
+ text: e.text,
147
+ src: e.src,
148
+ alt: e.alt,
149
+ }
150
+ }
151
+ }))
152
+
153
+ let tooltipsActivator: HTMLElement[] = []
78
154
  </script>
79
155
 
80
156
  <Autocomplete
@@ -7,12 +7,12 @@ export type AvatarItem<Data = any> = {
7
7
  alt?: string;
8
8
  data?: Data;
9
9
  };
10
- import { type Item } from "../../../components/simple/forms/Autocomplete.svelte";
11
- import type { Snippet } from "svelte";
12
- declare class __sveltets_Render<Data> {
13
- props(): {
14
- items?: AvatarItem<Data>[] | undefined;
15
- values?: AvatarItem<Data>[] | undefined;
10
+ import Autocomplete from "../../../components/simple/forms/Autocomplete.svelte";
11
+ import type { ComponentProps, Snippet } from "svelte";
12
+ declare function $$render<Data>(): {
13
+ props: {
14
+ items?: AvatarItem<Data>[];
15
+ values?: AvatarItem<Data>[];
16
16
  multiple?: boolean;
17
17
  menuOpened?: boolean;
18
18
  openingId?: string;
@@ -20,40 +20,45 @@ declare class __sveltets_Render<Data> {
20
20
  minWidth?: string;
21
21
  disabled?: boolean;
22
22
  menuWidth?: string | null;
23
- onchange?: ((event: {
23
+ onchange?: (event: {
24
24
  detail: {
25
25
  unselect: AvatarItem<Data> | undefined;
26
26
  select: AvatarItem<Data> | undefined;
27
27
  selection: AvatarItem<Data>[];
28
28
  };
29
- }) => void) | undefined;
29
+ }) => void;
30
30
  labelSnippet?: Snippet<[{
31
31
  values: AvatarItem<Data>[];
32
32
  items: AvatarItem<Data>[];
33
33
  handleCloseClick: (params: {
34
34
  index: number;
35
35
  }) => void;
36
- }]> | undefined;
36
+ }]>;
37
37
  noValuesSnippet?: Snippet<[{
38
38
  values: AvatarItem<Data>[];
39
39
  items: AvatarItem<Data>[];
40
40
  handleCloseClick: (params: {
41
41
  index: number;
42
42
  }) => void;
43
- }]> | undefined;
44
- itemLabelSnippet?: Snippet<[{
45
- item: Item<{
46
- tooltip?: string | number;
47
- label?: string | number;
48
- text?: string;
49
- src?: string;
50
- alt?: string;
51
- data?: Data | undefined;
52
- }>;
53
- }]> | undefined;
43
+ }]>;
44
+ itemLabelSnippet?: ComponentProps<typeof Autocomplete<{
45
+ tooltip?: string | number;
46
+ label?: string | number;
47
+ text?: string;
48
+ src?: string;
49
+ alt?: string;
50
+ data?: Data;
51
+ }>>["itemLabelSnippet"];
54
52
  };
55
- events(): {};
56
- slots(): {};
53
+ exports: {};
54
+ bindings: "openingId" | "values" | "menuOpened";
55
+ slots: {};
56
+ events: {};
57
+ };
58
+ declare class __sveltets_Render<Data> {
59
+ props(): ReturnType<typeof $$render<Data>>['props'];
60
+ events(): ReturnType<typeof $$render<Data>>['events'];
61
+ slots(): ReturnType<typeof $$render<Data>>['slots'];
57
62
  bindings(): "openingId" | "values" | "menuOpened";
58
63
  exports(): {};
59
64
  }
@@ -1,24 +1,70 @@
1
- <script lang="ts">import '../../../css/main.css';
2
- import Button from '../../simple/buttons/Button.svelte';
3
- let { loading = false, marginTop = "20px", cancelText = "Annulla", confirmText = "Salva", confirmDisable = false, cancelDisable = false, oncancelClick, onconfirmClick, cancelButtonSnippet, confirmButtonSnippet, } = $props();
4
- function handleConfirm(event) {
5
- if (!confirmDisable && onconfirmClick) {
6
- onconfirmClick({
7
- detail: {
8
- nativeEvent: event.detail.nativeEvent
9
- }
10
- });
1
+ <script lang="ts">
2
+ import type { ComponentProps, Snippet } from 'svelte';
3
+ import '../../../css/main.css'
4
+ import Button from '../../simple/buttons/Button.svelte'
5
+
6
+ interface Props {
7
+ loading?: boolean;
8
+ marginTop?: string;
9
+ cancelText?: string;
10
+ confirmText?: string;
11
+ confirmDisable?: boolean;
12
+ cancelDisable?: boolean;
13
+ onconfirmClick?: (event: {
14
+ detail: {
15
+ nativeEvent: MouseEvent
16
+ }
17
+ }) => void
18
+ oncancelClick?: (event: {
19
+ detail: {
20
+ nativeEvent: MouseEvent | KeyboardEvent
21
+ }
22
+ }) => void
23
+ cancelButtonSnippet?: Snippet<[{
24
+ loading: boolean
25
+ handleCancel: typeof handleCancel
26
+ cancelText: string
27
+ }]>
28
+ confirmButtonSnippet?: Snippet<[{
29
+ loading: boolean
30
+ handleConfirm: typeof handleConfirm
31
+ confirmText: string
32
+ confirmDisable: boolean
33
+ }]>
34
+ }
35
+
36
+ let {
37
+ loading = false,
38
+ marginTop = "20px",
39
+ cancelText = "Annulla",
40
+ confirmText = "Salva",
41
+ confirmDisable = false,
42
+ cancelDisable = false,
43
+ oncancelClick,
44
+ onconfirmClick,
45
+ cancelButtonSnippet,
46
+ confirmButtonSnippet,
47
+ }: Props = $props();
48
+
49
+ function handleConfirm(event: Parameters<NonNullable<ComponentProps<typeof Button>['onclick']>>[0]) {
50
+ if(!confirmDisable && onconfirmClick) {
51
+ onconfirmClick({
52
+ detail: {
53
+ nativeEvent: event.detail.nativeEvent
54
+ }
55
+ })
11
56
  }
12
- }
13
- function handleCancel(nativeEvent) {
14
- if (!cancelDisable && oncancelClick) {
15
- oncancelClick({
16
- detail: {
17
- nativeEvent
18
- }
19
- });
57
+ }
58
+
59
+ function handleCancel(nativeEvent: MouseEvent | KeyboardEvent) {
60
+ if(!cancelDisable && oncancelClick) {
61
+ oncancelClick({
62
+ detail: {
63
+ nativeEvent
64
+ }
65
+ })
20
66
  }
21
- }
67
+ }
22
68
  </script>
23
69
 
24
70
  <div
@@ -1,7 +1,36 @@
1
- <script lang="ts">import Autocomplete, {} from "../../simple/forms/Autocomplete.svelte";
2
- import { countriesOptions } from '../../../utils/countries';
3
- import FlagIcon from "../../simple/media/FlagIcon.svelte";
4
- let { autocompleteProps = {}, selected = $bindable(), items = countriesOptions, onblur, onchange, onclose, onfocus, onkeydown, class: clazz = {} } = $props();
1
+ <script lang="ts">
2
+ import Autocomplete, {
3
+ type Item,
4
+ } from "../../simple/forms/Autocomplete.svelte";
5
+ import type { ComponentProps } from "svelte";
6
+ import { countriesOptions } from '../../../utils/countries';
7
+ import FlagIcon from "../../simple/media/FlagIcon.svelte";
8
+
9
+ interface Props {
10
+ autocompleteProps?: Omit<ComponentProps<typeof Autocomplete>, 'items'>;
11
+ selected?: Item[];
12
+ items?: Item[];
13
+ class?: {
14
+ flagIcon?: string,
15
+ }
16
+ onblur?: ComponentProps<typeof Autocomplete>['onblur']
17
+ onclose?: ComponentProps<typeof Autocomplete>['onclose']
18
+ onfocus?: ComponentProps<typeof Autocomplete>['onfocus']
19
+ onkeydown?: ComponentProps<typeof Autocomplete>['onblur']
20
+ onchange?: ComponentProps<typeof Autocomplete>['onchange']
21
+ }
22
+
23
+ let {
24
+ autocompleteProps = {},
25
+ selected = $bindable(),
26
+ items = countriesOptions,
27
+ onblur,
28
+ onchange,
29
+ onclose,
30
+ onfocus,
31
+ onkeydown,
32
+ class: clazz = {}
33
+ }: Props = $props();
5
34
  </script>
6
35
 
7
36
  <Autocomplete