seblify 0.1.8 → 0.2.1

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 (400) hide show
  1. package/README.md +117 -74
  2. package/dist/components/action/input/select/segment-control/SegmentControl.svelte +145 -21
  3. package/dist/components/action/input/select/segment-control/SegmentControl.svelte.d.ts +7 -2
  4. package/dist/components/action/input/select/switch/Switch.svelte +641 -38
  5. package/dist/components/action/input/select/switch/Switch.svelte.d.ts +16 -1
  6. package/dist/components/display/annotation/tag/Tag.svelte +141 -105
  7. package/dist/components/display/data-display/visual/timeline/Timeline.svelte +161 -0
  8. package/dist/components/display/data-display/visual/timeline/Timeline.svelte.d.ts +17 -0
  9. package/dist/components/display/data-display/visual/timeline/TimelineItem.svelte +470 -0
  10. package/dist/components/display/data-display/visual/timeline/TimelineItem.svelte.d.ts +15 -0
  11. package/dist/components/display/data-display/visual/timeline/context.d.ts +14 -0
  12. package/dist/components/display/data-display/visual/timeline/context.js +14 -0
  13. package/dist/components/display/feedback/loading/loading-dots/LoadingDots.svelte +120 -51
  14. package/dist/components/display/feedback/loading/spinner/Spinner.svelte +118 -49
  15. package/dist/components/display/media/icon/IconGlyph.svelte +8 -2
  16. package/dist/components/display/typography/code-snippet/CodeSnippet.svelte +145 -0
  17. package/dist/components/display/typography/code-snippet/CodeSnippet.svelte.d.ts +9 -0
  18. package/dist/components/display/typography/code-snippet/tokenize.d.ts +10 -0
  19. package/dist/components/display/typography/code-snippet/tokenize.js +352 -0
  20. package/dist/components/framework/layout/container/app-shell/AppShell.svelte +1 -1
  21. package/dist/components/framework/navigation/sidebar/sidebar/Sidebar.svelte +712 -0
  22. package/dist/components/framework/navigation/sidebar/sidebar/Sidebar.svelte.d.ts +18 -0
  23. package/dist/components/framework/navigation/sidebar/sidenav/Sidenav.svelte +195 -0
  24. package/dist/components/framework/navigation/sidebar/sidenav/Sidenav.svelte.d.ts +17 -0
  25. package/dist/components/framework/navigation/sidebar/sidenav/SidenavItem.svelte +89 -0
  26. package/dist/components/framework/navigation/sidebar/sidenav/SidenavItem.svelte.d.ts +19 -0
  27. package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemBranch.svelte +203 -0
  28. package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemBranch.svelte.d.ts +21 -0
  29. package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemDivider.svelte +17 -0
  30. package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemDivider.svelte.d.ts +26 -0
  31. package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemLeaf.svelte +85 -0
  32. package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemLeaf.svelte.d.ts +17 -0
  33. package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemRow.svelte +404 -0
  34. package/dist/components/framework/navigation/sidebar/sidenav/fragments/SidenavItemRow.svelte.d.ts +30 -0
  35. package/dist/components/framework/navigation/sidebar/sidenav/sidenav.d.ts +29 -0
  36. package/dist/components/framework/navigation/sidebar/sidenav/sidenav.js +86 -0
  37. package/dist/design-system/inheritance/tokens.d.ts +7 -0
  38. package/dist/design-system/inheritance/tokens.js +39 -0
  39. package/dist/design-system/reserved-props/allowed-options.d.ts +7 -2
  40. package/dist/icons/generated/alarm-snooze.svelte +16 -0
  41. package/dist/icons/generated/alarm-snooze.svelte.d.ts +7 -0
  42. package/dist/icons/generated/alarm.svelte +16 -0
  43. package/dist/icons/generated/alarm.svelte.d.ts +7 -0
  44. package/dist/icons/generated/alert-octagon-outline.svelte +16 -0
  45. package/dist/icons/generated/alert-octagon-outline.svelte.d.ts +7 -0
  46. package/dist/icons/generated/alert-octagon.svelte +16 -0
  47. package/dist/icons/generated/alert-octagon.svelte.d.ts +7 -0
  48. package/dist/icons/generated/arrow-bottom-left-thin.svelte +16 -0
  49. package/dist/icons/generated/arrow-bottom-left-thin.svelte.d.ts +7 -0
  50. package/dist/icons/generated/arrow-bottom-right-thin.svelte +16 -0
  51. package/dist/icons/generated/arrow-bottom-right-thin.svelte.d.ts +7 -0
  52. package/dist/icons/generated/arrow-down-thin.svelte +16 -0
  53. package/dist/icons/generated/arrow-down-thin.svelte.d.ts +7 -0
  54. package/dist/icons/generated/arrow-left-thin.svelte +16 -0
  55. package/dist/icons/generated/arrow-left-thin.svelte.d.ts +7 -0
  56. package/dist/icons/generated/arrow-right-thin.svelte +16 -0
  57. package/dist/icons/generated/arrow-right-thin.svelte.d.ts +7 -0
  58. package/dist/icons/generated/arrow-top-left-thin.svelte +16 -0
  59. package/dist/icons/generated/arrow-top-left-thin.svelte.d.ts +7 -0
  60. package/dist/icons/generated/arrow-top-right-thin.svelte +16 -0
  61. package/dist/icons/generated/arrow-top-right-thin.svelte.d.ts +7 -0
  62. package/dist/icons/generated/arrow-up-thin.svelte +16 -0
  63. package/dist/icons/generated/arrow-up-thin.svelte.d.ts +7 -0
  64. package/dist/icons/generated/bell-outline.svelte +16 -0
  65. package/dist/icons/generated/bell-outline.svelte.d.ts +7 -0
  66. package/dist/icons/generated/bell.svelte +16 -0
  67. package/dist/icons/generated/bell.svelte.d.ts +7 -0
  68. package/dist/icons/generated/book-open-blank-variant-outline.svelte +16 -0
  69. package/dist/icons/generated/book-open-blank-variant-outline.svelte.d.ts +7 -0
  70. package/dist/icons/generated/book-open-blank-variant.svelte +16 -0
  71. package/dist/icons/generated/book-open-blank-variant.svelte.d.ts +7 -0
  72. package/dist/icons/generated/book-open-page-variant-outline.svelte +16 -0
  73. package/dist/icons/generated/book-open-page-variant-outline.svelte.d.ts +7 -0
  74. package/dist/icons/generated/book-open-page-variant.svelte +16 -0
  75. package/dist/icons/generated/book-open-page-variant.svelte.d.ts +7 -0
  76. package/dist/icons/generated/book-open-variant-outline.svelte +16 -0
  77. package/dist/icons/generated/book-open-variant-outline.svelte.d.ts +7 -0
  78. package/dist/icons/generated/book-open-variant.svelte +16 -0
  79. package/dist/icons/generated/book-open-variant.svelte.d.ts +7 -0
  80. package/dist/icons/generated/book-plus-outline.svelte +16 -0
  81. package/dist/icons/generated/book-plus-outline.svelte.d.ts +7 -0
  82. package/dist/icons/generated/button-cursor.svelte +16 -0
  83. package/dist/icons/generated/button-cursor.svelte.d.ts +7 -0
  84. package/dist/icons/generated/calendar-blank-outline.svelte +16 -0
  85. package/dist/icons/generated/calendar-blank-outline.svelte.d.ts +7 -0
  86. package/dist/icons/generated/calendar-blank.svelte +16 -0
  87. package/dist/icons/generated/calendar-blank.svelte.d.ts +7 -0
  88. package/dist/icons/generated/calendar-outline.svelte +16 -0
  89. package/dist/icons/generated/calendar-outline.svelte.d.ts +7 -0
  90. package/dist/icons/generated/calendar.svelte +16 -0
  91. package/dist/icons/generated/calendar.svelte.d.ts +7 -0
  92. package/dist/icons/generated/cancel.svelte +16 -0
  93. package/dist/icons/generated/cancel.svelte.d.ts +7 -0
  94. package/dist/icons/generated/certificate-outline.svelte +16 -0
  95. package/dist/icons/generated/certificate-outline.svelte.d.ts +7 -0
  96. package/dist/icons/generated/chart-box-outline.svelte +16 -0
  97. package/dist/icons/generated/chart-box-outline.svelte.d.ts +7 -0
  98. package/dist/icons/generated/chart-box.svelte +16 -0
  99. package/dist/icons/generated/chart-box.svelte.d.ts +7 -0
  100. package/dist/icons/generated/chat-outline.svelte +16 -0
  101. package/dist/icons/generated/chat-outline.svelte.d.ts +7 -0
  102. package/dist/icons/generated/chat-processing-outline.svelte +16 -0
  103. package/dist/icons/generated/chat-processing-outline.svelte.d.ts +7 -0
  104. package/dist/icons/generated/chat-processing.svelte +16 -0
  105. package/dist/icons/generated/chat-processing.svelte.d.ts +7 -0
  106. package/dist/icons/generated/chat-question-outline.svelte +16 -0
  107. package/dist/icons/generated/chat-question-outline.svelte.d.ts +7 -0
  108. package/dist/icons/generated/chat-question.svelte +16 -0
  109. package/dist/icons/generated/chat-question.svelte.d.ts +7 -0
  110. package/dist/icons/generated/chat.svelte +16 -0
  111. package/dist/icons/generated/chat.svelte.d.ts +7 -0
  112. package/dist/icons/generated/circle-large-outline.svelte +16 -0
  113. package/dist/icons/generated/circle-large-outline.svelte.d.ts +7 -0
  114. package/dist/icons/generated/circle-large.svelte +16 -0
  115. package/dist/icons/generated/circle-large.svelte.d.ts +7 -0
  116. package/dist/icons/generated/circle-medium.svelte +16 -0
  117. package/dist/icons/generated/circle-medium.svelte.d.ts +7 -0
  118. package/dist/icons/generated/circle-outline.svelte +16 -0
  119. package/dist/icons/generated/circle-outline.svelte.d.ts +7 -0
  120. package/dist/icons/generated/circle-small.svelte +16 -0
  121. package/dist/icons/generated/circle-small.svelte.d.ts +7 -0
  122. package/dist/icons/generated/circle.svelte +16 -0
  123. package/dist/icons/generated/circle.svelte.d.ts +7 -0
  124. package/dist/icons/generated/clipboard-account-outline.svelte +16 -0
  125. package/dist/icons/generated/clipboard-account-outline.svelte.d.ts +7 -0
  126. package/dist/icons/generated/clipboard-arrow-down-outline.svelte +16 -0
  127. package/dist/icons/generated/clipboard-arrow-down-outline.svelte.d.ts +7 -0
  128. package/dist/icons/generated/clipboard-arrow-up-outline.svelte +16 -0
  129. package/dist/icons/generated/clipboard-arrow-up-outline.svelte.d.ts +7 -0
  130. package/dist/icons/generated/clipboard-clock-outline.svelte +16 -0
  131. package/dist/icons/generated/clipboard-clock-outline.svelte.d.ts +7 -0
  132. package/dist/icons/generated/clipboard-edit-outline.svelte +16 -0
  133. package/dist/icons/generated/clipboard-edit-outline.svelte.d.ts +7 -0
  134. package/dist/icons/generated/clipboard-edit.svelte +16 -0
  135. package/dist/icons/generated/clipboard-edit.svelte.d.ts +7 -0
  136. package/dist/icons/generated/clipboard-flow-outline.svelte +16 -0
  137. package/dist/icons/generated/clipboard-flow-outline.svelte.d.ts +7 -0
  138. package/dist/icons/generated/clipboard-text-clock-outline.svelte +16 -0
  139. package/dist/icons/generated/clipboard-text-clock-outline.svelte.d.ts +7 -0
  140. package/dist/icons/generated/clipboard-text-clock.svelte +16 -0
  141. package/dist/icons/generated/clipboard-text-clock.svelte.d.ts +7 -0
  142. package/dist/icons/generated/clipboard-text-outline.svelte +16 -0
  143. package/dist/icons/generated/clipboard-text-outline.svelte.d.ts +7 -0
  144. package/dist/icons/generated/clipboard-text.svelte +16 -0
  145. package/dist/icons/generated/clipboard-text.svelte.d.ts +7 -0
  146. package/dist/icons/generated/clock-outline.svelte +16 -0
  147. package/dist/icons/generated/clock-outline.svelte.d.ts +7 -0
  148. package/dist/icons/generated/clock.svelte +16 -0
  149. package/dist/icons/generated/clock.svelte.d.ts +7 -0
  150. package/dist/icons/generated/cog-outline.svelte +16 -0
  151. package/dist/icons/generated/cog-outline.svelte.d.ts +7 -0
  152. package/dist/icons/generated/cog.svelte +16 -0
  153. package/dist/icons/generated/cog.svelte.d.ts +7 -0
  154. package/dist/icons/generated/copy.svelte +16 -0
  155. package/dist/icons/generated/copy.svelte.d.ts +7 -0
  156. package/dist/icons/generated/creation-outline.svelte +16 -0
  157. package/dist/icons/generated/creation-outline.svelte.d.ts +7 -0
  158. package/dist/icons/generated/creation.svelte +16 -0
  159. package/dist/icons/generated/creation.svelte.d.ts +7 -0
  160. package/dist/icons/generated/cursor-default-click-outline.svelte +16 -0
  161. package/dist/icons/generated/cursor-default-click-outline.svelte.d.ts +7 -0
  162. package/dist/icons/generated/cursor-default-click.svelte +16 -0
  163. package/dist/icons/generated/cursor-default-click.svelte.d.ts +7 -0
  164. package/dist/icons/generated/duck.svelte +16 -0
  165. package/dist/icons/generated/duck.svelte.d.ts +7 -0
  166. package/dist/icons/generated/email-open-outline.svelte +23 -0
  167. package/dist/icons/generated/email-open-outline.svelte.d.ts +7 -0
  168. package/dist/icons/generated/email-open.svelte +16 -0
  169. package/dist/icons/generated/email-open.svelte.d.ts +7 -0
  170. package/dist/icons/generated/email-outline.svelte +16 -0
  171. package/dist/icons/generated/email-outline.svelte.d.ts +7 -0
  172. package/dist/icons/generated/email.svelte +16 -0
  173. package/dist/icons/generated/email.svelte.d.ts +7 -0
  174. package/dist/icons/generated/emoticon-angry-outline.svelte +16 -0
  175. package/dist/icons/generated/emoticon-angry-outline.svelte.d.ts +7 -0
  176. package/dist/icons/generated/emoticon-angry.svelte +16 -0
  177. package/dist/icons/generated/emoticon-angry.svelte.d.ts +7 -0
  178. package/dist/icons/generated/emoticon-confused-outline.svelte +16 -0
  179. package/dist/icons/generated/emoticon-confused-outline.svelte.d.ts +7 -0
  180. package/dist/icons/generated/emoticon-confused.svelte +16 -0
  181. package/dist/icons/generated/emoticon-confused.svelte.d.ts +7 -0
  182. package/dist/icons/generated/emoticon-cool-outline.svelte +16 -0
  183. package/dist/icons/generated/emoticon-cool-outline.svelte.d.ts +7 -0
  184. package/dist/icons/generated/emoticon-cool.svelte +16 -0
  185. package/dist/icons/generated/emoticon-cool.svelte.d.ts +7 -0
  186. package/dist/icons/generated/emoticon-excited-outline.svelte +16 -0
  187. package/dist/icons/generated/emoticon-excited-outline.svelte.d.ts +7 -0
  188. package/dist/icons/generated/emoticon-excited.svelte +16 -0
  189. package/dist/icons/generated/emoticon-excited.svelte.d.ts +7 -0
  190. package/dist/icons/generated/emoticon-frown-outline.svelte +16 -0
  191. package/dist/icons/generated/emoticon-frown-outline.svelte.d.ts +7 -0
  192. package/dist/icons/generated/emoticon-frown.svelte +16 -0
  193. package/dist/icons/generated/emoticon-frown.svelte.d.ts +7 -0
  194. package/dist/icons/generated/emoticon-happy-outline.svelte +16 -0
  195. package/dist/icons/generated/emoticon-happy-outline.svelte.d.ts +7 -0
  196. package/dist/icons/generated/emoticon-happy.svelte +16 -0
  197. package/dist/icons/generated/emoticon-happy.svelte.d.ts +7 -0
  198. package/dist/icons/generated/emoticon-neutral-outline.svelte +16 -0
  199. package/dist/icons/generated/emoticon-neutral-outline.svelte.d.ts +7 -0
  200. package/dist/icons/generated/emoticon-neutral.svelte +16 -0
  201. package/dist/icons/generated/emoticon-neutral.svelte.d.ts +7 -0
  202. package/dist/icons/generated/emoticon-outline.svelte +16 -0
  203. package/dist/icons/generated/emoticon-outline.svelte.d.ts +7 -0
  204. package/dist/icons/generated/emoticon-sad-outline.svelte +16 -0
  205. package/dist/icons/generated/emoticon-sad-outline.svelte.d.ts +7 -0
  206. package/dist/icons/generated/emoticon-sad.svelte +16 -0
  207. package/dist/icons/generated/emoticon-sad.svelte.d.ts +7 -0
  208. package/dist/icons/generated/emoticon.svelte +16 -0
  209. package/dist/icons/generated/emoticon.svelte.d.ts +7 -0
  210. package/dist/icons/generated/eye-closed.svelte +16 -0
  211. package/dist/icons/generated/eye-closed.svelte.d.ts +7 -0
  212. package/dist/icons/generated/eye-off-outline.svelte +16 -0
  213. package/dist/icons/generated/eye-off-outline.svelte.d.ts +7 -0
  214. package/dist/icons/generated/eye-off.svelte +16 -0
  215. package/dist/icons/generated/eye-off.svelte.d.ts +7 -0
  216. package/dist/icons/generated/eye-outline.svelte +16 -0
  217. package/dist/icons/generated/eye-outline.svelte.d.ts +7 -0
  218. package/dist/icons/generated/eye.svelte +16 -0
  219. package/dist/icons/generated/eye.svelte.d.ts +7 -0
  220. package/dist/icons/generated/eyedropper.svelte +16 -0
  221. package/dist/icons/generated/eyedropper.svelte.d.ts +7 -0
  222. package/dist/icons/generated/file-document-outline.svelte +16 -0
  223. package/dist/icons/generated/file-document-outline.svelte.d.ts +7 -0
  224. package/dist/icons/generated/file-document.svelte +16 -0
  225. package/dist/icons/generated/file-document.svelte.d.ts +7 -0
  226. package/dist/icons/generated/file-star-outline.svelte +16 -0
  227. package/dist/icons/generated/file-star-outline.svelte.d.ts +7 -0
  228. package/dist/icons/generated/flower-head.svelte +16 -0
  229. package/dist/icons/generated/flower-head.svelte.d.ts +7 -0
  230. package/dist/icons/generated/flower-tulip.svelte +16 -0
  231. package/dist/icons/generated/flower-tulip.svelte.d.ts +7 -0
  232. package/dist/icons/generated/flower.svelte +16 -0
  233. package/dist/icons/generated/flower.svelte.d.ts +7 -0
  234. package/dist/icons/generated/folder-open-outline.svelte +16 -0
  235. package/dist/icons/generated/folder-open-outline.svelte.d.ts +7 -0
  236. package/dist/icons/generated/folder-open.svelte +16 -0
  237. package/dist/icons/generated/folder-open.svelte.d.ts +7 -0
  238. package/dist/icons/generated/folder-outline.svelte +16 -0
  239. package/dist/icons/generated/folder-outline.svelte.d.ts +7 -0
  240. package/dist/icons/generated/folder.svelte +16 -0
  241. package/dist/icons/generated/folder.svelte.d.ts +7 -0
  242. package/dist/icons/generated/format-color-fill.svelte +16 -0
  243. package/dist/icons/generated/format-color-fill.svelte.d.ts +7 -0
  244. package/dist/icons/generated/format-color-highlight.svelte +16 -0
  245. package/dist/icons/generated/format-color-highlight.svelte.d.ts +7 -0
  246. package/dist/icons/generated/format-list-bulleted-square.svelte +16 -0
  247. package/dist/icons/generated/format-list-bulleted-square.svelte.d.ts +7 -0
  248. package/dist/icons/generated/format-list-bulleted.svelte +16 -0
  249. package/dist/icons/generated/format-list-bulleted.svelte.d.ts +7 -0
  250. package/dist/icons/generated/format-quote-close-outline.svelte +16 -0
  251. package/dist/icons/generated/format-quote-close-outline.svelte.d.ts +7 -0
  252. package/dist/icons/generated/format-quote-close.svelte +16 -0
  253. package/dist/icons/generated/format-quote-close.svelte.d.ts +7 -0
  254. package/dist/icons/generated/format-quote-open-outline.svelte +16 -0
  255. package/dist/icons/generated/format-quote-open-outline.svelte.d.ts +7 -0
  256. package/dist/icons/generated/format-quote-open.svelte +16 -0
  257. package/dist/icons/generated/format-quote-open.svelte.d.ts +7 -0
  258. package/dist/icons/generated/group.svelte +16 -0
  259. package/dist/icons/generated/group.svelte.d.ts +7 -0
  260. package/dist/icons/generated/handle-grip.svelte +16 -0
  261. package/dist/icons/generated/handle-grip.svelte.d.ts +7 -0
  262. package/dist/icons/generated/image-outline.svelte +16 -0
  263. package/dist/icons/generated/image-outline.svelte.d.ts +7 -0
  264. package/dist/icons/generated/image.svelte +16 -0
  265. package/dist/icons/generated/image.svelte.d.ts +7 -0
  266. package/dist/icons/generated/index.d.ts +173 -0
  267. package/dist/icons/generated/index.js +173 -0
  268. package/dist/icons/generated/lead-pencil.svelte +16 -0
  269. package/dist/icons/generated/lead-pencil.svelte.d.ts +7 -0
  270. package/dist/icons/generated/lightbulb-outline.svelte +16 -0
  271. package/dist/icons/generated/lightbulb-outline.svelte.d.ts +7 -0
  272. package/dist/icons/generated/lightbulb.svelte +16 -0
  273. package/dist/icons/generated/lightbulb.svelte.d.ts +7 -0
  274. package/dist/icons/generated/lock-open-outline.svelte +16 -0
  275. package/dist/icons/generated/lock-open-outline.svelte.d.ts +7 -0
  276. package/dist/icons/generated/lock-open.svelte +16 -0
  277. package/dist/icons/generated/lock-open.svelte.d.ts +7 -0
  278. package/dist/icons/generated/lock-outline.svelte +16 -0
  279. package/dist/icons/generated/lock-outline.svelte.d.ts +7 -0
  280. package/dist/icons/generated/lock.svelte +16 -0
  281. package/dist/icons/generated/lock.svelte.d.ts +7 -0
  282. package/dist/icons/generated/magic-wand.svelte +16 -0
  283. package/dist/icons/generated/magic-wand.svelte.d.ts +7 -0
  284. package/dist/icons/generated/magnify.svelte +16 -0
  285. package/dist/icons/generated/magnify.svelte.d.ts +7 -0
  286. package/dist/icons/generated/manifest.js +1464 -62
  287. package/dist/icons/generated/menu-down.svelte +16 -0
  288. package/dist/icons/generated/menu-down.svelte.d.ts +7 -0
  289. package/dist/icons/generated/menu-up.svelte +16 -0
  290. package/dist/icons/generated/menu-up.svelte.d.ts +7 -0
  291. package/dist/icons/generated/minus-thick.svelte +16 -0
  292. package/dist/icons/generated/minus-thick.svelte.d.ts +7 -0
  293. package/dist/icons/generated/minus.svelte +16 -0
  294. package/dist/icons/generated/minus.svelte.d.ts +7 -0
  295. package/dist/icons/generated/page-layout-header-footer.svelte +16 -0
  296. package/dist/icons/generated/page-layout-header-footer.svelte.d.ts +7 -0
  297. package/dist/icons/generated/palette-outline.svelte +16 -0
  298. package/dist/icons/generated/palette-outline.svelte.d.ts +7 -0
  299. package/dist/icons/generated/palette.svelte +16 -0
  300. package/dist/icons/generated/palette.svelte.d.ts +7 -0
  301. package/dist/icons/generated/pause.svelte +16 -0
  302. package/dist/icons/generated/pause.svelte.d.ts +7 -0
  303. package/dist/icons/generated/pen.svelte +16 -0
  304. package/dist/icons/generated/pen.svelte.d.ts +7 -0
  305. package/dist/icons/generated/pencil-outline.svelte +16 -0
  306. package/dist/icons/generated/pencil-outline.svelte.d.ts +7 -0
  307. package/dist/icons/generated/pencil.svelte +16 -0
  308. package/dist/icons/generated/pencil.svelte.d.ts +7 -0
  309. package/dist/icons/generated/percent.svelte +16 -0
  310. package/dist/icons/generated/percent.svelte.d.ts +7 -0
  311. package/dist/icons/generated/pine-tree-box.svelte +16 -0
  312. package/dist/icons/generated/pine-tree-box.svelte.d.ts +7 -0
  313. package/dist/icons/generated/pine-tree-variant-outline.svelte +16 -0
  314. package/dist/icons/generated/pine-tree-variant-outline.svelte.d.ts +7 -0
  315. package/dist/icons/generated/play-pause.svelte +16 -0
  316. package/dist/icons/generated/play-pause.svelte.d.ts +7 -0
  317. package/dist/icons/generated/play.svelte +16 -0
  318. package/dist/icons/generated/play.svelte.d.ts +7 -0
  319. package/dist/icons/generated/plus-thick.svelte +16 -0
  320. package/dist/icons/generated/plus-thick.svelte.d.ts +7 -0
  321. package/dist/icons/generated/plus.svelte +16 -0
  322. package/dist/icons/generated/plus.svelte.d.ts +7 -0
  323. package/dist/icons/generated/reset-focus.svelte +16 -0
  324. package/dist/icons/generated/reset-focus.svelte.d.ts +7 -0
  325. package/dist/icons/generated/reset.svelte +16 -0
  326. package/dist/icons/generated/reset.svelte.d.ts +7 -0
  327. package/dist/icons/generated/ruler-square.svelte +16 -0
  328. package/dist/icons/generated/ruler-square.svelte.d.ts +7 -0
  329. package/dist/icons/generated/ruler.svelte +16 -0
  330. package/dist/icons/generated/ruler.svelte.d.ts +7 -0
  331. package/dist/icons/generated/star-outline.svelte +16 -0
  332. package/dist/icons/generated/star-outline.svelte.d.ts +7 -0
  333. package/dist/icons/generated/star.svelte +16 -0
  334. package/dist/icons/generated/star.svelte.d.ts +7 -0
  335. package/dist/icons/generated/table-border.svelte +16 -0
  336. package/dist/icons/generated/table-border.svelte.d.ts +7 -0
  337. package/dist/icons/generated/tag-multiple-outline.svelte +16 -0
  338. package/dist/icons/generated/tag-multiple-outline.svelte.d.ts +7 -0
  339. package/dist/icons/generated/tag-multiple.svelte +16 -0
  340. package/dist/icons/generated/tag-multiple.svelte.d.ts +7 -0
  341. package/dist/icons/generated/tag-outline.svelte +16 -0
  342. package/dist/icons/generated/tag-outline.svelte.d.ts +7 -0
  343. package/dist/icons/generated/tag.svelte +16 -0
  344. package/dist/icons/generated/tag.svelte.d.ts +7 -0
  345. package/dist/icons/generated/text-box-outline.svelte +16 -0
  346. package/dist/icons/generated/text-box-outline.svelte.d.ts +7 -0
  347. package/dist/icons/generated/text-box-plus-outline.svelte +16 -0
  348. package/dist/icons/generated/text-box-plus-outline.svelte.d.ts +7 -0
  349. package/dist/icons/generated/text-box-plus.svelte +16 -0
  350. package/dist/icons/generated/text-box-plus.svelte.d.ts +7 -0
  351. package/dist/icons/generated/text-box.svelte +16 -0
  352. package/dist/icons/generated/text-box.svelte.d.ts +7 -0
  353. package/dist/icons/generated/thumb-down-outline.svelte +16 -0
  354. package/dist/icons/generated/thumb-down-outline.svelte.d.ts +7 -0
  355. package/dist/icons/generated/thumb-down.svelte +16 -0
  356. package/dist/icons/generated/thumb-down.svelte.d.ts +7 -0
  357. package/dist/icons/generated/thumb-up-outline.svelte +16 -0
  358. package/dist/icons/generated/thumb-up-outline.svelte.d.ts +7 -0
  359. package/dist/icons/generated/thumb-up.svelte +16 -0
  360. package/dist/icons/generated/thumb-up.svelte.d.ts +7 -0
  361. package/dist/icons/generated/tilde.svelte +16 -0
  362. package/dist/icons/generated/tilde.svelte.d.ts +7 -0
  363. package/dist/icons/generated/tooltip-image-outline.svelte +16 -0
  364. package/dist/icons/generated/tooltip-image-outline.svelte.d.ts +7 -0
  365. package/dist/icons/generated/tooltip-question-outline.svelte +16 -0
  366. package/dist/icons/generated/tooltip-question-outline.svelte.d.ts +7 -0
  367. package/dist/icons/generated/tooltip-question.svelte +16 -0
  368. package/dist/icons/generated/tooltip-question.svelte.d.ts +7 -0
  369. package/dist/icons/generated/tooltip-text-outline.svelte +16 -0
  370. package/dist/icons/generated/tooltip-text-outline.svelte.d.ts +7 -0
  371. package/dist/icons/generated/tooltip-text.svelte +16 -0
  372. package/dist/icons/generated/tooltip-text.svelte.d.ts +7 -0
  373. package/dist/icons/generated/triangle-down-outline.svelte +16 -0
  374. package/dist/icons/generated/triangle-down-outline.svelte.d.ts +7 -0
  375. package/dist/icons/generated/triangle-down.svelte +16 -0
  376. package/dist/icons/generated/triangle-down.svelte.d.ts +7 -0
  377. package/dist/icons/generated/triangle-outline.svelte +16 -0
  378. package/dist/icons/generated/triangle-outline.svelte.d.ts +7 -0
  379. package/dist/icons/generated/triangle-small-down.svelte +16 -0
  380. package/dist/icons/generated/triangle-small-down.svelte.d.ts +7 -0
  381. package/dist/icons/generated/triangle-small.svelte +16 -0
  382. package/dist/icons/generated/triangle-small.svelte.d.ts +7 -0
  383. package/dist/icons/generated/triangle.svelte +16 -0
  384. package/dist/icons/generated/triangle.svelte.d.ts +7 -0
  385. package/dist/icons/generated/view-grid-outline.svelte +16 -0
  386. package/dist/icons/generated/view-grid-outline.svelte.d.ts +7 -0
  387. package/dist/icons/generated/view-grid.svelte +16 -0
  388. package/dist/icons/generated/view-grid.svelte.d.ts +7 -0
  389. package/dist/index.d.ts +7 -3
  390. package/dist/index.js +6 -2
  391. package/dist/styles/tone-context.css +94 -0
  392. package/package.json +3 -3
  393. package/dist/components/framework/layout/container/sidebar/Sidebar.svelte +0 -134
  394. package/dist/components/framework/layout/container/sidebar/Sidebar.svelte.d.ts +0 -9
  395. package/dist/components/framework/navigation/sidenav/Sidenav.svelte +0 -86
  396. package/dist/components/framework/navigation/sidenav/Sidenav.svelte.d.ts +0 -8
  397. package/dist/components/framework/navigation/sidenav/SidenavTree.svelte +0 -265
  398. package/dist/components/framework/navigation/sidenav/SidenavTree.svelte.d.ts +0 -14
  399. package/dist/components/framework/navigation/sidenav/sidenav.d.ts +0 -6
  400. package/dist/components/framework/navigation/sidenav/sidenav.js +0 -1
package/README.md CHANGED
@@ -1,8 +1,7 @@
1
+ [![docs](https://img.shields.io/badge/docs-seblify.com-black.svg)](https://seblify.com)
1
2
  [![license](https://img.shields.io/npm/l/seblify.svg)](https://www.npmjs.com/package/seblify)
2
3
  [![npm downloads](https://img.shields.io/npm/dm/seblify.svg)](https://www.npmjs.com/package/seblify)
3
4
 
4
- [![docs](https://img.shields.io/badge/docs-seblify.com-black.svg)](https://seblify.com)
5
-
6
5
  # Seblify
7
6
 
8
7
  [comment]: <> (==== ========================= ====)
@@ -13,6 +12,12 @@
13
12
 
14
13
  Svelte UI component library for building themed interfaces.
15
14
 
15
+ ### Feedback
16
+
17
+ Seblify is a work in progress, and I am very open to feedback. If you find a bug, hit a rough edge, or have an idea for a component, API, example, or design-system improvement, please let me know.
18
+
19
+ Ideas and bug reports are genuinely welcome: [support.seblify@gmail.com](mailto:support.seblify@gmail.com)
20
+
16
21
  ## Installation
17
22
 
18
23
  ```bash
@@ -28,12 +33,12 @@ import 'seblify/theme.css';
28
33
 
29
34
  ## Components
30
35
 
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
+
31
38
  [![components-stable](https://img.shields.io/badge/stable-0%20components-brightgreen.svg)](https://seblify.com/components)
32
- [![components-beta](https://img.shields.io/badge/beta-0%20components-yellow.svg)](https://seblify.com/components)
39
+ [![components-beta](https://img.shields.io/badge/beta-2%20components-yellow.svg)](https://seblify.com/components)
33
40
  [![components-draft](https://img.shields.io/badge/draft-24%20components-lightgrey.svg)](https://seblify.com/components)
34
41
 
35
- 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.
36
-
37
42
  ### Quick links
38
43
 
39
44
  - [Input Components](https://seblify.com/sections/action)
@@ -41,177 +46,164 @@ Explore the supported components in this library. Components are grouped by purp
41
46
  - [Framework Components](https://seblify.com/sections/framework)
42
47
  - [Design System](https://seblify.com/design-system)
43
48
 
44
- ---
49
+ <br />
45
50
 
46
- ## Input Components <small>&middot; 6 items</small>
51
+ ### Input Components
52
+
53
+ _6 items_
47
54
 
48
55
  Components that let users make choices, submit data, and trigger behavior.
49
56
 
50
57
  <details>
51
- <summary><strong>Input Fields</strong></summary>
58
+ <summary><strong>Input Fields &middot; 1</strong></summary>
52
59
 
53
60
  Text-like controls for entering structured user input.
54
61
 
55
62
  | Component | Summary | Status |
56
63
  | --- | --- | --- |
57
- | [Pin&nbsp;Input](https://seblify.com/components/pin-input) | A segmented numeric input for short verification codes. | &#x26AA;&nbsp;Draft |
58
-
64
+ | [Pin&nbsp;Input](https://seblify.com/components/pin-input) | A segmented numeric input for short verification codes. | Draft |
59
65
 
60
- ---
61
66
  </details>
62
-
63
67
  <br />
64
68
 
65
69
  <details>
66
- <summary><strong>Selectable</strong></summary>
70
+ <summary><strong>Selectable &middot; 5</strong></summary>
67
71
 
68
72
  Controls for selecting boolean, range, or option-based values.
69
73
 
70
74
  | Component | Summary | Status |
71
75
  | --- | --- | --- |
72
- | [Checkbox](https://seblify.com/components/checkbox) | A boolean selection control for one option in a form or settings flow. | &#x26AA;&nbsp;Draft |
73
- | [SegmentControl](https://seblify.com/components/segment-control) | A compact single-selection control for switching between a small set of options. | &#x26AA;&nbsp;Draft |
74
- | [Slider](https://seblify.com/components/slider) | A range input for choosing an approximate numeric value. | &#x26AA;&nbsp;Draft |
75
- | [Switch](https://seblify.com/components/switch) | A two-state control for immediately turning a setting on or off. | &#x26AA;&nbsp;Draft |
76
- | [ThemeSwitch](https://seblify.com/components/theme-switch) | A segmented control for selecting system, light, or dark color mode. | &#x26AA;&nbsp;Draft |
76
+ | [Checkbox](https://seblify.com/components/checkbox) | A boolean selection control for one option in a form or settings flow. | Draft |
77
+ | [SegmentControl](https://seblify.com/components/segment-control) | A compact single-selection control for switching between a small set of options. | Draft |
78
+ | [Slider](https://seblify.com/components/slider) | A range input for choosing an approximate numeric value. | Draft |
79
+ | [Switch](https://seblify.com/components/switch) | A two-state control for immediately turning a setting on or off. | Draft |
80
+ | [ThemeSwitch](https://seblify.com/components/theme-switch) | A segmented control for selecting system, light, or dark color mode. | Draft |
77
81
 
78
-
79
- ---
80
82
  </details>
83
+ <br />
81
84
 
82
- ## Display Components <small>&middot; 8 items</small>
85
+ ### Display Components
86
+
87
+ _10 items_
83
88
 
84
89
  Components for showing content, feedback, media, and motion.
85
90
 
91
+ | Component | Summary | Status |
92
+ | --- | --- | --- |
93
+ | [Timeline](https://seblify.com/components/timeline) | Arranges connected timeline items vertically or horizontally with flexible content, labels, and markers. | Beta |
94
+
86
95
  <details>
87
- <summary><strong>Annotation</strong></summary>
96
+ <summary><strong>Annotation &middot; 3</strong></summary>
88
97
 
89
98
  Small attached indicators, labels, and supporting markers.
90
99
 
91
100
  | Component | Summary | Status |
92
101
  | --- | --- | --- |
93
- | [Badge](https://seblify.com/components/badge) | A small attached indicator for counts, labels, and presence states around another item. | &#x26AA;&nbsp;Draft |
94
- | [Tag](https://seblify.com/components/tag) | A compact text marker for statuses, categories, and item labels. | &#x26AA;&nbsp;Draft |
95
- | [TagGroup](https://seblify.com/components/tag-group) | A wrapping inline group for tags with the standard tag spacing. | &#x26AA;&nbsp;Draft |
96
-
102
+ | [Badge](https://seblify.com/components/badge) | A small attached indicator for counts, labels, and presence states around another item. | Draft |
103
+ | [Tag](https://seblify.com/components/tag) | A compact text marker for statuses, categories, and item labels. | Draft |
104
+ | [TagGroup](https://seblify.com/components/tag-group) | A wrapping inline group for tags with the standard tag spacing. | Draft |
97
105
 
98
- ---
99
106
  </details>
100
-
101
107
  <br />
102
108
 
103
109
  <details>
104
- <summary><strong>Loading</strong></summary>
110
+ <summary><strong>Loading &middot; 2</strong></summary>
105
111
 
106
112
  Progress indicators and waiting states.
107
113
 
108
114
  | Component | Summary | Status |
109
115
  | --- | --- | --- |
110
- | [Loading&nbsp;Dots](https://seblify.com/components/loading-dots) | A compact animated loading indicator for inline waiting states. | &#x26AA;&nbsp;Draft |
111
- | [Spinner](https://seblify.com/components/spinner) | A circular loading indicator for indeterminate progress. | &#x26AA;&nbsp;Draft |
112
-
116
+ | [Loading&nbsp;Dots](https://seblify.com/components/loading-dots) | A compact animated loading indicator for inline waiting states. | Draft |
117
+ | [Spinner](https://seblify.com/components/spinner) | A circular loading indicator for indeterminate progress. | Draft |
113
118
 
114
- ---
115
119
  </details>
116
-
117
120
  <br />
118
121
 
119
122
  <details>
120
- <summary><strong>Typography</strong></summary>
123
+ <summary><strong>Typography &middot; 3</strong></summary>
121
124
 
122
125
  Text primitives and typographic treatments for readable interfaces.
123
126
 
124
127
  | Component | Summary | Status |
125
128
  | --- | --- | --- |
126
- | [Eyebrow](https://seblify.com/components/eyebrow) | A short contextual label that sits above a heading or dense content block. | &#x26AA;&nbsp;Draft |
127
- | [Highlight](https://seblify.com/components/highlight) | Highlights case-insensitive text matches inside a plain text string. | &#x26AA;&nbsp;Draft |
128
-
129
+ | [CodeSnippet](https://seblify.com/components/code-snippet) | Displays formatted code snippets with Svelte-focused highlighting and optional line numbers. | Draft |
130
+ | [Eyebrow](https://seblify.com/components/eyebrow) | A short contextual label that sits above a heading or dense content block. | Draft |
131
+ | [Highlight](https://seblify.com/components/highlight) | Highlights case-insensitive text matches inside a plain text string. | Beta |
129
132
 
130
- ---
131
133
  </details>
132
-
133
134
  <br />
134
135
 
135
136
  <details>
136
- <summary><strong>Media</strong></summary>
137
+ <summary><strong>Media &middot; 1</strong></summary>
137
138
 
138
139
  Icons, images, video, and other visual media components.
139
140
 
140
141
  | Component | Summary | Status |
141
142
  | --- | --- | --- |
142
- | [Icon](https://seblify.com/components/icon) | A convenient registry-based icon component for Seblify SVG icons. | &#x26AA;&nbsp;Draft |
143
-
143
+ | [Icon](https://seblify.com/components/icon) | A convenient registry-based icon component for Seblify SVG icons. | Draft |
144
144
 
145
- ---
146
145
  </details>
146
+ <br />
147
147
 
148
- ## Framework Components <small>&middot; 10 items</small>
148
+ ### Framework Components
149
+
150
+ _10 items_
149
151
 
150
152
  Layout, navigation, overlays, and surface primitives.
151
153
 
152
154
  <details>
153
- <summary><strong>Align</strong></summary>
155
+ <summary><strong>Align &middot; 4</strong></summary>
154
156
 
155
157
  Small layout primitives for spacing and aligning content.
156
158
 
157
159
  | Component | Summary | Status |
158
160
  | --- | --- | --- |
159
- | [Cluster](https://seblify.com/components/cluster) | A wrapping horizontal layout primitive that spaces items with a configurable gap. | &#x26AA;&nbsp;Draft |
160
- | [Grid](https://seblify.com/components/grid) | A responsive grid layout primitive with automatic columns or an explicit column count. | &#x26AA;&nbsp;Draft |
161
- | [Row](https://seblify.com/components/row) | A horizontal layout primitive that spaces items with a configurable gap. | &#x26AA;&nbsp;Draft |
162
- | [Stack](https://seblify.com/components/stack) | A vertical layout primitive that spaces items with a configurable gap. | &#x26AA;&nbsp;Draft |
163
-
161
+ | [Cluster](https://seblify.com/components/cluster) | A wrapping horizontal layout primitive that spaces items with a configurable gap. | Draft |
162
+ | [Grid](https://seblify.com/components/grid) | A responsive grid layout primitive with automatic columns or an explicit column count. | Draft |
163
+ | [Row](https://seblify.com/components/row) | A horizontal layout primitive that spaces items with a configurable gap. | Draft |
164
+ | [Stack](https://seblify.com/components/stack) | A vertical layout primitive that spaces items with a configurable gap. | Draft |
164
165
 
165
- ---
166
166
  </details>
167
-
168
167
  <br />
169
168
 
170
169
  <details>
171
- <summary><strong>Container</strong></summary>
170
+ <summary><strong>Container &middot; 2</strong></summary>
172
171
 
173
172
  Page and region containers that define app structure.
174
173
 
175
174
  | Component | Summary | Status |
176
175
  | --- | --- | --- |
177
- | [AppShell](https://seblify.com/components/app-shell) | A full-page application frame with sidebar, header, and content regions. | &#x26AA;&nbsp;Draft |
178
- | [PageHeader](https://seblify.com/components/page-header) | A page-level heading block with optional breadcrumb, eyebrow, summary, and actions. | &#x26AA;&nbsp;Draft |
179
- | [Sidebar](https://seblify.com/components/sidebar) | A responsive side container for persistent or overlay navigation. | &#x26AA;&nbsp;Draft |
180
-
176
+ | [AppShell](https://seblify.com/components/app-shell) | A full-page application frame with sidebar, header, and content regions. | Draft |
177
+ | [PageHeader](https://seblify.com/components/page-header) | A page-level heading block with optional breadcrumb, eyebrow, summary, and actions. | Draft |
181
178
 
182
- ---
183
179
  </details>
184
-
185
180
  <br />
186
181
 
187
182
  <details>
188
- <summary><strong>Navigation</strong></summary>
183
+ <summary><strong>Navigation &middot; 3</strong></summary>
189
184
 
190
185
  Components that help users understand location and move around.
191
186
 
192
187
  | Component | Summary | Status |
193
188
  | --- | --- | --- |
194
- | [Breadcrumb](https://seblify.com/components/breadcrumb) | A contextual navigation trail for showing page hierarchy. | &#x26AA;&nbsp;Draft |
195
- | [Sidenav](https://seblify.com/components/sidenav) | A hierarchical side navigation for sections, links, and nested pages. | &#x26AA;&nbsp;Draft |
196
-
189
+ | [Breadcrumb](https://seblify.com/components/breadcrumb) | A contextual navigation trail for showing page hierarchy. | Draft |
190
+ | [Sidebar](https://seblify.com/components/sidebar) | An orchestrator for main and deep sidebar navigation panels, with optional brand, search, and footer content. | Draft |
191
+ | [Sidenav](https://seblify.com/components/sidenav) | A recursive side navigation that renders links, headers, dividers, and expandable branches from a data tree. | Draft |
197
192
 
198
- ---
199
193
  </details>
200
-
201
194
  <br />
202
195
 
203
196
  <details>
204
- <summary><strong>Surface</strong></summary>
197
+ <summary><strong>Surface &middot; 1</strong></summary>
205
198
 
206
199
  Framing primitives for cards, papers, tiles, and other contained regions.
207
200
 
208
201
  | Component | Summary | Status |
209
202
  | --- | --- | --- |
210
- | [Paper](https://seblify.com/components/paper) | A themed container for grouping content with configurable variant, tone, padding, border, and elevation. | &#x26AA;&nbsp;Draft |
203
+ | [Paper](https://seblify.com/components/paper) | A themed container for grouping content with configurable variant, tone, padding, border, and elevation. | Draft |
211
204
 
212
-
213
- ---
214
205
  </details>
206
+ <br />
215
207
 
216
208
  ## Design System
217
209
 
@@ -221,14 +213,65 @@ Theme, tokens, and styling guidance for Seblify.
221
213
  | --- | --- |
222
214
  | [Component&nbsp;API](https://seblify.com/design-system/component-api) | Shared prop naming rules for variants, tones, size, slots, radius, placement, and contextual inheritance. |
223
215
  | [Icons](https://seblify.com/design-system/icons) | Browse all generated Seblify icons, grouped automatically from the SVG source folders. |
216
+ | [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. |
224
217
  | [Theme](https://seblify.com/design-system/theme) | Seblify themes use CSS variables for light, dark, system, and custom color modes. |
225
218
 
226
- ## Release Notes <small>&middot; 0.1.8</small>
219
+ <br />
220
+
221
+ ## Release Notes <small>&middot; 0.2.1</small>
227
222
 
228
- _May 14 2026_ &middot; _1 item updated_
223
+ _June 3 2026_ &middot; _9 items updated_
229
224
 
230
225
  Recent changes are summarized below. For the full release history, see the [changelog](https://seblify.com/release-notes).
231
226
 
232
- ### [other](https://seblify.com/components/other)
227
+ ### [CodeSnippet](https://seblify.com/components/code-snippet)
228
+
229
+ - Added code snippet component for readonly code formatting
230
+ - Long lines can now optionally wrap
231
+ - Changed tokenizer to track word context for smarter token detection
232
+ - CodeSnippet no longer enters infinite loop on trailing plain text
233
+
234
+ ### [general](https://seblify.com/components/general)
235
+
236
+ - Documentation can now display code examples
237
+
238
+ ### [Highlight](https://seblify.com/components/highlight)
239
+
240
+ - Added code examples to docs
241
+
242
+ ### [inheritance](https://seblify.com/components/inheritance)
243
+
244
+ - Added tone inheritance with consuming and publishing css variables
245
+
246
+ ### [SegmentControl](https://seblify.com/components/segment-control)
247
+
248
+ - Selected background moves smoothly between active option
249
+
250
+ ### [Sidenav](https://seblify.com/components/sidenav)
251
+
252
+ - Item can execute a method with a payload
253
+ - Item can take custom trailing content
254
+ - Item groups can be forced expanded
255
+ - Selecting an already selected link item with expanded children will collapse its children
256
+ - Sidenav no longer auto-collapses sections
257
+
258
+ ### [Spinner](https://seblify.com/components/spinner)
259
+
260
+ - Added code examples to documentation
261
+
262
+ ### [Switch](https://seblify.com/components/switch)
263
+
264
+ - Added tone and variant options
265
+ - Radius prop
266
+ - Added size prop
267
+ - Added shapes Pill, Flat, Long, Floating, Line
268
+ - Added optional grip icon to shapes Pill, Floating and Line
269
+ - Added optional track I/O icons
270
+ - Added animation options
271
+ - Focus ring color matches selected tone
272
+
273
+ ### [Timeline](https://seblify.com/components/timeline)
233
274
 
234
- - Temporary task note for release note workflow
275
+ - Added timeline component
276
+ - Added node align options
277
+ - Timeline can use custom markers
@@ -1,10 +1,13 @@
1
1
  <script lang="ts">
2
2
  import type { SeblifyProps } from 'seblify';
3
+ import type { Component } from 'svelte';
3
4
 
4
5
  export interface SegmentControlOption {
5
6
  value: string;
6
- label: string;
7
+ label?: string;
8
+ ariaLabel?: string;
7
9
  disabled?: boolean;
10
+ icon?: Component<{ size?: string }>;
8
11
  }
9
12
 
10
13
  type Props = SeblifyProps<{
@@ -24,6 +27,75 @@
24
27
  name = 'segment-control',
25
28
  disabled = false,
26
29
  }: Props = $props();
30
+
31
+ let optionsElement = $state<HTMLDivElement>();
32
+ let indicatorLeft = $state(0);
33
+ let indicatorWidth = $state(0);
34
+ let indicatorVisible = $state(false);
35
+ const optionElements: Array<HTMLLabelElement | undefined> = [];
36
+
37
+ function measureIndicator() {
38
+ if (!optionsElement) {
39
+ indicatorVisible = false;
40
+ return;
41
+ }
42
+
43
+ const selectedIndex = options.findIndex((option) => option.value === value);
44
+ const selectedElement =
45
+ selectedIndex >= 0 ? optionElements[selectedIndex] : undefined;
46
+
47
+ if (!selectedElement) {
48
+ indicatorVisible = false;
49
+ return;
50
+ }
51
+
52
+ const parentRect = optionsElement.getBoundingClientRect();
53
+ const selectedRect = selectedElement.getBoundingClientRect();
54
+
55
+ indicatorLeft = selectedRect.left - parentRect.left - optionsElement.clientLeft;
56
+ indicatorWidth = selectedRect.width;
57
+ indicatorVisible = true;
58
+ }
59
+
60
+ function registerOption(node: HTMLLabelElement, index: number) {
61
+ optionElements[index] = node;
62
+ queueMicrotask(measureIndicator);
63
+
64
+ return {
65
+ destroy() {
66
+ if (optionElements[index] === node) {
67
+ optionElements[index] = undefined;
68
+ queueMicrotask(measureIndicator);
69
+ }
70
+ },
71
+ };
72
+ }
73
+
74
+ $effect(() => {
75
+ value;
76
+ options;
77
+ queueMicrotask(measureIndicator);
78
+ });
79
+
80
+ $effect(() => {
81
+ if (typeof ResizeObserver === 'undefined') {
82
+ return;
83
+ }
84
+
85
+ const resizeObserver = new ResizeObserver(() => measureIndicator());
86
+
87
+ if (optionsElement) {
88
+ resizeObserver.observe(optionsElement);
89
+ }
90
+
91
+ for (const optionElement of optionElements) {
92
+ if (optionElement) {
93
+ resizeObserver.observe(optionElement);
94
+ }
95
+ }
96
+
97
+ return () => resizeObserver.disconnect();
98
+ });
27
99
  </script>
28
100
 
29
101
  <fieldset class="segment-control" class:disabled>
@@ -38,20 +110,41 @@
38
110
  </legend>
39
111
  {/if}
40
112
 
41
- <span
42
- class="options"
43
- style={`--segment-count: ${Math.max(options.length, 1)}`}
44
- >
45
- {#each options as option}
46
- <label>
113
+ <span class="options" bind:this={optionsElement}>
114
+ {#if indicatorVisible}
115
+ <span
116
+ aria-hidden="true"
117
+ class="indicator"
118
+ style:left={`${indicatorLeft}px`}
119
+ style:width={`${indicatorWidth}px`}
120
+ ></span>
121
+ {/if}
122
+
123
+ {#each options as option, index (option.value)}
124
+ <label use:registerOption={index}>
47
125
  <input
126
+ aria-label={option.ariaLabel ?? option.label}
48
127
  bind:group={value}
49
128
  disabled={disabled || option.disabled}
50
129
  {name}
51
130
  type="radio"
52
131
  value={option.value}
53
132
  />
54
- <span>{option.label}</span>
133
+
134
+ <span
135
+ class="option-content"
136
+ data-icon-only={option.icon && !option.label ? 'true' : undefined}
137
+ >
138
+ {#if option.icon}
139
+ <span class="icon">
140
+ <option.icon size="1rem" />
141
+ </span>
142
+ {/if}
143
+
144
+ {#if option.label}
145
+ <span class="option-label">{option.label}</span>
146
+ {/if}
147
+ </span>
55
148
  </label>
56
149
  {/each}
57
150
  </span>
@@ -86,20 +179,33 @@
86
179
  }
87
180
 
88
181
  .options {
89
- display: grid;
90
- grid-template-columns: repeat(var(--segment-count), minmax(0, 1fr));
182
+ position: relative;
183
+ display: inline-flex;
91
184
  width: fit-content;
92
185
  max-width: 100%;
186
+ align-items: stretch;
93
187
  border: 1px solid var(--seblify-color-border-strong, #aab7c5);
94
188
  border-radius: 999px;
95
189
  background: var(--seblify-color-surface-muted, #d9e0e8);
96
190
  padding: 3px;
191
+ gap: 4px;
192
+ }
193
+
194
+ .indicator {
195
+ position: absolute;
196
+ top: 3px;
197
+ bottom: 3px;
198
+ border-radius: 999px;
199
+ background: var(--seblify-color-fill-accent, #146a6f);
200
+ transition:
201
+ left 220ms cubic-bezier(0.22, 1, 0.36, 1),
202
+ width 220ms cubic-bezier(0.22, 1, 0.36, 1);
97
203
  }
98
204
 
99
205
  label {
100
206
  position: relative;
101
207
  display: grid;
102
- min-width: 76px;
208
+ min-width: max-content;
103
209
  cursor: pointer;
104
210
  }
105
211
 
@@ -114,32 +220,50 @@
114
220
  white-space: nowrap;
115
221
  }
116
222
 
117
- label span {
118
- display: grid;
223
+ .option-content {
224
+ position: relative;
225
+ z-index: 1;
226
+ display: inline-flex;
119
227
  min-height: 32px;
120
- place-items: center;
228
+ align-items: center;
229
+ justify-content: center;
230
+ gap: 0.5rem;
121
231
  border-radius: 999px;
122
232
  padding: 6px 12px;
123
233
  color: var(--seblify-color-text-muted, #516176);
124
234
  font-size: 0.875rem;
125
235
  font-weight: 800;
126
236
  line-height: 1;
127
- transition:
128
- color 160ms ease,
129
- background 160ms ease;
237
+ user-select: none;
238
+ transition: color 160ms ease;
239
+ }
240
+
241
+ .option-content[data-icon-only='true'] {
242
+ min-width: 32px;
243
+ padding-inline: 8px;
244
+ }
245
+
246
+ .icon {
247
+ display: inline-flex;
248
+ align-items: center;
249
+ justify-content: center;
250
+ line-height: 0;
130
251
  }
131
252
 
132
- input:checked + span {
253
+ .option-label {
254
+ white-space: nowrap;
255
+ }
256
+
257
+ input:checked + .option-content {
133
258
  color: var(--seblify-color-fill-accent-text, #ffffff);
134
- background: var(--seblify-color-fill-accent, #146a6f);
135
259
  }
136
260
 
137
- input:focus-visible + span {
261
+ label:has(input:focus-visible) .option-content {
138
262
  outline: 3px solid var(--seblify-color-focus-ring, #9bd4d8);
139
263
  outline-offset: 2px;
140
264
  }
141
265
 
142
- input:disabled + span {
266
+ input:disabled + .option-content {
143
267
  cursor: not-allowed;
144
268
  opacity: var(--seblify-opacity-disabled, 0.56);
145
269
  }
@@ -1,9 +1,14 @@
1
+ import type { Component } from 'svelte';
1
2
  export interface SegmentControlOption {
2
3
  value: string;
3
- label: string;
4
+ label?: string;
5
+ ariaLabel?: string;
4
6
  disabled?: boolean;
7
+ icon?: Component<{
8
+ size?: string;
9
+ }>;
5
10
  }
6
- declare const SegmentControl: import("svelte").Component<{
11
+ declare const SegmentControl: Component<{
7
12
  value?: string | undefined;
8
13
  options: SegmentControlOption[];
9
14
  label?: string | undefined;