@elmethis/qwik 1.0.0-alpha.29 → 1.0.0-alpha.31
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/lib/index.qwik.cjs +139 -74
- package/lib/index.qwik.mjs +139 -74
- package/lib/q-manifest.json +4 -4
- package/lib/style.css +103 -10
- package/lib-types/components/containments/elm-tabs.stories.d.ts +1 -0
- package/lib-types/components/media/elm-audio-player.stories.d.ts +1 -0
- package/lib-types/components/table/elm-table.stories.d.ts +7 -0
- package/package.json +13 -9
package/lib/style.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
._elm-
|
|
1
|
+
._elm-tabs_fka8s_1 {
|
|
2
2
|
margin-block-start: var(--elmethis-margin-block-start);
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: column;
|
|
@@ -11,15 +11,20 @@
|
|
|
11
11
|
background-color: var(--elmethis-color-surface-raised);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
._tab-
|
|
14
|
+
._tab-container_fka8s_14 {
|
|
15
15
|
display: flex;
|
|
16
16
|
flex-direction: row;
|
|
17
17
|
border-bottom: solid 1px oklch(from var(--elmethis-color-primary) l c h / 30%);
|
|
18
|
+
overflow-x: auto;
|
|
19
|
+
scrollbar-width: thin;
|
|
20
|
+
scrollbar-color: var(--elmethis-color-neutral-weak)
|
|
21
|
+
var(--elmethis-color-surface-base);
|
|
18
22
|
}
|
|
19
23
|
|
|
20
|
-
.
|
|
24
|
+
._tab_fka8s_14 {
|
|
21
25
|
box-sizing: border-box;
|
|
22
26
|
min-width: 6rem;
|
|
27
|
+
flex-shrink: 0;
|
|
23
28
|
padding: 1rem;
|
|
24
29
|
margin: 0;
|
|
25
30
|
cursor: pointer;
|
|
@@ -34,7 +39,7 @@
|
|
|
34
39
|
color: var(--elmethis-scoped-color, var(--elmethis-color-neutral));
|
|
35
40
|
user-select: none;
|
|
36
41
|
|
|
37
|
-
&.
|
|
42
|
+
&._active_fka8s_42 {
|
|
38
43
|
background-color: oklch(from var(--elmethis-color-primary) l c h / 5%);
|
|
39
44
|
border-bottom-color: var(--elmethis-color-primary);
|
|
40
45
|
cursor: default;
|
|
@@ -45,12 +50,12 @@
|
|
|
45
50
|
}
|
|
46
51
|
}
|
|
47
52
|
|
|
48
|
-
._tab-
|
|
53
|
+
._tab-content_fka8s_53 {
|
|
49
54
|
width: 100%;
|
|
50
55
|
margin: 0;
|
|
51
56
|
}
|
|
52
57
|
|
|
53
|
-
._tab-content-
|
|
58
|
+
._tab-content-inner_fka8s_58 {
|
|
54
59
|
box-sizing: border-box;
|
|
55
60
|
padding: 1em;
|
|
56
61
|
}
|
|
@@ -1754,14 +1759,74 @@
|
|
|
1754
1759
|
list-style-type: none;
|
|
1755
1760
|
}
|
|
1756
1761
|
}
|
|
1757
|
-
|
|
1762
|
+
/* Non-scrolling frame: owns the outer spacing and pins the edge shadows so they
|
|
1763
|
+
stay glued to the viewport edges while the table scrolls underneath. */
|
|
1764
|
+
._elm-table-frame_wl7v3_3 {
|
|
1765
|
+
position: relative;
|
|
1766
|
+
width: 100%;
|
|
1758
1767
|
margin-block-start: var(--elmethis-margin-block-start);
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1770
|
+
._elm-table-frame_wl7v3_3::before,
|
|
1771
|
+
._elm-table-frame_wl7v3_3::after {
|
|
1772
|
+
content: "";
|
|
1773
|
+
position: absolute;
|
|
1774
|
+
inset-block: 0;
|
|
1775
|
+
width: 1.5rem;
|
|
1776
|
+
z-index: 2;
|
|
1777
|
+
pointer-events: none;
|
|
1778
|
+
opacity: 0;
|
|
1779
|
+
transition: opacity 200ms;
|
|
1780
|
+
}
|
|
1781
|
+
|
|
1782
|
+
._elm-table-frame_wl7v3_3::before {
|
|
1783
|
+
inset-inline-start: 0;
|
|
1784
|
+
background: linear-gradient(
|
|
1785
|
+
to right,
|
|
1786
|
+
oklch(from var(--elmethis-color-surface-sunken) l c h / 50%),
|
|
1787
|
+
transparent
|
|
1788
|
+
);
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
._elm-table-frame_wl7v3_3::after {
|
|
1792
|
+
inset-inline-end: 0;
|
|
1793
|
+
background: linear-gradient(
|
|
1794
|
+
to left,
|
|
1795
|
+
oklch(from var(--elmethis-color-surface-sunken) l c h / 50%),
|
|
1796
|
+
transparent
|
|
1797
|
+
);
|
|
1798
|
+
}
|
|
1799
|
+
|
|
1800
|
+
/* Shadows are revealed only when there is content to scroll toward, set from the
|
|
1801
|
+
scroll position in elm-table.tsx. */
|
|
1802
|
+
._elm-table-frame_wl7v3_3[data-overflow-start]::before {
|
|
1803
|
+
opacity: 1;
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
._elm-table-frame_wl7v3_3[data-overflow-end]::after {
|
|
1807
|
+
opacity: 1;
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1810
|
+
/* The actual scroller. Mirrors the house pattern from elm-code-block. */
|
|
1811
|
+
._elm-table-scroll_wl7v3_50 {
|
|
1812
|
+
overflow-x: auto;
|
|
1813
|
+
scrollbar-width: thin;
|
|
1814
|
+
scrollbar-color: var(--elmethis-color-primary-weak)
|
|
1815
|
+
var(--elmethis-color-surface-base);
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1818
|
+
._elm-table-scroll_wl7v3_50:focus-visible {
|
|
1819
|
+
outline: 2px solid var(--elmethis-color-primary);
|
|
1820
|
+
outline-offset: 2px;
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1823
|
+
._elm-table_wl7v3_3 {
|
|
1759
1824
|
border-collapse: collapse;
|
|
1760
1825
|
border-spacing: 0;
|
|
1761
1826
|
box-shadow: 0 0 0.125rem rgb(0 0 0 / 20%);
|
|
1762
1827
|
}
|
|
1763
1828
|
|
|
1764
|
-
.
|
|
1829
|
+
._caption_wl7v3_68 {
|
|
1765
1830
|
position: relative;
|
|
1766
1831
|
width: 100%;
|
|
1767
1832
|
display: inline-flex;
|
|
@@ -1771,18 +1836,46 @@
|
|
|
1771
1836
|
margin-block-end: 1rem;
|
|
1772
1837
|
}
|
|
1773
1838
|
|
|
1774
|
-
._caption-
|
|
1839
|
+
._caption-inner_wl7v3_78 {
|
|
1775
1840
|
display: inline-flex;
|
|
1776
1841
|
justify-content: center;
|
|
1777
1842
|
align-items: center;
|
|
1778
1843
|
gap: 0.25rem;
|
|
1779
1844
|
}
|
|
1780
1845
|
|
|
1781
|
-
.
|
|
1846
|
+
._spacing_wl7v3_85 {
|
|
1782
1847
|
flex-grow: 1;
|
|
1783
1848
|
height: 1px;
|
|
1784
1849
|
background-color: rgb(128 128 128 / 20%);
|
|
1785
1850
|
}
|
|
1851
|
+
|
|
1852
|
+
/* Sticky label column. When the first column holds row headers, pin it so the
|
|
1853
|
+
labels stay visible while the data columns scroll. The structural
|
|
1854
|
+
`:first-child` selector targets the lead cell of every row regardless of
|
|
1855
|
+
whether the caller threaded a `columnIndex` prop, and an opaque background
|
|
1856
|
+
(matched to each row's stripe) keeps scrolled cells from bleeding through. */
|
|
1857
|
+
._sticky-row-header_wl7v3_96 :where(thead, tbody) tr > :first-child {
|
|
1858
|
+
position: sticky;
|
|
1859
|
+
inset-inline-start: 0;
|
|
1860
|
+
z-index: 1;
|
|
1861
|
+
box-shadow: 1px 0 0 oklch(from var(--elmethis-color-primary-weak) l c h / 50%);
|
|
1862
|
+
}
|
|
1863
|
+
|
|
1864
|
+
._sticky-row-header_wl7v3_96 thead tr > :first-child {
|
|
1865
|
+
background-color: var(--elmethis-color-surface-sunken);
|
|
1866
|
+
}
|
|
1867
|
+
|
|
1868
|
+
._sticky-row-header_wl7v3_96 tbody tr:nth-child(odd) > :first-child {
|
|
1869
|
+
background-color: var(--elmethis-color-surface-raised);
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
._sticky-row-header_wl7v3_96 tbody tr:nth-child(even) > :first-child {
|
|
1873
|
+
background-color: var(--elmethis-color-surface-base);
|
|
1874
|
+
}
|
|
1875
|
+
|
|
1876
|
+
._sticky-row-header_wl7v3_96 tbody tr:hover > :first-child {
|
|
1877
|
+
background-color: var(--elmethis-color-surface-sunken);
|
|
1878
|
+
}
|
|
1786
1879
|
._elm-table-header_jhft7_1 {
|
|
1787
1880
|
text-align: left;
|
|
1788
1881
|
transition:
|
|
@@ -6,6 +6,7 @@ type Story = StoryObj<ElmTabsProps>;
|
|
|
6
6
|
export declare const Primary: Story;
|
|
7
7
|
export declare const DefaultSelected: Story;
|
|
8
8
|
export declare const Controlled: Story;
|
|
9
|
+
export declare const Scrollable: Story;
|
|
9
10
|
export declare const UncontrolledClickTest: Story;
|
|
10
11
|
export declare const DefaultValueTest: Story;
|
|
11
12
|
export declare const ControlledSignalTest: Story;
|
|
@@ -3,4 +3,11 @@ import { type ElmTableProps } from "./elm-table";
|
|
|
3
3
|
declare const meta: Meta<ElmTableProps>;
|
|
4
4
|
export default meta;
|
|
5
5
|
type Story = StoryObj<ElmTableProps>;
|
|
6
|
+
/**
|
|
7
|
+
* Wide table inside a narrow (mobile-sized) frame. The table scrolls
|
|
8
|
+
* horizontally, edge shadows hint at off-screen columns, and the row-header
|
|
9
|
+
* column stays pinned via `hasRowHeader`. The wrapper becomes a focusable,
|
|
10
|
+
* labeled scroll region while it overflows.
|
|
11
|
+
*/
|
|
12
|
+
export declare const ScrollableWithRowHeader: Story;
|
|
6
13
|
export declare const Primary: Story;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elmethis/qwik",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.31",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -40,27 +40,29 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@eslint/js": "latest",
|
|
42
42
|
"@qwik.dev/core": "2.0.0-beta.36",
|
|
43
|
-
"@storybook/addon-docs": "^10.4.
|
|
43
|
+
"@storybook/addon-docs": "^10.4.6",
|
|
44
44
|
"@types/lodash-es": "^4.17.12",
|
|
45
45
|
"@types/node": "25.7.0",
|
|
46
46
|
"@vitest/browser-playwright": "^4.1.8",
|
|
47
|
+
"@vitest/coverage-istanbul": "^4.1.8",
|
|
48
|
+
"@vitest/coverage-v8": "^4.1.8",
|
|
47
49
|
"@vitest/ui": "^4.1.8",
|
|
48
50
|
"concurrently": "^10.0.3",
|
|
49
|
-
"eslint": "10.
|
|
51
|
+
"eslint": "10.5.0",
|
|
50
52
|
"eslint-plugin-qwik": "2.0.0-beta.37",
|
|
51
53
|
"globals": "17.6.0",
|
|
52
|
-
"happy-dom": "^20.10.
|
|
54
|
+
"happy-dom": "^20.10.4",
|
|
53
55
|
"np": "^11.2.1",
|
|
54
56
|
"playwright": "^1.60.0",
|
|
55
57
|
"prettier": "3.8.4",
|
|
56
|
-
"storybook": "^10.4.
|
|
58
|
+
"storybook": "^10.4.6",
|
|
57
59
|
"storybook-framework-qwik": "0.6.2--canary.95.25602496384.0",
|
|
58
60
|
"stylelint": "^17.13.0",
|
|
59
61
|
"stylelint-config-css-modules": "^4.6.0",
|
|
60
62
|
"stylelint-config-standard": "^40.0.0",
|
|
61
63
|
"stylelint-value-no-unknown-custom-properties": "^6.1.1",
|
|
62
64
|
"typescript": "5.9.3",
|
|
63
|
-
"typescript-eslint": "8.61.
|
|
65
|
+
"typescript-eslint": "8.61.1",
|
|
64
66
|
"undici": "*",
|
|
65
67
|
"vite": "^7",
|
|
66
68
|
"vite-tsconfig-paths": "^6.1.1",
|
|
@@ -83,7 +85,7 @@
|
|
|
83
85
|
"uuid": "^14.0.0",
|
|
84
86
|
"zod": "^3",
|
|
85
87
|
"zod-to-json-schema": "^3.25.2",
|
|
86
|
-
"@elmethis/core": "^0.
|
|
88
|
+
"@elmethis/core": "^0.14.0"
|
|
87
89
|
},
|
|
88
90
|
"peerDependencies": {
|
|
89
91
|
"@qwik.dev/core": ">=2.0.0-beta.31"
|
|
@@ -102,10 +104,12 @@
|
|
|
102
104
|
"start": "vite --open --mode ssr",
|
|
103
105
|
"test": "pnpm run test.unit && pnpm run test.browser",
|
|
104
106
|
"test.unit": "vitest --run",
|
|
107
|
+
"test.coverage": "vitest --run --coverage",
|
|
105
108
|
"test.browser": "vitest --run --config vitest.browser.config.ts",
|
|
109
|
+
"test.coverage.browser": "vitest --run --coverage --config vitest.browser.config.ts",
|
|
106
110
|
"test.build": "pnpm run build && pnpm run build-storybook",
|
|
107
|
-
"check": "concurrently -g \"pnpm:fmt.check\" \"pnpm:lint\" \"pnpm:lint.css\" \"pnpm:build.types\"
|
|
108
|
-
"check.ci": "concurrently -g \"pnpm:check\" \"pnpm:test.build\" \"pnpm:test.browser\"",
|
|
111
|
+
"check": "concurrently -g \"pnpm:fmt.check\" \"pnpm:lint\" \"pnpm:lint.css\" \"pnpm:build.types\"",
|
|
112
|
+
"check.ci": "concurrently -g \"pnpm:check\" \"pnpm:test.build\" \"pnpm:test.unit\" \"pnpm:test.browser\"",
|
|
109
113
|
"qwik": "qwik"
|
|
110
114
|
}
|
|
111
115
|
}
|