@cloudparker/moldex.js 0.0.28 → 0.0.30

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 (96) hide show
  1. package/dist/services/dialog/dialog-service.d.ts +16 -0
  2. package/dist/services/dialog/dialog-service.js +23 -1
  3. package/dist/services/utils/utils-service.d.ts +3 -0
  4. package/dist/services/utils/utils-service.js +26 -0
  5. package/dist/tailwind.css +1 -1
  6. package/dist/views/core/button/components/button/button.svelte +57 -34
  7. package/dist/views/core/button/components/button/button.svelte.d.ts +19 -18
  8. package/dist/views/core/button/components/button-back/button-back.svelte +44 -0
  9. package/dist/views/core/button/components/button-back/button-back.svelte.d.ts +24 -0
  10. package/dist/views/core/button/components/button-close/button-close.svelte +7 -0
  11. package/dist/views/core/button/components/button-close/button-close.svelte.d.ts +19 -0
  12. package/dist/views/core/button/components/button-close-icon/button-close-icon.svelte +47 -0
  13. package/dist/views/core/button/components/button-close-icon/button-close-icon.svelte.d.ts +25 -0
  14. package/dist/views/core/button/components/button-list-item/button-list-item.svelte +94 -42
  15. package/dist/views/core/button/components/button-list-item/button-list-item.svelte.d.ts +11 -11
  16. package/dist/views/core/button/components/button-menu/button-menu.svelte +155 -103
  17. package/dist/views/core/button/components/button-menu/button-menu.svelte.d.ts +7 -7
  18. package/dist/views/core/button/components/button-ok/button-ok.svelte +7 -0
  19. package/dist/views/core/button/components/button-ok/button-ok.svelte.d.ts +19 -0
  20. package/dist/views/core/button/index.d.ts +5 -1
  21. package/dist/views/core/button/index.js +10 -1
  22. package/dist/views/core/dialog/components/dialog/dialog.svelte +328 -231
  23. package/dist/views/core/dialog/components/dialog/dialog.svelte.d.ts +6 -10
  24. package/dist/views/core/dialog/components/list-dialog/list-picker-dialog.svelte +189 -0
  25. package/dist/views/core/dialog/components/list-dialog/list-picker-dialog.svelte.d.ts +41 -0
  26. package/dist/views/core/dialog/components/msg-dialog/msg-dialog.svelte +22 -13
  27. package/dist/views/core/dialog/index.d.ts +4 -2
  28. package/dist/views/core/dialog/index.js +2 -2
  29. package/dist/views/core/drawer/components/drawer/drawer.svelte +52 -34
  30. package/dist/views/core/icon/components/icon/icon.svelte +25 -12
  31. package/dist/views/core/icon/components/icon/icon.svelte.d.ts +1 -0
  32. package/dist/views/core/icon/services/icon-path-service.d.ts +6 -0
  33. package/dist/views/core/icon/services/icon-path-service.js +6 -0
  34. package/dist/views/core/index.d.ts +2 -0
  35. package/dist/views/core/index.js +2 -0
  36. package/dist/views/core/input/components/color-field/color-field.svelte +114 -0
  37. package/dist/views/core/input/components/color-field/color-field.svelte.d.ts +23 -0
  38. package/dist/views/core/input/components/combobox-field/combobox-field.svelte +467 -0
  39. package/dist/views/core/input/components/combobox-field/combobox-field.svelte.d.ts +63 -0
  40. package/dist/views/core/input/components/date-field/date-field.svelte +13 -0
  41. package/dist/views/core/input/components/date-field/date-field.svelte.d.ts +21 -0
  42. package/dist/views/core/input/components/datetime-field/datetime-field.svelte +13 -0
  43. package/dist/views/core/input/components/datetime-field/datetime-field.svelte.d.ts +21 -0
  44. package/dist/views/core/input/components/email-field/email-field.svelte +12 -0
  45. package/dist/views/core/input/components/email-field/email-field.svelte.d.ts +21 -0
  46. package/dist/views/core/input/components/file-field/file-field.svelte +92 -0
  47. package/dist/views/core/input/components/file-field/file-field.svelte.d.ts +25 -0
  48. package/dist/views/core/input/components/input-field/input-field.svelte +382 -0
  49. package/dist/views/core/{form → input}/components/input-field/input-field.svelte.d.ts +51 -35
  50. package/dist/views/core/input/components/label/label.svelte +46 -0
  51. package/dist/views/core/input/components/number-field/number-field.svelte +13 -0
  52. package/dist/views/core/input/components/number-field/number-field.svelte.d.ts +21 -0
  53. package/dist/views/core/input/components/password-field/password-field.svelte +83 -0
  54. package/dist/views/core/input/components/password-field/password-field.svelte.d.ts +24 -0
  55. package/dist/views/core/input/components/phone-field/phone-field.svelte +90 -0
  56. package/dist/views/core/input/components/phone-field/phone-field.svelte.d.ts +24 -0
  57. package/dist/views/core/input/components/range-field/range-field.svelte +72 -0
  58. package/dist/views/core/input/components/range-field/range-field.svelte.d.ts +31 -0
  59. package/dist/views/core/input/components/search-field/search-field.svelte +67 -0
  60. package/dist/views/core/input/components/search-field/search-field.svelte.d.ts +24 -0
  61. package/dist/views/core/input/components/text-field/text-field.svelte +12 -0
  62. package/dist/views/core/input/components/text-field/text-field.svelte.d.ts +21 -0
  63. package/dist/views/core/input/components/textarea-field/textarea-field.svelte +12 -0
  64. package/dist/views/core/input/components/textarea-field/textarea-field.svelte.d.ts +21 -0
  65. package/dist/views/core/input/components/time-field/time-field.svelte +12 -0
  66. package/dist/views/core/input/components/time-field/time-field.svelte.d.ts +21 -0
  67. package/dist/views/core/input/index.d.ts +19 -0
  68. package/dist/views/core/input/index.js +19 -0
  69. package/dist/views/core/navbar/components/navbar/navbar.svelte +71 -39
  70. package/dist/views/core/navbar/components/navbar/navbar.svelte.d.ts +3 -3
  71. package/dist/views/core/no-data/components/no-data/no-data.svelte +51 -0
  72. package/dist/views/core/no-data/components/no-data/no-data.svelte.d.ts +27 -0
  73. package/dist/views/core/no-data/index.d.ts +2 -0
  74. package/dist/views/core/no-data/index.js +2 -0
  75. package/dist/views/core/pagination/components/pagination/pagination.svelte +100 -71
  76. package/dist/views/core/progressbar/components/progressbar/progressbar.svelte +37 -23
  77. package/dist/views/core/referrer/components/referrer.svelte +15 -13
  78. package/dist/views/core/ruler/components/vertical-ruler/verticcal-ruler.svelte +6 -2
  79. package/dist/views/core/screen-detector/components/screen-detector.svelte +13 -9
  80. package/dist/views/core/spinner/components/spinner/spinner.svelte +7 -2
  81. package/dist/views/core/text/components/text-await/text-await.svelte +8 -2
  82. package/dist/views/core/text/components/text-copy/text-copy.svelte +28 -17
  83. package/dist/views/core/text/components/text-country/text-country.svelte +42 -29
  84. package/dist/views/core/text/components/text-country-state/text-country-state.svelte +38 -30
  85. package/dist/views/core/text/components/text-currency/text-currency.svelte +21 -10
  86. package/dist/views/core/text/components/text-date/text-date.svelte +33 -21
  87. package/dist/views/core/text/components/text-email/text-email.svelte +13 -4
  88. package/dist/views/core/text/components/text-html/text-html.svelte +3 -2
  89. package/dist/views/core/text/components/text-phone/text-phone.svelte +13 -4
  90. package/dist/views/core/toast/components/toast/toast.svelte +44 -21
  91. package/package.json +2 -2
  92. package/dist/views/core/form/components/input-field/input-field.svelte +0 -233
  93. package/dist/views/core/form/components/label/label.svelte +0 -32
  94. package/dist/views/core/form/index.d.ts +0 -3
  95. package/dist/views/core/form/index.js +0 -3
  96. /package/dist/views/core/{form → input}/components/label/label.svelte.d.ts +0 -0
@@ -0,0 +1,189 @@
1
+ <script lang="ts">
2
+ import { ButtonListItem } from '../../..';
3
+ import ButtonBack from '../../../button/components/button-back/button-back.svelte';
4
+ import ButtonCloseIcon from '../../../button/components/button-close-icon/button-close-icon.svelte';
5
+ import ButtonClose from '../../../button/components/button-close/button-close.svelte';
6
+ import type { ListItemType } from '../../../button/components/button-list-item/button-list-item.svelte';
7
+ import ButtonOk from '../../../button/components/button-ok/button-ok.svelte';
8
+ import SearchField from '../../../input/components/search-field/search-field.svelte';
9
+ import type { Snippet } from 'svelte';
10
+ import type { DialogExportsType } from '../dialog/dialog.svelte';
11
+
12
+ type PropsType = {
13
+ value?: any | any[];
14
+ multiple?: boolean;
15
+ items?: any[];
16
+ itemSnippet?: Snippet<[any, number]>;
17
+ itemTitle?: string;
18
+ itemSubtitle?: string;
19
+ search?: string;
20
+ identity?: string;
21
+ iconPath?: string;
22
+ hasCheckbox?: boolean;
23
+ hasArrow?: boolean;
24
+ itemTitleClassName?: string;
25
+ itemSubtitleClassName?: string;
26
+ okButtonLable?: string;
27
+ okButtonClassName?: string;
28
+ closeButtonLabel?: string;
29
+ closeButtonClassName?: string;
30
+ };
31
+
32
+ let {
33
+ value,
34
+ multiple = false,
35
+ items,
36
+ itemTitle,
37
+ itemSubtitle,
38
+ hasCheckbox,
39
+ hasArrow,
40
+ search,
41
+ identity,
42
+ itemTitleClassName,
43
+ itemSubtitleClassName,
44
+ okButtonLable = 'Select',
45
+ okButtonClassName = '',
46
+ closeButtonLabel = 'Close',
47
+ closeButtonClassName = '',
48
+ itemSnippet,
49
+ closeDialog,
50
+ setResult
51
+ }: PropsType &
52
+ DialogExportsType & {
53
+ items?: any[];
54
+ itemSnippet?: Snippet<[any, number]>;
55
+ } = $props();
56
+
57
+ let searchText: string = $state('');
58
+
59
+ let idField = Symbol('_id');
60
+ let searchField = Symbol('_search');
61
+
62
+ type CustomListItemType = ListItemType & { [key: symbol]: string };
63
+
64
+ let selectedItemsSet: Set<any> = $derived.by(() => {
65
+ let set = new Set<any>();
66
+ if (value != null) {
67
+ if (Array.isArray(value)) {
68
+ value.forEach((v) => set.add(v));
69
+ } else {
70
+ set.add(value);
71
+ }
72
+ }
73
+ return set;
74
+ });
75
+
76
+ let preparedItems: any[] = $derived.by(() => {
77
+ return (items || []).map((item: any, index) => {
78
+ let res: CustomListItemType = {
79
+ [idField]: identity && item.hasOwnProperty(identity) ? item[identity] : index
80
+ };
81
+ if (itemTitle) {
82
+ res.title = item.hasOwnProperty(itemTitle) ? item[itemTitle] : itemTitle;
83
+ }
84
+ if (itemSubtitle) {
85
+ res.subtitle = item.hasOwnProperty(itemSubtitle) ? item[itemSubtitle] : itemSubtitle;
86
+ }
87
+ if (search) {
88
+ res[searchField] = (item[search] || '').trim().toLowerCase();
89
+ } else {
90
+ res[searchField] = `${res.title || ''} ${res.subtitle || ''}`.trim().toLowerCase();
91
+ }
92
+ if (selectedItemsSet.has(res[idField])) {
93
+ res.isChecked = true;
94
+ } else {
95
+ res.isChecked = false;
96
+ }
97
+
98
+ return res;
99
+ });
100
+ });
101
+
102
+ let filteredItems: any[] = $derived.by(() => {
103
+ if (searchText) {
104
+ return preparedItems.filter((item: any) => {
105
+ return item[searchField].indexOf(searchText) >= 0;
106
+ });
107
+ } else {
108
+ return [...preparedItems];
109
+ }
110
+ });
111
+
112
+ function handleSearch(text: string) {
113
+ searchText = text;
114
+ }
115
+
116
+ function handleItemSelected(ev: MouseEvent, item: CustomListItemType, index: number) {
117
+ let id = item[idField];
118
+ if (multiple) {
119
+ if (selectedItemsSet.has(id)) {
120
+ selectedItemsSet.delete(id);
121
+ } else {
122
+ selectedItemsSet.add(id);
123
+ }
124
+ } else {
125
+ selectedItemsSet.clear();
126
+ selectedItemsSet.add(id);
127
+ }
128
+
129
+ items = [...(items || [])];
130
+
131
+ if (!multiple) {
132
+ if (selectedItemsSet.size) {
133
+ setTimeout(() => {
134
+ setResult(Array.from(selectedItemsSet)[0]);
135
+ closeDialog();
136
+ }, 300);
137
+ }
138
+ }
139
+ }
140
+
141
+ function handleClose() {
142
+ closeDialog();
143
+ }
144
+
145
+ function handleOk() {
146
+ setResult(Array.from(selectedItemsSet));
147
+ closeDialog();
148
+ }
149
+
150
+ $effect(() => {
151
+ setResult(null);
152
+ });
153
+ </script>
154
+
155
+ <div class="flex gap-3 p-3">
156
+ <ButtonBack onlyMobile onClick={handleClose} />
157
+ <div class="flex-grow">
158
+ <SearchField
159
+ name="search"
160
+ className="rounded-full"
161
+ onSearch={handleSearch}
162
+ placeholder="Search..."
163
+ />
164
+ </div>
165
+ <ButtonCloseIcon onlyWeb onClick={handleClose} />
166
+ </div>
167
+ <div class="flex-grow overflow-y-auto">
168
+ {#each filteredItems as item, index}
169
+ <div>
170
+ <ButtonListItem
171
+ {item}
172
+ id="list"
173
+ {index}
174
+ titleClassName={itemTitleClassName}
175
+ subtitleClassName={itemSubtitleClassName}
176
+ {hasArrow}
177
+ {hasCheckbox}
178
+ onClick={(ev) => handleItemSelected(ev, item, index)}
179
+ className="px-4"
180
+ />
181
+ </div>
182
+ {/each}
183
+ </div>
184
+ {#if multiple}
185
+ <div class="flex items-center justify-end gap-3 p-4">
186
+ <ButtonOk label={okButtonLable} className={okButtonClassName} onClick={handleOk} />
187
+ <ButtonClose label={closeButtonLabel} className={closeButtonClassName} onClick={handleClose} />
188
+ </div>
189
+ {/if}
@@ -0,0 +1,41 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { DialogExportsType } from '../dialog/dialog.svelte';
3
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
+ $$bindings?: Bindings;
6
+ } & Exports;
7
+ (internal: unknown, props: Props & {
8
+ $$events?: Events;
9
+ $$slots?: Slots;
10
+ }): Exports & {
11
+ $set?: any;
12
+ $on?: any;
13
+ };
14
+ z_$$bindings?: Bindings;
15
+ }
16
+ declare const ListPickerDialog: $$__sveltets_2_IsomorphicComponent<{
17
+ value?: any | any[];
18
+ multiple?: boolean;
19
+ items?: any[];
20
+ itemSnippet?: Snippet<[any, number]>;
21
+ itemTitle?: string;
22
+ itemSubtitle?: string;
23
+ search?: string;
24
+ identity?: string;
25
+ iconPath?: string;
26
+ hasCheckbox?: boolean;
27
+ hasArrow?: boolean;
28
+ itemTitleClassName?: string;
29
+ itemSubtitleClassName?: string;
30
+ okButtonLable?: string;
31
+ okButtonClassName?: string;
32
+ closeButtonLabel?: string;
33
+ closeButtonClassName?: string;
34
+ } & DialogExportsType & {
35
+ items?: any[];
36
+ itemSnippet?: Snippet<[any, number]>;
37
+ }, {
38
+ [evt: string]: CustomEvent<any>;
39
+ }, {}, {}, "">;
40
+ type ListPickerDialog = InstanceType<typeof ListPickerDialog>;
41
+ export default ListPickerDialog;
@@ -1,16 +1,25 @@
1
- <script lang="ts">let {
2
- className,
3
- msg,
4
- setOnOkClick,
5
- setResult,
6
- closeDialog
7
- } = $props();
8
- $effect(() => {
9
- setOnOkClick(() => {
10
- setResult(true);
11
- closeDialog();
12
- });
13
- });
1
+ <script lang="ts">
2
+ import type { DialogExportsType } from '../dialog/dialog.svelte';
3
+
4
+ type PropsType = {
5
+ className?: string;
6
+ msg?: string;
7
+ };
8
+
9
+ let {
10
+ className,
11
+ msg,
12
+ setOnOkClick,
13
+ setResult,
14
+ closeDialog,
15
+ }: PropsType & DialogExportsType = $props();
16
+
17
+ $effect(() => {
18
+ setOnOkClick(() => {
19
+ setResult(true);
20
+ closeDialog();
21
+ });
22
+ });
14
23
  </script>
15
24
 
16
25
  <div class="p-6 {className}">
@@ -1,3 +1,5 @@
1
+ import type { DialogExportsType, DialogPropsType, DialogSizeType } from './components/dialog/dialog.svelte';
2
+ import Dialog from './components/dialog/dialog.svelte';
1
3
  import MsgDialog from "./components/msg-dialog/msg-dialog.svelte";
2
- import Dialog, { type DialogExportsType, type DialogPropsType, DialogSizeEnum } from './components/dialog/dialog.svelte';
3
- export { Dialog, DialogSizeEnum, MsgDialog, type DialogExportsType, type DialogPropsType, };
4
+ export { Dialog, MsgDialog };
5
+ export type { DialogExportsType, DialogPropsType, DialogSizeType };
@@ -1,3 +1,3 @@
1
+ import Dialog from './components/dialog/dialog.svelte';
1
2
  import MsgDialog from "./components/msg-dialog/msg-dialog.svelte";
2
- import Dialog, { DialogSizeEnum } from './components/dialog/dialog.svelte';
3
- export { Dialog, DialogSizeEnum, MsgDialog, };
3
+ export { Dialog, MsgDialog };
@@ -1,37 +1,55 @@
1
- <script lang="ts">import "../../../../../tailwind.css";
2
- let {
3
- id = "",
4
- children,
5
- backdropClassName = "",
6
- className = "bg-indigo-600 text-white",
7
- containerClassName = "",
8
- drawerContainerClassName = "",
9
- drawerClassName = ""
10
- } = $props();
11
- let isPlaced = $state(false);
12
- let isOpened = $state(false);
13
- function handelBackdropClick() {
14
- toggleDrawer();
15
- }
16
- export function toggleDrawer() {
17
- if (!isPlaced) {
18
- openDrawer();
19
- } else {
20
- closeDrawer();
21
- }
22
- }
23
- export function openDrawer() {
24
- isPlaced = true;
25
- setTimeout(() => {
26
- isOpened = true;
27
- }, 0);
28
- }
29
- export function closeDrawer() {
30
- isOpened = false;
31
- setTimeout(() => {
32
- isPlaced = false;
33
- }, 300);
34
- }
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import '../../../../../tailwind.css';
4
+
5
+ type PropsType = {
6
+ children?: Snippet;
7
+ id?: string;
8
+ backdropClassName?: string;
9
+ className?: string;
10
+ containerClassName?: string;
11
+ drawerContainerClassName?: string;
12
+ drawerClassName?: string;
13
+ };
14
+
15
+ let {
16
+ id = '',
17
+ children,
18
+ backdropClassName = '',
19
+ className = 'bg-indigo-600 text-white',
20
+ containerClassName = '',
21
+ drawerContainerClassName = '',
22
+ drawerClassName = ''
23
+ }: PropsType = $props();
24
+
25
+ let isPlaced: boolean = $state(false);
26
+ let isOpened: boolean = $state(false);
27
+
28
+ function handelBackdropClick() {
29
+ toggleDrawer();
30
+ }
31
+
32
+ export function toggleDrawer() {
33
+ if (!isPlaced) {
34
+ openDrawer();
35
+ } else {
36
+ closeDrawer();
37
+ }
38
+ }
39
+
40
+ export function openDrawer() {
41
+ isPlaced = true;
42
+ setTimeout(() => {
43
+ isOpened = true;
44
+ }, 0);
45
+ }
46
+
47
+ export function closeDrawer() {
48
+ isOpened = false;
49
+ setTimeout(() => {
50
+ isPlaced = false;
51
+ }, 300);
52
+ }
35
53
  </script>
36
54
 
37
55
  {#if isPlaced}
@@ -1,16 +1,29 @@
1
- <script lang="ts">import "../../../../../tailwind.css";
2
- let {
3
- path,
4
- className = "",
5
- size = 24,
6
- fill = "currentColor",
7
- viewBox = ""
8
- } = $props();
9
- $effect(() => {
10
- viewBox = viewBox || `0 0 ${size} ${size}`;
11
- });
1
+ <script lang="ts">
2
+ import ColorField from '../../../input/components/color-field/color-field.svelte';
3
+ import '../../../../../tailwind.css';
4
+ type IconPropsType = {
5
+ path: string;
6
+ className?: string;
7
+ size?: number;
8
+ fill?: string;
9
+ viewBox?: string;
10
+ color?: string;
11
+ };
12
+
13
+ let {
14
+ path,
15
+ className = '',
16
+ size = 24,
17
+ fill = 'currentColor',
18
+ viewBox = '',
19
+ color
20
+ }: IconPropsType = $props();
21
+
22
+ $effect(() => {
23
+ viewBox = viewBox || `0 0 ${size} ${size}`;
24
+ });
12
25
  </script>
13
26
 
14
- <svg class="w-6 h-6 align-middle {className}" {viewBox} fill="currentColor">
27
+ <svg class="w-6 h-6 align-middle {className}" {viewBox} fill={color || fill}>
15
28
  <path d={path} />
16
29
  </svg>
@@ -18,6 +18,7 @@ declare const Icon: $$__sveltets_2_IsomorphicComponent<{
18
18
  size?: number;
19
19
  fill?: string;
20
20
  viewBox?: string;
21
+ color?: string;
21
22
  }, {
22
23
  [evt: string]: CustomEvent<any>;
23
24
  }, {}, {}, "">;
@@ -1,4 +1,5 @@
1
1
  export declare const mdiArrowLeft = "M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z";
2
+ export declare const mdiAttachment = "M7.5,18A5.5,5.5 0 0,1 2,12.5A5.5,5.5 0 0,1 7.5,7H18A4,4 0 0,1 22,11A4,4 0 0,1 18,15H9.5A2.5,2.5 0 0,1 7,12.5A2.5,2.5 0 0,1 9.5,10H17V11.5H9.5A1,1 0 0,0 8.5,12.5A1,1 0 0,0 9.5,13.5H18A2.5,2.5 0 0,0 20.5,11A2.5,2.5 0 0,0 18,8.5H7.5A4,4 0 0,0 3.5,12.5A4,4 0 0,0 7.5,16.5H17V18H7.5Z";
2
3
  export declare const mdiBellOutline = "M10 21H14C14 22.1 13.1 23 12 23S10 22.1 10 21M21 19V20H3V19L5 17V11C5 7.9 7 5.2 10 4.3V4C10 2.9 10.9 2 12 2S14 2.9 14 4V4.3C17 5.2 19 7.9 19 11V17L21 19M17 11C17 8.2 14.8 6 12 6S7 8.2 7 11V18H17V11Z";
3
4
  export declare const mdiCheckCircle = "M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z";
4
5
  export declare const mdiCheckCircleOutline = "M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 20C7.59 20 4 16.41 4 12S7.59 4 12 4 20 7.59 20 12 16.41 20 12 20M16.59 7.58L10 14.17L7.41 11.59L6 13L10 17L18 9L16.59 7.58Z";
@@ -8,8 +9,13 @@ export declare const mdiChevronRight = "M8.59,16.58L13.17,12L8.59,7.41L10,6L16,1
8
9
  export declare const mdiClose = "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z";
9
10
  export declare const mdiContentCopy = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z";
10
11
  export declare const mdiEmailOutline = "M22 6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6M20 6L12 11L4 6H20M20 18H4V8L12 13L20 8V18Z";
12
+ export declare const mdiEyeOffOutline = "M2,5.27L3.28,4L20,20.72L18.73,22L15.65,18.92C14.5,19.3 13.28,19.5 12,19.5C7,19.5 2.73,16.39 1,12C1.69,10.24 2.79,8.69 4.19,7.46L2,5.27M12,9A3,3 0 0,1 15,12C15,12.35 14.94,12.69 14.83,13L11,9.17C11.31,9.06 11.65,9 12,9M12,4.5C17,4.5 21.27,7.61 23,12C22.18,14.08 20.79,15.88 19,17.19L17.58,15.76C18.94,14.82 20.06,13.54 20.82,12C19.17,8.64 15.76,6.5 12,6.5C10.91,6.5 9.84,6.68 8.84,7L7.3,5.47C8.74,4.85 10.33,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C12.69,17.5 13.37,17.43 14,17.29L11.72,15C10.29,14.85 9.15,13.71 9,12.28L5.6,8.87C4.61,9.72 3.78,10.78 3.18,12Z";
13
+ export declare const mdiEyeOutline = "M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z";
11
14
  export declare const mdiFlowerTulip = "M3,13A9,9 0 0,0 12,22A9,9 0 0,0 3,13M12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,22M18,3V8A6,6 0 0,1 12,14A6,6 0 0,1 6,8V3C6.74,3 7.47,3.12 8.16,3.39C8.71,3.62 9.2,3.96 9.61,4.39L12,2L14.39,4.39C14.8,3.96 15.29,3.62 15.84,3.39C16.53,3.12 17.26,3 18,3Z";
15
+ export declare const mdiMagnify = "M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z";
12
16
  export declare const mdiMenu = "M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z";
13
17
  export declare const mdiPageFirst = "M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z";
14
18
  export declare const mdiPageLast = "M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z";
15
19
  export declare const mdiPhone = "M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z";
20
+ export declare const mdiSquare = "M3,3V21H21V3";
21
+ export declare const mdiUnfoldMoreHorizontal = "M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z";
@@ -1,5 +1,6 @@
1
1
  // MDI
2
2
  export const mdiArrowLeft = "M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z";
3
+ export const mdiAttachment = "M7.5,18A5.5,5.5 0 0,1 2,12.5A5.5,5.5 0 0,1 7.5,7H18A4,4 0 0,1 22,11A4,4 0 0,1 18,15H9.5A2.5,2.5 0 0,1 7,12.5A2.5,2.5 0 0,1 9.5,10H17V11.5H9.5A1,1 0 0,0 8.5,12.5A1,1 0 0,0 9.5,13.5H18A2.5,2.5 0 0,0 20.5,11A2.5,2.5 0 0,0 18,8.5H7.5A4,4 0 0,0 3.5,12.5A4,4 0 0,0 7.5,16.5H17V18H7.5Z";
3
4
  export const mdiBellOutline = 'M10 21H14C14 22.1 13.1 23 12 23S10 22.1 10 21M21 19V20H3V19L5 17V11C5 7.9 7 5.2 10 4.3V4C10 2.9 10.9 2 12 2S14 2.9 14 4V4.3C17 5.2 19 7.9 19 11V17L21 19M17 11C17 8.2 14.8 6 12 6S7 8.2 7 11V18H17V11Z';
4
5
  export const mdiCheckCircle = "M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z";
5
6
  export const mdiCheckCircleOutline = "M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M12 20C7.59 20 4 16.41 4 12S7.59 4 12 4 20 7.59 20 12 16.41 20 12 20M16.59 7.58L10 14.17L7.41 11.59L6 13L10 17L18 9L16.59 7.58Z";
@@ -9,8 +10,13 @@ export const mdiChevronRight = "M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L
9
10
  export const mdiClose = "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z";
10
11
  export const mdiContentCopy = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z";
11
12
  export const mdiEmailOutline = "M22 6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6M20 6L12 11L4 6H20M20 18H4V8L12 13L20 8V18Z";
13
+ export const mdiEyeOffOutline = "M2,5.27L3.28,4L20,20.72L18.73,22L15.65,18.92C14.5,19.3 13.28,19.5 12,19.5C7,19.5 2.73,16.39 1,12C1.69,10.24 2.79,8.69 4.19,7.46L2,5.27M12,9A3,3 0 0,1 15,12C15,12.35 14.94,12.69 14.83,13L11,9.17C11.31,9.06 11.65,9 12,9M12,4.5C17,4.5 21.27,7.61 23,12C22.18,14.08 20.79,15.88 19,17.19L17.58,15.76C18.94,14.82 20.06,13.54 20.82,12C19.17,8.64 15.76,6.5 12,6.5C10.91,6.5 9.84,6.68 8.84,7L7.3,5.47C8.74,4.85 10.33,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C12.69,17.5 13.37,17.43 14,17.29L11.72,15C10.29,14.85 9.15,13.71 9,12.28L5.6,8.87C4.61,9.72 3.78,10.78 3.18,12Z";
14
+ export const mdiEyeOutline = "M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z";
12
15
  export const mdiFlowerTulip = "M3,13A9,9 0 0,0 12,22A9,9 0 0,0 3,13M12,22A9,9 0 0,0 21,13A9,9 0 0,0 12,22M18,3V8A6,6 0 0,1 12,14A6,6 0 0,1 6,8V3C6.74,3 7.47,3.12 8.16,3.39C8.71,3.62 9.2,3.96 9.61,4.39L12,2L14.39,4.39C14.8,3.96 15.29,3.62 15.84,3.39C16.53,3.12 17.26,3 18,3Z";
16
+ export const mdiMagnify = "M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z";
13
17
  export const mdiMenu = "M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z";
14
18
  export const mdiPageFirst = "M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z";
15
19
  export const mdiPageLast = "M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z";
16
20
  export const mdiPhone = "M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z";
21
+ export const mdiSquare = "M3,3V21H21V3";
22
+ export const mdiUnfoldMoreHorizontal = "M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z";
@@ -11,3 +11,5 @@ export * from './text/index.js';
11
11
  export * from './toast/index.js';
12
12
  export * from './screen-detector/index.js';
13
13
  export * from './referrer/index.js';
14
+ export * from './input/index.js';
15
+ export * from './no-data/index.js';
@@ -11,3 +11,5 @@ export * from './text/index.js';
11
11
  export * from './toast/index.js';
12
12
  export * from './screen-detector/index.js';
13
13
  export * from './referrer/index.js';
14
+ export * from './input/index.js';
15
+ export * from './no-data/index.js';
@@ -0,0 +1,114 @@
1
+ <script lang="ts">
2
+ import { ripple } from '../../../../../actions';
3
+ import { colorToHex, isValidHexColor } from '../../../../../services';
4
+ import { mdiSquare } from '../../../icon';
5
+ import Icon from '../../../icon/components/icon/icon.svelte';
6
+ import InputField, { type InputFieldPropsType } from '../input-field/input-field.svelte';
7
+
8
+ let {
9
+ size,
10
+ appearance,
11
+ value = $bindable('#000000'),
12
+ ...props
13
+ }: InputFieldPropsType & { value?: string } = $props();
14
+
15
+ let colorRef: HTMLInputElement;
16
+ let btnIconSizeClassName: string = $state('');
17
+ let btnRoundedClassName: string = $state('');
18
+ let colorValue: string = $state('#000000');
19
+
20
+ let inputFieldRef: InputField | null = $state(null);
21
+
22
+ export function focus() {
23
+ inputFieldRef?.focus();
24
+ }
25
+
26
+ function handleColorBtnClick() {
27
+ if (colorRef) {
28
+ colorRef.click();
29
+ }
30
+ }
31
+
32
+ function handleColorPickerChange(ev: any) {
33
+ let input: HTMLInputElement = ev?.target;
34
+ if (input) {
35
+ value = input.value;
36
+ }
37
+ }
38
+
39
+ $effect(() => {
40
+ if (isValidHexColor(value)) {
41
+ colorValue = value;
42
+ if (colorRef) {
43
+ colorRef.value = colorToHex(value);
44
+ }
45
+ }
46
+ });
47
+
48
+ $effect(() => {
49
+ if (size) {
50
+ switch (size) {
51
+ case 'lg':
52
+ btnIconSizeClassName = '!h-7 !w-7';
53
+ break;
54
+ case 'md':
55
+ btnIconSizeClassName = '!h-6 !w-6';
56
+ break;
57
+ case 'sm':
58
+ btnIconSizeClassName = '!h-5 !w-5';
59
+ break;
60
+ case 'xs':
61
+ btnIconSizeClassName = '!h-4 !w-4';
62
+ break;
63
+ }
64
+ }
65
+ });
66
+
67
+ $effect(() => {
68
+ if (!appearance || appearance == 'normal') {
69
+ btnRoundedClassName = 'rounded-tr-lg rounded-br-lg';
70
+ }
71
+ });
72
+ </script>
73
+
74
+ {#snippet colorButton()}
75
+ <button
76
+ class="px-2 h-full hover:bg-gray-100 {btnRoundedClassName}"
77
+ use:ripple
78
+ onclick={handleColorBtnClick}
79
+ >
80
+ <Icon path={mdiSquare} color={colorValue} className=" {btnIconSizeClassName} " />
81
+ </button>
82
+ {/snippet}
83
+
84
+ <div class="relative">
85
+ <InputField
86
+ {...props}
87
+ type="text"
88
+ bind:value
89
+ bind:this={inputFieldRef}
90
+ className="pr-8 {props?.className}"
91
+ rightSnippet={colorButton}
92
+ maxlength={9}
93
+ />
94
+
95
+ <input
96
+ class="color-input"
97
+ type="color"
98
+ placeholder=" "
99
+ bind:this={colorRef}
100
+ tabindex={-1}
101
+ oninput={handleColorPickerChange}
102
+ />
103
+ </div>
104
+
105
+ <style>
106
+ .color-input {
107
+ position: absolute;
108
+ opacity: 0;
109
+ left: 0;
110
+ bottom: 0;
111
+ right: 0;
112
+ height: 1px;
113
+ }
114
+ </style>
@@ -0,0 +1,23 @@
1
+ import { type InputFieldPropsType } from '../input-field/input-field.svelte';
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ declare const ColorField: $$__sveltets_2_IsomorphicComponent<InputFieldPropsType & {
16
+ value?: string;
17
+ }, {
18
+ [evt: string]: CustomEvent<any>;
19
+ }, {}, {
20
+ focus: () => void;
21
+ }, "value">;
22
+ type ColorField = InstanceType<typeof ColorField>;
23
+ export default ColorField;