diff --git a/package.json b/package.json index b5ffbcce18..b1cd17c056 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "svelte-doc-llm": "^0.5.1", "svelte-lib-helpers": "^0.4.31", "svelte-meta-tags": "^4.5.0", - "svelte-rune-highlight": "^0.7.1", + "svelte-rune-highlight": "^0.11.0", "tailwindcss": "^4.1.16", "tsx": "^4.20.6", "typescript": "^5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fd1cde9fb4..75e098a3bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -205,8 +205,8 @@ importers: specifier: ^4.5.0 version: 4.5.0(svelte@5.43.3) svelte-rune-highlight: - specifier: ^0.7.1 - version: 0.7.1(svelte@5.43.3) + specifier: ^0.11.0 + version: 0.11.0(svelte@5.43.3) tailwindcss: specifier: ^4.1.16 version: 4.1.16 @@ -3342,8 +3342,8 @@ packages: peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.1 - svelte-rune-highlight@0.7.1: - resolution: {integrity: sha512-R/mzLB+QBt3WGSrYpCg/n3r7UzeqfrLx7Cv2JqH9LdckTeTT2MBxhuo1ZvLWss2QXnIyLTr0Wx4g6xOseMoSsA==} + svelte-rune-highlight@0.11.0: + resolution: {integrity: sha512-ENOB6OXpzWn+WAPthVTd4X8x4TzHkjhYyIsM+S47Xz5e/zkByyTnp0Yj7538H7wfcWw08J9zPS95x5h6TaqicA==} peerDependencies: svelte: ^5.0.0 @@ -6877,7 +6877,7 @@ snapshots: dependencies: svelte: 5.43.3 - svelte-rune-highlight@0.7.1(svelte@5.43.3): + svelte-rune-highlight@0.11.0(svelte@5.43.3): dependencies: highlight.js: 11.11.1 svelte: 5.43.3 diff --git a/src/lib/buttons/Button.svelte b/src/lib/buttons/Button.svelte index 879b98a0f5..2b861a5fdd 100644 --- a/src/lib/buttons/Button.svelte +++ b/src/lib/buttons/Button.svelte @@ -1,6 +1,7 @@ @@ -28,10 +30,7 @@ {:else} @@ -55,6 +54,7 @@ @prop tag = "button" @prop disabled @prop loading = false +@prop spinnerProps = { size: "4" } @prop class: className @prop ...restProps --> diff --git a/src/lib/buttons/theme.ts b/src/lib/buttons/theme.ts index acb922cc94..aa13698d2a 100644 --- a/src/lib/buttons/theme.ts +++ b/src/lib/buttons/theme.ts @@ -8,7 +8,8 @@ export const button = tv({ slots: { base: "text-center font-medium inline-flex items-center justify-center", outline: "bg-transparent border hover:text-white dark:bg-transparent dark:hover-text-white", - shadow: "shadow-lg" + shadow: "shadow-lg", + spinner: "ms-2" }, variants: { color: { diff --git a/src/lib/datepicker/theme.ts b/src/lib/datepicker/theme.ts index 59cc7c546e..e10c9e0d74 100644 --- a/src/lib/datepicker/theme.ts +++ b/src/lib/datepicker/theme.ts @@ -22,29 +22,29 @@ export const datepicker = tv({ }, variants: { color: { - primary: { input: "focus:ring-primary-500 dark:focus:ring-primary-400", dayButton: "bg-primary-100 dark:bg-primary-900" }, - blue: { input: "focus:ring-blue-500 dark:focus:ring-blue-400", dayButton: "bg-blue-100 dark:bg-blue-900" }, - red: { input: "focus:ring-red-500 dark:focus:ring-red-400", dayButton: "bg-red-100 dark:bg-red-900" }, - green: { input: "focus:ring-green-500 dark:focus:ring-green-400", dayButton: "bg-green-100 dark:bg-green-900" }, - yellow: { input: "focus:ring-yellow-500 dark:focus:ring-yellow-400", dayButton: "bg-yellow-100 dark:bg-yellow-900" }, - purple: { input: "focus:ring-purple-500 dark:focus:ring-purple-400", dayButton: "bg-purple-100 dark:bg-purple-900" }, - dark: { input: "focus:ring-gray-500 dark:focus:ring-gray-400", dayButton: "bg-gray-100 dark:bg-gray-900" }, - light: { input: "focus:ring-gray-500 dark:focus:ring-gray-400", dayButton: "bg-gray-100 dark:bg-gray-900" }, - alternative: { input: "focus:ring-alternative-500 dark:focus:ring-alternative-400", dayButton: "bg-alternative-100 dark:bg-alternative-900" }, - secondary: { input: "focus:ring-secondary-500 dark:focus:ring-secondary-400", dayButton: "bg-secondary-100 dark:bg-secondary-900" }, - gray: { input: "focus:ring-gray-500 dark:focus:ring-gray-400", dayButton: "bg-gray-100 dark:bg-gray-900" }, - orange: { input: "focus:ring-orange-500 dark:focus:ring-orange-400", dayButton: "bg-orange-100 dark:bg-orange-900" }, - amber: { input: "focus:ring-amber-500 dark:focus:ring-amber-400", dayButton: "bg-amber-100 dark:bg-amber-900" }, - lime: { input: "focus:ring-lime-500 dark:focus:ring-lime-400", dayButton: "bg-lime-100 dark:bg-lime-900" }, - emerald: { input: "focus:ring-emerald-500 dark:focus:ring-emerald-400", dayButton: "bg-emerald-100 dark:bg-emerald-900" }, - teal: { input: "focus:ring-teal-500 dark:focus:ring-teal-400", dayButton: "bg-teal-100 dark:bg-teal-900" }, - cyan: { input: "focus:ring-cyan-500 dark:focus:ring-cyan-400", dayButton: "bg-cyan-100 dark:bg-cyan-900" }, - sky: { input: "focus:ring-sky-500 dark:focus:ring-sky-400", dayButton: "bg-sky-100 dark:bg-sky-900" }, - indigo: { input: "focus:ring-indigo-500 dark:focus:ring-indigo-400", dayButton: "bg-indigo-100 dark:bg-indigo-900" }, - violet: { input: "focus:ring-violet-500 dark:focus:ring-violet-400", dayButton: "bg-violet-100 dark:bg-violet-900" }, - fuchsia: { input: "focus:ring-fuchsia-500 dark:focus:ring-fuchsia-400", dayButton: "bg-fuchsia-100 dark:bg-fuchsia-900" }, - pink: { input: "focus:ring-pink-500 dark:focus:ring-pink-400", dayButton: "bg-pink-100 dark:bg-pink-900" }, - rose: { input: "focus:ring-rose-500 dark:focus:ring-rose-400", dayButton: "bg-rose-100 dark:bg-rose-900" } + primary: { input: "focus:ring-primary-500 dark:focus:ring-primary-400", dayButton: "bg-primary-300 dark:bg-primary-900" }, + blue: { input: "focus:ring-blue-500 dark:focus:ring-blue-400", dayButton: "bg-blue-300 dark:bg-blue-900" }, + red: { input: "focus:ring-red-500 dark:focus:ring-red-400", dayButton: "bg-red-300 dark:bg-red-900" }, + green: { input: "focus:ring-green-500 dark:focus:ring-green-400", dayButton: "bg-green-300 dark:bg-green-900" }, + yellow: { input: "focus:ring-yellow-500 dark:focus:ring-yellow-400", dayButton: "bg-yellow-300 dark:bg-yellow-900" }, + purple: { input: "focus:ring-purple-500 dark:focus:ring-purple-400", dayButton: "bg-purple-300 dark:bg-purple-900" }, + dark: { input: "focus:ring-gray-500 dark:focus:ring-gray-400", dayButton: "bg-gray-300 dark:bg-gray-900" }, + light: { input: "focus:ring-gray-500 dark:focus:ring-gray-400", dayButton: "bg-gray-300 dark:bg-gray-900" }, + alternative: { input: "focus:ring-alternative-500 dark:focus:ring-alternative-400", dayButton: "bg-alternative-300 dark:bg-alternative-900" }, + secondary: { input: "focus:ring-secondary-500 dark:focus:ring-secondary-400", dayButton: "bg-secondary-300 dark:bg-secondary-900" }, + gray: { input: "focus:ring-gray-500 dark:focus:ring-gray-400", dayButton: "bg-gray-300 dark:bg-gray-900" }, + orange: { input: "focus:ring-orange-500 dark:focus:ring-orange-400", dayButton: "bg-orange-300 dark:bg-orange-900" }, + amber: { input: "focus:ring-amber-500 dark:focus:ring-amber-400", dayButton: "bg-amber-300 dark:bg-amber-900" }, + lime: { input: "focus:ring-lime-500 dark:focus:ring-lime-400", dayButton: "bg-lime-300 dark:bg-lime-900" }, + emerald: { input: "focus:ring-emerald-500 dark:focus:ring-emerald-400", dayButton: "bg-emerald-300 dark:bg-emerald-900" }, + teal: { input: "focus:ring-teal-500 dark:focus:ring-teal-400", dayButton: "bg-teal-300 dark:bg-teal-900" }, + cyan: { input: "focus:ring-cyan-500 dark:focus:ring-cyan-400", dayButton: "bg-cyan-300 dark:bg-cyan-900" }, + sky: { input: "focus:ring-sky-500 dark:focus:ring-sky-400", dayButton: "bg-sky-300 dark:bg-sky-900" }, + indigo: { input: "focus:ring-indigo-500 dark:focus:ring-indigo-400", dayButton: "bg-indigo-300 dark:bg-indigo-900" }, + violet: { input: "focus:ring-violet-500 dark:focus:ring-violet-400", dayButton: "bg-violet-300 dark:bg-violet-900" }, + fuchsia: { input: "focus:ring-fuchsia-500 dark:focus:ring-fuchsia-400", dayButton: "bg-fuchsia-300 dark:bg-fuchsia-900" }, + pink: { input: "focus:ring-pink-500 dark:focus:ring-pink-400", dayButton: "bg-pink-300 dark:bg-pink-900" }, + rose: { input: "focus:ring-rose-500 dark:focus:ring-rose-400", dayButton: "bg-rose-300 dark:bg-rose-900" } }, inline: { false: { base: "absolute z-10 mt-1" } diff --git a/src/lib/spinner/theme.ts b/src/lib/spinner/theme.ts index 40af8712e3..69ca1f8ff4 100644 --- a/src/lib/spinner/theme.ts +++ b/src/lib/spinner/theme.ts @@ -1,6 +1,6 @@ import { tv, type VariantProps } from "tailwind-variants"; -export type SpinnerVaraiants = VariantProps; +export type SpinnerVariants = VariantProps; export const spinner = tv({ base: "inline-block", diff --git a/src/lib/types.ts b/src/lib/types.ts index 03b32bf766..654961461e 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -61,7 +61,7 @@ import type { WidgetPlaceholderVariants } from "$lib/skeleton/theme"; import type { SpeedDialVariants, SpeedDialButtonVariants } from "$lib/speed-dial/theme"; -import type { SpinnerVaraiants } from "$lib/spinner/theme"; +import type { SpinnerVariants } from "$lib/spinner/theme"; import type { StepIndicatorVariants } from "$lib/step-indicator/theme"; import type { StepperVariants, ProgressStepperVariants, DetailedStepperVariants, VerticalStepperVariants, BreadcrumbStepperVariants, TimelineStepperVariants } from "$lib/stepper/theme"; import type { PaginationItemVariants, PaginationVariants } from "$lib/pagination/theme"; @@ -348,6 +348,7 @@ export type ButtonProps = ButtonVariants & outline?: boolean; shadow?: boolean; loading?: boolean; + spinnerProps?: SpinnerProps; }; export interface GradientButtonProps extends GradientButtonVariantes, HTMLButtonOrAnchorAttributes { @@ -623,7 +624,7 @@ export interface DrawerProps extends DrawerVariants, Omit, "color"> {} +export interface HelperProps extends HelperVariants, Omit, "color"> { } // input export type InputValue = string | number | string[] | undefined; @@ -978,7 +979,7 @@ export interface TimepickerProps { timeIntervals?: string[]; columns?: ColumnCount; // Callback props instead of events - onselect?: (data: { time: string; endTime: string; [key: string]: string }) => void; + onselect?: (data: { time: string; endTime: string;[key: string]: string }) => void; } // textarea @@ -1167,7 +1168,7 @@ export interface ToolbarProps extends ToolbarVariants, Omit {} +export interface ToolbarGroupProps extends ToolbarGroupVariants, HTMLAttributes { } export type ToolbarButtonProps = ToolbarButtonVariants & AnchorButtonAttributes & { @@ -1484,7 +1485,7 @@ export interface SkeletonProps extends SkeletonVariants, HTMLAttributes {} +export interface TestimonialPlaceholderProps extends TestimonialPlaceholderVariants, HTMLAttributes { } export interface TextPlaceholderProps extends TextPlaceholderVariants, HTMLAttributes { size?: TextPlaceholderVariants["size"]; @@ -1494,7 +1495,7 @@ export interface VideoPlaceholderProps extends VideoPlaceholderVariants, HTMLAtt size?: VideoPlaceholderVariants["size"]; } -export interface WidgetPlaceholderProps extends WidgetPlaceholderVariants, HTMLAttributes {} +export interface WidgetPlaceholderProps extends WidgetPlaceholderVariants, HTMLAttributes { } // speeddial export interface SpeedCtxType { @@ -1553,8 +1554,8 @@ export type SpeedDialButtonProps = ButtonProps & // spinner export interface SpinnerProps extends SVGAttributes { type?: "default" | "dots" | "bars" | "pulse" | "orbit"; - color?: SpinnerVaraiants["color"]; - size?: SpinnerVaraiants["size"]; + color?: SpinnerVariants["color"]; + size?: SpinnerVariants["size"]; currentFill?: string; currentColor?: string; } @@ -1895,7 +1896,7 @@ export interface ToastContainerProps extends HTMLAttributes { } // tooltip -export interface TooltipProps extends TooltipVariants, PopperProps {} +export interface TooltipProps extends TooltipVariants, PopperProps { } // typography // anchor diff --git a/src/routes/admin-dashboard/(sidebar)/quickstart/+page.svelte b/src/routes/admin-dashboard/(sidebar)/quickstart/+page.svelte index f2b1247645..b877304391 100644 --- a/src/routes/admin-dashboard/(sidebar)/quickstart/+page.svelte +++ b/src/routes/admin-dashboard/(sidebar)/quickstart/+page.svelte @@ -1,6 +1,6 @@ + + diff --git a/src/routes/docs-examples/components/datepicker/Range.svelte b/src/routes/docs-examples/components/datepicker/Range.svelte index 746e42efcd..2f945f9f80 100644 --- a/src/routes/docs-examples/components/datepicker/Range.svelte +++ b/src/routes/docs-examples/components/datepicker/Range.svelte @@ -8,7 +8,7 @@
- +

Selected range: {dateRange.from ? dateRange.from.toLocaleDateString() : "None"} - diff --git a/src/routes/docs-examples/extend/clipboard-manager/+page.svelte b/src/routes/docs-examples/extend/clipboard-manager/+page.svelte index 55236e5932..f755990d32 100644 --- a/src/routes/docs-examples/extend/clipboard-manager/+page.svelte +++ b/src/routes/docs-examples/extend/clipboard-manager/+page.svelte @@ -1,19 +1,26 @@

@@ -22,12 +29,7 @@

Real-world examples showing how to use the selection bubble menu feature

- - - {#snippet codeblock()} - - {/snippet} - +
@@ -39,7 +41,7 @@ Enable Selection Menu

Simplest setup - enable selection on entire page

- +
@@ -55,12 +57,7 @@ Use enableSelectionMenu to show selection bubble menu.

- - - {#snippet codeblock()} - - {/snippet} - +
@@ -73,12 +70,7 @@ Set storageKey to customize the localStorage key name.

- - - {#snippet codeblock()} - - {/snippet} - +
@@ -93,12 +85,7 @@ limit prop to set max items to store.

- - - {#snippet codeblock()} - - {/snippet} - +
@@ -113,12 +100,7 @@ clearLabel to change labels.

- - - {#snippet codeblock()} - - {/snippet} - +
@@ -127,12 +109,7 @@ Email Client / Support Dashboard

Quick responses with ability to save new ones from actual emails

- - - {#snippet codeblock()} - - {/snippet} - + @@ -165,13 +142,7 @@
  • Refreshing the page clears all clipboard items
  • Data is lost when you close the tab
  • - - - - {#snippet codeblock()} - - {/snippet} - +
    @@ -186,7 +157,7 @@ detectSensitiveData prop to provide your own logic.

    - +

    This will block texts containing "confidential" or "secret".

  • Detects common sensitive information (credit cards, passwords, API keys, credentials).
  • @@ -196,12 +167,7 @@
  • API key regex matches any long alphanumeric token (32+ chars), which may catch legitimate IDs
  • Credential keyword regex may trigger on non-secret words like "token = false"
  • - - - {#snippet codeblock()} - - {/snippet} - +
    @@ -210,12 +176,7 @@ Multiple Content Areas

    Use class selector to enable selection across multiple elements

    - - - {#snippet codeblock()} - - {/snippet} - +
    @@ -227,12 +188,7 @@ Use showInput={false} to hide the input box and use only selection menu with custom rendering

    - - - {#snippet codeblock()} - - {/snippet} - +
    @@ -241,12 +197,7 @@ Custom Empty State

    Provide clear instructions for first-time users

    - - - {#snippet codeblock()} - - {/snippet} - + diff --git a/src/routes/docs/pages/typescript.md b/src/routes/docs/pages/typescript.md index 50b4706ba2..06cb1f2f7c 100644 --- a/src/routes/docs/pages/typescript.md +++ b/src/routes/docs/pages/typescript.md @@ -8,16 +8,27 @@ description: Learn more about the value types and class interfaces that you can --- ## Typescript types Enhance the reliability and scalability of your user interface code by leveraging data types. The following excerpt shows you the full list of TypeScript types and interfaces that are being used with the Flowbite Svelte library. - + + ## LLM Link diff --git a/src/routes/utils/HighlightCompo.svelte b/src/routes/utils/HighlightCompo.svelte deleted file mode 100644 index 41a8d5c86f..0000000000 --- a/src/routes/utils/HighlightCompo.svelte +++ /dev/null @@ -1,82 +0,0 @@ - - -
    -
    -
    - {#if copiedStatus} - Copied to clipboard - {/if} - {#if codeLang === "md"} - - {:else if code} - - {:else} - no code is provided - {/if} -
    - - {#if showExpandButton} - - {/if} -
    -
    diff --git a/src/routes/utils/theme.ts b/src/routes/utils/theme.ts index 6a7cf4c4e9..5030287ef7 100644 --- a/src/routes/utils/theme.ts +++ b/src/routes/utils/theme.ts @@ -1,19 +1,5 @@ import { tv } from "tailwind-variants"; -export const highlightcompo = tv({ - slots: { - base: "max-w-4xl rounded bg-gray-50 dark:bg-gray-700", - badge: "absolute -top-8 right-[8px]", - button: "absolute right-2 top-2 rounded px-2 py-1 bg-primary-800 text-white" - }, - variants: { - expanded: { - true: { base: "min-h-full" }, - false: { base: "" } - } - } -}); - export const codewrapper = tv({ slots: { base: "max-w-4xl rounded-md border border-gray-200 bg-white bg-gradient-to-r dark:border-gray-600 dark:bg-gray-950",