@likable-hair/svelte 4.2.5 → 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 (117) 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.svelte +59 -23
  8. package/dist/components/composed/common/ToolTip.svelte +51 -32
  9. package/dist/components/composed/dashboard/DashboardShaper.svelte +280 -147
  10. package/dist/components/composed/dashboard/DashboardShaper.svelte.d.ts +54 -45
  11. package/dist/components/composed/forms/AsyncAutocomplete.svelte +81 -30
  12. package/dist/components/composed/forms/AsyncAutocomplete.svelte.d.ts +12 -5
  13. package/dist/components/composed/forms/AvatarDropdown.svelte +146 -70
  14. package/dist/components/composed/forms/AvatarDropdown.svelte.d.ts +27 -22
  15. package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte +65 -19
  16. package/dist/components/composed/forms/CountriesAutocomplete.svelte +33 -4
  17. package/dist/components/composed/forms/DatePickerTextField.svelte +266 -161
  18. package/dist/components/composed/forms/Dropdown.svelte +88 -21
  19. package/dist/components/composed/forms/Dropdown.svelte.d.ts +18 -13
  20. package/dist/components/composed/forms/IconsDropdown.svelte +85 -40
  21. package/dist/components/composed/forms/IconsDropdown.svelte.d.ts +15 -8
  22. package/dist/components/composed/forms/LabelAndSelect.svelte +46 -5
  23. package/dist/components/composed/forms/LabelAndTextField.svelte +56 -3
  24. package/dist/components/composed/forms/PeriodPicker.svelte +38 -18
  25. package/dist/components/composed/forms/PeriodPicker.svelte.d.ts +32 -7
  26. package/dist/components/composed/forms/PeriodSelector.svelte +427 -312
  27. package/dist/components/composed/forms/PeriodSelector.svelte.d.ts +20 -13
  28. package/dist/components/composed/forms/ToggleList.svelte +71 -37
  29. package/dist/components/composed/forms/ToggleList.svelte.d.ts +14 -7
  30. package/dist/components/composed/forms/YearPickerTextField.svelte +154 -82
  31. package/dist/components/composed/list/DynamicTable.svelte +1372 -809
  32. package/dist/components/composed/list/DynamicTable.svelte.d.ts +85 -70
  33. package/dist/components/composed/list/EnhancedPaginatedTable.svelte +75 -32
  34. package/dist/components/composed/list/EnhancedPaginatedTable.svelte.d.ts +16 -6
  35. package/dist/components/composed/list/PaginatedTable.svelte +324 -116
  36. package/dist/components/composed/list/PaginatedTable.svelte.d.ts +26 -22
  37. package/dist/components/composed/progress/HorizontalStackedProgress.svelte +67 -29
  38. package/dist/components/composed/search/DynamicFilters.svelte +126 -91
  39. package/dist/components/composed/search/FilterEditor.svelte +169 -109
  40. package/dist/components/composed/search/Filters.svelte +385 -275
  41. package/dist/components/composed/search/GlobalSearchTextField.svelte +102 -42
  42. package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +23 -20
  43. package/dist/components/composed/search/MobileFilterEditor.svelte +174 -120
  44. package/dist/components/composed/search/QuickFilters.svelte +124 -75
  45. package/dist/components/composed/search/SearchBar.svelte +42 -3
  46. package/dist/components/composed/search/SearchResults.svelte +48 -5
  47. package/dist/components/composed/search/SearchResults.svelte.d.ts +17 -17
  48. package/dist/components/layouts/CollapsibleSideBarLayout.svelte +100 -24
  49. package/dist/components/layouts/StableDividedSideBarLayout.svelte +74 -24
  50. package/dist/components/layouts/UnstableDividedSideBarLayout.svelte +140 -57
  51. package/dist/components/simple/buttons/Button.svelte +86 -36
  52. package/dist/components/simple/buttons/LinkButton.svelte +81 -25
  53. package/dist/components/simple/charts/BarChart.svelte +137 -105
  54. package/dist/components/simple/charts/LineChart.svelte +124 -92
  55. package/dist/components/simple/charts/PieChart.svelte +51 -23
  56. package/dist/components/simple/common/CollapsibleDivider.svelte +58 -26
  57. package/dist/components/simple/common/Divider.svelte +2 -1
  58. package/dist/components/simple/common/InfiniteScroll.svelte +60 -34
  59. package/dist/components/simple/common/MediaQuery.svelte +28 -3
  60. package/dist/components/simple/common/Menu.svelte +516 -371
  61. package/dist/components/simple/common/NoData.svelte +18 -4
  62. package/dist/components/simple/common/VerticalDraggableList.svelte +52 -26
  63. package/dist/components/simple/common/VerticalDraggableList.svelte.d.ts +20 -9
  64. package/dist/components/simple/dashboards/DashboardGridShaper.svelte +28 -22
  65. package/dist/components/simple/dates/Calendar.svelte +142 -72
  66. package/dist/components/simple/dates/DatePicker.svelte +138 -71
  67. package/dist/components/simple/dates/MonthSelector.svelte +49 -13
  68. package/dist/components/simple/dates/YearSelector.svelte +73 -30
  69. package/dist/components/simple/dialogs/Dialog.svelte +109 -59
  70. package/dist/components/simple/forms/Autocomplete.svelte +341 -164
  71. package/dist/components/simple/forms/Autocomplete.svelte.d.ts +27 -20
  72. package/dist/components/simple/forms/Checkbox.svelte +57 -29
  73. package/dist/components/simple/forms/FileInput.svelte +103 -58
  74. package/dist/components/simple/forms/FileInputList.svelte +115 -51
  75. package/dist/components/simple/forms/RadioButton.svelte +36 -3
  76. package/dist/components/simple/forms/Select.svelte +30 -3
  77. package/dist/components/simple/forms/SimpleTextField.svelte +94 -4
  78. package/dist/components/simple/forms/Switch.svelte +33 -11
  79. package/dist/components/simple/forms/Textarea.svelte +22 -5
  80. package/dist/components/simple/forms/VerticalSwitch.svelte +19 -2
  81. package/dist/components/simple/forms/VerticalTextSwitch.svelte +35 -3
  82. package/dist/components/simple/lists/BoxList.svelte +42 -11
  83. package/dist/components/simple/lists/ColorInvertedSelector.svelte +83 -25
  84. package/dist/components/simple/lists/HierarchyMenu.svelte +55 -20
  85. package/dist/components/simple/lists/Paginator.svelte +53 -34
  86. package/dist/components/simple/lists/SelectableMenuList.svelte +52 -16
  87. package/dist/components/simple/lists/SelectableVerticalList.svelte +169 -85
  88. package/dist/components/simple/lists/SelectableVerticalList.svelte.d.ts +21 -14
  89. package/dist/components/simple/lists/SidebarMenuList.svelte +127 -79
  90. package/dist/components/simple/lists/SimpleTable.svelte +442 -245
  91. package/dist/components/simple/lists/SimpleTable.svelte.d.ts +31 -22
  92. package/dist/components/simple/loaders/CircularLoader.css +1 -1
  93. package/dist/components/simple/loaders/CircularLoader.svelte +11 -3
  94. package/dist/components/simple/loaders/Skeleton.svelte +3 -2
  95. package/dist/components/simple/media/Avatar.svelte +35 -15
  96. package/dist/components/simple/media/DescriptiveAvatar.svelte +30 -4
  97. package/dist/components/simple/media/FlagIcon.svelte +13 -3
  98. package/dist/components/simple/media/Icon.svelte +21 -6
  99. package/dist/components/simple/navigation/Breadcrumb.svelte +41 -9
  100. package/dist/components/simple/navigation/Chip.svelte +65 -29
  101. package/dist/components/simple/navigation/Drawer.svelte +132 -71
  102. package/dist/components/simple/navigation/HeaderMenu.svelte +69 -25
  103. package/dist/components/simple/navigation/Navigator.svelte +45 -11
  104. package/dist/components/simple/navigation/TabSwitcher.svelte +60 -19
  105. package/dist/components/simple/notifiers/AlertBanner.svelte +59 -11
  106. package/dist/components/simple/progress/ProgressBar.svelte +26 -10
  107. package/dist/components/simple/timeline/SimpleTimeLine.svelte +52 -5
  108. package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +16 -9
  109. package/dist/components/simple/typography/Code.svelte +41 -12
  110. package/dist/stores/layouts/unstableSidebarOpened.d.ts +1 -1
  111. package/dist/stores/layouts/unstableSidebarOpened.js +1 -1
  112. package/dist/stores/theme.js +2 -2
  113. package/dist/utils/filters/builder.d.ts +2 -2
  114. package/dist/utils/filters/builder.js +7 -7
  115. package/dist/utils/filters/modifiers/where.d.ts +1 -1
  116. package/dist/utils/teleporter.js +4 -4
  117. 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;
@@ -104,8 +104,15 @@ declare class __sveltets_Render<Data> {
104
104
  onkeydown?: ((e: KeyboardEvent) => void) | undefined;
105
105
  onclose?: ComponentProps<typeof import("../../..").Drawer>["onclose"];
106
106
  };
107
- events(): {};
108
- 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'];
109
116
  bindings(): "values" | "menuOpened" | "searchText";
110
117
  exports(): {};
111
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