From 213d4debe71439349e8a62f7477d2af6cb04f5c8 Mon Sep 17 00:00:00 2001 From: Harald Brunner Date: Sun, 20 Feb 2022 16:50:22 +0100 Subject: [PATCH] Remove additional exports of breakpoint symbols. Restore typedef entries in `Breakpoint` component. Generate type definitions for `constants.js` and `breakpointObserver.js`. Validate size passed to `smallerThan`/`largerThan`. Document `breakpointObserver`/`breakpoints`. Fix `Breakpoint` component docs/example. --- COMPONENT_INDEX.md | 8 +++++++ docs/src/COMPONENT_API.json | 13 ++++++++++- docs/src/pages/components/Breakpoint.svx | 12 ++++++++-- .../pages/framed/Breakpoint/Breakpoint.svelte | 4 ++-- .../Breakpoint/BreakpointObserver.svelte | 15 ++++++++++++ src/Breakpoint/Breakpoint.svelte | 2 ++ src/Breakpoint/breakpointObserver.d.ts | 19 +++++++++++++++ src/Breakpoint/breakpointObserver.js | 23 ++++++++++++++----- src/Breakpoint/constants.d.ts | 5 ++++ src/Breakpoint/index.d.ts | 2 ++ src/index.js | 2 +- types/Breakpoint/Breakpoint.svelte.d.ts | 4 ++++ types/index.d.ts | 2 -- 13 files changed, 97 insertions(+), 14 deletions(-) create mode 100644 docs/src/pages/framed/Breakpoint/BreakpointObserver.svelte create mode 100644 src/Breakpoint/breakpointObserver.d.ts create mode 100644 src/Breakpoint/constants.d.ts create mode 100644 src/Breakpoint/index.d.ts diff --git a/COMPONENT_INDEX.md b/COMPONENT_INDEX.md index 4c5249f1..e9196814 100644 --- a/COMPONENT_INDEX.md +++ b/COMPONENT_INDEX.md @@ -348,6 +348,14 @@ None. ## `Breakpoint` +### Types + +```ts +export type BreakpointSize = "sm" | "md" | "lg" | "xlg" | "max"; + +export type BreakpointValue = 320 | 672 | 1056 | 1312 | 1584; +``` + ### Props | Prop name | Kind | Reactive | Type | Default value | Description | diff --git a/docs/src/COMPONENT_API.json b/docs/src/COMPONENT_API.json index 7b5c2ea3..74132829 100644 --- a/docs/src/COMPONENT_API.json +++ b/docs/src/COMPONENT_API.json @@ -403,7 +403,18 @@ "detail": "{ size: BreakpointSize; breakpointValue: BreakpointValue; }" } ], - "typedefs": [] + "typedefs": [ + { + "type": "\"sm\" | \"md\" | \"lg\" | \"xlg\" | \"max\"", + "name": "BreakpointSize", + "ts": "type BreakpointSize = \"sm\" | \"md\" | \"lg\" | \"xlg\" | \"max\"" + }, + { + "type": "320 | 672 | 1056 | 1312 | 1584", + "name": "BreakpointValue", + "ts": "type BreakpointValue = 320 | 672 | 1056 | 1312 | 1584" + } + ] }, { "moduleName": "Button", diff --git a/docs/src/pages/components/Breakpoint.svx b/docs/src/pages/components/Breakpoint.svx index 082f57bc..22bf672f 100644 --- a/docs/src/pages/components/Breakpoint.svx +++ b/docs/src/pages/components/Breakpoint.svx @@ -22,6 +22,14 @@ This utility component uses the [Window.matchMedia API](https://developer.mozill Bind to the `size` prop to determine the current breakpoint size. Possible values include: `"sm" | "md" | "lg" | "xlg" | "max"`. -The `"on:match"` event will fire only when a breakpoint change event occurs (e.g., the browser width is resized). +The `"on:change"` event will fire when the size is initially determined and when a breakpoint change event occurs (e.g., the browser width is resized). - \ No newline at end of file + + +### Store and Breakpoint Values + +As an alternative to the component, `breakpointObserver` can be used to get the current size as a Svelte store. The store has two additional functions which create derived stores that return a `boolean` indicating whether the size is smaller/larger than a certain breakpoint. + +There also exists a `breakpoints` dictionary mapping from `BreakpointSize` to `BreakpointValue`. + + diff --git a/docs/src/pages/framed/Breakpoint/Breakpoint.svelte b/docs/src/pages/framed/Breakpoint/Breakpoint.svelte index 83116706..b1b7e0a1 100644 --- a/docs/src/pages/framed/Breakpoint/Breakpoint.svelte +++ b/docs/src/pages/framed/Breakpoint/Breakpoint.svelte @@ -5,13 +5,13 @@ let events = []; - +

Resize the width of your browser.

Breakpoint size

{size}

-
on:match
+
on:change
   {JSON.stringify(events, null, 2)}
 
diff --git a/docs/src/pages/framed/Breakpoint/BreakpointObserver.svelte b/docs/src/pages/framed/Breakpoint/BreakpointObserver.svelte new file mode 100644 index 00000000..a37e4683 --- /dev/null +++ b/docs/src/pages/framed/Breakpoint/BreakpointObserver.svelte @@ -0,0 +1,15 @@ + + +

Current breakpoint size: {$size}

+

Current breakpoint value: {breakpoints[$size]}px

+

Smaller than medium: {$smaller}

+

Larger than medium: {$larger}

diff --git a/src/Breakpoint/Breakpoint.svelte b/src/Breakpoint/Breakpoint.svelte index 740d6ea2..8eb93c8c 100644 --- a/src/Breakpoint/Breakpoint.svelte +++ b/src/Breakpoint/Breakpoint.svelte @@ -1,5 +1,7 @@