fulldev-ui 0.11.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/package.json +29 -21
  3. package/public/r/accordion.json +2 -2
  4. package/public/r/alert-dialog.json +2 -2
  5. package/public/r/aspect-ratio.json +23 -0
  6. package/public/r/attachment.json +66 -0
  7. package/public/r/banner.json +0 -4
  8. package/public/r/blocks-1.json +1 -1
  9. package/public/r/button-group.json +41 -0
  10. package/public/r/button.json +1 -1
  11. package/public/r/carousel.json +8 -8
  12. package/public/r/collapsible.json +2 -2
  13. package/public/r/combobox.json +6 -5
  14. package/public/r/command.json +5 -4
  15. package/public/r/components.json +8 -0
  16. package/public/r/dialog.json +2 -2
  17. package/public/r/doc-1.json +1 -1
  18. package/public/r/drawer.json +109 -0
  19. package/public/r/dropdown-menu.json +4 -4
  20. package/public/r/hover-card.json +4 -4
  21. package/public/r/init.json +1 -1
  22. package/public/r/input-group.json +0 -1
  23. package/public/r/layout.json +3 -0
  24. package/public/r/navigation-menu.json +3 -3
  25. package/public/r/pagination.json +59 -0
  26. package/public/r/popover.json +3 -3
  27. package/public/r/radio-group.json +2 -2
  28. package/public/r/registry.json +418 -28
  29. package/public/r/resizable.json +36 -0
  30. package/public/r/reviews-3.json +1 -1
  31. package/public/r/select.json +3 -3
  32. package/public/r/sheet.json +2 -2
  33. package/public/r/sidebar-1.json +1 -1
  34. package/public/r/sidebar.json +1 -1
  35. package/public/r/slider.json +2 -2
  36. package/public/r/switch.json +2 -2
  37. package/public/r/tabs.json +4 -4
  38. package/public/r/toast.json +80 -0
  39. package/public/r/toggle-group.json +34 -0
  40. package/public/r/toggle.json +2 -2
  41. package/public/r/tooltip.json +3 -3
  42. package/public/r/typography.json +21 -16
  43. package/registry/init/global.css +2 -0
  44. package/registry.json +384 -23
  45. package/src/components/blocks/blocks-1.astro +23 -23
  46. package/src/components/blocks/doc-1.astro +116 -26
  47. package/src/components/blocks/reviews-3.astro +1 -1
  48. package/src/components/blocks/sidebar-1.astro +46 -44
  49. package/src/components/ui/accordion/accordion.astro +8 -2
  50. package/src/components/ui/alert-dialog/alert-dialog.astro +8 -2
  51. package/src/components/ui/aspect-ratio/aspect-ratio.astro +25 -0
  52. package/src/components/ui/aspect-ratio/index.ts +1 -0
  53. package/src/components/ui/attachment/attachment-action.astro +20 -0
  54. package/src/components/ui/attachment/attachment-actions.astro +20 -0
  55. package/src/components/ui/attachment/attachment-content.astro +20 -0
  56. package/src/components/ui/attachment/attachment-description.astro +20 -0
  57. package/src/components/ui/attachment/attachment-group.astro +20 -0
  58. package/src/components/ui/attachment/attachment-media.astro +36 -0
  59. package/src/components/ui/attachment/attachment-title.astro +20 -0
  60. package/src/components/ui/attachment/attachment-trigger.astro +24 -0
  61. package/src/components/ui/attachment/attachment.astro +52 -0
  62. package/src/components/ui/attachment/index.ts +9 -0
  63. package/src/components/ui/button/button.astro +4 -1
  64. package/src/components/ui/button-group/button-group-separator.astro +29 -0
  65. package/src/components/ui/button-group/button-group-text.astro +20 -0
  66. package/src/components/ui/button-group/button-group-variants.ts +20 -0
  67. package/src/components/ui/button-group/button-group.astro +30 -0
  68. package/src/components/ui/button-group/index.ts +7 -0
  69. package/src/components/ui/carousel/carousel-content.astro +11 -13
  70. package/src/components/ui/carousel/carousel-item.astro +2 -5
  71. package/src/components/ui/carousel/carousel-next.astro +0 -3
  72. package/src/components/ui/carousel/carousel-previous.astro +0 -3
  73. package/src/components/ui/carousel/carousel.astro +19 -219
  74. package/src/components/ui/carousel/index.ts +1 -5
  75. package/src/components/ui/collapsible/collapsible.astro +8 -2
  76. package/src/components/ui/combobox/combobox-content.astro +1 -1
  77. package/src/components/ui/combobox/combobox-input.astro +11 -4
  78. package/src/components/ui/combobox/combobox-trigger.astro +7 -7
  79. package/src/components/ui/combobox/combobox.astro +9 -17
  80. package/src/components/ui/command/command-dialog.astro +1 -0
  81. package/src/components/ui/command/command.astro +40 -25
  82. package/src/components/ui/dialog/dialog.astro +8 -2
  83. package/src/components/ui/drawer/drawer-close.astro +13 -0
  84. package/src/components/ui/drawer/drawer-content.astro +43 -0
  85. package/src/components/ui/drawer/drawer-description.astro +17 -0
  86. package/src/components/ui/drawer/drawer-footer.astro +17 -0
  87. package/src/components/ui/drawer/drawer-header.astro +17 -0
  88. package/src/components/ui/drawer/drawer-indent-background.astro +11 -0
  89. package/src/components/ui/drawer/drawer-indent.astro +11 -0
  90. package/src/components/ui/drawer/drawer-overlay.astro +21 -0
  91. package/src/components/ui/drawer/drawer-popup.astro +36 -0
  92. package/src/components/ui/drawer/drawer-portal.astro +27 -0
  93. package/src/components/ui/drawer/drawer-provider.astro +11 -0
  94. package/src/components/ui/drawer/drawer-swipe-handle.astro +20 -0
  95. package/src/components/ui/drawer/drawer-title.astro +17 -0
  96. package/src/components/ui/drawer/drawer-trigger.astro +21 -0
  97. package/src/components/ui/drawer/drawer-viewport.astro +21 -0
  98. package/src/components/ui/drawer/drawer-virtual-keyboard-provider.astro +11 -0
  99. package/src/components/ui/drawer/drawer.astro +60 -0
  100. package/src/components/ui/drawer/index.ts +28 -0
  101. package/src/components/ui/dropdown-menu/dropdown-menu-content.astro +1 -1
  102. package/src/components/ui/dropdown-menu/dropdown-menu-item.astro +40 -9
  103. package/src/components/ui/dropdown-menu/dropdown-menu.astro +8 -2
  104. package/src/components/ui/hover-card/hover-card-content.astro +1 -1
  105. package/src/components/ui/hover-card/hover-card.astro +15 -4
  106. package/src/components/ui/navigation-menu/navigation-menu-positioner.astro +1 -1
  107. package/src/components/ui/navigation-menu/navigation-menu.astro +13 -4
  108. package/src/components/ui/pagination/index.ts +7 -0
  109. package/src/components/ui/pagination/pagination-content.astro +17 -0
  110. package/src/components/ui/pagination/pagination-ellipsis.astro +22 -0
  111. package/src/components/ui/pagination/pagination-item.astro +11 -0
  112. package/src/components/ui/pagination/pagination-link.astro +41 -0
  113. package/src/components/ui/pagination/pagination-next.astro +27 -0
  114. package/src/components/ui/pagination/pagination-previous.astro +27 -0
  115. package/src/components/ui/pagination/pagination.astro +19 -0
  116. package/src/components/ui/popover/popover-content.astro +2 -1
  117. package/src/components/ui/popover/popover.astro +9 -2
  118. package/src/components/ui/radio-group/radio-group.astro +8 -2
  119. package/src/components/ui/resizable/index.ts +4 -0
  120. package/src/components/ui/resizable/resizable-handle.astro +32 -0
  121. package/src/components/ui/resizable/resizable-panel.astro +36 -0
  122. package/src/components/ui/resizable/resizable.astro +43 -0
  123. package/src/components/ui/select/select-content.astro +2 -2
  124. package/src/components/ui/select/select.astro +11 -7
  125. package/src/components/ui/sheet/sheet.astro +8 -2
  126. package/src/components/ui/slider/slider.astro +9 -3
  127. package/src/components/ui/switch/switch.astro +8 -2
  128. package/src/components/ui/tabs/tabs-content.astro +1 -1
  129. package/src/components/ui/tabs/tabs-trigger.astro +3 -2
  130. package/src/components/ui/tabs/tabs.astro +8 -2
  131. package/src/components/ui/toast/index.ts +26 -0
  132. package/src/components/ui/toast/toast-action.astro +25 -0
  133. package/src/components/ui/toast/toast-close.astro +27 -0
  134. package/src/components/ui/toast/toast-content.astro +20 -0
  135. package/src/components/ui/toast/toast-description.astro +18 -0
  136. package/src/components/ui/toast/toast-icon.astro +37 -0
  137. package/src/components/ui/toast/toast-item.astro +28 -0
  138. package/src/components/ui/toast/toast-template.astro +11 -0
  139. package/src/components/ui/toast/toast-title.astro +17 -0
  140. package/src/components/ui/toast/toast-viewport.astro +20 -0
  141. package/src/components/ui/toast/toast.astro +51 -0
  142. package/src/components/ui/toast/toaster.astro +37 -0
  143. package/src/components/ui/toggle/toggle.astro +8 -2
  144. package/src/components/ui/toggle-group/index.ts +2 -0
  145. package/src/components/ui/toggle-group/toggle-group-item.astro +44 -0
  146. package/src/components/ui/toggle-group/toggle-group.astro +74 -0
  147. package/src/components/ui/tooltip/tooltip-content.astro +1 -1
  148. package/src/components/ui/tooltip/tooltip.astro +11 -2
  149. package/src/components/ui/typography/typeset.css +441 -0
  150. package/src/components/ui/typography/typography-a.astro +13 -22
  151. package/src/components/ui/typography/typography-blockquote.astro +4 -23
  152. package/src/components/ui/typography/typography-h1.astro +13 -26
  153. package/src/components/ui/typography/typography-h2.astro +13 -31
  154. package/src/components/ui/typography/typography-h3.astro +9 -26
  155. package/src/components/ui/typography/typography-h4.astro +9 -26
  156. package/src/components/ui/typography/typography-inline-code.astro +8 -27
  157. package/src/components/ui/typography/typography-lead.astro +4 -26
  158. package/src/components/ui/typography/typography-list-item.astro +4 -24
  159. package/src/components/ui/typography/typography-list.astro +10 -40
  160. package/src/components/ui/typography/typography-p.astro +9 -28
  161. package/src/components/ui/typography/typography-table-cell.astro +9 -40
  162. package/src/components/ui/typography/typography-table-head.astro +9 -35
  163. package/src/components/ui/typography/typography-table-row.astro +4 -23
  164. package/src/components/ui/typography/typography-table.astro +8 -28
  165. package/src/components/ui/typography/typography.astro +10 -283
  166. package/src/styles/global.css +2 -0
@@ -6,88 +6,93 @@
6
6
  "files": [
7
7
  {
8
8
  "path": "src/components/ui/typography/typography.astro",
9
- "content": "---\nimport type { HTMLTag, Polymorphic } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props<Tag extends HTMLTag> = Polymorphic<{ as: Tag; size?: Size }>\n\nconst {\n as: Tag = \"div\",\n class: className,\n size = \"default\",\n ...props\n} = Astro.props\n---\n\n<Tag\n data-slot=\"typography\"\n data-size={size}\n class={cn(\"text-foreground text-base\", className)}\n {...props}\n>\n <slot />\n</Tag>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography\"]\n > :is(\n [data-slot=\"typography-lead\"],\n [data-slot=\"typography-table-container\"],\n div,\n section,\n article,\n aside,\n nav,\n figure,\n details,\n pre,\n small,\n dl,\n img,\n picture,\n video,\n iframe\n ):not(:first-child) {\n @apply mt-6;\n }\n\n [data-slot=\"typography\"] > h1 {\n @apply scroll-m-20 text-4xl font-semibold tracking-tight text-balance;\n }\n\n [data-slot=\"typography\"] > h2 {\n @apply scroll-m-20 text-3xl font-semibold tracking-tight;\n }\n\n [data-slot=\"typography\"] > h2:first-child {\n @apply mt-0;\n }\n\n [data-slot=\"typography\"] > h2:not(:first-child) {\n @apply mt-10;\n }\n\n [data-slot=\"typography\"] > h3 {\n @apply scroll-m-20 text-2xl font-semibold tracking-tight;\n }\n\n [data-slot=\"typography\"] > h3:not(:first-child) {\n @apply mt-8;\n }\n\n [data-slot=\"typography\"] > h4 {\n @apply scroll-m-20 text-xl font-semibold tracking-tight;\n }\n\n [data-slot=\"typography\"] > h4:not(:first-child) {\n @apply mt-8;\n }\n\n [data-slot=\"typography\"]\n > :is(h1, h2, h3, h4)\n + :is(\n [data-slot=\"typography-lead\"],\n [data-slot=\"typography-table-container\"],\n div,\n section,\n article,\n aside,\n nav,\n figure,\n details,\n p,\n blockquote,\n pre,\n ul,\n ol,\n table,\n small,\n dl,\n img,\n picture,\n video,\n iframe\n ) {\n @apply mt-4;\n }\n\n [data-slot=\"typography\"] > p {\n @apply text-base leading-7;\n }\n\n [data-slot=\"typography\"] > p:not(:first-child) {\n @apply mt-6;\n }\n\n [data-slot=\"typography\"]\n > :is(h1, h2, h3, h4)\n + :is(p, [data-slot=\"typography-lead\"]):not(:first-child) {\n @apply mt-4;\n }\n\n [data-slot=\"typography\"] > a:not([data-slot]),\n [data-slot=\"typography\"]\n > :is(p, blockquote, ul, ol, dl, table)\n a:not([data-slot]) {\n @apply text-foreground font-medium underline underline-offset-4;\n }\n\n [data-slot=\"typography\"] > blockquote {\n @apply mt-6 border-l-2 pl-6 text-base italic;\n }\n\n [data-slot=\"typography\"] > hr {\n @apply border-border my-8;\n }\n\n [data-slot=\"typography\"] > pre {\n @apply border-border bg-muted/60 overflow-x-auto rounded-xl border p-4 text-sm;\n }\n\n [data-slot=\"typography\"] > .docs-code-block {\n @apply border-border bg-muted/60 relative overflow-hidden rounded-xl border;\n }\n\n [data-slot=\"typography\"] > .docs-code-block > pre,\n [data-slot=\"typography\"] > .docs-code-block > pre.astro-code {\n @apply m-0 rounded-none border-0 !bg-transparent p-4 pr-14 text-sm leading-[var(--text-sm--line-height)];\n font-family: var(--font-mono);\n }\n\n [data-slot=\"typography\"] > .docs-code-block > pre.astro-code code {\n @apply text-sm leading-[var(--text-sm--line-height)] !text-[var(--shiki-light,var(--foreground))];\n }\n\n .dark [data-slot=\"typography\"] > .docs-code-block > pre.astro-code code {\n @apply !text-[var(--shiki-dark,var(--foreground))];\n }\n\n .dark\n [data-slot=\"typography\"]\n > .docs-code-block\n > pre.astro-code\n span[style*=\"--shiki-dark\"] {\n @apply ![font-weight:var(--shiki-dark-font-weight,inherit)] !text-[var(--shiki-dark)] ![font-style:var(--shiki-dark-font-style,inherit)] ![text-decoration:var(--shiki-dark-text-decoration,inherit)];\n }\n\n [data-slot=\"typography\"] > .docs-code-block > .docs-code-copy {\n @apply border-border bg-background text-muted-foreground hover:bg-accent hover:text-accent-foreground absolute top-3 right-3 z-10 inline-flex size-8 items-center justify-center rounded-md border shadow-sm transition-colors;\n }\n\n [data-slot=\"typography\"] > .docs-code-block svg {\n @apply size-4;\n }\n\n [data-slot=\"typography\"] > ul,\n [data-slot=\"typography\"] > ol {\n @apply my-6 ml-6 text-base;\n }\n\n [data-slot=\"typography\"] > ul {\n @apply list-disc;\n }\n\n [data-slot=\"typography\"] > ol {\n @apply list-decimal;\n }\n\n [data-slot=\"typography\"] > ul > li,\n [data-slot=\"typography\"] > ol > li {\n @apply mt-2;\n }\n\n [data-slot=\"typography\"] > [data-slot=\"typography-lead\"] {\n @apply text-muted-foreground;\n }\n\n [data-slot=\"typography\"][data-size=\"sm\"] > [data-slot=\"typography-lead\"] {\n @apply text-base;\n }\n\n [data-slot=\"typography\"] > [data-slot=\"typography-lead\"],\n [data-slot=\"typography\"][data-size=\"default\"]\n > [data-slot=\"typography-lead\"] {\n @apply text-lg;\n }\n\n [data-slot=\"typography\"][data-size=\"lg\"] > [data-slot=\"typography-lead\"] {\n @apply text-xl;\n }\n\n [data-slot=\"typography\"] > small {\n @apply block leading-none font-medium;\n }\n\n [data-slot=\"typography\"] > small {\n @apply text-sm;\n }\n\n [data-slot=\"typography\"] > table {\n @apply border-border my-6 block w-full overflow-x-auto rounded-lg border;\n border-collapse: separate;\n border-spacing: 0;\n }\n\n [data-slot=\"typography\"] > table th,\n [data-slot=\"typography\"] > table td {\n @apply border-border border-b px-4 py-2 text-left align-top whitespace-nowrap;\n }\n\n [data-slot=\"typography\"] > table th {\n @apply text-foreground bg-muted/40 font-medium;\n }\n\n [data-slot=\"typography\"] > table tr:last-child td {\n @apply border-b-0;\n }\n\n [data-slot=\"typography\"] > table thead,\n [data-slot=\"typography\"] > table tbody,\n [data-slot=\"typography\"] > table tr {\n @apply w-full;\n }\n\n [data-slot=\"typography\"] > table tr {\n @apply grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)];\n }\n\n [data-slot=\"typography\"] > table tr {\n @apply even:bg-muted/40 m-0 border-t p-0 first:border-t-0;\n }\n\n [data-slot=\"typography\"] > table th {\n @apply border-r px-4 py-2 text-left font-bold last:border-r-0;\n }\n\n [data-slot=\"typography\"] > table th[align=\"center\"] {\n @apply text-center;\n }\n\n [data-slot=\"typography\"] > table th[align=\"right\"] {\n @apply text-right;\n }\n\n [data-slot=\"typography\"] > table td {\n @apply border-r px-4 py-2 text-left last:border-r-0;\n }\n\n [data-slot=\"typography\"] > table td[align=\"center\"] {\n @apply text-center;\n }\n\n [data-slot=\"typography\"] > table td[align=\"right\"] {\n @apply text-right;\n }\n\n [data-slot=\"typography\"] > table tbody tr:last-child td {\n @apply border-b-0;\n }\n\n [data-slot=\"typography\"] :not(pre) > code {\n @apply bg-muted relative rounded px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold;\n }\n\n [data-slot=\"typography\"] > table :not(pre) > code {\n @apply rounded-md text-sm leading-5 font-normal;\n }\n\n [data-slot=\"typography\"] > pre.astro-code {\n @apply border-border !bg-muted/60 rounded-xl border p-4 text-sm leading-[var(--text-sm--line-height)];\n }\n\n [data-slot=\"typography\"] > pre.astro-code code {\n @apply !text-inherit;\n }\n\n .dark [data-slot=\"typography\"] > pre.astro-code {\n @apply !text-[var(--shiki-dark,var(--foreground))];\n }\n\n .dark [data-slot=\"typography\"] > pre.astro-code span[style*=\"--shiki-dark\"] {\n @apply ![font-weight:var(--shiki-dark-font-weight,inherit)] !text-[var(--shiki-dark)] ![font-style:var(--shiki-dark-font-style,inherit)] ![text-decoration:var(--shiki-dark-text-decoration,inherit)];\n }\n</style>\n",
9
+ "content": "---\nimport type { HTMLTag, Polymorphic } from \"astro/types\"\n\nimport \"./typeset.css\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props<Tag extends HTMLTag> = Polymorphic<{ as: Tag; size?: Size }>\n\nconst {\n as: Tag = \"div\",\n class: className,\n size = \"default\",\n ...props\n} = Astro.props\n\nconst sizeClass =\n size === \"sm\"\n ? \"[--typeset-flow:1.125em] [--typeset-leading:1.7] [--typeset-size:0.875rem]\"\n : size === \"lg\"\n ? \"[--typeset-flow:1.5em] [--typeset-leading:1.8] [--typeset-size:1.125rem]\"\n : \"[--typeset-flow:1.25em] [--typeset-leading:1.75] [--typeset-size:1rem]\"\n---\n\n<Tag\n data-slot=\"typography\"\n data-size={size}\n class={cn(\"typeset\", sizeClass, className)}\n {...props}\n>\n <slot />\n</Tag>\n",
10
10
  "type": "registry:ui"
11
11
  },
12
12
  {
13
13
  "path": "src/components/ui/typography/typography-a.astro",
14
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"a\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<a data-slot=\"typography-a\" data-size={size} class={cn(className)} {...props}>\n <slot />\n</a>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-a\"],\n [data-slot=\"typography\"] > a:not([data-slot]) {\n @apply text-primary font-medium underline underline-offset-4;\n }\n\n [data-slot=\"typography-a\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-a\"][data-size=\"default\"] {\n @apply text-base;\n }\n\n [data-slot=\"typography-a\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n</style>\n",
14
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"a\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<a\n data-slot=\"typography-a\"\n data-size={size}\n class={cn(\n \"text-primary font-medium underline underline-offset-4\",\n sizeClass,\n className\n )}\n {...props}\n>\n <slot />\n</a>\n",
15
15
  "type": "registry:ui"
16
16
  },
17
17
  {
18
18
  "path": "src/components/ui/typography/typography-blockquote.astro",
19
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"blockquote\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<blockquote\n data-slot=\"typography-blockquote\"\n data-size={size}\n class={cn(className)}\n {...props}\n>\n <slot />\n</blockquote>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-blockquote\"],\n [data-slot=\"typography\"] > blockquote {\n @apply mt-6 border-l-2 pl-6 italic;\n }\n\n [data-slot=\"typography-blockquote\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-blockquote\"][data-size=\"default\"],\n [data-slot=\"typography\"] > blockquote {\n @apply text-base;\n }\n\n [data-slot=\"typography-blockquote\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n</style>\n",
19
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"blockquote\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<blockquote\n data-slot=\"typography-blockquote\"\n data-size={size}\n class={cn(\"mt-6 border-l-2 pl-6 italic\", sizeClass, className)}\n {...props}\n>\n <slot />\n</blockquote>\n",
20
20
  "type": "registry:ui"
21
21
  },
22
22
  {
23
23
  "path": "src/components/ui/typography/typography-h1.astro",
24
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"h1\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<h1 data-slot=\"typography-h1\" data-size={size} class={cn(className)} {...props}>\n <slot />\n</h1>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-h1\"],\n [data-slot=\"typography\"] > h1 {\n @apply scroll-m-20 font-semibold tracking-tight text-balance;\n }\n\n [data-slot=\"typography-h1\"][data-size=\"sm\"],\n [data-slot=\"typography\"][data-size=\"sm\"] > h1 {\n @apply text-3xl;\n }\n\n [data-slot=\"typography-h1\"][data-size=\"default\"],\n [data-slot=\"typography\"] > h1,\n [data-slot=\"typography\"][data-size=\"default\"] > h1 {\n @apply text-4xl;\n }\n\n [data-slot=\"typography-h1\"][data-size=\"lg\"],\n [data-slot=\"typography\"][data-size=\"lg\"] > h1 {\n @apply text-5xl;\n }\n</style>\n",
24
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"h1\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-3xl\" : size === \"lg\" ? \"text-5xl\" : \"text-4xl\"\n---\n\n<h1\n data-slot=\"typography-h1\"\n data-size={size}\n class={cn(\n \"scroll-m-20 font-semibold tracking-tight text-balance\",\n sizeClass,\n className\n )}\n {...props}\n>\n <slot />\n</h1>\n",
25
25
  "type": "registry:ui"
26
26
  },
27
27
  {
28
28
  "path": "src/components/ui/typography/typography-h2.astro",
29
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"h2\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<h2 data-slot=\"typography-h2\" data-size={size} class={cn(className)} {...props}>\n <slot />\n</h2>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-h2\"],\n [data-slot=\"typography\"] > h2 {\n @apply scroll-m-20 font-semibold tracking-tight;\n }\n\n [data-slot=\"typography-h2\"][data-size=\"sm\"],\n [data-slot=\"typography\"][data-size=\"sm\"] > h2 {\n @apply text-2xl;\n }\n\n [data-slot=\"typography-h2\"][data-size=\"default\"],\n [data-slot=\"typography\"] > h2,\n [data-slot=\"typography\"][data-size=\"default\"] > h2 {\n @apply text-3xl;\n }\n\n [data-slot=\"typography-h2\"][data-size=\"lg\"],\n [data-slot=\"typography\"][data-size=\"lg\"] > h2 {\n @apply text-4xl;\n }\n\n [data-slot=\"typography-h2\"]:first-child,\n [data-slot=\"typography\"] > h2:first-child {\n @apply mt-0;\n }\n</style>\n",
29
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"h2\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-2xl\" : size === \"lg\" ? \"text-4xl\" : \"text-3xl\"\n---\n\n<h2\n data-slot=\"typography-h2\"\n data-size={size}\n class={cn(\n \"scroll-m-20 font-semibold tracking-tight first:mt-0\",\n sizeClass,\n className\n )}\n {...props}\n>\n <slot />\n</h2>\n",
30
30
  "type": "registry:ui"
31
31
  },
32
32
  {
33
33
  "path": "src/components/ui/typography/typography-h3.astro",
34
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"h3\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<h3 data-slot=\"typography-h3\" data-size={size} class={cn(className)} {...props}>\n <slot />\n</h3>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-h3\"],\n [data-slot=\"typography\"] > h3 {\n @apply scroll-m-20 font-semibold tracking-tight;\n }\n\n [data-slot=\"typography-h3\"][data-size=\"sm\"],\n [data-slot=\"typography\"][data-size=\"sm\"] > h3 {\n @apply text-xl;\n }\n\n [data-slot=\"typography-h3\"][data-size=\"default\"],\n [data-slot=\"typography\"] > h3,\n [data-slot=\"typography\"][data-size=\"default\"] > h3 {\n @apply text-2xl;\n }\n\n [data-slot=\"typography-h3\"][data-size=\"lg\"],\n [data-slot=\"typography\"][data-size=\"lg\"] > h3 {\n @apply text-3xl;\n }\n</style>\n",
34
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"h3\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-xl\" : size === \"lg\" ? \"text-3xl\" : \"text-2xl\"\n---\n\n<h3\n data-slot=\"typography-h3\"\n data-size={size}\n class={cn(\"scroll-m-20 font-semibold tracking-tight\", sizeClass, className)}\n {...props}\n>\n <slot />\n</h3>\n",
35
35
  "type": "registry:ui"
36
36
  },
37
37
  {
38
38
  "path": "src/components/ui/typography/typography-h4.astro",
39
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"h4\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<h4 data-slot=\"typography-h4\" data-size={size} class={cn(className)} {...props}>\n <slot />\n</h4>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-h4\"],\n [data-slot=\"typography\"] > h4 {\n @apply scroll-m-20 font-semibold tracking-tight;\n }\n\n [data-slot=\"typography-h4\"][data-size=\"sm\"],\n [data-slot=\"typography\"][data-size=\"sm\"] > h4 {\n @apply text-lg;\n }\n\n [data-slot=\"typography-h4\"][data-size=\"default\"],\n [data-slot=\"typography\"] > h4,\n [data-slot=\"typography\"][data-size=\"default\"] > h4 {\n @apply text-xl;\n }\n\n [data-slot=\"typography-h4\"][data-size=\"lg\"],\n [data-slot=\"typography\"][data-size=\"lg\"] > h4 {\n @apply text-2xl;\n }\n</style>\n",
39
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"h4\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-lg\" : size === \"lg\" ? \"text-2xl\" : \"text-xl\"\n---\n\n<h4\n data-slot=\"typography-h4\"\n data-size={size}\n class={cn(\"scroll-m-20 font-semibold tracking-tight\", sizeClass, className)}\n {...props}\n>\n <slot />\n</h4>\n",
40
40
  "type": "registry:ui"
41
41
  },
42
42
  {
43
43
  "path": "src/components/ui/typography/typography-inline-code.astro",
44
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"code\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<code\n data-slot=\"typography-inline-code\"\n data-size={size}\n class={cn(className)}\n {...props}\n>\n <slot />\n</code>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-inline-code\"],\n [data-slot=\"typography\"] :not(pre) > code {\n @apply bg-muted relative rounded px-[0.3rem] py-[0.2rem] font-mono font-semibold;\n }\n\n [data-slot=\"typography-inline-code\"][data-size=\"sm\"] {\n @apply text-xs;\n }\n\n [data-slot=\"typography-inline-code\"][data-size=\"default\"],\n [data-slot=\"typography\"] :not(pre) > code {\n @apply text-sm;\n }\n\n [data-slot=\"typography-inline-code\"][data-size=\"lg\"] {\n @apply text-base;\n }\n\n [data-slot=\"typography\"] > table :not(pre) > code {\n @apply rounded-md text-sm leading-5 font-normal;\n }\n</style>\n",
44
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"code\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-xs\" : size === \"lg\" ? \"text-base\" : \"text-sm\"\n---\n\n<code\n data-slot=\"typography-inline-code\"\n data-size={size}\n class={cn(\n \"bg-muted relative rounded px-[0.3rem] py-[0.2rem] font-mono font-semibold\",\n sizeClass,\n className\n )}\n {...props}\n>\n <slot />\n</code>\n",
45
45
  "type": "registry:ui"
46
46
  },
47
47
  {
48
48
  "path": "src/components/ui/typography/typography-lead.astro",
49
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"p\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<p\n data-slot=\"typography-lead\"\n data-size={size}\n class={cn(className)}\n {...props}\n>\n <slot />\n</p>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-lead\"] {\n @apply text-muted-foreground;\n }\n\n [data-slot=\"typography-lead\"][data-size=\"sm\"],\n [data-slot=\"typography\"][data-size=\"sm\"] > [data-slot=\"typography-lead\"] {\n @apply text-base;\n }\n\n [data-slot=\"typography-lead\"][data-size=\"default\"],\n [data-slot=\"typography\"] > [data-slot=\"typography-lead\"],\n [data-slot=\"typography\"][data-size=\"default\"]\n > [data-slot=\"typography-lead\"] {\n @apply text-lg;\n }\n\n [data-slot=\"typography-lead\"][data-size=\"lg\"],\n [data-slot=\"typography\"][data-size=\"lg\"] > [data-slot=\"typography-lead\"] {\n @apply text-xl;\n }\n</style>\n",
49
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"p\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-base\" : size === \"lg\" ? \"text-xl\" : \"text-lg\"\n---\n\n<p\n data-slot=\"typography-lead\"\n data-size={size}\n class={cn(\"text-muted-foreground\", sizeClass, className)}\n {...props}\n>\n <slot />\n</p>\n",
50
50
  "type": "registry:ui"
51
51
  },
52
52
  {
53
53
  "path": "src/components/ui/typography/typography-list.astro",
54
- "content": "---\nimport type { HTMLTag, Polymorphic } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props<Tag extends \"ul\" | \"ol\"> = Polymorphic<{ as: Tag; size?: Size }>\n\nconst {\n as: Tag = \"ul\",\n class: className,\n size = \"default\",\n ...props\n} = Astro.props\n---\n\n<Tag\n data-slot=\"typography-list\"\n data-size={size}\n data-ordered={Tag === \"ol\" ? \"\" : undefined}\n class={cn(className)}\n {...props}\n>\n <slot />\n</Tag>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-list\"],\n [data-slot=\"typography\"] > ul,\n [data-slot=\"typography\"] > ol {\n @apply my-6 ml-6;\n }\n\n [data-slot=\"typography-list\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-list\"][data-size=\"default\"],\n [data-slot=\"typography\"] > ul,\n [data-slot=\"typography\"] > ol {\n @apply text-base;\n }\n\n [data-slot=\"typography-list\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n\n [data-slot=\"typography-list\"]:not([data-ordered]),\n [data-slot=\"typography\"] > ul {\n @apply list-disc;\n }\n\n [data-slot=\"typography-list\"][data-ordered],\n [data-slot=\"typography\"] > ol {\n @apply list-decimal;\n }\n\n [data-slot=\"typography-list\"] > li {\n @apply mt-2;\n }\n</style>\n",
54
+ "content": "---\nimport type { Polymorphic } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props<Tag extends \"ul\" | \"ol\"> = Polymorphic<{ as: Tag; size?: Size }>\n\nconst {\n as: Tag = \"ul\",\n class: className,\n size = \"default\",\n ...props\n} = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<Tag\n data-slot=\"typography-list\"\n data-size={size}\n data-ordered={Tag === \"ol\" ? \"\" : undefined}\n class={cn(\n \"my-6 ml-6\",\n Tag === \"ol\" ? \"list-decimal\" : \"list-disc\",\n sizeClass,\n className\n )}\n {...props}\n>\n <slot />\n</Tag>\n",
55
55
  "type": "registry:ui"
56
56
  },
57
57
  {
58
58
  "path": "src/components/ui/typography/typography-list-item.astro",
59
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"li\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<li\n data-slot=\"typography-list-item\"\n data-size={size}\n class={cn(className)}\n {...props}\n>\n <slot />\n</li>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-list-item\"],\n [data-slot=\"typography-list\"] > li,\n [data-slot=\"typography\"] > ul > li,\n [data-slot=\"typography\"] > ol > li {\n @apply mt-2;\n }\n\n [data-slot=\"typography-list-item\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-list-item\"][data-size=\"default\"] {\n @apply text-base;\n }\n\n [data-slot=\"typography-list-item\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n</style>\n",
59
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"li\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<li\n data-slot=\"typography-list-item\"\n data-size={size}\n class={cn(\"mt-2\", sizeClass, className)}\n {...props}\n>\n <slot />\n</li>\n",
60
60
  "type": "registry:ui"
61
61
  },
62
62
  {
63
63
  "path": "src/components/ui/typography/typography-p.astro",
64
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"p\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<p data-slot=\"typography-p\" data-size={size} class={cn(className)} {...props}>\n <slot />\n</p>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-p\"],\n [data-slot=\"typography\"] > p {\n @apply leading-7;\n }\n\n [data-slot=\"typography-p\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-p\"][data-size=\"default\"],\n [data-slot=\"typography\"] > p {\n @apply text-base;\n }\n\n [data-slot=\"typography-p\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n\n [data-slot=\"typography-p\"]:not(:first-child),\n [data-slot=\"typography\"] > p:not(:first-child) {\n @apply mt-6;\n }\n</style>\n",
64
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"p\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<p\n data-slot=\"typography-p\"\n data-size={size}\n class={cn(\"leading-7 [&:not(:first-child)]:mt-6\", sizeClass, className)}\n {...props}\n>\n <slot />\n</p>\n",
65
65
  "type": "registry:ui"
66
66
  },
67
67
  {
68
68
  "path": "src/components/ui/typography/typography-table.astro",
69
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"table\"> & {\n containerClass?: string\n size?: Size\n}\n\nconst {\n class: className,\n containerClass,\n size = \"default\",\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"typography-table-container\"\n data-size={size}\n class={cn(containerClass)}\n>\n <table\n data-slot=\"typography-table\"\n data-size={size}\n class={cn(className)}\n {...props}\n >\n <slot />\n </table>\n</div>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-table-container\"] {\n @apply border-border my-6 w-full overflow-y-auto rounded-xl border;\n }\n\n [data-slot=\"typography-table\"],\n [data-slot=\"typography\"] > table {\n @apply w-full border-collapse;\n }\n\n [data-slot=\"typography-table\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-table\"][data-size=\"default\"],\n [data-slot=\"typography\"] > table {\n @apply text-base;\n }\n\n [data-slot=\"typography-table\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n</style>\n",
69
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"table\"> & {\n containerClass?: string\n size?: Size\n}\n\nconst {\n class: className,\n containerClass,\n size = \"default\",\n ...props\n} = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<div\n data-slot=\"typography-table-container\"\n data-size={size}\n class={cn(\n \"border-border my-6 w-full overflow-x-auto rounded-xl border\",\n containerClass\n )}\n>\n <table\n data-slot=\"typography-table\"\n data-size={size}\n class={cn(\"w-full border-collapse\", sizeClass, className)}\n {...props}\n >\n <slot />\n </table>\n</div>\n",
70
70
  "type": "registry:ui"
71
71
  },
72
72
  {
73
73
  "path": "src/components/ui/typography/typography-table-row.astro",
74
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"tr\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<tr\n data-slot=\"typography-table-row\"\n data-size={size}\n class={cn(className)}\n {...props}\n>\n <slot />\n</tr>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-table-row\"],\n [data-slot=\"typography-table\"] tr,\n [data-slot=\"typography\"] > table tr {\n @apply even:bg-muted m-0 border-t p-0;\n }\n\n [data-slot=\"typography-table-row\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-table-row\"][data-size=\"default\"] {\n @apply text-base;\n }\n\n [data-slot=\"typography-table-row\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n</style>\n",
74
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"tr\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<tr\n data-slot=\"typography-table-row\"\n data-size={size}\n class={cn(\"even:bg-muted m-0 border-t p-0\", sizeClass, className)}\n {...props}\n>\n <slot />\n</tr>\n",
75
75
  "type": "registry:ui"
76
76
  },
77
77
  {
78
78
  "path": "src/components/ui/typography/typography-table-head.astro",
79
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"th\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<th\n data-slot=\"typography-table-head\"\n data-size={size}\n class={cn(className)}\n {...props}\n>\n <slot />\n</th>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-table-head\"],\n [data-slot=\"typography-table\"] th,\n [data-slot=\"typography\"] > table th {\n @apply border-border border-b px-4 py-3 text-left font-semibold;\n }\n\n [data-slot=\"typography-table-head\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-table-head\"][data-size=\"default\"] {\n @apply text-base;\n }\n\n [data-slot=\"typography-table-head\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n\n [data-slot=\"typography-table-head\"][align=\"center\"],\n [data-slot=\"typography-table\"] th[align=\"center\"],\n [data-slot=\"typography\"] > table th[align=\"center\"] {\n @apply text-center;\n }\n\n [data-slot=\"typography-table-head\"][align=\"right\"],\n [data-slot=\"typography-table\"] th[align=\"right\"],\n [data-slot=\"typography\"] > table th[align=\"right\"] {\n @apply text-right;\n }\n</style>\n",
79
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"th\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<th\n data-slot=\"typography-table-head\"\n data-size={size}\n class={cn(\n \"border-border border-b px-4 py-3 text-left font-semibold\",\n \"[&[align=center]]:text-center [&[align=right]]:text-right\",\n sizeClass,\n className\n )}\n {...props}\n>\n <slot />\n</th>\n",
80
80
  "type": "registry:ui"
81
81
  },
82
82
  {
83
83
  "path": "src/components/ui/typography/typography-table-cell.astro",
84
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"td\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n<td\n data-slot=\"typography-table-cell\"\n data-size={size}\n class={cn(className)}\n {...props}\n>\n <slot />\n</td>\n\n<style is:global>\n @reference \"@/styles/global.css\";\n\n [data-slot=\"typography-table-cell\"],\n [data-slot=\"typography-table\"] td,\n [data-slot=\"typography\"] > table td {\n @apply border-border border-t px-4 py-3 text-left align-middle;\n }\n\n [data-slot=\"typography-table-cell\"][data-size=\"sm\"] {\n @apply text-sm;\n }\n\n [data-slot=\"typography-table-cell\"][data-size=\"default\"] {\n @apply text-base;\n }\n\n [data-slot=\"typography-table-cell\"][data-size=\"lg\"] {\n @apply text-lg;\n }\n\n [data-slot=\"typography-table\"] tbody tr:last-child td,\n [data-slot=\"typography\"] > table tbody tr:last-child td {\n @apply border-b-0;\n }\n\n [data-slot=\"typography-table-cell\"][align=\"center\"],\n [data-slot=\"typography-table\"] td[align=\"center\"],\n [data-slot=\"typography\"] > table td[align=\"center\"] {\n @apply text-center;\n }\n\n [data-slot=\"typography-table-cell\"][align=\"right\"],\n [data-slot=\"typography-table\"] td[align=\"right\"],\n [data-slot=\"typography\"] > table td[align=\"right\"] {\n @apply text-right;\n }\n</style>\n",
84
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Size = \"sm\" | \"default\" | \"lg\"\ntype Props = HTMLAttributes<\"td\"> & {\n size?: Size\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n\nconst sizeClass =\n size === \"sm\" ? \"text-sm\" : size === \"lg\" ? \"text-lg\" : \"text-base\"\n---\n\n<td\n data-slot=\"typography-table-cell\"\n data-size={size}\n class={cn(\n \"border-border border-t px-4 py-3 text-left align-middle\",\n \"[&[align=center]]:text-center [&[align=right]]:text-right\",\n sizeClass,\n className\n )}\n {...props}\n>\n <slot />\n</td>\n",
85
85
  "type": "registry:ui"
86
86
  },
87
87
  {
88
88
  "path": "src/components/ui/typography/index.ts",
89
89
  "content": "export { default as Typography } from \"./typography.astro\"\nexport { default as TypographyA } from \"./typography-a.astro\"\nexport { default as TypographyBlockquote } from \"./typography-blockquote.astro\"\nexport { default as TypographyH1 } from \"./typography-h1.astro\"\nexport { default as TypographyH2 } from \"./typography-h2.astro\"\nexport { default as TypographyH3 } from \"./typography-h3.astro\"\nexport { default as TypographyH4 } from \"./typography-h4.astro\"\nexport { default as TypographyInlineCode } from \"./typography-inline-code.astro\"\nexport { default as TypographyLead } from \"./typography-lead.astro\"\nexport { default as TypographyList } from \"./typography-list.astro\"\nexport { default as TypographyListItem } from \"./typography-list-item.astro\"\nexport { default as TypographyP } from \"./typography-p.astro\"\nexport { default as TypographyTable } from \"./typography-table.astro\"\nexport { default as TypographyTableCell } from \"./typography-table-cell.astro\"\nexport { default as TypographyTableHead } from \"./typography-table-head.astro\"\nexport { default as TypographyTableRow } from \"./typography-table-row.astro\"\n",
90
90
  "type": "registry:ui"
91
+ },
92
+ {
93
+ "path": "src/components/ui/typography/typeset.css",
94
+ "content": "/*\n * shadcn/typeset\n * https://ui.shadcn.com/docs/typeset.\n */\n\n@layer components {\n .typeset {\n --typeset-font-body: inherit;\n --typeset-font-heading: var(--font-heading);\n --typeset-font-mono: var(--font-mono);\n --typeset-size: 1em;\n --typeset-leading: 1.75;\n --typeset-flow: 1.25em;\n }\n}\n\n@layer components {\n .typeset {\n font-family: var(--typeset-font-body);\n font-size: calc(var(--typeset-size) * 1.125);\n line-height: var(--typeset-leading);\n color: var(--color-foreground, currentColor);\n overflow-wrap: break-word;\n margin-trim: block-start;\n\n @media (min-width: 48rem), print {\n font-size: var(--typeset-size);\n }\n\n --typeset-muted: var(\n --color-muted-foreground,\n color-mix(in oklab, currentColor 60%, transparent)\n );\n --typeset-rule: var(\n --color-border,\n color-mix(in oklab, currentColor 20%, transparent)\n );\n }\n\n .typeset\n *:not(\n :where(\n .not-typeset,\n [data-not-typeset],\n .not-typeset *,\n [data-not-typeset] *\n )\n ) {\n &:where(p) {\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n }\n &:where(h1, h2, h3, h4, h5, h6) {\n color: var(--color-foreground, currentColor);\n font-family: var(--typeset-font-heading);\n font-weight: 600;\n margin-block-end: 0;\n }\n &:where(h1) {\n font-size: 1.75em;\n line-height: 1.3;\n margin-block-start: var(--typeset-flow);\n }\n &:where(h2) {\n font-size: 1.25em;\n line-height: 1.4;\n margin-block-start: calc(var(--typeset-flow) * 1.4);\n }\n &:where(h3) {\n font-size: 1.125em;\n line-height: 1.45;\n margin-block-start: var(--typeset-flow);\n }\n &:where(h4) {\n font-size: 1em;\n line-height: 1.5;\n margin-block-start: var(--typeset-flow);\n }\n &:where(h5) {\n font-size: 0.875em;\n line-height: 1.5;\n font-weight: 500;\n color: var(--typeset-muted);\n margin-block-start: calc(var(--typeset-flow) / 0.875);\n }\n &:where(h6) {\n font-size: 0.8125em;\n line-height: 1.5;\n font-weight: 500;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--typeset-muted);\n margin-block-start: calc(var(--typeset-flow) / 0.8125);\n }\n &:where([id]) {\n scroll-margin-block-start: var(--typeset-flow);\n }\n &:where(h1 + *, h2 + *, h3 + *, h4 + *, h5 + *, h6 + *) {\n margin-block-start: 1em;\n }\n &:where(:is(h1, h2, h3, h4) :is(code)) {\n font-size: 0.9em;\n }\n &:where(a) {\n color: inherit;\n font-weight: 500;\n text-decoration-line: underline;\n text-decoration-color: color-mix(in oklab, currentColor 30%, transparent);\n }\n &:where(a:hover) {\n text-decoration-color: currentColor;\n }\n &:where(a:focus-visible) {\n outline: 2px solid var(--color-ring, currentColor);\n outline-offset: 2px;\n border-radius: 0.125em;\n }\n &:where(:is(h1, h2, h3, h4, h5, h6) :is(a)) {\n font-weight: inherit;\n }\n &:where(strong, b) {\n font-weight: 600;\n }\n &:where(:is(h1, h2, h3, h4) :is(strong, b)) {\n font-weight: 600;\n }\n &:where(mark) {\n background-color: color-mix(\n in oklab,\n oklch(0.86 0.17 95) 40%,\n transparent\n );\n color: inherit;\n padding: 0.05em 0.15em;\n border-radius: 0.2em;\n }\n &:where(abbr[title]) {\n text-decoration-line: underline;\n text-decoration-style: dotted;\n text-underline-offset: 0.2em;\n cursor: help;\n }\n &:where(del, s) {\n color: var(--typeset-muted);\n text-decoration-line: line-through;\n }\n &:where(sup, sub) {\n font-size: 0.75em;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n &:where(sup) {\n top: -0.5em;\n }\n &:where(sub) {\n bottom: -0.25em;\n }\n &:where(sup a) {\n text-decoration-line: none;\n font-weight: 500;\n }\n &:where(ul) {\n list-style-type: disc;\n }\n &:where(ol) {\n list-style-type: decimal;\n }\n &:where(ul ul) {\n list-style-type: circle;\n }\n &:where(ul ul ul) {\n list-style-type: square;\n }\n &:where(ol[type=\"a\" i]) {\n list-style-type: lower-alpha;\n }\n &:where(ol[type=\"i\" i]) {\n list-style-type: lower-roman;\n }\n &:where(ol[type=\"A\" s]) {\n list-style-type: upper-alpha;\n }\n &:where(ol[type=\"I\" s]) {\n list-style-type: upper-roman;\n }\n &:where(ul, ol) {\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n padding-inline-start: 1.5em;\n }\n &:where(li) {\n margin-block-start: 0.5em;\n padding-inline-start: 0.4em;\n }\n &:where(li > p, li > ul, li > ol) {\n margin-block-start: 0.5em;\n }\n &:where(ul > li)::marker,\n &:where(ol > li)::marker {\n color: var(--typeset-muted);\n }\n &:where(ul.contains-task-list) {\n list-style-type: none;\n padding-inline-start: 0.25em;\n }\n &:where(li.task-list-item > input[type=\"checkbox\"]) {\n margin-inline-end: 0.5em;\n vertical-align: -0.1em;\n accent-color: var(--color-primary, currentColor);\n }\n &:where(details) {\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n }\n &:where(summary) {\n cursor: pointer;\n font-weight: 500;\n }\n &:where(summary)::marker {\n color: var(--typeset-muted);\n }\n &:where(kbd) {\n font-family: inherit;\n font-size: 0.85em;\n font-weight: 500;\n border: 1px solid var(--typeset-rule);\n border-block-end-width: 2px;\n border-radius: min(calc(var(--radius, 0.5em) * 0.6), 0.35em);\n padding: 0.0625em 0.35em;\n }\n &:where(dl) {\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n }\n &:where(dt) {\n font-weight: 500;\n margin-block-start: 1em;\n }\n &:where(dt + dt) {\n margin-block-start: 0.25em;\n }\n &:where(dd) {\n margin-block-start: 0.25em;\n margin-inline-start: 0;\n padding-inline-start: 1em;\n color: var(--typeset-muted);\n }\n &:where(:not(pre) > code) {\n background-color: var(\n --color-muted,\n color-mix(in oklab, currentColor 8%, transparent)\n );\n font-family: var(--typeset-font-mono);\n font-size: 0.85em;\n border-radius: min(calc(var(--radius, 0.5em) * 0.6), 0.35em);\n padding: 0.125em 0.3em;\n }\n &:where(pre) {\n background-color: var(\n --color-muted,\n color-mix(in oklab, currentColor 8%, transparent)\n );\n font-family: var(--typeset-font-mono);\n font-size: 0.875em;\n line-height: 1.5;\n tab-size: 2;\n direction: ltr;\n border-radius: var(--radius, 0.5em);\n padding: 0.75em 1em;\n overflow-x: auto;\n margin-block-start: calc(var(--typeset-flow) / 0.875);\n margin-block-end: 0;\n }\n &:where(pre code) {\n background-color: transparent;\n font-family: inherit;\n font-size: inherit;\n padding: 0;\n border-radius: 0;\n }\n &:where(blockquote) {\n border-inline-start: 2px solid var(--typeset-rule);\n padding-inline-start: 1em;\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n margin-inline: 0;\n }\n &:where(hr) {\n border: 0;\n border-block-start: 1px solid var(--typeset-rule);\n margin-block-start: calc(var(--typeset-flow) * 2.4);\n margin-block-end: 0;\n }\n &:where(hr + h1, hr + h2, hr + h3, hr + h4) {\n margin-block-start: var(--typeset-flow);\n }\n &:where(.footnotes, [data-footnotes]) {\n margin-block-start: calc(var(--typeset-flow) * 2);\n border-block-start: 1px solid var(--typeset-rule);\n padding-block-start: var(--typeset-flow);\n font-size: 0.875em;\n color: var(--typeset-muted);\n }\n &:where(math[display=\"block\"]) {\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n overflow-x: auto;\n overflow-y: hidden;\n padding-block: 0.25em;\n }\n &:where(img, video) {\n border-radius: var(--radius, 0.5em);\n max-width: 100%;\n height: auto;\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n }\n &:where(p img) {\n margin-block-start: 0;\n }\n &:where(figure) {\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n margin-inline: 0;\n }\n &:where(figcaption, caption) {\n color: var(--typeset-muted);\n font-size: 0.875em;\n text-align: center;\n margin-block-start: calc(0.75em / 0.875);\n }\n &:where(caption) {\n caption-side: bottom;\n }\n &:where(table) {\n max-width: 100%;\n font-size: 1em;\n line-height: 1.5;\n font-variant-numeric: tabular-nums;\n border-collapse: separate;\n border-spacing: 0;\n border-block-end: 1px solid var(--typeset-rule);\n margin-block-start: var(--typeset-flow);\n margin-block-end: 0;\n }\n &:where(.typeset-scroll) {\n overflow-x: auto;\n margin-block-start: var(--typeset-flow);\n }\n &:where(.typeset-scroll > *) {\n margin-block-start: 0;\n }\n &:where(.typeset-scroll table) {\n width: max-content;\n max-width: none;\n }\n &:where(thead th) {\n font-weight: 500;\n text-align: start;\n white-space: nowrap;\n padding: 0.65em 1em;\n }\n &:where(:is(tbody, tfoot) :is(td, th)) {\n padding: 0.75em 1em;\n text-align: start;\n vertical-align: top;\n border-block-start: 1px solid var(--typeset-rule);\n }\n &:where(tbody th, tfoot th) {\n font-weight: 500;\n }\n &:where(th:first-child, td:first-child) {\n padding-inline-start: 0;\n }\n &:where(th[align=\"center\"], td[align=\"center\"]) {\n text-align: center;\n }\n &:where(th[align=\"right\"], td[align=\"right\"]) {\n text-align: end;\n }\n &:where(li > blockquote, li > table, li > figure) {\n margin-block-start: 0.5em;\n }\n &:where(li > pre) {\n margin-block-start: calc(0.5em / 0.875);\n }\n @media print {\n &:where(pre, table, blockquote, figure) {\n break-inside: avoid;\n }\n &:where(h1, h2, h3, h4) {\n break-after: avoid;\n }\n }\n @media (forced-colors: active) {\n &:where(:not(pre) > code) {\n border: 1px solid;\n }\n }\n }\n\n .typeset\n > :where(:first-child):not(\n :where(\n .not-typeset,\n [data-not-typeset],\n .not-typeset *,\n [data-not-typeset] *\n )\n ),\n .typeset\n > :where(:first-child)\n > :where(:first-child):not(\n :where(\n .not-typeset,\n [data-not-typeset],\n .not-typeset *,\n [data-not-typeset] *\n )\n ),\n .typeset\n :where(\n li > :first-child,\n blockquote > :first-child,\n td > :first-child,\n th > :first-child,\n dd > :first-child,\n figure > :first-child,\n figure > picture > img\n ):not(\n :where(\n .not-typeset,\n [data-not-typeset],\n .not-typeset *,\n [data-not-typeset] *\n )\n ) {\n margin-block-start: 0;\n }\n}\n",
95
+ "type": "registry:ui"
91
96
  }
92
97
  ],
93
98
  "docs": "https://ui.full.dev/components/typography/",
@@ -115,6 +115,8 @@
115
115
  }
116
116
 
117
117
  @theme inline {
118
+ --font-heading: var(--font-sans);
119
+
118
120
  --color-background: var(--background);
119
121
  --color-foreground: var(--foreground);
120
122
  --color-card: var(--card);