@geomak/ui 7.18.5 → 7.20.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.
- package/.claude/commands/ui-auth-shell.md +48 -0
- package/.claude/commands/ui-bootstrap.md +36 -0
- package/.claude/commands/ui-find.md +12 -0
- package/.claude/commands/ui-form.md +38 -0
- package/.claude/commands/ui-lookup.md +13 -0
- package/.claude/commands/ui-modal.md +50 -0
- package/.claude/commands/ui-page.md +36 -0
- package/.claude/commands/ui-scaffold.md +73 -0
- package/.claude/commands/ui-story.md +30 -0
- package/.claude/commands/ui-table.md +38 -0
- package/.claude/skills/oxygen-ui/SKILL.md +402 -0
- package/README.md +74 -34
- package/dist/{chunk-4V4U2W7K.cjs → chunk-4WD27VQX.cjs} +2 -2
- package/dist/chunk-4WD27VQX.cjs.map +1 -0
- package/dist/{chunk-KAFJJO5O.js → chunk-ILDMP2Q2.js} +2 -2
- package/dist/chunk-ILDMP2Q2.js.map +1 -0
- package/dist/{chunk-CNUDNGJM.cjs → chunk-LY3MZYWU.cjs} +3 -3
- package/dist/chunk-LY3MZYWU.cjs.map +1 -0
- package/dist/{chunk-DXOWXLKK.js → chunk-VM2725HH.js} +3 -3
- package/dist/chunk-VM2725HH.js.map +1 -0
- package/dist/icons/index.cjs +105 -105
- package/dist/icons/index.d.cts +2 -2
- package/dist/icons/index.d.ts +2 -2
- package/dist/icons/index.js +1 -1
- package/dist/{index-BktppxXp.d.ts → index-B8P5qbWt.d.cts} +5 -5
- package/dist/{index-BktppxXp.d.cts → index-B8P5qbWt.d.ts} +5 -5
- package/dist/index.cjs +29 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +237 -237
- package/dist/index.d.ts +237 -237
- package/dist/index.js +18 -18
- package/dist/index.js.map +1 -1
- package/dist/tokens/index.cjs +4 -4
- package/dist/tokens/index.d.cts +1 -1
- package/dist/tokens/index.d.ts +1 -1
- package/dist/tokens/index.js +1 -1
- package/package.json +10 -3
- package/scripts/setup-claude.mjs +136 -0
- package/dist/chunk-4V4U2W7K.cjs.map +0 -1
- package/dist/chunk-CNUDNGJM.cjs.map +0 -1
- package/dist/chunk-DXOWXLKK.js.map +0 -1
- package/dist/chunk-KAFJJO5O.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { X, Error as Error$1, Warning, CheckCircle, Info } from './chunk-
|
|
2
|
-
export { icons_default as Icon, createIcon } from './chunk-
|
|
3
|
-
import { colors_default } from './chunk-
|
|
4
|
-
export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-
|
|
1
|
+
import { X, Error as Error$1, Warning, CheckCircle, Info } from './chunk-ILDMP2Q2.js';
|
|
2
|
+
export { icons_default as Icon, createIcon } from './chunk-ILDMP2Q2.js';
|
|
3
|
+
import { colors_default } from './chunk-VM2725HH.js';
|
|
4
|
+
export { colors_default as COLORS, PALETTE as palette, semanticTokens, vars } from './chunk-VM2725HH.js';
|
|
5
5
|
import React36, { useMemo, createContext, useState, useEffect, useId, useCallback, useRef, useContext, useSyncExternalStore, useLayoutEffect } from 'react';
|
|
6
6
|
import { createPortal } from 'react-dom';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -510,7 +510,7 @@ var VARIANT_CLASSES = {
|
|
|
510
510
|
"disabled:border-foreground-muted disabled:text-foreground-muted disabled:cursor-not-allowed",
|
|
511
511
|
"focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2"
|
|
512
512
|
].join(" "),
|
|
513
|
-
// Neutral, flat, hairline-bordered button
|
|
513
|
+
// Neutral, flat, hairline-bordered button, the quiet sibling of `secondary`
|
|
514
514
|
// (which carries the accent border). Mirrors the input border behaviour:
|
|
515
515
|
// hairline at rest, strong-hairline on hover. No shadow (flat at rest).
|
|
516
516
|
outline: [
|
|
@@ -574,7 +574,7 @@ var Button = React36.forwardRef(function Button2({
|
|
|
574
574
|
onClick,
|
|
575
575
|
className = "",
|
|
576
576
|
type: _deprecated,
|
|
577
|
-
// consume deprecated prop
|
|
577
|
+
// consume deprecated prop, do not spread to DOM
|
|
578
578
|
...rest
|
|
579
579
|
}, ref) {
|
|
580
580
|
return /* @__PURE__ */ jsxs(
|
|
@@ -918,14 +918,14 @@ function Tooltip({
|
|
|
918
918
|
className: cx(
|
|
919
919
|
// Layout + typography
|
|
920
920
|
"pointer-events-none z-[500000] max-w-[220px] px-2.5 py-1.5",
|
|
921
|
-
// Inverted surface: dark on light, light on dark
|
|
921
|
+
// Inverted surface: dark on light, light on dark, both readable
|
|
922
922
|
"bg-foreground text-background",
|
|
923
923
|
"text-xs font-medium leading-snug",
|
|
924
924
|
// Shape + shadow
|
|
925
925
|
"rounded-md shadow-md",
|
|
926
|
-
// Out animation (always the same
|
|
926
|
+
// Out animation (always the same, just fade)
|
|
927
927
|
"data-[state=closed]:animate-tooltip-out",
|
|
928
|
-
// In animation
|
|
928
|
+
// In animation, direction-aware
|
|
929
929
|
ANIMATION[placement],
|
|
930
930
|
className
|
|
931
931
|
),
|
|
@@ -3626,7 +3626,7 @@ var FormStore = class {
|
|
|
3626
3626
|
// Field-array key bookkeeping (stable React keys across reorder/removal).
|
|
3627
3627
|
keys = {};
|
|
3628
3628
|
keySeq = 1;
|
|
3629
|
-
// Root snapshot
|
|
3629
|
+
// Root snapshot, a new ref on every change, for form-level subscribers.
|
|
3630
3630
|
rootSnap = { v: 0 };
|
|
3631
3631
|
constructor(opts = {}) {
|
|
3632
3632
|
this.initialValues = deepClone(opts.initialValues ?? {});
|
|
@@ -3775,7 +3775,7 @@ var FormStore = class {
|
|
|
3775
3775
|
this.clearBranch(name);
|
|
3776
3776
|
this.setValue(name, arr, { validate: false });
|
|
3777
3777
|
};
|
|
3778
|
-
/** Drop any errors/touched flags under `name
|
|
3778
|
+
/** Drop any errors/touched flags under `name.`, used when an array shifts. */
|
|
3779
3779
|
clearBranch(name) {
|
|
3780
3780
|
const prefix = name + ".";
|
|
3781
3781
|
const errors = {};
|
|
@@ -4369,7 +4369,7 @@ function NotificationItem({
|
|
|
4369
4369
|
exit: getExitMotion(pos, reduced),
|
|
4370
4370
|
transition: reduced ? { duration: 0 } : {
|
|
4371
4371
|
// Opacity finishes in 0.15 s; y/scale take 0.34 s.
|
|
4372
|
-
// Card is opaque while still travelling
|
|
4372
|
+
// Card is opaque while still travelling, movement
|
|
4373
4373
|
// is clearly visible to the user.
|
|
4374
4374
|
opacity: { duration: 0.15 },
|
|
4375
4375
|
y: { type: "tween", duration: 0.34, ease: [0.16, 1, 0.3, 1] },
|
|
@@ -4473,7 +4473,7 @@ function useNotification() {
|
|
|
4473
4473
|
};
|
|
4474
4474
|
}
|
|
4475
4475
|
var SIZE_MAP3 = {
|
|
4476
|
-
// xs is sized to fit beside button text (~14px)
|
|
4476
|
+
// xs is sized to fit beside button text (~14px), async AutoComplete,
|
|
4477
4477
|
// Button loading prop, inline status badges, etc.
|
|
4478
4478
|
xs: { outer: "w-3.5 h-3.5", inner: "w-1.5 h-1.5", dot: "w-0.5 h-0.5", stroke: "border-[1.5px]", text: "text-[10px]" },
|
|
4479
4479
|
sm: { outer: "w-8 h-8", inner: "w-4 h-4", dot: "w-1 h-1", stroke: "border-2", text: "text-xs" },
|
|
@@ -4953,13 +4953,13 @@ function ContextMenu({ items, children, className = "" }) {
|
|
|
4953
4953
|
] });
|
|
4954
4954
|
}
|
|
4955
4955
|
var CONTENT_CLASSNAME = [
|
|
4956
|
-
// Surface
|
|
4956
|
+
// Surface, semantic tokens, both modes covered
|
|
4957
4957
|
"min-w-[180px] rounded-lg border border-border bg-surface shadow-lg",
|
|
4958
4958
|
"p-1 z-[500000] text-sm text-foreground",
|
|
4959
4959
|
// Entry animation matches the Tooltip / Dropdown style
|
|
4960
4960
|
"animate-in fade-in-0 zoom-in-95",
|
|
4961
4961
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
4962
|
-
// Outline reset
|
|
4962
|
+
// Outline reset, Radix handles focus internally
|
|
4963
4963
|
"focus:outline-none"
|
|
4964
4964
|
].join(" ");
|
|
4965
4965
|
var ITEM_CLASSNAME = [
|
|
@@ -5247,7 +5247,7 @@ function Wizard({
|
|
|
5247
5247
|
transition: {
|
|
5248
5248
|
duration: reduced ? 0 : 0.32,
|
|
5249
5249
|
ease: [0.16, 1, 0.3, 1]
|
|
5250
|
-
// ease-out-expo
|
|
5250
|
+
// ease-out-expo, settles softly
|
|
5251
5251
|
},
|
|
5252
5252
|
"aria-hidden": "true"
|
|
5253
5253
|
}
|
|
@@ -9157,7 +9157,7 @@ function Dropdown({
|
|
|
9157
9157
|
item.icon && /* @__PURE__ */ jsx("div", { children: item.icon }),
|
|
9158
9158
|
item.label
|
|
9159
9159
|
] }),
|
|
9160
|
-
isSelected(item.key) && // currentColor
|
|
9160
|
+
isSelected(item.key) && // currentColor, checkmark follows
|
|
9161
9161
|
// the item's text colour, which
|
|
9162
9162
|
// flips automatically on hover.
|
|
9163
9163
|
/* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
|
|
@@ -11854,7 +11854,7 @@ function LeadCapture({
|
|
|
11854
11854
|
buttonLabel = "Subscribe",
|
|
11855
11855
|
onSubmit,
|
|
11856
11856
|
note,
|
|
11857
|
-
successMessage = "Thanks
|
|
11857
|
+
successMessage = "Thanks, you\u2019re on the list.",
|
|
11858
11858
|
background = "gradient",
|
|
11859
11859
|
centered = true,
|
|
11860
11860
|
className = "",
|