flowbite-svelte 1.28.2 → 1.29.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 (105) hide show
  1. package/dist/command-palette/CommandPalette.svelte +1 -1
  2. package/dist/command-palette/CommandPalette.svelte.d.ts +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/kanban/KanbanCard.svelte +1 -1
  6. package/dist/kanban/KanbanCard.svelte.d.ts +1 -1
  7. package/dist/scroll-spy/ScrollSpy.svelte +1 -1
  8. package/dist/scroll-spy/ScrollSpy.svelte.d.ts +1 -1
  9. package/dist/split-pane/Divider.svelte +1 -1
  10. package/dist/split-pane/Divider.svelte.d.ts +1 -1
  11. package/dist/split-pane/Pane.svelte +1 -1
  12. package/dist/split-pane/Pane.svelte.d.ts +1 -1
  13. package/dist/split-pane/SplitPane.svelte +1 -1
  14. package/dist/split-pane/SplitPane.svelte.d.ts +1 -1
  15. package/dist/stepper/BreadcrumbStepper.svelte +118 -33
  16. package/dist/stepper/BreadcrumbStepper.svelte.d.ts +6 -3
  17. package/dist/stepper/CheckmarkIcon.svelte +92 -0
  18. package/dist/stepper/CheckmarkIcon.svelte.d.ts +18 -0
  19. package/dist/stepper/DetailedStepper.svelte +133 -27
  20. package/dist/stepper/DetailedStepper.svelte.d.ts +7 -4
  21. package/dist/stepper/DoubleArrowIcon.svelte +34 -0
  22. package/dist/stepper/DoubleArrowIcon.svelte.d.ts +15 -0
  23. package/dist/stepper/ProfileCardIcon.svelte +25 -0
  24. package/dist/stepper/ProfileCardIcon.svelte.d.ts +15 -0
  25. package/dist/stepper/ProgressStepper.svelte +135 -34
  26. package/dist/stepper/ProgressStepper.svelte.d.ts +7 -4
  27. package/dist/stepper/Stepper.svelte +87 -33
  28. package/dist/stepper/Stepper.svelte.d.ts +6 -3
  29. package/dist/stepper/TimelineStepper.svelte +95 -35
  30. package/dist/stepper/TimelineStepper.svelte.d.ts +6 -3
  31. package/dist/stepper/VerticalStepper.svelte +91 -29
  32. package/dist/stepper/VerticalStepper.svelte.d.ts +6 -3
  33. package/dist/stepper/index.d.ts +3 -0
  34. package/dist/stepper/index.js +3 -0
  35. package/dist/stepper/theme.d.ts +6 -18
  36. package/dist/stepper/theme.js +18 -23
  37. package/dist/table/Table.svelte +1 -1
  38. package/dist/table/Table.svelte.d.ts +1 -1
  39. package/dist/table/TableBody.svelte +1 -1
  40. package/dist/table/TableBody.svelte.d.ts +1 -1
  41. package/dist/table/TableBodyCell.svelte +1 -1
  42. package/dist/table/TableBodyCell.svelte.d.ts +1 -1
  43. package/dist/table/TableBodyRow.svelte +1 -1
  44. package/dist/table/TableBodyRow.svelte.d.ts +1 -1
  45. package/dist/table/TableHead.svelte +1 -1
  46. package/dist/table/TableHead.svelte.d.ts +1 -1
  47. package/dist/table/TableHeadCell.svelte +1 -1
  48. package/dist/table/TableHeadCell.svelte.d.ts +1 -1
  49. package/dist/table/TableSearch.svelte +1 -1
  50. package/dist/table/TableSearch.svelte.d.ts +1 -1
  51. package/dist/tabs/TabItem.svelte +1 -1
  52. package/dist/tabs/TabItem.svelte.d.ts +1 -1
  53. package/dist/tabs/Tabs.svelte +1 -1
  54. package/dist/tabs/Tabs.svelte.d.ts +1 -1
  55. package/dist/timeline/Activity.svelte +1 -1
  56. package/dist/timeline/Activity.svelte.d.ts +1 -1
  57. package/dist/timeline/ActivityItem.svelte +1 -1
  58. package/dist/timeline/ActivityItem.svelte.d.ts +1 -1
  59. package/dist/timeline/Group.svelte +1 -1
  60. package/dist/timeline/Group.svelte.d.ts +1 -1
  61. package/dist/timeline/GroupItem.svelte +1 -1
  62. package/dist/timeline/GroupItem.svelte.d.ts +1 -1
  63. package/dist/timeline/Timeline.svelte +1 -1
  64. package/dist/timeline/Timeline.svelte.d.ts +1 -1
  65. package/dist/timeline/TimelineItem.svelte +1 -1
  66. package/dist/timeline/TimelineItem.svelte.d.ts +1 -1
  67. package/dist/toast/Toast.svelte +1 -1
  68. package/dist/toast/Toast.svelte.d.ts +1 -1
  69. package/dist/toast/ToastContainer.svelte +1 -1
  70. package/dist/toast/ToastContainer.svelte.d.ts +1 -1
  71. package/dist/tooltip/Tooltip.svelte +1 -1
  72. package/dist/tooltip/Tooltip.svelte.d.ts +1 -1
  73. package/dist/types.d.ts +52 -14
  74. package/dist/typography/a/A.svelte +1 -1
  75. package/dist/typography/a/A.svelte.d.ts +1 -1
  76. package/dist/typography/blockquote/Blockquote.svelte +1 -1
  77. package/dist/typography/blockquote/Blockquote.svelte.d.ts +1 -1
  78. package/dist/typography/descriptionlist/DescriptionList.svelte +1 -1
  79. package/dist/typography/descriptionlist/DescriptionList.svelte.d.ts +1 -1
  80. package/dist/typography/heading/Heading.svelte +1 -1
  81. package/dist/typography/heading/Heading.svelte.d.ts +1 -1
  82. package/dist/typography/img/Img.svelte +1 -1
  83. package/dist/typography/img/Img.svelte.d.ts +1 -1
  84. package/dist/typography/layout/Layout.svelte +1 -1
  85. package/dist/typography/layout/Layout.svelte.d.ts +1 -1
  86. package/dist/typography/list/Li.svelte +1 -1
  87. package/dist/typography/list/Li.svelte.d.ts +1 -1
  88. package/dist/typography/list/List.svelte +1 -1
  89. package/dist/typography/list/List.svelte.d.ts +1 -1
  90. package/dist/typography/list/theme.js +1 -1
  91. package/dist/typography/mark/Mark.svelte +1 -1
  92. package/dist/typography/mark/Mark.svelte.d.ts +1 -1
  93. package/dist/typography/paragraph/P.svelte +1 -1
  94. package/dist/typography/paragraph/P.svelte.d.ts +1 -1
  95. package/dist/typography/secondary/Secondary.svelte +1 -1
  96. package/dist/typography/secondary/Secondary.svelte.d.ts +1 -1
  97. package/dist/typography/span/Span.svelte +1 -1
  98. package/dist/typography/span/Span.svelte.d.ts +1 -1
  99. package/dist/utils/Arrow.svelte +1 -1
  100. package/dist/utils/Arrow.svelte.d.ts +1 -1
  101. package/dist/utils/Popper.svelte +1 -1
  102. package/dist/utils/Popper.svelte.d.ts +1 -1
  103. package/dist/video/Video.svelte +1 -1
  104. package/dist/video/Video.svelte.d.ts +1 -1
  105. package/package.json +15 -3
@@ -1,65 +1,125 @@
1
1
  <script lang="ts">
2
2
  import { setContext } from "svelte";
3
+ import type { StepStatus, TimelineStep } from "../types";
4
+ import CheckmarkIcon from "./CheckmarkIcon.svelte";
5
+ import ProfileCardIcon from "./ProfileCardIcon.svelte";
3
6
  import { timelineStepper } from "./theme";
4
7
  import type { TimelineStepperProps } from "../types";
5
8
  import clsx from "clsx";
6
9
  import { getTheme } from "../theme/themeUtils";
7
10
 
8
- let { children, steps = [], class: className, classes, contentClass, ...restProps }: TimelineStepperProps = $props();
11
+ let { steps = [], class: className, classes, contentClass, current = $bindable(1), clickable = true, showCheckmarkForCompleted = true, onStepClick, ...restProps }: TimelineStepperProps = $props();
12
+
13
+ // Ensure current is within valid bounds
14
+ $effect(() => {
15
+ if (current < 0) current = 0;
16
+ if (current > steps.length && steps.length > 0) current = steps.length;
17
+ });
9
18
 
10
19
  const theme = getTheme("timelineStepper");
11
20
 
12
21
  setContext("stepperType", "timeline");
13
22
 
14
23
  const { base, item, circle } = $derived(timelineStepper());
24
+
25
+ // Handle step click
26
+ function handleStepClick(stepIndex: number) {
27
+ if (clickable && stepIndex < steps.length) {
28
+ const last = current;
29
+ // Convert 0-based array index to 1-based current value
30
+ current = stepIndex + 1;
31
+
32
+ // Call custom onStepClick if provided
33
+ if (onStepClick) {
34
+ onStepClick({ current, last });
35
+ }
36
+ }
37
+ }
38
+
39
+ // Determine step status - reactive to current changes
40
+ function getStepStatus(stepIndex: number): "completed" | "current" | "pending" {
41
+ if (current === 0) {
42
+ return "pending";
43
+ }
44
+ if (stepIndex < current - 1) {
45
+ return "completed";
46
+ } else if (stepIndex === current - 1) {
47
+ return "current";
48
+ } else {
49
+ return "pending";
50
+ }
51
+ }
15
52
  </script>
16
53
 
54
+ {#snippet stepIcon(status: StepStatus, step: TimelineStep)}
55
+ {#if status === "completed" && showCheckmarkForCompleted}
56
+ <CheckmarkIcon class="h-3.5 w-3.5 text-green-500 dark:text-green-400" />
57
+ {:else if step.icon}
58
+ <step.icon class={clsx(step.iconClass) || "h-3.5 w-3.5"} />
59
+ {:else}
60
+ <ProfileCardIcon />
61
+ {/if}
62
+ {/snippet}
63
+
17
64
  <ol class={base({ class: clsx(theme?.base, className) })} {...restProps}>
18
- {#if children}
19
- {@render children()}
20
- {:else if steps}
21
- {#each steps as step, index (step.id)}
22
- <li class={item({ isLast: index === steps.length - 1, class: clsx(theme?.item, classes?.item) })}>
23
- <span class={circle({ status: step.status, class: clsx(theme?.circle, classes?.circle) })}>
24
- {#if step.status === "completed"}
25
- {#if step.icon}
26
- <step.icon class={clsx(step.iconClass) || "h-3.5 w-3.5"} />
27
- {:else}
28
- <svg class="h-3.5 w-3.5 text-green-500 dark:text-green-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 12">
29
- <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 5.917 5.724 10.5 15 1.5" />
30
- </svg>
31
- {/if}
32
- {:else if step.icon}
33
- <step.icon class={clsx(step.iconClass) || "h-3.5 w-3.5"} />
34
- {:else}
35
- <svg class="h-3.5 w-3.5 text-gray-500 dark:text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 16">
36
- <path
37
- d="M18 0H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2ZM6.5 3a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3.014 13.021l.157-.625A3.427 3.427 0 0 1 6.5 9.571a3.426 3.426 0 0 1 3.322 2.805l.159.622-6.967.023ZM16 12h-3a1 1 0 0 1 0-2h3a1 1 0 0 1 0 2Zm0-3h-3a1 1 0 1 1 0-2h3a1 1 0 1 1 0 2Zm0-3h-3a1 1 0 1 1 0-2h3a1 1 0 1 1 0 2Z"
38
- />
39
- </svg>
40
- {/if}
65
+ {#each steps as step, index (step.id)}
66
+ {@const status = step.status ?? getStepStatus(index)}
67
+ <li class={item({ isLast: index === steps.length - 1, class: clsx(theme?.item, classes?.item) })}>
68
+ {#if clickable}
69
+ <button
70
+ type="button"
71
+ class="absolute -start-4 flex h-8 w-8 cursor-pointer items-center justify-center rounded-full ring-4 ring-white transition-opacity hover:opacity-75 dark:ring-gray-900 {circle({
72
+ status,
73
+ class: clsx(theme?.circle, classes?.circle)
74
+ })}"
75
+ onclick={() => handleStepClick(index)}
76
+ aria-current={status === "current" ? "step" : undefined}
77
+ >
78
+ {@render stepIcon(status, step)}
79
+ </button>
80
+ {:else}
81
+ <span class={circle({ status, class: clsx(theme?.circle, classes?.circle) })} aria-current={status === "current" ? "step" : undefined}>
82
+ {@render stepIcon(status, step)}
41
83
  </span>
42
- <div class={clsx(contentClass)}>
43
- <h3 class="leading-tight font-medium">{step.label}</h3>
44
- {#if step.description}
45
- <p class="text-sm">{step.description}</p>
46
- {/if}
47
- </div>
48
- </li>
49
- {/each}
50
- {/if}
84
+ {/if}
85
+ <div class={clsx(contentClass)}>
86
+ <h3 class="leading-tight font-medium">{step.label}</h3>
87
+ {#if step.description}
88
+ <p class="text-sm">{step.description}</p>
89
+ {/if}
90
+ </div>
91
+ </li>
92
+ {/each}
51
93
  </ol>
52
94
 
95
+ <!--
96
+ ## Features
97
+ - **Clickable navigation**: Click or press Enter/Space on steps to navigate
98
+ - **Auto status**: Automatically determines completed/current/pending status based on current index
99
+ - **Custom icons**: Support for custom icons on completed steps
100
+ - **Accessible**: Keyboard navigation with proper ARIA attributes
101
+
102
+ ## Note
103
+ The `current` prop is 1-based:
104
+ - current=0 means no step is active (all pending)
105
+ - current=1 means first step is active
106
+ - current=2 means first step is completed, second step is active
107
+ - etc.
108
+ -->
109
+
53
110
  <!--
54
111
  @component
55
112
  [Go to docs](https://flowbite-svelte.com/)
56
113
  ## Type
57
- [TimelineStepperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1670)
114
+ [TimelineStepperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1687)
58
115
  ## Props
59
- @prop children
60
116
  @prop steps = []
61
117
  @prop class: className
62
118
  @prop classes
63
119
  @prop contentClass
120
+ @prop current = $bindable(1)
121
+ @prop clickable = true
122
+ @prop showCheckmarkForCompleted = true
123
+ @prop onStepClick
64
124
  @prop ...restProps
65
125
  -->
@@ -2,15 +2,18 @@ import type { TimelineStepperProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [TimelineStepperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1670)
5
+ * [TimelineStepperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1687)
6
6
  * ## Props
7
- * @prop children
8
7
  * @prop steps = []
9
8
  * @prop class: className
10
9
  * @prop classes
11
10
  * @prop contentClass
11
+ * @prop current = $bindable(1)
12
+ * @prop clickable = true
13
+ * @prop showCheckmarkForCompleted = true
14
+ * @prop onStepClick
12
15
  * @prop ...restProps
13
16
  */
14
- declare const TimelineStepper: import("svelte").Component<TimelineStepperProps, {}, "">;
17
+ declare const TimelineStepper: import("svelte").Component<TimelineStepperProps, {}, "current">;
15
18
  type TimelineStepper = ReturnType<typeof TimelineStepper>;
16
19
  export default TimelineStepper;
@@ -1,63 +1,125 @@
1
1
  <script lang="ts">
2
2
  import { setContext } from "svelte";
3
+ import type { StepStatus, Step } from "../types";
4
+ import CheckmarkIcon from "./CheckmarkIcon.svelte";
3
5
  import { verticalStepper } from "./theme";
4
6
  import type { VerticalStepperProps } from "../types";
5
7
  import clsx from "clsx";
6
8
  import { getTheme } from "../theme/themeUtils";
7
9
 
8
- let { children, steps = [], liClass, class: className, classes, ...restProps }: VerticalStepperProps = $props();
10
+ let { steps = [], liClass, class: className, classes, current = $bindable(1), clickable = true, showCheckmarkForCompleted = true, onStepClick, ...restProps }: VerticalStepperProps = $props();
11
+
12
+ // Ensure current is within valid bounds
13
+ $effect(() => {
14
+ if (current < 0) current = 0;
15
+ if (current > steps.length && steps.length > 0) current = steps.length;
16
+ });
9
17
 
10
18
  const theme = getTheme("verticalStepper");
11
19
 
12
20
  setContext("stepperType", "vertical");
13
21
 
14
22
  const { base, card, content } = $derived(verticalStepper());
23
+
24
+ // Handle step click
25
+ function handleStepClick(stepIndex: number) {
26
+ if (clickable && stepIndex < steps.length) {
27
+ const last = current;
28
+ // Convert 0-based array index to 1-based current value
29
+ current = stepIndex + 1;
30
+
31
+ // Call custom onStepClick if provided
32
+ if (onStepClick) {
33
+ onStepClick({ current, last });
34
+ }
35
+ }
36
+ }
37
+
38
+ // Determine step status - reactive to current changes
39
+ function getStepStatus(stepIndex: number): "completed" | "current" | "pending" {
40
+ if (current === 0) {
41
+ return "pending";
42
+ }
43
+ if (stepIndex < current - 1) {
44
+ return "completed";
45
+ } else if (stepIndex === current - 1) {
46
+ return "current";
47
+ } else {
48
+ return "pending";
49
+ }
50
+ }
15
51
  </script>
16
52
 
53
+ {#snippet stepIcon(status: StepStatus, step: Step)}
54
+ {#if status === "completed" && showCheckmarkForCompleted}
55
+ <CheckmarkIcon variant="simple" />
56
+ {:else if status === "current"}
57
+ {#if step.icon}
58
+ <step.icon class={step.iconClass || "h-4 w-4"} />
59
+ {:else}
60
+ <CheckmarkIcon variant="simple" />
61
+ {/if}
62
+ {/if}
63
+ {/snippet}
64
+
17
65
  <ol class={base({ class: clsx(theme?.base, className) })} {...restProps}>
18
- {#if children}
19
- {@render children()}
20
- {:else if steps}
21
- {#each steps as step (step.id)}
22
- <li class={clsx(liClass)}>
23
- <div class={card({ status: step.status, class: clsx(theme?.card, classes?.card) })} role="alert">
66
+ {#each steps as step, index (step.id)}
67
+ {@const status = step.status ?? getStepStatus(index)}
68
+ <li class={clsx(liClass)}>
69
+ {#if clickable}
70
+ <button
71
+ type="button"
72
+ class="w-full cursor-pointer text-left transition-opacity hover:opacity-75 {card({ status, class: clsx(theme?.card, classes?.card) })}"
73
+ aria-current={status === "current" ? "step" : undefined}
74
+ onclick={() => handleStepClick(index)}
75
+ >
24
76
  <div class={content({ class: clsx(theme?.content, classes?.content) })}>
25
77
  <span class="sr-only">{step.label}</span>
26
78
  <h3 class="font-medium">{step.id}. {step.label}</h3>
27
- {#if step.status === "completed"}
28
- {#if step.icon}
29
- <step.icon class={step.iconClass || "h-4 w-4"} />
30
- {:else}
31
- <svg class="h-4 w-4" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 12">
32
- <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 5.917 5.724 10.5 15 1.5" />
33
- </svg>
34
- {/if}
35
- {:else if step.status === "current"}
36
- {#if step.icon}
37
- <step.icon class={step.iconClass || "h-4 w-4"} />
38
- {:else}
39
- <svg class="h-4 w-4 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 10">
40
- <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 5h12m0 0L9 1m4 4L9 9" />
41
- </svg>
42
- {/if}
43
- {/if}
79
+ {@render stepIcon(status, step)}
80
+ </div>
81
+ </button>
82
+ {:else}
83
+ <div class={card({ status, class: clsx(theme?.card, classes?.card) })} aria-current={status === "current" ? "step" : undefined}>
84
+ <div class={content({ class: clsx(theme?.content, classes?.content) })}>
85
+ <span class="sr-only">{step.label}</span>
86
+ <h3 class="font-medium">{step.id}. {step.label}</h3>
87
+ {@render stepIcon(status, step)}
44
88
  </div>
45
89
  </div>
46
- </li>
47
- {/each}
48
- {/if}
90
+ {/if}
91
+ </li>
92
+ {/each}
49
93
  </ol>
50
94
 
95
+ <!--
96
+ ## Features
97
+ - **Clickable navigation**: Click or press Enter/Space on steps to navigate
98
+ - **Auto status**: Automatically determines completed/current/pending status based on current index
99
+ - **Custom icons**: Support for custom icons on completed steps
100
+ - **Accessible**: Keyboard navigation with proper ARIA attributes
101
+
102
+ ## Note
103
+ The `current` prop is 1-based:
104
+ - current=0 means no step is active (all pending)
105
+ - current=1 means first step is active
106
+ - current=2 means first step is completed, second step is active
107
+ - etc.
108
+ -->
109
+
51
110
  <!--
52
111
  @component
53
112
  [Go to docs](https://flowbite-svelte.com/)
54
113
  ## Type
55
- [VerticalStepperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1639)
114
+ [VerticalStepperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1650)
56
115
  ## Props
57
- @prop children
58
116
  @prop steps = []
59
117
  @prop liClass
60
118
  @prop class: className
61
119
  @prop classes
120
+ @prop current = $bindable(1)
121
+ @prop clickable = true
122
+ @prop showCheckmarkForCompleted = true
123
+ @prop onStepClick
62
124
  @prop ...restProps
63
125
  -->
@@ -2,15 +2,18 @@ import type { VerticalStepperProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [VerticalStepperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1639)
5
+ * [VerticalStepperProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1650)
6
6
  * ## Props
7
- * @prop children
8
7
  * @prop steps = []
9
8
  * @prop liClass
10
9
  * @prop class: className
11
10
  * @prop classes
11
+ * @prop current = $bindable(1)
12
+ * @prop clickable = true
13
+ * @prop showCheckmarkForCompleted = true
14
+ * @prop onStepClick
12
15
  * @prop ...restProps
13
16
  */
14
- declare const VerticalStepper: import("svelte").Component<VerticalStepperProps, {}, "">;
17
+ declare const VerticalStepper: import("svelte").Component<VerticalStepperProps, {}, "current">;
15
18
  type VerticalStepper = ReturnType<typeof VerticalStepper>;
16
19
  export default VerticalStepper;
@@ -4,4 +4,7 @@ export { default as DetailedStepper } from "./DetailedStepper.svelte";
4
4
  export { default as VerticalStepper } from "./VerticalStepper.svelte";
5
5
  export { default as BreadcrumbStepper } from "./BreadcrumbStepper.svelte";
6
6
  export { default as TimelineStepper } from "./TimelineStepper.svelte";
7
+ export { default as CheckmarkIcon } from "./CheckmarkIcon.svelte";
8
+ export { default as DoubleArrowIcon } from "./DoubleArrowIcon.svelte";
9
+ export { default as ProfileCardIcon } from "./ProfileCardIcon.svelte";
7
10
  export { stepper, progressStepper, detailedStepper, verticalStepper, breadcrumbStepper, timelineStepper } from "./theme";
@@ -4,4 +4,7 @@ export { default as DetailedStepper } from "./DetailedStepper.svelte";
4
4
  export { default as VerticalStepper } from "./VerticalStepper.svelte";
5
5
  export { default as BreadcrumbStepper } from "./BreadcrumbStepper.svelte";
6
6
  export { default as TimelineStepper } from "./TimelineStepper.svelte";
7
+ export { default as CheckmarkIcon } from "./CheckmarkIcon.svelte";
8
+ export { default as DoubleArrowIcon } from "./DoubleArrowIcon.svelte";
9
+ export { default as ProfileCardIcon } from "./ProfileCardIcon.svelte";
7
10
  export { stepper, progressStepper, detailedStepper, verticalStepper, breadcrumbStepper, timelineStepper } from "./theme";
@@ -100,16 +100,12 @@ export declare const progressStepper: import("tailwind-variants").TVReturnType<{
100
100
  circle: string;
101
101
  };
102
102
  };
103
- isLast: {
104
- true: {
105
- item: string;
106
- };
107
- false: {};
108
- };
109
103
  }, {
110
104
  base: string;
111
105
  item: string;
112
106
  circle: string;
107
+ line: string;
108
+ progressLine: string;
113
109
  }, undefined, {
114
110
  status: {
115
111
  completed: {
@@ -125,16 +121,12 @@ export declare const progressStepper: import("tailwind-variants").TVReturnType<{
125
121
  circle: string;
126
122
  };
127
123
  };
128
- isLast: {
129
- true: {
130
- item: string;
131
- };
132
- false: {};
133
- };
134
124
  }, {
135
125
  base: string;
136
126
  item: string;
137
127
  circle: string;
128
+ line: string;
129
+ progressLine: string;
138
130
  }, import("tailwind-variants").TVReturnType<{
139
131
  status: {
140
132
  completed: {
@@ -150,16 +142,12 @@ export declare const progressStepper: import("tailwind-variants").TVReturnType<{
150
142
  circle: string;
151
143
  };
152
144
  };
153
- isLast: {
154
- true: {
155
- item: string;
156
- };
157
- false: {};
158
- };
159
145
  }, {
160
146
  base: string;
161
147
  item: string;
162
148
  circle: string;
149
+ line: string;
150
+ progressLine: string;
163
151
  }, undefined, unknown, unknown, undefined>>;
164
152
  export declare const detailedStepper: import("tailwind-variants").TVReturnType<{
165
153
  status: {
@@ -12,7 +12,7 @@ export const stepper = tv({
12
12
  content: "after:content-['/'] sm:after:hidden after:mx-2 after:text-gray-200 dark:after:text-gray-500"
13
13
  },
14
14
  current: {
15
- item: "md:w-full sm:after:content-[''] after:w-full after:h-1 after:border-b after:border-gray-200 after:border-1 after:hidden sm:after:inline-block after:mx-6 xl:after:mx-10 dark:after:border-gray-700",
15
+ item: "text-primary-600 dark:text-primary-500 md:w-full sm:after:content-[''] after:w-full after:h-1 after:border-b after:border-gray-200 after:border-1 after:hidden sm:after:inline-block after:mx-6 xl:after:mx-10 dark:after:border-gray-700",
16
16
  content: "after:content-['/'] sm:after:hidden after:mx-2 after:text-gray-200 dark:after:text-gray-500"
17
17
  },
18
18
  pending: {
@@ -22,8 +22,8 @@ export const stepper = tv({
22
22
  },
23
23
  isLast: {
24
24
  true: {
25
- item: "after:content-none after:hidden",
26
- content: "after:content-none"
25
+ item: "after:!hidden",
26
+ content: "after:!hidden"
27
27
  },
28
28
  false: {}
29
29
  }
@@ -36,35 +36,30 @@ export const stepper = tv({
36
36
  // ProgressStepper
37
37
  export const progressStepper = tv({
38
38
  slots: {
39
- base: "flex items-center w-full",
40
- item: "flex items-center w-full",
41
- circle: "flex items-center justify-center w-10 h-10 rounded-full lg:h-12 lg:w-12 shrink-0"
39
+ base: "flex items-center w-full relative",
40
+ item: "flex items-center justify-center z-10",
41
+ circle: "flex items-center justify-center w-10 h-10 rounded-full lg:h-12 lg:w-12 shrink-0",
42
+ line: "absolute h-1 top-1/2 -translate-y-1/2 bg-gray-200 dark:bg-gray-700",
43
+ progressLine: "absolute h-1 top-1/2 -translate-y-1/2 bg-primary-600 dark:bg-primary-500 transition-all duration-300 ease-in-out"
42
44
  },
43
45
  variants: {
44
46
  status: {
45
47
  completed: {
46
- item: "text-primary-600 dark:text-primary-500 after:content-[''] after:w-full after:h-1 after:border-b after:border-primary-100 after:border-4 after:inline-block dark:after:border-primary-800",
47
- circle: "bg-primary-100 dark:bg-primary-800"
48
+ item: "text-primary-600 dark:text-primary-400 flex-1",
49
+ circle: "bg-primary-600 dark:bg-primary-500 text-white"
48
50
  },
49
51
  current: {
50
- item: "after:content-[''] after:w-full after:h-1 after:border-b after:border-gray-100 after:border-4 after:inline-block dark:after:border-gray-700",
51
- circle: "bg-gray-100 dark:bg-gray-700"
52
+ item: "flex-1",
53
+ circle: "bg-primary-600 dark:bg-primary-500 text-white"
52
54
  },
53
55
  pending: {
54
- item: "after:content-[''] after:w-full after:h-1 after:border-b after:border-gray-100 after:border-4 after:inline-block dark:after:border-gray-700",
55
- circle: "bg-gray-100 dark:bg-gray-700"
56
+ item: "flex-1",
57
+ circle: "bg-gray-200 dark:bg-gray-700 text-gray-600 dark:text-gray-400"
56
58
  }
57
- },
58
- isLast: {
59
- true: {
60
- item: "after:content-none"
61
- },
62
- false: {}
63
59
  }
64
60
  },
65
61
  defaultVariants: {
66
- status: "pending",
67
- isLast: false
62
+ status: "pending"
68
63
  }
69
64
  });
70
65
  // DetailedStepper
@@ -130,8 +125,8 @@ export const breadcrumbStepper = tv({
130
125
  indicator: "border border-primary-600 dark:border-primary-500 bg-primary-600 dark:bg-primary-500 text-white"
131
126
  },
132
127
  current: {
133
- item: "text-gray-500 dark:text-gray-400",
134
- indicator: "border border-gray-500 dark:border-gray-400 text-gray-500 dark:text-gray-400"
128
+ item: "text-primary-600 dark:text-primary-500",
129
+ indicator: "border border-primary-600 dark:border-primary-500 bg-primary-600 dark:bg-primary-500 text-white"
135
130
  },
136
131
  pending: {
137
132
  item: "text-gray-500 dark:text-gray-400",
@@ -160,7 +155,7 @@ export const timelineStepper = tv({
160
155
  circle: "bg-green-200 dark:bg-green-900"
161
156
  },
162
157
  current: {
163
- circle: "bg-gray-100 dark:bg-gray-700"
158
+ circle: "bg-primary-200 dark:bg-primary-900"
164
159
  },
165
160
  pending: {
166
161
  circle: "bg-gray-100 dark:bg-gray-700"
@@ -61,7 +61,7 @@
61
61
  @component
62
62
  [Go to docs](https://flowbite-svelte.com/)
63
63
  ## Type
64
- [TableProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1702)
64
+ [TableProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1722)
65
65
  ## Props
66
66
  @prop children
67
67
  @prop footerSlot
@@ -2,7 +2,7 @@ import type { TableProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [TableProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1702)
5
+ * [TableProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1722)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop footerSlot
@@ -33,7 +33,7 @@
33
33
  @component
34
34
  [Go to docs](https://flowbite-svelte.com/)
35
35
  ## Type
36
- [TableBodyProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1734)
36
+ [TableBodyProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1754)
37
37
  ## Props
38
38
  @prop children
39
39
  @prop bodyItems
@@ -2,7 +2,7 @@ import type { TableBodyProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [TableBodyProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1734)
5
+ * [TableBodyProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1754)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop bodyItems
@@ -25,7 +25,7 @@
25
25
  @component
26
26
  [Go to docs](https://flowbite-svelte.com/)
27
27
  ## Type
28
- [TableBodyCellProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1723)
28
+ [TableBodyCellProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1743)
29
29
  ## Props
30
30
  @prop children
31
31
  @prop class: className
@@ -2,7 +2,7 @@ import type { TableBodyCellProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [TableBodyCellProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1723)
5
+ * [TableBodyCellProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1743)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -29,7 +29,7 @@
29
29
  @component
30
30
  [Go to docs](https://flowbite-svelte.com/)
31
31
  ## Type
32
- [TableBodyRowProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1715)
32
+ [TableBodyRowProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1735)
33
33
  ## Props
34
34
  @prop children
35
35
  @prop class: className
@@ -2,7 +2,7 @@ import type { TableBodyRowProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [TableBodyRowProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1715)
5
+ * [TableBodyRowProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1735)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className
@@ -53,7 +53,7 @@
53
53
  @component
54
54
  [Go to docs](https://flowbite-svelte.com/)
55
55
  ## Type
56
- [TableHeadProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1690)
56
+ [TableHeadProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1710)
57
57
  ## Props
58
58
  @prop children
59
59
  @prop headerSlot
@@ -2,7 +2,7 @@ import type { TableHeadProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [TableHeadProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1690)
5
+ * [TableHeadProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1710)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop headerSlot
@@ -19,7 +19,7 @@
19
19
  @component
20
20
  [Go to docs](https://flowbite-svelte.com/)
21
21
  ## Type
22
- [TableHeadCellProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1739)
22
+ [TableHeadCellProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1759)
23
23
  ## Props
24
24
  @prop children
25
25
  @prop class: className
@@ -2,7 +2,7 @@ import type { TableHeadCellProps } from "../types";
2
2
  /**
3
3
  * [Go to docs](https://flowbite-svelte.com/)
4
4
  * ## Type
5
- * [TableHeadCellProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1739)
5
+ * [TableHeadCellProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L1759)
6
6
  * ## Props
7
7
  * @prop children
8
8
  * @prop class: className