flowbite-svelte 0.44.19 → 0.44.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +2 -2
  2. package/dist/accordion/Accordion.svelte.d.ts +0 -2
  3. package/dist/accordion/Accordion.svelte.d.ts.map +1 -1
  4. package/dist/accordion/AccordionItem.svelte +4 -4
  5. package/dist/accordion/AccordionItem.svelte.d.ts +2 -2
  6. package/dist/alert/Alert.svelte +17 -35
  7. package/dist/alert/Alert.svelte.d.ts +8 -5
  8. package/dist/alert/Alert.svelte.d.ts.map +1 -1
  9. package/dist/avatar/Avatar.svelte +1 -1
  10. package/dist/badge/Badge.svelte +10 -25
  11. package/dist/badge/Badge.svelte.d.ts +7 -5
  12. package/dist/badge/Badge.svelte.d.ts.map +1 -1
  13. package/dist/banner/Banner.svelte +6 -6
  14. package/dist/bottom-navigation/BottomNav.svelte +8 -8
  15. package/dist/bottom-navigation/BottomNavItem.svelte +2 -2
  16. package/dist/breadcrumb/Breadcrumb.svelte +2 -2
  17. package/dist/breadcrumb/Breadcrumb.svelte.d.ts +1 -1
  18. package/dist/breadcrumb/BreadcrumbItem.svelte +6 -6
  19. package/dist/breadcrumb/BreadcrumbItem.svelte.d.ts +2 -2
  20. package/dist/buttons/Button.svelte +3 -39
  21. package/dist/buttons/Button.svelte.d.ts.map +1 -1
  22. package/dist/buttons/GradientButton.svelte +1 -1
  23. package/dist/cards/Card.svelte +1 -1
  24. package/dist/cards/Card.svelte.d.ts +0 -2
  25. package/dist/cards/Card.svelte.d.ts.map +1 -1
  26. package/dist/carousel/Carousel.svelte +0 -10
  27. package/dist/carousel/Carousel.svelte.d.ts.map +1 -1
  28. package/dist/carousel/ControlButton.svelte +1 -1
  29. package/dist/carousel/Indicators.svelte +1 -1
  30. package/dist/darkmode/DarkMode.svelte +6 -3
  31. package/dist/darkmode/DarkMode.svelte.d.ts.map +1 -1
  32. package/dist/datepicker/Datepicker.svelte +5 -5
  33. package/dist/datepicker/Datepicker.svelte.d.ts +1 -1
  34. package/dist/drawer/Drawer.svelte +5 -5
  35. package/dist/drawer/Drawer.svelte.d.ts +2 -2
  36. package/dist/dropdown/Dropdown.svelte.d.ts +0 -2
  37. package/dist/dropdown/Dropdown.svelte.d.ts.map +1 -1
  38. package/dist/footer/FooterBrand.svelte +2 -2
  39. package/dist/footer/FooterBrand.svelte.d.ts +1 -1
  40. package/dist/footer/FooterCopyright.svelte +1 -1
  41. package/dist/footer/FooterLink.svelte +2 -2
  42. package/dist/footer/FooterLink.svelte.d.ts +1 -1
  43. package/dist/forms/Checkbox.svelte +2 -2
  44. package/dist/forms/Checkbox.svelte.d.ts +1 -1
  45. package/dist/forms/FloatingLabelInput.svelte +3 -3
  46. package/dist/forms/Input.svelte +7 -7
  47. package/dist/forms/Input.svelte.d.ts +1 -1
  48. package/dist/forms/InputAddon.svelte +3 -3
  49. package/dist/forms/Label.svelte +2 -2
  50. package/dist/forms/Label.svelte.d.ts +1 -1
  51. package/dist/forms/MultiSelect.svelte +29 -34
  52. package/dist/forms/MultiSelect.svelte.d.ts +0 -1
  53. package/dist/forms/MultiSelect.svelte.d.ts.map +1 -1
  54. package/dist/forms/Radio.svelte +2 -2
  55. package/dist/forms/Radio.svelte.d.ts +1 -1
  56. package/dist/forms/Search.svelte +1 -1
  57. package/dist/forms/Textarea.svelte +1 -1
  58. package/dist/forms/Toggle.svelte +4 -4
  59. package/dist/index.d.ts +1 -0
  60. package/dist/index.js +1 -0
  61. package/dist/indicators/Indicator.svelte +15 -15
  62. package/dist/list-group/Listgroup.svelte +7 -6
  63. package/dist/list-group/Listgroup.svelte.d.ts +2 -3
  64. package/dist/list-group/Listgroup.svelte.d.ts.map +1 -1
  65. package/dist/list-group/ListgroupItem.svelte +4 -2
  66. package/dist/list-group/ListgroupItem.svelte.d.ts +2 -0
  67. package/dist/list-group/ListgroupItem.svelte.d.ts.map +1 -1
  68. package/dist/marquee/Marquee.svelte +4 -11
  69. package/dist/mega-menu/MegaMenu.svelte.d.ts +0 -2
  70. package/dist/mega-menu/MegaMenu.svelte.d.ts.map +1 -1
  71. package/dist/modal/Modal.svelte +12 -7
  72. package/dist/modal/Modal.svelte.d.ts +1 -3
  73. package/dist/modal/Modal.svelte.d.ts.map +1 -1
  74. package/dist/navbar/NavHamburger.svelte +1 -1
  75. package/dist/navbar/NavLi.svelte +1 -1
  76. package/dist/navbar/NavUl.svelte +2 -2
  77. package/dist/navbar/NavUl.svelte.d.ts +1 -1
  78. package/dist/navbar/Navbar.svelte.d.ts +0 -2
  79. package/dist/navbar/Navbar.svelte.d.ts.map +1 -1
  80. package/dist/pagination/Pagination.svelte +5 -5
  81. package/dist/pagination/Pagination.svelte.d.ts +1 -1
  82. package/dist/popover/Popover.svelte.d.ts +0 -2
  83. package/dist/popover/Popover.svelte.d.ts.map +1 -1
  84. package/dist/rating/Rating.svelte +1 -1
  85. package/dist/rating/RatingComment.svelte +5 -5
  86. package/dist/rating/Review.svelte +3 -3
  87. package/dist/rating/Review.svelte.d.ts +1 -1
  88. package/dist/rating/ScoreRating.svelte +6 -6
  89. package/dist/rating/ScoreRating.svelte.d.ts +2 -2
  90. package/dist/sidebar/SidebarBrand.svelte +4 -4
  91. package/dist/sidebar/SidebarBrand.svelte.d.ts +2 -2
  92. package/dist/sidebar/SidebarCta.svelte +2 -2
  93. package/dist/sidebar/SidebarCta.svelte.d.ts +1 -1
  94. package/dist/sidebar/SidebarDropdownItem.svelte +4 -4
  95. package/dist/sidebar/SidebarDropdownItem.svelte.d.ts +2 -2
  96. package/dist/sidebar/SidebarDropdownWrapper.svelte +2 -2
  97. package/dist/sidebar/SidebarDropdownWrapper.svelte.d.ts +1 -1
  98. package/dist/sidebar/SidebarItem.svelte +2 -2
  99. package/dist/sidebar/SidebarItem.svelte.d.ts +1 -1
  100. package/dist/skeleton/CardPlaceholder.svelte +1 -1
  101. package/dist/skeleton/ImagePlaceholder.svelte +2 -2
  102. package/dist/skeleton/ImagePlaceholder.svelte.d.ts +1 -1
  103. package/dist/skeleton/TestimonialPlaceholder.svelte +2 -2
  104. package/dist/skeleton/TextPlaceholder.svelte +6 -6
  105. package/dist/skeleton/WidgetPlaceholder.svelte +1 -1
  106. package/dist/speed-dial/SpeedDial.svelte +2 -2
  107. package/dist/speed-dial/SpeedDial.svelte.d.ts +1 -1
  108. package/dist/speed-dial/SpeedDialButton.svelte +2 -2
  109. package/dist/speed-dial/SpeedDialButton.svelte.d.ts +1 -1
  110. package/dist/table/TableSearch.svelte +4 -4
  111. package/dist/table/TableSearch.svelte.d.ts +2 -2
  112. package/dist/tabs/Tabs.svelte +4 -4
  113. package/dist/tabs/Tabs.svelte.d.ts +1 -1
  114. package/dist/timeline/Activity.svelte +2 -2
  115. package/dist/timeline/Activity.svelte.d.ts +1 -1
  116. package/dist/timeline/ActivityItem.svelte +4 -4
  117. package/dist/timeline/ActivityItem.svelte.d.ts +2 -2
  118. package/dist/timeline/GroupItem.svelte +4 -4
  119. package/dist/timeline/GroupItem.svelte.d.ts +1 -1
  120. package/dist/timeline/Timeline.svelte +3 -3
  121. package/dist/timeline/TimelineItem.svelte +6 -6
  122. package/dist/toast/Toast.svelte +21 -32
  123. package/dist/toast/Toast.svelte.d.ts +7 -6
  124. package/dist/toast/Toast.svelte.d.ts.map +1 -1
  125. package/dist/toolbar/Toolbar.svelte +1 -1
  126. package/dist/toolbar/Toolbar.svelte.d.ts +0 -2
  127. package/dist/toolbar/Toolbar.svelte.d.ts.map +1 -1
  128. package/dist/toolbar/ToolbarGroup.svelte +2 -2
  129. package/dist/toolbar/ToolbarGroup.svelte.d.ts +1 -1
  130. package/dist/tooltip/Tooltip.svelte.d.ts +0 -2
  131. package/dist/tooltip/Tooltip.svelte.d.ts.map +1 -1
  132. package/dist/types.d.ts +2 -0
  133. package/dist/types.d.ts.map +1 -1
  134. package/dist/typography/Blockquote.svelte +2 -2
  135. package/dist/typography/Blockquote.svelte.d.ts +1 -1
  136. package/dist/typography/Hr.svelte +6 -6
  137. package/dist/typography/Hr.svelte.d.ts +3 -3
  138. package/dist/typography/P.svelte +2 -2
  139. package/dist/typography/P.svelte.d.ts +1 -1
  140. package/dist/utils/CloseButton.svelte +1 -1
  141. package/dist/utils/Frame.svelte +3 -10
  142. package/dist/utils/Frame.svelte.d.ts +0 -5
  143. package/dist/utils/Frame.svelte.d.ts.map +1 -1
  144. package/dist/utils/Popper.svelte +7 -6
  145. package/dist/utils/Popper.svelte.d.ts +3 -2
  146. package/dist/utils/Popper.svelte.d.ts.map +1 -1
  147. package/dist/utils/TransitionFrame.svelte +37 -0
  148. package/dist/utils/TransitionFrame.svelte.d.ts +43 -0
  149. package/dist/utils/TransitionFrame.svelte.d.ts.map +1 -0
  150. package/package.json +22 -18
  151. package/dist/utils/createEventDispatcher.d.ts +0 -2
  152. package/dist/utils/createEventDispatcher.d.ts.map +0 -1
  153. package/dist/utils/createEventDispatcher.js +0 -22
@@ -10,7 +10,7 @@ export let datepickerFormat = 'mm/dd/yyyy';
10
10
  export let datepickerOrientation = 'bottom';
11
11
  export let datepickerTitle = 'Flowbite datepicker';
12
12
  export let attribute = '';
13
- export let inputClass = 'bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500';
13
+ export let inputClass = 'bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full ps-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500';
14
14
  $: setAttribute = (node, params) => {
15
15
  if (params) {
16
16
  node.setAttribute(params, '');
@@ -26,14 +26,14 @@ $: setAttribute = (node, params) => {
26
26
  {#if range}
27
27
  <div date-rangepicker class="flex items-center">
28
28
  <div class="relative">
29
- <div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
29
+ <div class="flex absolute inset-y-0 start-0 items-center ps-3 pointer-events-none">
30
30
  <Calendar />
31
31
  </div>
32
32
  <input name="start" type="text" class={inputClass} placeholder="Select date start" />
33
33
  </div>
34
34
  <span class="mx-4 text-gray-500">to</span>
35
35
  <div class="relative">
36
- <div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
36
+ <div class="flex absolute inset-y-0 start-0 items-center ps-3 pointer-events-none">
37
37
  <Calendar />
38
38
  </div>
39
39
  <input name="end" type="text" class={inputClass} placeholder="Select date end" />
@@ -41,7 +41,7 @@ $: setAttribute = (node, params) => {
41
41
  </div>
42
42
  {:else}
43
43
  <div class="relative">
44
- <div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
44
+ <div class="flex absolute inset-y-0 start-0 items-center ps-3 pointer-events-none">
45
45
  <Calendar />
46
46
  </div>
47
47
  {#if datepickerButtons}
@@ -64,5 +64,5 @@ $: setAttribute = (node, params) => {
64
64
  @prop export let datepickerOrientation: string = 'bottom';
65
65
  @prop export let datepickerTitle: string = 'Flowbite datepicker';
66
66
  @prop export let attribute: string = '';
67
- @prop export let inputClass: string = 'bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500';
67
+ @prop export let inputClass: string = 'bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full ps-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500';
68
68
  -->
@@ -41,7 +41,7 @@ export type DatepickerSlots = typeof __propDef.slots;
41
41
  * @prop export let datepickerOrientation: string = 'bottom';
42
42
  * @prop export let datepickerTitle: string = 'Flowbite datepicker';
43
43
  * @prop export let attribute: string = '';
44
- * @prop export let inputClass: string = 'bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500';
44
+ * @prop export let inputClass: string = 'bg-gray-50 border border-gray-300 text-gray-900 sm:text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full ps-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500';
45
45
  */
46
46
  export default class Datepicker extends SvelteComponent<DatepickerProps, DatepickerEvents, DatepickerSlots> {
47
47
  }
@@ -4,8 +4,8 @@ import { clickOutside } from '../utils/clickOutside';
4
4
  export let activateClickOutside = true;
5
5
  export let hidden = true;
6
6
  export let position = 'fixed';
7
- export let leftOffset = 'inset-y-0 left-0';
8
- export let rightOffset = 'inset-y-0 right-0';
7
+ export let leftOffset = 'inset-y-0 start-0';
8
+ export let rightOffset = 'inset-y-0 end-0';
9
9
  export let topOffset = 'inset-x-0 top-0';
10
10
  export let bottomOffset = 'inset-x-0 bottom-0';
11
11
  export let width = 'w-80';
@@ -39,7 +39,7 @@ const handleDrawer = () => {
39
39
  hidden = !hidden;
40
40
  };
41
41
  const handleClickOutside = () => activateClickOutside && !hidden && handleDrawer();
42
- let backdropDivClass = twMerge('fixed top-0 left-0 z-50 w-full h-full', backdrop && bgColor, backdrop && bgOpacity);
42
+ let backdropDivClass = twMerge('fixed top-0 start-0 z-50 w-full h-full', backdrop && bgColor, backdrop && bgOpacity);
43
43
  function clickOutsideWrapper(node, callback) {
44
44
  return activateClickOutside ? clickOutside(node, callback) : undefined;
45
45
  }
@@ -64,8 +64,8 @@ function clickOutsideWrapper(node, callback) {
64
64
  @prop export let activateClickOutside: boolean = true;
65
65
  @prop export let hidden: boolean = true;
66
66
  @prop export let position: 'fixed' | 'absolute' = 'fixed';
67
- @prop export let leftOffset: string = 'inset-y-0 left-0';
68
- @prop export let rightOffset: string = 'inset-y-0 right-0';
67
+ @prop export let leftOffset: string = 'inset-y-0 start-0';
68
+ @prop export let rightOffset: string = 'inset-y-0 end-0';
69
69
  @prop export let topOffset: string = 'inset-x-0 top-0';
70
70
  @prop export let bottomOffset: string = 'inset-x-0 bottom-0';
71
71
  @prop export let width: string = 'w-80';
@@ -38,8 +38,8 @@ export type DrawerSlots = typeof __propDef.slots;
38
38
  * @prop export let activateClickOutside: boolean = true;
39
39
  * @prop export let hidden: boolean = true;
40
40
  * @prop export let position: 'fixed' | 'absolute' = 'fixed';
41
- * @prop export let leftOffset: string = 'inset-y-0 left-0';
42
- * @prop export let rightOffset: string = 'inset-y-0 right-0';
41
+ * @prop export let leftOffset: string = 'inset-y-0 start-0';
42
+ * @prop export let rightOffset: string = 'inset-y-0 end-0';
43
43
  * @prop export let topOffset: string = 'inset-x-0 top-0';
44
44
  * @prop export let bottomOffset: string = 'inset-x-0 bottom-0';
45
45
  * @prop export let width: string = 'w-80';
@@ -9,8 +9,6 @@ declare const __propDef: {
9
9
  rounded?: boolean | undefined;
10
10
  border?: boolean | undefined;
11
11
  shadow?: boolean | undefined;
12
- transition?: ((node: HTMLElement, params: any) => import("svelte/transition").TransitionConfig) | undefined;
13
- params?: object | undefined;
14
12
  node?: HTMLElement | undefined;
15
13
  use?: import("svelte/action").Action<HTMLElement, any, Record<never, any>> | undefined;
16
14
  options?: object | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/dropdown/Dropdown.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AACC,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA+EJ,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC;AACrD,MAAM,MAAM,aAAa,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,eAAe,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC;CAClG"}
1
+ {"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/dropdown/Dropdown.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AACC,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA+EJ,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC;AACrD,MAAM,MAAM,aAAa,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,eAAe,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC;CAClG"}
@@ -1,7 +1,7 @@
1
1
  <script>import { twMerge } from 'tailwind-merge';
2
2
  export let aClass = 'flex items-center';
3
3
  export let spanClass = 'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
4
- export let imgClass = 'mr-3 h-8';
4
+ export let imgClass = 'me-3 h-8';
5
5
  export let href = '';
6
6
  export let src = '';
7
7
  export let alt = '';
@@ -28,7 +28,7 @@ let imgCls = twMerge(imgClass, $$props.classImg);
28
28
  ## Props
29
29
  @prop export let aClass: string = 'flex items-center';
30
30
  @prop export let spanClass: string = 'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
31
- @prop export let imgClass: string = 'mr-3 h-8';
31
+ @prop export let imgClass: string = 'me-3 h-8';
32
32
  @prop export let href: string = '';
33
33
  @prop export let src: string = '';
34
34
  @prop export let alt: string = '';
@@ -26,7 +26,7 @@ export type FooterBrandSlots = typeof __propDef.slots;
26
26
  * ## Props
27
27
  * @prop export let aClass: string = 'flex items-center';
28
28
  * @prop export let spanClass: string = 'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
29
- * @prop export let imgClass: string = 'mr-3 h-8';
29
+ * @prop export let imgClass: string = 'me-3 h-8';
30
30
  * @prop export let href: string = '';
31
31
  * @prop export let src: string = '';
32
32
  * @prop export let alt: string = '';
@@ -17,7 +17,7 @@ let aCls = twMerge(aClass, $$props.classA);
17
17
  {by}
18
18
  </a>
19
19
  {:else}
20
- <span class="ml-1">{by}</span>
20
+ <span class="ms-1">{by}</span>
21
21
  {/if}
22
22
  {copyrightMessage}
23
23
  </span>
@@ -1,5 +1,5 @@
1
1
  <script>import { twMerge } from 'tailwind-merge';
2
- export let liClass = 'mr-4 last:mr-0 md:mr-6';
2
+ export let liClass = 'me-4 last:me-0 md:me-6';
3
3
  export let aClass = 'hover:underline';
4
4
  export let href = '';
5
5
  export let target = undefined;
@@ -17,7 +17,7 @@ let aCls = twMerge(aClass, $$props.classA);
17
17
  @component
18
18
  [Go to docs](https://flowbite-svelte.com/)
19
19
  ## Props
20
- @prop export let liClass: string = 'mr-4 last:mr-0 md:mr-6';
20
+ @prop export let liClass: string = 'me-4 last:me-0 md:me-6';
21
21
  @prop export let aClass: string = 'hover:underline';
22
22
  @prop export let href: string = '';
23
23
  @prop export let target: string | undefined = undefined;
@@ -20,7 +20,7 @@ export type FooterLinkSlots = typeof __propDef.slots;
20
20
  /**
21
21
  * [Go to docs](https://flowbite-svelte.com/)
22
22
  * ## Props
23
- * @prop export let liClass: string = 'mr-4 last:mr-0 md:mr-6';
23
+ * @prop export let liClass: string = 'me-4 last:me-0 md:me-6';
24
24
  * @prop export let aClass: string = 'hover:underline';
25
25
  * @prop export let href: string = '';
26
26
  * @prop export let target: string | undefined = undefined;
@@ -9,7 +9,7 @@ export let inline = false;
9
9
  export let group = [];
10
10
  export let value = 'on';
11
11
  export let checked = undefined;
12
- export let spacing = 'mr-2';
12
+ export let spacing = 'me-2';
13
13
  // tinted if put in component having its own background
14
14
  let background = getContext('background');
15
15
  // react on external group changes
@@ -60,5 +60,5 @@ function onChange() {
60
60
  @prop export let group: (string | number)[] = [];
61
61
  @prop export let value: string | number = 'on';
62
62
  @prop export let checked: boolean | undefined = undefined;
63
- @prop export let spacing: string = 'mr-2';
63
+ @prop export let spacing: string = 'me-2';
64
64
  -->
@@ -42,7 +42,7 @@ export type CheckboxSlots = typeof __propDef.slots;
42
42
  * @prop export let group: (string | number)[] = [];
43
43
  * @prop export let value: string | number = 'on';
44
44
  * @prop export let checked: boolean | undefined = undefined;
45
- * @prop export let spacing: string = 'mr-2';
45
+ * @prop export let spacing: string = 'me-2';
46
46
  */
47
47
  export default class Checkbox extends SvelteComponent<CheckboxProps, CheckboxEvents, CheckboxSlots> {
48
48
  }
@@ -45,9 +45,9 @@ const inputClasses = {
45
45
  standard: 'block w-full text-sm text-gray-900 bg-transparent border-0 border-b-2 appearance-none dark:text-white focus:outline-none focus:ring-0 peer'
46
46
  };
47
47
  const labelClasses = {
48
- filled: 'absolute text-sm duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-[0] left-2.5 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4',
49
- outlined: 'absolute text-sm duration-300 transform -translate-y-4 scale-75 top-2 z-10 origin-[0] bg-white dark:bg-gray-900 px-2 peer-focus:px-2 peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:top-1/2 peer-focus:top-2 peer-focus:scale-75 peer-focus:-translate-y-4 left-1',
50
- standard: 'absolute text-sm duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:left-0 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6'
48
+ filled: 'absolute text-sm duration-300 transform -translate-y-4 scale-75 top-4 z-10 origin-left rtl:origin-right start-2.5 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-4',
49
+ outlined: 'absolute text-sm duration-300 transform -translate-y-4 scale-75 top-2 z-10 origin-left rtl:origin-right bg-white dark:bg-gray-900 px-2 peer-focus:px-2 peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:top-1/2 peer-focus:top-2 peer-focus:scale-75 peer-focus:-translate-y-4 start-1',
50
+ standard: 'absolute text-sm duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-left rtl:origin-right peer-focus:start-0 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6'
51
51
  };
52
52
  const inputColorClasses = {
53
53
  base: 'border-gray-300 dark:border-gray-600 dark:focus:border-primary-500 focus:border-primary-600',
@@ -9,7 +9,7 @@ import { getContext } from 'svelte';
9
9
  export let type = 'text';
10
10
  export let value = undefined;
11
11
  export let size = undefined;
12
- export let defaultClass = 'block w-full disabled:cursor-not-allowed disabled:opacity-50';
12
+ export let defaultClass = 'block w-full disabled:cursor-not-allowed disabled:opacity-50 rtl:text-right';
13
13
  export let color = 'base';
14
14
  export let floatClass = 'flex absolute inset-y-0 items-center text-gray-500 dark:text-gray-400';
15
15
  const borderClasses = {
@@ -33,20 +33,20 @@ const colorClasses = {
33
33
  let background = getContext('background');
34
34
  let group = getContext('group');
35
35
  const textSizes = { sm: 'sm:text-xs', md: 'text-sm', lg: 'sm:text-base' };
36
- const leftPadding = { sm: 'pl-9', md: 'pl-10', lg: 'pl-11' };
37
- const rightPadding = { sm: 'pr-9', md: 'pr-10', lg: 'pr-11' };
36
+ const leftPadding = { sm: 'ps-9', md: 'ps-10', lg: 'ps-11' };
37
+ const rightPadding = { sm: 'pe-9', md: 'pe-10', lg: 'pe-11' };
38
38
  const inputPadding = { sm: 'p-2', md: 'p-2.5', lg: 'p-3' };
39
39
  $: _size = size || clampSize(group?.size) || 'md';
40
40
  let inputClass;
41
41
  $: {
42
42
  const _color = color === 'base' && background ? 'tinted' : color;
43
- inputClass = twMerge([defaultClass, ($$slots.left && leftPadding[_size]) || ($$slots.right && rightPadding[_size]) || inputPadding[_size], ringClasses[color], colorClasses[_color], borderClasses[_color], textSizes[_size], group || 'rounded-lg', group && 'first:rounded-l-lg last:rounded-r-lg', group && 'border-l-0 first:border-l last:border-r', $$props.class]);
43
+ inputClass = twMerge([defaultClass, inputPadding[_size], ($$slots.left && leftPadding[_size]) || ($$slots.right && rightPadding[_size]), ringClasses[color], colorClasses[_color], borderClasses[_color], textSizes[_size], group || 'rounded-lg', group && 'first:rounded-s-lg last:rounded-e-lg', group && 'border-s-0 first:border-s last:border-e', $$props.class]);
44
44
  }
45
45
  </script>
46
46
 
47
47
  <Wrapper class="relative w-full" show={$$slots.left || $$slots.right}>
48
48
  {#if $$slots.left}
49
- <div class="{twMerge(floatClass, $$props.classLeft)} left-0 pl-2.5 pointer-events-none">
49
+ <div class="{twMerge(floatClass, $$props.classLeft)} start-0 ps-2.5 pointer-events-none">
50
50
  <slot name="left" />
51
51
  </div>
52
52
  {/if}
@@ -54,7 +54,7 @@ $: {
54
54
  <input {...$$restProps} bind:value on:blur on:change on:click on:contextmenu on:focus on:keydown on:keypress on:keyup on:mouseover on:mouseenter on:mouseleave on:paste on:input {...{ type }} class={inputClass} />
55
55
  </slot>
56
56
  {#if $$slots.right}
57
- <div class="{twMerge(floatClass, $$props.classRight)} right-0 pr-2.5"><slot name="right" /></div>
57
+ <div class="{twMerge(floatClass, $$props.classRight)} end-0 pe-2.5"><slot name="right" /></div>
58
58
  {/if}
59
59
  </Wrapper>
60
60
 
@@ -65,7 +65,7 @@ $: {
65
65
  @prop export let type: InputType = 'text';
66
66
  @prop export let value: any = undefined;
67
67
  @prop export let size: FormSizeType | undefined = undefined;
68
- @prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50';
68
+ @prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50 rtl:text-right';
69
69
  @prop export let color: 'base' | 'green' | 'red' = 'base';
70
70
  @prop export let floatClass: string = 'flex absolute inset-y-0 items-center text-gray-500 dark:text-gray-400';
71
71
  -->
@@ -48,7 +48,7 @@ export type InputSlots = typeof __propDef.slots;
48
48
  * @prop export let type: InputType = 'text';
49
49
  * @prop export let value: any = undefined;
50
50
  * @prop export let size: FormSizeType | undefined = undefined;
51
- * @prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50';
51
+ * @prop export let defaultClass: string = 'block w-full disabled:cursor-not-allowed disabled:opacity-50 rtl:text-right';
52
52
  * @prop export let color: 'base' | 'green' | 'red' = 'base';
53
53
  * @prop export let floatClass: string = 'flex absolute inset-y-0 items-center text-gray-500 dark:text-gray-400';
54
54
  */
@@ -14,14 +14,14 @@ const darkBgClasses = {
14
14
  tinted: 'dark:bg-gray-500 dark:text-gray-300'
15
15
  };
16
16
  const divider = {
17
- base: 'dark:border-r-gray-700 dark:last:border-r-gray-600',
18
- tinted: 'dark:border-r-gray-600 dark:last:border-r-gray-500'
17
+ base: 'dark:border-e-gray-700 dark:last:border-e-gray-600',
18
+ tinted: 'dark:border-e-gray-600 dark:last:border-e-gray-500'
19
19
  };
20
20
  const textSizes = { sm: 'sm:text-xs', md: 'text-sm', lg: 'sm:text-base' };
21
21
  const prefixPadding = { sm: 'px-2', md: 'px-3', lg: 'px-4' };
22
22
  // size: explicit, inherited, default
23
23
  $: _size = size || clampSize(group?.size) || 'md';
24
- $: divClass = twMerge(textSizes[_size], prefixPadding[_size], background ? borderClasses['tinted'] : borderClasses['base'], 'text-gray-500 bg-gray-200', background ? darkBgClasses.tinted : darkBgClasses.base, background ? divider.tinted : divider.base, 'inline-flex items-center border-t border-b first:border-l border-r', 'first:rounded-l-lg last:rounded-r-lg', $$props.class);
24
+ $: divClass = twMerge(textSizes[_size], prefixPadding[_size], background ? borderClasses['tinted'] : borderClasses['base'], 'text-gray-500 bg-gray-200', background ? darkBgClasses.tinted : darkBgClasses.base, background ? divider.tinted : divider.base, 'inline-flex items-center border-t border-b first:border-s border-e', 'first:rounded-s-lg last:rounded-e-lg', $$props.class);
25
25
  </script>
26
26
 
27
27
  <div {...$$restProps} class={divClass}>
@@ -1,6 +1,6 @@
1
1
  <script>import { twMerge } from 'tailwind-merge';
2
2
  export let color = 'gray';
3
- export let defaultClass = 'text-sm font-medium block';
3
+ export let defaultClass = 'text-sm rtl:text-right font-medium block';
4
4
  export let show = true;
5
5
  let node;
6
6
  const colorClasses = {
@@ -29,6 +29,6 @@ $: labelClass = twMerge(defaultClass, colorClasses[color], $$props.class);
29
29
  [Go to docs](https://flowbite-svelte.com/)
30
30
  ## Props
31
31
  @prop export let color: 'gray' | 'green' | 'red' | 'disabled' = 'gray';
32
- @prop export let defaultClass: string = 'text-sm font-medium block';
32
+ @prop export let defaultClass: string = 'text-sm rtl:text-right font-medium block';
33
33
  @prop export let show: boolean = true;
34
34
  -->
@@ -20,7 +20,7 @@ export type LabelSlots = typeof __propDef.slots;
20
20
  * [Go to docs](https://flowbite-svelte.com/)
21
21
  * ## Props
22
22
  * @prop export let color: 'gray' | 'green' | 'red' | 'disabled' = 'gray';
23
- * @prop export let defaultClass: string = 'text-sm font-medium block';
23
+ * @prop export let defaultClass: string = 'text-sm rtl:text-right font-medium block';
24
24
  * @prop export let show: boolean = true;
25
25
  */
26
26
  export default class Label extends SvelteComponent<LabelProps, LabelEvents, LabelSlots> {
@@ -1,69 +1,64 @@
1
1
  <script>import Badge from '../badge/Badge.svelte';
2
- import { twMerge } from 'tailwind-merge';
3
2
  import CloseButton from '../utils/CloseButton.svelte';
4
- import { createEventDispatcher } from 'svelte';
5
- import { onMount } from 'svelte';
6
- const dispatch = createEventDispatcher();
3
+ import { twMerge } from 'tailwind-merge';
7
4
  export let items = [];
8
5
  export let value = [];
9
6
  export let size = 'md';
10
7
  export let dropdownClass = '';
11
- let selectItems = [];
8
+ let selectItems = items.filter((x) => value.includes(x.value));
12
9
  let show = false;
13
10
  const sizes = {
14
- sm: 'px-2 py-1',
15
- md: 'px-3 py-2',
16
- lg: 'px-4 py-3'
11
+ sm: 'px-2 py-1 min-h-[2.4rem]',
12
+ md: 'px-3 py-1 min-h-[2.7rem]',
13
+ lg: 'px-4 py-2 min-h-[3.2rem]'
17
14
  };
18
15
  // Container
19
16
  const multiSelectClass = 'relative border border-gray-300 flex items-center rounded-lg gap-2 dark:border-gray-600 focus-within:ring-1 focus-within:border-primary-500 ring-primary-500 dark:focus-within:border-primary-500 dark:ring-primary-500';
20
17
  // Dropdown
21
18
  let multiSelectDropdown;
22
- $: multiSelectDropdown = twMerge('absolute z-50 p-3 flex flex-col gap-1 max-h-64 bg-white border border-gray-300 dark:bg-gray-700 dark:border-gray-600 left-0 top-[calc(100%+1rem)] rounded-lg cursor-pointer overflow-y-scroll w-full', dropdownClass);
19
+ $: multiSelectDropdown = twMerge('absolute z-50 p-3 flex flex-col gap-1 max-h-64 bg-white border border-gray-300 dark:bg-gray-700 dark:border-gray-600 start-0 top-[calc(100%+1rem)] rounded-lg cursor-pointer overflow-y-scroll w-full', dropdownClass);
23
20
  // Items
24
21
  const itemsClass = 'py-2 px-3 rounded-lg text-gray-600 hover:text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:text-gray-300 dark:hover:bg-gray-600';
25
22
  // Selected items
26
23
  const itemsSelectClass = 'bg-gray-100 text-black hover:text-black dark:text-white dark:bg-gray-600 dark:hover:text-white';
27
- onMount(() => {
28
- if (value.length) {
29
- items.map((item) => {
30
- if (value.includes(item.value)) {
31
- selectItems.push(item);
32
- }
33
- });
34
- }
35
- });
36
24
  const selectOption = (select) => {
37
- if (selectItems.includes(select)) {
25
+ if (value.includes(select.value)) {
38
26
  clearThisOption(select);
39
27
  }
40
28
  else {
41
- selectItems.push(select);
42
- value.push(select.value);
43
- selectItems = selectItems;
44
- value = value;
45
- dispatch('selected', selectItems);
29
+ if (!value.includes(select.value))
30
+ value = [...value, select.value];
46
31
  }
47
32
  };
48
33
  const clearAll = (e) => {
49
34
  e.stopPropagation();
50
- selectItems = [];
51
35
  value = [];
52
- dispatch('selected', selectItems);
53
36
  };
54
37
  const clearThisOption = (select) => {
55
- if (selectItems.includes(select)) {
56
- selectItems = selectItems.filter((o) => o !== select);
57
- dispatch('selected', selectItems);
58
- }
59
38
  if (value.includes(select.value)) {
60
39
  value = value.filter((o) => o !== select.value);
61
40
  }
62
41
  };
42
+ function create_custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {
43
+ return new CustomEvent(type, { detail, bubbles, cancelable });
44
+ }
45
+ function init(node, value) {
46
+ const inital = value; // hack for below
47
+ return {
48
+ update: (value) => {
49
+ selectItems = items.filter((x) => value.includes(x.value));
50
+ // avoid initial event emitting
51
+ if (value !== inital) {
52
+ node.dispatchEvent(create_custom_event('input', selectItems));
53
+ node.dispatchEvent(create_custom_event('change', selectItems));
54
+ }
55
+ }
56
+ };
57
+ }
63
58
  </script>
64
59
 
65
60
  <!-- Hidden select for form submission -->
66
- <select {...$$restProps} bind:value hidden multiple on:change on:input>
61
+ <select use:init={value} {...$$restProps} {value} hidden multiple on:change on:input>
67
62
  {#each items as { value, name }}
68
63
  <option {value}>{name}</option>
69
64
  {/each}
@@ -81,12 +76,12 @@ const clearThisOption = (select) => {
81
76
  {/each}
82
77
  {/if}
83
78
  </span>
84
- <div class="flex ml-auto gap-2 items-center">
79
+ <div class="flex ms-auto gap-2 items-center">
85
80
  {#if selectItems.length}
86
- <CloseButton on:click={clearAll} color="none" class="p-0 focus:ring-gray-400" />
81
+ <CloseButton {size} on:click={clearAll} color="none" class="p-0 focus:ring-gray-400" />
87
82
  {/if}
88
83
  <div class="w-[1px] bg-gray-300 dark:bg-gray-600" />
89
- <svg class="cursor-pointer h-3 w-3 ml-1 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
84
+ <svg class="cursor-pointer h-3 w-3 ms-1 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
90
85
  <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d={show ? 'm1 5 4-4 4 4' : 'm9 1-4 4-4-4'} />
91
86
  </svg>
92
87
  </div>
@@ -12,7 +12,6 @@ declare const __propDef: {
12
12
  change: Event;
13
13
  input: Event;
14
14
  click: MouseEvent;
15
- selected: CustomEvent<any>;
16
15
  } & {
17
16
  [evt: string]: CustomEvent<any>;
18
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/forms/MultiSelect.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AAGD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA8H/D,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;CAA+D,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,eAAe,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;CAC9G"}
1
+ {"version":3,"file":"MultiSelect.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/forms/MultiSelect.svelte"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAEvC;AAID,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAqH/D,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAA+D,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC;AACxD,MAAM,MAAM,gBAAgB,GAAG,OAAO,SAAS,CAAC,KAAK,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,eAAe,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;CAC9G"}
@@ -12,7 +12,7 @@ const colorClasses = {
12
12
  blue: 'text-blue-600 focus:ring-blue-500 dark:focus:ring-blue-600'
13
13
  };
14
14
  export const labelClass = (inline, extraClass) => twMerge(inline ? 'inline-flex' : 'flex', 'items-center', extraClass);
15
- export let spacing = 'mr-2';
15
+ export let spacing = 'me-2';
16
16
  export const inputClass = (custom, color, rounded, tinted, extraClass) => twMerge('w-4 h-4 bg-gray-100 border-gray-300 dark:ring-offset-gray-800 focus:ring-2', spacing, tinted ? 'dark:bg-gray-600 dark:border-gray-500' : 'dark:bg-gray-700 dark:border-gray-600', custom && 'sr-only peer', rounded && 'rounded', colorClasses[color], extraClass);
17
17
  </script>
18
18
 
@@ -36,7 +36,7 @@ let background = getContext('background');
36
36
  @component
37
37
  [Go to docs](https://flowbite-svelte.com/)
38
38
  ## Props
39
- @prop export let spacing: string = 'mr-2';
39
+ @prop export let spacing: string = 'me-2';
40
40
  @prop export let color: FormColorType = 'primary';
41
41
  @prop export let custom: boolean = false;
42
42
  @prop export let inline: boolean = false;
@@ -37,7 +37,7 @@ export type RadioSlots = typeof __propDef.slots;
37
37
  /**
38
38
  * [Go to docs](https://flowbite-svelte.com/)
39
39
  * ## Props
40
- * @prop export let spacing: string = 'mr-2';
40
+ * @prop export let spacing: string = 'me-2';
41
41
  * @prop export let color: FormColorType = 'primary';
42
42
  * @prop export let custom: boolean = false;
43
43
  * @prop export let inline: boolean = false;
@@ -24,7 +24,7 @@ const sizes = {
24
24
  Due to that we need the below slot and Wrapper around
25
25
  -->
26
26
  {#if $$slots.default}
27
- <div class="flex absolute inset-y-0 right-0 items-center text-gray-500 dark:text-gray-400">
27
+ <div class="flex absolute inset-y-0 end-0 items-center text-gray-500 dark:text-gray-400">
28
28
  <slot />
29
29
  </div>
30
30
  {/if}
@@ -14,7 +14,7 @@ let textareaClass;
14
14
  $: textareaClass = wrapped ? wrappedClass : twMerge(wrapperClass, unWrappedClass);
15
15
  const headerClass = (header) => twMerge(header ? 'border-b' : 'border-t', 'py-2 px-3 border-gray-200 dark:border-gray-600');
16
16
  let innerWrapperClass;
17
- $: innerWrapperClass = twMerge(innerWrappedClass, $$slots.footer ? 'rounded-b-lg' : '', $$slots.header ? 'rounded-t-lg' : '');
17
+ $: innerWrapperClass = twMerge(innerWrappedClass, $$slots.footer ? '' : 'rounded-b-lg', $$slots.header ? '' : 'rounded-t-lg');
18
18
  </script>
19
19
 
20
20
  <Wrapper show={wrapped} class={wrapperClass}>
@@ -8,7 +8,7 @@ export let checked = undefined;
8
8
  export let customSize = '';
9
9
  // tinted if put in component having its own background
10
10
  let background = getContext('background');
11
- const common = "mr-3 shrink-0 bg-gray-200 rounded-full peer-focus:ring-4 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:bg-white after:border-gray-300 after:border after:rounded-full after:transition-all";
11
+ const common = "me-3 shrink-0 bg-gray-200 rounded-full peer-focus:ring-4 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:bg-white after:border-gray-300 after:border after:rounded-full after:transition-all";
12
12
  const colors = {
13
13
  primary: 'peer-focus:ring-primary-300 dark:peer-focus:ring-primary-800 peer-checked:bg-primary-600',
14
14
  secondary: 'peer-focus:ring-secondary-300 dark:peer-focus:ring-secondary-800 peer-checked:bg-secondary-600',
@@ -21,9 +21,9 @@ const colors = {
21
21
  blue: 'peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 peer-checked:bg-blue-600'
22
22
  };
23
23
  const sizes = {
24
- small: 'w-9 h-5 after:top-[2px] after:left-[2px] after:h-4 after:w-4',
25
- default: 'w-11 h-6 after:top-0.5 after:left-[2px] after:h-5 after:w-5',
26
- large: 'w-14 h-7 after:top-0.5 after:left-[4px] after:h-6 after:w-6',
24
+ small: 'w-9 h-5 after:top-[2px] after:start-[2px] after:h-4 after:w-4',
25
+ default: 'w-11 h-6 after:top-0.5 after:start-[2px] after:h-5 after:w-5',
26
+ large: 'w-14 h-7 after:top-0.5 after:start-[4px] after:h-6 after:w-6',
27
27
  custom: customSize
28
28
  };
29
29
  let divClass;
package/dist/index.d.ts CHANGED
@@ -133,6 +133,7 @@ export { default as Secondary } from "./typography/Secondary.svelte";
133
133
  export { default as Span } from "./typography/Span.svelte";
134
134
  export { default as CloseButton } from "./utils/CloseButton.svelte";
135
135
  export { default as Frame } from "./utils/Frame.svelte";
136
+ export { default as TransitionFrame } from "./utils/TransitionFrame.svelte";
136
137
  export { default as Video } from "./video/Video.svelte";
137
138
  export * from "./types";
138
139
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -220,6 +220,7 @@ export { default as Span } from './typography/Span.svelte';
220
220
  // utils
221
221
  export { default as CloseButton } from './utils/CloseButton.svelte';
222
222
  export { default as Frame } from './utils/Frame.svelte';
223
+ export { default as TransitionFrame } from './utils/TransitionFrame.svelte';
223
224
 
224
225
  // video
225
226
  export { default as Video } from './video/Video.svelte';
@@ -27,31 +27,31 @@ const sizes = {
27
27
  };
28
28
  const placements = {
29
29
  // top
30
- 'top-left': 'top-0 left-0',
31
- 'top-center': 'top-0 left-1/2 -translate-x-1/2',
32
- 'top-right': 'top-0 right-0',
30
+ 'top-left': 'top-0 start-0',
31
+ 'top-center': 'top-0 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rtl:translate-x-1/2',
32
+ 'top-right': 'top-0 end-0',
33
33
  // center
34
- 'center-left': 'top-1/2 -translate-y-1/2 left-0',
35
- center: 'top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2',
36
- 'center-right': 'top-1/2 -translate-y-1/2 right-0',
34
+ 'center-left': 'top-1/2 -translate-y-1/2 start-0',
35
+ center: 'top-1/2 -translate-y-1/2 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rtl:translate-x-1/2',
36
+ 'center-right': 'top-1/2 -translate-y-1/2 end-0',
37
37
  // bottom
38
- 'bottom-left': 'bottom-0 left-0',
39
- 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',
40
- 'bottom-right': 'bottom-0 right-0'
38
+ 'bottom-left': 'bottom-0 start-0',
39
+ 'bottom-center': 'bottom-0 start-1/2 -translate-x-1/2 rtl:translate-x-1/2 rtl:translate-x-1/2',
40
+ 'bottom-right': 'bottom-0 end-0'
41
41
  };
42
42
  const offsets = {
43
43
  // top
44
- 'top-left': '-translate-x-1/3 -translate-y-1/3',
44
+ 'top-left': '-translate-x-1/3 rtl:translate-x-1/3 -translate-y-1/3',
45
45
  'top-center': '-translate-y-1/3',
46
- 'top-right': 'translate-x-1/3 -translate-y-1/3',
46
+ 'top-right': 'translate-x-1/3 rtl:-translate-x-1/3 -translate-y-1/3',
47
47
  // center
48
- 'center-left': '-translate-x-1/3',
48
+ 'center-left': '-translate-x-1/3 rtl:translate-x-1/3',
49
49
  center: '',
50
- 'center-right': 'translate-x-1/3',
50
+ 'center-right': 'translate-x-1/3 rtl:-translate-x-1/3',
51
51
  // bottom
52
- 'bottom-left': '-translate-x-1/3 translate-y-1/3',
52
+ 'bottom-left': '-translate-x-1/3 rtl:translate-x-1/3 translate-y-1/3',
53
53
  'bottom-center': 'translate-y-1/3',
54
- 'bottom-right': 'translate-x-1/3 translate-y-1/3'
54
+ 'bottom-right': 'translate-x-1/3 rtl:-translate-x-1/3 translate-y-1/3'
55
55
  };
56
56
  let dotClass;
57
57
  $: dotClass = twMerge('flex-shrink-0', rounded ? 'rounded' : 'rounded-full', border && 'border-2 border-white dark:border-gray-800', sizes[size], colors[color], $$slots.default && 'inline-flex items-center justify-center', placement && 'absolute ' + placements[placement], placement && offset && offsets[placement], $$props.class);