flowbite-svelte 0.12.1 → 0.12.4
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 +72 -25
- package/accordions/AccordionItem.svelte +4 -2
- package/accordions/AccordionItem.svelte.d.ts +2 -0
- package/alerts/Alert.svelte.d.ts +1 -1
- package/cards/Card.svelte +1 -1
- package/cards/InteractiveCard.svelte +3 -3
- package/index.d.ts +4 -0
- package/index.js +7 -3
- package/package.json +5 -1
- package/progressbars/Progressbar.svelte +44 -0
- package/progressbars/Progressbar.svelte.d.ts +31 -0
- package/tabs/FullWidthTabs.svelte +31 -0
- package/tabs/FullWidthTabs.svelte.d.ts +18 -0
- package/tabs/IconTabs.svelte +24 -0
- package/tabs/IconTabs.svelte.d.ts +18 -0
- package/tabs/UnderlineTabs.svelte +20 -0
- package/tabs/UnderlineTabs.svelte.d.ts +18 -0
- package/types.d.ts +7 -0
package/README.md
CHANGED
|
@@ -4,92 +4,139 @@
|
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
-
[Getting started](https://flowbite-svelte.vercel.app/getting-started)
|
|
7
|
+
- [Getting started](https://flowbite-svelte.vercel.app/getting-started)
|
|
8
|
+
- [About](https://flowbite-svelte.vercel.app/about)
|
|
9
|
+
- [Type list](https://flowbite-svelte.vercel.app/type-list)
|
|
10
|
+
- [CLI](https://flowbite-svelte.vercel.app/cli)
|
|
8
11
|
|
|
9
12
|
## Accordion components
|
|
10
13
|
|
|
11
|
-
[
|
|
14
|
+
- [Default accordion](https://flowbite-svelte.vercel.app/accordions/default)
|
|
15
|
+
- [Icon accordion](https://flowbite-svelte.vercel.app/accordions/icon-accordion)
|
|
12
16
|
|
|
13
|
-
##
|
|
17
|
+
## Alert components
|
|
14
18
|
|
|
15
|
-
[
|
|
19
|
+
- [Default alert](https://flowbite-svelte.vercel.app/alerts/default-alert)
|
|
20
|
+
- [Border alert](https://flowbite-svelte.vercel.app/alerts/border-alert)
|
|
21
|
+
- [Information alert](https://flowbite-svelte.vercel.app/alerts/information-alert)
|
|
22
|
+
- [Animation alert](https://flowbite-svelte.vercel.app/alerts/animation)
|
|
16
23
|
|
|
17
|
-
##
|
|
24
|
+
## Avatar components
|
|
18
25
|
|
|
19
|
-
[
|
|
26
|
+
- [Avatar](https://flowbite-svelte.vercel.app/avatar)
|
|
20
27
|
|
|
21
28
|
## Badges components
|
|
22
29
|
|
|
23
|
-
[
|
|
30
|
+
- [Default badge](https://flowbite-svelte.vercel.app/badges/default)
|
|
31
|
+
- [Icon badge](https://flowbite-svelte.vercel.app/badges/badge-icon)
|
|
32
|
+
- [Link badge](https://flowbite-svelte.vercel.app/badges/badge-link)
|
|
24
33
|
|
|
25
34
|
## Button group compnents
|
|
26
35
|
|
|
27
|
-
[
|
|
36
|
+
- [Default button group](https://flowbite-svelte.vercel.app/button-groups/default)
|
|
37
|
+
- [Outline button group](https://flowbite-svelte.vercel.app/button-groups/outline)
|
|
28
38
|
|
|
29
39
|
## Button components
|
|
30
40
|
|
|
31
|
-
[
|
|
41
|
+
- [Setup](https://flowbite-svelte.vercel.app/buttons/setup)
|
|
42
|
+
- [Default Button](https://flowbite-svelte.vercel.app/buttons/default)
|
|
43
|
+
- [Colored Shadow Button](https://flowbite-svelte.vercel.app/buttons/colored-shadow)
|
|
44
|
+
- [Gradient Duotone Button](https://flowbite-svelte.vercel.app/buttons/gradient-duotone)
|
|
45
|
+
- [Gradient Monochrome Button](https://flowbite-svelte.vercel.app/buttons/gradient-monochrome)
|
|
46
|
+
- [Gradietn Outline Button](https://flowbite-svelte.vercel.app/buttons/gradient-outline)
|
|
47
|
+
- [Outlined Button](https://flowbite-svelte.vercel.app/buttons/outlined)
|
|
48
|
+
- [Rounded Button](https://flowbite-svelte.vercel.app/buttons/rounded)
|
|
32
49
|
|
|
33
50
|
## Card components
|
|
34
51
|
|
|
35
|
-
[
|
|
52
|
+
- [Default Card](https://flowbite-svelte.vercel.app/cards/card)
|
|
53
|
+
- [CTA Card](https://flowbite-svelte.vercel.app/cards/cta)
|
|
54
|
+
- [Ecommerce Card](https://flowbite-svelte.vercel.app/cards/ecommerce)
|
|
55
|
+
- [Horizontal Card](https://flowbite-svelte.vercel.app/cards/horizontal)
|
|
56
|
+
- [Interactive Card](https://flowbite-svelte.vercel.app/cards/interactive)
|
|
57
|
+
- [List Card](https://flowbite-svelte.vercel.app/cards/list)
|
|
58
|
+
- [Signin Card](https://flowbite-svelte.vercel.app/cards/signin)
|
|
36
59
|
|
|
37
60
|
## Dark mode components
|
|
38
61
|
|
|
39
|
-
[Dark mode](https://flowbite-svelte.vercel.app/darkmode)
|
|
62
|
+
- [Dark mode](https://flowbite-svelte.vercel.app/darkmode)
|
|
40
63
|
|
|
41
64
|
## Dropdown components
|
|
42
65
|
|
|
43
|
-
[Dropdowns](https://flowbite-svelte.vercel.app/dropdowns)
|
|
66
|
+
- [Dropdowns](https://flowbite-svelte.vercel.app/dropdowns)
|
|
44
67
|
|
|
45
68
|
## Form components
|
|
46
69
|
|
|
47
|
-
[Forms](https://flowbite-svelte.vercel.app/forms)
|
|
70
|
+
- [Forms](https://flowbite-svelte.vercel.app/forms)
|
|
48
71
|
|
|
49
72
|
## Footer components
|
|
50
73
|
|
|
51
|
-
[Footer](https://flowbite-svelte.vercel.app/footer)
|
|
74
|
+
- [Default Footer](https://flowbite-svelte.vercel.app/footer/default)
|
|
75
|
+
- [Footer with Logo](https://flowbite-svelte.vercel.app/footer/logo)
|
|
76
|
+
- [Footer with Sitemap](https://flowbite-svelte.vercel.app/footer/sitemap)
|
|
77
|
+
- [Footer with Socialmedia](https://flowbite-svelte.vercel.app/footer/socialmedia)
|
|
52
78
|
|
|
53
79
|
## Icons components
|
|
54
80
|
|
|
55
|
-
[
|
|
81
|
+
- [Heroicons](https://flowbite-svelte.vercel.app/icons/heroicons)
|
|
82
|
+
- [Simpleicons](https://flowbite-svelte.vercel.app/icons/simple-icons)
|
|
56
83
|
|
|
57
84
|
## List group components
|
|
58
85
|
|
|
59
|
-
[List group](https://flowbite-svelte.vercel.app/list-group)
|
|
86
|
+
- [List group](https://flowbite-svelte.vercel.app/list-group)
|
|
60
87
|
|
|
61
88
|
## Modal components
|
|
62
89
|
|
|
63
|
-
[
|
|
90
|
+
- [Small Modal](https://flowbite-svelte.vercel.app/modals/small)
|
|
91
|
+
- [Medium Modal](https://flowbite-svelte.vercel.app/modals/medium)
|
|
92
|
+
- [Large Modal](https://flowbite-svelte.vercel.app/modals/large)
|
|
93
|
+
- [Extra Large Modal](https://flowbite-svelte.vercel.app/modals/extra-large)
|
|
94
|
+
- [Signin Modal](https://flowbite-svelte.vercel.app/modals/signin)
|
|
95
|
+
- [All Modals](https://flowbite-svelte.vercel.app/modals/all-modals)
|
|
64
96
|
|
|
65
97
|
## Navbar components
|
|
66
98
|
|
|
67
|
-
[
|
|
99
|
+
- [Default Navbar](https://flowbite-svelte.vercel.app/navbars/default)
|
|
100
|
+
- [Dropdown Navbar](https://flowbite-svelte.vercel.app/navbars/dropdown)
|
|
68
101
|
|
|
69
102
|
## Pagination components
|
|
70
103
|
|
|
71
|
-
[Pagination](https://flowbite-svelte.vercel.app/paginations)
|
|
104
|
+
- [Pagination](https://flowbite-svelte.vercel.app/paginations)
|
|
72
105
|
|
|
73
106
|
## Sidebar components
|
|
74
107
|
|
|
75
|
-
[Sidebar](https://flowbite-svelte.vercel.app/sidebars)
|
|
108
|
+
- [Sidebar](https://flowbite-svelte.vercel.app/sidebars)
|
|
76
109
|
|
|
77
110
|
## Spinner components
|
|
78
111
|
|
|
79
|
-
[
|
|
112
|
+
- [Default Spinner](https://flowbite-svelte.vercel.app/spinners/default)
|
|
113
|
+
- [Button Spinner](https://flowbite-svelte.vercel.app/spinners/button-spinner)
|
|
80
114
|
|
|
81
115
|
## Tab components
|
|
82
116
|
|
|
83
|
-
[Tabs](https://flowbite-svelte.vercel.app/tabs)
|
|
117
|
+
- [Default Tabs](https://flowbite-svelte.vercel.app/tabs/default-tabs)
|
|
118
|
+
- [Underline Tabs](https://flowbite-svelte.vercel.app/tabs/underline-tabs)
|
|
119
|
+
- [Icon Tabs](https://flowbite-svelte.vercel.app/tabs/icon-tabs)
|
|
120
|
+
- [Full width Tabs](https://flowbite-svelte.vercel.app/tabs/full-width-tabs)
|
|
121
|
+
- [Interactive Tabs](https://flowbite-svelte.vercel.app/tabs/interactive-tabs)
|
|
122
|
+
- [Interactive Tabs 2](https://flowbite-svelte.vercel.app/tabs/interactive-tabs-2)
|
|
123
|
+
- [Multiple Interactive Tabs](https://flowbite-svelte.vercel.app/tabs/multiple-interactive-tabs)
|
|
124
|
+
- [Pill Tabs](https://flowbite-svelte.vercel.app/tabs/pilltabs)
|
|
84
125
|
|
|
85
126
|
## Timeline components
|
|
86
127
|
|
|
87
|
-
[
|
|
128
|
+
- [Default timeline](https://flowbite-svelte.vercel.app/timelines/default)
|
|
129
|
+
- [Vetical timeline](https://flowbite-svelte.vercel.app/timelines/vertical)
|
|
130
|
+
- [Horizontal timeline](https://flowbite-svelte.vercel.app/timelines/horizontal)
|
|
131
|
+
- [Activity log](https://flowbite-svelte.vercel.app/timelines/activity)
|
|
132
|
+
- [Grouped timeline](https://flowbite-svelte.vercel.app/timelines/group)
|
|
88
133
|
|
|
89
134
|
## Toast components
|
|
90
135
|
|
|
91
|
-
[Toast](https://flowbite-svelte.vercel.app/toasts)
|
|
136
|
+
- [Toast](https://flowbite-svelte.vercel.app/toasts)
|
|
92
137
|
|
|
93
138
|
## Tooltip components
|
|
94
139
|
|
|
95
|
-
[
|
|
140
|
+
- [Default Tooltip](https://flowbite-svelte.vercel.app/tooltips/default)
|
|
141
|
+
- [Light Tooltip](https://flowbite-svelte.vercel.app/tooltips/light)
|
|
142
|
+
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import collapse from 'svelte-collapse';
|
|
3
3
|
import { ChevronDownIconSolid, ChevronUpIconSolid } from '@codewithshin/svelte-heroicons';
|
|
4
4
|
export let id = '';
|
|
5
|
+
export let btnClass = 'flex items-center focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-800 justify-between p-5 w-full font-medium border border-gray-200 dark:border-gray-700 text-left text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800';
|
|
6
|
+
export let slotClass = 'p-5 border border-t-0 border-gray-200 dark:border-gray-700';
|
|
5
7
|
const store = getContext('svelte-collapsible-accordion');
|
|
6
8
|
$: params = {
|
|
7
9
|
open: $store.id === id,
|
|
@@ -24,7 +26,7 @@ const handleToggle = () => {
|
|
|
24
26
|
type="button"
|
|
25
27
|
class:rounded-t-xl={id === '1'}
|
|
26
28
|
class:border-t-0={id !== '1'}
|
|
27
|
-
class=
|
|
29
|
+
class={btnClass}
|
|
28
30
|
>
|
|
29
31
|
<span><slot name="header" /></span>
|
|
30
32
|
{#if params.open}
|
|
@@ -35,7 +37,7 @@ const handleToggle = () => {
|
|
|
35
37
|
</button>
|
|
36
38
|
</h2>
|
|
37
39
|
<div use:collapse={params}>
|
|
38
|
-
<div class=
|
|
40
|
+
<div class={slotClass}>
|
|
39
41
|
<slot name="body" />
|
|
40
42
|
</div>
|
|
41
43
|
</div>
|
package/alerts/Alert.svelte.d.ts
CHANGED
package/cards/Card.svelte
CHANGED
|
@@ -7,7 +7,7 @@ export let btnColor = 'blue';
|
|
|
7
7
|
export let textdivClass = 'p-5';
|
|
8
8
|
export let paragraphClass = 'mb-3 font-normal text-gray-700 dark:text-gray-400';
|
|
9
9
|
export let headerClass = 'mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white';
|
|
10
|
-
export let header = 'Lorem ipsum
|
|
10
|
+
export let header = 'Lorem ipsum';
|
|
11
11
|
export let divClass = 'max-w-sm bg-white rounded-lg border border-gray-200 shadow-md dark:bg-gray-800 dark:border-gray-700';
|
|
12
12
|
let buttonClass;
|
|
13
13
|
if (btnColor === 'blue') {
|
|
@@ -51,11 +51,11 @@ else {
|
|
|
51
51
|
</script>
|
|
52
52
|
|
|
53
53
|
<div class={divClass}>
|
|
54
|
-
<div class="flex justify-end px-4 pt-4">
|
|
54
|
+
<div class="flex justify-end px-4 pt-4 relative">
|
|
55
55
|
<button
|
|
56
56
|
id="dropdownButton"
|
|
57
57
|
on:click={toggleDropdown}
|
|
58
|
-
class="sm:inline-block text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-1.5"
|
|
58
|
+
class="hidden sm:inline-block text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:outline-none focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-1.5"
|
|
59
59
|
type="button"
|
|
60
60
|
>
|
|
61
61
|
<svg
|
|
@@ -73,7 +73,7 @@ else {
|
|
|
73
73
|
id="dropdown"
|
|
74
74
|
class:hidden={isOpen}
|
|
75
75
|
class:block={!isOpen}
|
|
76
|
-
class="hidden z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700 absolute"
|
|
76
|
+
class="hidden z-10 w-44 text-base list-none bg-white rounded divide-y divide-gray-100 shadow dark:bg-gray-700 absolute top-16 -right-16"
|
|
77
77
|
>
|
|
78
78
|
<ul class="py-1" aria-labelledby="dropdownButton">
|
|
79
79
|
{#each dropdownLinks as { href, name, rel }}
|
package/index.d.ts
CHANGED
|
@@ -56,14 +56,18 @@ export { default as Pagination } from "./paginations/Pagination.svelte";
|
|
|
56
56
|
export { default as Previous } from "./paginations/Previous.svelte";
|
|
57
57
|
export { default as Next } from "./paginations/Next.svelte";
|
|
58
58
|
export { default as TableData } from "./paginations/TableData.svelte";
|
|
59
|
+
export { default as Progressbar } from "./progressbars/Progressbar.svelte";
|
|
59
60
|
export { default as Sidebar } from "./sidebars/Sidebar.svelte";
|
|
60
61
|
export { default as Spinner } from "./spinners/Spinner.svelte";
|
|
61
62
|
export { default as SpinnerButton } from "./spinners/SpinnerButton.svelte";
|
|
62
63
|
export { default as InteractiveTabHead } from "./tabs/InteractiveTabHead.svelte";
|
|
63
64
|
export { default as InteractiveTabs } from "./tabs/InteractiveTabs.svelte";
|
|
64
65
|
export { default as DefaultTabs } from "./tabs/DefaultTabs.svelte";
|
|
66
|
+
export { default as FullWidthTabs } from "./tabs/FullWidthTabs.svelte";
|
|
67
|
+
export { default as IconTabs } from "./tabs/IconTabs.svelte";
|
|
65
68
|
export { default as PillTabs } from "./tabs/PillTabs.svelte";
|
|
66
69
|
export { default as TabContent } from "./tabs/TabContent.svelte";
|
|
70
|
+
export { default as UnderlineTabs } from "./tabs/UnderlineTabs.svelte";
|
|
67
71
|
export { default as Group } from "./timelines/Group.svelte";
|
|
68
72
|
export { default as GroupItem } from "./timelines/GroupItem.svelte";
|
|
69
73
|
export { default as Activity } from "./timelines/Activity.svelte";
|
package/index.js
CHANGED
|
@@ -88,6 +88,9 @@ export { default as Previous } from './paginations/Previous.svelte'
|
|
|
88
88
|
export { default as Next } from './paginations/Next.svelte'
|
|
89
89
|
export { default as TableData } from './paginations/TableData.svelte'
|
|
90
90
|
|
|
91
|
+
// Progressbar
|
|
92
|
+
export { default as Progressbar } from'./progressbars/Progressbar.svelte'
|
|
93
|
+
|
|
91
94
|
// Sidebar
|
|
92
95
|
export { default as Sidebar } from './sidebars/Sidebar.svelte'
|
|
93
96
|
|
|
@@ -98,9 +101,12 @@ export { default as SpinnerButton } from'./spinners/SpinnerButton.svelte'
|
|
|
98
101
|
// Tabs
|
|
99
102
|
export { default as InteractiveTabHead } from './tabs/InteractiveTabHead.svelte'
|
|
100
103
|
export { default as InteractiveTabs } from'./tabs/InteractiveTabs.svelte'
|
|
101
|
-
export { default as DefaultTabs } from'./tabs/DefaultTabs.svelte'
|
|
104
|
+
export { default as DefaultTabs } from './tabs/DefaultTabs.svelte'
|
|
105
|
+
export { default as FullWidthTabs } from './tabs/FullWidthTabs.svelte'
|
|
106
|
+
export { default as IconTabs } from './tabs/IconTabs.svelte'
|
|
102
107
|
export { default as PillTabs } from './tabs/PillTabs.svelte'
|
|
103
108
|
export { default as TabContent } from './tabs/TabContent.svelte'
|
|
109
|
+
export { default as UnderlineTabs } from './tabs/UnderlineTabs.svelte'
|
|
104
110
|
|
|
105
111
|
// Timeline
|
|
106
112
|
export { default as Group } from './timelines/Group.svelte'
|
|
@@ -113,8 +119,6 @@ export { default as TimelineHorizontal } from './timelines/TimelineHorizontal.sv
|
|
|
113
119
|
export { default as TimelineItemHorizontal } from './timelines/TimelineItemHorizontal.svelte'
|
|
114
120
|
export { default as TimelineItemVertical } from './timelines/TimelineItemVertical.svelte'
|
|
115
121
|
|
|
116
|
-
|
|
117
|
-
|
|
118
122
|
// Toast
|
|
119
123
|
export { default as Toast } from './toasts/Toast.svelte'
|
|
120
124
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flowbite-svelte",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.4",
|
|
4
4
|
"description": "Flowbite components for Svelte",
|
|
5
5
|
"main": "./package/index.js",
|
|
6
6
|
"author": {
|
|
@@ -131,16 +131,20 @@
|
|
|
131
131
|
"./paginations/Pagination.svelte": "./paginations/Pagination.svelte",
|
|
132
132
|
"./paginations/Previous.svelte": "./paginations/Previous.svelte",
|
|
133
133
|
"./paginations/TableData.svelte": "./paginations/TableData.svelte",
|
|
134
|
+
"./progressbars/Progressbar.svelte": "./progressbars/Progressbar.svelte",
|
|
134
135
|
"./sidebars/Sidebar.svelte": "./sidebars/Sidebar.svelte",
|
|
135
136
|
"./sidebars/SidebarDropdown.svelte": "./sidebars/SidebarDropdown.svelte",
|
|
136
137
|
"./spinners/Spinner.svelte": "./spinners/Spinner.svelte",
|
|
137
138
|
"./spinners/SpinnerButton.svelte": "./spinners/SpinnerButton.svelte",
|
|
138
139
|
"./tables/Table.svelte": "./tables/Table.svelte",
|
|
139
140
|
"./tabs/DefaultTabs.svelte": "./tabs/DefaultTabs.svelte",
|
|
141
|
+
"./tabs/FullWidthTabs.svelte": "./tabs/FullWidthTabs.svelte",
|
|
142
|
+
"./tabs/IconTabs.svelte": "./tabs/IconTabs.svelte",
|
|
140
143
|
"./tabs/InteractiveTabHead.svelte": "./tabs/InteractiveTabHead.svelte",
|
|
141
144
|
"./tabs/InteractiveTabs.svelte": "./tabs/InteractiveTabs.svelte",
|
|
142
145
|
"./tabs/PillTabs.svelte": "./tabs/PillTabs.svelte",
|
|
143
146
|
"./tabs/TabContent.svelte": "./tabs/TabContent.svelte",
|
|
147
|
+
"./tabs/UnderlineTabs.svelte": "./tabs/UnderlineTabs.svelte",
|
|
144
148
|
"./tabs/tabStore": "./tabs/tabStore.js",
|
|
145
149
|
"./timelines/Activity.svelte": "./timelines/Activity.svelte",
|
|
146
150
|
"./timelines/ActivityItem.svelte": "./timelines/ActivityItem.svelte",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export let progress = '45';
|
|
3
|
+
export let size = 'h-2.5';
|
|
4
|
+
export let label = '';
|
|
5
|
+
export let position = '';
|
|
6
|
+
export let color = 'blue';
|
|
7
|
+
let barColor;
|
|
8
|
+
if (color === 'blue') {
|
|
9
|
+
barColor = 'bg-blue-600';
|
|
10
|
+
} else if (color === 'gray') {
|
|
11
|
+
barColor = 'bg-gray-600';
|
|
12
|
+
} else if (color === 'red') {
|
|
13
|
+
barColor = 'bg-red-600';
|
|
14
|
+
} else if (color === 'green') {
|
|
15
|
+
barColor = 'bg-green-600';
|
|
16
|
+
} else if (color === 'yellow') {
|
|
17
|
+
barColor = 'bg-yellow-600';
|
|
18
|
+
} else if (color === 'purple') {
|
|
19
|
+
barColor = 'bg-purple-600';
|
|
20
|
+
} else if (color === 'indigo') {
|
|
21
|
+
barColor = 'bg-indigo-600';
|
|
22
|
+
} else {
|
|
23
|
+
barColor = 'bg-blue-600';
|
|
24
|
+
}
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
{#if position === 'out'}
|
|
28
|
+
<div class="flex justify-between mb-1">
|
|
29
|
+
<span class="text-base font-medium text-blue-700 dark:text-white">{label}</span>
|
|
30
|
+
<span class="text-sm font-medium text-blue-700 dark:text-white">{progress}%</span>
|
|
31
|
+
</div>
|
|
32
|
+
{/if}
|
|
33
|
+
<div class="w-full bg-gray-200 rounded-full {size} dark:bg-gray-700">
|
|
34
|
+
{#if position === 'in'}
|
|
35
|
+
<div
|
|
36
|
+
class="bg-blue-600 text-xs font-medium text-blue-100 text-center p-0.5 leading-none rounded-full"
|
|
37
|
+
style="width: {progress}%"
|
|
38
|
+
>
|
|
39
|
+
{progress}%
|
|
40
|
+
</div>
|
|
41
|
+
{:else}
|
|
42
|
+
<div class="{barColor} {size} rounded-full" style="width: {progress}%" />
|
|
43
|
+
{/if}
|
|
44
|
+
</div>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} ProgressbarProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} ProgressbarEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} ProgressbarSlots */
|
|
4
|
+
export default class Progressbar extends SvelteComponentTyped<{
|
|
5
|
+
progress?: string;
|
|
6
|
+
color?: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
size?: string;
|
|
9
|
+
position?: string;
|
|
10
|
+
}, {
|
|
11
|
+
[evt: string]: CustomEvent<any>;
|
|
12
|
+
}, {}> {
|
|
13
|
+
}
|
|
14
|
+
export type ProgressbarProps = typeof __propDef.props;
|
|
15
|
+
export type ProgressbarEvents = typeof __propDef.events;
|
|
16
|
+
export type ProgressbarSlots = typeof __propDef.slots;
|
|
17
|
+
import { SvelteComponentTyped } from "svelte";
|
|
18
|
+
declare const __propDef: {
|
|
19
|
+
props: {
|
|
20
|
+
progress?: string;
|
|
21
|
+
color?: string;
|
|
22
|
+
label?: string;
|
|
23
|
+
size?: string;
|
|
24
|
+
position?: string;
|
|
25
|
+
};
|
|
26
|
+
events: {
|
|
27
|
+
[evt: string]: CustomEvent<any>;
|
|
28
|
+
};
|
|
29
|
+
slots: {};
|
|
30
|
+
};
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script >export let tabs;
|
|
2
|
+
export let tabLabel;
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="sm:hidden">
|
|
6
|
+
<label for="tabs" class="sr-only">{tabLabel}</label>
|
|
7
|
+
<select
|
|
8
|
+
id="tabs"
|
|
9
|
+
class="bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
|
|
10
|
+
>
|
|
11
|
+
{#each tabs as { name }}
|
|
12
|
+
<option>{name}</option>
|
|
13
|
+
{/each}
|
|
14
|
+
</select>
|
|
15
|
+
</div>
|
|
16
|
+
<ul
|
|
17
|
+
class="hidden text-sm font-medium text-center text-gray-500 rounded-lg divide-x divide-gray-200 shadow sm:flex dark:divide-gray-700 dark:text-gray-400"
|
|
18
|
+
>
|
|
19
|
+
{#each tabs as { name, href, rel, active }}
|
|
20
|
+
<li class="w-full">
|
|
21
|
+
<a
|
|
22
|
+
{href}
|
|
23
|
+
{rel}
|
|
24
|
+
class={active
|
|
25
|
+
? 'inline-block p-4 w-full text-gray-900 bg-gray-100 rounded-l-lg focus:ring-4 focus:ring-blue-300 active focus:outline-none dark:bg-gray-700 dark:text-white'
|
|
26
|
+
: 'inline-block p-4 w-full bg-white hover:text-gray-700 hover:bg-gray-50 focus:ring-4 focus:ring-blue-300 focus:outline-none dark:hover:text-white dark:bg-gray-800 dark:hover:bg-gray-700'}
|
|
27
|
+
aria-current="page">{name}</a
|
|
28
|
+
>
|
|
29
|
+
</li>
|
|
30
|
+
{/each}
|
|
31
|
+
</ul>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { TabType } from '../types';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
tabs: TabType[];
|
|
6
|
+
tabLabel: string;
|
|
7
|
+
};
|
|
8
|
+
events: {
|
|
9
|
+
[evt: string]: CustomEvent<any>;
|
|
10
|
+
};
|
|
11
|
+
slots: {};
|
|
12
|
+
};
|
|
13
|
+
export declare type FullWidthTabsProps = typeof __propDef.props;
|
|
14
|
+
export declare type FullWidthTabsEvents = typeof __propDef.events;
|
|
15
|
+
export declare type FullWidthTabsSlots = typeof __propDef.slots;
|
|
16
|
+
export default class FullWidthTabs extends SvelteComponentTyped<FullWidthTabsProps, FullWidthTabsEvents, FullWidthTabsSlots> {
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script >export let tabs;
|
|
2
|
+
export let iconClass = 'mr-2 w-5 h-5 text-gray-400 group-hover:text-gray-500 dark:text-gray-500 dark:group-hover:text-gray-300';
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="border-b border-gray-200 dark:border-gray-700">
|
|
6
|
+
<ul
|
|
7
|
+
class="flex flex-wrap -mb-px text-sm font-medium text-center text-gray-500 dark:text-gray-400"
|
|
8
|
+
>
|
|
9
|
+
{#each tabs as { name, active, href, rel, icon }}
|
|
10
|
+
<li class="mr-2">
|
|
11
|
+
<a
|
|
12
|
+
{href}
|
|
13
|
+
{rel}
|
|
14
|
+
class={active
|
|
15
|
+
? 'inline-flex p-4 text-blue-600 rounded-t-lg border-b-2 border-blue-600 active dark:text-blue-500 dark:border-blue-500 group'
|
|
16
|
+
: ' inline-flex p-4 rounded-t-lg border-b-2 border-transparent hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300 group '}
|
|
17
|
+
>
|
|
18
|
+
<svelte:component this={icon} className={iconClass} />
|
|
19
|
+
{name}
|
|
20
|
+
</a>
|
|
21
|
+
</li>
|
|
22
|
+
{/each}
|
|
23
|
+
</ul>
|
|
24
|
+
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { IconTabType } from '../types';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
tabs: IconTabType[];
|
|
6
|
+
iconClass?: string;
|
|
7
|
+
};
|
|
8
|
+
events: {
|
|
9
|
+
[evt: string]: CustomEvent<any>;
|
|
10
|
+
};
|
|
11
|
+
slots: {};
|
|
12
|
+
};
|
|
13
|
+
export declare type IconTabsProps = typeof __propDef.props;
|
|
14
|
+
export declare type IconTabsEvents = typeof __propDef.events;
|
|
15
|
+
export declare type IconTabsSlots = typeof __propDef.slots;
|
|
16
|
+
export default class IconTabs extends SvelteComponentTyped<IconTabsProps, IconTabsEvents, IconTabsSlots> {
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script >export let divClass = 'text-sm font-medium text-center text-gray-500 border-b border-gray-200 dark:text-gray-400 dark:border-gray-700';
|
|
2
|
+
export let tabs;
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class={divClass}>
|
|
6
|
+
<ul class="flex flex-wrap -mb-px">
|
|
7
|
+
{#each tabs as { name, active, href, rel }}
|
|
8
|
+
<li class="mr-2">
|
|
9
|
+
<a
|
|
10
|
+
{href}
|
|
11
|
+
{rel}
|
|
12
|
+
class={active
|
|
13
|
+
? 'inline-block p-4 text-blue-600 rounded-t-lg border-b-2 border-blue-600 active dark:text-blue-500 dark:border-blue-500'
|
|
14
|
+
: ' inline-block p-4 rounded-t-lg border-b-2 border-transparent hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300 '}
|
|
15
|
+
>{name}</a
|
|
16
|
+
>
|
|
17
|
+
</li>
|
|
18
|
+
{/each}
|
|
19
|
+
</ul>
|
|
20
|
+
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { TabType } from '../types';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
divClass?: string;
|
|
6
|
+
tabs: TabType[];
|
|
7
|
+
};
|
|
8
|
+
events: {
|
|
9
|
+
[evt: string]: CustomEvent<any>;
|
|
10
|
+
};
|
|
11
|
+
slots: {};
|
|
12
|
+
};
|
|
13
|
+
export declare type UnderlineTabsProps = typeof __propDef.props;
|
|
14
|
+
export declare type UnderlineTabsEvents = typeof __propDef.events;
|
|
15
|
+
export declare type UnderlineTabsSlots = typeof __propDef.slots;
|
|
16
|
+
export default class UnderlineTabs extends SvelteComponentTyped<UnderlineTabsProps, UnderlineTabsEvents, UnderlineTabsSlots> {
|
|
17
|
+
}
|
|
18
|
+
export {};
|
package/types.d.ts
CHANGED
|
@@ -43,6 +43,13 @@ export interface TabType {
|
|
|
43
43
|
href: string;
|
|
44
44
|
rel?: string;
|
|
45
45
|
}
|
|
46
|
+
export interface IconTabType {
|
|
47
|
+
name: string;
|
|
48
|
+
active: boolean;
|
|
49
|
+
href: string;
|
|
50
|
+
rel?: string;
|
|
51
|
+
icon?: typeof SvelteComponent;
|
|
52
|
+
}
|
|
46
53
|
export interface InteractiveTabType {
|
|
47
54
|
name: string;
|
|
48
55
|
id: number;
|