@krizaka/ui 2.8.0 → 2.10.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.
- package/README.md +73 -5
- package/dist/achievement.d.ts +54 -0
- package/dist/achievement.js +73 -0
- package/dist/achievement.js.map +1 -0
- package/dist/app-shell.d.ts +203 -0
- package/dist/app-shell.js +137 -0
- package/dist/app-shell.js.map +1 -0
- package/dist/auth-layout.d.ts +136 -0
- package/dist/auth-layout.js +75 -0
- package/dist/auth-layout.js.map +1 -0
- package/dist/blocks.css +247 -0
- package/dist/catalogue-page.d.ts +34 -0
- package/dist/catalogue-page.js +26 -0
- package/dist/catalogue-page.js.map +1 -0
- package/dist/changelog-page.d.ts +50 -0
- package/dist/changelog-page.js +27 -0
- package/dist/changelog-page.js.map +1 -0
- package/dist/choice-grid.d.ts +84 -0
- package/dist/choice-grid.js +141 -0
- package/dist/choice-grid.js.map +1 -0
- package/dist/chunk-555LWYIN.js +11 -0
- package/dist/chunk-555LWYIN.js.map +1 -0
- package/dist/chunk-AZPKXP3O.js +36 -0
- package/dist/chunk-AZPKXP3O.js.map +1 -0
- package/dist/{chunk-NOVUREEC.js → chunk-JZPVUJIX.js} +25 -3
- package/dist/chunk-JZPVUJIX.js.map +1 -0
- package/dist/chunk-KNBYZGSQ.js +11 -0
- package/dist/chunk-KNBYZGSQ.js.map +1 -0
- package/dist/chunk-VCAAHCHL.js +17 -0
- package/dist/chunk-VCAAHCHL.js.map +1 -0
- package/dist/code-block.js +23 -44
- package/dist/code-block.js.map +1 -1
- package/dist/component-page.d.ts +41 -0
- package/dist/component-page.js +17 -0
- package/dist/component-page.js.map +1 -0
- package/dist/contact-page.d.ts +31 -0
- package/dist/contact-page.js +26 -0
- package/dist/contact-page.js.map +1 -0
- package/dist/continue-prompt.d.ts +48 -0
- package/dist/continue-prompt.js +200 -0
- package/dist/continue-prompt.js.map +1 -0
- package/dist/dashboard-layout.d.ts +139 -0
- package/dist/dashboard-layout.js +68 -0
- package/dist/dashboard-layout.js.map +1 -0
- package/dist/detail-layout.d.ts +126 -0
- package/dist/detail-layout.js +48 -0
- package/dist/detail-layout.js.map +1 -0
- package/dist/docs-article-page.d.ts +54 -0
- package/dist/docs-article-page.js +29 -0
- package/dist/docs-article-page.js.map +1 -0
- package/dist/docs-hub-page.d.ts +72 -0
- package/dist/docs-hub-page.js +45 -0
- package/dist/docs-hub-page.js.map +1 -0
- package/dist/docs-layout.d.ts +78 -0
- package/dist/docs-layout.js +60 -0
- package/dist/docs-layout.js.map +1 -0
- package/dist/error-page.d.ts +22 -0
- package/dist/error-page.js +23 -0
- package/dist/error-page.js.map +1 -0
- package/dist/gallery-page.d.ts +50 -0
- package/dist/gallery-page.js +30 -0
- package/dist/gallery-page.js.map +1 -0
- package/dist/{geometry-CXrAW34x.d.ts → geometry-CbOU4rtL.d.ts} +4 -4
- package/dist/goal-gauge.d.ts +38 -0
- package/dist/goal-gauge.js +53 -0
- package/dist/goal-gauge.js.map +1 -0
- package/dist/how-it-works-page.d.ts +48 -0
- package/dist/how-it-works-page.js +28 -0
- package/dist/how-it-works-page.js.map +1 -0
- package/dist/index.d.ts +16 -6
- package/dist/index.js +115 -24
- package/dist/index.js.map +1 -1
- package/dist/landing-page.d.ts +58 -0
- package/dist/landing-page.js +42 -0
- package/dist/landing-page.js.map +1 -0
- package/dist/landscape.d.ts +41 -0
- package/dist/landscape.js +836 -0
- package/dist/landscape.js.map +1 -0
- package/dist/legal-page.d.ts +34 -0
- package/dist/legal-page.js +18 -0
- package/dist/legal-page.js.map +1 -0
- package/dist/longform-page.d.ts +42 -0
- package/dist/longform-page.js +29 -0
- package/dist/longform-page.js.map +1 -0
- package/dist/marketing-layout.d.ts +60 -0
- package/dist/marketing-layout.js +25 -0
- package/dist/marketing-layout.js.map +1 -0
- package/dist/mascot-quote.d.ts +4 -4
- package/dist/mascot-quote.js +23 -1
- package/dist/mascot-quote.js.map +1 -1
- package/dist/mascot-state.d.ts +2 -2
- package/dist/mascot-state.js +1 -1
- package/dist/mascot-state.js.map +1 -1
- package/dist/mascots.d.ts +18 -5
- package/dist/mascots.js +87 -2
- package/dist/mascots.js.map +1 -1
- package/dist/native.d.ts +88 -11
- package/dist/native.js +640 -297
- package/dist/native.js.map +1 -1
- package/dist/pricing-page.d.ts +62 -0
- package/dist/pricing-page.js +71 -0
- package/dist/pricing-page.js.map +1 -0
- package/dist/product-page.d.ts +83 -0
- package/dist/product-page.js +60 -0
- package/dist/product-page.js.map +1 -0
- package/dist/profile-card.d.ts +85 -0
- package/dist/profile-card.js +87 -0
- package/dist/profile-card.js.map +1 -0
- package/dist/promise-card.d.ts +28 -0
- package/dist/promise-card.js +29 -0
- package/dist/promise-card.js.map +1 -0
- package/dist/scroll-stage.d.ts +603 -0
- package/dist/scroll-stage.js +59 -0
- package/dist/scroll-stage.js.map +1 -0
- package/dist/settings-layout.d.ts +154 -0
- package/dist/settings-layout.js +57 -0
- package/dist/settings-layout.js.map +1 -0
- package/dist/split-view.d.ts +106 -0
- package/dist/split-view.js +41 -0
- package/dist/split-view.js.map +1 -0
- package/dist/stage-banner.d.ts +34 -0
- package/dist/stage-banner.js +26 -0
- package/dist/stage-banner.js.map +1 -0
- package/dist/status-page.d.ts +42 -0
- package/dist/status-page.js +28 -0
- package/dist/status-page.js.map +1 -0
- package/dist/story-variant-CLn4H5Nt.d.ts +4 -0
- package/dist/story.css +432 -0
- package/package.json +478 -10
- package/registry/achievement.json +322 -0
- package/registry/action-bar.json +1 -1
- package/registry/alert.json +1 -1
- package/registry/app-shell.json +451 -0
- package/registry/argument-card.json +1 -1
- package/registry/audio-player.json +1 -1
- package/registry/auth-layout.json +230 -0
- package/registry/avatar.json +1 -1
- package/registry/badge.json +1 -1
- package/registry/button.json +5 -5
- package/registry/card-grid.json +5 -5
- package/registry/card.json +3 -3
- package/registry/catalogue-page.json +240 -0
- package/registry/changelog-page.json +226 -0
- package/registry/checkbox.json +1 -1
- package/registry/chip-link.json +1 -1
- package/registry/chip.json +1 -1
- package/registry/choice-grid.json +318 -0
- package/registry/code-block.json +1 -1
- package/registry/combobox.json +1 -1
- package/registry/command.json +1 -1
- package/registry/component-page.json +227 -0
- package/registry/confirm-button.json +3 -3
- package/registry/contact-page.json +212 -0
- package/registry/continue-prompt.json +312 -0
- package/registry/countdown.json +1 -1
- package/registry/cta-panel.json +1 -1
- package/registry/dashboard-layout.json +273 -0
- package/registry/data-table.json +1 -1
- package/registry/date-picker.json +1 -1
- package/registry/decision-list.json +1 -1
- package/registry/detail-layout.json +233 -0
- package/registry/dialog.json +1 -1
- package/registry/docs-article-page.json +242 -0
- package/registry/docs-hub-page.json +270 -0
- package/registry/docs-layout.json +148 -0
- package/registry/dropdown-menu.json +3 -3
- package/registry/empty-state.json +1 -1
- package/registry/error-page.json +183 -0
- package/registry/examples/achievement/arcade.d.ts +4 -0
- package/registry/examples/achievement/arcade.js +15 -0
- package/registry/examples/achievement/arcade.tsx +12 -0
- package/registry/examples/achievement/milestones.d.ts +4 -0
- package/registry/examples/achievement/milestones.js +15 -0
- package/registry/examples/achievement/milestones.tsx +12 -0
- package/registry/examples/app-shell/admin-console.d.ts +4 -0
- package/registry/examples/app-shell/admin-console.js +52 -0
- package/registry/examples/app-shell/admin-console.tsx +64 -0
- package/registry/examples/app-shell/basic.d.ts +4 -0
- package/registry/examples/app-shell/basic.js +37 -0
- package/registry/examples/app-shell/basic.tsx +31 -0
- package/registry/examples/app-shell/orochia-studio.d.ts +4 -0
- package/registry/examples/app-shell/orochia-studio.js +89 -0
- package/registry/examples/app-shell/orochia-studio.tsx +101 -0
- package/registry/examples/auth-layout/onboarding.d.ts +4 -0
- package/registry/examples/auth-layout/onboarding.js +56 -0
- package/registry/examples/auth-layout/onboarding.tsx +47 -0
- package/registry/examples/auth-layout/sign-in.d.ts +4 -0
- package/registry/examples/auth-layout/sign-in.js +55 -0
- package/registry/examples/auth-layout/sign-in.tsx +47 -0
- package/registry/examples/auth-layout/verify.d.ts +4 -0
- package/registry/examples/auth-layout/verify.js +23 -0
- package/registry/examples/auth-layout/verify.tsx +19 -0
- package/registry/examples/catalogue-page/components.d.ts +4 -0
- package/registry/examples/catalogue-page/components.js +33 -0
- package/registry/examples/catalogue-page/components.tsx +36 -0
- package/registry/examples/changelog-page/releases.d.ts +4 -0
- package/registry/examples/changelog-page/releases.js +44 -0
- package/registry/examples/changelog-page/releases.tsx +39 -0
- package/registry/examples/choice-grid/line-up.d.ts +4 -0
- package/registry/examples/choice-grid/line-up.js +37 -0
- package/registry/examples/choice-grid/line-up.tsx +32 -0
- package/registry/examples/choice-grid/plans.d.ts +4 -0
- package/registry/examples/choice-grid/plans.js +28 -0
- package/registry/examples/choice-grid/plans.tsx +24 -0
- package/registry/examples/component-page/button.d.ts +4 -0
- package/registry/examples/component-page/button.js +33 -0
- package/registry/examples/component-page/button.tsx +30 -0
- package/registry/examples/contact-page/team.d.ts +4 -0
- package/registry/examples/contact-page/team.js +39 -0
- package/registry/examples/contact-page/team.tsx +38 -0
- package/registry/examples/continue-prompt/arcade.d.ts +4 -0
- package/registry/examples/continue-prompt/arcade.js +28 -0
- package/registry/examples/continue-prompt/arcade.tsx +25 -0
- package/registry/examples/continue-prompt/offer.d.ts +4 -0
- package/registry/examples/continue-prompt/offer.js +24 -0
- package/registry/examples/continue-prompt/offer.tsx +19 -0
- package/registry/examples/dashboard-layout/orazaka-eric.d.ts +4 -0
- package/registry/examples/dashboard-layout/orazaka-eric.js +58 -0
- package/registry/examples/dashboard-layout/orazaka-eric.tsx +80 -0
- package/registry/examples/dashboard-layout/widgets.d.ts +4 -0
- package/registry/examples/dashboard-layout/widgets.js +17 -0
- package/registry/examples/dashboard-layout/widgets.tsx +22 -0
- package/registry/examples/detail-layout/job.d.ts +4 -0
- package/registry/examples/detail-layout/job.js +25 -0
- package/registry/examples/detail-layout/job.tsx +20 -0
- package/registry/examples/detail-layout/video.d.ts +4 -0
- package/registry/examples/detail-layout/video.js +44 -0
- package/registry/examples/detail-layout/video.tsx +53 -0
- package/registry/examples/docs-article-page/cli.d.ts +4 -0
- package/registry/examples/docs-article-page/cli.js +33 -0
- package/registry/examples/docs-article-page/cli.tsx +38 -0
- package/registry/examples/docs-hub-page/krizaka.d.ts +4 -0
- package/registry/examples/docs-hub-page/krizaka.js +46 -0
- package/registry/examples/docs-hub-page/krizaka.tsx +37 -0
- package/registry/examples/docs-layout/page.d.ts +4 -0
- package/registry/examples/docs-layout/page.js +26 -0
- package/registry/examples/docs-layout/page.tsx +30 -0
- package/registry/examples/error-page/not-found.d.ts +4 -0
- package/registry/examples/error-page/not-found.js +24 -0
- package/registry/examples/error-page/not-found.tsx +19 -0
- package/registry/examples/gallery-page/made-here.d.ts +4 -0
- package/registry/examples/gallery-page/made-here.js +34 -0
- package/registry/examples/gallery-page/made-here.tsx +32 -0
- package/registry/examples/goal-gauge/arcade.d.ts +4 -0
- package/registry/examples/goal-gauge/arcade.js +11 -0
- package/registry/examples/goal-gauge/arcade.tsx +10 -0
- package/registry/examples/goal-gauge/challenge.d.ts +4 -0
- package/registry/examples/goal-gauge/challenge.js +11 -0
- package/registry/examples/goal-gauge/challenge.tsx +10 -0
- package/registry/examples/goal-gauge/drain.d.ts +4 -0
- package/registry/examples/goal-gauge/drain.js +11 -0
- package/registry/examples/goal-gauge/drain.tsx +10 -0
- package/registry/examples/goal-gauge/native/default.d.ts +4 -0
- package/registry/examples/goal-gauge/native/default.dark.png +0 -0
- package/registry/examples/goal-gauge/native/default.js +15 -0
- package/registry/examples/goal-gauge/native/default.light.png +0 -0
- package/registry/examples/goal-gauge/native/default.tsx +12 -0
- package/registry/examples/how-it-works-page/orazaka.d.ts +4 -0
- package/registry/examples/how-it-works-page/orazaka.js +30 -0
- package/registry/examples/how-it-works-page/orazaka.tsx +26 -0
- package/registry/examples/landing-page/krizaka.d.ts +4 -0
- package/registry/examples/landing-page/krizaka.js +44 -0
- package/registry/examples/landing-page/krizaka.tsx +44 -0
- package/registry/examples/landscape/backdrop.d.ts +4 -0
- package/registry/examples/landscape/backdrop.js +14 -0
- package/registry/examples/landscape/backdrop.tsx +11 -0
- package/registry/examples/landscape/brand.d.ts +4 -0
- package/registry/examples/landscape/brand.js +11 -0
- package/registry/examples/landscape/brand.tsx +10 -0
- package/registry/examples/legal-page/privacy.d.ts +4 -0
- package/registry/examples/legal-page/privacy.js +24 -0
- package/registry/examples/legal-page/privacy.tsx +19 -0
- package/registry/examples/longform-page/story.d.ts +4 -0
- package/registry/examples/longform-page/story.js +38 -0
- package/registry/examples/longform-page/story.tsx +35 -0
- package/registry/examples/marketing-layout/basic.d.ts +4 -0
- package/registry/examples/marketing-layout/basic.js +31 -0
- package/registry/examples/marketing-layout/basic.tsx +28 -0
- package/registry/examples/marketing-layout/docs-hub.d.ts +4 -0
- package/registry/examples/marketing-layout/docs-hub.js +37 -0
- package/registry/examples/marketing-layout/docs-hub.tsx +44 -0
- package/registry/examples/marketing-layout/pricing.d.ts +4 -0
- package/registry/examples/marketing-layout/pricing.js +45 -0
- package/registry/examples/marketing-layout/pricing.tsx +55 -0
- package/registry/examples/marketing-layout/product-page.d.ts +4 -0
- package/registry/examples/marketing-layout/product-page.js +79 -0
- package/registry/examples/marketing-layout/product-page.tsx +83 -0
- package/registry/examples/mascots/crane.d.ts +4 -0
- package/registry/examples/mascots/crane.js +19 -0
- package/registry/examples/mascots/crane.tsx +18 -0
- package/registry/examples/mascots/flock.tsx +2 -1
- package/registry/examples/mascots/native/crane.d.ts +4 -0
- package/registry/examples/mascots/native/crane.dark.png +0 -0
- package/registry/examples/mascots/native/crane.js +21 -0
- package/registry/examples/mascots/native/crane.light.png +0 -0
- package/registry/examples/mascots/native/crane.tsx +18 -0
- package/registry/examples/mascots/native/phoenix.d.ts +4 -0
- package/registry/examples/mascots/native/phoenix.dark.png +0 -0
- package/registry/examples/mascots/native/phoenix.js +21 -0
- package/registry/examples/mascots/native/phoenix.light.png +0 -0
- package/registry/examples/mascots/native/phoenix.tsx +18 -0
- package/registry/examples/mascots/phoenix.d.ts +4 -0
- package/registry/examples/mascots/phoenix.js +14 -0
- package/registry/examples/mascots/phoenix.tsx +11 -0
- package/registry/examples/pricing-page/credits.d.ts +4 -0
- package/registry/examples/pricing-page/credits.js +41 -0
- package/registry/examples/pricing-page/credits.tsx +33 -0
- package/registry/examples/product-page/orazaka.d.ts +4 -0
- package/registry/examples/product-page/orazaka.js +44 -0
- package/registry/examples/product-page/orazaka.tsx +36 -0
- package/registry/examples/profile-card/arcade.d.ts +4 -0
- package/registry/examples/profile-card/arcade.js +25 -0
- package/registry/examples/profile-card/arcade.tsx +19 -0
- package/registry/examples/profile-card/creator.d.ts +4 -0
- package/registry/examples/profile-card/creator.js +31 -0
- package/registry/examples/profile-card/creator.tsx +26 -0
- package/registry/examples/profile-card/match.d.ts +4 -0
- package/registry/examples/profile-card/match.js +25 -0
- package/registry/examples/profile-card/match.tsx +19 -0
- package/registry/examples/profile-card/native/default.d.ts +4 -0
- package/registry/examples/profile-card/native/default.dark.png +0 -0
- package/registry/examples/profile-card/native/default.js +27 -0
- package/registry/examples/profile-card/native/default.light.png +0 -0
- package/registry/examples/profile-card/native/default.tsx +22 -0
- package/registry/examples/promise-card/arcade.d.ts +4 -0
- package/registry/examples/promise-card/arcade.js +25 -0
- package/registry/examples/promise-card/arcade.tsx +19 -0
- package/registry/examples/promise-card/guarantee.d.ts +4 -0
- package/registry/examples/promise-card/guarantee.js +23 -0
- package/registry/examples/promise-card/guarantee.tsx +17 -0
- package/registry/examples/scroll-stage/arcade.d.ts +4 -0
- package/registry/examples/scroll-stage/arcade.js +16 -0
- package/registry/examples/scroll-stage/arcade.tsx +15 -0
- package/registry/examples/scroll-stage/chapters.d.ts +4 -0
- package/registry/examples/scroll-stage/chapters.js +25 -0
- package/registry/examples/scroll-stage/chapters.tsx +22 -0
- package/registry/examples/settings-layout/account.d.ts +4 -0
- package/registry/examples/settings-layout/account.js +51 -0
- package/registry/examples/settings-layout/account.tsx +50 -0
- package/registry/examples/settings-layout/sections.d.ts +4 -0
- package/registry/examples/settings-layout/sections.js +27 -0
- package/registry/examples/settings-layout/sections.tsx +24 -0
- package/registry/examples/split-view/empty.d.ts +4 -0
- package/registry/examples/split-view/empty.js +19 -0
- package/registry/examples/split-view/empty.tsx +13 -0
- package/registry/examples/split-view/messages.d.ts +4 -0
- package/registry/examples/split-view/messages.js +49 -0
- package/registry/examples/split-view/messages.tsx +52 -0
- package/registry/examples/stage-banner/round.d.ts +4 -0
- package/registry/examples/stage-banner/round.js +14 -0
- package/registry/examples/stage-banner/round.tsx +11 -0
- package/registry/examples/stage-banner/steps.d.ts +4 -0
- package/registry/examples/stage-banner/steps.js +14 -0
- package/registry/examples/stage-banner/steps.tsx +11 -0
- package/registry/examples/status-page/building.d.ts +4 -0
- package/registry/examples/status-page/building.js +29 -0
- package/registry/examples/status-page/building.tsx +25 -0
- package/registry/examples/status-page/operational.d.ts +4 -0
- package/registry/examples/status-page/operational.js +26 -0
- package/registry/examples/status-page/operational.tsx +20 -0
- package/registry/field.json +1 -1
- package/registry/file-upload.json +1 -1
- package/registry/filter-bar.json +1 -1
- package/registry/gallery-page.json +256 -0
- package/registry/glow-card.json +1 -1
- package/registry/goal-gauge.json +322 -0
- package/registry/how-it-works-page.json +242 -0
- package/registry/image-cropper.json +1 -1
- package/registry/index.json +621 -5
- package/registry/iso.json +1 -1
- package/registry/kbd.json +1 -1
- package/registry/landing-page.json +242 -0
- package/registry/landscape.json +189 -0
- package/registry/legal-page.json +199 -0
- package/registry/link-card.json +1 -1
- package/registry/loader.json +1 -1
- package/registry/longform-page.json +213 -0
- package/registry/marketing-layout.json +172 -0
- package/registry/marquee.json +1 -1
- package/registry/mascot-quote.json +6 -6
- package/registry/mascot-state.json +34 -34
- package/registry/mascots.json +140 -23
- package/registry/media-capture.json +1 -1
- package/registry/meter.json +1 -1
- package/registry/nav-bar.json +1 -1
- package/registry/number-ticker.json +1 -1
- package/registry/page-header.json +1 -1
- package/registry/page-hero.json +3 -3
- package/registry/page.json +5 -5
- package/registry/pagination.json +1 -1
- package/registry/pointer-light.json +1 -1
- package/registry/popover.json +1 -1
- package/registry/pricing-page.json +245 -0
- package/registry/product-page.json +319 -0
- package/registry/profile-card.json +501 -0
- package/registry/progress.json +1 -1
- package/registry/promise-card.json +228 -0
- package/registry/radio-group.json +1 -1
- package/registry/scroll-stage.json +197 -0
- package/registry/search-field.json +1 -1
- package/registry/section-backdrop.json +1 -1
- package/registry/separator.json +1 -1
- package/registry/settings-layout.json +231 -0
- package/registry/skeleton.json +1 -1
- package/registry/slider.json +1 -1
- package/registry/slot.json +1 -1
- package/registry/spinner.json +1 -1
- package/registry/split-view.json +233 -0
- package/registry/stage-banner.json +221 -0
- package/registry/stat.json +1 -1
- package/registry/status-page.json +263 -0
- package/registry/stepper.json +1 -1
- package/registry/switch.json +1 -1
- package/registry/tabs.json +1 -1
- package/registry/tag-input.json +1 -1
- package/registry/terminal-replay.json +1 -1
- package/registry/theme.json +1 -1
- package/registry/toast.json +1 -1
- package/registry/toc.json +1 -1
- package/registry/tooltip.json +1 -1
- package/registry/video-player.json +1 -1
- package/registry/video-trimmer.json +1 -1
- package/dist/chunk-NOVUREEC.js.map +0 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
2
|
+
import { AppShell } from "@krizaka/ui/app-shell";
|
|
3
|
+
import { Avatar } from "@krizaka/ui/avatar";
|
|
4
|
+
import { Badge } from "@krizaka/ui/badge";
|
|
5
|
+
import { Button } from "@krizaka/ui/button";
|
|
6
|
+
import { DashboardLayout, Widget } from "@krizaka/ui/dashboard-layout";
|
|
7
|
+
import { Meter } from "@krizaka/ui/meter";
|
|
8
|
+
import { Stat } from "@krizaka/ui/stat";
|
|
9
|
+
|
|
10
|
+
const icon = (d: string) => (
|
|
11
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden>
|
|
12
|
+
<path d={d} />
|
|
13
|
+
</svg>
|
|
14
|
+
);
|
|
15
|
+
const NAV = [
|
|
16
|
+
{ id: "home", label: "Home", d: "M4 11 12 4l8 7v9H4z", current: true },
|
|
17
|
+
{ id: "videos", label: "Videos", d: "M4 6h12v12H4zM16 10l4-2v8l-4-2", badge: 2 },
|
|
18
|
+
{ id: "auctions", label: "Auctions", d: "M5 19h10M8 5l6 6M11 2l6 6M6 13l4-4" },
|
|
19
|
+
{ id: "challenges", label: "Challenges", d: "M12 3v18M5 7h10l-2 3 2 3H5" },
|
|
20
|
+
];
|
|
21
|
+
const MONEY = [
|
|
22
|
+
{ id: "earnings", label: "Earnings", d: "M4 18h16M7 14l3-3 3 2 5-6" },
|
|
23
|
+
{ id: "payouts", label: "Payouts", d: "M3 7h18v10H3zM12 12h.01" },
|
|
24
|
+
];
|
|
25
|
+
const SALES = [
|
|
26
|
+
{ what: "Unlock · “Night shoot, part 2”", who: "Léa M.", net: "€4.50" },
|
|
27
|
+
{ what: "Tip", who: "Samir K.", net: "€9.00" },
|
|
28
|
+
{ what: "Auction won · “Backstage cut”", who: "Inès B.", net: "€61.20" },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
// TEMPLATE — Orochia's creator studio, Elena's home: the shell (sidebar of the studio, drawer on a phone) around a
|
|
32
|
+
// dashboard — this week's figures, the payout on its way, the latest sales, the next auction. On a phone the sidebar
|
|
33
|
+
// is a drawer, the stats stack two by two, every widget takes the full width.
|
|
34
|
+
export default function AppShellOrochiaStudio() {
|
|
35
|
+
return (
|
|
36
|
+
<div className="brand-orochia">
|
|
37
|
+
<AppShell.Root>
|
|
38
|
+
<AppShell.Sidebar
|
|
39
|
+
label="Studio"
|
|
40
|
+
brand={<><ProductLogo id="orochia" size={24} animated={false} /> Orochia</>}
|
|
41
|
+
collapseLabels={["Collapse", "Expand"]}
|
|
42
|
+
closeLabel="Close the menu"
|
|
43
|
+
footer={
|
|
44
|
+
<div className="flex items-center gap-2.5 px-2 py-2 text-sm">
|
|
45
|
+
<Avatar fallback="EV" size="sm" />
|
|
46
|
+
<span className="min-w-0 truncate font-medium">Elena Varga</span>
|
|
47
|
+
</div>
|
|
48
|
+
}
|
|
49
|
+
>
|
|
50
|
+
{NAV.map((n) => (
|
|
51
|
+
<AppShell.Item key={n.id} href={`#${n.id}`} icon={icon(n.d)} label={n.label} current={n.current} badge={n.badge} />
|
|
52
|
+
))}
|
|
53
|
+
<AppShell.Group>Money</AppShell.Group>
|
|
54
|
+
{MONEY.map((n) => (
|
|
55
|
+
<AppShell.Item key={n.id} href={`#${n.id}`} icon={icon(n.d)} label={n.label} />
|
|
56
|
+
))}
|
|
57
|
+
</AppShell.Sidebar>
|
|
58
|
+
<AppShell.Body>
|
|
59
|
+
<AppShell.Header
|
|
60
|
+
title="Studio"
|
|
61
|
+
menuLabel="Open the menu"
|
|
62
|
+
actions={<Button size="sm" variant="primary" shape="cut">Upload a video</Button>}
|
|
63
|
+
/>
|
|
64
|
+
<AppShell.Main>
|
|
65
|
+
<DashboardLayout headingAs="h2" eyebrow="This week" title="Good morning, Elena" description="Three sales since yesterday — your auction ends tonight.">
|
|
66
|
+
<Widget level={3} title="Your week" span="full">
|
|
67
|
+
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
68
|
+
<Stat label="Views" value="12.4k" trend="up" trendLabel="+8 %" hint="7 days" />
|
|
69
|
+
<Stat label="Supporters" value="318" trend="up" trendLabel="+21" hint="7 days" />
|
|
70
|
+
<Stat label="Earned" value="€902" trend="up" trendLabel="+14 %" hint="after the 10 % fee" />
|
|
71
|
+
<Stat label="Unlocks" value="146" trend="flat" trendLabel="±0" hint="7 days" />
|
|
72
|
+
</div>
|
|
73
|
+
</Widget>
|
|
74
|
+
<Widget level={3} title="Next payout" description="Every Monday, from €20" span={2}>
|
|
75
|
+
<Meter label="Towards your payout" value={74} max={100} valueText="€74 of €100 goal" showLabel />
|
|
76
|
+
<p className="mt-3 text-sm text-fg-secondary">€902 will reach your bank on Monday.</p>
|
|
77
|
+
</Widget>
|
|
78
|
+
<Widget level={3} title="Auction" description="“Backstage cut”" span={2} action={<Badge tone="accent" dot>Open</Badge>}>
|
|
79
|
+
<p className="font-display text-3xl font-extrabold text-fg">€68</p>
|
|
80
|
+
<p className="text-sm text-fg-secondary">7 bids · ends tonight at 21:00</p>
|
|
81
|
+
</Widget>
|
|
82
|
+
<Widget level={3} title="Latest sales" span="full" action={<Button size="sm" variant="ghost">See all</Button>}>
|
|
83
|
+
<ul className="divide-y divide-border-subtle">
|
|
84
|
+
{SALES.map((s) => (
|
|
85
|
+
<li key={s.what} className="flex items-center justify-between gap-3 py-2.5 text-sm">
|
|
86
|
+
<span className="min-w-0">
|
|
87
|
+
<span className="block truncate font-medium text-fg">{s.what}</span>
|
|
88
|
+
<span className="text-fg-secondary">{s.who}</span>
|
|
89
|
+
</span>
|
|
90
|
+
<span className="font-mono font-semibold text-fg-success">{s.net}</span>
|
|
91
|
+
</li>
|
|
92
|
+
))}
|
|
93
|
+
</ul>
|
|
94
|
+
</Widget>
|
|
95
|
+
</DashboardLayout>
|
|
96
|
+
</AppShell.Main>
|
|
97
|
+
</AppShell.Body>
|
|
98
|
+
</AppShell.Root>
|
|
99
|
+
</div>
|
|
100
|
+
);
|
|
101
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/auth-layout/onboarding.tsx
|
|
4
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
5
|
+
import { AuthLayout } from "@krizaka/ui/auth-layout";
|
|
6
|
+
import { Button } from "@krizaka/ui/button";
|
|
7
|
+
import { Field, Input } from "@krizaka/ui/field";
|
|
8
|
+
import { Stepper } from "@krizaka/ui/stepper";
|
|
9
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
var labels = { done: "Done", current: "Current step", upcoming: "Upcoming", error: "Failed" };
|
|
11
|
+
function AuthLayoutOnboarding() {
|
|
12
|
+
return /* @__PURE__ */ jsx("div", { className: "brand-orochia", children: /* @__PURE__ */ jsxs(
|
|
13
|
+
AuthLayout,
|
|
14
|
+
{
|
|
15
|
+
brand: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
16
|
+
/* @__PURE__ */ jsx(ProductLogo, { id: "orochia", size: 28, animated: false }),
|
|
17
|
+
" Orochia"
|
|
18
|
+
] }),
|
|
19
|
+
promise: "Three steps, then your first video.",
|
|
20
|
+
aside: /* @__PURE__ */ jsx("p", { children: "Your identity is checked once, by a person, and never shown to your fans." }),
|
|
21
|
+
asideFooter: "\xA9 Krizaka \xB7 Montr\xE9al",
|
|
22
|
+
title: "Your payout account",
|
|
23
|
+
description: "Where your earnings go every Monday.",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ jsx(
|
|
26
|
+
Stepper,
|
|
27
|
+
{
|
|
28
|
+
"aria-label": "Onboarding",
|
|
29
|
+
orientation: "horizontal",
|
|
30
|
+
labels,
|
|
31
|
+
current: 1,
|
|
32
|
+
steps: [{ title: "Profile" }, { title: "Payouts" }, { title: "Identity" }]
|
|
33
|
+
}
|
|
34
|
+
),
|
|
35
|
+
/* @__PURE__ */ jsxs("form", { className: "flex flex-col gap-4", children: [
|
|
36
|
+
/* @__PURE__ */ jsxs(Field.Root, { children: [
|
|
37
|
+
/* @__PURE__ */ jsx(Field.Label, { htmlFor: "onboarding-holder", children: "Account holder" }),
|
|
38
|
+
/* @__PURE__ */ jsx(Input, { id: "onboarding-holder", autoComplete: "name", defaultValue: "Elena Varga" })
|
|
39
|
+
] }),
|
|
40
|
+
/* @__PURE__ */ jsxs(Field.Root, { children: [
|
|
41
|
+
/* @__PURE__ */ jsx(Field.Label, { htmlFor: "onboarding-iban", children: "IBAN" }),
|
|
42
|
+
/* @__PURE__ */ jsx(Input, { id: "onboarding-iban", inputMode: "text", placeholder: "FR76 \u2026", "aria-describedby": "onboarding-iban-hint" }),
|
|
43
|
+
/* @__PURE__ */ jsx(Field.Hint, { id: "onboarding-iban-hint", children: "Checked before your first payout." })
|
|
44
|
+
] }),
|
|
45
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
46
|
+
/* @__PURE__ */ jsx(Button, { type: "button", variant: "secondary", size: "lg", shape: "cut", className: "flex-1", children: "Back" }),
|
|
47
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", variant: "primary", size: "lg", shape: "cut", className: "flex-1", children: "Continue" })
|
|
48
|
+
] })
|
|
49
|
+
] })
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
) });
|
|
53
|
+
}
|
|
54
|
+
export {
|
|
55
|
+
AuthLayoutOnboarding as default
|
|
56
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
2
|
+
import { AuthLayout } from "@krizaka/ui/auth-layout";
|
|
3
|
+
import { Button } from "@krizaka/ui/button";
|
|
4
|
+
import { Field, Input } from "@krizaka/ui/field";
|
|
5
|
+
import { Stepper } from "@krizaka/ui/stepper";
|
|
6
|
+
|
|
7
|
+
const labels = { done: "Done", current: "Current step", upcoming: "Upcoming", error: "Failed" };
|
|
8
|
+
|
|
9
|
+
// TEMPLATE — onboarding a creator (Orochia): the steps said in words above the form of the current one; the brand panel
|
|
10
|
+
// says why it is worth it. On a phone the steps stay horizontal and compact above the fields.
|
|
11
|
+
export default function AuthLayoutOnboarding() {
|
|
12
|
+
return (
|
|
13
|
+
<div className="brand-orochia">
|
|
14
|
+
<AuthLayout
|
|
15
|
+
brand={<><ProductLogo id="orochia" size={28} animated={false} /> Orochia</>}
|
|
16
|
+
promise="Three steps, then your first video."
|
|
17
|
+
aside={<p>Your identity is checked once, by a person, and never shown to your fans.</p>}
|
|
18
|
+
asideFooter="© Krizaka · Montréal"
|
|
19
|
+
title="Your payout account"
|
|
20
|
+
description="Where your earnings go every Monday."
|
|
21
|
+
>
|
|
22
|
+
<Stepper
|
|
23
|
+
aria-label="Onboarding"
|
|
24
|
+
orientation="horizontal"
|
|
25
|
+
labels={labels}
|
|
26
|
+
current={1}
|
|
27
|
+
steps={[{ title: "Profile" }, { title: "Payouts" }, { title: "Identity" }]}
|
|
28
|
+
/>
|
|
29
|
+
<form className="flex flex-col gap-4">
|
|
30
|
+
<Field.Root>
|
|
31
|
+
<Field.Label htmlFor="onboarding-holder">Account holder</Field.Label>
|
|
32
|
+
<Input id="onboarding-holder" autoComplete="name" defaultValue="Elena Varga" />
|
|
33
|
+
</Field.Root>
|
|
34
|
+
<Field.Root>
|
|
35
|
+
<Field.Label htmlFor="onboarding-iban">IBAN</Field.Label>
|
|
36
|
+
<Input id="onboarding-iban" inputMode="text" placeholder="FR76 …" aria-describedby="onboarding-iban-hint" />
|
|
37
|
+
<Field.Hint id="onboarding-iban-hint">Checked before your first payout.</Field.Hint>
|
|
38
|
+
</Field.Root>
|
|
39
|
+
<div className="flex gap-2">
|
|
40
|
+
<Button type="button" variant="secondary" size="lg" shape="cut" className="flex-1">Back</Button>
|
|
41
|
+
<Button type="submit" variant="primary" size="lg" shape="cut" className="flex-1">Continue</Button>
|
|
42
|
+
</div>
|
|
43
|
+
</form>
|
|
44
|
+
</AuthLayout>
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/auth-layout/sign-in.tsx
|
|
4
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
5
|
+
import { AuthLayout } from "@krizaka/ui/auth-layout";
|
|
6
|
+
import { Button } from "@krizaka/ui/button";
|
|
7
|
+
import { Field, Input } from "@krizaka/ui/field";
|
|
8
|
+
import { Mascot } from "@krizaka/ui/mascots";
|
|
9
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
function AuthLayoutSignIn() {
|
|
11
|
+
return /* @__PURE__ */ jsx("div", { className: "brand-orochia", children: /* @__PURE__ */ jsx(
|
|
12
|
+
AuthLayout,
|
|
13
|
+
{
|
|
14
|
+
brand: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15
|
+
/* @__PURE__ */ jsx(ProductLogo, { id: "orochia", size: 28, animated: false }),
|
|
16
|
+
" Orochia"
|
|
17
|
+
] }),
|
|
18
|
+
promise: "Your fans pay you, not an algorithm.",
|
|
19
|
+
aside: /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-3", children: [
|
|
20
|
+
/* @__PURE__ */ jsx(Mascot, { bird: "flamingo", mood: "welcome", size: 64 }),
|
|
21
|
+
/* @__PURE__ */ jsx("p", { children: "\u201C90 % of every tip, unlock and auction reaches me \u2014 on Monday.\u201D \u2014 Elena, creator" })
|
|
22
|
+
] }),
|
|
23
|
+
asideFooter: "\xA9 Krizaka \xB7 Montr\xE9al",
|
|
24
|
+
title: "Welcome back",
|
|
25
|
+
description: "Sign in to your studio.",
|
|
26
|
+
footer: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
27
|
+
"No account yet? ",
|
|
28
|
+
/* @__PURE__ */ jsx("a", { className: "font-semibold text-fg-accent", href: "#sign-up", children: "Create one" })
|
|
29
|
+
] }),
|
|
30
|
+
legal: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31
|
+
"By signing in you accept the ",
|
|
32
|
+
/* @__PURE__ */ jsx("a", { className: "underline", href: "#terms", children: "terms" }),
|
|
33
|
+
" and the ",
|
|
34
|
+
/* @__PURE__ */ jsx("a", { className: "underline", href: "#privacy", children: "privacy policy" }),
|
|
35
|
+
"."
|
|
36
|
+
] }),
|
|
37
|
+
children: /* @__PURE__ */ jsxs("form", { className: "flex flex-col gap-4", children: [
|
|
38
|
+
/* @__PURE__ */ jsxs(Field.Root, { children: [
|
|
39
|
+
/* @__PURE__ */ jsx(Field.Label, { htmlFor: "sign-in-email", children: "Email" }),
|
|
40
|
+
/* @__PURE__ */ jsx(Input, { id: "sign-in-email", type: "email", autoComplete: "email", placeholder: "you@example.com" })
|
|
41
|
+
] }),
|
|
42
|
+
/* @__PURE__ */ jsxs(Field.Root, { children: [
|
|
43
|
+
/* @__PURE__ */ jsx(Field.Label, { htmlFor: "sign-in-password", children: "Password" }),
|
|
44
|
+
/* @__PURE__ */ jsx(Input, { id: "sign-in-password", type: "password", autoComplete: "current-password" }),
|
|
45
|
+
/* @__PURE__ */ jsx(Field.Hint, { children: /* @__PURE__ */ jsx("a", { className: "text-fg-accent", href: "#reset", children: "Forgot it?" }) })
|
|
46
|
+
] }),
|
|
47
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", variant: "primary", size: "lg", shape: "cut", shimmer: true, className: "w-full", children: "Sign in" }),
|
|
48
|
+
/* @__PURE__ */ jsx(Button, { type: "button", variant: "secondary", size: "lg", shape: "cut", className: "w-full", children: "Use a passkey" })
|
|
49
|
+
] })
|
|
50
|
+
}
|
|
51
|
+
) });
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
AuthLayoutSignIn as default
|
|
55
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
2
|
+
import { AuthLayout } from "@krizaka/ui/auth-layout";
|
|
3
|
+
import { Button } from "@krizaka/ui/button";
|
|
4
|
+
import { Field, Input } from "@krizaka/ui/field";
|
|
5
|
+
import { Mascot } from "@krizaka/ui/mascots";
|
|
6
|
+
|
|
7
|
+
// TEMPLATE — Orochia's sign-in: the brand panel (its gradient, the promise, a creator's sentence) beside a calm form;
|
|
8
|
+
// on a phone one column, the mark above the form, the fields at full width with 44 px targets.
|
|
9
|
+
export default function AuthLayoutSignIn() {
|
|
10
|
+
return (
|
|
11
|
+
<div className="brand-orochia">
|
|
12
|
+
<AuthLayout
|
|
13
|
+
brand={<><ProductLogo id="orochia" size={28} animated={false} /> Orochia</>}
|
|
14
|
+
promise="Your fans pay you, not an algorithm."
|
|
15
|
+
aside={
|
|
16
|
+
<div className="flex items-end gap-3">
|
|
17
|
+
<Mascot bird="flamingo" mood="welcome" size={64} />
|
|
18
|
+
<p>“90 % of every tip, unlock and auction reaches me — on Monday.” — Elena, creator</p>
|
|
19
|
+
</div>
|
|
20
|
+
}
|
|
21
|
+
asideFooter="© Krizaka · Montréal"
|
|
22
|
+
title="Welcome back"
|
|
23
|
+
description="Sign in to your studio."
|
|
24
|
+
footer={<>No account yet? <a className="font-semibold text-fg-accent" href="#sign-up">Create one</a></>}
|
|
25
|
+
legal={<>By signing in you accept the <a className="underline" href="#terms">terms</a> and the <a className="underline" href="#privacy">privacy policy</a>.</>}
|
|
26
|
+
>
|
|
27
|
+
<form className="flex flex-col gap-4">
|
|
28
|
+
<Field.Root>
|
|
29
|
+
<Field.Label htmlFor="sign-in-email">Email</Field.Label>
|
|
30
|
+
<Input id="sign-in-email" type="email" autoComplete="email" placeholder="you@example.com" />
|
|
31
|
+
</Field.Root>
|
|
32
|
+
<Field.Root>
|
|
33
|
+
<Field.Label htmlFor="sign-in-password">Password</Field.Label>
|
|
34
|
+
<Input id="sign-in-password" type="password" autoComplete="current-password" />
|
|
35
|
+
<Field.Hint><a className="text-fg-accent" href="#reset">Forgot it?</a></Field.Hint>
|
|
36
|
+
</Field.Root>
|
|
37
|
+
<Button type="submit" variant="primary" size="lg" shape="cut" shimmer className="w-full">
|
|
38
|
+
Sign in
|
|
39
|
+
</Button>
|
|
40
|
+
<Button type="button" variant="secondary" size="lg" shape="cut" className="w-full">
|
|
41
|
+
Use a passkey
|
|
42
|
+
</Button>
|
|
43
|
+
</form>
|
|
44
|
+
</AuthLayout>
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/auth-layout/verify.tsx
|
|
4
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
5
|
+
import { AuthLayout } from "@krizaka/ui/auth-layout";
|
|
6
|
+
import { Button } from "@krizaka/ui/button";
|
|
7
|
+
import { Field, Input } from "@krizaka/ui/field";
|
|
8
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
function AuthLayoutVerify() {
|
|
10
|
+
return /* @__PURE__ */ jsx(AuthLayout, { brand: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11
|
+
/* @__PURE__ */ jsx(ProductLogo, { id: "krizaka", size: 28, animated: false }),
|
|
12
|
+
" Krizaka"
|
|
13
|
+
] }), title: "Check your email", description: "We sent a 6-digit code to eric@tremblay.ca.", children: /* @__PURE__ */ jsxs("form", { className: "flex flex-col gap-4", children: [
|
|
14
|
+
/* @__PURE__ */ jsxs(Field.Root, { children: [
|
|
15
|
+
/* @__PURE__ */ jsx(Field.Label, { htmlFor: "verify-code", children: "Code" }),
|
|
16
|
+
/* @__PURE__ */ jsx(Input, { id: "verify-code", inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6 })
|
|
17
|
+
] }),
|
|
18
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", variant: "primary", size: "lg", shape: "cut", className: "w-full", children: "Verify" })
|
|
19
|
+
] }) });
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
AuthLayoutVerify as default
|
|
23
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
2
|
+
import { AuthLayout } from "@krizaka/ui/auth-layout";
|
|
3
|
+
import { Button } from "@krizaka/ui/button";
|
|
4
|
+
import { Field, Input } from "@krizaka/ui/field";
|
|
5
|
+
|
|
6
|
+
// The smallest entry screen: no promise, the brand panel still carries the product's gradient on a desktop.
|
|
7
|
+
export default function AuthLayoutVerify() {
|
|
8
|
+
return (
|
|
9
|
+
<AuthLayout brand={<><ProductLogo id="krizaka" size={28} animated={false} /> Krizaka</>} title="Check your email" description="We sent a 6-digit code to eric@tremblay.ca.">
|
|
10
|
+
<form className="flex flex-col gap-4">
|
|
11
|
+
<Field.Root>
|
|
12
|
+
<Field.Label htmlFor="verify-code">Code</Field.Label>
|
|
13
|
+
<Input id="verify-code" inputMode="numeric" autoComplete="one-time-code" maxLength={6} />
|
|
14
|
+
</Field.Root>
|
|
15
|
+
<Button type="submit" variant="primary" size="lg" shape="cut" className="w-full">Verify</Button>
|
|
16
|
+
</form>
|
|
17
|
+
</AuthLayout>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/catalogue-page/components.tsx
|
|
4
|
+
import { CardGrid } from "@krizaka/ui/card-grid";
|
|
5
|
+
import { CataloguePage } from "@krizaka/ui/catalogue-page";
|
|
6
|
+
import { ChipLink } from "@krizaka/ui/chip-link";
|
|
7
|
+
import { LinkCard } from "@krizaka/ui/link-card";
|
|
8
|
+
import { SearchField } from "@krizaka/ui/search-field";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
var ITEMS = ["Button", "Card", "Dialog", "Tabs", "Toast", "Data table"];
|
|
11
|
+
function CataloguePageComponents() {
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
CataloguePage,
|
|
14
|
+
{
|
|
15
|
+
eyebrow: "Krizaka UI",
|
|
16
|
+
title: "Components",
|
|
17
|
+
lead: "Every component, web and mobile, documented from its code.",
|
|
18
|
+
search: /* @__PURE__ */ jsx(SearchField, { label: "Search the components", placeholder: "Button, dialog\u2026" }),
|
|
19
|
+
filtersLabel: "Filters",
|
|
20
|
+
filters: /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-2 lg:flex-col lg:items-start", children: [
|
|
21
|
+
/* @__PURE__ */ jsx("p", { className: "kz-label", children: "Platform" }),
|
|
22
|
+
/* @__PURE__ */ jsx(ChipLink, { href: "#all", selected: true, children: "All" }),
|
|
23
|
+
/* @__PURE__ */ jsx(ChipLink, { href: "#web", children: "Web" }),
|
|
24
|
+
/* @__PURE__ */ jsx(ChipLink, { href: "#mobile", children: "Mobile" })
|
|
25
|
+
] }),
|
|
26
|
+
count: `${ITEMS.length} components`,
|
|
27
|
+
children: /* @__PURE__ */ jsx(CardGrid, { as: "ul", min: 200, reveal: false, children: ITEMS.map((name) => /* @__PURE__ */ jsx(LinkCard, { href: `#${name}`, title: name, titleAs: "span", description: "Web + Mobile" }, name)) })
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
CataloguePageComponents as default
|
|
33
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CardGrid } from "@krizaka/ui/card-grid";
|
|
2
|
+
import { CataloguePage } from "@krizaka/ui/catalogue-page";
|
|
3
|
+
import { ChipLink } from "@krizaka/ui/chip-link";
|
|
4
|
+
import { LinkCard } from "@krizaka/ui/link-card";
|
|
5
|
+
import { SearchField } from "@krizaka/ui/search-field";
|
|
6
|
+
|
|
7
|
+
const ITEMS = ["Button", "Card", "Dialog", "Tabs", "Toast", "Data table"];
|
|
8
|
+
|
|
9
|
+
// TEMPLATE — a catalogue (the components of Krizaka UI): the search in the hero, the filters in a sticky column beside
|
|
10
|
+
// the results — as links, the address keeps them — the count said politely, the results as compact link cards.
|
|
11
|
+
export default function CataloguePageComponents() {
|
|
12
|
+
return (
|
|
13
|
+
<CataloguePage
|
|
14
|
+
eyebrow="Krizaka UI"
|
|
15
|
+
title="Components"
|
|
16
|
+
lead="Every component, web and mobile, documented from its code."
|
|
17
|
+
search={<SearchField label="Search the components" placeholder="Button, dialog…" />}
|
|
18
|
+
filtersLabel="Filters"
|
|
19
|
+
filters={
|
|
20
|
+
<div className="flex flex-wrap gap-2 lg:flex-col lg:items-start">
|
|
21
|
+
<p className="kz-label">Platform</p>
|
|
22
|
+
<ChipLink href="#all" selected>All</ChipLink>
|
|
23
|
+
<ChipLink href="#web">Web</ChipLink>
|
|
24
|
+
<ChipLink href="#mobile">Mobile</ChipLink>
|
|
25
|
+
</div>
|
|
26
|
+
}
|
|
27
|
+
count={`${ITEMS.length} components`}
|
|
28
|
+
>
|
|
29
|
+
<CardGrid as="ul" min={200} reveal={false}>
|
|
30
|
+
{ITEMS.map((name) => (
|
|
31
|
+
<LinkCard key={name} href={`#${name}`} title={name} titleAs="span" description="Web + Mobile" />
|
|
32
|
+
))}
|
|
33
|
+
</CardGrid>
|
|
34
|
+
</CataloguePage>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/changelog-page/releases.tsx
|
|
4
|
+
import { ChangelogPage } from "@krizaka/ui/changelog-page";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
function ChangelogPageReleases() {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
ChangelogPage,
|
|
9
|
+
{
|
|
10
|
+
eyebrow: "Krizaka UI",
|
|
11
|
+
title: "What changed",
|
|
12
|
+
lead: "Every release, newest first \u2014 and why, when it was a decision.",
|
|
13
|
+
kindLabels: { added: "Added", changed: "Changed", fixed: "Fixed", removed: "Removed" },
|
|
14
|
+
logLabel: "Releases",
|
|
15
|
+
entries: [
|
|
16
|
+
{
|
|
17
|
+
id: "v2-6-0",
|
|
18
|
+
date: "2026-10-11",
|
|
19
|
+
dateLabel: "11 Oct 2026",
|
|
20
|
+
version: "2.6.0",
|
|
21
|
+
title: "Page blocks",
|
|
22
|
+
changes: [
|
|
23
|
+
{ kind: "added", text: "Page, PageHero, CardGrid, LinkCard, ArgumentCard and seven more blocks." },
|
|
24
|
+
{ kind: "changed", text: "The blocks' stylesheet is imported once by the app." }
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: "v2-4-0",
|
|
29
|
+
date: "2026-10-09",
|
|
30
|
+
dateLabel: "9 Oct 2026",
|
|
31
|
+
version: "2.4.0",
|
|
32
|
+
title: "Data and media",
|
|
33
|
+
changes: [
|
|
34
|
+
{ kind: "added", text: "DataTable, Combobox, DatePicker, VideoPlayer." },
|
|
35
|
+
{ kind: "fixed", text: "A live line chart no longer hides its line." }
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
ChangelogPageReleases as default
|
|
44
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ChangelogPage } from "@krizaka/ui/changelog-page";
|
|
2
|
+
|
|
3
|
+
// TEMPLATE — what changed (Krizaka UI's releases): the date and version stick beside each entry, the changes by kind in
|
|
4
|
+
// words and colour. On a phone the date sits above its entry.
|
|
5
|
+
export default function ChangelogPageReleases() {
|
|
6
|
+
return (
|
|
7
|
+
<ChangelogPage
|
|
8
|
+
eyebrow="Krizaka UI"
|
|
9
|
+
title="What changed"
|
|
10
|
+
lead="Every release, newest first — and why, when it was a decision."
|
|
11
|
+
kindLabels={{ added: "Added", changed: "Changed", fixed: "Fixed", removed: "Removed" }}
|
|
12
|
+
logLabel="Releases"
|
|
13
|
+
entries={[
|
|
14
|
+
{
|
|
15
|
+
id: "v2-6-0",
|
|
16
|
+
date: "2026-10-11",
|
|
17
|
+
dateLabel: "11 Oct 2026",
|
|
18
|
+
version: "2.6.0",
|
|
19
|
+
title: "Page blocks",
|
|
20
|
+
changes: [
|
|
21
|
+
{ kind: "added", text: "Page, PageHero, CardGrid, LinkCard, ArgumentCard and seven more blocks." },
|
|
22
|
+
{ kind: "changed", text: "The blocks' stylesheet is imported once by the app." },
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: "v2-4-0",
|
|
27
|
+
date: "2026-10-09",
|
|
28
|
+
dateLabel: "9 Oct 2026",
|
|
29
|
+
version: "2.4.0",
|
|
30
|
+
title: "Data and media",
|
|
31
|
+
changes: [
|
|
32
|
+
{ kind: "added", text: "DataTable, Combobox, DatePicker, VideoPlayer." },
|
|
33
|
+
{ kind: "fixed", text: "A live line chart no longer hides its line." },
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
]}
|
|
37
|
+
/>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/choice-grid/line-up.tsx
|
|
4
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
5
|
+
import { ChoiceGrid } from "@krizaka/ui/choice-grid";
|
|
6
|
+
import { StatGauge } from "@krizaka/ui/profile-card";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var LINE_UP = [
|
|
9
|
+
{ id: "orazaka", name: "Orazaka", title: "Sovereign AI", stat: "Data kept at home", value: 100 },
|
|
10
|
+
{ id: "orochia", name: "Orochia", title: "Creator video", stat: "Creator share", value: 90 }
|
|
11
|
+
];
|
|
12
|
+
function ChoiceGridLineUp() {
|
|
13
|
+
return /* @__PURE__ */ jsx(
|
|
14
|
+
ChoiceGrid,
|
|
15
|
+
{
|
|
16
|
+
variant: "arcade",
|
|
17
|
+
label: "The products",
|
|
18
|
+
tag: "Team select",
|
|
19
|
+
caption: "One studio",
|
|
20
|
+
prompt: "Choose your fighter",
|
|
21
|
+
items: LINE_UP.map((p, i) => ({
|
|
22
|
+
id: p.id,
|
|
23
|
+
brand: p.id,
|
|
24
|
+
badge: `P${i + 1}`,
|
|
25
|
+
visual: /* @__PURE__ */ jsx(ProductLogo, { id: p.id, size: 84, animated: false }),
|
|
26
|
+
name: p.name,
|
|
27
|
+
title: p.title,
|
|
28
|
+
extra: /* @__PURE__ */ jsx(StatGauge, { label: p.stat, value: p.value }),
|
|
29
|
+
meta: `Stage 0${i + 1} \u2193`,
|
|
30
|
+
href: `#${p.id}`
|
|
31
|
+
}))
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
ChoiceGridLineUp as default
|
|
37
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ProductLogo } from "@krizaka/ui";
|
|
2
|
+
import { ChoiceGrid } from "@krizaka/ui/choice-grid";
|
|
3
|
+
import { StatGauge } from "@krizaka/ui/profile-card";
|
|
4
|
+
|
|
5
|
+
const LINE_UP = [
|
|
6
|
+
{ id: "orazaka", name: "Orazaka", title: "Sovereign AI", stat: "Data kept at home", value: 100 },
|
|
7
|
+
{ id: "orochia", name: "Orochia", title: "Creator video", stat: "Creator share", value: 90 },
|
|
8
|
+
] as const;
|
|
9
|
+
|
|
10
|
+
// The select screen of a told page: each card in its brand, a gauge, and a link to its chapter.
|
|
11
|
+
export default function ChoiceGridLineUp() {
|
|
12
|
+
return (
|
|
13
|
+
<ChoiceGrid
|
|
14
|
+
variant="arcade"
|
|
15
|
+
label="The products"
|
|
16
|
+
tag="Team select"
|
|
17
|
+
caption="One studio"
|
|
18
|
+
prompt="Choose your fighter"
|
|
19
|
+
items={LINE_UP.map((p, i) => ({
|
|
20
|
+
id: p.id,
|
|
21
|
+
brand: p.id,
|
|
22
|
+
badge: `P${i + 1}`,
|
|
23
|
+
visual: <ProductLogo id={p.id} size={84} animated={false} />,
|
|
24
|
+
name: p.name,
|
|
25
|
+
title: p.title,
|
|
26
|
+
extra: <StatGauge label={p.stat} value={p.value} />,
|
|
27
|
+
meta: `Stage 0${i + 1} ↓`,
|
|
28
|
+
href: `#${p.id}`,
|
|
29
|
+
}))}
|
|
30
|
+
/>
|
|
31
|
+
);
|
|
32
|
+
}
|