seblify 0.3.0 → 0.4.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 (118) hide show
  1. package/README.md +77 -54
  2. package/dist/components/AppShell.svelte +1 -1
  3. package/dist/components/Banner.svelte +3 -3
  4. package/dist/components/Button.svelte +4 -4
  5. package/dist/components/action/button/button/Button.svelte +1041 -0
  6. package/dist/components/action/button/button/Button.svelte.d.ts +28 -0
  7. package/dist/components/action/button/button-group/ButtonGroup.svelte +146 -0
  8. package/dist/components/action/button/button-group/ButtonGroup.svelte.d.ts +14 -0
  9. package/dist/components/action/button/floating-action-button/FloatingActionButton.svelte +1102 -0
  10. package/dist/components/action/button/floating-action-button/FloatingActionButton.svelte.d.ts +26 -0
  11. package/dist/components/action/button/icon-button/IconButton.svelte +954 -0
  12. package/dist/components/action/button/icon-button/IconButton.svelte.d.ts +22 -0
  13. package/dist/components/action/button/timed-button/TimedButton.svelte +1143 -0
  14. package/dist/components/action/button/timed-button/TimedButton.svelte.d.ts +32 -0
  15. package/dist/components/action/button/toggle-button/ToggleButton.svelte +1109 -0
  16. package/dist/components/action/button/toggle-button/ToggleButton.svelte.d.ts +28 -0
  17. package/dist/components/action/button/toggle-button-group/ToggleButtonGroup.svelte +242 -0
  18. package/dist/components/action/button/toggle-button-group/ToggleButtonGroup.svelte.d.ts +19 -0
  19. package/dist/components/action/button/toggle-button-group/ToggleButtonGroup.test.svelte +36 -0
  20. package/dist/components/action/button/toggle-button-group/ToggleButtonGroup.test.svelte.d.ts +11 -0
  21. package/dist/components/action/button/toggle-button-group/context.d.ts +8 -0
  22. package/dist/components/action/button/toggle-button-group/context.js +8 -0
  23. package/dist/components/action/input/field/pin-input/PinInput.svelte +4 -4
  24. package/dist/components/action/input/select/checkbox/Checkbox.svelte +4484 -167
  25. package/dist/components/action/input/select/checkbox/Checkbox.svelte.d.ts +22 -1
  26. package/dist/components/action/input/select/checkbox/checkbox-relations.svelte.d.ts +11 -12
  27. package/dist/components/action/input/select/checkbox/checkbox-relations.svelte.js +56 -8
  28. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/bounce.d.ts +1 -0
  29. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/bounce.html +27 -0
  30. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/bounce.js +13 -0
  31. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/bump.d.ts +1 -0
  32. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/bump.html +12 -0
  33. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/bump.js +13 -0
  34. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/draw.d.ts +1 -0
  35. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/draw.html +12 -0
  36. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/draw.js +12 -0
  37. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/fade.d.ts +1 -0
  38. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/fade.html +12 -0
  39. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/fade.js +12 -0
  40. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/pop.d.ts +1 -0
  41. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/pop.html +12 -0
  42. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/pop.js +13 -0
  43. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/rise.d.ts +1 -0
  44. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/rise.html +27 -0
  45. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/rise.js +13 -0
  46. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/scale.d.ts +1 -0
  47. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/scale.html +27 -0
  48. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/scale.js +13 -0
  49. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/visual-state.d.ts +1 -0
  50. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/visual-state.html +12 -0
  51. package/dist/components/action/input/select/checkbox/tests/visual-fixtures/visual-state.js +278 -0
  52. package/dist/components/action/input/select/{theme-switch/ThemeSwitch.svelte → color-mode-switch/ColorModeSwitch.svelte} +8 -8
  53. package/dist/components/action/input/select/color-mode-switch/ColorModeSwitch.svelte.d.ts +10 -0
  54. package/dist/components/action/input/select/segment-control/SegmentControl.svelte +2 -2
  55. package/dist/components/action/input/select/slider/Slider.svelte +1 -1
  56. package/dist/components/action/input/select/switch/Switch.svelte +678 -82
  57. package/dist/components/action/input/select/switch/Switch.svelte.d.ts +1 -1
  58. package/dist/components/display/annotation/badge/Badge.svelte +732 -63
  59. package/dist/components/display/annotation/badge/Badge.svelte.d.ts +1 -1
  60. package/dist/components/display/annotation/tag/Tag.svelte +663 -70
  61. package/dist/components/display/annotation/tag/Tag.svelte.d.ts +3 -1
  62. package/dist/components/display/data-display/metric/date-time/DateTimeValue.svelte +59 -0
  63. package/dist/components/display/data-display/metric/date-time/DateTimeValue.svelte.d.ts +13 -0
  64. package/dist/components/display/data-display/metric/date-time/DateValue.svelte +52 -0
  65. package/dist/components/display/data-display/metric/date-time/DateValue.svelte.d.ts +11 -0
  66. package/dist/components/display/data-display/metric/date-time/TimeValue.svelte +55 -0
  67. package/dist/components/display/data-display/metric/date-time/TimeValue.svelte.d.ts +12 -0
  68. package/dist/components/display/data-display/metric/relative-time/RelativeTime.svelte +17 -0
  69. package/dist/components/display/data-display/metric/relative-time/RelativeTime.svelte.d.ts +6 -1
  70. package/dist/components/display/data-display/metric/timestamp-card/TimestampCard.svelte +121 -0
  71. package/dist/components/display/data-display/metric/timestamp-card/TimestampCard.svelte.d.ts +25 -0
  72. package/dist/components/display/data-display/visual/timeline/TimelineItem.svelte +653 -63
  73. package/dist/components/display/data-display/visual/timeline/context.d.ts +1 -1
  74. package/dist/components/display/feedback/loading/loading-dots/LoadingDots.svelte +650 -60
  75. package/dist/components/display/feedback/loading/loading-dots/LoadingDots.svelte.d.ts +1 -1
  76. package/dist/components/display/feedback/loading/spinner/Spinner.svelte +650 -60
  77. package/dist/components/display/feedback/loading/spinner/Spinner.svelte.d.ts +1 -1
  78. package/dist/components/display/typography/code-snippet/CodeSnippet.svelte +3 -3
  79. package/dist/components/display/typography/eyebrow/Eyebrow.svelte +2 -2
  80. package/dist/components/display/typography/highlight/Highlight.svelte +719 -59
  81. package/dist/components/display/typography/highlight/Highlight.svelte.d.ts +1 -1
  82. package/dist/components/framework/layout/container/app-shell/AppShell.svelte +16 -2
  83. package/dist/components/framework/navigation/context/breadcrumb/Breadcrumb.svelte +1 -1
  84. package/dist/components/framework/navigation/sidebar/sidebar/Sidebar.svelte +35 -10
  85. package/dist/components/framework/navigation/sidebar/sidenav/Sidenav.svelte +5 -5
  86. package/dist/components/framework/overlay/tooltip/Tooltip.svelte +2 -3
  87. package/dist/components/framework/overlay/tooltip/Tooltip.svelte.d.ts +2 -2
  88. package/dist/components/framework/surface/paper/Paper.svelte +730 -87
  89. package/dist/components/framework/surface/paper/Paper.svelte.d.ts +1 -1
  90. package/dist/components/utility/format/date-time/formatDateTime.d.ts +23 -0
  91. package/dist/components/utility/format/date-time/formatDateTime.js +33 -0
  92. package/dist/components/utility/format/relative-time/formatRelativeTime.d.ts +7 -0
  93. package/dist/components/utility/format/relative-time/formatRelativeTime.js +194 -7
  94. package/dist/design-system/inheritance/tokens.js +6 -0
  95. package/dist/design-system/reserved-props/allowed-options.d.ts +5 -3
  96. package/dist/design-system/theme/tokens.d.ts +72 -2
  97. package/dist/design-system/theme/tokens.js +167 -176
  98. package/dist/index.d.ts +15 -4
  99. package/dist/index.js +14 -3
  100. package/dist/styles/tone-context.css +649 -58
  101. package/dist/theme.css +1 -183
  102. package/dist/themes/canopy.css +373 -0
  103. package/dist/themes/cobalt.css +373 -0
  104. package/dist/themes/iris.css +373 -0
  105. package/dist/themes/lumen.css +373 -0
  106. package/dist/themes/mono.css +373 -0
  107. package/dist/themes/moss.css +373 -0
  108. package/dist/themes/noir.css +373 -0
  109. package/dist/themes/plain.css +373 -0
  110. package/dist/themes/pulse.css +373 -0
  111. package/dist/themes/signal.css +373 -0
  112. package/dist/themes/slate.css +373 -0
  113. package/dist/themes/solar.css +373 -0
  114. package/dist/themes/sorbet.css +373 -0
  115. package/dist/themes/studio.css +369 -0
  116. package/dist/themes/vesper.css +373 -0
  117. package/package.json +18 -2
  118. package/dist/components/action/input/select/theme-switch/ThemeSwitch.svelte.d.ts +0 -10
@@ -1,38 +1,133 @@
1
- const themeTokens = [
2
- {
3
- name: '--seblify-color-page',
1
+ const toneTokenDescriptions = {
2
+ fill: 'Solid fill used by solid controls and selected states.',
3
+ 'fill-hover': 'Hover fill used by solid controls.',
4
+ 'fill-text': 'Text and foreground color placed on the solid fill.',
5
+ surface: 'Subtle tone surface used by soft controls, tags, and panels.',
6
+ 'surface-hover': 'Hover surface used by soft, tint, outline, and plain controls.',
7
+ border: 'Tone border used with subtle tone surfaces.',
8
+ text: 'Text color used on subtle tone surfaces.',
9
+ 'on-inverse-surface': 'Subtle tone surface used when the tone appears on an inverse surface.',
10
+ 'on-inverse-surface-hover': 'Hover surface used when the tone appears on an inverse surface.',
11
+ 'on-inverse-text': 'Text color used when the tone appears on an inverse surface.',
12
+ 'on-inverse-border': 'Border used when the tone appears on an inverse surface.',
13
+ };
14
+ const toneTokenValues = {
15
+ primary: {
16
+ fill: '#b43f5a',
17
+ 'fill-hover': '#9f334d',
18
+ 'fill-text': '#fff4e7',
19
+ surface: '#fae8ed',
20
+ 'surface-hover': '#f5d5dd',
21
+ border: '#e6a6b5',
22
+ text: '#8f2b43',
23
+ 'on-inverse-surface': '#2a1218',
24
+ 'on-inverse-surface-hover': '#3a1922',
25
+ 'on-inverse-border': '#743044',
26
+ 'on-inverse-text': '#e07088',
27
+ },
28
+ secondary: {
29
+ fill: '#6f3a55',
30
+ 'fill-hover': '#5e2f47',
31
+ 'fill-text': '#fff4e7',
32
+ surface: '#f4e5ee',
33
+ 'surface-hover': '#ecd3e0',
34
+ border: '#d7a6bf',
35
+ text: '#6f3a55',
36
+ 'on-inverse-surface': '#1d1519',
37
+ 'on-inverse-surface-hover': '#2b1d25',
38
+ 'on-inverse-border': '#6f3a55',
39
+ 'on-inverse-text': '#d8a4bd',
40
+ },
41
+ neutral: {
42
+ fill: '#6f5f55',
43
+ 'fill-hover': '#5b4d45',
44
+ 'fill-text': '#fff4e7',
45
+ surface: 'var(--seblify-color-surface-muted)',
46
+ 'surface-hover': 'var(--seblify-color-surface-hover)',
47
+ border: 'var(--seblify-color-border)',
48
+ text: 'var(--seblify-color-text-muted)',
49
+ 'on-inverse-surface': 'color-mix(in srgb, var(--seblify-color-text-inverse) 10%, var(--seblify-color-surface-inverse) 90%)',
50
+ 'on-inverse-surface-hover': 'color-mix(in srgb, var(--seblify-color-text-inverse) 16%, var(--seblify-color-surface-inverse) 84%)',
51
+ 'on-inverse-border': 'var(--seblify-color-border-inverse)',
52
+ 'on-inverse-text': 'var(--seblify-color-text-inverse)',
53
+ },
54
+ strong: {
55
+ fill: '#211916',
56
+ 'fill-hover': '#080706',
57
+ 'fill-text': '#fff4e7',
58
+ surface: 'var(--seblify-color-surface-raised)',
59
+ 'surface-hover': 'var(--seblify-color-surface-muted)',
60
+ border: 'var(--seblify-color-border-strong)',
61
+ text: 'var(--seblify-color-text)',
62
+ 'on-inverse-surface': 'color-mix(in srgb, var(--seblify-color-text-inverse) 14%, var(--seblify-color-surface-inverse) 86%)',
63
+ 'on-inverse-surface-hover': 'color-mix(in srgb, var(--seblify-color-text-inverse) 22%, var(--seblify-color-surface-inverse) 78%)',
64
+ 'on-inverse-border': 'color-mix(in srgb, var(--seblify-color-text-inverse) 42%, var(--seblify-color-border-inverse) 58%)',
65
+ 'on-inverse-text': 'var(--seblify-color-text-inverse)',
66
+ },
67
+ success: {
68
+ fill: '#777447',
69
+ 'fill-hover': '#66633c',
70
+ 'fill-text': '#fff4e7',
71
+ surface: '#eeeddf',
72
+ 'surface-hover': '#e1dfc4',
73
+ border: '#cbc790',
74
+ text: '#5d5b34',
75
+ 'on-inverse-surface': '#1e1d13',
76
+ 'on-inverse-surface-hover': '#2a2818',
77
+ 'on-inverse-border': '#777447',
78
+ 'on-inverse-text': '#c6c18a',
79
+ },
80
+ danger: {
81
+ fill: '#b83d45',
82
+ 'fill-hover': '#9f3239',
83
+ 'fill-text': '#fff4e7',
84
+ surface: '#fae7e8',
85
+ 'surface-hover': '#f3d2d4',
86
+ border: '#e2a2a7',
87
+ text: '#923038',
88
+ 'on-inverse-surface': '#2b1515',
89
+ 'on-inverse-surface-hover': '#3a1d1d',
90
+ 'on-inverse-border': '#873638',
91
+ 'on-inverse-text': '#efa5a5',
92
+ },
93
+ warning: {
94
+ fill: '#9a6d24',
95
+ 'fill-hover': '#805918',
96
+ 'fill-text': '#fff4e7',
97
+ surface: '#f8edd8',
98
+ 'surface-hover': '#efddbd',
99
+ border: '#d8b46c',
100
+ text: '#7a5418',
101
+ 'on-inverse-surface': '#2a2115',
102
+ 'on-inverse-surface-hover': '#382c1a',
103
+ 'on-inverse-border': '#8a6c38',
104
+ 'on-inverse-text': '#e4c382',
105
+ },
106
+ info: {
107
+ fill: '#a5664a',
108
+ 'fill-hover': '#8f543b',
109
+ 'fill-text': '#fff4e7',
110
+ surface: '#f6e6de',
111
+ 'surface-hover': '#edd3c6',
112
+ border: '#d49d85',
113
+ text: '#844932',
114
+ 'on-inverse-surface': '#251914',
115
+ 'on-inverse-surface-hover': '#332119',
116
+ 'on-inverse-border': '#784531',
117
+ 'on-inverse-text': '#dfa085',
118
+ },
119
+ };
120
+ const foundationTokens = [
121
+ {
122
+ name: '--seblify-color-background',
4
123
  category: 'Surface',
5
- value: '#f4f6f8',
124
+ value: '#faf7f2',
6
125
  description: 'Default page background behind component surfaces.',
7
126
  },
8
- {
9
- name: '--seblify-color-text',
10
- category: 'Text',
11
- value: '#172033',
12
- description: 'Primary text color on page and surface backgrounds.',
13
- },
14
- {
15
- name: '--seblify-color-text-muted',
16
- category: 'Text',
17
- value: '#516176',
18
- description: 'Secondary text for descriptions, helper text, and metadata.',
19
- },
20
- {
21
- name: '--seblify-color-text-subtle',
22
- category: 'Text',
23
- value: '#667085',
24
- description: 'Lower-emphasis text for labels, separators, and quiet UI.',
25
- },
26
- {
27
- name: '--seblify-color-text-inverse',
28
- category: 'Text',
29
- value: '#ffffff',
30
- description: 'Text placed on inverse surfaces.',
31
- },
32
127
  {
33
128
  name: '--seblify-color-surface',
34
129
  category: 'Surface',
35
- value: '#ffffff',
130
+ value: '#fffdf9',
36
131
  description: 'Default component surface.',
37
132
  },
38
133
  {
@@ -44,193 +139,83 @@ const themeTokens = [
44
139
  {
45
140
  name: '--seblify-color-surface-muted',
46
141
  category: 'Surface',
47
- value: '#d9e0e8',
142
+ value: '#f2ebe4',
48
143
  description: 'Muted surface for inactive controls and subtle areas.',
49
144
  },
50
145
  {
51
146
  name: '--seblify-color-surface-hover',
52
147
  category: 'Surface',
53
- value: '#f1f4f9',
148
+ value: '#ebe1d8',
54
149
  description: 'Surface color for hover states on neutral controls.',
55
150
  },
56
- {
57
- name: '--seblify-color-surface-accent',
58
- category: 'Surface',
59
- value: '#f7fbfb',
60
- description: 'Subtle accent surface for selected or filled areas.',
61
- },
62
151
  {
63
152
  name: '--seblify-color-surface-inverse',
64
153
  category: 'Surface',
65
- value: '#172033',
154
+ value: '#15110f',
66
155
  description: 'High-contrast inverse surface for sidebars and snackbars.',
67
156
  },
68
157
  {
69
158
  name: '--seblify-color-surface-inverse-hover',
70
159
  category: 'Surface',
71
- value: '#263043',
160
+ value: '#241d19',
72
161
  description: 'Hover or active state on inverse surfaces.',
73
162
  },
74
163
  {
75
164
  name: '--seblify-color-border',
76
165
  category: 'Border',
77
- value: '#c8d2df',
166
+ value: '#ded0c4',
78
167
  description: 'Default border for controls and containers.',
79
168
  },
80
169
  {
81
170
  name: '--seblify-color-border-strong',
82
171
  category: 'Border',
83
- value: '#aab7c5',
172
+ value: '#c5afa0',
84
173
  description: 'Stronger border for interactive controls.',
85
174
  },
86
- {
87
- name: '--seblify-color-border-accent',
88
- category: 'Border',
89
- value: '#9ab7ba',
90
- description: 'Accent border for selected or filled states.',
91
- },
92
175
  {
93
176
  name: '--seblify-color-border-inverse',
94
177
  category: 'Border',
95
- value: '#263043',
178
+ value: '#4a3b32',
96
179
  description: 'Border used on inverse surfaces.',
97
180
  },
98
181
  {
99
- name: '--seblify-color-fill-accent',
100
- category: 'Fill',
101
- value: '#146a6f',
102
- description: 'Solid accent fill for selected controls and primary states.',
103
- },
104
- {
105
- name: '--seblify-color-fill-accent-hover',
106
- category: 'Fill',
107
- value: '#0d4d52',
108
- description: 'Hover fill for accent controls.',
109
- },
110
- {
111
- name: '--seblify-color-fill-accent-text',
112
- category: 'Fill',
113
- value: '#ffffff',
114
- description: 'Text or foreground placed on accent fills.',
115
- },
116
- {
117
- name: '--seblify-color-fill-secondary',
118
- category: 'Fill',
119
- value: '#5b5fc7',
120
- description: 'Secondary accent fill for alternate selected states.',
121
- },
122
- {
123
- name: '--seblify-color-fill-secondary-text',
124
- category: 'Fill',
125
- value: '#ffffff',
126
- description: 'Text or foreground placed on secondary fills.',
127
- },
128
- {
129
- name: '--seblify-color-fill-strong',
130
- category: 'Fill',
131
- value: '#172033',
132
- description: 'Strong neutral fill for high-contrast emphasis.',
133
- },
134
- {
135
- name: '--seblify-color-fill-strong-text',
136
- category: 'Fill',
137
- value: '#ffffff',
138
- description: 'Text or foreground placed on strong neutral fills.',
139
- },
140
- {
141
- name: '--seblify-color-info-surface',
142
- category: 'Status',
143
- value: '#eaf3ff',
144
- description: 'Info status surface.',
145
- },
146
- {
147
- name: '--seblify-color-info-border',
148
- category: 'Status',
149
- value: '#bfd1ea',
150
- description: 'Info status border.',
151
- },
152
- {
153
- name: '--seblify-color-info-text',
154
- category: 'Status',
155
- value: '#102f55',
156
- description: 'Text on info status surfaces.',
157
- },
158
- {
159
- name: '--seblify-color-secondary-surface',
160
- category: 'Status',
161
- value: '#f0efff',
162
- description: 'Secondary tone surface.',
163
- },
164
- {
165
- name: '--seblify-color-secondary-border',
166
- category: 'Status',
167
- value: '#c8c6f4',
168
- description: 'Secondary tone border.',
169
- },
170
- {
171
- name: '--seblify-color-secondary-text',
172
- category: 'Status',
173
- value: '#2f316f',
174
- description: 'Text on secondary tone surfaces.',
175
- },
176
- {
177
- name: '--seblify-color-success-surface',
178
- category: 'Status',
179
- value: '#e8f8ee',
180
- description: 'Success status surface.',
181
- },
182
- {
183
- name: '--seblify-color-success-border',
184
- category: 'Status',
185
- value: '#b8ddc7',
186
- description: 'Success status border.',
187
- },
188
- {
189
- name: '--seblify-color-success-text',
190
- category: 'Status',
191
- value: '#143d25',
192
- description: 'Text on success status surfaces.',
193
- },
194
- {
195
- name: '--seblify-color-warning-surface',
196
- category: 'Status',
197
- value: '#fff6d8',
198
- description: 'Warning status surface.',
199
- },
200
- {
201
- name: '--seblify-color-warning-border',
202
- category: 'Status',
203
- value: '#e8d28f',
204
- description: 'Warning status border.',
205
- },
206
- {
207
- name: '--seblify-color-warning-text',
208
- category: 'Status',
209
- value: '#4d3900',
210
- description: 'Text on warning status surfaces.',
182
+ name: '--seblify-color-text',
183
+ category: 'Text',
184
+ value: '#211916',
185
+ description: 'Primary text color on page and surface backgrounds.',
211
186
  },
212
187
  {
213
- name: '--seblify-color-error-surface',
214
- category: 'Status',
215
- value: '#fff0f0',
216
- description: 'Error status surface.',
188
+ name: '--seblify-color-text-muted',
189
+ category: 'Text',
190
+ value: '#6f5f55',
191
+ description: 'Secondary text for descriptions, helper text, and metadata.',
217
192
  },
218
193
  {
219
- name: '--seblify-color-error-border',
220
- category: 'Status',
221
- value: '#efb6b6',
222
- description: 'Error status border.',
194
+ name: '--seblify-color-text-subtle',
195
+ category: 'Text',
196
+ value: '#8b7a70',
197
+ description: 'Lower-emphasis text for labels, separators, and quiet UI.',
223
198
  },
224
199
  {
225
- name: '--seblify-color-error-text',
226
- category: 'Status',
227
- value: '#5a1717',
228
- description: 'Text on error status surfaces.',
200
+ name: '--seblify-color-text-inverse',
201
+ category: 'Text',
202
+ value: '#fff4e7',
203
+ description: 'Text placed on inverse surfaces.',
229
204
  },
205
+ ];
206
+ const toneTokens = Object.entries(toneTokenValues).flatMap(([tone, roles]) => Object.entries(roles).map(([role, value]) => ({
207
+ name: `--seblify-color-${tone}-${role}`,
208
+ category: 'Tone',
209
+ value,
210
+ description: `${tone} ${toneTokenDescriptions[role]}`,
211
+ })));
212
+ const themeTokens = [
213
+ ...foundationTokens,
214
+ ...toneTokens,
230
215
  {
231
216
  name: '--seblify-color-focus-ring',
232
217
  category: 'Focus',
233
- value: '#9bd4d8',
218
+ value: '#b43f5a',
234
219
  description: 'Visible keyboard focus outline.',
235
220
  },
236
221
  {
@@ -242,19 +227,19 @@ const themeTokens = [
242
227
  {
243
228
  name: '--seblify-shadow-control',
244
229
  category: 'Shadow',
245
- value: '0 1px 3px rgb(16 24 40 / 24%)',
230
+ value: '0 1px 3px rgb(33 25 22 / 18%)',
246
231
  description: 'Small control shadow, currently used by switch thumbs.',
247
232
  },
248
233
  {
249
234
  name: '--seblify-shadow-raised',
250
235
  category: 'Shadow',
251
- value: '0 12px 28px rgb(23 32 51 / 22%)',
236
+ value: '0 12px 28px rgb(33 25 22 / 16%)',
252
237
  description: 'Raised shadow for floating UI.',
253
238
  },
254
239
  {
255
240
  name: '--seblify-shadow-status',
256
241
  category: 'Shadow',
257
- value: '0 10px 24px rgb(20 61 37 / 14%)',
242
+ value: '0 10px 24px rgb(180 63 90 / 14%)',
258
243
  description: 'Soft shadow for status messages.',
259
244
  },
260
245
  {
@@ -263,5 +248,11 @@ const themeTokens = [
263
248
  value: '30',
264
249
  description: 'Layer for portaled tooltip bubbles.',
265
250
  },
251
+ {
252
+ name: '--seblify-z-index-floating-action-button',
253
+ category: 'Layer',
254
+ value: '30',
255
+ description: 'Layer for fixed floating action buttons.',
256
+ },
266
257
  ];
267
258
  export default themeTokens;
package/dist/index.d.ts CHANGED
@@ -3,18 +3,23 @@ export { default as Accordion } from './components/display/typography/accordion/
3
3
  export { default as AccordionGroup } from './components/display/typography/accordion/AccordionGroup.svelte';
4
4
  export { default as Badge } from './components/display/annotation/badge/Badge.svelte';
5
5
  export { default as Banner } from './components/Banner.svelte';
6
- export { default as Button } from './components/Button.svelte';
6
+ export { default as Button } from './components/action/button/button/Button.svelte';
7
+ export { default as ButtonGroup } from './components/action/button/button-group/ButtonGroup.svelte';
7
8
  export { default as Breadcrumb } from './components/framework/navigation/context/breadcrumb/Breadcrumb.svelte';
8
9
  export { default as Checkbox } from './components/action/input/select/checkbox/Checkbox.svelte';
9
- export { createCheckboxRelations, type CheckboxRelations, type CheckboxRelationsConfig, type CheckboxRelationsGroupConfig, type CheckboxRelationsGroupState, type CheckboxRelationsId, type CheckboxRelationsItemConfig, type CheckboxRelationsItemState, type CheckboxRelationsVisualState, } from './components/action/input/select/checkbox/checkbox-relations.svelte';
10
+ export { createCheckboxManager, type CheckboxRelations, type CheckboxRelationsConfig, type CheckboxRelationsGroupConfig, type CheckboxRelationsGroupState, type CheckboxRelationsId, type CheckboxRelationsItemConfig, type CheckboxRelationsItemState, type CheckboxRelationsVisualState, } from './components/action/input/select/checkbox/checkbox-relations.svelte';
10
11
  export { default as Cluster } from './components/framework/layout/alignment/cluster/Cluster.svelte';
11
12
  export { default as Collapse } from './components/display/motion/collapse/Collapse.svelte';
12
13
  export { default as CodeSnippet } from './components/display/typography/code-snippet/CodeSnippet.svelte';
14
+ export { default as DateTimeValue } from './components/display/data-display/metric/date-time/DateTimeValue.svelte';
15
+ export { default as DateValue } from './components/display/data-display/metric/date-time/DateValue.svelte';
13
16
  export { default as Duration } from './components/display/data-display/metric/duration/Duration.svelte';
14
17
  export { default as Eyebrow } from './components/display/typography/eyebrow/Eyebrow.svelte';
18
+ export { default as FloatingActionButton } from './components/action/button/floating-action-button/FloatingActionButton.svelte';
15
19
  export { default as Grid } from './components/framework/layout/alignment/grid/Grid.svelte';
16
20
  export { default as Highlight } from './components/display/typography/highlight/Highlight.svelte';
17
21
  export { default as Icon } from './components/display/media/icon/Icon.svelte';
22
+ export { default as IconButton } from './components/action/button/icon-button/IconButton.svelte';
18
23
  export { default as LoadingDots } from './components/display/feedback/loading/loading-dots/LoadingDots.svelte';
19
24
  export { default as Paper } from './components/framework/surface/paper/Paper.svelte';
20
25
  export { default as PageHeader } from './components/framework/layout/container/page-header/PageHeader.svelte';
@@ -32,13 +37,19 @@ export { default as Stack } from './components/framework/layout/alignment/stack/
32
37
  export { default as Switch } from './components/action/input/select/switch/Switch.svelte';
33
38
  export { default as Tag } from './components/display/annotation/tag/Tag.svelte';
34
39
  export { default as TagGroup } from './components/display/annotation/tag-group/TagGroup.svelte';
35
- export { default as ThemeSwitch } from './components/action/input/select/theme-switch/ThemeSwitch.svelte';
40
+ export { default as ColorModeSwitch } from './components/action/input/select/color-mode-switch/ColorModeSwitch.svelte';
41
+ export { default as TimestampCard } from './components/display/data-display/metric/timestamp-card/TimestampCard.svelte';
42
+ export { default as TimeValue } from './components/display/data-display/metric/date-time/TimeValue.svelte';
36
43
  export { default as Timeline } from './components/display/data-display/visual/timeline/Timeline.svelte';
37
44
  export { default as TimelineItem } from './components/display/data-display/visual/timeline/TimelineItem.svelte';
45
+ export { default as TimedButton } from './components/action/button/timed-button/TimedButton.svelte';
38
46
  export { default as Toast } from './components/Toast.svelte';
47
+ export { default as ToggleButton } from './components/action/button/toggle-button/ToggleButton.svelte';
48
+ export { default as ToggleButtonGroup } from './components/action/button/toggle-button-group/ToggleButtonGroup.svelte';
39
49
  export { default as Tooltip } from './components/framework/overlay/tooltip/Tooltip.svelte';
50
+ export { formatDate, formatDateTime, formatTime, type DateTimeDateStyle, type DateTimeInput, type DateTimeLocaleOptions, type DateTimeTimeStyle, type FormatDateOptions, type FormatDateTimeOptions, type FormatTimeOptions, } from './components/utility/format/date-time/formatDateTime';
40
51
  export { formatDuration, type DurationFormat, type DurationRounding, type DurationStyle, type DurationUnit, type FormatDurationOptions, } from './components/utility/format/duration/formatDuration';
41
- export { formatRelativeTime, type FormatRelativeTimeOptions, type RelativeTimeDirection, type RelativeTimeInput, type RelativeTimeLabel, type RelativeTimeMode, type RelativeTimePresentation, type RelativeTimeState, type RelativeTimeStyle, type RelativeTimeUnit, type RelativeTimeUnitSteps, } from './components/utility/format/relative-time/formatRelativeTime';
52
+ export { formatRelativeTime, type FormatRelativeTimeOptions, type RelativeTimeDirection, type RelativeTimeInput, type RelativeTimeLabel, type RelativeTimeMode, type RelativeTimePresentation, type RelativeTimeRounding, type RelativeTimeState, type RelativeTimeStyle, type RelativeTimeUnit, type RelativeTimeUnitSteps, } from './components/utility/format/relative-time/formatRelativeTime';
42
53
  export type { SidenavActionDetail, SidenavIconComponent, SidenavItemData, SidenavItemKind, } from './components/framework/navigation/sidebar/sidenav/sidenav';
43
54
  export type { ComponentDocExample, ComponentDocMetadata, ComponentStatus, DocPageMetadata, DocSectionMetadata, } from './components/component-doc';
44
55
  export type { SeblifyProps } from './design-system/reserved-props/type';
package/dist/index.js CHANGED
@@ -3,18 +3,23 @@ export { default as Accordion } from './components/display/typography/accordion/
3
3
  export { default as AccordionGroup } from './components/display/typography/accordion/AccordionGroup.svelte';
4
4
  export { default as Badge } from './components/display/annotation/badge/Badge.svelte';
5
5
  export { default as Banner } from './components/Banner.svelte';
6
- export { default as Button } from './components/Button.svelte';
6
+ export { default as Button } from './components/action/button/button/Button.svelte';
7
+ export { default as ButtonGroup } from './components/action/button/button-group/ButtonGroup.svelte';
7
8
  export { default as Breadcrumb } from './components/framework/navigation/context/breadcrumb/Breadcrumb.svelte';
8
9
  export { default as Checkbox } from './components/action/input/select/checkbox/Checkbox.svelte';
9
- export { createCheckboxRelations, } from './components/action/input/select/checkbox/checkbox-relations.svelte';
10
+ export { createCheckboxManager, } from './components/action/input/select/checkbox/checkbox-relations.svelte';
10
11
  export { default as Cluster } from './components/framework/layout/alignment/cluster/Cluster.svelte';
11
12
  export { default as Collapse } from './components/display/motion/collapse/Collapse.svelte';
12
13
  export { default as CodeSnippet } from './components/display/typography/code-snippet/CodeSnippet.svelte';
14
+ export { default as DateTimeValue } from './components/display/data-display/metric/date-time/DateTimeValue.svelte';
15
+ export { default as DateValue } from './components/display/data-display/metric/date-time/DateValue.svelte';
13
16
  export { default as Duration } from './components/display/data-display/metric/duration/Duration.svelte';
14
17
  export { default as Eyebrow } from './components/display/typography/eyebrow/Eyebrow.svelte';
18
+ export { default as FloatingActionButton } from './components/action/button/floating-action-button/FloatingActionButton.svelte';
15
19
  export { default as Grid } from './components/framework/layout/alignment/grid/Grid.svelte';
16
20
  export { default as Highlight } from './components/display/typography/highlight/Highlight.svelte';
17
21
  export { default as Icon } from './components/display/media/icon/Icon.svelte';
22
+ export { default as IconButton } from './components/action/button/icon-button/IconButton.svelte';
18
23
  export { default as LoadingDots } from './components/display/feedback/loading/loading-dots/LoadingDots.svelte';
19
24
  export { default as Paper } from './components/framework/surface/paper/Paper.svelte';
20
25
  export { default as PageHeader } from './components/framework/layout/container/page-header/PageHeader.svelte';
@@ -32,10 +37,16 @@ export { default as Stack } from './components/framework/layout/alignment/stack/
32
37
  export { default as Switch } from './components/action/input/select/switch/Switch.svelte';
33
38
  export { default as Tag } from './components/display/annotation/tag/Tag.svelte';
34
39
  export { default as TagGroup } from './components/display/annotation/tag-group/TagGroup.svelte';
35
- export { default as ThemeSwitch } from './components/action/input/select/theme-switch/ThemeSwitch.svelte';
40
+ export { default as ColorModeSwitch } from './components/action/input/select/color-mode-switch/ColorModeSwitch.svelte';
41
+ export { default as TimestampCard } from './components/display/data-display/metric/timestamp-card/TimestampCard.svelte';
42
+ export { default as TimeValue } from './components/display/data-display/metric/date-time/TimeValue.svelte';
36
43
  export { default as Timeline } from './components/display/data-display/visual/timeline/Timeline.svelte';
37
44
  export { default as TimelineItem } from './components/display/data-display/visual/timeline/TimelineItem.svelte';
45
+ export { default as TimedButton } from './components/action/button/timed-button/TimedButton.svelte';
38
46
  export { default as Toast } from './components/Toast.svelte';
47
+ export { default as ToggleButton } from './components/action/button/toggle-button/ToggleButton.svelte';
48
+ export { default as ToggleButtonGroup } from './components/action/button/toggle-button-group/ToggleButtonGroup.svelte';
39
49
  export { default as Tooltip } from './components/framework/overlay/tooltip/Tooltip.svelte';
50
+ export { formatDate, formatDateTime, formatTime, } from './components/utility/format/date-time/formatDateTime';
40
51
  export { formatDuration, } from './components/utility/format/duration/formatDuration';
41
52
  export { formatRelativeTime, } from './components/utility/format/relative-time/formatRelativeTime';