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
package/README.md CHANGED
@@ -36,8 +36,8 @@ import 'seblify/theme.css';
36
36
  Explore the supported components in this library. Components are grouped by purpose and linked to their full documentation, including usage examples, props, accessibility notes, and design-system guidance.
37
37
 
38
38
  [![components-stable](https://img.shields.io/badge/stable-0%20components-brightgreen.svg)](https://seblify.com/components)
39
- [![components-beta](https://img.shields.io/badge/beta-6%20components-yellow.svg)](https://seblify.com/components)
40
- [![components-draft](https://img.shields.io/badge/draft-27%20components-lightgrey.svg)](https://seblify.com/components)
39
+ [![components-beta](https://img.shields.io/badge/beta-9%20components-yellow.svg)](https://seblify.com/components)
40
+ [![components-draft](https://img.shields.io/badge/draft-34%20components-lightgrey.svg)](https://seblify.com/components)
41
41
 
42
42
  ### Quick links
43
43
 
@@ -51,10 +51,28 @@ Explore the supported components in this library. Components are grouped by purp
51
51
 
52
52
  ### Input Components
53
53
 
54
- _6 items_
54
+ _13 items_
55
55
 
56
56
  Components that let users make choices, submit data, and trigger behavior.
57
57
 
58
+ <details>
59
+ <summary><strong>Buttons &middot; 7</strong></summary>
60
+
61
+ Command controls for triggering actions and grouping related actions.
62
+
63
+ | Component | Summary | Status |
64
+ | --- | --- | --- |
65
+ | [Button](https://seblify.com/components/button) | A clickable command control with text and optional icons. | Draft |
66
+ | [ButtonGroup](https://seblify.com/components/button-group) | A visual group for related Button and IconButton controls. | Draft |
67
+ | [FloatingActionButton](https://seblify.com/components/floating-action-button) | A prominent floating button for a primary page action. | Draft |
68
+ | [IconButton](https://seblify.com/components/icon-button) | An icon-only button for compact commands with an accessible label. | Draft |
69
+ | [TimedButton](https://seblify.com/components/timed-button) | A button with a visible timer layer for delayed or temporary actions. | Draft |
70
+ | [ToggleButton](https://seblify.com/components/toggle-button) | A button that switches a single option on or off. | Draft |
71
+ | [ToggleButtonGroup](https://seblify.com/components/toggle-button-group) | A connected group of ToggleButton controls. | Draft |
72
+
73
+ </details>
74
+ <br />
75
+
58
76
  <details>
59
77
  <summary><strong>Input Fields &middot; 1</strong></summary>
60
78
 
@@ -75,17 +93,17 @@ Controls for selecting boolean, range, or option-based values.
75
93
  | Component | Summary | Status |
76
94
  | --- | --- | --- |
77
95
  | [Checkbox](https://seblify.com/components/checkbox) | A boolean selection control for one option in a form or settings flow. | Draft |
96
+ | [ColorModeSwitch](https://seblify.com/components/color-mode-switch) | A segmented control for selecting system, light, or dark color mode. | Draft |
78
97
  | [SegmentControl](https://seblify.com/components/segment-control) | A compact single-selection control for switching between a small set of options. | Draft |
79
98
  | [Slider](https://seblify.com/components/slider) | A range input for choosing an approximate numeric value. | Draft |
80
99
  | [Switch](https://seblify.com/components/switch) | A two-state control for immediately turning a setting on or off. | Draft |
81
- | [ThemeSwitch](https://seblify.com/components/theme-switch) | A segmented control for selecting system, light, or dark color mode. | Draft |
82
100
 
83
101
  </details>
84
102
  <br />
85
103
 
86
104
  ### Display Components
87
105
 
88
- _14 items_
106
+ _16 items_
89
107
 
90
108
  Components for showing content, feedback, media, and motion.
91
109
 
@@ -132,15 +150,17 @@ Text primitives and typographic treatments for readable interfaces.
132
150
  <br />
133
151
 
134
152
  <details>
135
- <summary><strong>Data Display &middot; 3</strong></summary>
153
+ <summary><strong>Data Display &middot; 5</strong></summary>
136
154
 
137
155
  Components for presenting structured values, metrics, and records.
138
156
 
139
157
  | Component | Summary | Status |
140
158
  | --- | --- | --- |
159
+ | [Date&nbsp;and&nbsp;Time](https://seblify.com/components/date-time) | Displays timestamps as localized date, time, or date-time text. | Beta |
141
160
  | [Duration](https://seblify.com/components/duration) | Displays millisecond durations as localized unit text or clock-style text. | Beta |
142
161
  | [RelativeTime](https://seblify.com/components/relative-time) | Formats dates as relative time, with reusable unit steps and automatic updates. | Beta |
143
162
  | [Timeline](https://seblify.com/components/timeline) | Arranges connected timeline items vertically or horizontally with flexible content, labels, and markers. | Beta |
163
+ | [TimestampCard](https://seblify.com/components/timestamp-card) | Shows one timestamp as relative time with date and time details below. | Beta |
144
164
 
145
165
  </details>
146
166
  <br />
@@ -243,17 +263,18 @@ Floating UI that appears above nearby interface content.
243
263
 
244
264
  ### Utility
245
265
 
246
- _2 items_
266
+ _3 items_
247
267
 
248
268
  Reusable helpers for formatting, behavior, providers, and rendering.
249
269
 
250
270
  <details>
251
- <summary><strong>Format &middot; 2</strong></summary>
271
+ <summary><strong>Format &middot; 3</strong></summary>
252
272
 
253
273
  Helpers for turning values into localized display text.
254
274
 
255
275
  | Component | Summary | Status |
256
276
  | --- | --- | --- |
277
+ | [formatDateTime](https://seblify.com/components/format-date-time) | Formats timestamps as localized date, time, or date-time text. | Beta |
257
278
  | [formatDuration](https://seblify.com/components/format-duration) | Formats millisecond durations as localized unit text or clock-style text. | Beta |
258
279
  | [formatRelativeTime](https://seblify.com/components/format-relative-time) | Formats dates as localized relative time text from a reusable utility function. | Beta |
259
280
 
@@ -269,82 +290,84 @@ Theme, tokens, and styling guidance for Seblify.
269
290
  | [Component&nbsp;API](https://seblify.com/design-system/component-api) | Shared prop naming rules for variants, tones, size, slots, radius, animation, placement, and contextual inheritance. |
270
291
  | [Icons](https://seblify.com/design-system/icons) | Browse all generated Seblify icons, grouped automatically from the SVG source folders. |
271
292
  | [Inheritance](https://seblify.com/design-system/inheritance) | Ambient CSS variables let components inherit tone and size from their context without hard-coded parent-child edge cases. |
272
- | [Theme](https://seblify.com/design-system/theme) | Seblify themes use CSS variables for light, dark, system, and custom color modes. |
293
+ | [Theme](https://seblify.com/design-system/theme) | Seblify themes are importable CSS files with light, dark, system, and custom color modes. |
273
294
 
274
295
  <br />
275
296
 
276
- ## Release Notes <small>&middot; 0.3.0</small>
297
+ ## Release Notes <small>&middot; 0.4.0</small>
277
298
 
278
- _July 4 2026_ &middot; _12 items updated_
299
+ _July 26 2026_ &middot; _16 items updated_
279
300
 
280
301
  Recent changes are summarized below. For the full release history, see the [changelog](https://seblify.com/release-notes).
281
302
 
282
- ### [Accordion](https://seblify.com/components/accordion)
303
+ ### [Button](https://seblify.com/components/button)
304
+
305
+ - Added Button
306
+ - Added icon slots
283
307
 
284
- - Created accordion component
285
- - Added expand/collapse animation for content
286
- - Created accordion-group component
308
+ ### [ButtonGroup](https://seblify.com/components/button-group)
309
+
310
+ - Added ButtonGroup
287
311
 
288
312
  ### [Checkbox](https://seblify.com/components/checkbox)
289
313
 
290
- - Supports tone prop
291
- - Supports intermediate state
292
- - Can be indirectly selected
293
- - Created helper for checkbox relationship management
294
- - Added automated test coverage
295
- - Relations helper now supports indirect intermediate states
314
+ - Added checkbox variants
315
+ - Added customizable size and radius
316
+ - Added optional animations
317
+ - Supports multiple intermediate symbols
318
+ - Added example code snippets
296
319
 
297
- ### [Collapse](https://seblify.com/components/collapse)
320
+ ### [ColorModeSwitch](https://seblify.com/components/color-mode-switch)
298
321
 
299
- - Created collapse controlled wrapper component
300
- - Added duration prop
301
- - Added closed min-height prop
322
+ - Renamed from ThemeSwitch to ColorModeSwitch
302
323
 
303
- ### [component-api](https://seblify.com/components/component-api)
324
+ ### [Date&nbsp;and&nbsp;Time](https://seblify.com/components/date-time)
304
325
 
305
- - Added tone prop Strong
306
- - Documented shared animation options
326
+ - Added date and time formatting
307
327
 
308
- ### [Duration](https://seblify.com/components/duration)
328
+ ### [FloatingActionButton](https://seblify.com/components/floating-action-button)
309
329
 
310
- - Added Duration formatter component
311
- - Added code snippets to docs examples
330
+ - Added Floating Action Button
312
331
 
313
- ### [formatDuration](https://seblify.com/components/format-duration)
332
+ ### [formatDateTime](https://seblify.com/components/format-date-time)
314
333
 
315
- - Added duration formatter
316
- - Added code snippets for all docs examples
334
+ - Added date time formatter
317
335
 
318
336
  ### [formatRelativeTime](https://seblify.com/components/format-relative-time)
319
337
 
320
- - Added function to format relative time
321
- - Added support for ranged custom labels
338
+ - Added options for largest/smallest/min/max units
322
339
 
323
- ### [general](https://seblify.com/components/general)
340
+ ### [IconButton](https://seblify.com/components/icon-button)
324
341
 
325
- - Added automated tests with generated test results displayed in docs
342
+ - Added icon button
326
343
 
327
- ### [RelativeTime](https://seblify.com/components/relative-time)
344
+ ### [Paper](https://seblify.com/components/paper)
328
345
 
329
- - Added relative-time component
330
- - Added docs code snippets to all examples
346
+ - Customize tones and variants
331
347
 
332
- ### [Switch](https://seblify.com/components/switch)
348
+ ### [RelativeTime](https://seblify.com/components/relative-time)
333
349
 
334
- - Added outline variant
335
- - Added animation duration prop
336
- - Added switch orientation prop
337
- - Added focus tone prop
338
- - Added automated component tests
350
+ - Customize displayed unit count with largest/smallest/min/max units
339
351
 
340
352
  ### [theme](https://seblify.com/components/theme)
341
353
 
342
- - Added secondary color option
354
+ - Added different themes to docs
355
+ - Added inverse surface behavior
356
+ - Added on-inverse tokens for better control
357
+ - Removed inverse from tone options
358
+
359
+ ### [TimedButton](https://seblify.com/components/timed-button)
360
+
361
+ - Added Timed Button
362
+
363
+ ### [TimestampCard](https://seblify.com/components/timestamp-card)
364
+
365
+ - Added relative timestamp card
366
+
367
+ ### [ToggleButton](https://seblify.com/components/toggle-button)
368
+
369
+ - Added ToggleButton
343
370
 
344
- ### [Tooltip](https://seblify.com/components/tooltip)
371
+ ### [ToggleButtonGroup](https://seblify.com/components/toggle-button-group)
345
372
 
346
- - Added tooltip component
347
- - Supports tones prop
348
- - Controlled visibility and emits events
349
- - Customizable distance to anchor element
350
- - Added animation options
373
+ - Added ToggleButtonGroup
@@ -65,7 +65,7 @@
65
65
  display: flex;
66
66
  flex-direction: column;
67
67
  min-height: 100vh;
68
- background: var(--app-shell-background, var(--seblify-color-page, #f4f6f8));
68
+ background: var(--app-shell-background, var(--seblify-color-background, #f4f6f8));
69
69
  color: var(--app-shell-color, var(--seblify-color-text, #172033));
70
70
  }
71
71
 
@@ -49,8 +49,8 @@
49
49
  }
50
50
 
51
51
  .error {
52
- border-bottom-color: var(--seblify-color-error-border, #efb6b6);
53
- background: var(--seblify-color-error-surface, #fff0f0);
54
- color: var(--seblify-color-error-text, #5a1717);
52
+ border-bottom-color: var(--seblify-color-danger-border, #efb6b6);
53
+ background: var(--seblify-color-danger-surface, #fff0f0);
54
+ color: var(--seblify-color-danger-text, #5a1717);
55
55
  }
56
56
  </style>
@@ -28,18 +28,18 @@
28
28
  <style>
29
29
  button {
30
30
  min-height: 36px;
31
- border: 1px solid var(--seblify-color-fill-accent, #146a6f);
31
+ border: 1px solid var(--seblify-color-primary-fill, #146a6f);
32
32
  border-radius: 6px;
33
33
  padding: 0 14px;
34
- background: var(--seblify-color-fill-accent, #146a6f);
35
- color: var(--seblify-color-fill-accent-text, #ffffff);
34
+ background: var(--seblify-color-primary-fill, #146a6f);
35
+ color: var(--seblify-color-primary-fill-text, #ffffff);
36
36
  font: inherit;
37
37
  font-weight: 600;
38
38
  cursor: pointer;
39
39
  }
40
40
 
41
41
  button:hover:not(:disabled) {
42
- background: var(--seblify-color-fill-accent-hover, #0d4d52);
42
+ background: var(--seblify-color-primary-fill-hover, #0d4d52);
43
43
  }
44
44
 
45
45
  button:focus-visible {