seblify 0.2.1 → 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 (141) hide show
  1. package/README.md +145 -49
  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 +4704 -25
  25. package/dist/components/action/input/select/checkbox/Checkbox.svelte.d.ts +28 -0
  26. package/dist/components/action/input/select/checkbox/checkbox-relations.svelte.d.ts +46 -0
  27. package/dist/components/action/input/select/checkbox/checkbox-relations.svelte.js +202 -0
  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 +1004 -99
  57. package/dist/components/action/input/select/switch/Switch.svelte.d.ts +8 -3
  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 +670 -58
  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/duration/Duration.svelte +64 -0
  69. package/dist/components/display/data-display/metric/duration/Duration.svelte.d.ts +16 -0
  70. package/dist/components/display/data-display/metric/relative-time/RelativeTime.svelte +121 -0
  71. package/dist/components/display/data-display/metric/relative-time/RelativeTime.svelte.d.ts +21 -0
  72. package/dist/components/display/data-display/metric/timestamp-card/TimestampCard.svelte +121 -0
  73. package/dist/components/display/data-display/metric/timestamp-card/TimestampCard.svelte.d.ts +25 -0
  74. package/dist/components/display/data-display/visual/timeline/TimelineItem.svelte +660 -51
  75. package/dist/components/display/data-display/visual/timeline/context.d.ts +1 -1
  76. package/dist/components/display/feedback/loading/loading-dots/LoadingDots.svelte +657 -48
  77. package/dist/components/display/feedback/loading/loading-dots/LoadingDots.svelte.d.ts +1 -1
  78. package/dist/components/display/feedback/loading/spinner/Spinner.svelte +657 -48
  79. package/dist/components/display/feedback/loading/spinner/Spinner.svelte.d.ts +1 -1
  80. package/dist/components/display/motion/collapse/Collapse.svelte +115 -0
  81. package/dist/components/display/motion/collapse/Collapse.svelte.d.ts +17 -0
  82. package/dist/components/display/typography/accordion/Accordion.svelte +347 -0
  83. package/dist/components/display/typography/accordion/Accordion.svelte.d.ts +13 -0
  84. package/dist/components/display/typography/accordion/AccordionGroup.svelte +132 -0
  85. package/dist/components/display/typography/accordion/AccordionGroup.svelte.d.ts +11 -0
  86. package/dist/components/display/typography/accordion/context.d.ts +8 -0
  87. package/dist/components/display/typography/accordion/context.js +8 -0
  88. package/dist/components/display/typography/code-snippet/CodeSnippet.svelte +3 -3
  89. package/dist/components/display/typography/eyebrow/Eyebrow.svelte +2 -2
  90. package/dist/components/display/typography/highlight/Highlight.svelte +719 -59
  91. package/dist/components/display/typography/highlight/Highlight.svelte.d.ts +1 -1
  92. package/dist/components/framework/layout/container/app-shell/AppShell.svelte +16 -2
  93. package/dist/components/framework/navigation/context/breadcrumb/Breadcrumb.svelte +1 -1
  94. package/dist/components/framework/navigation/sidebar/sidebar/Sidebar.svelte +35 -10
  95. package/dist/components/framework/navigation/sidebar/sidenav/Sidenav.svelte +5 -5
  96. package/dist/components/framework/overlay/tooltip/Tooltip.svelte +1011 -0
  97. package/dist/components/framework/overlay/tooltip/Tooltip.svelte.d.ts +31 -0
  98. package/dist/components/framework/surface/paper/Paper.svelte +730 -87
  99. package/dist/components/framework/surface/paper/Paper.svelte.d.ts +1 -1
  100. package/dist/components/utility/format/date-time/formatDateTime.d.ts +23 -0
  101. package/dist/components/utility/format/date-time/formatDateTime.js +33 -0
  102. package/dist/components/utility/format/duration/formatDuration.d.ts +15 -0
  103. package/dist/components/utility/format/duration/formatDuration.js +218 -0
  104. package/dist/components/utility/format/relative-time/formatRelativeTime.d.ts +42 -0
  105. package/dist/components/utility/format/relative-time/formatRelativeTime.js +530 -0
  106. package/dist/design-system/inheritance/tokens.js +6 -0
  107. package/dist/design-system/reserved-props/allowed-options.d.ts +9 -4
  108. package/dist/design-system/theme/tokens.d.ts +72 -2
  109. package/dist/design-system/theme/tokens.js +173 -134
  110. package/dist/icons/generated/check-thick.svelte +16 -0
  111. package/dist/icons/generated/check-thick.svelte.d.ts +7 -0
  112. package/dist/icons/generated/check.svelte +16 -0
  113. package/dist/icons/generated/check.svelte.d.ts +7 -0
  114. package/dist/icons/generated/close-thick.svelte +16 -0
  115. package/dist/icons/generated/close-thick.svelte.d.ts +7 -0
  116. package/dist/icons/generated/close.svelte +16 -0
  117. package/dist/icons/generated/close.svelte.d.ts +7 -0
  118. package/dist/icons/generated/index.d.ts +4 -0
  119. package/dist/icons/generated/index.js +4 -0
  120. package/dist/icons/generated/manifest.js +28 -0
  121. package/dist/index.d.ts +22 -2
  122. package/dist/index.js +22 -2
  123. package/dist/styles/tone-context.css +656 -46
  124. package/dist/theme.css +1 -161
  125. package/dist/themes/canopy.css +373 -0
  126. package/dist/themes/cobalt.css +373 -0
  127. package/dist/themes/iris.css +373 -0
  128. package/dist/themes/lumen.css +373 -0
  129. package/dist/themes/mono.css +373 -0
  130. package/dist/themes/moss.css +373 -0
  131. package/dist/themes/noir.css +373 -0
  132. package/dist/themes/plain.css +373 -0
  133. package/dist/themes/pulse.css +373 -0
  134. package/dist/themes/signal.css +373 -0
  135. package/dist/themes/slate.css +373 -0
  136. package/dist/themes/solar.css +373 -0
  137. package/dist/themes/sorbet.css +373 -0
  138. package/dist/themes/studio.css +369 -0
  139. package/dist/themes/vesper.css +373 -0
  140. package/package.json +32 -4
  141. 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,151 +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-info-surface',
118
- category: 'Status',
119
- value: '#eaf3ff',
120
- description: 'Info status surface.',
121
- },
122
- {
123
- name: '--seblify-color-info-border',
124
- category: 'Status',
125
- value: '#bfd1ea',
126
- description: 'Info status border.',
127
- },
128
- {
129
- name: '--seblify-color-info-text',
130
- category: 'Status',
131
- value: '#102f55',
132
- description: 'Text on info status surfaces.',
133
- },
134
- {
135
- name: '--seblify-color-success-surface',
136
- category: 'Status',
137
- value: '#e8f8ee',
138
- description: 'Success status surface.',
139
- },
140
- {
141
- name: '--seblify-color-success-border',
142
- category: 'Status',
143
- value: '#b8ddc7',
144
- description: 'Success status border.',
145
- },
146
- {
147
- name: '--seblify-color-success-text',
148
- category: 'Status',
149
- value: '#143d25',
150
- description: 'Text on success status surfaces.',
151
- },
152
- {
153
- name: '--seblify-color-warning-surface',
154
- category: 'Status',
155
- value: '#fff6d8',
156
- description: 'Warning status surface.',
157
- },
158
- {
159
- name: '--seblify-color-warning-border',
160
- category: 'Status',
161
- value: '#e8d28f',
162
- description: 'Warning status border.',
163
- },
164
- {
165
- name: '--seblify-color-warning-text',
166
- category: 'Status',
167
- value: '#4d3900',
168
- 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.',
169
186
  },
170
187
  {
171
- name: '--seblify-color-error-surface',
172
- category: 'Status',
173
- value: '#fff0f0',
174
- 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.',
175
192
  },
176
193
  {
177
- name: '--seblify-color-error-border',
178
- category: 'Status',
179
- value: '#efb6b6',
180
- 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.',
181
198
  },
182
199
  {
183
- name: '--seblify-color-error-text',
184
- category: 'Status',
185
- value: '#5a1717',
186
- 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.',
187
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,
188
215
  {
189
216
  name: '--seblify-color-focus-ring',
190
217
  category: 'Focus',
191
- value: '#9bd4d8',
218
+ value: '#b43f5a',
192
219
  description: 'Visible keyboard focus outline.',
193
220
  },
194
221
  {
@@ -200,20 +227,32 @@ const themeTokens = [
200
227
  {
201
228
  name: '--seblify-shadow-control',
202
229
  category: 'Shadow',
203
- value: '0 1px 3px rgb(16 24 40 / 24%)',
230
+ value: '0 1px 3px rgb(33 25 22 / 18%)',
204
231
  description: 'Small control shadow, currently used by switch thumbs.',
205
232
  },
206
233
  {
207
234
  name: '--seblify-shadow-raised',
208
235
  category: 'Shadow',
209
- value: '0 12px 28px rgb(23 32 51 / 22%)',
236
+ value: '0 12px 28px rgb(33 25 22 / 16%)',
210
237
  description: 'Raised shadow for floating UI.',
211
238
  },
212
239
  {
213
240
  name: '--seblify-shadow-status',
214
241
  category: 'Shadow',
215
- value: '0 10px 24px rgb(20 61 37 / 14%)',
242
+ value: '0 10px 24px rgb(180 63 90 / 14%)',
216
243
  description: 'Soft shadow for status messages.',
217
244
  },
245
+ {
246
+ name: '--seblify-z-index-tooltip',
247
+ category: 'Layer',
248
+ value: '30',
249
+ description: 'Layer for portaled tooltip bubbles.',
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
+ },
218
257
  ];
219
258
  export default themeTokens;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import IconGlyph from '../../components/display/media/icon/IconGlyph.svelte';
3
+
4
+ interface Props {
5
+ label?: string;
6
+ size?: number | string;
7
+ }
8
+
9
+ let { label, size }: Props = $props();
10
+ const source = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
11
+ <path d="M8.99906 20.4199L2.78906 14.2099L5.61906 11.3799L8.99906 14.7699L18.8791 4.87988L21.7091 7.70988L8.99906 20.4199Z" fill="black"/>
12
+ </svg>
13
+ `;
14
+ </script>
15
+
16
+ <IconGlyph {label} {size} {source} />
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ label?: string;
3
+ size?: number | string;
4
+ }
5
+ declare const CheckThick: import("svelte").Component<Props, {}, "">;
6
+ type CheckThick = ReturnType<typeof CheckThick>;
7
+ export default CheckThick;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import IconGlyph from '../../components/display/media/icon/IconGlyph.svelte';
3
+
4
+ interface Props {
5
+ label?: string;
6
+ size?: number | string;
7
+ }
8
+
9
+ let { label, size }: Props = $props();
10
+ const source = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
11
+ <path d="M21 6.99984L9 18.9998L3.5 13.4998L4.91 12.0898L9 16.1698L19.59 5.58984L21 6.99984Z" fill="black"/>
12
+ </svg>
13
+ `;
14
+ </script>
15
+
16
+ <IconGlyph {label} {size} {source} />
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ label?: string;
3
+ size?: number | string;
4
+ }
5
+ declare const Check: import("svelte").Component<Props, {}, "">;
6
+ type Check = ReturnType<typeof Check>;
7
+ export default Check;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import IconGlyph from '../../components/display/media/icon/IconGlyph.svelte';
3
+
4
+ interface Props {
5
+ label?: string;
6
+ size?: number | string;
7
+ }
8
+
9
+ let { label, size }: Props = $props();
10
+ const source = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
11
+ <path d="M20 6.91L17.09 4L12 9.09L6.91 4L4 6.91L9.09 12L4 17.09L6.91 20L12 14.91L17.09 20L20 17.09L14.91 12L20 6.91Z" fill="black"/>
12
+ </svg>
13
+ `;
14
+ </script>
15
+
16
+ <IconGlyph {label} {size} {source} />
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ label?: string;
3
+ size?: number | string;
4
+ }
5
+ declare const CloseThick: import("svelte").Component<Props, {}, "">;
6
+ type CloseThick = ReturnType<typeof CloseThick>;
7
+ export default CloseThick;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import IconGlyph from '../../components/display/media/icon/IconGlyph.svelte';
3
+
4
+ interface Props {
5
+ label?: string;
6
+ size?: number | string;
7
+ }
8
+
9
+ let { label, size }: Props = $props();
10
+ const source = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
11
+ <path d="M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z" fill="black"/>
12
+ </svg>
13
+ `;
14
+ </script>
15
+
16
+ <IconGlyph {label} {size} {source} />
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ label?: string;
3
+ size?: number | string;
4
+ }
5
+ declare const Close: import("svelte").Component<Props, {}, "">;
6
+ type Close = ReturnType<typeof Close>;
7
+ export default Close;
@@ -34,6 +34,8 @@ export { default as ChatProcessingIcon } from './chat-processing.svelte';
34
34
  export { default as ChatQuestionOutlineIcon } from './chat-question-outline.svelte';
35
35
  export { default as ChatQuestionIcon } from './chat-question.svelte';
36
36
  export { default as ChatIcon } from './chat.svelte';
37
+ export { default as CheckThickIcon } from './check-thick.svelte';
38
+ export { default as CheckIcon } from './check.svelte';
37
39
  export { default as ChevronDoubleDownIcon } from './chevron-double-down.svelte';
38
40
  export { default as ChevronDoubleLeftIcon } from './chevron-double-left.svelte';
39
41
  export { default as ChevronDoubleRightIcon } from './chevron-double-right.svelte';
@@ -61,6 +63,8 @@ export { default as ClipboardTextOutlineIcon } from './clipboard-text-outline.sv
61
63
  export { default as ClipboardTextIcon } from './clipboard-text.svelte';
62
64
  export { default as ClockOutlineIcon } from './clock-outline.svelte';
63
65
  export { default as ClockIcon } from './clock.svelte';
66
+ export { default as CloseThickIcon } from './close-thick.svelte';
67
+ export { default as CloseIcon } from './close.svelte';
64
68
  export { default as CogOutlineIcon } from './cog-outline.svelte';
65
69
  export { default as CogIcon } from './cog.svelte';
66
70
  export { default as CopyIcon } from './copy.svelte';
@@ -34,6 +34,8 @@ export { default as ChatProcessingIcon } from './chat-processing.svelte';
34
34
  export { default as ChatQuestionOutlineIcon } from './chat-question-outline.svelte';
35
35
  export { default as ChatQuestionIcon } from './chat-question.svelte';
36
36
  export { default as ChatIcon } from './chat.svelte';
37
+ export { default as CheckThickIcon } from './check-thick.svelte';
38
+ export { default as CheckIcon } from './check.svelte';
37
39
  export { default as ChevronDoubleDownIcon } from './chevron-double-down.svelte';
38
40
  export { default as ChevronDoubleLeftIcon } from './chevron-double-left.svelte';
39
41
  export { default as ChevronDoubleRightIcon } from './chevron-double-right.svelte';
@@ -61,6 +63,8 @@ export { default as ClipboardTextOutlineIcon } from './clipboard-text-outline.sv
61
63
  export { default as ClipboardTextIcon } from './clipboard-text.svelte';
62
64
  export { default as ClockOutlineIcon } from './clock-outline.svelte';
63
65
  export { default as ClockIcon } from './clock.svelte';
66
+ export { default as CloseThickIcon } from './close-thick.svelte';
67
+ export { default as CloseIcon } from './close.svelte';
64
68
  export { default as CogOutlineIcon } from './cog-outline.svelte';
65
69
  export { default as CogIcon } from './cog.svelte';
66
70
  export { default as CopyIcon } from './copy.svelte';
@@ -308,6 +308,20 @@ export const iconManifest = [
308
308
  "name": "chat",
309
309
  "tags": []
310
310
  },
311
+ {
312
+ "componentName": "CheckThickIcon",
313
+ "folder": "check",
314
+ "name": "check-thick",
315
+ "tags": [
316
+ "thick"
317
+ ]
318
+ },
319
+ {
320
+ "componentName": "CheckIcon",
321
+ "folder": "check",
322
+ "name": "check",
323
+ "tags": []
324
+ },
311
325
  {
312
326
  "componentName": "ChevronDoubleDownIcon",
313
327
  "folder": "chevron",
@@ -537,6 +551,20 @@ export const iconManifest = [
537
551
  "name": "clock",
538
552
  "tags": []
539
553
  },
554
+ {
555
+ "componentName": "CloseThickIcon",
556
+ "folder": "close",
557
+ "name": "close-thick",
558
+ "tags": [
559
+ "thick"
560
+ ]
561
+ },
562
+ {
563
+ "componentName": "CloseIcon",
564
+ "folder": "close",
565
+ "name": "close",
566
+ "tags": []
567
+ },
540
568
  {
541
569
  "componentName": "CogOutlineIcon",
542
570
  "folder": "cog",
package/dist/index.d.ts CHANGED
@@ -1,19 +1,30 @@
1
1
  export { default as AppShell } from './components/framework/layout/container/app-shell/AppShell.svelte';
2
+ export { default as Accordion } from './components/display/typography/accordion/Accordion.svelte';
3
+ export { default as AccordionGroup } from './components/display/typography/accordion/AccordionGroup.svelte';
2
4
  export { default as Badge } from './components/display/annotation/badge/Badge.svelte';
3
5
  export { default as Banner } from './components/Banner.svelte';
4
- 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';
5
8
  export { default as Breadcrumb } from './components/framework/navigation/context/breadcrumb/Breadcrumb.svelte';
6
9
  export { default as Checkbox } from './components/action/input/select/checkbox/Checkbox.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';
7
11
  export { default as Cluster } from './components/framework/layout/alignment/cluster/Cluster.svelte';
12
+ export { default as Collapse } from './components/display/motion/collapse/Collapse.svelte';
8
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';
16
+ export { default as Duration } from './components/display/data-display/metric/duration/Duration.svelte';
9
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';
10
19
  export { default as Grid } from './components/framework/layout/alignment/grid/Grid.svelte';
11
20
  export { default as Highlight } from './components/display/typography/highlight/Highlight.svelte';
12
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';
13
23
  export { default as LoadingDots } from './components/display/feedback/loading/loading-dots/LoadingDots.svelte';
14
24
  export { default as Paper } from './components/framework/surface/paper/Paper.svelte';
15
25
  export { default as PageHeader } from './components/framework/layout/container/page-header/PageHeader.svelte';
16
26
  export { default as PinInput } from './components/action/input/field/pin-input/PinInput.svelte';
27
+ export { default as RelativeTime } from './components/display/data-display/metric/relative-time/RelativeTime.svelte';
17
28
  export { default as Row } from './components/framework/layout/alignment/row/Row.svelte';
18
29
  export { default as Sidebar } from './components/framework/navigation/sidebar/sidebar/Sidebar.svelte';
19
30
  export { default as SegmentControl } from './components/action/input/select/segment-control/SegmentControl.svelte';
@@ -26,10 +37,19 @@ export { default as Stack } from './components/framework/layout/alignment/stack/
26
37
  export { default as Switch } from './components/action/input/select/switch/Switch.svelte';
27
38
  export { default as Tag } from './components/display/annotation/tag/Tag.svelte';
28
39
  export { default as TagGroup } from './components/display/annotation/tag-group/TagGroup.svelte';
29
- 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';
30
43
  export { default as Timeline } from './components/display/data-display/visual/timeline/Timeline.svelte';
31
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';
32
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';
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';
51
+ export { formatDuration, type DurationFormat, type DurationRounding, type DurationStyle, type DurationUnit, type FormatDurationOptions, } from './components/utility/format/duration/formatDuration';
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';
33
53
  export type { SidenavActionDetail, SidenavIconComponent, SidenavItemData, SidenavItemKind, } from './components/framework/navigation/sidebar/sidenav/sidenav';
34
54
  export type { ComponentDocExample, ComponentDocMetadata, ComponentStatus, DocPageMetadata, DocSectionMetadata, } from './components/component-doc';
35
55
  export type { SeblifyProps } from './design-system/reserved-props/type';