tera-system-ui 0.1.61 → 0.1.64
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/COMPONENT_API.md +539 -0
- package/dist/components/brand-logo/BrandLogo.d.ts +2 -2
- package/dist/components/brand-logo/BrandLogo.js +1 -1
- package/dist/components/dialog/Dialog.svelte +1 -1
- package/dist/components/slider/Slider.svelte +1 -1
- package/dist/components/tera-ui-context/TeraUiContext.svelte +0 -2
- package/dist/paraglide/README.md +1 -1
- package/dist/paraglide/messages/_index.d.ts +7 -21
- package/dist/paraglide/messages/_index.js +7 -485
- package/dist/paraglide/messages/text_account_settings.d.ts +4 -0
- package/dist/paraglide/messages/text_account_settings.js +239 -0
- package/dist/paraglide/messages/text_calces_documentation.d.ts +4 -0
- package/dist/paraglide/messages/text_calces_documentation.js +239 -0
- package/dist/paraglide/messages/text_calces_scientific_calculator.d.ts +4 -0
- package/dist/paraglide/messages/text_calces_scientific_calculator.js +239 -0
- package/dist/paraglide/messages/text_currency_converter.d.ts +4 -0
- package/dist/paraglide/messages/text_currency_converter.js +239 -0
- package/dist/paraglide/messages/text_logout.d.ts +4 -0
- package/dist/paraglide/messages/text_logout.js +239 -0
- package/dist/paraglide/messages/text_select_language.d.ts +4 -0
- package/dist/paraglide/messages/text_select_language.js +239 -0
- package/dist/paraglide/messages/text_unit_converter.d.ts +4 -0
- package/dist/paraglide/messages/text_unit_converter.js +239 -0
- package/dist/paraglide/runtime.d.ts +1 -1
- package/dist/paraglide/runtime.js +5 -6
- package/dist/tera-i18n/dev-tools/translator/gpt-translator-i18n-message.js +130 -9
- package/dist/tera-i18n/dev-tools/translator/package-lock.json +14 -224
- package/dist/tera-i18n/dev-tools/translator/package.json +1 -1
- package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-calculator.md +34 -0
- package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-cv-maker.md +149 -0
- package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-system.txt +1 -1
- package/dist/tera-i18n/projects/common/all-language-data.js +70 -13
- package/dist/tera-i18n/projects/cv-maker/messages/ar-AE.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-EG.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-IQ.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-SA.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-SD.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-YE.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/bg.json +57 -14
- package/dist/tera-i18n/projects/cv-maker/messages/bn.json +65 -22
- package/dist/tera-i18n/projects/cv-maker/messages/ca.json +54 -11
- package/dist/tera-i18n/projects/cv-maker/messages/cs.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/da.json +51 -8
- package/dist/tera-i18n/projects/cv-maker/messages/de.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/el.json +71 -28
- package/dist/tera-i18n/projects/cv-maker/messages/en-AE.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-AU.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-CA.json +51 -8
- package/dist/tera-i18n/projects/cv-maker/messages/en-GB.json +50 -7
- package/dist/tera-i18n/projects/cv-maker/messages/en-ID.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-IN.json +54 -11
- package/dist/tera-i18n/projects/cv-maker/messages/en-NZ.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-PH.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-PK.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/en-SA.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-US.json +51 -8
- package/dist/tera-i18n/projects/cv-maker/messages/en-ZA.json +52 -9
- package/dist/tera-i18n/projects/cv-maker/messages/en.json +45 -16
- package/dist/tera-i18n/projects/cv-maker/messages/es-419.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/es-AR.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/es-ES.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/es-MX.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/es.json +53 -10
- package/dist/tera-i18n/projects/cv-maker/messages/fi.json +52 -9
- package/dist/tera-i18n/projects/cv-maker/messages/fr-MA.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/fr.json +54 -11
- package/dist/tera-i18n/projects/cv-maker/messages/he.json +55 -12
- package/dist/tera-i18n/projects/cv-maker/messages/hi.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/hr.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/hu.json +63 -20
- package/dist/tera-i18n/projects/cv-maker/messages/id.json +60 -17
- package/dist/tera-i18n/projects/cv-maker/messages/it.json +53 -10
- package/dist/tera-i18n/projects/cv-maker/messages/ja.json +62 -19
- package/dist/tera-i18n/projects/cv-maker/messages/ko.json +61 -18
- package/dist/tera-i18n/projects/cv-maker/messages/lt.json +61 -18
- package/dist/tera-i18n/projects/cv-maker/messages/lv.json +61 -18
- package/dist/tera-i18n/projects/cv-maker/messages/ms-MY.json +60 -17
- package/dist/tera-i18n/projects/cv-maker/messages/ms.json +61 -18
- package/dist/tera-i18n/projects/cv-maker/messages/nl.json +53 -10
- package/dist/tera-i18n/projects/cv-maker/messages/no.json +54 -11
- package/dist/tera-i18n/projects/cv-maker/messages/pl.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/pt-BR.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/pt-PT.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/pt.json +66 -23
- package/dist/tera-i18n/projects/cv-maker/messages/ro.json +52 -9
- package/dist/tera-i18n/projects/cv-maker/messages/ru.json +57 -14
- package/dist/tera-i18n/projects/cv-maker/messages/sk.json +62 -19
- package/dist/tera-i18n/projects/cv-maker/messages/sl.json +57 -14
- package/dist/tera-i18n/projects/cv-maker/messages/sq.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/sr.json +91 -48
- package/dist/tera-i18n/projects/cv-maker/messages/sv.json +56 -13
- package/dist/tera-i18n/projects/cv-maker/messages/sw.json +62 -19
- package/dist/tera-i18n/projects/cv-maker/messages/ta.json +72 -29
- package/dist/tera-i18n/projects/cv-maker/messages/te.json +75 -32
- package/dist/tera-i18n/projects/cv-maker/messages/th.json +62 -19
- package/dist/tera-i18n/projects/cv-maker/messages/tl.json +77 -34
- package/dist/tera-i18n/projects/cv-maker/messages/tr.json +63 -20
- package/dist/tera-i18n/projects/cv-maker/messages/uk.json +63 -20
- package/dist/tera-i18n/projects/cv-maker/messages/vi.json +64 -21
- package/dist/tera-i18n/projects/cv-maker/messages/zh-CN.json +63 -20
- package/dist/tera-i18n/projects/cv-maker/messages/zh-TW.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/zh.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/project.inlang/settings.json +82 -68
- package/dist/tera-i18n/projects/cv-maker/supported-language.js +36 -9
- package/dist/tera-i18n/projects/mathda/messages/en.json +4 -0
- package/dist/tera-i18n/projects/mathda/messages/vi.json +4 -0
- package/dist/tera-i18n/projects/mathda/project.inlang/settings.json +15 -0
- package/dist/tera-i18n/projects/mathda/supported-language.d.ts +1 -0
- package/dist/tera-i18n/projects/mathda/supported-language.js +4 -0
- package/dist/tera-i18n/projects/tera-calculator/messages/bg.json +149 -72
- package/dist/tera-i18n/projects/tera-calculator/messages/bn.json +149 -72
- package/dist/tera-i18n/projects/tera-calculator/messages/ca.json +139 -62
- package/dist/tera-i18n/projects/tera-calculator/messages/cs.json +132 -55
- package/dist/tera-i18n/projects/tera-calculator/messages/da.json +132 -55
- package/dist/tera-i18n/projects/tera-calculator/messages/de.json +181 -104
- package/dist/tera-i18n/projects/tera-calculator/messages/el.json +145 -68
- package/dist/tera-i18n/projects/tera-calculator/messages/en-IN.json +183 -0
- package/dist/tera-i18n/projects/tera-calculator/messages/en-PH.json +183 -0
- package/dist/tera-i18n/projects/tera-calculator/messages/en-US.json +183 -0
- package/dist/tera-i18n/projects/tera-calculator/messages/en.json +187 -104
- package/dist/tera-i18n/projects/tera-calculator/messages/es.json +181 -104
- package/dist/tera-i18n/projects/tera-calculator/messages/fi.json +137 -60
- package/dist/tera-i18n/projects/tera-calculator/messages/fr.json +180 -103
- package/dist/tera-i18n/projects/tera-calculator/messages/hi.json +136 -59
- package/dist/tera-i18n/projects/tera-calculator/messages/hu.json +141 -64
- package/dist/tera-i18n/projects/tera-calculator/messages/id.json +132 -55
- package/dist/tera-i18n/projects/tera-calculator/messages/it.json +180 -103
- package/dist/tera-i18n/projects/tera-calculator/messages/ja.json +136 -59
- package/dist/tera-i18n/projects/tera-calculator/messages/ko.json +133 -56
- package/dist/tera-i18n/projects/tera-calculator/messages/lt.json +140 -63
- package/dist/tera-i18n/projects/tera-calculator/messages/lv.json +141 -64
- package/dist/tera-i18n/projects/tera-calculator/messages/ms.json +139 -62
- package/dist/tera-i18n/projects/tera-calculator/messages/nl.json +145 -68
- package/dist/tera-i18n/projects/tera-calculator/messages/no.json +131 -54
- package/dist/tera-i18n/projects/tera-calculator/messages/pl.json +134 -57
- package/dist/tera-i18n/projects/tera-calculator/messages/pt.json +180 -103
- package/dist/tera-i18n/projects/tera-calculator/messages/ro.json +136 -59
- package/dist/tera-i18n/projects/tera-calculator/messages/ru.json +180 -103
- package/dist/tera-i18n/projects/tera-calculator/messages/sk.json +135 -58
- package/dist/tera-i18n/projects/tera-calculator/messages/sl.json +139 -62
- package/dist/tera-i18n/projects/tera-calculator/messages/sq.json +148 -71
- package/dist/tera-i18n/projects/tera-calculator/messages/sr.json +141 -64
- package/dist/tera-i18n/projects/tera-calculator/messages/sv.json +134 -57
- package/dist/tera-i18n/projects/tera-calculator/messages/sw.json +152 -75
- package/dist/tera-i18n/projects/tera-calculator/messages/ta.json +159 -82
- package/dist/tera-i18n/projects/tera-calculator/messages/te.json +165 -88
- package/dist/tera-i18n/projects/tera-calculator/messages/th.json +136 -59
- package/dist/tera-i18n/projects/tera-calculator/messages/tl.json +146 -69
- package/dist/tera-i18n/projects/tera-calculator/messages/tr.json +135 -58
- package/dist/tera-i18n/projects/tera-calculator/messages/uk.json +142 -65
- package/dist/tera-i18n/projects/tera-calculator/messages/vi.json +181 -104
- package/dist/tera-i18n/projects/tera-calculator/messages/zh-CN.json +129 -52
- package/dist/tera-i18n/projects/tera-calculator/messages/zh-TW.json +135 -58
- package/dist/tera-i18n/projects/tera-calculator/project.inlang/settings.json +51 -53
- package/dist/tera-i18n/projects/tera-calculator/supported-language.js +6 -3
- package/package.json +4 -3
- package/dist/paraglide/messages/ar.d.ts +0 -9
- package/dist/paraglide/messages/ar.js +0 -31
- package/dist/paraglide/messages/bg.d.ts +0 -9
- package/dist/paraglide/messages/bg.js +0 -31
- package/dist/paraglide/messages/bn.d.ts +0 -9
- package/dist/paraglide/messages/bn.js +0 -31
- package/dist/paraglide/messages/ca.d.ts +0 -9
- package/dist/paraglide/messages/ca.js +0 -31
- package/dist/paraglide/messages/cs.d.ts +0 -9
- package/dist/paraglide/messages/cs.js +0 -31
- package/dist/paraglide/messages/da.d.ts +0 -9
- package/dist/paraglide/messages/da.js +0 -31
- package/dist/paraglide/messages/de.d.ts +0 -9
- package/dist/paraglide/messages/de.js +0 -31
- package/dist/paraglide/messages/el.d.ts +0 -9
- package/dist/paraglide/messages/el.js +0 -31
- package/dist/paraglide/messages/en.d.ts +0 -9
- package/dist/paraglide/messages/en.js +0 -31
- package/dist/paraglide/messages/es.d.ts +0 -9
- package/dist/paraglide/messages/es.js +0 -31
- package/dist/paraglide/messages/fi.d.ts +0 -9
- package/dist/paraglide/messages/fi.js +0 -31
- package/dist/paraglide/messages/fr.d.ts +0 -9
- package/dist/paraglide/messages/fr.js +0 -31
- package/dist/paraglide/messages/he.d.ts +0 -9
- package/dist/paraglide/messages/he.js +0 -31
- package/dist/paraglide/messages/hi.d.ts +0 -9
- package/dist/paraglide/messages/hi.js +0 -31
- package/dist/paraglide/messages/hu.d.ts +0 -9
- package/dist/paraglide/messages/hu.js +0 -31
- package/dist/paraglide/messages/id.d.ts +0 -9
- package/dist/paraglide/messages/id.js +0 -31
- package/dist/paraglide/messages/it.d.ts +0 -9
- package/dist/paraglide/messages/it.js +0 -31
- package/dist/paraglide/messages/ja.d.ts +0 -9
- package/dist/paraglide/messages/ja.js +0 -31
- package/dist/paraglide/messages/ko.d.ts +0 -9
- package/dist/paraglide/messages/ko.js +0 -31
- package/dist/paraglide/messages/lt.d.ts +0 -9
- package/dist/paraglide/messages/lt.js +0 -31
- package/dist/paraglide/messages/lv.d.ts +0 -9
- package/dist/paraglide/messages/lv.js +0 -31
- package/dist/paraglide/messages/ms.d.ts +0 -9
- package/dist/paraglide/messages/ms.js +0 -31
- package/dist/paraglide/messages/nl.d.ts +0 -9
- package/dist/paraglide/messages/nl.js +0 -31
- package/dist/paraglide/messages/no.d.ts +0 -9
- package/dist/paraglide/messages/no.js +0 -31
- package/dist/paraglide/messages/pl.d.ts +0 -9
- package/dist/paraglide/messages/pl.js +0 -31
- package/dist/paraglide/messages/pt.d.ts +0 -9
- package/dist/paraglide/messages/pt.js +0 -31
- package/dist/paraglide/messages/ro.d.ts +0 -9
- package/dist/paraglide/messages/ro.js +0 -31
- package/dist/paraglide/messages/ru.d.ts +0 -9
- package/dist/paraglide/messages/ru.js +0 -31
- package/dist/paraglide/messages/sk.d.ts +0 -9
- package/dist/paraglide/messages/sk.js +0 -31
- package/dist/paraglide/messages/sl.d.ts +0 -9
- package/dist/paraglide/messages/sl.js +0 -31
- package/dist/paraglide/messages/sq.d.ts +0 -9
- package/dist/paraglide/messages/sq.js +0 -31
- package/dist/paraglide/messages/sr.d.ts +0 -9
- package/dist/paraglide/messages/sr.js +0 -31
- package/dist/paraglide/messages/sv.d.ts +0 -9
- package/dist/paraglide/messages/sv.js +0 -31
- package/dist/paraglide/messages/sw.d.ts +0 -9
- package/dist/paraglide/messages/sw.js +0 -31
- package/dist/paraglide/messages/ta.d.ts +0 -9
- package/dist/paraglide/messages/ta.js +0 -31
- package/dist/paraglide/messages/te.d.ts +0 -9
- package/dist/paraglide/messages/te.js +0 -31
- package/dist/paraglide/messages/th.d.ts +0 -9
- package/dist/paraglide/messages/th.js +0 -31
- package/dist/paraglide/messages/tl.d.ts +0 -9
- package/dist/paraglide/messages/tl.js +0 -31
- package/dist/paraglide/messages/tr.d.ts +0 -9
- package/dist/paraglide/messages/tr.js +0 -31
- package/dist/paraglide/messages/uk.d.ts +0 -9
- package/dist/paraglide/messages/uk.js +0 -31
- package/dist/paraglide/messages/vi.d.ts +0 -9
- package/dist/paraglide/messages/vi.js +0 -31
- package/dist/paraglide/messages/zh-CN.d.ts +0 -9
- package/dist/paraglide/messages/zh-CN.js +0 -31
- package/dist/paraglide/messages/zh-TW.d.ts +0 -9
- package/dist/paraglide/messages/zh-TW.js +0 -31
- package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-cv-maker.txt +0 -21
- package/dist/tera-i18n/projects/cv-maker/project.inlang/project_id +0 -1
- package/dist/tera-i18n/projects/tera-calculator/messages/ar.json +0 -106
- package/dist/tera-i18n/projects/tera-calculator/messages/he.json +0 -106
- package/dist/tera-i18n/projects/tera-calculator/project.inlang/project_id +0 -1
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
# tera-system-ui Component Library
|
|
2
|
+
|
|
3
|
+
Svelte 5 UI library built with Tailwind CSS and tailwind-variants.
|
|
4
|
+
|
|
5
|
+
## Quick Import
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { Button, Input, Dialog } from 'tera-system-ui';
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
Import base CSS in your app:
|
|
14
|
+
```typescript
|
|
15
|
+
import 'tera-system-ui/lib/themes/tera-ui-base.css';
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Add dark mode class to html: `<html class="dark">` or use `LightDarkToggle` component.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Core Patterns
|
|
23
|
+
|
|
24
|
+
### Variant Props
|
|
25
|
+
All components use `variant`, `size`, and `disabled` props via tailwind-variants.
|
|
26
|
+
|
|
27
|
+
### Ref Forwarding
|
|
28
|
+
All components expose `ref` prop for imperative access.
|
|
29
|
+
|
|
30
|
+
### Snippets
|
|
31
|
+
Svelte 5 snippets via `children?: Snippet`.
|
|
32
|
+
|
|
33
|
+
### Dark Mode
|
|
34
|
+
Toggle with `.dark` class on container. Components auto-adapt via CSS variables.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Design Token System
|
|
39
|
+
|
|
40
|
+
### Color Tokens
|
|
41
|
+
|
|
42
|
+
**Primary (Blue):**
|
|
43
|
+
| Token | Light | Dark | Usage |
|
|
44
|
+
|-------|-------|------|-------|
|
|
45
|
+
| `--color-primary-50` | rgb(235, 243, 254) | rgb(25, 55, 103) | Lightest bg |
|
|
46
|
+
| `--color-primary-100` | rgb(194, 216, 252) | rgb(32, 72, 135) | Hover bg |
|
|
47
|
+
| `--color-primary-500` | rgb(59, 130, 246) | rgb(98, 155, 248) | Default |
|
|
48
|
+
| `--color-primary-600` | rgb(54, 118, 224) | rgb(124, 171, 249) | Hover |
|
|
49
|
+
| `--color-primary-700` | rgb(42, 92, 175) | rgb(165, 198, 251) | Active |
|
|
50
|
+
|
|
51
|
+
**Neutral Tokens (for backgrounds/borders):**
|
|
52
|
+
| Token | Light | Dark | Usage |
|
|
53
|
+
|-------|-------|------|-------|
|
|
54
|
+
| `--color-neutral-token-1` | rgb(255,255,255) | rgb(0,0,0) | Page bg |
|
|
55
|
+
| `--color-neutral-token-3` | rgb(245,245,245) | rgb(31,31,31) | Input bg |
|
|
56
|
+
| `--color-neutral-token-5` | rgb(217,217,217) | rgb(69,69,69) | Borders |
|
|
57
|
+
| `--color-neutral-token-7` | rgb(140,140,140) | rgb(140,140,140) | Muted text |
|
|
58
|
+
| `--color-neutral-token-13` | rgb(0,0,0) | rgb(255,255,255) | Text |
|
|
59
|
+
|
|
60
|
+
**Semantic Colors:**
|
|
61
|
+
- `--color-error-*`: Red (validation, danger actions)
|
|
62
|
+
- `--color-warning-*`: Orange (warnings)
|
|
63
|
+
- `--color-success-*`: Green (success states)
|
|
64
|
+
- `--color-brand-*`: Brand blue
|
|
65
|
+
|
|
66
|
+
### Typography
|
|
67
|
+
|
|
68
|
+
```css
|
|
69
|
+
--font-sans: "Open Sans Variable", system-ui, sans-serif;
|
|
70
|
+
--font-mono: "Roboto Mono Variable", monospace;
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Spacing / Sizing
|
|
74
|
+
|
|
75
|
+
```css
|
|
76
|
+
--tera-control-height-xs: 20px; /* Button xs */
|
|
77
|
+
--tera-control-height-sm: 24px; /* Button sm */
|
|
78
|
+
--tera-control-height-base: 32px; /* Button md */
|
|
79
|
+
--tera-control-height-lg: 40px; /* Button lg */
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Border Radius
|
|
83
|
+
|
|
84
|
+
```css
|
|
85
|
+
--tera-radius-sm: 2px;
|
|
86
|
+
--tera-radius-base: 6px; /* Default */
|
|
87
|
+
--tera-radius-lg: 8px;
|
|
88
|
+
--border-radius-container: 0.5rem; /* Cards, dialogs */
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Transitions
|
|
92
|
+
|
|
93
|
+
```css
|
|
94
|
+
--tera-transition-fast: 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
95
|
+
--tera-transition-base: 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
96
|
+
--tera-transition-slow: 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Shadows / Focus
|
|
100
|
+
|
|
101
|
+
```css
|
|
102
|
+
--tera-focus-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
|
|
103
|
+
--tera-focus-shadow-error: 0 0 0 2px rgba(239, 68, 68, 0.1);
|
|
104
|
+
--tera-focus-shadow-warning: 0 0 0 2px rgba(249, 115, 22, 0.1);
|
|
105
|
+
--tera-focus-shadow-success: 0 0 0 2px rgba(34, 197, 94, 0.1);
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Header Height
|
|
109
|
+
|
|
110
|
+
```css
|
|
111
|
+
--header-height: 3rem; /* Mobile */
|
|
112
|
+
--header-height: 3.5rem; /* >= md breakpoint */
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Component Usage
|
|
118
|
+
|
|
119
|
+
### Button
|
|
120
|
+
```typescript
|
|
121
|
+
import { Button, ButtonProps } from 'tera-system-ui';
|
|
122
|
+
```
|
|
123
|
+
**Props:**
|
|
124
|
+
- `variant?: 'primary' | 'default' | 'dashed' | 'text' | 'link'`
|
|
125
|
+
- `size?: 'xs' | 'sm' | 'md' | 'lg'`
|
|
126
|
+
- `shape?: 'default' | 'circle' | 'round'`
|
|
127
|
+
- `disabled?: boolean`
|
|
128
|
+
- `loading?: boolean`
|
|
129
|
+
- `icon?: boolean` (removes padding for icon-only)
|
|
130
|
+
- `danger?: boolean` (red variant for destructive actions)
|
|
131
|
+
- `block?: boolean` (full width)
|
|
132
|
+
|
|
133
|
+
**Example:**
|
|
134
|
+
```svelte
|
|
135
|
+
<Button variant="primary" size="md" onclick={() => handleClick()}>
|
|
136
|
+
Save
|
|
137
|
+
</Button>
|
|
138
|
+
<Button variant="danger" icon>
|
|
139
|
+
<IconTrash />
|
|
140
|
+
</Button>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Input
|
|
144
|
+
```typescript
|
|
145
|
+
import { Input, InputProps } from 'tera-system-ui';
|
|
146
|
+
```
|
|
147
|
+
**Props:**
|
|
148
|
+
- `variant?: 'outlined' | 'filled' | 'borderless'`
|
|
149
|
+
- `size?: 'sm' | 'md' | 'lg'`
|
|
150
|
+
- `disabled?: boolean`
|
|
151
|
+
- `status?: 'error' | 'warning'`
|
|
152
|
+
- `value?: string`
|
|
153
|
+
- `prefix?: Snippet` (icon before input)
|
|
154
|
+
- `suffix?: Snippet` (icon after input)
|
|
155
|
+
- `allowClear?: boolean`
|
|
156
|
+
|
|
157
|
+
**Example:**
|
|
158
|
+
```svelte
|
|
159
|
+
<Input placeholder="Enter name" prefix={<IconSearch />} />
|
|
160
|
+
<Input status="error" value={value} oninput={(e) => handleInput(e)} />
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Select
|
|
164
|
+
```typescript
|
|
165
|
+
import { Select, SelectProps } from 'tera-system-ui';
|
|
166
|
+
```
|
|
167
|
+
Same variants as Input. Uses native `<select>` with chevron icon.
|
|
168
|
+
|
|
169
|
+
**Example:**
|
|
170
|
+
```svelte
|
|
171
|
+
<Select value={selected} onchange={(e) => handleChange(e.target.value)}>
|
|
172
|
+
<option value="a">Option A</option>
|
|
173
|
+
<option value="b">Option B</option>
|
|
174
|
+
</Select>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Combobox
|
|
178
|
+
```typescript
|
|
179
|
+
import { Combobox, ComboboxProps } from 'tera-system-ui';
|
|
180
|
+
```
|
|
181
|
+
Wrapper for bits-ui command palette. No variant props.
|
|
182
|
+
|
|
183
|
+
### TextArea
|
|
184
|
+
```typescript
|
|
185
|
+
import { TextArea, TextAreaProps, AutoSizeConfig } from 'tera-system-ui';
|
|
186
|
+
```
|
|
187
|
+
**Props:**
|
|
188
|
+
- `variant?: 'outlined' | 'filled' | 'borderless'`
|
|
189
|
+
- `size?: 'sm' | 'md' | 'lg'`
|
|
190
|
+
- `autoSize?: boolean | { minRows?: number, maxRows?: number }`
|
|
191
|
+
- `allowClear?: boolean`
|
|
192
|
+
- `showCount?: boolean`
|
|
193
|
+
- `maxLength?: number`
|
|
194
|
+
|
|
195
|
+
**Example:**
|
|
196
|
+
```svelte
|
|
197
|
+
<TextArea placeholder="Description" autoSize={{ minRows: 2, maxRows: 6 }} />
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Checkbox
|
|
201
|
+
```typescript
|
|
202
|
+
import { Checkbox, CheckboxProps } from 'tera-system-ui';
|
|
203
|
+
```
|
|
204
|
+
**Example:**
|
|
205
|
+
```svelte
|
|
206
|
+
<Checkbox checked={checked} onchange={() => toggle()}>
|
|
207
|
+
Accept terms
|
|
208
|
+
</Checkbox>
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Switch
|
|
212
|
+
```typescript
|
|
213
|
+
import { Switch, SwitchProps } from 'tera-system-ui';
|
|
214
|
+
```
|
|
215
|
+
**Props:** `checked?: boolean`
|
|
216
|
+
|
|
217
|
+
**Example:**
|
|
218
|
+
```svelte
|
|
219
|
+
<Switch checked={enabled} onchange={() => toggle()} />
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Slider
|
|
223
|
+
```typescript
|
|
224
|
+
import { Slider, SliderProps } from 'tera-system-ui';
|
|
225
|
+
```
|
|
226
|
+
**Props:** `min: number`, `max: number`, `step: number`, `value: number`, `showTicks?: boolean`, `onchange?: (value: number) => void`
|
|
227
|
+
|
|
228
|
+
**Example:**
|
|
229
|
+
```svelte
|
|
230
|
+
<Slider min={0} max={100} step={1} value={50} showTicks onchange={(v) => handleChange(v)} />
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### StarRating
|
|
234
|
+
```typescript
|
|
235
|
+
import { StarRating, StarRatingProps } from 'tera-system-ui';
|
|
236
|
+
```
|
|
237
|
+
**Props:** `size?: 'sm' | 'md' | 'lg'`, `value?: number`, `onchange?: (value: number) => void`
|
|
238
|
+
|
|
239
|
+
**Example:**
|
|
240
|
+
```svelte
|
|
241
|
+
<StarRating value={4} onchange={(v) => setRating(v)} />
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Dialog
|
|
245
|
+
```typescript
|
|
246
|
+
import { Dialog, DialogProps, DialogPropsAstro } from 'tera-system-ui';
|
|
247
|
+
```
|
|
248
|
+
**Props:**
|
|
249
|
+
- `open?: boolean`
|
|
250
|
+
- `closeOnClickOutside?: boolean`
|
|
251
|
+
- `closeButton?: boolean`
|
|
252
|
+
- `position?: 'top' | 'center'`
|
|
253
|
+
- `focusTriggerAfterClose?: boolean`
|
|
254
|
+
- `header?: Snippet`
|
|
255
|
+
- `footer?: Snippet`
|
|
256
|
+
- `staticRender?: boolean` (render without open/close animation)
|
|
257
|
+
- `triggerRef?: HTMLElement` (returns focus here on close)
|
|
258
|
+
- `padding?: 'none'`
|
|
259
|
+
|
|
260
|
+
**Example:**
|
|
261
|
+
```svelte
|
|
262
|
+
<Dialog open={showDialog} onclose={() => showDialog = false}>
|
|
263
|
+
{#snippet header()}Confirm Action{/snippet}
|
|
264
|
+
Are you sure?
|
|
265
|
+
{#snippet footer()}
|
|
266
|
+
<Button onclick={() => showDialog = false}>Cancel</Button>
|
|
267
|
+
<Button variant="primary" onclick={() => confirm()}>Confirm</Button>
|
|
268
|
+
{/snippet}
|
|
269
|
+
</Dialog>
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### DropdownMenu
|
|
273
|
+
```typescript
|
|
274
|
+
import { DropdownMenu, DropdownMenuItem, DropdownMenuGroup, DropdownMenuHeader, DropdownMenuSeparator } from 'tera-system-ui';
|
|
275
|
+
```
|
|
276
|
+
**Props:** `triggerRef: HTMLElement`, `open?: boolean`
|
|
277
|
+
**DropdownMenuItem:** `onclick?: (e: MouseEvent) => void`, `href?: string`, `linkProps?: HTMLAnchorAttributes`
|
|
278
|
+
|
|
279
|
+
**Example:**
|
|
280
|
+
```svelte
|
|
281
|
+
<DropdownMenu triggerRef={menuButton} open={open}>
|
|
282
|
+
<DropdownMenuItem onclick={() => handleEdit()}>Edit</DropdownMenuItem>
|
|
283
|
+
<DropdownMenuSeparator />
|
|
284
|
+
<DropdownMenuItem onclick={() => handleDelete()} danger>Delete</DropdownMenuItem>
|
|
285
|
+
</DropdownMenu>
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Accordion
|
|
289
|
+
```typescript
|
|
290
|
+
import { Accordion, AccordionItem, AccordionContent, AccordionTrigger } from 'tera-system-ui';
|
|
291
|
+
```
|
|
292
|
+
**Accordion Props:**
|
|
293
|
+
- `type: 'multiple' | 'single'`
|
|
294
|
+
- `value: string | string[]`
|
|
295
|
+
- `onchange?: (value: string | string[]) => void`
|
|
296
|
+
- `controlledValue?: boolean`
|
|
297
|
+
|
|
298
|
+
**AccordionItem Props:** `value: string`
|
|
299
|
+
|
|
300
|
+
**Example:**
|
|
301
|
+
```svelte
|
|
302
|
+
<Accordion type="multiple" value={openItems} onchange={(v) => openItems = v}>
|
|
303
|
+
<AccordionItem value="item1">
|
|
304
|
+
<AccordionTrigger>What is tera-system-ui?</AccordionTrigger>
|
|
305
|
+
<AccordionContent>A Svelte 5 component library.</AccordionContent>
|
|
306
|
+
</AccordionItem>
|
|
307
|
+
</Accordion>
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Tabs
|
|
311
|
+
```typescript
|
|
312
|
+
import { Tabs, TabsList, TabsItem, TabsContent } from 'tera-system-ui';
|
|
313
|
+
```
|
|
314
|
+
**Tabs Props:** `value?: string`, `onchange?: (newTab: string) => void`
|
|
315
|
+
**TabsItem Props:** `value: string`
|
|
316
|
+
**TabsContent Props:** `value: string`
|
|
317
|
+
|
|
318
|
+
Uses Svelte context internally.
|
|
319
|
+
|
|
320
|
+
**Example:**
|
|
321
|
+
```svelte
|
|
322
|
+
<Tabs value={activeTab} onchange={(t) => activeTab = t}>
|
|
323
|
+
<TabsList>
|
|
324
|
+
<TabsItem value="tab1">Tab One</TabsItem>
|
|
325
|
+
<TabsItem value="tab2">Tab Two</TabsItem>
|
|
326
|
+
</TabsList>
|
|
327
|
+
<TabsContent value="tab1">Content 1</TabsContent>
|
|
328
|
+
<TabsContent value="tab2">Content 2</TabsContent>
|
|
329
|
+
</Tabs>
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Popover
|
|
333
|
+
```typescript
|
|
334
|
+
import { Popover, PopoverProps } from 'tera-system-ui';
|
|
335
|
+
```
|
|
336
|
+
**Props:**
|
|
337
|
+
- `triggerRef: HTMLElement`
|
|
338
|
+
- `open?: boolean`
|
|
339
|
+
- `offset?: number` (px from trigger)
|
|
340
|
+
- `padding?: number` (px from edges)
|
|
341
|
+
- `focusTriggerAfterClose?: boolean`
|
|
342
|
+
- `flip?: boolean` (flip placement in viewport)
|
|
343
|
+
- `autoTrigger?: boolean` (close on click outside)
|
|
344
|
+
|
|
345
|
+
**Example:**
|
|
346
|
+
```svelte
|
|
347
|
+
<Popover triggerRef={button} offset={8}>
|
|
348
|
+
<div class="p-4">Popover content</div>
|
|
349
|
+
</Popover>
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### PopoverResponsive
|
|
353
|
+
```typescript
|
|
354
|
+
import { PopoverResponsive, PopoverResponsiveProps } from 'tera-system-ui';
|
|
355
|
+
```
|
|
356
|
+
Responsive popover that becomes full-screen on mobile.
|
|
357
|
+
|
|
358
|
+
### SideNavigation
|
|
359
|
+
```typescript
|
|
360
|
+
import { SideNavigation, SideNavigationLayout, toggleSideNavigation, SideNavigationItem } from 'tera-system-ui';
|
|
361
|
+
```
|
|
362
|
+
**SideNavigationItem:** `{ href: string, exactHref?: string, icon?: Snippet, title: string }`
|
|
363
|
+
**SideNavigation Props:** `sideNavHref?: string`, `language?: string`, `items?: SideNavigationItem[]`, `bottomChildren?: Snippet`
|
|
364
|
+
|
|
365
|
+
**Example:**
|
|
366
|
+
```svelte
|
|
367
|
+
<SideNavigationLayout>
|
|
368
|
+
<svelte:fragment slot="sidebar">
|
|
369
|
+
<SideNavigation
|
|
370
|
+
sideNavHref="/"
|
|
371
|
+
items={[
|
|
372
|
+
{ href: '/dashboard', title: 'Dashboard', icon: IconDashboard },
|
|
373
|
+
{ href: '/settings', title: 'Settings', icon: IconSettings },
|
|
374
|
+
]}
|
|
375
|
+
/>
|
|
376
|
+
</svelte:fragment>
|
|
377
|
+
<main>Content</main>
|
|
378
|
+
</SideNavigationLayout>
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### Header
|
|
382
|
+
```typescript
|
|
383
|
+
import { Header, HeaderProps } from 'tera-system-ui';
|
|
384
|
+
```
|
|
385
|
+
**Props:** `onHamburgerClick?: () => void`
|
|
386
|
+
|
|
387
|
+
**Example:**
|
|
388
|
+
```svelte
|
|
389
|
+
<Header onHamburgerClick={() => toggleSideNav()} />
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Avatar
|
|
393
|
+
```typescript
|
|
394
|
+
import { Avatar, AvatarProps } from 'tera-system-ui';
|
|
395
|
+
```
|
|
396
|
+
**Props:**
|
|
397
|
+
- `size?: 'sm' | 'md' | 'lg' | 'xl'`
|
|
398
|
+
- `border?: boolean` (shows primary border)
|
|
399
|
+
- `alt?: string`, `src?: string`
|
|
400
|
+
- `userUid?: string`, `apiUrl?: string` (for fetching user image)
|
|
401
|
+
|
|
402
|
+
**Example:**
|
|
403
|
+
```svelte
|
|
404
|
+
<Avatar src={user.image} size="lg" border />
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### BrandLogo
|
|
408
|
+
```typescript
|
|
409
|
+
import { BrandLogo, BrandLogoProps } from 'tera-system-ui';
|
|
410
|
+
```
|
|
411
|
+
**Props:** `theme?: 'light' | 'dark' | 'auto'`, `shape?: 'square'`
|
|
412
|
+
|
|
413
|
+
### Label
|
|
414
|
+
```typescript
|
|
415
|
+
import { Label, LabelProps } from 'tera-system-ui';
|
|
416
|
+
```
|
|
417
|
+
**Props:** `size?: 'sm' | 'md' | 'lg'`, `required?: boolean` (shows asterisk)
|
|
418
|
+
|
|
419
|
+
**Example:**
|
|
420
|
+
```svelte
|
|
421
|
+
<Label for="email" required>Email</Label>
|
|
422
|
+
<Input id="email" />
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
### UserAvatarWithMenu
|
|
426
|
+
```typescript
|
|
427
|
+
import { UserAvatarWithMenu, UserAvatarWithMenuProps } from 'tera-system-ui';
|
|
428
|
+
```
|
|
429
|
+
**Props:** `user?: UserData`, `onLogout?: () => void`
|
|
430
|
+
|
|
431
|
+
Combines Avatar with DropdownMenu for user account.
|
|
432
|
+
|
|
433
|
+
### LanguagePickerButton
|
|
434
|
+
```typescript
|
|
435
|
+
import { LanguagePickerButton, LanguagePickerButtonProps } from 'tera-system-ui';
|
|
436
|
+
```
|
|
437
|
+
**Props:** `language?: string`, `supportLanguages?: string[]`, `basePath?: string`, `open?: boolean`
|
|
438
|
+
|
|
439
|
+
### LightDarkToggle
|
|
440
|
+
```typescript
|
|
441
|
+
import { LightDarkToggle, LightDarkToggleProps } from 'tera-system-ui';
|
|
442
|
+
```
|
|
443
|
+
Toggle dark/light mode. Adds/removes `.dark` class from `<html>`.
|
|
444
|
+
|
|
445
|
+
### TeraUiContext
|
|
446
|
+
```typescript
|
|
447
|
+
import { TeraUiContext, TeraUiContextProps } from 'tera-system-ui';
|
|
448
|
+
```
|
|
449
|
+
Provides global config via Svelte context:
|
|
450
|
+
- `basePath?: string`
|
|
451
|
+
- `supportLanguages?: AvailableLanguageTag[]`
|
|
452
|
+
- `language?: AvailableLanguageTag`
|
|
453
|
+
- `sideNavHref?: string`
|
|
454
|
+
- `apiUrl?: string`
|
|
455
|
+
|
|
456
|
+
### Fonts
|
|
457
|
+
```typescript
|
|
458
|
+
import { TeraFontSansSerif, TeraFontMono } from 'tera-system-ui';
|
|
459
|
+
```
|
|
460
|
+
Font components for Open Sans and Roboto Mono.
|
|
461
|
+
|
|
462
|
+
### Icons
|
|
463
|
+
```typescript
|
|
464
|
+
import { IconArrowBigRightFilled, IconBook, IconBookmarkPlus, IconCalculator, IconCheck, IconChevronDown, IconCoin, IconCoinConvert, IconCopy, IconCopyCheckFilled, IconHamburger, IconLanguage, IconLoader2, IconLogout, IconMoon, IconPointFilled, IconSearch, IconSettings, IconSun, IconSwitchHorizontal, IconSwitchVertical, IconTransform, IconX } from 'tera-system-ui';
|
|
465
|
+
```
|
|
466
|
+
Svelte icon components. All use currentColor stroke.
|
|
467
|
+
|
|
468
|
+
**Example:**
|
|
469
|
+
```svelte
|
|
470
|
+
<IconCheck class="stroke-green-500" />
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
### Command (bits-ui wrapper)
|
|
474
|
+
```typescript
|
|
475
|
+
import { Command, CommandEmpty, CommandGroup, CommandItem, CommandLinkItem, CommandInput, CommandList, CommandSeparator, CommandShortcut, CommandLoading } from 'tera-system-ui';
|
|
476
|
+
```
|
|
477
|
+
Searchable command palette (like Cmd+K).
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## Types
|
|
482
|
+
|
|
483
|
+
### UserData
|
|
484
|
+
```typescript
|
|
485
|
+
interface UserData {
|
|
486
|
+
displayName?: string;
|
|
487
|
+
profileImage?: any;
|
|
488
|
+
username?: string;
|
|
489
|
+
userUid?: string;
|
|
490
|
+
email?: string;
|
|
491
|
+
language?: string;
|
|
492
|
+
jwtToken?: JwtToken;
|
|
493
|
+
roleId?: string;
|
|
494
|
+
reputation?: string;
|
|
495
|
+
// ... additional fields
|
|
496
|
+
}
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
## Styling Guidelines
|
|
502
|
+
|
|
503
|
+
### Tailwind Classes Using Tokens
|
|
504
|
+
```html
|
|
505
|
+
<!-- Colors -->
|
|
506
|
+
<div class="bg-primary-500 text-neutral-token-13 border-neutral-token-5" />
|
|
507
|
+
<div class="bg-error-100 text-error-600" />
|
|
508
|
+
<div class="bg-success-500 text-white" />
|
|
509
|
+
|
|
510
|
+
<!-- Focus ring -->
|
|
511
|
+
<div class="focus:shadow-[0_0_0_2px_rgba(59,130,246,0.1)]" />
|
|
512
|
+
|
|
513
|
+
<!-- Heights match components -->
|
|
514
|
+
<div class="h-8"> <!-- matches --tera-control-height-base -->
|
|
515
|
+
<div class="h-10"> <!-- matches --tera-control-height-lg -->
|
|
516
|
+
|
|
517
|
+
<!-- Border radius -->
|
|
518
|
+
<div class="rounded-md"> <!-- --tera-radius-base -->
|
|
519
|
+
<div class="rounded-container"> <!-- --border-radius-container -->
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
### Dark Mode
|
|
523
|
+
```html
|
|
524
|
+
<!-- Manual -->
|
|
525
|
+
<div class="dark:bg-neutral-token-1 dark:text-neutral-token-13" />
|
|
526
|
+
|
|
527
|
+
<!-- Auto (uses :where(.dark, .dark *)) -->
|
|
528
|
+
<div class="[&.dark]:bg-neutral-token-1" />
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
## Key Implementation Details
|
|
534
|
+
|
|
535
|
+
- **Button wave effect**: `btn-wave` class + `data-variant` attribute triggers antd-style wave animation
|
|
536
|
+
- **bits-ui**: Command, Combobox, DropdownMenu use bits-ui library
|
|
537
|
+
- **Floating-ui**: Popover, DropdownMenu use floating-ui for positioning
|
|
538
|
+
- **Svelte 5 runes**: Uses `$state`, `$derived`, `$effect` internally
|
|
539
|
+
- **No default exports**: Always use named exports
|
|
@@ -10,7 +10,7 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
|
|
|
10
10
|
shape: {
|
|
11
11
|
square: string;
|
|
12
12
|
};
|
|
13
|
-
}, undefined, "
|
|
13
|
+
}, undefined, "[&>.second-part]:fill-brand-500", {
|
|
14
14
|
theme: {
|
|
15
15
|
light: string;
|
|
16
16
|
dark: string;
|
|
@@ -28,7 +28,7 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
|
|
|
28
28
|
shape: {
|
|
29
29
|
square: string;
|
|
30
30
|
};
|
|
31
|
-
}, undefined, "
|
|
31
|
+
}, undefined, "[&>.second-part]:fill-brand-500", unknown, unknown, undefined>>;
|
|
32
32
|
type BrandLogoVariants = VariantProps<typeof styles>;
|
|
33
33
|
export interface BrandLogoProps extends HTMLAttributes<HTMLDivElement>, BrandLogoVariants {
|
|
34
34
|
children?: Snippet;
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
<button class=""></button>
|
|
86
86
|
{#if (closeButton)}
|
|
87
87
|
<form method="dialog">
|
|
88
|
-
<Button class="absolute right-1 top-1 [&>svg]:opacity-45 [&>svg]:hover:opacity-90 z-10" icon
|
|
88
|
+
<Button class="!absolute right-1 top-1 [&>svg]:opacity-45 [&>svg]:hover:opacity-90 z-10" icon
|
|
89
89
|
variant="ghost"
|
|
90
90
|
size="md">
|
|
91
91
|
<IconX/>
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
</script>
|
|
135
135
|
|
|
136
136
|
|
|
137
|
-
<div bind:this={slider} class="cursor-pointer w-full relative
|
|
137
|
+
<div bind:this={slider} class="cursor-pointer w-full relative px-1 py-2.5">
|
|
138
138
|
<div data-slider-rail bind:this={sliderRail} class="w-full h-1.5 bg-neutral-token-4 rounded-full overflow-hidden hover:bg-neutral-token-5 transition-colors duration-200">
|
|
139
139
|
<div data-slider-track bind:this={sliderTrack} class="rounded-full w-full h-full bg-neutral-token-13"></div>
|
|
140
140
|
</div>
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import {type TeraUiContextProps} from "./TeraUiContext";
|
|
3
3
|
import {setGlobalContext} from "./global-context";
|
|
4
|
-
import {setLocale} from "../../paraglide/runtime";
|
|
5
4
|
|
|
6
5
|
let {
|
|
7
6
|
children,
|
|
@@ -22,7 +21,6 @@
|
|
|
22
21
|
// ...props
|
|
23
22
|
// })
|
|
24
23
|
|
|
25
|
-
setLocale(language)
|
|
26
24
|
</script>
|
|
27
25
|
|
|
28
26
|
{@render children()}
|
package/dist/paraglide/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Auto-generated i18n message functions. Import `messages.js` to use translated strings.
|
|
4
4
|
|
|
5
|
-
Compiled from:
|
|
5
|
+
Compiled from: `D:\TeraProject\Code\tera-system-ui\src\lib\tera-i18n\projects\tera-system-ui\project.inlang`
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
## What is this folder?
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
locale?: "ar" | "bg" | "bn" | "ca" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fr" | "he" | "hi" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sl" | "sq" | "sr" | "sv" | "sw" | "ta" | "te" | "th" | "tl" | "tr" | "uk" | "vi" | "zh-CN" | "zh-TW";
|
|
9
|
-
}): LocalizedString;
|
|
10
|
-
export function text_calces_documentation(inputs?: {}, options?: {
|
|
11
|
-
locale?: "ar" | "bg" | "bn" | "ca" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fr" | "he" | "hi" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sl" | "sq" | "sr" | "sv" | "sw" | "ta" | "te" | "th" | "tl" | "tr" | "uk" | "vi" | "zh-CN" | "zh-TW";
|
|
12
|
-
}): LocalizedString;
|
|
13
|
-
export function text_account_settings(inputs?: {}, options?: {
|
|
14
|
-
locale?: "ar" | "bg" | "bn" | "ca" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fr" | "he" | "hi" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sl" | "sq" | "sr" | "sv" | "sw" | "ta" | "te" | "th" | "tl" | "tr" | "uk" | "vi" | "zh-CN" | "zh-TW";
|
|
15
|
-
}): LocalizedString;
|
|
16
|
-
export function text_logout(inputs?: {}, options?: {
|
|
17
|
-
locale?: "ar" | "bg" | "bn" | "ca" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fr" | "he" | "hi" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sl" | "sq" | "sr" | "sv" | "sw" | "ta" | "te" | "th" | "tl" | "tr" | "uk" | "vi" | "zh-CN" | "zh-TW";
|
|
18
|
-
}): LocalizedString;
|
|
19
|
-
export function text_currency_converter(inputs?: {}, options?: {
|
|
20
|
-
locale?: "ar" | "bg" | "bn" | "ca" | "cs" | "da" | "de" | "el" | "en" | "es" | "fi" | "fr" | "he" | "hi" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "ms" | "nl" | "no" | "pl" | "pt" | "ro" | "ru" | "sk" | "sl" | "sq" | "sr" | "sv" | "sw" | "ta" | "te" | "th" | "tl" | "tr" | "uk" | "vi" | "zh-CN" | "zh-TW";
|
|
21
|
-
}): LocalizedString;
|
|
1
|
+
export * from "./text_select_language.js";
|
|
2
|
+
export * from "./text_unit_converter.js";
|
|
3
|
+
export * from "./text_calces_scientific_calculator.js";
|
|
4
|
+
export * from "./text_calces_documentation.js";
|
|
5
|
+
export * from "./text_account_settings.js";
|
|
6
|
+
export * from "./text_logout.js";
|
|
7
|
+
export * from "./text_currency_converter.js";
|
|
22
8
|
export type LocalizedString = import("../runtime.js").LocalizedString;
|