@meith/theme-raidframe 0.29.1 → 0.30.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meith/theme-raidframe",
3
- "version": "0.29.1",
3
+ "version": "0.30.1",
4
4
  "description": "A gaming theme for Meith — guild, raid and match boards — built on the default theme's slots.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -20,9 +20,9 @@
20
20
  "access": "public"
21
21
  },
22
22
  "dependencies": {
23
- "@meith/theme-default": "^0.29.1",
24
- "@meith/theme-kit": "^0.29.1",
25
- "@meith/ui": "^0.29.1"
23
+ "@meith/theme-default": "^0.30.1",
24
+ "@meith/theme-kit": "^0.30.1",
25
+ "@meith/ui": "^0.30.1"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "react": "^19.2.0"
@@ -8,6 +8,7 @@ export function Footer({
8
8
  links,
9
9
  timezoneLabel,
10
10
  poweredBy,
11
+ regions,
11
12
  copy,
12
13
  }: FooterModel & { copy: SlotCopy }) {
13
14
  const c = (key: string) => fromSlotCopy(copy, `raidframe.footer.${key}`)
@@ -15,31 +16,43 @@ export function Footer({
15
16
  return (
16
17
  <footer className="mt-auto">
17
18
  <div className={RULE} aria-hidden="true" />
18
- <div className="flex flex-wrap items-center justify-between gap-x-6 gap-y-2 border-t border-border bg-surface px-4 py-3 font-mono text-[0.6875rem] tracking-[0.12em] text-muted-foreground uppercase">
19
- <span className="inline-flex items-center gap-2 text-foreground">
20
- <span aria-hidden="true" className="size-2 rotate-45 border border-primary" />
21
- {boardTitle}
22
- </span>
19
+ <div className="border-t border-border bg-surface">
20
+ {regions?.controls && (
21
+ <div className="flex flex-wrap items-center justify-end gap-x-6 gap-y-2 border-b border-border px-4 py-3">
22
+ {regions.controls}
23
+ </div>
24
+ )}
25
+ <div className="flex flex-wrap items-center justify-between gap-x-6 gap-y-2 px-4 py-3 font-mono text-[0.6875rem] tracking-[0.12em] text-muted-foreground uppercase">
26
+ <span className="inline-flex items-center gap-2 text-foreground">
27
+ <span aria-hidden="true" className="size-2 rotate-45 border border-primary" />
28
+ {boardTitle}
29
+ </span>
23
30
 
24
- <nav aria-label={c('linksAriaLabel')} className="flex flex-wrap gap-x-4 gap-y-1">
25
- {links.map((link) => (
26
- <a key={link.href} href={link.href} className="hover:text-primary">
27
- {link.label}
28
- </a>
29
- ))}
30
- </nav>
31
+ <nav aria-label={c('linksAriaLabel')} className="flex flex-wrap gap-x-4 gap-y-1">
32
+ {links.map((link) => (
33
+ <a key={link.href} href={link.href} className="hover:text-primary">
34
+ {link.label}
35
+ </a>
36
+ ))}
37
+ </nav>
31
38
 
32
- <span className="flex flex-wrap gap-x-4 gap-y-1">
33
- <span>
34
- {c('allTimesPrefix')}
35
- {timezoneLabel}
39
+ <span className="flex flex-wrap gap-x-4 gap-y-1">
40
+ <span>
41
+ {c('allTimesPrefix')}
42
+ {timezoneLabel}
43
+ </span>
44
+ {poweredBy && (
45
+ <a
46
+ href={poweredBy.href}
47
+ target="_blank"
48
+ rel="noreferrer"
49
+ className="hover:text-primary"
50
+ >
51
+ {poweredBy.label}
52
+ </a>
53
+ )}
36
54
  </span>
37
- {poweredBy && (
38
- <a href={poweredBy.href} className="hover:text-primary">
39
- {poweredBy.label}
40
- </a>
41
- )}
42
- </span>
55
+ </div>
43
56
  </div>
44
57
  </footer>
45
58
  )
@@ -8,38 +8,32 @@ export function ForumJump({ action, field, forums, submitLabel, label }: ForumJu
8
8
  const id = `forum-jump-${field}`
9
9
 
10
10
  return (
11
- <div className="border-t border-border bg-card/40">
12
- <form
13
- method="get"
14
- action={action}
15
- className="mx-auto flex w-full max-w-6xl flex-wrap items-center gap-2 px-4 py-3 sm:justify-end"
16
- >
17
- <label htmlFor={id} className={MICRO}>
18
- {label}
19
- </label>
11
+ <form method="get" action={action} className="flex flex-wrap items-center gap-2">
12
+ <label htmlFor={id} className={MICRO}>
13
+ {label}
14
+ </label>
20
15
 
21
- <select
22
- id={id}
23
- name={field}
24
- defaultValue={forums.find((forum) => forum.isSelected)?.value ?? ''}
25
- className="h-8 w-auto min-w-48 flex-1 border border-input bg-surface px-2 font-mono text-xs text-foreground sm:flex-none"
26
- >
27
- {forums.map((forum) => (
28
- <option
29
- key={forum.value}
30
- value={forum.value}
31
- disabled={forum.isCategory}
32
- label={`${' '.repeat(forum.depth)}${forum.label}`}
33
- >
34
- {`${' '.repeat(forum.depth)}${forum.label}`}
35
- </option>
36
- ))}
37
- </select>
16
+ <select
17
+ id={id}
18
+ name={field}
19
+ defaultValue={forums.find((forum) => forum.isSelected)?.value ?? ''}
20
+ className="h-8 w-auto min-w-48 flex-1 border border-input bg-surface px-2 font-mono text-xs text-foreground sm:flex-none"
21
+ >
22
+ {forums.map((forum) => (
23
+ <option
24
+ key={forum.value}
25
+ value={forum.value}
26
+ disabled={forum.isCategory}
27
+ label={`${' '.repeat(forum.depth)}${forum.label}`}
28
+ >
29
+ {`${' '.repeat(forum.depth)}${forum.label}`}
30
+ </option>
31
+ ))}
32
+ </select>
38
33
 
39
- <button type="submit" className={BUTTON}>
40
- {submitLabel}
41
- </button>
42
- </form>
43
- </div>
34
+ <button type="submit" className={BUTTON}>
35
+ {submitLabel}
36
+ </button>
37
+ </form>
44
38
  )
45
39
  }
package/src/theme.ts CHANGED
@@ -73,7 +73,7 @@ import { WhoIsOnline } from './slots/who-is-online'
73
73
  export const raidframeTheme = defineTheme({
74
74
  key: 'raidframe',
75
75
  title: 'Raidframe',
76
- version: '0.29.1',
76
+ version: '0.30.1',
77
77
  extends: defaultTheme,
78
78
  slots: {
79
79
  Shell,