@tetherto/dev-websites-core 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/README.md +62 -9
- package/dist/cms/index.d.mts +3 -0
- package/dist/cms/index.mjs +3 -0
- package/dist/cms.mjs +1419 -0
- package/dist/cms.mjs.map +1 -0
- package/dist/i18n/index.d.mts +2 -0
- package/dist/i18n/index.mjs +2 -0
- package/dist/i18n.mjs +10 -0
- package/dist/i18n.mjs.map +1 -0
- package/dist/index.d.mts +214 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +7 -0
- package/dist/index2.d.mts +8 -0
- package/dist/index2.d.mts.map +1 -0
- package/dist/index3.d.mts +63 -0
- package/dist/index3.d.mts.map +1 -0
- package/dist/index4.d.mts +23 -0
- package/dist/index4.d.mts.map +1 -0
- package/dist/index5.d.mts +6 -0
- package/dist/logger.mjs +44 -0
- package/dist/logger.mjs.map +1 -0
- package/dist/readMediaBuffer.d.mts +15 -0
- package/dist/readMediaBuffer.d.mts.map +1 -0
- package/dist/readMediaBuffer.mjs +62 -0
- package/dist/readMediaBuffer.mjs.map +1 -0
- package/dist/seo/index.d.mts +2 -0
- package/dist/seo/index.mjs +2 -0
- package/dist/seo.mjs +124 -0
- package/dist/seo.mjs.map +1 -0
- package/dist/ui/a11y/focus.d.mts +6 -0
- package/dist/ui/a11y/focus.d.mts.map +1 -0
- package/dist/ui/a11y/focus.mjs +7 -0
- package/dist/ui/a11y/focus.mjs.map +1 -0
- package/dist/ui/a11y/index.d.mts +4 -0
- package/dist/ui/a11y/index.mjs +4 -0
- package/dist/ui/carousel/index.d.mts +3 -0
- package/dist/ui/carousel/index.mjs +3 -0
- package/dist/ui/components/Accordion/Accordion.d.mts +16 -0
- package/dist/ui/components/Accordion/Accordion.d.mts.map +1 -0
- package/dist/ui/components/Accordion/Accordion.mjs +51 -0
- package/dist/ui/components/Accordion/Accordion.mjs.map +1 -0
- package/dist/ui/components/Accordion/index.d.mts +2 -0
- package/dist/ui/components/Accordion/index.mjs +2 -0
- package/dist/ui/components/Avatar/Avatar.d.mts +9 -0
- package/dist/ui/components/Avatar/Avatar.d.mts.map +1 -0
- package/dist/ui/components/Avatar/Avatar.mjs +15 -0
- package/dist/ui/components/Avatar/Avatar.mjs.map +1 -0
- package/dist/ui/components/Avatar/index.d.mts +2 -0
- package/dist/ui/components/Avatar/index.mjs +2 -0
- package/dist/ui/components/Badge/Badge.d.mts +14 -0
- package/dist/ui/components/Badge/Badge.d.mts.map +1 -0
- package/dist/ui/components/Badge/Badge.mjs +30 -0
- package/dist/ui/components/Badge/Badge.mjs.map +1 -0
- package/dist/ui/components/Badge/index.d.mts +2 -0
- package/dist/ui/components/Badge/index.mjs +2 -0
- package/dist/ui/components/BadgeVersion/BadgeVersion.d.mts +24 -0
- package/dist/ui/components/BadgeVersion/BadgeVersion.d.mts.map +1 -0
- package/dist/ui/components/BadgeVersion/BadgeVersion.mjs +66 -0
- package/dist/ui/components/BadgeVersion/BadgeVersion.mjs.map +1 -0
- package/dist/ui/components/BadgeVersion/index.d.mts +2 -0
- package/dist/ui/components/BadgeVersion/index.mjs +2 -0
- package/dist/ui/components/Button/Button.d.mts +14 -0
- package/dist/ui/components/Button/Button.d.mts.map +1 -0
- package/dist/ui/components/Button/Button.mjs +48 -0
- package/dist/ui/components/Button/Button.mjs.map +1 -0
- package/dist/ui/components/Button/index.d.mts +2 -0
- package/dist/ui/components/Button/index.mjs +2 -0
- package/dist/ui/components/Card/Card.d.mts +14 -0
- package/dist/ui/components/Card/Card.d.mts.map +1 -0
- package/dist/ui/components/Card/Card.mjs +40 -0
- package/dist/ui/components/Card/Card.mjs.map +1 -0
- package/dist/ui/components/Card/index.d.mts +2 -0
- package/dist/ui/components/Card/index.mjs +2 -0
- package/dist/ui/components/Carousel/Carousel.d.mts +42 -0
- package/dist/ui/components/Carousel/Carousel.d.mts.map +1 -0
- package/dist/ui/components/Carousel/Carousel.mjs +164 -0
- package/dist/ui/components/Carousel/Carousel.mjs.map +1 -0
- package/dist/ui/components/Carousel/index.d.mts +2 -0
- package/dist/ui/components/Carousel/index.mjs +2 -0
- package/dist/ui/components/Checkbox/Checkbox.d.mts +8 -0
- package/dist/ui/components/Checkbox/Checkbox.d.mts.map +1 -0
- package/dist/ui/components/Checkbox/Checkbox.mjs +39 -0
- package/dist/ui/components/Checkbox/Checkbox.mjs.map +1 -0
- package/dist/ui/components/Checkbox/index.d.mts +2 -0
- package/dist/ui/components/Checkbox/index.mjs +2 -0
- package/dist/ui/components/CodeBlock/CodeBlock.d.mts +22 -0
- package/dist/ui/components/CodeBlock/CodeBlock.d.mts.map +1 -0
- package/dist/ui/components/CodeBlock/CodeBlock.mjs +66 -0
- package/dist/ui/components/CodeBlock/CodeBlock.mjs.map +1 -0
- package/dist/ui/components/CodeBlock/index.d.mts +2 -0
- package/dist/ui/components/CodeBlock/index.mjs +2 -0
- package/dist/ui/components/CodeBlockTabs/CodeBlockTabs.d.mts +19 -0
- package/dist/ui/components/CodeBlockTabs/CodeBlockTabs.d.mts.map +1 -0
- package/dist/ui/components/CodeBlockTabs/CodeBlockTabs.mjs +59 -0
- package/dist/ui/components/CodeBlockTabs/CodeBlockTabs.mjs.map +1 -0
- package/dist/ui/components/CodeBlockTabs/index.d.mts +2 -0
- package/dist/ui/components/CodeBlockTabs/index.mjs +2 -0
- package/dist/ui/components/CollapsibleSection/CollapsibleSection.d.mts +13 -0
- package/dist/ui/components/CollapsibleSection/CollapsibleSection.d.mts.map +1 -0
- package/dist/ui/components/CollapsibleSection/CollapsibleSection.mjs +55 -0
- package/dist/ui/components/CollapsibleSection/CollapsibleSection.mjs.map +1 -0
- package/dist/ui/components/CollapsibleSection/index.d.mts +2 -0
- package/dist/ui/components/CollapsibleSection/index.mjs +2 -0
- package/dist/ui/components/CopyButton/CopyButton.d.mts +12 -0
- package/dist/ui/components/CopyButton/CopyButton.d.mts.map +1 -0
- package/dist/ui/components/CopyButton/CopyButton.mjs +45 -0
- package/dist/ui/components/CopyButton/CopyButton.mjs.map +1 -0
- package/dist/ui/components/CopyButton/index.d.mts +2 -0
- package/dist/ui/components/CopyButton/index.mjs +2 -0
- package/dist/ui/components/Dialog/Dialog.d.mts +26 -0
- package/dist/ui/components/Dialog/Dialog.d.mts.map +1 -0
- package/dist/ui/components/Dialog/Dialog.mjs +79 -0
- package/dist/ui/components/Dialog/Dialog.mjs.map +1 -0
- package/dist/ui/components/Dialog/index.d.mts +2 -0
- package/dist/ui/components/Dialog/index.mjs +2 -0
- package/dist/ui/components/EmptyState/EmptyState.d.mts +18 -0
- package/dist/ui/components/EmptyState/EmptyState.d.mts.map +1 -0
- package/dist/ui/components/EmptyState/EmptyState.mjs +36 -0
- package/dist/ui/components/EmptyState/EmptyState.mjs.map +1 -0
- package/dist/ui/components/EmptyState/index.d.mts +2 -0
- package/dist/ui/components/EmptyState/index.mjs +2 -0
- package/dist/ui/components/FieldError/FieldError.d.mts +14 -0
- package/dist/ui/components/FieldError/FieldError.d.mts.map +1 -0
- package/dist/ui/components/FieldError/FieldError.mjs +19 -0
- package/dist/ui/components/FieldError/FieldError.mjs.map +1 -0
- package/dist/ui/components/FieldError/index.d.mts +2 -0
- package/dist/ui/components/FieldError/index.mjs +2 -0
- package/dist/ui/components/FormattedDate/FormattedDate.d.mts +15 -0
- package/dist/ui/components/FormattedDate/FormattedDate.d.mts.map +1 -0
- package/dist/ui/components/FormattedDate/FormattedDate.mjs +23 -0
- package/dist/ui/components/FormattedDate/FormattedDate.mjs.map +1 -0
- package/dist/ui/components/FormattedDate/index.d.mts +2 -0
- package/dist/ui/components/FormattedDate/index.mjs +2 -0
- package/dist/ui/components/IconButton/IconButton.d.mts +10 -0
- package/dist/ui/components/IconButton/IconButton.d.mts.map +1 -0
- package/dist/ui/components/IconButton/IconButton.mjs +19 -0
- package/dist/ui/components/IconButton/IconButton.mjs.map +1 -0
- package/dist/ui/components/IconButton/index.d.mts +2 -0
- package/dist/ui/components/IconButton/index.mjs +2 -0
- package/dist/ui/components/Input/Input.d.mts +12 -0
- package/dist/ui/components/Input/Input.d.mts.map +1 -0
- package/dist/ui/components/Input/Input.mjs +43 -0
- package/dist/ui/components/Input/Input.mjs.map +1 -0
- package/dist/ui/components/Input/index.d.mts +2 -0
- package/dist/ui/components/Input/index.mjs +2 -0
- package/dist/ui/components/Label/Label.d.mts +11 -0
- package/dist/ui/components/Label/Label.d.mts.map +1 -0
- package/dist/ui/components/Label/Label.mjs +18 -0
- package/dist/ui/components/Label/Label.mjs.map +1 -0
- package/dist/ui/components/Label/index.d.mts +2 -0
- package/dist/ui/components/Label/index.mjs +2 -0
- package/dist/ui/components/LazyVideo/LazyVideo.d.mts +23 -0
- package/dist/ui/components/LazyVideo/LazyVideo.d.mts.map +1 -0
- package/dist/ui/components/LazyVideo/LazyVideo.mjs +57 -0
- package/dist/ui/components/LazyVideo/LazyVideo.mjs.map +1 -0
- package/dist/ui/components/LazyVideo/index.d.mts +2 -0
- package/dist/ui/components/LazyVideo/index.mjs +2 -0
- package/dist/ui/components/Pagination/Pagination.d.mts +38 -0
- package/dist/ui/components/Pagination/Pagination.d.mts.map +1 -0
- package/dist/ui/components/Pagination/Pagination.mjs +110 -0
- package/dist/ui/components/Pagination/Pagination.mjs.map +1 -0
- package/dist/ui/components/Pagination/index.d.mts +2 -0
- package/dist/ui/components/Pagination/index.mjs +2 -0
- package/dist/ui/components/PaginationItem/PaginationItem.d.mts +15 -0
- package/dist/ui/components/PaginationItem/PaginationItem.d.mts.map +1 -0
- package/dist/ui/components/PaginationItem/PaginationItem.mjs +34 -0
- package/dist/ui/components/PaginationItem/PaginationItem.mjs.map +1 -0
- package/dist/ui/components/PaginationItem/index.d.mts +2 -0
- package/dist/ui/components/PaginationItem/index.mjs +2 -0
- package/dist/ui/components/PasswordInput/PasswordInput.d.mts +10 -0
- package/dist/ui/components/PasswordInput/PasswordInput.d.mts.map +1 -0
- package/dist/ui/components/PasswordInput/PasswordInput.mjs +39 -0
- package/dist/ui/components/PasswordInput/PasswordInput.mjs.map +1 -0
- package/dist/ui/components/PasswordInput/index.d.mts +2 -0
- package/dist/ui/components/PasswordInput/index.mjs +2 -0
- package/dist/ui/components/ProgressStepper/ProgressStepper.d.mts +20 -0
- package/dist/ui/components/ProgressStepper/ProgressStepper.d.mts.map +1 -0
- package/dist/ui/components/ProgressStepper/ProgressStepper.mjs +39 -0
- package/dist/ui/components/ProgressStepper/ProgressStepper.mjs.map +1 -0
- package/dist/ui/components/ProgressStepper/index.d.mts +2 -0
- package/dist/ui/components/ProgressStepper/index.mjs +2 -0
- package/dist/ui/components/Prose/Prose.d.mts +10 -0
- package/dist/ui/components/Prose/Prose.d.mts.map +1 -0
- package/dist/ui/components/Prose/Prose.mjs +19 -0
- package/dist/ui/components/Prose/Prose.mjs.map +1 -0
- package/dist/ui/components/Prose/index.d.mts +2 -0
- package/dist/ui/components/Prose/index.mjs +2 -0
- package/dist/ui/components/Radio/Radio.d.mts +8 -0
- package/dist/ui/components/Radio/Radio.d.mts.map +1 -0
- package/dist/ui/components/Radio/Radio.mjs +25 -0
- package/dist/ui/components/Radio/Radio.mjs.map +1 -0
- package/dist/ui/components/Radio/index.d.mts +2 -0
- package/dist/ui/components/Radio/index.mjs +2 -0
- package/dist/ui/components/Reveal/Reveal.d.mts +10 -0
- package/dist/ui/components/Reveal/Reveal.d.mts.map +1 -0
- package/dist/ui/components/Reveal/Reveal.mjs +18 -0
- package/dist/ui/components/Reveal/Reveal.mjs.map +1 -0
- package/dist/ui/components/Reveal/index.d.mts +2 -0
- package/dist/ui/components/Reveal/index.mjs +2 -0
- package/dist/ui/components/SearchInput/SearchInput.d.mts +15 -0
- package/dist/ui/components/SearchInput/SearchInput.d.mts.map +1 -0
- package/dist/ui/components/SearchInput/SearchInput.mjs +28 -0
- package/dist/ui/components/SearchInput/SearchInput.mjs.map +1 -0
- package/dist/ui/components/SearchInput/index.d.mts +2 -0
- package/dist/ui/components/SearchInput/index.mjs +2 -0
- package/dist/ui/components/Select/Select.d.mts +34 -0
- package/dist/ui/components/Select/Select.d.mts.map +1 -0
- package/dist/ui/components/Select/Select.mjs +167 -0
- package/dist/ui/components/Select/Select.mjs.map +1 -0
- package/dist/ui/components/Select/index.d.mts +2 -0
- package/dist/ui/components/Select/index.mjs +2 -0
- package/dist/ui/components/Sheet/Sheet.d.mts +19 -0
- package/dist/ui/components/Sheet/Sheet.d.mts.map +1 -0
- package/dist/ui/components/Sheet/Sheet.mjs +59 -0
- package/dist/ui/components/Sheet/Sheet.mjs.map +1 -0
- package/dist/ui/components/Sheet/index.d.mts +2 -0
- package/dist/ui/components/Sheet/index.mjs +2 -0
- package/dist/ui/components/StaggerReveal/StaggerReveal.d.mts +10 -0
- package/dist/ui/components/StaggerReveal/StaggerReveal.d.mts.map +1 -0
- package/dist/ui/components/StaggerReveal/StaggerReveal.mjs +31 -0
- package/dist/ui/components/StaggerReveal/StaggerReveal.mjs.map +1 -0
- package/dist/ui/components/StaggerReveal/index.d.mts +2 -0
- package/dist/ui/components/StaggerReveal/index.mjs +2 -0
- package/dist/ui/components/Stepper/Stepper.d.mts +15 -0
- package/dist/ui/components/Stepper/Stepper.d.mts.map +1 -0
- package/dist/ui/components/Stepper/Stepper.mjs +38 -0
- package/dist/ui/components/Stepper/Stepper.mjs.map +1 -0
- package/dist/ui/components/Stepper/index.d.mts +2 -0
- package/dist/ui/components/Stepper/index.mjs +2 -0
- package/dist/ui/components/Switch/Switch.d.mts +12 -0
- package/dist/ui/components/Switch/Switch.d.mts.map +1 -0
- package/dist/ui/components/Switch/Switch.mjs +34 -0
- package/dist/ui/components/Switch/Switch.mjs.map +1 -0
- package/dist/ui/components/Switch/index.d.mts +2 -0
- package/dist/ui/components/Switch/index.mjs +2 -0
- package/dist/ui/components/TextButton/TextButton.d.mts +9 -0
- package/dist/ui/components/TextButton/TextButton.d.mts.map +1 -0
- package/dist/ui/components/TextButton/TextButton.mjs +16 -0
- package/dist/ui/components/TextButton/TextButton.mjs.map +1 -0
- package/dist/ui/components/TextButton/index.d.mts +2 -0
- package/dist/ui/components/TextButton/index.mjs +2 -0
- package/dist/ui/components/Textarea/Textarea.d.mts +9 -0
- package/dist/ui/components/Textarea/Textarea.d.mts.map +1 -0
- package/dist/ui/components/Textarea/Textarea.mjs +27 -0
- package/dist/ui/components/Textarea/Textarea.mjs.map +1 -0
- package/dist/ui/components/Textarea/index.d.mts +2 -0
- package/dist/ui/components/Textarea/index.mjs +2 -0
- package/dist/ui/components/Toast/Toast.d.mts +20 -0
- package/dist/ui/components/Toast/Toast.d.mts.map +1 -0
- package/dist/ui/components/Toast/Toast.mjs +128 -0
- package/dist/ui/components/Toast/Toast.mjs.map +1 -0
- package/dist/ui/components/Toast/index.d.mts +2 -0
- package/dist/ui/components/Toast/index.mjs +2 -0
- package/dist/ui/components/Tooltip/Tooltip.d.mts +11 -0
- package/dist/ui/components/Tooltip/Tooltip.d.mts.map +1 -0
- package/dist/ui/components/Tooltip/Tooltip.mjs +20 -0
- package/dist/ui/components/Tooltip/Tooltip.mjs.map +1 -0
- package/dist/ui/components/Tooltip/index.d.mts +2 -0
- package/dist/ui/components/Tooltip/index.mjs +2 -0
- package/dist/ui/components/VisuallyHidden/VisuallyHidden.d.mts +7 -0
- package/dist/ui/components/VisuallyHidden/VisuallyHidden.d.mts.map +1 -0
- package/dist/ui/components/VisuallyHidden/VisuallyHidden.mjs +13 -0
- package/dist/ui/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -0
- package/dist/ui/components/VisuallyHidden/index.d.mts +2 -0
- package/dist/ui/components/VisuallyHidden/index.mjs +2 -0
- package/dist/ui/hooks/index.d.mts +2 -0
- package/dist/ui/hooks/index.mjs +2 -0
- package/dist/ui/hooks/useInView.d.mts +13 -0
- package/dist/ui/hooks/useInView.d.mts.map +1 -0
- package/dist/ui/hooks/useInView.mjs +37 -0
- package/dist/ui/hooks/useInView.mjs.map +1 -0
- package/dist/ui/index.d.mts +81 -0
- package/dist/ui/index.mjs +40 -0
- package/dist/ui/theme/preset.d.mts +170 -0
- package/dist/ui/theme/preset.d.mts.map +1 -0
- package/dist/ui/theme/preset.mjs +143 -0
- package/dist/ui/theme/preset.mjs.map +1 -0
- package/dist/ui/utils/cn.d.mts +6 -0
- package/dist/ui/utils/cn.d.mts.map +1 -0
- package/dist/ui/utils/cn.mjs +42 -0
- package/dist/ui/utils/cn.mjs.map +1 -0
- package/dist/ui/utils/index.d.mts +2 -0
- package/dist/ui/utils/index.mjs +2 -0
- package/dist/utils/index.d.mts +2 -0
- package/dist/utils/index.mjs +3 -0
- package/dist/utils.mjs +18 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +66 -7
- package/src/ui/theme/preset.css +53 -0
- package/src/ui/theme/preset.ts +131 -0
- package/src/ui/theme/theme.css +12 -0
- package/src/ui/theme/tokens.css +57 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tetherto/dev-websites-core",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Shared
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Shared CMS, SEO, i18n, utils, and UI primitives for the WDK / QVAC websites.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public",
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
"url": "git+https://github.com/tetherto/dev-websites-core.git"
|
|
13
13
|
},
|
|
14
14
|
"type": "module",
|
|
15
|
-
"sideEffects":
|
|
15
|
+
"sideEffects": [
|
|
16
|
+
"**/*.css"
|
|
17
|
+
],
|
|
16
18
|
"main": "./dist/index.mjs",
|
|
17
19
|
"types": "./dist/index.d.mts",
|
|
18
20
|
"exports": {
|
|
@@ -40,19 +42,41 @@
|
|
|
40
42
|
"types": "./dist/utils/index.d.mts",
|
|
41
43
|
"import": "./dist/utils/index.mjs",
|
|
42
44
|
"default": "./dist/utils/index.mjs"
|
|
43
|
-
}
|
|
45
|
+
},
|
|
46
|
+
"./ui": {
|
|
47
|
+
"types": "./dist/ui/index.d.mts",
|
|
48
|
+
"import": "./dist/ui/index.mjs",
|
|
49
|
+
"default": "./dist/ui/index.mjs"
|
|
50
|
+
},
|
|
51
|
+
"./ui/a11y": {
|
|
52
|
+
"types": "./dist/ui/a11y/index.d.mts",
|
|
53
|
+
"import": "./dist/ui/a11y/index.mjs",
|
|
54
|
+
"default": "./dist/ui/a11y/index.mjs"
|
|
55
|
+
},
|
|
56
|
+
"./ui/carousel": {
|
|
57
|
+
"types": "./dist/ui/carousel/index.d.mts",
|
|
58
|
+
"import": "./dist/ui/carousel/index.mjs",
|
|
59
|
+
"default": "./dist/ui/carousel/index.mjs"
|
|
60
|
+
},
|
|
61
|
+
"./ui/theme.css": "./src/ui/theme/theme.css",
|
|
62
|
+
"./ui/theme/tokens.css": "./src/ui/theme/tokens.css",
|
|
63
|
+
"./ui/theme/preset.css": "./src/ui/theme/preset.css",
|
|
64
|
+
"./ui/theme/preset": "./src/ui/theme/preset.ts",
|
|
65
|
+
"./package.json": "./package.json"
|
|
44
66
|
},
|
|
45
67
|
"files": [
|
|
46
|
-
"dist"
|
|
68
|
+
"dist",
|
|
69
|
+
"src/ui/theme"
|
|
47
70
|
],
|
|
48
71
|
"scripts": {
|
|
49
72
|
"build": "tsdown",
|
|
50
73
|
"dev": "tsdown --watch",
|
|
51
74
|
"prepare": "tsdown",
|
|
75
|
+
"prepublishOnly": "npm run typecheck && npm run build",
|
|
52
76
|
"typecheck": "tsc --noEmit",
|
|
53
77
|
"lint": "eslint",
|
|
54
78
|
"lint:fix": "eslint --fix",
|
|
55
|
-
"format": "prettier --write \"src/**/*.ts\" \"*.{json,mjs,md}\""
|
|
79
|
+
"format": "prettier --write \"src/**/*.{ts,tsx,css}\" \"*.{json,mjs,md}\""
|
|
56
80
|
},
|
|
57
81
|
"engines": {
|
|
58
82
|
"node": ">=20"
|
|
@@ -61,22 +85,57 @@
|
|
|
61
85
|
"@aws-sdk/client-s3": "^3.0.0",
|
|
62
86
|
"@payloadcms/richtext-lexical": "^3.85.1",
|
|
63
87
|
"@payloadcms/storage-s3": "^3.85.1",
|
|
88
|
+
"@radix-ui/react-dialog": "^1.1.0",
|
|
89
|
+
"@radix-ui/react-dropdown-menu": "^2.1.0",
|
|
90
|
+
"@radix-ui/react-primitive": "^2.0.0",
|
|
91
|
+
"@radix-ui/react-slot": "^1.1.0",
|
|
92
|
+
"@radix-ui/react-tooltip": "^1.1.0",
|
|
93
|
+
"class-variance-authority": "^0.7.0",
|
|
94
|
+
"clsx": "^2.1.0",
|
|
95
|
+
"embla-carousel-react": "^8.0.0",
|
|
64
96
|
"next": ">=15",
|
|
65
|
-
"payload": "^3.85.1"
|
|
97
|
+
"payload": "^3.85.1",
|
|
98
|
+
"react": ">=19",
|
|
99
|
+
"react-dom": ">=19",
|
|
100
|
+
"react-icons": "^5.0.0",
|
|
101
|
+
"tailwind-merge": "^3.0.0"
|
|
102
|
+
},
|
|
103
|
+
"peerDependenciesMeta": {
|
|
104
|
+
"embla-carousel-react": {
|
|
105
|
+
"optional": true
|
|
106
|
+
},
|
|
107
|
+
"react-icons": {
|
|
108
|
+
"optional": true
|
|
109
|
+
}
|
|
66
110
|
},
|
|
67
111
|
"devDependencies": {
|
|
68
112
|
"@aws-sdk/client-s3": "^3.787.0",
|
|
69
113
|
"@eslint/js": "^9.39.0",
|
|
70
114
|
"@payloadcms/richtext-lexical": "3.88.0",
|
|
71
115
|
"@payloadcms/storage-s3": "3.88.0",
|
|
116
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
117
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
118
|
+
"@radix-ui/react-primitive": "^2.1.4",
|
|
119
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
120
|
+
"@radix-ui/react-tooltip": "^1.2.16",
|
|
72
121
|
"@types/node": "^22.20.1",
|
|
122
|
+
"@types/react": "^19.2.0",
|
|
123
|
+
"@types/react-dom": "^19.2.0",
|
|
124
|
+
"class-variance-authority": "^0.7.1",
|
|
125
|
+
"clsx": "^2.1.1",
|
|
126
|
+
"embla-carousel-react": "^8.6.0",
|
|
73
127
|
"eslint": "9.39.4",
|
|
74
128
|
"eslint-config-prettier": "^10.1.8",
|
|
75
129
|
"eslint-plugin-import": "^2.32.0",
|
|
76
130
|
"eslint-plugin-prettier": "^5.5.5",
|
|
131
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
77
132
|
"next": "^16.2.6",
|
|
78
133
|
"payload": "3.88.0",
|
|
79
134
|
"prettier": "^3.8.1",
|
|
135
|
+
"react": "^19.2.0",
|
|
136
|
+
"react-dom": "^19.2.0",
|
|
137
|
+
"react-icons": "^5.5.0",
|
|
138
|
+
"tailwind-merge": "^3.3.1",
|
|
80
139
|
"tsdown": "^0.22.14",
|
|
81
140
|
"typescript": "^5.8.0",
|
|
82
141
|
"typescript-eslint": "^8.67.0",
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tailwind v4 theme preset for `@tetherto/dev-websites-core/ui`.
|
|
3
|
+
*
|
|
4
|
+
* Maps CSS variables from `tokens.css` → utilities (`bg-accent`, `rounded-btn`, …).
|
|
5
|
+
*
|
|
6
|
+
* One-shot (CSS):
|
|
7
|
+
* @import '@tetherto/dev-websites-core/ui/theme.css';
|
|
8
|
+
*
|
|
9
|
+
* Or stepwise:
|
|
10
|
+
* @import '@tetherto/dev-websites-core/ui/theme/tokens.css';
|
|
11
|
+
* @import './my-brand.css'; // override --accent, etc.
|
|
12
|
+
* @import '@tetherto/dev-websites-core/ui/theme/preset.css';
|
|
13
|
+
*
|
|
14
|
+
* If the app already defines the same utilities in `tailwind.config.ts`
|
|
15
|
+
* (WDK / QVAC today), you do NOT need this file — just keep your config.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
@theme inline {
|
|
19
|
+
/* Colors */
|
|
20
|
+
--color-background: hsl(var(--background) / <alpha-value>);
|
|
21
|
+
--color-surface: hsl(var(--surface) / <alpha-value>);
|
|
22
|
+
--color-surface-elevated: hsl(var(--surface-elevated) / <alpha-value>);
|
|
23
|
+
--color-card: hsl(var(--card) / <alpha-value>);
|
|
24
|
+
--color-card-elevated: hsl(var(--card-elevated) / <alpha-value>);
|
|
25
|
+
|
|
26
|
+
--color-foreground: hsl(var(--foreground) / <alpha-value>);
|
|
27
|
+
--color-secondary: hsl(var(--secondary) / <alpha-value>);
|
|
28
|
+
--color-muted: hsl(var(--muted) / <alpha-value>);
|
|
29
|
+
|
|
30
|
+
--color-accent: hsl(var(--accent) / <alpha-value>);
|
|
31
|
+
--color-accent-foreground: hsl(var(--accent-foreground) / <alpha-value>);
|
|
32
|
+
--color-accent-hover: hsl(var(--accent-hover) / <alpha-value>);
|
|
33
|
+
--color-accent-dim: hsl(var(--accent-dim) / <alpha-value>);
|
|
34
|
+
|
|
35
|
+
--color-border: hsl(var(--border) / <alpha-value>);
|
|
36
|
+
--color-border-subtle: hsl(var(--border-subtle) / <alpha-value>);
|
|
37
|
+
--color-destructive: hsl(var(--destructive) / <alpha-value>);
|
|
38
|
+
--color-success: hsl(var(--success) / <alpha-value>);
|
|
39
|
+
--color-warning: hsl(var(--warning) / <alpha-value>);
|
|
40
|
+
--color-ring: hsl(var(--ring) / <alpha-value>);
|
|
41
|
+
|
|
42
|
+
/* Radius → rounded-btn | rounded-control | rounded-card */
|
|
43
|
+
--radius-btn: var(--btn-radius);
|
|
44
|
+
--radius-control: var(--control-radius);
|
|
45
|
+
--radius-card: var(--card-radius);
|
|
46
|
+
|
|
47
|
+
/* Sizing → h-btn | h-btn-sm | px-btn | px-btn-sm | size-btn-sm */
|
|
48
|
+
--height-btn: var(--btn-h);
|
|
49
|
+
--height-btn-sm: var(--btn-h-sm);
|
|
50
|
+
--spacing-btn: var(--btn-px);
|
|
51
|
+
--spacing-btn-sm: var(--btn-px-sm);
|
|
52
|
+
--size-btn-sm: var(--btn-h-sm);
|
|
53
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared websites UI Tailwind preset — full theme contract, WDK defaults.
|
|
3
|
+
*
|
|
4
|
+
* Same utility names everywhere (`bg-accent`, `text-foreground`, `text-display-1`,
|
|
5
|
+
* `rounded-btn`, `h-btn`, …). Apps point CSS variables at their brand palette.
|
|
6
|
+
*
|
|
7
|
+
* // WDK — defaults already match site tokens
|
|
8
|
+
* presets: [uiPreset]
|
|
9
|
+
*
|
|
10
|
+
* // QVAC — same keys, override color (and any other) values
|
|
11
|
+
* presets: [uiPreset]
|
|
12
|
+
* theme: { extend: { colors: { accent: { DEFAULT: '…' }, … } } }
|
|
13
|
+
*
|
|
14
|
+
* CSS: define the `--color-*` / `--primitive-*` / `--btn-*` vars the preset
|
|
15
|
+
* references (see WDK `globals.css`), or remap them in the app `:root`.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const hsl = (name: string) => `hsl(var(${name}) / <alpha-value>)`
|
|
19
|
+
const cssVar = (name: string) => `var(${name})`
|
|
20
|
+
|
|
21
|
+
const preset = {
|
|
22
|
+
theme: {
|
|
23
|
+
extend: {
|
|
24
|
+
colors: {
|
|
25
|
+
'background': hsl('--color-bg-base'),
|
|
26
|
+
'recessed': hsl('--color-bg-recessed'),
|
|
27
|
+
'surface': hsl('--color-bg-surface'),
|
|
28
|
+
'surface-elevated': hsl('--color-bg-card-elevated'),
|
|
29
|
+
'card': hsl('--color-bg-card'),
|
|
30
|
+
'card-elevated': hsl('--color-bg-card-elevated'),
|
|
31
|
+
'foreground': hsl('--color-text-primary'),
|
|
32
|
+
'secondary': hsl('--color-text-secondary'),
|
|
33
|
+
'muted': hsl('--color-text-muted'),
|
|
34
|
+
'landing-text': hsl('--color-landing-text'),
|
|
35
|
+
'landing-text-light': hsl('--color-landing-text-light'),
|
|
36
|
+
'landing-text-light-30': cssVar('--landing-text-light-30'),
|
|
37
|
+
|
|
38
|
+
'accent': {
|
|
39
|
+
DEFAULT: hsl('--color-accent'),
|
|
40
|
+
foreground: hsl('--color-text-primary'),
|
|
41
|
+
hover: hsl('--color-accent-hover'),
|
|
42
|
+
dim: hsl('--color-accent-dim'),
|
|
43
|
+
},
|
|
44
|
+
'border': {
|
|
45
|
+
DEFAULT: hsl('--color-border-default'),
|
|
46
|
+
subtle: hsl('--color-border-subtle'),
|
|
47
|
+
},
|
|
48
|
+
'success': hsl('--color-success'),
|
|
49
|
+
'warning': hsl('--color-warning'),
|
|
50
|
+
'error': hsl('--color-error'),
|
|
51
|
+
'destructive': hsl('--color-error'),
|
|
52
|
+
'info': hsl('--color-info'),
|
|
53
|
+
'ring': hsl('--color-accent'),
|
|
54
|
+
|
|
55
|
+
'teal': hsl('--color-teal'),
|
|
56
|
+
'amber': hsl('--color-amber'),
|
|
57
|
+
'purple': hsl('--color-purple'),
|
|
58
|
+
'green': hsl('--color-green'),
|
|
59
|
+
|
|
60
|
+
'blog-primary': hsl('--color-blog-primary'),
|
|
61
|
+
'blog-body': hsl('--color-blog-body'),
|
|
62
|
+
'blog-meta': hsl('--color-blog-meta'),
|
|
63
|
+
|
|
64
|
+
'primitive': {
|
|
65
|
+
'black': hsl('--primitive-black'),
|
|
66
|
+
'dark-grey': hsl('--primitive-dark-grey'),
|
|
67
|
+
'grey': hsl('--primitive-grey'),
|
|
68
|
+
'light-grey': hsl('--primitive-light-grey'),
|
|
69
|
+
'white': hsl('--primitive-white'),
|
|
70
|
+
'orange': hsl('--primitive-orange'),
|
|
71
|
+
'orange-dark': hsl('--primitive-orange-dark'),
|
|
72
|
+
'purple': hsl('--primitive-purple'),
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
fontFamily: {
|
|
77
|
+
sans: ['var(--font-sans)', 'sans-serif'],
|
|
78
|
+
display: ['var(--font-sharp)', 'sans-serif'],
|
|
79
|
+
mono: ['var(--font-mono)', 'monospace'],
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
fontSize: {
|
|
83
|
+
'display-1': ['60px', { lineHeight: '1.05', letterSpacing: '0' }],
|
|
84
|
+
'display-2': ['50px', { lineHeight: '1.05', letterSpacing: '0' }],
|
|
85
|
+
'heading-3': ['38px', { lineHeight: '40px', letterSpacing: '0' }],
|
|
86
|
+
'subhead-1': ['28px', { lineHeight: '32px', letterSpacing: '0' }],
|
|
87
|
+
'subhead-2': ['22px', { lineHeight: '26px', letterSpacing: '0' }],
|
|
88
|
+
'subhead-3': ['13px', { lineHeight: '1', letterSpacing: '2px' }],
|
|
89
|
+
'body-1': ['22px', { lineHeight: '32px' }],
|
|
90
|
+
'body-2': ['18px', { lineHeight: '28px' }],
|
|
91
|
+
'body-sm': ['15px', { lineHeight: '20px' }],
|
|
92
|
+
'body-md': ['14px', { lineHeight: '20px' }],
|
|
93
|
+
'body-xs': ['13px', { lineHeight: '18px' }],
|
|
94
|
+
'btn': ['14px', { lineHeight: '19px', letterSpacing: '0.5px' }],
|
|
95
|
+
'btn-cta': ['15px', { lineHeight: '1' }],
|
|
96
|
+
'code': ['17px', { lineHeight: '20px' }],
|
|
97
|
+
'label': ['11px', { lineHeight: '16px', letterSpacing: '0.3px' }],
|
|
98
|
+
'badge': ['10px', { lineHeight: '1', letterSpacing: '0.4px' }],
|
|
99
|
+
'caption': ['12px', { lineHeight: '16px' }],
|
|
100
|
+
'inter-h1': ['50px', { lineHeight: '60px' }],
|
|
101
|
+
'inter-h2': ['30px', { lineHeight: '38px' }],
|
|
102
|
+
'inter-h3': ['26px', { lineHeight: '36px' }],
|
|
103
|
+
'blog-mob': ['16px', { lineHeight: '24px' }],
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
borderRadius: {
|
|
107
|
+
btn: '5px',
|
|
108
|
+
card: '10px',
|
|
109
|
+
badge: '5px',
|
|
110
|
+
control: 'var(--control-radius)',
|
|
111
|
+
pill: '9999px',
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
height: {
|
|
115
|
+
'btn': 'var(--btn-primary-height)',
|
|
116
|
+
'btn-sm': 'var(--btn-sm-height)',
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
size: {
|
|
120
|
+
'btn-sm': 'var(--btn-sm-height)',
|
|
121
|
+
},
|
|
122
|
+
|
|
123
|
+
padding: {
|
|
124
|
+
'btn': 'var(--btn-primary-px)',
|
|
125
|
+
'btn-sm': 'var(--btn-sm-px)',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export default preset
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-shot theme bootstrap for Tailwind v4 CSS pipelines.
|
|
3
|
+
*
|
|
4
|
+
* @import 'tailwindcss';
|
|
5
|
+
* @import '@tetherto/dev-websites-core/ui/theme.css';
|
|
6
|
+
*
|
|
7
|
+
* Then override brand in your own CSS:
|
|
8
|
+
* :root { --accent: 180 100% 40%; }
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
@import './tokens.css';
|
|
12
|
+
@import './preset.css';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared UI semantic tokens — CSS custom properties (HSL channels, no `hsl()` wrapper).
|
|
3
|
+
*
|
|
4
|
+
* Used by `@tetherto/dev-websites-core/ui/theme/preset.css` (Tailwind v4 `@theme`)
|
|
5
|
+
* and `@tetherto/dev-websites-core/ui/theme/preset` (JS Tailwind preset).
|
|
6
|
+
*
|
|
7
|
+
* Apps own brand: override any of these in your `:root` (or import this file
|
|
8
|
+
* first, then set brand values). Values below are neutral dark defaults so the
|
|
9
|
+
* package can be previewed without a host app.
|
|
10
|
+
*
|
|
11
|
+
* Utilities that components expect (via the preset):
|
|
12
|
+
* bg-background | bg-surface | bg-surface-elevated | bg-card | bg-card-elevated
|
|
13
|
+
* text-foreground | text-secondary | text-muted
|
|
14
|
+
* bg-accent | text-accent-foreground | accent-hover | accent-dim
|
|
15
|
+
* border-border | border-border-subtle | destructive | success | ring
|
|
16
|
+
* rounded-btn | rounded-control | rounded-card
|
|
17
|
+
* h-btn | h-btn-sm | px-btn | px-btn-sm | size-btn-sm
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
:root {
|
|
21
|
+
/* ── Surfaces ─────────────────────────────────────────────── */
|
|
22
|
+
--background: 40 12% 5%; /* page */
|
|
23
|
+
--surface: 30 8% 9%;
|
|
24
|
+
--surface-elevated: 33 11% 16%;
|
|
25
|
+
--card: 24 7% 14%;
|
|
26
|
+
--card-elevated: 33 11% 16%;
|
|
27
|
+
|
|
28
|
+
/* ── Text ────────────────────────────────────────────────── */
|
|
29
|
+
--foreground: 0 0% 100%;
|
|
30
|
+
--secondary: 37 10% 65%;
|
|
31
|
+
--muted: 38 8% 41%;
|
|
32
|
+
|
|
33
|
+
/* ── Brand ────────────────────────────────────────────────── */
|
|
34
|
+
--accent: 18 100% 50%;
|
|
35
|
+
--accent-foreground: 0 0% 100%;
|
|
36
|
+
--accent-hover: 18 100% 45%;
|
|
37
|
+
--accent-dim: 18 100% 50%;
|
|
38
|
+
|
|
39
|
+
/* ── Borders & feedback ───────────────────────────────────── */
|
|
40
|
+
--border: 30 10% 15%;
|
|
41
|
+
--border-subtle: 24 7% 18%;
|
|
42
|
+
--destructive: 0 100% 64%;
|
|
43
|
+
--success: 160 60% 45%;
|
|
44
|
+
--warning: 38 92% 50%;
|
|
45
|
+
--ring: var(--accent);
|
|
46
|
+
|
|
47
|
+
/* ── Radius (raw) → mapped to rounded-* in the preset ─────── */
|
|
48
|
+
--btn-radius: 0.3125rem; /* 5px */
|
|
49
|
+
--control-radius: 0.375rem; /* 6px */
|
|
50
|
+
--card-radius: 0.625rem; /* 10px */
|
|
51
|
+
|
|
52
|
+
/* ── Control sizing ───────────────────────────────────────── */
|
|
53
|
+
--btn-h: 2.25rem; /* 36px */
|
|
54
|
+
--btn-h-sm: 1.875rem; /* 30px */
|
|
55
|
+
--btn-px: 1.5rem; /* 24px */
|
|
56
|
+
--btn-px-sm: 0.75rem; /* 12px */
|
|
57
|
+
}
|