@keenthemes/ktui 1.0.10 → 1.0.12
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.
- package/README.md +2 -2
- package/dist/ktui.js +1283 -1100
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/examples/select/basic-usage.html +43 -0
- package/examples/select/combobox-icons.html +58 -0
- package/examples/select/combobox.html +46 -0
- package/examples/select/description.html +69 -0
- package/examples/select/disable-option.html +43 -0
- package/examples/select/disable-select.html +34 -0
- package/examples/select/icon-description.html +56 -0
- package/examples/select/icon-multiple.html +58 -0
- package/examples/select/icon.html +58 -0
- package/examples/select/max-selection.html +39 -0
- package/examples/select/modal.html +70 -0
- package/examples/select/multiple.html +42 -0
- package/examples/select/placeholder.html +43 -0
- package/examples/select/remote-data.html +32 -0
- package/examples/select/search.html +49 -0
- package/examples/select/tags-icons.html +58 -0
- package/examples/select/tags-selected.html +59 -0
- package/examples/select/tags.html +58 -0
- package/examples/select/template-customization.html +65 -0
- package/examples/select/test.html +94 -0
- package/examples/toast/example.html +427 -0
- package/lib/cjs/components/component.js +1 -1
- package/lib/cjs/components/component.js.map +1 -1
- package/lib/cjs/components/datatable/datatable.js +22 -6
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/modal/modal.js +0 -4
- package/lib/cjs/components/modal/modal.js.map +1 -1
- package/lib/cjs/components/select/combobox.js +38 -120
- package/lib/cjs/components/select/combobox.js.map +1 -1
- package/lib/cjs/components/select/config.js +4 -16
- package/lib/cjs/components/select/config.js.map +1 -1
- package/lib/cjs/components/select/dropdown.js +10 -49
- package/lib/cjs/components/select/dropdown.js.map +1 -1
- package/lib/cjs/components/select/index.js +2 -1
- package/lib/cjs/components/select/index.js.map +1 -1
- package/lib/cjs/components/select/option.js +21 -4
- package/lib/cjs/components/select/option.js.map +1 -1
- package/lib/cjs/components/select/remote.js +1 -37
- package/lib/cjs/components/select/remote.js.map +1 -1
- package/lib/cjs/components/select/search.js +11 -41
- package/lib/cjs/components/select/search.js.map +1 -1
- package/lib/cjs/components/select/select.js +213 -326
- package/lib/cjs/components/select/select.js.map +1 -1
- package/lib/cjs/components/select/tags.js +39 -31
- package/lib/cjs/components/select/tags.js.map +1 -1
- package/lib/cjs/components/select/templates.js +120 -179
- package/lib/cjs/components/select/templates.js.map +1 -1
- package/lib/cjs/components/select/types.js +0 -12
- package/lib/cjs/components/select/types.js.map +1 -1
- package/lib/cjs/components/select/utils.js +204 -257
- package/lib/cjs/components/select/utils.js.map +1 -1
- package/lib/cjs/components/toast/index.js +10 -0
- package/lib/cjs/components/toast/index.js.map +1 -0
- package/lib/cjs/components/toast/toast.js +543 -0
- package/lib/cjs/components/toast/toast.js.map +1 -0
- package/lib/cjs/components/toast/types.js +7 -0
- package/lib/cjs/components/toast/types.js.map +1 -0
- package/lib/cjs/helpers/dom.js +24 -0
- package/lib/cjs/helpers/dom.js.map +1 -1
- package/lib/cjs/index.js +5 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/components/component.js +1 -1
- package/lib/esm/components/component.js.map +1 -1
- package/lib/esm/components/datatable/datatable.js +22 -6
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/modal/modal.js +0 -4
- package/lib/esm/components/modal/modal.js.map +1 -1
- package/lib/esm/components/select/combobox.js +39 -121
- package/lib/esm/components/select/combobox.js.map +1 -1
- package/lib/esm/components/select/config.js +3 -15
- package/lib/esm/components/select/config.js.map +1 -1
- package/lib/esm/components/select/dropdown.js +10 -49
- package/lib/esm/components/select/dropdown.js.map +1 -1
- package/lib/esm/components/select/index.js +1 -1
- package/lib/esm/components/select/index.js.map +1 -1
- package/lib/esm/components/select/option.js +21 -4
- package/lib/esm/components/select/option.js.map +1 -1
- package/lib/esm/components/select/remote.js +1 -37
- package/lib/esm/components/select/remote.js.map +1 -1
- package/lib/esm/components/select/search.js +12 -42
- package/lib/esm/components/select/search.js.map +1 -1
- package/lib/esm/components/select/select.js +214 -327
- package/lib/esm/components/select/select.js.map +1 -1
- package/lib/esm/components/select/tags.js +39 -31
- package/lib/esm/components/select/tags.js.map +1 -1
- package/lib/esm/components/select/templates.js +119 -178
- package/lib/esm/components/select/templates.js.map +1 -1
- package/lib/esm/components/select/types.js +1 -11
- package/lib/esm/components/select/types.js.map +1 -1
- package/lib/esm/components/select/utils.js +201 -255
- package/lib/esm/components/select/utils.js.map +1 -1
- package/lib/esm/components/toast/index.js +6 -0
- package/lib/esm/components/toast/index.js.map +1 -0
- package/lib/esm/components/toast/toast.js +540 -0
- package/lib/esm/components/toast/toast.js.map +1 -0
- package/lib/esm/components/toast/types.js +6 -0
- package/lib/esm/components/toast/types.js.map +1 -0
- package/lib/esm/helpers/dom.js +24 -0
- package/lib/esm/helpers/dom.js.map +1 -1
- package/lib/esm/index.js +3 -0
- package/lib/esm/index.js.map +1 -1
- package/package.json +8 -6
- package/src/components/alert/alert.css +20 -2
- package/src/components/badge/badge.css +5 -0
- package/src/components/component.ts +4 -0
- package/src/components/datatable/datatable.ts +24 -16
- package/src/components/drawer/drawer.css +1 -1
- package/src/components/input/input.css +3 -1
- package/src/components/link/link.css +2 -2
- package/src/components/modal/modal.css +18 -2
- package/src/components/modal/modal.ts +0 -5
- package/src/components/select/combobox.ts +42 -149
- package/src/components/select/config.ts +38 -33
- package/src/components/select/dropdown.ts +8 -55
- package/src/components/select/index.ts +1 -1
- package/src/components/select/option.ts +28 -7
- package/src/components/select/remote.ts +2 -42
- package/src/components/select/search.ts +14 -54
- package/src/components/select/select.css +49 -0
- package/src/components/select/select.ts +231 -437
- package/src/components/select/tags.ts +40 -37
- package/src/components/select/templates.ts +166 -303
- package/src/components/select/types.ts +0 -10
- package/src/components/select/utils.ts +214 -304
- package/src/components/table/table.css +1 -1
- package/src/components/textarea/textarea.css +2 -1
- package/src/components/toast/index.ts +7 -0
- package/src/components/toast/toast.css +60 -0
- package/src/components/toast/toast.ts +605 -0
- package/src/components/toast/types.ts +169 -0
- package/src/helpers/dom.ts +30 -0
- package/src/index.ts +4 -0
- package/styles/main.css +3 -0
- package/styles/vars.css +138 -0
- package/styles.css +1 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Basic Usage</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Basic Usage</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select="true"
|
|
20
|
+
data-kt-select-wrapper-class="foo boo"
|
|
21
|
+
data-kt-select-placeholder="Select a field type..."
|
|
22
|
+
data-kt-select-config='{
|
|
23
|
+
"optionTemplate": "{{text}} <i class=\"me-auto ki-filled ki-check text-primary size-sm hidden kt-select-option-selected:block\"></i>",
|
|
24
|
+
"optionClass": "kt-select-option"
|
|
25
|
+
}'
|
|
26
|
+
>
|
|
27
|
+
<option value="name">Name</option>
|
|
28
|
+
<option value="email">Email Address</option>
|
|
29
|
+
<option value="phone">Phone Number</option>
|
|
30
|
+
<option value="address">Physical Address</option>
|
|
31
|
+
<option value="username">Username</option>
|
|
32
|
+
<option value="password">Password</option>
|
|
33
|
+
<option value="company">Company Name</option>
|
|
34
|
+
<option value="website">Website URL</option>
|
|
35
|
+
</select>
|
|
36
|
+
|
|
37
|
+
</div>
|
|
38
|
+
</form>
|
|
39
|
+
</div>
|
|
40
|
+
<script src="../../dist/ktui.js"></script>
|
|
41
|
+
</body>
|
|
42
|
+
|
|
43
|
+
</html>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Combobox Icons</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Combobox Icons</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-combobox="true"
|
|
21
|
+
data-kt-select-placeholder="Type or select a country..."
|
|
22
|
+
data-kt-select-config='{
|
|
23
|
+
"displayTemplate": "<div class=\"flex items-center gap-2\">{{icon}}<span class=\"font-semibold text-gray-900\">{{text}}</span></div>",
|
|
24
|
+
"displayClass": "kt-select-display",
|
|
25
|
+
"displayToggle": true,
|
|
26
|
+
"optionTemplate": "<div class=\"flex items-center gap-2\">{{icon}}<span class=\"text-gray-800\">{{text}}</span></div>",
|
|
27
|
+
"optionClass": "kt-select-option"
|
|
28
|
+
}'>
|
|
29
|
+
<option value="us"
|
|
30
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/us.png\" class=\"w-6 h-6\" />"}'>
|
|
31
|
+
United States</option>
|
|
32
|
+
<option value="de"
|
|
33
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/de.png\" class=\"w-6 h-6\" />"}'>
|
|
34
|
+
Germany</option>
|
|
35
|
+
<option value="it"
|
|
36
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/it.png\" class=\"w-6 h-6\" />"}'>
|
|
37
|
+
Italy</option>
|
|
38
|
+
<option value="fr"
|
|
39
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/fr.png\" class=\"w-6 h-6\" />"}'>
|
|
40
|
+
France</option>
|
|
41
|
+
<option value="es"
|
|
42
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/es.png\" class=\"w-6 h-6\" />"}'>
|
|
43
|
+
Spain</option>
|
|
44
|
+
<option value="jp"
|
|
45
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/jp.png\" class=\"w-6 h-6\" />"}'>
|
|
46
|
+
Japan</option>
|
|
47
|
+
<option value="ru"
|
|
48
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/ru.png\" class=\"w-6 h-6\" />"}'>
|
|
49
|
+
Russia</option>
|
|
50
|
+
</select>
|
|
51
|
+
|
|
52
|
+
</div>
|
|
53
|
+
</form>
|
|
54
|
+
</div>
|
|
55
|
+
<script src="../../dist/ktui.js"></script>
|
|
56
|
+
</body>
|
|
57
|
+
|
|
58
|
+
</html>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Combobox</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Combobox</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-combobox="true">
|
|
21
|
+
<option value="name">Name</option>
|
|
22
|
+
<option value="email">Email Address</option>
|
|
23
|
+
<option value="phone">Phone Number</option>
|
|
24
|
+
<option value="address">Physical Address</option>
|
|
25
|
+
<option value="username">Username</option>
|
|
26
|
+
<option value="password">Password</option>
|
|
27
|
+
<option value="birthday">Date of Birth</option>
|
|
28
|
+
<option value="gender">Gender</option>
|
|
29
|
+
<option value="country">Country</option>
|
|
30
|
+
<option value="city">City</option>
|
|
31
|
+
<option value="language">Language</option>
|
|
32
|
+
<option value="timezone">Timezone</option>
|
|
33
|
+
<option value="avatar">Profile Picture</option>
|
|
34
|
+
<option value="bio">Biography</option>
|
|
35
|
+
<option value="company">Company</option>
|
|
36
|
+
<option value="position">Job Position</option>
|
|
37
|
+
<option value="department">Department</option>
|
|
38
|
+
</select>
|
|
39
|
+
|
|
40
|
+
</div>
|
|
41
|
+
</form>
|
|
42
|
+
</div>
|
|
43
|
+
<script src="../../dist/ktui.js"></script>
|
|
44
|
+
</body>
|
|
45
|
+
|
|
46
|
+
</html>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Description</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Description</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-placeholder="Select with description..."
|
|
21
|
+
data-kt-select-config='{
|
|
22
|
+
"displayTemplate": "<div class=\"flex flex-col\"><span class=\"font-semibold text-gray-900\">{{text}}</span><span class=\"text-xs text-gray-500\">Your selection</span></div>",
|
|
23
|
+
"optionTemplate": "<div class=\"flex flex-col\"><span class=\"font-semibold text-gray-900\">{{text}}</span><span class=\"text-xs text-gray-500\">{{desc}}</span></div>"
|
|
24
|
+
}'>
|
|
25
|
+
<option value="us"
|
|
26
|
+
data-kt-select-option='{"desc": "MySQL is a relational database management system"}'>
|
|
27
|
+
MySQL
|
|
28
|
+
</option>
|
|
29
|
+
<option value="postgres"
|
|
30
|
+
data-kt-select-option='{"desc": "PostgreSQL is a powerful object-relational database system"}'>
|
|
31
|
+
PostgreSQL
|
|
32
|
+
</option>
|
|
33
|
+
<option value="mongodb"
|
|
34
|
+
data-kt-select-option='{"desc": "MongoDB is a NoSQL database that uses JSON-like documents with optional schemas"}'>
|
|
35
|
+
MongoDB
|
|
36
|
+
</option>
|
|
37
|
+
<option value="redis"
|
|
38
|
+
data-kt-select-option='{"desc": "Redis is an in-memory data structure store"}'>
|
|
39
|
+
Redis
|
|
40
|
+
</option>
|
|
41
|
+
<option value="sqlite"
|
|
42
|
+
data-kt-select-option='{"desc": "SQLite is a lightweight, disk-based database"}'>
|
|
43
|
+
SQLite
|
|
44
|
+
</option>
|
|
45
|
+
<option value="mariadb"
|
|
46
|
+
data-kt-select-option='{"desc": "MariaDB is a community-driven fork of MySQL"}'>
|
|
47
|
+
MariaDB
|
|
48
|
+
</option>
|
|
49
|
+
<option value="mssql"
|
|
50
|
+
data-kt-select-option='{"desc": "Microsoft SQL Server is a relational database management system"}'>
|
|
51
|
+
Microsoft SQL Server
|
|
52
|
+
</option>
|
|
53
|
+
<option value="oracle"
|
|
54
|
+
data-kt-select-option='{"desc": "Oracle is a powerful, object-oriented database management system"}'>
|
|
55
|
+
Oracle
|
|
56
|
+
</option>
|
|
57
|
+
<option value="db2"
|
|
58
|
+
data-kt-select-option='{"desc": "IBM DB2 is a relational database management system"}'>
|
|
59
|
+
IBM DB2
|
|
60
|
+
</option>
|
|
61
|
+
</select>
|
|
62
|
+
|
|
63
|
+
</div>
|
|
64
|
+
</form>
|
|
65
|
+
</div>
|
|
66
|
+
<script src="../../dist/ktui.js"></script>
|
|
67
|
+
</body>
|
|
68
|
+
|
|
69
|
+
</html>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Disable Option</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Disable Option</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-placeholder="Select an available field...">
|
|
21
|
+
<option value="name" disabled>
|
|
22
|
+
Name (Disabled)
|
|
23
|
+
</option>
|
|
24
|
+
<option value="email" disabled>
|
|
25
|
+
Email Address (Disabled)
|
|
26
|
+
</option>
|
|
27
|
+
<option value="phone">Phone Number</option>
|
|
28
|
+
<option value="address">Physical Address</option>
|
|
29
|
+
<option value="username">Username</option>
|
|
30
|
+
<option value="password" disabled>
|
|
31
|
+
Password (Disabled)
|
|
32
|
+
</option>
|
|
33
|
+
<option value="company">Company Name</option>
|
|
34
|
+
<option value="website">Website URL</option>
|
|
35
|
+
</select>
|
|
36
|
+
|
|
37
|
+
</div>
|
|
38
|
+
</form>
|
|
39
|
+
</div>
|
|
40
|
+
<script src="../../dist/ktui.js"></script>
|
|
41
|
+
</body>
|
|
42
|
+
|
|
43
|
+
</html>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Disable Select</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Disable Select</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-disabled="true"
|
|
21
|
+
data-kt-select-placeholder="This select component is disabled">
|
|
22
|
+
<option value="name">Name</option>
|
|
23
|
+
<option value="email">Email Address</option>
|
|
24
|
+
<option value="phone">Phone Number</option>
|
|
25
|
+
<option value="address">Physical Address</option>
|
|
26
|
+
</select>
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
</form>
|
|
30
|
+
</div>
|
|
31
|
+
<script src="../../dist/ktui.js"></script>
|
|
32
|
+
</body>
|
|
33
|
+
|
|
34
|
+
</html>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Icon Description</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Icon Description</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-placeholder="Select with description..."
|
|
21
|
+
data-kt-select-config='{
|
|
22
|
+
"displayTemplate": "<div class=\"flex items-start gap-3\">{{icon}}<div class=\"flex flex-col\"><span class=\"font-semibold text-gray-900 leading-tight\">{{text}}</span><span class=\"text-xs text-gray-500 leading-tight\">{{desc}}</span></div></div>",
|
|
23
|
+
"displayClass": "kt-select-display",
|
|
24
|
+
"displayToggle": true,
|
|
25
|
+
"optionTemplate": "<div class=\"flex items-start gap-3\">{{icon}}<div class=\"flex flex-col\"><span class=\"text-gray-800 leading-tight\">{{text}}</span><span class=\"text-xs text-gray-500 leading-tight\">{{desc}}</span></div></div>",
|
|
26
|
+
"optionClass": "kt-select-option"
|
|
27
|
+
}'>
|
|
28
|
+
<option value="mysql"
|
|
29
|
+
data-kt-select-option='{"icon": "<img src=\"https://cdn.simpleicons.org/mysql/4479A1\" class=\"w-6 h-6\" />", "desc": "MySQL is a relational database management system"}'>
|
|
30
|
+
MySQL
|
|
31
|
+
</option>
|
|
32
|
+
<option value="postgres"
|
|
33
|
+
data-kt-select-option='{"icon": "<img src=\"https://cdn.simpleicons.org/postgresql/4169E1\" class=\"w-6 h-6\" />", "desc": "PostgreSQL is a powerful object-relational database system"}'>
|
|
34
|
+
PostgreSQL
|
|
35
|
+
</option>
|
|
36
|
+
<option value="mongodb"
|
|
37
|
+
data-kt-select-option='{"icon": "<img src=\"https://cdn.simpleicons.org/mongodb/47A248\" class=\"w-6 h-6\" />", "desc": "MongoDB is a NoSQL database that uses JSON-like documents with optional schemas"}'>
|
|
38
|
+
MongoDB
|
|
39
|
+
</option>
|
|
40
|
+
<option value="redis"
|
|
41
|
+
data-kt-select-option='{"icon": "<img src=\"https://cdn.simpleicons.org/redis/DC382D\" class=\"w-6 h-6\" />", "desc": "Redis is an in-memory data structure store"}'>
|
|
42
|
+
Redis
|
|
43
|
+
</option>
|
|
44
|
+
<option value="sqlite"
|
|
45
|
+
data-kt-select-option='{"icon": "<img src=\"https://cdn.simpleicons.org/sqlite/003B57\" class=\"w-6 h-6\" />", "desc": "SQLite is a lightweight, disk-based database"}'>
|
|
46
|
+
SQLite
|
|
47
|
+
</option>
|
|
48
|
+
</select>
|
|
49
|
+
|
|
50
|
+
</div>
|
|
51
|
+
</form>
|
|
52
|
+
</div>
|
|
53
|
+
<script src="../../dist/ktui.js"></script>
|
|
54
|
+
</body>
|
|
55
|
+
|
|
56
|
+
</html>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Icon Multiple</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Icon Multiple</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-placeholder="Type or select a country..."
|
|
21
|
+
data-kt-select-multiple="true" data-kt-select-config='{
|
|
22
|
+
"displaySeparator": " / ",
|
|
23
|
+
"displayTemplate": "<div class=\"flex items-center gap-2\">{{icon}}<span class=\"font-semibold text-gray-900\">{{text}}</span></div>",
|
|
24
|
+
"displayClass": "kt-select-display",
|
|
25
|
+
"displayToggle": true,
|
|
26
|
+
"optionTemplate": "<div class=\"flex items-center gap-2\">{{icon}}<span class=\"text-gray-800\">{{text}}</span></div>",
|
|
27
|
+
"optionClass": "kt-select-option"
|
|
28
|
+
}'>
|
|
29
|
+
<option value="us"
|
|
30
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/us.png\" class=\"w-6 h-6\" />"}'>
|
|
31
|
+
United States</option>
|
|
32
|
+
<option value="de"
|
|
33
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/de.png\" class=\"w-6 h-6\" />"}'>
|
|
34
|
+
Germany</option>
|
|
35
|
+
<option value="it"
|
|
36
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/it.png\" class=\"w-6 h-6\" />"}'>
|
|
37
|
+
Italy</option>
|
|
38
|
+
<option value="fr"
|
|
39
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/fr.png\" class=\"w-6 h-6\" />"}'>
|
|
40
|
+
France</option>
|
|
41
|
+
<option value="es"
|
|
42
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/es.png\" class=\"w-6 h-6\" />"}'>
|
|
43
|
+
Spain</option>
|
|
44
|
+
<option value="jp"
|
|
45
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/jp.png\" class=\"w-6 h-6\" />"}'>
|
|
46
|
+
Japan</option>
|
|
47
|
+
<option value="ru"
|
|
48
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/ru.png\" class=\"w-6 h-6\" />"}'>
|
|
49
|
+
Russia</option>
|
|
50
|
+
</select>
|
|
51
|
+
|
|
52
|
+
</div>
|
|
53
|
+
</form>
|
|
54
|
+
</div>
|
|
55
|
+
<script src="../../dist/ktui.js"></script>
|
|
56
|
+
</body>
|
|
57
|
+
|
|
58
|
+
</html>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Icon</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Icon</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-enable-search="true"
|
|
21
|
+
data-kt-select-placeholder="Type or select a country..."
|
|
22
|
+
data-kt-select-config='{
|
|
23
|
+
"displayTemplate": "<div class=\"flex items-center gap-2\">{{icon}}<span class=\"font-semibold text-gray-900\">{{text}}</span></div>",
|
|
24
|
+
"displayClass": "kt-select-display",
|
|
25
|
+
"displayToggle": true,
|
|
26
|
+
"optionTemplate": "<div class=\"flex items-center gap-2\">{{icon}}<span class=\"text-gray-800\">{{text}}</span></div>",
|
|
27
|
+
"optionClass": "kt-select-option"
|
|
28
|
+
}'>
|
|
29
|
+
<option value="us"
|
|
30
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/us.png\" class=\"w-6 h-6\" />"}'>
|
|
31
|
+
United States</option>
|
|
32
|
+
<option value="de"
|
|
33
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/de.png\" class=\"w-6 h-6\" />"}'>
|
|
34
|
+
Germany</option>
|
|
35
|
+
<option value="it"
|
|
36
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/it.png\" class=\"w-6 h-6\" />"}'>
|
|
37
|
+
Italy</option>
|
|
38
|
+
<option value="fr"
|
|
39
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/fr.png\" class=\"w-6 h-6\" />"}'>
|
|
40
|
+
France</option>
|
|
41
|
+
<option value="es"
|
|
42
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/es.png\" class=\"w-6 h-6\" />"}'>
|
|
43
|
+
Spain</option>
|
|
44
|
+
<option value="jp"
|
|
45
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/jp.png\" class=\"w-6 h-6\" />"}'>
|
|
46
|
+
Japan</option>
|
|
47
|
+
<option value="ru"
|
|
48
|
+
data-kt-select-option='{"icon": "<img src=\"https://flagcdn.com/w40/ru.png\" class=\"w-6 h-6\" />"}'>
|
|
49
|
+
Russia</option>
|
|
50
|
+
</select>
|
|
51
|
+
|
|
52
|
+
</div>
|
|
53
|
+
</form>
|
|
54
|
+
</div>
|
|
55
|
+
<script src="../../dist/ktui.js"></script>
|
|
56
|
+
</body>
|
|
57
|
+
|
|
58
|
+
</html>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Max Selection</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Max Selection</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-multiple="true"
|
|
21
|
+
data-kt-select-max-selections="3"
|
|
22
|
+
data-kt-select-placeholder="Select up to 3 options">
|
|
23
|
+
<option value="name">Name</option>
|
|
24
|
+
<option value="email">Email Address</option>
|
|
25
|
+
<option value="phone">Phone Number</option>
|
|
26
|
+
<option value="address">Physical Address</option>
|
|
27
|
+
<option value="username">Username</option>
|
|
28
|
+
<option value="password">Password</option>
|
|
29
|
+
<option value="company">Company Name</option>
|
|
30
|
+
<option value="website">Website URL</option>
|
|
31
|
+
</select>
|
|
32
|
+
|
|
33
|
+
</div>
|
|
34
|
+
</form>
|
|
35
|
+
</div>
|
|
36
|
+
<script src="../../dist/ktui.js"></script>
|
|
37
|
+
</body>
|
|
38
|
+
|
|
39
|
+
</html>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Modal</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Modal</label>
|
|
16
|
+
|
|
17
|
+
<!-- Modal Trigger Button -->
|
|
18
|
+
<button id="openModalBtn" type="button"
|
|
19
|
+
class="mt-8 px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-400">Open
|
|
20
|
+
Select Modal</button>
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
</form>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<!-- Modal -->
|
|
27
|
+
<div id="selectModal" class="fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-40 hidden">
|
|
28
|
+
<div class="bg-white rounded-lg shadow-lg w-full max-w-md p-6 relative">
|
|
29
|
+
<button id="closeModalBtn"
|
|
30
|
+
class="absolute top-3 right-3 text-gray-400 hover:text-gray-600 focus:outline-none"
|
|
31
|
+
aria-label="Close Modal">×</button>
|
|
32
|
+
<h2 class="text-lg font-semibold mb-4">Select a Field</h2>
|
|
33
|
+
<select class="w-full rounded border-gray-300 focus:border-blue-500 focus:ring focus:ring-blue-200"
|
|
34
|
+
data-kt-select
|
|
35
|
+
data-kt-select-search="true"
|
|
36
|
+
data-kt-select-placeholder="Select a field type...">
|
|
37
|
+
<option value="name">Name</option>
|
|
38
|
+
<option value="email">Email Address</option>
|
|
39
|
+
<option value="phone">Phone Number</option>
|
|
40
|
+
<option value="address">Physical Address</option>
|
|
41
|
+
<option value="username">Username</option>
|
|
42
|
+
<option value="password">Password</option>
|
|
43
|
+
<option value="company">Company Name</option>
|
|
44
|
+
<option value="website">Website URL</option>
|
|
45
|
+
<option value="description">Description</option>
|
|
46
|
+
<option value="birthday">Date of Birth</option>
|
|
47
|
+
<option value="country">Country</option>
|
|
48
|
+
<option value="state">State/Province</option>
|
|
49
|
+
<option value="zipcode">Zip/Postal Code</option>
|
|
50
|
+
</select>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
<script>
|
|
54
|
+
document.getElementById('openModalBtn').addEventListener('click', function () {
|
|
55
|
+
document.getElementById('selectModal').classList.remove('hidden');
|
|
56
|
+
});
|
|
57
|
+
document.getElementById('closeModalBtn').addEventListener('click', function () {
|
|
58
|
+
document.getElementById('selectModal').classList.add('hidden');
|
|
59
|
+
});
|
|
60
|
+
// Optional: Close modal on backdrop click
|
|
61
|
+
document.getElementById('selectModal').addEventListener('click', function (e) {
|
|
62
|
+
if (e.target === this) {
|
|
63
|
+
this.classList.add('hidden');
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
</script>
|
|
67
|
+
<script src="../../dist/ktui.js"></script>
|
|
68
|
+
</body>
|
|
69
|
+
|
|
70
|
+
</html>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Multiple</title>
|
|
8
|
+
<link rel="stylesheet" href="../../dist/styles.css">
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body class="bg-gray-50 min-h-screen">
|
|
12
|
+
<div class="bg-white rounded-lg shadow p-8 w-full max-w-sm mt-10 mx-auto">
|
|
13
|
+
<form class="flex flex-col gap-6">
|
|
14
|
+
<div>
|
|
15
|
+
<label class="block mb-2 font-medium text-gray-700" for="select-basic">Multiple</label>
|
|
16
|
+
|
|
17
|
+
<select
|
|
18
|
+
class="kt-select"
|
|
19
|
+
data-kt-select
|
|
20
|
+
data-kt-select-multiple="true"
|
|
21
|
+
data-kt-select-placeholder="Select multiple fields..."
|
|
22
|
+
data-kt-select-config='{
|
|
23
|
+
"displaySeparator": " | ",
|
|
24
|
+
"displayTemplate": "<span class=\"text-gray-800 leading-tight\">{{selectedTexts}}</span>"
|
|
25
|
+
}'>
|
|
26
|
+
<option value="name">Name</option>
|
|
27
|
+
<option value="email">Email Address</option>
|
|
28
|
+
<option value="phone">Phone Number</option>
|
|
29
|
+
<option value="address">Physical Address</option>
|
|
30
|
+
<option value="username">Username</option>
|
|
31
|
+
<option value="password">Password</option>
|
|
32
|
+
<option value="company">Company Name</option>
|
|
33
|
+
<option value="website">Website URL</option>
|
|
34
|
+
</select>
|
|
35
|
+
|
|
36
|
+
</div>
|
|
37
|
+
</form>
|
|
38
|
+
</div>
|
|
39
|
+
<script src="../../dist/ktui.js"></script>
|
|
40
|
+
</body>
|
|
41
|
+
|
|
42
|
+
</html>
|