@bysages/react 0.4.0 → 0.4.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 (154) hide show
  1. package/dist/{ai-response-B4DX7nmJ.mjs → ai-response-nhDOlELQ.mjs} +1 -1
  2. package/dist/components/accordion/index.mjs +1 -1
  3. package/dist/components/affix/index.mjs +2 -2
  4. package/dist/components/ai/index.d.mts +1 -1
  5. package/dist/components/ai/index.mjs +2 -2
  6. package/dist/components/ai-action/index.mjs +1 -1
  7. package/dist/components/ai-attachments/index.mjs +1 -1
  8. package/dist/components/ai-message/index.mjs +1 -1
  9. package/dist/components/ai-prompt-input/index.mjs +4 -13
  10. package/dist/components/ai-reasoning/index.mjs +1 -1
  11. package/dist/components/ai-response/index.mjs +1 -1
  12. package/dist/components/ai-source/index.mjs +1 -1
  13. package/dist/components/ai-suggestion/index.mjs +1 -1
  14. package/dist/components/ai-tool/index.mjs +1 -1
  15. package/dist/components/alert/index.mjs +1 -1
  16. package/dist/components/angle-slider/index.mjs +1 -1
  17. package/dist/components/aspect-ratio/index.mjs +1 -1
  18. package/dist/components/autocomplete/index.mjs +9 -2
  19. package/dist/components/avatar/index.mjs +1 -1
  20. package/dist/components/avatar-group/index.mjs +1 -1
  21. package/dist/components/back-top/index.mjs +1 -1
  22. package/dist/components/badge/index.mjs +1 -1
  23. package/dist/components/banner/index.mjs +1 -1
  24. package/dist/components/bento/index.mjs +1 -1
  25. package/dist/components/block-ui/index.mjs +1 -1
  26. package/dist/components/breadcrumb/index.mjs +1 -1
  27. package/dist/components/browser/index.mjs +1 -1
  28. package/dist/components/button/index.mjs +1 -1
  29. package/dist/components/button-group/index.mjs +1 -1
  30. package/dist/components/calendar/index.d.mts +18 -7
  31. package/dist/components/calendar/index.mjs +79 -43
  32. package/dist/components/card/index.mjs +1 -1
  33. package/dist/components/carousel/index.mjs +1 -1
  34. package/dist/components/cascade-select/index.mjs +2 -2
  35. package/dist/components/checkbox/index.mjs +1 -1
  36. package/dist/components/checkbox-group/index.mjs +1 -1
  37. package/dist/components/chip/index.d.mts +1 -1
  38. package/dist/components/chip/index.mjs +1 -1
  39. package/dist/components/clipboard/index.mjs +1 -1
  40. package/dist/components/collapsible/index.mjs +1 -1
  41. package/dist/components/color-picker/index.mjs +1 -1
  42. package/dist/components/combobox/index.mjs +1 -1
  43. package/dist/components/command/index.mjs +1 -1
  44. package/dist/components/comment/index.mjs +1 -1
  45. package/dist/components/container/index.mjs +1 -1
  46. package/dist/components/data-view/index.mjs +1 -1
  47. package/dist/components/date-input/index.mjs +1 -1
  48. package/dist/components/date-picker/index.mjs +1 -1
  49. package/dist/components/deferred-content/index.mjs +1 -1
  50. package/dist/components/descriptions/index.mjs +1 -1
  51. package/dist/components/dialog/index.mjs +1 -1
  52. package/dist/components/dock/index.mjs +1 -1
  53. package/dist/components/drawer/index.mjs +1 -1
  54. package/dist/components/dynamic-input/index.mjs +2 -2
  55. package/dist/components/editable/index.mjs +1 -1
  56. package/dist/components/ellipsis/index.mjs +1 -1
  57. package/dist/components/empty/index.mjs +1 -1
  58. package/dist/components/field/index.mjs +1 -1
  59. package/dist/components/fieldset/index.mjs +1 -1
  60. package/dist/components/file-upload/index.mjs +1 -1
  61. package/dist/components/float-button/index.mjs +1 -1
  62. package/dist/components/floating-panel/index.mjs +1 -1
  63. package/dist/components/form/index.d.mts +48 -2
  64. package/dist/components/form/index.mjs +1 -1
  65. package/dist/components/grid/index.mjs +1 -1
  66. package/dist/components/highlight/index.mjs +1 -1
  67. package/dist/components/hover-card/index.mjs +1 -1
  68. package/dist/components/icon/index.mjs +1 -1
  69. package/dist/components/image/index.mjs +1 -1
  70. package/dist/components/image-cropper/index.mjs +1 -1
  71. package/dist/components/image-viewer/index.mjs +1 -1
  72. package/dist/components/input/index.mjs +1 -1
  73. package/dist/components/input-group/index.mjs +1 -1
  74. package/dist/components/json-tree-view/index.mjs +1 -1
  75. package/dist/components/kbd/index.mjs +1 -1
  76. package/dist/components/layout/index.mjs +1 -1
  77. package/dist/components/link/index.mjs +1 -1
  78. package/dist/components/list/index.mjs +1 -1
  79. package/dist/components/listbox/index.mjs +1 -1
  80. package/dist/components/marquee/index.mjs +1 -1
  81. package/dist/components/masonry/index.mjs +1 -1
  82. package/dist/components/media-player/index.mjs +1 -1
  83. package/dist/components/mentions/index.mjs +1 -1
  84. package/dist/components/menu/index.mjs +1 -1
  85. package/dist/components/menubar/index.mjs +1 -1
  86. package/dist/components/meter/index.mjs +1 -1
  87. package/dist/components/navigation-menu/index.mjs +1 -1
  88. package/dist/components/number-input/index.mjs +1 -1
  89. package/dist/components/order-list/index.mjs +1 -1
  90. package/dist/components/page-header/index.mjs +1 -1
  91. package/dist/components/pagination/index.d.mts +2 -0
  92. package/dist/components/pagination/index.mjs +31 -6
  93. package/dist/components/password-input/index.mjs +1 -1
  94. package/dist/components/pin-input/index.mjs +1 -1
  95. package/dist/components/popconfirm/index.mjs +1 -1
  96. package/dist/components/popover/index.mjs +1 -1
  97. package/dist/components/progress/index.d.mts +2 -2
  98. package/dist/components/progress/index.mjs +21 -5
  99. package/dist/components/progress-group/index.mjs +1 -1
  100. package/dist/components/qr-code/index.mjs +1 -1
  101. package/dist/components/radio-group/index.mjs +1 -1
  102. package/dist/components/rating-group/index.mjs +1 -1
  103. package/dist/components/result/index.mjs +1 -1
  104. package/dist/components/scroll-area/index.mjs +1 -1
  105. package/dist/components/segment-group/index.mjs +1 -1
  106. package/dist/components/select/index.mjs +1 -1
  107. package/dist/components/separator/index.mjs +1 -1
  108. package/dist/components/signature-pad/index.mjs +1 -1
  109. package/dist/components/skeleton/index.mjs +1 -1
  110. package/dist/components/slider/index.mjs +1 -1
  111. package/dist/components/spinner/index.mjs +1 -1
  112. package/dist/components/split-button/index.mjs +1 -1
  113. package/dist/components/splitter/index.mjs +1 -1
  114. package/dist/components/spotlight/index.mjs +1 -1
  115. package/dist/components/stack/index.mjs +1 -1
  116. package/dist/components/stat/index.mjs +1 -1
  117. package/dist/components/steps/index.d.mts +5 -1
  118. package/dist/components/steps/index.mjs +7 -5
  119. package/dist/components/swap/index.mjs +1 -1
  120. package/dist/components/switch/index.mjs +1 -1
  121. package/dist/components/table/index.d.mts +2 -0
  122. package/dist/components/table/index.mjs +14 -5
  123. package/dist/components/tabs/index.mjs +1 -1
  124. package/dist/components/tag/index.d.mts +33 -0
  125. package/dist/components/tag/index.mjs +69 -0
  126. package/dist/components/tags-input/index.mjs +1 -1
  127. package/dist/components/terminal/index.mjs +1 -1
  128. package/dist/components/textarea/index.mjs +1 -1
  129. package/dist/components/timeline/index.mjs +1 -1
  130. package/dist/components/timer/index.mjs +1 -1
  131. package/dist/components/toast/index.mjs +1 -1
  132. package/dist/components/toc/index.mjs +1 -1
  133. package/dist/components/toggle/index.mjs +1 -1
  134. package/dist/components/toggle-group/index.mjs +1 -1
  135. package/dist/components/toolbar/index.mjs +1 -1
  136. package/dist/components/tooltip/index.mjs +1 -1
  137. package/dist/components/tour/index.mjs +1 -1
  138. package/dist/components/transfer/index.mjs +2 -2
  139. package/dist/components/tree-select/index.mjs +2 -2
  140. package/dist/components/tree-view/index.mjs +1 -1
  141. package/dist/components/typography/index.mjs +1 -1
  142. package/dist/components/user/index.mjs +1 -1
  143. package/dist/components/virtual-list/index.mjs +1 -1
  144. package/dist/components/watermark/index.mjs +1 -1
  145. package/dist/{image-viewer-Cf6thHax.mjs → image-viewer-B-hKFkEw.mjs} +1 -1
  146. package/dist/{index-DdNKngUQ.d.mts → index-B4twHAQC.d.mts} +138 -89
  147. package/dist/index.d.mts +4 -3
  148. package/dist/index.mjs +8 -7
  149. package/dist/{input-C21Zzuy6.mjs → input-BDpQ0e6G.mjs} +1 -1
  150. package/dist/{media-player-gQrnxU52.mjs → media-player-DjVvo1_7.mjs} +2 -2
  151. package/dist/{mentions-BuWibdci.mjs → mentions-BwnyvdXz.mjs} +1 -1
  152. package/dist/{select-ozUFq0zd.mjs → select-i9UZsQCU.mjs} +1 -1
  153. package/package.json +9 -81
  154. package/dist/index-PsgGWW3m.d.mts +0 -1819
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Progress as Progress$1 } from "@ark-ui/react/progress";
5
5
  //#region src/components/progress/index.tsx
@@ -15,9 +15,15 @@ function ProgressRoot(props) {
15
15
  });
16
16
  }
17
17
  /** The complete progress behind one value: a labelled linear groove by
18
- * default, with a circular variant for compact status. */
18
+ * default, with circular and dashboard dials for compact status. */
19
19
  function ProgressFacade(props) {
20
20
  const { value, defaultValue, min, max, label, variant = "linear", size = "md", className, style, onValueChange } = props;
21
+ const dashboardPercent = (() => {
22
+ const lower = min ?? 0;
23
+ const upper = max ?? 100;
24
+ const percent = ((value ?? defaultValue ?? lower + (upper - lower) / 2) - lower) / (upper - lower) * 100;
25
+ return !Number.isFinite(percent) ? 0 : Math.min(100, Math.max(0, percent));
26
+ })();
21
27
  return /* @__PURE__ */ jsxs(ProgressRoot, {
22
28
  size,
23
29
  "data-variant": variant,
@@ -30,11 +36,21 @@ function ProgressFacade(props) {
30
36
  onValueChange: (event) => onValueChange?.(event.value),
31
37
  children: [
32
38
  label ? /* @__PURE__ */ jsx(Progress$1.Label, { children: label }) : null,
33
- /* @__PURE__ */ jsx(Progress$1.ValueText, {}),
34
- variant === "circle" ? /* @__PURE__ */ jsx(ProgressView, {
39
+ variant === "dashboard" ? /* @__PURE__ */ jsxs("div", {
40
+ "data-scope": "progress",
41
+ "data-part": "view",
42
+ "data-view": "dashboard",
43
+ children: [/* @__PURE__ */ jsx("div", {
44
+ "aria-hidden": "true",
45
+ "data-scope": "progress",
46
+ "data-part": "dash-ring",
47
+ style: { "--percent": String(dashboardPercent) }
48
+ }), /* @__PURE__ */ jsx(Progress$1.ValueText, {})]
49
+ }) : variant === "circle" ? /* @__PURE__ */ jsx(ProgressView, {
35
50
  view: "circle",
36
51
  children: /* @__PURE__ */ jsx(Progress$1.Circle, { children: /* @__PURE__ */ jsx(Progress$1.CircleRange, {}) })
37
- }) : /* @__PURE__ */ jsx(Progress$1.Track, { children: /* @__PURE__ */ jsx(Progress$1.Range, {}) })
52
+ }) : /* @__PURE__ */ jsx(Progress$1.Track, { children: /* @__PURE__ */ jsx(Progress$1.Range, {}) }),
53
+ variant !== "dashboard" ? /* @__PURE__ */ jsx(Progress$1.ValueText, {}) : null
38
54
  ]
39
55
  });
40
56
  }
@@ -1,5 +1,5 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/progress-group/index.tsx
5
5
  function ProgressGroupImpl({ segments, max, showLegend = true, ...rest }) {
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { QrCode as QrCode$1 } from "@ark-ui/react/qr-code";
5
5
  //#region src/components/qr-code/index.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { RadioGroup as RadioGroup$1 } from "@ark-ui/react/radio-group";
5
5
  //#region src/components/radio-group/index.tsx
@@ -1,6 +1,6 @@
1
1
  import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { RatingGroup as RatingGroup$1 } from "@ark-ui/react/rating-group";
6
6
  //#region src/components/rating-group/index.tsx
@@ -1,4 +1,4 @@
1
- import { injectComponentStyle } from "@bysages/core";
1
+ import { injectComponentStyle } from "@bysages/core/styling";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/result/index.tsx
4
4
  const MARK = "<g data-for=\"success\"><path d=\"M20 6 9 17l-5-5\"/></g><g data-for=\"warning\"><path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></g><g data-for=\"danger\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/></g><g data-for=\"info\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></g>";
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { ScrollArea as ScrollArea$1 } from "@ark-ui/react/scroll-area";
5
5
  //#region src/components/scroll-area/index.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { SegmentGroup as SegmentGroup$1 } from "@ark-ui/react/segment-group";
5
5
  //#region src/components/segment-group/index.tsx
@@ -1,2 +1,2 @@
1
- import { n as NativeSelect, t as Select } from "../../select-ozUFq0zd.mjs";
1
+ import { n as NativeSelect, t as Select } from "../../select-i9UZsQCU.mjs";
2
2
  export { NativeSelect, Select };
@@ -1,5 +1,5 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/separator/index.tsx
5
5
  function SeparatorImpl({ orientation = "horizontal", decorative = false, ...rest }) {
@@ -1,6 +1,6 @@
1
1
  import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { SignaturePad as SignaturePad$1 } from "@ark-ui/react/signature-pad";
6
6
  //#region src/components/signature-pad/index.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/skeleton/index.tsx
5
5
  function SkeletonImpl({ ...rest }) {
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Slider as Slider$1 } from "@ark-ui/react/slider";
5
5
  //#region src/components/slider/index.tsx
@@ -1,6 +1,6 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
2
  import { n as useComponentMessages } from "../../messages-1jJWtaYU.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/components/spinner/index.tsx
6
6
  /** A wheel of waiting: one arc of ink turning about its center. Quiet by
@@ -3,7 +3,7 @@ import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
3
  import { n as useComponentMessages } from "../../messages-1jJWtaYU.mjs";
4
4
  import { Button } from "../button/index.mjs";
5
5
  import { Menu as Menu$1 } from "../menu/index.mjs";
6
- import { injectComponentStyle } from "@bysages/core";
6
+ import { injectComponentStyle } from "@bysages/core/styling";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  import { Portal } from "@ark-ui/react/portal";
9
9
  import { Menu } from "@ark-ui/react/menu";
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Fragment as Fragment$1 } from "react";
5
5
  import { Splitter as Splitter$1 } from "@ark-ui/react/splitter";
@@ -1,5 +1,5 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/spotlight/index.tsx
5
5
  /** The ink-light card: a vessel whose rim and face take light from the
@@ -1,5 +1,5 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/stack/index.tsx
5
5
  /** Whitespace chosen by name: the named steps point at the space ramp so
@@ -1,4 +1,4 @@
1
- import { injectComponentStyle } from "@bysages/core";
1
+ import { injectComponentStyle } from "@bysages/core/styling";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/stat/index.tsx
4
4
  function part(name, tag) {
@@ -4,6 +4,8 @@ import { Steps as Steps$1 } from "@ark-ui/react/steps";
4
4
  type StepsRootProps = ComponentProps<typeof Steps$1.Root> & {
5
5
  /** One rung of the control-height ladder every indicator stands on. */
6
6
  size?: "sm" | "md" | "lg";
7
+ /** Default renders numbered seals; dot reduces each step to a bead. */
8
+ variant?: "default" | "dot";
7
9
  };
8
10
  declare function StepsRoot(props: StepsRootProps): import("react").JSX.Element;
9
11
  type StepsItem = {
@@ -17,10 +19,12 @@ export interface StepsFacadeProps {
17
19
  orientation?: "horizontal" | "vertical";
18
20
  /** One rung of the control-height ladder every indicator stands on. */
19
21
  size?: "sm" | "md" | "lg";
22
+ /** Default renders numbered seals; dot reduces each step to a bead. */
23
+ variant?: "default" | "dot";
20
24
  className?: string;
21
25
  onStepChange?: (step: number) => void;
22
26
  }
23
- declare function StepsFacade({ items, step, defaultStep, linear, orientation, size, className, onStepChange }: StepsFacadeProps): import("react").JSX.Element;
27
+ declare function StepsFacade({ items, step, defaultStep, linear, orientation, size, variant, className, onStepChange }: StepsFacadeProps): import("react").JSX.Element;
24
28
  declare namespace StepsFacade {
25
29
  var displayName: string;
26
30
  }
@@ -1,31 +1,33 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Steps as Steps$1 } from "@ark-ui/react/steps";
5
5
  //#region src/components/steps/index.tsx
6
6
  function StepsRoot(props) {
7
7
  const id = useElementId("steps", props);
8
- const { size = "md", ...rest } = props;
8
+ const { size = "md", variant = "default", ...rest } = props;
9
9
  return /* @__PURE__ */ jsx(Steps$1.Root, {
10
10
  ...rest,
11
11
  id,
12
- "data-size": size
12
+ "data-size": size,
13
+ "data-variant": variant === "dot" ? variant : void 0
13
14
  });
14
15
  }
15
- function StepsFacade({ items, step, defaultStep = 0, linear = false, orientation = "horizontal", size = "md", className, onStepChange }) {
16
+ function StepsFacade({ items, step, defaultStep = 0, linear = false, orientation = "horizontal", size = "md", variant = "default", className, onStepChange }) {
16
17
  return /* @__PURE__ */ jsx(StepsRoot, {
17
18
  className,
18
19
  size,
19
20
  count: items.length,
20
21
  linear,
21
22
  orientation,
23
+ variant,
22
24
  defaultStep,
23
25
  ...step === void 0 ? {} : { step },
24
26
  onStepChange: (details) => onStepChange?.(details.step),
25
27
  children: /* @__PURE__ */ jsx(Steps$1.List, { children: items.map((item, index) => /* @__PURE__ */ jsxs(Steps$1.Item, {
26
28
  index,
27
29
  role: "presentation",
28
- children: [/* @__PURE__ */ jsxs(Steps$1.Trigger, { children: [/* @__PURE__ */ jsx(Steps$1.Indicator, { children: String(index + 1) }), item.title] }), /* @__PURE__ */ jsx(Steps$1.Separator, {})]
30
+ children: [/* @__PURE__ */ jsxs(Steps$1.Trigger, { children: [/* @__PURE__ */ jsx(Steps$1.Indicator, { children: variant === "dot" ? null : String(index + 1) }), item.title] }), /* @__PURE__ */ jsx(Steps$1.Separator, {})]
29
31
  }, item.title)) })
30
32
  });
31
33
  }
@@ -1,6 +1,6 @@
1
1
  import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Swap as Swap$1 } from "@ark-ui/react/swap";
6
6
  //#region src/components/swap/index.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Switch as Switch$1 } from "@ark-ui/react/switch";
5
5
  //#region src/components/switch/index.tsx
@@ -61,6 +61,8 @@ export interface DataTableProps {
61
61
  initialSorting?: SortingState;
62
62
  globalFilterPlaceholder?: string;
63
63
  emptyText?: string;
64
+ /** Band every other body row so wide measures keep the eye on line. */
65
+ striped?: boolean;
64
66
  /** Allow dragging header cells onto each other to reorder columns and
65
67
  * body rows onto each other to reorder data — with `tree`, row drops
66
68
  * read as before / inside / after, so a drop can also nest a branch
@@ -2,10 +2,10 @@ import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
3
3
  import { n as useComponentMessages, t as formatMessage } from "../../messages-1jJWtaYU.mjs";
4
4
  import { Pagination } from "../pagination/index.mjs";
5
- import { t as Select$1 } from "../../select-ozUFq0zd.mjs";
6
- import { injectComponentStyle } from "@bysages/core";
5
+ import { t as Select$1 } from "../../select-i9UZsQCU.mjs";
6
+ import { injectComponentStyle } from "@bysages/core/styling";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
- import { useEffect, useLayoutEffect, useMemo, useReducer, useRef } from "react";
8
+ import { useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
9
9
  import { createListCollection } from "@ark-ui/react/select";
10
10
  import { FlexRender, cellSpanningFeature, columnFilteringFeature, columnOrderingFeature, columnPinningFeature, columnSizingFeature, columnVisibilityFeature, createColumnHelper, createExpandedRowModel, createFilteredRowModel, createPaginatedRowModel, createSortedRowModel, filterFn_arrIncludes, filterFn_equals, filterFn_inDateRange, filterFn_inNumberRange, filterFn_includesString, filterFn_weakEquals, globalFilteringFeature, rowExpandingFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, tableFeatures, useTable } from "@tanstack/react-table";
11
11
  import { useVirtualizer } from "@tanstack/react-virtual";
@@ -184,6 +184,7 @@ function DataTableImpl(rawProps) {
184
184
  });
185
185
  const viewport = useRef(null);
186
186
  const rows = table.getRowModel().rows;
187
+ const [hydrated, setHydrated] = useState(false);
187
188
  /** The declared row height is the density-scale baseline; the live
188
189
  * scale comes off the document so the virtual window matches what CSS
189
190
  * actually renders. It is read once and re-read only when the density
@@ -211,8 +212,15 @@ function DataTableImpl(rawProps) {
211
212
  });
212
213
  return () => observer.disconnect();
213
214
  }, [virtual]);
214
- const virtualRows = virtualizer.getVirtualItems();
215
- const totalSize = virtualizer.getTotalSize();
215
+ useEffect(() => setHydrated(true), []);
216
+ const fallbackRows = virtual ? rows.slice(0, Math.max(1, Math.ceil(320 / rowHeight))).map((row, index) => ({
217
+ key: row.id ?? index,
218
+ index,
219
+ start: index * rowHeight,
220
+ size: rowHeight
221
+ })) : [];
222
+ const virtualRows = hydrated ? virtualizer.getVirtualItems() : fallbackRows;
223
+ const totalSize = hydrated ? virtualizer.getTotalSize() : rows.length * rowHeight;
216
224
  /** Column ids of the visible leaves, for pin-seam bookkeeping. */
217
225
  const leafIds = table.getAllLeafColumns().map((c) => c.id);
218
226
  const expandHostId = tree ? leafIds.find((id) => id !== SELECT_COL_ID) : void 0;
@@ -630,6 +638,7 @@ function DataTableImpl(rawProps) {
630
638
  "data-scope": "table",
631
639
  "data-part": "root",
632
640
  "data-reorderable": reorderable || void 0,
641
+ "data-striped": props.striped || void 0,
633
642
  style: {
634
643
  "--bs-table-row-height": `calc(${rowHeight}px * var(--bs-density-scale, 1))`,
635
644
  ...props.style
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Tabs as Tabs$1 } from "@ark-ui/react/tabs";
5
5
  //#region src/components/tabs/index.tsx
@@ -0,0 +1,33 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/components/tag/index.d.ts
3
+ export interface TagProps extends Omit<HTMLAttributes<HTMLElement>, "defaultValue"> {
4
+ /** The pigment the tag is inked with; ink is the solemn default,
5
+ * and the fixed pigments speak for their meaning. */
6
+ tone?: "ink" | "primary" | "success" | "warning" | "danger" | "info";
7
+ /** How the tag rests: a solid fill, an outline shell, a subtle
8
+ * wash. The pressed state always reads as solid. */
9
+ variant?: "solid" | "outline" | "subtle";
10
+ /** Render the tag as a pressed button the consumer can toggle. */
11
+ checkable?: boolean;
12
+ /** The pressed state held from outside; omit it and the tag keeps
13
+ * its own state from `defaultValue`. */
14
+ value?: boolean;
15
+ defaultValue?: boolean;
16
+ /** Render the quiet removal seal. */
17
+ closable?: boolean;
18
+ disabled?: boolean;
19
+ onValueChange?: (checked: boolean) => void;
20
+ onClose?: () => void;
21
+ }
22
+ /** A small named seal for filtering and cataloguing. The resting shape
23
+ * is a span; `checkable` raises it to a pressed button, and `closable`
24
+ * hangs the removal seal inside — dismissal stays the consumer's state,
25
+ * the way the banner's does. */
26
+ declare function TagImpl({ tone, variant, checkable, value, defaultValue, closable, disabled, onValueChange, onClose, children, ...rest }: TagProps): import("react").JSX.Element;
27
+ declare namespace TagImpl {
28
+ var displayName: string;
29
+ }
30
+ export declare const Tag: typeof TagImpl & {
31
+ Root: typeof TagImpl;
32
+ };
33
+ //#endregion
@@ -0,0 +1,69 @@
1
+ import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
+ import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { useState } from "react";
6
+ //#region src/components/tag/index.tsx
7
+ /** A small named seal for filtering and cataloguing. The resting shape
8
+ * is a span; `checkable` raises it to a pressed button, and `closable`
9
+ * hangs the removal seal inside — dismissal stays the consumer's state,
10
+ * the way the banner's does. */
11
+ function TagImpl({ tone = "ink", variant = "solid", checkable = false, value, defaultValue = false, closable = false, disabled = false, onValueChange, onClose, children, ...rest }) {
12
+ injectComponentStyle("tag");
13
+ const [internalChecked, setInternalChecked] = useState(defaultValue);
14
+ const checked = value ?? internalChecked;
15
+ const toggle = () => {
16
+ if (disabled) return;
17
+ const next = !checked;
18
+ setInternalChecked(next);
19
+ onValueChange?.(next);
20
+ };
21
+ const dismiss = (event) => {
22
+ event.stopPropagation();
23
+ if (disabled) return;
24
+ onClose?.();
25
+ };
26
+ const pressed = checkable && checked;
27
+ const closeControl = closable ? checkable ? /* @__PURE__ */ jsx("span", {
28
+ "data-scope": "tag",
29
+ "data-part": "close",
30
+ "aria-hidden": "true",
31
+ onClick: dismiss,
32
+ children: iconNode("x")
33
+ }) : /* @__PURE__ */ jsx("button", {
34
+ "data-scope": "tag",
35
+ "data-part": "close",
36
+ type: "button",
37
+ "aria-label": "Remove",
38
+ disabled,
39
+ onClick: dismiss,
40
+ children: iconNode("x")
41
+ }) : null;
42
+ const partProps = {
43
+ ...rest,
44
+ "data-scope": "tag",
45
+ "data-part": "root",
46
+ "data-tone": tone,
47
+ "data-variant": variant,
48
+ ...checkable ? { "data-checkable": "true" } : {},
49
+ ...pressed ? { "data-checked": "true" } : {},
50
+ ...disabled ? { "data-disabled": "true" } : {}
51
+ };
52
+ if (checkable) return /* @__PURE__ */ jsxs("button", {
53
+ ...partProps,
54
+ type: "button",
55
+ "aria-pressed": checked,
56
+ disabled,
57
+ onClick: toggle,
58
+ children: [children, closeControl]
59
+ });
60
+ return /* @__PURE__ */ jsxs("span", {
61
+ ...partProps,
62
+ ...disabled ? { "aria-disabled": "true" } : {},
63
+ children: [children, closeControl]
64
+ });
65
+ }
66
+ TagImpl.displayName = "STag";
67
+ const Tag = withSelfRoot(TagImpl);
68
+ //#endregion
69
+ export { Tag };
@@ -1,6 +1,6 @@
1
1
  import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { TagsInput as TagsInput$1 } from "@ark-ui/react/tags-input";
6
6
  //#region src/components/tags-input/index.tsx
@@ -1,6 +1,6 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
2
  import { n as useComponentMessages } from "../../messages-1jJWtaYU.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { useEffect, useRef, useState } from "react";
6
6
  //#region src/components/terminal/index.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { useFieldContext } from "@ark-ui/react/field";
5
5
  //#region src/components/textarea/index.tsx
@@ -1,4 +1,4 @@
1
- import { injectComponentStyle } from "@bysages/core";
1
+ import { injectComponentStyle } from "@bysages/core/styling";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/timeline/index.tsx
4
4
  /** A line of moments: Root is the ordered thread, Item one moment on it,
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Timer as Timer$1 } from "@ark-ui/react/timer";
5
5
  //#region src/components/timer/index.tsx
@@ -1,6 +1,6 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
2
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { forwardRef } from "react";
6
6
  import { Toast as Toast$1, Toaster as Toaster$1, createToaster } from "@ark-ui/react/toast";
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Toc as Toc$1 } from "@ark-ui/react/toc";
5
5
  //#region src/components/toc/index.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { Toggle as Toggle$1 } from "@ark-ui/react/toggle";
5
5
  //#region src/components/toggle/index.tsx
@@ -1,6 +1,6 @@
1
1
  import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { ToggleGroup as ToggleGroup$1 } from "@ark-ui/react/toggle-group";
6
6
  //#region src/components/toggle-group/index.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/toolbar/index.tsx
5
5
  /** A workbench rail: the start tools at the leading edge, the end tools
@@ -1,5 +1,5 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { isValidElement } from "react";
5
5
  import { Tooltip as Tooltip$1 } from "@ark-ui/react/tooltip";
@@ -1,6 +1,6 @@
1
1
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
2
2
  import { Button } from "../button/index.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Tour as Tour$1, useTour as useTour$1 } from "@ark-ui/react/tour";
6
6
  //#region src/components/tour/index.tsx
@@ -2,9 +2,9 @@ import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
3
  import { n as useComponentMessages, t as formatMessage } from "../../messages-1jJWtaYU.mjs";
4
4
  import { Button } from "../button/index.mjs";
5
- import { t as Input } from "../../input-C21Zzuy6.mjs";
5
+ import { t as Input } from "../../input-BDpQ0e6G.mjs";
6
6
  import { Checkbox as Checkbox$1 } from "../checkbox/index.mjs";
7
- import { injectComponentStyle } from "@bysages/core";
7
+ import { injectComponentStyle } from "@bysages/core/styling";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { useState } from "react";
10
10
  import { Checkbox } from "@ark-ui/react/checkbox";
@@ -2,8 +2,8 @@ import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
3
  import { n as useComponentMessages } from "../../messages-1jJWtaYU.mjs";
4
4
  import { Popover as Popover$1 } from "../popover/index.mjs";
5
- import { t as Input } from "../../input-C21Zzuy6.mjs";
6
- import { injectComponentStyle } from "@bysages/core";
5
+ import { t as Input } from "../../input-BDpQ0e6G.mjs";
6
+ import { injectComponentStyle } from "@bysages/core/styling";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  import { useMemo, useState } from "react";
9
9
  import { Popover } from "@ark-ui/react/popover";
@@ -1,6 +1,6 @@
1
1
  import { t as iconNode } from "../../icon-BALgGtNK.mjs";
2
2
  import { t as useElementId } from "../../id-C37UYLwJ.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { TreeView as TreeView$1, createTreeCollection } from "@ark-ui/react/tree-view";
6
6
  //#region src/components/tree-view/index.tsx
@@ -1,4 +1,4 @@
1
- import { injectComponentStyle } from "@bysages/core";
1
+ import { injectComponentStyle } from "@bysages/core/styling";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/typography/index.tsx
4
4
  /** The typographic voices, named so prose can ask for one: display and
@@ -1,6 +1,6 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
2
  import { Avatar } from "../avatar/index.mjs";
3
- import { injectComponentStyle } from "@bysages/core";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/components/user/index.tsx
6
6
  function initialsOf(name) {
@@ -1,5 +1,5 @@
1
1
  import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
2
+ import { injectComponentStyle } from "@bysages/core/styling";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { useRef } from "react";
5
5
  import { useVirtualizer } from "@tanstack/react-virtual";