hamzus-ui 0.0.140 → 0.0.142

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/index.d.ts CHANGED
@@ -42,6 +42,7 @@ export * as Tabs from "./src/components/hamzus-ui/Tabs"
42
42
  export { default as Image } from "./src/components/hamzus-ui/Image/Image.svelte"
43
43
  export * as Table from "./src/components/hamzus-ui/Table"
44
44
  export * as DataList from "./src/components/hamzus-ui/DataList"
45
+ export * as ResponsiveTable from "./src/components/hamzus-ui/ResponsiveTable"
45
46
  export { default as Skeleton } from "./src/components/hamzus-ui/Skeleton/Skeleton.svelte"
46
47
  export { default as LineLoader } from "./src/components/hamzus-ui/LineLoader/LineLoader.svelte"
47
48
  export { default as ProgressCircle } from "./src/components/hamzus-ui/ProgressCircle/ProgressCircle.svelte"
package/index.js CHANGED
@@ -39,6 +39,7 @@ export * as Tabs from "./src/components/hamzus-ui/Tabs"
39
39
  export { default as Image } from "./src/components/hamzus-ui/Image/Image.svelte"
40
40
  export * as Table from "./src/components/hamzus-ui/Table"
41
41
  export * as DataList from "./src/components/hamzus-ui/DataList"
42
+ export * as ResponsiveTable from "./src/components/hamzus-ui/ResponsiveTable"
42
43
  export { default as Skeleton } from "./src/components/hamzus-ui/Skeleton/Skeleton.svelte"
43
44
  export { default as LineLoader } from "./src/components/hamzus-ui/LineLoader/LineLoader.svelte"
44
45
  export { default as ProgressCircle } from "./src/components/hamzus-ui/ProgressCircle/ProgressCircle.svelte"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hamzus-ui",
3
- "version": "0.0.140",
3
+ "version": "0.0.142",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "svelte": "index.js",
@@ -0,0 +1,4 @@
1
+
2
+ <tbody>
3
+ <slot/>
4
+ </tbody>
@@ -0,0 +1,76 @@
1
+ <script>
2
+ import Skeleton from '../Skeleton/Skeleton.svelte';
3
+ import { onMount } from 'svelte';
4
+
5
+ export let ctx;
6
+
7
+ const { columns } = ctx;
8
+
9
+ $: style = getStyle($columns, isMounted);
10
+
11
+ let isMounted = false;
12
+
13
+ let div;
14
+
15
+ let data = null;
16
+
17
+ onMount(() => {
18
+ isMounted = true;
19
+ });
20
+
21
+ function getStyle(columns) {
22
+ if (!isMounted) {
23
+ return;
24
+ }
25
+
26
+ const index = Array.from(div.parentNode.children).indexOf(div);
27
+
28
+ data = columns[index];
29
+ }
30
+ </script>
31
+
32
+ <td bind:this={div} class="cell {data && data.align ? data.align : ''}">
33
+ {#if data !== null}
34
+ {#if data.label}
35
+ <h4 class="sub-title">{data.label}</h4>
36
+ {/if}
37
+ <slot />
38
+ {:else}
39
+ <Skeleton style="widht:100%;height:20px;"></Skeleton>
40
+ {/if}
41
+ </td>
42
+
43
+ <style>
44
+ .cell {
45
+ text-align: center;
46
+ }
47
+
48
+ .cell.left {
49
+ text-align: left;
50
+ }
51
+ .cell.right {
52
+ text-align: right;
53
+ }
54
+
55
+ .sub-title {
56
+ text-align: left;
57
+ }
58
+
59
+ @media (min-width: 500px) {
60
+ .sub-title {
61
+ display: none;
62
+ }
63
+ }
64
+ @media (max-width: 500px) {
65
+ .cell {
66
+ text-align: left;
67
+ }
68
+
69
+ .cell.left {
70
+ text-align: left;
71
+ }
72
+ .cell.right {
73
+ text-align: left;
74
+ }
75
+ }
76
+ </style>
@@ -0,0 +1,19 @@
1
+ <script>
2
+ import { onMount } from "svelte";
3
+ </script>
4
+ <thead class="header">
5
+ <tr>
6
+ <slot/>
7
+ </tr>
8
+ </thead>
9
+
10
+ <style>
11
+ .header {
12
+ background-color: var(--bg-blur);
13
+ }
14
+ @media (max-width:500px) {
15
+ .header {
16
+ display: none;
17
+ }
18
+ }
19
+ </style>
@@ -0,0 +1,41 @@
1
+ <script>
2
+ import Skeleton from '../Skeleton/Skeleton.svelte';
3
+ import { onMount } from 'svelte';
4
+ import { writable } from 'svelte/store';
5
+
6
+ export let width = '1fr';
7
+ export let label = null;
8
+ export let align = 'center';
9
+
10
+ export let ctx;
11
+
12
+ const { columns } = ctx;
13
+
14
+ let index = null;
15
+
16
+ onMount(() => {
17
+ index = ctx.registerHeaderCell(width, label, align);
18
+ });
19
+ </script>
20
+
21
+ <th class="header-cell {align}" {width} {...$$restProps}>
22
+ {#if index !== null}
23
+ <slot />
24
+ {:else}
25
+ <Skeleton style="width:100%;height:12px;"></Skeleton>
26
+ {/if}
27
+ </th>
28
+
29
+ <style>
30
+ .header-cell {
31
+ padding: var(--pad-s) var(--pad-m);
32
+ text-align: center;
33
+ }
34
+
35
+ .header-cell.left {
36
+ text-align: left;
37
+ }
38
+ .header-cell.right {
39
+ text-align: right;
40
+ }
41
+ </style>
@@ -0,0 +1,25 @@
1
+ <tr class="line" {...$$restProps}>
2
+ <slot/>
3
+ </tr>
4
+
5
+ <style>
6
+ .line {
7
+ border-bottom: 1px solid var(--stroke);
8
+ }
9
+
10
+ .line:last-child {
11
+ border-bottom: initial;
12
+ }
13
+
14
+ .line :global(td) {
15
+ padding: var(--pad-s);
16
+ }
17
+ @media (max-width:500px) {
18
+ .line {
19
+ display: flex;
20
+ flex-direction: column;
21
+ padding: var(--pad-m);
22
+ row-gap: var(--pad-m);
23
+ }
24
+ }
25
+ </style>
@@ -0,0 +1,43 @@
1
+ <script>
2
+ import { writable } from 'svelte/store';
3
+
4
+ export let ctx = {
5
+ columns: writable([]),
6
+ registerHeaderCell: (width, label, align) => {
7
+ let index;
8
+ ctx.columns.update((actualValue) => {
9
+ index = actualValue.length;
10
+ return [
11
+ ...actualValue,
12
+ {
13
+ width: width,
14
+ index: index,
15
+ label: label,
16
+ align: align
17
+ }
18
+ ];
19
+ });
20
+
21
+ return index;
22
+ }
23
+ };
24
+ </script>
25
+
26
+ <table {...$$restProps} class="table">
27
+ <slot {ctx} />
28
+ </table>
29
+
30
+ <style>
31
+ .table {
32
+ border-collapse: collapse;
33
+ }
34
+ @media (max-width: 500px) {
35
+ .table {
36
+ display: flex;
37
+ flex-direction: column;
38
+ border: 1px solid var(--stroke);
39
+ border-radius: var(--radius-m);
40
+ overflow: hidden;
41
+ }
42
+ }
43
+ </style>
@@ -0,0 +1,8 @@
1
+ export { default as Root } from './Root.svelte';
2
+
3
+ export { default as Header } from './Header.svelte';
4
+ export { default as HeaderCell } from './HeaderCell.svelte';
5
+
6
+ export { default as Body } from './Body.svelte';
7
+ export { default as Line } from './Line.svelte';
8
+ export { default as Cell } from './Cell.svelte';