negodesign 0.0.26 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/assets/placeholder-company.png +0 -0
  2. package/dist/assets/placeholder-image.png +0 -0
  3. package/dist/components/core/breadcrumb/breadcrumb-list.svelte +31 -31
  4. package/dist/components/core/button/ButtonBack.svelte +18 -18
  5. package/dist/components/core/button/ButtonLogin.svelte +15 -15
  6. package/dist/components/core/button/ButtonLoginWith.svelte +57 -57
  7. package/dist/components/core/button/ButtonSend.svelte +15 -15
  8. package/dist/components/core/card/highlight/01/CardHighlight01.svelte +110 -91
  9. package/dist/components/core/card/highlight/02/CardHighlight02.svelte +108 -93
  10. package/dist/components/core/card/highlight/CardHighlight.svelte +22 -22
  11. package/dist/components/core/card/highlight/data.js +4 -1
  12. package/dist/components/core/card/media/01/CardMedia01.svelte +111 -111
  13. package/dist/components/core/card/media/02/CardMedia02.svelte +110 -110
  14. package/dist/components/core/card/media/CardMedia.svelte +17 -17
  15. package/dist/components/core/card/profile/01/CardProfile01.svelte +98 -98
  16. package/dist/components/core/card/profile/02/CardProfile02.svelte +98 -98
  17. package/dist/components/core/card/profile/CardProfile.svelte +17 -17
  18. package/dist/components/core/card/promotion/CardPromotion.svelte +133 -112
  19. package/dist/components/core/card/shared/CardButton.svelte +30 -30
  20. package/dist/components/core/card/shared/CardCart.svelte +36 -36
  21. package/dist/components/core/card/shared/CardDescription.svelte +38 -38
  22. package/dist/components/core/card/shared/CardFavorite.svelte +33 -33
  23. package/dist/components/core/card/shared/CardStarRating.svelte +20 -20
  24. package/dist/components/core/card/shared/CardStartPrice.svelte +32 -34
  25. package/dist/components/core/card/shared/CardTags.svelte +70 -73
  26. package/dist/components/core/card/shared/CardThumbnailVideo.svelte +169 -169
  27. package/dist/components/core/card/shared/TruncatableText.svelte +55 -55
  28. package/dist/components/core/carousel/badge/ui/CarouselBadge.svelte +82 -83
  29. package/dist/components/core/carousel/hero/CarouselHero.svelte +158 -158
  30. package/dist/components/core/carousel/highlights/ui/CarouselHighlights.svelte +65 -63
  31. package/dist/components/core/carousel/promotion/ui/CarouselPromotion.svelte +64 -64
  32. package/dist/components/core/carousel/shared/ui/CarouselHeader.svelte +55 -55
  33. package/dist/components/core/datatable/ui/DataTableActions.svelte +28 -28
  34. package/dist/components/core/datatable/ui/DataTableCheckbox.svelte +22 -22
  35. package/dist/components/core/datatable/ui/DataTableContent.svelte +59 -59
  36. package/dist/components/core/datatable/ui/DataTableCore.svelte +151 -151
  37. package/dist/components/core/datatable/ui/DataTableDragHandle.svelte +8 -8
  38. package/dist/components/core/datatable/ui/DataTableListFilter.svelte +59 -59
  39. package/dist/components/core/datatable/ui/DataTableListPagination.svelte +35 -35
  40. package/dist/components/core/form/ui/input-base.svelte +81 -81
  41. package/dist/components/core/form/ui/input-email-or-phone.svelte +23 -23
  42. package/dist/components/core/form/ui/input-email.svelte +23 -23
  43. package/dist/components/core/form/ui/input-password-confirm.svelte +23 -23
  44. package/dist/components/core/form/ui/input-password.svelte +23 -23
  45. package/dist/components/core/form/ui/input-phone.svelte +33 -33
  46. package/dist/components/core/form/ui/input-username.svelte +22 -22
  47. package/dist/components/core/hero/SimpleHero.svelte +65 -65
  48. package/dist/components/core/label/LabelOr.svelte +25 -25
  49. package/dist/components/core/link/link-forget-password.svelte +12 -12
  50. package/dist/components/core/link/link-privacy-polity.svelte +12 -12
  51. package/dist/components/core/link/link-terms-of-service.svelte +12 -12
  52. package/dist/components/core/nav/ui/menu-links.svelte +27 -27
  53. package/dist/components/core/nav/ui/mobile/nav-menu-drawer.svelte +85 -85
  54. package/dist/components/core/nav/ui/nav-menu-bottom-sidebar.svelte +33 -33
  55. package/dist/components/core/nav/ui/nav-menu-sidebar.svelte +97 -97
  56. package/dist/components/core/nav/ui/nav-menu-top-bar-sidebar.svelte +103 -103
  57. package/dist/components/core/nav/ui/nav-menu.svelte +106 -106
  58. package/dist/components/core/panel/CarouselSlot.svelte +63 -63
  59. package/dist/components/core/panel/LeftHero.svelte +116 -116
  60. package/dist/components/core/search/SearchInput.svelte +32 -32
  61. package/dist/components/core/search/shared/SearchInputCore.svelte +66 -66
  62. package/dist/components/core/sidebar/MenuBarSidebar.svelte +70 -70
  63. package/dist/components/core/tabs/ui/tab-underline.svelte +43 -43
  64. package/dist/components/pages/admin/01/ui/AdminContent.svelte +14 -14
  65. package/dist/components/pages/admin/01/ui/AdminPanel.svelte +46 -46
  66. package/dist/components/pages/security/login/01/ui/FormRegister.svelte +28 -28
  67. package/dist/components/pages/security/login/01/ui/LoginCard.svelte +107 -107
  68. package/dist/components/pages/security/login/PageLogin.svelte +22 -22
  69. package/dist/components/ui/badge/badge.svelte +49 -49
  70. package/dist/components/ui/button/button.svelte +82 -82
  71. package/dist/components/ui/chart/chart-container.svelte +80 -80
  72. package/dist/components/ui/chart/chart-style.svelte +37 -37
  73. package/dist/components/ui/chart/chart-tooltip.svelte +184 -184
  74. package/dist/components/ui/checkbox/checkbox.svelte +40 -40
  75. package/dist/components/ui/data-table/flex-render.svelte +40 -40
  76. package/dist/components/ui/drawer/drawer-close.svelte +7 -7
  77. package/dist/components/ui/drawer/drawer-content.svelte +33 -33
  78. package/dist/components/ui/drawer/drawer-description.svelte +17 -17
  79. package/dist/components/ui/drawer/drawer-footer.svelte +20 -20
  80. package/dist/components/ui/drawer/drawer-header.svelte +20 -20
  81. package/dist/components/ui/drawer/drawer-nested.svelte +12 -12
  82. package/dist/components/ui/drawer/drawer-overlay.svelte +17 -17
  83. package/dist/components/ui/drawer/drawer-portal.svelte +7 -7
  84. package/dist/components/ui/drawer/drawer-title.svelte +17 -17
  85. package/dist/components/ui/drawer/drawer-trigger.svelte +7 -7
  86. package/dist/components/ui/drawer/drawer.svelte +12 -12
  87. package/dist/components/ui/select/select-content.svelte +45 -45
  88. package/dist/components/ui/select/select-group-heading.svelte +21 -21
  89. package/dist/components/ui/select/select-group.svelte +17 -17
  90. package/dist/components/ui/select/select-item.svelte +41 -41
  91. package/dist/components/ui/select/select-label.svelte +20 -20
  92. package/dist/components/ui/select/select-portal.svelte +7 -7
  93. package/dist/components/ui/select/select-scroll-down-button.svelte +21 -21
  94. package/dist/components/ui/select/select-scroll-up-button.svelte +21 -21
  95. package/dist/components/ui/select/select-separator.svelte +18 -18
  96. package/dist/components/ui/select/select-trigger.svelte +30 -30
  97. package/dist/components/ui/select/select.svelte +11 -11
  98. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -39
  99. package/dist/components/ui/star-rating/star-rating-star.svelte +41 -41
  100. package/dist/components/ui/star-rating/star-rating.svelte +20 -20
  101. package/dist/components/ui/table/table-body.svelte +15 -15
  102. package/dist/components/ui/table/table-caption.svelte +20 -20
  103. package/dist/components/ui/table/table-cell.svelte +15 -15
  104. package/dist/components/ui/table/table-footer.svelte +20 -20
  105. package/dist/components/ui/table/table-head.svelte +15 -15
  106. package/dist/components/ui/table/table-header.svelte +20 -20
  107. package/dist/components/ui/table/table-row.svelte +15 -15
  108. package/dist/components/ui/table/table.svelte +17 -17
  109. package/dist/components/ui/tabs/tabs-content.svelte +17 -17
  110. package/dist/components/ui/tabs/tabs-list.svelte +40 -40
  111. package/dist/components/ui/tabs/tabs-trigger.svelte +23 -23
  112. package/dist/components/ui/tabs/tabs.svelte +19 -19
  113. package/dist/globals.css +8 -38
  114. package/dist/styles/globals.css +149 -149
  115. package/package.json +113 -113
@@ -1,103 +1,103 @@
1
- <script lang="ts">
2
- import * as DropdownMenu from "../../../ui/dropdown-menu/index.js";
3
- import * as Sidebar from "../../../ui/sidebar/index.js";
4
- import { useSidebar } from "../../../ui/sidebar/index.js";
5
- import type { NavTopBarSidebarItem } from "../data/nav-top-bar-sidebar";
6
- import { HugeiconsIcon } from "@hugeicons/svelte";
7
- import { UnfoldMoreIcon } from "@hugeicons/core-free-icons";
8
-
9
- // This should be `Component` after @lucide/svelte updates types
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- let { content, dropdownMenu }: NavTopBarSidebarItem = $props();
12
- const sidebar = useSidebar();
13
- </script>
14
-
15
- <Sidebar.Menu>
16
- <Sidebar.MenuItem>
17
- <DropdownMenu.Root>
18
- <DropdownMenu.Trigger>
19
- {#snippet child({ props })}
20
- <Sidebar.MenuButton
21
- {...props}
22
- size="lg"
23
- class="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
24
- >
25
- <div
26
- class="bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg"
27
- >
28
- <content.logo class="size-4" />
29
- </div>
30
- <div
31
- class="grid flex-1 text-start text-sm leading-tight"
32
- >
33
- <span class="truncate font-medium">
34
- {content.title}
35
- </span>
36
- <span class="truncate text-xs"
37
- >{content.subtitle}</span
38
- >
39
- </div>
40
- {#if dropdownMenu}
41
- <HugeiconsIcon
42
- icon={UnfoldMoreIcon}
43
- class="ms-auto"
44
- />
45
- {/if}
46
- </Sidebar.MenuButton>
47
- {/snippet}
48
- </DropdownMenu.Trigger>
49
- {#if dropdownMenu}
50
- <DropdownMenu.Content
51
- class="w-(--bits-dropdown-menu-anchor-width) min-w-56 rounded-lg"
52
- align="start"
53
- side={sidebar.isMobile ? "bottom" : "right"}
54
- sideOffset={4}
55
- >
56
- {#if dropdownMenu.header}
57
- <DropdownMenu.Label
58
- class="text-muted-foreground text-xs"
59
- >
60
- {#if dropdownMenu.header.icon}
61
- <dropdownMenu.header.icon
62
- class="size-3.5 shrink-0"
63
- />
64
- {/if}
65
- {dropdownMenu.header.text}
66
- </DropdownMenu.Label>
67
- {/if}
68
- {#each dropdownMenu.items as it, index (index)}
69
- <DropdownMenu.Item
70
- onSelect={it.onclick}
71
- class="gap-2 p-2"
72
- >
73
- <div
74
- class="flex size-6 items-center justify-center rounded-md border"
75
- >
76
- <it.icon class="size-3.5 shrink-0" />
77
- </div>
78
- {it.text}
79
- <DropdownMenu.Shortcut>
80
- ⌘{index + 1}
81
- </DropdownMenu.Shortcut>
82
- </DropdownMenu.Item>
83
- {/each}
84
- {#if dropdownMenu.footer}
85
- <DropdownMenu.Separator />
86
- <DropdownMenu.Item class="gap-2 p-2">
87
- <div
88
- class="flex size-6 items-center justify-center rounded-md border bg-transparent"
89
- >
90
- {#if dropdownMenu.footer.icon}
91
- <dropdownMenu.footer.icon class="size-4" />
92
- {/if}
93
- </div>
94
- <div class="text-muted-foreground font-medium">
95
- {dropdownMenu.footer.text}
96
- </div>
97
- </DropdownMenu.Item>
98
- {/if}
99
- </DropdownMenu.Content>
100
- {/if}
101
- </DropdownMenu.Root>
102
- </Sidebar.MenuItem>
103
- </Sidebar.Menu>
1
+ <script lang="ts">
2
+ import * as DropdownMenu from "../../../ui/dropdown-menu/index.js";
3
+ import * as Sidebar from "../../../ui/sidebar/index.js";
4
+ import { useSidebar } from "../../../ui/sidebar/index.js";
5
+ import type { NavTopBarSidebarItem } from "../data/nav-top-bar-sidebar";
6
+ import { HugeiconsIcon } from "@hugeicons/svelte";
7
+ import { UnfoldMoreIcon } from "@hugeicons/core-free-icons";
8
+
9
+ // This should be `Component` after @lucide/svelte updates types
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ let { content, dropdownMenu }: NavTopBarSidebarItem = $props();
12
+ const sidebar = useSidebar();
13
+ </script>
14
+
15
+ <Sidebar.Menu>
16
+ <Sidebar.MenuItem>
17
+ <DropdownMenu.Root>
18
+ <DropdownMenu.Trigger>
19
+ {#snippet child({ props })}
20
+ <Sidebar.MenuButton
21
+ {...props}
22
+ size="lg"
23
+ class="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
24
+ >
25
+ <div
26
+ class="bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg"
27
+ >
28
+ <content.logo class="size-4" />
29
+ </div>
30
+ <div
31
+ class="grid flex-1 text-start text-sm leading-tight"
32
+ >
33
+ <span class="truncate font-medium">
34
+ {content.title}
35
+ </span>
36
+ <span class="truncate text-xs"
37
+ >{content.subtitle}</span
38
+ >
39
+ </div>
40
+ {#if dropdownMenu}
41
+ <HugeiconsIcon
42
+ icon={UnfoldMoreIcon}
43
+ class="ms-auto"
44
+ />
45
+ {/if}
46
+ </Sidebar.MenuButton>
47
+ {/snippet}
48
+ </DropdownMenu.Trigger>
49
+ {#if dropdownMenu}
50
+ <DropdownMenu.Content
51
+ class="w-(--bits-dropdown-menu-anchor-width) min-w-56 rounded-lg"
52
+ align="start"
53
+ side={sidebar.isMobile ? "bottom" : "right"}
54
+ sideOffset={4}
55
+ >
56
+ {#if dropdownMenu.header}
57
+ <DropdownMenu.Label
58
+ class="text-muted-foreground text-xs"
59
+ >
60
+ {#if dropdownMenu.header.icon}
61
+ <dropdownMenu.header.icon
62
+ class="size-3.5 shrink-0"
63
+ />
64
+ {/if}
65
+ {dropdownMenu.header.text}
66
+ </DropdownMenu.Label>
67
+ {/if}
68
+ {#each dropdownMenu.items as it, index (index)}
69
+ <DropdownMenu.Item
70
+ onSelect={it.onclick}
71
+ class="gap-2 p-2"
72
+ >
73
+ <div
74
+ class="flex size-6 items-center justify-center rounded-md border"
75
+ >
76
+ <it.icon class="size-3.5 shrink-0" />
77
+ </div>
78
+ {it.text}
79
+ <DropdownMenu.Shortcut>
80
+ ⌘{index + 1}
81
+ </DropdownMenu.Shortcut>
82
+ </DropdownMenu.Item>
83
+ {/each}
84
+ {#if dropdownMenu.footer}
85
+ <DropdownMenu.Separator />
86
+ <DropdownMenu.Item class="gap-2 p-2">
87
+ <div
88
+ class="flex size-6 items-center justify-center rounded-md border bg-transparent"
89
+ >
90
+ {#if dropdownMenu.footer.icon}
91
+ <dropdownMenu.footer.icon class="size-4" />
92
+ {/if}
93
+ </div>
94
+ <div class="text-muted-foreground font-medium">
95
+ {dropdownMenu.footer.text}
96
+ </div>
97
+ </DropdownMenu.Item>
98
+ {/if}
99
+ </DropdownMenu.Content>
100
+ {/if}
101
+ </DropdownMenu.Root>
102
+ </Sidebar.MenuItem>
103
+ </Sidebar.Menu>
@@ -1,106 +1,106 @@
1
- <script lang="ts">
2
- import { Button } from "../../../ui/button/index.js";
3
- import { HugeiconsIcon } from "@hugeicons/svelte";
4
- import type { NavMenuProps } from "../data/nav-menu";
5
- import LightSwitch from "../../../ui/light-switch/light-switch.svelte";
6
- import LanguageSwitcher from "../../../ui/language-switcher/language-switcher.svelte";
7
- import { t } from "../../../../i18n";
8
- import { Login03Icon, User03Icon } from "@hugeicons/core-free-icons";
9
- import { useDevice } from "../../../../hooks/responsive.svelte";
10
- import NavMenuDrawer from "./mobile/nav-menu-drawer.svelte";
11
- import MenuLinks from "./menu-links.svelte";
12
-
13
- let {
14
- logo,
15
- links,
16
- actions,
17
- navClass = "w-full",
18
- linkClass = "",
19
- groupClass = "",
20
- buttonClass = "",
21
- align = "LINK_SEPARATED_ACTIONS",
22
- isLightSwitch = false,
23
- isLanguageSwitcher = false,
24
- onclickButtonLogin,
25
- onclickButtonRegister,
26
- }: NavMenuProps = $props();
27
-
28
- const responsive = useDevice();
29
- </script>
30
-
31
- {#snippet actionButtons()}
32
- <div class="flex items-center gap-2">
33
- {#if isLightSwitch}
34
- <LightSwitch />
35
- {/if}
36
- {#if isLanguageSwitcher}
37
- <LanguageSwitcher />
38
- {/if}
39
- {#each actions ?? [] as item (item.label)}
40
- <Button
41
- variant={item.type === "LINK" ? "ghost" : "outline"}
42
- class={item.className}
43
- onclick={item.onclick}
44
- >
45
- {#if item.icon}
46
- <HugeiconsIcon icon={item.icon} />
47
- {/if}
48
- {item.label}
49
- </Button>
50
- {/each}
51
- {#if onclickButtonRegister}
52
- <Button
53
- variant="outline"
54
- onclick={onclickButtonRegister}
55
- class={buttonClass}
56
- >
57
- <HugeiconsIcon icon={User03Icon} />
58
- {$t("label.register")}
59
- </Button>
60
- {/if}
61
- {#if onclickButtonLogin}
62
- <Button
63
- variant="outline"
64
- onclick={onclickButtonLogin}
65
- class={buttonClass}
66
- >
67
- <HugeiconsIcon icon={Login03Icon} />
68
- {$t("label.login")}
69
- </Button>
70
- {/if}
71
- </div>
72
- {/snippet}
73
-
74
- <nav
75
- class={`flex items-center justify-between container py-5 md:px-5 ${navClass}`}
76
- >
77
- {#if logo}
78
- <div>
79
- {#if logo.img}
80
- <img
81
- src={logo.img}
82
- alt="logo of site"
83
- class={`max-h-50 ${logo.className}`}
84
- />
85
- {:else if logo.label}
86
- <span class={logo.className}>{logo.label}</span>
87
- {/if}
88
- </div>
89
- {:else}
90
- <div>
91
- <span class="hidden">Logo</span>
92
- </div>
93
- {/if}
94
-
95
- {#if responsive.isMobile}
96
- <NavMenuDrawer {links} {onclickButtonLogin} {onclickButtonRegister} />
97
- {:else if align === "LINK_SEPARATED_ACTIONS"}
98
- <MenuLinks {links} {linkClass} {groupClass} orientation="horizontal" />
99
- {@render actionButtons()}
100
- {:else if align === "LINK_INTO_ACTIONS"}
101
- <div class="flex items-center gap-2">
102
- <MenuLinks {links} {linkClass} {groupClass} orientation="vertical" />
103
- {@render actionButtons()}
104
- </div>
105
- {/if}
106
- </nav>
1
+ <script lang="ts">
2
+ import { Button } from "../../../ui/button/index.js";
3
+ import { HugeiconsIcon } from "@hugeicons/svelte";
4
+ import type { NavMenuProps } from "../data/nav-menu";
5
+ import LightSwitch from "../../../ui/light-switch/light-switch.svelte";
6
+ import LanguageSwitcher from "../../../ui/language-switcher/language-switcher.svelte";
7
+ import { t } from "../../../../i18n";
8
+ import { Login03Icon, User03Icon } from "@hugeicons/core-free-icons";
9
+ import { useDevice } from "../../../../hooks/responsive.svelte";
10
+ import NavMenuDrawer from "./mobile/nav-menu-drawer.svelte";
11
+ import MenuLinks from "./menu-links.svelte";
12
+
13
+ let {
14
+ logo,
15
+ links,
16
+ actions,
17
+ navClass = "w-full",
18
+ linkClass = "",
19
+ groupClass = "",
20
+ buttonClass = "",
21
+ align = "LINK_SEPARATED_ACTIONS",
22
+ isLightSwitch = false,
23
+ isLanguageSwitcher = false,
24
+ onclickButtonLogin,
25
+ onclickButtonRegister,
26
+ }: NavMenuProps = $props();
27
+
28
+ const responsive = useDevice();
29
+ </script>
30
+
31
+ {#snippet actionButtons()}
32
+ <div class="flex items-center gap-2">
33
+ {#if isLightSwitch}
34
+ <LightSwitch />
35
+ {/if}
36
+ {#if isLanguageSwitcher}
37
+ <LanguageSwitcher />
38
+ {/if}
39
+ {#each actions ?? [] as item (item.label)}
40
+ <Button
41
+ variant={item.type === "LINK" ? "ghost" : "outline"}
42
+ class={item.className}
43
+ onclick={item.onclick}
44
+ >
45
+ {#if item.icon}
46
+ <HugeiconsIcon icon={item.icon} />
47
+ {/if}
48
+ {item.label}
49
+ </Button>
50
+ {/each}
51
+ {#if onclickButtonRegister}
52
+ <Button
53
+ variant="outline"
54
+ onclick={onclickButtonRegister}
55
+ class={buttonClass}
56
+ >
57
+ <HugeiconsIcon icon={User03Icon} />
58
+ {$t("label.register")}
59
+ </Button>
60
+ {/if}
61
+ {#if onclickButtonLogin}
62
+ <Button
63
+ variant="outline"
64
+ onclick={onclickButtonLogin}
65
+ class={buttonClass}
66
+ >
67
+ <HugeiconsIcon icon={Login03Icon} />
68
+ {$t("label.login")}
69
+ </Button>
70
+ {/if}
71
+ </div>
72
+ {/snippet}
73
+
74
+ <nav
75
+ class={`flex items-center justify-between container py-5 md:px-5 ${navClass}`}
76
+ >
77
+ {#if logo}
78
+ <div>
79
+ {#if logo.img}
80
+ <img
81
+ src={logo.img}
82
+ alt="logo of site"
83
+ class={`max-h-50 ${logo.className}`}
84
+ />
85
+ {:else if logo.label}
86
+ <span class={logo.className}>{logo.label}</span>
87
+ {/if}
88
+ </div>
89
+ {:else}
90
+ <div>
91
+ <span class="hidden">Logo</span>
92
+ </div>
93
+ {/if}
94
+
95
+ {#if responsive.isMobile}
96
+ <NavMenuDrawer {links} {onclickButtonLogin} {onclickButtonRegister} />
97
+ {:else if align === "LINK_SEPARATED_ACTIONS"}
98
+ <MenuLinks {links} {linkClass} {groupClass} orientation="horizontal" />
99
+ {@render actionButtons()}
100
+ {:else if align === "LINK_INTO_ACTIONS"}
101
+ <div class="flex items-center gap-2">
102
+ <MenuLinks {links} {linkClass} {groupClass} orientation="vertical" />
103
+ {@render actionButtons()}
104
+ </div>
105
+ {/if}
106
+ </nav>
@@ -1,63 +1,63 @@
1
- <script lang="ts">
2
- import * as Carousel from "../../ui/carousel/index.js";
3
- import type { Snippet } from "svelte";
4
- import type { CarouselPlugins } from "../../ui/carousel/context.js";
5
-
6
- type Props = {
7
- positionButtonPreviousAndNext?: "center" | "top_right";
8
- buttonPreviousAndNextClass?: string;
9
- isButtonPreviousAndNext?: boolean;
10
- isBorderBottom?: boolean;
11
- containerClass?: string;
12
- plugins?: CarouselPlugins;
13
- children: Snippet;
14
- };
15
-
16
- const {
17
- positionButtonPreviousAndNext = "center",
18
- isButtonPreviousAndNext = true,
19
- buttonPreviousAndNextClass = "",
20
- isBorderBottom = true,
21
- containerClass = "",
22
- plugins = [],
23
- children,
24
- }: Props = $props();
25
-
26
- const styleTopCenter = "bg-blue-700! text-white! cursor-pointer!";
27
- const styleCenter =
28
- "absolute top-1/2 -translate-y-1/2 mt-0.5 mr-0 z-50 bg-blue-700! text-white! cursor-pointer!";
29
- </script>
30
-
31
- <div
32
- class={`relative py-3 px-2 ${isBorderBottom ? "border-b" : ""} ${containerClass}`}
33
- >
34
- <Carousel.Root {plugins}>
35
- <Carousel.Content
36
- class={positionButtonPreviousAndNext == "top_right" ? "" : "ml-0"}
37
- >
38
- {@render children()}
39
- </Carousel.Content>
40
- {#if positionButtonPreviousAndNext == "center"}
41
- {#if isButtonPreviousAndNext}
42
- <Carousel.Previous
43
- class={`-left-8 ${styleCenter} ${buttonPreviousAndNextClass}`}
44
- />
45
- <Carousel.Next
46
- class={`-right-8 ${styleCenter} ${buttonPreviousAndNextClass}`}
47
- />
48
- {/if}
49
- {/if}
50
- {#if positionButtonPreviousAndNext == "top_right"}
51
- {#if isButtonPreviousAndNext}
52
- <div class="absolute -top-6 right-10 md:right-10 lg:right-12 z-20">
53
- <Carousel.Previous
54
- class={`${styleTopCenter} ${buttonPreviousAndNextClass}`}
55
- />
56
- <Carousel.Next
57
- class={`${styleTopCenter} ${buttonPreviousAndNextClass}`}
58
- />
59
- </div>
60
- {/if}
61
- {/if}
62
- </Carousel.Root>
63
- </div>
1
+ <script lang="ts">
2
+ import * as Carousel from "../../ui/carousel/index.js";
3
+ import type { Snippet } from "svelte";
4
+ import type { CarouselPlugins } from "../../ui/carousel/context.js";
5
+
6
+ type Props = {
7
+ positionButtonPreviousAndNext?: "center" | "top_right";
8
+ buttonPreviousAndNextClass?: string;
9
+ isButtonPreviousAndNext?: boolean;
10
+ isBorderBottom?: boolean;
11
+ containerClass?: string;
12
+ plugins?: CarouselPlugins;
13
+ children: Snippet;
14
+ };
15
+
16
+ const {
17
+ positionButtonPreviousAndNext = "center",
18
+ isButtonPreviousAndNext = true,
19
+ buttonPreviousAndNextClass = "",
20
+ isBorderBottom = true,
21
+ containerClass = "",
22
+ plugins = [],
23
+ children,
24
+ }: Props = $props();
25
+
26
+ const styleTopCenter = "bg-blue-700! text-white! cursor-pointer!";
27
+ const styleCenter =
28
+ "absolute top-1/2 -translate-y-1/2 mt-0.5 mr-0 z-50 bg-blue-700! text-white! cursor-pointer!";
29
+ </script>
30
+
31
+ <div
32
+ class={`relative py-3 px-2 ${isBorderBottom ? "border-b" : ""} ${containerClass}`}
33
+ >
34
+ <Carousel.Root {plugins}>
35
+ <Carousel.Content
36
+ class={positionButtonPreviousAndNext == "top_right" ? "" : "ml-0"}
37
+ >
38
+ {@render children()}
39
+ </Carousel.Content>
40
+ {#if positionButtonPreviousAndNext == "center"}
41
+ {#if isButtonPreviousAndNext}
42
+ <Carousel.Previous
43
+ class={`-left-8 ${styleCenter} ${buttonPreviousAndNextClass}`}
44
+ />
45
+ <Carousel.Next
46
+ class={`-right-8 ${styleCenter} ${buttonPreviousAndNextClass}`}
47
+ />
48
+ {/if}
49
+ {/if}
50
+ {#if positionButtonPreviousAndNext == "top_right"}
51
+ {#if isButtonPreviousAndNext}
52
+ <div class="absolute -top-6 right-10 md:right-10 lg:right-12 z-20">
53
+ <Carousel.Previous
54
+ class={`${styleTopCenter} ${buttonPreviousAndNextClass}`}
55
+ />
56
+ <Carousel.Next
57
+ class={`${styleTopCenter} ${buttonPreviousAndNextClass}`}
58
+ />
59
+ </div>
60
+ {/if}
61
+ {/if}
62
+ </Carousel.Root>
63
+ </div>