ksk-design-system 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/AGENTS.md +190 -0
  2. package/CLAUDE.md +189 -0
  3. package/DESIGN.md +190 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATION.md +107 -0
  6. package/PUBLISHING.md +160 -0
  7. package/README.md +59 -0
  8. package/RELEASE.md +82 -0
  9. package/bin/init.js +112 -0
  10. package/contracts/components.json +1443 -0
  11. package/contracts/rules.json +447 -0
  12. package/dist/class-names.js +4 -0
  13. package/dist/index.js +13157 -0
  14. package/dist/native/ui.js +4928 -0
  15. package/dist/native.js +1559 -0
  16. package/dist/server-variants-Dr_V3bDI.js +55 -0
  17. package/dist/types/class-names.d.ts +27 -0
  18. package/dist/types/components/patterns/admin/bulk-actions.d.ts +17 -0
  19. package/dist/types/components/patterns/admin/chart-controls.d.ts +16 -0
  20. package/dist/types/components/patterns/admin/data-table.d.ts +165 -0
  21. package/dist/types/components/patterns/admin/image-uploader.d.ts +14 -0
  22. package/dist/types/components/patterns/admin/kebab-menu.d.ts +17 -0
  23. package/dist/types/components/patterns/admin/notification-list.d.ts +16 -0
  24. package/dist/types/components/patterns/admin/search-panel.d.ts +9 -0
  25. package/dist/types/components/patterns/admin/status-tabs.d.ts +13 -0
  26. package/dist/types/components/patterns/app-header.d.ts +76 -0
  27. package/dist/types/components/patterns/banner-carousel.d.ts +25 -0
  28. package/dist/types/components/patterns/banner.d.ts +13 -0
  29. package/dist/types/components/patterns/bottom-sheet-form.d.ts +17 -0
  30. package/dist/types/components/patterns/category-nav.d.ts +43 -0
  31. package/dist/types/components/patterns/category-scroll.d.ts +53 -0
  32. package/dist/types/components/patterns/chip-selector.d.ts +20 -0
  33. package/dist/types/components/patterns/chip.d.ts +42 -0
  34. package/dist/types/components/patterns/coach-mark-overlay.d.ts +66 -0
  35. package/dist/types/components/patterns/commerce/bottom-tab-bar.d.ts +27 -0
  36. package/dist/types/components/patterns/commerce/filter-bar.d.ts +39 -0
  37. package/dist/types/components/patterns/commerce/image-carousel.d.ts +14 -0
  38. package/dist/types/components/patterns/commerce/order-summary.d.ts +26 -0
  39. package/dist/types/components/patterns/commerce/price-display.d.ts +20 -0
  40. package/dist/types/components/patterns/commerce/product-card.d.ts +50 -0
  41. package/dist/types/components/patterns/commerce/product-carousel.d.ts +15 -0
  42. package/dist/types/components/patterns/commerce/quantity-selector.d.ts +21 -0
  43. package/dist/types/components/patterns/commerce/rating-display.d.ts +15 -0
  44. package/dist/types/components/patterns/commerce/review-card.d.ts +22 -0
  45. package/dist/types/components/patterns/commerce/review-summary.d.ts +12 -0
  46. package/dist/types/components/patterns/confirm-dialog.d.ts +32 -0
  47. package/dist/types/components/patterns/cookie-consent.d.ts +62 -0
  48. package/dist/types/components/patterns/empty-state.d.ts +15 -0
  49. package/dist/types/components/patterns/error-state.d.ts +10 -0
  50. package/dist/types/components/patterns/file-upload.d.ts +31 -0
  51. package/dist/types/components/patterns/filter-chip.d.ts +26 -0
  52. package/dist/types/components/patterns/footer.d.ts +24 -0
  53. package/dist/types/components/patterns/form-field.d.ts +30 -0
  54. package/dist/types/components/patterns/form.d.ts +13 -0
  55. package/dist/types/components/patterns/list-item.d.ts +23 -0
  56. package/dist/types/components/patterns/list-skeletons.d.ts +43 -0
  57. package/dist/types/components/patterns/menu-drawer.d.ts +27 -0
  58. package/dist/types/components/patterns/notification-badge.d.ts +15 -0
  59. package/dist/types/components/patterns/progress-steps.d.ts +7 -0
  60. package/dist/types/components/patterns/review-overlay.d.ts +25 -0
  61. package/dist/types/components/patterns/search-bar.d.ts +6 -0
  62. package/dist/types/components/patterns/section-header.d.ts +8 -0
  63. package/dist/types/components/patterns/share-buttons.d.ts +13 -0
  64. package/dist/types/components/patterns/shells/admin-shell.d.ts +8 -0
  65. package/dist/types/components/patterns/shells/app-shell.d.ts +7 -0
  66. package/dist/types/components/patterns/shells/marketing-shell.d.ts +7 -0
  67. package/dist/types/components/patterns/simple-pagination.d.ts +69 -0
  68. package/dist/types/components/patterns/stat-card.d.ts +43 -0
  69. package/dist/types/components/patterns/sticky-action-bar.d.ts +27 -0
  70. package/dist/types/components/patterns/swipe-row.d.ts +17 -0
  71. package/dist/types/components/patterns/tag-input.d.ts +20 -0
  72. package/dist/types/components/patterns/tag.d.ts +7 -0
  73. package/dist/types/components/ui/accordion.d.ts +7 -0
  74. package/dist/types/components/ui/alert-dialog.d.ts +47 -0
  75. package/dist/types/components/ui/alert.d.ts +45 -0
  76. package/dist/types/components/ui/auto-grow-textarea.d.ts +40 -0
  77. package/dist/types/components/ui/avatar.d.ts +6 -0
  78. package/dist/types/components/ui/badge.d.ts +18 -0
  79. package/dist/types/components/ui/breadcrumb.d.ts +16 -0
  80. package/dist/types/components/ui/button.d.ts +29 -0
  81. package/dist/types/components/ui/calendar.d.ts +5 -0
  82. package/dist/types/components/ui/card.d.ts +28 -0
  83. package/dist/types/components/ui/checkbox-card.d.ts +29 -0
  84. package/dist/types/components/ui/checkbox-field.d.ts +24 -0
  85. package/dist/types/components/ui/checkbox-group.d.ts +33 -0
  86. package/dist/types/components/ui/checkbox.d.ts +44 -0
  87. package/dist/types/components/ui/coach-mark.d.ts +27 -0
  88. package/dist/types/components/ui/collapsible.d.ts +24 -0
  89. package/dist/types/components/ui/combobox.d.ts +19 -0
  90. package/dist/types/components/ui/countdown-timer.d.ts +39 -0
  91. package/dist/types/components/ui/date-picker.d.ts +53 -0
  92. package/dist/types/components/ui/dialog.d.ts +54 -0
  93. package/dist/types/components/ui/dropdown-filter.d.ts +35 -0
  94. package/dist/types/components/ui/dropdown-menu.d.ts +42 -0
  95. package/dist/types/components/ui/error-boundary.d.ts +66 -0
  96. package/dist/types/components/ui/form.d.ts +61 -0
  97. package/dist/types/components/ui/hover-card.d.ts +24 -0
  98. package/dist/types/components/ui/image-gallery.d.ts +28 -0
  99. package/dist/types/components/ui/input.d.ts +17 -0
  100. package/dist/types/components/ui/label.d.ts +4 -0
  101. package/dist/types/components/ui/multi-select.d.ts +21 -0
  102. package/dist/types/components/ui/navigation-bar.d.ts +58 -0
  103. package/dist/types/components/ui/number-input.d.ts +20 -0
  104. package/dist/types/components/ui/pagination.d.ts +26 -0
  105. package/dist/types/components/ui/pill-toggle.d.ts +16 -0
  106. package/dist/types/components/ui/popover.d.ts +7 -0
  107. package/dist/types/components/ui/progress-ring.d.ts +31 -0
  108. package/dist/types/components/ui/progress.d.ts +34 -0
  109. package/dist/types/components/ui/radio-group.d.ts +22 -0
  110. package/dist/types/components/ui/responsive-dialog.d.ts +31 -0
  111. package/dist/types/components/ui/scroll-area.d.ts +5 -0
  112. package/dist/types/components/ui/select.d.ts +22 -0
  113. package/dist/types/components/ui/separator.d.ts +4 -0
  114. package/dist/types/components/ui/sheet.d.ts +139 -0
  115. package/dist/types/components/ui/skeleton.d.ts +31 -0
  116. package/dist/types/components/ui/slider.d.ts +14 -0
  117. package/dist/types/components/ui/social-icon-data.d.ts +10 -0
  118. package/dist/types/components/ui/social-icon.d.ts +38 -0
  119. package/dist/types/components/ui/social-login-button.d.ts +10 -0
  120. package/dist/types/components/ui/spinner.d.ts +22 -0
  121. package/dist/types/components/ui/star-rating.d.ts +12 -0
  122. package/dist/types/components/ui/sub-nav.d.ts +17 -0
  123. package/dist/types/components/ui/switch.d.ts +4 -0
  124. package/dist/types/components/ui/sync-status-badge.d.ts +17 -0
  125. package/dist/types/components/ui/tabs.d.ts +15 -0
  126. package/dist/types/components/ui/textarea.d.ts +8 -0
  127. package/dist/types/components/ui/time-picker.d.ts +14 -0
  128. package/dist/types/components/ui/toast.d.ts +49 -0
  129. package/dist/types/components/ui/tooltip.d.ts +7 -0
  130. package/dist/types/index.d.ts +174 -0
  131. package/dist/types/lib/server-variants/button-variants.d.ts +20 -0
  132. package/dist/types/lib/utils.d.ts +2 -0
  133. package/dist/types/native/components/Accordion.d.ts +12 -0
  134. package/dist/types/native/components/Alert.d.ts +9 -0
  135. package/dist/types/native/components/AlertDialog.d.ts +11 -0
  136. package/dist/types/native/components/AppHeader.d.ts +10 -0
  137. package/dist/types/native/components/AppShell.d.ts +13 -0
  138. package/dist/types/native/components/AutoGrowTextarea.d.ts +8 -0
  139. package/dist/types/native/components/Avatar.d.ts +8 -0
  140. package/dist/types/native/components/Badge.d.ts +8 -0
  141. package/dist/types/native/components/Banner.d.ts +10 -0
  142. package/dist/types/native/components/BannerCarousel.d.ts +8 -0
  143. package/dist/types/native/components/BottomSheetForm.d.ts +10 -0
  144. package/dist/types/native/components/BottomTabBar.d.ts +8 -0
  145. package/dist/types/native/components/Breadcrumb.d.ts +12 -0
  146. package/dist/types/native/components/Button.d.ts +9 -0
  147. package/dist/types/native/components/Calendar.d.ts +8 -0
  148. package/dist/types/native/components/Card.d.ts +11 -0
  149. package/dist/types/native/components/CategoryNav.d.ts +13 -0
  150. package/dist/types/native/components/CategoryScroll.d.ts +12 -0
  151. package/dist/types/native/components/Checkbox.d.ts +7 -0
  152. package/dist/types/native/components/CheckboxCard.d.ts +8 -0
  153. package/dist/types/native/components/CheckboxField.d.ts +8 -0
  154. package/dist/types/native/components/CheckboxGroup.d.ts +12 -0
  155. package/dist/types/native/components/Chip.d.ts +17 -0
  156. package/dist/types/native/components/ChipSelector.d.ts +13 -0
  157. package/dist/types/native/components/CoachMark.d.ts +12 -0
  158. package/dist/types/native/components/CoachMarkOverlay.d.ts +19 -0
  159. package/dist/types/native/components/Collapsible.d.ts +7 -0
  160. package/dist/types/native/components/Combobox.d.ts +14 -0
  161. package/dist/types/native/components/ConfirmDialog.d.ts +7 -0
  162. package/dist/types/native/components/CountdownTimer.d.ts +7 -0
  163. package/dist/types/native/components/DatePicker.d.ts +10 -0
  164. package/dist/types/native/components/Dialog.d.ts +12 -0
  165. package/dist/types/native/components/DropdownFilter.d.ts +12 -0
  166. package/dist/types/native/components/DropdownMenu.d.ts +19 -0
  167. package/dist/types/native/components/EmptyState.d.ts +8 -0
  168. package/dist/types/native/components/ErrorState.d.ts +8 -0
  169. package/dist/types/native/components/FileUpload.d.ts +12 -0
  170. package/dist/types/native/components/FilterBar.d.ts +13 -0
  171. package/dist/types/native/components/FilterChip.d.ts +7 -0
  172. package/dist/types/native/components/Footer.d.ts +9 -0
  173. package/dist/types/native/components/FormField.d.ts +9 -0
  174. package/dist/types/native/components/GlassView.d.ts +25 -0
  175. package/dist/types/native/components/ImageCarousel.d.ts +8 -0
  176. package/dist/types/native/components/ImageGallery.d.ts +7 -0
  177. package/dist/types/native/components/Input.d.ts +9 -0
  178. package/dist/types/native/components/Label.d.ts +7 -0
  179. package/dist/types/native/components/ListItem.d.ts +11 -0
  180. package/dist/types/native/components/ListSkeletons.d.ts +6 -0
  181. package/dist/types/native/components/MarketingShell.d.ts +9 -0
  182. package/dist/types/native/components/MenuDrawer.d.ts +21 -0
  183. package/dist/types/native/components/MultiSelect.d.ts +13 -0
  184. package/dist/types/native/components/NavigationBar.d.ts +18 -0
  185. package/dist/types/native/components/NotificationBadge.d.ts +9 -0
  186. package/dist/types/native/components/NumberInput.d.ts +9 -0
  187. package/dist/types/native/components/OrderSummary.d.ts +10 -0
  188. package/dist/types/native/components/Pagination.d.ts +7 -0
  189. package/dist/types/native/components/PillToggle.d.ts +12 -0
  190. package/dist/types/native/components/Popover.d.ts +14 -0
  191. package/dist/types/native/components/PriceDisplay.d.ts +8 -0
  192. package/dist/types/native/components/ProductCard.d.ts +14 -0
  193. package/dist/types/native/components/ProductCarousel.d.ts +11 -0
  194. package/dist/types/native/components/Progress.d.ts +7 -0
  195. package/dist/types/native/components/ProgressRing.d.ts +12 -0
  196. package/dist/types/native/components/ProgressSteps.d.ts +9 -0
  197. package/dist/types/native/components/QuantitySelector.d.ts +6 -0
  198. package/dist/types/native/components/RadioGroup.d.ts +13 -0
  199. package/dist/types/native/components/RatingDisplay.d.ts +7 -0
  200. package/dist/types/native/components/ResponsiveDialog.d.ts +7 -0
  201. package/dist/types/native/components/ReviewCard.d.ts +11 -0
  202. package/dist/types/native/components/ReviewOverlay.d.ts +7 -0
  203. package/dist/types/native/components/ReviewSummary.d.ts +7 -0
  204. package/dist/types/native/components/ScrollArea.d.ts +9 -0
  205. package/dist/types/native/components/SearchBar.d.ts +9 -0
  206. package/dist/types/native/components/SectionHeader.d.ts +10 -0
  207. package/dist/types/native/components/Select.d.ts +14 -0
  208. package/dist/types/native/components/Separator.d.ts +5 -0
  209. package/dist/types/native/components/ShareButtons.d.ts +11 -0
  210. package/dist/types/native/components/Sheet.d.ts +20 -0
  211. package/dist/types/native/components/SimplePagination.d.ts +7 -0
  212. package/dist/types/native/components/Skeleton.d.ts +11 -0
  213. package/dist/types/native/components/Slider.d.ts +9 -0
  214. package/dist/types/native/components/SocialIcon.d.ts +12 -0
  215. package/dist/types/native/components/SocialLoginButton.d.ts +8 -0
  216. package/dist/types/native/components/Spinner.d.ts +6 -0
  217. package/dist/types/native/components/Stack.d.ts +13 -0
  218. package/dist/types/native/components/StarRating.d.ts +9 -0
  219. package/dist/types/native/components/StatCard.d.ts +7 -0
  220. package/dist/types/native/components/StickyActionBar.d.ts +6 -0
  221. package/dist/types/native/components/SubNav.d.ts +12 -0
  222. package/dist/types/native/components/SwipeRow.d.ts +14 -0
  223. package/dist/types/native/components/Switch.d.ts +4 -0
  224. package/dist/types/native/components/SyncStatusBadge.d.ts +6 -0
  225. package/dist/types/native/components/Tabs.d.ts +23 -0
  226. package/dist/types/native/components/Tag.d.ts +10 -0
  227. package/dist/types/native/components/TagInput.d.ts +7 -0
  228. package/dist/types/native/components/Text.d.ts +10 -0
  229. package/dist/types/native/components/Textarea.d.ts +7 -0
  230. package/dist/types/native/components/TimePicker.d.ts +12 -0
  231. package/dist/types/native/components/Toast.d.ts +18 -0
  232. package/dist/types/native/components/index.d.ts +99 -0
  233. package/dist/types/native/components/social-icon-data.d.ts +5 -0
  234. package/dist/types/native/index.d.ts +4 -0
  235. package/dist/types/native/theme/ThemeProvider.d.ts +21 -0
  236. package/dist/types/native/typography.d.ts +8 -0
  237. package/dist/types/tokens/native/index.d.ts +13 -0
  238. package/dist/types/tokens/native/primitives.d.ts +116 -0
  239. package/dist/types/tokens/native/scales.d.ts +270 -0
  240. package/dist/types/tokens/native/themes.d.ts +1147 -0
  241. package/eslint/deprecated.js +104 -0
  242. package/eslint/no-colorless-border.js +217 -0
  243. package/package.json +215 -0
  244. package/scripts/codemod/README.md +51 -0
  245. package/scripts/codemod/template.mjs +164 -0
  246. package/src/components/COMPONENT_LOOKUP.md +190 -0
  247. package/src/preset.css +168 -0
  248. package/src/styles/categorical.css +161 -0
  249. package/src/styles/glass.css +365 -0
  250. package/src/styles/primitive.css +161 -0
  251. package/src/styles/semantic.css +247 -0
  252. package/src/styles/typography.css +140 -0
  253. package/src/themes/README.md +44 -0
  254. package/src/themes/blue.css +21 -0
  255. package/src/themes/default.css +12 -0
  256. package/src/themes/green.css +22 -0
  257. package/src/themes/orange.css +21 -0
  258. package/src/themes/violet.css +22 -0
  259. package/templates/AGENTS.md +77 -0
  260. package/templates/CLAUDE.md +77 -0
  261. package/tokens.json +607 -0
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ /**
3
+ * ListItem の意味づけ。
4
+ * - "default" : 通常のリスト項目(既定)。
5
+ * - "destructive" : 削除・ログアウトなど取り返しのつかない操作。
6
+ * title を Caution 色にし、interactive=true の場合は
7
+ * hover を薄い caution 背景に切り替える。
8
+ * leftSlot のアイコンは呼び出し側で色付けする想定
9
+ * (currentColor を継承させたい場合は className で調整)。
10
+ */
11
+ type ListItemVariant = "default" | "destructive";
12
+ interface ListItemProps extends React.ComponentProps<"div"> {
13
+ leftSlot?: React.ReactNode;
14
+ rightSlot?: React.ReactNode;
15
+ bottomSlot?: React.ReactNode;
16
+ title?: string;
17
+ description?: string;
18
+ interactive?: boolean;
19
+ variant?: ListItemVariant;
20
+ }
21
+ declare function ListItem({ className, leftSlot, rightSlot, bottomSlot, title, description, interactive, variant, children, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
22
+ export { ListItem };
23
+ export type { ListItemProps, ListItemVariant };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * ListSkeleton — リスト型サブタブ用の汎用 Skeleton。
3
+ *
4
+ * 上部にフィルタチップ風プレースホルダ 3 枚、その下にカード行 N 枚を並べる。
5
+ * 「データ取得中だが画面構造は読める」状態を返したいときに使う。
6
+ *
7
+ * @example
8
+ * <ListSkeleton rows={5} hasFilter loadingLabel="読み込み中..." />
9
+ */
10
+ export interface ListSkeletonProps {
11
+ /** 並べるリスト行数。既定 5 */
12
+ rows?: number;
13
+ /** 上部のフィルタチップ列を出すか。既定 true */
14
+ hasFilter?: boolean;
15
+ /** aria-label 用テキスト。既定 "Loading..." */
16
+ loadingLabel?: string;
17
+ /** 外枠の追加 className(既定 `px-4 pt-3`) */
18
+ className?: string;
19
+ /** リスト行の高さ (px、既定 56) */
20
+ rowHeight?: number;
21
+ }
22
+ export declare function ListSkeleton({ rows, hasFilter, loadingLabel, className, rowHeight, }: ListSkeletonProps): import("react/jsx-runtime").JSX.Element;
23
+ /**
24
+ * GridSkeleton — グリッド型サブタブ用の汎用 Skeleton。
25
+ *
26
+ * デフォルトは 2 カラム × N 行。サムネカード並びに使用。
27
+ *
28
+ * @example
29
+ * <GridSkeleton rows={3} columns={2} loadingLabel="読み込み中..." />
30
+ */
31
+ export interface GridSkeletonProps {
32
+ /** グリッドの行数。既定 3 */
33
+ rows?: number;
34
+ /** グリッドの列数。既定 2 */
35
+ columns?: number;
36
+ /** カード 1 枚の高さ (px、既定 140) */
37
+ cardHeight?: number;
38
+ /** aria-label 用テキスト */
39
+ loadingLabel?: string;
40
+ /** 外枠の追加 className */
41
+ className?: string;
42
+ }
43
+ export declare function GridSkeleton({ rows, columns, cardHeight, loadingLabel, className, }: GridSkeletonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import * as React from "react";
2
+ interface MenuDrawerItem {
3
+ label: string;
4
+ icon?: React.ReactNode;
5
+ href?: string;
6
+ onClick?: () => void;
7
+ badge?: number;
8
+ }
9
+ interface MenuDrawerSection {
10
+ title?: string;
11
+ items: MenuDrawerItem[];
12
+ }
13
+ interface MenuDrawerProps {
14
+ open: boolean;
15
+ onClose: () => void;
16
+ /** ドロワー上部バナー(プロモーション等) */
17
+ banner?: React.ReactNode;
18
+ sections: MenuDrawerSection[];
19
+ /** フッターリンク群 */
20
+ footerLinks?: MenuDrawerItem[];
21
+ /** ドロワー幅(px) */
22
+ width?: number;
23
+ className?: string;
24
+ }
25
+ declare function MenuDrawer({ open, onClose, banner, sections, footerLinks, width, className, }: MenuDrawerProps): import("react/jsx-runtime").JSX.Element;
26
+ export { MenuDrawer };
27
+ export type { MenuDrawerProps, MenuDrawerSection, MenuDrawerItem };
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ interface NotificationBadgeProps extends React.ComponentProps<"span"> {
3
+ count: number;
4
+ max?: number;
5
+ /**
6
+ * バッジのサイズ。
7
+ * - "xs" : 最小(数字なし・ドット表示 6px)
8
+ * - "sm" : 小(16px、1〜2桁向け)
9
+ * - "default" : 標準(20px)
10
+ * @default "default"
11
+ */
12
+ size?: "xs" | "sm" | "default";
13
+ }
14
+ declare function NotificationBadge({ className, count, max, size, ...props }: NotificationBadgeProps): import("react/jsx-runtime").JSX.Element;
15
+ export { NotificationBadge };
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ interface ProgressStepsProps extends React.ComponentProps<"div"> {
3
+ steps: string[];
4
+ currentStep: number;
5
+ }
6
+ declare function ProgressSteps({ className, steps, currentStep, ...props }: ProgressStepsProps): import("react/jsx-runtime").JSX.Element;
7
+ export { ProgressSteps };
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ export interface ReviewPin {
3
+ id: string;
4
+ x: number;
5
+ y: number;
6
+ comment?: string;
7
+ }
8
+ export interface ReviewOverlayProps {
9
+ /** オーバーレイを表示するか */
10
+ active: boolean;
11
+ /** ピン作成時のコールバック(ページ相対座標 0–1) */
12
+ onPinCreate?: (pin: Omit<ReviewPin, "id">) => void;
13
+ /** 既存ピン一覧 */
14
+ pins?: ReviewPin[];
15
+ /** ピンクリック時のコールバック */
16
+ onPinClick?: (pin: ReviewPin) => void;
17
+ /** 長押し認識時間 (ms) */
18
+ holdDuration?: number;
19
+ /** ハプティックフィードバック(Capacitor Haptics 等のコールバックを渡す) */
20
+ onHaptic?: () => void;
21
+ className?: string;
22
+ children?: React.ReactNode;
23
+ }
24
+ declare function ReviewOverlay({ active, onPinCreate, pins, onPinClick, holdDuration, onHaptic, className, children, }: ReviewOverlayProps): import("react/jsx-runtime").JSX.Element;
25
+ export { ReviewOverlay };
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ interface SearchBarProps extends Omit<React.ComponentProps<"input">, "type"> {
3
+ onSearch?: (value: string) => void;
4
+ }
5
+ declare function SearchBar({ className, onSearch, ...props }: SearchBarProps): import("react/jsx-runtime").JSX.Element;
6
+ export { SearchBar };
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ interface SectionHeaderProps extends React.ComponentProps<"div"> {
3
+ title: string;
4
+ description?: string;
5
+ action?: React.ReactNode;
6
+ }
7
+ declare function SectionHeader({ className, title, description, action, ...props }: SectionHeaderProps): import("react/jsx-runtime").JSX.Element;
8
+ export { SectionHeader };
@@ -0,0 +1,13 @@
1
+ type ShareProvider = "line" | "x" | "facebook" | "copy";
2
+ type ShareLayout = "circle" | "inline";
3
+ interface ShareButtonsProps {
4
+ url: string;
5
+ title?: string;
6
+ providers?: ShareProvider[];
7
+ layout?: ShareLayout;
8
+ className?: string;
9
+ onCopy?: () => void;
10
+ }
11
+ declare function ShareButtons({ url, title, providers, layout, className, onCopy, }: ShareButtonsProps): import("react/jsx-runtime").JSX.Element;
12
+ export { ShareButtons };
13
+ export type { ShareButtonsProps, ShareProvider, ShareLayout };
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ interface AdminShellProps extends React.ComponentProps<"div"> {
3
+ sidebar: React.ReactNode;
4
+ header?: React.ReactNode;
5
+ sidebarWidth?: string;
6
+ }
7
+ declare function AdminShell({ className, sidebar, header, children, sidebarWidth, ...props }: AdminShellProps): import("react/jsx-runtime").JSX.Element;
8
+ export { AdminShell };
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ interface AppShellProps extends React.ComponentProps<"div"> {
3
+ topBar?: React.ReactNode;
4
+ bottomNav?: React.ReactNode;
5
+ }
6
+ declare function AppShell({ className, topBar, bottomNav, children, ...props }: AppShellProps): import("react/jsx-runtime").JSX.Element;
7
+ export { AppShell };
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ interface MarketingShellProps extends React.ComponentProps<"div"> {
3
+ header?: React.ReactNode;
4
+ footer?: React.ReactNode;
5
+ }
6
+ declare function MarketingShell({ className, header, footer, children, ...props }: MarketingShellProps): import("react/jsx-runtime").JSX.Element;
7
+ export { MarketingShell };
@@ -0,0 +1,69 @@
1
+ import * as React from "react";
2
+ /**
3
+ * SimplePagination のラベル形式。
4
+ * - `items`: 「N - M / 全 T 件」(アイテム数ベース)
5
+ * - `pages`: 「N / M ページ」(ページ数ベース)
6
+ */
7
+ type SimplePaginationFormat = "items" | "pages";
8
+ interface SimplePaginationBaseProps extends Omit<React.ComponentProps<"nav">, "onChange"> {
9
+ /** 現在のページ (1-indexed) */
10
+ page: number;
11
+ /** ページ変更時のコールバック (1-indexed) */
12
+ onPageChange?: (page: number) => void;
13
+ /**
14
+ * 表示形式の指定。明示しない場合は props から推測:
15
+ * - `total` + `pageSize` あり → "items"
16
+ * - `totalPages` あり → "pages"
17
+ */
18
+ format?: SimplePaginationFormat;
19
+ /** モバイル時にラベルを省略表示("3 / 10" のような簡略表示) */
20
+ compact?: boolean;
21
+ /** 「前へ」ボタンのラベル / aria-label */
22
+ previousLabel?: string;
23
+ /** 「次へ」ボタンのラベル / aria-label */
24
+ nextLabel?: string;
25
+ /**
26
+ * 中央ラベルのカスタムレンダラ。
27
+ * 指定された場合、format によらず常にこの関数の結果が表示される。
28
+ */
29
+ renderLabel?: (info: {
30
+ page: number;
31
+ totalPages: number;
32
+ pageSize?: number;
33
+ total?: number;
34
+ from?: number;
35
+ to?: number;
36
+ }) => React.ReactNode;
37
+ }
38
+ type SimplePaginationItemsProps = SimplePaginationBaseProps & {
39
+ /** 全アイテム数 */
40
+ total: number;
41
+ /** 1ページあたりのアイテム数 */
42
+ pageSize: number;
43
+ totalPages?: never;
44
+ };
45
+ type SimplePaginationPagesProps = SimplePaginationBaseProps & {
46
+ /** 全ページ数 */
47
+ totalPages: number;
48
+ total?: never;
49
+ pageSize?: never;
50
+ };
51
+ type SimplePaginationProps = SimplePaginationItemsProps | SimplePaginationPagesProps;
52
+ /**
53
+ * 最小ページネーション。「前へ / N - M / 全 T 件 / 次へ」または
54
+ * 「前へ / N / M ページ / 次へ」の最小限の構成。
55
+ *
56
+ * 大量のページ番号を一覧表示する `Pagination` とは別物で、
57
+ * モバイル / リスト下部 / 軽量な管理画面向けの簡素な UI。
58
+ *
59
+ * @example
60
+ * // アイテム数指定
61
+ * <SimplePagination page={1} pageSize={20} total={items.length} onPageChange={setPage} />
62
+ *
63
+ * @example
64
+ * // ページ数指定
65
+ * <SimplePagination page={1} totalPages={10} onPageChange={setPage} />
66
+ */
67
+ declare function SimplePagination({ page, onPageChange, format, compact, previousLabel, nextLabel, renderLabel, className, total, pageSize, totalPages, ...props }: SimplePaginationProps): import("react/jsx-runtime").JSX.Element;
68
+ export { SimplePagination };
69
+ export type { SimplePaginationProps, SimplePaginationFormat };
@@ -0,0 +1,43 @@
1
+ import * as React from "react";
2
+ type StatCardVariant = "default" | "success" | "caution" | "info" | "accent";
3
+ interface StatCardProps extends Omit<React.ComponentProps<"div">, "onClick"> {
4
+ label: string;
5
+ value: string | number;
6
+ unit?: string;
7
+ trend?: {
8
+ value: number;
9
+ label?: string;
10
+ };
11
+ icon?: React.ReactNode;
12
+ /**
13
+ * カードのカラーバリアント。
14
+ * - "default" : 標準(白背景・低強調ボーダー)
15
+ * - "success" : 緑系(成功・達成指標)
16
+ * - "caution" : 赤系(注意・危険指標)
17
+ * - "info" : 青系(情報・参考指標)
18
+ * - "accent" : ブランド色(主要KPI)
19
+ * @default "default"
20
+ */
21
+ variant?: StatCardVariant;
22
+ /**
23
+ * Interactive モード: true にすると card が button のように振る舞う。
24
+ * - `role=button` / `tabIndex=0` / focus-visible ring / active:scale を自動付与
25
+ * - onClick / onKeyDown (Enter/Space) を有効化
26
+ * - hover で軽い陰り、cursor-pointer
27
+ *
28
+ * onClick だけ渡しても interactive=true 扱いする。
29
+ */
30
+ interactive?: boolean;
31
+ onClick?: React.MouseEventHandler<HTMLDivElement>;
32
+ }
33
+ /**
34
+ * StatCard — KPI / メトリクス表示用の小さなカード。
35
+ *
36
+ * - `label` + `value` (+ optional `unit`, `trend`, `icon`) でデータ部を表現
37
+ * - `variant` で色 (default / success / caution / info / accent)
38
+ * - `interactive` (または `onClick`) でボタン化 — タップでナビゲートする
39
+ * ホーム画面のメトリクスタイル等に最適
40
+ */
41
+ declare function StatCard({ className, label, value, unit, trend, icon, variant, interactive, onClick, ...props }: StatCardProps): import("react/jsx-runtime").JSX.Element;
42
+ export { StatCard };
43
+ export type { StatCardProps, StatCardVariant };
@@ -0,0 +1,27 @@
1
+ import * as React from "react";
2
+ export interface StickyActionBarProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * 上部ボーダーを表示する(デフォルト: true)
5
+ */
6
+ bordered?: boolean;
7
+ }
8
+ /**
9
+ * BottomAction — モバイル下部操作バー
10
+ *
11
+ * 画面下部に sticky で固定される CTA エリア。iOS の safe-area-inset-bottom に対応。
12
+ * カートに追加・購入するなどの主要アクションボタンを配置する。
13
+ *
14
+ * ### 使用例
15
+ * ```tsx
16
+ * <BottomAction>
17
+ * <Button className="w-full" size="xl">カートに追加</Button>
18
+ * </BottomAction>
19
+ * ```
20
+ *
21
+ * ### AI 向け使用ルール
22
+ * - 商品詳細・確認画面など、画面内の最重要CTAに使用
23
+ * - SheetContent 内では sticky ではなく absolute 配置になるため注意
24
+ * - 子要素には Button w-full を推奨
25
+ */
26
+ declare function StickyActionBar({ className, bordered, children, ...props }: StickyActionBarProps): import("react/jsx-runtime").JSX.Element;
27
+ export { StickyActionBar };
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ export interface SwipeAction {
3
+ label: string;
4
+ icon?: React.ReactNode;
5
+ onClick: () => void;
6
+ variant?: "default" | "destructive";
7
+ }
8
+ interface SwipeRowProps {
9
+ children: React.ReactNode;
10
+ actions?: SwipeAction[];
11
+ /** スワイプで開く方向 */
12
+ side?: "left" | "right";
13
+ className?: string;
14
+ }
15
+ declare function SwipeRow({ children, actions, side, className }: SwipeRowProps): import("react/jsx-runtime").JSX.Element;
16
+ export { SwipeRow };
17
+ export type { SwipeRowProps };
@@ -0,0 +1,20 @@
1
+ interface TagInputProps {
2
+ value?: string[];
3
+ onChange?: (tags: string[]) => void;
4
+ placeholder?: string;
5
+ disabled?: boolean;
6
+ /** 最大タグ数 */
7
+ max?: number;
8
+ /** 重複タグを許可するか */
9
+ allowDuplicates?: boolean;
10
+ className?: string;
11
+ /**
12
+ * タグ入力フィールドの aria-label。
13
+ * i18n 対応: 英語では "Add tag" を渡す。
14
+ * @default "タグ入力"
15
+ */
16
+ inputLabel?: string;
17
+ }
18
+ declare function TagInput({ value, onChange, placeholder, disabled, max, allowDuplicates, className, inputLabel, }: TagInputProps): import("react/jsx-runtime").JSX.Element;
19
+ export { TagInput };
20
+ export type { TagInputProps };
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const tagVariants: (props?: {
4
+ variant?: "default" | "success" | "info" | "warning" | "caution" | "brand";
5
+ } & import("class-variance-authority/types").ClassProp) => string;
6
+ declare function Tag({ className, variant, ...props }: React.ComponentProps<"span"> & VariantProps<typeof tagVariants>): import("react/jsx-runtime").JSX.Element;
7
+ export { Tag, tagVariants };
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import { Accordion as AccordionPrimitive } from "radix-ui";
3
+ declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
5
+ declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
+ declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -0,0 +1,47 @@
1
+ import * as React from "react";
2
+ import { AlertDialog as AlertDialogPrimitive } from "radix-ui";
3
+ import type { ButtonProps } from "@/components/ui/button";
4
+ /**
5
+ * AlertDialog — 確認ダイアログ(破壊的アクションの二段階確認に使用)
6
+ *
7
+ * ### 使用例
8
+ * ```tsx
9
+ * <AlertDialog>
10
+ * <AlertDialogTrigger asChild>
11
+ * <Button variant="destructive">削除</Button>
12
+ * </AlertDialogTrigger>
13
+ * <AlertDialogContent>
14
+ * <AlertDialogHeader>
15
+ * <AlertDialogTitle>本当に削除しますか?</AlertDialogTitle>
16
+ * <AlertDialogDescription>この操作は取り消せません。</AlertDialogDescription>
17
+ * </AlertDialogHeader>
18
+ * <AlertDialogFooter>
19
+ * <AlertDialogCancel>キャンセル</AlertDialogCancel>
20
+ * <AlertDialogAction>削除する</AlertDialogAction>
21
+ * </AlertDialogFooter>
22
+ * </AlertDialogContent>
23
+ * </AlertDialog>
24
+ * ```
25
+ */
26
+ declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
27
+ declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
28
+ declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
29
+ declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): import("react/jsx-runtime").JSX.Element;
30
+ declare function AlertDialogContent({ className, size, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {
31
+ size?: "default" | "sm";
32
+ }): import("react/jsx-runtime").JSX.Element;
33
+ declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
34
+ declare function AlertDialogFooter({ className, orientation, ...props }: React.ComponentProps<"div"> & {
35
+ /**
36
+ * アクションボタンの並べ方。
37
+ * - "split"(既定): 均等幅で横並び(各ボタン flex-1)。
38
+ * - "stacked": 旧挙動。モバイルは縦積み、sm 以上で右寄せ横並び
39
+ * (size="sm" のときは 2 カラム grid)。
40
+ */
41
+ orientation?: "split" | "stacked";
42
+ }): import("react/jsx-runtime").JSX.Element;
43
+ declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
44
+ declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
45
+ declare function AlertDialogAction({ className, variant, size, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action> & Pick<ButtonProps, "variant" | "size">): import("react/jsx-runtime").JSX.Element;
46
+ declare function AlertDialogCancel({ className, variant, size, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> & Pick<ButtonProps, "variant" | "size">): import("react/jsx-runtime").JSX.Element;
47
+ export { AlertDialog, AlertDialogTrigger, AlertDialogPortal, AlertDialogOverlay, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
@@ -0,0 +1,45 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ /**
4
+ * Alert
5
+ *
6
+ * - bordered (success / info / error / warning): 白背景 + カラー枠線 + 外側リング
7
+ * - inline (inline-info / inline-caution / inline-warning): 色付き背景、コンパクト
8
+ *
9
+ * ### 2 つの使い方
10
+ *
11
+ * 1. **prop ベース**(推奨・bordered variant のみ)— アイコンは variant から自動
12
+ * ```tsx
13
+ * <Alert variant="success" title="送信しました" description="内容を確認してください。" />
14
+ * ```
15
+ *
16
+ * 2. **composable**(旧来 / 自由度高い)
17
+ * ```tsx
18
+ * <Alert variant="success">
19
+ * <AlertTitle>送信しました</AlertTitle>
20
+ * <AlertDescription>内容を確認してください。</AlertDescription>
21
+ * </Alert>
22
+ * ```
23
+ */
24
+ declare const alertVariants: (props?: {
25
+ variant?: "success" | "info" | "error" | "warning" | "inline-info" | "inline-caution" | "inline-warning";
26
+ } & import("class-variance-authority/types").ClassProp) => string;
27
+ type AlertVariant = VariantProps<typeof alertVariants>["variant"];
28
+ type AlertProps = React.ComponentProps<"div"> & VariantProps<typeof alertVariants> & {
29
+ /**
30
+ * prop-based API のタイトル。children と排他(children 優先)。
31
+ * bordered variant でのみ有効。
32
+ */
33
+ title?: React.ReactNode;
34
+ /** prop-based API の説明テキスト */
35
+ description?: React.ReactNode;
36
+ /** カスタムアイコン(未指定時は variant に応じて自動選択) */
37
+ icon?: React.ReactNode;
38
+ /** 右側アクション(Button など) */
39
+ action?: React.ReactNode;
40
+ };
41
+ declare function Alert({ className, variant, children, title, description, icon, action, ...props }: AlertProps): import("react/jsx-runtime").JSX.Element;
42
+ declare function AlertTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
43
+ declare function AlertDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
44
+ export { Alert, AlertTitle, AlertDescription };
45
+ export type { AlertVariant };
@@ -0,0 +1,40 @@
1
+ import * as React from "react";
2
+ import { Textarea } from "./textarea";
3
+ /**
4
+ * AutoGrowTextarea — Textarea ラッパー。入力に合わせて自動高さ調整。
5
+ *
6
+ * - 入力ごとに `scrollHeight` を計算して `style.height` を更新
7
+ * - `minRows` で最小行数を確保(カーソル下に常に 1 行分の余白を残す)
8
+ * - `maxLength` 指定で右下に「現在 / 上限」カウンタを表示
9
+ * - 70% 超で warning 色、上限到達で caution 色
10
+ * - 内部 ref で `<textarea>` を握り、外部からの value 同期にも追従
11
+ *
12
+ * もとは belle-todo + ninshin-todo の共通実装(プロダクションで TaskDetailSheet /
13
+ * FeedbackSheet / Notes / Venues 等で使用)。DS に昇格。
14
+ *
15
+ * ### 使用例
16
+ * ```tsx
17
+ * <AutoGrowTextarea
18
+ * value={memo}
19
+ * onChange={setMemo}
20
+ * placeholder="メモを入力..."
21
+ * minRows={3}
22
+ * maxLength={500}
23
+ * />
24
+ * ```
25
+ *
26
+ * @example
27
+ * // 最小用途(カウンタなし)
28
+ * <AutoGrowTextarea value={v} onChange={setV} placeholder="..." />
29
+ */
30
+ export interface AutoGrowTextareaProps extends Omit<React.ComponentProps<typeof Textarea>, "ref" | "value" | "onChange" | "placeholder" | "rows" | "maxLength" | "className"> {
31
+ value: string;
32
+ onChange: (value: string) => void;
33
+ placeholder?: string;
34
+ /** 最小行数。これより小さい高さにはならない(既定 3) */
35
+ minRows?: number;
36
+ /** 指定すると右下に「現在 / 上限」カウンタを表示。70% 超で warning 色、上限到達で caution 色。 */
37
+ maxLength?: number;
38
+ className?: string;
39
+ }
40
+ export declare function AutoGrowTextarea({ value, onChange, placeholder, minRows, maxLength, className, ...textareaProps }: AutoGrowTextareaProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import { Avatar as AvatarPrimitive } from "radix-ui";
3
+ declare function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>): import("react/jsx-runtime").JSX.Element;
5
+ declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>): import("react/jsx-runtime").JSX.Element;
6
+ export { Avatar, AvatarImage, AvatarFallback };
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const badgeVariants: (props?: {
4
+ variant?: "default" | "success" | "info" | "warning" | "secondary" | "ghost" | "destructive" | "outline" | "subtle";
5
+ } & import("class-variance-authority/types").ClassProp) => string;
6
+ /**
7
+ * Badge — ステータス / 件数表示。
8
+ *
9
+ * 使い分け:
10
+ * - **Badge**: 数値・ステータス(クリック不可)— `<Badge>NEW</Badge>`
11
+ * - **Tag**: 表示専用ラベル — `<Tag variant="brand">特集</Tag>`
12
+ * - **Chip**: フィルタ・キーワード(クリック可) — `<Chip selected>適用中</Chip>`
13
+ *
14
+ * variant: default(brand) / secondary / outline / destructive / success /
15
+ * warning / info / subtle(brand-light) / ghost
16
+ */
17
+ declare function Badge({ className, variant, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): import("react/jsx-runtime").JSX.Element;
18
+ export { Badge, badgeVariants };
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ interface BreadcrumbProps extends React.ComponentProps<"nav"> {
3
+ /**
4
+ * nav 要素の aria-label。i18n 対応: 英語では "Breadcrumb" を渡す。
5
+ * @default "パンくずリスト"
6
+ */
7
+ label?: string;
8
+ }
9
+ declare function Breadcrumb({ label, ...props }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element;
10
+ declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): import("react/jsx-runtime").JSX.Element;
11
+ declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
12
+ declare function BreadcrumbLink({ className, ...props }: React.ComponentProps<"a">): import("react/jsx-runtime").JSX.Element;
13
+ declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
14
+ declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
15
+ declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
16
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis };
@@ -0,0 +1,29 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ import { buttonVariants } from "@/lib/server-variants/button-variants";
4
+ /** navigator.vibrate のパターン (ms) */
5
+ declare const HAPTIC_PATTERNS: Record<string, number | number[]>;
6
+ type HapticType = keyof typeof HAPTIC_PATTERNS;
7
+ interface ButtonProps extends React.ComponentProps<"button">, VariantProps<typeof buttonVariants> {
8
+ /** モバイルでの触覚フィードバック。navigator.vibrate() を使用。未対応環境では無視される。 */
9
+ haptic?: HapticType;
10
+ }
11
+ /**
12
+ * Button — 汎用ボタン
13
+ *
14
+ * バリアントの使い分け:
15
+ * - `default`: 主たる CTA(1 画面に 1〜2 個まで)。
16
+ * - `secondary` / `tertiary`: 並列の選択肢・キャンセル。
17
+ * - `ghost` / `link`: 文字寄りの controls。
18
+ * - `destructive`: 削除・取り消しなど不可逆操作。
19
+ * - `glass` / `accent`: モバイル / ヒーローセクション向け装飾系。
20
+ * - `inverse` / `ghost-inverse`: 暗背景・ヒーローセクション上で使う反転バリアント。
21
+ *
22
+ * サイズ:
23
+ * - `xs` / `sm` / `default` / `lg` / `xl`: 一般用途。
24
+ * - `hero`: トップ hero / final-CTA 向けのピル型特大 CTA。
25
+ * - `icon` / `icon-sm` / `icon-lg` / `icon-xl`: アイコンのみのボタン(aria-label 必須)。
26
+ */
27
+ declare function Button({ className, variant, size, layout, haptic, onClick, type, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
28
+ export { Button, buttonVariants };
29
+ export type { ButtonProps, HapticType };
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import { DayPicker } from "react-day-picker";
3
+ export type CalendarProps = React.ComponentProps<typeof DayPicker>;
4
+ declare function Calendar({ className, classNames, showOutsideDays, ...props }: CalendarProps): import("react/jsx-runtime").JSX.Element;
5
+ export { Calendar };