@godxjp/ui 16.7.0 → 16.7.2

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 (143) hide show
  1. package/dist/app/app-provider.js +1 -0
  2. package/dist/app/locales.js +1 -0
  3. package/dist/app/use-formatting.js +1 -0
  4. package/dist/components/charts/area-chart.js +1 -0
  5. package/dist/components/charts/bar-chart.js +1 -0
  6. package/dist/components/charts/chart-cartesian.js +1 -0
  7. package/dist/components/charts/chart-frame.js +1 -0
  8. package/dist/components/charts/line-chart.js +1 -0
  9. package/dist/components/charts/pie-chart.js +1 -0
  10. package/dist/components/data-display/accordion.js +1 -0
  11. package/dist/components/data-display/avatar.js +1 -0
  12. package/dist/components/data-display/badge.js +1 -0
  13. package/dist/components/data-display/carousel.js +1 -0
  14. package/dist/components/data-display/collapsible.js +1 -0
  15. package/dist/components/data-display/data-table.js +1 -0
  16. package/dist/components/data-display/descriptions.js +1 -0
  17. package/dist/components/data-display/hover-card.js +1 -0
  18. package/dist/components/data-display/popover.js +1 -0
  19. package/dist/components/data-display/progress.js +1 -0
  20. package/dist/components/data-display/scroll-area.js +1 -0
  21. package/dist/components/data-display/tree-list.js +1 -0
  22. package/dist/components/data-entry/calendar.js +1 -0
  23. package/dist/components/data-entry/cascader.js +1 -0
  24. package/dist/components/data-entry/checkbox-group.js +1 -0
  25. package/dist/components/data-entry/checkbox.js +1 -0
  26. package/dist/components/data-entry/color-picker.js +1 -0
  27. package/dist/components/data-entry/command.js +1 -0
  28. package/dist/components/data-entry/date-picker.js +1 -0
  29. package/dist/components/data-entry/date-range-picker.js +2 -1
  30. package/dist/components/data-entry/field.js +1 -0
  31. package/dist/components/data-entry/form-field.js +1 -0
  32. package/dist/components/data-entry/form.js +1 -0
  33. package/dist/components/data-entry/input-otp.js +1 -0
  34. package/dist/components/data-entry/input.js +2 -1
  35. package/dist/components/data-entry/label.js +1 -0
  36. package/dist/components/data-entry/month-picker.js +2 -1
  37. package/dist/components/data-entry/month-range-picker.js +2 -1
  38. package/dist/components/data-entry/number-input.js +1 -0
  39. package/dist/components/data-entry/password-input.js +1 -0
  40. package/dist/components/data-entry/password-strength.js +1 -0
  41. package/dist/components/data-entry/radio.js +1 -0
  42. package/dist/components/data-entry/rating.js +1 -0
  43. package/dist/components/data-entry/search-input.js +1 -0
  44. package/dist/components/data-entry/search-select.js +1 -0
  45. package/dist/components/data-entry/select.js +1 -0
  46. package/dist/components/data-entry/slider.js +1 -0
  47. package/dist/components/data-entry/switch.js +1 -0
  48. package/dist/components/data-entry/tag-input.js +1 -0
  49. package/dist/components/data-entry/textarea.js +1 -0
  50. package/dist/components/data-entry/time-picker.js +1 -0
  51. package/dist/components/data-entry/toggle-group.js +1 -0
  52. package/dist/components/data-entry/toggle.js +1 -0
  53. package/dist/components/data-entry/transfer.js +1 -0
  54. package/dist/components/data-entry/tree-select.js +1 -0
  55. package/dist/components/data-entry/upload-crop-dialog.js +1 -0
  56. package/dist/components/data-entry/upload.js +1 -0
  57. package/dist/components/data-entry/use-upload-draft.js +1 -0
  58. package/dist/components/feedback/alert.js +1 -0
  59. package/dist/components/feedback/dialog.js +1 -0
  60. package/dist/components/feedback/sheet.js +1 -0
  61. package/dist/components/feedback/sonner.js +1 -0
  62. package/dist/components/feedback/tooltip.js +1 -0
  63. package/dist/components/feedback/use-toast.js +1 -0
  64. package/dist/components/general/button.js +4 -2
  65. package/dist/components/layout/app-shell.js +1 -0
  66. package/dist/components/layout/aspect-ratio.js +1 -0
  67. package/dist/components/layout/breadcrumb.js +1 -0
  68. package/dist/components/layout/page-container.js +1 -0
  69. package/dist/components/layout/resizable.js +1 -0
  70. package/dist/components/layout/separator.js +1 -0
  71. package/dist/components/layout/sidebar.js +1 -0
  72. package/dist/components/navigation/app-setting-picker.js +1 -0
  73. package/dist/components/navigation/context-menu.js +1 -0
  74. package/dist/components/navigation/dropdown-menu.js +1 -0
  75. package/dist/components/navigation/filter-bar.js +1 -0
  76. package/dist/components/navigation/menubar.js +1 -0
  77. package/dist/components/navigation/navigation-menu.js +1 -0
  78. package/dist/components/navigation/pagination.js +1 -0
  79. package/dist/components/navigation/steps.js +1 -0
  80. package/dist/components/navigation/tabs.js +1 -0
  81. package/dist/components/query/data-state.js +1 -0
  82. package/dist/components/query/infinite-query-state.js +1 -0
  83. package/dist/components/query/mutation-feedback.js +1 -0
  84. package/dist/components/query/prefetch-link.js +1 -0
  85. package/dist/components/query/query-refetch-button.js +1 -0
  86. package/dist/components/ui/accordion.js +1 -0
  87. package/dist/components/ui/alert-dialog.js +1 -0
  88. package/dist/components/ui/alert.js +1 -0
  89. package/dist/components/ui/aspect-ratio.js +1 -0
  90. package/dist/components/ui/avatar.js +1 -0
  91. package/dist/components/ui/badge.js +1 -0
  92. package/dist/components/ui/button.js +1 -0
  93. package/dist/components/ui/calendar.js +1 -0
  94. package/dist/components/ui/carousel.js +1 -0
  95. package/dist/components/ui/checkbox.js +1 -0
  96. package/dist/components/ui/color-picker.js +1 -0
  97. package/dist/components/ui/command.js +1 -0
  98. package/dist/components/ui/context-menu.js +1 -0
  99. package/dist/components/ui/date-picker.js +1 -0
  100. package/dist/components/ui/date-range-picker.js +1 -0
  101. package/dist/components/ui/dialog.js +1 -0
  102. package/dist/components/ui/dropdown-menu.js +1 -0
  103. package/dist/components/ui/hover-card.js +1 -0
  104. package/dist/components/ui/index.js +1 -0
  105. package/dist/components/ui/input-otp.js +1 -0
  106. package/dist/components/ui/input.js +1 -0
  107. package/dist/components/ui/label.js +1 -0
  108. package/dist/components/ui/menubar.js +1 -0
  109. package/dist/components/ui/navigation-menu.js +1 -0
  110. package/dist/components/ui/pagination.js +1 -0
  111. package/dist/components/ui/password-input.js +1 -0
  112. package/dist/components/ui/password-strength.js +1 -0
  113. package/dist/components/ui/popover.js +1 -0
  114. package/dist/components/ui/radio.js +1 -0
  115. package/dist/components/ui/rating.js +1 -0
  116. package/dist/components/ui/resizable.js +1 -0
  117. package/dist/components/ui/scroll-area.js +1 -0
  118. package/dist/components/ui/select.js +1 -0
  119. package/dist/components/ui/separator.js +1 -0
  120. package/dist/components/ui/sheet.js +1 -0
  121. package/dist/components/ui/slider.js +1 -0
  122. package/dist/components/ui/sonner.js +1 -0
  123. package/dist/components/ui/switch.js +1 -0
  124. package/dist/components/ui/tabs.js +1 -0
  125. package/dist/components/ui/tag-input.js +1 -0
  126. package/dist/components/ui/textarea.js +1 -0
  127. package/dist/components/ui/time-picker.js +1 -0
  128. package/dist/components/ui/toggle-group.js +1 -0
  129. package/dist/components/ui/toggle.js +1 -0
  130. package/dist/components/ui/upload.js +1 -0
  131. package/dist/form/form-field-control.js +1 -0
  132. package/dist/form/use-zod-form.js +1 -0
  133. package/dist/i18n/use-translation.js +1 -0
  134. package/dist/lib/control-styles.d.ts +3 -3
  135. package/dist/lib/control-styles.js +3 -3
  136. package/dist/lib/hooks.js +1 -0
  137. package/dist/props/components/app.prop.js +1 -0
  138. package/dist/props/components/data-entry.prop.js +1 -0
  139. package/dist/props/components/form.prop.js +1 -0
  140. package/dist/props/components/query.prop.js +1 -0
  141. package/dist/styles/control.css +8 -2
  142. package/dist/tokens/components/control.css +11 -0
  143. package/package.json +5 -4
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { resolveDefaultDateFormat } from "./date-format-labels";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { enUS, ja, vi } from "date-fns/locale";
2
3
  import {
3
4
  enUS as enUSDayPicker,
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { useMemo } from "react";
2
3
  import { formatDate } from "../lib/datetime";
3
4
  import { useAppContext } from "./app-provider";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { CartesianChart } from "./chart-cartesian";
3
4
  function AreaChart(props) {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { CartesianChart } from "./chart-cartesian";
3
4
  function BarChart(props) {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { cn } from "../../lib/utils";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { CartesianChart } from "./chart-cartesian";
3
4
  function LineChart(props) {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import {
3
4
  Cell,
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "../ui/accordion";
2
3
  export {
3
4
  Accordion,
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Avatar, AvatarImage, AvatarFallback } from "../ui/avatar";
2
3
  export {
3
4
  Avatar,
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { cva } from "class-variance-authority";
3
4
  import {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import useEmblaCarousel from "embla-carousel-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2
3
  const Collapsible = CollapsiblePrimitive.Root;
3
4
  const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { cn } from "../../lib/utils";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { HoverCard, HoverCardTrigger, HoverCardContent } from "../ui/hover-card";
2
3
  export {
3
4
  HoverCard,
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as PopoverPrimitive from "@radix-ui/react-popover";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  function Progress({ value, label, tone = "success" }) {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { ChevronRight, Package } from "lucide-react";
3
4
  import { Badge } from "./badge";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { ChevronLeft, ChevronRight } from "lucide-react";
3
4
  import { DayPicker } from "react-day-picker";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Check, ChevronRight, ChevronsUpDown, Minus, X } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { cn } from "../../lib/utils";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { useTranslation } from "../../i18n/use-translation";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Command as CommandPrimitive } from "cmdk";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { CalendarIcon } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { ArrowRight, CalendarIcon, X } from "lucide-react";
@@ -72,7 +73,7 @@ function DateRangePicker({
72
73
  className: cn(
73
74
  // One input-styled shell for the whole range — mirrors Input's control
74
75
  // tokens (border/radius/ring) so it reads as a single form field.
75
- "ui-control border-input bg-background flex w-full min-w-0 items-center gap-2 rounded-md border px-3 shadow-xs transition-[color,box-shadow] outline-none",
76
+ "ui-control border-input bg-background flex w-full min-w-0 items-center gap-2 rounded-[var(--control-radius)] transition-[color,box-shadow] outline-none",
76
77
  "focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",
77
78
  open && "border-ring ring-ring/50 ring-[3px]",
78
79
  disabled && "pointer-events-none cursor-not-allowed opacity-50",
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { cn } from "../../lib/utils";
3
4
  import { Label } from "./label";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Label } from "../data-entry/label";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { cn } from "../../lib/utils";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from "../ui/input-otp";
2
3
  export {
3
4
  InputOTP,
@@ -1,10 +1,11 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { X } from "lucide-react";
4
5
  import { useTranslation } from "../../i18n/use-translation";
5
6
  import { cn } from "../../lib/utils";
6
7
  const inputBaseClass = [
7
- "ui-control border-input bg-background w-full min-w-0 rounded-md border px-3 py-1 text-sm shadow-xs transition-[color,box-shadow] outline-none",
8
+ "ui-control border-input bg-background w-full min-w-0 rounded-[var(--control-radius)] transition-[color,box-shadow] outline-none",
8
9
  "selection:bg-primary selection:text-primary-foreground",
9
10
  "file:text-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium",
10
11
  "placeholder:text-muted-foreground",
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as LabelPrimitive from "@radix-ui/react-label";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { CalendarIcon, ChevronLeft, ChevronRight, X } from "lucide-react";
@@ -57,7 +58,7 @@ function MonthPicker({
57
58
  "div",
58
59
  {
59
60
  className: cn(
60
- "ui-control border-input bg-background flex w-full min-w-0 items-center gap-2 rounded-md border px-3 shadow-xs transition-[color,box-shadow] outline-none",
61
+ "ui-control border-input bg-background flex w-full min-w-0 items-center gap-2 rounded-[var(--control-radius)] transition-[color,box-shadow] outline-none",
61
62
  "focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",
62
63
  open && "border-ring ring-ring/50 ring-[3px]",
63
64
  disabled && "pointer-events-none cursor-not-allowed opacity-50",
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { ArrowRight, CalendarIcon, ChevronLeft, ChevronRight, X } from "lucide-react";
@@ -100,7 +101,7 @@ function MonthRangePicker({
100
101
  "div",
101
102
  {
102
103
  className: cn(
103
- "ui-control border-input bg-background flex w-full min-w-0 items-center gap-2 rounded-md border px-3 shadow-xs transition-[color,box-shadow] outline-none",
104
+ "ui-control border-input bg-background flex w-full min-w-0 items-center gap-2 rounded-[var(--control-radius)] transition-[color,box-shadow] outline-none",
104
105
  "focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",
105
106
  open && "border-ring ring-ring/50 ring-[3px]",
106
107
  disabled && "pointer-events-none cursor-not-allowed opacity-50",
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { ChevronDown, ChevronUp } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { PasswordInput } from "../ui/password-input";
2
3
  export {
3
4
  PasswordInput
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { Check, X } from "lucide-react";
3
4
  const DEFAULT_PASSWORD_RULES = ["length", "upper", "lower", "number", "symbol"];
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Rating } from "../ui/rating";
2
3
  export {
3
4
  Rating
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Search, X } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { ChevronsUpDown, Loader2, X } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as SelectPrimitive from "@radix-ui/react-select";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as SliderPrimitive from "@radix-ui/react-slider";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as SwitchPrimitive from "@radix-ui/react-switch";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { TagInput } from "../ui/tag-input";
2
3
  export {
3
4
  TagInput
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { X } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Clock } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { ToggleGroup, ToggleGroupItem } from "../ui/toggle-group";
2
3
  export {
3
4
  ToggleGroup,
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Toggle } from "../ui/toggle";
2
3
  export {
3
4
  Toggle
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { ChevronLeft, ChevronRight } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { ChevronDown, ChevronRight, ChevronsUpDown, X } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { useTranslation } from "../../i18n/use-translation";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Camera, ImagePlus, RotateCcw, Trash2, Upload as UploadIcon, X } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import * as React from "react";
2
3
  import {
3
4
  createUploadItem,
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as DialogPrimitive from "@radix-ui/react-dialog";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as DialogPrimitive from "@radix-ui/react-dialog";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { CheckCircle2, Info, Loader2, OctagonX, TriangleAlert } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { toast as sonnerToast } from "sonner";
2
3
  export {
3
4
  sonnerToast,
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Slot } from "@radix-ui/react-slot";
@@ -37,9 +38,10 @@ const buttonVariants = cva("ui-button", {
37
38
  "icon-lg": "size-[calc(var(--control-height)+0.25rem)]"
38
39
  },
39
40
  // Single source of corner radius (deterministic — no competing rounded-* utility): default uses
40
- // the control radius token, pill is fully rounded, sharp is square.
41
+ // the dedicated --button-radius token (themeable independently of --control-radius, issue #124),
42
+ // pill is fully rounded, sharp is square.
41
43
  shape: {
42
- default: "rounded-md",
44
+ default: "rounded-[var(--button-radius)]",
43
45
  pill: "rounded-[var(--radius-pill)]",
44
46
  sharp: "rounded-[var(--radius-sharp)]"
45
47
  }
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { useTranslation } from "../../i18n/use-translation";
3
4
  function AppShell({
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { AspectRatio } from "../ui/aspect-ratio";
2
3
  export {
3
4
  AspectRatio
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { ChevronRight } from "lucide-react";
3
4
  import { useTranslation } from "../../i18n/use-translation";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { useEffect, useRef, useState } from "react";
3
4
  import { ChevronRight } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as ResizablePrimitive from "react-resizable-panels";
3
4
  import { cn } from "../../lib/utils";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Separator } from "../ui/separator";
2
3
  export {
3
4
  Separator
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { ChevronDown } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import {
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { useId } from "react";
3
4
  import { X } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import { Check, Circle, Loader2, X } from "lucide-react";
3
4
  import { useTranslation } from "../../i18n/use-translation";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as TabsPrimitive from "@radix-ui/react-tabs";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { AlertQueryError } from "../feedback/alert";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { AlertQueryError } from "../feedback/alert";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { Fragment, jsx } from "react/jsx-runtime";
2
3
  import { AlertQueryError } from "../feedback/alert";
3
4
  function AlertMutationFeedback({
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Link } from "react-router-dom";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { RefreshCw } from "lucide-react";
3
4
  import { Button } from "../general/button";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../feedback/dialog";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../feedback/alert";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-display/badge";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../general/button";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/calendar";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-display/carousel";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/checkbox";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/color-picker";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/command";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../navigation/context-menu";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/date-picker";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/date-range-picker";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../feedback/dialog";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../navigation/dropdown-menu";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  export * from "./alert";
2
3
  export * from "./alert-dialog";
3
4
  export * from "./aspect-ratio";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { OTPInput, OTPInputContext } from "input-otp";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/input";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/label";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../navigation/menubar";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../navigation/navigation-menu";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../navigation/pagination";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Eye, EyeOff } from "lucide-react";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/password-strength";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-display/popover";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/radio";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { Star } from "lucide-react";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../layout/resizable";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-display/scroll-area";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/select";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../feedback/sheet";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/slider";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../feedback/sonner";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/switch";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../navigation/tabs";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import { X } from "lucide-react";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/textarea";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/time-picker";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import * as React from "react";
3
4
  import * as TogglePrimitive from "@radix-ui/react-toggle";
@@ -1 +1,2 @@
1
+ "use client";
1
2
  export * from "../data-entry/upload";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { Controller, useFormContext } from "react-hook-form";
3
4
  import { FormField } from "../components/data-entry/form-field";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import {
2
3
  useForm
3
4
  } from "react-hook-form";
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { useMemo } from "react";
2
3
  import { useOptionalAppContext } from "../app/app-provider";
3
4
  import { getDateFnsLocale, getDayPickerLocale } from "../app/locales";
@@ -1,6 +1,6 @@
1
1
  /** Shared control sizing — reads `--control-height`, `--font-size-*` from density / theme. */
2
- export declare const controlFieldClass = "ui-control w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
3
- export declare const controlMultilineClass = "ui-control-multiline w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
2
+ export declare const controlFieldClass = "ui-control w-full rounded-[var(--control-radius)] border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
3
+ export declare const controlMultilineClass = "ui-control-multiline w-full rounded-[var(--control-radius)] border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
4
4
  /**
5
5
  * Open-state ring for popup-style triggers (Select / Cascader / TreeSelect / SearchSelect).
6
6
  * Radix moves focus INTO the popup on open, so the trigger loses `:focus-visible` and — without
@@ -9,7 +9,7 @@ export declare const controlMultilineClass = "ui-control-multiline w-full rounde
9
9
  * `focus-visible:ring-*` on any trigger that toggles `data-state="open"`.
10
10
  */
11
11
  export declare const controlOpenRingClass = "data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px]";
12
- export declare const controlTriggerClass = "ui-control flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-lg border border-input bg-background shadow-sm transition-[color,box-shadow] focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1";
12
+ export declare const controlTriggerClass = "ui-control flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-[var(--control-radius)] border border-input bg-background shadow-sm transition-[color,box-shadow] focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1";
13
13
  export declare const controlIconClass = "size-[length:var(--control-height)] shrink-0";
14
14
  export declare const controlIconSmClass = "size-[calc(var(--control-height)-0.5rem)] shrink-0";
15
15
  /** Leading/affix icon inside an input row (search, command) — sized to `--control-icon-size`. */
@@ -1,7 +1,7 @@
1
- const controlFieldClass = "ui-control w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
2
- const controlMultilineClass = "ui-control-multiline w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
1
+ const controlFieldClass = "ui-control w-full rounded-[var(--control-radius)] border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
2
+ const controlMultilineClass = "ui-control-multiline w-full rounded-[var(--control-radius)] border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
3
3
  const controlOpenRingClass = "data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px]";
4
- const controlTriggerClass = "ui-control flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-lg border border-input bg-background shadow-sm transition-[color,box-shadow] focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1";
4
+ const controlTriggerClass = "ui-control flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-[var(--control-radius)] border border-input bg-background shadow-sm transition-[color,box-shadow] focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1";
5
5
  const controlIconClass = "size-[length:var(--control-height)] shrink-0";
6
6
  const controlIconSmClass = "size-[calc(var(--control-height)-0.5rem)] shrink-0";
7
7
  const controlIconLeadingClass = "size-[length:var(--control-icon-size)] shrink-0";
package/dist/lib/hooks.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { useEffect, useState } from "react";
2
3
  function useDebouncedValue(value, delay = 250) {
3
4
  const [debounced, setDebounced] = useState(value);
@@ -0,0 +1 @@
1
+ "use client";
@@ -0,0 +1 @@
1
+ "use client";
@@ -0,0 +1 @@
1
+ "use client";
@@ -0,0 +1 @@
1
+ "use client";
@@ -202,13 +202,19 @@
202
202
  height: var(--control-height);
203
203
  padding-inline-start: var(--control-padding-x);
204
204
  padding-inline-end: var(--control-padding-x);
205
- font-size: var(--font-size-base);
205
+ font-size: var(--control-font-size);
206
+ border-width: var(--control-border-width);
207
+ border-style: solid;
208
+ box-shadow: var(--control-shadow);
206
209
  }
207
210
 
208
211
  .ui-control-multiline {
209
212
  min-height: calc(var(--control-height) * 2.75);
210
213
  padding: var(--space-2) var(--control-padding-x);
211
- font-size: var(--font-size-base);
214
+ font-size: var(--control-font-size);
215
+ border-width: var(--control-border-width);
216
+ border-style: solid;
217
+ box-shadow: var(--control-shadow);
212
218
  }
213
219
 
214
220
  .ui-table-row {
@@ -18,6 +18,17 @@
18
18
  --control-gap: var(--space-inline-sm);
19
19
  --control-gap-sm: var(--space-inline-xs);
20
20
  --control-radius: var(--radius);
21
+ /* Button corner radius — defaults to the button's historical `rounded-md` so nothing
22
+ * changes by default, but is its OWN knob so a service theme can retune the button
23
+ * radius INDEPENDENTLY of input/control radius (issue #124). */
24
+ --button-radius: var(--radius-md);
25
+ /* Control surface knobs — font-size, border width and resting shadow of every
26
+ * `.ui-control` (input / picker trigger). Tokenised so a service theme tunes them
27
+ * once instead of each component hard-coding Tailwind utilities. Defaults preserve
28
+ * the historical look (font-size-base, 1px border, shadow-xs). */
29
+ --control-font-size: var(--font-size-base);
30
+ --control-border-width: 1px;
31
+ --control-shadow: var(--shadow-xs);
21
32
  --control-icon-size: calc(1rem * var(--scaling));
22
33
  --control-icon-size-sm: calc(0.875rem * var(--scaling));
23
34
  --control-focus-ring-width: var(--focus-ring-width);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@godxjp/ui",
3
- "version": "16.7.0",
3
+ "version": "16.7.2",
4
4
  "type": "module",
5
5
  "packageManager": "pnpm@10.29.1",
6
6
  "sideEffects": false,
@@ -275,7 +275,7 @@
275
275
  "test:coverage": "vitest run --coverage",
276
276
  "check:example-imports": "node scripts/check-example-imports.mjs",
277
277
  "verify": "pnpm typecheck && pnpm lint && pnpm format && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-token-sync && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm check:audit-sync && pnpm test",
278
- "verify:release": "pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-token-sync && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm check:audit-sync && pnpm check:mcp-prop-sync && pnpm check:contrast && pnpm test",
278
+ "verify:release": "pnpm typecheck && pnpm typecheck:docs && pnpm lint && pnpm build && pnpm preview:build && pnpm check:example-imports && pnpm check:core-isolation && pnpm check:use-client && pnpm check:prop-vocabulary && pnpm check:token-tiers && pnpm check:control-sizing && pnpm check:rtl && pnpm check:typography && pnpm check:mcp-token-sync && pnpm check:mcp-sync && pnpm check:mcp-orphans && pnpm check:audit-sync && pnpm check:mcp-prop-sync && pnpm check:contrast && pnpm test",
279
279
  "check:mcp-sync": "node scripts/check-mcp-sync.mjs",
280
280
  "check:mcp-orphans": "node scripts/check-mcp-orphans.mjs",
281
281
  "check:mcp-prop-sync": "node scripts/check-mcp-prop-sync.mjs",
@@ -293,14 +293,15 @@
293
293
  "docs:sync-primitives": "node preview/scripts/sync-primitive-docs.mjs && prettier --write \"docs/primitives/**/*.tsx\"",
294
294
  "audit": "node scripts/ui-audit.mjs",
295
295
  "audit:examples": "node scripts/ui-audit.mjs docs",
296
- "build": "tsup && tsc -p tsconfig.build.json && node scripts/copy-styles.mjs",
296
+ "build": "tsup && tsc -p tsconfig.build.json && node scripts/copy-styles.mjs && node scripts/add-use-client.mjs",
297
297
  "dev": "node scripts/dev.mjs",
298
298
  "prepublishOnly": "pnpm run build",
299
299
  "check:audit-sync": "node scripts/check-audit-sync.mjs",
300
300
  "check:contrast": "node scripts/check-contrast.mjs",
301
301
  "visual-audit": "node scripts/visual-audit.mjs",
302
302
  "postinstall": "node scripts/postinstall.mjs",
303
- "init-agent": "node scripts/init-agent-kit.mjs"
303
+ "init-agent": "node scripts/init-agent-kit.mjs",
304
+ "check:use-client": "node scripts/check-use-client.mjs"
304
305
  },
305
306
  "peerDependencies": {
306
307
  "@axe-core/playwright": "*",