@fuzdev/fuz_ui 0.187.1 → 0.189.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 (64) hide show
  1. package/README.md +2 -2
  2. package/dist/ColorSchemeInput.svelte +4 -2
  3. package/dist/ColorSchemeInput.svelte.d.ts.map +1 -1
  4. package/dist/ContextmenuEntry.svelte +4 -2
  5. package/dist/ContextmenuEntry.svelte.d.ts.map +1 -1
  6. package/dist/ContextmenuLinkEntry.svelte +4 -2
  7. package/dist/ContextmenuLinkEntry.svelte.d.ts.map +1 -1
  8. package/dist/ContextmenuRoot.svelte +1 -9
  9. package/dist/ContextmenuRoot.svelte.d.ts +0 -8
  10. package/dist/ContextmenuRoot.svelte.d.ts.map +1 -1
  11. package/dist/ContextmenuRootForSafariCompatibility.svelte +1 -9
  12. package/dist/ContextmenuRootForSafariCompatibility.svelte.d.ts +0 -8
  13. package/dist/ContextmenuRootForSafariCompatibility.svelte.d.ts.map +1 -1
  14. package/dist/ContextmenuSubmenu.svelte +6 -4
  15. package/dist/ContextmenuSubmenu.svelte.d.ts.map +1 -1
  16. package/dist/Docs.svelte +2 -2
  17. package/dist/LibraryDetail.svelte +7 -7
  18. package/dist/LibraryDetail.svelte.d.ts +1 -1
  19. package/dist/LibraryDetail.svelte.d.ts.map +1 -1
  20. package/dist/LibrarySummary.svelte +7 -7
  21. package/dist/LibrarySummary.svelte.d.ts +1 -1
  22. package/dist/LibrarySummary.svelte.d.ts.map +1 -1
  23. package/dist/Redirect.svelte +6 -8
  24. package/dist/Redirect.svelte.d.ts +2 -5
  25. package/dist/Redirect.svelte.d.ts.map +1 -1
  26. package/dist/ThemeInput.svelte +4 -2
  27. package/dist/ThemeInput.svelte.d.ts.map +1 -1
  28. package/dist/{Themed.svelte → ThemeRoot.svelte} +22 -21
  29. package/dist/{Themed.svelte.d.ts → ThemeRoot.svelte.d.ts} +11 -10
  30. package/dist/ThemeRoot.svelte.d.ts.map +1 -0
  31. package/dist/TomeContent.svelte +1 -1
  32. package/dist/TomeHeader.svelte +8 -9
  33. package/dist/TomeHeader.svelte.d.ts.map +1 -1
  34. package/dist/TomeSection.svelte +7 -6
  35. package/dist/TomeSection.svelte.d.ts +1 -1
  36. package/dist/TomeSection.svelte.d.ts.map +1 -1
  37. package/dist/TomeSectionHeader.svelte +7 -11
  38. package/dist/TomeSectionHeader.svelte.d.ts +1 -1
  39. package/dist/TomeSectionHeader.svelte.d.ts.map +1 -1
  40. package/dist/contextmenu_state.svelte.d.ts +3 -3
  41. package/dist/contextmenu_state.svelte.d.ts.map +1 -1
  42. package/dist/csp_of_fuzdev.d.ts +6 -0
  43. package/dist/csp_of_fuzdev.d.ts.map +1 -0
  44. package/dist/csp_of_fuzdev.js +9 -0
  45. package/dist/library.svelte.d.ts +1 -1
  46. package/dist/mdz_lexer.js +2 -2
  47. package/dist/{themer.svelte.d.ts → theme_state.svelte.d.ts} +10 -10
  48. package/dist/theme_state.svelte.d.ts.map +1 -0
  49. package/dist/{themer.svelte.js → theme_state.svelte.js} +3 -3
  50. package/dist/tome.d.ts +6 -62
  51. package/dist/tome.d.ts.map +1 -1
  52. package/dist/tome.js +2 -2
  53. package/package.json +9 -3
  54. package/src/lib/contextmenu_state.svelte.ts +1 -1
  55. package/src/lib/csp_of_fuzdev.ts +11 -0
  56. package/src/lib/mdz_lexer.ts +4 -4
  57. package/src/lib/{themer.svelte.ts → theme_state.svelte.ts} +7 -7
  58. package/src/lib/tome.ts +4 -4
  59. package/dist/Themed.svelte.d.ts.map +0 -1
  60. package/dist/csp_of_ryanatkn.d.ts +0 -6
  61. package/dist/csp_of_ryanatkn.d.ts.map +0 -1
  62. package/dist/csp_of_ryanatkn.js +0 -14
  63. package/dist/themer.svelte.d.ts.map +0 -1
  64. package/src/lib/csp_of_ryanatkn.ts +0 -16
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" module>
2
2
  import {create_context} from './context_helpers.js';
3
3
 
4
- export type RegisterSectionHeader = (fragment: string) => string | undefined;
4
+ export type RegisterSectionHeader = (get_fragment: () => string) => string | undefined;
5
5
  export const register_section_header_context = create_context<RegisterSectionHeader>();
6
6
  export const section_depth_context = create_context(() => 0);
7
7
  export const section_id_context = create_context<string | undefined>();
@@ -39,15 +39,15 @@
39
39
  // Provide own section ID to direct children (header) via context
40
40
  section_id_context.set(section_id);
41
41
 
42
- let fragment: string | undefined;
42
+ let get_fragment: (() => string) | undefined = $state();
43
43
 
44
- register_section_header_context.set((f) => {
45
- if (DEV && fragment !== undefined) {
44
+ register_section_header_context.set((gf) => {
45
+ if (DEV && get_fragment !== undefined) {
46
46
  throw Error(
47
- `TomeSection already has header "${fragment}", cannot add "${f}". Did you forget to wrap a TomeSectionHeader in its own TomeSection?`,
47
+ `TomeSection already has header "${get_fragment()}", cannot add "${gf()}". Did you forget to wrap a TomeSectionHeader in its own TomeSection?`,
48
48
  );
49
49
  }
50
- fragment = f;
50
+ get_fragment = gf;
51
51
  return parent_section_id; // Return parent section ID to header
52
52
  });
53
53
  </script>
@@ -55,6 +55,7 @@
55
55
  <section
56
56
  {...rest}
57
57
  {@attach intersect(() => ({intersecting}) => {
58
+ const fragment = get_fragment?.();
58
59
  if (!fragment) {
59
60
  if (DEV) console.error('TomeSectionHeader must be a child of TomeSection'); // eslint-disable-line no-console
60
61
  return;
@@ -1,4 +1,4 @@
1
- export type RegisterSectionHeader = (fragment: string) => string | undefined;
1
+ export type RegisterSectionHeader = (get_fragment: () => string) => string | undefined;
2
2
  export declare const register_section_header_context: {
3
3
  get: (error_message?: string) => RegisterSectionHeader;
4
4
  get_maybe: () => RegisterSectionHeader | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"TomeSection.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/TomeSection.svelte"],"names":[],"mappings":"AAKC,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAC7E,eAAO,MAAM,+BAA+B;;;;CAA0C,CAAC;AACvF,eAAO,MAAM,qBAAqB;;;CAA0B,CAAC;AAC7D,eAAO,MAAM,kBAAkB;;;;CAAuC,CAAC;AAGxE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAMvD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,SAAS,CAAC,GAAG;IACxD,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AA8DH,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"TomeSection.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/TomeSection.svelte"],"names":[],"mappings":"AAKC,MAAM,MAAM,qBAAqB,GAAG,CAAC,YAAY,EAAE,MAAM,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AACvF,eAAO,MAAM,+BAA+B;;;;CAA0C,CAAC;AACvF,eAAO,MAAM,qBAAqB;;;CAA0B,CAAC;AAC7D,eAAO,MAAM,kBAAkB;;;;CAAuC,CAAC;AAGxE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAMvD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,SAAS,CAAC,GAAG;IACxD,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AA+DH,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import {onDestroy, type Snippet} from 'svelte';
2
+ import type {Snippet} from 'svelte';
3
3
  import type {SvelteHTMLElements} from 'svelte/elements';
4
4
  import {page} from '$app/state';
5
5
  import {resolve} from '$app/paths';
@@ -41,12 +41,12 @@
41
41
  const my_section_id = section_id_context.get();
42
42
 
43
43
  // Register with parent section to get parent's ID back
44
- const parent_section_id = register_section_header(fragment);
44
+ const parent_section_id = register_section_header(() => fragment);
45
45
 
46
- // Register with docs_links using own section ID and parent section ID
47
- let id: string | undefined;
48
- if (page.url.pathname !== resolve(docs_links.root_path as any)) {
49
- id = docs_links.add(
46
+ // Register with docs_links re-registers when reactive values change
47
+ $effect(() => {
48
+ if (page.url.pathname === resolve(docs_links.root_path as any)) return;
49
+ const id = docs_links.add(
50
50
  fragment,
51
51
  text,
52
52
  page.url.pathname,
@@ -55,11 +55,7 @@
55
55
  parent_section_id,
56
56
  my_section_id,
57
57
  );
58
- }
59
-
60
- // Cleanup on unmount
61
- onDestroy(() => {
62
- if (id) docs_links.remove(id);
58
+ return () => docs_links.remove(id);
63
59
  });
64
60
  </script>
65
61
 
@@ -1,4 +1,4 @@
1
- import { type Snippet } from 'svelte';
1
+ import type { Snippet } from 'svelte';
2
2
  import type { SvelteHTMLElements } from 'svelte/elements';
3
3
  import { type DocsLinkTag } from './docs_helpers.svelte.js';
4
4
  type $$ComponentProps = // eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents
@@ -1 +1 @@
1
- {"version":3,"file":"TomeSectionHeader.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/TomeSectionHeader.svelte"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAUxD,OAAO,EAAmC,KAAK,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAE3F,KAAK,gBAAgB,GACrB,AADyB,6EAA6E;AACtG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA0EH,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"TomeSectionHeader.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/TomeSectionHeader.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAUxD,OAAO,EAAmC,KAAK,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAE3F,KAAK,gBAAgB,GACrB,AADyB,6EAA6E;AACtG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAsEH,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
@@ -129,9 +129,9 @@ export interface ContextmenuOpenOptions {
129
129
  */
130
130
  export declare const contextmenu_open: (target: HTMLElement | SVGElement, x: number, y: number, contextmenu: ContextmenuState, options?: ContextmenuOpenOptions) => boolean;
131
131
  export declare const contextmenu_context: {
132
- get: (error_message?: string) => ContextmenuState;
133
- get_maybe: () => ContextmenuState | undefined;
134
- set: (value: ContextmenuState) => ContextmenuState;
132
+ get: (error_message?: string) => () => ContextmenuState;
133
+ get_maybe: () => (() => ContextmenuState) | undefined;
134
+ set: (value: () => ContextmenuState) => () => ContextmenuState;
135
135
  };
136
136
  export declare const contextmenu_submenu_context: {
137
137
  get: (error_message?: string) => SubmenuState;
@@ -1 +1 @@
1
- {"version":3,"file":"contextmenu_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/contextmenu_state.svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextmenu_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/contextmenu_state.svelte.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { CspSourceSpec } from './csp.ts';
2
+ /**
3
+ * Trusted sources owned by fuz.dev.
4
+ */
5
+ export declare const csp_trusted_sources_of_fuzdev: Array<CspSourceSpec>;
6
+ //# sourceMappingURL=csp_of_fuzdev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csp_of_fuzdev.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/csp_of_fuzdev.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,aAAa,CAK9D,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Trusted sources owned by fuz.dev.
3
+ */
4
+ export const csp_trusted_sources_of_fuzdev = [
5
+ { source: 'https://*.fuz.dev/', trust: 'low' },
6
+ { source: 'https://*.zzz.software/', trust: 'low' },
7
+ // if needed
8
+ // {source: 'https://fuzdev.github.io/', trust: 'low'},
9
+ ];
@@ -28,7 +28,7 @@ export declare class Library {
28
28
  version: string;
29
29
  private?: boolean | undefined;
30
30
  description?: string | undefined;
31
- motto?: string | undefined;
31
+ tagline?: string | undefined;
32
32
  glyph?: string | undefined;
33
33
  logo?: string | undefined;
34
34
  logo_alt?: string | undefined;
package/dist/mdz_lexer.js CHANGED
@@ -8,9 +8,9 @@
8
8
  */
9
9
  import { mdz_is_url } from './mdz.js';
10
10
  import { is_letter, is_tag_name_char, is_word_char, is_valid_path_char, trim_trailing_punctuation, BACKTICK, ASTERISK, UNDERSCORE, TILDE, NEWLINE, HYPHEN, HASH, SPACE, TAB, LEFT_ANGLE, RIGHT_ANGLE, SLASH, PERIOD, LEFT_BRACKET, LEFT_PAREN, RIGHT_PAREN, RIGHT_BRACKET, A_UPPER, Z_UPPER, HR_HYPHEN_COUNT, MIN_CODEBLOCK_BACKTICKS, MAX_HEADING_LEVEL, HTTPS_PREFIX_LENGTH, HTTP_PREFIX_LENGTH, is_at_absolute_path, is_at_relative_path, } from './mdz_helpers.js';
11
- // ============================================================================
11
+ //
12
12
  // Lexer
13
- // ============================================================================
13
+ //
14
14
  export class MdzLexer {
15
15
  #text;
16
16
  #index = 0;
@@ -1,19 +1,19 @@
1
1
  import { type ColorScheme, type Theme } from '@fuzdev/fuz_css/theme.js';
2
- export interface ThemerJson {
2
+ export interface ThemeStateJson {
3
3
  theme: Theme;
4
4
  color_scheme: ColorScheme;
5
5
  }
6
- export type ThemerOptions = Partial<ThemerJson>;
7
- export declare class Themer {
6
+ export type ThemeStateOptions = Partial<ThemeStateJson>;
7
+ export declare class ThemeState {
8
8
  theme: Theme;
9
9
  color_scheme: ColorScheme;
10
- constructor(options?: ThemerOptions);
11
- toJSON(): ThemerJson;
10
+ constructor(options?: ThemeStateOptions);
11
+ toJSON(): ThemeStateJson;
12
12
  }
13
- export declare const themer_context: {
14
- get: (error_message?: string) => Themer;
15
- get_maybe: () => Themer | undefined;
16
- set: (value: Themer) => Themer;
13
+ export declare const theme_state_context: {
14
+ get: (error_message?: string) => () => ThemeState;
15
+ get_maybe: () => (() => ThemeState) | undefined;
16
+ set: (value: () => ThemeState) => () => ThemeState;
17
17
  };
18
18
  export declare const sync_color_scheme: (color_scheme: ColorScheme | null) => void;
19
19
  export declare const COLOR_SCHEME_STORAGE_KEY = "fuz:color-scheme";
@@ -22,4 +22,4 @@ export declare const save_color_scheme: (color_scheme: ColorScheme | null, key?:
22
22
  export declare const load_color_scheme: (fallback?: ColorScheme, key?: string) => ColorScheme;
23
23
  export declare const save_theme: (theme: Theme | null, key?: string) => void;
24
24
  export declare const load_theme: (fallback?: Theme, key?: string) => Theme;
25
- //# sourceMappingURL=themer.svelte.d.ts.map
25
+ //# sourceMappingURL=theme_state.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/theme_state.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,KAAK,KAAK,EAAC,MAAM,0BAA0B,CAAC;AAOrF,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAExD,qBAAa,UAAU;IACtB,KAAK,EAAE,KAAK,CAAa;IACzB,YAAY,EAAE,WAAW,CAAa;gBAE1B,OAAO,CAAC,EAAE,iBAAiB;IAUvC,MAAM,IAAI,cAAc;CAMxB;AACD,eAAO,MAAM,mBAAmB;2CAAwB,UAAU;4BAAV,UAAU;uBAAV,UAAU,WAAV,UAAU;CAAG,CAAC;AAEtE,eAAO,MAAM,iBAAiB,GAAI,cAAc,WAAW,GAAG,IAAI,KAAG,IAOpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C,eAAO,MAAM,iBAAiB,GAC7B,cAAc,WAAW,GAAG,IAAI,EAChC,YAA8B,KAC5B,IAEF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC7B,WAAU,WAAoB,EAC9B,YAA8B,KAC5B,WAA4E,CAAC;AAEhF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,GAAG,IAAI,EAAE,YAAuB,KAAG,IAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,WAAU,KAA0B,EAAE,YAAuB,KAAG,KAC3C,CAAC"}
@@ -3,7 +3,7 @@ import { default_themes } from '@fuzdev/fuz_css/themes.js';
3
3
  import { BROWSER } from 'esm-env';
4
4
  import { create_context } from './context_helpers.js';
5
5
  import { load_from_storage, save_to_storage } from './storage.js';
6
- export class Themer {
6
+ export class ThemeState {
7
7
  theme = $state();
8
8
  color_scheme = $state();
9
9
  constructor(options) {
@@ -13,7 +13,7 @@ export class Themer {
13
13
  throw Error('unknown color scheme: ' + color_scheme);
14
14
  }
15
15
  this.theme = theme;
16
- this.color_scheme = color_scheme; // TODO `resolved_color_scheme` if auto? users could then do different things based on the final value - would not be added to `ThemerJson`
16
+ this.color_scheme = color_scheme; // TODO `resolved_color_scheme` if auto? users could then do different things based on the final value - would not be added to `ThemeStateJson`
17
17
  }
18
18
  toJSON() {
19
19
  return {
@@ -22,7 +22,7 @@ export class Themer {
22
22
  };
23
23
  }
24
24
  }
25
- export const themer_context = create_context();
25
+ export const theme_state_context = create_context();
26
26
  export const sync_color_scheme = (color_scheme) => {
27
27
  if (!BROWSER)
28
28
  return;
package/dist/tome.d.ts CHANGED
@@ -14,70 +14,14 @@ export type Tome = z.infer<typeof Tome>;
14
14
  */
15
15
  export declare const to_tome_pathname: (item: Tome | string, docs_path?: string, hash?: string) => string;
16
16
  export declare const tomes_context: {
17
- get: (error_message?: string) => Map<string, {
18
- name: string;
19
- category: string;
20
- Component: Component<any, any, string>;
21
- related_tomes: string[];
22
- related_modules: string[];
23
- related_declarations: string[];
24
- }>;
25
- get_maybe: () => Map<string, {
26
- name: string;
27
- category: string;
28
- Component: Component<any, any, string>;
29
- related_tomes: string[];
30
- related_modules: string[];
31
- related_declarations: string[];
32
- }> | undefined;
33
- set: (value: Map<string, {
34
- name: string;
35
- category: string;
36
- Component: Component<any, any, string>;
37
- related_tomes: string[];
38
- related_modules: string[];
39
- related_declarations: string[];
40
- }>) => Map<string, {
41
- name: string;
42
- category: string;
43
- Component: Component<any, any, string>;
44
- related_tomes: string[];
45
- related_modules: string[];
46
- related_declarations: string[];
47
- }>;
17
+ get: (error_message?: string) => () => Map<string, Tome>;
18
+ get_maybe: () => (() => Map<string, Tome>) | undefined;
19
+ set: (value: () => Map<string, Tome>) => () => Map<string, Tome>;
48
20
  };
49
21
  export declare const get_tome_by_name: (name: string) => Tome;
50
22
  export declare const tome_context: {
51
- get: (error_message?: string) => {
52
- name: string;
53
- category: string;
54
- Component: Component<any, any, string>;
55
- related_tomes: string[];
56
- related_modules: string[];
57
- related_declarations: string[];
58
- };
59
- get_maybe: () => {
60
- name: string;
61
- category: string;
62
- Component: Component<any, any, string>;
63
- related_tomes: string[];
64
- related_modules: string[];
65
- related_declarations: string[];
66
- } | undefined;
67
- set: (value: {
68
- name: string;
69
- category: string;
70
- Component: Component<any, any, string>;
71
- related_tomes: string[];
72
- related_modules: string[];
73
- related_declarations: string[];
74
- }) => {
75
- name: string;
76
- category: string;
77
- Component: Component<any, any, string>;
78
- related_tomes: string[];
79
- related_modules: string[];
80
- related_declarations: string[];
81
- };
23
+ get: (error_message?: string) => () => Tome;
24
+ get_maybe: () => (() => Tome) | undefined;
25
+ set: (value: () => Tome) => () => Tome;
82
26
  };
83
27
  //# sourceMappingURL=tome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tome.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/tome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,IAAI;;;;;;;iBAQf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC5B,MAAM,IAAI,GAAG,MAAM,EACnB,kBAA6B,EAC7B,OAAO,MAAM,KACX,MAIF,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAsC,CAAC;AAEjE,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAK/C,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyB,CAAC"}
1
+ {"version":3,"file":"tome.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/tome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,IAAI;;;;;;;iBAQf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC5B,MAAM,IAAI,GAAG,MAAM,EACnB,kBAA6B,EAC7B,OAAO,MAAM,KACX,MAIF,CAAC;AAEF,eAAO,MAAM,aAAa;2CAAwB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;4BAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;uBAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;CAAG,CAAC;AAEvE,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAK/C,CAAC;AAEF,eAAO,MAAM,YAAY;2CAAwB,IAAI;4BAAJ,IAAI;uBAAJ,IAAI,WAAJ,IAAI;CAAG,CAAC"}
package/dist/tome.js CHANGED
@@ -22,8 +22,8 @@ export const to_tome_pathname = (item, docs_path = DOCS_PATH_DEFAULT, hash) => {
22
22
  };
23
23
  export const tomes_context = create_context();
24
24
  export const get_tome_by_name = (name) => {
25
- const tomes = tomes_context.get();
26
- const tome = tomes.get(name);
25
+ const get_tomes = tomes_context.get();
26
+ const tome = get_tomes().get(name);
27
27
  if (!tome)
28
28
  throw Error(`unable to find tome "${name}"`);
29
29
  return tome;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_ui",
3
- "version": "0.187.1",
3
+ "version": "0.189.0",
4
4
  "description": "Svelte UI library",
5
- "motto": "friendly user zystem",
5
+ "tagline": "friendly user zystem",
6
6
  "glyph": "🧶",
7
7
  "logo": "logo.svg",
8
8
  "logo_alt": "a friendly brown spider facing you",
@@ -45,6 +45,7 @@
45
45
  "esm-env": "^1",
46
46
  "svelte": "^5",
47
47
  "svelte2tsx": "^0.7.45",
48
+ "vite": ">=6",
48
49
  "zod": "^4.1.12"
49
50
  },
50
51
  "peerDependenciesMeta": {
@@ -69,6 +70,9 @@
69
70
  "svelte2tsx": {
70
71
  "optional": true
71
72
  },
73
+ "vite": {
74
+ "optional": true
75
+ },
72
76
  "zod": {
73
77
  "optional": true
74
78
  }
@@ -77,10 +81,11 @@
77
81
  "@changesets/changelog-git": "^0.2.1",
78
82
  "@fuzdev/fuz_code": "^0.45.1",
79
83
  "@fuzdev/fuz_css": "^0.55.0",
80
- "@fuzdev/fuz_util": "^0.53.4",
84
+ "@fuzdev/fuz_util": "^0.54.0",
81
85
  "@fuzdev/gro": "^0.197.0",
82
86
  "@jridgewell/trace-mapping": "^0.3.31",
83
87
  "@ryanatkn/eslint-config": "^0.10.1",
88
+ "@sveltejs/acorn-typescript": "^1.0.9",
84
89
  "@sveltejs/adapter-static": "^3.0.10",
85
90
  "@sveltejs/kit": "^2.53.4",
86
91
  "@sveltejs/package": "^2.5.7",
@@ -101,6 +106,7 @@
101
106
  "tslib": "^2.8.1",
102
107
  "typescript": "^5.9.3",
103
108
  "typescript-eslint": "^8.48.1",
109
+ "vite": "^7.3.1",
104
110
  "vitest": "^4.0.15",
105
111
  "zimmerframe": "^1.1.4",
106
112
  "zod": "^4.3.6"
@@ -474,7 +474,7 @@ const contextmenu_query_params = (
474
474
  return params;
475
475
  };
476
476
 
477
- export const contextmenu_context = create_context<ContextmenuState>();
477
+ export const contextmenu_context = create_context<() => ContextmenuState>();
478
478
 
479
479
  export const contextmenu_submenu_context = create_context<SubmenuState>();
480
480
 
@@ -0,0 +1,11 @@
1
+ import type {CspSourceSpec} from './csp.ts';
2
+
3
+ /**
4
+ * Trusted sources owned by fuz.dev.
5
+ */
6
+ export const csp_trusted_sources_of_fuzdev: Array<CspSourceSpec> = [
7
+ {source: 'https://*.fuz.dev/', trust: 'low'},
8
+ {source: 'https://*.zzz.software/', trust: 'low'},
9
+ // if needed
10
+ // {source: 'https://fuzdev.github.io/', trust: 'low'},
11
+ ];
@@ -42,9 +42,9 @@ import {
42
42
  is_at_relative_path,
43
43
  } from './mdz_helpers.js';
44
44
 
45
- // ============================================================================
45
+ //
46
46
  // Token types
47
- // ============================================================================
47
+ //
48
48
 
49
49
  export interface MdzTokenBase {
50
50
  start: number;
@@ -167,9 +167,9 @@ export interface MdzTokenParagraphBreak extends MdzTokenBase {
167
167
  type: 'paragraph_break';
168
168
  }
169
169
 
170
- // ============================================================================
170
+ //
171
171
  // Lexer
172
- // ============================================================================
172
+ //
173
173
 
174
174
  export class MdzLexer {
175
175
  #text: string;
@@ -5,35 +5,35 @@ import {BROWSER} from 'esm-env';
5
5
  import {create_context} from './context_helpers.js';
6
6
  import {load_from_storage, save_to_storage} from './storage.js';
7
7
 
8
- export interface ThemerJson {
8
+ export interface ThemeStateJson {
9
9
  theme: Theme;
10
10
  color_scheme: ColorScheme;
11
11
  }
12
12
 
13
- export type ThemerOptions = Partial<ThemerJson>;
13
+ export type ThemeStateOptions = Partial<ThemeStateJson>;
14
14
 
15
- export class Themer {
15
+ export class ThemeState {
16
16
  theme: Theme = $state()!;
17
17
  color_scheme: ColorScheme = $state()!;
18
18
 
19
- constructor(options?: ThemerOptions) {
19
+ constructor(options?: ThemeStateOptions) {
20
20
  const theme = options?.theme ?? default_themes[0]!;
21
21
  const color_scheme = options?.color_scheme ?? 'auto';
22
22
  if (parse_color_scheme(color_scheme) === null) {
23
23
  throw Error('unknown color scheme: ' + color_scheme);
24
24
  }
25
25
  this.theme = theme;
26
- this.color_scheme = color_scheme; // TODO `resolved_color_scheme` if auto? users could then do different things based on the final value - would not be added to `ThemerJson`
26
+ this.color_scheme = color_scheme; // TODO `resolved_color_scheme` if auto? users could then do different things based on the final value - would not be added to `ThemeStateJson`
27
27
  }
28
28
 
29
- toJSON(): ThemerJson {
29
+ toJSON(): ThemeStateJson {
30
30
  return {
31
31
  theme: this.theme,
32
32
  color_scheme: this.color_scheme,
33
33
  };
34
34
  }
35
35
  }
36
- export const themer_context = create_context<Themer>();
36
+ export const theme_state_context = create_context<() => ThemeState>();
37
37
 
38
38
  export const sync_color_scheme = (color_scheme: ColorScheme | null): void => {
39
39
  if (!BROWSER) return;
package/src/lib/tome.ts CHANGED
@@ -30,13 +30,13 @@ export const to_tome_pathname = (
30
30
  return resolve((hash ? path + ensure_start(hash, '#') : path) as any);
31
31
  };
32
32
 
33
- export const tomes_context = create_context<Map<string, Tome>>();
33
+ export const tomes_context = create_context<() => Map<string, Tome>>();
34
34
 
35
35
  export const get_tome_by_name = (name: string): Tome => {
36
- const tomes = tomes_context.get();
37
- const tome = tomes.get(name);
36
+ const get_tomes = tomes_context.get();
37
+ const tome = get_tomes().get(name);
38
38
  if (!tome) throw Error(`unable to find tome "${name}"`);
39
39
  return tome;
40
40
  };
41
41
 
42
- export const tome_context = create_context<Tome>();
42
+ export const tome_context = create_context<() => Tome>();
@@ -1 +0,0 @@
1
- {"version":3,"file":"Themed.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Themed.svelte"],"names":[],"mappings":"AAMA,OAAO,EAAU,KAAK,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAqB,KAAK,KAAK,EAAC,MAAM,0BAA0B,CAAC;AAIxE,OAAO,EACL,iBAAiB,IAAI,yBAAyB,EAC9C,iBAAiB,IAAI,yBAAyB,EAC9C,iBAAiB,IAAI,yBAAyB,EAC9C,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAEhC,MAAM,EACN,MAAM,oBAAoB,CAAC;AAG5B,KAAK,gBAAgB,GAAI;IACxB,iBAAiB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACrD,iBAAiB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACrD,iBAAiB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACvC,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAC3F,CAAC;AAkFH,QAAA,MAAM,MAAM,sDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { CspSourceSpec } from './csp.js';
2
- /**
3
- * Trusted sources owned by ryanatkn.
4
- */
5
- export declare const csp_trusted_sources_of_ryanatkn: Array<CspSourceSpec>;
6
- //# sourceMappingURL=csp_of_ryanatkn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csp_of_ryanatkn.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/csp_of_ryanatkn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,aAAa,CAUhE,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Trusted sources owned by ryanatkn.
3
- */
4
- export const csp_trusted_sources_of_ryanatkn = [
5
- { source: 'https://*.ryanatkn.com/', trust: 'low' },
6
- { source: 'https://*.spiderspace.org/', trust: 'low' },
7
- { source: 'https://*.webdevladder.net/', trust: 'low' },
8
- { source: 'https://*.dealt.dev/', trust: 'low' },
9
- { source: 'https://*.fuz.dev/', trust: 'low' },
10
- { source: 'https://*.ztack.net/', trust: 'low' },
11
- { source: 'https://*.zzz.software/', trust: 'low' },
12
- { source: 'https://*.cosmicplayground.org/', trust: 'low' },
13
- { source: 'https://ryanatkn.github.io/', trust: 'low' },
14
- ];
@@ -1 +0,0 @@
1
- {"version":3,"file":"themer.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/themer.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,KAAK,KAAK,EAAC,MAAM,0BAA0B,CAAC;AAOrF,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEhD,qBAAa,MAAM;IAClB,KAAK,EAAE,KAAK,CAAa;IACzB,YAAY,EAAE,WAAW,CAAa;gBAE1B,OAAO,CAAC,EAAE,aAAa;IAUnC,MAAM,IAAI,UAAU;CAMpB;AACD,eAAO,MAAM,cAAc;;;;CAA2B,CAAC;AAEvD,eAAO,MAAM,iBAAiB,GAAI,cAAc,WAAW,GAAG,IAAI,KAAG,IAOpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C,eAAO,MAAM,iBAAiB,GAC7B,cAAc,WAAW,GAAG,IAAI,EAChC,YAA8B,KAC5B,IAEF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC7B,WAAU,WAAoB,EAC9B,YAA8B,KAC5B,WAA4E,CAAC;AAEhF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,GAAG,IAAI,EAAE,YAAuB,KAAG,IAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,WAAU,KAA0B,EAAE,YAAuB,KAAG,KAC3C,CAAC"}
@@ -1,16 +0,0 @@
1
- import type {CspSourceSpec} from './csp.js';
2
-
3
- /**
4
- * Trusted sources owned by ryanatkn.
5
- */
6
- export const csp_trusted_sources_of_ryanatkn: Array<CspSourceSpec> = [
7
- {source: 'https://*.ryanatkn.com/', trust: 'low'},
8
- {source: 'https://*.spiderspace.org/', trust: 'low'},
9
- {source: 'https://*.webdevladder.net/', trust: 'low'},
10
- {source: 'https://*.dealt.dev/', trust: 'low'},
11
- {source: 'https://*.fuz.dev/', trust: 'low'},
12
- {source: 'https://*.ztack.net/', trust: 'low'},
13
- {source: 'https://*.zzz.software/', trust: 'low'},
14
- {source: 'https://*.cosmicplayground.org/', trust: 'low'},
15
- {source: 'https://ryanatkn.github.io/', trust: 'low'},
16
- ];