@particle-academy/react-fancy 6.2.0 → 6.4.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 (126) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +2 -0
  3. package/dist/autocomplete.cjs +5 -5
  4. package/dist/autocomplete.js +4 -4
  5. package/dist/breadcrumbs.cjs +2 -2
  6. package/dist/breadcrumbs.d.cts +13 -2
  7. package/dist/breadcrumbs.d.ts +13 -2
  8. package/dist/breadcrumbs.js +1 -1
  9. package/dist/card.cjs +8 -8
  10. package/dist/card.js +2 -2
  11. package/dist/chat-thread.cjs +5 -4
  12. package/dist/chat-thread.js +3 -2
  13. package/dist/{chunk-K7JOZQRK.cjs → chunk-2G6TIX5Q.cjs} +4 -4
  14. package/dist/{chunk-K7JOZQRK.cjs.map → chunk-2G6TIX5Q.cjs.map} +1 -1
  15. package/dist/chunk-5EW47IH7.js +194 -0
  16. package/dist/chunk-5EW47IH7.js.map +1 -0
  17. package/dist/{chunk-TH4JZAMK.js → chunk-5TP642UT.js} +4 -4
  18. package/dist/{chunk-TH4JZAMK.js.map → chunk-5TP642UT.js.map} +1 -1
  19. package/dist/chunk-6BB32POL.js +29 -0
  20. package/dist/chunk-6BB32POL.js.map +1 -0
  21. package/dist/{chunk-XIA2UAVO.js → chunk-6GVOW3UL.js} +4 -4
  22. package/dist/{chunk-XIA2UAVO.js.map → chunk-6GVOW3UL.js.map} +1 -1
  23. package/dist/{chunk-4JT2QANA.cjs → chunk-6H7ZN23X.cjs} +3 -3
  24. package/dist/{chunk-4JT2QANA.cjs.map → chunk-6H7ZN23X.cjs.map} +1 -1
  25. package/dist/chunk-7ZCNZUZK.cjs +183 -0
  26. package/dist/chunk-7ZCNZUZK.cjs.map +1 -0
  27. package/dist/chunk-AHZIT3CM.js +204 -0
  28. package/dist/chunk-AHZIT3CM.js.map +1 -0
  29. package/dist/{chunk-MP55W37V.cjs → chunk-BYO5RUDE.cjs} +4 -4
  30. package/dist/{chunk-MP55W37V.cjs.map → chunk-BYO5RUDE.cjs.map} +1 -1
  31. package/dist/{chunk-2XO6EYZ7.js → chunk-EENHSMV2.js} +3 -3
  32. package/dist/{chunk-2XO6EYZ7.js.map → chunk-EENHSMV2.js.map} +1 -1
  33. package/dist/{chunk-WJHPZS3U.js → chunk-GTS3QA7M.js} +11 -4
  34. package/dist/chunk-GTS3QA7M.js.map +1 -0
  35. package/dist/{chunk-7JLKOVHX.cjs → chunk-HLI6RB5V.cjs} +4 -4
  36. package/dist/{chunk-7JLKOVHX.cjs.map → chunk-HLI6RB5V.cjs.map} +1 -1
  37. package/dist/chunk-HZUKPYR3.cjs +31 -0
  38. package/dist/chunk-HZUKPYR3.cjs.map +1 -0
  39. package/dist/chunk-J2BWXCES.js +177 -0
  40. package/dist/chunk-J2BWXCES.js.map +1 -0
  41. package/dist/{chunk-CKO2KCUN.cjs → chunk-MPCZUZ4O.cjs} +7 -175
  42. package/dist/chunk-MPCZUZ4O.cjs.map +1 -0
  43. package/dist/{chunk-G7227RTY.cjs → chunk-NIAG6OF6.cjs} +4 -22
  44. package/dist/chunk-NIAG6OF6.cjs.map +1 -0
  45. package/dist/{chunk-FBWUXSKH.js → chunk-P24A2BIR.js} +4 -22
  46. package/dist/chunk-P24A2BIR.js.map +1 -0
  47. package/dist/{chunk-3AA2KGZG.js → chunk-QF2FODTG.js} +5 -173
  48. package/dist/chunk-QF2FODTG.js.map +1 -0
  49. package/dist/{chunk-A6NYZ3F5.js → chunk-RWU2MFUL.js} +4 -4
  50. package/dist/{chunk-A6NYZ3F5.js.map → chunk-RWU2MFUL.js.map} +1 -1
  51. package/dist/{chunk-EWE776WI.cjs → chunk-SKMORSBO.cjs} +11 -4
  52. package/dist/chunk-SKMORSBO.cjs.map +1 -0
  53. package/dist/{chunk-WF6AYHOS.js → chunk-UMDOSJUH.js} +4 -4
  54. package/dist/{chunk-WF6AYHOS.js.map → chunk-UMDOSJUH.js.map} +1 -1
  55. package/dist/{chunk-23KQF47X.js → chunk-UUEAFG6V.js} +3 -3
  56. package/dist/{chunk-23KQF47X.js.map → chunk-UUEAFG6V.js.map} +1 -1
  57. package/dist/chunk-VAVS6WRZ.cjs +206 -0
  58. package/dist/chunk-VAVS6WRZ.cjs.map +1 -0
  59. package/dist/{chunk-SRICSNL4.cjs → chunk-VQLPAYQF.cjs} +12 -12
  60. package/dist/{chunk-SRICSNL4.cjs.map → chunk-VQLPAYQF.cjs.map} +1 -1
  61. package/dist/chunk-Y3QAEF2P.cjs +196 -0
  62. package/dist/chunk-Y3QAEF2P.cjs.map +1 -0
  63. package/dist/{chunk-KSSTFLV2.cjs → chunk-Z44A7NPD.cjs} +6 -6
  64. package/dist/{chunk-KSSTFLV2.cjs.map → chunk-Z44A7NPD.cjs.map} +1 -1
  65. package/dist/code-block.cjs +19 -0
  66. package/dist/code-block.cjs.map +1 -0
  67. package/dist/code-block.d.cts +55 -0
  68. package/dist/code-block.d.ts +55 -0
  69. package/dist/code-block.js +10 -0
  70. package/dist/code-block.js.map +1 -0
  71. package/dist/code-view.cjs +3 -2
  72. package/dist/code-view.js +2 -1
  73. package/dist/composer.cjs +1 -1
  74. package/dist/composer.js +1 -1
  75. package/dist/content-renderer.cjs +5 -4
  76. package/dist/content-renderer.js +2 -1
  77. package/dist/dropdown.cjs +1 -1
  78. package/dist/dropdown.js +1 -1
  79. package/dist/editor.cjs +10 -8
  80. package/dist/editor.js +8 -6
  81. package/dist/index.cjs +125 -113
  82. package/dist/index.cjs.map +1 -1
  83. package/dist/index.d.cts +2 -0
  84. package/dist/index.d.ts +2 -0
  85. package/dist/index.js +32 -28
  86. package/dist/index.js.map +1 -1
  87. package/dist/input.cjs +3 -3
  88. package/dist/input.js +3 -3
  89. package/dist/inputs.cjs +15 -15
  90. package/dist/inputs.js +6 -6
  91. package/dist/json-editor.cjs +16 -16
  92. package/dist/json-editor.js +5 -5
  93. package/dist/magic-wand.cjs +2 -2
  94. package/dist/magic-wand.js +2 -2
  95. package/dist/mobile-menu.cjs +1 -1
  96. package/dist/mobile-menu.js +1 -1
  97. package/dist/paste-pills.cjs +1 -1
  98. package/dist/paste-pills.js +1 -1
  99. package/dist/popover.cjs +1 -1
  100. package/dist/popover.js +1 -1
  101. package/dist/prompt-input.cjs +1 -1
  102. package/dist/prompt-input.js +1 -1
  103. package/dist/reason-tag.cjs +1 -1
  104. package/dist/reason-tag.js +1 -1
  105. package/dist/select.cjs +5 -5
  106. package/dist/select.js +4 -4
  107. package/dist/sidebar.cjs +1 -1
  108. package/dist/sidebar.js +1 -1
  109. package/dist/stepper.cjs +14 -0
  110. package/dist/stepper.cjs.map +1 -0
  111. package/dist/stepper.d.cts +72 -0
  112. package/dist/stepper.d.ts +72 -0
  113. package/dist/stepper.js +5 -0
  114. package/dist/stepper.js.map +1 -0
  115. package/dist/tooltip.cjs +1 -1
  116. package/dist/tooltip.js +1 -1
  117. package/docs/Breadcrumbs.md +10 -1
  118. package/docs/CodeBlock.md +84 -0
  119. package/docs/Stepper.md +124 -0
  120. package/package.json +21 -1
  121. package/dist/chunk-3AA2KGZG.js.map +0 -1
  122. package/dist/chunk-CKO2KCUN.cjs.map +0 -1
  123. package/dist/chunk-EWE776WI.cjs.map +0 -1
  124. package/dist/chunk-FBWUXSKH.js.map +0 -1
  125. package/dist/chunk-G7227RTY.cjs.map +0 -1
  126. package/dist/chunk-WJHPZS3U.js.map +0 -1
@@ -0,0 +1,196 @@
1
+ 'use strict';
2
+
3
+ var chunkSNHU2AI4_cjs = require('./chunk-SNHU2AI4.cjs');
4
+ var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
5
+ var react = require('react');
6
+ var lucideReact = require('lucide-react');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ var DEFAULT_STATE_LABELS = {
10
+ upcoming: "Not started",
11
+ current: "Current",
12
+ complete: "Completed",
13
+ error: "Error"
14
+ };
15
+ function StepperStep(_props) {
16
+ return null;
17
+ }
18
+ StepperStep.displayName = "StepperStep";
19
+ function stepsFromChildren(children) {
20
+ const out = [];
21
+ for (const child of react.Children.toArray(children)) {
22
+ if (!react.isValidElement(child) || child.type !== StepperStep) continue;
23
+ const { children: content, ...rest } = child.props;
24
+ out.push({ ...rest, content });
25
+ }
26
+ return out;
27
+ }
28
+ var indicatorClass = {
29
+ complete: "border-transparent bg-zinc-900 text-white dark:bg-white dark:text-zinc-900",
30
+ current: "border-2 border-zinc-900 bg-[color:var(--fancy-surface,var(--color-white))] text-zinc-900 ring-4 ring-zinc-900/10 dark:border-white dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:text-white dark:ring-white/15",
31
+ upcoming: "border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]",
32
+ error: "border-transparent bg-red-600 text-white dark:bg-red-500"
33
+ };
34
+ var titleClass = {
35
+ complete: "font-medium text-zinc-900 dark:text-white",
36
+ current: "font-semibold text-zinc-900 dark:text-white",
37
+ upcoming: "font-medium text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]",
38
+ error: "font-semibold text-red-700 dark:text-red-400"
39
+ };
40
+ function Indicator({ state, index }) {
41
+ return /* @__PURE__ */ jsxRuntime.jsx(
42
+ "span",
43
+ {
44
+ "aria-hidden": "true",
45
+ "data-react-fancy-stepper-indicator": "",
46
+ className: chunkZU5Q77OT_cjs.cn(
47
+ "relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-full border text-sm font-semibold",
48
+ indicatorClass[state]
49
+ ),
50
+ children: state === "complete" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { size: 16, strokeWidth: 3 }) : state === "error" ? "!" : index + 1
51
+ }
52
+ );
53
+ }
54
+ var StepperRoot = react.forwardRef(
55
+ ({
56
+ steps: stepsProp,
57
+ children,
58
+ current: currentProp,
59
+ defaultCurrent = 0,
60
+ onChange,
61
+ orientation = "vertical",
62
+ clickable = false,
63
+ showContent = "all",
64
+ stateLabels,
65
+ className,
66
+ onKeyDown,
67
+ ...rest
68
+ }, ref) => {
69
+ const [current, setCurrent] = chunkSNHU2AI4_cjs.useControllableState(currentProp, defaultCurrent, onChange);
70
+ const steps = stepsProp ?? stepsFromChildren(children);
71
+ const labels = { ...DEFAULT_STATE_LABELS, ...stateLabels };
72
+ const horizontal = orientation === "horizontal";
73
+ const handleKeyDown = (e) => {
74
+ onKeyDown?.(e);
75
+ if (!clickable || e.defaultPrevented) return;
76
+ const prevKey = horizontal ? "ArrowLeft" : "ArrowUp";
77
+ const nextKey = horizontal ? "ArrowRight" : "ArrowDown";
78
+ if (![prevKey, nextKey, "Home", "End"].includes(e.key)) return;
79
+ const list = e.currentTarget;
80
+ const target = e.target.closest("[data-react-fancy-stepper-trigger]");
81
+ if (!target || target.closest("[data-react-fancy-stepper]") !== list) return;
82
+ const buttons = Array.from(
83
+ list.querySelectorAll("[data-react-fancy-stepper-trigger]")
84
+ ).filter((b) => b.closest("[data-react-fancy-stepper]") === list && !b.disabled);
85
+ const at = buttons.indexOf(target);
86
+ let next;
87
+ if (e.key === "Home") next = buttons[0];
88
+ else if (e.key === "End") next = buttons[buttons.length - 1];
89
+ else if (e.key === nextKey) next = buttons[at + 1] ?? target;
90
+ else next = at > 0 ? buttons[at - 1] : target;
91
+ e.preventDefault();
92
+ next?.focus();
93
+ };
94
+ return /* @__PURE__ */ jsxRuntime.jsx(
95
+ "ol",
96
+ {
97
+ ref,
98
+ "data-react-fancy-stepper": "",
99
+ "data-orientation": orientation,
100
+ "data-current": current,
101
+ className: chunkZU5Q77OT_cjs.cn(horizontal ? "flex items-start" : "flex flex-col", className),
102
+ onKeyDown: handleKeyDown,
103
+ ...rest,
104
+ children: steps.map((step, index) => {
105
+ const derived = index < current ? "complete" : index === current ? "current" : "upcoming";
106
+ const state = step.state ?? derived;
107
+ const isCurrent = index === current;
108
+ const isLast = index === steps.length - 1;
109
+ const showBody = step.content != null && (showContent === "all" || isCurrent);
110
+ const headerInner = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
111
+ /* @__PURE__ */ jsxRuntime.jsx(Indicator, { state, index }),
112
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sr-only", "data-react-fancy-stepper-state": "", children: [
113
+ labels[state],
114
+ ":",
115
+ " "
116
+ ] }),
117
+ /* @__PURE__ */ jsxRuntime.jsx("span", { "data-react-fancy-stepper-title": "", className: chunkZU5Q77OT_cjs.cn("text-sm", titleClass[state]), children: step.title })
118
+ ] });
119
+ const headerClass = horizontal ? "flex flex-col items-center gap-2 text-center" : "flex items-center gap-x-4 text-left";
120
+ const header = clickable ? /* @__PURE__ */ jsxRuntime.jsx(
121
+ "button",
122
+ {
123
+ type: "button",
124
+ "data-react-fancy-stepper-trigger": "",
125
+ disabled: step.disabled,
126
+ onClick: () => {
127
+ if (index !== current) setCurrent(index);
128
+ },
129
+ className: chunkZU5Q77OT_cjs.cn(
130
+ headerClass,
131
+ "cursor-pointer rounded-md border-0 bg-transparent p-0",
132
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
133
+ "focus-visible:ring-[color:var(--fancy-focus,var(--color-blue-500))] focus-visible:ring-offset-[color:var(--fancy-surface,var(--color-white))]",
134
+ "dark:focus-visible:ring-[color:var(--fancy-focus-dark,var(--color-blue-400))] dark:focus-visible:ring-offset-[color:var(--fancy-surface-dark,var(--color-zinc-900))]",
135
+ "disabled:cursor-not-allowed disabled:opacity-50"
136
+ ),
137
+ children: headerInner
138
+ }
139
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headerClass, children: headerInner });
140
+ return /* @__PURE__ */ jsxRuntime.jsxs(
141
+ "li",
142
+ {
143
+ "data-react-fancy-stepper-step": "",
144
+ "data-state": state,
145
+ "data-index": index,
146
+ "data-step-id": step.id,
147
+ "data-disabled": step.disabled ? "true" : void 0,
148
+ "aria-current": isCurrent ? "step" : void 0,
149
+ className: chunkZU5Q77OT_cjs.cn("relative", horizontal ? "min-w-0 flex-1" : !isLast && "pb-8"),
150
+ children: [
151
+ !isLast && /* @__PURE__ */ jsxRuntime.jsx(
152
+ "span",
153
+ {
154
+ "aria-hidden": "true",
155
+ "data-react-fancy-stepper-connector": "",
156
+ className: chunkZU5Q77OT_cjs.cn(
157
+ "absolute",
158
+ horizontal ? "top-4 left-[calc(50%+1.5rem)] h-px w-[calc(100%-3rem)]" : "top-10 bottom-2 left-4 w-px -translate-x-1/2",
159
+ index < current ? "bg-zinc-900 dark:bg-white" : "bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]"
160
+ )
161
+ }
162
+ ),
163
+ header,
164
+ (step.description != null || showBody) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: horizontal ? "mt-1 px-2 text-center" : "pl-12", children: [
165
+ step.description != null && /* @__PURE__ */ jsxRuntime.jsx(
166
+ "div",
167
+ {
168
+ "data-react-fancy-stepper-description": "",
169
+ className: "text-sm text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]",
170
+ children: step.description
171
+ }
172
+ ),
173
+ showBody && /* @__PURE__ */ jsxRuntime.jsx(
174
+ "div",
175
+ {
176
+ "data-react-fancy-stepper-content": "",
177
+ className: "mt-2 text-sm text-[color:var(--fancy-text-subtle,var(--color-zinc-600))] dark:text-[color:var(--fancy-text-subtle-dark,var(--color-zinc-400))]",
178
+ children: step.content
179
+ }
180
+ )
181
+ ] })
182
+ ]
183
+ },
184
+ step.id ?? index
185
+ );
186
+ })
187
+ }
188
+ );
189
+ }
190
+ );
191
+ StepperRoot.displayName = "Stepper";
192
+ var Stepper = Object.assign(StepperRoot, { Step: StepperStep });
193
+
194
+ exports.Stepper = Stepper;
195
+ //# sourceMappingURL=chunk-Y3QAEF2P.cjs.map
196
+ //# sourceMappingURL=chunk-Y3QAEF2P.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Stepper/Stepper.tsx"],"names":["Children","isValidElement","jsx","cn","Check","forwardRef","useControllableState","jsxs","Fragment"],"mappings":"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","file":"chunk-Y3QAEF2P.cjs","sourcesContent":["import {\n Children,\n forwardRef,\n isValidElement,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport type {\n StepperProps,\n StepperStep as StepperStepData,\n StepperStepProps,\n StepperStepState,\n} from \"./Stepper.types\";\n\nconst DEFAULT_STATE_LABELS: Record<StepperStepState, string> = {\n upcoming: \"Not started\",\n current: \"Current\",\n complete: \"Completed\",\n error: \"Error\",\n};\n\n/**\n * Declarative step. Renders nothing itself: `Stepper` reads its props as data\n * and renders it through the same path as an entry in `steps`, so the two forms\n * cannot drift apart in markup, states or handles. Its children are the step's\n * content. It must be a DIRECT child of `Stepper` (not wrapped in another\n * component) for the same reason `Breadcrumbs.Item` must.\n */\nfunction StepperStep(_props: StepperStepProps): null {\n return null;\n}\nStepperStep.displayName = \"StepperStep\";\n\nfunction stepsFromChildren(children: ReactNode): StepperStepData[] {\n const out: StepperStepData[] = [];\n for (const child of Children.toArray(children)) {\n if (!isValidElement<StepperStepProps>(child) || child.type !== StepperStep) continue;\n const { children: content, ...rest } = child.props;\n out.push({ ...rest, content });\n }\n return out;\n}\n\nconst indicatorClass: Record<StepperStepState, string> = {\n complete:\n \"border-transparent bg-zinc-900 text-white dark:bg-white dark:text-zinc-900\",\n current:\n \"border-2 border-zinc-900 bg-[color:var(--fancy-surface,var(--color-white))] text-zinc-900 ring-4 ring-zinc-900/10 dark:border-white dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:text-white dark:ring-white/15\",\n upcoming:\n \"border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\",\n error: \"border-transparent bg-red-600 text-white dark:bg-red-500\",\n};\n\nconst titleClass: Record<StepperStepState, string> = {\n complete: \"font-medium text-zinc-900 dark:text-white\",\n current: \"font-semibold text-zinc-900 dark:text-white\",\n upcoming:\n \"font-medium text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\",\n error: \"font-semibold text-red-700 dark:text-red-400\",\n};\n\n/** The glyph differs per state, so state reads without colour: number, tick, \"!\". */\nfunction Indicator({ state, index }: { state: StepperStepState; index: number }) {\n return (\n <span\n aria-hidden=\"true\"\n data-react-fancy-stepper-indicator=\"\"\n className={cn(\n \"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-full border text-sm font-semibold\",\n indicatorClass[state],\n )}\n >\n {state === \"complete\" ? <Check size={16} strokeWidth={3} /> : state === \"error\" ? \"!\" : index + 1}\n </span>\n );\n}\n\nconst StepperRoot = forwardRef<HTMLOListElement, StepperProps>(\n (\n {\n steps: stepsProp,\n children,\n current: currentProp,\n defaultCurrent = 0,\n onChange,\n orientation = \"vertical\",\n clickable = false,\n showContent = \"all\",\n stateLabels,\n className,\n onKeyDown,\n ...rest\n },\n ref,\n ) => {\n const [current, setCurrent] = useControllableState(currentProp, defaultCurrent, onChange);\n const steps = stepsProp ?? stepsFromChildren(children);\n const labels = { ...DEFAULT_STATE_LABELS, ...stateLabels };\n const horizontal = orientation === \"horizontal\";\n\n // Arrow keys move focus between step buttons; Enter / Space activate them\n // natively. Focus only -- the current step changes on activation, never on\n // arrowing past it. DOM is read in the handler, never during render.\n const handleKeyDown = (e: KeyboardEvent<HTMLOListElement>) => {\n onKeyDown?.(e);\n if (!clickable || e.defaultPrevented) return;\n\n const prevKey = horizontal ? \"ArrowLeft\" : \"ArrowUp\";\n const nextKey = horizontal ? \"ArrowRight\" : \"ArrowDown\";\n if (![prevKey, nextKey, \"Home\", \"End\"].includes(e.key)) return;\n\n const list = e.currentTarget;\n const target = (e.target as HTMLElement).closest<HTMLButtonElement>(\"[data-react-fancy-stepper-trigger]\");\n if (!target || target.closest(\"[data-react-fancy-stepper]\") !== list) return;\n\n // Only this stepper's own buttons: a stepper nested in step content is\n // its own list.\n const buttons = Array.from(\n list.querySelectorAll<HTMLButtonElement>(\"[data-react-fancy-stepper-trigger]\"),\n ).filter((b) => b.closest(\"[data-react-fancy-stepper]\") === list && !b.disabled);\n const at = buttons.indexOf(target);\n\n let next: HTMLButtonElement | undefined;\n if (e.key === \"Home\") next = buttons[0];\n else if (e.key === \"End\") next = buttons[buttons.length - 1];\n else if (e.key === nextKey) next = buttons[at + 1] ?? target;\n else next = at > 0 ? buttons[at - 1] : target;\n\n e.preventDefault();\n next?.focus();\n };\n\n return (\n <ol\n ref={ref}\n data-react-fancy-stepper=\"\"\n data-orientation={orientation}\n data-current={current}\n className={cn(horizontal ? \"flex items-start\" : \"flex flex-col\", className)}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {steps.map((step, index) => {\n const derived: StepperStepState =\n index < current ? \"complete\" : index === current ? \"current\" : \"upcoming\";\n const state = step.state ?? derived;\n const isCurrent = index === current;\n const isLast = index === steps.length - 1;\n const showBody = step.content != null && (showContent === \"all\" || isCurrent);\n\n const headerInner = (\n <>\n <Indicator state={state} index={index} />\n {/* State in words, before the title so it is read first. A\n sibling of the title, so the title handle reads the title. */}\n <span className=\"sr-only\" data-react-fancy-stepper-state=\"\">\n {labels[state]}:{\" \"}\n </span>\n <span data-react-fancy-stepper-title=\"\" className={cn(\"text-sm\", titleClass[state])}>\n {step.title}\n </span>\n </>\n );\n\n const headerClass = horizontal\n ? \"flex flex-col items-center gap-2 text-center\"\n : \"flex items-center gap-x-4 text-left\";\n\n const header = clickable ? (\n <button\n type=\"button\"\n data-react-fancy-stepper-trigger=\"\"\n disabled={step.disabled}\n onClick={() => {\n if (index !== current) setCurrent(index);\n }}\n className={cn(\n headerClass,\n \"cursor-pointer rounded-md border-0 bg-transparent p-0\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"focus-visible:ring-[color:var(--fancy-focus,var(--color-blue-500))] focus-visible:ring-offset-[color:var(--fancy-surface,var(--color-white))]\",\n \"dark:focus-visible:ring-[color:var(--fancy-focus-dark,var(--color-blue-400))] dark:focus-visible:ring-offset-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n >\n {headerInner}\n </button>\n ) : (\n <div className={headerClass}>{headerInner}</div>\n );\n\n return (\n <li\n key={step.id ?? index}\n data-react-fancy-stepper-step=\"\"\n data-state={state}\n data-index={index}\n data-step-id={step.id}\n data-disabled={step.disabled ? \"true\" : undefined}\n aria-current={isCurrent ? \"step\" : undefined}\n className={cn(\"relative\", horizontal ? \"min-w-0 flex-1\" : !isLast && \"pb-8\")}\n >\n {!isLast && (\n <span\n aria-hidden=\"true\"\n data-react-fancy-stepper-connector=\"\"\n className={cn(\n \"absolute\",\n horizontal\n ? \"top-4 left-[calc(50%+1.5rem)] h-px w-[calc(100%-3rem)]\"\n : \"top-10 bottom-2 left-4 w-px -translate-x-1/2\",\n index < current\n ? \"bg-zinc-900 dark:bg-white\"\n : \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]\",\n )}\n />\n )}\n {header}\n {(step.description != null || showBody) && (\n <div className={horizontal ? \"mt-1 px-2 text-center\" : \"pl-12\"}>\n {step.description != null && (\n <div\n data-react-fancy-stepper-description=\"\"\n className=\"text-sm text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\"\n >\n {step.description}\n </div>\n )}\n {showBody && (\n <div\n data-react-fancy-stepper-content=\"\"\n className=\"mt-2 text-sm text-[color:var(--fancy-text-subtle,var(--color-zinc-600))] dark:text-[color:var(--fancy-text-subtle-dark,var(--color-zinc-400))]\"\n >\n {step.content}\n </div>\n )}\n </div>\n )}\n </li>\n );\n })}\n </ol>\n );\n },\n);\n\nStepperRoot.displayName = \"Stepper\";\n\nexport const Stepper = Object.assign(StepperRoot, { Step: StepperStep });\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk7JLKOVHX_cjs = require('./chunk-7JLKOVHX.cjs');
3
+ var chunkHLI6RB5V_cjs = require('./chunk-HLI6RB5V.cjs');
4
4
  var chunk2O5UXH5R_cjs = require('./chunk-2O5UXH5R.cjs');
5
5
  var chunkTLRFXSPA_cjs = require('./chunk-TLRFXSPA.cjs');
6
6
  var chunkHNJXBMHI_cjs = require('./chunk-HNJXBMHI.cjs');
@@ -9,8 +9,8 @@ var chunkP53432AK_cjs = require('./chunk-P53432AK.cjs');
9
9
  var chunkO3F6DYWR_cjs = require('./chunk-O3F6DYWR.cjs');
10
10
  var chunk4XMBXG4K_cjs = require('./chunk-4XMBXG4K.cjs');
11
11
  var chunkGKLETY7D_cjs = require('./chunk-GKLETY7D.cjs');
12
- var chunkKJ22KE56_cjs = require('./chunk-KJ22KE56.cjs');
13
12
  var chunk6V44RRSB_cjs = require('./chunk-6V44RRSB.cjs');
13
+ var chunkKJ22KE56_cjs = require('./chunk-KJ22KE56.cjs');
14
14
  var chunkOCHUZ7J3_cjs = require('./chunk-OCHUZ7J3.cjs');
15
15
  var chunkNZHVDWOM_cjs = require('./chunk-NZHVDWOM.cjs');
16
16
  var chunkWNWEC5OU_cjs = require('./chunk-WNWEC5OU.cjs');
@@ -523,7 +523,7 @@ function JsonEditorValue({ node, mode, size, readOnly, id, onCommit }) {
523
523
  case "enum": {
524
524
  const options = rule?.options ?? [];
525
525
  return /* @__PURE__ */ jsxRuntime.jsx(
526
- chunk7JLKOVHX_cjs.Select,
526
+ chunkHLI6RB5V_cjs.Select,
527
527
  {
528
528
  ...common,
529
529
  list: options,
@@ -903,7 +903,7 @@ function JsonEditorAddForm({ path, kind, depth, suggestedType }) {
903
903
  }
904
904
  ),
905
905
  /* @__PURE__ */ jsxRuntime.jsx(
906
- chunk7JLKOVHX_cjs.Select,
906
+ chunkHLI6RB5V_cjs.Select,
907
907
  {
908
908
  size: ctx.size,
909
909
  mode: "edit",
@@ -1351,5 +1351,5 @@ exports.parsePath = parsePath;
1351
1351
  exports.pathToString = pathToString;
1352
1352
  exports.resolveKeyRule = resolveKeyRule;
1353
1353
  exports.typeMatches = typeMatches;
1354
- //# sourceMappingURL=chunk-KSSTFLV2.cjs.map
1355
- //# sourceMappingURL=chunk-KSSTFLV2.cjs.map
1354
+ //# sourceMappingURL=chunk-Z44A7NPD.cjs.map
1355
+ //# sourceMappingURL=chunk-Z44A7NPD.cjs.map