@krizaka/ui 3.9.0 → 3.11.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 (195) hide show
  1. package/README.md +3 -1
  2. package/dist/blocks.css +9 -2
  3. package/dist/chunk-HG65YAV4.js +379 -0
  4. package/dist/chunk-HG65YAV4.js.map +1 -0
  5. package/dist/chunk-OT6HX3PN.js +85 -0
  6. package/dist/chunk-OT6HX3PN.js.map +1 -0
  7. package/dist/index.js +9 -367
  8. package/dist/index.js.map +1 -1
  9. package/dist/link-card.d.ts +7 -1
  10. package/dist/link-card.js +8 -5
  11. package/dist/link-card.js.map +1 -1
  12. package/dist/native.d.ts +48 -1
  13. package/dist/native.js +374 -257
  14. package/dist/native.js.map +1 -1
  15. package/dist/nav-bar.d.ts +86 -3
  16. package/dist/nav-bar.js +88 -2
  17. package/dist/nav-bar.js.map +1 -1
  18. package/dist/showcase.d.ts +69 -0
  19. package/dist/showcase.js +218 -0
  20. package/dist/showcase.js.map +1 -0
  21. package/dist/site-footer.d.ts +172 -0
  22. package/dist/site-footer.js +105 -0
  23. package/dist/site-footer.js.map +1 -0
  24. package/dist/sites-CgJrxejx.d.ts +32 -0
  25. package/dist/sites.d.ts +64 -0
  26. package/dist/sites.js +69 -0
  27. package/dist/sites.js.map +1 -0
  28. package/package.json +47 -9
  29. package/registry/achievement.json +1 -1
  30. package/registry/action-bar.json +1 -1
  31. package/registry/activity-feed.json +1 -1
  32. package/registry/alert.json +1 -1
  33. package/registry/app-shell.json +1 -1
  34. package/registry/argument-card.json +1 -1
  35. package/registry/audio-player.json +1 -1
  36. package/registry/auth-layout.json +1 -1
  37. package/registry/avatar.json +1 -1
  38. package/registry/badge.json +1 -1
  39. package/registry/button.json +1 -1
  40. package/registry/card-grid.json +11 -2
  41. package/registry/card.json +1 -1
  42. package/registry/catalogue-page.json +1 -1
  43. package/registry/changelog-page.json +1 -1
  44. package/registry/chat.json +1 -1
  45. package/registry/checkbox.json +1 -1
  46. package/registry/chip-link.json +1 -1
  47. package/registry/chip.json +1 -1
  48. package/registry/choice-grid.json +1 -1
  49. package/registry/code-block.json +1 -1
  50. package/registry/combobox.json +1 -1
  51. package/registry/command.json +1 -1
  52. package/registry/component-page.json +1 -1
  53. package/registry/confirm-button.json +1 -1
  54. package/registry/contact-page.json +1 -1
  55. package/registry/continue-prompt.json +1 -1
  56. package/registry/countdown.json +1 -1
  57. package/registry/cta-panel.json +1 -1
  58. package/registry/dashboard-layout.json +1 -1
  59. package/registry/data-table.json +1 -1
  60. package/registry/date-picker.json +1 -1
  61. package/registry/decision-list.json +1 -1
  62. package/registry/description-list.json +1 -1
  63. package/registry/detail-layout.json +1 -1
  64. package/registry/dialog.json +1 -1
  65. package/registry/docs-article-page.json +1 -1
  66. package/registry/docs-hub-page.json +1 -1
  67. package/registry/docs-layout.json +1 -1
  68. package/registry/dropdown-menu.json +1 -1
  69. package/registry/empty-state.json +1 -1
  70. package/registry/error-page.json +1 -1
  71. package/registry/examples/card-grid/aligned.d.ts +4 -0
  72. package/registry/examples/card-grid/aligned.js +18 -0
  73. package/registry/examples/card-grid/aligned.tsx +16 -0
  74. package/registry/examples/nav-bar/family-admin.d.ts +4 -0
  75. package/registry/examples/nav-bar/family-admin.js +21 -0
  76. package/registry/examples/nav-bar/family-admin.tsx +20 -0
  77. package/registry/examples/nav-bar/family-java.d.ts +4 -0
  78. package/registry/examples/nav-bar/family-java.js +33 -0
  79. package/registry/examples/nav-bar/family-java.tsx +34 -0
  80. package/registry/examples/nav-bar/family-product.d.ts +4 -0
  81. package/registry/examples/nav-bar/family-product.js +35 -0
  82. package/registry/examples/nav-bar/family-product.tsx +39 -0
  83. package/registry/examples/nav-bar/family-ui.d.ts +4 -0
  84. package/registry/examples/nav-bar/family-ui.js +34 -0
  85. package/registry/examples/nav-bar/family-ui.tsx +35 -0
  86. package/registry/examples/nav-bar/family-www.d.ts +4 -0
  87. package/registry/examples/nav-bar/family-www.js +34 -0
  88. package/registry/examples/nav-bar/family-www.tsx +36 -0
  89. package/registry/examples/showcase/native/slides.d.ts +4 -0
  90. package/registry/examples/showcase/native/slides.dark.png +0 -0
  91. package/registry/examples/showcase/native/slides.js +27 -0
  92. package/registry/examples/showcase/native/slides.light.png +0 -0
  93. package/registry/examples/showcase/native/slides.tsx +28 -0
  94. package/registry/examples/showcase/prompt-image.d.ts +4 -0
  95. package/registry/examples/showcase/prompt-image.js +29 -0
  96. package/registry/examples/showcase/prompt-image.tsx +28 -0
  97. package/registry/examples/showcase/slides.d.ts +4 -0
  98. package/registry/examples/showcase/slides.js +29 -0
  99. package/registry/examples/showcase/slides.tsx +24 -0
  100. package/registry/examples/site-footer/company.d.ts +4 -0
  101. package/registry/examples/site-footer/company.js +26 -0
  102. package/registry/examples/site-footer/company.tsx +23 -0
  103. package/registry/examples/site-footer/open-source-fr.d.ts +4 -0
  104. package/registry/examples/site-footer/open-source-fr.js +17 -0
  105. package/registry/examples/site-footer/open-source-fr.tsx +17 -0
  106. package/registry/examples/site-footer/product.d.ts +4 -0
  107. package/registry/examples/site-footer/product.js +22 -0
  108. package/registry/examples/site-footer/product.tsx +19 -0
  109. package/registry/examples/sites/family.d.ts +4 -0
  110. package/registry/examples/sites/family.js +20 -0
  111. package/registry/examples/sites/family.tsx +30 -0
  112. package/registry/examples/sites/french.d.ts +4 -0
  113. package/registry/examples/sites/french.js +25 -0
  114. package/registry/examples/sites/french.tsx +25 -0
  115. package/registry/field.json +1 -1
  116. package/registry/file-upload.json +1 -1
  117. package/registry/filter-bar.json +1 -1
  118. package/registry/form.json +1 -1
  119. package/registry/gallery-page.json +1 -1
  120. package/registry/glow-card.json +1 -1
  121. package/registry/goal-gauge.json +1 -1
  122. package/registry/how-it-works-page.json +1 -1
  123. package/registry/image-cropper.json +1 -1
  124. package/registry/index.json +65 -7
  125. package/registry/iso.json +1 -1
  126. package/registry/kanban.json +1 -1
  127. package/registry/kbd.json +1 -1
  128. package/registry/landing-page.json +1 -1
  129. package/registry/landscape.json +1 -1
  130. package/registry/legal-page.json +1 -1
  131. package/registry/link-card.json +18 -3
  132. package/registry/list.json +1 -1
  133. package/registry/loader.json +1 -1
  134. package/registry/longform-page.json +1 -1
  135. package/registry/map.json +2 -2
  136. package/registry/markdown.json +1 -1
  137. package/registry/marketing-layout.json +1 -1
  138. package/registry/marquee.json +1 -1
  139. package/registry/mascot-quote.json +1 -1
  140. package/registry/mascot-state.json +1 -1
  141. package/registry/mascots.json +1 -1
  142. package/registry/match-dialog.json +1 -1
  143. package/registry/media-capture.json +1 -1
  144. package/registry/meter.json +1 -1
  145. package/registry/nav-bar.json +257 -13
  146. package/registry/number-ticker.json +1 -1
  147. package/registry/page-header.json +1 -1
  148. package/registry/page-hero.json +1 -1
  149. package/registry/page.json +1 -1
  150. package/registry/pagination.json +1 -1
  151. package/registry/photo-grid.json +1 -1
  152. package/registry/pointer-light.json +1 -1
  153. package/registry/popover.json +1 -1
  154. package/registry/pricing-page.json +1 -1
  155. package/registry/product-page.json +1 -1
  156. package/registry/profile-card.json +1 -1
  157. package/registry/progress.json +1 -1
  158. package/registry/promise-card.json +1 -1
  159. package/registry/radio-group.json +1 -1
  160. package/registry/recipes.json +1 -1
  161. package/registry/scroll-stage.json +1 -1
  162. package/registry/search-field.json +1 -1
  163. package/registry/section-backdrop.json +1 -1
  164. package/registry/separator.json +1 -1
  165. package/registry/settings-layout.json +1 -1
  166. package/registry/showcase.json +421 -0
  167. package/registry/site-footer.json +389 -0
  168. package/registry/sites.json +93 -0
  169. package/registry/skeleton.json +1 -1
  170. package/registry/skip-link.json +1 -1
  171. package/registry/slider.json +1 -1
  172. package/registry/slot.json +1 -1
  173. package/registry/spinner.json +1 -1
  174. package/registry/split-view.json +1 -1
  175. package/registry/stage-banner.json +1 -1
  176. package/registry/stat.json +1 -1
  177. package/registry/status-page.json +1 -1
  178. package/registry/step-progress.json +1 -1
  179. package/registry/stepper.json +1 -1
  180. package/registry/swipe-deck.json +1 -1
  181. package/registry/switch.json +1 -1
  182. package/registry/tabs.json +1 -1
  183. package/registry/tag-input.json +1 -1
  184. package/registry/tag-selector.json +1 -1
  185. package/registry/terminal-replay.json +1 -1
  186. package/registry/theme.json +1 -1
  187. package/registry/toast.json +1 -1
  188. package/registry/toc.json +1 -1
  189. package/registry/tooltip.json +1 -1
  190. package/registry/tree-view.json +1 -1
  191. package/registry/verified-badge.json +1 -1
  192. package/registry/vertical-video.json +1 -1
  193. package/registry/video-player.json +1 -1
  194. package/registry/video-trimmer.json +1 -1
  195. package/registry/virtual.json +1 -1
@@ -0,0 +1,16 @@
1
+ import { ProductLogo } from "@krizaka/ui";
2
+ import { CardGrid } from "@krizaka/ui/card-grid";
3
+ import { LinkCard } from "@krizaka/ui/link-card";
4
+ import { Facts } from "@krizaka/ui/page";
5
+
6
+ // A row of cards whose sentences have different lengths: the cells share one height and each card pins its facts
7
+ // and its way in to the bottom, so the status and the link of every card sit on the same line.
8
+ export default function CardGridAligned() {
9
+ return (
10
+ <CardGrid className="w-full max-w-4xl" min={220} columns={3} reveal={false}>
11
+ <LinkCard layout="stack" href="#orazaka" icon={<ProductLogo id="orazaka" size={28} animated={false} />} title="Orazaka" description="Sovereign AI on your own servers: chat, image, video and voice." extra={<Facts items={[{ label: "Dev preview", tone: "ok" }]} />} cta="Open orazaka" />
12
+ <LinkCard layout="stack" href="#orochia" icon={<ProductLogo id="orochia" size={28} animated={false} />} title="Orochia" description="Creators, paid." extra={<Facts items={[{ label: "Coming soon", tone: "wip" }]} />} cta="Open orochia" />
13
+ <LinkCard layout="stack" href="#yororis" icon={<ProductLogo id="yororis" size={28} animated={false} />} title="Yororis" description="A quiet place to keep what matters to you, built around the moments of a day and the threads between them." extra={<Facts items={[{ label: "Under construction", tone: "wip" }]} />} cta="Open yororis" />
14
+ </CardGrid>
15
+ );
16
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,21 @@
1
+ "use client";
2
+
3
+ // registry/examples/nav-bar/family-admin.tsx
4
+ import { OrochiaLogo } from "@krizaka/ui";
5
+ import { NavBar } from "@krizaka/ui/nav-bar";
6
+ import { familyLabels } from "@krizaka/ui/sites";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ function NavBarFamilyAdmin() {
9
+ return /* @__PURE__ */ jsxs(NavBar.Root, { label: "Console", floating: false, compactAfter: false, children: [
10
+ /* @__PURE__ */ jsxs(NavBar.Brand, { href: "#home", children: [
11
+ /* @__PURE__ */ jsx(OrochiaLogo, { size: 22 }),
12
+ "Orochia admin"
13
+ ] }),
14
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "orochia", labels: familyLabels.en }),
15
+ /* @__PURE__ */ jsx(NavBar.Badge, { env: "DEV" }),
16
+ /* @__PURE__ */ jsx(NavBar.Actions, { children: /* @__PURE__ */ jsx(NavBar.Mobile, { openLabel: "Open the menu", closeLabel: "Close the menu", children: /* @__PURE__ */ jsx(NavBar.Family, { current: "orochia", labels: familyLabels.en }) }) })
17
+ ] });
18
+ }
19
+ export {
20
+ NavBarFamilyAdmin as default
21
+ };
@@ -0,0 +1,20 @@
1
+ import { OrochiaLogo } from "@krizaka/ui";
2
+ import { NavBar } from "@krizaka/ui/nav-bar";
3
+ import { familyLabels } from "@krizaka/ui/sites";
4
+
5
+ // admin.<product>: a console — the mark, the family and `DEV`, no sections, a full-width bar. The family still says
6
+ // where the console belongs; the mobile panel holds only the family.
7
+ export default function NavBarFamilyAdmin() {
8
+ return (
9
+ <NavBar.Root label="Console" floating={false} compactAfter={false}>
10
+ <NavBar.Brand href="#home"><OrochiaLogo size={22} />Orochia admin</NavBar.Brand>
11
+ <NavBar.Family current="orochia" labels={familyLabels.en} />
12
+ <NavBar.Badge env="DEV" />
13
+ <NavBar.Actions>
14
+ <NavBar.Mobile openLabel="Open the menu" closeLabel="Close the menu">
15
+ <NavBar.Family current="orochia" labels={familyLabels.en} />
16
+ </NavBar.Mobile>
17
+ </NavBar.Actions>
18
+ </NavBar.Root>
19
+ );
20
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,33 @@
1
+ "use client";
2
+
3
+ // registry/examples/nav-bar/family-java.tsx
4
+ import { KrizakaLogo } from "@krizaka/ui";
5
+ import { NavBar } from "@krizaka/ui/nav-bar";
6
+ import { familyLabels } from "@krizaka/ui/sites";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ var links = [
9
+ { href: "#start", label: "Get started" },
10
+ { href: "#blocks", label: "Building blocks" },
11
+ { href: "#guides", label: "Guides" }
12
+ ];
13
+ function NavBarFamilyJava() {
14
+ return /* @__PURE__ */ jsxs(NavBar.Root, { label: "Main", children: [
15
+ /* @__PURE__ */ jsxs(NavBar.Brand, { href: "#home", children: [
16
+ /* @__PURE__ */ jsx(KrizakaLogo, { size: 22 }),
17
+ "Krizaka Java"
18
+ ] }),
19
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "java", labels: familyLabels.en }),
20
+ /* @__PURE__ */ jsx(NavBar.Badge, { version: "0.1.0" }),
21
+ /* @__PURE__ */ jsx(NavBar.Items, { children: links.map((l) => /* @__PURE__ */ jsx(NavBar.Link, { href: l.href, active: l.href === "#blocks", children: l.label }, l.href)) }),
22
+ /* @__PURE__ */ jsxs(NavBar.Actions, { children: [
23
+ /* @__PURE__ */ jsx(NavBar.Repo, { href: "https://github.com/krizaka/krizaka-build", label: "Source on GitHub" }),
24
+ /* @__PURE__ */ jsxs(NavBar.Mobile, { openLabel: "Open the menu", closeLabel: "Close the menu", children: [
25
+ links.map((l) => /* @__PURE__ */ jsx(NavBar.MobileLink, { href: l.href, children: l.label }, l.href)),
26
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "java", labels: familyLabels.en })
27
+ ] })
28
+ ] })
29
+ ] });
30
+ }
31
+ export {
32
+ NavBarFamilyJava as default
33
+ };
@@ -0,0 +1,34 @@
1
+ import { KrizakaLogo } from "@krizaka/ui";
2
+ import { NavBar } from "@krizaka/ui/nav-bar";
3
+ import { familyLabels } from "@krizaka/ui/sites";
4
+
5
+ const links = [
6
+ { href: "#start", label: "Get started" },
7
+ { href: "#blocks", label: "Building blocks" },
8
+ { href: "#guides", label: "Guides" },
9
+ ];
10
+
11
+ // java.krizaka.com: Krizaka Java, the version of the building blocks, three sections, the repository.
12
+ export default function NavBarFamilyJava() {
13
+ return (
14
+ <NavBar.Root label="Main">
15
+ <NavBar.Brand href="#home"><KrizakaLogo size={22} />Krizaka Java</NavBar.Brand>
16
+ <NavBar.Family current="java" labels={familyLabels.en} />
17
+ <NavBar.Badge version="0.1.0" />
18
+ <NavBar.Items>
19
+ {links.map((l) => (
20
+ <NavBar.Link key={l.href} href={l.href} active={l.href === "#blocks"}>{l.label}</NavBar.Link>
21
+ ))}
22
+ </NavBar.Items>
23
+ <NavBar.Actions>
24
+ <NavBar.Repo href="https://github.com/krizaka/krizaka-build" label="Source on GitHub" />
25
+ <NavBar.Mobile openLabel="Open the menu" closeLabel="Close the menu">
26
+ {links.map((l) => (
27
+ <NavBar.MobileLink key={l.href} href={l.href}>{l.label}</NavBar.MobileLink>
28
+ ))}
29
+ <NavBar.Family current="java" labels={familyLabels.en} />
30
+ </NavBar.Mobile>
31
+ </NavBar.Actions>
32
+ </NavBar.Root>
33
+ );
34
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,35 @@
1
+ "use client";
2
+
3
+ // registry/examples/nav-bar/family-product.tsx
4
+ import { OrazakaLogo } from "@krizaka/ui";
5
+ import { Button } from "@krizaka/ui/button";
6
+ import { NavBar } from "@krizaka/ui/nav-bar";
7
+ import { familyLabels } from "@krizaka/ui/sites";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ var links = [
10
+ { href: "#how", label: "How it works" },
11
+ { href: "#demo", label: "Demo" },
12
+ { href: "#docs", label: "Docs" }
13
+ ];
14
+ function NavBarFamilyProduct() {
15
+ return /* @__PURE__ */ jsxs(NavBar.Root, { label: "Main", children: [
16
+ /* @__PURE__ */ jsxs(NavBar.Brand, { href: "#home", children: [
17
+ /* @__PURE__ */ jsx(OrazakaLogo, { size: 22 }),
18
+ "Orazaka"
19
+ ] }),
20
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "orazaka", labels: familyLabels.en }),
21
+ /* @__PURE__ */ jsx(NavBar.Badge, { env: "DEV", version: "1.2.3" }),
22
+ /* @__PURE__ */ jsx(NavBar.Items, { children: links.map((l) => /* @__PURE__ */ jsx(NavBar.Link, { href: l.href, active: l.href === "#how", children: l.label }, l.href)) }),
23
+ /* @__PURE__ */ jsxs(NavBar.Actions, { children: [
24
+ /* @__PURE__ */ jsx(NavBar.Repo, { href: "https://github.com/krizaka/orazaka", label: "Source on GitHub" }),
25
+ /* @__PURE__ */ jsx(Button, { asChild: true, variant: "primary", size: "sm", shape: "pill", className: "hidden sm:inline-flex", children: /* @__PURE__ */ jsx("a", { href: "https://www.krizaka.com/contact?topic=orazaka", children: "Talk to us" }) }),
26
+ /* @__PURE__ */ jsxs(NavBar.Mobile, { openLabel: "Open the menu", closeLabel: "Close the menu", children: [
27
+ links.map((l) => /* @__PURE__ */ jsx(NavBar.MobileLink, { href: l.href, children: l.label }, l.href)),
28
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "orazaka", labels: familyLabels.en })
29
+ ] })
30
+ ] })
31
+ ] });
32
+ }
33
+ export {
34
+ NavBarFamilyProduct as default
35
+ };
@@ -0,0 +1,39 @@
1
+ import { OrazakaLogo } from "@krizaka/ui";
2
+ import { Button } from "@krizaka/ui/button";
3
+ import { NavBar } from "@krizaka/ui/nav-bar";
4
+ import { familyLabels } from "@krizaka/ui/sites";
5
+
6
+ const links = [
7
+ { href: "#how", label: "How it works" },
8
+ { href: "#demo", label: "Demo" },
9
+ { href: "#docs", label: "Docs" },
10
+ ];
11
+
12
+ // dev.orazaka.com: the product's mark and the family, `DEV · v1.2.3`, three sections, and “Talk to us” on
13
+ // krizaka.com while sign-up is closed.
14
+ export default function NavBarFamilyProduct() {
15
+ return (
16
+ <NavBar.Root label="Main">
17
+ <NavBar.Brand href="#home"><OrazakaLogo size={22} />Orazaka</NavBar.Brand>
18
+ <NavBar.Family current="orazaka" labels={familyLabels.en} />
19
+ <NavBar.Badge env="DEV" version="1.2.3" />
20
+ <NavBar.Items>
21
+ {links.map((l) => (
22
+ <NavBar.Link key={l.href} href={l.href} active={l.href === "#how"}>{l.label}</NavBar.Link>
23
+ ))}
24
+ </NavBar.Items>
25
+ <NavBar.Actions>
26
+ <NavBar.Repo href="https://github.com/krizaka/orazaka" label="Source on GitHub" />
27
+ <Button asChild variant="primary" size="sm" shape="pill" className="hidden sm:inline-flex">
28
+ <a href="https://www.krizaka.com/contact?topic=orazaka">Talk to us</a>
29
+ </Button>
30
+ <NavBar.Mobile openLabel="Open the menu" closeLabel="Close the menu">
31
+ {links.map((l) => (
32
+ <NavBar.MobileLink key={l.href} href={l.href}>{l.label}</NavBar.MobileLink>
33
+ ))}
34
+ <NavBar.Family current="orazaka" labels={familyLabels.en} />
35
+ </NavBar.Mobile>
36
+ </NavBar.Actions>
37
+ </NavBar.Root>
38
+ );
39
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,34 @@
1
+ "use client";
2
+
3
+ // registry/examples/nav-bar/family-ui.tsx
4
+ import { KrizakaLogo } from "@krizaka/ui";
5
+ import { NavBar } from "@krizaka/ui/nav-bar";
6
+ import { familyLabels } from "@krizaka/ui/sites";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ var links = [
9
+ { href: "#start", label: "Get started" },
10
+ { href: "#foundations", label: "Foundations" },
11
+ { href: "#components", label: "Components" },
12
+ { href: "#templates", label: "Templates" }
13
+ ];
14
+ function NavBarFamilyUi() {
15
+ return /* @__PURE__ */ jsxs(NavBar.Root, { label: "Main", children: [
16
+ /* @__PURE__ */ jsxs(NavBar.Brand, { href: "#home", children: [
17
+ /* @__PURE__ */ jsx(KrizakaLogo, { size: 22 }),
18
+ "Krizaka UI"
19
+ ] }),
20
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "ui", labels: familyLabels.en }),
21
+ /* @__PURE__ */ jsx(NavBar.Badge, { version: "3.9.0" }),
22
+ /* @__PURE__ */ jsx(NavBar.Items, { children: links.map((l) => /* @__PURE__ */ jsx(NavBar.Link, { href: l.href, active: l.href === "#components", children: l.label }, l.href)) }),
23
+ /* @__PURE__ */ jsxs(NavBar.Actions, { children: [
24
+ /* @__PURE__ */ jsx(NavBar.Repo, { href: "https://github.com/krizaka/krizaka-ui", label: "Source on GitHub" }),
25
+ /* @__PURE__ */ jsxs(NavBar.Mobile, { openLabel: "Open the menu", closeLabel: "Close the menu", children: [
26
+ links.map((l) => /* @__PURE__ */ jsx(NavBar.MobileLink, { href: l.href, children: l.label }, l.href)),
27
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "ui", labels: familyLabels.en })
28
+ ] })
29
+ ] })
30
+ ] });
31
+ }
32
+ export {
33
+ NavBarFamilyUi as default
34
+ };
@@ -0,0 +1,35 @@
1
+ import { KrizakaLogo } from "@krizaka/ui";
2
+ import { NavBar } from "@krizaka/ui/nav-bar";
3
+ import { familyLabels } from "@krizaka/ui/sites";
4
+
5
+ const links = [
6
+ { href: "#start", label: "Get started" },
7
+ { href: "#foundations", label: "Foundations" },
8
+ { href: "#components", label: "Components" },
9
+ { href: "#templates", label: "Templates" },
10
+ ];
11
+
12
+ // ui.krizaka.com: Krizaka UI and its family switcher, the version of the packages, four sections, the repository.
13
+ export default function NavBarFamilyUi() {
14
+ return (
15
+ <NavBar.Root label="Main">
16
+ <NavBar.Brand href="#home"><KrizakaLogo size={22} />Krizaka UI</NavBar.Brand>
17
+ <NavBar.Family current="ui" labels={familyLabels.en} />
18
+ <NavBar.Badge version="3.9.0" />
19
+ <NavBar.Items>
20
+ {links.map((l) => (
21
+ <NavBar.Link key={l.href} href={l.href} active={l.href === "#components"}>{l.label}</NavBar.Link>
22
+ ))}
23
+ </NavBar.Items>
24
+ <NavBar.Actions>
25
+ <NavBar.Repo href="https://github.com/krizaka/krizaka-ui" label="Source on GitHub" />
26
+ <NavBar.Mobile openLabel="Open the menu" closeLabel="Close the menu">
27
+ {links.map((l) => (
28
+ <NavBar.MobileLink key={l.href} href={l.href}>{l.label}</NavBar.MobileLink>
29
+ ))}
30
+ <NavBar.Family current="ui" labels={familyLabels.en} />
31
+ </NavBar.Mobile>
32
+ </NavBar.Actions>
33
+ </NavBar.Root>
34
+ );
35
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,34 @@
1
+ "use client";
2
+
3
+ // registry/examples/nav-bar/family-www.tsx
4
+ import { KrizakaLogo } from "@krizaka/ui";
5
+ import { Button } from "@krizaka/ui/button";
6
+ import { NavBar } from "@krizaka/ui/nav-bar";
7
+ import { familyLabels } from "@krizaka/ui/sites";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ var links = [
10
+ { href: "#products", label: "Products" },
11
+ { href: "#open-source", label: "Open source" },
12
+ { href: "#story", label: "Our story" }
13
+ ];
14
+ function NavBarFamilyWww({ defaultOpen = false }) {
15
+ return /* @__PURE__ */ jsxs(NavBar.Root, { label: "Main", className: defaultOpen ? "mb-[30rem]" : void 0, children: [
16
+ /* @__PURE__ */ jsxs(NavBar.Brand, { href: "#home", children: [
17
+ /* @__PURE__ */ jsx(KrizakaLogo, { size: 22 }),
18
+ "Krizaka"
19
+ ] }),
20
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "krizaka", labels: familyLabels.en, defaultOpen }),
21
+ /* @__PURE__ */ jsx(NavBar.Items, { children: links.map((l) => /* @__PURE__ */ jsx(NavBar.Link, { href: l.href, active: l.href === "#products", children: l.label }, l.href)) }),
22
+ /* @__PURE__ */ jsxs(NavBar.Actions, { children: [
23
+ /* @__PURE__ */ jsx(NavBar.Repo, { href: "https://github.com/krizaka/krizaka-com", label: "Source on GitHub" }),
24
+ /* @__PURE__ */ jsx(Button, { variant: "primary", size: "sm", shape: "pill", className: "hidden sm:inline-flex", children: "Contact" }),
25
+ /* @__PURE__ */ jsxs(NavBar.Mobile, { openLabel: "Open the menu", closeLabel: "Close the menu", children: [
26
+ links.map((l) => /* @__PURE__ */ jsx(NavBar.MobileLink, { href: l.href, children: l.label }, l.href)),
27
+ /* @__PURE__ */ jsx(NavBar.Family, { current: "krizaka", labels: familyLabels.en })
28
+ ] })
29
+ ] })
30
+ ] });
31
+ }
32
+ export {
33
+ NavBarFamilyWww as default
34
+ };
@@ -0,0 +1,36 @@
1
+ import { KrizakaLogo } from "@krizaka/ui";
2
+ import { Button } from "@krizaka/ui/button";
3
+ import { NavBar } from "@krizaka/ui/nav-bar";
4
+ import { familyLabels } from "@krizaka/ui/sites";
5
+
6
+ const links = [
7
+ { href: "#products", label: "Products" },
8
+ { href: "#open-source", label: "Open source" },
9
+ { href: "#story", label: "Our story" },
10
+ ];
11
+
12
+ // www.krizaka.com: who I am (the mark and the family switcher) · this site (three sections) · tools (the repository,
13
+ // one action). The chevron opens the family; the mobile panel ends with it.
14
+ export default function NavBarFamilyWww({ defaultOpen = false }: { defaultOpen?: boolean }) {
15
+ return (
16
+ <NavBar.Root label="Main" className={defaultOpen ? "mb-[30rem]" : undefined}>
17
+ <NavBar.Brand href="#home"><KrizakaLogo size={22} />Krizaka</NavBar.Brand>
18
+ <NavBar.Family current="krizaka" labels={familyLabels.en} defaultOpen={defaultOpen} />
19
+ <NavBar.Items>
20
+ {links.map((l) => (
21
+ <NavBar.Link key={l.href} href={l.href} active={l.href === "#products"}>{l.label}</NavBar.Link>
22
+ ))}
23
+ </NavBar.Items>
24
+ <NavBar.Actions>
25
+ <NavBar.Repo href="https://github.com/krizaka/krizaka-com" label="Source on GitHub" />
26
+ <Button variant="primary" size="sm" shape="pill" className="hidden sm:inline-flex">Contact</Button>
27
+ <NavBar.Mobile openLabel="Open the menu" closeLabel="Close the menu">
28
+ {links.map((l) => (
29
+ <NavBar.MobileLink key={l.href} href={l.href}>{l.label}</NavBar.MobileLink>
30
+ ))}
31
+ <NavBar.Family current="krizaka" labels={familyLabels.en} />
32
+ </NavBar.Mobile>
33
+ </NavBar.Actions>
34
+ </NavBar.Root>
35
+ );
36
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,27 @@
1
+ "use client";
2
+
3
+ // registry/examples/showcase/native/slides.tsx
4
+ import { Showcase, Txt } from "@krizaka/ui/native";
5
+ import { View } from "react-native";
6
+ import { jsx } from "react/jsx-runtime";
7
+ var SLIDES = [
8
+ { id: "1", title: "Describe it", body: "Write what you want in a sentence." },
9
+ { id: "2", title: "Generate it", body: "The model runs on your own machine." },
10
+ { id: "3", title: "Reproduce it", body: "Every result keeps its prompt and its seed." }
11
+ ];
12
+ function NativeShowcaseSlides() {
13
+ return /* @__PURE__ */ jsx(View, { style: { width: 360 }, children: /* @__PURE__ */ jsx(
14
+ Showcase,
15
+ {
16
+ label: "How it works",
17
+ items: SLIDES,
18
+ getId: (s) => s.id,
19
+ getTitle: (s) => s.title,
20
+ interval: 5e3,
21
+ renderItem: (s) => /* @__PURE__ */ jsx(View, { style: { padding: 24 }, children: /* @__PURE__ */ jsx(Txt, { children: s.body }) })
22
+ }
23
+ ) });
24
+ }
25
+ export {
26
+ NativeShowcaseSlides as default
27
+ };
@@ -0,0 +1,28 @@
1
+ import { Showcase, Txt } from "@krizaka/ui/native";
2
+ import { View } from "react-native";
3
+
4
+ const SLIDES = [
5
+ { id: "1", title: "Describe it", body: "Write what you want in a sentence." },
6
+ { id: "2", title: "Generate it", body: "The model runs on your own machine." },
7
+ { id: "3", title: "Reproduce it", body: "Every result keeps its prompt and its seed." },
8
+ ];
9
+
10
+ // Swipe or wait: the bar fills over 5 s and moves on; every segment is a button, the pause button stops it.
11
+ export default function NativeShowcaseSlides() {
12
+ return (
13
+ <View style={{ width: 360 }}>
14
+ <Showcase
15
+ label="How it works"
16
+ items={SLIDES}
17
+ getId={(s) => s.id}
18
+ getTitle={(s) => s.title}
19
+ interval={5000}
20
+ renderItem={(s) => (
21
+ <View style={{ padding: 24 }}>
22
+ <Txt>{s.body}</Txt>
23
+ </View>
24
+ )}
25
+ />
26
+ </View>
27
+ );
28
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,29 @@
1
+ "use client";
2
+
3
+ // registry/examples/showcase/prompt-image.tsx
4
+ import { Button } from "@krizaka/ui/button";
5
+ import { Showcase, useTypedText } from "@krizaka/ui/showcase";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ var CDN = "https://krizaka-assets.b-cdn.net/site/people/ui";
8
+ var SHOTS = [
9
+ { id: "a", title: "Golden-hour editorial", prompt: "A woman on a rooftop at golden hour, soft rim light, 85mm.", src: `${CDN}/camille-512.9573eaa0b8.webp` },
10
+ { id: "b", title: "Sunday market", prompt: "A man choosing peaches at a market stall, warm morning haze.", src: `${CDN}/tomas-256.7eaab80903.webp` },
11
+ { id: "c", title: "Backstage", prompt: "A singer in a dressing-room mirror, tungsten bulbs, grain.", src: `${CDN}/noor-256.c340c41421.webp` }
12
+ ];
13
+ function Slide({ shot, active }) {
14
+ const typed = useTypedText(shot.prompt, { active });
15
+ return /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-6 sm:grid-cols-2", children: [
16
+ /* @__PURE__ */ jsx("img", { src: shot.src, alt: shot.title, className: "aspect-square w-full rounded-xl object-cover" }),
17
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-3", children: [
18
+ /* @__PURE__ */ jsx("p", { className: "sr-only", children: shot.prompt }),
19
+ /* @__PURE__ */ jsx("p", { "aria-hidden": true, className: "m-0 min-h-20 font-mono text-sm text-fg", children: typed.text }),
20
+ /* @__PURE__ */ jsx(Button, { variant: "secondary", size: "sm", children: "Reproduce it" })
21
+ ] })
22
+ ] });
23
+ }
24
+ function ShowcasePromptImage() {
25
+ return /* @__PURE__ */ jsx(Showcase, { label: "Prompt to image", className: "w-full max-w-3xl", items: SHOTS, getId: (s) => s.id, getTitle: (s) => s.title, renderItem: (shot, { active }) => /* @__PURE__ */ jsx(Slide, { shot, active }) });
26
+ }
27
+ export {
28
+ ShowcasePromptImage as default
29
+ };
@@ -0,0 +1,28 @@
1
+ import { Button } from "@krizaka/ui/button";
2
+ import { Showcase, useTypedText } from "@krizaka/ui/showcase";
3
+
4
+ const CDN = "https://krizaka-assets.b-cdn.net/site/people/ui";
5
+ const SHOTS = [
6
+ { id: "a", title: "Golden-hour editorial", prompt: "A woman on a rooftop at golden hour, soft rim light, 85mm.", src: `${CDN}/camille-512.9573eaa0b8.webp` },
7
+ { id: "b", title: "Sunday market", prompt: "A man choosing peaches at a market stall, warm morning haze.", src: `${CDN}/tomas-256.7eaab80903.webp` },
8
+ { id: "c", title: "Backstage", prompt: "A singer in a dressing-room mirror, tungsten bulbs, grain.", src: `${CDN}/noor-256.c340c41421.webp` },
9
+ ];
10
+
11
+ function Slide({ shot, active }: { shot: (typeof SHOTS)[number]; active: boolean }) {
12
+ const typed = useTypedText(shot.prompt, { active });
13
+ return (
14
+ <div className="grid items-center gap-6 sm:grid-cols-2">
15
+ <img src={shot.src} alt={shot.title} className="aspect-square w-full rounded-xl object-cover" />
16
+ <div className="flex flex-col items-start gap-3">
17
+ <p className="sr-only">{shot.prompt}</p>
18
+ <p aria-hidden className="m-0 min-h-20 font-mono text-sm text-fg">{typed.text}</p>
19
+ <Button variant="secondary" size="sm">Reproduce it</Button>
20
+ </div>
21
+ </div>
22
+ );
23
+ }
24
+
25
+ // Image left, prompt and action right; the bar below fills over 6 s and moves on, every segment is a button.
26
+ export default function ShowcasePromptImage() {
27
+ return <Showcase label="Prompt to image" className="w-full max-w-3xl" items={SHOTS} getId={(s) => s.id} getTitle={(s) => s.title} renderItem={(shot, { active }) => <Slide shot={shot} active={active} />} />;
28
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,29 @@
1
+ "use client";
2
+
3
+ // registry/examples/showcase/slides.tsx
4
+ import { Showcase } from "@krizaka/ui/showcase";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var SLIDES = [
7
+ { id: "1", title: "Describe it", body: "Write what you want in a sentence." },
8
+ { id: "2", title: "Generate it", body: "The model runs on your own machine." },
9
+ { id: "3", title: "Reproduce it", body: "Every result keeps its prompt and its seed." }
10
+ ];
11
+ function ShowcaseSlides() {
12
+ return /* @__PURE__ */ jsx(
13
+ Showcase,
14
+ {
15
+ label: "How it works",
16
+ className: "w-full max-w-md",
17
+ items: SLIDES,
18
+ getId: (s) => s.id,
19
+ getTitle: (s) => s.title,
20
+ interval: 4e3,
21
+ transition: "slide",
22
+ loop: false,
23
+ renderItem: (s) => /* @__PURE__ */ jsx("p", { className: "m-0 rounded-xl border border-border-default bg-surface-1 p-6 text-fg", children: s.body })
24
+ }
25
+ );
26
+ }
27
+ export {
28
+ ShowcaseSlides as default
29
+ };
@@ -0,0 +1,24 @@
1
+ import { Showcase } from "@krizaka/ui/showcase";
2
+
3
+ const SLIDES = [
4
+ { id: "1", title: "Describe it", body: "Write what you want in a sentence." },
5
+ { id: "2", title: "Generate it", body: "The model runs on your own machine." },
6
+ { id: "3", title: "Reproduce it", body: "Every result keeps its prompt and its seed." },
7
+ ];
8
+
9
+ // Any content in a slide; 4 s each, a slide effect, no loop back to the first. The pointer, a keyboard focus and a hidden tab hold it still.
10
+ export default function ShowcaseSlides() {
11
+ return (
12
+ <Showcase
13
+ label="How it works"
14
+ className="w-full max-w-md"
15
+ items={SLIDES}
16
+ getId={(s) => s.id}
17
+ getTitle={(s) => s.title}
18
+ interval={4000}
19
+ transition="slide"
20
+ loop={false}
21
+ renderItem={(s) => <p className="m-0 rounded-xl border border-border-default bg-surface-1 p-6 text-fg">{s.body}</p>}
22
+ />
23
+ );
24
+ }
@@ -0,0 +1,4 @@
1
+ import type { ComponentType } from "react";
2
+ /** A named example of the @krizaka/ui registry; `defaultOpen` opens what it opens (a dialog, a menu, toasts) at load. */
3
+ declare const Example: ComponentType<{ defaultOpen?: boolean }>;
4
+ export default Example;
@@ -0,0 +1,26 @@
1
+ "use client";
2
+
3
+ // registry/examples/site-footer/company.tsx
4
+ import { SiteFooter } from "@krizaka/ui/site-footer";
5
+ import { familyLabels } from "@krizaka/ui/sites";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
+ function SiteFooterCompany() {
8
+ return /* @__PURE__ */ jsx(
9
+ SiteFooter,
10
+ {
11
+ current: "krizaka",
12
+ labels: familyLabels.en,
13
+ legal: /* @__PURE__ */ jsxs(Fragment, { children: [
14
+ /* @__PURE__ */ jsx(SiteFooter.Link, { href: "#privacy", children: "Privacy" }),
15
+ /* @__PURE__ */ jsx(SiteFooter.Link, { href: "#terms", children: "Terms" })
16
+ ] }),
17
+ children: /* @__PURE__ */ jsxs(SiteFooter.Column, { title: "Company", children: [
18
+ /* @__PURE__ */ jsx(SiteFooter.Link, { href: "#story", active: true, children: "Our story" }),
19
+ /* @__PURE__ */ jsx(SiteFooter.Link, { href: "#contact", children: "Contact" })
20
+ ] })
21
+ }
22
+ );
23
+ }
24
+ export {
25
+ SiteFooterCompany as default
26
+ };
@@ -0,0 +1,23 @@
1
+ import { SiteFooter } from "@krizaka/ui/site-footer";
2
+ import { familyLabels } from "@krizaka/ui/sites";
3
+
4
+ // www.krizaka.com: “A Krizaka company”, the company's own columns, the legal links at the end of the signature line.
5
+ export default function SiteFooterCompany() {
6
+ return (
7
+ <SiteFooter
8
+ current="krizaka"
9
+ labels={familyLabels.en}
10
+ legal={
11
+ <>
12
+ <SiteFooter.Link href="#privacy">Privacy</SiteFooter.Link>
13
+ <SiteFooter.Link href="#terms">Terms</SiteFooter.Link>
14
+ </>
15
+ }
16
+ >
17
+ <SiteFooter.Column title="Company">
18
+ <SiteFooter.Link href="#story" active>Our story</SiteFooter.Link>
19
+ <SiteFooter.Link href="#contact">Contact</SiteFooter.Link>
20
+ </SiteFooter.Column>
21
+ </SiteFooter>
22
+ );
23
+ }