flowbite-svelte 1.12.6 → 1.13.0

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 (256) hide show
  1. package/dist/datepicker/theme.js +1 -1
  2. package/dist/dialog/Dialog.svelte +9 -5
  3. package/dist/drawer/Drawer.svelte +49 -12
  4. package/dist/drawer/Drawer.svelte.d.ts +3 -1
  5. package/dist/drawer/DrawerHandle.svelte +33 -0
  6. package/dist/drawer/DrawerHandle.svelte.d.ts +16 -0
  7. package/dist/drawer/Drawerhead.svelte +1 -1
  8. package/dist/drawer/Drawerhead.svelte.d.ts +1 -1
  9. package/dist/drawer/index.d.ts +2 -1
  10. package/dist/drawer/index.js +2 -1
  11. package/dist/drawer/theme.d.ts +72 -0
  12. package/dist/drawer/theme.js +48 -2
  13. package/dist/dropdown/Dropdown.svelte +1 -1
  14. package/dist/dropdown/Dropdown.svelte.d.ts +1 -1
  15. package/dist/dropdown/DropdownDivider.svelte +1 -1
  16. package/dist/dropdown/DropdownDivider.svelte.d.ts +1 -1
  17. package/dist/dropdown/DropdownGroup.svelte +1 -1
  18. package/dist/dropdown/DropdownGroup.svelte.d.ts +1 -1
  19. package/dist/dropdown/DropdownHeader.svelte +1 -1
  20. package/dist/dropdown/DropdownHeader.svelte.d.ts +1 -1
  21. package/dist/dropdown/DropdownItem.svelte +1 -1
  22. package/dist/dropdown/DropdownItem.svelte.d.ts +1 -1
  23. package/dist/footer/Footer.svelte +1 -1
  24. package/dist/footer/Footer.svelte.d.ts +1 -1
  25. package/dist/footer/FooterBrand.svelte +1 -1
  26. package/dist/footer/FooterBrand.svelte.d.ts +1 -1
  27. package/dist/footer/FooterCopyright.svelte +1 -1
  28. package/dist/footer/FooterCopyright.svelte.d.ts +1 -1
  29. package/dist/footer/FooterIcon.svelte +1 -1
  30. package/dist/footer/FooterIcon.svelte.d.ts +1 -1
  31. package/dist/footer/FooterLink.svelte +1 -1
  32. package/dist/footer/FooterLink.svelte.d.ts +1 -1
  33. package/dist/footer/FooterLinkGroup.svelte +1 -1
  34. package/dist/footer/FooterLinkGroup.svelte.d.ts +1 -1
  35. package/dist/forms/checkbox/CheckboxButton.svelte +1 -1
  36. package/dist/forms/checkbox/CheckboxButton.svelte.d.ts +1 -1
  37. package/dist/forms/dropzone/Dropzone.svelte +1 -1
  38. package/dist/forms/dropzone/Dropzone.svelte.d.ts +1 -1
  39. package/dist/forms/fileupload/Fileupload.svelte +1 -1
  40. package/dist/forms/fileupload/Fileupload.svelte.d.ts +1 -1
  41. package/dist/forms/floating-label/FloatingLabelInput.svelte +1 -1
  42. package/dist/forms/floating-label/FloatingLabelInput.svelte.d.ts +1 -1
  43. package/dist/forms/helper/Helper.svelte +1 -1
  44. package/dist/forms/helper/Helper.svelte.d.ts +1 -1
  45. package/dist/forms/input-addon/InputAddon.svelte +1 -1
  46. package/dist/forms/input-addon/InputAddon.svelte.d.ts +1 -1
  47. package/dist/forms/label/Label.svelte +1 -1
  48. package/dist/forms/label/Label.svelte.d.ts +1 -1
  49. package/dist/forms/range/Range.svelte +1 -1
  50. package/dist/forms/range/Range.svelte.d.ts +1 -1
  51. package/dist/forms/search/Search.svelte +1 -1
  52. package/dist/forms/search/Search.svelte.d.ts +1 -1
  53. package/dist/forms/tags/Tags.svelte +1 -1
  54. package/dist/forms/tags/Tags.svelte.d.ts +1 -1
  55. package/dist/forms/textarea/Textarea.svelte +1 -1
  56. package/dist/forms/textarea/Textarea.svelte.d.ts +1 -1
  57. package/dist/forms/timepicker/Timepicker.svelte +1 -1
  58. package/dist/forms/timepicker/Timepicker.svelte.d.ts +1 -1
  59. package/dist/forms/toggle/Toggle.svelte +1 -1
  60. package/dist/forms/toggle/Toggle.svelte.d.ts +1 -1
  61. package/dist/gallery/Gallery.svelte +1 -1
  62. package/dist/gallery/Gallery.svelte.d.ts +1 -1
  63. package/dist/index.d.ts +1 -1
  64. package/dist/index.js +1 -1
  65. package/dist/indicator/Indicator.svelte +1 -1
  66. package/dist/indicator/Indicator.svelte.d.ts +1 -1
  67. package/dist/kbd/Kbd.svelte +1 -1
  68. package/dist/kbd/Kbd.svelte.d.ts +1 -1
  69. package/dist/list-group/Listgroup.svelte +1 -1
  70. package/dist/list-group/Listgroup.svelte.d.ts +1 -1
  71. package/dist/list-group/ListgroupItem.svelte +1 -1
  72. package/dist/list-group/ListgroupItem.svelte.d.ts +1 -1
  73. package/dist/mega-menu/MegaMenu.svelte +1 -1
  74. package/dist/mega-menu/MegaMenu.svelte.d.ts +1 -1
  75. package/dist/modal/Modal.svelte +1 -1
  76. package/dist/modal/Modal.svelte.d.ts +1 -1
  77. package/dist/navbar/Menu.svelte +1 -1
  78. package/dist/navbar/Menu.svelte.d.ts +1 -1
  79. package/dist/navbar/NavBrand.svelte +1 -1
  80. package/dist/navbar/NavBrand.svelte.d.ts +1 -1
  81. package/dist/navbar/NavContainer.svelte +1 -1
  82. package/dist/navbar/NavContainer.svelte.d.ts +1 -1
  83. package/dist/navbar/NavHamburger.svelte +1 -1
  84. package/dist/navbar/NavHamburger.svelte.d.ts +1 -1
  85. package/dist/navbar/NavLi.svelte +1 -1
  86. package/dist/navbar/NavLi.svelte.d.ts +1 -1
  87. package/dist/navbar/NavUl.svelte +1 -1
  88. package/dist/navbar/NavUl.svelte.d.ts +1 -1
  89. package/dist/navbar/Navbar.svelte +1 -1
  90. package/dist/navbar/Navbar.svelte.d.ts +1 -1
  91. package/dist/pagination/Pagination.svelte +1 -1
  92. package/dist/pagination/Pagination.svelte.d.ts +1 -1
  93. package/dist/pagination/PaginationButton.svelte +1 -1
  94. package/dist/pagination/PaginationButton.svelte.d.ts +1 -1
  95. package/dist/pagination/PaginationItem.svelte +1 -1
  96. package/dist/pagination/PaginationItem.svelte.d.ts +1 -1
  97. package/dist/pagination/PaginationNav.svelte +1 -1
  98. package/dist/pagination/PaginationNav.svelte.d.ts +1 -1
  99. package/dist/popover/Popover.svelte +1 -1
  100. package/dist/popover/Popover.svelte.d.ts +1 -1
  101. package/dist/progress/Progressbar.svelte +1 -1
  102. package/dist/progress/Progressbar.svelte.d.ts +1 -1
  103. package/dist/progress/Progressradial.svelte +1 -1
  104. package/dist/progress/Progressradial.svelte.d.ts +1 -1
  105. package/dist/rating/AdvancedRating.svelte +1 -1
  106. package/dist/rating/AdvancedRating.svelte.d.ts +1 -1
  107. package/dist/rating/CustomIcon.svelte +1 -1
  108. package/dist/rating/CustomIcon.svelte.d.ts +1 -1
  109. package/dist/rating/Heart.svelte +1 -1
  110. package/dist/rating/Heart.svelte.d.ts +1 -1
  111. package/dist/rating/Rating.svelte +1 -1
  112. package/dist/rating/Rating.svelte.d.ts +1 -1
  113. package/dist/rating/RatingComment.svelte +1 -1
  114. package/dist/rating/RatingComment.svelte.d.ts +1 -1
  115. package/dist/rating/Review.svelte +1 -1
  116. package/dist/rating/Review.svelte.d.ts +1 -1
  117. package/dist/rating/ScoreRating.svelte +1 -1
  118. package/dist/rating/ScoreRating.svelte.d.ts +1 -1
  119. package/dist/rating/Star.svelte +1 -1
  120. package/dist/rating/Star.svelte.d.ts +1 -1
  121. package/dist/rating/Thumbup.svelte +1 -1
  122. package/dist/rating/Thumbup.svelte.d.ts +1 -1
  123. package/dist/sidebar/Sidebar.svelte +1 -1
  124. package/dist/sidebar/Sidebar.svelte.d.ts +1 -1
  125. package/dist/sidebar/SidebarBrand.svelte +1 -1
  126. package/dist/sidebar/SidebarBrand.svelte.d.ts +1 -1
  127. package/dist/sidebar/SidebarButton.svelte +1 -1
  128. package/dist/sidebar/SidebarButton.svelte.d.ts +1 -1
  129. package/dist/sidebar/SidebarCta.svelte +1 -1
  130. package/dist/sidebar/SidebarCta.svelte.d.ts +1 -1
  131. package/dist/sidebar/SidebarDropdownWrapper.svelte +1 -1
  132. package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +1 -1
  133. package/dist/sidebar/SidebarGroup.svelte +1 -1
  134. package/dist/sidebar/SidebarGroup.svelte.d.ts +1 -1
  135. package/dist/sidebar/SidebarItem.svelte +1 -1
  136. package/dist/sidebar/SidebarItem.svelte.d.ts +1 -1
  137. package/dist/skeleton/CardPlaceholder.svelte +1 -1
  138. package/dist/skeleton/CardPlaceholder.svelte.d.ts +1 -1
  139. package/dist/skeleton/ImagePlaceholder.svelte +1 -1
  140. package/dist/skeleton/ImagePlaceholder.svelte.d.ts +1 -1
  141. package/dist/skeleton/ListPlaceholder.svelte +1 -1
  142. package/dist/skeleton/ListPlaceholder.svelte.d.ts +1 -1
  143. package/dist/skeleton/Skeleton.svelte +1 -1
  144. package/dist/skeleton/Skeleton.svelte.d.ts +1 -1
  145. package/dist/skeleton/TestimonialPlaceholder.svelte +1 -1
  146. package/dist/skeleton/TestimonialPlaceholder.svelte.d.ts +1 -1
  147. package/dist/skeleton/TextPlaceholder.svelte +1 -1
  148. package/dist/skeleton/TextPlaceholder.svelte.d.ts +1 -1
  149. package/dist/skeleton/VideoPlaceholder.svelte +1 -1
  150. package/dist/skeleton/VideoPlaceholder.svelte.d.ts +1 -1
  151. package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
  152. package/dist/skeleton/WidgetPlaceholder.svelte.d.ts +1 -1
  153. package/dist/speed-dial/SpeedDial.svelte +2 -2
  154. package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
  155. package/dist/speed-dial/SpeedDialButton.svelte +1 -1
  156. package/dist/speed-dial/SpeedDialButton.svelte.d.ts +1 -1
  157. package/dist/speed-dial/SpeedDialTrigger.svelte +1 -1
  158. package/dist/speed-dial/SpeedDialTrigger.svelte.d.ts +1 -1
  159. package/dist/spinner/Spinner.svelte +1 -1
  160. package/dist/spinner/Spinner.svelte.d.ts +1 -1
  161. package/dist/stepindicator/StepIndicator.svelte +1 -1
  162. package/dist/stepindicator/StepIndicator.svelte.d.ts +1 -1
  163. package/dist/stepper/BreadcrumbStepper.svelte +1 -1
  164. package/dist/stepper/BreadcrumbStepper.svelte.d.ts +1 -1
  165. package/dist/stepper/DetailedStepper.svelte +1 -1
  166. package/dist/stepper/DetailedStepper.svelte.d.ts +1 -1
  167. package/dist/stepper/ProgressStepper.svelte +1 -1
  168. package/dist/stepper/ProgressStepper.svelte.d.ts +1 -1
  169. package/dist/stepper/Stepper.svelte +1 -1
  170. package/dist/stepper/Stepper.svelte.d.ts +1 -1
  171. package/dist/stepper/TimelineStepper.svelte +1 -1
  172. package/dist/stepper/TimelineStepper.svelte.d.ts +1 -1
  173. package/dist/stepper/VerticalStepper.svelte +1 -1
  174. package/dist/stepper/VerticalStepper.svelte.d.ts +1 -1
  175. package/dist/table/Table.svelte +1 -1
  176. package/dist/table/Table.svelte.d.ts +1 -1
  177. package/dist/table/TableBody.svelte +1 -1
  178. package/dist/table/TableBody.svelte.d.ts +1 -1
  179. package/dist/table/TableBodyCell.svelte +1 -1
  180. package/dist/table/TableBodyCell.svelte.d.ts +1 -1
  181. package/dist/table/TableBodyRow.svelte +1 -1
  182. package/dist/table/TableBodyRow.svelte.d.ts +1 -1
  183. package/dist/table/TableHead.svelte +1 -1
  184. package/dist/table/TableHead.svelte.d.ts +1 -1
  185. package/dist/table/TableHeadCell.svelte +1 -1
  186. package/dist/table/TableHeadCell.svelte.d.ts +1 -1
  187. package/dist/table/TableSearch.svelte +1 -1
  188. package/dist/table/TableSearch.svelte.d.ts +1 -1
  189. package/dist/tabs/TabItem.svelte +1 -1
  190. package/dist/tabs/TabItem.svelte.d.ts +1 -1
  191. package/dist/tabs/Tabs.svelte +1 -1
  192. package/dist/tabs/Tabs.svelte.d.ts +1 -1
  193. package/dist/theme/themes.d.ts +2 -2
  194. package/dist/theme/themes.js +2 -2
  195. package/dist/timeline/Activity.svelte +1 -1
  196. package/dist/timeline/Activity.svelte.d.ts +1 -1
  197. package/dist/timeline/ActivityItem.svelte +1 -1
  198. package/dist/timeline/ActivityItem.svelte.d.ts +1 -1
  199. package/dist/timeline/Group.svelte +1 -1
  200. package/dist/timeline/Group.svelte.d.ts +1 -1
  201. package/dist/timeline/GroupItem.svelte +1 -1
  202. package/dist/timeline/GroupItem.svelte.d.ts +1 -1
  203. package/dist/timeline/Timeline.svelte +1 -1
  204. package/dist/timeline/Timeline.svelte.d.ts +1 -1
  205. package/dist/timeline/TimelineItem.svelte +1 -1
  206. package/dist/timeline/TimelineItem.svelte.d.ts +1 -1
  207. package/dist/toast/Toast.svelte +1 -1
  208. package/dist/toast/Toast.svelte.d.ts +1 -1
  209. package/dist/toolbar/Toolbar.svelte +1 -1
  210. package/dist/toolbar/Toolbar.svelte.d.ts +1 -1
  211. package/dist/toolbar/ToolbarButton.svelte +1 -1
  212. package/dist/toolbar/ToolbarButton.svelte.d.ts +1 -1
  213. package/dist/toolbar/ToolbarGroup.svelte +1 -1
  214. package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
  215. package/dist/tooltip/Tooltip.svelte +1 -1
  216. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  217. package/dist/types.d.ts +6 -3
  218. package/dist/typography/{anchor → a}/A.svelte +1 -1
  219. package/dist/typography/{anchor → a}/A.svelte.d.ts +1 -1
  220. package/dist/typography/blockquote/Blockquote.svelte +1 -1
  221. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  222. package/dist/typography/descriptionlist/DescriptionList.svelte +1 -1
  223. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  224. package/dist/typography/heading/Heading.svelte +1 -1
  225. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  226. package/dist/typography/hr/Hr.svelte +1 -1
  227. package/dist/typography/hr/Hr.svelte.d.ts +1 -1
  228. package/dist/typography/img/EnhancedImg.svelte +1 -1
  229. package/dist/typography/img/EnhancedImg.svelte.d.ts +1 -1
  230. package/dist/typography/img/Img.svelte +1 -1
  231. package/dist/typography/img/Img.svelte.d.ts +1 -1
  232. package/dist/typography/layout/Layout.svelte +1 -1
  233. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  234. package/dist/typography/list/Li.svelte +1 -1
  235. package/dist/typography/list/Li.svelte.d.ts +1 -1
  236. package/dist/typography/list/List.svelte +1 -1
  237. package/dist/typography/list/List.svelte.d.ts +1 -1
  238. package/dist/typography/mark/Mark.svelte +1 -1
  239. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  240. package/dist/typography/paragraph/P.svelte +1 -1
  241. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  242. package/dist/typography/secondary/Secondary.svelte +1 -1
  243. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  244. package/dist/typography/span/Span.svelte +1 -1
  245. package/dist/typography/span/Span.svelte.d.ts +1 -1
  246. package/dist/utils/Arrow.svelte +1 -1
  247. package/dist/utils/Arrow.svelte.d.ts +1 -1
  248. package/dist/utils/Popper.svelte +1 -1
  249. package/dist/utils/Popper.svelte.d.ts +1 -1
  250. package/dist/video/Video.svelte +1 -1
  251. package/dist/video/Video.svelte.d.ts +1 -1
  252. package/package.json +29 -25
  253. /package/dist/typography/{anchor → a}/index.d.ts +0 -0
  254. /package/dist/typography/{anchor → a}/index.js +0 -0
  255. /package/dist/typography/{anchor → a}/theme.d.ts +0 -0
  256. /package/dist/typography/{anchor → a}/theme.js +0 -0
@@ -2,7 +2,7 @@ import { tv } from "tailwind-variants";
2
2
  export const datepicker = tv({
3
3
  slots: {
4
4
  base: "inline-block rounded-lg bg-white dark:bg-gray-700 shadow-lg p-4",
5
- input: "w-full rounded-md border px-4 py-2 text-sm focus:ring-2 focus:outline-none outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white disabled:cursor-not-allowed disabled:opacity-50",
5
+ input: "w-full rounded-md border px-4 py-2 text-sm focus:ring-2 focus:outline-none outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white disabled:cursor-not-allowed disabled:opacity-50 border-gray-300 bg-gray-50 text-gray-900",
6
6
  titleVariant: "mb-2 text-lg font-semibold text-gray-900 dark:text-white",
7
7
  polite: "text-sm rounded-lg text-gray-900 dark:text-white bg-white dark:bg-gray-700 font-semibold py-2.5 px-5 hover:bg-gray-100 dark:hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-200",
8
8
  button: "absolute inset-y-0 right-0 flex items-center px-3 text-gray-500 focus:outline-hidden dark:text-gray-400",
@@ -16,6 +16,7 @@
16
16
 
17
17
  // Prefer requestClose when available to trigger a cancellable "cancel" event; otherwise synthesize it.
18
18
  const cancel = (dlg: HTMLDialogElement) => {
19
+ // @ts-ignore
19
20
  if (typeof dlg.requestClose === "function") return dlg.requestClose();
20
21
  dlg.dispatchEvent(new Event("cancel", { bubbles: true, cancelable: true }));
21
22
  };
@@ -35,12 +36,15 @@
35
36
  }
36
37
 
37
38
  function _onclick(ev: MouseEvent & { currentTarget: HTMLDialogElement }) {
38
- const dlg: HTMLDialogElement = ev.currentTarget,
39
- rect = dlg.getBoundingClientRect(),
40
- clickedInContent = ev.clientX >= rect.left && ev.clientX <= rect.right && ev.clientY >= rect.top && ev.clientY <= rect.bottom;
39
+ const dlg: HTMLDialogElement = ev.currentTarget;
40
+ if (ev.target === dlg) {
41
+ // click outside - backdrop is dialog
42
+ const rect = dlg.getBoundingClientRect(),
43
+ clickedInContent = ev.clientX >= rect.left && ev.clientX <= rect.right && ev.clientY >= rect.top && ev.clientY <= rect.bottom;
41
44
 
42
- if (outsideclose && !clickedInContent) {
43
- return cancel(dlg);
45
+ if (outsideclose && !clickedInContent) {
46
+ return cancel(dlg);
47
+ }
44
48
  }
45
49
 
46
50
  if (autoclose && ev.target instanceof HTMLButtonElement && !permanent) {
@@ -6,8 +6,15 @@
6
6
  import { sineIn } from "svelte/easing";
7
7
  import { fly } from "svelte/transition";
8
8
  import { drawer } from ".";
9
+ import { setContext } from "svelte";
9
10
 
10
- let { children, open = $bindable(false), hidden = $bindable(), width, dismissable = false, placement = "left", class: className, transitionParams, transition = fly, outsideclose, activateClickOutside, ...restProps }: DrawerProps = $props();
11
+ let { children, open = $bindable(false), hidden = $bindable(), modal, offset, width, dismissable = offset ? false : undefined, placement = "left", class: className, transitionParams, transition = fly, outsideclose, activateClickOutside, ...restProps }: DrawerProps = $props();
12
+
13
+ setContext("drawer", {
14
+ get placement() {
15
+ return placement;
16
+ }
17
+ });
11
18
 
12
19
  // back compatibility
13
20
  if (hidden !== undefined) console.warn("'hidden' property is deprecated. Please use the 'open' property to manage 'Drawer'.");
@@ -35,23 +42,51 @@
35
42
 
36
43
  const theme = getTheme("drawer");
37
44
 
38
- const { base } = $derived(drawer({ placement, width, modal: restProps.modal }));
45
+ let shifted = $state(true);
39
46
 
40
- let innerWidth: number = $state(-1);
41
- let innerHeight: number = $state(-1);
42
- // let startX = $derived(position === 'fixed'? 0: )
43
- let x = $derived(placement === "left" ? -320 : placement === "right" ? innerWidth + 320 : undefined);
44
- let y = $derived(placement === "top" ? -100 : placement === "bottom" ? innerHeight + 100 : undefined);
47
+ const { base } = $derived(drawer({ placement, width, modal: offset && !open ? false : modal, shifted }));
45
48
 
46
- let transition_params = $derived(transitionParams ?? Object.assign({}, { x, y, duration: 200, easing: sineIn }));
47
- </script>
49
+ let x = $state(),
50
+ y = $state();
51
+
52
+ let transition_params = $derived({ x, y, duration: 300, easing: sineIn, opacity: 1, ...transitionParams });
53
+
54
+ function init(node: HTMLDialogElement) {
55
+ // set initial offset, later it will be switched on/off by onintrostart
56
+ if (offset) node.style[placement] = offset;
57
+ }
48
58
 
49
- <svelte:window bind:innerWidth bind:innerHeight />
59
+ function onintrostart(ev: CustomEvent & { currentTarget: HTMLDialogElement }) {
60
+ // set the values for transition start position
61
+ const dlg = ev.currentTarget;
62
+ const { innerWidth = 0, innerHeight = 0 } = dlg.ownerDocument.defaultView ?? {};
50
63
 
51
- <Dialog bind:open {transition} {dismissable} {outsideclose} transitionParams={transition_params} {...restProps} class={base({ class: clsx(theme?.base, className) })}>
64
+ const rect = dlg.getBoundingClientRect();
65
+
66
+ x = placement === "left" ? rect.left : placement === "right" ? rect.right - innerWidth : undefined;
67
+ y = placement === "top" ? rect.top : placement === "bottom" ? rect.bottom - innerHeight : undefined;
68
+ // remove shift for transition end position
69
+ shifted = false;
70
+
71
+ // add offset if closed, remove it when open
72
+ if (offset) dlg.style[placement] = open ? "" : offset;
73
+ }
74
+
75
+ function onoutrostart(ev: CustomEvent & { currentTarget: HTMLDialogElement }) {
76
+ shifted = true;
77
+ }
78
+ </script>
79
+
80
+ <Dialog {@attach init} bind:open {modal} {dismissable} {transition} {onintrostart} {onoutrostart} {outsideclose} transitionParams={transition_params} {...restProps} class={base({ class: clsx(theme?.base, className) })}>
52
81
  {@render children?.()}
53
82
  </Dialog>
54
83
 
84
+ {#if offset && !open}
85
+ <Dialog {@attach init} open modal={false} {dismissable} {outsideclose} {...restProps} class={base({ class: clsx(theme?.base, className) })}>
86
+ {@render children?.()}
87
+ </Dialog>
88
+ {/if}
89
+
55
90
  <!--
56
91
  @component
57
92
  [Go to docs](https://flowbite-svelte.com/)
@@ -61,8 +96,10 @@
61
96
  @prop children
62
97
  @prop open = $bindable(false)
63
98
  @prop hidden = $bindable()
99
+ @prop modal
100
+ @prop offset
64
101
  @prop width
65
- @prop dismissable = false
102
+ @prop dismissable = offset ? false : undefined
66
103
  @prop placement = "left"
67
104
  @prop class: className
68
105
  @prop transitionParams
@@ -7,8 +7,10 @@ import { type DrawerProps } from "..";
7
7
  * @prop children
8
8
  * @prop open = $bindable(false)
9
9
  * @prop hidden = $bindable()
10
+ * @prop modal
11
+ * @prop offset
10
12
  * @prop width
11
- * @prop dismissable = false
13
+ * @prop dismissable = offset ? false : undefined
12
14
  * @prop placement = "left"
13
15
  * @prop class: className
14
16
  * @prop transitionParams
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import { getTheme } from "../theme/themeUtils";
3
+ import type { DrawerHandleProps } from "../types";
4
+ import clsx from "clsx";
5
+ import { drawerhandle } from "./theme";
6
+ import { getContext } from "svelte";
7
+
8
+ let { children, placement, "aria-label": ariaLabel, class: className, classes, ...restProps }: DrawerHandleProps = $props();
9
+
10
+ const ctx = getContext<{ placement: DrawerHandleProps["placement"] } | undefined>("drawer");
11
+
12
+ const theme = getTheme("drawerhandle");
13
+ let { base, handle } = $derived(drawerhandle({ placement: placement ?? ctx?.placement ?? "left" }));
14
+ </script>
15
+
16
+ <button type="button" aria-label={ariaLabel} {...restProps} class={base({ class: clsx(theme?.base, className) })}>
17
+ {@render children?.()}
18
+ <span class={handle({ class: clsx(theme?.handle, classes?.handle) })}></span>
19
+ </button>
20
+
21
+ <!--
22
+ @component
23
+ [Go to docs](https://flowbite-svelte.com/)
24
+ ## Type
25
+ [DrawerHandleProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L580)
26
+ ## Props
27
+ @prop children
28
+ @prop placement
29
+ @prop "aria-label": ariaLabel
30
+ @prop class: className
31
+ @prop classes
32
+ @prop ...restProps
33
+ -->
@@ -0,0 +1,16 @@
1
+ import type { DrawerHandleProps } from "../types";
2
+ /**
3
+ * [Go to docs](https://flowbite-svelte.com/)
4
+ * ## Type
5
+ * [DrawerHandleProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L580)
6
+ * ## Props
7
+ * @prop children
8
+ * @prop placement
9
+ * @prop "aria-label": ariaLabel
10
+ * @prop class: className
11
+ * @prop classes
12
+ * @prop ...restProps
13
+ */
14
+ declare const DrawerHandle: import("svelte").Component<DrawerHandleProps, {}, "">;
15
+ type DrawerHandle = ReturnType<typeof DrawerHandle>;
16
+ export default DrawerHandle;
@@ -34,7 +34,7 @@
34
34
  @component
35
35
  [Go to docs](https://flowbite-svelte.com/)
36
36
  ## Type
37
- [DrawerheadProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L579)
37
+ [DrawerheadProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L582)
38
38
  ## Props
39
39
  @prop closeIcon
40
40
  @prop children
@@ -2,7 +2,7 @@ import { type DrawerheadProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DrawerheadProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L579)
5
+ * [DrawerheadProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L582)
6
6
  * ## Props
7
7
  * @prop closeIcon
8
8
  * @prop children
@@ -1,3 +1,4 @@
1
1
  export { default as Drawer } from "./Drawer.svelte";
2
2
  export { default as Drawerhead } from "./Drawerhead.svelte";
3
- export { drawer, drawerhead } from "./theme";
3
+ export { default as DrawerHandle } from "./DrawerHandle.svelte";
4
+ export { drawer, drawerhead, drawerhandle } from "./theme";
@@ -1,3 +1,4 @@
1
1
  export { default as Drawer } from "./Drawer.svelte";
2
2
  export { default as Drawerhead } from "./Drawerhead.svelte";
3
- export { drawer, drawerhead } from "./theme";
3
+ export { default as DrawerHandle } from "./DrawerHandle.svelte";
4
+ export { drawer, drawerhead, drawerhandle } from "./theme";
@@ -36,6 +36,10 @@ export declare const drawer: import("tailwind-variants").TVReturnType<{
36
36
  base: string;
37
37
  };
38
38
  };
39
+ shifted: {
40
+ true: {};
41
+ false: {};
42
+ };
39
43
  }, {
40
44
  base: string;
41
45
  }, undefined, {}, {
@@ -93,3 +97,71 @@ export declare const drawerhead: import("tailwind-variants").TVReturnType<{
93
97
  button: string;
94
98
  svg: string;
95
99
  }, undefined, unknown, unknown, undefined>>;
100
+ export type DrawerHandleVariants = VariantProps<typeof drawerhandle> & Classes<typeof drawerhandle>;
101
+ export declare const drawerhandle: import("tailwind-variants").TVReturnType<{
102
+ placement: {
103
+ left: {
104
+ base: string;
105
+ handle: string;
106
+ };
107
+ right: {
108
+ base: string;
109
+ handle: string;
110
+ };
111
+ top: {
112
+ base: string;
113
+ handle: string;
114
+ };
115
+ bottom: {
116
+ base: string;
117
+ handle: string;
118
+ };
119
+ };
120
+ }, {
121
+ base: string;
122
+ handle: string;
123
+ }, undefined, {
124
+ placement: {
125
+ left: {
126
+ base: string;
127
+ handle: string;
128
+ };
129
+ right: {
130
+ base: string;
131
+ handle: string;
132
+ };
133
+ top: {
134
+ base: string;
135
+ handle: string;
136
+ };
137
+ bottom: {
138
+ base: string;
139
+ handle: string;
140
+ };
141
+ };
142
+ }, {
143
+ base: string;
144
+ handle: string;
145
+ }, import("tailwind-variants").TVReturnType<{
146
+ placement: {
147
+ left: {
148
+ base: string;
149
+ handle: string;
150
+ };
151
+ right: {
152
+ base: string;
153
+ handle: string;
154
+ };
155
+ top: {
156
+ base: string;
157
+ handle: string;
158
+ };
159
+ bottom: {
160
+ base: string;
161
+ handle: string;
162
+ };
163
+ };
164
+ }, {
165
+ base: string;
166
+ handle: string;
167
+ }, undefined, unknown, unknown, undefined>>;
@@ -3,7 +3,7 @@ import { dialog } from "../dialog/theme";
3
3
  export const drawer = tv({
4
4
  extend: dialog,
5
5
  slots: {
6
- base: "p-4 max-h-none max-w-none"
6
+ base: "p-4 max-h-none max-w-none border border-gray-200 dark:border-gray-700 transform-gpu will-change-transform"
7
7
  },
8
8
  variants: {
9
9
  placement: {
@@ -20,11 +20,43 @@ export const drawer = tv({
20
20
  modal: {
21
21
  false: { base: "fixed inset-0" },
22
22
  true: { base: "" }
23
+ },
24
+ shifted: {
25
+ true: {},
26
+ false: {}
23
27
  }
24
28
  },
29
+ compoundVariants: [
30
+ {
31
+ shifted: false,
32
+ modal: false,
33
+ class: { base: "z-50" }
34
+ },
35
+ {
36
+ shifted: true,
37
+ placement: "left",
38
+ class: { base: "-translate-x-full" }
39
+ },
40
+ {
41
+ shifted: true,
42
+ placement: "right",
43
+ class: { base: "translate-x-full" }
44
+ },
45
+ {
46
+ shifted: true,
47
+ placement: "top",
48
+ class: { base: "-translate-y-full" }
49
+ },
50
+ {
51
+ shifted: true,
52
+ placement: "bottom",
53
+ class: { base: "translate-y-full" }
54
+ }
55
+ ],
25
56
  defaultVariants: {
26
57
  placement: "left",
27
- width: "default"
58
+ width: "default",
59
+ modal: true
28
60
  }
29
61
  });
30
62
  export const drawerhead = tv({
@@ -34,3 +66,17 @@ export const drawerhead = tv({
34
66
  svg: "h-4 w-4"
35
67
  }
36
68
  });
69
+ export const drawerhandle = tv({
70
+ slots: {
71
+ base: "p-4 absolute flex select-none cursor-grab active:cursor-grabbing focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-blue-500 dark:focus-visible:ring-offset-gray-800",
72
+ handle: "absolute rounded-lg bg-gray-300 dark:bg-gray-600"
73
+ },
74
+ variants: {
75
+ placement: {
76
+ left: { base: "inset-y-0 right-0 touch-pan-y", handle: "w-1 h-8 top-1/2 -translate-y-1/2" },
77
+ right: { base: "inset-y-0 left-0 touch-pan-y", handle: "w-1 h-8 top-1/2 -translate-y-1/2" },
78
+ top: { base: "inset-x-0 bottom-0 touch-pan-x", handle: "w-8 h-1 left-1/2 -translate-x-1/2" },
79
+ bottom: { base: "inset-x-0 top-0 touch-pan-x", handle: "w-8 h-1 left-1/2 -translate-x-1/2" }
80
+ }
81
+ }
82
+ });
@@ -34,7 +34,7 @@
34
34
  @component
35
35
  [Go to docs](https://flowbite-svelte.com/)
36
36
  ## Type
37
- [DropdownProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L586)
37
+ [DropdownProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L589)
38
38
  ## Props
39
39
  @prop children
40
40
  @prop simple = false
@@ -2,7 +2,7 @@ import { type DropdownProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DropdownProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L586)
5
+ * [DropdownProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L589)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop simple = false
@@ -15,7 +15,7 @@
15
15
  @component
16
16
  [Go to docs](https://flowbite-svelte.com/)
17
17
  ## Type
18
- [DropdownDividerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L592)
18
+ [DropdownDividerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L595)
19
19
  ## Props
20
20
  @prop class: className
21
21
  @prop ...restProps
@@ -2,7 +2,7 @@ import { type DropdownDividerProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DropdownDividerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L592)
5
+ * [DropdownDividerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L595)
6
6
  * ## Props
7
7
  * @prop class: className
8
8
  * @prop ...restProps
@@ -17,7 +17,7 @@
17
17
  @component
18
18
  [Go to docs](https://flowbite-svelte.com/)
19
19
  ## Type
20
- [DropdownGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L608)
20
+ [DropdownGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L611)
21
21
  ## Props
22
22
  @prop children
23
23
  @prop class: className
@@ -2,7 +2,7 @@ import { type DropdownGroupProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DropdownGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L608)
5
+ * [DropdownGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L611)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -17,7 +17,7 @@
17
17
  @component
18
18
  [Go to docs](https://flowbite-svelte.com/)
19
19
  ## Type
20
- [DropdownHeaderProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L594)
20
+ [DropdownHeaderProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L597)
21
21
  ## Props
22
22
  @prop children
23
23
  @prop class: className
@@ -2,7 +2,7 @@ import { type DropdownHeaderProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DropdownHeaderProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L594)
5
+ * [DropdownHeaderProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L597)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -40,7 +40,7 @@
40
40
  @component
41
41
  [Go to docs](https://flowbite-svelte.com/)
42
42
  ## Type
43
- [DropdownItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L600)
43
+ [DropdownItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L603)
44
44
  ## Props
45
45
  @prop aClass
46
46
  @prop children
@@ -2,7 +2,7 @@ import { type DropdownItemProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DropdownItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L600)
5
+ * [DropdownItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L603)
6
6
  * ## Props
7
7
  * @prop aClass
8
8
  * @prop children
@@ -19,7 +19,7 @@
19
19
  @component
20
20
  [Go to docs](https://flowbite-svelte.com/)
21
21
  ## Type
22
- [FooterProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L615)
22
+ [FooterProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L618)
23
23
  ## Props
24
24
  @prop children
25
25
  @prop footerType = "default"
@@ -2,7 +2,7 @@ import { type FooterProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [FooterProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L615)
5
+ * [FooterProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L618)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop footerType = "default"
@@ -31,7 +31,7 @@
31
31
  @component
32
32
  [Go to docs](https://flowbite-svelte.com/)
33
33
  ## Type
34
- [FooterBrandProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L620)
34
+ [FooterBrandProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L623)
35
35
  ## Props
36
36
  @prop children
37
37
  @prop aClass
@@ -2,7 +2,7 @@ import { type FooterBrandProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [FooterBrandProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L620)
5
+ * [FooterBrandProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L623)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop aClass
@@ -33,7 +33,7 @@
33
33
  @component
34
34
  [Go to docs](https://flowbite-svelte.com/)
35
35
  ## Type
36
- [FooterCopyrightProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L631)
36
+ [FooterCopyrightProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L634)
37
37
  ## Props
38
38
  @prop spanClass
39
39
  @prop aClass
@@ -2,7 +2,7 @@ import { type FooterCopyrightProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [FooterCopyrightProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L631)
5
+ * [FooterCopyrightProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L634)
6
6
  * ## Props
7
7
  * @prop spanClass
8
8
  * @prop aClass
@@ -21,7 +21,7 @@
21
21
  @component
22
22
  [Go to docs](https://flowbite-svelte.com/)
23
23
  ## Type
24
- [FooterIconProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L641)
24
+ [FooterIconProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L644)
25
25
  ## Props
26
26
  @prop children
27
27
  @prop href
@@ -2,7 +2,7 @@ import { type FooterIconProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [FooterIconProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L641)
5
+ * [FooterIconProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L644)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop href
@@ -25,7 +25,7 @@
25
25
  @component
26
26
  [Go to docs](https://flowbite-svelte.com/)
27
27
  ## Type
28
- [FooterLinkProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L651)
28
+ [FooterLinkProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L654)
29
29
  ## Props
30
30
  @prop children
31
31
  @prop liClass
@@ -2,7 +2,7 @@ import { type FooterLinkProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [FooterLinkProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L651)
5
+ * [FooterLinkProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L654)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop liClass
@@ -17,7 +17,7 @@
17
17
  @component
18
18
  [Go to docs](https://flowbite-svelte.com/)
19
19
  ## Type
20
- [FooterLinkGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L647)
20
+ [FooterLinkGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L650)
21
21
  ## Props
22
22
  @prop class: className
23
23
  @prop children
@@ -2,7 +2,7 @@ import { type FooterLinkGroupProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [FooterLinkGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L647)
5
+ * [FooterLinkGroupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L650)
6
6
  * ## Props
7
7
  * @prop class: className
8
8
  * @prop children
@@ -58,7 +58,7 @@
58
58
  @component
59
59
  [Go to docs](https://flowbite-svelte.com/)
60
60
  ## Type
61
- [CheckboxButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L681)
61
+ [CheckboxButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L684)
62
62
  ## Props
63
63
  @prop children
64
64
  @prop class: className
@@ -2,7 +2,7 @@ import { type CheckboxButtonProps } from "../..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [CheckboxButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L681)
5
+ * [CheckboxButtonProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L684)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -52,7 +52,7 @@
52
52
  @component
53
53
  [Go to docs](https://flowbite-svelte.com/)
54
54
  ## Type
55
- [DropzoneProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L694)
55
+ [DropzoneProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L697)
56
56
  ## Props
57
57
  @prop children
58
58
  @prop files = $bindable<FileList | null>()