From 672031f7c6d4289b28271b37d6d3093cee4a3311 Mon Sep 17 00:00:00 2001 From: Sean Lynch Date: Tue, 24 Jun 2025 11:34:54 -0400 Subject: [PATCH 1/3] Remove use of `$$props` (class, style) --- .../svelte-ux/src/lib/components/AppLayout.svelte | 5 ++++- packages/svelte-ux/src/lib/components/BarStack.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Button.svelte | 6 ++++-- packages/svelte-ux/src/lib/components/Checkbox.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Code.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Collapse.svelte | 5 ++++- .../svelte-ux/src/lib/components/DateField.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Dialog.svelte | 7 +++++-- .../svelte-ux/src/lib/components/DividerDot.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Drawer.svelte | 7 +++++-- .../svelte-ux/src/lib/components/EmptyMessage.svelte | 5 ++++- .../src/lib/components/ExpansionPanel.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Field.svelte | 6 +++++- packages/svelte-ux/src/lib/components/Gooey.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Icon.svelte | 11 +++++++---- packages/svelte-ux/src/lib/components/Kbd.svelte | 5 ++++- packages/svelte-ux/src/lib/components/ListItem.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Menu.svelte | 7 +++++-- .../svelte-ux/src/lib/components/MenuButton.svelte | 5 ++++- .../svelte-ux/src/lib/components/MenuField.svelte | 2 +- packages/svelte-ux/src/lib/components/MenuItem.svelte | 5 ++++- .../src/lib/components/MultiSelectField.svelte | 5 ++++- .../src/lib/components/MultiSelectOption.svelte | 5 ++++- packages/svelte-ux/src/lib/components/NavItem.svelte | 5 ++++- .../svelte-ux/src/lib/components/Notification.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Overflow.svelte | 5 ++++- .../svelte-ux/src/lib/components/Pagination.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Preview.svelte | 5 ++++- .../src/lib/components/ProgressCircle.svelte | 5 +++-- .../svelte-ux/src/lib/components/QuickSearch.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Radio.svelte | 5 ++++- .../src/lib/components/ResponsiveMenu.svelte | 7 +++++-- .../src/lib/components/ScrollContainer.svelte | 5 ++++- .../src/lib/components/ScrollingValue.svelte | 5 ++++- .../src/lib/components/SectionDivider.svelte | 7 +++++-- .../svelte-ux/src/lib/components/SelectField.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Shine.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Stack.svelte | 2 +- packages/svelte-ux/src/lib/components/Step.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Steps.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Switch.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Tab.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Table.svelte | 11 ++++------- packages/svelte-ux/src/lib/components/Tabs.svelte | 5 ++++- .../svelte-ux/src/lib/components/TextField.svelte | 6 +++++- packages/svelte-ux/src/lib/components/Timeline.svelte | 8 +++++++- .../svelte-ux/src/lib/components/TimelineEvent.svelte | 5 ++++- .../svelte-ux/src/lib/components/ToggleGroup.svelte | 5 ++++- .../svelte-ux/src/lib/components/ToggleOption.svelte | 5 ++++- packages/svelte-ux/src/lib/components/Tooltip.svelte | 7 +++++-- packages/svelte-ux/src/lib/components/TreeList.svelte | 5 ++++- 51 files changed, 211 insertions(+), 68 deletions(-) diff --git a/packages/svelte-ux/src/lib/components/AppLayout.svelte b/packages/svelte-ux/src/lib/components/AppLayout.svelte index c1b8f7a0..e2a5fef0 100644 --- a/packages/svelte-ux/src/lib/components/AppLayout.svelte +++ b/packages/svelte-ux/src/lib/components/AppLayout.svelte @@ -13,6 +13,9 @@ /** Control whether header should be full width (deafult) or nav should be full height */ export let headerPosition: 'full' | 'inset' = 'full'; + let className: string | undefined = undefined; + export { className as class }; + export let classes: { root?: string; aside?: string; @@ -39,7 +42,7 @@ '[:where(&_[id])]:scroll-m-[var(--headerHeight)]', settingsClasses.root, classes.root, - $$props.class + className )} > diff --git a/packages/svelte-ux/src/lib/components/BarStack.svelte b/packages/svelte-ux/src/lib/components/BarStack.svelte index eeecc356..1f9ae748 100644 --- a/packages/svelte-ux/src/lib/components/BarStack.svelte +++ b/packages/svelte-ux/src/lib/components/BarStack.svelte @@ -17,6 +17,9 @@ }[]; export let total: number | undefined = undefined; + let className: string | undefined = undefined; + export { className as class }; + export let classes: { root?: string; item?: string; @@ -28,7 +31,7 @@ }>(); -
+
{#each data as item} {@const valuePercent = item.value / (total ?? sum(data, (d) => d.value))} diff --git a/packages/svelte-ux/src/lib/components/Button.svelte b/packages/svelte-ux/src/lib/components/Button.svelte index 20878e90..b61caafb 100644 --- a/packages/svelte-ux/src/lib/components/Button.svelte +++ b/packages/svelte-ux/src/lib/components/Button.svelte @@ -27,6 +27,9 @@ export let size: ButtonSize | undefined = undefined; // default in reactive groupContext below export let color: ButtonColor | undefined = undefined; // default in reactive groupContext below + let className: string | undefined = undefined; + export { className as class }; + /** @type {{root?: string, icon?: string, loading?: string}} */ export let classes: { root?: string; @@ -437,7 +440,7 @@ settingsClasses.root, classes?.root, - $$props.class + className ); @@ -449,7 +452,6 @@ {type} {...$$restProps} class={_class} - style={$$props.style ?? ''} {disabled} aria-disabled={disabled ? 'true' : 'false'} use:multi={actions} diff --git a/packages/svelte-ux/src/lib/components/Checkbox.svelte b/packages/svelte-ux/src/lib/components/Checkbox.svelte index eac19167..c4a16cb9 100644 --- a/packages/svelte-ux/src/lib/components/Checkbox.svelte +++ b/packages/svelte-ux/src/lib/components/Checkbox.svelte @@ -18,6 +18,9 @@ export let size: 'xs' | 'sm' | 'md' | 'lg' = 'sm'; export let circle = false; + let className: string | undefined = undefined; + export { className as class }; + export let classes: { root?: string; input?: string; @@ -57,7 +60,7 @@ 'items-center', settingsClasses.root, classes.root, - $$props.class + className )} > -
+
{#if source}
diff --git a/packages/svelte-ux/src/lib/components/DateField.svelte b/packages/svelte-ux/src/lib/components/DateField.svelte
index 142f7cf5..d20af311 100644
--- a/packages/svelte-ux/src/lib/components/DateField.svelte
+++ b/packages/svelte-ux/src/lib/components/DateField.svelte
@@ -46,6 +46,9 @@
   export let dense = false;
   export let icon: string | null = null;
 
+  let className: string | undefined = undefined;
+  export { className as class };
+
   let inputValue: string | undefined = '';
 
   const dispatch = createEventDispatcher();
@@ -82,7 +85,7 @@
     dispatch('change', { value });
   }}
   classes={classes.field}
-  class={cls('DateField', settingsClasses.root, classes.root, $$props.class)}
+  class={cls('DateField', settingsClasses.root, classes.root, className)}
   let:id
 >
   
       {#if loading}
         
diff --git a/packages/svelte-ux/src/lib/components/DividerDot.svelte b/packages/svelte-ux/src/lib/components/DividerDot.svelte
index dc5e3c52..f09469ac 100644
--- a/packages/svelte-ux/src/lib/components/DividerDot.svelte
+++ b/packages/svelte-ux/src/lib/components/DividerDot.svelte
@@ -2,7 +2,10 @@
   import { cls } from '@layerstack/tailwind';
   import { getComponentClasses } from './theme.js';
 
+  let className: string | undefined = undefined;
+  export { className as class };
+
   const settingsClasses = getComponentClasses('DividerDot');
 
 
-
+
diff --git a/packages/svelte-ux/src/lib/components/Drawer.svelte b/packages/svelte-ux/src/lib/components/Drawer.svelte
index 13965884..62831ebd 100644
--- a/packages/svelte-ux/src/lib/components/Drawer.svelte
+++ b/packages/svelte-ux/src/lib/components/Drawer.svelte
@@ -24,6 +24,9 @@
   export let loading: boolean | null = null;
   export let placement: 'top' | 'bottom' | 'left' | 'right' = 'right';
 
+  let className: string | undefined = undefined;
+  export { className as class };
+
   export let classes: {
     root?: string;
     backdrop?: string;
@@ -83,9 +86,8 @@
       },
       settingsClasses.root,
       classes.root,
-      $$props.class
+      className
     )}
-    style={$$props.style}
     in:fly|global={{
       x: placement === 'left' ? '-100%' : placement === 'right' ? '100%' : 0,
       y: placement === 'top' ? '-100%' : placement === 'bottom' ? '100%' : 0,
@@ -110,6 +112,7 @@
     use:focusMove={{ restoreFocus: true }}
     role="dialog"
     tabindex="-1"
+    {...$$restProps}
   >
     {#if loading}
       
diff --git a/packages/svelte-ux/src/lib/components/EmptyMessage.svelte b/packages/svelte-ux/src/lib/components/EmptyMessage.svelte
index 2c7e8ca5..ca96a0d9 100644
--- a/packages/svelte-ux/src/lib/components/EmptyMessage.svelte
+++ b/packages/svelte-ux/src/lib/components/EmptyMessage.svelte
@@ -2,6 +2,9 @@
   import { cls } from '@layerstack/tailwind';
   import { getComponentClasses } from './theme.js';
 
+  let className: string | undefined = undefined;
+  export { className as class };
+
   const settingsClasses = getComponentClasses('EmptyMessage');
 
 
@@ -14,7 +17,7 @@
     'text-surface-content/50 text-xs tracking-wider',
     'border border-surface-100/80 rounded-sm',
     settingsClasses.root,
-    $$props.class
+    className
   )}
 >
   
diff --git a/packages/svelte-ux/src/lib/components/ExpansionPanel.svelte b/packages/svelte-ux/src/lib/components/ExpansionPanel.svelte
index 594dcbfd..2c853c7c 100644
--- a/packages/svelte-ux/src/lib/components/ExpansionPanel.svelte
+++ b/packages/svelte-ux/src/lib/components/ExpansionPanel.svelte
@@ -17,6 +17,9 @@
   export let disabled = false;
   $: enabled = $$slots.default && !disabled;
 
+  let className: string | undefined = undefined;
+  export { className as class };
+
   export let classes: {
     root?: string;
     toggle?: string;
@@ -36,7 +39,7 @@
       list === 'group' && 'group-first:border-t-0 group-first:rounded-t group-last:rounded-b',
       settingsClasses.root,
       classes.root,
-      $$props.class
+      className
     ),
     icon: cls('text-surface-content/30 px-2', !enabled && 'hidden'),
   }}
diff --git a/packages/svelte-ux/src/lib/components/Field.svelte b/packages/svelte-ux/src/lib/components/Field.svelte
index 2adbdf4f..f5408c23 100644
--- a/packages/svelte-ux/src/lib/components/Field.svelte
+++ b/packages/svelte-ux/src/lib/components/Field.svelte
@@ -35,6 +35,10 @@
   // export let actions: Actions = undefined;
   // export let inputEl: HTMLInputElement | null = null;
   export let center = false;
+
+  let className: string | undefined = undefined;
+  export { className as class };
+
   export let classes: {
     root?: string;
     container?: string;
@@ -69,7 +73,7 @@
     !base && (rounded ? 'rounded-full' : 'rounded-sm'),
     settingsClasses.root,
     classes.root,
-    $$props.class
+    className
   )}
   bind:this={labelEl}
 >
diff --git a/packages/svelte-ux/src/lib/components/Gooey.svelte b/packages/svelte-ux/src/lib/components/Gooey.svelte
index 3765e95b..286726c6 100644
--- a/packages/svelte-ux/src/lib/components/Gooey.svelte
+++ b/packages/svelte-ux/src/lib/components/Gooey.svelte
@@ -16,6 +16,9 @@
 
   export let composite: SVGAttributes['operator'] = undefined;
 
+  let className: string | undefined = undefined;
+  export { className as class };
+
   /** @type {{root?: string, icon?: string, loading?: string}} */
   export let classes: {
     root?: string;
@@ -51,7 +54,7 @@
 
diff --git a/packages/svelte-ux/src/lib/components/Icon.svelte b/packages/svelte-ux/src/lib/components/Icon.svelte index 9d16ec32..a9d52d7a 100644 --- a/packages/svelte-ux/src/lib/components/Icon.svelte +++ b/packages/svelte-ux/src/lib/components/Icon.svelte @@ -25,6 +25,9 @@ export let descId: string | undefined = desc ? uniqueId('desc-') : ''; $: isLabelled = title || desc; + let className: string | undefined = undefined; + export { className as class }; + export let classes: { root?: string; path?: string | string[]; @@ -87,9 +90,8 @@ 'icon-container inline-block shrink-0 align-middle fill-current', settingsClasses.root, classes.root, - $$props.class + className )} - style={$$props.style} style:width style:height style:--width={width} @@ -97,6 +99,7 @@ role={isLabelled ? 'img' : 'presentation'} aria-labelledby={isLabelled ? `${titleId} ${descId}` : undefined} on:click + {...$$restProps} > {@html svg ?? ''} @@ -112,12 +115,12 @@ 'inline-block shrink-0 fill-current', settingsClasses.root, classes.root, - $$props.class + className )} - style={$$props.style} role={isLabelled ? 'img' : 'presentation'} aria-labelledby={isLabelled ? `${titleId} ${descId}` : undefined} on:click + {...$$restProps} > {#if title} {title} diff --git a/packages/svelte-ux/src/lib/components/Kbd.svelte b/packages/svelte-ux/src/lib/components/Kbd.svelte index e8603891..832f8f25 100644 --- a/packages/svelte-ux/src/lib/components/Kbd.svelte +++ b/packages/svelte-ux/src/lib/components/Kbd.svelte @@ -8,6 +8,9 @@ export let command = false; export let variant: 'filled' | 'none' = 'filled'; + + let className: string | undefined = undefined; + export { className as class }; {#if control} diff --git a/packages/svelte-ux/src/lib/components/ListItem.svelte b/packages/svelte-ux/src/lib/components/ListItem.svelte index 9a299c26..97116100 100644 --- a/packages/svelte-ux/src/lib/components/ListItem.svelte +++ b/packages/svelte-ux/src/lib/components/ListItem.svelte @@ -35,6 +35,9 @@ */ export let noBackground = false; + let className: string | undefined = undefined; + export { className as class }; + export let classes: { root?: string; avatar?: string; @@ -64,7 +67,7 @@ noBackground !== true && 'bg-surface-100', settingsClasses.root, classes.root, - $$props.class + className )} on:click role="listitem" diff --git a/packages/svelte-ux/src/lib/components/Menu.svelte b/packages/svelte-ux/src/lib/components/Menu.svelte index 192e09f5..9b54e609 100644 --- a/packages/svelte-ux/src/lib/components/Menu.svelte +++ b/packages/svelte-ux/src/lib/components/Menu.svelte @@ -28,6 +28,9 @@ export let explicitClose = false; export let moveFocus = true; + let className: string | undefined = undefined; + export { className as class }; + export let classes: { root?: string; menu?: string; @@ -70,11 +73,11 @@ 'bg-surface-100 rounded-sm shadow-sm border overflow-auto', settingsClasses.root, classes.root, - $$props.class + className )} - style={$$props.style} on:close let:close + {...$$restProps} > diff --git a/packages/svelte-ux/src/lib/components/MenuButton.svelte b/packages/svelte-ux/src/lib/components/MenuButton.svelte index f7bca412..d2c0fced 100644 --- a/packages/svelte-ux/src/lib/components/MenuButton.svelte +++ b/packages/svelte-ux/src/lib/components/MenuButton.svelte @@ -20,6 +20,9 @@ export let menuIcon: string | null = mdiMenuDown; $: selected = options?.find((x) => x.value === value); + let className: string | undefined = undefined; + export { className as class }; + export let classes: { root?: string; label?: string; @@ -38,7 +41,7 @@