@dillingerstaffing/strand-svelte 0.16.1 → 0.17.1
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/CardSection/CardSection.svelte.d.ts +1 -0
- package/dist/components/CardSection/index.d.ts +3 -0
- package/dist/components/CardSection/index.d.ts.map +1 -0
- package/dist/components/ContainerScale/ContainerScale.svelte.d.ts +1 -0
- package/dist/components/ContainerScale/ContainerScaleAxis.svelte.d.ts +1 -0
- package/dist/components/ContainerScale/ContainerScaleBar.svelte.d.ts +1 -0
- package/dist/components/ContainerScale/ContainerScaleCaption.svelte.d.ts +1 -0
- package/dist/components/ContainerScale/ContainerScaleLabel.svelte.d.ts +1 -0
- package/dist/components/ContainerScale/ContainerScalePx.svelte.d.ts +1 -0
- package/dist/components/ContainerScale/ContainerScaleRow.svelte.d.ts +1 -0
- package/dist/components/ContainerScale/ContainerScaleTrack.svelte.d.ts +1 -0
- package/dist/components/ContainerScale/index.d.ts +10 -0
- package/dist/components/ContainerScale/index.d.ts.map +1 -0
- package/dist/components/KvEditorial/KvEditorial.svelte.d.ts +1 -0
- package/dist/components/KvEditorial/index.d.ts +3 -0
- package/dist/components/KvEditorial/index.d.ts.map +1 -0
- package/dist/components/LabFrame/LabFrame.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFrameActions.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFrameBody.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFrameChrome.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFrameContent.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFrameContentHead.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFrameDot.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFrameOverlay.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFramePanel.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFramePanelBody.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFramePanelClose.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFramePanelFooter.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFramePanelHeader.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFramePanelTitle.svelte.d.ts +1 -0
- package/dist/components/LabFrame/LabFrameTitle.svelte.d.ts +1 -0
- package/dist/components/LabFrame/index.d.ts +17 -0
- package/dist/components/LabFrame/index.d.ts.map +1 -0
- package/dist/components/LabGlassStage/LabGlassPanel.svelte.d.ts +1 -0
- package/dist/components/LabGlassStage/LabGlassStage.svelte.d.ts +1 -0
- package/dist/components/LabGlassStage/index.d.ts +4 -0
- package/dist/components/LabGlassStage/index.d.ts.map +1 -0
- package/dist/components/LabRevealStage/LabRevealLine.svelte.d.ts +1 -0
- package/dist/components/LabRevealStage/LabRevealStage.svelte.d.ts +1 -0
- package/dist/components/LabRevealStage/index.d.ts +4 -0
- package/dist/components/LabRevealStage/index.d.ts.map +1 -0
- package/dist/components/LabShell/LabBrand.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabBrandMark.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabBrandSub.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabBrandTitle.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabExample.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabExampleCaption.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabExampleCode.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabExampleDemo.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabExampleLabel.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabExampleMeta.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabHeader.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabHeaderLead.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabHeaderMeta.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabHeaderMetaItem.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabHeaderMetaLabel.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabHeaderMetaValue.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabHeaderTitle.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabMain.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSection.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSectionBody.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSectionHead.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSectionHeadNote.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabShell.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSidebar.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSidebarGroup.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSidebarGroupDot.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSidebarGroupLabel.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSidebarGroupLink.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSidebarGroupList.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSidebarHead.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabSidebarScroll.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabTaxonomy.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabTaxonomyList.svelte.d.ts +1 -0
- package/dist/components/LabShell/LabTaxonomyTitle.svelte.d.ts +1 -0
- package/dist/components/LabShell/index.d.ts +36 -0
- package/dist/components/LabShell/index.d.ts.map +1 -0
- package/dist/components/LabTip/LabTip.svelte.d.ts +1 -0
- package/dist/components/LabTip/LabTipBubble.svelte.d.ts +1 -0
- package/dist/components/LabTip/index.d.ts +4 -0
- package/dist/components/LabTip/index.d.ts.map +1 -0
- package/dist/components/LabUtilCell/LabUtilCell.svelte.d.ts +1 -0
- package/dist/components/LabUtilCell/LabUtilCellBlock.svelte.d.ts +1 -0
- package/dist/components/LabUtilCell/LabUtilCellCaption.svelte.d.ts +1 -0
- package/dist/components/LabUtilCell/LabUtilCellCode.svelte.d.ts +1 -0
- package/dist/components/LabUtilCell/LabUtilCellDemo.svelte.d.ts +1 -0
- package/dist/components/LabUtilCell/LabUtilRow.svelte.d.ts +1 -0
- package/dist/components/LabUtilCell/index.d.ts +8 -0
- package/dist/components/LabUtilCell/index.d.ts.map +1 -0
- package/dist/components/Swatch/Swatch.svelte.d.ts +1 -0
- package/dist/components/Swatch/SwatchGrid.svelte.d.ts +1 -0
- package/dist/components/Swatch/index.d.ts +4 -0
- package/dist/components/Swatch/index.d.ts.map +1 -0
- package/dist/components/TokenSpecimen/TokenSpecimen.svelte.d.ts +1 -0
- package/dist/components/TokenSpecimen/TokenSpecimenBox.svelte.d.ts +1 -0
- package/dist/components/TokenSpecimen/TokenSpecimenGrid.svelte.d.ts +1 -0
- package/dist/components/TokenSpecimen/TokenSpecimenSpacer.svelte.d.ts +1 -0
- package/dist/components/TokenSpecimen/index.d.ts +6 -0
- package/dist/components/TokenSpecimen/index.d.ts.map +1 -0
- package/dist/components/TypeSpecimen/TypeSpecimen.svelte.d.ts +1 -0
- package/dist/components/TypeSpecimen/TypeSpecimenMeta.svelte.d.ts +1 -0
- package/dist/components/TypeSpecimen/index.d.ts +4 -0
- package/dist/components/TypeSpecimen/index.d.ts.map +1 -0
- package/dist/css/strand-ui.css +1312 -82
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3453 -2625
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/CardSection/CardSection.svelte +20 -0
- package/src/components/CardSection/CardSection.test.ts +27 -0
- package/src/components/CardSection/index.ts +2 -0
- package/src/components/ContainerScale/ContainerScale.svelte +4 -0
- package/src/components/ContainerScale/ContainerScale.test.ts +34 -0
- package/src/components/ContainerScale/ContainerScaleAxis.svelte +4 -0
- package/src/components/ContainerScale/ContainerScaleBar.svelte +9 -0
- package/src/components/ContainerScale/ContainerScaleCaption.svelte +4 -0
- package/src/components/ContainerScale/ContainerScaleLabel.svelte +4 -0
- package/src/components/ContainerScale/ContainerScalePx.svelte +4 -0
- package/src/components/ContainerScale/ContainerScaleRow.svelte +4 -0
- package/src/components/ContainerScale/ContainerScaleTrack.svelte +4 -0
- package/src/components/ContainerScale/index.ts +9 -0
- package/src/components/KvEditorial/KvEditorial.svelte +20 -0
- package/src/components/KvEditorial/KvEditorial.test.ts +32 -0
- package/src/components/KvEditorial/index.ts +2 -0
- package/src/components/LabFrame/LabFrame.svelte +4 -0
- package/src/components/LabFrame/LabFrame.test.ts +76 -0
- package/src/components/LabFrame/LabFrameActions.svelte +4 -0
- package/src/components/LabFrame/LabFrameBody.svelte +4 -0
- package/src/components/LabFrame/LabFrameChrome.svelte +4 -0
- package/src/components/LabFrame/LabFrameContent.svelte +12 -0
- package/src/components/LabFrame/LabFrameContentHead.svelte +4 -0
- package/src/components/LabFrame/LabFrameDot.svelte +7 -0
- package/src/components/LabFrame/LabFrameOverlay.svelte +4 -0
- package/src/components/LabFrame/LabFramePanel.svelte +4 -0
- package/src/components/LabFrame/LabFramePanelBody.svelte +4 -0
- package/src/components/LabFrame/LabFramePanelClose.svelte +8 -0
- package/src/components/LabFrame/LabFramePanelFooter.svelte +4 -0
- package/src/components/LabFrame/LabFramePanelHeader.svelte +4 -0
- package/src/components/LabFrame/LabFramePanelTitle.svelte +4 -0
- package/src/components/LabFrame/LabFrameTitle.svelte +4 -0
- package/src/components/LabFrame/index.ts +16 -0
- package/src/components/LabGlassStage/LabGlassPanel.svelte +4 -0
- package/src/components/LabGlassStage/LabGlassStage.svelte +4 -0
- package/src/components/LabGlassStage/LabGlassStage.test.ts +18 -0
- package/src/components/LabGlassStage/index.ts +3 -0
- package/src/components/LabRevealStage/LabRevealLine.svelte +4 -0
- package/src/components/LabRevealStage/LabRevealStage.svelte +4 -0
- package/src/components/LabRevealStage/LabRevealStage.test.ts +18 -0
- package/src/components/LabRevealStage/index.ts +3 -0
- package/src/components/LabShell/LabBrand.svelte +4 -0
- package/src/components/LabShell/LabBrandMark.svelte +4 -0
- package/src/components/LabShell/LabBrandSub.svelte +4 -0
- package/src/components/LabShell/LabBrandTitle.svelte +4 -0
- package/src/components/LabShell/LabExample.svelte +4 -0
- package/src/components/LabShell/LabExampleCaption.svelte +4 -0
- package/src/components/LabShell/LabExampleCode.svelte +4 -0
- package/src/components/LabShell/LabExampleDemo.svelte +15 -0
- package/src/components/LabShell/LabExampleLabel.svelte +4 -0
- package/src/components/LabShell/LabExampleMeta.svelte +4 -0
- package/src/components/LabShell/LabHeader.svelte +4 -0
- package/src/components/LabShell/LabHeaderLead.svelte +4 -0
- package/src/components/LabShell/LabHeaderMeta.svelte +4 -0
- package/src/components/LabShell/LabHeaderMetaItem.svelte +4 -0
- package/src/components/LabShell/LabHeaderMetaLabel.svelte +4 -0
- package/src/components/LabShell/LabHeaderMetaValue.svelte +4 -0
- package/src/components/LabShell/LabHeaderTitle.svelte +4 -0
- package/src/components/LabShell/LabMain.svelte +4 -0
- package/src/components/LabShell/LabSection.svelte +4 -0
- package/src/components/LabShell/LabSectionBody.svelte +4 -0
- package/src/components/LabShell/LabSectionHead.svelte +4 -0
- package/src/components/LabShell/LabSectionHeadNote.svelte +4 -0
- package/src/components/LabShell/LabShell.svelte +4 -0
- package/src/components/LabShell/LabShell.test.ts +148 -0
- package/src/components/LabShell/LabSidebar.svelte +4 -0
- package/src/components/LabShell/LabSidebarGroup.svelte +4 -0
- package/src/components/LabShell/LabSidebarGroupDot.svelte +2 -0
- package/src/components/LabShell/LabSidebarGroupLabel.svelte +4 -0
- package/src/components/LabShell/LabSidebarGroupLink.svelte +9 -0
- package/src/components/LabShell/LabSidebarGroupList.svelte +4 -0
- package/src/components/LabShell/LabSidebarHead.svelte +4 -0
- package/src/components/LabShell/LabSidebarScroll.svelte +4 -0
- package/src/components/LabShell/LabTaxonomy.svelte +4 -0
- package/src/components/LabShell/LabTaxonomyList.svelte +4 -0
- package/src/components/LabShell/LabTaxonomyTitle.svelte +4 -0
- package/src/components/LabShell/index.ts +35 -0
- package/src/components/LabTip/LabTip.svelte +11 -0
- package/src/components/LabTip/LabTip.test.ts +35 -0
- package/src/components/LabTip/LabTipBubble.svelte +12 -0
- package/src/components/LabTip/index.ts +3 -0
- package/src/components/LabUtilCell/LabUtilCell.svelte +4 -0
- package/src/components/LabUtilCell/LabUtilCell.test.ts +27 -0
- package/src/components/LabUtilCell/LabUtilCellBlock.svelte +4 -0
- package/src/components/LabUtilCell/LabUtilCellCaption.svelte +4 -0
- package/src/components/LabUtilCell/LabUtilCellCode.svelte +4 -0
- package/src/components/LabUtilCell/LabUtilCellDemo.svelte +4 -0
- package/src/components/LabUtilCell/LabUtilRow.svelte +4 -0
- package/src/components/LabUtilCell/index.ts +7 -0
- package/src/components/Swatch/Swatch.svelte +12 -0
- package/src/components/Swatch/Swatch.test.ts +31 -0
- package/src/components/Swatch/SwatchGrid.svelte +4 -0
- package/src/components/Swatch/index.ts +3 -0
- package/src/components/TokenSpecimen/TokenSpecimen.svelte +4 -0
- package/src/components/TokenSpecimen/TokenSpecimen.test.ts +42 -0
- package/src/components/TokenSpecimen/TokenSpecimenBox.svelte +11 -0
- package/src/components/TokenSpecimen/TokenSpecimenGrid.svelte +4 -0
- package/src/components/TokenSpecimen/TokenSpecimenSpacer.svelte +8 -0
- package/src/components/TokenSpecimen/index.ts +5 -0
- package/src/components/TypeSpecimen/TypeSpecimen.svelte +4 -0
- package/src/components/TypeSpecimen/TypeSpecimen.test.ts +18 -0
- package/src/components/TypeSpecimen/TypeSpecimenMeta.svelte +4 -0
- package/src/components/TypeSpecimen/index.ts +3 -0
- package/src/index.ts +18 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect } from 'vitest'
|
|
4
|
+
import { render } from '@testing-library/svelte'
|
|
5
|
+
import LabShell from './LabShell.svelte'
|
|
6
|
+
import LabSidebar from './LabSidebar.svelte'
|
|
7
|
+
import LabSidebarHead from './LabSidebarHead.svelte'
|
|
8
|
+
import LabSidebarScroll from './LabSidebarScroll.svelte'
|
|
9
|
+
import LabBrand from './LabBrand.svelte'
|
|
10
|
+
import LabBrandMark from './LabBrandMark.svelte'
|
|
11
|
+
import LabBrandTitle from './LabBrandTitle.svelte'
|
|
12
|
+
import LabBrandSub from './LabBrandSub.svelte'
|
|
13
|
+
import LabSidebarGroup from './LabSidebarGroup.svelte'
|
|
14
|
+
import LabSidebarGroupLabel from './LabSidebarGroupLabel.svelte'
|
|
15
|
+
import LabSidebarGroupList from './LabSidebarGroupList.svelte'
|
|
16
|
+
import LabSidebarGroupLink from './LabSidebarGroupLink.svelte'
|
|
17
|
+
import LabSidebarGroupDot from './LabSidebarGroupDot.svelte'
|
|
18
|
+
import LabMain from './LabMain.svelte'
|
|
19
|
+
import LabHeader from './LabHeader.svelte'
|
|
20
|
+
import LabHeaderTitle from './LabHeaderTitle.svelte'
|
|
21
|
+
import LabHeaderLead from './LabHeaderLead.svelte'
|
|
22
|
+
import LabHeaderMeta from './LabHeaderMeta.svelte'
|
|
23
|
+
import LabHeaderMetaItem from './LabHeaderMetaItem.svelte'
|
|
24
|
+
import LabHeaderMetaLabel from './LabHeaderMetaLabel.svelte'
|
|
25
|
+
import LabHeaderMetaValue from './LabHeaderMetaValue.svelte'
|
|
26
|
+
import LabTaxonomy from './LabTaxonomy.svelte'
|
|
27
|
+
import LabTaxonomyTitle from './LabTaxonomyTitle.svelte'
|
|
28
|
+
import LabTaxonomyList from './LabTaxonomyList.svelte'
|
|
29
|
+
import LabSection from './LabSection.svelte'
|
|
30
|
+
import LabSectionHead from './LabSectionHead.svelte'
|
|
31
|
+
import LabSectionHeadNote from './LabSectionHeadNote.svelte'
|
|
32
|
+
import LabSectionBody from './LabSectionBody.svelte'
|
|
33
|
+
import LabExample from './LabExample.svelte'
|
|
34
|
+
import LabExampleMeta from './LabExampleMeta.svelte'
|
|
35
|
+
import LabExampleLabel from './LabExampleLabel.svelte'
|
|
36
|
+
import LabExampleCode from './LabExampleCode.svelte'
|
|
37
|
+
import LabExampleDemo from './LabExampleDemo.svelte'
|
|
38
|
+
import LabExampleCaption from './LabExampleCaption.svelte'
|
|
39
|
+
|
|
40
|
+
describe('LabShell family (Svelte)', () => {
|
|
41
|
+
it('LabShell base class', () => {
|
|
42
|
+
const { container } = render(LabShell)
|
|
43
|
+
expect(container.querySelector('.strand-ref-shell')).toBeInTheDocument()
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
it('LabSidebar renders aside', () => {
|
|
47
|
+
const { container } = render(LabSidebar)
|
|
48
|
+
expect(container.querySelector('aside.strand-ref-shell__sidebar')).toBeInTheDocument()
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
it('sidebar parts render with scoped classes', () => {
|
|
52
|
+
expect(
|
|
53
|
+
render(LabSidebarHead).container.querySelector('.strand-ref-shell__sidebar-head'),
|
|
54
|
+
).toBeInTheDocument()
|
|
55
|
+
expect(
|
|
56
|
+
render(LabSidebarScroll).container.querySelector('.strand-ref-shell__sidebar-scroll'),
|
|
57
|
+
).toBeInTheDocument()
|
|
58
|
+
expect(
|
|
59
|
+
render(LabBrand).container.querySelector('.strand-ref-shell__brand'),
|
|
60
|
+
).toBeInTheDocument()
|
|
61
|
+
expect(
|
|
62
|
+
render(LabBrandMark).container.querySelector('.strand-ref-shell__brand-mark'),
|
|
63
|
+
).toBeInTheDocument()
|
|
64
|
+
expect(
|
|
65
|
+
render(LabBrandTitle).container.querySelector('.strand-ref-shell__brand-title'),
|
|
66
|
+
).toBeInTheDocument()
|
|
67
|
+
expect(
|
|
68
|
+
render(LabBrandSub).container.querySelector('.strand-ref-shell__brand-sub'),
|
|
69
|
+
).toBeInTheDocument()
|
|
70
|
+
expect(
|
|
71
|
+
render(LabSidebarGroup).container.querySelector('.strand-ref-shell__group'),
|
|
72
|
+
).toBeInTheDocument()
|
|
73
|
+
expect(
|
|
74
|
+
render(LabSidebarGroupLabel).container.querySelector(
|
|
75
|
+
'.strand-ref-shell__group-label',
|
|
76
|
+
),
|
|
77
|
+
).toBeInTheDocument()
|
|
78
|
+
expect(
|
|
79
|
+
render(LabSidebarGroupList).container.querySelector(
|
|
80
|
+
'nav.strand-ref-shell__group-list',
|
|
81
|
+
),
|
|
82
|
+
).toBeInTheDocument()
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
it('sidebar link renders anchor with dot and href', () => {
|
|
86
|
+
const { container } = render(LabSidebarGroupLink, { props: { href: '#x' } })
|
|
87
|
+
const a = container.querySelector('a.strand-ref-shell__group-link') as HTMLAnchorElement
|
|
88
|
+
expect(a).toBeInTheDocument()
|
|
89
|
+
expect(a.getAttribute('href')).toBe('#x')
|
|
90
|
+
expect(a.querySelector('.strand-ref-shell__group-dot')).toBeInTheDocument()
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
it('sidebar dot renders standalone', () => {
|
|
94
|
+
const { container } = render(LabSidebarGroupDot)
|
|
95
|
+
expect(container.querySelector('span.strand-ref-shell__group-dot')).toBeInTheDocument()
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
it('LabMain renders main', () => {
|
|
99
|
+
const { container } = render(LabMain)
|
|
100
|
+
expect(container.querySelector('main.strand-ref-shell__main')).toBeInTheDocument()
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
it('LabHeader family renders correct tags', () => {
|
|
104
|
+
expect(render(LabHeader).container.querySelector('header.strand-ref-header')).toBeInTheDocument()
|
|
105
|
+
expect(render(LabHeaderTitle).container.querySelector('h1.strand-ref-header__title')).toBeInTheDocument()
|
|
106
|
+
expect(render(LabHeaderLead).container.querySelector('p.strand-ref-header__lead')).toBeInTheDocument()
|
|
107
|
+
expect(render(LabHeaderMeta).container.querySelector('.strand-ref-header__meta')).toBeInTheDocument()
|
|
108
|
+
expect(render(LabHeaderMetaItem).container.querySelector('.strand-ref-header__meta-item')).toBeInTheDocument()
|
|
109
|
+
expect(render(LabHeaderMetaLabel).container.querySelector('span.strand-ref-header__meta-label')).toBeInTheDocument()
|
|
110
|
+
expect(render(LabHeaderMetaValue).container.querySelector('span.strand-ref-header__meta-value')).toBeInTheDocument()
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
it('LabTaxonomy family renders correct tags', () => {
|
|
114
|
+
expect(render(LabTaxonomy).container.querySelector('.strand-ref-taxonomy')).toBeInTheDocument()
|
|
115
|
+
expect(render(LabTaxonomyTitle).container.querySelector('span.strand-ref-taxonomy__title')).toBeInTheDocument()
|
|
116
|
+
expect(render(LabTaxonomyList).container.querySelector('dl.strand-ref-taxonomy__list')).toBeInTheDocument()
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
it('LabSection family renders correct tags', () => {
|
|
120
|
+
expect(render(LabSection).container.querySelector('section.strand-ref-section')).toBeInTheDocument()
|
|
121
|
+
expect(render(LabSectionHead).container.querySelector('.strand-ref-section__head')).toBeInTheDocument()
|
|
122
|
+
expect(render(LabSectionHeadNote).container.querySelector('span.strand-ref-section__head-note')).toBeInTheDocument()
|
|
123
|
+
expect(render(LabSectionBody).container.querySelector('.strand-ref-section__body')).toBeInTheDocument()
|
|
124
|
+
})
|
|
125
|
+
|
|
126
|
+
it('LabExample family renders correct tags', () => {
|
|
127
|
+
expect(render(LabExample).container.querySelector('.strand-ref-example')).toBeInTheDocument()
|
|
128
|
+
expect(render(LabExampleMeta).container.querySelector('.strand-ref-example__meta')).toBeInTheDocument()
|
|
129
|
+
expect(render(LabExampleLabel).container.querySelector('span.strand-ref-example__label')).toBeInTheDocument()
|
|
130
|
+
expect(render(LabExampleCode).container.querySelector('span.strand-ref-example__code')).toBeInTheDocument()
|
|
131
|
+
expect(render(LabExampleDemo).container.querySelector('.strand-ref-example__demo')).toBeInTheDocument()
|
|
132
|
+
expect(render(LabExampleCaption).container.querySelector('p.strand-ref-example__caption')).toBeInTheDocument()
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
it('LabExampleDemo applies --pad-none modifier', () => {
|
|
136
|
+
const { container } = render(LabExampleDemo, { props: { padNone: true } })
|
|
137
|
+
expect(container.querySelector('.strand-ref-example__demo')).toHaveClass(
|
|
138
|
+
'strand-ref-example__demo--pad-none',
|
|
139
|
+
)
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
it('LabExampleDemo applies --recessed modifier', () => {
|
|
143
|
+
const { container } = render(LabExampleDemo, { props: { recessed: true } })
|
|
144
|
+
expect(container.querySelector('.strand-ref-example__demo')).toHaveClass(
|
|
145
|
+
'strand-ref-example__demo--recessed',
|
|
146
|
+
)
|
|
147
|
+
})
|
|
148
|
+
})
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<!--! Strand Svelte | MIT License | dillingerstaffing.com -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
export let href: string = '#'
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<a class="strand-ref-shell__group-link" {href} {...$$restProps}>
|
|
7
|
+
<span class="strand-ref-shell__group-dot"></span>
|
|
8
|
+
<slot />
|
|
9
|
+
</a>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
export { default as LabShell } from './LabShell.svelte'
|
|
3
|
+
export { default as LabSidebar } from './LabSidebar.svelte'
|
|
4
|
+
export { default as LabSidebarHead } from './LabSidebarHead.svelte'
|
|
5
|
+
export { default as LabSidebarScroll } from './LabSidebarScroll.svelte'
|
|
6
|
+
export { default as LabBrand } from './LabBrand.svelte'
|
|
7
|
+
export { default as LabBrandMark } from './LabBrandMark.svelte'
|
|
8
|
+
export { default as LabBrandTitle } from './LabBrandTitle.svelte'
|
|
9
|
+
export { default as LabBrandSub } from './LabBrandSub.svelte'
|
|
10
|
+
export { default as LabSidebarGroup } from './LabSidebarGroup.svelte'
|
|
11
|
+
export { default as LabSidebarGroupLabel } from './LabSidebarGroupLabel.svelte'
|
|
12
|
+
export { default as LabSidebarGroupList } from './LabSidebarGroupList.svelte'
|
|
13
|
+
export { default as LabSidebarGroupLink } from './LabSidebarGroupLink.svelte'
|
|
14
|
+
export { default as LabSidebarGroupDot } from './LabSidebarGroupDot.svelte'
|
|
15
|
+
export { default as LabMain } from './LabMain.svelte'
|
|
16
|
+
export { default as LabHeader } from './LabHeader.svelte'
|
|
17
|
+
export { default as LabHeaderTitle } from './LabHeaderTitle.svelte'
|
|
18
|
+
export { default as LabHeaderLead } from './LabHeaderLead.svelte'
|
|
19
|
+
export { default as LabHeaderMeta } from './LabHeaderMeta.svelte'
|
|
20
|
+
export { default as LabHeaderMetaItem } from './LabHeaderMetaItem.svelte'
|
|
21
|
+
export { default as LabHeaderMetaLabel } from './LabHeaderMetaLabel.svelte'
|
|
22
|
+
export { default as LabHeaderMetaValue } from './LabHeaderMetaValue.svelte'
|
|
23
|
+
export { default as LabTaxonomy } from './LabTaxonomy.svelte'
|
|
24
|
+
export { default as LabTaxonomyTitle } from './LabTaxonomyTitle.svelte'
|
|
25
|
+
export { default as LabTaxonomyList } from './LabTaxonomyList.svelte'
|
|
26
|
+
export { default as LabSection } from './LabSection.svelte'
|
|
27
|
+
export { default as LabSectionHead } from './LabSectionHead.svelte'
|
|
28
|
+
export { default as LabSectionHeadNote } from './LabSectionHeadNote.svelte'
|
|
29
|
+
export { default as LabSectionBody } from './LabSectionBody.svelte'
|
|
30
|
+
export { default as LabExample } from './LabExample.svelte'
|
|
31
|
+
export { default as LabExampleMeta } from './LabExampleMeta.svelte'
|
|
32
|
+
export { default as LabExampleLabel } from './LabExampleLabel.svelte'
|
|
33
|
+
export { default as LabExampleCode } from './LabExampleCode.svelte'
|
|
34
|
+
export { default as LabExampleDemo } from './LabExampleDemo.svelte'
|
|
35
|
+
export { default as LabExampleCaption } from './LabExampleCaption.svelte'
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<!--! Strand Svelte | MIT License | dillingerstaffing.com -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
export let pinned: boolean = false
|
|
4
|
+
$: classes = ['strand-ref-tip', pinned ? 'strand-ref-tip--pinned' : '']
|
|
5
|
+
.filter(Boolean)
|
|
6
|
+
.join(' ')
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<span class={classes} {...$$restProps}>
|
|
10
|
+
<slot />
|
|
11
|
+
</span>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect } from 'vitest'
|
|
4
|
+
import { render } from '@testing-library/svelte'
|
|
5
|
+
import LabTip from './LabTip.svelte'
|
|
6
|
+
import LabTipBubble from './LabTipBubble.svelte'
|
|
7
|
+
|
|
8
|
+
describe('LabTip (Svelte)', () => {
|
|
9
|
+
it('Tip base class', () => {
|
|
10
|
+
const { container } = render(LabTip)
|
|
11
|
+
expect(container.querySelector('.strand-ref-tip')).toBeInTheDocument()
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
it('Tip pinned modifier', () => {
|
|
15
|
+
const { container } = render(LabTip, { props: { pinned: true } })
|
|
16
|
+
expect(container.querySelector('.strand-ref-tip')).toHaveClass('strand-ref-tip--pinned')
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
it('Bubble default placement top', () => {
|
|
20
|
+
const { container } = render(LabTipBubble)
|
|
21
|
+
expect(container.querySelector('.strand-ref-tip__bubble')).toHaveClass('strand-ref-tip__bubble--top')
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
it('Bubble placements', () => {
|
|
25
|
+
for (const p of ['top', 'bottom', 'left', 'right'] as const) {
|
|
26
|
+
const { container } = render(LabTipBubble, { props: { placement: p } })
|
|
27
|
+
expect(container.querySelector('.strand-ref-tip__bubble')).toHaveClass(`strand-ref-tip__bubble--${p}`)
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
it('Bubble role=tooltip', () => {
|
|
32
|
+
const { container } = render(LabTipBubble)
|
|
33
|
+
expect(container.querySelector('.strand-ref-tip__bubble')?.getAttribute('role')).toBe('tooltip')
|
|
34
|
+
})
|
|
35
|
+
})
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!--! Strand Svelte | MIT License | dillingerstaffing.com -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
type Placement = 'top' | 'bottom' | 'left' | 'right'
|
|
4
|
+
export let placement: Placement = 'top'
|
|
5
|
+
$: classes = ['strand-ref-tip__bubble', `strand-ref-tip__bubble--${placement}`]
|
|
6
|
+
.filter(Boolean)
|
|
7
|
+
.join(' ')
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<span class={classes} role="tooltip" {...$$restProps}>
|
|
11
|
+
<slot />
|
|
12
|
+
</span>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect } from 'vitest'
|
|
4
|
+
import { render } from '@testing-library/svelte'
|
|
5
|
+
import LabUtilRow from './LabUtilRow.svelte'
|
|
6
|
+
import LabUtilCell from './LabUtilCell.svelte'
|
|
7
|
+
import LabUtilCellCode from './LabUtilCellCode.svelte'
|
|
8
|
+
import LabUtilCellCaption from './LabUtilCellCaption.svelte'
|
|
9
|
+
import LabUtilCellDemo from './LabUtilCellDemo.svelte'
|
|
10
|
+
import LabUtilCellBlock from './LabUtilCellBlock.svelte'
|
|
11
|
+
|
|
12
|
+
describe('LabUtilCell family (Svelte)', () => {
|
|
13
|
+
const cases: Array<[any, string]> = [
|
|
14
|
+
[LabUtilRow, 'strand-ref-util-row'],
|
|
15
|
+
[LabUtilCell, 'strand-ref-util-cell'],
|
|
16
|
+
[LabUtilCellCode, 'strand-ref-util-cell__code'],
|
|
17
|
+
[LabUtilCellCaption, 'strand-ref-util-cell__caption'],
|
|
18
|
+
[LabUtilCellDemo, 'strand-ref-util-cell__demo'],
|
|
19
|
+
[LabUtilCellBlock, 'strand-ref-util-cell__block'],
|
|
20
|
+
]
|
|
21
|
+
for (const [C, cls] of cases) {
|
|
22
|
+
it(`${cls} renders with base class`, () => {
|
|
23
|
+
const { container } = render(C)
|
|
24
|
+
expect(container.querySelector(`.${cls}`)).toBeInTheDocument()
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
})
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
export { default as LabUtilRow } from './LabUtilRow.svelte'
|
|
3
|
+
export { default as LabUtilCell } from './LabUtilCell.svelte'
|
|
4
|
+
export { default as LabUtilCellCode } from './LabUtilCellCode.svelte'
|
|
5
|
+
export { default as LabUtilCellCaption } from './LabUtilCellCaption.svelte'
|
|
6
|
+
export { default as LabUtilCellDemo } from './LabUtilCellDemo.svelte'
|
|
7
|
+
export { default as LabUtilCellBlock } from './LabUtilCellBlock.svelte'
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!--! Strand Svelte | MIT License | dillingerstaffing.com -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
export let name: string
|
|
4
|
+
export let hex: string
|
|
5
|
+
export let background: string
|
|
6
|
+
export let color: string
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<div class="strand-swatch" style="background: {background}; color: {color};" {...$$restProps}>
|
|
10
|
+
<span class="strand-swatch__name">{name}</span>
|
|
11
|
+
<span class="strand-swatch__hex">{hex}</span>
|
|
12
|
+
</div>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect } from 'vitest'
|
|
4
|
+
import { render } from '@testing-library/svelte'
|
|
5
|
+
import Swatch from './Swatch.svelte'
|
|
6
|
+
import SwatchGrid from './SwatchGrid.svelte'
|
|
7
|
+
|
|
8
|
+
describe('Swatch (Svelte)', () => {
|
|
9
|
+
it('SwatchGrid base class', () => {
|
|
10
|
+
const { container } = render(SwatchGrid)
|
|
11
|
+
expect(container.querySelector('.strand-swatch-grid')).toBeInTheDocument()
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
it('Swatch renders name and hex', () => {
|
|
15
|
+
const { container, getByText } = render(Swatch, {
|
|
16
|
+
props: { name: 'blue', hex: '#fff', background: '#fff', color: '#000' },
|
|
17
|
+
})
|
|
18
|
+
expect(container.querySelector('.strand-swatch')).toBeInTheDocument()
|
|
19
|
+
expect(getByText('blue')).toBeInTheDocument()
|
|
20
|
+
expect(getByText('#fff')).toBeInTheDocument()
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
it('Swatch applies inline background/color', () => {
|
|
24
|
+
const { container } = render(Swatch, {
|
|
25
|
+
props: { name: 'a', hex: '#fff', background: 'rgb(1, 2, 3)', color: '#fff' },
|
|
26
|
+
})
|
|
27
|
+
const el = container.querySelector('.strand-swatch') as HTMLElement
|
|
28
|
+
expect(el.style.background).toContain('rgb(1, 2, 3)')
|
|
29
|
+
expect(el.style.color).toBe('rgb(255, 255, 255)')
|
|
30
|
+
})
|
|
31
|
+
})
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect } from 'vitest'
|
|
4
|
+
import { render } from '@testing-library/svelte'
|
|
5
|
+
import TokenSpecimen from './TokenSpecimen.svelte'
|
|
6
|
+
import TokenSpecimenGrid from './TokenSpecimenGrid.svelte'
|
|
7
|
+
import TokenSpecimenSpacer from './TokenSpecimenSpacer.svelte'
|
|
8
|
+
import TokenSpecimenBox from './TokenSpecimenBox.svelte'
|
|
9
|
+
|
|
10
|
+
describe('TokenSpecimen (Svelte)', () => {
|
|
11
|
+
it('Grid base class', () => {
|
|
12
|
+
const { container } = render(TokenSpecimenGrid)
|
|
13
|
+
expect(container.querySelector('.strand-token-specimen-grid')).toBeInTheDocument()
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
it('Specimen base class', () => {
|
|
17
|
+
const { container } = render(TokenSpecimen)
|
|
18
|
+
expect(container.querySelector('.strand-token-specimen')).toBeInTheDocument()
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it('Spacer width string', () => {
|
|
22
|
+
const { container } = render(TokenSpecimenSpacer, { props: { width: '48px' } })
|
|
23
|
+
const el = container.querySelector('.strand-token-specimen__spacer') as HTMLElement
|
|
24
|
+
expect(el).toBeInTheDocument()
|
|
25
|
+
expect(el.style.width).toBe('48px')
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
it('Spacer width numeric', () => {
|
|
29
|
+
const { container } = render(TokenSpecimenSpacer, { props: { width: 48 } })
|
|
30
|
+
const el = container.querySelector('.strand-token-specimen__spacer') as HTMLElement
|
|
31
|
+
expect(el.style.width).toBe('48px')
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('Box radius + shadow', () => {
|
|
35
|
+
const { container } = render(TokenSpecimenBox, {
|
|
36
|
+
props: { radius: '8px', shadow: '0 4px 12px rgba(0,0,0,0.1)' },
|
|
37
|
+
})
|
|
38
|
+
const el = container.querySelector('.strand-token-specimen__box') as HTMLElement
|
|
39
|
+
expect(el.style.borderRadius).toBe('8px')
|
|
40
|
+
expect(el.style.boxShadow).toContain('rgba(0,0,0,0.1)')
|
|
41
|
+
})
|
|
42
|
+
})
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<!--! Strand Svelte | MIT License | dillingerstaffing.com -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
export let radius: string | undefined = undefined
|
|
4
|
+
export let shadow: string | undefined = undefined
|
|
5
|
+
$: styleAttr = [
|
|
6
|
+
radius ? `border-radius: ${radius};` : '',
|
|
7
|
+
shadow ? `box-shadow: ${shadow};` : '',
|
|
8
|
+
].filter(Boolean).join(' ')
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<span class="strand-token-specimen__box" style={styleAttr} {...$$restProps}></span>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<!--! Strand Svelte | MIT License | dillingerstaffing.com -->
|
|
2
|
+
<script lang="ts">
|
|
3
|
+
export let width: string | number | undefined = undefined
|
|
4
|
+
$: w = typeof width === 'number' ? `${width}px` : width
|
|
5
|
+
$: styleAttr = w ? `width: ${w};` : ''
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<span class="strand-token-specimen__spacer" style={styleAttr} {...$$restProps}></span>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
export { default as TokenSpecimen } from './TokenSpecimen.svelte'
|
|
3
|
+
export { default as TokenSpecimenGrid } from './TokenSpecimenGrid.svelte'
|
|
4
|
+
export { default as TokenSpecimenSpacer } from './TokenSpecimenSpacer.svelte'
|
|
5
|
+
export { default as TokenSpecimenBox } from './TokenSpecimenBox.svelte'
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*! Strand Svelte | MIT License | dillingerstaffing.com */
|
|
2
|
+
|
|
3
|
+
import { describe, it, expect } from 'vitest'
|
|
4
|
+
import { render } from '@testing-library/svelte'
|
|
5
|
+
import TypeSpecimen from './TypeSpecimen.svelte'
|
|
6
|
+
import TypeSpecimenMeta from './TypeSpecimenMeta.svelte'
|
|
7
|
+
|
|
8
|
+
describe('TypeSpecimen (Svelte)', () => {
|
|
9
|
+
it('base class', () => {
|
|
10
|
+
const { container } = render(TypeSpecimen)
|
|
11
|
+
expect(container.querySelector('.strand-type-specimen')).toBeInTheDocument()
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
it('Meta span + base class', () => {
|
|
15
|
+
const { container } = render(TypeSpecimenMeta)
|
|
16
|
+
expect(container.querySelector('span.strand-type-specimen__meta')).toBeInTheDocument()
|
|
17
|
+
})
|
|
18
|
+
})
|
package/src/index.ts
CHANGED
|
@@ -47,3 +47,21 @@ export { default as Progress } from './components/Progress/Progress.svelte'
|
|
|
47
47
|
export { default as Spinner } from './components/Spinner/Spinner.svelte'
|
|
48
48
|
export { default as Skeleton } from './components/Skeleton/Skeleton.svelte'
|
|
49
49
|
export { default as StarRating } from './components/StarRating/StarRating.svelte'
|
|
50
|
+
|
|
51
|
+
// Composition helpers
|
|
52
|
+
export { default as CardSection } from './components/CardSection/CardSection.svelte'
|
|
53
|
+
export { default as KvEditorial } from './components/KvEditorial/KvEditorial.svelte'
|
|
54
|
+
|
|
55
|
+
// Component-reference page chrome (strand-ref-* family)
|
|
56
|
+
export * from './components/LabShell/index'
|
|
57
|
+
export * from './components/LabFrame/index'
|
|
58
|
+
export * from './components/LabGlassStage/index'
|
|
59
|
+
export * from './components/LabRevealStage/index'
|
|
60
|
+
export * from './components/LabTip/index'
|
|
61
|
+
export * from './components/LabUtilCell/index'
|
|
62
|
+
|
|
63
|
+
// Spec-visualizer primitives
|
|
64
|
+
export * from './components/Swatch/index'
|
|
65
|
+
export * from './components/TypeSpecimen/index'
|
|
66
|
+
export * from './components/TokenSpecimen/index'
|
|
67
|
+
export * from './components/ContainerScale/index'
|