singularity-components 0.1.195 → 0.1.196
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.
- package/dist/components/blocks/badges/category-badge.d.ts +11 -0
- package/dist/components/blocks/badges/category-badge.js +34 -0
- package/dist/components/blocks/badges/category-badge.js.map +1 -0
- package/dist/components/blocks/cards/blogpost-card.d.ts +3 -1
- package/dist/components/blocks/cards/blogpost-card.js +9 -4
- package/dist/components/blocks/cards/blogpost-card.js.map +1 -1
- package/dist/components/blocks/directory/author-card.d.ts +10 -0
- package/dist/components/blocks/directory/author-card.js +50 -0
- package/dist/components/blocks/directory/author-card.js.map +1 -0
- package/dist/components/blocks/directory/category-card.d.ts +10 -0
- package/dist/components/blocks/directory/category-card.js +26 -0
- package/dist/components/blocks/directory/category-card.js.map +1 -0
- package/dist/components/blocks/extras/extras-hub-card.d.ts +16 -0
- package/dist/components/blocks/extras/extras-hub-card.js +21 -0
- package/dist/components/blocks/extras/extras-hub-card.js.map +1 -0
- package/dist/components/blocks/gallery/image-gallery.d.ts +14 -0
- package/dist/components/blocks/gallery/image-gallery.js +211 -0
- package/dist/components/blocks/gallery/image-gallery.js.map +1 -0
- package/dist/components/blocks/index.d.ts +11 -0
- package/dist/components/blocks/index.js +10 -0
- package/dist/components/blocks/index.js.map +1 -1
- package/dist/components/blocks/loading/loading-skeletons.d.ts +15 -0
- package/dist/components/blocks/loading/loading-skeletons.js +78 -0
- package/dist/components/blocks/loading/loading-skeletons.js.map +1 -0
- package/dist/components/blocks/marketing/page-hero.d.ts +13 -0
- package/dist/components/blocks/marketing/page-hero.js +37 -0
- package/dist/components/blocks/marketing/page-hero.js.map +1 -0
- package/dist/components/blocks/marketing/stats-grid.d.ts +16 -0
- package/dist/components/blocks/marketing/stats-grid.js +30 -0
- package/dist/components/blocks/marketing/stats-grid.js.map +1 -0
- package/dist/components/blocks/marketing/timeline.d.ts +17 -0
- package/dist/components/blocks/marketing/timeline.js +45 -0
- package/dist/components/blocks/marketing/timeline.js.map +1 -0
- package/dist/components/blocks/marketing/values-grid.d.ts +16 -0
- package/dist/components/blocks/marketing/values-grid.js +29 -0
- package/dist/components/blocks/marketing/values-grid.js.map +1 -0
- package/dist/components/index.d.ts +28 -1
- package/dist/components/pages/about/about-page.d.ts +5 -0
- package/dist/components/pages/about/about-page.js +161 -0
- package/dist/components/pages/about/about-page.js.map +1 -0
- package/dist/components/pages/admin/admin-page.js +4 -1
- package/dist/components/pages/admin/admin-page.js.map +1 -1
- package/dist/components/pages/author/author-page.d.ts +8 -0
- package/dist/components/pages/author/author-page.js +107 -0
- package/dist/components/pages/author/author-page.js.map +1 -0
- package/dist/components/pages/authors/authors-page.d.ts +5 -0
- package/dist/components/pages/authors/authors-page.js +25 -0
- package/dist/components/pages/authors/authors-page.js.map +1 -0
- package/dist/components/pages/blogpost/blogpost.d.ts +4 -1
- package/dist/components/pages/blogpost/blogpost.js +38 -18
- package/dist/components/pages/blogpost/blogpost.js.map +1 -1
- package/dist/components/pages/categories/categories-page.d.ts +5 -0
- package/dist/components/pages/categories/categories-page.js +33 -0
- package/dist/components/pages/categories/categories-page.js.map +1 -0
- package/dist/components/pages/category/category-page.js +3 -1
- package/dist/components/pages/category/category-page.js.map +1 -1
- package/dist/components/pages/contact/contact-page.d.ts +5 -0
- package/dist/components/pages/contact/contact-page.js +173 -0
- package/dist/components/pages/contact/contact-page.js.map +1 -0
- package/dist/components/pages/content-blocks/content-blocks-page.d.ts +5 -0
- package/dist/components/pages/content-blocks/content-blocks-page.js +86 -0
- package/dist/components/pages/content-blocks/content-blocks-page.js.map +1 -0
- package/dist/components/pages/extras/extras-hub-page.d.ts +10 -0
- package/dist/components/pages/extras/extras-hub-page.js +110 -0
- package/dist/components/pages/extras/extras-hub-page.js.map +1 -0
- package/dist/components/pages/index.d.ts +14 -0
- package/dist/components/pages/index.js +12 -0
- package/dist/components/pages/index.js.map +1 -1
- package/dist/components/pages/membership/membership-page.d.ts +5 -0
- package/dist/components/pages/membership/membership-page.js +131 -0
- package/dist/components/pages/membership/membership-page.js.map +1 -0
- package/dist/components/pages/mosaic/mosaic-page.d.ts +5 -0
- package/dist/components/pages/mosaic/mosaic-page.js +81 -0
- package/dist/components/pages/mosaic/mosaic-page.js.map +1 -0
- package/dist/components/pages/newsletter/newsletter-page.d.ts +5 -0
- package/dist/components/pages/newsletter/newsletter-page.js +148 -0
- package/dist/components/pages/newsletter/newsletter-page.js.map +1 -0
- package/dist/components/pages/resources/resources-page.d.ts +5 -0
- package/dist/components/pages/resources/resources-page.js +24 -0
- package/dist/components/pages/resources/resources-page.js.map +1 -0
- package/dist/components/pages/startpage/startpage.js +6 -4
- package/dist/components/pages/startpage/startpage.js.map +1 -1
- package/dist/components/primitives/accordion/accordion.js +14 -16
- package/dist/components/primitives/accordion/accordion.js.map +1 -1
- package/dist/components/primitives/badge/badge.js +1 -1
- package/dist/components/primitives/badge/badge.js.map +1 -1
- package/dist/components/primitives/buttons/button.d.ts +2 -2
- package/dist/components/primitives/buttons/icon-button.d.ts +1 -1
- package/dist/components/primitives/collapsible/collapsible.js +4 -1
- package/dist/components/primitives/collapsible/collapsible.js.map +1 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu.js +6 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/primitives/forms/checkbox.js +1 -1
- package/dist/components/primitives/forms/checkbox.js.map +1 -1
- package/dist/components/primitives/forms/field.d.ts +4 -2
- package/dist/components/primitives/forms/field.js +4 -2
- package/dist/components/primitives/forms/field.js.map +1 -1
- package/dist/components/primitives/forms/form-control.d.ts +28 -0
- package/dist/components/primitives/forms/form-control.js +40 -0
- package/dist/components/primitives/forms/form-control.js.map +1 -0
- package/dist/components/primitives/forms/form.d.ts +12 -0
- package/dist/components/primitives/forms/form.js +30 -0
- package/dist/components/primitives/forms/form.js.map +1 -0
- package/dist/components/primitives/forms/select.js +12 -12
- package/dist/components/primitives/forms/select.js.map +1 -1
- package/dist/components/primitives/icon/icon.d.ts +3 -2
- package/dist/components/primitives/icon/icon.js +2 -1
- package/dist/components/primitives/icon/icon.js.map +1 -1
- package/dist/components/primitives/index.d.ts +4 -0
- package/dist/components/primitives/index.js +3 -0
- package/dist/components/primitives/index.js.map +1 -1
- package/dist/components/primitives/layout/layout.d.ts +1 -1
- package/dist/components/primitives/link/link.d.ts +2 -2
- package/dist/components/primitives/sheet/sheet.js +1 -1
- package/dist/components/primitives/sheet/sheet.js.map +1 -1
- package/dist/components/primitives/stack/stack.d.ts +2 -2
- package/dist/components/primitives/text/internal/text-element.d.ts +8 -2
- package/dist/components/primitives/text/internal/text-element.js +3 -0
- package/dist/components/primitives/text/internal/text-element.js.map +1 -1
- package/dist/components/primitives/text/text-code.d.ts +1 -1
- package/dist/components/templates/index.d.ts +1 -0
- package/dist/components/templates/index.js +1 -0
- package/dist/components/templates/index.js.map +1 -1
- package/dist/components/templates/loading-screen/loading-screen.d.ts +10 -0
- package/dist/components/templates/loading-screen/loading-screen.js +39 -0
- package/dist/components/templates/loading-screen/loading-screen.js.map +1 -0
- package/dist/css/variables.css +2 -0
- package/dist/css/variables.css.map +1 -1
- package/dist/data/posts.d.ts +5 -0
- package/dist/data/posts.js +37 -4
- package/dist/data/posts.js.map +1 -1
- package/dist/index.d.ts +28 -1
- package/dist/lib/forms/field-props.d.ts +60 -0
- package/dist/lib/forms/field-props.js +60 -0
- package/dist/lib/forms/field-props.js.map +1 -0
- package/dist/lib/forms/index.d.ts +11 -0
- package/dist/lib/forms/index.js +3 -0
- package/dist/lib/forms/index.js.map +1 -0
- package/dist/lib/forms/tanstack-field.d.ts +56 -0
- package/dist/lib/forms/tanstack-field.js +114 -0
- package/dist/lib/forms/tanstack-field.js.map +1 -0
- package/dist/lib/index.d.ts +11 -0
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/main.css +396 -87
- package/dist/main.css.map +1 -1
- package/package.json +14 -2
|
@@ -23,11 +23,12 @@ declare const iconVariants: {
|
|
|
23
23
|
"muted-foreground": string;
|
|
24
24
|
destructive: string;
|
|
25
25
|
"destructive-foreground": string;
|
|
26
|
+
error: string;
|
|
26
27
|
};
|
|
27
28
|
};
|
|
28
29
|
declare const iconVariantsProps: (props?: ({
|
|
29
|
-
size?: "default" | "
|
|
30
|
-
color?: "default" | "
|
|
30
|
+
size?: "default" | "xs" | "sm" | "lg" | "xl" | "xxl" | null | undefined;
|
|
31
|
+
color?: "default" | "secondary" | "destructive" | "foreground" | "primary" | "primary-foreground" | "secondary-foreground" | "muted" | "muted-foreground" | "destructive-foreground" | "error" | null | undefined;
|
|
31
32
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
32
33
|
type Props = Omit<React.ComponentProps<LucideIcon>, "size"> & VariantProps<typeof iconVariantsProps> & {
|
|
33
34
|
icon: keyof typeof icons;
|
|
@@ -22,7 +22,8 @@ const iconVariants = {
|
|
|
22
22
|
muted: "sg:text-muted",
|
|
23
23
|
"muted-foreground": "sg:text-muted-foreground",
|
|
24
24
|
destructive: "sg:text-destructive",
|
|
25
|
-
"destructive-foreground": "sg:text-destructive-foreground"
|
|
25
|
+
"destructive-foreground": "sg:text-destructive-foreground",
|
|
26
|
+
error: "sg:text-error"
|
|
26
27
|
}
|
|
27
28
|
};
|
|
28
29
|
const iconVariantsProps = cva("", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/primitives/icon/icon.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { icons, type LucideIcon } from \"lucide-react\";\r\nimport { cn } from \"../../../utils/index\";\r\n\r\nconst iconVariants = {\r\n size: {\r\n xs: \"sg:size-4\",\r\n sm: \"sg:size-8\",\r\n default: \"sg:size-9\",\r\n lg: \"sg:size-10\",\r\n xl: \"sg:size-12\",\r\n xxl: \"sg:size-16\",\r\n },\r\n color: {\r\n default: \"\",\r\n foreground: \"sg:text-foreground\",\r\n primary: \"sg:text-primary\",\r\n \"primary-foreground\": \"sg:text-primary-foreground\",\r\n secondary: \"sg:text-secondary\",\r\n \"secondary-foreground\": \"sg:text-secondary-foreground\",\r\n muted: \"sg:text-muted\",\r\n \"muted-foreground\": \"sg:text-muted-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n \"destructive-foreground\": \"sg:text-destructive-foreground\",\r\n },\r\n};\r\n\r\nconst iconVariantsProps = cva(\"\", {\r\n variants: iconVariants,\r\n defaultVariants: {\r\n size: \"default\",\r\n color: \"default\",\r\n },\r\n});\r\n\r\ntype Props = Omit<React.ComponentProps<LucideIcon>, \"size\"> &\r\n VariantProps<typeof iconVariantsProps> & {\r\n icon: keyof typeof icons;\r\n spin?: boolean;\r\n };\r\n\r\nfunction Icon({ className, size, color, icon, spin, ...props }: Props) {\r\n const LucideIcon = icons[icon];\r\n\r\n return (\r\n <LucideIcon\r\n className={cn(\r\n iconVariantsProps({ color, size }),\r\n className,\r\n spin && \"sg:animate-spin\",\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Icon, iconVariantsProps, iconVariants };\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/icon/icon.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { icons, type LucideIcon } from \"lucide-react\";\r\nimport { cn } from \"../../../utils/index\";\r\n\r\nconst iconVariants = {\r\n size: {\r\n xs: \"sg:size-4\",\r\n sm: \"sg:size-8\",\r\n default: \"sg:size-9\",\r\n lg: \"sg:size-10\",\r\n xl: \"sg:size-12\",\r\n xxl: \"sg:size-16\",\r\n },\r\n color: {\r\n default: \"\",\r\n foreground: \"sg:text-foreground\",\r\n primary: \"sg:text-primary\",\r\n \"primary-foreground\": \"sg:text-primary-foreground\",\r\n secondary: \"sg:text-secondary\",\r\n \"secondary-foreground\": \"sg:text-secondary-foreground\",\r\n muted: \"sg:text-muted\",\r\n \"muted-foreground\": \"sg:text-muted-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n \"destructive-foreground\": \"sg:text-destructive-foreground\",\r\n error: \"sg:text-error\",\r\n },\r\n};\r\n\r\nconst iconVariantsProps = cva(\"\", {\r\n variants: iconVariants,\r\n defaultVariants: {\r\n size: \"default\",\r\n color: \"default\",\r\n },\r\n});\r\n\r\ntype Props = Omit<React.ComponentProps<LucideIcon>, \"size\"> &\r\n VariantProps<typeof iconVariantsProps> & {\r\n icon: keyof typeof icons;\r\n spin?: boolean;\r\n };\r\n\r\nfunction Icon({ className, size, color, icon, spin, ...props }: Props) {\r\n const LucideIcon = icons[icon];\r\n\r\n return (\r\n <LucideIcon\r\n className={cn(\r\n iconVariantsProps({ color, size }),\r\n className,\r\n spin && \"sg:animate-spin\",\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Icon, iconVariantsProps, iconVariants };\r\n"],"mappings":"AA+CI;AA/CJ,YAAY,WAAW;AACvB,SAAS,WAA8B;AACvC,SAAS,aAA8B;AACvC,SAAS,UAAU;AAEnB,MAAM,eAAe;AAAA,EACnB,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,KAAK;AAAA,EACP;AAAA,EACA,OAAO;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,sBAAsB;AAAA,IACtB,WAAW;AAAA,IACX,wBAAwB;AAAA,IACxB,OAAO;AAAA,IACP,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb,0BAA0B;AAAA,IAC1B,OAAO;AAAA,EACT;AACF;AAEA,MAAM,oBAAoB,IAAI,IAAI;AAAA,EAChC,UAAU;AAAA,EACV,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF,CAAC;AAQD,SAAS,KAAK,EAAE,WAAW,MAAM,OAAO,MAAM,MAAM,GAAG,MAAM,GAAU;AACrE,QAAM,aAAa,MAAM,IAAI;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT,kBAAkB,EAAE,OAAO,KAAK,CAAC;AAAA,QACjC;AAAA,QACA,QAAQ;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
|
@@ -8,6 +8,9 @@ export { LinkButton } from './buttons/link-button.js';
|
|
|
8
8
|
export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './collapsible/collapsible.js';
|
|
9
9
|
export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './dropdown-menu/dropdown-menu.js';
|
|
10
10
|
export { Checkbox } from './forms/checkbox.js';
|
|
11
|
+
export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle } from './forms/field.js';
|
|
12
|
+
export { Form, FormActions } from './forms/form.js';
|
|
13
|
+
export { FormControl } from './forms/form-control.js';
|
|
11
14
|
export { Input } from './forms/input.js';
|
|
12
15
|
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from './forms/select.js';
|
|
13
16
|
export { Textarea } from './forms/textarea.js';
|
|
@@ -41,6 +44,7 @@ import '../providers/LinkContext.js';
|
|
|
41
44
|
import '@radix-ui/react-collapsible';
|
|
42
45
|
import '@radix-ui/react-dropdown-menu';
|
|
43
46
|
import '@base-ui/react';
|
|
47
|
+
import '../../lib/forms/field-props.js';
|
|
44
48
|
import '@base-ui/react/separator';
|
|
45
49
|
import '@radix-ui/react-dialog';
|
|
46
50
|
import './text/internal/text-element.js';
|
|
@@ -8,6 +8,9 @@ export * from "./buttons/link-button.js";
|
|
|
8
8
|
export * from "./collapsible/collapsible.js";
|
|
9
9
|
export * from "./dropdown-menu/dropdown-menu.js";
|
|
10
10
|
export * from "./forms/checkbox.js";
|
|
11
|
+
export * from "./forms/field.js";
|
|
12
|
+
export * from "./forms/form.js";
|
|
13
|
+
export * from "./forms/form-control.js";
|
|
11
14
|
export * from "./forms/input.js";
|
|
12
15
|
export * from "./forms/select.js";
|
|
13
16
|
export * from "./forms/textarea.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/primitives/index.ts"],"sourcesContent":["/**\n * Primitives index\n *\n * Please keep exports sorted alphabetically by path!\n */\n\nexport * from \"./accordion/accordion\";\nexport * from \"./alert/alert\";\nexport * from \"./badge/badge\";\nexport * from \"./badge/badges\";\nexport * from \"./buttons/button\";\nexport * from \"./buttons/icon-button\";\nexport * from \"./buttons/link-button\";\nexport * from \"./collapsible/collapsible\";\nexport * from \"./dropdown-menu/dropdown-menu\";\nexport * from \"./forms/checkbox\";\nexport * from \"./forms/input\";\nexport * from \"./forms/select\";\nexport * from \"./forms/textarea\";\nexport * from \"./icon/icon\";\nexport * from \"./label/label\";\nexport * from \"./layout/layout\";\nexport * from \"./link/link\";\nexport * from \"./separator/separator\";\nexport * from \"./sheet/sheet\";\nexport * from \"./skeleton/skeleton\";\nexport * from \"./sonner/sonner\";\nexport * from \"./spinner/spinner\";\nexport * from \"./stack/stack\";\n// export * from \"./table/table\";\nexport * from \"./text/heading\";\nexport * from \"./text/text-code\";\nexport * from \"./text/text-div\";\nexport * from \"./text/text-span\";\nexport * from \"./text/text-time\";\nexport * from \"./text/text\";\nexport * from \"./ui-image/ui-image\";\nexport * from \"./ui-link/ui-link\";\n"],"mappings":"AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/primitives/index.ts"],"sourcesContent":["/**\n * Primitives index\n *\n * Please keep exports sorted alphabetically by path!\n */\n\nexport * from \"./accordion/accordion\";\nexport * from \"./alert/alert\";\nexport * from \"./badge/badge\";\nexport * from \"./badge/badges\";\nexport * from \"./buttons/button\";\nexport * from \"./buttons/icon-button\";\nexport * from \"./buttons/link-button\";\nexport * from \"./collapsible/collapsible\";\nexport * from \"./dropdown-menu/dropdown-menu\";\nexport * from \"./forms/checkbox\";\nexport * from \"./forms/field\";\nexport * from \"./forms/form\";\nexport * from \"./forms/form-control\";\nexport * from \"./forms/input\";\nexport * from \"./forms/select\";\nexport * from \"./forms/textarea\";\nexport * from \"./icon/icon\";\nexport * from \"./label/label\";\nexport * from \"./layout/layout\";\nexport * from \"./link/link\";\nexport * from \"./separator/separator\";\nexport * from \"./sheet/sheet\";\nexport * from \"./skeleton/skeleton\";\nexport * from \"./sonner/sonner\";\nexport * from \"./spinner/spinner\";\nexport * from \"./stack/stack\";\n// export * from \"./table/table\";\nexport * from \"./text/heading\";\nexport * from \"./text/text-code\";\nexport * from \"./text/text-div\";\nexport * from \"./text/text-span\";\nexport * from \"./text/text-time\";\nexport * from \"./text/text\";\nexport * from \"./ui-image/ui-image\";\nexport * from \"./ui-link/ui-link\";\n"],"mappings":"AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -33,7 +33,7 @@ declare const layoutVariants: {
|
|
|
33
33
|
declare const layoutVariantsProps: (props?: ({
|
|
34
34
|
type?: "col" | "container" | "full" | "wide" | "narrow" | null | undefined;
|
|
35
35
|
cols?: "100" | "66-33" | "50-50" | "33-33-33" | "25-25-25-25" | null | undefined;
|
|
36
|
-
bgColor?: "
|
|
36
|
+
bgColor?: "secondary" | "primary" | "muted" | "accent" | "transparent" | "background" | "gradient1" | "gradient2" | "gradient-masks-and-opacity" | "gradient-primary-primarymuted-secondary" | null | undefined;
|
|
37
37
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
38
38
|
interface LayoutProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof layoutVariantsProps> {
|
|
39
39
|
/** Semantic HTML element for the outer wrapper. Defaults to `div`. */
|
|
@@ -29,8 +29,8 @@ declare const linkVariants: {
|
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
31
|
declare const linkVariantsProps: (props?: ({
|
|
32
|
-
variant?: "
|
|
33
|
-
size?: "base" | "
|
|
32
|
+
variant?: "default" | "footer" | "no-decoration" | "logo" | "nav-mobile" | "nav-mobile-active" | "nav-desktop" | "nav-desktop-active" | null | undefined;
|
|
33
|
+
size?: "base" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | null | undefined;
|
|
34
34
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
35
35
|
type Props = BaseLinkProps & VariantProps<typeof linkVariantsProps> & {
|
|
36
36
|
iconStart?: keyof typeof icons;
|
|
@@ -46,7 +46,7 @@ const SheetContent = React.forwardRef(({ side = "right", className, children, ..
|
|
|
46
46
|
className: cn(sheetVariants({ side }), className),
|
|
47
47
|
...props,
|
|
48
48
|
children: [
|
|
49
|
-
/* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "sg:absolute sg:right-4 sg:top-4 sg:rounded-sm sg:opacity-70 sg:ring-offset-background sg:transition-opacity sg:hover:opacity-100 sg:focus:outline-none sg:focus:ring-2 sg:focus:ring-ring sg:focus:ring-offset-2 sg:disabled:pointer-events-none sg:data-[state=open]:bg-secondary", children: [
|
|
49
|
+
/* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "sg:absolute sg:right-4 sg:top-4 sg:rounded-sm sg:opacity-70 sg:ring-offset-background sg:transition-opacity sg:hover:opacity-100 sg:focus-visible:outline-none sg:focus-visible:ring-2 sg:focus-visible:ring-ring sg:focus-visible:ring-offset-2 sg:disabled:pointer-events-none sg:data-[state=open]:bg-secondary", children: [
|
|
50
50
|
/* @__PURE__ */ jsx(icons.X, { className: "sg:h-4 sg:w-4" }),
|
|
51
51
|
/* @__PURE__ */ jsx("span", { className: "sg:sr-only", children: "Close" })
|
|
52
52
|
] }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/primitives/sheet/sheet.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { icons } from \"lucide-react\";\n\nimport { cn } from \"singularity-components/utils\";\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"sg:fixed sg:inset-0 sg:z-50 sg:bg-black/80 sg:data-[state=open]:animate-in sg:data-[state=closed]:animate-out sg:data-[state=closed]:fade-out-0 sg:data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n \"sg:fixed sg:z-50 sg:gap-4 sg:bg-background sg:p-6 sg:shadow-lg sg:transition sg:ease-in-out sg:data-[state=open]:animate-in sg:data-[state=closed]:animate-out sg:data-[state=closed]:duration-300 sg:data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"sg:inset-x-0 sg:top-0 sg:border-b sg:data-[state=closed]:slide-out-to-top sg:data-[state=open]:slide-in-from-top\",\n bottom:\n \"sg:inset-x-0 sg:bottom-0 sg:border-t sg:data-[state=closed]:slide-out-to-bottom sg:data-[state=open]:slide-in-from-bottom\",\n left: \"sg:inset-y-0 sg:left-0 sg:h-full sg:w-3/4 sg:border-r sg:data-[state=closed]:slide-out-to-left sg:data-[state=open]:slide-in-from-left sg:sm:max-w-sm\",\n right:\n \"sg:inset-y-0 sg:right-0 sg:h-full sg:w-3/4 sg:border-l sg:data-[state=closed]:slide-out-to-right sg:data-[state=open]:slide-in-from-right sg:sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\ninterface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.Close className=\"sg:absolute sg:right-4 sg:top-4 sg:rounded-sm sg:opacity-70 sg:ring-offset-background sg:transition-opacity sg:hover:opacity-100 sg:focus:outline-none sg:focus:ring-2 sg:focus:ring-ring sg:focus:ring-offset-2 sg:disabled:pointer-events-none sg:data-[state=open]:bg-secondary\">\n <icons.X className=\"sg:h-4 sg:w-4\" />\n <span className=\"sg:sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"sg:flex sg:flex-col sg:space-y-2 sg:text-center sg:sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"sg:flex sg:flex-col-reverse sg:sm:flex-row sg:sm:justify-end sg:sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"sg:text-lg sg:font-semibold sg:text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"sg:text-sm sg:text-muted-foreground\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n"],"mappings":";AAqBE,cA8CI,YA9CJ;AAnBF,YAAY,WAAW;AACvB,YAAY,oBAAoB;AAChC,SAAS,WAA8B;AACvC,SAAS,aAAa;AAEtB,SAAS,UAAU;AAEnB,MAAM,QAAQ,eAAe;AAE7B,MAAM,eAAe,eAAe;AAEpC,MAAM,aAAa,eAAe;AAElC,MAAM,cAAc,eAAe;AAEnC,MAAM,eAAe,MAAM,WAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC,eAAe;AAAA,EAAf;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IACJ;AAAA;AACF,CACD;AACD,aAAa,cAAc,eAAe,QAAQ;AAElD,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,QACE;AAAA,QACF,MAAM;AAAA,QACN,OACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAOA,MAAM,eAAe,MAAM,WAGzB,CAAC,EAAE,OAAO,SAAS,WAAW,UAAU,GAAG,MAAM,GAAG,QACpD,qBAAC,eACC;AAAA,sBAAC,gBAAa;AAAA,EACd;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC;AAAA,MACA,WAAW,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MAC/C,GAAG;AAAA,MAEJ;AAAA,6BAAC,eAAe,OAAf,EAAqB,WAAU,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/primitives/sheet/sheet.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { icons } from \"lucide-react\";\n\nimport { cn } from \"singularity-components/utils\";\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"sg:fixed sg:inset-0 sg:z-50 sg:bg-black/80 sg:data-[state=open]:animate-in sg:data-[state=closed]:animate-out sg:data-[state=closed]:fade-out-0 sg:data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n \"sg:fixed sg:z-50 sg:gap-4 sg:bg-background sg:p-6 sg:shadow-lg sg:transition sg:ease-in-out sg:data-[state=open]:animate-in sg:data-[state=closed]:animate-out sg:data-[state=closed]:duration-300 sg:data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"sg:inset-x-0 sg:top-0 sg:border-b sg:data-[state=closed]:slide-out-to-top sg:data-[state=open]:slide-in-from-top\",\n bottom:\n \"sg:inset-x-0 sg:bottom-0 sg:border-t sg:data-[state=closed]:slide-out-to-bottom sg:data-[state=open]:slide-in-from-bottom\",\n left: \"sg:inset-y-0 sg:left-0 sg:h-full sg:w-3/4 sg:border-r sg:data-[state=closed]:slide-out-to-left sg:data-[state=open]:slide-in-from-left sg:sm:max-w-sm\",\n right:\n \"sg:inset-y-0 sg:right-0 sg:h-full sg:w-3/4 sg:border-l sg:data-[state=closed]:slide-out-to-right sg:data-[state=open]:slide-in-from-right sg:sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\ninterface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.Close className=\"sg:absolute sg:right-4 sg:top-4 sg:rounded-sm sg:opacity-70 sg:ring-offset-background sg:transition-opacity sg:hover:opacity-100 sg:focus-visible:outline-none sg:focus-visible:ring-2 sg:focus-visible:ring-ring sg:focus-visible:ring-offset-2 sg:disabled:pointer-events-none sg:data-[state=open]:bg-secondary\">\n <icons.X className=\"sg:h-4 sg:w-4\" />\n <span className=\"sg:sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"sg:flex sg:flex-col sg:space-y-2 sg:text-center sg:sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"sg:flex sg:flex-col-reverse sg:sm:flex-row sg:sm:justify-end sg:sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"sg:text-lg sg:font-semibold sg:text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"sg:text-sm sg:text-muted-foreground\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n"],"mappings":";AAqBE,cA8CI,YA9CJ;AAnBF,YAAY,WAAW;AACvB,YAAY,oBAAoB;AAChC,SAAS,WAA8B;AACvC,SAAS,aAAa;AAEtB,SAAS,UAAU;AAEnB,MAAM,QAAQ,eAAe;AAE7B,MAAM,eAAe,eAAe;AAEpC,MAAM,aAAa,eAAe;AAElC,MAAM,cAAc,eAAe;AAEnC,MAAM,eAAe,MAAM,WAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC,eAAe;AAAA,EAAf;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IACJ;AAAA;AACF,CACD;AACD,aAAa,cAAc,eAAe,QAAQ;AAElD,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,QACE;AAAA,QACF,MAAM;AAAA,QACN,OACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAOA,MAAM,eAAe,MAAM,WAGzB,CAAC,EAAE,OAAO,SAAS,WAAW,UAAU,GAAG,MAAM,GAAG,QACpD,qBAAC,eACC;AAAA,sBAAC,gBAAa;AAAA,EACd;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC;AAAA,MACA,WAAW,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MAC/C,GAAG;AAAA,MAEJ;AAAA,6BAAC,eAAe,OAAf,EAAqB,WAAU,sTAC9B;AAAA,8BAAC,MAAM,GAAN,EAAQ,WAAU,iBAAgB;AAAA,UACnC,oBAAC,UAAK,WAAU,cAAa,mBAAK;AAAA,WACpC;AAAA,QACC;AAAA;AAAA;AAAA,EACH;AAAA,GACF,CACD;AACD,aAAa,cAAc,eAAe,QAAQ;AAElD,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,YAAY,cAAc;AAE1B,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,YAAY,cAAc;AAE1B,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC,eAAe;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAW,GAAG,kDAAkD,SAAS;AAAA,IACxE,GAAG;AAAA;AACN,CACD;AACD,WAAW,cAAc,eAAe,MAAM;AAE9C,MAAM,mBAAmB,MAAM,WAG7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC,eAAe;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAW,GAAG,uCAAuC,SAAS;AAAA,IAC7D,GAAG;AAAA;AACN,CACD;AACD,iBAAiB,cAAc,eAAe,YAAY;","names":[]}
|
|
@@ -48,8 +48,8 @@ declare const stackVariants: (props?: ({
|
|
|
48
48
|
gap?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | null | undefined;
|
|
49
49
|
direction?: "row" | "column" | null | undefined;
|
|
50
50
|
wrap?: "default" | "wrap" | "nowrap" | null | undefined;
|
|
51
|
-
alignItems?: "
|
|
52
|
-
justifyContent?: "
|
|
51
|
+
alignItems?: "default" | "center" | "end" | "start" | null | undefined;
|
|
52
|
+
justifyContent?: "default" | "center" | "end" | "start" | null | undefined;
|
|
53
53
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
54
54
|
interface StackProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof stackVariants> {
|
|
55
55
|
/** Merge props onto the child via Radix Slot instead of rendering a wrapper div. */
|
|
@@ -15,6 +15,9 @@ declare const textElementForeground: {
|
|
|
15
15
|
"accent-foreground": string;
|
|
16
16
|
card: string;
|
|
17
17
|
"card-foreground": string;
|
|
18
|
+
destructive: string;
|
|
19
|
+
"destructive-foreground": string;
|
|
20
|
+
error: string;
|
|
18
21
|
"primary-light-to-dark": string;
|
|
19
22
|
"primary-dark-to-light": string;
|
|
20
23
|
"multi-color": string;
|
|
@@ -57,6 +60,9 @@ declare const textElementVariants: {
|
|
|
57
60
|
"accent-foreground": string;
|
|
58
61
|
card: string;
|
|
59
62
|
"card-foreground": string;
|
|
63
|
+
destructive: string;
|
|
64
|
+
"destructive-foreground": string;
|
|
65
|
+
error: string;
|
|
60
66
|
"primary-light-to-dark": string;
|
|
61
67
|
"primary-dark-to-light": string;
|
|
62
68
|
"multi-color": string;
|
|
@@ -69,8 +75,8 @@ declare const textElementVariants: {
|
|
|
69
75
|
};
|
|
70
76
|
};
|
|
71
77
|
declare const textElementVariantsProps: (props?: ({
|
|
72
|
-
size?: "base" | "
|
|
73
|
-
foreground?: "default" | "
|
|
78
|
+
size?: "base" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | null | undefined;
|
|
79
|
+
foreground?: "default" | "secondary" | "destructive" | "foreground" | "primary" | "primary-foreground" | "secondary-foreground" | "muted" | "muted-foreground" | "accent" | "accent-foreground" | "card" | "card-foreground" | "destructive-foreground" | "error" | "primary-light-to-dark" | "primary-dark-to-light" | "multi-color" | null | undefined;
|
|
74
80
|
fontweight?: "bold" | "normal" | "medium" | "semibold" | null | undefined;
|
|
75
81
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
76
82
|
interface TextElementProps extends React__default.HTMLAttributes<HTMLElement>, VariantProps<typeof textElementVariantsProps> {
|
|
@@ -15,6 +15,9 @@ const textElementForeground = {
|
|
|
15
15
|
"accent-foreground": "sg:text-accent-foreground",
|
|
16
16
|
card: "sg:text-card",
|
|
17
17
|
"card-foreground": "sg:text-card-foreground",
|
|
18
|
+
destructive: "sg:text-destructive",
|
|
19
|
+
"destructive-foreground": "sg:text-destructive-foreground",
|
|
20
|
+
error: "sg:text-error",
|
|
18
21
|
"primary-light-to-dark": "sg:bg-gradient-to-r sg:from-primary-light sg:to-primary-dark sg:bg-clip-text sg:text-transparent",
|
|
19
22
|
"primary-dark-to-light": "sg:bg-gradient-to-r sg:from-primary-dark sg:to-primary-light sg:bg-clip-text sg:text-transparent",
|
|
20
23
|
"multi-color": "sg:bg-gradient-to-r sg:from-primary sg:via-destructive sg:to-primary-dark sg:bg-clip-text sg:text-transparent"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/primitives/text/internal/text-element.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../../../utils/index\";\r\n\r\nexport const textElementForeground = {\r\n default: \"\",\r\n foreground: \"sg:text-foreground\",\r\n primary: \"sg:text-primary\",\r\n \"primary-foreground\": \"sg:text-primary-foreground\",\r\n secondary: \"sg:text-secondary\",\r\n \"secondary-foreground\": \"sg:text-secondary-foreground\",\r\n muted: \"sg:text-muted\",\r\n \"muted-foreground\": \"sg:text-muted-foreground\",\r\n accent: \"sg:text-accent\",\r\n \"accent-foreground\": \"sg:text-accent-foreground\",\r\n card: \"sg:text-card\",\r\n \"card-foreground\": \"sg:text-card-foreground\",\r\n\r\n \"primary-light-to-dark\":\r\n \"sg:bg-gradient-to-r sg:from-primary-light sg:to-primary-dark sg:bg-clip-text sg:text-transparent\",\r\n \"primary-dark-to-light\":\r\n \"sg:bg-gradient-to-r sg:from-primary-dark sg:to-primary-light sg:bg-clip-text sg:text-transparent\",\r\n \"multi-color\":\r\n \"sg:bg-gradient-to-r sg:from-primary sg:via-destructive sg:to-primary-dark sg:bg-clip-text sg:text-transparent\",\r\n};\r\n\r\nexport const textElementSize = {\r\n xs: \"sg:text-xs\",\r\n sm: \"sg:text-sm\",\r\n md: \"sg:text-md\",\r\n base: \"sg:text-base\",\r\n lg: \"sg:text-lg\",\r\n xl: \"sg:text-xl\",\r\n \"2xl\": \"sg:text-2xl\",\r\n \"3xl\": \"sg:text-3xl\",\r\n \"4xl\": \"sg:text-4xl\",\r\n \"5xl\": \"sg:text-5xl\",\r\n};\r\n\r\nexport const textElementVariants = {\r\n size: textElementSize,\r\n foreground: textElementForeground,\r\n fontweight: {\r\n normal: \"sg:font-normal\",\r\n medium: \"sg:font-medium\",\r\n semibold: \"sg:font-semibold\",\r\n bold: \"sg:font-bold\",\r\n },\r\n};\r\n\r\nexport const textElementVariantsProps = cva(\"\", {\r\n variants: textElementVariants,\r\n defaultVariants: {\r\n size: \"base\",\r\n foreground: \"default\",\r\n fontweight: \"normal\",\r\n },\r\n});\r\n\r\nexport interface TextElementProps\r\n extends\r\n React.HTMLAttributes<HTMLElement>,\r\n VariantProps<typeof textElementVariantsProps> {\r\n as?: \"p\" | \"div\" | \"span\" | \"time\" | \"code\";\r\n}\r\n\r\nexport const TextElement = ({\r\n as = \"div\",\r\n children,\r\n size,\r\n foreground,\r\n fontweight,\r\n className,\r\n ...props\r\n}: TextElementProps) => {\r\n const Component = as;\r\n return (\r\n <Component\r\n className={cn(\r\n textElementVariantsProps({\r\n size,\r\n foreground,\r\n fontweight,\r\n }),\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n};\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/primitives/text/internal/text-element.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../../../utils/index\";\r\n\r\nexport const textElementForeground = {\r\n default: \"\",\r\n foreground: \"sg:text-foreground\",\r\n primary: \"sg:text-primary\",\r\n \"primary-foreground\": \"sg:text-primary-foreground\",\r\n secondary: \"sg:text-secondary\",\r\n \"secondary-foreground\": \"sg:text-secondary-foreground\",\r\n muted: \"sg:text-muted\",\r\n \"muted-foreground\": \"sg:text-muted-foreground\",\r\n accent: \"sg:text-accent\",\r\n \"accent-foreground\": \"sg:text-accent-foreground\",\r\n card: \"sg:text-card\",\r\n \"card-foreground\": \"sg:text-card-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n \"destructive-foreground\": \"sg:text-destructive-foreground\",\r\n error: \"sg:text-error\",\r\n\r\n \"primary-light-to-dark\":\r\n \"sg:bg-gradient-to-r sg:from-primary-light sg:to-primary-dark sg:bg-clip-text sg:text-transparent\",\r\n \"primary-dark-to-light\":\r\n \"sg:bg-gradient-to-r sg:from-primary-dark sg:to-primary-light sg:bg-clip-text sg:text-transparent\",\r\n \"multi-color\":\r\n \"sg:bg-gradient-to-r sg:from-primary sg:via-destructive sg:to-primary-dark sg:bg-clip-text sg:text-transparent\",\r\n};\r\n\r\nexport const textElementSize = {\r\n xs: \"sg:text-xs\",\r\n sm: \"sg:text-sm\",\r\n md: \"sg:text-md\",\r\n base: \"sg:text-base\",\r\n lg: \"sg:text-lg\",\r\n xl: \"sg:text-xl\",\r\n \"2xl\": \"sg:text-2xl\",\r\n \"3xl\": \"sg:text-3xl\",\r\n \"4xl\": \"sg:text-4xl\",\r\n \"5xl\": \"sg:text-5xl\",\r\n};\r\n\r\nexport const textElementVariants = {\r\n size: textElementSize,\r\n foreground: textElementForeground,\r\n fontweight: {\r\n normal: \"sg:font-normal\",\r\n medium: \"sg:font-medium\",\r\n semibold: \"sg:font-semibold\",\r\n bold: \"sg:font-bold\",\r\n },\r\n};\r\n\r\nexport const textElementVariantsProps = cva(\"\", {\r\n variants: textElementVariants,\r\n defaultVariants: {\r\n size: \"base\",\r\n foreground: \"default\",\r\n fontweight: \"normal\",\r\n },\r\n});\r\n\r\nexport interface TextElementProps\r\n extends\r\n React.HTMLAttributes<HTMLElement>,\r\n VariantProps<typeof textElementVariantsProps> {\r\n as?: \"p\" | \"div\" | \"span\" | \"time\" | \"code\";\r\n}\r\n\r\nexport const TextElement = ({\r\n as = \"div\",\r\n children,\r\n size,\r\n foreground,\r\n fontweight,\r\n className,\r\n ...props\r\n}: TextElementProps) => {\r\n const Component = as;\r\n return (\r\n <Component\r\n className={cn(\r\n textElementVariantsProps({\r\n size,\r\n foreground,\r\n fontweight,\r\n }),\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n};\r\n"],"mappings":"AAgFI;AAhFJ,OAAO,WAAW;AAClB,SAAS,WAA8B;AACvC,SAAS,UAAU;AAEZ,MAAM,wBAAwB;AAAA,EACnC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,wBAAwB;AAAA,EACxB,OAAO;AAAA,EACP,oBAAoB;AAAA,EACpB,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,MAAM;AAAA,EACN,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,0BAA0B;AAAA,EAC1B,OAAO;AAAA,EAEP,yBACE;AAAA,EACF,yBACE;AAAA,EACF,eACE;AACJ;AAEO,MAAM,kBAAkB;AAAA,EAC7B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT;AAEO,MAAM,sBAAsB;AAAA,EACjC,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AACF;AAEO,MAAM,2BAA2B,IAAI,IAAI;AAAA,EAC9C,UAAU;AAAA,EACV,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AACF,CAAC;AASM,MAAM,cAAc,CAAC;AAAA,EAC1B,KAAK;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAwB;AACtB,QAAM,YAAY;AAClB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT,yBAAyB;AAAA,UACvB;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,QACD;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;","names":[]}
|
|
@@ -17,7 +17,7 @@ declare const textCodeVariants: {
|
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
declare const textCodeVariantsProps: (props?: ({
|
|
20
|
-
size?: "base" | "
|
|
20
|
+
size?: "base" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | null | undefined;
|
|
21
21
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
22
22
|
interface TextCodeProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof textCodeVariantsProps> {
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/templates/index.ts"],"sourcesContent":["/**\n * Templates index\n *\n * Please keep exports sorted alphabetically by path!\n */\n\nexport * from \"./container/container\";\nexport * from \"./footer/footer\";\nexport * from \"./hero/hero\";\nexport * from \"./navigation/index\";\n"],"mappings":"AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/templates/index.ts"],"sourcesContent":["/**\n * Templates index\n *\n * Please keep exports sorted alphabetically by path!\n */\n\nexport * from \"./container/container\";\nexport * from \"./footer/footer\";\nexport * from \"./hero/hero\";\nexport * from \"./loading-screen/loading-screen\";\nexport * from \"./navigation/index\";\n"],"mappings":"AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { motion } from "framer-motion";
|
|
4
|
+
import { Heading, Text } from "../../primitives/index.js";
|
|
5
|
+
function LoadingScreen({
|
|
6
|
+
brand = "filion.",
|
|
7
|
+
message = "Loading\u2026"
|
|
8
|
+
}) {
|
|
9
|
+
const [name, accent] = brand.includes(".") ? [brand.replace(".", ""), "."] : [brand, ""];
|
|
10
|
+
return /* @__PURE__ */ jsx("div", { className: "sg:fixed sg:inset-0 sg:z-[100] sg:flex sg:flex-col sg:items-center sg:justify-center sg:bg-background", children: /* @__PURE__ */ jsxs(
|
|
11
|
+
motion.div,
|
|
12
|
+
{
|
|
13
|
+
initial: { opacity: 0, scale: 0.9 },
|
|
14
|
+
animate: { opacity: 1, scale: 1 },
|
|
15
|
+
transition: { duration: 0.3 },
|
|
16
|
+
className: "sg:text-center",
|
|
17
|
+
children: [
|
|
18
|
+
/* @__PURE__ */ jsxs(Heading, { variant: "h3", className: "sg:text-primary", children: [
|
|
19
|
+
name,
|
|
20
|
+
accent && /* @__PURE__ */ jsx("span", { className: "sg:text-secondary", children: accent })
|
|
21
|
+
] }),
|
|
22
|
+
/* @__PURE__ */ jsx("div", { className: "sg:mt-6 sg:flex sg:items-center sg:justify-center sg:gap-1.5", children: [0, 1, 2].map((i) => /* @__PURE__ */ jsx(
|
|
23
|
+
motion.div,
|
|
24
|
+
{
|
|
25
|
+
className: "sg:h-2 sg:w-2 sg:rounded-full sg:bg-primary",
|
|
26
|
+
animate: { opacity: [0.3, 1, 0.3], scale: [0.8, 1.2, 0.8] },
|
|
27
|
+
transition: { duration: 1, repeat: Infinity, delay: i * 0.2 }
|
|
28
|
+
},
|
|
29
|
+
i
|
|
30
|
+
)) }),
|
|
31
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", foreground: "muted-foreground", className: "sg:mt-4", children: message })
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
) });
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
LoadingScreen
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=loading-screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/templates/loading-screen/loading-screen.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { motion } from \"framer-motion\";\r\nimport { Heading, Text } from \"../../primitives/index\";\r\n\r\ntype Props = {\r\n\tbrand?: string;\r\n\tmessage?: string;\r\n};\r\n\r\n/** Full-screen branded loading overlay. */\r\nexport function LoadingScreen({\r\n\tbrand = \"filion.\",\r\n\tmessage = \"Loading…\",\r\n}: Props) {\r\n\tconst [name, accent] = brand.includes(\".\")\r\n\t\t? [brand.replace(\".\", \"\"), \".\"]\r\n\t\t: [brand, \"\"];\r\n\r\n\treturn (\r\n\t\t<div className=\"sg:fixed sg:inset-0 sg:z-[100] sg:flex sg:flex-col sg:items-center sg:justify-center sg:bg-background\">\r\n\t\t\t<motion.div\r\n\t\t\t\tinitial={{ opacity: 0, scale: 0.9 }}\r\n\t\t\t\tanimate={{ opacity: 1, scale: 1 }}\r\n\t\t\t\ttransition={{ duration: 0.3 }}\r\n\t\t\t\tclassName=\"sg:text-center\"\r\n\t\t\t>\r\n\t\t\t\t<Heading variant=\"h3\" className=\"sg:text-primary\">\r\n\t\t\t\t\t{name}\r\n\t\t\t\t\t{accent && (\r\n\t\t\t\t\t\t<span className=\"sg:text-secondary\">{accent}</span>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Heading>\r\n\t\t\t\t<div className=\"sg:mt-6 sg:flex sg:items-center sg:justify-center sg:gap-1.5\">\r\n\t\t\t\t\t{[0, 1, 2].map((i) => (\r\n\t\t\t\t\t\t<motion.div\r\n\t\t\t\t\t\t\tkey={i}\r\n\t\t\t\t\t\t\tclassName=\"sg:h-2 sg:w-2 sg:rounded-full sg:bg-primary\"\r\n\t\t\t\t\t\t\tanimate={{ opacity: [0.3, 1, 0.3], scale: [0.8, 1.2, 0.8] }}\r\n\t\t\t\t\t\t\ttransition={{ duration: 1, repeat: Infinity, delay: i * 0.2 }}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</div>\r\n\t\t\t\t<Text size=\"sm\" foreground=\"muted-foreground\" className=\"sg:mt-4\">\r\n\t\t\t\t\t{message}\r\n\t\t\t\t</Text>\r\n\t\t\t</motion.div>\r\n\t\t</div>\r\n\t);\r\n}\r\n"],"mappings":";AA2BI,SAGE,KAHF;AAzBJ,SAAS,cAAc;AACvB,SAAS,SAAS,YAAY;AAQvB,SAAS,cAAc;AAAA,EAC7B,QAAQ;AAAA,EACR,UAAU;AACX,GAAU;AACT,QAAM,CAAC,MAAM,MAAM,IAAI,MAAM,SAAS,GAAG,IACtC,CAAC,MAAM,QAAQ,KAAK,EAAE,GAAG,GAAG,IAC5B,CAAC,OAAO,EAAE;AAEb,SACC,oBAAC,SAAI,WAAU,yGACd;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MACA,SAAS,EAAE,SAAS,GAAG,OAAO,IAAI;AAAA,MAClC,SAAS,EAAE,SAAS,GAAG,OAAO,EAAE;AAAA,MAChC,YAAY,EAAE,UAAU,IAAI;AAAA,MAC5B,WAAU;AAAA,MAEV;AAAA,6BAAC,WAAQ,SAAQ,MAAK,WAAU,mBAC9B;AAAA;AAAA,UACA,UACA,oBAAC,UAAK,WAAU,qBAAqB,kBAAO;AAAA,WAE9C;AAAA,QACA,oBAAC,SAAI,WAAU,gEACb,WAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,MACf;AAAA,UAAC,OAAO;AAAA,UAAP;AAAA,YAEA,WAAU;AAAA,YACV,SAAS,EAAE,SAAS,CAAC,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,KAAK,GAAG,EAAE;AAAA,YAC1D,YAAY,EAAE,UAAU,GAAG,QAAQ,UAAU,OAAO,IAAI,IAAI;AAAA;AAAA,UAHvD;AAAA,QAIN,CACA,GACF;AAAA,QACA,oBAAC,QAAK,MAAK,MAAK,YAAW,oBAAmB,WAAU,WACtD,mBACF;AAAA;AAAA;AAAA,EACD,GACD;AAEF;","names":[]}
|
package/dist/css/variables.css
CHANGED
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
--sg-accent-foreground: var(--sg-charcoal);
|
|
36
36
|
--sg-destructive: var(--sg-crimson);
|
|
37
37
|
--sg-destructive-foreground: var(--sg-cream);
|
|
38
|
+
--sg-error: var(--sg-crimson);
|
|
38
39
|
--sg-border: var(--sg-silver);
|
|
39
40
|
--sg-input: var(--sg-silver);
|
|
40
41
|
--sg-ring: var(--sg-terracotta);
|
|
@@ -65,6 +66,7 @@
|
|
|
65
66
|
--sg-accent-foreground: var(--sg-cloud);
|
|
66
67
|
--sg-destructive: var(--sg-crimson-light);
|
|
67
68
|
--sg-destructive-foreground: var(--sg-cream);
|
|
69
|
+
--sg-error: var(--sg-crimson-light);
|
|
68
70
|
--sg-border: var(--sg-slate);
|
|
69
71
|
--sg-input: var(--sg-slate);
|
|
70
72
|
--sg-ring: var(--sg-terracotta-light);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/css/variables.css"],"sourcesContent":[":root {\n /* Neutrals */\n --sg-black: oklch(0.25 0 0);\n --sg-charcoal: oklch(0.35 0.01 60);\n --sg-ash: oklch(0.44 0 0);\n --sg-silver: oklch(0.78 0.01 60);\n --sg-fog: oklch(0.92 0.005 240);\n --sg-cream: oklch(0.97 0.01 80);\n --sg-white: oklch(0.99 0.005 80);\n --sg-pure-white: oklch(1 0 0);\n\n /* Brand colors */\n --sg-terracotta: oklch(0.52 0.15 35);\n --sg-terracotta-light: oklch(0.65 0.16 35);\n --sg-amber: oklch(0.72 0.15 75);\n --sg-amber-dark: oklch(0.45 0.08 75);\n --sg-sand: oklch(0.93 0.03 80);\n\n /* Feedback */\n --sg-crimson: oklch(0.55 0.22 25);\n --sg-crimson-light: oklch(0.6 0.2 25);\n\n /* Dark mode neutrals */\n --sg-night: oklch(0.22 0.01 60);\n --sg-onyx: oklch(0.28 0 0);\n --sg-slate: oklch(0.43 0 0);\n --sg-dove: oklch(0.82 0.01 60);\n --sg-cloud: oklch(0.88 0.01 60);\n\n /* ── Semantic mapping – Light mode ── */\n --sg-background: var(--sg-cream);\n --sg-foreground: var(--sg-black);\n\n --sg-card: var(--sg-pure-white);\n --sg-card-foreground: var(--sg-black);\n\n --sg-popover: var(--sg-pure-white);\n --sg-popover-foreground: var(--sg-black);\n\n --sg-primary: var(--sg-terracotta);\n --sg-primary-foreground: var(--sg-cream);\n\n --sg-secondary: var(--sg-amber);\n --sg-secondary-foreground: var(--sg-black);\n\n --sg-muted: var(--sg-fog);\n --sg-muted-foreground: var(--sg-ash);\n\n --sg-accent: var(--sg-sand);\n --sg-accent-foreground: var(--sg-charcoal);\n\n --sg-destructive: var(--sg-crimson);\n --sg-destructive-foreground: var(--sg-cream);\n\n --sg-border: var(--sg-silver);\n --sg-input: var(--sg-silver);\n --sg-ring: var(--sg-terracotta);\n\n --sg-radius: 0.5rem;\n\n --sg-sidebar-background: var(--sg-cream);\n --sg-sidebar-foreground: var(--sg-black);\n --sg-sidebar-primary: var(--sg-terracotta);\n --sg-sidebar-primary-foreground: var(--sg-cream);\n --sg-sidebar-accent: var(--sg-fog);\n --sg-sidebar-accent-foreground: var(--sg-charcoal);\n --sg-sidebar-border: var(--sg-silver);\n --sg-sidebar-ring: var(--sg-terracotta);\n}\n\n.dark {\n --sg-background: var(--sg-charcoal);\n --sg-foreground: var(--sg-cloud);\n\n --sg-card: var(--sg-night);\n --sg-card-foreground: var(--sg-cloud);\n\n --sg-popover: var(--sg-night);\n --sg-popover-foreground: var(--sg-cloud);\n\n --sg-primary: var(--sg-terracotta-light);\n --sg-primary-foreground: var(--sg-night);\n\n --sg-secondary: var(--sg-amber);\n --sg-secondary-foreground: var(--sg-night);\n\n --sg-muted: var(--sg-slate);\n --sg-muted-foreground: var(--sg-dove);\n\n --sg-accent: var(--sg-onyx);\n --sg-accent-foreground: var(--sg-cloud);\n\n --sg-destructive: var(--sg-crimson-light);\n --sg-destructive-foreground: var(--sg-cream);\n\n --sg-border: var(--sg-slate);\n --sg-input: var(--sg-slate);\n --sg-ring: var(--sg-terracotta-light);\n\n --sg-sidebar-background: var(--sg-night);\n --sg-sidebar-foreground: var(--sg-cloud);\n --sg-sidebar-primary: var(--sg-terracotta-light);\n --sg-sidebar-primary-foreground: var(--sg-night);\n --sg-sidebar-accent: var(--sg-onyx);\n --sg-sidebar-accent-foreground: var(--sg-cloud);\n --sg-sidebar-border: var(--sg-slate);\n --sg-sidebar-ring: var(--sg-terracotta-light);\n}\n"],"mappings":"AAAA;AAEE,cAAY,MAAM,KAAK,EAAE;AACzB,iBAAe,MAAM,KAAK,KAAK;AAC/B,YAAU,MAAM,KAAK,EAAE;AACvB,eAAa,MAAM,KAAK,KAAK;AAC7B,YAAU,MAAM,KAAK,MAAM;AAC3B,cAAY,MAAM,KAAK,KAAK;AAC5B,cAAY,MAAM,KAAK,MAAM;AAC7B,mBAAiB,MAAM,EAAE,EAAE;AAG3B,mBAAiB,MAAM,KAAK,KAAK;AACjC,yBAAuB,MAAM,KAAK,KAAK;AACvC,cAAY,MAAM,KAAK,KAAK;AAC5B,mBAAiB,MAAM,KAAK,KAAK;AACjC,aAAW,MAAM,KAAK,KAAK;AAG3B,gBAAc,MAAM,KAAK,KAAK;AAC9B,sBAAoB,MAAM,IAAI,IAAI;AAGlC,cAAY,MAAM,KAAK,KAAK;AAC5B,aAAW,MAAM,KAAK,EAAE;AACxB,cAAY,MAAM,KAAK,EAAE;AACzB,aAAW,MAAM,KAAK,KAAK;AAC3B,cAAY,MAAM,KAAK,KAAK;AAG5B,mBAAiB,IAAI;AACrB,mBAAiB,IAAI;AAErB,aAAW,IAAI;AACf,wBAAsB,IAAI;AAE1B,gBAAc,IAAI;AAClB,2BAAyB,IAAI;AAE7B,gBAAc,IAAI;AAClB,2BAAyB,IAAI;AAE7B,kBAAgB,IAAI;AACpB,6BAA2B,IAAI;AAE/B,cAAY,IAAI;AAChB,yBAAuB,IAAI;AAE3B,eAAa,IAAI;AACjB,0BAAwB,IAAI;AAE5B,oBAAkB,IAAI;AACtB,+BAA6B,IAAI;
|
|
1
|
+
{"version":3,"sources":["../../src/css/variables.css"],"sourcesContent":[":root {\n /* Neutrals */\n --sg-black: oklch(0.25 0 0);\n --sg-charcoal: oklch(0.35 0.01 60);\n --sg-ash: oklch(0.44 0 0);\n --sg-silver: oklch(0.78 0.01 60);\n --sg-fog: oklch(0.92 0.005 240);\n --sg-cream: oklch(0.97 0.01 80);\n --sg-white: oklch(0.99 0.005 80);\n --sg-pure-white: oklch(1 0 0);\n\n /* Brand colors */\n --sg-terracotta: oklch(0.52 0.15 35);\n --sg-terracotta-light: oklch(0.65 0.16 35);\n --sg-amber: oklch(0.72 0.15 75);\n --sg-amber-dark: oklch(0.45 0.08 75);\n --sg-sand: oklch(0.93 0.03 80);\n\n /* Feedback */\n --sg-crimson: oklch(0.55 0.22 25);\n --sg-crimson-light: oklch(0.6 0.2 25);\n\n /* Dark mode neutrals */\n --sg-night: oklch(0.22 0.01 60);\n --sg-onyx: oklch(0.28 0 0);\n --sg-slate: oklch(0.43 0 0);\n --sg-dove: oklch(0.82 0.01 60);\n --sg-cloud: oklch(0.88 0.01 60);\n\n /* ── Semantic mapping – Light mode ── */\n --sg-background: var(--sg-cream);\n --sg-foreground: var(--sg-black);\n\n --sg-card: var(--sg-pure-white);\n --sg-card-foreground: var(--sg-black);\n\n --sg-popover: var(--sg-pure-white);\n --sg-popover-foreground: var(--sg-black);\n\n --sg-primary: var(--sg-terracotta);\n --sg-primary-foreground: var(--sg-cream);\n\n --sg-secondary: var(--sg-amber);\n --sg-secondary-foreground: var(--sg-black);\n\n --sg-muted: var(--sg-fog);\n --sg-muted-foreground: var(--sg-ash);\n\n --sg-accent: var(--sg-sand);\n --sg-accent-foreground: var(--sg-charcoal);\n\n --sg-destructive: var(--sg-crimson);\n --sg-destructive-foreground: var(--sg-cream);\n --sg-error: var(--sg-crimson);\n\n --sg-border: var(--sg-silver);\n --sg-input: var(--sg-silver);\n --sg-ring: var(--sg-terracotta);\n\n --sg-radius: 0.5rem;\n\n --sg-sidebar-background: var(--sg-cream);\n --sg-sidebar-foreground: var(--sg-black);\n --sg-sidebar-primary: var(--sg-terracotta);\n --sg-sidebar-primary-foreground: var(--sg-cream);\n --sg-sidebar-accent: var(--sg-fog);\n --sg-sidebar-accent-foreground: var(--sg-charcoal);\n --sg-sidebar-border: var(--sg-silver);\n --sg-sidebar-ring: var(--sg-terracotta);\n}\n\n.dark {\n --sg-background: var(--sg-charcoal);\n --sg-foreground: var(--sg-cloud);\n\n --sg-card: var(--sg-night);\n --sg-card-foreground: var(--sg-cloud);\n\n --sg-popover: var(--sg-night);\n --sg-popover-foreground: var(--sg-cloud);\n\n --sg-primary: var(--sg-terracotta-light);\n --sg-primary-foreground: var(--sg-night);\n\n --sg-secondary: var(--sg-amber);\n --sg-secondary-foreground: var(--sg-night);\n\n --sg-muted: var(--sg-slate);\n --sg-muted-foreground: var(--sg-dove);\n\n --sg-accent: var(--sg-onyx);\n --sg-accent-foreground: var(--sg-cloud);\n\n --sg-destructive: var(--sg-crimson-light);\n --sg-destructive-foreground: var(--sg-cream);\n --sg-error: var(--sg-crimson-light);\n\n --sg-border: var(--sg-slate);\n --sg-input: var(--sg-slate);\n --sg-ring: var(--sg-terracotta-light);\n\n --sg-sidebar-background: var(--sg-night);\n --sg-sidebar-foreground: var(--sg-cloud);\n --sg-sidebar-primary: var(--sg-terracotta-light);\n --sg-sidebar-primary-foreground: var(--sg-night);\n --sg-sidebar-accent: var(--sg-onyx);\n --sg-sidebar-accent-foreground: var(--sg-cloud);\n --sg-sidebar-border: var(--sg-slate);\n --sg-sidebar-ring: var(--sg-terracotta-light);\n}\n"],"mappings":"AAAA;AAEE,cAAY,MAAM,KAAK,EAAE;AACzB,iBAAe,MAAM,KAAK,KAAK;AAC/B,YAAU,MAAM,KAAK,EAAE;AACvB,eAAa,MAAM,KAAK,KAAK;AAC7B,YAAU,MAAM,KAAK,MAAM;AAC3B,cAAY,MAAM,KAAK,KAAK;AAC5B,cAAY,MAAM,KAAK,MAAM;AAC7B,mBAAiB,MAAM,EAAE,EAAE;AAG3B,mBAAiB,MAAM,KAAK,KAAK;AACjC,yBAAuB,MAAM,KAAK,KAAK;AACvC,cAAY,MAAM,KAAK,KAAK;AAC5B,mBAAiB,MAAM,KAAK,KAAK;AACjC,aAAW,MAAM,KAAK,KAAK;AAG3B,gBAAc,MAAM,KAAK,KAAK;AAC9B,sBAAoB,MAAM,IAAI,IAAI;AAGlC,cAAY,MAAM,KAAK,KAAK;AAC5B,aAAW,MAAM,KAAK,EAAE;AACxB,cAAY,MAAM,KAAK,EAAE;AACzB,aAAW,MAAM,KAAK,KAAK;AAC3B,cAAY,MAAM,KAAK,KAAK;AAG5B,mBAAiB,IAAI;AACrB,mBAAiB,IAAI;AAErB,aAAW,IAAI;AACf,wBAAsB,IAAI;AAE1B,gBAAc,IAAI;AAClB,2BAAyB,IAAI;AAE7B,gBAAc,IAAI;AAClB,2BAAyB,IAAI;AAE7B,kBAAgB,IAAI;AACpB,6BAA2B,IAAI;AAE/B,cAAY,IAAI;AAChB,yBAAuB,IAAI;AAE3B,eAAa,IAAI;AACjB,0BAAwB,IAAI;AAE5B,oBAAkB,IAAI;AACtB,+BAA6B,IAAI;AACjC,cAAY,IAAI;AAEhB,eAAa,IAAI;AACjB,cAAY,IAAI;AAChB,aAAW,IAAI;AAEf,eAAa;AAEb,2BAAyB,IAAI;AAC7B,2BAAyB,IAAI;AAC7B,wBAAsB,IAAI;AAC1B,mCAAiC,IAAI;AACrC,uBAAqB,IAAI;AACzB,kCAAgC,IAAI;AACpC,uBAAqB,IAAI;AACzB,qBAAmB,IAAI;AACzB;AAEA,CAAC;AACC,mBAAiB,IAAI;AACrB,mBAAiB,IAAI;AAErB,aAAW,IAAI;AACf,wBAAsB,IAAI;AAE1B,gBAAc,IAAI;AAClB,2BAAyB,IAAI;AAE7B,gBAAc,IAAI;AAClB,2BAAyB,IAAI;AAE7B,kBAAgB,IAAI;AACpB,6BAA2B,IAAI;AAE/B,cAAY,IAAI;AAChB,yBAAuB,IAAI;AAE3B,eAAa,IAAI;AACjB,0BAAwB,IAAI;AAE5B,oBAAkB,IAAI;AACtB,+BAA6B,IAAI;AACjC,cAAY,IAAI;AAEhB,eAAa,IAAI;AACjB,cAAY,IAAI;AAChB,aAAW,IAAI;AAEf,2BAAyB,IAAI;AAC7B,2BAAyB,IAAI;AAC7B,wBAAsB,IAAI;AAC1B,mCAAiC,IAAI;AACrC,uBAAqB,IAAI;AACzB,kCAAgC,IAAI;AACpC,uBAAqB,IAAI;AACzB,qBAAmB,IAAI;AACzB;","names":[]}
|
package/dist/data/posts.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
interface BlogPost {
|
|
2
2
|
id: number;
|
|
3
|
+
slug: string;
|
|
3
4
|
title: string;
|
|
4
5
|
excerpt: string;
|
|
5
6
|
content: string;
|
|
@@ -9,6 +10,10 @@ interface BlogPost {
|
|
|
9
10
|
author: string;
|
|
10
11
|
featured?: boolean;
|
|
11
12
|
categories: string[];
|
|
13
|
+
gallery?: {
|
|
14
|
+
src: string;
|
|
15
|
+
alt?: string;
|
|
16
|
+
}[];
|
|
12
17
|
}
|
|
13
18
|
interface Comment {
|
|
14
19
|
id: string;
|
package/dist/data/posts.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const posts = [
|
|
2
2
|
{
|
|
3
3
|
id: 1,
|
|
4
|
+
slug: "the-art-of-slow-living",
|
|
4
5
|
title: "The Art of Slow Living",
|
|
5
6
|
excerpt: "In a world that never stops moving, there's a quiet revolution happening \u2014 one that asks us to pause, breathe, and savor.",
|
|
6
7
|
content: `In a world that never stops moving, there's a quiet revolution happening \u2014 one that asks us to pause, breathe, and savor the moments that make up our days.
|
|
@@ -23,10 +24,20 @@ The beauty of slow living is that it doesn't require a complete lifestyle overha
|
|
|
23
24
|
originalImage: "https://images.unsplash.com/photo-1506744038136-46273834b3fb?w=800&h=500&fit=crop",
|
|
24
25
|
date: "2026-02-01",
|
|
25
26
|
author: "Elena Marsh",
|
|
26
|
-
categories: ["Mindfulness"]
|
|
27
|
+
categories: ["Mindfulness"],
|
|
28
|
+
featured: true,
|
|
29
|
+
gallery: [
|
|
30
|
+
{ src: "https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=800&h=600&fit=crop", alt: "Mountain lake at dawn" },
|
|
31
|
+
{ src: "https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?w=800&h=600&fit=crop", alt: "Foggy forest path" },
|
|
32
|
+
{ src: "https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=800&h=600&fit=crop", alt: "Sunlit woodland" },
|
|
33
|
+
{ src: "https://images.unsplash.com/photo-1465146344425-f00d5f5c8f07?w=800&h=600&fit=crop", alt: "Wildflowers in a field" },
|
|
34
|
+
{ src: "https://images.unsplash.com/photo-1501854140801-50d01698950b?w=800&h=600&fit=crop", alt: "Aerial view of green hills" },
|
|
35
|
+
{ src: "https://images.unsplash.com/photo-1472214103451-9374bd1c798e?w=800&h=600&fit=crop", alt: "Valley at sunset" }
|
|
36
|
+
]
|
|
27
37
|
},
|
|
28
38
|
{
|
|
29
39
|
id: 2,
|
|
40
|
+
slug: "designing-with-intention",
|
|
30
41
|
title: "Designing with Intention",
|
|
31
42
|
excerpt: "Good design isn't decoration \u2014 it's communication. Every color, typeface, and pixel should earn its place.",
|
|
32
43
|
content: `Good design isn't decoration \u2014 it's communication. Every color, typeface, and pixel should earn its place on the page.
|
|
@@ -50,10 +61,12 @@ The beauty of slow living is that it doesn't require a complete lifestyle overha
|
|
|
50
61
|
originalImage: "https://images.unsplash.com/photo-1558618666-fcd25c85f82e?w=800&h=500&fit=crop",
|
|
51
62
|
date: "2026-01-28",
|
|
52
63
|
author: "Elena Marsh",
|
|
53
|
-
categories: ["Design"]
|
|
64
|
+
categories: ["Design"],
|
|
65
|
+
featured: true
|
|
54
66
|
},
|
|
55
67
|
{
|
|
56
68
|
id: 3,
|
|
69
|
+
slug: "morning-rituals-around-the-world",
|
|
57
70
|
title: "Morning Rituals Around the World",
|
|
58
71
|
excerpt: "From Japanese tea ceremonies to Scandinavian fika, how different cultures start their day reveals what they value most.",
|
|
59
72
|
content: `From Japanese tea ceremonies to Scandinavian fika, how different cultures start their day reveals what they value most.
|
|
@@ -79,10 +92,18 @@ These rituals remind us that how we begin our day shapes everything that follows
|
|
|
79
92
|
originalImage: "https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?w=800&h=500&fit=crop",
|
|
80
93
|
date: "2026-01-20",
|
|
81
94
|
author: "Elena Marsh",
|
|
82
|
-
categories: ["Culture"]
|
|
95
|
+
categories: ["Culture"],
|
|
96
|
+
featured: true,
|
|
97
|
+
gallery: [
|
|
98
|
+
{ src: "https://images.unsplash.com/photo-1545569341-9eb8b30979d9?w=800&h=600&fit=crop", alt: "Japanese temple garden" },
|
|
99
|
+
{ src: "https://images.unsplash.com/photo-1493976040374-85c8e12f0c0e?w=800&h=600&fit=crop", alt: "Traditional tea ceremony" },
|
|
100
|
+
{ src: "https://images.unsplash.com/photo-1504754524776-8f4f37790ca0?w=800&h=600&fit=crop", alt: "Breakfast spread" },
|
|
101
|
+
{ src: "https://images.unsplash.com/photo-1514933651103-005eec06c04b?w=800&h=600&fit=crop", alt: "Italian espresso bar" }
|
|
102
|
+
]
|
|
83
103
|
},
|
|
84
104
|
{
|
|
85
105
|
id: 4,
|
|
106
|
+
slug: "the-beauty-of-imperfection",
|
|
86
107
|
title: "The Beauty of Imperfection",
|
|
87
108
|
excerpt: "Wabi-sabi teaches us to find beauty in the worn, the weathered, and the wonderfully imperfect.",
|
|
88
109
|
content: `Wabi-sabi teaches us to find beauty in the worn, the weathered, and the wonderfully imperfect.
|
|
@@ -104,10 +125,16 @@ The cracked pot, the faded photograph, the well-worn book \u2014 these carry sto
|
|
|
104
125
|
originalImage: "https://images.unsplash.com/photo-1493106819501-66d381c466f3?w=800&h=500&fit=crop",
|
|
105
126
|
date: "2026-01-15",
|
|
106
127
|
author: "Elena Marsh",
|
|
107
|
-
categories: ["Philosophy"]
|
|
128
|
+
categories: ["Philosophy"],
|
|
129
|
+
gallery: [
|
|
130
|
+
{ src: "https://images.unsplash.com/photo-1528297506728-9533d2ac3fa4?w=800&h=600&fit=crop", alt: "Handmade ceramic bowl" },
|
|
131
|
+
{ src: "https://images.unsplash.com/photo-1565193566173-7a0ee3dbe261?w=800&h=600&fit=crop", alt: "Cracked pottery with gold" },
|
|
132
|
+
{ src: "https://images.unsplash.com/photo-1493106641515-6b5631de4bb9?w=800&h=600&fit=crop", alt: "Worn wooden texture" }
|
|
133
|
+
]
|
|
108
134
|
},
|
|
109
135
|
{
|
|
110
136
|
id: 5,
|
|
137
|
+
slug: "building-a-reading-habit",
|
|
111
138
|
title: "Building a Reading Habit",
|
|
112
139
|
excerpt: "Reading more doesn't require willpower \u2014 it requires environment design and a bit of curiosity.",
|
|
113
140
|
content: `Reading more doesn't require willpower \u2014 it requires environment design and a bit of curiosity.
|
|
@@ -137,6 +164,7 @@ The goal isn't to read more books. It's to enjoy reading again.`,
|
|
|
137
164
|
},
|
|
138
165
|
{
|
|
139
166
|
id: 6,
|
|
167
|
+
slug: "color-in-everyday-life",
|
|
140
168
|
title: "Color in Everyday Life",
|
|
141
169
|
excerpt: "We rarely notice it, but color shapes our moods, decisions, and memories more than we realize.",
|
|
142
170
|
content: `We rarely notice it, but color shapes our moods, decisions, and memories more than we realize.
|
|
@@ -164,6 +192,7 @@ Notice the colors around you today. The golden light of morning. The deep green
|
|
|
164
192
|
},
|
|
165
193
|
{
|
|
166
194
|
id: 7,
|
|
195
|
+
slug: "the-power-of-walking",
|
|
167
196
|
title: "The Power of Walking",
|
|
168
197
|
excerpt: "A daily walk is the most underrated tool for creativity, clarity, and calm.",
|
|
169
198
|
content: `Walking is humanity's oldest form of movement \u2014 and still one of its most powerful. Great thinkers from Aristotle to Steve Jobs were known for their walking meetings and strolls.
|
|
@@ -183,6 +212,7 @@ You don't need a trail or a destination. A 20-minute loop around your neighborho
|
|
|
183
212
|
},
|
|
184
213
|
{
|
|
185
214
|
id: 8,
|
|
215
|
+
slug: "minimalism-beyond-aesthetics",
|
|
186
216
|
title: "Minimalism Beyond Aesthetics",
|
|
187
217
|
excerpt: "True minimalism isn't about owning less \u2014 it's about making room for what matters.",
|
|
188
218
|
content: `Minimalism has been reduced to white walls and empty shelves. But the philosophy runs much deeper than aesthetics.
|
|
@@ -202,6 +232,7 @@ Our phones hold more clutter than our homes. Audit your apps, notifications, and
|
|
|
202
232
|
},
|
|
203
233
|
{
|
|
204
234
|
id: 9,
|
|
235
|
+
slug: "the-lost-art-of-letter-writing",
|
|
205
236
|
title: "The Lost Art of Letter Writing",
|
|
206
237
|
excerpt: "In an age of instant messaging, a handwritten letter carries a weight that no text can match.",
|
|
207
238
|
content: `There's something irreplaceable about receiving a handwritten letter. The texture of the paper, the imperfections of the handwriting, the knowledge that someone sat down and gave you their time.
|
|
@@ -221,6 +252,7 @@ Buy a simple set of stationery. Write to someone you care about. It doesn't need
|
|
|
221
252
|
},
|
|
222
253
|
{
|
|
223
254
|
id: 10,
|
|
255
|
+
slug: "cooking-as-meditation",
|
|
224
256
|
title: "Cooking as Meditation",
|
|
225
257
|
excerpt: "The kitchen can be your sanctuary \u2014 if you let the process matter more than the result.",
|
|
226
258
|
content: `We often think of cooking as a chore \u2014 something to get through before we can eat. But approached differently, it becomes a meditative practice.
|
|
@@ -240,6 +272,7 @@ Start with a recipe you love. Prep all your ingredients before you begin. Put on
|
|
|
240
272
|
},
|
|
241
273
|
{
|
|
242
274
|
id: 11,
|
|
275
|
+
slug: "digital-detox-weekend",
|
|
243
276
|
title: "The Digital Detox Weekend",
|
|
244
277
|
excerpt: "48 hours without screens sounds terrifying \u2014 until you try it and realize how much you've been missing.",
|
|
245
278
|
content: `A digital detox weekend isn't about hating technology. It's about remembering what life feels like without constant input.
|