@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,38 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { S as StoryVariant } from './story-variant-CLn4H5Nt.js';
|
|
3
|
+
|
|
4
|
+
type GoalGaugeProps = Omit<React.HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
5
|
+
/** What the gauge counts (“Backers”, “Dares completed”) — passed translated; the meter's accessible name. */
|
|
6
|
+
label: string;
|
|
7
|
+
/** The number of steps of the goal (2–24). */
|
|
8
|
+
segments: number;
|
|
9
|
+
/**
|
|
10
|
+
* The steps reached (lit), from 0 to `segments`.
|
|
11
|
+
* @default segments
|
|
12
|
+
*/
|
|
13
|
+
value?: number;
|
|
14
|
+
/** The value in words (“6 of 10”, “€420 raised”); default `value / segments`. */
|
|
15
|
+
valueText?: string;
|
|
16
|
+
/**
|
|
17
|
+
* How the scene plays it: `fill` lights the reached steps one by one; `drain` empties the spent ones (a countdown of
|
|
18
|
+
* what is left: tickets, lives, problems still standing).
|
|
19
|
+
* @default "fill"
|
|
20
|
+
*/
|
|
21
|
+
mode?: "fill" | "drain";
|
|
22
|
+
/**
|
|
23
|
+
* Shows the label and the value above the segments.
|
|
24
|
+
* @default true
|
|
25
|
+
*/
|
|
26
|
+
showLabel?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* `default`: rounded segments. `arcade`: the boss gauge — a skewed frame, gradient cells, a centred mono label.
|
|
29
|
+
* @default "default"
|
|
30
|
+
*/
|
|
31
|
+
variant?: StoryVariant;
|
|
32
|
+
/** A brand scope (`orochia` → `.brand-orochia`). */
|
|
33
|
+
brand?: string;
|
|
34
|
+
};
|
|
35
|
+
/** A goal in steps: `role="meter"`, the reached steps lit, the value in words beside the label. */
|
|
36
|
+
declare function GoalGauge({ label, segments, value, valueText, mode, showLabel, variant, brand, className, style, ...props }: GoalGaugeProps): React.JSX.Element;
|
|
37
|
+
|
|
38
|
+
export { GoalGauge, type GoalGaugeProps };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {
|
|
2
|
+
brandClass,
|
|
3
|
+
cn,
|
|
4
|
+
storyVariantClass
|
|
5
|
+
} from "./chunk-VCAAHCHL.js";
|
|
6
|
+
|
|
7
|
+
// src/goal-gauge/goal-gauge.tsx
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
function GoalGauge({ label, segments, value, valueText, mode = "fill", showLabel = true, variant, brand, className, style, ...props }) {
|
|
10
|
+
const total = Math.max(1, Math.round(segments));
|
|
11
|
+
const lit = Math.min(total, Math.max(0, Math.round(value ?? total)));
|
|
12
|
+
const words = valueText ?? `${lit} / ${total}`;
|
|
13
|
+
return /* @__PURE__ */ jsxs(
|
|
14
|
+
"div",
|
|
15
|
+
{
|
|
16
|
+
role: "meter",
|
|
17
|
+
"aria-label": label,
|
|
18
|
+
"aria-valuemin": 0,
|
|
19
|
+
"aria-valuemax": total,
|
|
20
|
+
"aria-valuenow": lit,
|
|
21
|
+
"aria-valuetext": words,
|
|
22
|
+
"data-mode": mode,
|
|
23
|
+
className: cn("kzs-gauge", storyVariantClass(variant), brandClass(brand), className),
|
|
24
|
+
style: { "--kzs-segments": total, ...style },
|
|
25
|
+
...props,
|
|
26
|
+
children: [
|
|
27
|
+
showLabel && /* @__PURE__ */ jsxs("div", { className: "kzs-gauge-head", "aria-hidden": true, children: [
|
|
28
|
+
/* @__PURE__ */ jsx("span", { className: "kzs-gauge-label", children: label }),
|
|
29
|
+
/* @__PURE__ */ jsx("span", { className: "kzs-gauge-value", children: words })
|
|
30
|
+
] }),
|
|
31
|
+
/* @__PURE__ */ jsx("div", { className: "kzs-gauge-cells", "aria-hidden": true, children: Array.from({ length: total }, (_, i) => {
|
|
32
|
+
const on = i < lit;
|
|
33
|
+
const animate = mode === "fill" ? on : !on;
|
|
34
|
+
const order = mode === "fill" ? i : i - lit;
|
|
35
|
+
return /* @__PURE__ */ jsx(
|
|
36
|
+
"span",
|
|
37
|
+
{
|
|
38
|
+
className: "kzs-gauge-cell",
|
|
39
|
+
"data-lit": on ? "" : void 0,
|
|
40
|
+
"data-animate": animate ? "" : void 0,
|
|
41
|
+
style: animate ? { "--i": order } : void 0
|
|
42
|
+
},
|
|
43
|
+
i
|
|
44
|
+
);
|
|
45
|
+
}) })
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
GoalGauge
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=goal-gauge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/goal-gauge/goal-gauge.tsx"],"sourcesContent":["// Server-safe. A goal counted in steps (story.css): 6 of 10 backers, 3 of 5 dares done, 8 problems out of the way. A\n// `meter` with its value in words; in a `Scene` of a `ScrollStage` the segments light (or drain) one by one, once.\nimport type * as React from \"react\";\n\nimport { cn } from \"../cn\";\nimport { brandClass, type StoryVariant, storyVariantClass } from \"../story-variant\";\n\nexport type GoalGaugeProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> & {\n /** What the gauge counts (“Backers”, “Dares completed”) — passed translated; the meter's accessible name. */\n label: string;\n /** The number of steps of the goal (2–24). */\n segments: number;\n /**\n * The steps reached (lit), from 0 to `segments`.\n * @default segments\n */\n value?: number;\n /** The value in words (“6 of 10”, “€420 raised”); default `value / segments`. */\n valueText?: string;\n /**\n * How the scene plays it: `fill` lights the reached steps one by one; `drain` empties the spent ones (a countdown of\n * what is left: tickets, lives, problems still standing).\n * @default \"fill\"\n */\n mode?: \"fill\" | \"drain\";\n /**\n * Shows the label and the value above the segments.\n * @default true\n */\n showLabel?: boolean;\n /**\n * `default`: rounded segments. `arcade`: the boss gauge — a skewed frame, gradient cells, a centred mono label.\n * @default \"default\"\n */\n variant?: StoryVariant;\n /** A brand scope (`orochia` → `.brand-orochia`). */\n brand?: string;\n};\n\n/** A goal in steps: `role=\"meter\"`, the reached steps lit, the value in words beside the label. */\nexport function GoalGauge({ label, segments, value, valueText, mode = \"fill\", showLabel = true, variant, brand, className, style, ...props }: GoalGaugeProps) {\n const total = Math.max(1, Math.round(segments));\n const lit = Math.min(total, Math.max(0, Math.round(value ?? total)));\n const words = valueText ?? `${lit} / ${total}`;\n return (\n <div\n role=\"meter\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={total}\n aria-valuenow={lit}\n aria-valuetext={words}\n data-mode={mode}\n className={cn(\"kzs-gauge\", storyVariantClass(variant), brandClass(brand), className)}\n style={{ \"--kzs-segments\": total, ...style } as React.CSSProperties}\n {...props}\n >\n {showLabel && (\n <div className=\"kzs-gauge-head\" aria-hidden>\n <span className=\"kzs-gauge-label\">{label}</span>\n <span className=\"kzs-gauge-value\">{words}</span>\n </div>\n )}\n <div className=\"kzs-gauge-cells\" aria-hidden>\n {Array.from({ length: total }, (_, i) => {\n const on = i < lit;\n const animate = mode === \"fill\" ? on : !on;\n const order = mode === \"fill\" ? i : i - lit;\n return (\n <span\n key={i}\n className=\"kzs-gauge-cell\"\n data-lit={on ? \"\" : undefined}\n data-animate={animate ? \"\" : undefined}\n style={animate ? ({ \"--i\": order } as React.CSSProperties) : undefined}\n />\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AA0DQ,SACE,KADF;AAlBD,SAAS,UAAU,EAAE,OAAO,UAAU,OAAO,WAAW,OAAO,QAAQ,YAAY,MAAM,SAAS,OAAO,WAAW,OAAO,GAAG,MAAM,GAAmB;AAC5J,QAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,CAAC;AAC9C,QAAM,MAAM,KAAK,IAAI,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,SAAS,KAAK,CAAC,CAAC;AACnE,QAAM,QAAQ,aAAa,GAAG,GAAG,MAAM,KAAK;AAC5C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,iBAAe;AAAA,MACf,iBAAe;AAAA,MACf,iBAAe;AAAA,MACf,kBAAgB;AAAA,MAChB,aAAW;AAAA,MACX,WAAW,GAAG,aAAa,kBAAkB,OAAO,GAAG,WAAW,KAAK,GAAG,SAAS;AAAA,MACnF,OAAO,EAAE,kBAAkB,OAAO,GAAG,MAAM;AAAA,MAC1C,GAAG;AAAA,MAEH;AAAA,qBACC,qBAAC,SAAI,WAAU,kBAAiB,eAAW,MACzC;AAAA,8BAAC,UAAK,WAAU,mBAAmB,iBAAM;AAAA,UACzC,oBAAC,UAAK,WAAU,mBAAmB,iBAAM;AAAA,WAC3C;AAAA,QAEF,oBAAC,SAAI,WAAU,mBAAkB,eAAW,MACzC,gBAAM,KAAK,EAAE,QAAQ,MAAM,GAAG,CAAC,GAAG,MAAM;AACvC,gBAAM,KAAK,IAAI;AACf,gBAAM,UAAU,SAAS,SAAS,KAAK,CAAC;AACxC,gBAAM,QAAQ,SAAS,SAAS,IAAI,IAAI;AACxC,iBACE;AAAA,YAAC;AAAA;AAAA,cAEC,WAAU;AAAA,cACV,YAAU,KAAK,KAAK;AAAA,cACpB,gBAAc,UAAU,KAAK;AAAA,cAC7B,OAAO,UAAW,EAAE,OAAO,MAAM,IAA4B;AAAA;AAAA,YAJxD;AAAA,UAKP;AAAA,QAEJ,CAAC,GACH;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { LinkComponent } from '@krizaka/ui/page-hero';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
interface HowStep {
|
|
5
|
+
/** A stable key (the step's anchor). */
|
|
6
|
+
id: string;
|
|
7
|
+
/** What happens, in a few words. */
|
|
8
|
+
title: React.ReactNode;
|
|
9
|
+
/** How, in two or three sentences. */
|
|
10
|
+
text: React.ReactNode;
|
|
11
|
+
/** Beside the words: a code block, a schema, a screen. */
|
|
12
|
+
visual?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
type HowItWorksPageProps = Omit<React.HTMLAttributes<HTMLElement>, "title"> & {
|
|
15
|
+
/** The brand the page wears (`.brand-<id>`). */
|
|
16
|
+
brand?: string;
|
|
17
|
+
/** The way back to the product. */
|
|
18
|
+
back?: {
|
|
19
|
+
href: string;
|
|
20
|
+
label: string;
|
|
21
|
+
};
|
|
22
|
+
/** A mono line above the title. */
|
|
23
|
+
eyebrow?: React.ReactNode;
|
|
24
|
+
/** The page's `h1`. */
|
|
25
|
+
title: React.ReactNode;
|
|
26
|
+
/** One or two sentences under it. */
|
|
27
|
+
lead?: React.ReactNode;
|
|
28
|
+
/** Beside the hero: the page's bird or an illustration. */
|
|
29
|
+
aside?: React.ReactNode;
|
|
30
|
+
/** The steps' accessible name (`The steps`). */
|
|
31
|
+
stepsLabel: string;
|
|
32
|
+
/** The steps, in order. */
|
|
33
|
+
steps: readonly HowStep[];
|
|
34
|
+
/** After the steps: architecture, guarantees, a module map. */
|
|
35
|
+
children?: React.ReactNode;
|
|
36
|
+
/** The closing call. */
|
|
37
|
+
closing?: {
|
|
38
|
+
title: React.ReactNode;
|
|
39
|
+
body?: React.ReactNode;
|
|
40
|
+
actions: React.ReactNode;
|
|
41
|
+
};
|
|
42
|
+
/** The app's link component (Next's `Link`). */
|
|
43
|
+
linkAs?: LinkComponent;
|
|
44
|
+
};
|
|
45
|
+
/** How a product works: the hero, a numbered timeline of steps with their visuals, then the details. */
|
|
46
|
+
declare function HowItWorksPage({ brand, back, eyebrow, title, lead, aside, stepsLabel, steps, closing, linkAs, className, children, ...props }: HowItWorksPageProps): React.JSX.Element;
|
|
47
|
+
|
|
48
|
+
export { HowItWorksPage, type HowItWorksPageProps, type HowStep };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "./chunk-KNBYZGSQ.js";
|
|
4
|
+
|
|
5
|
+
// src/how-it-works-page/how-it-works-page.tsx
|
|
6
|
+
import { CtaPanel } from "@krizaka/ui/cta-panel";
|
|
7
|
+
import { Section } from "@krizaka/ui/page";
|
|
8
|
+
import { PageHero } from "@krizaka/ui/page-hero";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
function HowItWorksPage({ brand, back, eyebrow, title, lead, aside, stepsLabel, steps, closing, linkAs, className, children, ...props }) {
|
|
11
|
+
return /* @__PURE__ */ jsxs("div", { className: cn(brand && "brand-" + brand, className), ...props, children: [
|
|
12
|
+
/* @__PURE__ */ jsx(PageHero, { back, linkAs, eyebrow, title, lead, aside }),
|
|
13
|
+
/* @__PURE__ */ jsx(Section, { "aria-label": stepsLabel, children: /* @__PURE__ */ jsx("ol", { className: "kz-tpl-timeline", children: steps.map((step, i) => /* @__PURE__ */ jsxs("li", { id: step.id, className: "kz-tpl-step", "data-reveal": "", children: [
|
|
14
|
+
/* @__PURE__ */ jsx("span", { className: "kz-tpl-step-n", "aria-hidden": true, children: i + 1 }),
|
|
15
|
+
/* @__PURE__ */ jsxs("div", { className: "kz-tpl-step-text", children: [
|
|
16
|
+
/* @__PURE__ */ jsx("h2", { children: step.title }),
|
|
17
|
+
/* @__PURE__ */ jsx("p", { children: step.text })
|
|
18
|
+
] }),
|
|
19
|
+
step.visual && /* @__PURE__ */ jsx("div", { className: "kz-tpl-step-visual", children: step.visual })
|
|
20
|
+
] }, step.id)) }) }),
|
|
21
|
+
children,
|
|
22
|
+
closing && /* @__PURE__ */ jsx(Section, { spacing: "sm", "aria-labelledby": "how-closing", children: /* @__PURE__ */ jsx(CtaPanel, { id: "how-closing", title: closing.title, body: closing.body, reveal: true, children: closing.actions }) })
|
|
23
|
+
] });
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
HowItWorksPage
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=how-it-works-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/how-it-works-page/how-it-works-page.tsx"],"sourcesContent":["// Server-safe. How a product works, told in steps (blocks.css `.kz-tpl-timeline`): the hero, then a numbered line\n// down the page — each step its words beside its visual (a command, a schema, a screen), the sides alternating on a\n// wide screen, one column on a phone — then what is under the hood and the closing call.\nimport { CtaPanel } from \"@krizaka/ui/cta-panel\";\nimport { Section } from \"@krizaka/ui/page\";\nimport type { LinkComponent } from \"@krizaka/ui/page-hero\";\nimport { PageHero } from \"@krizaka/ui/page-hero\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../cn\";\n\nexport interface HowStep {\n /** A stable key (the step's anchor). */\n id: string;\n /** What happens, in a few words. */\n title: React.ReactNode;\n /** How, in two or three sentences. */\n text: React.ReactNode;\n /** Beside the words: a code block, a schema, a screen. */\n visual?: React.ReactNode;\n}\n\nexport type HowItWorksPageProps = Omit<React.HTMLAttributes<HTMLElement>, \"title\"> & {\n /** The brand the page wears (`.brand-<id>`). */\n brand?: string;\n /** The way back to the product. */\n back?: { href: string; label: string };\n /** A mono line above the title. */\n eyebrow?: React.ReactNode;\n /** The page's `h1`. */\n title: React.ReactNode;\n /** One or two sentences under it. */\n lead?: React.ReactNode;\n /** Beside the hero: the page's bird or an illustration. */\n aside?: React.ReactNode;\n /** The steps' accessible name (`The steps`). */\n stepsLabel: string;\n /** The steps, in order. */\n steps: readonly HowStep[];\n /** After the steps: architecture, guarantees, a module map. */\n children?: React.ReactNode;\n /** The closing call. */\n closing?: { title: React.ReactNode; body?: React.ReactNode; actions: React.ReactNode };\n /** The app's link component (Next's `Link`). */\n linkAs?: LinkComponent;\n};\n\n/** How a product works: the hero, a numbered timeline of steps with their visuals, then the details. */\nexport function HowItWorksPage({ brand, back, eyebrow, title, lead, aside, stepsLabel, steps, closing, linkAs, className, children, ...props }: HowItWorksPageProps) {\n return (\n <div className={cn(brand && \"brand-\" + brand, className)} {...props}>\n <PageHero back={back} linkAs={linkAs} eyebrow={eyebrow} title={title} lead={lead} aside={aside} />\n <Section aria-label={stepsLabel}>\n <ol className=\"kz-tpl-timeline\">\n {steps.map((step, i) => (\n <li key={step.id} id={step.id} className=\"kz-tpl-step\" data-reveal=\"\">\n <span className=\"kz-tpl-step-n\" aria-hidden>\n {i + 1}\n </span>\n <div className=\"kz-tpl-step-text\">\n <h2>{step.title}</h2>\n <p>{step.text}</p>\n </div>\n {step.visual && <div className=\"kz-tpl-step-visual\">{step.visual}</div>}\n </li>\n ))}\n </ol>\n </Section>\n {children}\n {closing && (\n <Section spacing=\"sm\" aria-labelledby=\"how-closing\">\n <CtaPanel id=\"how-closing\" title={closing.title} body={closing.body} reveal>\n {closing.actions}\n </CtaPanel>\n </Section>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;AAGA,SAAS,gBAAgB;AACzB,SAAS,eAAe;AAExB,SAAS,gBAAgB;AA6CnB,cAQQ,YARR;AAHC,SAAS,eAAe,EAAE,OAAO,MAAM,SAAS,OAAO,MAAM,OAAO,YAAY,OAAO,SAAS,QAAQ,WAAW,UAAU,GAAG,MAAM,GAAwB;AACnK,SACE,qBAAC,SAAI,WAAW,GAAG,SAAS,WAAW,OAAO,SAAS,GAAI,GAAG,OAC5D;AAAA,wBAAC,YAAS,MAAY,QAAgB,SAAkB,OAAc,MAAY,OAAc;AAAA,IAChG,oBAAC,WAAQ,cAAY,YACnB,8BAAC,QAAG,WAAU,mBACX,gBAAM,IAAI,CAAC,MAAM,MAChB,qBAAC,QAAiB,IAAI,KAAK,IAAI,WAAU,eAAc,eAAY,IACjE;AAAA,0BAAC,UAAK,WAAU,iBAAgB,eAAW,MACxC,cAAI,GACP;AAAA,MACA,qBAAC,SAAI,WAAU,oBACb;AAAA,4BAAC,QAAI,eAAK,OAAM;AAAA,QAChB,oBAAC,OAAG,eAAK,MAAK;AAAA,SAChB;AAAA,MACC,KAAK,UAAU,oBAAC,SAAI,WAAU,sBAAsB,eAAK,QAAO;AAAA,SAR1D,KAAK,EASd,CACD,GACH,GACF;AAAA,IACC;AAAA,IACA,WACC,oBAAC,WAAQ,SAAQ,MAAK,mBAAgB,eACpC,8BAAC,YAAS,IAAG,eAAc,OAAO,QAAQ,OAAO,MAAM,QAAQ,MAAM,QAAM,MACxE,kBAAQ,SACX,GACF;AAAA,KAEJ;AAEJ;","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -34,18 +34,28 @@ declare function OrazakaLogo({ size, animated, title, className }: MarkProps): R
|
|
|
34
34
|
*/
|
|
35
35
|
declare function OrochiaLogo({ size, animated, title, className }: MarkProps): React.JSX.Element;
|
|
36
36
|
|
|
37
|
-
type BrandId = "krizaka" | "orazaka" | "orochia" | "yazakia";
|
|
37
|
+
type BrandId = "krizaka" | "orazaka" | "orochia" | "yazakia" | "yororis";
|
|
38
38
|
/** The mark of a Krizaka brand by id — for navigation, cards and lists driven by data. */
|
|
39
39
|
declare function ProductLogo({ id, ...props }: MarkProps & {
|
|
40
40
|
id: BrandId;
|
|
41
41
|
}): React.JSX.Element;
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
|
-
* The Yazakia mark:
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* family's grammar (orbit, ring, bold emblem, bright core). Below 48 px it
|
|
44
|
+
* The Yazakia mark: two voices — two solid speech bubbles that overlap, the left a shade deeper — in the Yazakia
|
|
45
|
+
* gradient (emerald → turquoise, the brand's mark gradient of @krizaka/tokens, the same in dark and light). Where they
|
|
46
|
+
* overlap, what the two share, is the bright core: a lens lit from above that breathes. The pair, two nodes on the
|
|
47
|
+
* dashed orbit, turns slowly around it — the family's grammar (orbit, ring, bold emblem, bright core). Below 48 px it
|
|
48
|
+
* crops to the emblem.
|
|
48
49
|
*/
|
|
49
50
|
declare function YazakiaLogo({ size, animated, title, className }: MarkProps): React.JSX.Element;
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
/**
|
|
53
|
+
* The Yororis mark, "the hold": a "Y" whose arms are two filled leaves — open hands — rising from one stem and cupping
|
|
54
|
+
* a warm core that breathes: held, given room, listened to. Leaves in the Yororis gradient (sand → sage, the brand's
|
|
55
|
+
* mark gradient of @krizaka/tokens, the same in dark and light), a vein of light along each, the core in a warm sand
|
|
56
|
+
* light; the moment, one node on the dashed orbit, comes round slowly. The family's grammar (orbit, ring, bold emblem,
|
|
57
|
+
* bright core) with the slowest breath of the family. Below 48 px it crops to the emblem.
|
|
58
|
+
*/
|
|
59
|
+
declare function YororisLogo({ size, animated, title, className }: MarkProps): React.JSX.Element;
|
|
60
|
+
|
|
61
|
+
export { type BrandId, KrizakaLogo, type MarkProps, OrazakaLogo, OrochiaLogo, ProductLogo, YazakiaLogo, YororisLogo, cx };
|
package/dist/index.js
CHANGED
|
@@ -52,6 +52,16 @@ var marks = /* @__PURE__ */ Object.freeze({
|
|
|
52
52
|
"100%",
|
|
53
53
|
"#089b96"
|
|
54
54
|
]
|
|
55
|
+
],
|
|
56
|
+
"yororis": [
|
|
57
|
+
[
|
|
58
|
+
"0%",
|
|
59
|
+
"#a4773d"
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
"100%",
|
|
63
|
+
"#5d894d"
|
|
64
|
+
]
|
|
55
65
|
]
|
|
56
66
|
});
|
|
57
67
|
|
|
@@ -263,21 +273,18 @@ var YAZAKIA = {
|
|
|
263
273
|
viewBox: "0 0 400 400",
|
|
264
274
|
croppedViewBox: "80 80 240 240",
|
|
265
275
|
center: 200,
|
|
266
|
-
/** The two
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
/** The width of the arms and the stem: the weight of Orochia's body. */
|
|
271
|
-
stroke: 36,
|
|
272
|
-
/** The two heads, at the ends of the arms. */
|
|
273
|
-
heads: [
|
|
274
|
-
{ cx: 128, cy: 124, r: 28 },
|
|
275
|
-
{ cx: 272, cy: 124, r: 28 }
|
|
276
|
+
/** The two voices, left then right: each a bubble (cut around the lens) and its tail. */
|
|
277
|
+
voices: [
|
|
278
|
+
{ body: "M191.9 109 A80 80 0 1 0 191.9 259 A87 87 0 0 1 191.9 109 Z", tail: "M98 230 Q104 268 88 294 Q122 288 144 262 L130 200 Z" },
|
|
279
|
+
{ body: "M208.1 109 A80 80 0 1 1 208.1 259 A87 87 0 0 0 208.1 109 Z", tail: "M302 230 Q296 268 312 294 Q278 288 256 262 L270 200 Z" }
|
|
276
280
|
],
|
|
281
|
+
/** The left voice, a shade deeper: the depth between the two. */
|
|
282
|
+
shade: { color: "#000", opacity: 0.22 },
|
|
283
|
+
/** Where the bubbles overlap: the core, lit from above. */
|
|
284
|
+
lens: { d: "M200 112.6 A80 80 0 0 1 200 255.4 A80 80 0 0 1 200 112.6 Z", y1: 112.6, y2: 255.4 },
|
|
277
285
|
gradient: { x1: 110, y1: 300, x2: 290, y2: 100, stops: marks.yazakia },
|
|
278
|
-
/**
|
|
279
|
-
|
|
280
|
-
highlight: "#f0fdfa",
|
|
286
|
+
/** The light on the lens: bright at the top, fading down. */
|
|
287
|
+
highlight: { color: "#f0fdfa", from: 0.75, to: 0.2 },
|
|
281
288
|
/** The pair: two nodes on the orbit, opposite each other, that turn with it. */
|
|
282
289
|
pair: { r: 8, at: [[40, 200], [360, 200]] },
|
|
283
290
|
glow: { color: turquoise, opacity: 0.16 },
|
|
@@ -300,12 +307,16 @@ var CSS4 = `
|
|
|
300
307
|
@media (prefers-reduced-motion: reduce) { .yzm-orbit, .yzm-core { animation: none; } }
|
|
301
308
|
`;
|
|
302
309
|
function YazakiaLogo({ size = 32, animated = true, title, className }) {
|
|
303
|
-
const id = useIds("yzm", ["gradient", "glow"]);
|
|
310
|
+
const id = useIds("yzm", ["gradient", "light", "glow"]);
|
|
304
311
|
const fill = `url(#${id.gradient})`;
|
|
305
312
|
return /* @__PURE__ */ jsxs4("svg", { width: size, height: size, viewBox: size < 48 ? YAZAKIA.croppedViewBox : YAZAKIA.viewBox, fill: "none", xmlns: "http://www.w3.org/2000/svg", className, ...a11y(title), children: [
|
|
306
313
|
/* @__PURE__ */ jsx4("style", { children: CSS4 }),
|
|
307
314
|
/* @__PURE__ */ jsxs4("defs", { children: [
|
|
308
315
|
/* @__PURE__ */ jsx4("linearGradient", { id: id.gradient, gradientUnits: "userSpaceOnUse", x1: YAZAKIA.gradient.x1, y1: YAZAKIA.gradient.y1, x2: YAZAKIA.gradient.x2, y2: YAZAKIA.gradient.y2, children: YAZAKIA.gradient.stops.map(([offset, color]) => /* @__PURE__ */ jsx4("stop", { offset, stopColor: color }, offset)) }),
|
|
316
|
+
/* @__PURE__ */ jsxs4("linearGradient", { id: id.light, gradientUnits: "userSpaceOnUse", x1: "0", y1: YAZAKIA.lens.y1, x2: "0", y2: YAZAKIA.lens.y2, children: [
|
|
317
|
+
/* @__PURE__ */ jsx4("stop", { offset: "0%", stopColor: YAZAKIA.highlight.color, stopOpacity: YAZAKIA.highlight.from }),
|
|
318
|
+
/* @__PURE__ */ jsx4("stop", { offset: "100%", stopColor: YAZAKIA.highlight.color, stopOpacity: YAZAKIA.highlight.to })
|
|
319
|
+
] }),
|
|
309
320
|
/* @__PURE__ */ jsxs4("radialGradient", { id: id.glow, cx: "50%", cy: "50%", r: "50%", children: [
|
|
310
321
|
/* @__PURE__ */ jsx4("stop", { offset: "0%", stopColor: YAZAKIA.glow.color, stopOpacity: YAZAKIA.glow.opacity }),
|
|
311
322
|
/* @__PURE__ */ jsx4("stop", { offset: "100%", stopColor: YAZAKIA.glow.color, stopOpacity: "0" })
|
|
@@ -317,23 +328,102 @@ function YazakiaLogo({ size = 32, animated = true, title, className }) {
|
|
|
317
328
|
/* @__PURE__ */ jsx4("circle", { cx: YAZAKIA.center, cy: YAZAKIA.center, r: YAZAKIA.orbit.r, stroke: neutral("--kz-border-strong", 40), strokeWidth: YAZAKIA.orbit.width, strokeDasharray: YAZAKIA.orbit.dash, opacity: ".6" }),
|
|
318
329
|
YAZAKIA.pair.at.map(([cx2, cy]) => /* @__PURE__ */ jsx4("circle", { cx: cx2, cy, r: YAZAKIA.pair.r, fill }, cx2))
|
|
319
330
|
] }),
|
|
320
|
-
YAZAKIA.
|
|
321
|
-
|
|
322
|
-
|
|
331
|
+
YAZAKIA.voices.map((v, i) => /* @__PURE__ */ jsxs4("g", { children: [
|
|
332
|
+
/* @__PURE__ */ jsx4("path", { d: v.body, fill }),
|
|
333
|
+
/* @__PURE__ */ jsx4("path", { d: v.tail, fill }),
|
|
334
|
+
i === 0 ? /* @__PURE__ */ jsx4("path", { d: `${v.body} ${v.tail}`, fill: YAZAKIA.shade.color, opacity: YAZAKIA.shade.opacity }) : null
|
|
335
|
+
] }, v.body)),
|
|
323
336
|
/* @__PURE__ */ jsxs4("g", { className: animated ? "yzm-core" : void 0, children: [
|
|
324
|
-
/* @__PURE__ */ jsx4("
|
|
325
|
-
/* @__PURE__ */ jsx4("
|
|
337
|
+
/* @__PURE__ */ jsx4("path", { d: YAZAKIA.lens.d, fill }),
|
|
338
|
+
/* @__PURE__ */ jsx4("path", { d: YAZAKIA.lens.d, fill: `url(#${id.light})` })
|
|
339
|
+
] })
|
|
340
|
+
] });
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
// src/marks/yororis-geometry.ts
|
|
344
|
+
var sand = marks.yororis[0][1];
|
|
345
|
+
var sage = marks.yororis[marks.yororis.length - 1][1];
|
|
346
|
+
var YORORIS = {
|
|
347
|
+
viewBox: "0 0 400 400",
|
|
348
|
+
croppedViewBox: "80 80 240 240",
|
|
349
|
+
center: 200,
|
|
350
|
+
/** The two leaves — open hands, mirrored around x = 200 — filled, rising from the stem. */
|
|
351
|
+
leaves: [
|
|
352
|
+
"M200 262 C142 256 104 206 110 122 C138 130 154 152 160 180 C168 218 182 238 204 246 Z",
|
|
353
|
+
"M200 262 C258 256 296 206 290 122 C262 130 246 152 240 180 C232 218 218 238 196 246 Z"
|
|
354
|
+
],
|
|
355
|
+
/** A vein of light along each leaf (dashed, it drifts slowly when animated). */
|
|
356
|
+
veins: "M122 142 C128 196 156 232 192 248 M278 142 C272 196 244 232 208 248",
|
|
357
|
+
vein: { color: "#fbf6ea", opacity: 0.45, width: 3, dash: "2 14" },
|
|
358
|
+
/** The stem, from the junction down. */
|
|
359
|
+
stem: "M200 244 L200 312",
|
|
360
|
+
stroke: 30,
|
|
361
|
+
gradient: { x1: 110, y1: 300, x2: 290, y2: 100, stops: marks.yororis },
|
|
362
|
+
/** The core's warm light: from the mark's sand (below) to a light sand (above). */
|
|
363
|
+
coreGradient: { stops: [["0%", sand], ["100%", "#e6c993"]] },
|
|
364
|
+
/** The core, held in the hollow of the leaves (not on the junction): the one who is listened to. It breathes. */
|
|
365
|
+
core: { cx: 200, cy: 184, r: 32, inner: 11 },
|
|
366
|
+
highlight: "#fbf6ea",
|
|
367
|
+
/** The moment: one node on the orbit, that turns with it. */
|
|
368
|
+
moment: { r: 9, at: [200, 40] },
|
|
369
|
+
glow: { color: sage, opacity: 0.18 },
|
|
370
|
+
/** The core's breathing shadow (web), in the core's warm sand. */
|
|
371
|
+
pulse: { color: sand, low: 0.3, high: 0.6 },
|
|
372
|
+
orbit: { r: 160, dash: "8 8", width: 1.5 },
|
|
373
|
+
ring: { r: 134, width: 1 }
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
// src/marks/YororisLogo.tsx
|
|
377
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
378
|
+
var CSS5 = `
|
|
379
|
+
.yrm-orbit { transform-origin: 200px 200px; animation: yrm-orbit 36s linear infinite; }
|
|
380
|
+
.yrm-vein { animation: yrm-vein 4.8s linear infinite; }
|
|
381
|
+
.yrm-core { transform-box: fill-box; transform-origin: center; animation: yrm-core 4.2s ease-in-out infinite; }
|
|
382
|
+
@keyframes yrm-orbit { to { transform: rotate(360deg); } }
|
|
383
|
+
@keyframes yrm-vein { to { stroke-dashoffset: 64; } }
|
|
384
|
+
@keyframes yrm-core {
|
|
385
|
+
0%, 100% { filter: drop-shadow(0 0 6px ${withAlpha(YORORIS.pulse.color, YORORIS.pulse.low)}); opacity: .9; }
|
|
386
|
+
50% { filter: drop-shadow(0 0 16px ${withAlpha(YORORIS.pulse.color, YORORIS.pulse.high)}); opacity: 1; }
|
|
387
|
+
}
|
|
388
|
+
@media (prefers-reduced-motion: reduce) { .yrm-orbit, .yrm-vein, .yrm-core { animation: none; } }
|
|
389
|
+
`;
|
|
390
|
+
function YororisLogo({ size = 32, animated = true, title, className }) {
|
|
391
|
+
const id = useIds("yrm", ["gradient", "core", "glow"]);
|
|
392
|
+
const fill = `url(#${id.gradient})`;
|
|
393
|
+
return /* @__PURE__ */ jsxs5("svg", { width: size, height: size, viewBox: size < 48 ? YORORIS.croppedViewBox : YORORIS.viewBox, fill: "none", xmlns: "http://www.w3.org/2000/svg", className, ...a11y(title), children: [
|
|
394
|
+
/* @__PURE__ */ jsx5("style", { children: CSS5 }),
|
|
395
|
+
/* @__PURE__ */ jsxs5("defs", { children: [
|
|
396
|
+
/* @__PURE__ */ jsx5("linearGradient", { id: id.gradient, gradientUnits: "userSpaceOnUse", x1: YORORIS.gradient.x1, y1: YORORIS.gradient.y1, x2: YORORIS.gradient.x2, y2: YORORIS.gradient.y2, children: YORORIS.gradient.stops.map(([offset, color]) => /* @__PURE__ */ jsx5("stop", { offset, stopColor: color }, offset)) }),
|
|
397
|
+
/* @__PURE__ */ jsx5("linearGradient", { id: id.core, x1: "50%", y1: "100%", x2: "50%", y2: "0%", children: YORORIS.coreGradient.stops.map(([offset, color]) => /* @__PURE__ */ jsx5("stop", { offset, stopColor: color }, offset)) }),
|
|
398
|
+
/* @__PURE__ */ jsxs5("radialGradient", { id: id.glow, cx: "50%", cy: "50%", r: "50%", children: [
|
|
399
|
+
/* @__PURE__ */ jsx5("stop", { offset: "0%", stopColor: YORORIS.glow.color, stopOpacity: YORORIS.glow.opacity }),
|
|
400
|
+
/* @__PURE__ */ jsx5("stop", { offset: "100%", stopColor: YORORIS.glow.color, stopOpacity: "0" })
|
|
401
|
+
] })
|
|
402
|
+
] }),
|
|
403
|
+
size >= 48 ? /* @__PURE__ */ jsx5("circle", { cx: YORORIS.center, cy: YORORIS.center, r: "190", fill: `url(#${id.glow})` }) : null,
|
|
404
|
+
/* @__PURE__ */ jsx5("circle", { cx: YORORIS.center, cy: YORORIS.center, r: YORORIS.ring.r, stroke: neutral("--kz-border-default", 30), strokeWidth: YORORIS.ring.width, opacity: ".35" }),
|
|
405
|
+
/* @__PURE__ */ jsxs5("g", { className: animated ? "yrm-orbit" : void 0, children: [
|
|
406
|
+
/* @__PURE__ */ jsx5("circle", { cx: YORORIS.center, cy: YORORIS.center, r: YORORIS.orbit.r, stroke: neutral("--kz-border-strong", 40), strokeWidth: YORORIS.orbit.width, strokeDasharray: YORORIS.orbit.dash, opacity: ".6" }),
|
|
407
|
+
/* @__PURE__ */ jsx5("circle", { cx: YORORIS.moment.at[0], cy: YORORIS.moment.at[1], r: YORORIS.moment.r, fill })
|
|
408
|
+
] }),
|
|
409
|
+
/* @__PURE__ */ jsx5("path", { d: YORORIS.stem, stroke: fill, strokeWidth: YORORIS.stroke, strokeLinecap: "round" }),
|
|
410
|
+
YORORIS.leaves.map((d) => /* @__PURE__ */ jsx5("path", { d, fill }, d)),
|
|
411
|
+
/* @__PURE__ */ jsx5("path", { className: animated ? "yrm-vein" : void 0, d: YORORIS.veins, stroke: YORORIS.vein.color, strokeOpacity: YORORIS.vein.opacity, strokeWidth: YORORIS.vein.width, strokeLinecap: "round", strokeDasharray: YORORIS.vein.dash }),
|
|
412
|
+
/* @__PURE__ */ jsxs5("g", { className: animated ? "yrm-core" : void 0, children: [
|
|
413
|
+
/* @__PURE__ */ jsx5("circle", { cx: YORORIS.core.cx, cy: YORORIS.core.cy, r: YORORIS.core.r, fill: `url(#${id.core})` }),
|
|
414
|
+
/* @__PURE__ */ jsx5("circle", { cx: YORORIS.core.cx, cy: YORORIS.core.cy, r: YORORIS.core.inner, fill: YORORIS.highlight })
|
|
326
415
|
] })
|
|
327
416
|
] });
|
|
328
417
|
}
|
|
329
418
|
|
|
330
419
|
// src/marks/ProductLogo.tsx
|
|
331
|
-
import { jsx as
|
|
420
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
332
421
|
function ProductLogo({ id, ...props }) {
|
|
333
|
-
if (id === "krizaka") return /* @__PURE__ */
|
|
334
|
-
if (id === "orazaka") return /* @__PURE__ */
|
|
335
|
-
if (id === "yazakia") return /* @__PURE__ */
|
|
336
|
-
return /* @__PURE__ */
|
|
422
|
+
if (id === "krizaka") return /* @__PURE__ */ jsx6(KrizakaLogo, { ...props });
|
|
423
|
+
if (id === "orazaka") return /* @__PURE__ */ jsx6(OrazakaLogo, { ...props });
|
|
424
|
+
if (id === "yazakia") return /* @__PURE__ */ jsx6(YazakiaLogo, { ...props });
|
|
425
|
+
if (id === "yororis") return /* @__PURE__ */ jsx6(YororisLogo, { ...props });
|
|
426
|
+
return /* @__PURE__ */ jsx6(OrochiaLogo, { ...props });
|
|
337
427
|
}
|
|
338
428
|
export {
|
|
339
429
|
KrizakaLogo,
|
|
@@ -343,6 +433,7 @@ export {
|
|
|
343
433
|
ProductLogo,
|
|
344
434
|
RotatingWord,
|
|
345
435
|
YazakiaLogo,
|
|
436
|
+
YororisLogo,
|
|
346
437
|
cx
|
|
347
438
|
};
|
|
348
439
|
//# sourceMappingURL=index.js.map
|