From ed3ada4029af9e96187ddf0c17279feebacd05ee Mon Sep 17 00:00:00 2001 From: Daniel Imfeld Date: Wed, 3 Jan 2024 09:44:58 -1000 Subject: [PATCH 1/2] Rename settings `theme` to `classes` in preparation for adding theme support --- .../templates/layerchart/src/routes/+layout.svelte | 2 +- .../templates/starter/src/routes/+layout.svelte | 2 +- packages/svelte-ux/src/lib/components/index.ts | 2 +- packages/svelte-ux/src/lib/components/settings.ts | 4 ++-- packages/svelte-ux/src/lib/components/theme.ts | 8 ++++---- packages/svelte-ux/src/routes/+layout.svelte | 2 +- packages/svelte-ux/src/routes/docs/+layout.svelte | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/create-svelte-ux/templates/layerchart/src/routes/+layout.svelte b/packages/create-svelte-ux/templates/layerchart/src/routes/+layout.svelte index f822e60c4..f4a92066d 100644 --- a/packages/create-svelte-ux/templates/layerchart/src/routes/+layout.svelte +++ b/packages/create-svelte-ux/templates/layerchart/src/routes/+layout.svelte @@ -5,7 +5,7 @@ import '../app.postcss'; settings({ - theme: { + classes: { AppBar: 'bg-primary text-white shadow-md', AppLayout: { nav: 'bg-neutral-800' diff --git a/packages/create-svelte-ux/templates/starter/src/routes/+layout.svelte b/packages/create-svelte-ux/templates/starter/src/routes/+layout.svelte index 8bc3c7a48..cdf1cd426 100644 --- a/packages/create-svelte-ux/templates/starter/src/routes/+layout.svelte +++ b/packages/create-svelte-ux/templates/starter/src/routes/+layout.svelte @@ -5,7 +5,7 @@ import '../app.postcss'; settings({ - theme: { + classes: { AppBar: 'bg-primary text-white shadow-md', AppLayout: { nav: 'bg-neutral-800' diff --git a/packages/svelte-ux/src/lib/components/index.ts b/packages/svelte-ux/src/lib/components/index.ts index 2326377c7..0c9247916 100644 --- a/packages/svelte-ux/src/lib/components/index.ts +++ b/packages/svelte-ux/src/lib/components/index.ts @@ -95,4 +95,4 @@ export { default as TweenedValue } from './TweenedValue.svelte'; export { default as ViewportCenter } from './ViewportCenter.svelte'; export { default as YearList } from './YearList.svelte'; export { settings, getFormatNumber, getSettings, getDictionary } from './settings'; -export { getTheme, getComponentTheme } from './theme'; +export { getClasses, getComponentTheme } from './theme'; diff --git a/packages/svelte-ux/src/lib/components/settings.ts b/packages/svelte-ux/src/lib/components/settings.ts index c6d862db4..a381173ea 100644 --- a/packages/svelte-ux/src/lib/components/settings.ts +++ b/packages/svelte-ux/src/lib/components/settings.ts @@ -1,6 +1,6 @@ import type { FormatNumberOptions, FormatNumberStyle } from '$lib/utils/number'; import { getContext, setContext } from 'svelte'; -import type { Theme } from './theme'; +import type { ComponentClasses } from './theme'; import type { Prettify } from '$lib/types/typeHelpers'; import { type FormatDateOptions, @@ -25,7 +25,7 @@ export type Settings = { dates?: FormatDateOptions; }; dictionary?: DictionaryMessagesOptions; - theme?: Theme; + classes?: ComponentClasses; }; const settingsKey = Symbol(); diff --git a/packages/svelte-ux/src/lib/components/theme.ts b/packages/svelte-ux/src/lib/components/theme.ts index aefa8e029..15db1291b 100644 --- a/packages/svelte-ux/src/lib/components/theme.ts +++ b/packages/svelte-ux/src/lib/components/theme.ts @@ -10,16 +10,16 @@ type ClassesProp = T extends { prototype: infer PR extends SvelteComponent } : never : never; -export type Theme = { +export type ComponentClasses = { [key in ComponentName]?: ClassesProp<(typeof Components)[key]> | string; }; -export function getTheme() { - return getSettings().theme ?? {}; +export function getClasses() { + return getSettings().classes ?? {}; } export function getComponentTheme(name: ComponentName) { - const theme = getTheme()[name] ?? {}; + const theme = getClasses()[name] ?? {}; return typeof theme === 'string' ? { root: theme } : theme; } diff --git a/packages/svelte-ux/src/routes/+layout.svelte b/packages/svelte-ux/src/routes/+layout.svelte index dfc1fd227..39f6f6755 100644 --- a/packages/svelte-ux/src/routes/+layout.svelte +++ b/packages/svelte-ux/src/routes/+layout.svelte @@ -85,7 +85,7 @@ // Day: 'Jour', // }, // }, - theme: { + classes: { AppLayout: { aside: 'border-r', nav: 'bg-surface-300 py-2', diff --git a/packages/svelte-ux/src/routes/docs/+layout.svelte b/packages/svelte-ux/src/routes/docs/+layout.svelte index 8a58341bb..d25ea01d4 100644 --- a/packages/svelte-ux/src/routes/docs/+layout.svelte +++ b/packages/svelte-ux/src/routes/docs/+layout.svelte @@ -69,7 +69,7 @@ } // Clear root layout theme so doesn't show on doc examples - settings({ ...getSettings(), theme: {} }); + settings({ ...getSettings(), classes: {} });
Date: Wed, 3 Jan 2024 10:59:02 -1000 Subject: [PATCH 2/2] Rename getComponentTheme to getComponentClasses --- .changeset/for-you-sean.md | 7 +++++ .../src/lib/components/AppBar.svelte | 6 ++-- .../src/lib/components/AppLayout.svelte | 10 +++---- .../src/lib/components/Avatar.svelte | 6 ++-- .../src/lib/components/Backdrop.svelte | 6 ++-- .../svelte-ux/src/lib/components/Badge.svelte | 6 ++-- .../src/lib/components/Breadcrumb.svelte | 6 ++-- .../src/lib/components/Button.svelte | 12 ++++---- .../src/lib/components/ButtonGroup.svelte | 6 ++-- .../svelte-ux/src/lib/components/Card.svelte | 6 ++-- .../src/lib/components/Checkbox.svelte | 12 ++++---- .../svelte-ux/src/lib/components/Code.svelte | 6 ++-- .../src/lib/components/Collapse.svelte | 12 ++++---- .../src/lib/components/CopyButton.svelte | 6 ++-- .../src/lib/components/DateButton.svelte | 6 ++-- .../src/lib/components/DateField.svelte | 4 +-- .../src/lib/components/DatePickerField.svelte | 4 +-- .../src/lib/components/DateRange.svelte | 6 ++-- .../src/lib/components/Dialog.svelte | 14 +++++----- .../src/lib/components/DividerDot.svelte | 6 ++-- .../src/lib/components/Drawer.svelte | 10 +++---- .../src/lib/components/Duration.svelte | 6 ++-- .../src/lib/components/EmptyMessage.svelte | 6 ++-- .../src/lib/components/ExpansionPanel.svelte | 8 +++--- .../svelte-ux/src/lib/components/Field.svelte | 20 ++++++------- .../svelte-ux/src/lib/components/Form.svelte | 6 ++-- .../svelte-ux/src/lib/components/Gooey.svelte | 8 +++--- .../src/lib/components/Header.svelte | 6 ++-- .../svelte-ux/src/lib/components/Icon.svelte | 10 +++---- .../svelte-ux/src/lib/components/Input.svelte | 6 ++-- .../svelte-ux/src/lib/components/Lazy.svelte | 6 ++-- .../src/lib/components/ListItem.svelte | 16 +++++------ .../svelte-ux/src/lib/components/Menu.svelte | 8 +++--- .../src/lib/components/MenuButton.svelte | 10 +++---- .../src/lib/components/MenuField.svelte | 10 +++---- .../src/lib/components/MenuItem.svelte | 6 ++-- .../src/lib/components/MultiSelect.svelte | 6 ++-- .../lib/components/MultiSelectField.svelte | 8 +++--- .../src/lib/components/MultiSelectMenu.svelte | 8 +++--- .../lib/components/MultiSelectOption.svelte | 10 +++---- .../src/lib/components/NavItem.svelte | 10 +++---- .../src/lib/components/NumberStepper.svelte | 6 ++-- .../src/lib/components/Overflow.svelte | 6 ++-- .../src/lib/components/Overlay.svelte | 6 ++-- .../src/lib/components/Pagination.svelte | 18 ++++++------ .../src/lib/components/Popover.svelte | 6 ++-- .../src/lib/components/Progress.svelte | 6 ++-- .../src/lib/components/ProgressCircle.svelte | 6 ++-- .../src/lib/components/QuickSearch.svelte | 8 +++--- .../svelte-ux/src/lib/components/Radio.svelte | 12 ++++---- .../src/lib/components/RangeSlider.svelte | 6 ++-- .../src/lib/components/ScrollingValue.svelte | 10 +++---- .../src/lib/components/SectionDivider.svelte | 6 ++-- .../src/lib/components/SelectField.svelte | 16 +++++------ .../svelte-ux/src/lib/components/Shine.svelte | 8 +++--- .../src/lib/components/Switch.svelte | 12 ++++---- .../svelte-ux/src/lib/components/Tab.svelte | 6 ++-- .../svelte-ux/src/lib/components/Table.svelte | 28 +++++++++---------- .../src/lib/components/TableOfContents.svelte | 6 ++-- .../svelte-ux/src/lib/components/Tabs.svelte | 12 ++++---- .../src/lib/components/TextField.svelte | 22 +++++++-------- .../svelte-ux/src/lib/components/Tilt.svelte | 6 ++-- .../src/lib/components/ToggleGroup.svelte | 12 ++++---- .../src/lib/components/ToggleOption.svelte | 10 +++---- .../src/lib/components/Tooltip.svelte | 12 ++++---- .../src/lib/components/TreeList.svelte | 8 +++--- .../lib/components/_SelectListOptions.svelte | 8 +++--- .../svelte-ux/src/lib/components/index.ts | 2 +- .../svelte-ux/src/lib/components/theme.ts | 2 +- 69 files changed, 302 insertions(+), 295 deletions(-) create mode 100644 .changeset/for-you-sean.md diff --git a/.changeset/for-you-sean.md b/.changeset/for-you-sean.md new file mode 100644 index 000000000..308f7b580 --- /dev/null +++ b/.changeset/for-you-sean.md @@ -0,0 +1,7 @@ +--- +'svelte-ux': minor +--- + +- Rename settings `theme` argument to `classes` +- Rename getTheme to getClasses and getComponentTheme to getComponentClasses + diff --git a/packages/svelte-ux/src/lib/components/AppBar.svelte b/packages/svelte-ux/src/lib/components/AppBar.svelte index bb5471921..21a7c9af1 100644 --- a/packages/svelte-ux/src/lib/components/AppBar.svelte +++ b/packages/svelte-ux/src/lib/components/AppBar.svelte @@ -6,7 +6,7 @@ import Button from './Button.svelte'; import { browser } from '../utils/env'; import { cls } from '../utils/styles'; - import { getComponentTheme } from './theme'; + import { getComponentClasses } from './theme'; export let title: string | number | Array = ''; @@ -15,7 +15,7 @@ */ export let head = true; - const theme = getComponentTheme('AppBar'); + const settingsClasses = getComponentClasses('AppBar'); $: titleString = Array.isArray(title) ? title.filter((x) => x).join(' › ') : title.toString(); @@ -26,7 +26,7 @@