@novi-ui/raster 0.1.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 (188) hide show
  1. package/README.md +129 -0
  2. package/dist/accordion/accordion.d.mts +31 -0
  3. package/dist/accordion/accordion.d.mts.map +1 -0
  4. package/dist/accordion/accordion.mjs +88 -0
  5. package/dist/accordion/accordion.mjs.map +1 -0
  6. package/dist/accordion/accordion.styles.d.mts +61 -0
  7. package/dist/accordion/accordion.styles.d.mts.map +1 -0
  8. package/dist/accordion/accordion.styles.mjs +78 -0
  9. package/dist/accordion/accordion.styles.mjs.map +1 -0
  10. package/dist/accordion/index.d.mts +3 -0
  11. package/dist/avatar/avatar.d.mts +19 -0
  12. package/dist/avatar/avatar.d.mts.map +1 -0
  13. package/dist/avatar/avatar.mjs +57 -0
  14. package/dist/avatar/avatar.mjs.map +1 -0
  15. package/dist/avatar/avatar.styles.d.mts +49 -0
  16. package/dist/avatar/avatar.styles.d.mts.map +1 -0
  17. package/dist/avatar/avatar.styles.mjs +45 -0
  18. package/dist/avatar/avatar.styles.mjs.map +1 -0
  19. package/dist/avatar/index.d.mts +3 -0
  20. package/dist/badge/badge.d.mts +15 -0
  21. package/dist/badge/badge.d.mts.map +1 -0
  22. package/dist/badge/badge.mjs +39 -0
  23. package/dist/badge/badge.mjs.map +1 -0
  24. package/dist/badge/badge.styles.d.mts +67 -0
  25. package/dist/badge/badge.styles.d.mts.map +1 -0
  26. package/dist/badge/badge.styles.mjs +99 -0
  27. package/dist/badge/badge.styles.mjs.map +1 -0
  28. package/dist/badge/index.d.mts +3 -0
  29. package/dist/breadcrumbs/breadcrumbs.d.mts +33 -0
  30. package/dist/breadcrumbs/breadcrumbs.d.mts.map +1 -0
  31. package/dist/breadcrumbs/breadcrumbs.mjs +79 -0
  32. package/dist/breadcrumbs/breadcrumbs.mjs.map +1 -0
  33. package/dist/breadcrumbs/breadcrumbs.styles.d.mts +46 -0
  34. package/dist/breadcrumbs/breadcrumbs.styles.d.mts.map +1 -0
  35. package/dist/breadcrumbs/breadcrumbs.styles.mjs +35 -0
  36. package/dist/breadcrumbs/breadcrumbs.styles.mjs.map +1 -0
  37. package/dist/breadcrumbs/index.d.mts +3 -0
  38. package/dist/button/button.d.mts +14 -0
  39. package/dist/button/button.d.mts.map +1 -0
  40. package/dist/button/button.mjs +75 -0
  41. package/dist/button/button.mjs.map +1 -0
  42. package/dist/button/button.styles.d.mts +82 -0
  43. package/dist/button/button.styles.d.mts.map +1 -0
  44. package/dist/button/button.styles.mjs +118 -0
  45. package/dist/button/button.styles.mjs.map +1 -0
  46. package/dist/button/index.d.mts +3 -0
  47. package/dist/card/card.d.mts +51 -0
  48. package/dist/card/card.d.mts.map +1 -0
  49. package/dist/card/card.mjs +96 -0
  50. package/dist/card/card.mjs.map +1 -0
  51. package/dist/card/card.styles.d.mts +70 -0
  52. package/dist/card/card.styles.d.mts.map +1 -0
  53. package/dist/card/card.styles.mjs +62 -0
  54. package/dist/card/card.styles.mjs.map +1 -0
  55. package/dist/card/index.d.mts +3 -0
  56. package/dist/checkbox/checkbox.d.mts +24 -0
  57. package/dist/checkbox/checkbox.d.mts.map +1 -0
  58. package/dist/checkbox/checkbox.mjs +124 -0
  59. package/dist/checkbox/checkbox.mjs.map +1 -0
  60. package/dist/checkbox/checkbox.styles.d.mts +111 -0
  61. package/dist/checkbox/checkbox.styles.d.mts.map +1 -0
  62. package/dist/checkbox/checkbox.styles.mjs +89 -0
  63. package/dist/checkbox/checkbox.styles.mjs.map +1 -0
  64. package/dist/checkbox/index.d.mts +3 -0
  65. package/dist/index.d.mts +61 -0
  66. package/dist/index.mjs +42 -0
  67. package/dist/input/index.d.mts +3 -0
  68. package/dist/input/input.d.mts +20 -0
  69. package/dist/input/input.d.mts.map +1 -0
  70. package/dist/input/input.mjs +86 -0
  71. package/dist/input/input.mjs.map +1 -0
  72. package/dist/input/input.styles.d.mts +81 -0
  73. package/dist/input/input.styles.d.mts.map +1 -0
  74. package/dist/input/input.styles.mjs +83 -0
  75. package/dist/input/input.styles.mjs.map +1 -0
  76. package/dist/menu/index.d.mts +3 -0
  77. package/dist/menu/menu.d.mts +62 -0
  78. package/dist/menu/menu.d.mts.map +1 -0
  79. package/dist/menu/menu.mjs +115 -0
  80. package/dist/menu/menu.mjs.map +1 -0
  81. package/dist/menu/menu.styles.d.mts +90 -0
  82. package/dist/menu/menu.styles.d.mts.map +1 -0
  83. package/dist/menu/menu.styles.mjs +40 -0
  84. package/dist/menu/menu.styles.mjs.map +1 -0
  85. package/dist/modal/index.d.mts +3 -0
  86. package/dist/modal/modal.d.mts +47 -0
  87. package/dist/modal/modal.d.mts.map +1 -0
  88. package/dist/modal/modal.mjs +110 -0
  89. package/dist/modal/modal.mjs.map +1 -0
  90. package/dist/modal/modal.styles.d.mts +58 -0
  91. package/dist/modal/modal.styles.d.mts.map +1 -0
  92. package/dist/modal/modal.styles.mjs +69 -0
  93. package/dist/modal/modal.styles.mjs.map +1 -0
  94. package/dist/popover/index.d.mts +3 -0
  95. package/dist/popover/popover.d.mts +40 -0
  96. package/dist/popover/popover.d.mts.map +1 -0
  97. package/dist/popover/popover.mjs +86 -0
  98. package/dist/popover/popover.mjs.map +1 -0
  99. package/dist/popover/popover.styles.d.mts +81 -0
  100. package/dist/popover/popover.styles.d.mts.map +1 -0
  101. package/dist/popover/popover.styles.mjs +53 -0
  102. package/dist/popover/popover.styles.mjs.map +1 -0
  103. package/dist/progress/index.d.mts +3 -0
  104. package/dist/progress/progress.d.mts +14 -0
  105. package/dist/progress/progress.d.mts.map +1 -0
  106. package/dist/progress/progress.mjs +54 -0
  107. package/dist/progress/progress.mjs.map +1 -0
  108. package/dist/progress/progress.styles.d.mts +70 -0
  109. package/dist/progress/progress.styles.d.mts.map +1 -0
  110. package/dist/progress/progress.styles.mjs +54 -0
  111. package/dist/progress/progress.styles.mjs.map +1 -0
  112. package/dist/radio/index.d.mts +3 -0
  113. package/dist/radio/radio.d.mts +22 -0
  114. package/dist/radio/radio.d.mts.map +1 -0
  115. package/dist/radio/radio.mjs +95 -0
  116. package/dist/radio/radio.mjs.map +1 -0
  117. package/dist/radio/radio.styles.d.mts +111 -0
  118. package/dist/radio/radio.styles.d.mts.map +1 -0
  119. package/dist/radio/radio.styles.mjs +88 -0
  120. package/dist/radio/radio.styles.mjs.map +1 -0
  121. package/dist/raster.css +92 -0
  122. package/dist/raster.scoped.css +92 -0
  123. package/dist/select/index.d.mts +3 -0
  124. package/dist/select/select.d.mts +33 -0
  125. package/dist/select/select.d.mts.map +1 -0
  126. package/dist/select/select.mjs +114 -0
  127. package/dist/select/select.mjs.map +1 -0
  128. package/dist/select/select.styles.d.mts +82 -0
  129. package/dist/select/select.styles.d.mts.map +1 -0
  130. package/dist/select/select.styles.mjs +93 -0
  131. package/dist/select/select.styles.mjs.map +1 -0
  132. package/dist/skeleton/index.d.mts +3 -0
  133. package/dist/skeleton/skeleton.d.mts +15 -0
  134. package/dist/skeleton/skeleton.d.mts.map +1 -0
  135. package/dist/skeleton/skeleton.mjs +26 -0
  136. package/dist/skeleton/skeleton.mjs.map +1 -0
  137. package/dist/skeleton/skeleton.styles.d.mts +31 -0
  138. package/dist/skeleton/skeleton.styles.d.mts.map +1 -0
  139. package/dist/skeleton/skeleton.styles.mjs +22 -0
  140. package/dist/skeleton/skeleton.styles.mjs.map +1 -0
  141. package/dist/spinner/index.d.mts +3 -0
  142. package/dist/spinner/spinner.d.mts +15 -0
  143. package/dist/spinner/spinner.d.mts.map +1 -0
  144. package/dist/spinner/spinner.mjs +55 -0
  145. package/dist/spinner/spinner.mjs.map +1 -0
  146. package/dist/spinner/spinner.styles.d.mts +46 -0
  147. package/dist/spinner/spinner.styles.d.mts.map +1 -0
  148. package/dist/spinner/spinner.styles.mjs +37 -0
  149. package/dist/spinner/spinner.styles.mjs.map +1 -0
  150. package/dist/styles/focus-ring.mjs +23 -0
  151. package/dist/styles/focus-ring.mjs.map +1 -0
  152. package/dist/switch/index.d.mts +3 -0
  153. package/dist/switch/switch.d.mts +17 -0
  154. package/dist/switch/switch.d.mts.map +1 -0
  155. package/dist/switch/switch.mjs +57 -0
  156. package/dist/switch/switch.mjs.map +1 -0
  157. package/dist/switch/switch.styles.d.mts +58 -0
  158. package/dist/switch/switch.styles.d.mts.map +1 -0
  159. package/dist/switch/switch.styles.mjs +80 -0
  160. package/dist/switch/switch.styles.mjs.map +1 -0
  161. package/dist/tabs/index.d.mts +3 -0
  162. package/dist/tabs/tabs.d.mts +55 -0
  163. package/dist/tabs/tabs.d.mts.map +1 -0
  164. package/dist/tabs/tabs.mjs +84 -0
  165. package/dist/tabs/tabs.mjs.map +1 -0
  166. package/dist/tabs/tabs.styles.d.mts +55 -0
  167. package/dist/tabs/tabs.styles.d.mts.map +1 -0
  168. package/dist/tabs/tabs.styles.mjs +73 -0
  169. package/dist/tabs/tabs.styles.mjs.map +1 -0
  170. package/dist/textarea/index.d.mts +3 -0
  171. package/dist/textarea/textarea.d.mts +15 -0
  172. package/dist/textarea/textarea.d.mts.map +1 -0
  173. package/dist/textarea/textarea.mjs +70 -0
  174. package/dist/textarea/textarea.mjs.map +1 -0
  175. package/dist/textarea/textarea.styles.d.mts +73 -0
  176. package/dist/textarea/textarea.styles.d.mts.map +1 -0
  177. package/dist/textarea/textarea.styles.mjs +81 -0
  178. package/dist/textarea/textarea.styles.mjs.map +1 -0
  179. package/dist/toast/index.d.mts +3 -0
  180. package/dist/toast/toast.d.mts +38 -0
  181. package/dist/toast/toast.d.mts.map +1 -0
  182. package/dist/toast/toast.mjs +86 -0
  183. package/dist/toast/toast.mjs.map +1 -0
  184. package/dist/toast/toast.styles.d.mts +61 -0
  185. package/dist/toast/toast.styles.d.mts.map +1 -0
  186. package/dist/toast/toast.styles.mjs +59 -0
  187. package/dist/toast/toast.styles.mjs.map +1 -0
  188. package/package.json +59 -0
@@ -0,0 +1,40 @@
1
+ import { ReactNode } from "react";
2
+ import { PopoverProps, TooltipProps } from "@novi-ui/core";
3
+ //#region src/popover/popover.d.ts
4
+ /**
5
+ * Popover の中身。
6
+ *
7
+ * @example
8
+ * <PopoverContent>ここに補足を書く</PopoverContent>
9
+ */
10
+ declare function PopoverContent({ children, className }: {
11
+ children?: ReactNode;
12
+ className?: string;
13
+ }): import("react").JSX.Element;
14
+ /**
15
+ * トリガーに紐づいて浮かぶ小さな面。Escape で閉じてトリガーへフォーカスが戻る。
16
+ *
17
+ * Raster では矢印(arrow slot)を描画しない。任意 slot を省略できることの実例。
18
+ *
19
+ * @example
20
+ * <Popover placement="bottom">
21
+ * <Button>詳細</Button>
22
+ * <PopoverContent>ここに補足を書く</PopoverContent>
23
+ * </Popover>
24
+ */
25
+ declare function Popover({ radius, placement, offset, isOpen, defaultOpen, onOpenChange, children, className, classNames, id }: PopoverProps): import("react").JSX.Element;
26
+ /**
27
+ * 要素の補足説明。ホバーとフォーカスの両方で開く。
28
+ *
29
+ * ツールチップだけに情報を置かないこと。触れないと読めないため、
30
+ * 操作に必須の情報は本文かラベルに書く。
31
+ *
32
+ * @example
33
+ * <Tooltip content="コピーする">
34
+ * <Button>複製</Button>
35
+ * </Tooltip>
36
+ */
37
+ declare function Tooltip({ content, placement, offset, delay, isOpen, defaultOpen, onOpenChange, isDisabled, children, className, classNames, id }: TooltipProps): import("react").JSX.Element;
38
+ //#endregion
39
+ export { Popover, PopoverContent, Tooltip };
40
+ //# sourceMappingURL=popover.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.mts","names":[],"sources":["../../src/popover/popover.tsx"],"mappings":";;;;;;;;;iBAmBgB,iBACd,UACA;EAEA,WAAW;EACX;oBACD,IAAA;;;;;;;;;;;;iBAmBe,UACd,QACA,WACA,QACA,QACA,aACA,cACA,UACA,WACA,YACA,MACC,+BAAY,IAAA;;;;;;;;;;;;iBAkCC,UACd,SACA,WACA,QACA,OACA,QACA,aACA,cACA,YACA,UACA,WACA,YACA,MACC,+BAAY,IAAA"}
@@ -0,0 +1,86 @@
1
+ "use client";
2
+ import { popoverStyles, tooltipStyles } from "./popover.styles.mjs";
3
+ import { Dialog, DialogTrigger, Popover, Tooltip, TooltipTrigger } from "react-aria-components";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/popover/popover.tsx
6
+ /**
7
+ * Popover の中身。
8
+ *
9
+ * @example
10
+ * <PopoverContent>ここに補足を書く</PopoverContent>
11
+ */
12
+ function PopoverContent({ children, className }) {
13
+ return /* @__PURE__ */ jsx("div", {
14
+ "data-slot": "content",
15
+ className: popoverStyles().content({ class: className }),
16
+ children
17
+ });
18
+ }
19
+ /**
20
+ * トリガーに紐づいて浮かぶ小さな面。Escape で閉じてトリガーへフォーカスが戻る。
21
+ *
22
+ * Raster では矢印(arrow slot)を描画しない。任意 slot を省略できることの実例。
23
+ *
24
+ * @example
25
+ * <Popover placement="bottom">
26
+ * <Button>詳細</Button>
27
+ * <PopoverContent>ここに補足を書く</PopoverContent>
28
+ * </Popover>
29
+ */
30
+ function Popover$1({ radius, placement = "bottom", offset = 6, isOpen, defaultOpen, onOpenChange, children, className, classNames, id }) {
31
+ const s = popoverStyles({ radius });
32
+ const [trigger, ...content] = Array.isArray(children) ? children : [children];
33
+ return /* @__PURE__ */ jsxs(DialogTrigger, {
34
+ isOpen,
35
+ defaultOpen,
36
+ onOpenChange,
37
+ children: [trigger, /* @__PURE__ */ jsx(Popover, {
38
+ placement,
39
+ offset,
40
+ "data-slot": "root",
41
+ className: s.root({ class: [className, classNames?.root] }),
42
+ children: /* @__PURE__ */ jsx(Dialog, {
43
+ id,
44
+ className: "outline-none",
45
+ children: content
46
+ })
47
+ })]
48
+ });
49
+ }
50
+ /**
51
+ * 要素の補足説明。ホバーとフォーカスの両方で開く。
52
+ *
53
+ * ツールチップだけに情報を置かないこと。触れないと読めないため、
54
+ * 操作に必須の情報は本文かラベルに書く。
55
+ *
56
+ * @example
57
+ * <Tooltip content="コピーする">
58
+ * <Button>複製</Button>
59
+ * </Tooltip>
60
+ */
61
+ function Tooltip$1({ content, placement = "top", offset = 6, delay = 400, isOpen, defaultOpen, onOpenChange, isDisabled, children, className, classNames, id }) {
62
+ const s = tooltipStyles();
63
+ return /* @__PURE__ */ jsxs(TooltipTrigger, {
64
+ isOpen,
65
+ defaultOpen,
66
+ onOpenChange,
67
+ isDisabled,
68
+ delay,
69
+ children: [children, /* @__PURE__ */ jsx(Tooltip, {
70
+ placement,
71
+ offset,
72
+ "data-slot": "root",
73
+ className: s.root({ class: [className, classNames?.root] }),
74
+ children: /* @__PURE__ */ jsx("span", {
75
+ id,
76
+ "data-slot": "content",
77
+ className: s.content({ class: classNames?.content }),
78
+ children: content
79
+ })
80
+ })]
81
+ });
82
+ }
83
+ //#endregion
84
+ export { Popover$1 as Popover, PopoverContent, Tooltip$1 as Tooltip };
85
+
86
+ //# sourceMappingURL=popover.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.mjs","names":["Popover","RACPopover","Tooltip","RACTooltip"],"sources":["../../src/popover/popover.tsx"],"sourcesContent":["'use client'\n\nimport type { PopoverProps, TooltipProps } from '@novi-ui/core'\nimport type { ReactNode } from 'react'\nimport {\n Dialog,\n DialogTrigger,\n Popover as RACPopover,\n Tooltip as RACTooltip,\n TooltipTrigger,\n} from 'react-aria-components'\nimport { popoverStyles, tooltipStyles } from './popover.styles'\n\n/**\n * Popover の中身。\n *\n * @example\n * <PopoverContent>ここに補足を書く</PopoverContent>\n */\nexport function PopoverContent({\n children,\n className,\n}: {\n children?: ReactNode\n className?: string\n}) {\n return (\n <div data-slot=\"content\" className={popoverStyles().content({ class: className })}>\n {children}\n </div>\n )\n}\n\n/**\n * トリガーに紐づいて浮かぶ小さな面。Escape で閉じてトリガーへフォーカスが戻る。\n *\n * Raster では矢印(arrow slot)を描画しない。任意 slot を省略できることの実例。\n *\n * @example\n * <Popover placement=\"bottom\">\n * <Button>詳細</Button>\n * <PopoverContent>ここに補足を書く</PopoverContent>\n * </Popover>\n */\nexport function Popover({\n radius,\n placement = 'bottom',\n offset = 6,\n isOpen,\n defaultOpen,\n onOpenChange,\n children,\n className,\n classNames,\n id,\n}: PopoverProps) {\n const s = popoverStyles({ radius })\n const items = Array.isArray(children) ? children : [children]\n const [trigger, ...content] = items\n\n return (\n <DialogTrigger isOpen={isOpen} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n {trigger}\n <RACPopover\n placement={placement}\n offset={offset}\n data-slot=\"root\"\n className={s.root({ class: [className, classNames?.root] })}\n >\n {/* RAC の Popover は id を受け取らないため Dialog に付ける */}\n <Dialog id={id} className=\"outline-none\">\n {content}\n </Dialog>\n </RACPopover>\n </DialogTrigger>\n )\n}\n\n/**\n * 要素の補足説明。ホバーとフォーカスの両方で開く。\n *\n * ツールチップだけに情報を置かないこと。触れないと読めないため、\n * 操作に必須の情報は本文かラベルに書く。\n *\n * @example\n * <Tooltip content=\"コピーする\">\n * <Button>複製</Button>\n * </Tooltip>\n */\nexport function Tooltip({\n content,\n placement = 'top',\n offset = 6,\n delay = 400,\n isOpen,\n defaultOpen,\n onOpenChange,\n isDisabled,\n children,\n className,\n classNames,\n id,\n}: TooltipProps) {\n const s = tooltipStyles()\n\n return (\n <TooltipTrigger\n isOpen={isOpen}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n isDisabled={isDisabled}\n delay={delay}\n >\n {children}\n <RACTooltip\n placement={placement}\n offset={offset}\n data-slot=\"root\"\n className={s.root({ class: [className, classNames?.root] })}\n >\n {/* RAC の Tooltip は id を受け取らないため中身に付ける */}\n <span id={id} data-slot=\"content\" className={s.content({ class: classNames?.content })}>\n {content}\n </span>\n </RACTooltip>\n </TooltipTrigger>\n )\n}\n"],"mappings":";;;;;;;;;;;AAmBA,SAAgB,eAAe,EAC7B,UACA,aAIC;CACD,OACE,oBAAC,OAAD;EAAK,aAAU;EAAU,WAAW,cAAc,CAAC,CAAC,QAAQ,EAAE,OAAO,UAAU,CAAC;EAC7E;CACE,CAAA;AAET;;;;;;;;;;;;AAaA,SAAgBA,UAAQ,EACtB,QACA,YAAY,UACZ,SAAS,GACT,QACA,aACA,cACA,UACA,WACA,YACA,MACe;CACf,MAAM,IAAI,cAAc,EAAE,OAAO,CAAC;CAElC,MAAM,CAAC,SAAS,GAAG,WADL,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;CAG5D,OACE,qBAAC,eAAD;EAAuB;EAAqB;EAA2B;EAAvE,UAAA,CACG,SACD,oBAACC,SAAD;GACa;GACH;GACR,aAAU;GACV,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,YAAY,IAAI,EAAE,CAAC;GAG1D,UAAA,oBAAC,QAAD;IAAY;IAAI,WAAU;IACvB,UAAA;GACK,CAAA;EACE,CAAA,CACC;;AAEnB;;;;;;;;;;;;AAaA,SAAgBC,UAAQ,EACtB,SACA,YAAY,OACZ,SAAS,GACT,QAAQ,KACR,QACA,aACA,cACA,YACA,UACA,WACA,YACA,MACe;CACf,MAAM,IAAI,cAAc;CAExB,OACE,qBAAC,gBAAD;EACU;EACK;EACC;EACF;EACL;EALT,UAAA,CAOG,UACD,oBAACC,SAAD;GACa;GACH;GACR,aAAU;GACV,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,YAAY,IAAI,EAAE,CAAC;GAG1D,UAAA,oBAAC,QAAD;IAAU;IAAI,aAAU;IAAU,WAAW,EAAE,QAAQ,EAAE,OAAO,YAAY,QAAQ,CAAC;IAClF,UAAA;GACG,CAAA;EACI,CAAA,CACE;;AAEpB"}
@@ -0,0 +1,81 @@
1
+ import { VariantMap } from "@novi-ui/core";
2
+ //#region src/popover/popover.styles.d.ts
3
+ /**
4
+ * Popover のスタイル定義。
5
+ *
6
+ * @example
7
+ * const myPopover = tv({ extend: popoverStyles, slots: { content: 'p-6' } })
8
+ */
9
+ declare const popoverStyles: import("tailwind-variants").TVReturnType<{
10
+ radius: VariantMap<"sm" | "md" | "lg" | "none" | "full", {
11
+ root: string;
12
+ }>;
13
+ }, {
14
+ root: string;
15
+ arrow: string;
16
+ content: string;
17
+ }, undefined, {
18
+ radius: VariantMap<"sm" | "md" | "lg" | "none" | "full", {
19
+ root: string;
20
+ }>;
21
+ }, {
22
+ root: string;
23
+ arrow: string;
24
+ content: string;
25
+ }, import("tailwind-variants").TVReturnTypeLike<{
26
+ radius: VariantMap<"sm" | "md" | "lg" | "none" | "full", {
27
+ root: string;
28
+ }>;
29
+ }, {
30
+ root: string;
31
+ arrow: string;
32
+ content: string;
33
+ }>>;
34
+ /**
35
+ * Tooltip のスタイル定義。
36
+ *
37
+ * Popover と違い**反転色**(暗い面に明るい文字)で出す。
38
+ * 補足であって操作対象ではない、という区別を色で伝える。
39
+ */
40
+ declare const tooltipStyles: import("tailwind-variants").TVReturnType<{
41
+ [key: string]: {
42
+ [key: string]: import("tailwind-variants").ClassValue | {
43
+ root?: import("tailwind-variants").ClassValue;
44
+ arrow?: import("tailwind-variants").ClassValue;
45
+ content?: import("tailwind-variants").ClassValue;
46
+ };
47
+ };
48
+ } | {
49
+ [x: string]: {
50
+ [x: string]: import("tailwind-variants").ClassValue | {
51
+ root?: import("tailwind-variants").ClassValue;
52
+ arrow?: import("tailwind-variants").ClassValue;
53
+ content?: import("tailwind-variants").ClassValue;
54
+ };
55
+ };
56
+ } | {}, {
57
+ root: string;
58
+ arrow: string;
59
+ content: string;
60
+ }, undefined, {
61
+ [key: string]: {
62
+ [key: string]: import("tailwind-variants").ClassValue | {
63
+ root?: import("tailwind-variants").ClassValue;
64
+ arrow?: import("tailwind-variants").ClassValue;
65
+ content?: import("tailwind-variants").ClassValue;
66
+ };
67
+ };
68
+ } | {}, {
69
+ root: string;
70
+ arrow: string;
71
+ content: string;
72
+ }, import("tailwind-variants").TVReturnTypeLike<unknown, {
73
+ root: string;
74
+ arrow: string;
75
+ content: string;
76
+ }>>;
77
+ type PopoverStyleProps = Parameters<typeof popoverStyles>[0];
78
+ type TooltipStyleProps = Parameters<typeof tooltipStyles>[0];
79
+ //#endregion
80
+ export { PopoverStyleProps, TooltipStyleProps, popoverStyles, tooltipStyles };
81
+ //# sourceMappingURL=popover.styles.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.styles.d.mts","names":[],"sources":["../../src/popover/popover.styles.ts"],"mappings":";;;;;;;;cAuCa,2CAAa;;IAdmB;;;;;;;;IAAA;;;;;;;;IAAA;;;;;;;;;;;;;cA0BhC,2CAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAed,oBAAoB,kBAAkB;KACtC,oBAAoB,kBAAkB"}
@@ -0,0 +1,53 @@
1
+ import { tv } from "tailwind-variants";
2
+ //#region src/popover/popover.styles.ts
3
+ const slots = {
4
+ root: [
5
+ "text-[var(--novi-color-fg)]",
6
+ "outline-none",
7
+ "bg-[var(--novi-color-bg)]",
8
+ "border border-[var(--novi-color-border-strong)]",
9
+ "shadow-none",
10
+ "data-[entering]:motion-safe:animate-[novi-fade-in_120ms_ease-out]"
11
+ ].join(" "),
12
+ arrow: "hidden",
13
+ content: "px-4 py-3 text-[var(--novi-color-fg)] leading-[var(--novi-leading-body)]"
14
+ };
15
+ /**
16
+ * Popover のスタイル定義。
17
+ *
18
+ * @example
19
+ * const myPopover = tv({ extend: popoverStyles, slots: { content: 'p-6' } })
20
+ */
21
+ const popoverStyles = tv({
22
+ slots,
23
+ variants: { radius: {
24
+ none: { root: "rounded-[var(--novi-radius-none)]" },
25
+ sm: { root: "rounded-[var(--novi-radius-sm)]" },
26
+ md: { root: "rounded-[var(--novi-radius-md)]" },
27
+ lg: { root: "rounded-[var(--novi-radius-lg)]" },
28
+ full: { root: "rounded-[var(--novi-radius-full)]" }
29
+ } },
30
+ defaultVariants: { radius: "none" }
31
+ });
32
+ /**
33
+ * Tooltip のスタイル定義。
34
+ *
35
+ * Popover と違い**反転色**(暗い面に明るい文字)で出す。
36
+ * 補足であって操作対象ではない、という区別を色で伝える。
37
+ */
38
+ const tooltipStyles = tv({ slots: {
39
+ root: [
40
+ "outline-none max-w-xs",
41
+ "bg-[var(--novi-color-fg)] text-[var(--novi-color-bg)]",
42
+ "border border-transparent",
43
+ "rounded-[var(--novi-radius-none)]",
44
+ "shadow-none",
45
+ "data-[entering]:motion-safe:animate-[novi-fade-in_120ms_ease-out]"
46
+ ].join(" "),
47
+ arrow: "hidden",
48
+ content: "px-2 py-1 text-[length:var(--novi-text-xs)] leading-snug"
49
+ } });
50
+ //#endregion
51
+ export { popoverStyles, tooltipStyles };
52
+
53
+ //# sourceMappingURL=popover.styles.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.styles.mjs","names":[],"sources":["../../src/popover/popover.styles.ts"],"sourcesContent":["import type {\n NoviRadius,\n popoverRequiredSlots,\n popoverSlots,\n SlotMap,\n tooltipRequiredSlots,\n tooltipSlots,\n VariantMap,\n} from '@novi-ui/core'\nimport { tv } from 'tailwind-variants'\n\nconst slots = {\n root: [\n 'text-[var(--novi-color-fg)]',\n 'outline-none',\n 'bg-[var(--novi-color-bg)]',\n 'border border-[var(--novi-color-border-strong)]',\n 'shadow-none',\n 'data-[entering]:motion-safe:animate-[novi-fade-in_120ms_ease-out]',\n ].join(' '),\n // Raster では arrow を描画しない。任意 slot を省略する実例\n arrow: 'hidden',\n content: 'px-4 py-3 text-[var(--novi-color-fg)] leading-[var(--novi-leading-body)]',\n} satisfies SlotMap<typeof popoverSlots, (typeof popoverRequiredSlots)[number]>\n\nconst radius: VariantMap<NoviRadius, { root: string }> = {\n none: { root: 'rounded-[var(--novi-radius-none)]' },\n sm: { root: 'rounded-[var(--novi-radius-sm)]' },\n md: { root: 'rounded-[var(--novi-radius-md)]' },\n lg: { root: 'rounded-[var(--novi-radius-lg)]' },\n full: { root: 'rounded-[var(--novi-radius-full)]' },\n}\n\n/**\n * Popover のスタイル定義。\n *\n * @example\n * const myPopover = tv({ extend: popoverStyles, slots: { content: 'p-6' } })\n */\nexport const popoverStyles = tv({\n slots,\n variants: { radius },\n defaultVariants: { radius: 'none' },\n})\n\n/**\n * Tooltip のスタイル定義。\n *\n * Popover と違い**反転色**(暗い面に明るい文字)で出す。\n * 補足であって操作対象ではない、という区別を色で伝える。\n */\nexport const tooltipStyles = tv({\n slots: {\n root: [\n 'outline-none max-w-xs',\n 'bg-[var(--novi-color-fg)] text-[var(--novi-color-bg)]',\n 'border border-transparent',\n 'rounded-[var(--novi-radius-none)]',\n 'shadow-none',\n 'data-[entering]:motion-safe:animate-[novi-fade-in_120ms_ease-out]',\n ].join(' '),\n arrow: 'hidden',\n content: 'px-2 py-1 text-[length:var(--novi-text-xs)] leading-snug',\n } satisfies SlotMap<typeof tooltipSlots, (typeof tooltipRequiredSlots)[number]>,\n})\n\nexport type PopoverStyleProps = Parameters<typeof popoverStyles>[0]\nexport type TooltipStyleProps = Parameters<typeof tooltipStyles>[0]\n"],"mappings":";;AAWA,MAAM,QAAQ;CACZ,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,CAAC,KAAK,GAAG;CAEV,OAAO;CACP,SAAS;AACX;;;;;;;AAgBA,MAAa,gBAAgB,GAAG;CAC9B;CACA,UAAU,EAAE;EAfZ,MAAM,EAAE,MAAM,oCAAoC;EAClD,IAAI,EAAE,MAAM,kCAAkC;EAC9C,IAAI,EAAE,MAAM,kCAAkC;EAC9C,IAAI,EAAE,MAAM,kCAAkC;EAC9C,MAAM,EAAE,MAAM,oCAAoC;CAWtC,EAAO;CACnB,iBAAiB,EAAE,QAAQ,OAAO;AACpC,CAAC;;;;;;;AAQD,MAAa,gBAAgB,GAAG,EAC9B,OAAO;CACL,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,CAAC,KAAK,GAAG;CACV,OAAO;CACP,SAAS;AACX,EACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Progress } from "./progress.mjs";
2
+ import { ProgressStyleProps, progressStyles } from "./progress.styles.mjs";
3
+ export { Progress, type ProgressStyleProps, progressStyles };
@@ -0,0 +1,14 @@
1
+ import { ProgressProps } from "@novi-ui/core";
2
+ //#region src/progress/progress.d.ts
3
+ /**
4
+ * 進捗の表示。`value` を省略すると不確定(indeterminate)表示になる。
5
+ *
6
+ * `prefers-reduced-motion` が有効なときは不確定表示のアニメーションを止める。
7
+ *
8
+ * @example
9
+ * <Progress label="アップロード中" value={62} showValueLabel />
10
+ */
11
+ declare function Progress({ size, color, label, value, minValue, maxValue, showValueLabel, className, classNames, id }: ProgressProps): import("react").JSX.Element;
12
+ //#endregion
13
+ export { Progress };
14
+ //# sourceMappingURL=progress.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.mts","names":[],"sources":["../../src/progress/progress.tsx"],"mappings":";;;;;;;;;;iBAcgB,WACd,MACA,OACA,OACA,OACA,UACA,UACA,gBACA,WACA,YACA,MACC,gCAAa,IAAA"}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { progressStyles } from "./progress.styles.mjs";
3
+ import { Label, ProgressBar } from "react-aria-components";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/progress/progress.tsx
6
+ /**
7
+ * 進捗の表示。`value` を省略すると不確定(indeterminate)表示になる。
8
+ *
9
+ * `prefers-reduced-motion` が有効なときは不確定表示のアニメーションを止める。
10
+ *
11
+ * @example
12
+ * <Progress label="アップロード中" value={62} showValueLabel />
13
+ */
14
+ function Progress({ size, color, label, value, minValue = 0, maxValue = 100, showValueLabel, className, classNames, id }) {
15
+ const isIndeterminate = value === void 0;
16
+ const s = progressStyles({
17
+ size,
18
+ color,
19
+ isIndeterminate
20
+ });
21
+ return /* @__PURE__ */ jsx(ProgressBar, {
22
+ id,
23
+ value,
24
+ minValue,
25
+ maxValue,
26
+ isIndeterminate,
27
+ "data-slot": "root",
28
+ className: s.root({ class: [className, classNames?.root] }),
29
+ children: ({ percentage, valueText }) => /* @__PURE__ */ jsxs(Fragment, { children: [(label !== void 0 || showValueLabel === true) && /* @__PURE__ */ jsxs("span", {
30
+ className: "flex items-baseline justify-between gap-2",
31
+ children: [label !== void 0 && /* @__PURE__ */ jsx(Label, {
32
+ "data-slot": "label",
33
+ className: s.label({ class: classNames?.label }),
34
+ children: label
35
+ }), showValueLabel === true && !isIndeterminate && /* @__PURE__ */ jsx("span", {
36
+ "data-slot": "valueLabel",
37
+ className: s.valueLabel({ class: classNames?.valueLabel }),
38
+ children: valueText
39
+ })]
40
+ }), /* @__PURE__ */ jsx("span", {
41
+ "data-slot": "track",
42
+ className: s.track({ class: classNames?.track }),
43
+ children: /* @__PURE__ */ jsx("span", {
44
+ "data-slot": "indicator",
45
+ className: s.indicator({ class: classNames?.indicator }),
46
+ style: isIndeterminate ? void 0 : { width: `${percentage ?? 0}%` }
47
+ })
48
+ })] })
49
+ });
50
+ }
51
+ //#endregion
52
+ export { Progress };
53
+
54
+ //# sourceMappingURL=progress.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.mjs","names":[],"sources":["../../src/progress/progress.tsx"],"sourcesContent":["'use client'\n\nimport type { ProgressProps } from '@novi-ui/core'\nimport { Label, ProgressBar } from 'react-aria-components'\nimport { progressStyles } from './progress.styles'\n\n/**\n * 進捗の表示。`value` を省略すると不確定(indeterminate)表示になる。\n *\n * `prefers-reduced-motion` が有効なときは不確定表示のアニメーションを止める。\n *\n * @example\n * <Progress label=\"アップロード中\" value={62} showValueLabel />\n */\nexport function Progress({\n size,\n color,\n label,\n value,\n minValue = 0,\n maxValue = 100,\n showValueLabel,\n className,\n classNames,\n id,\n}: ProgressProps) {\n const isIndeterminate = value === undefined\n const s = progressStyles({ size, color, isIndeterminate })\n\n return (\n <ProgressBar\n id={id}\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n isIndeterminate={isIndeterminate}\n data-slot=\"root\"\n className={s.root({ class: [className, classNames?.root] })}\n >\n {({ percentage, valueText }) => (\n <>\n {(label !== undefined || showValueLabel === true) && (\n <span className=\"flex items-baseline justify-between gap-2\">\n {label !== undefined && (\n <Label data-slot=\"label\" className={s.label({ class: classNames?.label })}>\n {label}\n </Label>\n )}\n {showValueLabel === true && !isIndeterminate && (\n <span\n data-slot=\"valueLabel\"\n className={s.valueLabel({ class: classNames?.valueLabel })}\n >\n {valueText}\n </span>\n )}\n </span>\n )}\n\n <span data-slot=\"track\" className={s.track({ class: classNames?.track })}>\n <span\n data-slot=\"indicator\"\n className={s.indicator({ class: classNames?.indicator })}\n style={isIndeterminate ? undefined : { width: `${percentage ?? 0}%` }}\n />\n </span>\n </>\n )}\n </ProgressBar>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,SAAS,EACvB,MACA,OACA,OACA,OACA,WAAW,GACX,WAAW,KACX,gBACA,WACA,YACA,MACgB;CAChB,MAAM,kBAAkB,UAAU,KAAA;CAClC,MAAM,IAAI,eAAe;EAAE;EAAM;EAAO;CAAgB,CAAC;CAEzD,OACE,oBAAC,aAAD;EACM;EACG;EACG;EACA;EACO;EACjB,aAAU;EACV,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,YAAY,IAAI,EAAE,CAAC;EAExD,WAAA,EAAE,YAAY,gBACd,qBAAA,UAAA,EAAA,UAAA,EACI,UAAU,KAAA,KAAa,mBAAmB,SAC1C,qBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA,CACG,UAAU,KAAA,KACT,oBAAC,OAAD;IAAO,aAAU;IAAQ,WAAW,EAAE,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;IACrE,UAAA;GACI,CAAA,GAER,mBAAmB,QAAQ,CAAC,mBAC3B,oBAAC,QAAD;IACE,aAAU;IACV,WAAW,EAAE,WAAW,EAAE,OAAO,YAAY,WAAW,CAAC;IAExD,UAAA;GACG,CAAA,CAEJ;EAGR,CAAA,GAAA,oBAAC,QAAD;GAAM,aAAU;GAAQ,WAAW,EAAE,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;GACrE,UAAA,oBAAC,QAAD;IACE,aAAU;IACV,WAAW,EAAE,UAAU,EAAE,OAAO,YAAY,UAAU,CAAC;IACvD,OAAO,kBAAkB,KAAA,IAAY,EAAE,OAAO,GAAG,cAAc,EAAE,GAAG;GACrE,CAAA;EACG,CAAA,CACN,EAAA,CAAA;CAEO,CAAA;AAEjB"}
@@ -0,0 +1,70 @@
1
+ import { VariantMap } from "@novi-ui/core";
2
+ //#region src/progress/progress.styles.d.ts
3
+ /**
4
+ * Progress のスタイル定義。
5
+ *
6
+ * @example
7
+ * const myProgress = tv({ extend: progressStyles, slots: { track: 'h-2' } })
8
+ */
9
+ declare const progressStyles: import("tailwind-variants").TVReturnType<{
10
+ color: VariantMap<"default" | "primary" | "secondary" | "success" | "warning" | "danger", {
11
+ root: string;
12
+ }>;
13
+ size: VariantMap<"sm" | "md" | "lg", {
14
+ track: string;
15
+ }>;
16
+ isIndeterminate: {
17
+ true: {
18
+ indicator: string;
19
+ };
20
+ false: {};
21
+ };
22
+ }, {
23
+ root: string;
24
+ label: string;
25
+ track: string;
26
+ indicator: string;
27
+ valueLabel: string;
28
+ }, undefined, {
29
+ color: VariantMap<"default" | "primary" | "secondary" | "success" | "warning" | "danger", {
30
+ root: string;
31
+ }>;
32
+ size: VariantMap<"sm" | "md" | "lg", {
33
+ track: string;
34
+ }>;
35
+ isIndeterminate: {
36
+ true: {
37
+ indicator: string;
38
+ };
39
+ false: {};
40
+ };
41
+ }, {
42
+ root: string;
43
+ label: string;
44
+ track: string;
45
+ indicator: string;
46
+ valueLabel: string;
47
+ }, import("tailwind-variants").TVReturnTypeLike<{
48
+ color: VariantMap<"default" | "primary" | "secondary" | "success" | "warning" | "danger", {
49
+ root: string;
50
+ }>;
51
+ size: VariantMap<"sm" | "md" | "lg", {
52
+ track: string;
53
+ }>;
54
+ isIndeterminate: {
55
+ true: {
56
+ indicator: string;
57
+ };
58
+ false: {};
59
+ };
60
+ }, {
61
+ root: string;
62
+ label: string;
63
+ track: string;
64
+ indicator: string;
65
+ valueLabel: string;
66
+ }>>;
67
+ type ProgressStyleProps = Parameters<typeof progressStyles>[0];
68
+ //#endregion
69
+ export { ProgressStyleProps, progressStyles };
70
+ //# sourceMappingURL=progress.styles.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.styles.d.mts","names":[],"sources":["../../src/progress/progress.styles.ts"],"mappings":";;;;;;;;cAiDa,4CAAc;;IArBgB;;;IASD;;;;;;;;;;;;;;;;IATC;;;IASD;;;;;;;;;;;;;;;;IATC;;;IASD;;;;;;;;;;;;;;;KA0B9B,qBAAqB,kBAAkB"}
@@ -0,0 +1,54 @@
1
+ import { tv } from "tailwind-variants";
2
+ //#region src/progress/progress.styles.ts
3
+ const slots = {
4
+ root: "flex flex-col gap-1.5 w-full",
5
+ label: "text-[length:var(--novi-text-sm)] text-[var(--novi-color-fg)]",
6
+ track: [
7
+ "w-full overflow-hidden",
8
+ "bg-[var(--novi-color-subtle)]",
9
+ "rounded-[var(--novi-radius-none)]"
10
+ ].join(" "),
11
+ indicator: [
12
+ "h-full bg-[var(--c)]",
13
+ "transition-[width,transform]",
14
+ "duration-[var(--novi-duration-fast)] ease-[var(--novi-ease-standard)]"
15
+ ].join(" "),
16
+ valueLabel: "text-[length:var(--novi-text-xs)] text-[var(--novi-color-muted)] tabular-nums"
17
+ };
18
+ /**
19
+ * Progress のスタイル定義。
20
+ *
21
+ * @example
22
+ * const myProgress = tv({ extend: progressStyles, slots: { track: 'h-2' } })
23
+ */
24
+ const progressStyles = tv({
25
+ slots,
26
+ variants: {
27
+ color: {
28
+ default: { root: "[--c:var(--novi-color-fg)]" },
29
+ primary: { root: "[--c:var(--novi-color-primary)]" },
30
+ secondary: { root: "[--c:var(--novi-color-secondary)]" },
31
+ success: { root: "[--c:var(--novi-color-success)]" },
32
+ warning: { root: "[--c:var(--novi-color-warning)]" },
33
+ danger: { root: "[--c:var(--novi-color-danger)]" }
34
+ },
35
+ size: {
36
+ sm: { track: "h-0.5" },
37
+ md: { track: "h-1" },
38
+ lg: { track: "h-1.5" }
39
+ },
40
+ isIndeterminate: {
41
+ true: { indicator: "w-1/3 motion-safe:animate-[novi-indeterminate_1.2s_linear_infinite]" },
42
+ false: {}
43
+ }
44
+ },
45
+ defaultVariants: {
46
+ color: "default",
47
+ size: "md",
48
+ isIndeterminate: false
49
+ }
50
+ });
51
+ //#endregion
52
+ export { progressStyles };
53
+
54
+ //# sourceMappingURL=progress.styles.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.styles.mjs","names":[],"sources":["../../src/progress/progress.styles.ts"],"sourcesContent":["import type {\n NoviColor,\n NoviSize,\n progressRequiredSlots,\n progressSlots,\n SlotMap,\n VariantMap,\n} from '@novi-ui/core'\nimport { tv } from 'tailwind-variants'\n\nconst slots = {\n root: 'flex flex-col gap-1.5 w-full',\n label: 'text-[length:var(--novi-text-sm)] text-[var(--novi-color-fg)]',\n // 細い線1本。面を作らない\n track: [\n 'w-full overflow-hidden',\n 'bg-[var(--novi-color-subtle)]',\n 'rounded-[var(--novi-radius-none)]',\n ].join(' '),\n indicator: [\n 'h-full bg-[var(--c)]',\n 'transition-[width,transform]',\n 'duration-[var(--novi-duration-fast)] ease-[var(--novi-ease-standard)]',\n ].join(' '),\n // 桁が揺れないよう等幅数字にする\n valueLabel: 'text-[length:var(--novi-text-xs)] text-[var(--novi-color-muted)] tabular-nums',\n} satisfies SlotMap<typeof progressSlots, (typeof progressRequiredSlots)[number]>\n\nconst color: VariantMap<NoviColor, { root: string }> = {\n default: { root: '[--c:var(--novi-color-fg)]' },\n primary: { root: '[--c:var(--novi-color-primary)]' },\n secondary: { root: '[--c:var(--novi-color-secondary)]' },\n success: { root: '[--c:var(--novi-color-success)]' },\n warning: { root: '[--c:var(--novi-color-warning)]' },\n danger: { root: '[--c:var(--novi-color-danger)]' },\n}\n\nconst size: VariantMap<NoviSize, { track: string }> = {\n sm: { track: 'h-0.5' },\n md: { track: 'h-1' },\n lg: { track: 'h-1.5' },\n}\n\n/**\n * Progress のスタイル定義。\n *\n * @example\n * const myProgress = tv({ extend: progressStyles, slots: { track: 'h-2' } })\n */\nexport const progressStyles = tv({\n slots,\n variants: {\n color,\n size,\n // 不確定表示。translate のみで表現する(scale や rotate は使わない)\n isIndeterminate: {\n true: { indicator: 'w-1/3 motion-safe:animate-[novi-indeterminate_1.2s_linear_infinite]' },\n false: {},\n },\n },\n defaultVariants: { color: 'default', size: 'md', isIndeterminate: false },\n})\n\nexport type ProgressStyleProps = Parameters<typeof progressStyles>[0]\n"],"mappings":";;AAUA,MAAM,QAAQ;CACZ,MAAM;CACN,OAAO;CAEP,OAAO;EACL;EACA;EACA;CACF,CAAC,CAAC,KAAK,GAAG;CACV,WAAW;EACT;EACA;EACA;CACF,CAAC,CAAC,KAAK,GAAG;CAEV,YAAY;AACd;;;;;;;AAuBA,MAAa,iBAAiB,GAAG;CAC/B;CACA,UAAU;EACR;GAvBF,SAAS,EAAE,MAAM,6BAA6B;GAC9C,SAAS,EAAE,MAAM,kCAAkC;GACnD,WAAW,EAAE,MAAM,oCAAoC;GACvD,SAAS,EAAE,MAAM,kCAAkC;GACnD,SAAS,EAAE,MAAM,kCAAkC;GACnD,QAAQ,EAAE,MAAM,iCAAiC;EAkB/C;EACA;GAfF,IAAI,EAAE,OAAO,QAAQ;GACrB,IAAI,EAAE,OAAO,MAAM;GACnB,IAAI,EAAE,OAAO,QAAQ;EAanB;EAEA,iBAAiB;GACf,MAAM,EAAE,WAAW,sEAAsE;GACzF,OAAO,CAAC;EACV;CACF;CACA,iBAAiB;EAAE,OAAO;EAAW,MAAM;EAAM,iBAAiB;CAAM;AAC1E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Radio, RadioGroup } from "./radio.mjs";
2
+ import { RadioGroupStyleProps, RadioStyleProps, radioGroupStyles, radioStyles } from "./radio.styles.mjs";
3
+ export { Radio, RadioGroup, type RadioGroupStyleProps, type RadioStyleProps, radioGroupStyles, radioStyles };
@@ -0,0 +1,22 @@
1
+ import { RadioGroupProps, RadioProps } from "@novi-ui/core";
2
+ //#region src/radio/radio.d.ts
3
+ /**
4
+ * ラジオボタン。単体では使わず、必ず RadioGroup の中に置く。
5
+ *
6
+ * @example
7
+ * <Radio value="express">速達</Radio>
8
+ */
9
+ declare function Radio({ value, size, color, isDisabled, description, children, className, classNames, id }: RadioProps): import("react").JSX.Element;
10
+ /**
11
+ * ラジオボタンのグループ。矢印キーで項目間を移動できる。
12
+ *
13
+ * @example
14
+ * <RadioGroup label="配送方法" value={method} onChange={setMethod}>
15
+ * <Radio value="standard">通常</Radio>
16
+ * <Radio value="express">速達</Radio>
17
+ * </RadioGroup>
18
+ */
19
+ declare function RadioGroup({ label, description, errorMessage, name, value, defaultValue, onChange, orientation, isDisabled, isReadOnly, isRequired, isInvalid, children, className, classNames, id }: RadioGroupProps): import("react").JSX.Element;
20
+ //#endregion
21
+ export { Radio, RadioGroup };
22
+ //# sourceMappingURL=radio.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.d.mts","names":[],"sources":["../../src/radio/radio.tsx"],"mappings":";;;;;;;;iBAkBgB,QACd,OACA,MACA,OACA,YACA,aACA,UACA,WACA,YACA,MACC,6BAAU,IAAA;;;;;;;;;;iBAoDG,aACd,OACA,aACA,cACA,MACA,OACA,cACA,UACA,aACA,YACA,YACA,YACA,WACA,UACA,WACA,YACA,MACC,kCAAe,IAAA"}
@@ -0,0 +1,95 @@
1
+ "use client";
2
+ import { radioGroupStyles, radioStyles } from "./radio.styles.mjs";
3
+ import { FieldError, Label, Radio, RadioGroup, Text } from "react-aria-components";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/radio/radio.tsx
6
+ /**
7
+ * ラジオボタン。単体では使わず、必ず RadioGroup の中に置く。
8
+ *
9
+ * @example
10
+ * <Radio value="express">速達</Radio>
11
+ */
12
+ function Radio$1({ value, size, color, isDisabled, description, children, className, classNames, id }) {
13
+ const s = radioStyles({
14
+ size,
15
+ color
16
+ });
17
+ return /* @__PURE__ */ jsx(Radio, {
18
+ id,
19
+ value,
20
+ isDisabled,
21
+ "data-slot": "root",
22
+ className: `group ${s.root({ class: [className, classNames?.root] })}`,
23
+ children: ({ isSelected }) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
24
+ "data-slot": "control",
25
+ className: s.control({ class: classNames?.control }),
26
+ children: isSelected && /* @__PURE__ */ jsx("span", {
27
+ "data-slot": "indicator",
28
+ className: s.indicator({ class: classNames?.indicator })
29
+ })
30
+ }), children !== void 0 && /* @__PURE__ */ jsxs("span", {
31
+ className: "flex flex-col gap-0.5",
32
+ children: [/* @__PURE__ */ jsx("span", {
33
+ "data-slot": "label",
34
+ className: s.label({ class: classNames?.label }),
35
+ children
36
+ }), description !== void 0 && /* @__PURE__ */ jsx("span", {
37
+ "data-slot": "description",
38
+ className: s.description({ class: classNames?.description }),
39
+ children: description
40
+ })]
41
+ })] })
42
+ });
43
+ }
44
+ /**
45
+ * ラジオボタンのグループ。矢印キーで項目間を移動できる。
46
+ *
47
+ * @example
48
+ * <RadioGroup label="配送方法" value={method} onChange={setMethod}>
49
+ * <Radio value="standard">通常</Radio>
50
+ * <Radio value="express">速達</Radio>
51
+ * </RadioGroup>
52
+ */
53
+ function RadioGroup$1({ label, description, errorMessage, name, value, defaultValue, onChange, orientation, isDisabled, isReadOnly, isRequired, isInvalid, children, className, classNames, id }) {
54
+ const s = radioGroupStyles({ orientation });
55
+ return /* @__PURE__ */ jsxs(RadioGroup, {
56
+ id,
57
+ name,
58
+ value,
59
+ defaultValue,
60
+ onChange,
61
+ isDisabled,
62
+ isReadOnly,
63
+ isRequired,
64
+ isInvalid,
65
+ "data-slot": "root",
66
+ className: s.root({ class: [className, classNames?.root] }),
67
+ children: [
68
+ label !== void 0 && /* @__PURE__ */ jsx(Label, {
69
+ "data-slot": "label",
70
+ className: s.label({ class: classNames?.label }),
71
+ children: label
72
+ }),
73
+ /* @__PURE__ */ jsx("div", {
74
+ "data-slot": "list",
75
+ className: s.list({ class: classNames?.list }),
76
+ children
77
+ }),
78
+ description !== void 0 && /* @__PURE__ */ jsx(Text, {
79
+ slot: "description",
80
+ "data-slot": "description",
81
+ className: s.description({ class: classNames?.description }),
82
+ children: description
83
+ }),
84
+ /* @__PURE__ */ jsx(FieldError, {
85
+ "data-slot": "errorMessage",
86
+ className: s.errorMessage({ class: classNames?.errorMessage }),
87
+ children: errorMessage
88
+ })
89
+ ]
90
+ });
91
+ }
92
+ //#endregion
93
+ export { Radio$1 as Radio, RadioGroup$1 as RadioGroup };
94
+
95
+ //# sourceMappingURL=radio.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.mjs","names":["Radio","RACRadio","RadioGroup","RACRadioGroup"],"sources":["../../src/radio/radio.tsx"],"sourcesContent":["'use client'\n\nimport type { RadioGroupProps, RadioProps } from '@novi-ui/core'\nimport {\n FieldError,\n Label,\n Radio as RACRadio,\n RadioGroup as RACRadioGroup,\n Text,\n} from 'react-aria-components'\nimport { radioGroupStyles, radioStyles } from './radio.styles'\n\n/**\n * ラジオボタン。単体では使わず、必ず RadioGroup の中に置く。\n *\n * @example\n * <Radio value=\"express\">速達</Radio>\n */\nexport function Radio({\n value,\n size,\n color,\n isDisabled,\n description,\n children,\n className,\n classNames,\n id,\n}: RadioProps) {\n const s = radioStyles({ size, color })\n\n return (\n <RACRadio\n id={id}\n value={value}\n isDisabled={isDisabled}\n data-slot=\"root\"\n className={`group ${s.root({ class: [className, classNames?.root] })}`}\n >\n {({ isSelected }) => (\n <>\n <span data-slot=\"control\" className={s.control({ class: classNames?.control })}>\n {isSelected && (\n <span\n data-slot=\"indicator\"\n className={s.indicator({ class: classNames?.indicator })}\n />\n )}\n </span>\n\n {children !== undefined && (\n <span className=\"flex flex-col gap-0.5\">\n <span data-slot=\"label\" className={s.label({ class: classNames?.label })}>\n {children}\n </span>\n {description !== undefined && (\n <span\n data-slot=\"description\"\n className={s.description({ class: classNames?.description })}\n >\n {description}\n </span>\n )}\n </span>\n )}\n </>\n )}\n </RACRadio>\n )\n}\n\n/**\n * ラジオボタンのグループ。矢印キーで項目間を移動できる。\n *\n * @example\n * <RadioGroup label=\"配送方法\" value={method} onChange={setMethod}>\n * <Radio value=\"standard\">通常</Radio>\n * <Radio value=\"express\">速達</Radio>\n * </RadioGroup>\n */\nexport function RadioGroup({\n label,\n description,\n errorMessage,\n name,\n value,\n defaultValue,\n onChange,\n orientation,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n children,\n className,\n classNames,\n id,\n}: RadioGroupProps) {\n const s = radioGroupStyles({ orientation })\n\n return (\n <RACRadioGroup\n id={id}\n name={name}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n isInvalid={isInvalid}\n data-slot=\"root\"\n className={s.root({ class: [className, classNames?.root] })}\n >\n {label !== undefined && (\n <Label data-slot=\"label\" className={s.label({ class: classNames?.label })}>\n {label}\n </Label>\n )}\n\n <div data-slot=\"list\" className={s.list({ class: classNames?.list })}>\n {children}\n </div>\n\n {description !== undefined && (\n <Text\n slot=\"description\"\n data-slot=\"description\"\n className={s.description({ class: classNames?.description })}\n >\n {description}\n </Text>\n )}\n\n <FieldError\n data-slot=\"errorMessage\"\n className={s.errorMessage({ class: classNames?.errorMessage })}\n >\n {errorMessage}\n </FieldError>\n </RACRadioGroup>\n )\n}\n"],"mappings":";;;;;;;;;;;AAkBA,SAAgBA,QAAM,EACpB,OACA,MACA,OACA,YACA,aACA,UACA,WACA,YACA,MACa;CACb,MAAM,IAAI,YAAY;EAAE;EAAM;CAAM,CAAC;CAErC,OACE,oBAACC,OAAD;EACM;EACG;EACK;EACZ,aAAU;EACV,WAAW,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,YAAY,IAAI,EAAE,CAAC;EAEjE,WAAA,EAAE,iBACF,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,QAAD;GAAM,aAAU;GAAU,WAAW,EAAE,QAAQ,EAAE,OAAO,YAAY,QAAQ,CAAC;GAC1E,UAAA,cACC,oBAAC,QAAD;IACE,aAAU;IACV,WAAW,EAAE,UAAU,EAAE,OAAO,YAAY,UAAU,CAAC;GACxD,CAAA;EAEC,CAAA,GAEL,aAAa,KAAA,KACZ,qBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA,CACE,oBAAC,QAAD;IAAM,aAAU;IAAQ,WAAW,EAAE,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;IACpE;GACG,CAAA,GACL,gBAAgB,KAAA,KACf,oBAAC,QAAD;IACE,aAAU;IACV,WAAW,EAAE,YAAY,EAAE,OAAO,YAAY,YAAY,CAAC;IAE1D,UAAA;GACG,CAAA,CAEJ;EAER,CAAA,CAAA,EAAA,CAAA;CAEI,CAAA;AAEd;;;;;;;;;;AAWA,SAAgBC,aAAW,EACzB,OACA,aACA,cACA,MACA,OACA,cACA,UACA,aACA,YACA,YACA,YACA,WACA,UACA,WACA,YACA,MACkB;CAClB,MAAM,IAAI,iBAAiB,EAAE,YAAY,CAAC;CAE1C,OACE,qBAACC,YAAD;EACM;EACE;EACC;EACO;EACJ;EACE;EACA;EACA;EACD;EACX,aAAU;EACV,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,YAAY,IAAI,EAAE,CAAC;EAX5D,UAAA;GAaG,UAAU,KAAA,KACT,oBAAC,OAAD;IAAO,aAAU;IAAQ,WAAW,EAAE,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;IACrE,UAAA;GACI,CAAA;GAGT,oBAAC,OAAD;IAAK,aAAU;IAAO,WAAW,EAAE,KAAK,EAAE,OAAO,YAAY,KAAK,CAAC;IAChE;GACE,CAAA;GAEJ,gBAAgB,KAAA,KACf,oBAAC,MAAD;IACE,MAAK;IACL,aAAU;IACV,WAAW,EAAE,YAAY,EAAE,OAAO,YAAY,YAAY,CAAC;IAE1D,UAAA;GACG,CAAA;GAGR,oBAAC,YAAD;IACE,aAAU;IACV,WAAW,EAAE,aAAa,EAAE,OAAO,YAAY,aAAa,CAAC;IAE5D,UAAA;GACS,CAAA;EACC;;AAEnB"}