flowbite-svelte 0.44.20 → 0.44.21
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/accordion/AccordionItem.svelte +4 -4
- package/dist/accordion/AccordionItem.svelte.d.ts +2 -2
- package/dist/alert/Alert.svelte +1 -1
- package/dist/avatar/Avatar.svelte +1 -1
- package/dist/badge/Badge.svelte +1 -1
- package/dist/banner/Banner.svelte +6 -6
- package/dist/bottom-navigation/BottomNav.svelte +8 -8
- package/dist/bottom-navigation/BottomNavItem.svelte +2 -2
- package/dist/breadcrumb/Breadcrumb.svelte +2 -2
- package/dist/breadcrumb/Breadcrumb.svelte.d.ts +1 -1
- package/dist/breadcrumb/BreadcrumbItem.svelte +6 -6
- package/dist/breadcrumb/BreadcrumbItem.svelte.d.ts +2 -2
- package/dist/buttons/Button.svelte +3 -39
- package/dist/buttons/Button.svelte.d.ts.map +1 -1
- package/dist/buttons/GradientButton.svelte +1 -1
- package/dist/cards/Card.svelte +1 -1
- package/dist/carousel/Carousel.svelte +0 -10
- package/dist/carousel/Carousel.svelte.d.ts.map +1 -1
- package/dist/carousel/ControlButton.svelte +1 -1
- package/dist/carousel/Indicators.svelte +1 -1
- package/dist/darkmode/DarkMode.svelte +6 -3
- package/dist/darkmode/DarkMode.svelte.d.ts.map +1 -1
- package/dist/datepicker/Datepicker.svelte +5 -5
- package/dist/datepicker/Datepicker.svelte.d.ts +1 -1
- package/dist/drawer/Drawer.svelte +5 -5
- package/dist/drawer/Drawer.svelte.d.ts +2 -2
- package/dist/footer/FooterBrand.svelte +2 -2
- package/dist/footer/FooterBrand.svelte.d.ts +1 -1
- package/dist/footer/FooterCopyright.svelte +1 -1
- package/dist/footer/FooterLink.svelte +2 -2
- package/dist/footer/FooterLink.svelte.d.ts +1 -1
- package/dist/forms/Checkbox.svelte +2 -2
- package/dist/forms/Checkbox.svelte.d.ts +1 -1
- package/dist/forms/FloatingLabelInput.svelte +3 -3
- package/dist/forms/Input.svelte +7 -7
- package/dist/forms/Input.svelte.d.ts +1 -1
- package/dist/forms/InputAddon.svelte +3 -3
- package/dist/forms/Label.svelte +2 -2
- package/dist/forms/Label.svelte.d.ts +1 -1
- package/dist/forms/MultiSelect.svelte +9 -8
- package/dist/forms/MultiSelect.svelte.d.ts +2 -0
- package/dist/forms/MultiSelect.svelte.d.ts.map +1 -1
- package/dist/forms/Radio.svelte +2 -2
- package/dist/forms/Radio.svelte.d.ts +1 -1
- package/dist/forms/Search.svelte +1 -1
- package/dist/forms/Toggle.svelte +4 -4
- package/dist/indicators/Indicator.svelte +15 -15
- package/dist/list-group/Listgroup.svelte +1 -1
- package/dist/list-group/Listgroup.svelte.d.ts +1 -0
- package/dist/list-group/Listgroup.svelte.d.ts.map +1 -1
- package/dist/marquee/Marquee.svelte +4 -11
- package/dist/modal/Modal.svelte +12 -7
- package/dist/modal/Modal.svelte.d.ts +1 -1
- package/dist/modal/Modal.svelte.d.ts.map +1 -1
- package/dist/navbar/NavHamburger.svelte +1 -1
- package/dist/navbar/NavLi.svelte +1 -1
- package/dist/navbar/NavUl.svelte +2 -2
- package/dist/navbar/NavUl.svelte.d.ts +1 -1
- package/dist/pagination/Pagination.svelte +5 -5
- package/dist/pagination/Pagination.svelte.d.ts +1 -1
- package/dist/rating/Rating.svelte +1 -1
- package/dist/rating/RatingComment.svelte +5 -5
- package/dist/rating/Review.svelte +3 -3
- package/dist/rating/Review.svelte.d.ts +1 -1
- package/dist/rating/ScoreRating.svelte +6 -6
- package/dist/rating/ScoreRating.svelte.d.ts +2 -2
- package/dist/sidebar/SidebarBrand.svelte +4 -4
- package/dist/sidebar/SidebarBrand.svelte.d.ts +2 -2
- package/dist/sidebar/SidebarCta.svelte +2 -2
- package/dist/sidebar/SidebarCta.svelte.d.ts +1 -1
- package/dist/sidebar/SidebarDropdownItem.svelte +4 -4
- package/dist/sidebar/SidebarDropdownItem.svelte.d.ts +2 -2
- package/dist/sidebar/SidebarDropdownWrapper.svelte +2 -2
- package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +1 -1
- package/dist/sidebar/SidebarItem.svelte +2 -2
- package/dist/sidebar/SidebarItem.svelte.d.ts +1 -1
- package/dist/skeleton/CardPlaceholder.svelte +1 -1
- package/dist/skeleton/ImagePlaceholder.svelte +2 -2
- package/dist/skeleton/ImagePlaceholder.svelte.d.ts +1 -1
- package/dist/skeleton/TestimonialPlaceholder.svelte +2 -2
- package/dist/skeleton/TextPlaceholder.svelte +6 -6
- package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
- package/dist/speed-dial/SpeedDial.svelte +2 -2
- package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
- package/dist/speed-dial/SpeedDialButton.svelte +2 -2
- package/dist/speed-dial/SpeedDialButton.svelte.d.ts +1 -1
- package/dist/table/TableSearch.svelte +4 -4
- package/dist/table/TableSearch.svelte.d.ts +2 -2
- package/dist/tabs/Tabs.svelte +4 -4
- package/dist/tabs/Tabs.svelte.d.ts +1 -1
- package/dist/timeline/Activity.svelte +2 -2
- package/dist/timeline/Activity.svelte.d.ts +1 -1
- package/dist/timeline/ActivityItem.svelte +4 -4
- package/dist/timeline/ActivityItem.svelte.d.ts +2 -2
- package/dist/timeline/GroupItem.svelte +4 -4
- package/dist/timeline/GroupItem.svelte.d.ts +1 -1
- package/dist/timeline/Timeline.svelte +3 -3
- package/dist/timeline/TimelineItem.svelte +6 -6
- package/dist/toast/Toast.svelte +4 -5
- package/dist/toast/Toast.svelte.d.ts +0 -1
- package/dist/toast/Toast.svelte.d.ts.map +1 -1
- package/dist/toolbar/Toolbar.svelte +1 -1
- package/dist/toolbar/ToolbarGroup.svelte +2 -2
- package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
- package/dist/typography/Blockquote.svelte +2 -2
- package/dist/typography/Blockquote.svelte.d.ts +1 -1
- package/dist/typography/Hr.svelte +6 -6
- package/dist/typography/Hr.svelte.d.ts +3 -3
- package/dist/typography/P.svelte +2 -2
- package/dist/typography/P.svelte.d.ts +1 -1
- package/dist/utils/CloseButton.svelte +1 -1
- package/dist/utils/Frame.svelte +0 -2
- package/dist/utils/Frame.svelte.d.ts +0 -2
- package/dist/utils/Frame.svelte.d.ts.map +1 -1
- package/dist/utils/Popper.svelte +4 -4
- package/dist/utils/Popper.svelte.d.ts +3 -0
- package/dist/utils/Popper.svelte.d.ts.map +1 -1
- package/dist/utils/TransitionFrame.svelte +10 -0
- package/dist/utils/TransitionFrame.svelte.d.ts +8 -0
- package/dist/utils/TransitionFrame.svelte.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/utils/createEventDispatcher.d.ts +0 -2
- package/dist/utils/createEventDispatcher.d.ts.map +0 -1
- package/dist/utils/createEventDispatcher.js +0 -22
package/dist/forms/Input.svelte
CHANGED
|
@@ -9,7 +9,7 @@ import { getContext } from 'svelte';
|
|
|
9
9
|
export let type = 'text';
|
|
10
10
|
export let value = undefined;
|
|
11
11
|
export let size = undefined;
|
|
12
|
-
export let defaultClass = 'block w-full disabled:cursor-not-allowed disabled:opacity-50';
|
|
12
|
+
export let defaultClass = 'block w-full disabled:cursor-not-allowed disabled:opacity-50 rtl:text-right';
|
|
13
13
|
export let color = 'base';
|
|
14
14
|
export let floatClass = 'flex absolute inset-y-0 items-center text-gray-500 dark:text-gray-400';
|
|
15
15
|
const borderClasses = {
|
|
@@ -33,20 +33,20 @@ const colorClasses = {
|
|
|
33
33
|
let background = getContext('background');
|
|
34
34
|
let group = getContext('group');
|
|
35
35
|
const textSizes = { sm: 'sm:text-xs', md: 'text-sm', lg: 'sm:text-base' };
|
|
36
|
-
const leftPadding = { sm: '
|
|
37
|
-
const rightPadding = { sm: '
|
|
36
|
+
const leftPadding = { sm: 'ps-9', md: 'ps-10', lg: 'ps-11' };
|
|
37
|
+
const rightPadding = { sm: 'pe-9', md: 'pe-10', lg: 'pe-11' };
|
|
38
38
|
const inputPadding = { sm: 'p-2', md: 'p-2.5', lg: 'p-3' };
|
|
39
39
|
$: _size = size || clampSize(group?.size) || 'md';
|
|
40
40
|
let inputClass;
|
|
41
41
|
$: {
|
|
42
42
|
const _color = color === 'base' && background ? 'tinted' : color;
|
|
43
|
-
inputClass = twMerge([defaultClass, ($$slots.left && leftPadding[_size]) || ($$slots.right && rightPadding[_size])
|
|
43
|
+
inputClass = twMerge([defaultClass, inputPadding[_size], ($$slots.left && leftPadding[_size]) || ($$slots.right && rightPadding[_size]), ringClasses[color], colorClasses[_color], borderClasses[_color], textSizes[_size], group || 'rounded-lg', group && 'first:rounded-s-lg last:rounded-e-lg', group && 'border-s-0 first:border-s last:border-e', $$props.class]);
|
|
44
44
|
}
|
|
45
45
|
</script>
|
|
46
46
|
|
|
47
47
|
<Wrapper class="relative w-full" show={$$slots.left || $$slots.right}>
|
|
48
48
|
{#if $$slots.left}
|
|
49
|
-
<div class="{twMerge(floatClass, $$props.classLeft)}
|
|
49
|
+
<div class="{twMerge(floatClass, $$props.classLeft)} start-0 ps-2.5 pointer-events-none">
|
|
50
50
|
<slot name="left" />
|
|
51
51
|
</div>
|
|
52
52
|
{/if}
|
|
@@ -54,7 +54,7 @@ $: {
|
|
|
54
54
|
<input {...$$restProps} bind:value on:blur on:change on:click on:contextmenu on:focus on:keydown on:keypress on:keyup on:mouseover on:mouseenter on:mouseleave on:paste on:input {...{ type }} class={inputClass} />
|
|
55
55
|
</slot>
|
|
56
56
|
{#if $$slots.right}
|
|
57
|
-
<div class="{twMerge(floatClass, $$props.classRight)}
|
|
57
|
+
<div class="{twMerge(floatClass, $$props.classRight)} end-0 pe-2.5"><slot name="right" /></div>
|
|
58
58
|
{/if}
|
|
59
59
|
</Wrapper>
|
|
60
60
|
|
|
@@ -65,7 +65,7 @@ $: {
|
|
|
65
65
|
@prop export let type: InputType = 'text';
|
|
66
66
|
@prop export let value: any = undefined;
|
|
67
67
|
@prop export let size: FormSizeType | undefined = undefined;
|
|
68
|
-
@prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50';
|
|
68
|
+
@prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50 rtl:text-right';
|
|
69
69
|
@prop export let color: 'base' | 'green' | 'red' = 'base';
|
|
70
70
|
@prop export let floatClass: string = 'flex absolute inset-y-0 items-center text-gray-500 dark:text-gray-400';
|
|
71
71
|
-->
|
|
@@ -48,7 +48,7 @@ export type InputSlots = typeof __propDef.slots;
|
|
|
48
48
|
* @prop export let type: InputType = 'text';
|
|
49
49
|
* @prop export let value: any = undefined;
|
|
50
50
|
* @prop export let size: FormSizeType | undefined = undefined;
|
|
51
|
-
* @prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50';
|
|
51
|
+
* @prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50 rtl:text-right';
|
|
52
52
|
* @prop export let color: 'base' | 'green' | 'red' = 'base';
|
|
53
53
|
* @prop export let floatClass: string = 'flex absolute inset-y-0 items-center text-gray-500 dark:text-gray-400';
|
|
54
54
|
*/
|
|
@@ -14,14 +14,14 @@ const darkBgClasses = {
|
|
|
14
14
|
tinted: 'dark:bg-gray-500 dark:text-gray-300'
|
|
15
15
|
};
|
|
16
16
|
const divider = {
|
|
17
|
-
base: 'dark:border-
|
|
18
|
-
tinted: 'dark:border-
|
|
17
|
+
base: 'dark:border-e-gray-700 dark:last:border-e-gray-600',
|
|
18
|
+
tinted: 'dark:border-e-gray-600 dark:last:border-e-gray-500'
|
|
19
19
|
};
|
|
20
20
|
const textSizes = { sm: 'sm:text-xs', md: 'text-sm', lg: 'sm:text-base' };
|
|
21
21
|
const prefixPadding = { sm: 'px-2', md: 'px-3', lg: 'px-4' };
|
|
22
22
|
// size: explicit, inherited, default
|
|
23
23
|
$: _size = size || clampSize(group?.size) || 'md';
|
|
24
|
-
$: divClass = twMerge(textSizes[_size], prefixPadding[_size], background ? borderClasses['tinted'] : borderClasses['base'], 'text-gray-500 bg-gray-200', background ? darkBgClasses.tinted : darkBgClasses.base, background ? divider.tinted : divider.base, 'inline-flex items-center border-t border-b first:border-
|
|
24
|
+
$: divClass = twMerge(textSizes[_size], prefixPadding[_size], background ? borderClasses['tinted'] : borderClasses['base'], 'text-gray-500 bg-gray-200', background ? darkBgClasses.tinted : darkBgClasses.base, background ? divider.tinted : divider.base, 'inline-flex items-center border-t border-b first:border-s border-e', 'first:rounded-s-lg last:rounded-e-lg', $$props.class);
|
|
25
25
|
</script>
|
|
26
26
|
|
|
27
27
|
<div {...$$restProps} class={divClass}>
|
package/dist/forms/Label.svelte
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>import { twMerge } from 'tailwind-merge';
|
|
2
2
|
export let color = 'gray';
|
|
3
|
-
export let defaultClass = 'text-sm font-medium block';
|
|
3
|
+
export let defaultClass = 'text-sm rtl:text-right font-medium block';
|
|
4
4
|
export let show = true;
|
|
5
5
|
let node;
|
|
6
6
|
const colorClasses = {
|
|
@@ -29,6 +29,6 @@ $: labelClass = twMerge(defaultClass, colorClasses[color], $$props.class);
|
|
|
29
29
|
[Go to docs](https://flowbite-svelte.com/)
|
|
30
30
|
## Props
|
|
31
31
|
@prop export let color: 'gray' | 'green' | 'red' | 'disabled' = 'gray';
|
|
32
|
-
@prop export let defaultClass: string = 'text-sm font-medium block';
|
|
32
|
+
@prop export let defaultClass: string = 'text-sm rtl:text-right font-medium block';
|
|
33
33
|
@prop export let show: boolean = true;
|
|
34
34
|
-->
|
|
@@ -20,7 +20,7 @@ export type LabelSlots = typeof __propDef.slots;
|
|
|
20
20
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
21
21
|
* ## Props
|
|
22
22
|
* @prop export let color: 'gray' | 'green' | 'red' | 'disabled' = 'gray';
|
|
23
|
-
* @prop export let defaultClass: string = 'text-sm font-medium block';
|
|
23
|
+
* @prop export let defaultClass: string = 'text-sm rtl:text-right font-medium block';
|
|
24
24
|
* @prop export let show: boolean = true;
|
|
25
25
|
*/
|
|
26
26
|
export default class Label extends SvelteComponent<LabelProps, LabelEvents, LabelSlots> {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<script>import Badge from '../badge/Badge.svelte';
|
|
2
2
|
import CloseButton from '../utils/CloseButton.svelte';
|
|
3
3
|
import { twMerge } from 'tailwind-merge';
|
|
4
|
-
import createEventDispatcher from '../utils/createEventDispatcher';
|
|
5
|
-
const dispatch = createEventDispatcher();
|
|
6
4
|
export let items = [];
|
|
7
5
|
export let value = [];
|
|
8
6
|
export let size = 'md';
|
|
@@ -18,7 +16,7 @@ const sizes = {
|
|
|
18
16
|
const multiSelectClass = 'relative border border-gray-300 flex items-center rounded-lg gap-2 dark:border-gray-600 focus-within:ring-1 focus-within:border-primary-500 ring-primary-500 dark:focus-within:border-primary-500 dark:ring-primary-500';
|
|
19
17
|
// Dropdown
|
|
20
18
|
let multiSelectDropdown;
|
|
21
|
-
$: multiSelectDropdown = twMerge('absolute z-50 p-3 flex flex-col gap-1 max-h-64 bg-white border border-gray-300 dark:bg-gray-700 dark:border-gray-600
|
|
19
|
+
$: multiSelectDropdown = twMerge('absolute z-50 p-3 flex flex-col gap-1 max-h-64 bg-white border border-gray-300 dark:bg-gray-700 dark:border-gray-600 start-0 top-[calc(100%+1rem)] rounded-lg cursor-pointer overflow-y-scroll w-full', dropdownClass);
|
|
22
20
|
// Items
|
|
23
21
|
const itemsClass = 'py-2 px-3 rounded-lg text-gray-600 hover:text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:text-gray-300 dark:hover:bg-gray-600';
|
|
24
22
|
// Selected items
|
|
@@ -41,6 +39,9 @@ const clearThisOption = (select) => {
|
|
|
41
39
|
value = value.filter((o) => o !== select.value);
|
|
42
40
|
}
|
|
43
41
|
};
|
|
42
|
+
function create_custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {
|
|
43
|
+
return new CustomEvent(type, { detail, bubbles, cancelable });
|
|
44
|
+
}
|
|
44
45
|
function init(node, value) {
|
|
45
46
|
const inital = value; // hack for below
|
|
46
47
|
return {
|
|
@@ -48,8 +49,8 @@ function init(node, value) {
|
|
|
48
49
|
selectItems = items.filter((x) => value.includes(x.value));
|
|
49
50
|
// avoid initial event emitting
|
|
50
51
|
if (value !== inital) {
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
node.dispatchEvent(create_custom_event('input', selectItems));
|
|
53
|
+
node.dispatchEvent(create_custom_event('change', selectItems));
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
};
|
|
@@ -57,7 +58,7 @@ function init(node, value) {
|
|
|
57
58
|
</script>
|
|
58
59
|
|
|
59
60
|
<!-- Hidden select for form submission -->
|
|
60
|
-
<select use:init={value} {...$$restProps} {value} hidden multiple>
|
|
61
|
+
<select use:init={value} {...$$restProps} {value} hidden multiple on:change on:input>
|
|
61
62
|
{#each items as { value, name }}
|
|
62
63
|
<option {value}>{name}</option>
|
|
63
64
|
{/each}
|
|
@@ -75,12 +76,12 @@ function init(node, value) {
|
|
|
75
76
|
{/each}
|
|
76
77
|
{/if}
|
|
77
78
|
</span>
|
|
78
|
-
<div class="flex
|
|
79
|
+
<div class="flex ms-auto gap-2 items-center">
|
|
79
80
|
{#if selectItems.length}
|
|
80
81
|
<CloseButton {size} on:click={clearAll} color="none" class="p-0 focus:ring-gray-400" />
|
|
81
82
|
{/if}
|
|
82
83
|
<div class="w-[1px] bg-gray-300 dark:bg-gray-600" />
|
|
83
|
-
<svg class="cursor-pointer h-3 w-3
|
|
84
|
+
<svg class="cursor-pointer h-3 w-3 ms-1 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
|
84
85
|
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d={show ? 'm1 5 4-4 4 4' : 'm9 1-4 4-4-4'} />
|
|
85
86
|
</svg>
|
|
86
87
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/forms/MultiSelect.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AAID,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAqH/D,QAAA,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"MultiSelect.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/forms/MultiSelect.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AAID,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAqH/D,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAA+D,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,eAAe,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;CAC9G"}
|
package/dist/forms/Radio.svelte
CHANGED
|
@@ -12,7 +12,7 @@ const colorClasses = {
|
|
|
12
12
|
blue: 'text-blue-600 focus:ring-blue-500 dark:focus:ring-blue-600'
|
|
13
13
|
};
|
|
14
14
|
export const labelClass = (inline, extraClass) => twMerge(inline ? 'inline-flex' : 'flex', 'items-center', extraClass);
|
|
15
|
-
export let spacing = '
|
|
15
|
+
export let spacing = 'me-2';
|
|
16
16
|
export const inputClass = (custom, color, rounded, tinted, extraClass) => twMerge('w-4 h-4 bg-gray-100 border-gray-300 dark:ring-offset-gray-800 focus:ring-2', spacing, tinted ? 'dark:bg-gray-600 dark:border-gray-500' : 'dark:bg-gray-700 dark:border-gray-600', custom && 'sr-only peer', rounded && 'rounded', colorClasses[color], extraClass);
|
|
17
17
|
</script>
|
|
18
18
|
|
|
@@ -36,7 +36,7 @@ let background = getContext('background');
|
|
|
36
36
|
@component
|
|
37
37
|
[Go to docs](https://flowbite-svelte.com/)
|
|
38
38
|
## Props
|
|
39
|
-
@prop export let spacing: string = '
|
|
39
|
+
@prop export let spacing: string = 'me-2';
|
|
40
40
|
@prop export let color: FormColorType = 'primary';
|
|
41
41
|
@prop export let custom: boolean = false;
|
|
42
42
|
@prop export let inline: boolean = false;
|
|
@@ -37,7 +37,7 @@ export type RadioSlots = typeof __propDef.slots;
|
|
|
37
37
|
/**
|
|
38
38
|
* [Go to docs](https://flowbite-svelte.com/)
|
|
39
39
|
* ## Props
|
|
40
|
-
* @prop export let spacing: string = '
|
|
40
|
+
* @prop export let spacing: string = 'me-2';
|
|
41
41
|
* @prop export let color: FormColorType = 'primary';
|
|
42
42
|
* @prop export let custom: boolean = false;
|
|
43
43
|
* @prop export let inline: boolean = false;
|
package/dist/forms/Search.svelte
CHANGED
|
@@ -24,7 +24,7 @@ const sizes = {
|
|
|
24
24
|
Due to that we need the below slot and Wrapper around
|
|
25
25
|
-->
|
|
26
26
|
{#if $$slots.default}
|
|
27
|
-
<div class="flex absolute inset-y-0
|
|
27
|
+
<div class="flex absolute inset-y-0 end-0 items-center text-gray-500 dark:text-gray-400">
|
|
28
28
|
<slot />
|
|
29
29
|
</div>
|
|
30
30
|
{/if}
|
package/dist/forms/Toggle.svelte
CHANGED
|
@@ -8,7 +8,7 @@ export let checked = undefined;
|
|
|
8
8
|
export let customSize = '';
|
|
9
9
|
// tinted if put in component having its own background
|
|
10
10
|
let background = getContext('background');
|
|
11
|
-
const common = "
|
|
11
|
+
const common = "me-3 shrink-0 bg-gray-200 rounded-full peer-focus:ring-4 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:bg-white after:border-gray-300 after:border after:rounded-full after:transition-all";
|
|
12
12
|
const colors = {
|
|
13
13
|
primary: 'peer-focus:ring-primary-300 dark:peer-focus:ring-primary-800 peer-checked:bg-primary-600',
|
|
14
14
|
secondary: 'peer-focus:ring-secondary-300 dark:peer-focus:ring-secondary-800 peer-checked:bg-secondary-600',
|
|
@@ -21,9 +21,9 @@ const colors = {
|
|
|
21
21
|
blue: 'peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 peer-checked:bg-blue-600'
|
|
22
22
|
};
|
|
23
23
|
const sizes = {
|
|
24
|
-
small: 'w-9 h-5 after:top-[2px] after:
|
|
25
|
-
default: 'w-11 h-6 after:top-0.5 after:
|
|
26
|
-
large: 'w-14 h-7 after:top-0.5 after:
|
|
24
|
+
small: 'w-9 h-5 after:top-[2px] after:start-[2px] after:h-4 after:w-4',
|
|
25
|
+
default: 'w-11 h-6 after:top-0.5 after:start-[2px] after:h-5 after:w-5',
|
|
26
|
+
large: 'w-14 h-7 after:top-0.5 after:start-[4px] after:h-6 after:w-6',
|
|
27
27
|
custom: customSize
|
|
28
28
|
};
|
|
29
29
|
let divClass;
|
|
@@ -27,31 +27,31 @@ const sizes = {
|
|
|
27
27
|
};
|
|
28
28
|
const placements = {
|
|
29
29
|
// top
|
|
30
|
-
'top-left': 'top-0
|
|
31
|
-
'top-center': 'top-0
|
|
32
|
-
'top-right': 'top-0
|
|
30
|
+
'top-left': 'top-0 start-0',
|
|
31
|
+
'top-center': 'top-0 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rtl:translate-x-1/2',
|
|
32
|
+
'top-right': 'top-0 end-0',
|
|
33
33
|
// center
|
|
34
|
-
'center-left': 'top-1/2 -translate-y-1/2
|
|
35
|
-
center: 'top-1/2 -translate-y-1/2
|
|
36
|
-
'center-right': 'top-1/2 -translate-y-1/2
|
|
34
|
+
'center-left': 'top-1/2 -translate-y-1/2 start-0',
|
|
35
|
+
center: 'top-1/2 -translate-y-1/2 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rtl:translate-x-1/2',
|
|
36
|
+
'center-right': 'top-1/2 -translate-y-1/2 end-0',
|
|
37
37
|
// bottom
|
|
38
|
-
'bottom-left': 'bottom-0
|
|
39
|
-
'bottom-center': 'bottom-0
|
|
40
|
-
'bottom-right': 'bottom-0
|
|
38
|
+
'bottom-left': 'bottom-0 start-0',
|
|
39
|
+
'bottom-center': 'bottom-0 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rtl:translate-x-1/2',
|
|
40
|
+
'bottom-right': 'bottom-0 end-0'
|
|
41
41
|
};
|
|
42
42
|
const offsets = {
|
|
43
43
|
// top
|
|
44
|
-
'top-left': '-translate-x-1/3 -translate-y-1/3',
|
|
44
|
+
'top-left': '-translate-x-1/3 rtl:translate-x-1/3 -translate-y-1/3',
|
|
45
45
|
'top-center': '-translate-y-1/3',
|
|
46
|
-
'top-right': 'translate-x-1/3 -translate-y-1/3',
|
|
46
|
+
'top-right': 'translate-x-1/3 rtl:-translate-x-1/3 -translate-y-1/3',
|
|
47
47
|
// center
|
|
48
|
-
'center-left': '-translate-x-1/3',
|
|
48
|
+
'center-left': '-translate-x-1/3 rtl:translate-x-1/3',
|
|
49
49
|
center: '',
|
|
50
|
-
'center-right': 'translate-x-1/3',
|
|
50
|
+
'center-right': 'translate-x-1/3 rtl:-translate-x-1/3',
|
|
51
51
|
// bottom
|
|
52
|
-
'bottom-left': '-translate-x-1/3 translate-y-1/3',
|
|
52
|
+
'bottom-left': '-translate-x-1/3 rtl:translate-x-1/3 translate-y-1/3',
|
|
53
53
|
'bottom-center': 'translate-y-1/3',
|
|
54
|
-
'bottom-right': 'translate-x-1/3 translate-y-1/3'
|
|
54
|
+
'bottom-right': 'translate-x-1/3 rtl:-translate-x-1/3 translate-y-1/3'
|
|
55
55
|
};
|
|
56
56
|
let dotClass;
|
|
57
57
|
$: dotClass = twMerge('flex-shrink-0', rounded ? 'rounded' : 'rounded-full', border && 'border-2 border-white dark:border-gray-800', sizes[size], colors[color], $$slots.default && 'inline-flex items-center justify-center', placement && 'absolute ' + placements[placement], placement && offset && offsets[placement], $$props.class);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Listgroup.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/list-group/Listgroup.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AAGD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AA8ClD,QAAA,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"Listgroup.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/list-group/Listgroup.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AAGD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AA8ClD,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwC,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC;AACtD,MAAM,MAAM,cAAc,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,eAAe,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,CAAC;CACtG"}
|
|
@@ -8,10 +8,10 @@ let isHovering = false;
|
|
|
8
8
|
let marquee;
|
|
9
9
|
let intervalId;
|
|
10
10
|
let shadowClass = `after:content-[''] after:absolute after:block after:z-10 after:h-full before:content-[''] before:absolute
|
|
11
|
-
before:block before:z-10 before:h-full before:
|
|
11
|
+
before:block before:z-10 before:h-full before:end-0 after:shadow-[10px_0_50px_65px_rgba(256,256,256,1)]
|
|
12
12
|
before:shadow-[-10px_0_50px_65px_rgba(256,256,256,1)] dark:after:shadow-[10px_0_50px_65px_rgba(16,24,39,1)]
|
|
13
13
|
dark:before:shadow-[-10px_0_50px_65px_rgba(16,24,39,1)]`;
|
|
14
|
-
let divCls = twMerge(
|
|
14
|
+
let divCls = twMerge('relative flex overflow-hidden w-[100%]', shadow ? shadowClass : '', $$props.class);
|
|
15
15
|
onMount(() => {
|
|
16
16
|
intervalId = setInterval(() => {
|
|
17
17
|
if (marquee && Math.abs(offset) >= marquee.offsetWidth) {
|
|
@@ -29,15 +29,8 @@ onDestroy(() => intervalId);
|
|
|
29
29
|
</script>
|
|
30
30
|
|
|
31
31
|
<!-- svelte-ignore a11y-mouse-events-have-key-events -->
|
|
32
|
-
<div
|
|
33
|
-
class={
|
|
34
|
-
role="banner"
|
|
35
|
-
on:mouseover={() => (isHovering = true)}
|
|
36
|
-
on:mouseleave={() => (isHovering = false)}>
|
|
37
|
-
<div
|
|
38
|
-
class="flex justify-around items-center min-w-[100%]"
|
|
39
|
-
style="transform: {`translateX(${offset}px)`}"
|
|
40
|
-
bind:this={marquee}>
|
|
32
|
+
<div class={divCls} role="banner" on:mouseover={() => (isHovering = true)} on:mouseleave={() => (isHovering = false)}>
|
|
33
|
+
<div class="flex justify-around items-center min-w-[100%]" style="transform: {`translateX(${offset}px)`}" bind:this={marquee}>
|
|
41
34
|
<slot />
|
|
42
35
|
</div>
|
|
43
36
|
<div class="flex justify-around items-center min-w-[100%]" style="transform: {`translateX(${offset}px)`}">
|
package/dist/modal/Modal.svelte
CHANGED
|
@@ -12,7 +12,7 @@ export let dismissable = true;
|
|
|
12
12
|
export let backdropClass = 'fixed inset-0 z-40 bg-gray-900 bg-opacity-50 dark:bg-opacity-80';
|
|
13
13
|
export let defaultClass = 'relative flex flex-col mx-auto';
|
|
14
14
|
export let outsideclose = false;
|
|
15
|
-
export let dialogClass = 'fixed top-0
|
|
15
|
+
export let dialogClass = 'fixed top-0 start-0 end-0 h-modal md:inset-0 md:h-full z-50 w-full p-4 flex';
|
|
16
16
|
const dispatch = createEventDispatcher();
|
|
17
17
|
$: dispatch(open ? 'open' : 'close');
|
|
18
18
|
function prepareFocus(node) {
|
|
@@ -66,6 +66,9 @@ const onAutoClose = (e) => {
|
|
|
66
66
|
const target = e.target;
|
|
67
67
|
if (autoclose && target?.tagName === 'BUTTON')
|
|
68
68
|
hide(e); // close on any button click
|
|
69
|
+
};
|
|
70
|
+
const onOutsideClose = (e) => {
|
|
71
|
+
const target = e.target;
|
|
69
72
|
if (outsideclose && target === e.currentTarget)
|
|
70
73
|
hide(e); // close on click outside
|
|
71
74
|
};
|
|
@@ -88,13 +91,14 @@ function handleKeys(e) {
|
|
|
88
91
|
<div class={backdropCls} />
|
|
89
92
|
<!-- dialog -->
|
|
90
93
|
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
|
|
91
|
-
<div on:keydown={handleKeys} on:wheel|preventDefault|nonpassive use:prepareFocus use:focusTrap on:click={onAutoClose} class={twMerge(dialogClass, $$props.classDialog, ...getPlacementClasses())} tabindex="-1" aria-modal="true" role="dialog">
|
|
94
|
+
<div on:keydown={handleKeys} on:wheel|preventDefault|nonpassive use:prepareFocus use:focusTrap on:click={onAutoClose} on:mousedown={onOutsideClose} class={twMerge(dialogClass, $$props.classDialog, ...getPlacementClasses())} tabindex="-1" aria-modal="true" role="dialog">
|
|
92
95
|
<div class="flex relative {sizes[size]} w-full max-h-full">
|
|
93
96
|
<!-- Modal content -->
|
|
97
|
+
|
|
94
98
|
<Frame rounded shadow {...$$restProps} class={frameClass}>
|
|
95
99
|
<!-- Modal header -->
|
|
96
100
|
{#if $$slots.header || title}
|
|
97
|
-
<Frame color={$$restProps.color} class="flex justify-between items-center p-4 rounded-t">
|
|
101
|
+
<Frame color={$$restProps.color} class="flex justify-between items-center p-4 rounded-t-lg">
|
|
98
102
|
<slot name="header">
|
|
99
103
|
<h3 class="text-xl font-semibold {$$restProps.color ? '' : 'text-gray-900 dark:text-white'} p-0">
|
|
100
104
|
{title}
|
|
@@ -102,16 +106,17 @@ function handleKeys(e) {
|
|
|
102
106
|
</slot>
|
|
103
107
|
{#if dismissable}<CloseButton name="Close modal" on:click={hide} color={$$restProps.color} />{/if}
|
|
104
108
|
</Frame>
|
|
105
|
-
{:else if dismissable}
|
|
106
|
-
<CloseButton name="Close modal" class="absolute top-3 right-2.5" on:click={hide} color={$$restProps.color} />
|
|
107
109
|
{/if}
|
|
108
110
|
<!-- Modal body -->
|
|
109
111
|
<div class={twMerge('p-6 space-y-6 flex-1 overflow-y-auto overscroll-contain', $$props.bodyClass)} on:keydown|stopPropagation={handleKeys} role="document" on:wheel|stopPropagation|passive>
|
|
112
|
+
{#if dismissable && !$$slots.header && !title}
|
|
113
|
+
<CloseButton name="Close modal" class="absolute top-3 end-2.5" on:click={hide} color={$$restProps.color} />
|
|
114
|
+
{/if}
|
|
110
115
|
<slot />
|
|
111
116
|
</div>
|
|
112
117
|
<!-- Modal footer -->
|
|
113
118
|
{#if $$slots.footer}
|
|
114
|
-
<Frame color={$$restProps.color} class="flex items-center p-6 space-x-2 rounded-b">
|
|
119
|
+
<Frame color={$$restProps.color} class="flex items-center p-6 space-x-2 rtl:space-x-reverse rounded-b-lg">
|
|
115
120
|
<slot name="footer" />
|
|
116
121
|
</Frame>
|
|
117
122
|
{/if}
|
|
@@ -133,5 +138,5 @@ function handleKeys(e) {
|
|
|
133
138
|
@prop export let backdropClass: string = 'fixed inset-0 z-40 bg-gray-900 bg-opacity-50 dark:bg-opacity-80';
|
|
134
139
|
@prop export let defaultClass: string = 'relative flex flex-col mx-auto';
|
|
135
140
|
@prop export let outsideclose: boolean = false;
|
|
136
|
-
@prop export let dialogClass: string = 'fixed top-0
|
|
141
|
+
@prop export let dialogClass: string = 'fixed top-0 start-0 end-0 h-modal md:inset-0 md:h-full z-50 w-full p-4 flex';
|
|
137
142
|
-->
|
|
@@ -53,7 +53,7 @@ export type ModalSlots = typeof __propDef.slots;
|
|
|
53
53
|
* @prop export let backdropClass: string = 'fixed inset-0 z-40 bg-gray-900 bg-opacity-50 dark:bg-opacity-80';
|
|
54
54
|
* @prop export let defaultClass: string = 'relative flex flex-col mx-auto';
|
|
55
55
|
* @prop export let outsideclose: boolean = false;
|
|
56
|
-
* @prop export let dialogClass: string = 'fixed top-0
|
|
56
|
+
* @prop export let dialogClass: string = 'fixed top-0 start-0 end-0 h-modal md:inset-0 md:h-full z-50 w-full p-4 flex';
|
|
57
57
|
*/
|
|
58
58
|
export default class Modal extends SvelteComponent<ModalProps, ModalEvents, ModalSlots> {
|
|
59
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/modal/Modal.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AAMD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/modal/Modal.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AAMD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAmKnD,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;CACtF"}
|
|
@@ -5,7 +5,7 @@ import ToolbarButton from '../toolbar/ToolbarButton.svelte';
|
|
|
5
5
|
import Menu from './Menu.svelte';
|
|
6
6
|
export let menuClass = 'h-6 w-6 shrink-0';
|
|
7
7
|
export let onClick = undefined;
|
|
8
|
-
let btnClass = '
|
|
8
|
+
let btnClass = 'ms-3 md:hidden';
|
|
9
9
|
let hiddenStore = getContext('navHidden') ?? writable(true);
|
|
10
10
|
const toggle = (ev) => hiddenStore.update((h) => !h);
|
|
11
11
|
</script>
|
package/dist/navbar/NavLi.svelte
CHANGED
|
@@ -10,7 +10,7 @@ activeUrlStore.subscribe((value) => {
|
|
|
10
10
|
navUrl = value;
|
|
11
11
|
});
|
|
12
12
|
$: active = navUrl ? href === navUrl : false;
|
|
13
|
-
$: liClass = twMerge('block py-2
|
|
13
|
+
$: liClass = twMerge('block py-2 pe-4 ps-3 md:p-0 rounded md:border-0', active ? activeClass ?? context.activeClass : nonActiveClass ?? context.nonActiveClass, $$props.class);
|
|
14
14
|
// $: console.log()
|
|
15
15
|
</script>
|
|
16
16
|
|
package/dist/navbar/NavUl.svelte
CHANGED
|
@@ -10,7 +10,7 @@ import Frame from '../utils/Frame.svelte';
|
|
|
10
10
|
const activeUrlStore = writable('');
|
|
11
11
|
export let activeUrl = '';
|
|
12
12
|
export let divClass = 'w-full md:block md:w-auto';
|
|
13
|
-
export let ulClass = 'flex flex-col p-4 mt-4 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium';
|
|
13
|
+
export let ulClass = 'flex flex-col p-4 mt-4 md:flex-row md:space-x-8 rtl:space-x-reverse md:mt-0 md:text-sm md:font-medium';
|
|
14
14
|
export let hidden = undefined;
|
|
15
15
|
export let slideParams = { delay: 250, duration: 500, easing: quintOut };
|
|
16
16
|
export let activeClass = 'text-white bg-primary-700 md:bg-transparent md:text-primary-700 md:dark:text-white dark:bg-primary-600 md:dark:bg-transparent';
|
|
@@ -51,7 +51,7 @@ $$props.classUl);
|
|
|
51
51
|
## Props
|
|
52
52
|
@prop export let activeUrl: string = '';
|
|
53
53
|
@prop export let divClass: string = 'w-full md:block md:w-auto';
|
|
54
|
-
@prop export let ulClass: string = 'flex flex-col p-4 mt-4 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium';
|
|
54
|
+
@prop export let ulClass: string = 'flex flex-col p-4 mt-4 md:flex-row md:space-x-8 rtl:space-x-reverse md:mt-0 md:text-sm md:font-medium';
|
|
55
55
|
@prop export let hidden: boolean | undefined = undefined;
|
|
56
56
|
@prop export let slideParams: SlideParams = { delay: 250, duration: 500, easing: quintOut };
|
|
57
57
|
@prop export let activeClass: string = 'text-white bg-primary-700 md:bg-transparent md:text-primary-700 md:dark:text-white dark:bg-primary-600 md:dark:bg-transparent';
|
|
@@ -32,7 +32,7 @@ export type NavUlSlots = typeof __propDef.slots;
|
|
|
32
32
|
* ## Props
|
|
33
33
|
* @prop export let activeUrl: string = '';
|
|
34
34
|
* @prop export let divClass: string = 'w-full md:block md:w-auto';
|
|
35
|
-
* @prop export let ulClass: string = 'flex flex-col p-4 mt-4 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium';
|
|
35
|
+
* @prop export let ulClass: string = 'flex flex-col p-4 mt-4 md:flex-row md:space-x-8 rtl:space-x-reverse md:mt-0 md:text-sm md:font-medium';
|
|
36
36
|
* @prop export let hidden: boolean | undefined = undefined;
|
|
37
37
|
* @prop export let slideParams: SlideParams = { delay: 250, duration: 500, easing: quintOut };
|
|
38
38
|
* @prop export let activeClass: string = 'text-white bg-primary-700 md:bg-transparent md:text-primary-700 md:dark:text-white dark:bg-primary-600 md:dark:bg-transparent';
|
|
@@ -4,7 +4,7 @@ import PaginationItem from './PaginationItem.svelte';
|
|
|
4
4
|
export let pages = [];
|
|
5
5
|
export let activeClass = 'text-blue-600 border border-gray-300 bg-blue-50 hover:bg-blue-100 hover:text-blue-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white';
|
|
6
6
|
export let normalClass = 'text-gray-500 bg-white hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white';
|
|
7
|
-
export let ulClass = 'inline-flex -space-x-px items-center';
|
|
7
|
+
export let ulClass = 'inline-flex -space-x-px rtl:space-x-reverse items-center';
|
|
8
8
|
export let table = false;
|
|
9
9
|
export let large = false;
|
|
10
10
|
export let ariaLabel = 'Page navigation';
|
|
@@ -20,9 +20,9 @@ const next = () => {
|
|
|
20
20
|
</script>
|
|
21
21
|
|
|
22
22
|
<nav aria-label={ariaLabel}>
|
|
23
|
-
<ul class={twMerge(ulClass, table && 'divide-x dark divide-gray-700 dark:divide-gray-700', $$props.class)}>
|
|
23
|
+
<ul class={twMerge(ulClass, table && 'divide-x rtl:divide-x-reverse dark divide-gray-700 dark:divide-gray-700', $$props.class)}>
|
|
24
24
|
<li>
|
|
25
|
-
<PaginationItem {large} on:click={previous} {normalClass} class={table ? 'rounded-l' : 'rounded-
|
|
25
|
+
<PaginationItem {large} on:click={previous} {normalClass} class={table ? 'rounded-l' : 'rounded-s-lg'}>
|
|
26
26
|
<slot name="prev">Previous</slot>
|
|
27
27
|
</PaginationItem>
|
|
28
28
|
</li>
|
|
@@ -34,7 +34,7 @@ const next = () => {
|
|
|
34
34
|
</li>
|
|
35
35
|
{/each}
|
|
36
36
|
<li>
|
|
37
|
-
<PaginationItem {large} on:click={next} {normalClass} class={table ? 'rounded-r' : 'rounded-
|
|
37
|
+
<PaginationItem {large} on:click={next} {normalClass} class={table ? 'rounded-r' : 'rounded-e-lg'}>
|
|
38
38
|
<slot name="next">Next</slot>
|
|
39
39
|
</PaginationItem>
|
|
40
40
|
</li>
|
|
@@ -48,7 +48,7 @@ const next = () => {
|
|
|
48
48
|
@prop export let pages: LinkType[] = [];
|
|
49
49
|
@prop export let activeClass: string = 'text-blue-600 border border-gray-300 bg-blue-50 hover:bg-blue-100 hover:text-blue-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white';
|
|
50
50
|
@prop export let normalClass: string = 'text-gray-500 bg-white hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white';
|
|
51
|
-
@prop export let ulClass: string = 'inline-flex -space-x-px items-center';
|
|
51
|
+
@prop export let ulClass: string = 'inline-flex -space-x-px rtl:space-x-reverse items-center';
|
|
52
52
|
@prop export let table: boolean = false;
|
|
53
53
|
@prop export let large: boolean = false;
|
|
54
54
|
@prop export let ariaLabel: string = 'Page navigation';
|
|
@@ -41,7 +41,7 @@ export type PaginationSlots = typeof __propDef.slots;
|
|
|
41
41
|
* @prop export let pages: LinkType[] = [];
|
|
42
42
|
* @prop export let activeClass: string = 'text-blue-600 border border-gray-300 bg-blue-50 hover:bg-blue-100 hover:text-blue-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white';
|
|
43
43
|
* @prop export let normalClass: string = 'text-gray-500 bg-white hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white';
|
|
44
|
-
* @prop export let ulClass: string = 'inline-flex -space-x-px items-center';
|
|
44
|
+
* @prop export let ulClass: string = 'inline-flex -space-x-px rtl:space-x-reverse items-center';
|
|
45
45
|
* @prop export let table: boolean = false;
|
|
46
46
|
* @prop export let large: boolean = false;
|
|
47
47
|
* @prop export let ariaLabel: string = 'Page navigation';
|
|
@@ -21,7 +21,7 @@ let grayStars = total - (fullStars + Math.ceil(rateDiffence));
|
|
|
21
21
|
<div class={twMerge(divClass, $$props.class)}>
|
|
22
22
|
{#if count}
|
|
23
23
|
<svelte:component this={icon} fillPercent={100} {size} />
|
|
24
|
-
<p class="
|
|
24
|
+
<p class="ms-2 text-sm font-bold text-gray-900 dark:text-white">{rating}</p>
|
|
25
25
|
<slot />
|
|
26
26
|
{:else}
|
|
27
27
|
{#each Array(fullStars) as star}
|
|
@@ -10,7 +10,7 @@ let grayStars = comment.total - roundedRating;
|
|
|
10
10
|
</script>
|
|
11
11
|
|
|
12
12
|
<article>
|
|
13
|
-
<div class="flex items-center mb-4 space-x-4">
|
|
13
|
+
<div class="flex items-center mb-4 space-x-4 rtl:space-x-reverse">
|
|
14
14
|
<img class="w-10 h-10 rounded-full" src={comment.user.img.src} alt={comment.user.img.alt} />
|
|
15
15
|
<div class="space-y-1 font-medium dark:text-white">
|
|
16
16
|
<p>
|
|
@@ -23,12 +23,12 @@ let grayStars = comment.total - roundedRating;
|
|
|
23
23
|
</div>
|
|
24
24
|
<div class="flex items-center mb-1">
|
|
25
25
|
<Rating total={comment.total} rating={comment.rating}>
|
|
26
|
-
<p slot="text" class="
|
|
26
|
+
<p slot="text" class="ms-2 text-sm font-medium text-gray-500 dark:text-gray-400">
|
|
27
27
|
{comment.rating} out of {comment.total}
|
|
28
28
|
</p>
|
|
29
29
|
</Rating>
|
|
30
30
|
{#if comment.heading}
|
|
31
|
-
<h3 class="
|
|
31
|
+
<h3 class="ms-2 text-sm font-semibold text-gray-900 dark:text-white">
|
|
32
32
|
{comment.heading}
|
|
33
33
|
</h3>
|
|
34
34
|
{/if}
|
|
@@ -44,12 +44,12 @@ let grayStars = comment.total - roundedRating;
|
|
|
44
44
|
<slot name="evaluation" />
|
|
45
45
|
</p>
|
|
46
46
|
{#if helpfullink || abuselink}
|
|
47
|
-
<div class="flex items-center mt-3 space-x-3 divide-x divide-gray-200 dark:divide-gray-600">
|
|
47
|
+
<div class="flex items-center mt-3 space-x-3 rtl:space-x-reverse divide-x rtl:divide-x-reverse divide-gray-200 dark:divide-gray-600">
|
|
48
48
|
{#if helpfullink}
|
|
49
49
|
<Button size="xs" href="/" color="dark">Helpful</Button>
|
|
50
50
|
{/if}
|
|
51
51
|
{#if abuselink}
|
|
52
|
-
<a href={abuselink} class="
|
|
52
|
+
<a href={abuselink} class="ps-4 text-sm font-medium text-primary-600 hover:underline dark:text-primary-500"> Report abuse </a>
|
|
53
53
|
{/if}
|
|
54
54
|
</div>
|
|
55
55
|
{/if}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script>import { twMerge } from 'tailwind-merge';
|
|
2
2
|
export let review;
|
|
3
3
|
export let articleClass = 'md:gap-8 md:grid md:grid-cols-3';
|
|
4
|
-
export let divClass = 'flex items-center mb-6 space-x-4';
|
|
4
|
+
export let divClass = 'flex items-center mb-6 space-x-4 rtl:space-x-reverse';
|
|
5
5
|
export let imgClass = 'w-10 h-10 rounded-full';
|
|
6
6
|
export let ulClass = 'space-y-4 text-sm text-gray-500 dark:text-gray-400';
|
|
7
7
|
export let liClass = 'flex items-center';
|
|
@@ -42,7 +42,7 @@ export let liClass = 'flex items-center';
|
|
|
42
42
|
</div>
|
|
43
43
|
<div class="col-span-2 mt-6 md:mt-0">
|
|
44
44
|
<div class="flex items-start mb-5">
|
|
45
|
-
<div class="
|
|
45
|
+
<div class="pe-4">
|
|
46
46
|
{#if review.reviewDate}
|
|
47
47
|
<footer>
|
|
48
48
|
<p class="mb-2 text-sm text-gray-500 dark:text-gray-400">
|
|
@@ -68,7 +68,7 @@ export let liClass = 'flex items-center';
|
|
|
68
68
|
## Props
|
|
69
69
|
@prop export let review: ReviewType;
|
|
70
70
|
@prop export let articleClass: string = 'md:gap-8 md:grid md:grid-cols-3';
|
|
71
|
-
@prop export let divClass: string = 'flex items-center mb-6 space-x-4';
|
|
71
|
+
@prop export let divClass: string = 'flex items-center mb-6 space-x-4 rtl:space-x-reverse';
|
|
72
72
|
@prop export let imgClass: string = 'w-10 h-10 rounded-full';
|
|
73
73
|
@prop export let ulClass: string = 'space-y-4 text-sm text-gray-500 dark:text-gray-400';
|
|
74
74
|
@prop export let liClass: string = 'flex items-center';
|