@zambon-dev/ui 0.0.1-bootstrap.0 → 1.1.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.
Files changed (43) hide show
  1. package/CHANGELOG.md +177 -0
  2. package/README.md +81 -81
  3. package/fesm2022/zambon-dev-ui-framework.mjs +5995 -3980
  4. package/fesm2022/zambon-dev-ui-framework.mjs.map +1 -1
  5. package/fesm2022/zambon-dev-ui-library.mjs +6003 -4272
  6. package/fesm2022/zambon-dev-ui-library.mjs.map +1 -1
  7. package/fesm2022/zambon-dev-ui-shared.mjs +2758 -1790
  8. package/fesm2022/zambon-dev-ui-shared.mjs.map +1 -1
  9. package/fesm2022/zambon-dev-ui-testing.mjs +73 -77
  10. package/fesm2022/zambon-dev-ui-testing.mjs.map +1 -1
  11. package/fesm2022/zambon-dev-ui.mjs +6 -8
  12. package/i18n/framework/en.json +63 -63
  13. package/i18n/framework/pt.json +63 -63
  14. package/i18n/shared/external-content/en.json +12 -12
  15. package/i18n/shared/external-content/pt.json +12 -12
  16. package/i18n/shared/language-selector/en.json +5 -5
  17. package/i18n/shared/language-selector/pt.json +5 -5
  18. package/i18n/shared/login/en.json +16 -14
  19. package/i18n/shared/login/pt.json +16 -14
  20. package/i18n/shared/operations-history/en.json +5 -5
  21. package/i18n/shared/operations-history/pt.json +5 -5
  22. package/i18n/shared/services-history/en.json +14 -14
  23. package/i18n/shared/services-history/pt.json +14 -14
  24. package/i18n/shared/top-bar/en.json +10 -7
  25. package/i18n/shared/top-bar/pt.json +10 -7
  26. package/package.json +1 -1
  27. package/styles/common.scss +9 -10
  28. package/styles/components/card.scss +19 -13
  29. package/styles/components/dropdown-static.scss +33 -35
  30. package/styles/components/input-group.scss +48 -44
  31. package/styles/components/input.scss +120 -99
  32. package/styles/components/label.scss +6 -3
  33. package/styles/components/row.scss +48 -48
  34. package/styles/mixins/background.scss +31 -31
  35. package/styles/theme.css +307 -75
  36. package/styles/variables.scss +86 -60
  37. package/types/zambon-dev-ui-framework.d.ts +1470 -1029
  38. package/types/zambon-dev-ui-library.d.ts +1689 -1165
  39. package/types/zambon-dev-ui-shared.d.ts +630 -543
  40. package/types/zambon-dev-ui-testing.d.ts +25 -30
  41. package/types/zambon-dev-ui.d.ts +6 -3
  42. package/fesm2022/zambon-dev-ui.mjs.map +0 -1
  43. package/styles/components/button.scss +0 -101
@@ -1,60 +1,86 @@
1
- :root {
2
- /* Dimensions */
3
- --sidebar-animation-duration: 600ms;
4
- --sidebar-collapsed-width: 70px;
5
- --sidebar-expanded-width: 220px;
6
- --sidebar-icon-collapsed-margin: 10px;
7
- --sidebar-item-height: 2.75rem;
8
- --sidebar-logo-height: 50px;
9
- --sidebar-picture-size: 50px;
10
-
11
- /* Surfaces & colors — translucent "glass" (brand-tinted) */
12
- --sidebar-bg: color-mix(in srgb, var(--color-primary-600) 82%, transparent);
13
- --sidebar-nav-bg: color-mix(in srgb, white 5%, transparent);
14
- --sidebar-text: var(--color-gray-100);
15
- --sidebar-text-muted: color-mix(in srgb, var(--color-gray-100) 60%, transparent);
16
- --sidebar-item-hover-bg: color-mix(in srgb, white 12%, transparent);
17
- --sidebar-item-selected-bg: color-mix(in srgb, white 22%, transparent);
18
- --sidebar-item-selected-text: var(--color-white);
19
- --sidebar-accent: var(--color-gray-100);
20
- --sidebar-tree-line: color-mix(in srgb, white 80%, var(--color-primary-600));
21
-
22
- /* Glass */
23
- --sidebar-blur: 16px;
24
- --sidebar-shadow: 0 10px 40px -12px rgba(0, 0, 0, 0.45);
25
- /* App background the glass sidebar floats over (tune to taste). */
26
- --app-backdrop: linear-gradient(160deg, var(--color-gray-100) 0%, var(--color-gray-300) 100%);
27
-
28
- /* Radii (rounded restyle) */
29
- --sidebar-radius: 1.25rem;
30
- --sidebar-item-radius: 10px;
31
-
32
- /* Tabs — a light glass card the views live in. The sidebar's glass is brand-tinted
33
- and dark; this one is white-tinted, because the panel holds forms and grids that
34
- need dark-on-light contrast. Same language (blur, radius, shadow), different hue. */
35
- --tabs-item-bg: color-mix(in srgb, white 45%, transparent);
36
- --tabs-item-hover-bg: color-mix(in srgb, white 70%, transparent);
37
- --tabs-item-active-bg: color-mix(in srgb, white 88%, transparent);
38
- --tabs-item-text: var(--color-gray-600);
39
- --tabs-item-active-text: var(--color-gray-900);
40
- --tabs-content-bg: color-mix(in srgb, white 88%, transparent);
41
- --tabs-border: color-mix(in srgb, white 60%, transparent);
42
- --tabs-close: var(--color-gray-400);
43
- --tabs-close-hover-bg: color-mix(in srgb, var(--color-gray-900) 10%, transparent);
44
- --tabs-close-hover: var(--color-gray-700);
45
-
46
- /* Glass — softer than the sidebar's, which floats over the backdrop rather than content. */
47
- --tabs-blur: 16px;
48
- --tabs-shadow: 0 10px 40px -12px rgba(0, 0, 0, 0.25);
49
-
50
- /* Radii & dimensions */
51
- --tabs-radius: 1.25rem;
52
- --tabs-item-radius: 10px;
53
- --tabs-height: 2.75rem;
54
- --tabs-item-max-width: 14rem;
55
- /* Tabs compress to this before the strip starts scrolling -- still wide enough for a few
56
- characters plus the close button, so a compressed tab is identifiable rather than a stub. */
57
- --tabs-item-min-width: 7rem;
58
- --tabs-scroll-width: 1.75rem;
59
- --tabs-fade-width: 1.5rem;
60
- }
1
+ /*
2
+ * Component tokens -- the published contract.
3
+ *
4
+ * These names are API: applications override them, and the CHANGELOG documents them. So they stay.
5
+ * What changed is where their values come from. Each one now names a role in the semantic core
6
+ * (see shared/styles/theme.css) instead of repeating a literal, which is what lets a theme move
7
+ * them all at once. The component token is the contract; the core is the implementation.
8
+ *
9
+ * Wrapped in a cascade layer on purpose. Until now an application's override only won if its
10
+ * stylesheet was imported after this one -- same selector, same specificity, later wins. An
11
+ * unlayered declaration beats any layer whatever the order, so an override now wins either way.
12
+ * This can only make an override win more, never less. Override without a layer.
13
+ *
14
+ * A consequence worth knowing: a static override pins that token in both themes. To vary by theme,
15
+ * write `:root[data-theme='dark'] { --sidebar-bg: ... }` -- same specificity as ours, declared
16
+ * later, so it wins. Note that the dark block in theme.css touches core tokens only and never
17
+ * these, so a brand override stays yours in both themes without any work.
18
+ */
19
+ @layer tokens {
20
+ :root {
21
+ /* Dimensions. Geometry of a component rather than design decisions, so they stay literal. */
22
+ --sidebar-collapsed-width: 70px;
23
+ --sidebar-expanded-width: 220px;
24
+ --sidebar-icon-collapsed-margin: 10px;
25
+ --sidebar-item-height: 2.75rem;
26
+ --sidebar-logo-height: 50px;
27
+ --sidebar-picture-size: 50px;
28
+
29
+ /* Surfaces & colors -- translucent "glass" (brand-tinted) */
30
+ --sidebar-animation-duration: var(--duration-long);
31
+ --sidebar-bg: var(--color-surface-brand);
32
+ /* A single 5% rung with no pair in the core. Adding one for one use would be a worse trade,
33
+ and it reads correctly in both themes because the surface beneath it is dark in both. */
34
+ --sidebar-nav-bg: color-mix(in srgb, white 5%, transparent);
35
+ --sidebar-text: var(--color-content-on-brand);
36
+ --sidebar-text-muted: var(--color-content-on-brand-muted);
37
+ --sidebar-item-hover-bg: var(--state-hover-on-brand);
38
+ --sidebar-item-selected-bg: var(--state-selected-on-brand);
39
+ --sidebar-item-selected-text: var(--color-content-on-accent);
40
+ --sidebar-accent: var(--color-content-on-brand);
41
+ --sidebar-tree-line: var(--color-line-on-brand);
42
+
43
+ /* Glass */
44
+ --sidebar-blur: var(--blur-glass);
45
+ --sidebar-shadow: var(--shadow-float-strong);
46
+ /* App background the glass sidebar floats over. A gradient, so it has no home in --color-*;
47
+ the dark theme restates it in theme.css. */
48
+ --app-backdrop: linear-gradient(160deg, var(--color-gray-100) 0%, var(--color-gray-300) 100%);
49
+
50
+ /* Radii (rounded restyle) */
51
+ --sidebar-radius: var(--radius-surface);
52
+ --sidebar-item-radius: var(--radius-control);
53
+
54
+ /* Tabs -- a light glass card the views live in. The sidebar's glass is brand-tinted
55
+ and dark; this one is white-tinted, because the panel holds forms and grids that
56
+ need dark-on-light contrast. Same language (blur, radius, shadow), different hue.
57
+
58
+ That the active tab and the panel now resolve to one token is the point: they are a single
59
+ surface, which is why no seam shows between them. */
60
+ --tabs-item-bg: var(--color-surface-glass-weak);
61
+ --tabs-item-hover-bg: var(--color-surface-glass);
62
+ --tabs-item-active-bg: var(--color-surface-glass-strong);
63
+ --tabs-item-text: var(--color-content-secondary);
64
+ --tabs-item-active-text: var(--color-content-primary);
65
+ --tabs-content-bg: var(--color-surface-glass-strong);
66
+ --tabs-border: var(--color-line-on-glass);
67
+ --tabs-close: var(--color-content-subtle);
68
+ --tabs-close-hover-bg: var(--state-pressed);
69
+ --tabs-close-hover: var(--color-gray-700);
70
+
71
+ /* Glass -- softer than the sidebar's, which floats over the backdrop rather than content. */
72
+ --tabs-blur: var(--blur-glass);
73
+ --tabs-shadow: var(--shadow-float);
74
+
75
+ /* Radii & dimensions */
76
+ --tabs-radius: var(--radius-surface);
77
+ --tabs-item-radius: var(--radius-control);
78
+ --tabs-height: 2.75rem;
79
+ --tabs-item-max-width: 14rem;
80
+ /* Tabs compress to this before the strip starts scrolling -- still wide enough for a few
81
+ characters plus the close button, so a compressed tab is identifiable rather than a stub. */
82
+ --tabs-item-min-width: 7rem;
83
+ --tabs-scroll-width: 1.75rem;
84
+ --tabs-fade-width: 1.5rem;
85
+ }
86
+ }