@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,111 @@
1
+ import { VariantMap } from "@novi-ui/core";
2
+ //#region src/radio/radio.styles.d.ts
3
+ /**
4
+ * Radio のスタイル定義。
5
+ *
6
+ * @example
7
+ * const myRadio = tv({ extend: radioStyles, slots: { label: 'font-medium' } })
8
+ */
9
+ declare const radioStyles: import("tailwind-variants").TVReturnType<{
10
+ color: VariantMap<"default" | "primary" | "secondary" | "success" | "warning" | "danger", {
11
+ root: string;
12
+ }>;
13
+ size: VariantMap<"sm" | "md" | "lg", {
14
+ control: string;
15
+ indicator: string;
16
+ label: string;
17
+ }>;
18
+ }, {
19
+ root: string;
20
+ control: string;
21
+ indicator: string;
22
+ label: string;
23
+ description: string;
24
+ }, undefined, {
25
+ color: VariantMap<"default" | "primary" | "secondary" | "success" | "warning" | "danger", {
26
+ root: string;
27
+ }>;
28
+ size: VariantMap<"sm" | "md" | "lg", {
29
+ control: string;
30
+ indicator: string;
31
+ label: string;
32
+ }>;
33
+ }, {
34
+ root: string;
35
+ control: string;
36
+ indicator: string;
37
+ label: string;
38
+ description: string;
39
+ }, import("tailwind-variants").TVReturnTypeLike<{
40
+ color: VariantMap<"default" | "primary" | "secondary" | "success" | "warning" | "danger", {
41
+ root: string;
42
+ }>;
43
+ size: VariantMap<"sm" | "md" | "lg", {
44
+ control: string;
45
+ indicator: string;
46
+ label: string;
47
+ }>;
48
+ }, {
49
+ root: string;
50
+ control: string;
51
+ indicator: string;
52
+ label: string;
53
+ description: string;
54
+ }>>;
55
+ /**
56
+ * RadioGroup のスタイル定義。
57
+ *
58
+ * @example
59
+ * const myGroup = tv({ extend: radioGroupStyles, slots: { list: 'gap-4' } })
60
+ */
61
+ declare const radioGroupStyles: import("tailwind-variants").TVReturnType<{
62
+ orientation: {
63
+ vertical: {
64
+ list: string;
65
+ };
66
+ horizontal: {
67
+ list: string;
68
+ };
69
+ };
70
+ }, {
71
+ root: string;
72
+ label: string;
73
+ list: string;
74
+ description: string;
75
+ errorMessage: string;
76
+ }, undefined, {
77
+ orientation: {
78
+ vertical: {
79
+ list: string;
80
+ };
81
+ horizontal: {
82
+ list: string;
83
+ };
84
+ };
85
+ }, {
86
+ root: string;
87
+ label: string;
88
+ list: string;
89
+ description: string;
90
+ errorMessage: string;
91
+ }, import("tailwind-variants").TVReturnTypeLike<{
92
+ orientation: {
93
+ vertical: {
94
+ list: string;
95
+ };
96
+ horizontal: {
97
+ list: string;
98
+ };
99
+ };
100
+ }, {
101
+ root: string;
102
+ label: string;
103
+ list: string;
104
+ description: string;
105
+ errorMessage: string;
106
+ }>>;
107
+ type RadioStyleProps = Parameters<typeof radioStyles>[0];
108
+ type RadioGroupStyleProps = Parameters<typeof radioGroupStyles>[0];
109
+ //#endregion
110
+ export { RadioGroupStyleProps, RadioStyleProps, radioGroupStyles, radioStyles };
111
+ //# sourceMappingURL=radio.styles.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.styles.d.mts","names":[],"sources":["../../src/radio/radio.styles.ts"],"mappings":";;;;;;;;cAuDa,yCAAW;;IArBmB;;;IASC;IAAmB;IAAe;;;;;;;;;;IATnC;;;IASC;IAAmB;IAAe;;;;;;;;;;IATnC;;;IASC;IAAmB;IAAe;;;;;;;;;;;;;;;cAgCjE,8CAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAWjB,kBAAkB,kBAAkB;KACpC,uBAAuB,kBAAkB"}
@@ -0,0 +1,88 @@
1
+ import { disabledState, focusRing } from "../styles/focus-ring.mjs";
2
+ import { tv } from "tailwind-variants";
3
+ //#region src/radio/radio.styles.ts
4
+ const slots = {
5
+ root: [
6
+ "inline-flex items-start gap-2",
7
+ "cursor-pointer",
8
+ disabledState
9
+ ].join(" "),
10
+ control: [
11
+ "shrink-0 inline-grid place-items-center",
12
+ "border border-[var(--novi-color-border-strong)]",
13
+ "rounded-[var(--novi-radius-full)]",
14
+ "bg-[var(--novi-color-bg)]",
15
+ "transition-[border-color]",
16
+ "duration-[var(--novi-duration-fast)] ease-[var(--novi-ease-standard)]",
17
+ "group-data-[selected]:border-[var(--c)]",
18
+ "group-data-[invalid]:border-[var(--novi-color-danger)]",
19
+ focusRing
20
+ ].join(" "),
21
+ indicator: "rounded-[var(--novi-radius-full)] bg-[var(--c)]",
22
+ label: "text-[var(--novi-color-fg)] leading-[var(--novi-leading-body)]",
23
+ description: "text-[length:var(--novi-text-xs)] text-[var(--novi-color-muted)]"
24
+ };
25
+ /**
26
+ * Radio のスタイル定義。
27
+ *
28
+ * @example
29
+ * const myRadio = tv({ extend: radioStyles, slots: { label: 'font-medium' } })
30
+ */
31
+ const radioStyles = tv({
32
+ slots,
33
+ variants: {
34
+ color: {
35
+ default: { root: "[--c:var(--novi-color-fg)]" },
36
+ primary: { root: "[--c:var(--novi-color-primary)]" },
37
+ secondary: { root: "[--c:var(--novi-color-secondary)]" },
38
+ success: { root: "[--c:var(--novi-color-success)]" },
39
+ warning: { root: "[--c:var(--novi-color-warning)]" },
40
+ danger: { root: "[--c:var(--novi-color-danger)]" }
41
+ },
42
+ size: {
43
+ sm: {
44
+ control: "size-4",
45
+ indicator: "size-1.5",
46
+ label: "text-[length:var(--novi-text-sm)]"
47
+ },
48
+ md: {
49
+ control: "size-5",
50
+ indicator: "size-2",
51
+ label: "text-[length:var(--novi-text-base)]"
52
+ },
53
+ lg: {
54
+ control: "size-6",
55
+ indicator: "size-2.5",
56
+ label: "text-[length:var(--novi-text-base)]"
57
+ }
58
+ }
59
+ },
60
+ defaultVariants: {
61
+ color: "default",
62
+ size: "md"
63
+ }
64
+ });
65
+ /**
66
+ * RadioGroup のスタイル定義。
67
+ *
68
+ * @example
69
+ * const myGroup = tv({ extend: radioGroupStyles, slots: { list: 'gap-4' } })
70
+ */
71
+ const radioGroupStyles = tv({
72
+ slots: {
73
+ root: "flex flex-col gap-2",
74
+ label: "text-[length:var(--novi-text-sm)] font-medium text-[var(--novi-color-fg)]",
75
+ list: "flex flex-col gap-2",
76
+ description: "text-[length:var(--novi-text-xs)] text-[var(--novi-color-muted)]",
77
+ errorMessage: "text-[length:var(--novi-text-xs)] text-[var(--novi-color-danger)]"
78
+ },
79
+ variants: { orientation: {
80
+ vertical: { list: "flex-col gap-2" },
81
+ horizontal: { list: "flex-row gap-4 flex-wrap" }
82
+ } },
83
+ defaultVariants: { orientation: "vertical" }
84
+ });
85
+ //#endregion
86
+ export { radioGroupStyles, radioStyles };
87
+
88
+ //# sourceMappingURL=radio.styles.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.styles.mjs","names":[],"sources":["../../src/radio/radio.styles.ts"],"sourcesContent":["import type {\n NoviColor,\n NoviSize,\n radioGroupRequiredSlots,\n radioGroupSlots,\n radioRequiredSlots,\n radioSlots,\n SlotMap,\n VariantMap,\n} from '@novi-ui/core'\nimport { tv } from 'tailwind-variants'\nimport { disabledState, focusRing } from '../styles/focus-ring'\n\nconst slots = {\n root: ['inline-flex items-start gap-2', 'cursor-pointer', disabledState].join(' '),\n // 円は radius-full を使う数少ない例外。Checkbox(四角)との形の差で\n // 「1つだけ選ぶ」ことを示すため、ここは丸を守る\n control: [\n 'shrink-0 inline-grid place-items-center',\n 'border border-[var(--novi-color-border-strong)]',\n 'rounded-[var(--novi-radius-full)]',\n 'bg-[var(--novi-color-bg)]',\n 'transition-[border-color]',\n 'duration-[var(--novi-duration-fast)] ease-[var(--novi-ease-standard)]',\n 'group-data-[selected]:border-[var(--c)]',\n 'group-data-[invalid]:border-[var(--novi-color-danger)]',\n focusRing,\n ].join(' '),\n // 内側のドットで選択を示す。塗りつぶしにしない\n indicator: 'rounded-[var(--novi-radius-full)] bg-[var(--c)]',\n label: 'text-[var(--novi-color-fg)] leading-[var(--novi-leading-body)]',\n description: 'text-[length:var(--novi-text-xs)] text-[var(--novi-color-muted)]',\n} satisfies SlotMap<typeof radioSlots, (typeof radioRequiredSlots)[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, { control: string; indicator: string; label: string }> = {\n sm: { control: 'size-4', indicator: 'size-1.5', label: 'text-[length:var(--novi-text-sm)]' },\n md: { control: 'size-5', indicator: 'size-2', label: 'text-[length:var(--novi-text-base)]' },\n lg: { control: 'size-6', indicator: 'size-2.5', label: 'text-[length:var(--novi-text-base)]' },\n}\n\n/**\n * Radio のスタイル定義。\n *\n * @example\n * const myRadio = tv({ extend: radioStyles, slots: { label: 'font-medium' } })\n */\nexport const radioStyles = tv({\n slots,\n variants: { color, size },\n defaultVariants: { color: 'default', size: 'md' },\n})\n\nconst groupSlots = {\n root: 'flex flex-col gap-2',\n label: 'text-[length:var(--novi-text-sm)] font-medium text-[var(--novi-color-fg)]',\n list: 'flex flex-col gap-2',\n description: 'text-[length:var(--novi-text-xs)] text-[var(--novi-color-muted)]',\n errorMessage: 'text-[length:var(--novi-text-xs)] text-[var(--novi-color-danger)]',\n} satisfies SlotMap<typeof radioGroupSlots, (typeof radioGroupRequiredSlots)[number]>\n\n/**\n * RadioGroup のスタイル定義。\n *\n * @example\n * const myGroup = tv({ extend: radioGroupStyles, slots: { list: 'gap-4' } })\n */\nexport const radioGroupStyles = tv({\n slots: groupSlots,\n variants: {\n orientation: {\n vertical: { list: 'flex-col gap-2' },\n horizontal: { list: 'flex-row gap-4 flex-wrap' },\n },\n },\n defaultVariants: { orientation: 'vertical' },\n})\n\nexport type RadioStyleProps = Parameters<typeof radioStyles>[0]\nexport type RadioGroupStyleProps = Parameters<typeof radioGroupStyles>[0]\n"],"mappings":";;;AAaA,MAAM,QAAQ;CACZ,MAAM;EAAC;EAAiC;EAAkB;CAAa,CAAC,CAAC,KAAK,GAAG;CAGjF,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,CAAC,KAAK,GAAG;CAEV,WAAW;CACX,OAAO;CACP,aAAa;AACf;;;;;;;AAuBA,MAAa,cAAc,GAAG;CAC5B;CACA,UAAU;EAAE;GAtBZ,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;EAiBrC;EAAO;GAbnB,IAAI;IAAE,SAAS;IAAU,WAAW;IAAY,OAAO;GAAoC;GAC3F,IAAI;IAAE,SAAS;IAAU,WAAW;IAAU,OAAO;GAAsC;GAC3F,IAAI;IAAE,SAAS;IAAU,WAAW;IAAY,OAAO;GAAsC;EAW1E;CAAK;CACxB,iBAAiB;EAAE,OAAO;EAAW,MAAM;CAAK;AAClD,CAAC;;;;;;;AAgBD,MAAa,mBAAmB,GAAG;CACjC,OAAO;EAdP,MAAM;EACN,OAAO;EACP,MAAM;EACN,aAAa;EACb,cAAc;CAUP;CACP,UAAU,EACR,aAAa;EACX,UAAU,EAAE,MAAM,iBAAiB;EACnC,YAAY,EAAE,MAAM,2BAA2B;CACjD,EACF;CACA,iBAAiB,EAAE,aAAa,WAAW;AAC7C,CAAC"}
@@ -0,0 +1,92 @@
1
+ /* 自動生成。編集しないこと。src/tokens/raster-tokens.ts を変更して再生成する。 */
2
+
3
+ @layer novi.base {
4
+ :root {
5
+ --novi-radius-none: 0px;
6
+ --novi-radius-sm: 2px;
7
+ --novi-radius-md: 2px;
8
+ --novi-radius-lg: 2px;
9
+ --novi-radius-full: 9999px;
10
+ --novi-shadow-none: none;
11
+ --novi-shadow-sm: none;
12
+ --novi-shadow-md: none;
13
+ --novi-shadow-lg: none;
14
+ --novi-text-xs: 12px;
15
+ --novi-text-sm: 14px;
16
+ --novi-text-base: 16px;
17
+ --novi-text-lg: 20px;
18
+ --novi-text-xl: 24px;
19
+ --novi-text-2xl: 30px;
20
+ --novi-text-3xl: 36px;
21
+ --novi-duration-fast: 120ms;
22
+ --novi-duration-base: 120ms;
23
+ --novi-duration-slow: 120ms;
24
+ --novi-ease-standard: cubic-bezier(0.2, 0, 0, 1);
25
+ --novi-ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
26
+ --novi-color-bg: oklch(99% 0 0);
27
+ --novi-color-subtle: oklch(96% 0 0);
28
+ --novi-color-fg: oklch(20% 0 0);
29
+ --novi-color-muted: oklch(48% 0 0);
30
+ --novi-color-border: oklch(88% 0 0);
31
+ --novi-color-border-strong: oklch(58% 0 0);
32
+ --novi-color-overlay: oklch(20% 0 0 / 0.45);
33
+ --novi-color-default: oklch(96% 0 0);
34
+ --novi-color-default-fg: oklch(20% 0 0);
35
+ --novi-color-primary: oklch(48% 0.18 250);
36
+ --novi-color-primary-fg: oklch(99% 0 0);
37
+ --novi-color-secondary: oklch(46% 0.16 300);
38
+ --novi-color-secondary-fg: oklch(99% 0 0);
39
+ --novi-color-success: oklch(45% 0.13 150);
40
+ --novi-color-success-fg: oklch(99% 0 0);
41
+ --novi-color-warning: oklch(45% 0.12 70);
42
+ --novi-color-warning-fg: oklch(99% 0 0);
43
+ --novi-color-danger: oklch(48% 0.19 25);
44
+ --novi-color-danger-fg: oklch(99% 0 0);
45
+ }
46
+
47
+ [data-novi-scheme='dark'] {
48
+ --novi-color-bg: oklch(16% 0 0);
49
+ --novi-color-subtle: oklch(21% 0 0);
50
+ --novi-color-fg: oklch(95% 0 0);
51
+ --novi-color-muted: oklch(72% 0 0);
52
+ --novi-color-border: oklch(28% 0 0);
53
+ --novi-color-border-strong: oklch(55% 0 0);
54
+ --novi-color-overlay: oklch(10% 0 0 / 0.6);
55
+ --novi-color-default: oklch(25% 0 0);
56
+ --novi-color-default-fg: oklch(95% 0 0);
57
+ --novi-color-primary: oklch(74% 0.14 250);
58
+ --novi-color-primary-fg: oklch(16% 0 0);
59
+ --novi-color-secondary: oklch(74% 0.13 300);
60
+ --novi-color-secondary-fg: oklch(16% 0 0);
61
+ --novi-color-success: oklch(76% 0.13 150);
62
+ --novi-color-success-fg: oklch(16% 0 0);
63
+ --novi-color-warning: oklch(82% 0.12 70);
64
+ --novi-color-warning-fg: oklch(16% 0 0);
65
+ --novi-color-danger: oklch(72% 0.16 25);
66
+ --novi-color-danger-fg: oklch(16% 0 0);
67
+ }
68
+
69
+ @media (prefers-color-scheme: dark) {
70
+ :root:not([data-novi-scheme='light']) {
71
+ --novi-color-bg: oklch(16% 0 0);
72
+ --novi-color-subtle: oklch(21% 0 0);
73
+ --novi-color-fg: oklch(95% 0 0);
74
+ --novi-color-muted: oklch(72% 0 0);
75
+ --novi-color-border: oklch(28% 0 0);
76
+ --novi-color-border-strong: oklch(55% 0 0);
77
+ --novi-color-overlay: oklch(10% 0 0 / 0.6);
78
+ --novi-color-default: oklch(25% 0 0);
79
+ --novi-color-default-fg: oklch(95% 0 0);
80
+ --novi-color-primary: oklch(74% 0.14 250);
81
+ --novi-color-primary-fg: oklch(16% 0 0);
82
+ --novi-color-secondary: oklch(74% 0.13 300);
83
+ --novi-color-secondary-fg: oklch(16% 0 0);
84
+ --novi-color-success: oklch(76% 0.13 150);
85
+ --novi-color-success-fg: oklch(16% 0 0);
86
+ --novi-color-warning: oklch(82% 0.12 70);
87
+ --novi-color-warning-fg: oklch(16% 0 0);
88
+ --novi-color-danger: oklch(72% 0.16 25);
89
+ --novi-color-danger-fg: oklch(16% 0 0);
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,92 @@
1
+ /* 自動生成。編集しないこと。src/tokens/raster-tokens.ts を変更して再生成する。 */
2
+
3
+ @layer novi.base {
4
+ [data-novi-theme='raster'] {
5
+ --novi-radius-none: 0px;
6
+ --novi-radius-sm: 2px;
7
+ --novi-radius-md: 2px;
8
+ --novi-radius-lg: 2px;
9
+ --novi-radius-full: 9999px;
10
+ --novi-shadow-none: none;
11
+ --novi-shadow-sm: none;
12
+ --novi-shadow-md: none;
13
+ --novi-shadow-lg: none;
14
+ --novi-text-xs: 12px;
15
+ --novi-text-sm: 14px;
16
+ --novi-text-base: 16px;
17
+ --novi-text-lg: 20px;
18
+ --novi-text-xl: 24px;
19
+ --novi-text-2xl: 30px;
20
+ --novi-text-3xl: 36px;
21
+ --novi-duration-fast: 120ms;
22
+ --novi-duration-base: 120ms;
23
+ --novi-duration-slow: 120ms;
24
+ --novi-ease-standard: cubic-bezier(0.2, 0, 0, 1);
25
+ --novi-ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
26
+ --novi-color-bg: oklch(99% 0 0);
27
+ --novi-color-subtle: oklch(96% 0 0);
28
+ --novi-color-fg: oklch(20% 0 0);
29
+ --novi-color-muted: oklch(48% 0 0);
30
+ --novi-color-border: oklch(88% 0 0);
31
+ --novi-color-border-strong: oklch(58% 0 0);
32
+ --novi-color-overlay: oklch(20% 0 0 / 0.45);
33
+ --novi-color-default: oklch(96% 0 0);
34
+ --novi-color-default-fg: oklch(20% 0 0);
35
+ --novi-color-primary: oklch(48% 0.18 250);
36
+ --novi-color-primary-fg: oklch(99% 0 0);
37
+ --novi-color-secondary: oklch(46% 0.16 300);
38
+ --novi-color-secondary-fg: oklch(99% 0 0);
39
+ --novi-color-success: oklch(45% 0.13 150);
40
+ --novi-color-success-fg: oklch(99% 0 0);
41
+ --novi-color-warning: oklch(45% 0.12 70);
42
+ --novi-color-warning-fg: oklch(99% 0 0);
43
+ --novi-color-danger: oklch(48% 0.19 25);
44
+ --novi-color-danger-fg: oklch(99% 0 0);
45
+ }
46
+
47
+ [data-novi-theme='raster'][data-novi-scheme='dark'] {
48
+ --novi-color-bg: oklch(16% 0 0);
49
+ --novi-color-subtle: oklch(21% 0 0);
50
+ --novi-color-fg: oklch(95% 0 0);
51
+ --novi-color-muted: oklch(72% 0 0);
52
+ --novi-color-border: oklch(28% 0 0);
53
+ --novi-color-border-strong: oklch(55% 0 0);
54
+ --novi-color-overlay: oklch(10% 0 0 / 0.6);
55
+ --novi-color-default: oklch(25% 0 0);
56
+ --novi-color-default-fg: oklch(95% 0 0);
57
+ --novi-color-primary: oklch(74% 0.14 250);
58
+ --novi-color-primary-fg: oklch(16% 0 0);
59
+ --novi-color-secondary: oklch(74% 0.13 300);
60
+ --novi-color-secondary-fg: oklch(16% 0 0);
61
+ --novi-color-success: oklch(76% 0.13 150);
62
+ --novi-color-success-fg: oklch(16% 0 0);
63
+ --novi-color-warning: oklch(82% 0.12 70);
64
+ --novi-color-warning-fg: oklch(16% 0 0);
65
+ --novi-color-danger: oklch(72% 0.16 25);
66
+ --novi-color-danger-fg: oklch(16% 0 0);
67
+ }
68
+
69
+ @media (prefers-color-scheme: dark) {
70
+ [data-novi-theme='raster']:not([data-novi-scheme='light']) {
71
+ --novi-color-bg: oklch(16% 0 0);
72
+ --novi-color-subtle: oklch(21% 0 0);
73
+ --novi-color-fg: oklch(95% 0 0);
74
+ --novi-color-muted: oklch(72% 0 0);
75
+ --novi-color-border: oklch(28% 0 0);
76
+ --novi-color-border-strong: oklch(55% 0 0);
77
+ --novi-color-overlay: oklch(10% 0 0 / 0.6);
78
+ --novi-color-default: oklch(25% 0 0);
79
+ --novi-color-default-fg: oklch(95% 0 0);
80
+ --novi-color-primary: oklch(74% 0.14 250);
81
+ --novi-color-primary-fg: oklch(16% 0 0);
82
+ --novi-color-secondary: oklch(74% 0.13 300);
83
+ --novi-color-secondary-fg: oklch(16% 0 0);
84
+ --novi-color-success: oklch(76% 0.13 150);
85
+ --novi-color-success-fg: oklch(16% 0 0);
86
+ --novi-color-warning: oklch(82% 0.12 70);
87
+ --novi-color-warning-fg: oklch(16% 0 0);
88
+ --novi-color-danger: oklch(72% 0.16 25);
89
+ --novi-color-danger-fg: oklch(16% 0 0);
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,3 @@
1
+ import { Select, SelectItem, SelectItemProps } from "./select.mjs";
2
+ import { SelectStyleProps, selectStyles } from "./select.styles.mjs";
3
+ export { Select, SelectItem, type SelectItemProps, type SelectStyleProps, selectStyles };
@@ -0,0 +1,33 @@
1
+ import { ReactNode } from "react";
2
+ import { SelectProps } from "@novi-ui/core";
3
+ //#region src/select/select.d.ts
4
+ interface SelectItemProps {
5
+ /** 選択値。`onSelectionChange` に渡る */
6
+ id: string;
7
+ isDisabled?: boolean;
8
+ children?: ReactNode;
9
+ className?: string;
10
+ }
11
+ /**
12
+ * Select の選択肢。`Select` の子として置く。
13
+ *
14
+ * @example
15
+ * <SelectItem id="tokyo">東京都</SelectItem>
16
+ */
17
+ declare function SelectItem({ id, isDisabled, children, className }: SelectItemProps): import("react").JSX.Element;
18
+ /**
19
+ * 一覧から1つ選ぶ。矢印キーで移動、Escape で閉じてトリガーへフォーカスが戻る。
20
+ *
21
+ * トリガーは `<button>` で編集可能要素ではないため IME の変換は発生しない。
22
+ * テキスト入力を伴う選択が必要な場合は ComboBox を使う(MVP の対象外)。
23
+ *
24
+ * @example
25
+ * <Select label="都道府県" selectedKey={pref} onSelectionChange={setPref}>
26
+ * <SelectItem id="tokyo">東京都</SelectItem>
27
+ * <SelectItem id="osaka">大阪府</SelectItem>
28
+ * </Select>
29
+ */
30
+ declare function Select({ variant, size, radius, label, placeholder, description, errorMessage, name, selectedKey, defaultSelectedKey, onSelectionChange, isOpen, defaultOpen, onOpenChange, isDisabled, isRequired, isInvalid, children, className, classNames, id }: SelectProps): import("react").JSX.Element;
31
+ //#endregion
32
+ export { Select, SelectItem, SelectItemProps };
33
+ //# sourceMappingURL=select.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.mts","names":[],"sources":["../../src/select/select.tsx"],"mappings":";;;UA0BiB;;EAEf;EACA;EACA,WAAW;EACX;;;;;;;;iBASc,aAAa,IAAI,YAAY,UAAU,aAAa,kCAAe,IAAA;;;;;;;;;;;;;iBA0BnE,SACd,SACA,MACA,QACA,OACA,aACA,aACA,cACA,MACA,aACA,oBACA,mBACA,QACA,aACA,cACA,YACA,YACA,WACA,UACA,WACA,YACA,MACC,8BAAW,IAAA"}
@@ -0,0 +1,114 @@
1
+ "use client";
2
+ import { selectStyles } from "./select.styles.mjs";
3
+ import { Button, FieldError, Label, ListBox, ListBoxItem, Popover, Select, SelectValue, Text } from "react-aria-components";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/select/select.tsx
6
+ /** 開閉を示す記号。三角矢印を回転させず、上下の線で描く(Raster の規律)。 */
7
+ function TriggerIcon() {
8
+ return /* @__PURE__ */ jsx("svg", {
9
+ viewBox: "0 0 16 16",
10
+ width: "0.75em",
11
+ height: "0.75em",
12
+ fill: "none",
13
+ "aria-hidden": "true",
14
+ children: /* @__PURE__ */ jsx("path", {
15
+ d: "M4 6.5l4 4 4-4",
16
+ stroke: "currentColor",
17
+ strokeWidth: "1.5"
18
+ })
19
+ });
20
+ }
21
+ /**
22
+ * Select の選択肢。`Select` の子として置く。
23
+ *
24
+ * @example
25
+ * <SelectItem id="tokyo">東京都</SelectItem>
26
+ */
27
+ function SelectItem({ id, isDisabled, children, className }) {
28
+ return /* @__PURE__ */ jsx(ListBoxItem, {
29
+ id,
30
+ isDisabled,
31
+ textValue: typeof children === "string" ? children : void 0,
32
+ "data-slot": "option",
33
+ className: className ?? selectStyles().option(),
34
+ children
35
+ });
36
+ }
37
+ /**
38
+ * 一覧から1つ選ぶ。矢印キーで移動、Escape で閉じてトリガーへフォーカスが戻る。
39
+ *
40
+ * トリガーは `<button>` で編集可能要素ではないため IME の変換は発生しない。
41
+ * テキスト入力を伴う選択が必要な場合は ComboBox を使う(MVP の対象外)。
42
+ *
43
+ * @example
44
+ * <Select label="都道府県" selectedKey={pref} onSelectionChange={setPref}>
45
+ * <SelectItem id="tokyo">東京都</SelectItem>
46
+ * <SelectItem id="osaka">大阪府</SelectItem>
47
+ * </Select>
48
+ */
49
+ function Select$1({ variant, size, radius, label, placeholder = "選択してください", description, errorMessage, name, selectedKey, defaultSelectedKey, onSelectionChange, isOpen, defaultOpen, onOpenChange, isDisabled, isRequired, isInvalid, children, className, classNames, id }) {
50
+ const s = selectStyles({
51
+ variant,
52
+ size,
53
+ radius
54
+ });
55
+ return /* @__PURE__ */ jsxs(Select, {
56
+ id,
57
+ name,
58
+ selectedKey,
59
+ defaultSelectedKey,
60
+ onSelectionChange: (key) => onSelectionChange?.(key === null ? null : String(key)),
61
+ isOpen,
62
+ defaultOpen,
63
+ onOpenChange,
64
+ isDisabled,
65
+ isRequired,
66
+ isInvalid,
67
+ placeholder,
68
+ "data-slot": "root",
69
+ className: `group ${s.root({ class: [className, classNames?.root] })}`,
70
+ children: [
71
+ label !== void 0 && /* @__PURE__ */ jsx(Label, {
72
+ "data-slot": "label",
73
+ className: s.label({ class: classNames?.label }),
74
+ children: label
75
+ }),
76
+ /* @__PURE__ */ jsxs(Button, {
77
+ "data-slot": "trigger",
78
+ className: s.trigger({ class: classNames?.trigger }),
79
+ children: [/* @__PURE__ */ jsx(SelectValue, {
80
+ "data-slot": "value",
81
+ className: s.value({ class: classNames?.value })
82
+ }), /* @__PURE__ */ jsx("span", {
83
+ "data-slot": "icon",
84
+ className: s.icon({ class: classNames?.icon }),
85
+ children: /* @__PURE__ */ jsx(TriggerIcon, {})
86
+ })]
87
+ }),
88
+ description !== void 0 && /* @__PURE__ */ jsx(Text, {
89
+ slot: "description",
90
+ "data-slot": "description",
91
+ className: s.description({ class: classNames?.description }),
92
+ children: description
93
+ }),
94
+ /* @__PURE__ */ jsx(FieldError, {
95
+ "data-slot": "errorMessage",
96
+ className: s.errorMessage({ class: classNames?.errorMessage }),
97
+ children: errorMessage
98
+ }),
99
+ /* @__PURE__ */ jsx(Popover, {
100
+ "data-slot": "popover",
101
+ className: s.popover({ class: classNames?.popover }),
102
+ children: /* @__PURE__ */ jsx(ListBox, {
103
+ "data-slot": "listbox",
104
+ className: s.listbox({ class: classNames?.listbox }),
105
+ children
106
+ })
107
+ })
108
+ ]
109
+ });
110
+ }
111
+ //#endregion
112
+ export { Select$1 as Select, SelectItem };
113
+
114
+ //# sourceMappingURL=select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.mjs","names":["Select","RACSelect"],"sources":["../../src/select/select.tsx"],"sourcesContent":["'use client'\n\nimport type { SelectProps } from '@novi-ui/core'\nimport type { ReactNode } from 'react'\nimport {\n Button,\n FieldError,\n Label,\n ListBox,\n ListBoxItem,\n Popover,\n Select as RACSelect,\n SelectValue,\n Text,\n} from 'react-aria-components'\nimport { selectStyles } from './select.styles'\n\n/** 開閉を示す記号。三角矢印を回転させず、上下の線で描く(Raster の規律)。 */\nfunction TriggerIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"0.75em\" height=\"0.75em\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 6.5l4 4 4-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n )\n}\n\nexport interface SelectItemProps {\n /** 選択値。`onSelectionChange` に渡る */\n id: string\n isDisabled?: boolean\n children?: ReactNode\n className?: string\n}\n\n/**\n * Select の選択肢。`Select` の子として置く。\n *\n * @example\n * <SelectItem id=\"tokyo\">東京都</SelectItem>\n */\nexport function SelectItem({ id, isDisabled, children, className }: SelectItemProps) {\n return (\n <ListBoxItem\n id={id}\n isDisabled={isDisabled}\n textValue={typeof children === 'string' ? children : undefined}\n data-slot=\"option\"\n className={className ?? selectStyles().option()}\n >\n {children}\n </ListBoxItem>\n )\n}\n\n/**\n * 一覧から1つ選ぶ。矢印キーで移動、Escape で閉じてトリガーへフォーカスが戻る。\n *\n * トリガーは `<button>` で編集可能要素ではないため IME の変換は発生しない。\n * テキスト入力を伴う選択が必要な場合は ComboBox を使う(MVP の対象外)。\n *\n * @example\n * <Select label=\"都道府県\" selectedKey={pref} onSelectionChange={setPref}>\n * <SelectItem id=\"tokyo\">東京都</SelectItem>\n * <SelectItem id=\"osaka\">大阪府</SelectItem>\n * </Select>\n */\nexport function Select({\n variant,\n size,\n radius,\n label,\n placeholder = '選択してください',\n description,\n errorMessage,\n name,\n selectedKey,\n defaultSelectedKey,\n onSelectionChange,\n isOpen,\n defaultOpen,\n onOpenChange,\n isDisabled,\n isRequired,\n isInvalid,\n children,\n className,\n classNames,\n id,\n}: SelectProps) {\n const s = selectStyles({ variant, size, radius })\n\n return (\n <RACSelect\n id={id}\n name={name}\n selectedKey={selectedKey}\n defaultSelectedKey={defaultSelectedKey}\n onSelectionChange={(key) => onSelectionChange?.(key === null ? null : String(key))}\n isOpen={isOpen}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isInvalid={isInvalid}\n placeholder={placeholder}\n data-slot=\"root\"\n // trigger 側から invalid 状態を参照するために group を付ける\n className={`group ${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 <Button data-slot=\"trigger\" className={s.trigger({ class: classNames?.trigger })}>\n <SelectValue data-slot=\"value\" className={s.value({ class: classNames?.value })} />\n <span data-slot=\"icon\" className={s.icon({ class: classNames?.icon })}>\n <TriggerIcon />\n </span>\n </Button>\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\n <Popover data-slot=\"popover\" className={s.popover({ class: classNames?.popover })}>\n <ListBox data-slot=\"listbox\" className={s.listbox({ class: classNames?.listbox })}>\n {children}\n </ListBox>\n </Popover>\n </RACSelect>\n )\n}\n"],"mappings":";;;;;;AAkBA,SAAS,cAAc;CACrB,OACE,oBAAC,OAAD;EAAK,SAAQ;EAAY,OAAM;EAAS,QAAO;EAAS,MAAK;EAAO,eAAY;EAC9E,UAAA,oBAAC,QAAD;GAAM,GAAE;GAAiB,QAAO;GAAe,aAAY;EAAO,CAAA;CAC/D,CAAA;AAET;;;;;;;AAgBA,SAAgB,WAAW,EAAE,IAAI,YAAY,UAAU,aAA8B;CACnF,OACE,oBAAC,aAAD;EACM;EACQ;EACZ,WAAW,OAAO,aAAa,WAAW,WAAW,KAAA;EACrD,aAAU;EACV,WAAW,aAAa,aAAa,CAAC,CAAC,OAAO;EAE7C;CACU,CAAA;AAEjB;;;;;;;;;;;;;AAcA,SAAgBA,SAAO,EACrB,SACA,MACA,QACA,OACA,cAAc,YACd,aACA,cACA,MACA,aACA,oBACA,mBACA,QACA,aACA,cACA,YACA,YACA,WACA,UACA,WACA,YACA,MACc;CACd,MAAM,IAAI,aAAa;EAAE;EAAS;EAAM;CAAO,CAAC;CAEhD,OACE,qBAACC,QAAD;EACM;EACE;EACO;EACO;EACpB,oBAAoB,QAAQ,oBAAoB,QAAQ,OAAO,OAAO,OAAO,GAAG,CAAC;EACzE;EACK;EACC;EACF;EACA;EACD;EACE;EACb,aAAU;EAEV,WAAW,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,YAAY,IAAI,EAAE,CAAC;EAfrE,UAAA;GAiBG,UAAU,KAAA,KACT,oBAAC,OAAD;IAAO,aAAU;IAAQ,WAAW,EAAE,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;IACrE,UAAA;GACI,CAAA;GAGT,qBAAC,QAAD;IAAQ,aAAU;IAAU,WAAW,EAAE,QAAQ,EAAE,OAAO,YAAY,QAAQ,CAAC;IAA/E,UAAA,CACE,oBAAC,aAAD;KAAa,aAAU;KAAQ,WAAW,EAAE,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;IAAI,CAAA,GAClF,oBAAC,QAAD;KAAM,aAAU;KAAO,WAAW,EAAE,KAAK,EAAE,OAAO,YAAY,KAAK,CAAC;KAClE,UAAA,oBAAC,aAAD,CAAc,CAAA;IACV,CAAA,CACA;;GAEP,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;GAEZ,oBAAC,SAAD;IAAS,aAAU;IAAU,WAAW,EAAE,QAAQ,EAAE,OAAO,YAAY,QAAQ,CAAC;IAC9E,UAAA,oBAAC,SAAD;KAAS,aAAU;KAAU,WAAW,EAAE,QAAQ,EAAE,OAAO,YAAY,QAAQ,CAAC;KAC7E;IACM,CAAA;GACF,CAAA;EACA;;AAEf"}
@@ -0,0 +1,82 @@
1
+ import { VariantMap } from "@novi-ui/core";
2
+ //#region src/select/select.styles.d.ts
3
+ /**
4
+ * Select のスタイル定義。
5
+ *
6
+ * @example
7
+ * import { selectStyles } from '@novi-ui/raster'
8
+ * import { tv } from 'tailwind-variants'
9
+ *
10
+ * const mySelect = tv({ extend: selectStyles, slots: { popover: 'max-h-96' } })
11
+ */
12
+ declare const selectStyles: import("tailwind-variants").TVReturnType<{
13
+ variant: VariantMap<"solid" | "outline" | "soft" | "ghost" | "plain", {
14
+ trigger: string;
15
+ }>;
16
+ size: VariantMap<"sm" | "md" | "lg", {
17
+ trigger: string;
18
+ option: string;
19
+ }>;
20
+ radius: VariantMap<"sm" | "md" | "lg" | "none" | "full", {
21
+ trigger: string;
22
+ }>;
23
+ }, {
24
+ root: string;
25
+ label: string;
26
+ trigger: string;
27
+ value: string;
28
+ icon: string;
29
+ popover: string;
30
+ listbox: string;
31
+ option: string;
32
+ description: string;
33
+ errorMessage: string;
34
+ }, undefined, {
35
+ variant: VariantMap<"solid" | "outline" | "soft" | "ghost" | "plain", {
36
+ trigger: string;
37
+ }>;
38
+ size: VariantMap<"sm" | "md" | "lg", {
39
+ trigger: string;
40
+ option: string;
41
+ }>;
42
+ radius: VariantMap<"sm" | "md" | "lg" | "none" | "full", {
43
+ trigger: string;
44
+ }>;
45
+ }, {
46
+ root: string;
47
+ label: string;
48
+ trigger: string;
49
+ value: string;
50
+ icon: string;
51
+ popover: string;
52
+ listbox: string;
53
+ option: string;
54
+ description: string;
55
+ errorMessage: string;
56
+ }, import("tailwind-variants").TVReturnTypeLike<{
57
+ variant: VariantMap<"solid" | "outline" | "soft" | "ghost" | "plain", {
58
+ trigger: string;
59
+ }>;
60
+ size: VariantMap<"sm" | "md" | "lg", {
61
+ trigger: string;
62
+ option: string;
63
+ }>;
64
+ radius: VariantMap<"sm" | "md" | "lg" | "none" | "full", {
65
+ trigger: string;
66
+ }>;
67
+ }, {
68
+ root: string;
69
+ label: string;
70
+ trigger: string;
71
+ value: string;
72
+ icon: string;
73
+ popover: string;
74
+ listbox: string;
75
+ option: string;
76
+ description: string;
77
+ errorMessage: string;
78
+ }>>;
79
+ type SelectStyleProps = Parameters<typeof selectStyles>[0];
80
+ //#endregion
81
+ export { SelectStyleProps, selectStyles };
82
+ //# sourceMappingURL=select.styles.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.styles.d.mts","names":[],"sources":["../../src/select/select.styles.ts"],"mappings":";;;;;;;;;;;cAsGa,0CAAY;;IA3CyB;;;IAWN;IAAgB;;;IAeZ;;;;;;;;;;;;;;;IA1BE;;;IAWN;IAAgB;;;IAeZ;;;;;;;;;;;;;;;IA1BE;;;IAWN;IAAgB;;;IAeZ;;;;;;;;;;;;;;KAuBpC,mBAAmB,kBAAkB"}