@krizaka/ui 3.3.0 → 3.5.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/dist/activity-feed.d.ts +199 -0
- package/dist/activity-feed.js +155 -0
- package/dist/activity-feed.js.map +1 -0
- package/dist/chat.d.ts +187 -0
- package/dist/chat.js +132 -0
- package/dist/chat.js.map +1 -0
- package/dist/chunk-7Z4KHPFC.js +42 -0
- package/dist/chunk-7Z4KHPFC.js.map +1 -0
- package/dist/chunk-ECSCA3CN.js +128 -0
- package/dist/chunk-ECSCA3CN.js.map +1 -0
- package/dist/chunk-F2GKFIYK.js +47 -0
- package/dist/chunk-F2GKFIYK.js.map +1 -0
- package/dist/data-table.js +84 -231
- package/dist/data-table.js.map +1 -1
- package/dist/description-list.d.ts +105 -0
- package/dist/description-list.js +49 -0
- package/dist/description-list.js.map +1 -0
- package/dist/index.js +13 -66
- package/dist/index.js.map +1 -1
- package/dist/kanban.d.ts +132 -0
- package/dist/kanban.js +187 -0
- package/dist/kanban.js.map +1 -0
- package/dist/list.d.ts +153 -0
- package/dist/list.js +130 -0
- package/dist/list.js.map +1 -0
- package/dist/map.d.ts +463 -0
- package/dist/map.js +952 -0
- package/dist/map.js.map +1 -0
- package/dist/match-dialog.d.ts +30 -0
- package/dist/match-dialog.js +146 -0
- package/dist/match-dialog.js.map +1 -0
- package/dist/motion.css +12 -1
- package/dist/native/map.d.ts +200 -0
- package/dist/native/map.js +673 -0
- package/dist/native/map.js.map +1 -0
- package/dist/native/media-picker.d.ts +58 -0
- package/dist/native/media-picker.js +63 -0
- package/dist/native/media-picker.js.map +1 -0
- package/dist/native.d.ts +952 -75
- package/dist/native.js +2572 -889
- package/dist/native.js.map +1 -1
- package/dist/photo-grid.d.ts +122 -0
- package/dist/photo-grid.js +94 -0
- package/dist/photo-grid.js.map +1 -0
- package/dist/stat.d.ts +31 -2
- package/dist/stat.js +21 -4
- package/dist/stat.js.map +1 -1
- package/dist/step-progress.d.ts +20 -0
- package/dist/step-progress.js +17 -0
- package/dist/step-progress.js.map +1 -0
- package/dist/swipe-deck.d.ts +183 -0
- package/dist/swipe-deck.js +144 -0
- package/dist/swipe-deck.js.map +1 -0
- package/dist/tag-selector.d.ts +26 -0
- package/dist/tag-selector.js +21 -0
- package/dist/tag-selector.js.map +1 -0
- package/dist/tree-view.d.ts +111 -0
- package/dist/tree-view.js +154 -0
- package/dist/tree-view.js.map +1 -0
- package/dist/verified-badge.d.ts +16 -0
- package/dist/verified-badge.js +23 -0
- package/dist/verified-badge.js.map +1 -0
- package/package.json +245 -10
- package/registry/achievement.json +1 -1
- package/registry/action-bar.json +1 -1
- package/registry/action-sheet.json +121 -0
- package/registry/activity-feed.json +468 -0
- package/registry/alert.json +1 -1
- package/registry/app-shell.json +1 -1
- package/registry/argument-card.json +1 -1
- package/registry/audio-player.json +1 -1
- package/registry/auth-layout.json +1 -1
- package/registry/avatar.json +58 -3
- package/registry/badge.json +1 -1
- package/registry/button.json +1 -1
- package/registry/card-grid.json +1 -1
- package/registry/card.json +1 -1
- package/registry/catalogue-page.json +1 -1
- package/registry/changelog-page.json +1 -1
- package/registry/chat.json +917 -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 +1 -1
- package/registry/code-block.json +1 -1
- package/registry/combobox.json +1 -1
- package/registry/command.json +1 -1
- package/registry/component-page.json +1 -1
- package/registry/confirm-button.json +1 -1
- package/registry/contact-page.json +1 -1
- package/registry/continue-prompt.json +1 -1
- package/registry/countdown.json +1 -1
- package/registry/cta-panel.json +1 -1
- package/registry/dashboard-layout.json +1 -1
- package/registry/data-table.json +1 -1
- package/registry/date-picker.json +2 -2
- package/registry/decision-list.json +1 -1
- package/registry/description-list.json +232 -0
- package/registry/detail-layout.json +1 -1
- package/registry/dialog.json +1 -1
- package/registry/docs-article-page.json +1 -1
- package/registry/docs-hub-page.json +1 -1
- package/registry/docs-layout.json +1 -1
- package/registry/dropdown-menu.json +1 -1
- package/registry/empty-state.json +1 -1
- package/registry/error-page.json +1 -1
- package/registry/examples/action-sheet/native/video-actions.d.ts +4 -0
- package/registry/examples/action-sheet/native/video-actions.dark.png +0 -0
- package/registry/examples/action-sheet/native/video-actions.js +30 -0
- package/registry/examples/action-sheet/native/video-actions.light.png +0 -0
- package/registry/examples/action-sheet/native/video-actions.tsx +24 -0
- package/registry/examples/activity-feed/job-activity.d.ts +4 -0
- package/registry/examples/activity-feed/job-activity.js +21 -0
- package/registry/examples/activity-feed/job-activity.tsx +17 -0
- package/registry/examples/activity-feed/live.d.ts +4 -0
- package/registry/examples/activity-feed/live.js +23 -0
- package/registry/examples/activity-feed/live.tsx +24 -0
- package/registry/examples/activity-feed/native/notifications.d.ts +4 -0
- package/registry/examples/activity-feed/native/notifications.dark.png +0 -0
- package/registry/examples/activity-feed/native/notifications.js +18 -0
- package/registry/examples/activity-feed/native/notifications.light.png +0 -0
- package/registry/examples/activity-feed/native/notifications.tsx +18 -0
- package/registry/examples/activity-feed/timeline.d.ts +4 -0
- package/registry/examples/activity-feed/timeline.js +25 -0
- package/registry/examples/activity-feed/timeline.tsx +19 -0
- package/registry/examples/avatar/native/presence.d.ts +4 -0
- package/registry/examples/avatar/native/presence.dark.png +0 -0
- package/registry/examples/avatar/native/presence.js +18 -0
- package/registry/examples/avatar/native/presence.light.png +0 -0
- package/registry/examples/avatar/native/presence.tsx +15 -0
- package/registry/examples/chat/conversation.d.ts +4 -0
- package/registry/examples/chat/conversation.js +22 -0
- package/registry/examples/chat/conversation.tsx +21 -0
- package/registry/examples/chat/inbox.d.ts +4 -0
- package/registry/examples/chat/inbox.js +15 -0
- package/registry/examples/chat/inbox.tsx +12 -0
- package/registry/examples/chat/native/conversation.d.ts +4 -0
- package/registry/examples/chat/native/conversation.dark.png +0 -0
- package/registry/examples/chat/native/conversation.js +23 -0
- package/registry/examples/chat/native/conversation.light.png +0 -0
- package/registry/examples/chat/native/conversation.tsx +20 -0
- package/registry/examples/chat/native/inbox.d.ts +4 -0
- package/registry/examples/chat/native/inbox.dark.png +0 -0
- package/registry/examples/chat/native/inbox.js +16 -0
- package/registry/examples/chat/native/inbox.light.png +0 -0
- package/registry/examples/chat/native/inbox.tsx +13 -0
- package/registry/examples/description-list/job-details.d.ts +4 -0
- package/registry/examples/description-list/job-details.js +23 -0
- package/registry/examples/description-list/job-details.tsx +17 -0
- package/registry/examples/description-list/key-value-grid.d.ts +4 -0
- package/registry/examples/description-list/key-value-grid.js +22 -0
- package/registry/examples/description-list/key-value-grid.tsx +16 -0
- package/registry/examples/description-list/native/job-details.d.ts +4 -0
- package/registry/examples/description-list/native/job-details.dark.png +0 -0
- package/registry/examples/description-list/native/job-details.js +33 -0
- package/registry/examples/description-list/native/job-details.light.png +0 -0
- package/registry/examples/description-list/native/job-details.tsx +24 -0
- package/registry/examples/description-list/receipt.d.ts +4 -0
- package/registry/examples/description-list/receipt.js +23 -0
- package/registry/examples/description-list/receipt.tsx +17 -0
- package/registry/examples/fab/native/extended.d.ts +4 -0
- package/registry/examples/fab/native/extended.dark.png +0 -0
- package/registry/examples/fab/native/extended.js +18 -0
- package/registry/examples/fab/native/extended.light.png +0 -0
- package/registry/examples/fab/native/extended.tsx +23 -0
- package/registry/examples/header/native/large-title.d.ts +4 -0
- package/registry/examples/header/native/large-title.dark.png +0 -0
- package/registry/examples/header/native/large-title.js +23 -0
- package/registry/examples/header/native/large-title.light.png +0 -0
- package/registry/examples/header/native/large-title.tsx +31 -0
- package/registry/examples/image-viewer/native/gallery.d.ts +4 -0
- package/registry/examples/image-viewer/native/gallery.dark.png +0 -0
- package/registry/examples/image-viewer/native/gallery.js +22 -0
- package/registry/examples/image-viewer/native/gallery.light.png +0 -0
- package/registry/examples/image-viewer/native/gallery.tsx +21 -0
- package/registry/examples/kanban/moderation.d.ts +4 -0
- package/registry/examples/kanban/moderation.js +35 -0
- package/registry/examples/kanban/moderation.tsx +37 -0
- package/registry/examples/list/jobs.d.ts +4 -0
- package/registry/examples/list/jobs.js +35 -0
- package/registry/examples/list/jobs.tsx +33 -0
- package/registry/examples/list/selectable.d.ts +4 -0
- package/registry/examples/list/selectable.js +33 -0
- package/registry/examples/list/selectable.tsx +30 -0
- package/registry/examples/list/virtualized.d.ts +4 -0
- package/registry/examples/list/virtualized.js +22 -0
- package/registry/examples/list/virtualized.tsx +17 -0
- package/registry/examples/loader/native/block.d.ts +4 -0
- package/registry/examples/loader/native/block.dark.png +0 -0
- package/registry/examples/loader/native/block.js +12 -0
- package/registry/examples/loader/native/block.light.png +0 -0
- package/registry/examples/loader/native/block.tsx +11 -0
- package/registry/examples/loader/native/job-wait.d.ts +4 -0
- package/registry/examples/loader/native/job-wait.dark.png +0 -0
- package/registry/examples/loader/native/job-wait.js +17 -0
- package/registry/examples/loader/native/job-wait.light.png +0 -0
- package/registry/examples/loader/native/job-wait.tsx +14 -0
- package/registry/examples/map/cluster.d.ts +4 -0
- package/registry/examples/map/cluster.js +16 -0
- package/registry/examples/map/cluster.tsx +18 -0
- package/registry/examples/map/location-picker.d.ts +4 -0
- package/registry/examples/map/location-picker.js +24 -0
- package/registry/examples/map/location-picker.tsx +22 -0
- package/registry/examples/map/native/location-picker.d.ts +4 -0
- package/registry/examples/map/native/location-picker.dark.png +0 -0
- package/registry/examples/map/native/location-picker.js +14 -0
- package/registry/examples/map/native/location-picker.light.png +0 -0
- package/registry/examples/map/native/location-picker.tsx +13 -0
- package/registry/examples/map/native/places.d.ts +4 -0
- package/registry/examples/map/native/places.dark.png +0 -0
- package/registry/examples/map/native/places.js +25 -0
- package/registry/examples/map/native/places.light.png +0 -0
- package/registry/examples/map/native/places.tsx +27 -0
- package/registry/examples/map/places.d.ts +4 -0
- package/registry/examples/map/places.js +28 -0
- package/registry/examples/map/places.tsx +28 -0
- package/registry/examples/map/static.d.ts +4 -0
- package/registry/examples/map/static.js +22 -0
- package/registry/examples/map/static.tsx +18 -0
- package/registry/examples/match-dialog/its-a-match.d.ts +4 -0
- package/registry/examples/match-dialog/its-a-match.js +29 -0
- package/registry/examples/match-dialog/its-a-match.tsx +25 -0
- package/registry/examples/match-dialog/native/its-a-match.d.ts +4 -0
- package/registry/examples/match-dialog/native/its-a-match.dark.png +0 -0
- package/registry/examples/match-dialog/native/its-a-match.js +28 -0
- package/registry/examples/match-dialog/native/its-a-match.light.png +0 -0
- package/registry/examples/match-dialog/native/its-a-match.tsx +22 -0
- package/registry/examples/media-picker/native/story.d.ts +4 -0
- package/registry/examples/media-picker/native/story.dark.png +0 -0
- package/registry/examples/media-picker/native/story.js +30 -0
- package/registry/examples/media-picker/native/story.light.png +0 -0
- package/registry/examples/media-picker/native/story.tsx +26 -0
- package/registry/examples/meter/native/credits.d.ts +4 -0
- package/registry/examples/meter/native/credits.dark.png +0 -0
- package/registry/examples/meter/native/credits.js +15 -0
- package/registry/examples/meter/native/credits.light.png +0 -0
- package/registry/examples/meter/native/credits.tsx +12 -0
- package/registry/examples/meter/native/split-ring.d.ts +4 -0
- package/registry/examples/meter/native/split-ring.dark.png +0 -0
- package/registry/examples/meter/native/split-ring.js +24 -0
- package/registry/examples/meter/native/split-ring.light.png +0 -0
- package/registry/examples/meter/native/split-ring.tsx +19 -0
- package/registry/examples/number-ticker/native/balance.d.ts +4 -0
- package/registry/examples/number-ticker/native/balance.dark.png +0 -0
- package/registry/examples/number-ticker/native/balance.js +18 -0
- package/registry/examples/number-ticker/native/balance.light.png +0 -0
- package/registry/examples/number-ticker/native/balance.tsx +17 -0
- package/registry/examples/onboarding/native/first-launch.d.ts +4 -0
- package/registry/examples/onboarding/native/first-launch.dark.png +0 -0
- package/registry/examples/onboarding/native/first-launch.js +23 -0
- package/registry/examples/onboarding/native/first-launch.light.png +0 -0
- package/registry/examples/onboarding/native/first-launch.tsx +19 -0
- package/registry/examples/otp-input/native/invalid.d.ts +4 -0
- package/registry/examples/otp-input/native/invalid.dark.png +0 -0
- package/registry/examples/otp-input/native/invalid.js +15 -0
- package/registry/examples/otp-input/native/invalid.light.png +0 -0
- package/registry/examples/otp-input/native/invalid.tsx +14 -0
- package/registry/examples/otp-input/native/verify.d.ts +4 -0
- package/registry/examples/otp-input/native/verify.dark.png +0 -0
- package/registry/examples/otp-input/native/verify.js +17 -0
- package/registry/examples/otp-input/native/verify.light.png +0 -0
- package/registry/examples/otp-input/native/verify.tsx +14 -0
- package/registry/examples/permission-prompt/native/blocked.d.ts +4 -0
- package/registry/examples/permission-prompt/native/blocked.dark.png +0 -0
- package/registry/examples/permission-prompt/native/blocked.js +25 -0
- package/registry/examples/permission-prompt/native/blocked.light.png +0 -0
- package/registry/examples/permission-prompt/native/blocked.tsx +21 -0
- package/registry/examples/permission-prompt/native/camera.d.ts +4 -0
- package/registry/examples/permission-prompt/native/camera.dark.png +0 -0
- package/registry/examples/permission-prompt/native/camera.js +25 -0
- package/registry/examples/permission-prompt/native/camera.light.png +0 -0
- package/registry/examples/permission-prompt/native/camera.tsx +21 -0
- package/registry/examples/photo-grid/native/profile-photos.d.ts +4 -0
- package/registry/examples/photo-grid/native/profile-photos.dark.png +0 -0
- package/registry/examples/photo-grid/native/profile-photos.js +27 -0
- package/registry/examples/photo-grid/native/profile-photos.light.png +0 -0
- package/registry/examples/photo-grid/native/profile-photos.tsx +24 -0
- package/registry/examples/photo-grid/profile-photos.d.ts +4 -0
- package/registry/examples/photo-grid/profile-photos.js +28 -0
- package/registry/examples/photo-grid/profile-photos.tsx +25 -0
- package/registry/examples/pull-to-refresh/native/feed.d.ts +4 -0
- package/registry/examples/pull-to-refresh/native/feed.dark.png +0 -0
- package/registry/examples/pull-to-refresh/native/feed.js +14 -0
- package/registry/examples/pull-to-refresh/native/feed.light.png +0 -0
- package/registry/examples/pull-to-refresh/native/feed.tsx +19 -0
- package/registry/examples/screen/native/app-shell.d.ts +4 -0
- package/registry/examples/screen/native/app-shell.dark.png +0 -0
- package/registry/examples/screen/native/app-shell.js +25 -0
- package/registry/examples/screen/native/app-shell.light.png +0 -0
- package/registry/examples/screen/native/app-shell.tsx +33 -0
- package/registry/examples/screen/native/auth.d.ts +4 -0
- package/registry/examples/screen/native/auth.dark.png +0 -0
- package/registry/examples/screen/native/auth.js +24 -0
- package/registry/examples/screen/native/auth.light.png +0 -0
- package/registry/examples/screen/native/auth.tsx +20 -0
- package/registry/examples/screen/native/chat.d.ts +4 -0
- package/registry/examples/screen/native/chat.dark.png +0 -0
- package/registry/examples/screen/native/chat.js +27 -0
- package/registry/examples/screen/native/chat.light.png +0 -0
- package/registry/examples/screen/native/chat.tsx +22 -0
- package/registry/examples/screen/native/feed.d.ts +4 -0
- package/registry/examples/screen/native/feed.dark.png +0 -0
- package/registry/examples/screen/native/feed.js +24 -0
- package/registry/examples/screen/native/feed.light.png +0 -0
- package/registry/examples/screen/native/feed.tsx +34 -0
- package/registry/examples/screen/native/profile.d.ts +4 -0
- package/registry/examples/screen/native/profile.dark.png +0 -0
- package/registry/examples/screen/native/profile.js +29 -0
- package/registry/examples/screen/native/profile.light.png +0 -0
- package/registry/examples/screen/native/profile.tsx +27 -0
- package/registry/examples/screen/native/settings.d.ts +4 -0
- package/registry/examples/screen/native/settings.dark.png +0 -0
- package/registry/examples/screen/native/settings.js +20 -0
- package/registry/examples/screen/native/settings.light.png +0 -0
- package/registry/examples/screen/native/settings.tsx +19 -0
- package/registry/examples/search-field/native/cancel.d.ts +4 -0
- package/registry/examples/search-field/native/cancel.dark.png +0 -0
- package/registry/examples/search-field/native/cancel.js +14 -0
- package/registry/examples/search-field/native/cancel.light.png +0 -0
- package/registry/examples/search-field/native/cancel.tsx +13 -0
- package/registry/examples/stat/grid.d.ts +4 -0
- package/registry/examples/stat/grid.js +17 -0
- package/registry/examples/stat/grid.tsx +14 -0
- package/registry/examples/step-progress/native/sign-up.d.ts +4 -0
- package/registry/examples/step-progress/native/sign-up.dark.png +0 -0
- package/registry/examples/step-progress/native/sign-up.js +12 -0
- package/registry/examples/step-progress/native/sign-up.light.png +0 -0
- package/registry/examples/step-progress/native/sign-up.tsx +11 -0
- package/registry/examples/step-progress/sign-up.d.ts +4 -0
- package/registry/examples/step-progress/sign-up.js +22 -0
- package/registry/examples/step-progress/sign-up.tsx +16 -0
- package/registry/examples/stepper/native/run.d.ts +4 -0
- package/registry/examples/stepper/native/run.dark.png +0 -0
- package/registry/examples/stepper/native/run.js +24 -0
- package/registry/examples/stepper/native/run.light.png +0 -0
- package/registry/examples/stepper/native/run.tsx +20 -0
- package/registry/examples/swipe-deck/discover.d.ts +4 -0
- package/registry/examples/swipe-deck/discover.js +41 -0
- package/registry/examples/swipe-deck/discover.tsx +37 -0
- package/registry/examples/swipe-deck/native/discover.d.ts +4 -0
- package/registry/examples/swipe-deck/native/discover.dark.png +0 -0
- package/registry/examples/swipe-deck/native/discover.js +39 -0
- package/registry/examples/swipe-deck/native/discover.light.png +0 -0
- package/registry/examples/swipe-deck/native/discover.tsx +35 -0
- package/registry/examples/swipeable-row/native/conversation.d.ts +4 -0
- package/registry/examples/swipeable-row/native/conversation.dark.png +0 -0
- package/registry/examples/swipeable-row/native/conversation.js +30 -0
- package/registry/examples/swipeable-row/native/conversation.light.png +0 -0
- package/registry/examples/swipeable-row/native/conversation.tsx +27 -0
- package/registry/examples/tab-bar/native/main-sections.d.ts +4 -0
- package/registry/examples/tab-bar/native/main-sections.dark.png +0 -0
- package/registry/examples/tab-bar/native/main-sections.js +29 -0
- package/registry/examples/tab-bar/native/main-sections.light.png +0 -0
- package/registry/examples/tab-bar/native/main-sections.tsx +30 -0
- package/registry/examples/tabs/native/sections.d.ts +4 -0
- package/registry/examples/tabs/native/sections.dark.png +0 -0
- package/registry/examples/tabs/native/sections.js +23 -0
- package/registry/examples/tabs/native/sections.light.png +0 -0
- package/registry/examples/tabs/native/sections.tsx +19 -0
- package/registry/examples/tabs/native/segmented.d.ts +4 -0
- package/registry/examples/tabs/native/segmented.dark.png +0 -0
- package/registry/examples/tabs/native/segmented.js +22 -0
- package/registry/examples/tabs/native/segmented.light.png +0 -0
- package/registry/examples/tabs/native/segmented.tsx +18 -0
- package/registry/examples/tag-selector/interests.d.ts +4 -0
- package/registry/examples/tag-selector/interests.js +14 -0
- package/registry/examples/tag-selector/interests.tsx +12 -0
- package/registry/examples/tag-selector/native/interests.d.ts +4 -0
- package/registry/examples/tag-selector/native/interests.dark.png +0 -0
- package/registry/examples/tag-selector/native/interests.js +15 -0
- package/registry/examples/tag-selector/native/interests.light.png +0 -0
- package/registry/examples/tag-selector/native/interests.tsx +15 -0
- package/registry/examples/toast/native/snackbar.d.ts +4 -0
- package/registry/examples/toast/native/snackbar.dark.png +0 -0
- package/registry/examples/toast/native/snackbar.js +23 -0
- package/registry/examples/toast/native/snackbar.light.png +0 -0
- package/registry/examples/toast/native/snackbar.tsx +21 -0
- package/registry/examples/tree-view/docs.d.ts +4 -0
- package/registry/examples/tree-view/docs.js +24 -0
- package/registry/examples/tree-view/docs.tsx +22 -0
- package/registry/examples/tree-view/lazy.d.ts +4 -0
- package/registry/examples/tree-view/lazy.js +21 -0
- package/registry/examples/tree-view/lazy.tsx +19 -0
- package/registry/examples/verified-badge/native/verified.d.ts +4 -0
- package/registry/examples/verified-badge/native/verified.dark.png +0 -0
- package/registry/examples/verified-badge/native/verified.js +18 -0
- package/registry/examples/verified-badge/native/verified.light.png +0 -0
- package/registry/examples/verified-badge/native/verified.tsx +15 -0
- package/registry/examples/verified-badge/verified.d.ts +4 -0
- package/registry/examples/verified-badge/verified.js +17 -0
- package/registry/examples/verified-badge/verified.tsx +13 -0
- package/registry/fab.json +122 -0
- package/registry/field.json +1 -1
- package/registry/file-upload.json +2 -2
- package/registry/filter-bar.json +1 -1
- package/registry/form.json +2 -2
- package/registry/gallery-page.json +1 -1
- package/registry/glow-card.json +1 -1
- package/registry/goal-gauge.json +1 -1
- package/registry/header.json +137 -0
- package/registry/how-it-works-page.json +1 -1
- package/registry/image-cropper.json +1 -1
- package/registry/image-viewer.json +107 -0
- package/registry/index.json +441 -25
- package/registry/iso.json +1 -1
- package/registry/kanban.json +253 -0
- package/registry/kbd.json +1 -1
- package/registry/landing-page.json +1 -1
- package/registry/landscape.json +1 -1
- package/registry/legal-page.json +1 -1
- package/registry/link-card.json +1 -1
- package/registry/list.json +367 -30
- package/registry/loader.json +157 -4
- package/registry/longform-page.json +1 -1
- package/registry/map.json +1368 -0
- package/registry/marketing-layout.json +1 -1
- package/registry/marquee.json +1 -1
- package/registry/mascot-quote.json +1 -1
- package/registry/mascot-state.json +1 -1
- package/registry/mascots.json +1 -1
- package/registry/match-dialog.json +300 -0
- package/registry/media-capture.json +1 -1
- package/registry/media-picker.json +129 -0
- package/registry/meter.json +136 -4
- package/registry/nav-bar.json +1 -1
- package/registry/number-ticker.json +96 -4
- package/registry/onboarding.json +95 -0
- package/registry/otp-input.json +150 -0
- package/registry/page-header.json +1 -1
- package/registry/page-hero.json +1 -1
- package/registry/page.json +1 -1
- package/registry/pagination.json +1 -1
- package/registry/permission-prompt.json +172 -0
- package/registry/photo-grid.json +302 -0
- package/registry/pointer-light.json +1 -1
- package/registry/popover.json +1 -1
- package/registry/pricing-page.json +1 -1
- package/registry/product-page.json +1 -1
- package/registry/profile-card.json +1 -1
- package/registry/progress.json +2 -2
- package/registry/promise-card.json +1 -1
- package/registry/pull-to-refresh.json +74 -0
- package/registry/radio-group.json +1 -1
- package/registry/screen.json +184 -0
- package/registry/scroll-stage.json +1 -1
- package/registry/search-field.json +30 -3
- package/registry/section-backdrop.json +1 -1
- package/registry/separator.json +1 -1
- package/registry/settings-layout.json +1 -1
- 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 +1 -1
- package/registry/stage-banner.json +1 -1
- package/registry/stat.json +68 -5
- package/registry/status-page.json +1 -1
- package/registry/step-progress.json +255 -0
- package/registry/stepper.json +75 -4
- package/registry/swipe-deck.json +512 -0
- package/registry/swipeable-row.json +124 -0
- package/registry/switch.json +1 -1
- package/registry/tab-bar.json +115 -0
- package/registry/tabs.json +94 -4
- package/registry/tag-input.json +1 -1
- package/registry/tag-selector.json +276 -0
- package/registry/terminal-replay.json +1 -1
- package/registry/theme.json +8 -1
- package/registry/toast.json +17 -3
- package/registry/toc.json +1 -1
- package/registry/tooltip.json +1 -1
- package/registry/tree-view.json +291 -0
- package/registry/verified-badge.json +202 -0
- package/registry/video-player.json +1 -1
- package/registry/video-trimmer.json +1 -1
- package/registry/virtual.json +1 -1
- package/skills/map/SKILL.md +35 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/tab-bar/native/main-sections.tsx
|
|
4
|
+
import { TabBar } from "@krizaka/ui/native";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
import { View } from "react-native";
|
|
7
|
+
import Svg, { Path } from "react-native-svg";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
var icon = (d) => (on, color) => /* @__PURE__ */ jsx(Svg, { width: 24, height: 24, viewBox: "0 0 24 24", fill: on ? color : "none", stroke: color, strokeWidth: 2, strokeLinejoin: "round", children: /* @__PURE__ */ jsx(Path, { d }) });
|
|
10
|
+
function NativeTabBarMainSections() {
|
|
11
|
+
const [tab, setTab] = useState("home");
|
|
12
|
+
return /* @__PURE__ */ jsx(View, { style: { width: 360 }, children: /* @__PURE__ */ jsx(
|
|
13
|
+
TabBar,
|
|
14
|
+
{
|
|
15
|
+
"aria-label": "Main sections",
|
|
16
|
+
value: tab,
|
|
17
|
+
onValueChange: setTab,
|
|
18
|
+
items: [
|
|
19
|
+
{ value: "home", label: "Home", icon: icon("M3 11 12 4l9 7v9h-6v-6H9v6H3z") },
|
|
20
|
+
{ value: "auctions", label: "Auctions", icon: icon("M14 4l6 6-3 3-6-6zM11 7l-8 8 3 3 8-8M4 21h9") },
|
|
21
|
+
{ value: "messages", label: "Messages", badge: 3, badgeLabel: "3 unread", icon: icon("M4 5h16v11H8l-4 4z") },
|
|
22
|
+
{ value: "me", label: "Me", icon: icon("M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4 21a8 8 0 0 1 16 0") }
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
) });
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
NativeTabBarMainSections as default
|
|
29
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TabBar } from "@krizaka/ui/native";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
import Svg, { Path } from "react-native-svg";
|
|
5
|
+
|
|
6
|
+
const icon = (d: string) => (on: boolean, color: string) => (
|
|
7
|
+
<Svg width={24} height={24} viewBox="0 0 24 24" fill={on ? color : "none"} stroke={color} strokeWidth={2} strokeLinejoin="round">
|
|
8
|
+
<Path d={d} />
|
|
9
|
+
</Svg>
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
// Orochia's main sections: the current one in the accent, a badge on Messages, a tick on change.
|
|
13
|
+
export default function NativeTabBarMainSections() {
|
|
14
|
+
const [tab, setTab] = useState<"home" | "auctions" | "messages" | "me">("home");
|
|
15
|
+
return (
|
|
16
|
+
<View style={{ width: 360 }}>
|
|
17
|
+
<TabBar
|
|
18
|
+
aria-label="Main sections"
|
|
19
|
+
value={tab}
|
|
20
|
+
onValueChange={setTab}
|
|
21
|
+
items={[
|
|
22
|
+
{ value: "home", label: "Home", icon: icon("M3 11 12 4l9 7v9h-6v-6H9v6H3z") },
|
|
23
|
+
{ value: "auctions", label: "Auctions", icon: icon("M14 4l6 6-3 3-6-6zM11 7l-8 8 3 3 8-8M4 21h9") },
|
|
24
|
+
{ value: "messages", label: "Messages", badge: 3, badgeLabel: "3 unread", icon: icon("M4 5h16v11H8l-4 4z") },
|
|
25
|
+
{ value: "me", label: "Me", icon: icon("M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4 21a8 8 0 0 1 16 0") },
|
|
26
|
+
]}
|
|
27
|
+
/>
|
|
28
|
+
</View>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/tabs/native/sections.tsx
|
|
4
|
+
import { Tabs, Txt } from "@krizaka/ui/native";
|
|
5
|
+
import { View } from "react-native";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
function NativeTabsSections() {
|
|
8
|
+
return /* @__PURE__ */ jsx(View, { style: { width: 340 }, children: /* @__PURE__ */ jsx(
|
|
9
|
+
Tabs,
|
|
10
|
+
{
|
|
11
|
+
"aria-label": "Elena's page",
|
|
12
|
+
items: [
|
|
13
|
+
{ value: "videos", label: "Videos", count: 42, content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "42 videos, newest first." }) },
|
|
14
|
+
{ value: "auctions", label: "Auctions", count: 3, content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "3 auctions running." }) },
|
|
15
|
+
{ value: "challenges", label: "Challenges", content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "Dares from fans." }) },
|
|
16
|
+
{ value: "about", label: "About", content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "Covers and live sessions." }) }
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
) });
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
NativeTabsSections as default
|
|
23
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Tabs, Txt } from "@krizaka/ui/native";
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
|
|
4
|
+
// A creator's page: sections that scroll sideways when they do not fit, a count after the words.
|
|
5
|
+
export default function NativeTabsSections() {
|
|
6
|
+
return (
|
|
7
|
+
<View style={{ width: 340 }}>
|
|
8
|
+
<Tabs
|
|
9
|
+
aria-label="Elena's page"
|
|
10
|
+
items={[
|
|
11
|
+
{ value: "videos", label: "Videos", count: 42, content: <Txt tone="secondary">42 videos, newest first.</Txt> },
|
|
12
|
+
{ value: "auctions", label: "Auctions", count: 3, content: <Txt tone="secondary">3 auctions running.</Txt> },
|
|
13
|
+
{ value: "challenges", label: "Challenges", content: <Txt tone="secondary">Dares from fans.</Txt> },
|
|
14
|
+
{ value: "about", label: "About", content: <Txt tone="secondary">Covers and live sessions.</Txt> },
|
|
15
|
+
]}
|
|
16
|
+
/>
|
|
17
|
+
</View>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/tabs/native/segmented.tsx
|
|
4
|
+
import { Tabs, Txt } from "@krizaka/ui/native";
|
|
5
|
+
import { View } from "react-native";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
function NativeTabsSegmented() {
|
|
8
|
+
return /* @__PURE__ */ jsx(View, { style: { width: 320 }, children: /* @__PURE__ */ jsx(
|
|
9
|
+
Tabs,
|
|
10
|
+
{
|
|
11
|
+
variant: "segmented",
|
|
12
|
+
"aria-label": "Story insights",
|
|
13
|
+
items: [
|
|
14
|
+
{ value: "viewers", label: "Viewers", content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "312 people watched." }) },
|
|
15
|
+
{ value: "tips", label: "Tips", content: /* @__PURE__ */ jsx(Txt, { tone: "secondary", children: "$46 from 9 fans." }) }
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
) });
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
NativeTabsSegmented as default
|
|
22
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Tabs, Txt } from "@krizaka/ui/native";
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
|
|
4
|
+
// Two views of the same content: `variant="segmented"`.
|
|
5
|
+
export default function NativeTabsSegmented() {
|
|
6
|
+
return (
|
|
7
|
+
<View style={{ width: 320 }}>
|
|
8
|
+
<Tabs
|
|
9
|
+
variant="segmented"
|
|
10
|
+
aria-label="Story insights"
|
|
11
|
+
items={[
|
|
12
|
+
{ value: "viewers", label: "Viewers", content: <Txt tone="secondary">312 people watched.</Txt> },
|
|
13
|
+
{ value: "tips", label: "Tips", content: <Txt tone="secondary">$46 from 9 fans.</Txt> },
|
|
14
|
+
]}
|
|
15
|
+
/>
|
|
16
|
+
</View>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/tag-selector/interests.tsx
|
|
4
|
+
import { TagSelector } from "@krizaka/ui/tag-selector";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
var INTERESTS = ["Music", "Surf", "Cooking", "Hiking", "Cinema", "Climbing", "Travel", "Gaming", "Yoga", "Photography"].map((t) => ({ value: t.toLowerCase(), label: t }));
|
|
8
|
+
function TagSelectorInterests() {
|
|
9
|
+
const [chosen, setChosen] = useState(["music", "surf", "travel"]);
|
|
10
|
+
return /* @__PURE__ */ jsx(TagSelector, { className: "max-w-md", label: "Interests", options: INTERESTS, value: chosen, onValueChange: setChosen, max: 5, countLabel: (n, max) => `${n} of ${max} chosen` });
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
TagSelectorInterests as default
|
|
14
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { TagSelector } from "@krizaka/ui/tag-selector";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
|
|
6
|
+
const INTERESTS = ["Music", "Surf", "Cooking", "Hiking", "Cinema", "Climbing", "Travel", "Gaming", "Yoga", "Photography"].map((t) => ({ value: t.toLowerCase(), label: t }));
|
|
7
|
+
|
|
8
|
+
// Up to five interests: the others rest once five are chosen.
|
|
9
|
+
export default function TagSelectorInterests() {
|
|
10
|
+
const [chosen, setChosen] = useState<string[]>(["music", "surf", "travel"]);
|
|
11
|
+
return <TagSelector className="max-w-md" label="Interests" options={INTERESTS} value={chosen} onValueChange={setChosen} max={5} countLabel={(n, max) => `${n} of ${max} chosen`} />;
|
|
12
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/tag-selector/native/interests.tsx
|
|
4
|
+
import { TagSelector } from "@krizaka/ui/native";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
import { View } from "react-native";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var INTERESTS = ["Music", "Surf", "Cooking", "Hiking", "Cinema", "Climbing", "Travel", "Gaming", "Yoga", "Photography"].map((t) => ({ value: t.toLowerCase(), label: t }));
|
|
9
|
+
function NativeTagSelectorInterests() {
|
|
10
|
+
const [chosen, setChosen] = useState(["music", "surf", "travel"]);
|
|
11
|
+
return /* @__PURE__ */ jsx(View, { style: { width: 340 }, children: /* @__PURE__ */ jsx(TagSelector, { label: "Interests", options: INTERESTS, value: chosen, onValueChange: setChosen, max: 5, countLabel: (n, max) => `${n} of ${max} chosen` }) });
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
NativeTagSelectorInterests as default
|
|
15
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TagSelector } from "@krizaka/ui/native";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
|
|
5
|
+
const INTERESTS = ["Music", "Surf", "Cooking", "Hiking", "Cinema", "Climbing", "Travel", "Gaming", "Yoga", "Photography"].map((t) => ({ value: t.toLowerCase(), label: t }));
|
|
6
|
+
|
|
7
|
+
// Up to five interests: the others rest once five are chosen, the count says so.
|
|
8
|
+
export default function NativeTagSelectorInterests() {
|
|
9
|
+
const [chosen, setChosen] = useState<string[]>(["music", "surf", "travel"]);
|
|
10
|
+
return (
|
|
11
|
+
<View style={{ width: 340 }}>
|
|
12
|
+
<TagSelector label="Interests" options={INTERESTS} value={chosen} onValueChange={setChosen} max={5} countLabel={(n, max) => `${n} of ${max} chosen`} />
|
|
13
|
+
</View>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/toast/native/snackbar.tsx
|
|
4
|
+
import { Button, toast, Toaster } from "@krizaka/ui/native";
|
|
5
|
+
import { useEffect } from "react";
|
|
6
|
+
import { View } from "react-native";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
var archive = () => toast("Conversation archived", { id: "archived", action: { label: "Undo", onPress: () => void 0 } });
|
|
9
|
+
function NativeToastSnackbar({ defaultOpen = false }) {
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (!defaultOpen) return;
|
|
12
|
+
toast.dismiss();
|
|
13
|
+
archive();
|
|
14
|
+
return () => toast.dismiss();
|
|
15
|
+
}, [defaultOpen]);
|
|
16
|
+
return /* @__PURE__ */ jsxs(View, { style: { width: 360, height: 200 }, children: [
|
|
17
|
+
/* @__PURE__ */ jsx(Button, { variant: "outline", label: "Archive", onPress: archive }),
|
|
18
|
+
/* @__PURE__ */ jsx(Toaster, { closeLabel: "Dismiss", position: "bottom", offset: 16, duration: defaultOpen ? Number.POSITIVE_INFINITY : 5e3 })
|
|
19
|
+
] });
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
NativeToastSnackbar as default
|
|
23
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Button, toast, Toaster } from "@krizaka/ui/native";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
|
|
5
|
+
const archive = () => toast("Conversation archived", { id: "archived", action: { label: "Undo", onPress: () => undefined } });
|
|
6
|
+
|
|
7
|
+
// A snackbar: at the bottom, above the tab bar (`offset`), one action; swipe it away, a tick for its tone.
|
|
8
|
+
export default function NativeToastSnackbar({ defaultOpen = false }: { defaultOpen?: boolean }) {
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (!defaultOpen) return;
|
|
11
|
+
toast.dismiss();
|
|
12
|
+
archive();
|
|
13
|
+
return () => toast.dismiss();
|
|
14
|
+
}, [defaultOpen]);
|
|
15
|
+
return (
|
|
16
|
+
<View style={{ width: 360, height: 200 }}>
|
|
17
|
+
<Button variant="outline" label="Archive" onPress={archive} />
|
|
18
|
+
<Toaster closeLabel="Dismiss" position="bottom" offset={16} duration={defaultOpen ? Number.POSITIVE_INFINITY : 5000} />
|
|
19
|
+
</View>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/tree-view/docs.tsx
|
|
4
|
+
import { TreeView } from "@krizaka/ui/tree-view";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
var nodes = [
|
|
7
|
+
{
|
|
8
|
+
id: "orazaka",
|
|
9
|
+
label: "Orazaka",
|
|
10
|
+
children: [
|
|
11
|
+
{ id: "getting-started", label: "Getting started" },
|
|
12
|
+
{ id: "studios", label: "Studios", meta: "12", children: [{ id: "dubbing", label: "Dubbing" }, { id: "transcript", label: "Transcript" }, { id: "clips", label: "Clips" }] },
|
|
13
|
+
{ id: "api", label: "API reference" }
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
{ id: "orochia", label: "Orochia", children: [{ id: "auctions", label: "Auctions" }, { id: "challenges", label: "Challenges" }] },
|
|
17
|
+
{ id: "ui", label: "Krizaka UI", children: [{ id: "components", label: "Components" }] }
|
|
18
|
+
];
|
|
19
|
+
function TreeViewDocs() {
|
|
20
|
+
return /* @__PURE__ */ jsx(TreeView, { "aria-label": "Documentation", nodes, defaultExpanded: ["orazaka", "studios"], defaultSelected: "dubbing", className: "max-w-xs" });
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
TreeViewDocs as default
|
|
24
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { TreeView } from "@krizaka/ui/tree-view";
|
|
4
|
+
|
|
5
|
+
const nodes = [
|
|
6
|
+
{
|
|
7
|
+
id: "orazaka",
|
|
8
|
+
label: "Orazaka",
|
|
9
|
+
children: [
|
|
10
|
+
{ id: "getting-started", label: "Getting started" },
|
|
11
|
+
{ id: "studios", label: "Studios", meta: "12", children: [{ id: "dubbing", label: "Dubbing" }, { id: "transcript", label: "Transcript" }, { id: "clips", label: "Clips" }] },
|
|
12
|
+
{ id: "api", label: "API reference" },
|
|
13
|
+
],
|
|
14
|
+
},
|
|
15
|
+
{ id: "orochia", label: "Orochia", children: [{ id: "auctions", label: "Auctions" }, { id: "challenges", label: "Challenges" }] },
|
|
16
|
+
{ id: "ui", label: "Krizaka UI", children: [{ id: "components", label: "Components" }] },
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
// The documentation's sections: one tab stop, the arrows walk and open, a letter jumps.
|
|
20
|
+
export default function TreeViewDocs() {
|
|
21
|
+
return <TreeView aria-label="Documentation" nodes={nodes} defaultExpanded={["orazaka", "studios"]} defaultSelected="dubbing" className="max-w-xs" />;
|
|
22
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/tree-view/lazy.tsx
|
|
4
|
+
import { TreeView } from "@krizaka/ui/tree-view";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
function TreeViewLazy() {
|
|
8
|
+
const [nodes, setNodes] = useState([
|
|
9
|
+
{ id: "voices", label: "Voices", hasChildren: true, meta: "3" },
|
|
10
|
+
{ id: "glossaries", label: "Glossaries", hasChildren: true, meta: "2" },
|
|
11
|
+
{ id: "readme", label: "README.md" }
|
|
12
|
+
]);
|
|
13
|
+
const load = (node) => setTimeout(() => {
|
|
14
|
+
const files = Array.from({ length: Number(node.meta) }, (_, i) => ({ id: `${node.id}-${i}`, label: `${node.label.toLowerCase()}-${i + 1}.json` }));
|
|
15
|
+
setNodes((all) => all.map((n) => n.id === node.id ? { ...n, children: files } : n));
|
|
16
|
+
}, 600);
|
|
17
|
+
return /* @__PURE__ */ jsx(TreeView, { "aria-label": "Datasets", nodes, onLoadChildren: load, loadingLabel: "Loading the files", className: "max-w-xs" });
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
TreeViewLazy as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { type TreeNode, TreeView } from "@krizaka/ui/tree-view";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
|
|
6
|
+
// A studio's datasets: a branch loads its files when it opens (here after 600 ms).
|
|
7
|
+
export default function TreeViewLazy() {
|
|
8
|
+
const [nodes, setNodes] = useState<TreeNode[]>([
|
|
9
|
+
{ id: "voices", label: "Voices", hasChildren: true, meta: "3" },
|
|
10
|
+
{ id: "glossaries", label: "Glossaries", hasChildren: true, meta: "2" },
|
|
11
|
+
{ id: "readme", label: "README.md" },
|
|
12
|
+
]);
|
|
13
|
+
const load = (node: TreeNode) =>
|
|
14
|
+
setTimeout(() => {
|
|
15
|
+
const files = Array.from({ length: Number(node.meta) }, (_, i) => ({ id: `${node.id}-${i}`, label: `${node.label.toLowerCase()}-${i + 1}.json` }));
|
|
16
|
+
setNodes((all) => all.map((n) => (n.id === node.id ? { ...n, children: files } : n)));
|
|
17
|
+
}, 600);
|
|
18
|
+
return <TreeView aria-label="Datasets" nodes={nodes} onLoadChildren={load} loadingLabel="Loading the files" className="max-w-xs" />;
|
|
19
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/verified-badge/native/verified.tsx
|
|
4
|
+
import { Txt, VerifiedBadge } from "@krizaka/ui/native";
|
|
5
|
+
import { View } from "react-native";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
function NativeVerifiedBadgeVerified() {
|
|
8
|
+
return /* @__PURE__ */ jsxs(View, { style: { gap: 12 }, children: [
|
|
9
|
+
/* @__PURE__ */ jsxs(View, { style: { flexDirection: "row", alignItems: "center", gap: 6 }, children: [
|
|
10
|
+
/* @__PURE__ */ jsx(Txt, { variant: "title", children: "Elena Ruiz" }),
|
|
11
|
+
/* @__PURE__ */ jsx(VerifiedBadge, { label: "Verified profile", size: 18 })
|
|
12
|
+
] }),
|
|
13
|
+
/* @__PURE__ */ jsx(VerifiedBadge, { label: "Verified with a selfie", showLabel: true })
|
|
14
|
+
] });
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
NativeVerifiedBadgeVerified as default
|
|
18
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Txt, VerifiedBadge } from "@krizaka/ui/native";
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
|
|
4
|
+
// A seal beside a name, or with its words.
|
|
5
|
+
export default function NativeVerifiedBadgeVerified() {
|
|
6
|
+
return (
|
|
7
|
+
<View style={{ gap: 12 }}>
|
|
8
|
+
<View style={{ flexDirection: "row", alignItems: "center", gap: 6 }}>
|
|
9
|
+
<Txt variant="title">Elena Ruiz</Txt>
|
|
10
|
+
<VerifiedBadge label="Verified profile" size={18} />
|
|
11
|
+
</View>
|
|
12
|
+
<VerifiedBadge label="Verified with a selfie" showLabel />
|
|
13
|
+
</View>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// registry/examples/verified-badge/verified.tsx
|
|
4
|
+
import { VerifiedBadge } from "@krizaka/ui/verified-badge";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
function VerifiedBadgeVerified() {
|
|
7
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
|
|
8
|
+
/* @__PURE__ */ jsxs("p", { className: "m-0 flex items-center gap-1.5 font-display text-lg font-bold text-fg", children: [
|
|
9
|
+
"Elena Ruiz ",
|
|
10
|
+
/* @__PURE__ */ jsx(VerifiedBadge, { label: "Verified profile", size: "lg" })
|
|
11
|
+
] }),
|
|
12
|
+
/* @__PURE__ */ jsx(VerifiedBadge, { label: "Verified with a selfie", showLabel: true })
|
|
13
|
+
] });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
VerifiedBadgeVerified as default
|
|
17
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { VerifiedBadge } from "@krizaka/ui/verified-badge";
|
|
2
|
+
|
|
3
|
+
// A seal beside a name, or with its words.
|
|
4
|
+
export default function VerifiedBadgeVerified() {
|
|
5
|
+
return (
|
|
6
|
+
<div className="flex flex-col gap-3">
|
|
7
|
+
<p className="m-0 flex items-center gap-1.5 font-display text-lg font-bold text-fg">
|
|
8
|
+
Elena Ruiz <VerifiedBadge label="Verified profile" size="lg" />
|
|
9
|
+
</p>
|
|
10
|
+
<VerifiedBadge label="Verified with a selfie" showLabel />
|
|
11
|
+
</div>
|
|
12
|
+
);
|
|
13
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fab",
|
|
3
|
+
"type": "native",
|
|
4
|
+
"title": "Floating action button",
|
|
5
|
+
"summary": "The screen's one main action, floating above the content in the accent, clear of the safe area and the tab bar.",
|
|
6
|
+
"description": "The screen's one main action, floating above the content in the accent, clear of the safe area and the tab bar.",
|
|
7
|
+
"status": "beta",
|
|
8
|
+
"category": "actions",
|
|
9
|
+
"platforms": "native",
|
|
10
|
+
"whenToUse": [
|
|
11
|
+
"Create on a list screen: a new challenge, a new message.",
|
|
12
|
+
"Record on a camera-first screen."
|
|
13
|
+
],
|
|
14
|
+
"whenNotToUse": [
|
|
15
|
+
{
|
|
16
|
+
"when": "For a secondary action or several actions.",
|
|
17
|
+
"use": "button"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"when": "On a form: its submit button belongs at the bottom of the form.",
|
|
21
|
+
"use": "button"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"bestPractices": [
|
|
25
|
+
"One per screen, for the action the screen exists for.",
|
|
26
|
+
"`extended` shows the words; collapse it while the list scrolls down.",
|
|
27
|
+
"Pass the tab bar's height in `offset`."
|
|
28
|
+
],
|
|
29
|
+
"accessibility": {
|
|
30
|
+
"keyboard": [],
|
|
31
|
+
"notes": [
|
|
32
|
+
"A button named by `label`, extended or not.",
|
|
33
|
+
"56 points high; a light tap when pressed."
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"related": [
|
|
37
|
+
"button",
|
|
38
|
+
"tab-bar"
|
|
39
|
+
],
|
|
40
|
+
"web": null,
|
|
41
|
+
"native": {
|
|
42
|
+
"entry": "@krizaka/ui/native",
|
|
43
|
+
"import": "import { Fab } from \"@krizaka/ui/native\";",
|
|
44
|
+
"differences": [],
|
|
45
|
+
"props": [
|
|
46
|
+
{
|
|
47
|
+
"component": "Fab",
|
|
48
|
+
"description": "The screen's main action, floating above the content in the accent — one per screen (create, compose, record). It\nkeeps clear of the safe area and the tab bar (`offset`), shows its words when `extended`, a light tap confirms.",
|
|
49
|
+
"props": [
|
|
50
|
+
{
|
|
51
|
+
"name": "icon",
|
|
52
|
+
"type": "ReactNode",
|
|
53
|
+
"default": null,
|
|
54
|
+
"description": "The icon (decorative).",
|
|
55
|
+
"required": true
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "label",
|
|
59
|
+
"type": "string",
|
|
60
|
+
"default": null,
|
|
61
|
+
"description": "The action in words (“New challenge”) — passed translated: the accessible name, and shown when `extended`.",
|
|
62
|
+
"required": true
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "onPress",
|
|
66
|
+
"type": "() => void",
|
|
67
|
+
"default": null,
|
|
68
|
+
"description": "What it does.",
|
|
69
|
+
"required": true
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "extended",
|
|
73
|
+
"type": "boolean",
|
|
74
|
+
"default": null,
|
|
75
|
+
"description": "Shows the words beside the icon (collapse it while the list scrolls down).",
|
|
76
|
+
"required": false
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "offset",
|
|
80
|
+
"type": "number",
|
|
81
|
+
"default": "0",
|
|
82
|
+
"description": "Extra distance from the bottom, above a tab bar (its height). Default 0.",
|
|
83
|
+
"required": false
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "placement",
|
|
87
|
+
"type": "\"center\" | \"end\" | \"start\"",
|
|
88
|
+
"default": "end",
|
|
89
|
+
"description": "Which corner. Default `end` (bottom right in left-to-right).",
|
|
90
|
+
"required": false
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "style",
|
|
94
|
+
"type": "StyleProp<ViewStyle>",
|
|
95
|
+
"default": null,
|
|
96
|
+
"description": "Styles merged last.",
|
|
97
|
+
"required": false
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"examples": [
|
|
103
|
+
{
|
|
104
|
+
"name": "extended",
|
|
105
|
+
"title": "Extended and round",
|
|
106
|
+
"description": "With its words, and the round button alone.",
|
|
107
|
+
"path": "examples/fab/native/extended.tsx",
|
|
108
|
+
"module": "@krizaka/ui/registry/examples/fab/native/extended",
|
|
109
|
+
"code": "import { Fab, useTheme } from \"@krizaka/ui/native\";\nimport { View } from \"react-native\";\nimport Svg, { Path } from \"react-native-svg\";\n\n// The screen's one main action, floating over the list, above the tab bar (`offset`).\nexport default function NativeFabExtended() {\n const { theme } = useTheme();\n const plus = (\n <Svg width={22} height={22} viewBox=\"0 0 24 24\" stroke={theme.onAccent} strokeWidth={2.4} strokeLinecap=\"round\">\n <Path d=\"M12 5v14M5 12h14\" />\n </Svg>\n );\n return (\n <View style={{ width: 360, height: 200, flexDirection: \"row\" }}>\n <View style={{ flex: 1 }}>\n <Fab label=\"New challenge\" icon={plus} extended onPress={() => undefined} />\n </View>\n <View style={{ flex: 1 }}>\n <Fab label=\"New challenge\" icon={plus} onPress={() => undefined} />\n </View>\n </View>\n );\n}\n",
|
|
110
|
+
"screenshots": {
|
|
111
|
+
"dark": "examples/fab/native/extended.dark.png",
|
|
112
|
+
"light": "examples/fab/native/extended.light.png"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
"files": [],
|
|
118
|
+
"dependencies": [],
|
|
119
|
+
"registryDependencies": [],
|
|
120
|
+
"demo": null,
|
|
121
|
+
"props": []
|
|
122
|
+
}
|