flowbite-svelte 1.12.6 → 1.13.1

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 (276) hide show
  1. package/dist/datepicker/Datepicker.svelte +17 -2
  2. package/dist/datepicker/Datepicker.svelte.d.ts +2 -1
  3. package/dist/datepicker/theme.d.ts +3 -0
  4. package/dist/datepicker/theme.js +3 -2
  5. package/dist/device-mockups/Android.svelte +1 -1
  6. package/dist/device-mockups/Android.svelte.d.ts +1 -1
  7. package/dist/device-mockups/DefaultMockup.svelte +1 -1
  8. package/dist/device-mockups/DefaultMockup.svelte.d.ts +1 -1
  9. package/dist/device-mockups/Desktop.svelte +1 -1
  10. package/dist/device-mockups/Desktop.svelte.d.ts +1 -1
  11. package/dist/device-mockups/DeviceMockup.svelte +1 -1
  12. package/dist/device-mockups/DeviceMockup.svelte.d.ts +1 -1
  13. package/dist/device-mockups/Ios.svelte +1 -1
  14. package/dist/device-mockups/Ios.svelte.d.ts +1 -1
  15. package/dist/device-mockups/Laptop.svelte +1 -1
  16. package/dist/device-mockups/Laptop.svelte.d.ts +1 -1
  17. package/dist/device-mockups/Smartwatch.svelte +1 -1
  18. package/dist/device-mockups/Smartwatch.svelte.d.ts +1 -1
  19. package/dist/device-mockups/Tablet.svelte +1 -1
  20. package/dist/device-mockups/Tablet.svelte.d.ts +1 -1
  21. package/dist/dialog/Dialog.svelte +10 -6
  22. package/dist/dialog/Dialog.svelte.d.ts +1 -1
  23. package/dist/drawer/Drawer.svelte +50 -13
  24. package/dist/drawer/Drawer.svelte.d.ts +4 -2
  25. package/dist/drawer/DrawerHandle.svelte +33 -0
  26. package/dist/drawer/DrawerHandle.svelte.d.ts +16 -0
  27. package/dist/drawer/Drawerhead.svelte +1 -1
  28. package/dist/drawer/Drawerhead.svelte.d.ts +1 -1
  29. package/dist/drawer/index.d.ts +2 -1
  30. package/dist/drawer/index.js +2 -1
  31. package/dist/drawer/theme.d.ts +72 -0
  32. package/dist/drawer/theme.js +48 -2
  33. package/dist/dropdown/Dropdown.svelte +1 -1
  34. package/dist/dropdown/Dropdown.svelte.d.ts +1 -1
  35. package/dist/dropdown/DropdownDivider.svelte +1 -1
  36. package/dist/dropdown/DropdownDivider.svelte.d.ts +1 -1
  37. package/dist/dropdown/DropdownGroup.svelte +1 -1
  38. package/dist/dropdown/DropdownGroup.svelte.d.ts +1 -1
  39. package/dist/dropdown/DropdownHeader.svelte +1 -1
  40. package/dist/dropdown/DropdownHeader.svelte.d.ts +1 -1
  41. package/dist/dropdown/DropdownItem.svelte +1 -1
  42. package/dist/dropdown/DropdownItem.svelte.d.ts +1 -1
  43. package/dist/footer/Footer.svelte +1 -1
  44. package/dist/footer/Footer.svelte.d.ts +1 -1
  45. package/dist/footer/FooterBrand.svelte +1 -1
  46. package/dist/footer/FooterBrand.svelte.d.ts +1 -1
  47. package/dist/footer/FooterCopyright.svelte +1 -1
  48. package/dist/footer/FooterCopyright.svelte.d.ts +1 -1
  49. package/dist/footer/FooterIcon.svelte +1 -1
  50. package/dist/footer/FooterIcon.svelte.d.ts +1 -1
  51. package/dist/footer/FooterLink.svelte +1 -1
  52. package/dist/footer/FooterLink.svelte.d.ts +1 -1
  53. package/dist/footer/FooterLinkGroup.svelte +1 -1
  54. package/dist/footer/FooterLinkGroup.svelte.d.ts +1 -1
  55. package/dist/forms/checkbox/CheckboxButton.svelte +1 -1
  56. package/dist/forms/checkbox/CheckboxButton.svelte.d.ts +1 -1
  57. package/dist/forms/dropzone/Dropzone.svelte +1 -1
  58. package/dist/forms/dropzone/Dropzone.svelte.d.ts +1 -1
  59. package/dist/forms/fileupload/Fileupload.svelte +1 -1
  60. package/dist/forms/fileupload/Fileupload.svelte.d.ts +1 -1
  61. package/dist/forms/floating-label/FloatingLabelInput.svelte +1 -1
  62. package/dist/forms/floating-label/FloatingLabelInput.svelte.d.ts +1 -1
  63. package/dist/forms/helper/Helper.svelte +1 -1
  64. package/dist/forms/helper/Helper.svelte.d.ts +1 -1
  65. package/dist/forms/input-addon/InputAddon.svelte +1 -1
  66. package/dist/forms/input-addon/InputAddon.svelte.d.ts +1 -1
  67. package/dist/forms/label/Label.svelte +1 -1
  68. package/dist/forms/label/Label.svelte.d.ts +1 -1
  69. package/dist/forms/range/Range.svelte +1 -1
  70. package/dist/forms/range/Range.svelte.d.ts +1 -1
  71. package/dist/forms/search/Search.svelte +1 -1
  72. package/dist/forms/search/Search.svelte.d.ts +1 -1
  73. package/dist/forms/tags/Tags.svelte +1 -1
  74. package/dist/forms/tags/Tags.svelte.d.ts +1 -1
  75. package/dist/forms/textarea/Textarea.svelte +1 -1
  76. package/dist/forms/textarea/Textarea.svelte.d.ts +1 -1
  77. package/dist/forms/timepicker/Timepicker.svelte +1 -1
  78. package/dist/forms/timepicker/Timepicker.svelte.d.ts +1 -1
  79. package/dist/forms/toggle/Toggle.svelte +1 -1
  80. package/dist/forms/toggle/Toggle.svelte.d.ts +1 -1
  81. package/dist/gallery/Gallery.svelte +1 -1
  82. package/dist/gallery/Gallery.svelte.d.ts +1 -1
  83. package/dist/index.d.ts +1 -1
  84. package/dist/index.js +1 -1
  85. package/dist/indicator/Indicator.svelte +1 -1
  86. package/dist/indicator/Indicator.svelte.d.ts +1 -1
  87. package/dist/kbd/Kbd.svelte +1 -1
  88. package/dist/kbd/Kbd.svelte.d.ts +1 -1
  89. package/dist/list-group/Listgroup.svelte +1 -1
  90. package/dist/list-group/Listgroup.svelte.d.ts +1 -1
  91. package/dist/list-group/ListgroupItem.svelte +1 -1
  92. package/dist/list-group/ListgroupItem.svelte.d.ts +1 -1
  93. package/dist/mega-menu/MegaMenu.svelte +1 -1
  94. package/dist/mega-menu/MegaMenu.svelte.d.ts +1 -1
  95. package/dist/modal/Modal.svelte +1 -1
  96. package/dist/modal/Modal.svelte.d.ts +1 -1
  97. package/dist/navbar/Menu.svelte +1 -1
  98. package/dist/navbar/Menu.svelte.d.ts +1 -1
  99. package/dist/navbar/NavBrand.svelte +1 -1
  100. package/dist/navbar/NavBrand.svelte.d.ts +1 -1
  101. package/dist/navbar/NavContainer.svelte +1 -1
  102. package/dist/navbar/NavContainer.svelte.d.ts +1 -1
  103. package/dist/navbar/NavHamburger.svelte +1 -1
  104. package/dist/navbar/NavHamburger.svelte.d.ts +1 -1
  105. package/dist/navbar/NavLi.svelte +1 -1
  106. package/dist/navbar/NavLi.svelte.d.ts +1 -1
  107. package/dist/navbar/NavUl.svelte +1 -1
  108. package/dist/navbar/NavUl.svelte.d.ts +1 -1
  109. package/dist/navbar/Navbar.svelte +1 -1
  110. package/dist/navbar/Navbar.svelte.d.ts +1 -1
  111. package/dist/pagination/Pagination.svelte +1 -1
  112. package/dist/pagination/Pagination.svelte.d.ts +1 -1
  113. package/dist/pagination/PaginationButton.svelte +1 -1
  114. package/dist/pagination/PaginationButton.svelte.d.ts +1 -1
  115. package/dist/pagination/PaginationItem.svelte +1 -1
  116. package/dist/pagination/PaginationItem.svelte.d.ts +1 -1
  117. package/dist/pagination/PaginationNav.svelte +1 -1
  118. package/dist/pagination/PaginationNav.svelte.d.ts +1 -1
  119. package/dist/popover/Popover.svelte +1 -1
  120. package/dist/popover/Popover.svelte.d.ts +1 -1
  121. package/dist/progress/Progressbar.svelte +1 -1
  122. package/dist/progress/Progressbar.svelte.d.ts +1 -1
  123. package/dist/progress/Progressradial.svelte +1 -1
  124. package/dist/progress/Progressradial.svelte.d.ts +1 -1
  125. package/dist/rating/AdvancedRating.svelte +1 -1
  126. package/dist/rating/AdvancedRating.svelte.d.ts +1 -1
  127. package/dist/rating/CustomIcon.svelte +1 -1
  128. package/dist/rating/CustomIcon.svelte.d.ts +1 -1
  129. package/dist/rating/Heart.svelte +1 -1
  130. package/dist/rating/Heart.svelte.d.ts +1 -1
  131. package/dist/rating/Rating.svelte +1 -1
  132. package/dist/rating/Rating.svelte.d.ts +1 -1
  133. package/dist/rating/RatingComment.svelte +1 -1
  134. package/dist/rating/RatingComment.svelte.d.ts +1 -1
  135. package/dist/rating/Review.svelte +1 -1
  136. package/dist/rating/Review.svelte.d.ts +1 -1
  137. package/dist/rating/ScoreRating.svelte +1 -1
  138. package/dist/rating/ScoreRating.svelte.d.ts +1 -1
  139. package/dist/rating/Star.svelte +1 -1
  140. package/dist/rating/Star.svelte.d.ts +1 -1
  141. package/dist/rating/Thumbup.svelte +1 -1
  142. package/dist/rating/Thumbup.svelte.d.ts +1 -1
  143. package/dist/sidebar/Sidebar.svelte +1 -1
  144. package/dist/sidebar/Sidebar.svelte.d.ts +1 -1
  145. package/dist/sidebar/SidebarBrand.svelte +1 -1
  146. package/dist/sidebar/SidebarBrand.svelte.d.ts +1 -1
  147. package/dist/sidebar/SidebarButton.svelte +1 -1
  148. package/dist/sidebar/SidebarButton.svelte.d.ts +1 -1
  149. package/dist/sidebar/SidebarCta.svelte +1 -1
  150. package/dist/sidebar/SidebarCta.svelte.d.ts +1 -1
  151. package/dist/sidebar/SidebarDropdownWrapper.svelte +1 -1
  152. package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +1 -1
  153. package/dist/sidebar/SidebarGroup.svelte +1 -1
  154. package/dist/sidebar/SidebarGroup.svelte.d.ts +1 -1
  155. package/dist/sidebar/SidebarItem.svelte +1 -1
  156. package/dist/sidebar/SidebarItem.svelte.d.ts +1 -1
  157. package/dist/skeleton/CardPlaceholder.svelte +1 -1
  158. package/dist/skeleton/CardPlaceholder.svelte.d.ts +1 -1
  159. package/dist/skeleton/ImagePlaceholder.svelte +1 -1
  160. package/dist/skeleton/ImagePlaceholder.svelte.d.ts +1 -1
  161. package/dist/skeleton/ListPlaceholder.svelte +1 -1
  162. package/dist/skeleton/ListPlaceholder.svelte.d.ts +1 -1
  163. package/dist/skeleton/Skeleton.svelte +1 -1
  164. package/dist/skeleton/Skeleton.svelte.d.ts +1 -1
  165. package/dist/skeleton/TestimonialPlaceholder.svelte +1 -1
  166. package/dist/skeleton/TestimonialPlaceholder.svelte.d.ts +1 -1
  167. package/dist/skeleton/TextPlaceholder.svelte +1 -1
  168. package/dist/skeleton/TextPlaceholder.svelte.d.ts +1 -1
  169. package/dist/skeleton/VideoPlaceholder.svelte +1 -1
  170. package/dist/skeleton/VideoPlaceholder.svelte.d.ts +1 -1
  171. package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
  172. package/dist/skeleton/WidgetPlaceholder.svelte.d.ts +1 -1
  173. package/dist/speed-dial/SpeedDial.svelte +2 -2
  174. package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
  175. package/dist/speed-dial/SpeedDialButton.svelte +1 -1
  176. package/dist/speed-dial/SpeedDialButton.svelte.d.ts +1 -1
  177. package/dist/speed-dial/SpeedDialTrigger.svelte +1 -1
  178. package/dist/speed-dial/SpeedDialTrigger.svelte.d.ts +1 -1
  179. package/dist/spinner/Spinner.svelte +1 -1
  180. package/dist/spinner/Spinner.svelte.d.ts +1 -1
  181. package/dist/stepindicator/StepIndicator.svelte +1 -1
  182. package/dist/stepindicator/StepIndicator.svelte.d.ts +1 -1
  183. package/dist/stepper/BreadcrumbStepper.svelte +1 -1
  184. package/dist/stepper/BreadcrumbStepper.svelte.d.ts +1 -1
  185. package/dist/stepper/DetailedStepper.svelte +1 -1
  186. package/dist/stepper/DetailedStepper.svelte.d.ts +1 -1
  187. package/dist/stepper/ProgressStepper.svelte +1 -1
  188. package/dist/stepper/ProgressStepper.svelte.d.ts +1 -1
  189. package/dist/stepper/Stepper.svelte +1 -1
  190. package/dist/stepper/Stepper.svelte.d.ts +1 -1
  191. package/dist/stepper/TimelineStepper.svelte +1 -1
  192. package/dist/stepper/TimelineStepper.svelte.d.ts +1 -1
  193. package/dist/stepper/VerticalStepper.svelte +1 -1
  194. package/dist/stepper/VerticalStepper.svelte.d.ts +1 -1
  195. package/dist/table/Table.svelte +1 -1
  196. package/dist/table/Table.svelte.d.ts +1 -1
  197. package/dist/table/TableBody.svelte +1 -1
  198. package/dist/table/TableBody.svelte.d.ts +1 -1
  199. package/dist/table/TableBodyCell.svelte +1 -1
  200. package/dist/table/TableBodyCell.svelte.d.ts +1 -1
  201. package/dist/table/TableBodyRow.svelte +1 -1
  202. package/dist/table/TableBodyRow.svelte.d.ts +1 -1
  203. package/dist/table/TableHead.svelte +1 -1
  204. package/dist/table/TableHead.svelte.d.ts +1 -1
  205. package/dist/table/TableHeadCell.svelte +1 -1
  206. package/dist/table/TableHeadCell.svelte.d.ts +1 -1
  207. package/dist/table/TableSearch.svelte +1 -1
  208. package/dist/table/TableSearch.svelte.d.ts +1 -1
  209. package/dist/tabs/TabItem.svelte +1 -1
  210. package/dist/tabs/TabItem.svelte.d.ts +1 -1
  211. package/dist/tabs/Tabs.svelte +1 -1
  212. package/dist/tabs/Tabs.svelte.d.ts +1 -1
  213. package/dist/theme/themes.d.ts +2 -2
  214. package/dist/theme/themes.js +2 -2
  215. package/dist/timeline/Activity.svelte +1 -1
  216. package/dist/timeline/Activity.svelte.d.ts +1 -1
  217. package/dist/timeline/ActivityItem.svelte +1 -1
  218. package/dist/timeline/ActivityItem.svelte.d.ts +1 -1
  219. package/dist/timeline/Group.svelte +1 -1
  220. package/dist/timeline/Group.svelte.d.ts +1 -1
  221. package/dist/timeline/GroupItem.svelte +1 -1
  222. package/dist/timeline/GroupItem.svelte.d.ts +1 -1
  223. package/dist/timeline/Timeline.svelte +1 -1
  224. package/dist/timeline/Timeline.svelte.d.ts +1 -1
  225. package/dist/timeline/TimelineItem.svelte +1 -1
  226. package/dist/timeline/TimelineItem.svelte.d.ts +1 -1
  227. package/dist/toast/Toast.svelte +1 -1
  228. package/dist/toast/Toast.svelte.d.ts +1 -1
  229. package/dist/toolbar/Toolbar.svelte +1 -1
  230. package/dist/toolbar/Toolbar.svelte.d.ts +1 -1
  231. package/dist/toolbar/ToolbarButton.svelte +1 -1
  232. package/dist/toolbar/ToolbarButton.svelte.d.ts +1 -1
  233. package/dist/toolbar/ToolbarGroup.svelte +1 -1
  234. package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
  235. package/dist/tooltip/Tooltip.svelte +1 -1
  236. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  237. package/dist/types.d.ts +13 -3
  238. package/dist/typography/{anchor → a}/A.svelte +1 -1
  239. package/dist/typography/{anchor → a}/A.svelte.d.ts +1 -1
  240. package/dist/typography/blockquote/Blockquote.svelte +1 -1
  241. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  242. package/dist/typography/descriptionlist/DescriptionList.svelte +1 -1
  243. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  244. package/dist/typography/heading/Heading.svelte +1 -1
  245. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  246. package/dist/typography/hr/Hr.svelte +1 -1
  247. package/dist/typography/hr/Hr.svelte.d.ts +1 -1
  248. package/dist/typography/img/EnhancedImg.svelte +1 -1
  249. package/dist/typography/img/EnhancedImg.svelte.d.ts +1 -1
  250. package/dist/typography/img/Img.svelte +1 -1
  251. package/dist/typography/img/Img.svelte.d.ts +1 -1
  252. package/dist/typography/layout/Layout.svelte +1 -1
  253. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  254. package/dist/typography/list/Li.svelte +1 -1
  255. package/dist/typography/list/Li.svelte.d.ts +1 -1
  256. package/dist/typography/list/List.svelte +1 -1
  257. package/dist/typography/list/List.svelte.d.ts +1 -1
  258. package/dist/typography/mark/Mark.svelte +1 -1
  259. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  260. package/dist/typography/paragraph/P.svelte +1 -1
  261. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  262. package/dist/typography/secondary/Secondary.svelte +1 -1
  263. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  264. package/dist/typography/span/Span.svelte +1 -1
  265. package/dist/typography/span/Span.svelte.d.ts +1 -1
  266. package/dist/utils/Arrow.svelte +1 -1
  267. package/dist/utils/Arrow.svelte.d.ts +1 -1
  268. package/dist/utils/Popper.svelte +1 -1
  269. package/dist/utils/Popper.svelte.d.ts +1 -1
  270. package/dist/video/Video.svelte +1 -1
  271. package/dist/video/Video.svelte.d.ts +1 -1
  272. package/package.json +29 -25
  273. /package/dist/typography/{anchor → a}/index.d.ts +0 -0
  274. /package/dist/typography/{anchor → a}/index.js +0 -0
  275. /package/dist/typography/{anchor → a}/theme.d.ts +0 -0
  276. /package/dist/typography/{anchor → a}/theme.js +0 -0
@@ -7,7 +7,7 @@
7
7
  import { parse, isValid, addDays, startOfMonth, endOfMonth, startOfWeek, endOfWeek, eachDayOfInterval, isSameDay, isWithinInterval } from "date-fns";
8
8
  import { getTheme } from "../theme/themeUtils";
9
9
 
10
- let { value = $bindable(), defaultDate = null, range = false, rangeFrom = $bindable(), rangeTo = $bindable(), availableFrom = null, availableTo = null, locale = "default", translationLocale = locale, firstDayOfWeek = 0, dateFormat, placeholder = "Select date", disabled = false, required = false, inputClass = "", color = "primary", inline = false, autohide = true, showActionButtons = false, title = "", onselect, onclear, onapply, btnClass, inputmode = "none", classes, monthColor = "alternative", monthBtnSelected = "bg-primary-500 text-white", monthBtn = "text-gray-700 dark:text-gray-300", class: className, elementRef = $bindable() }: DatepickerProps = $props();
10
+ let { value = $bindable(), defaultDate = null, range = false, rangeFrom = $bindable(), rangeTo = $bindable(), availableFrom = null, availableTo = null, locale = "default", translationLocale = locale, firstDayOfWeek = 0, dateFormat, placeholder = "Select date", disabled = false, required = false, inputClass = "", color = "primary", inline = false, autohide = true, showActionButtons = false, title = "", onselect, onclear, onapply, btnClass, inputmode = "none", classes, monthColor = "alternative", monthBtnSelected = "bg-primary-500 text-white", monthBtn = "text-gray-700 dark:text-gray-300", class: className, elementRef = $bindable(), actionSlot }: DatepickerProps = $props();
11
11
 
12
12
  const theme = getTheme("datepicker");
13
13
 
@@ -458,6 +458,20 @@
458
458
  <Button onclick={handleApply} {color} size="sm">Apply</Button>
459
459
  </div>
460
460
  {/if}
461
+
462
+ {#if actionSlot}
463
+ <div class={clsx(classes?.actionSlot, theme?.actionSlot)}>
464
+ {@render actionSlot({
465
+ selectedDate: range ? { from: rangeFrom, to: rangeTo } : value,
466
+ handleClear,
467
+ handleApply,
468
+ close: () => {
469
+ isOpen = false;
470
+ showMonthSelector = false;
471
+ }
472
+ })}
473
+ </div>
474
+ {/if}
461
475
  </div>
462
476
  {/if}
463
477
  </div>
@@ -466,7 +480,7 @@
466
480
  @component
467
481
  [Go to docs](https://flowbite-svelte.com/)
468
482
  ## Type
469
- [DatepickerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L451)
483
+ [DatepickerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L458)
470
484
  ## Props
471
485
  @prop value = $bindable()
472
486
  @prop defaultDate = null
@@ -499,4 +513,5 @@
499
513
  @prop monthBtn = "text-gray-700 dark:text-gray-300"
500
514
  @prop class: className
501
515
  @prop elementRef = $bindable()
516
+ @prop actionSlot
502
517
  -->
@@ -2,7 +2,7 @@ import { type DatepickerProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DatepickerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L451)
5
+ * [DatepickerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L458)
6
6
  * ## Props
7
7
  * @prop value = $bindable()
8
8
  * @prop defaultDate = null
@@ -35,6 +35,7 @@ import { type DatepickerProps } from "..";
35
35
  * @prop monthBtn = "text-gray-700 dark:text-gray-300"
36
36
  * @prop class: className
37
37
  * @prop elementRef = $bindable()
38
+ * @prop actionSlot
38
39
  */
39
40
  declare const Datepicker: import("svelte").Component<DatepickerProps, {}, "value" | "rangeFrom" | "rangeTo" | "elementRef">;
40
41
  type Datepicker = ReturnType<typeof Datepicker>;
@@ -128,6 +128,7 @@ export declare const datepicker: import("tailwind-variants").TVReturnType<{
128
128
  nav: string;
129
129
  dayButton: string;
130
130
  monthButton: string;
131
+ actionSlot: string;
131
132
  }, undefined, {
132
133
  color: {
133
134
  primary: {
@@ -255,6 +256,7 @@ export declare const datepicker: import("tailwind-variants").TVReturnType<{
255
256
  nav: string;
256
257
  dayButton: string;
257
258
  monthButton: string;
259
+ actionSlot: string;
258
260
  }, import("tailwind-variants").TVReturnType<{
259
261
  color: {
260
262
  primary: {
@@ -382,4 +384,5 @@ export declare const datepicker: import("tailwind-variants").TVReturnType<{
382
384
  nav: string;
383
385
  dayButton: string;
384
386
  monthButton: string;
387
+ actionSlot: string;
385
388
  }, undefined, unknown, unknown, undefined>>;
@@ -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",
@@ -11,7 +11,8 @@ export const datepicker = tv({
11
11
  grid: "grid grid-cols-7 gap-1 w-64",
12
12
  nav: "mb-4 flex items-center justify-between",
13
13
  dayButton: "h-8 w-full block flex-1 leading-9 border-0 rounded-lg cursor-pointer text-center font-semibold text-sm day p-0",
14
- monthButton: "rounded-lg px-3 py-2 text-sm hover:bg-gray-100 focus:ring-2 focus:ring-blue-500 dark:hover:bg-gray-700"
14
+ monthButton: "rounded-lg px-3 py-2 text-sm hover:bg-gray-100 focus:ring-2 focus:ring-blue-500 dark:hover:bg-gray-700",
15
+ actionSlot: ""
15
16
  },
16
17
  variants: {
17
18
  color: {
@@ -39,7 +39,7 @@
39
39
  @component
40
40
  [Go to docs](https://flowbite-svelte.com/)
41
41
  ## Type
42
- [AndroidProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L505)
42
+ [AndroidProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L513)
43
43
  ## Props
44
44
  @prop children
45
45
  @prop class: className
@@ -2,7 +2,7 @@ import { type AndroidProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [AndroidProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L505)
5
+ * [AndroidProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L513)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -36,7 +36,7 @@
36
36
  @component
37
37
  [Go to docs](https://flowbite-svelte.com/)
38
38
  ## Type
39
- [DefaultMockupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L516)
39
+ [DefaultMockupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L524)
40
40
  ## Props
41
41
  @prop children
42
42
  @prop class: className
@@ -2,7 +2,7 @@ import { type DefaultMockupProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DefaultMockupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L516)
5
+ * [DefaultMockupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L524)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -32,7 +32,7 @@
32
32
  @component
33
33
  [Go to docs](https://flowbite-svelte.com/)
34
34
  ## Type
35
- [DesktopProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L489)
35
+ [DesktopProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L497)
36
36
  ## Props
37
37
  @prop children
38
38
  @prop class: className
@@ -2,7 +2,7 @@ import { type DesktopProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DesktopProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L489)
5
+ * [DesktopProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L497)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -32,7 +32,7 @@
32
32
  @component
33
33
  [Go to docs](https://flowbite-svelte.com/)
34
34
  ## Type
35
- [DeviceMockupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L484)
35
+ [DeviceMockupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L492)
36
36
  ## Props
37
37
  @prop children
38
38
  @prop device = "default"
@@ -3,7 +3,7 @@ import type { DeviceMockupProps } from "../types";
3
3
  /**
4
4
  * [Go to docs](https://flowbite-svelte.com/)
5
5
  * ## Type
6
- * [DeviceMockupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L484)
6
+ * [DeviceMockupProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L492)
7
7
  * ## Props
8
8
  * @prop children
9
9
  * @prop device = "default"
@@ -36,7 +36,7 @@
36
36
  @component
37
37
  [Go to docs](https://flowbite-svelte.com/)
38
38
  ## Type
39
- [IosProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L526)
39
+ [IosProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L534)
40
40
  ## Props
41
41
  @prop children
42
42
  @prop class: className
@@ -2,7 +2,7 @@ import { type IosProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [IosProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L526)
5
+ * [IosProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L534)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -36,7 +36,7 @@
36
36
  @component
37
37
  [Go to docs](https://flowbite-svelte.com/)
38
38
  ## Type
39
- [LaptopProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L497)
39
+ [LaptopProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L505)
40
40
  ## Props
41
41
  @prop children
42
42
  @prop class: className
@@ -2,7 +2,7 @@ import { type LaptopProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [LaptopProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L497)
5
+ * [LaptopProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L505)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -37,7 +37,7 @@
37
37
  @component
38
38
  [Go to docs](https://flowbite-svelte.com/)
39
39
  ## Type
40
- [SmartwatchProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L536)
40
+ [SmartwatchProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L544)
41
41
  ## Props
42
42
  @prop children
43
43
  @prop class: className
@@ -2,7 +2,7 @@ import { type SmartwatchProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [SmartwatchProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L536)
5
+ * [SmartwatchProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L544)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -36,7 +36,7 @@
36
36
  @component
37
37
  [Go to docs](https://flowbite-svelte.com/)
38
38
  ## Type
39
- [TabletProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L546)
39
+ [TabletProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L554)
40
40
  ## Props
41
41
  @prop children
42
42
  @prop class: className
@@ -2,7 +2,7 @@ import { type TabletProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [TabletProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L546)
5
+ * [TabletProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L554)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -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) {
@@ -134,7 +138,7 @@
134
138
  @component
135
139
  [Go to docs](https://flowbite-svelte.com/)
136
140
  ## Type
137
- [DialogProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L558)
141
+ [DialogProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L566)
138
142
  ## Props
139
143
  @prop children
140
144
  @prop onaction = ()
@@ -2,7 +2,7 @@ import { type DialogProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DialogProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L558)
5
+ * [DialogProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L566)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop onaction = ()
@@ -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,34 +42,64 @@
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/)
58
93
  ## Type
59
- [DrawerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L572)
94
+ [DrawerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L580)
60
95
  ## Props
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
@@ -2,13 +2,15 @@ import { type DrawerProps } from "..";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [DrawerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L572)
5
+ * [DrawerProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L580)
6
6
  * ## Props
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#L588)
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#L588)
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#L590)
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#L590)
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>>;