sigma-ui 0.1.0 → 1.0.11

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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/__generated/registry-schemes/colors/amber.json +99 -0
  4. package/__generated/registry-schemes/colors/blue.json +99 -0
  5. package/__generated/registry-schemes/colors/cyan.json +99 -0
  6. package/__generated/registry-schemes/colors/emerald.json +99 -0
  7. package/__generated/registry-schemes/colors/fuchsia.json +99 -0
  8. package/__generated/registry-schemes/colors/gray.json +99 -0
  9. package/__generated/registry-schemes/colors/green.json +99 -0
  10. package/__generated/registry-schemes/colors/index.json +1999 -0
  11. package/__generated/registry-schemes/colors/indigo.json +99 -0
  12. package/__generated/registry-schemes/colors/lime.json +99 -0
  13. package/__generated/registry-schemes/colors/neutral.json +99 -0
  14. package/__generated/registry-schemes/colors/orange.json +99 -0
  15. package/__generated/registry-schemes/colors/pink.json +99 -0
  16. package/__generated/registry-schemes/colors/purple.json +99 -0
  17. package/__generated/registry-schemes/colors/red.json +99 -0
  18. package/__generated/registry-schemes/colors/rose.json +99 -0
  19. package/__generated/registry-schemes/colors/sky.json +99 -0
  20. package/__generated/registry-schemes/colors/slate.json +99 -0
  21. package/__generated/registry-schemes/colors/stone.json +99 -0
  22. package/__generated/registry-schemes/colors/teal.json +99 -0
  23. package/__generated/registry-schemes/colors/violet.json +99 -0
  24. package/__generated/registry-schemes/colors/yellow.json +99 -0
  25. package/__generated/registry-schemes/colors/zinc.json +99 -0
  26. package/__generated/registry-schemes/index.json +787 -0
  27. package/__generated/registry-schemes/style-system/css/accordion.json +28 -0
  28. package/__generated/registry-schemes/style-system/css/alert-dialog.json +48 -0
  29. package/__generated/registry-schemes/style-system/css/alert.json +24 -0
  30. package/__generated/registry-schemes/style-system/css/avatar.json +16 -0
  31. package/__generated/registry-schemes/style-system/css/badge.json +16 -0
  32. package/__generated/registry-schemes/style-system/css/breadcrumb.json +44 -0
  33. package/__generated/registry-schemes/style-system/css/button.json +16 -0
  34. package/__generated/registry-schemes/style-system/css/calendar.json +60 -0
  35. package/__generated/registry-schemes/style-system/css/card-lightbox.json +22 -0
  36. package/__generated/registry-schemes/style-system/css/card.json +36 -0
  37. package/__generated/registry-schemes/style-system/css/carousel.json +43 -0
  38. package/__generated/registry-schemes/style-system/css/chart-area.json +20 -0
  39. package/__generated/registry-schemes/style-system/css/chart-bar.json +20 -0
  40. package/__generated/registry-schemes/style-system/css/chart-donut.json +20 -0
  41. package/__generated/registry-schemes/style-system/css/chart-line.json +20 -0
  42. package/__generated/registry-schemes/style-system/css/chart.json +35 -0
  43. package/__generated/registry-schemes/style-system/css/checkbox.json +16 -0
  44. package/__generated/registry-schemes/style-system/css/collapsible.json +24 -0
  45. package/__generated/registry-schemes/style-system/css/combobox.json +50 -0
  46. package/__generated/registry-schemes/style-system/css/command.json +48 -0
  47. package/__generated/registry-schemes/style-system/css/context-menu.json +72 -0
  48. package/__generated/registry-schemes/style-system/css/dialog.json +48 -0
  49. package/__generated/registry-schemes/style-system/css/drawer.json +42 -0
  50. package/__generated/registry-schemes/style-system/css/dropdown-menu.json +68 -0
  51. package/__generated/registry-schemes/style-system/css/form.json +44 -0
  52. package/__generated/registry-schemes/style-system/css/hover-card.json +24 -0
  53. package/__generated/registry-schemes/style-system/css/image.json +16 -0
  54. package/__generated/registry-schemes/style-system/css/infusion.json +12 -0
  55. package/__generated/registry-schemes/style-system/css/input.json +16 -0
  56. package/__generated/registry-schemes/style-system/css/label.json +16 -0
  57. package/__generated/registry-schemes/style-system/css/menubar.json +72 -0
  58. package/__generated/registry-schemes/style-system/css/navigation-menu.json +44 -0
  59. package/__generated/registry-schemes/style-system/css/number-field.json +32 -0
  60. package/__generated/registry-schemes/style-system/css/pagination.json +32 -0
  61. package/__generated/registry-schemes/style-system/css/pin-input.json +28 -0
  62. package/__generated/registry-schemes/style-system/css/popover.json +24 -0
  63. package/__generated/registry-schemes/style-system/css/progress.json +16 -0
  64. package/__generated/registry-schemes/style-system/css/radio-group.json +20 -0
  65. package/__generated/registry-schemes/style-system/css/range-calendar.json +60 -0
  66. package/__generated/registry-schemes/style-system/css/resizable.json +20 -0
  67. package/__generated/registry-schemes/style-system/css/scroll-area.json +20 -0
  68. package/__generated/registry-schemes/style-system/css/select.json +56 -0
  69. package/__generated/registry-schemes/style-system/css/separator.json +16 -0
  70. package/__generated/registry-schemes/style-system/css/sheet.json +44 -0
  71. package/__generated/registry-schemes/style-system/css/skeleton.json +16 -0
  72. package/__generated/registry-schemes/style-system/css/slider.json +16 -0
  73. package/__generated/registry-schemes/style-system/css/switch.json +16 -0
  74. package/__generated/registry-schemes/style-system/css/table.json +48 -0
  75. package/__generated/registry-schemes/style-system/css/tabs.json +28 -0
  76. package/__generated/registry-schemes/style-system/css/tags-input.json +34 -0
  77. package/__generated/registry-schemes/style-system/css/textarea.json +16 -0
  78. package/__generated/registry-schemes/style-system/css/toaster.json +26 -0
  79. package/__generated/registry-schemes/style-system/css/toggle-group.json +20 -0
  80. package/__generated/registry-schemes/style-system/css/toggle.json +16 -0
  81. package/__generated/registry-schemes/style-system/css/tooltip.json +28 -0
  82. package/__generated/registry-schemes/style-system/index.json +10 -0
  83. package/__generated/registry-schemes/style-system/tailwind/accordion.json +28 -0
  84. package/__generated/registry-schemes/style-system/tailwind/alert-dialog.json +48 -0
  85. package/__generated/registry-schemes/style-system/tailwind/alert.json +24 -0
  86. package/__generated/registry-schemes/style-system/tailwind/avatar.json +16 -0
  87. package/__generated/registry-schemes/style-system/tailwind/badge.json +16 -0
  88. package/__generated/registry-schemes/style-system/tailwind/breadcrumb.json +44 -0
  89. package/__generated/registry-schemes/style-system/tailwind/button.json +16 -0
  90. package/__generated/registry-schemes/style-system/tailwind/calendar.json +60 -0
  91. package/__generated/registry-schemes/style-system/tailwind/card-lightbox.json +22 -0
  92. package/__generated/registry-schemes/style-system/tailwind/card.json +36 -0
  93. package/__generated/registry-schemes/style-system/tailwind/carousel.json +43 -0
  94. package/__generated/registry-schemes/style-system/tailwind/chart-area.json +20 -0
  95. package/__generated/registry-schemes/style-system/tailwind/chart-bar.json +20 -0
  96. package/__generated/registry-schemes/style-system/tailwind/chart-donut.json +20 -0
  97. package/__generated/registry-schemes/style-system/tailwind/chart-line.json +20 -0
  98. package/__generated/registry-schemes/style-system/tailwind/chart.json +35 -0
  99. package/__generated/registry-schemes/style-system/tailwind/checkbox.json +16 -0
  100. package/__generated/registry-schemes/style-system/tailwind/collapsible.json +24 -0
  101. package/__generated/registry-schemes/style-system/tailwind/combobox.json +50 -0
  102. package/__generated/registry-schemes/style-system/tailwind/command.json +48 -0
  103. package/__generated/registry-schemes/style-system/tailwind/context-menu.json +72 -0
  104. package/__generated/registry-schemes/style-system/tailwind/dialog.json +48 -0
  105. package/__generated/registry-schemes/style-system/tailwind/drawer.json +42 -0
  106. package/__generated/registry-schemes/style-system/tailwind/dropdown-menu.json +68 -0
  107. package/__generated/registry-schemes/style-system/tailwind/form.json +44 -0
  108. package/__generated/registry-schemes/style-system/tailwind/hover-card.json +24 -0
  109. package/__generated/registry-schemes/style-system/tailwind/image.json +16 -0
  110. package/__generated/registry-schemes/style-system/tailwind/infusion.json +12 -0
  111. package/__generated/registry-schemes/style-system/tailwind/input.json +16 -0
  112. package/__generated/registry-schemes/style-system/tailwind/label.json +16 -0
  113. package/__generated/registry-schemes/style-system/tailwind/menubar.json +72 -0
  114. package/__generated/registry-schemes/style-system/tailwind/navigation-menu.json +44 -0
  115. package/__generated/registry-schemes/style-system/tailwind/number-field.json +32 -0
  116. package/__generated/registry-schemes/style-system/tailwind/pagination.json +32 -0
  117. package/__generated/registry-schemes/style-system/tailwind/pin-input.json +28 -0
  118. package/__generated/registry-schemes/style-system/tailwind/popover.json +24 -0
  119. package/__generated/registry-schemes/style-system/tailwind/progress.json +16 -0
  120. package/__generated/registry-schemes/style-system/tailwind/radio-group.json +20 -0
  121. package/__generated/registry-schemes/style-system/tailwind/range-calendar.json +60 -0
  122. package/__generated/registry-schemes/style-system/tailwind/resizable.json +20 -0
  123. package/__generated/registry-schemes/style-system/tailwind/scroll-area.json +20 -0
  124. package/__generated/registry-schemes/style-system/tailwind/select.json +56 -0
  125. package/__generated/registry-schemes/style-system/tailwind/separator.json +16 -0
  126. package/__generated/registry-schemes/style-system/tailwind/sheet.json +44 -0
  127. package/__generated/registry-schemes/style-system/tailwind/skeleton.json +16 -0
  128. package/__generated/registry-schemes/style-system/tailwind/slider.json +16 -0
  129. package/__generated/registry-schemes/style-system/tailwind/switch.json +16 -0
  130. package/__generated/registry-schemes/style-system/tailwind/table.json +48 -0
  131. package/__generated/registry-schemes/style-system/tailwind/tabs.json +28 -0
  132. package/__generated/registry-schemes/style-system/tailwind/tags-input.json +34 -0
  133. package/__generated/registry-schemes/style-system/tailwind/textarea.json +16 -0
  134. package/__generated/registry-schemes/style-system/tailwind/toaster.json +26 -0
  135. package/__generated/registry-schemes/style-system/tailwind/toggle-group.json +20 -0
  136. package/__generated/registry-schemes/style-system/tailwind/toggle.json +16 -0
  137. package/__generated/registry-schemes/style-system/tailwind/tooltip.json +28 -0
  138. package/dist/acorn-M5N7XWA6.js +3048 -0
  139. package/dist/acorn-M5N7XWA6.js.map +1 -0
  140. package/dist/angular-O7UVYQUZ.js +2796 -0
  141. package/dist/angular-O7UVYQUZ.js.map +1 -0
  142. package/dist/babel-J6LTJDOS.js +6998 -0
  143. package/dist/babel-J6LTJDOS.js.map +1 -0
  144. package/dist/chunk-PZ5AY32C.js +10 -0
  145. package/dist/chunk-PZ5AY32C.js.map +1 -0
  146. package/dist/estree-H4XUELNR.js +4407 -0
  147. package/dist/estree-H4XUELNR.js.map +1 -0
  148. package/dist/flow-AOY6BQUA.js +26937 -0
  149. package/dist/flow-AOY6BQUA.js.map +1 -0
  150. package/dist/glimmer-KKY2I6O7.js +2857 -0
  151. package/dist/glimmer-KKY2I6O7.js.map +1 -0
  152. package/dist/graphql-YOTP2JVS.js +1252 -0
  153. package/dist/graphql-YOTP2JVS.js.map +1 -0
  154. package/dist/html-X25PN5V5.js +2745 -0
  155. package/dist/html-X25PN5V5.js.map +1 -0
  156. package/dist/index.d.ts +1 -0
  157. package/dist/index.js +24930 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/markdown-MYCFYALD.js +3486 -0
  160. package/dist/markdown-MYCFYALD.js.map +1 -0
  161. package/dist/meriyah-OURTSR6I.js +2478 -0
  162. package/dist/meriyah-OURTSR6I.js.map +1 -0
  163. package/dist/postcss-2MY3W5DN.js +5062 -0
  164. package/dist/postcss-2MY3W5DN.js.map +1 -0
  165. package/dist/typescript-QJCPE2ES.js +13105 -0
  166. package/dist/typescript-QJCPE2ES.js.map +1 -0
  167. package/dist/yaml-XG5IIC33.js +4225 -0
  168. package/dist/yaml-XG5IIC33.js.map +1 -0
  169. package/package.json +87 -9
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "resizable",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "ResizableHandle.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport { SplitterResizeHandle, type SplitterResizeHandleEmits, type SplitterResizeHandleProps, useForwardPropsEmits } from 'reka-ui';\nimport { GripVerticalIcon } from 'lucide-vue-next';\n\nconst props = defineProps<SplitterResizeHandleProps & { withHandle?: boolean }>();\nconst emits = defineEmits<SplitterResizeHandleEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <SplitterResizeHandle\n v-bind=\"forwarded\"\n class=\"sigma-ui-resizable-handle\"\n >\n <template v-if=\"props.withHandle\">\n <div class=\"sigma-ui-resizable-handle__grip\">\n <GripVerticalIcon class=\"sigma-ui-resizable-handle__grip-icon\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n\n<style>\n.sigma-ui-resizable-handle {\n position: relative;\n display: flex;\n width: 1px;\n align-items: center;\n justify-content: center;\n background-color: hsl(var(--border));\n}\n\n.sigma-ui-resizable-handle::after {\n content: '';\n position: absolute;\n inset-block: 0;\n left: 50%;\n width: 4px;\n transform: translateX(-50%);\n}\n\n.sigma-ui-resizable-handle:focus-visible {\n outline: none;\n box-shadow: 0 0 0 1px hsl(var(--ring)), 0 0 0 2px hsl(var(--background));\n}\n\n.sigma-ui-resizable-handle[data-orientation=\"vertical\"] {\n height: 1px;\n width: 100%;\n}\n\n.sigma-ui-resizable-handle[data-orientation=\"vertical\"]::after {\n left: 0;\n height: 4px;\n width: 100%;\n transform: translateY(-50%);\n}\n\n.sigma-ui-resizable-handle[data-orientation=\"vertical\"] > div {\n transform: rotate(90deg);\n}\n\n.sigma-ui-resizable-handle__grip {\n z-index: 10;\n display: flex;\n height: 1rem;\n width: 0.75rem;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-sm);\n border: 1px solid hsl(var(--border));\n background-color: hsl(var(--border));\n}\n\n.sigma-ui-resizable-handle__grip-icon {\n height: 0.625rem;\n width: 0.625rem;\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "ResizablePanelGroup.vue",
12
+ "content": "<script setup lang=\"ts\">\nimport { SplitterGroup, type SplitterGroupEmits, type SplitterGroupProps, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<SplitterGroupProps>();\nconst emits = defineEmits<SplitterGroupEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n\n</script>\n\n<template>\n <SplitterGroup\n v-bind=\"forwarded\"\n class=\"sigma-ui-resizable-panel-group\"\n >\n <slot />\n </SplitterGroup>\n</template>\n\n<style>\n.sigma-ui-resizable-panel-group {\n display: flex;\n height: 100%;\n width: 100%;\n}\n\n.sigma-ui-resizable-panel-group[data-panel-group-direction=\"vertical\"] {\n flex-direction: column;\n}\n</style>\n"
13
+ },
14
+ {
15
+ "name": "index.ts",
16
+ "content": "export { default as ResizablePanelGroup } from './ResizablePanelGroup.vue';\nexport { default as ResizableHandle } from './ResizableHandle.vue';\nexport { SplitterPanel as ResizablePanel } from 'reka-ui';\n"
17
+ }
18
+ ],
19
+ "type": "components:ui"
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "scroll-area",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "ScrollArea.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport {\n ScrollAreaCorner,\n ScrollAreaRoot,\n type ScrollAreaRootProps,\n ScrollAreaViewport,\n} from 'reka-ui';\n\nimport ScrollBar from './ScrollBar.vue';\n\nconst props = defineProps<ScrollAreaRootProps>();\n</script>\n\n<template>\n <ScrollAreaRoot\n v-bind=\"props\"\n class=\"sigma-ui-scroll-area\"\n >\n <ScrollAreaViewport class=\"sigma-ui-scroll-area__viewport\">\n <slot />\n </ScrollAreaViewport>\n <ScrollBar />\n <ScrollAreaCorner />\n </ScrollAreaRoot>\n</template>\n\n<style>\n.sigma-ui-scroll-area {\n position: relative;\n overflow: hidden;\n}\n\n.sigma-ui-scroll-area__viewport {\n height: 100%;\n width: 100%;\n border-radius: inherit;\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "ScrollBar.vue",
12
+ "content": "<script setup lang=\"ts\">\nimport { ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaThumb } from 'reka-ui';\n\nconst props = withDefaults(defineProps<ScrollAreaScrollbarProps>(), {\n orientation: 'vertical',\n});\n</script>\n\n<template>\n <ScrollAreaScrollbar\n v-bind=\"props\"\n class=\"sigma-ui-scroll-area-scrollbar\"\n >\n <ScrollAreaThumb class=\"sigma-ui-scroll-area-scrollbar__thumb\" />\n </ScrollAreaScrollbar>\n</template>\n\n<style>\n.sigma-ui-scroll-area-scrollbar {\n display: flex;\n touch-action: none;\n user-select: none;\n transition-property: color, background-color, border-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.sigma-ui-scroll-area-scrollbar[data-orientation=\"vertical\"] {\n height: 100%;\n width: 0.625rem;\n border-left: 1px solid transparent;\n padding: 1px;\n}\n\n.sigma-ui-scroll-area-scrollbar[data-orientation=\"horizontal\"] {\n height: 0.625rem;\n flex-direction: column;\n border-top: 1px solid transparent;\n padding: 1px;\n}\n\n.sigma-ui-scroll-area-scrollbar__thumb {\n position: relative;\n flex: 1;\n border-radius: var(--radius-full);\n background-color: hsl(var(--border));\n}\n</style>\n"
13
+ },
14
+ {
15
+ "name": "index.ts",
16
+ "content": "export { default as ScrollArea } from './ScrollArea.vue';\nexport { default as ScrollBar } from './ScrollBar.vue';\n"
17
+ }
18
+ ],
19
+ "type": "components:ui"
20
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "select",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Select.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport type { SelectRootEmits, SelectRootProps } from 'reka-ui';\nimport { SelectRoot, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<SelectRootProps>();\nconst emits = defineEmits<SelectRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <SelectRoot v-bind=\"forwarded\">\n <slot />\n </SelectRoot>\n</template>\n"
9
+ },
10
+ {
11
+ "name": "SelectContent.vue",
12
+ "content": "<script setup lang=\"ts\">\nimport {\n SelectContent,\n type SelectContentEmits,\n type SelectContentProps,\n SelectPortal,\n SelectViewport,\n\n useForwardPropsEmits,\n} from 'reka-ui';\nimport { SelectScrollDownButton, SelectScrollUpButton } from '.';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<SelectContentProps>(),\n {\n position: 'popper',\n },\n);\nconst emits = defineEmits<SelectContentEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <SelectPortal>\n <SelectContent\n v-bind=\"{ ...forwarded, ...$attrs }\"\n class=\"sigma-ui-select-content\"\n :class=\"[$attrs.class]\"\n >\n <SelectScrollUpButton />\n <SelectViewport\n class=\"sigma-ui-select-content__viewport\"\n :class=\"{ 'sigma-ui-select-content__viewport--popper': position === 'popper' }\"\n >\n <slot />\n </SelectViewport>\n <SelectScrollDownButton />\n </SelectContent>\n </SelectPortal>\n</template>\n\n<style>\n.sigma-ui-select-content {\n position: relative;\n z-index: 50;\n max-height: 24rem;\n min-width: 8rem;\n overflow: hidden;\n border-radius: var(--radius-md);\n border: 1px solid hsl(var(--border));\n background-color: hsl(var(--popover));\n color: hsl(var(--popover-foreground));\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n transform-origin: var(--reka-popover-content-transform-origin);\n}\n\n.sigma-ui-select-content[data-state=\"open\"][data-side=\"bottom\"] {\n animation: slideFromTop 150ms ease-out;\n}\n\n.sigma-ui-select-content[data-state=\"open\"][data-side=\"top\"] {\n animation: slideFromBottom 150ms ease-out;\n}\n\n.sigma-ui-select-content[data-state=\"open\"][data-side=\"left\"] {\n animation: slideFromRight 150ms ease-out;\n}\n\n.sigma-ui-select-content[data-state=\"open\"][data-side=\"right\"] {\n animation: slideFromLeft 150ms ease-out;\n}\n\n@keyframes slideFromTop {\n from {\n transform: translateY(-1rem) scaleY(0.98);\n filter: blur(4px);\n }\n to {\n transform: translateY(0) scaleY(1);\n filter: blur(0px);\n }\n}\n\n@keyframes slideFromBottom {\n from {\n transform: translateY(1rem) scaleY(0.98);\n filter: blur(4px);\n }\n to {\n transform: translateY(0) scaleY(1);\n filter: blur(0px);\n }\n}\n\n@keyframes slideFromLeft {\n from {\n transform: translateX(-1rem) scaleY(0.98);\n filter: blur(4px);\n }\n to {\n transform: translateX(0) scaleY(1);\n filter: blur(0px);\n }\n}\n\n@keyframes slideFromRight {\n from {\n transform: translateX(1rem) scaleY(0.98);\n filter: blur(4px);\n }\n to {\n transform: translateX(0) scaleY(1);\n filter: blur(0px);\n }\n}\n.sigma-ui-select-content__viewport {\n padding: 0.25rem;\n}\n\n.sigma-ui-select-content__viewport--popper {\n height: var(--reka-select-trigger-height);\n width: 100%;\n min-width: var(--reka-select-trigger-width);\n}\n</style>\n"
13
+ },
14
+ {
15
+ "name": "SelectGroup.vue",
16
+ "content": "<script setup lang=\"ts\">\nimport { SelectGroup, type SelectGroupProps } from 'reka-ui';\n\nconst props = defineProps<SelectGroupProps>();\n</script>\n\n<template>\n <SelectGroup\n class=\"sigma-ui-select-group\"\n v-bind=\"props\"\n >\n <slot />\n </SelectGroup>\n</template>\n\n<style>\n.sigma-ui-select-group {\n padding: 0.25rem;\n width: 100%;\n}\n</style>\n"
17
+ },
18
+ {
19
+ "name": "SelectItem.vue",
20
+ "content": "<script setup lang=\"ts\">\nimport {\n SelectItem,\n SelectItemIndicator,\n type SelectItemProps,\n SelectItemText,\n useForwardProps,\n\n} from 'reka-ui';\nimport { CheckIcon } from 'lucide-vue-next';\n\nconst props = defineProps<SelectItemProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <SelectItem\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-select-item\"\n >\n <span class=\"sigma-ui-select-item__indicator-wrapper\">\n <SelectItemIndicator>\n <CheckIcon class=\"sigma-ui-select-item__check-icon\" />\n </SelectItemIndicator>\n </span>\n\n <SelectItemText>\n <slot />\n </SelectItemText>\n </SelectItem>\n</template>\n\n<style>\n.sigma-ui-select-item {\n position: relative;\n display: flex;\n width: 100%;\n cursor: default;\n user-select: none;\n align-items: center;\n border-radius: var(--radius-sm);\n padding: 0.375rem 0.5rem 0.375rem 2rem;\n font-size: 0.875rem;\n outline: none;\n}\n\n.sigma-ui-select-item:focus {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-select-item[data-disabled] {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.sigma-ui-select-item__indicator-wrapper {\n position: absolute;\n left: 0.5rem;\n display: flex;\n height: 0.875rem;\n width: 0.875rem;\n align-items: center;\n justify-content: center;\n}\n\n.sigma-ui-select-item__check-icon {\n height: 1rem;\n width: 1rem;\n}\n</style>\n"
21
+ },
22
+ {
23
+ "name": "SelectItemText.vue",
24
+ "content": "<script setup lang=\"ts\">\nimport { SelectItemText, type SelectItemTextProps } from 'reka-ui';\n\nconst props = defineProps<SelectItemTextProps>();\n</script>\n\n<template>\n <SelectItemText v-bind=\"props\">\n <slot />\n </SelectItemText>\n</template>\n"
25
+ },
26
+ {
27
+ "name": "SelectLabel.vue",
28
+ "content": "<script setup lang=\"ts\">\nimport { SelectLabel, type SelectLabelProps } from 'reka-ui';\n\nconst props = defineProps<SelectLabelProps>();\n</script>\n\n<template>\n <SelectLabel\n class=\"sigma-ui-select-label\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </SelectLabel>\n</template>\n\n<style>\n.sigma-ui-select-label {\n padding: 0.375rem 0.5rem 0.375rem 2rem;\n font-size: 0.875rem;\n font-weight: 600;\n}\n</style>\n"
29
+ },
30
+ {
31
+ "name": "SelectScrollDownButton.vue",
32
+ "content": "<script setup lang=\"ts\">\nimport { SelectScrollDownButton, type SelectScrollDownButtonProps, useForwardProps } from 'reka-ui';\nimport { ChevronDownIcon } from 'lucide-vue-next';\n\nconst props = defineProps<SelectScrollDownButtonProps>();\n\nconst forwardedProps = useForwardProps(props);\n\n</script>\n\n<template>\n <SelectScrollDownButton\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-select-scroll-down\"\n >\n <slot>\n <ChevronDownIcon class=\"sigma-ui-select-scroll-down__icon\" />\n </slot>\n </SelectScrollDownButton>\n</template>\n\n<style>\n.sigma-ui-select-scroll-down {\n display: flex;\n cursor: default;\n align-items: center;\n justify-content: center;\n padding: 0.25rem 0;\n}\n\n.sigma-ui-select-scroll-down__icon {\n height: 1rem;\n width: 1rem;\n}\n</style>\n"
33
+ },
34
+ {
35
+ "name": "SelectScrollUpButton.vue",
36
+ "content": "<script setup lang=\"ts\">\nimport { SelectScrollUpButton, type SelectScrollUpButtonProps, useForwardProps } from 'reka-ui';\nimport { ChevronUpIcon } from 'lucide-vue-next';\n\nconst props = defineProps<SelectScrollUpButtonProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <SelectScrollUpButton\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-select-scroll-up\"\n >\n <slot>\n <ChevronUpIcon class=\"sigma-ui-select-scroll-up__icon\" />\n </slot>\n </SelectScrollUpButton>\n</template>\n\n<style>\n.sigma-ui-select-scroll-up {\n display: flex;\n cursor: default;\n align-items: center;\n justify-content: center;\n padding: 0.25rem 0;\n}\n\n.sigma-ui-select-scroll-up__icon {\n height: 1rem;\n width: 1rem;\n}\n</style>\n"
37
+ },
38
+ {
39
+ "name": "SelectSeparator.vue",
40
+ "content": "<script setup lang=\"ts\">\nimport { SelectSeparator, type SelectSeparatorProps } from 'reka-ui';\n\nconst props = defineProps<SelectSeparatorProps>();\n</script>\n\n<template>\n <SelectSeparator\n v-bind=\"props\"\n class=\"sigma-ui-select-separator\"\n />\n</template>\n\n<style>\n.sigma-ui-select-separator {\n margin: 0.25rem -0.25rem;\n height: 1px;\n background-color: hsl(var(--muted));\n}\n</style>\n"
41
+ },
42
+ {
43
+ "name": "SelectTrigger.vue",
44
+ "content": "<script setup lang=\"ts\">\nimport { SelectIcon, SelectTrigger, type SelectTriggerProps, useForwardProps } from 'reka-ui';\nimport { ChevronDownIcon } from 'lucide-vue-next';\n\nconst props = defineProps<SelectTriggerProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <SelectTrigger\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-select-trigger\"\n >\n <slot />\n <SelectIcon as-child>\n <ChevronDownIcon class=\"sigma-ui-select-trigger__icon\" />\n </SelectIcon>\n </SelectTrigger>\n</template>\n\n<style>\n.sigma-ui-select-trigger {\n display: flex;\n height: 2.5rem;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n border-radius: var(--radius-md);\n border: 1px solid hsl(var(--input));\n background-color: hsl(var(--background));\n padding: 0.5rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.sigma-ui-select-trigger:focus {\n outline: none;\n box-shadow: 0 0 0 2px hsl(var(--ring)), 0 0 0 4px hsl(var(--background));\n}\n\n.sigma-ui-select-trigger:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.sigma-ui-select-trigger > span {\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.sigma-ui-select-trigger__icon {\n width: 1rem;\n height: 1rem;\n opacity: 0.5;\n}\n</style>\n"
45
+ },
46
+ {
47
+ "name": "SelectValue.vue",
48
+ "content": "<script setup lang=\"ts\">\nimport { SelectValue, type SelectValueProps } from 'reka-ui';\n\nconst props = defineProps<SelectValueProps>();\n</script>\n\n<template>\n <SelectValue v-bind=\"props\">\n <slot />\n </SelectValue>\n</template>\n"
49
+ },
50
+ {
51
+ "name": "index.ts",
52
+ "content": "export { default as Select } from './Select.vue';\nexport { default as SelectValue } from './SelectValue.vue';\nexport { default as SelectTrigger } from './SelectTrigger.vue';\nexport { default as SelectContent } from './SelectContent.vue';\nexport { default as SelectGroup } from './SelectGroup.vue';\nexport { default as SelectItem } from './SelectItem.vue';\nexport { default as SelectItemText } from './SelectItemText.vue';\nexport { default as SelectLabel } from './SelectLabel.vue';\nexport { default as SelectSeparator } from './SelectSeparator.vue';\nexport { default as SelectScrollUpButton } from './SelectScrollUpButton.vue';\nexport { default as SelectScrollDownButton } from './SelectScrollDownButton.vue';\n"
53
+ }
54
+ ],
55
+ "type": "components:ui"
56
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "separator",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Separator.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport { Separator, type SeparatorProps } from 'reka-ui';\n\nconst props = defineProps<\n SeparatorProps & { label?: string }\n>();\n</script>\n\n<template>\n <Separator\n v-bind=\"props\"\n class=\"sigma-ui-separator\"\n >\n <span\n v-if=\"props.label\"\n\n class=\"sigma-ui-separator__label\"\n >{{ props.label }}</span>\n </Separator>\n</template>\n\n<style>\n.sigma-ui-separator {\n flex-shrink: 0;\n background-color: hsl(var(--border));\n position: relative;\n}\n\n.sigma-ui-separator[data-orientation=\"vertical\"] {\n width: 1px;\n height: 100%;\n}\n\n.sigma-ui-separator[data-orientation=\"horizontal\"] {\n height: 1px;\n width: 100%;\n}\n\n.sigma-ui-separator__label {\n font-size: 0.75rem;\n color: hsl(var(--muted-foreground));\n background-color: hsl(var(--background));\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.sigma-ui-separator[data-orientation=\"vertical\"] .sigma-ui-separator__label {\n width: 1px;\n padding: 0 0.25rem;\n padding-block: 0.5rem;\n}\n\n.sigma-ui-separator[data-orientation=\"horizontal\"] .sigma-ui-separator__label {\n height: 1px;\n padding: 0.25rem 0;\n padding-inline: 0.5rem;\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "index.ts",
12
+ "content": "export { default as Separator } from './Separator.vue';\n"
13
+ }
14
+ ],
15
+ "type": "components:ui"
16
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "sheet",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Sheet.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport { DialogRoot, type DialogRootEmits, type DialogRootProps, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<DialogRootProps>();\nconst emits = defineEmits<DialogRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <DialogRoot v-bind=\"forwarded\">\n <slot />\n </DialogRoot>\n</template>\n"
9
+ },
10
+ {
11
+ "name": "SheetClose.vue",
12
+ "content": "<script setup lang=\"ts\">\nimport { DialogClose, type DialogCloseProps } from 'reka-ui';\n\nconst props = defineProps<DialogCloseProps>();\n</script>\n\n<template>\n <DialogClose v-bind=\"props\">\n <slot />\n </DialogClose>\n</template>\n"
13
+ },
14
+ {
15
+ "name": "SheetContent.vue",
16
+ "content": "<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport {\n DialogClose,\n DialogContent,\n type DialogContentEmits,\n type DialogContentProps,\n DialogOverlay,\n DialogPortal,\n useForwardPropsEmits,\n} from 'reka-ui';\nimport { XIcon } from 'lucide-vue-next';\nimport { type SheetVariants, sheetVariants } from '.';\n\ninterface SheetContentProps extends DialogContentProps {\n side?: SheetVariants['side'];\n}\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = defineProps<SheetContentProps>();\nconst emits = defineEmits<DialogContentEmits>();\n\nconst delegatedProps = computed(() => ({ ...props, side: undefined }));\nconst forwarded = useForwardPropsEmits(delegatedProps, emits);\n</script>\n\n<template>\n <DialogPortal>\n <DialogOverlay class=\"sigma-ui-sheet-overlay\" />\n <DialogContent\n :class=\"[sheetVariants({ side }), $attrs.class]\"\n v-bind=\"{ ...forwarded, ...$attrs }\"\n >\n <slot />\n\n <DialogClose class=\"sigma-ui-sheet-close\">\n <XIcon class=\"sigma-ui-sheet-close__icon\" />\n </DialogClose>\n </DialogContent>\n </DialogPortal>\n</template>\n\n<style>\n.sigma-ui-sheet-overlay {\n position: fixed;\n inset: 0;\n z-index: 50;\n background-color: rgba(0, 0, 0, 0.8);\n}\n\n.sigma-ui-sheet-overlay[data-state=\"open\"] {\n animation: overlayShow 150ms ease-out;\n}\n\n.sigma-ui-sheet-overlay[data-state=\"closed\"] {\n animation: overlayHide 150ms ease-in;\n}\n\n.sigma-ui-sheet-content__base {\n position: fixed;\n z-index: 50;\n padding: 1.5rem;\n background-color: hsl(var(--background));\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n transition: all 0.3s ease-in-out;\n}\n\n.sigma-ui-sheet-content__base[data-state=\"open\"] {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n animation-duration: 500ms;\n}\n\n.sigma-ui-sheet-content__base[data-state=\"closed\"] {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n animation-duration: 300ms;\n}\n\n.sigma-ui-sheet-content--top {\n inset-inline: 0;\n top: 0;\n border-bottom: 1px solid hsl(var(--border));\n}\n\n.sigma-ui-sheet-content--top[data-state=\"closed\"] {\n animation-name: slideOutToTop;\n}\n\n.sigma-ui-sheet-content--top[data-state=\"open\"] {\n animation-name: slideInFromTop;\n}\n\n.sigma-ui-sheet-content--bottom {\n inset-inline: 0;\n bottom: 0;\n border-top: 1px solid hsl(var(--border));\n}\n\n.sigma-ui-sheet-content--bottom[data-state=\"closed\"] {\n animation-name: slideOutToBottom;\n}\n\n.sigma-ui-sheet-content--bottom[data-state=\"open\"] {\n animation-name: slideInFromBottom;\n}\n\n.sigma-ui-sheet-content--left {\n inset-block: 0;\n left: 0;\n height: 100%;\n width: 75%;\n border-right: 1px solid hsl(var(--border));\n}\n\n.sigma-ui-sheet-content--left[data-state=\"closed\"] {\n animation-name: slideOutToLeft;\n}\n\n.sigma-ui-sheet-content--left[data-state=\"open\"] {\n animation-name: slideInFromLeft;\n}\n\n@media (min-width: 640px) {\n .sigma-ui-sheet-content--left {\n max-width: 24rem;\n }\n}\n\n.sigma-ui-sheet-content--right {\n inset-block: 0;\n right: 0;\n height: 100%;\n width: 75%;\n border-left: 1px solid hsl(var(--border));\n}\n\n.sigma-ui-sheet-content--right[data-state=\"closed\"] {\n animation-name: slideOutToRight;\n}\n\n.sigma-ui-sheet-content--right[data-state=\"open\"] {\n animation-name: slideInFromRight;\n}\n\n@media (min-width: 640px) {\n .sigma-ui-sheet-content--right {\n max-width: 24rem;\n }\n}\n\n.sigma-ui-sheet-close {\n position: absolute;\n right: 1rem;\n top: 1rem;\n border-radius: var(--radius-sm);\n opacity: 0.7;\n transition: opacity 0.2s;\n}\n\n.sigma-ui-sheet-close:hover {\n opacity: 1;\n}\n\n.sigma-ui-sheet-close:focus {\n outline: none;\n box-shadow: 0 0 0 2px hsl(var(--ring)), 0 0 0 4px hsl(var(--background));\n}\n\n.sigma-ui-sheet-close:disabled {\n pointer-events: none;\n}\n\n.sigma-ui-sheet-close[data-state=\"open\"] {\n background-color: hsl(var(--secondary));\n}\n\n.sigma-ui-sheet-close__icon {\n width: 1rem;\n height: 1rem;\n color: hsl(var(--muted-foreground));\n}\n\n@keyframes overlayShow {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes overlayHide {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n@keyframes slideInFromTop {\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n}\n\n@keyframes slideOutToTop {\n from {\n transform: translateY(0);\n }\n to {\n transform: translateY(-100%);\n }\n}\n\n@keyframes slideInFromBottom {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n\n@keyframes slideOutToBottom {\n from {\n transform: translateY(0);\n }\n to {\n transform: translateY(100%);\n }\n}\n\n@keyframes slideInFromLeft {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0);\n }\n}\n\n@keyframes slideOutToLeft {\n from {\n transform: translateX(0);\n }\n to {\n transform: translateX(-100%);\n }\n}\n\n@keyframes slideInFromRight {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n}\n\n@keyframes slideOutToRight {\n from {\n transform: translateX(0);\n }\n to {\n transform: translateX(100%);\n }\n}\n</style>\n"
17
+ },
18
+ {
19
+ "name": "SheetDescription.vue",
20
+ "content": "<script setup lang=\"ts\">\nimport { DialogDescription, type DialogDescriptionProps } from 'reka-ui';\n\nconst props = defineProps<DialogDescriptionProps>();\n</script>\n\n<template>\n <DialogDescription\n class=\"sigma-ui-sheet-description\"\n v-bind=\"props\"\n >\n <slot />\n </DialogDescription>\n</template>\n\n<style>\n.sigma-ui-sheet-description {\n font-size: 0.875rem;\n color: hsl(var(--muted-foreground));\n}\n</style>\n"
21
+ },
22
+ {
23
+ "name": "SheetFooter.vue",
24
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <div\n class=\"sigma-ui-sheet-footer\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </div>\n</template>\n\n<style>\n.sigma-ui-sheet-footer {\n display: flex;\n flex-direction: column-reverse;\n}\n\n@media (min-width: 640px) {\n .sigma-ui-sheet-footer {\n flex-direction: row;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n}\n</style>\n"
25
+ },
26
+ {
27
+ "name": "SheetHeader.vue",
28
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <div\n class=\"sigma-ui-sheet-header\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </div>\n</template>\n\n<style>\n.sigma-ui-sheet-header {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n text-align: center;\n}\n\n@media (min-width: 640px) {\n .sigma-ui-sheet-header {\n text-align: left;\n }\n}\n</style>\n"
29
+ },
30
+ {
31
+ "name": "SheetTitle.vue",
32
+ "content": "<script setup lang=\"ts\">\nimport { DialogTitle, type DialogTitleProps } from 'reka-ui';\n\nconst props = defineProps<DialogTitleProps>();\n</script>\n\n<template>\n <DialogTitle\n class=\"sigma-ui-sheet-title\"\n v-bind=\"props\"\n >\n <slot />\n </DialogTitle>\n</template>\n\n<style>\n.sigma-ui-sheet-title {\n font-size: 1.125rem;\n font-weight: 600;\n color: hsl(var(--foreground));\n}\n</style>\n"
33
+ },
34
+ {
35
+ "name": "SheetTrigger.vue",
36
+ "content": "<script setup lang=\"ts\">\nimport { DialogTrigger, type DialogTriggerProps } from 'reka-ui';\n\nconst props = defineProps<DialogTriggerProps>();\n</script>\n\n<template>\n <DialogTrigger v-bind=\"props\">\n <slot />\n </DialogTrigger>\n</template>\n"
37
+ },
38
+ {
39
+ "name": "index.ts",
40
+ "content": "import { type VariantProps, cva } from 'class-variance-authority';\n\nexport { default as Sheet } from './Sheet.vue';\nexport { default as SheetTrigger } from './SheetTrigger.vue';\nexport { default as SheetClose } from './SheetClose.vue';\nexport { default as SheetContent } from './SheetContent.vue';\nexport { default as SheetHeader } from './SheetHeader.vue';\nexport { default as SheetTitle } from './SheetTitle.vue';\nexport { default as SheetDescription } from './SheetDescription.vue';\nexport { default as SheetFooter } from './SheetFooter.vue';\n\nexport const sheetVariants = cva(\n 'sigma-ui-sheet-content__base',\n {\n variants: {\n side: {\n top: 'sigma-ui-sheet-content--top',\n bottom: 'sigma-ui-sheet-content--bottom',\n left: 'sigma-ui-sheet-content--left',\n right: 'sigma-ui-sheet-content--right',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n },\n);\n\nexport type SheetVariants = VariantProps<typeof sheetVariants>;\n"
41
+ }
42
+ ],
43
+ "type": "components:ui"
44
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "skeleton",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Skeleton.vue",
8
+ "content": "<script setup lang=\"ts\">\n</script>\n\n<template>\n <div\n class=\"sigma-ui-skeleton\"\n :class=\"[$attrs.class]\"\n />\n</template>\n\n<style>\n.sigma-ui-skeleton {\n border-radius: var(--radius-md);\n background-color: hsl(var(--muted));\n animation: skeletonPulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n@keyframes skeletonPulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "index.ts",
12
+ "content": "export { default as Skeleton } from './Skeleton.vue';\n"
13
+ }
14
+ ],
15
+ "type": "components:ui"
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "slider",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Slider.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport type { SliderRootEmits, SliderRootProps } from 'reka-ui';\nimport { SliderRange, SliderRoot, SliderThumb, SliderTrack, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<SliderRootProps>();\nconst emits = defineEmits<SliderRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <SliderRoot\n class=\"sigma-ui-slider\"\n v-bind=\"forwarded\"\n >\n <SliderTrack class=\"sigma-ui-slider__track\">\n <SliderRange class=\"sigma-ui-slider__range\" />\n </SliderTrack>\n <SliderThumb\n v-for=\"(_, key) in modelValue\"\n :key=\"key\"\n class=\"sigma-ui-slider__thumb\"\n />\n </SliderRoot>\n</template>\n\n<style>\n.sigma-ui-slider {\n position: relative;\n display: flex;\n width: 100%;\n min-width: 50px;\n touch-action: none;\n user-select: none;\n align-items: center;\n}\n\n.sigma-ui-slider__track {\n position: relative;\n height: 0.5rem;\n width: 100%;\n flex-grow: 1;\n overflow: hidden;\n border-radius: var(--radius-full);\n background-color: hsl(var(--secondary));\n}\n\n.sigma-ui-slider__range {\n position: absolute;\n height: 100%;\n background-color: hsl(var(--primary));\n}\n\n.sigma-ui-slider__thumb {\n display: block;\n height: 1.25rem;\n width: 1.25rem;\n border-radius: var(--radius-full);\n border: 2px solid hsl(var(--primary));\n background-color: hsl(var(--background));\n transition-property: color, background-color, border-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.sigma-ui-slider__thumb:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px hsl(var(--ring)), 0 0 0 4px hsl(var(--background));\n}\n\n.sigma-ui-slider__thumb:disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "index.ts",
12
+ "content": "export { default as Slider } from './Slider.vue';\n"
13
+ }
14
+ ],
15
+ "type": "components:ui"
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "switch",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Switch.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport {\n SwitchRoot,\n type SwitchRootEmits,\n type SwitchRootProps,\n SwitchThumb,\n useForwardPropsEmits,\n\n} from 'reka-ui';\n\nconst props = defineProps<SwitchRootProps>();\n\nconst emits = defineEmits<SwitchRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <SwitchRoot\n v-bind=\"forwarded\"\n class=\"sigma-ui-switch\"\n >\n <SwitchThumb class=\"sigma-ui-switch__thumb\" />\n </SwitchRoot>\n</template>\n\n<style>\n.sigma-ui-switch {\n display: inline-flex;\n height: 1.5rem;\n width: 2.75rem;\n flex-shrink: 0;\n cursor: pointer;\n align-items: center;\n border-radius: var(--radius-full);\n border: 2px solid transparent;\n transition-property: color, background-color, border-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.sigma-ui-switch:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px hsl(var(--ring)), 0 0 0 4px hsl(var(--background));\n}\n\n.sigma-ui-switch:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.sigma-ui-switch[data-state=\"checked\"] {\n background-color: hsl(var(--primary));\n}\n\n.sigma-ui-switch[data-state=\"unchecked\"] {\n background-color: hsl(var(--input));\n}\n\n.sigma-ui-switch__thumb {\n pointer-events: none;\n display: block;\n height: 1.25rem;\n width: 1.25rem;\n border-radius: var(--radius-full);\n background-color: hsl(var(--background));\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);\n animation: none;\n}\n\n.sigma-ui-switch__thumb[data-state=\"checked\"] {\n transform: translateX(1.25rem);\n animation: thumbMotionBlurIn 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.sigma-ui-switch__thumb[data-state=\"unchecked\"] {\n transform: translateX(0);\n animation: thumbMotionBlurOut 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@keyframes thumbMotionBlurIn {\n 0% {\n filter: blur(0);\n }\n 50% {\n filter: blur(2px);\n }\n 100% {\n filter: blur(0);\n }\n}\n\n@keyframes thumbMotionBlurOut {\n 0% {\n filter: blur(0);\n }\n 50% {\n filter: blur(2px);\n }\n 100% {\n filter: blur(0);\n }\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "index.ts",
12
+ "content": "export { default as Switch } from './Switch.vue';\n"
13
+ }
14
+ ],
15
+ "type": "components:ui"
16
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "table",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Table.vue",
8
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <div class=\"sigma-ui-table-wrapper\">\n <table\n class=\"sigma-ui-table\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </table>\n </div>\n</template>\n\n<style>\n.sigma-ui-table-wrapper {\n position: relative;\n width: 100%;\n overflow: auto;\n}\n\n.sigma-ui-table {\n width: 100%;\n caption-side: bottom;\n font-size: 0.875rem;\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "TableBody.vue",
12
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <tbody\n class=\"sigma-ui-table-body\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </tbody>\n</template>\n\n<style>\n.sigma-ui-table-body tr:last-child {\n border: 0;\n}\n</style>\n"
13
+ },
14
+ {
15
+ "name": "TableCaption.vue",
16
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <caption\n class=\"sigma-ui-table-caption\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </caption>\n</template>\n\n<style>\n.sigma-ui-table-caption {\n margin-top: 1rem;\n font-size: 0.875rem;\n color: hsl(var(--muted-foreground));\n}\n</style>\n"
17
+ },
18
+ {
19
+ "name": "TableCell.vue",
20
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <td\n class=\"sigma-ui-table-cell\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </td>\n</template>\n\n<style>\n.sigma-ui-table-cell {\n padding: 1rem;\n vertical-align: middle;\n}\n\n.sigma-ui-table-cell:has([role=checkbox]) {\n padding-right: 0;\n}\n</style>\n"
21
+ },
22
+ {
23
+ "name": "TableEmpty.vue",
24
+ "content": "<script setup lang=\"ts\">\nimport TableRow from './TableRow.vue';\nimport TableCell from './TableCell.vue';\n\nconst props = withDefaults(defineProps<{\n colspan?: number;\n}>(), {\n colspan: 1,\n});\n</script>\n\n<template>\n <TableRow>\n <TableCell\n class=\"sigma-ui-table-empty\"\n :class=\"[$attrs.class]\"\n v-bind=\"props\"\n >\n <div class=\"sigma-ui-table-empty__content\">\n <slot />\n </div>\n </TableCell>\n </TableRow>\n</template>\n\n<style>\n.sigma-ui-table-empty {\n padding: 1rem;\n white-space: nowrap;\n vertical-align: middle;\n font-size: 0.875rem;\n color: hsl(var(--foreground));\n}\n\n.sigma-ui-table-empty__content {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n}\n</style>\n"
25
+ },
26
+ {
27
+ "name": "TableFooter.vue",
28
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <tfoot\n class=\"sigma-ui-table-footer\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </tfoot>\n</template>\n\n<style>\n.sigma-ui-table-footer {\n border-top: 1px solid hsl(var(--border));\n background-color: hsl(var(--muted) / 0.5);\n font-weight: 500;\n}\n\n.sigma-ui-table-footer > tr:last-child {\n border-bottom: 0;\n}\n</style>\n"
29
+ },
30
+ {
31
+ "name": "TableHead.vue",
32
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <th\n class=\"sigma-ui-table-head\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </th>\n</template>\n\n<style>\n.sigma-ui-table-head {\n height: 3rem;\n padding-left: 1rem;\n padding-right: 1rem;\n text-align: left;\n vertical-align: middle;\n font-weight: 500;\n color: hsl(var(--muted-foreground));\n}\n\n.sigma-ui-table-head:has([role=checkbox]) {\n padding-right: 0;\n}\n</style>\n"
33
+ },
34
+ {
35
+ "name": "TableHeader.vue",
36
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <thead\n class=\"sigma-ui-table-header\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </thead>\n</template>\n\n<style>\n.sigma-ui-table-header tr {\n border-bottom: 1px solid hsl(var(--border));\n}\n</style>\n"
37
+ },
38
+ {
39
+ "name": "TableRow.vue",
40
+ "content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <tr\n class=\"sigma-ui-table-row\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </tr>\n</template>\n\n<style>\n.sigma-ui-table-row {\n border-bottom: 1px solid hsl(var(--border));\n transition-property: color, background-color, border-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.sigma-ui-table-row:hover {\n background-color: hsl(var(--muted) / 0.5);\n}\n\n.sigma-ui-table-row[data-state=\"selected\"] {\n background-color: hsl(var(--muted));\n}\n</style>\n"
41
+ },
42
+ {
43
+ "name": "index.ts",
44
+ "content": "export { default as Table } from './Table.vue';\nexport { default as TableBody } from './TableBody.vue';\nexport { default as TableCell } from './TableCell.vue';\nexport { default as TableHead } from './TableHead.vue';\nexport { default as TableHeader } from './TableHeader.vue';\nexport { default as TableFooter } from './TableFooter.vue';\nexport { default as TableRow } from './TableRow.vue';\nexport { default as TableCaption } from './TableCaption.vue';\nexport { default as TableEmpty } from './TableEmpty.vue';\n"
45
+ }
46
+ ],
47
+ "type": "components:ui"
48
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "tabs",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Tabs.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport { TabsRoot, useForwardPropsEmits } from 'reka-ui';\nimport type { TabsRootEmits, TabsRootProps } from 'reka-ui';\n\nconst props = defineProps<TabsRootProps>();\nconst emits = defineEmits<TabsRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <TabsRoot v-bind=\"forwarded\">\n <slot />\n </TabsRoot>\n</template>\n"
9
+ },
10
+ {
11
+ "name": "TabsContent.vue",
12
+ "content": "<script setup lang=\"ts\">\nimport { TabsContent, type TabsContentProps } from 'reka-ui';\n\nconst props = defineProps<TabsContentProps>();\n</script>\n\n<template>\n <TabsContent\n v-bind=\"props\"\n class=\"sigma-ui-tabs-content\"\n >\n <slot />\n </TabsContent>\n</template>\n\n<style>\n.sigma-ui-tabs-content {\n margin-top: 0.5rem;\n}\n\n.sigma-ui-tabs-content:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px hsl(var(--ring)), 0 0 0 4px hsl(var(--background));\n}\n</style>\n"
13
+ },
14
+ {
15
+ "name": "TabsList.vue",
16
+ "content": "<script setup lang=\"ts\">\nimport { TabsList, type TabsListProps } from 'reka-ui';\n\nconst props = defineProps<TabsListProps>();\n</script>\n\n<template>\n <TabsList\n v-bind=\"props\"\n class=\"sigma-ui-tabs-list\"\n >\n <slot />\n </TabsList>\n</template>\n\n<style>\n.sigma-ui-tabs-list {\n display: inline-flex;\n height: 2.5rem;\n padding: 2px;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-md);\n background-color: hsl(var(--muted));\n color: hsl(var(--muted-foreground));\n}\n</style>\n"
17
+ },
18
+ {
19
+ "name": "TabsTrigger.vue",
20
+ "content": "<script setup lang=\"ts\">\nimport { TabsTrigger, type TabsTriggerProps, useForwardProps } from 'reka-ui';\n\nconst props = defineProps<TabsTriggerProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <TabsTrigger\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-tabs-trigger\"\n >\n <slot />\n </TabsTrigger>\n</template>\n\n<style>\n.sigma-ui-tabs-trigger {\n display: inline-flex;\n flex: 1;\n height: 100%;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n border-radius: var(--radius-sm);\n padding-inline: 0.75rem;\n font-size: 0.875rem;\n font-weight: 500;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.sigma-ui-tabs-trigger:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px hsl(var(--ring)), 0 0 0 4px hsl(var(--background));\n}\n\n.sigma-ui-tabs-trigger:disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.sigma-ui-tabs-trigger[data-state=\"active\"] {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n}\n</style>\n"
21
+ },
22
+ {
23
+ "name": "index.ts",
24
+ "content": "export { default as Tabs } from './Tabs.vue';\nexport { default as TabsTrigger } from './TabsTrigger.vue';\nexport { default as TabsList } from './TabsList.vue';\nexport { default as TabsContent } from './TabsContent.vue';\n"
25
+ }
26
+ ],
27
+ "type": "components:ui"
28
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "tags-input",
3
+ "dependencies": [
4
+ "@vueuse/core"
5
+ ],
6
+ "registryDependencies": [],
7
+ "files": [
8
+ {
9
+ "name": "TagsInput.vue",
10
+ "content": "<script setup lang=\"ts\">\nimport { TagsInputRoot, type TagsInputRootEmits, type TagsInputRootProps, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<TagsInputRootProps>();\nconst emits = defineEmits<TagsInputRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <TagsInputRoot\n v-bind=\"forwarded\"\n class=\"sigma-ui-tags-input\"\n >\n <slot />\n </TagsInputRoot>\n</template>\n\n<style>\n.sigma-ui-tags-input {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: center;\n border-radius: var(--radius-md);\n border: 1px solid hsl(var(--input));\n background-color: hsl(var(--background));\n padding: 0.5rem 0.75rem;\n font-size: 0.875rem;\n}\n</style>\n"
11
+ },
12
+ {
13
+ "name": "TagsInputInput.vue",
14
+ "content": "<script setup lang=\"ts\">\nimport { TagsInputInput, type TagsInputInputProps, useForwardProps } from 'reka-ui';\n\nconst props = defineProps<TagsInputInputProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <TagsInputInput\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-tags-input-input\"\n />\n</template>\n\n<style>\n.sigma-ui-tags-input-input {\n flex: 1;\n min-height: 1.5rem;\n padding-inline: 0.25rem;\n font-size: 0.875rem;\n background-color: transparent;\n}\n\n.sigma-ui-tags-input-input:focus-visible {\n outline: none;\n box-shadow: none;\n}\n</style>\n"
15
+ },
16
+ {
17
+ "name": "TagsInputItem.vue",
18
+ "content": "<script setup lang=\"ts\">\nimport { TagsInputItem, type TagsInputItemProps, useForwardProps } from 'reka-ui';\n\nconst props = defineProps<TagsInputItemProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <TagsInputItem\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-tags-input-item\"\n >\n <slot />\n </TagsInputItem>\n</template>\n\n<style>\n.sigma-ui-tags-input-item {\n display: flex;\n height: 1.5rem;\n align-items: center;\n border-radius: var(--radius-sm);\n background-color: hsl(var(--secondary));\n}\n\n.sigma-ui-tags-input-item[data-state=\"active\"] {\n box-shadow: 0 0 0 2px hsl(var(--ring)), 0 0 0 4px hsl(var(--background));\n}\n</style>\n"
19
+ },
20
+ {
21
+ "name": "TagsInputItemDelete.vue",
22
+ "content": "<script setup lang=\"ts\">\nimport { TagsInputItemDelete, type TagsInputItemDeleteProps, useForwardProps } from 'reka-ui';\nimport { XIcon } from 'lucide-vue-next';\n\nconst props = defineProps<TagsInputItemDeleteProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <TagsInputItemDelete\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-tags-input-item-delete\"\n >\n <slot>\n <XIcon class=\"sigma-ui-tags-input-item-delete__icon\" />\n </slot>\n </TagsInputItemDelete>\n</template>\n\n<style>\n.sigma-ui-tags-input-item-delete {\n display: flex;\n border-radius: var(--radius-sm);\n background-color: transparent;\n margin-right: 0.25rem;\n cursor: pointer;\n}\n\n.sigma-ui-tags-input-item-delete:hover {\n background-color: hsl(var(--muted));\n}\n\n.sigma-ui-tags-input-item-delete__icon {\n width: 1rem;\n height: 1rem;\n}\n</style>\n"
23
+ },
24
+ {
25
+ "name": "TagsInputItemText.vue",
26
+ "content": "<script setup lang=\"ts\">\nimport { TagsInputItemText, type TagsInputItemTextProps, useForwardProps } from 'reka-ui';\n\nconst props = defineProps<TagsInputItemTextProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <TagsInputItemText\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-tags-input-item-text\"\n />\n</template>\n\n<style>\n.sigma-ui-tags-input-item-text {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--radius-sm);\n background-color: transparent;\n}\n</style>\n"
27
+ },
28
+ {
29
+ "name": "index.ts",
30
+ "content": "export { default as TagsInput } from './TagsInput.vue';\nexport { default as TagsInputInput } from './TagsInputInput.vue';\nexport { default as TagsInputItem } from './TagsInputItem.vue';\nexport { default as TagsInputItemDelete } from './TagsInputItemDelete.vue';\nexport { default as TagsInputItemText } from './TagsInputItemText.vue';\n"
31
+ }
32
+ ],
33
+ "type": "components:ui"
34
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "textarea",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Textarea.vue",
8
+ "content": "<script setup lang=\"ts\">\n\nconst props = defineProps<{\n modelValue?: string | number;\n}>();\n\nconst model = defineModel<string | number>();\n</script>\n\n<template>\n <textarea\n v-model=\"model\"\n class=\"sigma-ui-textarea\"\n :class=\"[$attrs.class]\"\n autocomplete=\"off\"\n />\n</template>\n\n<style>\n.sigma-ui-textarea {\n display: flex;\n min-height: 5rem;\n width: 100%;\n border-radius: var(--radius-md);\n border: 1px solid hsl(var(--input));\n background-color: hsl(var(--background));\n padding: 0.5rem 0.75rem;\n font-size: 0.875rem;\n}\n\n.sigma-ui-textarea::placeholder {\n color: hsl(var(--muted-foreground));\n}\n\n.sigma-ui-textarea:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring));\n}\n\n.sigma-ui-textarea:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "index.ts",
12
+ "content": "export { default as Textarea } from './Textarea.vue';\n"
13
+ }
14
+ ],
15
+ "type": "components:ui"
16
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "toaster",
3
+ "dependencies": [
4
+ "vue-sonner"
5
+ ],
6
+ "registryDependencies": [],
7
+ "files": [
8
+ {
9
+ "name": "CustomProgress.vue",
10
+ "content": "<script lang=\"ts\" setup>\nimport { Button } from '@ui/registry/css/ui/button';\n\nexport type ToastItem = {\n data: {\n id: number | string;\n title: string;\n description: string;\n progress: number;\n timer: number;\n actionText: string;\n cleanup: () => void;\n };\n};\n\ntype Emits = {\n action: [];\n};\n\nconst props = defineProps<ToastItem>();\nconst emit = defineEmits<Emits>();\n</script>\n\n<template>\n <div class=\"sigma-ui-toaster-progress\">\n <div class=\"sigma-ui-toaster-progress__content\">\n <div class=\"sigma-ui-toaster-progress__header\">\n {{ props.data.title }}\n <div\n v-if=\"props.data.progress && props.data.progress < 100\"\n class=\"sigma-ui-toaster-progress__percentage\"\n >\n {{ props.data.progress }}%\n </div>\n </div>\n <div class=\"sigma-ui-toaster-progress__description\">\n {{ props.data.description }}\n </div>\n <div class=\"sigma-ui-toaster-progress__bar\">\n <div\n class=\"sigma-ui-toaster-progress__bar-fill\"\n :style=\"{ width: `${props.data.progress}%` }\"\n />\n </div>\n </div>\n <Button\n size=\"xs\"\n @click=\"emit('action')\"\n >\n {{ props.data.actionText }}\n </Button>\n </div>\n</template>\n\n<style>\n.sigma-ui-toaster-progress {\n display: flex;\n width: 100%;\n gap: 1.5rem;\n align-items: flex-end;\n justify-content: space-between;\n background-color: hsl(var(--background));\n border-radius: var(--radius);\n border: 1px solid hsl(var(--border));\n padding: 1rem;\n box-shadow: var(--shadow-md);\n}\n\n.sigma-ui-toaster-progress__content {\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n.sigma-ui-toaster-progress__header {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n font-size: 0.875rem;\n font-weight: 600;\n}\n\n.sigma-ui-toaster-progress__percentage {\n font-size: 0.75rem;\n color: hsl(var(--muted-foreground));\n}\n\n.sigma-ui-toaster-progress__description {\n font-size: 0.875rem;\n color: hsl(var(--muted-foreground));\n}\n\n.sigma-ui-toaster-progress__bar {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n background-color: hsl(var(--primary) / 0.1);\n border-radius: var(--rounded-full);\n height: 2px;\n width: 100%;\n}\n\n.sigma-ui-toaster-progress__bar-fill {\n background-color: hsl(var(--primary));\n height: 2px;\n border-radius: var(--rounded-full);\n}\n</style>\n"
11
+ },
12
+ {
13
+ "name": "CustomSimple.vue",
14
+ "content": "<script setup lang=\"ts\">\nimport { Button } from '@ui/registry/css/ui/button';\n\ntype Props = {\n title: string;\n description: string;\n actionText: string;\n};\n\ntype Emits = {\n action: [];\n};\n\nconst props = defineProps<Props>();\nconst emit = defineEmits<Emits>();\n</script>\n\n<template>\n <div class=\"sigma-ui-toaster-default\">\n <div class=\"sigma-ui-toaster-default__content\">\n <div class=\"sigma-ui-toaster-default__title\">\n {{ props.title }}\n </div>\n <div class=\"sigma-ui-toaster-default__description\">\n {{ props.description }}\n </div>\n </div>\n <Button\n size=\"xs\"\n @click=\"emit('action')\"\n >\n {{ props.actionText }}\n </Button>\n </div>\n</template>\n\n<style>\n.sigma-ui-toaster-default {\n display: flex;\n width: 100%;\n align-items: flex-end;\n justify-content: space-between;\n background-color: hsl(var(--background));\n border-radius: var(--radius);\n border: 1px solid hsl(var(--border));\n padding: 1rem;\n box-shadow: var(--shadow-md);\n}\n\n.sigma-ui-toaster-default__title {\n font-size: 0.875rem;\n font-weight: 600;\n}\n\n.sigma-ui-toaster-default__description {\n font-size: 0.875rem;\n color: hsl(var(--muted-foreground));\n}\n</style>\n"
15
+ },
16
+ {
17
+ "name": "Toaster.vue",
18
+ "content": "<script lang=\"ts\" setup>\nimport { Toaster, type ToasterProps } from 'vue-sonner';\n\nconst props = defineProps<ToasterProps>();\n</script>\n\n<template>\n <Toaster\n class=\"sigma-ui-toaster\"\n v-bind=\"props\"\n :toast-options=\"{\n ...props.toastOptions,\n unstyled: true,\n classes: {\n toast: 'sigma-ui-toast',\n description: 'sigma-ui-toast__description',\n actionButton: 'sigma-ui-toast__action-button',\n cancelButton: 'sigma-ui-toast__cancel-button',\n },\n }\"\n />\n</template>\n\n<style>\n.sigma-ui-toaster {\n z-index: 60;\n position: fixed;\n display: flex;\n flex-direction: column;\n gap: 10px;\n max-width: 420px;\n pointer-events: auto;\n}\n\n.sigma-ui-toast {\n width: 100%;\n cursor: default;\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n border-radius: var(--radius);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n display: flex;\n gap: 0.5rem;\n align-items: center;\n}\n\n.sigma-ui-toast[data-type=\"default\"] {\n padding: 0.75rem 1rem;\n border: 1px solid hsl(var(--border));\n}\n\n.sigma-ui-toast[data-type=\"default\"] [data-content] {\n display: flex;\n flex: 1;\n}\n\n.sigma-ui-toast[data-type=\"default\"] .sigma-ui-toast__description {\n width: 100%;\n}\n\n.sigma-ui-toast[data-type=\"default\"] .sigma-ui-toast__action-button {\n padding: 2px 6px;\n border-radius: var(--radius-sm);\n background-color: hsl(var(--primary));\n color: hsl(var(--primary-foreground));\n}\n\n.sigma-ui-toast[data-type=\"default\"] .sigma-ui-toast__action-button:hover {\n opacity: 0.9;\n}\n\n.sigma-ui-toast[data-type=\"default\"] .sigma-ui-toast__cancel-button {\n padding: 2px 6px;\n border-radius: var(--radius-sm);\n background-color: hsl(var(--muted));\n color: hsl(var(--muted-foreground));\n}\n\n.sigma-ui-toast[data-type=\"default\"] .sigma-ui-toast__cancel-button:hover {\n opacity: 0.9;\n}\n</style>\n"
19
+ },
20
+ {
21
+ "name": "index.ts",
22
+ "content": "export { toast } from 'vue-sonner';\nexport { default as Toaster } from './Toaster.vue';\nexport { default as CustomSimple } from './CustomSimple.vue';\nexport { default as CustomProgress } from './CustomProgress.vue';\n"
23
+ }
24
+ ],
25
+ "type": "components:ui"
26
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "toggle-group",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "ToggleGroup.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport type { VariantProps } from 'class-variance-authority';\nimport { provide } from 'vue';\nimport { ToggleGroupRoot, type ToggleGroupRootEmits, type ToggleGroupRootProps, useForwardPropsEmits } from 'reka-ui';\nimport type { toggleVariants } from '@ui/registry/css/ui/toggle';\n\ntype ToggleGroupVariants = VariantProps<typeof toggleVariants>;\n\nconst props = defineProps<ToggleGroupRootProps & {\n\n variant?: ToggleGroupVariants['variant'];\n size?: ToggleGroupVariants['size'];\n}>();\nconst emits = defineEmits<ToggleGroupRootEmits>();\n\nprovide('toggleGroup', {\n variant: props.variant,\n size: props.size,\n});\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <ToggleGroupRoot\n v-bind=\"forwarded\"\n class=\"sigma-ui-toggle-group\"\n >\n <slot />\n </ToggleGroupRoot>\n</template>\n\n<style>\n.sigma-ui-toggle-group {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "ToggleGroupItem.vue",
12
+ "content": "<script setup lang=\"ts\">\nimport type { VariantProps } from 'class-variance-authority';\nimport { computed, inject } from 'vue';\nimport { ToggleGroupItem, type ToggleGroupItemProps, useForwardProps } from 'reka-ui';\nimport { toggleVariants } from '@ui/registry/css/ui/toggle';\n\ntype ToggleGroupVariants = VariantProps<typeof toggleVariants>;\n\nconst props = defineProps<ToggleGroupItemProps & {\n variant?: ToggleGroupVariants['variant'];\n size?: ToggleGroupVariants['size'];\n}>();\n\nconst context = inject<ToggleGroupVariants>('toggleGroup');\n\nconst delegatedProps = computed(() => ({ ...props, variant: undefined, size: undefined }));\n\nconst forwardedProps = useForwardProps(delegatedProps);\n</script>\n\n<template>\n <ToggleGroupItem\n v-bind=\"forwardedProps\"\n :class=\"[\n toggleVariants({\n variant: context?.variant || variant,\n size: context?.size || size,\n }),\n ]\"\n >\n <slot />\n </ToggleGroupItem>\n</template>\n"
13
+ },
14
+ {
15
+ "name": "index.ts",
16
+ "content": "export { default as ToggleGroup } from './ToggleGroup.vue';\nexport { default as ToggleGroupItem } from './ToggleGroupItem.vue';\n"
17
+ }
18
+ ],
19
+ "type": "components:ui"
20
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "toggle",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Toggle.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { Toggle, type ToggleEmits, type ToggleProps, useForwardPropsEmits } from 'reka-ui';\nimport { type ToggleVariants, toggleVariants } from '.';\n\nconst props = withDefaults(defineProps<ToggleProps & {\n variant?: ToggleVariants['variant'];\n size?: ToggleVariants['size'];\n}>(), {\n variant: 'default',\n size: 'default',\n disabled: false,\n});\n\nconst emits = defineEmits<ToggleEmits>();\n\nconst delegatedProps = computed(() => ({ ...props, size: undefined, variant: undefined }));\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits);\n</script>\n\n<template>\n <Toggle\n v-bind=\"forwarded\"\n :class=\"[toggleVariants({ variant, size })]\"\n >\n <slot />\n </Toggle>\n</template>\n\n<style>\n.sigma-ui-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-md);\n font-size: 0.875rem;\n font-weight: 500;\n transition-property: color, background-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.sigma-ui-toggle:hover {\n background-color: hsl(var(--muted));\n color: hsl(var(--muted-foreground));\n}\n\n.sigma-ui-toggle:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring));\n}\n\n.sigma-ui-toggle:disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.sigma-ui-toggle[data-state=\"on\"] {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-toggle--default {\n background-color: transparent;\n}\n\n.sigma-ui-toggle--outline {\n border: 1px solid hsl(var(--input));\n background-color: transparent;\n}\n\n.sigma-ui-toggle--outline:hover {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-toggle--size-default {\n height: 2.5rem;\n padding-inline: 0.75rem;\n}\n\n.sigma-ui-toggle--size-sm {\n height: 2.25rem;\n padding-inline: 0.625rem;\n}\n\n.sigma-ui-toggle--size-lg {\n height: 2.75rem;\n padding-inline: 1.25rem;\n}\n</style>\n"
9
+ },
10
+ {
11
+ "name": "index.ts",
12
+ "content": "import { type VariantProps, cva } from 'class-variance-authority';\n\nexport { default as Toggle } from './Toggle.vue';\n\nexport const toggleVariants = cva(\n 'sigma-ui-toggle',\n {\n variants: {\n variant: {\n default: 'sigma-ui-toggle--default',\n outline: 'sigma-ui-toggle--outline',\n },\n size: {\n default: 'sigma-ui-toggle--size-default',\n sm: 'sigma-ui-toggle--size-sm',\n lg: 'sigma-ui-toggle--size-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport type ToggleVariants = VariantProps<typeof toggleVariants>;\n"
13
+ }
14
+ ],
15
+ "type": "components:ui"
16
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "tooltip",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Tooltip.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport { TooltipRoot, type TooltipRootEmits, type TooltipRootProps, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<TooltipRootProps>();\nconst emits = defineEmits<TooltipRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <TooltipRoot v-bind=\"forwarded\">\n <slot />\n </TooltipRoot>\n</template>\n"
9
+ },
10
+ {
11
+ "name": "TooltipContent.vue",
12
+ "content": "<script setup lang=\"ts\">\nimport { TooltipContent, type TooltipContentEmits, type TooltipContentProps, TooltipPortal, useForwardPropsEmits } from 'reka-ui';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<TooltipContentProps>(), {\n sideOffset: 4,\n});\n\nconst emits = defineEmits<TooltipContentEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <TooltipPortal>\n <TooltipContent\n v-bind=\"{ ...forwarded, ...$attrs }\"\n class=\"sigma-ui-tooltip-content\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </TooltipContent>\n </TooltipPortal>\n</template>\n\n<style>\n.sigma-ui-tooltip-content {\n z-index: 50;\n overflow: hidden;\n border-radius: var(--radius-md);\n border: 1px solid hsl(var(--border));\n background-color: hsl(var(--popover));\n color: hsl(var(--popover-foreground));\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.sigma-ui-tooltip-content {\n animation: tooltipIn 150ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.sigma-ui-tooltip-content[data-side=\"bottom\"] {\n animation: tooltipInBottom 150ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.sigma-ui-tooltip-content[data-side=\"top\"] {\n animation: tooltipInTop 150ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.sigma-ui-tooltip-content[data-side=\"left\"] {\n animation: tooltipInLeft 150ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.sigma-ui-tooltip-content[data-side=\"right\"] {\n animation: tooltipInRight 150ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.sigma-ui-tooltip-content[data-state=\"closed\"] {\n animation: tooltipOut 250ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n@keyframes tooltipIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes tooltipOut {\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n\n@keyframes tooltipInBottom {\n from {\n opacity: 0;\n transform: translateY(-0.5rem);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes tooltipInTop {\n from {\n opacity: 0;\n transform: translateY(0.5rem);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes tooltipInLeft {\n from {\n opacity: 0;\n transform: translateX(0.5rem);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes tooltipInRight {\n from {\n opacity: 0;\n transform: translateX(-0.5rem);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n</style>\n"
13
+ },
14
+ {
15
+ "name": "TooltipProvider.vue",
16
+ "content": "<script setup lang=\"ts\">\nimport { TooltipProvider, type TooltipProviderProps } from 'reka-ui';\n\nconst props = defineProps<TooltipProviderProps>();\n</script>\n\n<template>\n <TooltipProvider v-bind=\"props\">\n <slot />\n </TooltipProvider>\n</template>\n"
17
+ },
18
+ {
19
+ "name": "TooltipTrigger.vue",
20
+ "content": "<script setup lang=\"ts\">\nimport { TooltipTrigger, type TooltipTriggerProps } from 'reka-ui';\n\nconst props = defineProps<TooltipTriggerProps>();\n</script>\n\n<template>\n <TooltipTrigger v-bind=\"props\">\n <slot />\n </TooltipTrigger>\n</template>\n"
21
+ },
22
+ {
23
+ "name": "index.ts",
24
+ "content": "export { default as Tooltip } from './Tooltip.vue';\nexport { default as TooltipContent } from './TooltipContent.vue';\nexport { default as TooltipTrigger } from './TooltipTrigger.vue';\nexport { default as TooltipProvider } from './TooltipProvider.vue';\n"
25
+ }
26
+ ],
27
+ "type": "components:ui"
28
+ }
@@ -0,0 +1,10 @@
1
+ [
2
+ {
3
+ "name": "tailwind",
4
+ "label": "Tailwind"
5
+ },
6
+ {
7
+ "name": "css",
8
+ "label": "CSS"
9
+ }
10
+ ]
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "accordion",
3
+ "dependencies": [],
4
+ "registryDependencies": [],
5
+ "files": [
6
+ {
7
+ "name": "Accordion.vue",
8
+ "content": "<script setup lang=\"ts\">\nimport {\n AccordionRoot,\n type AccordionRootEmits,\n type AccordionRootProps,\n useForwardPropsEmits,\n} from 'reka-ui';\n\nconst props = defineProps<AccordionRootProps>();\nconst emits = defineEmits<AccordionRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <AccordionRoot v-bind=\"forwarded\">\n <slot />\n </AccordionRoot>\n</template>\n"
9
+ },
10
+ {
11
+ "name": "AccordionContent.vue",
12
+ "content": "<script setup lang=\"ts\">\nimport { AccordionContent, type AccordionContentProps, useForwardProps } from 'reka-ui';\nimport { cn } from '@ui/utils';\n\nconst props = defineProps<AccordionContentProps>();\nconst forwarded = useForwardProps(props);\n</script>\n\n<template>\n <AccordionContent\n v-bind=\"forwarded\"\n class=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n >\n <div :class=\"cn('pb-4 pt-0', $attrs.class ?? '')\">\n <slot />\n </div>\n </AccordionContent>\n</template>\n"
13
+ },
14
+ {
15
+ "name": "AccordionItem.vue",
16
+ "content": "<script setup lang=\"ts\">\nimport { AccordionItem, type AccordionItemProps, useForwardProps } from 'reka-ui';\nimport { cn } from '@ui/utils';\n\nconst props = defineProps<AccordionItemProps>();\nconst forwarded = useForwardProps(props);\n</script>\n\n<template>\n <AccordionItem\n v-bind=\"forwarded\"\n :class=\"cn('border-b', $attrs.class ?? '')\"\n >\n <slot />\n </AccordionItem>\n</template>\n"
17
+ },
18
+ {
19
+ "name": "AccordionTrigger.vue",
20
+ "content": "<script setup lang=\"ts\">\nimport { AccordionHeader, AccordionTrigger, type AccordionTriggerProps, useForwardProps } from 'reka-ui';\nimport { ChevronDownIcon } from 'lucide-vue-next';\nimport { cn } from '@ui/utils';\n\nconst props = defineProps<AccordionTriggerProps>();\nconst forwarded = useForwardProps(props);\n</script>\n\n<template>\n <AccordionHeader class=\"flex\">\n <AccordionTrigger\n v-bind=\"forwarded\"\n :class=\"cn('flex flex-1 items-center justify-between py-4 font-medium transition-all [&[data-state=open]>svg]:rotate-180', $attrs.class ?? '')\"\n >\n <slot />\n <slot name=\"icon\">\n <ChevronDownIcon\n class=\"h-4 w-4 shrink-0 transition-transform duration-200\"\n />\n </slot>\n </AccordionTrigger>\n </AccordionHeader>\n</template>\n"
21
+ },
22
+ {
23
+ "name": "index.ts",
24
+ "content": "export { default as Accordion } from './Accordion.vue';\nexport { default as AccordionContent } from './AccordionContent.vue';\nexport { default as AccordionItem } from './AccordionItem.vue';\nexport { default as AccordionTrigger } from './AccordionTrigger.vue';\n"
25
+ }
26
+ ],
27
+ "type": "components:ui"
28
+ }