@axel669/zephyr 0.1.16 → 0.2.0-beta.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 (113) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +34 -30
  3. package/readme.md +55 -44
  4. package/src/composed/data-table/th.svelte +60 -0
  5. package/src/composed/data-table.md +71 -0
  6. package/src/composed/data-table.svelte +136 -150
  7. package/src/composed/entry-button.md +34 -0
  8. package/src/composed/entry-button.svelte +29 -68
  9. package/src/composed/table-functions.js +13 -0
  10. package/src/composed/toast/message.svelte +44 -44
  11. package/src/composed/toast.md +36 -0
  12. package/src/composed/toast.svelte +68 -108
  13. package/src/control/button.md +37 -0
  14. package/src/control/button.svelte +25 -0
  15. package/src/control/input.svelte +107 -0
  16. package/src/control/label.md +0 -0
  17. package/src/control/label.svelte +36 -0
  18. package/src/control/link.md +37 -0
  19. package/src/control/link.svelte +28 -0
  20. package/src/control/radio.md +49 -0
  21. package/src/control/radio.svelte +28 -0
  22. package/src/control/select.md +55 -0
  23. package/src/control/select.svelte +62 -0
  24. package/src/control/tabs.md +35 -0
  25. package/src/control/tabs.svelte +39 -0
  26. package/src/control/toggle.md +38 -0
  27. package/src/control/toggle.svelte +47 -0
  28. package/src/data-display/avatar.md +26 -0
  29. package/src/data-display/avatar.svelte +23 -0
  30. package/src/data-display/badge.md +24 -0
  31. package/src/data-display/badge.svelte +12 -0
  32. package/src/data-display/chip.md +28 -0
  33. package/src/data-display/chip.svelte +26 -0
  34. package/src/data-display/details.md +0 -0
  35. package/src/{details.svelte → data-display/details.svelte} +3 -3
  36. package/src/data-display/popover.md +32 -0
  37. package/src/data-display/popover.svelte +23 -0
  38. package/src/data-display/progress.md +30 -0
  39. package/src/data-display/progress.svelte +25 -0
  40. package/src/data-display/table.md +29 -0
  41. package/src/data-display/table.svelte +36 -0
  42. package/src/data-display/tooltip.md +25 -0
  43. package/src/data-display/tooltip.svelte +15 -0
  44. package/src/dialogs/alert.md +0 -0
  45. package/src/dialogs/alert.svelte +4 -4
  46. package/src/dialogs/confirm.md +0 -0
  47. package/src/dialogs/confirm.svelte +5 -5
  48. package/src/functions.md +77 -0
  49. package/src/handler$.mjs +20 -68
  50. package/src/index.mjs +55 -92
  51. package/src/info/icon.md +20 -0
  52. package/src/info/icon.svelte +9 -0
  53. package/src/info/notification.md +37 -0
  54. package/src/info/notification.svelte +16 -0
  55. package/src/info/titlebar.md +46 -0
  56. package/src/info/titlebar.svelte +18 -0
  57. package/src/info/toaster.md +23 -0
  58. package/src/info/toaster.svelte +14 -0
  59. package/src/inline-dialog.svelte +23 -23
  60. package/src/layout/dialog.md +33 -0
  61. package/src/layout/dialog.svelte +24 -0
  62. package/src/layout/drawer.md +47 -0
  63. package/src/layout/drawer.svelte +47 -0
  64. package/src/layout/flex.md +30 -0
  65. package/src/layout/flex.svelte +22 -0
  66. package/src/layout/grid.md +36 -0
  67. package/src/layout/grid.svelte +26 -0
  68. package/src/layout/modal.md +35 -0
  69. package/src/layout/modal.svelte +58 -0
  70. package/src/layout/paper.md +77 -0
  71. package/src/layout/paper.svelte +45 -0
  72. package/src/layout/screen.md +31 -0
  73. package/src/layout/screen.svelte +32 -0
  74. package/src/{circle-spinner.svelte → spinner/circle-spinner.svelte} +2 -2
  75. package/src/{hexagon-spinner.svelte → spinner/hexagon-spinner.svelte} +2 -2
  76. package/src/spinner/spinners.md +0 -0
  77. package/src/text.md +22 -0
  78. package/src/text.svelte +20 -49
  79. package/src/variant.mjs +12 -12
  80. package/src/wsx.mjs +24 -45
  81. package/src/avatar.svelte +0 -54
  82. package/src/badge.svelte +0 -40
  83. package/src/button.svelte +0 -86
  84. package/src/chip.svelte +0 -56
  85. package/src/dialog.svelte +0 -54
  86. package/src/drawer.svelte +0 -121
  87. package/src/flex.svelte +0 -57
  88. package/src/grid.svelte +0 -66
  89. package/src/icon.svelte +0 -34
  90. package/src/input/area.svelte +0 -98
  91. package/src/input/elems.mjs +0 -7
  92. package/src/input/email.svelte +0 -104
  93. package/src/input/file.svelte +0 -82
  94. package/src/input/number.svelte +0 -104
  95. package/src/input/password.svelte +0 -101
  96. package/src/input/search.svelte +0 -104
  97. package/src/input/text.svelte +0 -104
  98. package/src/link.svelte +0 -67
  99. package/src/modal.svelte +0 -73
  100. package/src/notification.svelte +0 -57
  101. package/src/paper.svelte +0 -127
  102. package/src/popover.svelte +0 -60
  103. package/src/progress.svelte +0 -60
  104. package/src/radio.svelte +0 -82
  105. package/src/screen.svelte +0 -69
  106. package/src/select.svelte +0 -122
  107. package/src/table.svelte +0 -69
  108. package/src/tabs.svelte +0 -78
  109. package/src/titlebar.svelte +0 -69
  110. package/src/toaster.svelte +0 -42
  111. package/src/toggle.svelte +0 -94
  112. package/src/tooltip.svelte +0 -45
  113. package/src/vars.mjs +0 -61
@@ -0,0 +1,14 @@
1
+ <script>
2
+ import wsx from "../wsx.mjs"
3
+
4
+ export let position = "tc"
5
+
6
+ $: wind = {
7
+ [`$${position}`]: true,
8
+ ...$$restProps,
9
+ }
10
+ </script>
11
+
12
+ <ws-toaster use:wsx={wind}>
13
+ <slot />
14
+ </ws-toaster>
@@ -1,23 +1,23 @@
1
- <script>
2
- import wsx from "./wsx.mjs"
3
-
4
- import Paper from "./paper.svelte"
5
-
6
- const id = Math.random().toString(16)
7
-
8
- $: paper = {
9
- "@dialog": true,
10
- "@outline": true,
11
- ...$$restProps
12
- }
13
- </script>
14
-
15
- <slot name="toggle" {id} />
16
- <input type="checkbox" ws-x="hide" {id} />
17
- <ws-modal>
18
- <ws-paper use:wsx={paper}>
19
- <slot name="header" {id} />
20
- <slot name="content" {id} />
21
- <slot name="footer" {id} />
22
- </ws-paper>
23
- </ws-modal>
1
+ <script>
2
+ import wsx from "../wsx.mjs"
3
+
4
+ import Paper from "./paper.svelte"
5
+
6
+ const id = Math.random().toString(16)
7
+
8
+ $: paper = {
9
+ "@dialog": true,
10
+ "$outline": true,
11
+ ...$$restProps
12
+ }
13
+ </script>
14
+
15
+ <slot name="toggle" {id} />
16
+ <input type="checkbox" ws-x="hide" {id} />
17
+ <ws-modal>
18
+ <ws-paper use:wsx={paper}>
19
+ <slot name="header" {id} />
20
+ <slot name="content" {id} />
21
+ <slot name="footer" {id} />
22
+ </ws-paper>
23
+ </ws-modal>
@@ -0,0 +1,33 @@
1
+ # Dialog
2
+
3
+ A modal container for creating dialogs. The Dialog component is a modal
4
+ element that uses a Paper element for the layout of content. All props and
5
+ slots for the Dialog are passed to the underlying Paper component.
6
+
7
+ The Dialog component is used as a wrapper for content and is used in
8
+ conjunction with the Modal component to be controlled on screen.
9
+
10
+ ## Props
11
+ See the Paper component props.
12
+
13
+ ## Usage
14
+ `cool-dialog.svelte`
15
+ ```svelte
16
+ <Dialog>
17
+ <Titlebar slot="header">
18
+ <Text slot="title" title>
19
+ Some Title
20
+ </Text>
21
+ </Titlebar>
22
+
23
+ <span>Content</span>
24
+ </Dialog>
25
+ ```
26
+
27
+ `app.svelte`
28
+ ```svelte
29
+ <Modal component={CoolDialog} />
30
+ <EntryButton this={Modal} component={CoolDialog}>
31
+ Open Cool Dialog
32
+ </EntryButton>
33
+ ```
@@ -0,0 +1,24 @@
1
+ <script>
2
+ import { fade } from "svelte/transition"
3
+
4
+ import wsx from "../wsx.mjs"
5
+
6
+ import Paper from "./paper.svelte"
7
+
8
+ const trick = (node, options) => ({
9
+ delay: 0,
10
+ duration: 250,
11
+ css: () => "",
12
+ })
13
+ </script>
14
+
15
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
16
+ <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
17
+ <wind-wrapper transition:trick ws-x="$dialog grid" on:click|stopPropagation
18
+ role="dialog">
19
+ <Paper {...$$props}>
20
+ <slot name="header" slot="header" />
21
+ <slot />
22
+ <slot name="footer" slot="footer" />
23
+ </Paper>
24
+ </wind-wrapper>
@@ -0,0 +1,47 @@
1
+ # Drawer
2
+
3
+ A modal container for creating dialogs. The Dialog component is a modal
4
+ element that uses a Paper element for the layout of content. All extra props
5
+ and slots for the Drawer are passed to the underlying Paper component.
6
+
7
+ The Drawer component is used as a wrapper for content and is used in
8
+ conjunction with the Modal component to be controlled on screen.
9
+
10
+ ## Props
11
+ - ### close `function`
12
+ If passed, this function will be called when the user clicks in the
13
+ empty area outside of the drawer contents.
14
+ - ### height `string`
15
+ Sets the height of the select drawer, no effect for menu and action
16
+ drawers which default to full height of the window.
17
+ - ### type `string`
18
+ The type of drawer. Default is "menu"
19
+ - #### "menu"
20
+ Makes a drawer that slides in on the left side of the screen
21
+ - #### "action"
22
+ Makes a drawer that slides in on the right side of the screen
23
+ - #### "select"
24
+ Makes a drawer that is centered horizontally and slides in from
25
+ the top of the screen
26
+
27
+ ## Usage
28
+ `cool-drawer.svelte`
29
+ ```svelte
30
+ <Drawer>
31
+ <Titlebar slot="header">
32
+ <Text slot="title" title>
33
+ Some Title
34
+ </Text>
35
+ </Titlebar>
36
+
37
+ <span>Content</span>
38
+ </Drawer>
39
+ ```
40
+
41
+ `app.svelte`
42
+ ```svelte
43
+ <Modal component={CoolDrawer} />
44
+ <EntryButton this={Modal} component={CoolDrawer}>
45
+ Open Cool Dialog
46
+ </EntryButton>
47
+ ```
@@ -0,0 +1,47 @@
1
+ <script context="module">
2
+ const defs = {
3
+ select: {
4
+ "$select": true,
5
+ "w.min": "35vw",
6
+ grid: true,
7
+ over: "hidden"
8
+ },
9
+ menu: {
10
+ "$menu": true,
11
+ },
12
+ action: {
13
+ "$action": true,
14
+ }
15
+ }
16
+ </script>
17
+
18
+ <script>
19
+ import wsx from "../wsx.mjs"
20
+
21
+ import Paper from "./paper.svelte"
22
+
23
+ export let height
24
+ export let type = "menu"
25
+
26
+ const trick = (node, options) => ({
27
+ delay: 0,
28
+ duration: 250,
29
+ css: () => "",
30
+ })
31
+
32
+ $: container = {
33
+ ...defs[type],
34
+ h: (type === "select") ? height : "100%",
35
+ grid: true,
36
+ }
37
+ </script>
38
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
39
+ <!-- svelte-ignore a11y-interactive-supports-focus -->
40
+ <wind-drawer-container use:wsx={container} on:click|stopPropagation
41
+ role="menubar" transition:trick>
42
+ <Paper {...$$restProps}>
43
+ <slot name="header" slot="header" />
44
+ <slot />
45
+ <slot name="footer" slot="footer" />
46
+ </Paper>
47
+ </wind-drawer-container>
@@ -0,0 +1,30 @@
1
+ # Flex
2
+
3
+ Container that uses flex layout by default with some nice default values.
4
+
5
+ ## Base
6
+ [Windstorm Flex](https://axel669.github.io/lib.windstorm/#components-flex)
7
+
8
+ ## Props
9
+ All [windstorm functions](https://axel669.github.io/lib.windstorm/#css-shorthands)
10
+ are supported.
11
+
12
+ - ### direction `string`
13
+ Sets `fl-dir`
14
+ - ### pad `string`
15
+ Sets `p`
16
+ - ### gap `string`
17
+ Sets `gap`
18
+ - ### cross `string`
19
+ Sets `fl-cr-a`, default is `"stretch"`
20
+ - ### main `string`
21
+ Sets `fl-m-a`, default is `"start"`
22
+
23
+ ## Usage
24
+ ```svelte
25
+ <Flex cross="stretch">
26
+ <Text>Content</Text>
27
+ <Text>More content</Text>
28
+ <Text>Event more content</Text>
29
+ <Flex>
30
+ ```
@@ -0,0 +1,22 @@
1
+ <script>
2
+ import wsx from "../wsx.mjs"
3
+
4
+ export let direction = false
5
+ export let pad = false
6
+ export let gap = false
7
+ export let cross = "stretch"
8
+ export let main = "start"
9
+
10
+ $: wind = {
11
+ "fl.dir": direction,
12
+ "fl.cross": cross,
13
+ "fl.main": main,
14
+ p: pad,
15
+ gap: gap,
16
+ ...$$restProps
17
+ }
18
+ </script>
19
+
20
+ <ws-flex use:wsx={wind}>
21
+ <slot />
22
+ </ws-flex>
@@ -0,0 +1,36 @@
1
+ # Grid
2
+
3
+ Container that uses grid layout by default with some nice default values.
4
+
5
+ ## Base
6
+ [Windstorm Grid](https://axel669.github.io/lib.windstorm/#components-grid)
7
+
8
+ ## Props
9
+ All [windstorm functions](https://axel669.github.io/lib.windstorm/#css-shorthands)
10
+ are supported.
11
+
12
+ - ### direction `string`
13
+ Sets `gr-dir`
14
+ - ### pad `string`
15
+ Sets `p`
16
+ - ### gap `string`
17
+ Sets `gap`
18
+ - ### cols `string|Array`
19
+ Sets `gr-col`. Accepts either an array of values that are joined by " "
20
+ or a regular string value.
21
+ - ### rows `string|Array`
22
+ Sets `gr-row`. Accepts either an array of values that are joined by " "
23
+ or a regular string value.
24
+ - ### autoCol `string`
25
+ Sets `gr-acol`
26
+ - ### autoRow `string`
27
+ Sets `gr-arow`
28
+
29
+ ## Usage
30
+ ```svelte
31
+ <Grid cross="stretch">
32
+ <Text>Content</Text>
33
+ <Text>More content</Text>
34
+ <Text>Event more content</Text>
35
+ <Grid>
36
+ ```
@@ -0,0 +1,26 @@
1
+ <script>
2
+ import wsx from "../wsx.mjs"
3
+
4
+ export let direction = false
5
+ export let pad = false
6
+ export let gap = false
7
+ export let cols = null
8
+ export let rows = null
9
+ export let autoCol = false
10
+ export let autoRow = false
11
+
12
+ $: wind = {
13
+ "gr.flow": direction,
14
+ "gr.cols": cols?.join?.(" ") ?? cols ?? false,
15
+ "gr.rows": rows?.join?.(" ") ?? rows ?? false,
16
+ "gr.cols.a": autoCol,
17
+ "gr.rows.a": autoRow,
18
+ p: pad,
19
+ gap: gap,
20
+ ...$$restProps
21
+ }
22
+ </script>
23
+
24
+ <ws-grid use:wsx={wind}>
25
+ <slot />
26
+ </ws-grid>
@@ -0,0 +1,35 @@
1
+ # Modal
2
+
3
+ The Modal component is used to control when content should be shown that
4
+ sits over the current content and prevents interaction with the content it
5
+ covers. It is primarily used to show drawers, dialogs, and sub screens.
6
+
7
+ The `show` function will display the component specified inside a ws-modal
8
+ element, and can be awaited for an optional return value. The component
9
+ displayed will be passed any props supplied to `show` and a `close` function
10
+ that can be called to hide the component again. `close` can also be given
11
+ an argument that will be used as the promise value from `show`.
12
+
13
+ If a component that a modal displays exports a `cancel` function, then
14
+ clicking the modal area outside the displayed component will call that
15
+ `cancel` function, allowing any modal component to decide when/if it is
16
+ closes in response to that event.
17
+
18
+ ## Props
19
+ Because the Modal does not render content of its own, it does not support
20
+ any wind functions.
21
+
22
+ - ### component `Component`
23
+ The component to display when `show` is called
24
+
25
+ ## Functions
26
+ - ### `show(props?) -> Promise`
27
+ Shows the given component and passes any props provided.
28
+
29
+ ## Usage
30
+ ```svelte
31
+ <Modal component={CoolDialog} bind:this={dialog} />
32
+ <Button on:click={() => dialog.show({ a: 10, b: 12 })}>
33
+ Open Dialog
34
+ </Button>
35
+ ```
@@ -0,0 +1,58 @@
1
+ <script context="module">
2
+ let topClose = null
3
+ </script>
4
+
5
+ <script>
6
+ import { tick } from "svelte"
7
+
8
+ export let component
9
+
10
+ let modalProps = null
11
+ let resolver = null
12
+ let displayed = null
13
+
14
+ const close = (value) => {
15
+ resolver(value)
16
+ resolver = null
17
+ modalProps = null
18
+ visible.checked = false
19
+ if (topClose !== close) {
20
+ return
21
+ }
22
+ topClose = null
23
+ }
24
+ const closeToTop = (value) => {
25
+ topClose(value)
26
+ }
27
+ const cancel = () => displayed.cancel?.()
28
+
29
+ export const show = (props) => new Promise(
30
+ async (resolve) => {
31
+ modalProps = props ?? {}
32
+ resolver = resolve
33
+ topClose = topClose ?? close
34
+ await tick()
35
+ setTimeout(
36
+ () => visible.checked = true,
37
+ 0
38
+ )
39
+ }
40
+ )
41
+
42
+ let visible = null
43
+ </script>
44
+
45
+ <input type="checkbox" bind:this={visible} ws-x="disp[none]" />
46
+ {#if resolver !== null}
47
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
48
+ <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
49
+ <ws-modal on:click={cancel} role="dialog">
50
+ <svelte:component
51
+ bind:this={displayed}
52
+ this={component}
53
+ {...modalProps}
54
+ {close}
55
+ {closeToTop}
56
+ />
57
+ </ws-modal>
58
+ {/if}
@@ -0,0 +1,77 @@
1
+ # Paper
2
+
3
+ The Paper component is a container that has slots for header and footer
4
+ content that is independant from the regular content scrolling. It also uses
5
+ Flex as a default layout for its slotted content, but allows any container
6
+ to be used as a layout without increasing the indentation of all the content
7
+ needlessly.
8
+
9
+ ## Base
10
+ [Windstorm Paper](https://axel669.github.io/lib.windstorm/#components-paper)
11
+
12
+ ## Props
13
+ All [windstorm functions](https://axel669.github.io/lib.windstorm/#css-shorthands)
14
+ are supported.
15
+
16
+ - ### color `string`
17
+ Sets `$color`
18
+ - ### card `bool`
19
+ Sets `$outline`
20
+ - ### square `bool`
21
+ Sets `r[0px]`
22
+ - ### layout `Component`
23
+ Sets the layout the card will use to display content. Default is Flex.
24
+ - ### scrollable `bool`
25
+ Sets `over[auto]` on the layout component
26
+ - ### l-*
27
+ Any prop that is prefixed with `l-` will be passed to the layout
28
+ component, with the remaining props acting as the normal wind functions
29
+ on the paper itself
30
+
31
+ ## Slots
32
+ - ### header
33
+ The header content for the Paper. Header content does not scroll with
34
+ the regular content of the component (acts sticky)
35
+ - ### footer
36
+ The footer content for the Paper. Same scrolling properties as the
37
+ header slot
38
+ - ### content/default
39
+ The default slot (unnamed) for Paper will be rendered in the layout
40
+ component defined in the props. As an alternative, a content slot may
41
+ be used that will be rendered directly in the content slot of the Paper
42
+ without the layout component/props being rendered (useful when nesting
43
+ papers for example)
44
+
45
+ ## Usage
46
+ ```svelte
47
+ <Paper>
48
+ <Titlebar slot="header">
49
+ <Text slot="title" title>
50
+ Some Title
51
+ </Text>
52
+ </Titlebar>
53
+
54
+ <div>Content 1</div>
55
+ <div>Content 2</div>
56
+ <div>Content 3</div>
57
+ </Paper>
58
+ <Paper l-pad="0px" m="4px">
59
+ <Titlebar slot="header">
60
+ <Text slot="title" title>
61
+ Some Screen
62
+ </Text>
63
+ </Titlebar>
64
+
65
+ <Paper slot="content">
66
+ <Tabs slot="header" {options} bind:value />
67
+
68
+ <div>Content 1</div>
69
+ <div>Content 2</div>
70
+ <div>Content 3</div>
71
+ </Paper>
72
+
73
+ <div slot="footer">
74
+ Wat
75
+ </div>
76
+ </Paper>
77
+ ```
@@ -0,0 +1,45 @@
1
+ <script>
2
+ import Flex from "./flex.svelte"
3
+ import wsx from "../wsx.mjs"
4
+
5
+ export let color
6
+ export let card = false
7
+ export let square = false
8
+ export let layout = Flex
9
+ export let scrollable = true
10
+
11
+ $: props = Object.entries($$restProps).reduce(
12
+ (p, [key, value]) => {
13
+ const [target, name] =
14
+ (key.startsWith("l-") === true)
15
+ ? [ p.layout, key.slice(2) ]
16
+ : [ p.paper, key ]
17
+ target[name] = value
18
+ return p
19
+ },
20
+ { layout: {}, paper: {} }
21
+ )
22
+
23
+ $: layoutProps = {
24
+ over: scrollable ? "auto" : false,
25
+ ...props.layout,
26
+ }
27
+ $: wind = {
28
+ "$color": color,
29
+ "$outline": card,
30
+ r: square && "0px",
31
+ ...props.paper,
32
+ }
33
+ </script>
34
+
35
+ <ws-paper use:wsx={wind}>
36
+ <slot name="header" />
37
+ {#if $$slots.content}
38
+ <slot name="content" slot="content" />
39
+ {:else}
40
+ <svelte:component this={layout} {...layoutProps} slot="content">
41
+ <slot />
42
+ </svelte:component>
43
+ {/if}
44
+ <slot name="footer" />
45
+ </ws-paper>
@@ -0,0 +1,31 @@
1
+ # Screen
2
+
3
+ The screen is a container component that is used for displaying content
4
+ over its parent and stacks as more screens are displayed. Screens that stack
5
+ on top of a parent screen use the Modal to control when they are shown and
6
+ pass values back from child screens. The stacking effect of the Screen is
7
+ controlled by internally tracked svelte context, so no manual effort is
8
+ required to get stacking screens to have the effect.
9
+
10
+ ## Base
11
+ [Windstorm Screen](https://axel669.github.io/lib.windstorm/#components-screen)
12
+
13
+ ## Props
14
+ All [windstorm functions](https://axel669.github.io/lib.windstorm/#css-shorthands)
15
+ are supported, but they probably won't help much with this component.
16
+
17
+ - ### width `string`
18
+ The width of the screen before stack-based padding is applied
19
+
20
+ ## Usage
21
+ `cool-screen.svelte`
22
+ ```svelte
23
+ <Screen width="70%">
24
+ <Paper>
25
+ This screen is pretty cool I swear
26
+ <Button on:click={() => close("hi")}>
27
+ Close
28
+ </Button>
29
+ </Paper>
30
+ </Screen>
31
+ ```
@@ -0,0 +1,32 @@
1
+ <script context="module">
2
+ const ctxStack = Symbol("stack context")
3
+ const ctxClose = Symbol("close context")
4
+ </script>
5
+
6
+ <script>
7
+ import { getContext, setContext } from "svelte"
8
+ import { fly } from "svelte/transition"
9
+
10
+ import wsx from "../wsx.mjs"
11
+
12
+ export let width = false
13
+
14
+ const stack = getContext(ctxStack) ?? 0
15
+ const animation = {
16
+ y: window.innerHeight,
17
+ duration: 350
18
+ }
19
+
20
+ setContext(ctxStack, stack + 1)
21
+
22
+ $: wind = {
23
+ "&stack": stack.toString(),
24
+ "&screen-width": width,
25
+ "bg.c": "transparent",
26
+ ...$$restProps
27
+ }
28
+ </script>
29
+
30
+ <ws-screen use:wsx={wind} transition:fly={animation}>
31
+ <slot />
32
+ </ws-screen>
@@ -1,12 +1,12 @@
1
1
  <script>
2
- import wsx from "./wsx.mjs"
2
+ import wsx from "../wsx.mjs"
3
3
 
4
4
  export let size = "100px"
5
5
  export let color = "primary"
6
6
 
7
7
  $: wind = {
8
8
  "&size": size,
9
- $color: color,
9
+ "$color": color,
10
10
  }
11
11
  </script>
12
12
 
@@ -1,12 +1,12 @@
1
1
  <script>
2
- import wsx from "./wsx.mjs"
2
+ import wsx from "../wsx.mjs"
3
3
 
4
4
  export let size = "100px"
5
5
  export let color = "primary"
6
6
 
7
7
  $: wind = {
8
8
  "&size": size,
9
- $color: color,
9
+ "$color": color,
10
10
  }
11
11
  </script>
12
12
 
File without changes
package/src/text.md ADDED
@@ -0,0 +1,22 @@
1
+ # Text
2
+
3
+ Simple component with some common props for types of text.
4
+
5
+ ## Props
6
+
7
+ - ### adorn `bool`
8
+ Sets `$adorn`
9
+ - ### block `bool`
10
+ Sets `block`
11
+ - ### subtitle `bool`
12
+ Sets `$subtitle`
13
+ - ### title `bool`
14
+ Sets `$title`
15
+
16
+ ## Usage
17
+ ```svelte
18
+ <Text>Some text</Text>
19
+ <Text title>Bigger text</Text>
20
+ <Text subtitle>Smaller text</Text>
21
+ <Text block>Text on its own line</Text>
22
+ ```