@ainsleydev/sveltekit-helper 0.2.0 → 0.3.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.
- package/dist/components/Grid/Column.svelte +4 -0
- package/dist/components/Grid/Column.svelte.d.ts +4 -0
- package/dist/components/Grid/Column.svelte.d.ts.map +1 -1
- package/dist/components/Grid/Container.svelte +22 -0
- package/dist/components/Grid/Container.svelte.d.ts +22 -0
- package/dist/components/Grid/Container.svelte.d.ts.map +1 -1
- package/dist/components/Grid/Row.svelte +4 -0
- package/dist/components/Grid/Row.svelte.d.ts +4 -0
- package/dist/components/Grid/Row.svelte.d.ts.map +1 -1
- package/dist/components/Hamburger.svelte +12 -1
- package/dist/components/Hamburger.svelte.d.ts +9 -0
- package/dist/components/Hamburger.svelte.d.ts.map +1 -1
- package/dist/components/Sidebar.svelte +15 -0
- package/dist/components/Sidebar.svelte.d.ts +15 -0
- package/dist/components/Sidebar.svelte.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/notifications/Alert.svelte +154 -0
- package/dist/components/notifications/Alert.svelte.d.ts +44 -0
- package/dist/components/notifications/Alert.svelte.d.ts.map +1 -0
- package/dist/components/notifications/Notice.svelte +123 -0
- package/dist/components/notifications/Notice.svelte.d.ts +33 -0
- package/dist/components/notifications/Notice.svelte.d.ts.map +1 -0
- package/dist/components/notifications/alertIcons.d.ts +18 -0
- package/dist/components/notifications/alertIcons.d.ts.map +1 -0
- package/dist/components/notifications/alertIcons.js +10 -0
- package/dist/components/notifications/index.d.ts +5 -0
- package/dist/components/notifications/index.d.ts.map +1 -0
- package/dist/components/notifications/index.js +2 -0
- package/dist/scss/_border-radius.scss +21 -0
- package/dist/scss/_breakpoints.scss +10 -0
- package/dist/scss/_functions.scss +6 -0
- package/dist/scss/_index.scss +5 -0
- package/dist/scss/_mixins.scss +155 -0
- package/dist/scss/_sizes.scss +25 -0
- package/package.json +8 -2
|
@@ -15,6 +15,10 @@ const { ...restProps } = $props();
|
|
|
15
15
|
Content
|
|
16
16
|
</Column>
|
|
17
17
|
```
|
|
18
|
+
|
|
19
|
+
CSS Custom Properties:
|
|
20
|
+
- `--col-gap`: Horizontal padding on desktop (default: 1rem)
|
|
21
|
+
- `--col-gap-mobile`: Horizontal padding on mobile (default: var(--col-gap, 0.5rem))
|
|
18
22
|
-->
|
|
19
23
|
<div class="col" {...restProps}>
|
|
20
24
|
<slot />
|
|
@@ -27,6 +27,10 @@ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
|
27
27
|
* Content
|
|
28
28
|
* </Column>
|
|
29
29
|
* ```
|
|
30
|
+
*
|
|
31
|
+
* CSS Custom Properties:
|
|
32
|
+
* - `--col-gap`: Horizontal padding on desktop (default: 1rem)
|
|
33
|
+
* - `--col-gap-mobile`: Horizontal padding on mobile (default: var(--col-gap, 0.5rem))
|
|
30
34
|
*/
|
|
31
35
|
declare const Column: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<Record<string, any>, {
|
|
32
36
|
default: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Column.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Column.svelte.ts"],"names":[],"mappings":"AAgBA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId
|
|
1
|
+
{"version":3,"file":"Column.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Column.svelte.ts"],"names":[],"mappings":"AAgBA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,MAAM;;;;;;UAAqF,CAAC;AAChF,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,eAAe,MAAM,CAAC"}
|
|
@@ -7,6 +7,28 @@ const { ...restProps } = $props();
|
|
|
7
7
|
|
|
8
8
|
Centre content such as rows & columns horizontally with predefined max-width.
|
|
9
9
|
Uses CSS Grid to provide breakout and full-width layout options.
|
|
10
|
+
|
|
11
|
+
@example
|
|
12
|
+
```svelte
|
|
13
|
+
<Container>
|
|
14
|
+
<Row>
|
|
15
|
+
<Column class="col-12">Content</Column>
|
|
16
|
+
</Row>
|
|
17
|
+
</Container>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
@example
|
|
21
|
+
```svelte
|
|
22
|
+
<Container>
|
|
23
|
+
<div class="breakout">Full breakout content</div>
|
|
24
|
+
<div class="full-width">Full width content</div>
|
|
25
|
+
</Container>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
CSS Custom Properties:
|
|
29
|
+
- `--container-max-width`: Maximum content width (default: 1328px)
|
|
30
|
+
- `--container-breakout-max-width`: Maximum breakout width (default: 1500px)
|
|
31
|
+
- `--container-padding`: Horizontal padding (default: 1rem)
|
|
10
32
|
-->
|
|
11
33
|
<div class="container" {...restProps}>
|
|
12
34
|
<slot />
|
|
@@ -19,6 +19,28 @@ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
|
19
19
|
/**
|
|
20
20
|
* Centre content such as rows & columns horizontally with predefined max-width.
|
|
21
21
|
* Uses CSS Grid to provide breakout and full-width layout options.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```svelte
|
|
25
|
+
* <Container>
|
|
26
|
+
* <Row>
|
|
27
|
+
* <Column class="col-12">Content</Column>
|
|
28
|
+
* </Row>
|
|
29
|
+
* </Container>
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```svelte
|
|
34
|
+
* <Container>
|
|
35
|
+
* <div class="breakout">Full breakout content</div>
|
|
36
|
+
* <div class="full-width">Full width content</div>
|
|
37
|
+
* </Container>
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* CSS Custom Properties:
|
|
41
|
+
* - `--container-max-width`: Maximum content width (default: 1328px)
|
|
42
|
+
* - `--container-breakout-max-width`: Maximum breakout width (default: 1500px)
|
|
43
|
+
* - `--container-padding`: Horizontal padding (default: 1rem)
|
|
22
44
|
*/
|
|
23
45
|
declare const Container: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<Record<string, any>, {
|
|
24
46
|
default: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Container.svelte.ts"],"names":[],"mappings":"AAgBA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId
|
|
1
|
+
{"version":3,"file":"Container.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Container.svelte.ts"],"names":[],"mappings":"AAgBA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,SAAS;;;;;;UAAqF,CAAC;AACnF,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,eAAe,SAAS,CAAC"}
|
|
@@ -26,6 +26,10 @@ const { noGaps = false, ...restProps }: RowProps = $props();
|
|
|
26
26
|
<Column></Column>
|
|
27
27
|
</Row>
|
|
28
28
|
```
|
|
29
|
+
|
|
30
|
+
CSS Custom Properties:
|
|
31
|
+
- `--row-gap`: Gap between columns (default: 1rem)
|
|
32
|
+
- `--row-gap-mobile`: Gap on mobile screens (default: var(--row-gap, 0.5rem))
|
|
29
33
|
-->
|
|
30
34
|
<div class="row" class:row--no-gaps={noGaps} {...restProps}>
|
|
31
35
|
<slot />
|
|
@@ -35,6 +35,10 @@ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
|
35
35
|
* <Column></Column>
|
|
36
36
|
* </Row>
|
|
37
37
|
* ```
|
|
38
|
+
*
|
|
39
|
+
* CSS Custom Properties:
|
|
40
|
+
* - `--row-gap`: Gap between columns (default: 1rem)
|
|
41
|
+
* - `--row-gap-mobile`: Gap on mobile screens (default: var(--row-gap, 0.5rem))
|
|
38
42
|
*/
|
|
39
43
|
declare const Row: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<RowProps, {
|
|
40
44
|
default: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Row.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Row.svelte.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAiBF,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId
|
|
1
|
+
{"version":3,"file":"Row.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/Grid/Row.svelte.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAiBF,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,GAAG;;;;;;UAAqF,CAAC;AAC7E,KAAK,GAAG,GAAG,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;AACtC,eAAe,GAAG,CAAC"}
|
|
@@ -40,12 +40,23 @@ export type HamburgerProps = {
|
|
|
40
40
|
```svelte
|
|
41
41
|
<Hamburger gap="1rem">
|
|
42
42
|
```
|
|
43
|
+
|
|
44
|
+
CSS Custom Properties:
|
|
45
|
+
- `--hamburger-gap`: Distance from top and right edges (default: 0.8rem)
|
|
46
|
+
- `--hamburger-z-index`: Stacking order (default: 10000)
|
|
47
|
+
- `--hamburger-colour`: Icon color (default: var(--colour-base-light))
|
|
48
|
+
- `--hamburger-layer-width`: Width of each line (default: 24px)
|
|
49
|
+
- `--hamburger-layer-height`: Height of each line (default: 2px)
|
|
50
|
+
- `--hamburger-layer-spacing`: Gap between lines (default: 5px)
|
|
51
|
+
- `--hamburger-border-radius`: Rounding of lines (default: 2px)
|
|
43
52
|
-->
|
|
44
53
|
<div class="hamburger-wrapper {className}" style="--hamburger-gap: {gap}" aria-label="Toggle Menu">
|
|
45
54
|
<SvelteHamburger
|
|
46
55
|
type={style}
|
|
47
56
|
bind:open={isOpen}
|
|
48
|
-
|
|
57
|
+
onclick={() => {
|
|
58
|
+
onChange?.(isOpen);
|
|
59
|
+
}}
|
|
49
60
|
--color="var(--hamburger-colour, var(--colour-base-light))"
|
|
50
61
|
--layer-width="var(--hamburger-layer-width, 24px)"
|
|
51
62
|
--layer-height="var(--hamburger-layer-height, 2px)"
|
|
@@ -20,6 +20,15 @@ export type HamburgerProps = {
|
|
|
20
20
|
* ```svelte
|
|
21
21
|
* <Hamburger gap="1rem">
|
|
22
22
|
* ```
|
|
23
|
+
*
|
|
24
|
+
* CSS Custom Properties:
|
|
25
|
+
* - `--hamburger-gap`: Distance from top and right edges (default: 0.8rem)
|
|
26
|
+
* - `--hamburger-z-index`: Stacking order (default: 10000)
|
|
27
|
+
* - `--hamburger-colour`: Icon color (default: var(--colour-base-light))
|
|
28
|
+
* - `--hamburger-layer-width`: Width of each line (default: 24px)
|
|
29
|
+
* - `--hamburger-layer-height`: Height of each line (default: 2px)
|
|
30
|
+
* - `--hamburger-layer-spacing`: Gap between lines (default: 5px)
|
|
31
|
+
* - `--hamburger-border-radius`: Rounding of lines (default: 2px)
|
|
23
32
|
*/
|
|
24
33
|
declare const Hamburger: import("svelte").Component<HamburgerProps, {}, "isOpen">;
|
|
25
34
|
type Hamburger = ReturnType<typeof Hamburger>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hamburger.svelte.d.ts","sourceRoot":"","sources":["../../src/components/Hamburger.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG;IAE5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"Hamburger.svelte.d.ts","sourceRoot":"","sources":["../../src/components/Hamburger.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG;IAE5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AA8BF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,SAAS,0DAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
|
@@ -135,6 +135,21 @@ export type SidebarProps = {
|
|
|
135
135
|
<nav>...</nav>
|
|
136
136
|
</Sidebar>
|
|
137
137
|
```
|
|
138
|
+
|
|
139
|
+
CSS Custom Properties:
|
|
140
|
+
- `--sidebar-width`: Mobile sidebar width (default: 50vw)
|
|
141
|
+
- `--sidebar-min-width`: Minimum sidebar width (default: 270px)
|
|
142
|
+
- `--sidebar-top`: Desktop sticky position from top (default: 160px)
|
|
143
|
+
- `--sidebar-overlay-opacity`: Overlay opacity when open (default: 0.3)
|
|
144
|
+
- `--sidebar-background`: Sidebar background color (default: var(--colour-base-black))
|
|
145
|
+
- `--sidebar-border-colour`: Border color (default: rgba(255, 255, 255, 0.1))
|
|
146
|
+
- `--sidebar-overlay-colour`: Overlay background color (default: var(--colour-grey-900))
|
|
147
|
+
- `--sidebar-inner-padding`: Content padding (default: 2rem 1.8rem 0 1.8rem)
|
|
148
|
+
- `--sidebar-toggle-background`: Toggle button background (default: var(--colour-base-black))
|
|
149
|
+
- `--sidebar-toggle-colour`: Toggle button text color (default: var(--colour-base-light))
|
|
150
|
+
- `--sidebar-toggle-padding`: Toggle button padding (default: 0.25rem 1.5rem)
|
|
151
|
+
- `--sidebar-toggle-radius`: Toggle button border radius (default: 0.375rem)
|
|
152
|
+
- `--sidebar-toggle-font-size`: Toggle button font size (default: 0.9rem)
|
|
138
153
|
-->
|
|
139
154
|
<aside
|
|
140
155
|
class="sidebar sidebar--{toggleStyle} sidebar--{position} {className}"
|
|
@@ -34,6 +34,21 @@ export type SidebarProps = {
|
|
|
34
34
|
* <nav>...</nav>
|
|
35
35
|
* </Sidebar>
|
|
36
36
|
* ```
|
|
37
|
+
*
|
|
38
|
+
* CSS Custom Properties:
|
|
39
|
+
* - `--sidebar-width`: Mobile sidebar width (default: 50vw)
|
|
40
|
+
* - `--sidebar-min-width`: Minimum sidebar width (default: 270px)
|
|
41
|
+
* - `--sidebar-top`: Desktop sticky position from top (default: 160px)
|
|
42
|
+
* - `--sidebar-overlay-opacity`: Overlay opacity when open (default: 0.3)
|
|
43
|
+
* - `--sidebar-background`: Sidebar background color (default: var(--colour-base-black))
|
|
44
|
+
* - `--sidebar-border-colour`: Border color (default: rgba(255, 255, 255, 0.1))
|
|
45
|
+
* - `--sidebar-overlay-colour`: Overlay background color (default: var(--colour-grey-900))
|
|
46
|
+
* - `--sidebar-inner-padding`: Content padding (default: 2rem 1.8rem 0 1.8rem)
|
|
47
|
+
* - `--sidebar-toggle-background`: Toggle button background (default: var(--colour-base-black))
|
|
48
|
+
* - `--sidebar-toggle-colour`: Toggle button text color (default: var(--colour-base-light))
|
|
49
|
+
* - `--sidebar-toggle-padding`: Toggle button padding (default: 0.25rem 1.5rem)
|
|
50
|
+
* - `--sidebar-toggle-radius`: Toggle button border radius (default: 0.375rem)
|
|
51
|
+
* - `--sidebar-toggle-font-size`: Toggle button font size (default: 0.9rem)
|
|
37
52
|
*/
|
|
38
53
|
declare const Sidebar: import("svelte").Component<SidebarProps, {}, "isOpen">;
|
|
39
54
|
type Sidebar = ReturnType<typeof Sidebar>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.svelte.d.ts","sourceRoot":"","sources":["../../src/components/Sidebar.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AAiIF
|
|
1
|
+
{"version":3,"file":"Sidebar.svelte.d.ts","sourceRoot":"","sources":["../../src/components/Sidebar.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AAiIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,QAAA,MAAM,OAAO,wDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { default as Sidebar } from './Sidebar.svelte';
|
|
2
2
|
export { default as Hamburger } from './Hamburger.svelte';
|
|
3
|
+
export { Alert, Notice } from './notifications';
|
|
4
|
+
export type { AlertProps, AlertType, NoticeProps, NoticeType } from './notifications';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { Icon as IconType } from '@lucide/svelte';
|
|
3
|
+
import type { Snippet } from 'svelte';
|
|
4
|
+
|
|
5
|
+
export type AlertType = 'info' | 'warning' | 'success' | 'error';
|
|
6
|
+
|
|
7
|
+
export type AlertProps = {
|
|
8
|
+
type?: AlertType;
|
|
9
|
+
title?: string;
|
|
10
|
+
children?: Snippet;
|
|
11
|
+
visible?: boolean;
|
|
12
|
+
dismiss?: boolean;
|
|
13
|
+
icon?: typeof IconType;
|
|
14
|
+
};
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<script lang="ts">
|
|
18
|
+
import { X } from '@lucide/svelte'
|
|
19
|
+
import { fade } from 'svelte/transition'
|
|
20
|
+
|
|
21
|
+
import { alertIcons } from './alertIcons.js'
|
|
22
|
+
|
|
23
|
+
let {
|
|
24
|
+
type = 'info',
|
|
25
|
+
title = '',
|
|
26
|
+
children,
|
|
27
|
+
visible = $bindable(true),
|
|
28
|
+
dismiss = false,
|
|
29
|
+
icon: customIcon,
|
|
30
|
+
...restProps
|
|
31
|
+
}: AlertProps = $props()
|
|
32
|
+
|
|
33
|
+
const iconDetail = $derived(alertIcons[type])
|
|
34
|
+
const Icon = $derived(customIcon || iconDetail.icon)
|
|
35
|
+
const hide = () => (visible = false)
|
|
36
|
+
const ariaLive = $derived(type === 'error' ? 'assertive' : 'polite')
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<!--
|
|
40
|
+
@component
|
|
41
|
+
|
|
42
|
+
Full-width alert component for displaying important messages with optional body text.
|
|
43
|
+
Supports title, children content, and custom icons with dismissible functionality.
|
|
44
|
+
|
|
45
|
+
@example
|
|
46
|
+
```svelte
|
|
47
|
+
<Alert type="info" title="New features available">
|
|
48
|
+
Check out the latest updates in your dashboard.
|
|
49
|
+
</Alert>
|
|
50
|
+
|
|
51
|
+
<Alert type="warning" title="Maintenance scheduled" dismiss />
|
|
52
|
+
|
|
53
|
+
<Alert type="error" title="Payment failed" dismiss>
|
|
54
|
+
Your card was declined. Please update your payment method.
|
|
55
|
+
</Alert>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
CSS Custom Properties:
|
|
59
|
+
- `--_alert-gap`: Gap between icon and content (default: 12px)
|
|
60
|
+
- `--_alert-padding`: Internal padding (default: 24px)
|
|
61
|
+
- `--_alert-border-radius`: Border radius (default: 6px)
|
|
62
|
+
- `--_alert-bg`: Background color (default: rgba(255, 255, 255, 0.02))
|
|
63
|
+
- `--_alert-content-gap`: Gap between title and text (default: 8px)
|
|
64
|
+
- `--_alert-title-font-weight`: Title font weight (default: var(--font-weight-semibold))
|
|
65
|
+
- `--_alert-title-colour`: Title text color (default: rgba(255, 255, 255, 1))
|
|
66
|
+
- `--_alert-text-line-height`: Text line height (default: 1.4)
|
|
67
|
+
- `--_alert-text-colour`: Text color (default: rgba(255, 255, 255, 50%))
|
|
68
|
+
- `--_alert-icon-colour`: Icon color (set automatically based on type)
|
|
69
|
+
-->
|
|
70
|
+
{#if visible}
|
|
71
|
+
<div
|
|
72
|
+
class="alert alert--{type}"
|
|
73
|
+
role="alert"
|
|
74
|
+
aria-live={ariaLive}
|
|
75
|
+
aria-atomic="true"
|
|
76
|
+
style="--_alert-icon-colour: {iconDetail.colour}"
|
|
77
|
+
transition:fade={{ duration: 300 }}
|
|
78
|
+
{...restProps}
|
|
79
|
+
>
|
|
80
|
+
<!-- Icon -->
|
|
81
|
+
<figure class="alert__icon">
|
|
82
|
+
<Icon size={24} color={iconDetail.colour} strokeWidth={1.2}></Icon>
|
|
83
|
+
</figure>
|
|
84
|
+
<!-- Content -->
|
|
85
|
+
<div class="alert__content">
|
|
86
|
+
{#if title}
|
|
87
|
+
<p class="alert__title">
|
|
88
|
+
{title}
|
|
89
|
+
</p>
|
|
90
|
+
{/if}
|
|
91
|
+
{#if children}
|
|
92
|
+
<p class="alert__text">
|
|
93
|
+
{@render children()}
|
|
94
|
+
</p>
|
|
95
|
+
{/if}
|
|
96
|
+
</div>
|
|
97
|
+
<!-- Dismiss -->
|
|
98
|
+
{#if dismiss}
|
|
99
|
+
<button class="alert__dismiss" onclick={hide} aria-label="Close Alert">
|
|
100
|
+
<X size={24} color={iconDetail.colour} />
|
|
101
|
+
</button>
|
|
102
|
+
{/if}
|
|
103
|
+
</div>
|
|
104
|
+
{/if}
|
|
105
|
+
|
|
106
|
+
<style>.alert {
|
|
107
|
+
position: relative;
|
|
108
|
+
display: flex;
|
|
109
|
+
gap: var(--_alert-gap, 0.75rem);
|
|
110
|
+
width: 100%;
|
|
111
|
+
border-radius: var(--_alert-border-radius, 6px);
|
|
112
|
+
padding: var(--_alert-padding, 1.5rem);
|
|
113
|
+
background-color: var(--_alert-bg, rgba(255, 255, 255, 0.02));
|
|
114
|
+
}
|
|
115
|
+
.alert__icon {
|
|
116
|
+
display: flex;
|
|
117
|
+
align-items: center;
|
|
118
|
+
justify-content: center;
|
|
119
|
+
margin: 0;
|
|
120
|
+
flex-shrink: 0;
|
|
121
|
+
}
|
|
122
|
+
.alert__content {
|
|
123
|
+
display: grid;
|
|
124
|
+
gap: var(--_alert-content-gap, 0.5rem);
|
|
125
|
+
}
|
|
126
|
+
.alert__title {
|
|
127
|
+
font-weight: var(--_alert-title-font-weight, var(--font-weight-semibold));
|
|
128
|
+
margin: 0;
|
|
129
|
+
line-height: 1;
|
|
130
|
+
color: var(--_alert-title-colour, rgb(255, 255, 255));
|
|
131
|
+
}
|
|
132
|
+
.alert__title:empty {
|
|
133
|
+
display: none;
|
|
134
|
+
}
|
|
135
|
+
.alert__text {
|
|
136
|
+
margin: 0;
|
|
137
|
+
line-height: var(--_alert-text-line-height, 1.4);
|
|
138
|
+
color: var(--_alert-text-colour, rgba(255, 255, 255, 0.5));
|
|
139
|
+
}
|
|
140
|
+
.alert__dismiss {
|
|
141
|
+
cursor: pointer;
|
|
142
|
+
margin-left: auto;
|
|
143
|
+
display: flex;
|
|
144
|
+
align-items: center;
|
|
145
|
+
justify-content: center;
|
|
146
|
+
background: none;
|
|
147
|
+
border: none;
|
|
148
|
+
padding: 0;
|
|
149
|
+
color: var(--_alert-icon-colour);
|
|
150
|
+
}
|
|
151
|
+
.alert :global(svg) {
|
|
152
|
+
min-width: 1.4rem;
|
|
153
|
+
min-height: 1.4rem;
|
|
154
|
+
}</style>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Icon as IconType } from '@lucide/svelte';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
export type AlertType = 'info' | 'warning' | 'success' | 'error';
|
|
4
|
+
export type AlertProps = {
|
|
5
|
+
type?: AlertType;
|
|
6
|
+
title?: string;
|
|
7
|
+
children?: Snippet;
|
|
8
|
+
visible?: boolean;
|
|
9
|
+
dismiss?: boolean;
|
|
10
|
+
icon?: typeof IconType;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Full-width alert component for displaying important messages with optional body text.
|
|
14
|
+
* Supports title, children content, and custom icons with dismissible functionality.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```svelte
|
|
18
|
+
* <Alert type="info" title="New features available">
|
|
19
|
+
* Check out the latest updates in your dashboard.
|
|
20
|
+
* </Alert>
|
|
21
|
+
*
|
|
22
|
+
* <Alert type="warning" title="Maintenance scheduled" dismiss />
|
|
23
|
+
*
|
|
24
|
+
* <Alert type="error" title="Payment failed" dismiss>
|
|
25
|
+
* Your card was declined. Please update your payment method.
|
|
26
|
+
* </Alert>
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* CSS Custom Properties:
|
|
30
|
+
* - `--_alert-gap`: Gap between icon and content (default: 12px)
|
|
31
|
+
* - `--_alert-padding`: Internal padding (default: 24px)
|
|
32
|
+
* - `--_alert-border-radius`: Border radius (default: 6px)
|
|
33
|
+
* - `--_alert-bg`: Background color (default: rgba(255, 255, 255, 0.02))
|
|
34
|
+
* - `--_alert-content-gap`: Gap between title and text (default: 8px)
|
|
35
|
+
* - `--_alert-title-font-weight`: Title font weight (default: var(--font-weight-semibold))
|
|
36
|
+
* - `--_alert-title-colour`: Title text color (default: rgba(255, 255, 255, 1))
|
|
37
|
+
* - `--_alert-text-line-height`: Text line height (default: 1.4)
|
|
38
|
+
* - `--_alert-text-colour`: Text color (default: rgba(255, 255, 255, 50%))
|
|
39
|
+
* - `--_alert-icon-colour`: Icon color (set automatically based on type)
|
|
40
|
+
*/
|
|
41
|
+
declare const Alert: import("svelte").Component<AlertProps, {}, "visible">;
|
|
42
|
+
type Alert = ReturnType<typeof Alert>;
|
|
43
|
+
export default Alert;
|
|
44
|
+
//# sourceMappingURL=Alert.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/notifications/Alert.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC;CACvB,CAAC;AAiEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,QAAA,MAAM,KAAK,uDAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { Icon as IconType } from '@lucide/svelte';
|
|
3
|
+
|
|
4
|
+
export type NoticeType = 'info' | 'warning' | 'success' | 'error';
|
|
5
|
+
|
|
6
|
+
export type NoticeProps = {
|
|
7
|
+
type?: NoticeType;
|
|
8
|
+
title: string;
|
|
9
|
+
visible?: boolean;
|
|
10
|
+
dismiss?: boolean;
|
|
11
|
+
icon?: typeof IconType;
|
|
12
|
+
};
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<script lang="ts">
|
|
16
|
+
import { X } from '@lucide/svelte'
|
|
17
|
+
import { fade } from 'svelte/transition'
|
|
18
|
+
|
|
19
|
+
import { alertIcons } from './alertIcons'
|
|
20
|
+
|
|
21
|
+
let {
|
|
22
|
+
type = 'info',
|
|
23
|
+
title = '',
|
|
24
|
+
visible = $bindable(true),
|
|
25
|
+
dismiss = false,
|
|
26
|
+
icon: customIcon,
|
|
27
|
+
...restProps
|
|
28
|
+
}: NoticeProps = $props()
|
|
29
|
+
|
|
30
|
+
const iconDetail = $derived(alertIcons[type])
|
|
31
|
+
const Icon = $derived(customIcon || iconDetail.icon)
|
|
32
|
+
const hide = () => (visible = false)
|
|
33
|
+
const ariaLive = $derived(type === 'error' ? 'assertive' : 'polite')
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<!--
|
|
37
|
+
@component
|
|
38
|
+
|
|
39
|
+
Inline notification component for displaying brief messages with icons.
|
|
40
|
+
Compact design suitable for inline alerts, badges, or status indicators.
|
|
41
|
+
|
|
42
|
+
@example
|
|
43
|
+
```svelte
|
|
44
|
+
<Notice type="success" title="Upload complete" />
|
|
45
|
+
<Notice type="warning" title="Session expiring" dismiss />
|
|
46
|
+
<Notice type="error" title="Connection failed" icon={CustomIcon} />
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
CSS Custom Properties:
|
|
50
|
+
- `--_notice-gap`: Gap between icon and title (default: 12px)
|
|
51
|
+
- `--_notice-padding`: Internal padding (default: 0.8rem 12px)
|
|
52
|
+
- `--_notice-border-radius`: Border radius (default: 6px)
|
|
53
|
+
- `--_notice-bg`: Background color (default: rgba(255, 255, 255, 0.025))
|
|
54
|
+
- `--_notice-font-size`: Title font size (default: 1rem)
|
|
55
|
+
- `--_notice-title-colour`: Title text color (default: rgba(255, 255, 255, 1))
|
|
56
|
+
- `--_notice-icon-colour`: Icon color (set automatically based on type)
|
|
57
|
+
-->
|
|
58
|
+
{#if visible}
|
|
59
|
+
<div
|
|
60
|
+
class="notice notice--{type}"
|
|
61
|
+
role="alert"
|
|
62
|
+
aria-live={ariaLive}
|
|
63
|
+
aria-atomic="true"
|
|
64
|
+
style="--_notice-icon-colour: {iconDetail.colour}"
|
|
65
|
+
transition:fade={{ duration: 300 }}
|
|
66
|
+
{...restProps}
|
|
67
|
+
>
|
|
68
|
+
<!-- Icon -->
|
|
69
|
+
<figure class="notice__icon">
|
|
70
|
+
<Icon size={20} color={iconDetail.colour} strokeWidth={1.2}></Icon>
|
|
71
|
+
</figure>
|
|
72
|
+
<!-- Title -->
|
|
73
|
+
<p class="notice__title">
|
|
74
|
+
{title}
|
|
75
|
+
</p>
|
|
76
|
+
<!-- Dismiss -->
|
|
77
|
+
{#if dismiss}
|
|
78
|
+
<button class="notice__dismiss" onclick={hide} aria-label="Close Notice">
|
|
79
|
+
<X size={20} color={iconDetail.colour} />
|
|
80
|
+
</button>
|
|
81
|
+
{/if}
|
|
82
|
+
</div>
|
|
83
|
+
{/if}
|
|
84
|
+
|
|
85
|
+
<style>.notice {
|
|
86
|
+
position: relative;
|
|
87
|
+
display: inline-flex;
|
|
88
|
+
width: auto;
|
|
89
|
+
gap: var(--_notice-gap, 0.75rem);
|
|
90
|
+
padding: var(--_notice-padding, 0.8rem 0.75rem);
|
|
91
|
+
border-radius: var(--_notice-border-radius, 6px);
|
|
92
|
+
background-color: var(--_notice-bg, rgba(255, 255, 255, 0.025));
|
|
93
|
+
align-items: center;
|
|
94
|
+
}
|
|
95
|
+
.notice__icon {
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
justify-content: center;
|
|
99
|
+
margin: 0;
|
|
100
|
+
flex-shrink: 0;
|
|
101
|
+
}
|
|
102
|
+
.notice__title {
|
|
103
|
+
margin: 0;
|
|
104
|
+
font-size: var(--_notice-font-size, 1rem);
|
|
105
|
+
font-weight: var(--font-weight-medium);
|
|
106
|
+
color: var(--_notice-title-colour, rgb(255, 255, 255));
|
|
107
|
+
line-height: 1;
|
|
108
|
+
}
|
|
109
|
+
.notice__dismiss {
|
|
110
|
+
cursor: pointer;
|
|
111
|
+
margin-left: auto;
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
justify-content: center;
|
|
115
|
+
background: none;
|
|
116
|
+
border: none;
|
|
117
|
+
padding: 0;
|
|
118
|
+
color: var(--_notice-icon-colour);
|
|
119
|
+
}
|
|
120
|
+
.notice :global(svg) {
|
|
121
|
+
min-width: 1.4rem;
|
|
122
|
+
min-height: 1.4rem;
|
|
123
|
+
}</style>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Icon as IconType } from '@lucide/svelte';
|
|
2
|
+
export type NoticeType = 'info' | 'warning' | 'success' | 'error';
|
|
3
|
+
export type NoticeProps = {
|
|
4
|
+
type?: NoticeType;
|
|
5
|
+
title: string;
|
|
6
|
+
visible?: boolean;
|
|
7
|
+
dismiss?: boolean;
|
|
8
|
+
icon?: typeof IconType;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Inline notification component for displaying brief messages with icons.
|
|
12
|
+
* Compact design suitable for inline alerts, badges, or status indicators.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```svelte
|
|
16
|
+
* <Notice type="success" title="Upload complete" />
|
|
17
|
+
* <Notice type="warning" title="Session expiring" dismiss />
|
|
18
|
+
* <Notice type="error" title="Connection failed" icon={CustomIcon} />
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* CSS Custom Properties:
|
|
22
|
+
* - `--_notice-gap`: Gap between icon and title (default: 12px)
|
|
23
|
+
* - `--_notice-padding`: Internal padding (default: 0.8rem 12px)
|
|
24
|
+
* - `--_notice-border-radius`: Border radius (default: 6px)
|
|
25
|
+
* - `--_notice-bg`: Background color (default: rgba(255, 255, 255, 0.025))
|
|
26
|
+
* - `--_notice-font-size`: Title font size (default: 1rem)
|
|
27
|
+
* - `--_notice-title-colour`: Title text color (default: rgba(255, 255, 255, 1))
|
|
28
|
+
* - `--_notice-icon-colour`: Icon color (set automatically based on type)
|
|
29
|
+
*/
|
|
30
|
+
declare const Notice: import("svelte").Component<NoticeProps, {}, "visible">;
|
|
31
|
+
type Notice = ReturnType<typeof Notice>;
|
|
32
|
+
export default Notice;
|
|
33
|
+
//# sourceMappingURL=Notice.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Notice.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/notifications/Notice.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAElE,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC;CACvB,CAAC;AAuDF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,MAAM,wDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Icon as IconType } from '@lucide/svelte';
|
|
2
|
+
/**
|
|
3
|
+
* Notification type variants
|
|
4
|
+
*/
|
|
5
|
+
type NotificationType = 'info' | 'warning' | 'success' | 'error';
|
|
6
|
+
/**
|
|
7
|
+
* Icon configuration for notification types
|
|
8
|
+
*/
|
|
9
|
+
type IconDetail = {
|
|
10
|
+
icon: typeof IconType;
|
|
11
|
+
colour: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Icon mapping for notification types
|
|
15
|
+
*/
|
|
16
|
+
export declare const alertIcons: Record<NotificationType, IconDetail>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=alertIcons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alertIcons.d.ts","sourceRoot":"","sources":["../../../src/components/notifications/alertIcons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,IAAI,IAAI,QAAQ,EAAuB,MAAM,gBAAgB,CAAC;AAElG;;GAEG;AACH,KAAK,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjE;;GAEG;AACH,KAAK,UAAU,GAAG;IACjB,IAAI,EAAE,OAAO,QAAQ,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAK3D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CircleCheck, CircleX, Info, TriangleAlert } from '@lucide/svelte';
|
|
2
|
+
/**
|
|
3
|
+
* Icon mapping for notification types
|
|
4
|
+
*/
|
|
5
|
+
export const alertIcons = {
|
|
6
|
+
info: { icon: Info, colour: 'var(--colour-semantic-info)' },
|
|
7
|
+
success: { icon: CircleCheck, colour: 'var(--colour-semantic-success)' },
|
|
8
|
+
warning: { icon: TriangleAlert, colour: 'var(--colour-semantic-warning)' },
|
|
9
|
+
error: { icon: CircleX, colour: 'var(--colour-semantic-error)' },
|
|
10
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as Alert } from './Alert.svelte';
|
|
2
|
+
export { default as Notice } from './Notice.svelte';
|
|
3
|
+
export type { AlertProps, AlertType } from './Alert.svelte';
|
|
4
|
+
export type { NoticeProps, NoticeType } from './Notice.svelte';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/notifications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
|
|
3
|
+
$border-radius-2: 2px;
|
|
4
|
+
$border-radius-4: 4px;
|
|
5
|
+
$border-radius-6: 6px;
|
|
6
|
+
$border-radius-8: 8px;
|
|
7
|
+
$border-radius-12: 12px;
|
|
8
|
+
$border-radius-16: 16px;
|
|
9
|
+
$border-radius-32: 32px;
|
|
10
|
+
$border-radius-full: 9999999px;
|
|
11
|
+
|
|
12
|
+
$border-radius: (
|
|
13
|
+
'2': $border-radius-2,
|
|
14
|
+
'4': $border-radius-4,
|
|
15
|
+
'6': $border-radius-6,
|
|
16
|
+
'8': $border-radius-8,
|
|
17
|
+
'12': $border-radius-12,
|
|
18
|
+
'16': $border-radius-16,
|
|
19
|
+
'32': $border-radius-32,
|
|
20
|
+
'full': $border-radius-full,
|
|
21
|
+
);
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
@use 'sass:meta';
|
|
2
|
+
@use 'sass:math';
|
|
3
|
+
@use 'sass:map';
|
|
4
|
+
@use 'breakpoints';
|
|
5
|
+
|
|
6
|
+
// Media Queries
|
|
7
|
+
// ==========================================================================
|
|
8
|
+
|
|
9
|
+
@mixin mq($size) {
|
|
10
|
+
@if map.has-key(breakpoints.$breakpoints, $size) {
|
|
11
|
+
$breakpoint: map.get(breakpoints.$breakpoints, $size);
|
|
12
|
+
@media screen and (min-width: $breakpoint * 1px) {
|
|
13
|
+
@content;
|
|
14
|
+
}
|
|
15
|
+
} @else if meta.type-of($size) == number {
|
|
16
|
+
@if math.is-unitless($size) {
|
|
17
|
+
@error 'When using a number with @mq() make sure to include a unit';
|
|
18
|
+
} @else {
|
|
19
|
+
@media screen and (min-width: $size) {
|
|
20
|
+
@content;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
} @else {
|
|
24
|
+
@error 'The keyword #{$size} is not in the $breakpoints map';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@mixin mq-max($size) {
|
|
29
|
+
@if map.has-key(breakpoints.$breakpoints, $size) {
|
|
30
|
+
$breakpoint: map.get(breakpoints.$breakpoints, $size);
|
|
31
|
+
@media screen and (max-width: $breakpoint * 1px) {
|
|
32
|
+
@content;
|
|
33
|
+
}
|
|
34
|
+
} @else if meta.type-of($size) == number {
|
|
35
|
+
@if math.is-unitless($size) {
|
|
36
|
+
@error 'When using a number with @mq() make sure to include a unit';
|
|
37
|
+
} @else {
|
|
38
|
+
@media screen and (max-width: $size) {
|
|
39
|
+
@content;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
} @else {
|
|
43
|
+
@error 'The keyword #{$size} is not in the $breakpoints map';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@mixin media-small-phones {
|
|
48
|
+
@media (width <= 350px) {
|
|
49
|
+
@content;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//// Pixel to REM Converter
|
|
54
|
+
//// ==========================================================================
|
|
55
|
+
//
|
|
56
|
+
//// @author Ainsley Clark
|
|
57
|
+
//// @param {Number} $pxValue - Pixel amount to convert
|
|
58
|
+
//// @param {String} $property [font-size] - Property to convert
|
|
59
|
+
//// @param {Number} $standard-size - Initial base rem size
|
|
60
|
+
//@mixin px-to-rem($pxValue, $property: 'font-size', $standard-size: 16) {
|
|
61
|
+
// #{$property}: $pxValue + px;
|
|
62
|
+
// #{$property}: $pxValue / å $standard-size + rem;
|
|
63
|
+
//}
|
|
64
|
+
|
|
65
|
+
// Type
|
|
66
|
+
// ==========================================================================
|
|
67
|
+
|
|
68
|
+
@mixin ellipsis($lines) {
|
|
69
|
+
display: -webkit-box;
|
|
70
|
+
-webkit-line-clamp: $lines;
|
|
71
|
+
-webkit-box-orient: vertical;
|
|
72
|
+
overflow: hidden;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@function strip-unit($value) {
|
|
76
|
+
@return math.div($value, $value * 0 + 1);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Usage:
|
|
80
|
+
// @include fluid-type(34px, 98px);
|
|
81
|
+
@mixin fluid-type($min-font-size, $max-font-size) {
|
|
82
|
+
$u1: math.unit($type-fluid-start-size);
|
|
83
|
+
$u2: math.unit($type-fluid-end-size);
|
|
84
|
+
$u3: math.unit($min-font-size);
|
|
85
|
+
$u4: math.unit($max-font-size);
|
|
86
|
+
|
|
87
|
+
@if $u1 == $u2 and $u1 == $u3 and $u1 == $u4 {
|
|
88
|
+
& {
|
|
89
|
+
font-size: $min-font-size;
|
|
90
|
+
|
|
91
|
+
@media screen and (min-width: $type-fluid-start-size) {
|
|
92
|
+
font-size: calc(
|
|
93
|
+
#{$min-font-size} + #{strip-unit($max-font-size - $min-font-size)} *
|
|
94
|
+
(
|
|
95
|
+
(100vw - #{$type-fluid-start-size}) /
|
|
96
|
+
#{strip-unit($type-fluid-end-size - $type-fluid-start-size)}
|
|
97
|
+
)
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@media screen and (min-width: $type-fluid-end-size) {
|
|
102
|
+
font-size: $max-font-size;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Landscape Mixin
|
|
109
|
+
// ==========================================================================
|
|
110
|
+
|
|
111
|
+
@mixin landscape {
|
|
112
|
+
@media screen and (orientation: landscape) {
|
|
113
|
+
@content;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Browser
|
|
118
|
+
// ==========================================================================
|
|
119
|
+
|
|
120
|
+
@mixin ie11 {
|
|
121
|
+
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
|
|
122
|
+
@content;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@mixin ie11andedge {
|
|
127
|
+
// stylelint-disable-next-line media-feature-name-no-unknown
|
|
128
|
+
@media screen and (min-device-pixel-ratio: 0) and (-ms-high-contrast: none),
|
|
129
|
+
(-ms-high-contrast: active) {
|
|
130
|
+
@content;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@mixin firefox {
|
|
135
|
+
// stylelint-disable-next-line media-feature-name-no-unknown
|
|
136
|
+
@media screen and (min-device-pixel-ratio: 0) and (resolution >= 0.001dpcm) {
|
|
137
|
+
@content;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@mixin safari {
|
|
142
|
+
@media not all and (resolution >= 0.001dpcm) {
|
|
143
|
+
@supports (-webkit-appearance: none) {
|
|
144
|
+
@content;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Full Height
|
|
150
|
+
// ==========================================================================
|
|
151
|
+
|
|
152
|
+
@mixin full-height {
|
|
153
|
+
height: 100vh; /* Use vh as a fallback for browsers that do not support Custom Properties */
|
|
154
|
+
height: 100svh;
|
|
155
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use 'functions' as f;
|
|
3
|
+
|
|
4
|
+
$size-2: f.px-to-rem(2);
|
|
5
|
+
$size-4: f.px-to-rem(4);
|
|
6
|
+
$size-8: f.px-to-rem(8);
|
|
7
|
+
$size-12: f.px-to-rem(12);
|
|
8
|
+
$size-16: f.px-to-rem(16);
|
|
9
|
+
$size-24: f.px-to-rem(24);
|
|
10
|
+
$size-32: f.px-to-rem(32);
|
|
11
|
+
$size-40: f.px-to-rem(40);
|
|
12
|
+
$size-48: f.px-to-rem(48);
|
|
13
|
+
|
|
14
|
+
$sizes: (
|
|
15
|
+
'0': 0,
|
|
16
|
+
'2': $size-2,
|
|
17
|
+
'4': $size-4,
|
|
18
|
+
'8': $size-8,
|
|
19
|
+
'12': $size-12,
|
|
20
|
+
'16': $size-16,
|
|
21
|
+
'24': $size-24,
|
|
22
|
+
'32': $size-32,
|
|
23
|
+
'40': $size-40,
|
|
24
|
+
'48': $size-48,
|
|
25
|
+
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ainsleydev/sveltekit-helper",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "SvelteKit utilities, components and helpers for ainsley.dev builds",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -44,6 +44,11 @@
|
|
|
44
44
|
"svelte": "./dist/components/payload/index.js",
|
|
45
45
|
"default": "./dist/components/payload/index.js"
|
|
46
46
|
},
|
|
47
|
+
"./components/notifications": {
|
|
48
|
+
"types": "./dist/components/notifications/index.d.ts",
|
|
49
|
+
"svelte": "./dist/components/notifications/index.js",
|
|
50
|
+
"default": "./dist/components/notifications/index.js"
|
|
51
|
+
},
|
|
47
52
|
"./utils/forms": {
|
|
48
53
|
"types": "./dist/utils/forms/index.d.ts",
|
|
49
54
|
"import": "./dist/utils/forms/index.js"
|
|
@@ -73,7 +78,8 @@
|
|
|
73
78
|
}
|
|
74
79
|
},
|
|
75
80
|
"dependencies": {
|
|
76
|
-
"svelte-hamburgers": "^
|
|
81
|
+
"svelte-hamburgers": "^5.0.0",
|
|
82
|
+
"@lucide/svelte": "^0.562.0"
|
|
77
83
|
},
|
|
78
84
|
"devDependencies": {
|
|
79
85
|
"@sveltejs/kit": "^2.0.0",
|