@simpleapps-com/augur-web 2026.11.2 → 2026.11.3
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/EXPORTS.md +1 -1
- package/README.md +7 -2
- package/dist/add-to-cart-button.cjs +3 -2
- package/dist/add-to-cart-button.cjs.map +1 -1
- package/dist/add-to-cart-button.js +2 -1
- package/dist/add-to-cart-button.js.map +1 -1
- package/dist/bin-scan.d.ts +23 -0
- package/dist/bin-scan.d.ts.map +1 -0
- package/dist/button.d.ts +1 -1
- package/dist/{chunk-32XB3REY.cjs → chunk-6SSR5Z6X.cjs} +8 -5
- package/dist/chunk-6SSR5Z6X.cjs.map +1 -0
- package/dist/{chunk-RCUKSVMF.js → chunk-6USFUHWW.js} +9 -14
- package/dist/chunk-6USFUHWW.js.map +1 -0
- package/dist/{chunk-WJUDOEVB.cjs → chunk-7RDA26CL.cjs} +7 -7
- package/dist/{chunk-WJUDOEVB.cjs.map → chunk-7RDA26CL.cjs.map} +1 -1
- package/dist/{chunk-UMNTUD2P.js → chunk-AC3OCGDU.js} +6 -8
- package/dist/chunk-AC3OCGDU.js.map +1 -0
- package/dist/{chunk-MOC5N2N4.js → chunk-BSRLAXZ2.js} +9 -6
- package/dist/chunk-BSRLAXZ2.js.map +1 -0
- package/dist/{chunk-UB7HYAAC.js → chunk-EBCKH6JE.js} +6 -3
- package/dist/chunk-EBCKH6JE.js.map +1 -0
- package/dist/{chunk-WFMP6TZN.js → chunk-I6LMIYVF.js} +3 -3
- package/dist/{chunk-RGJT67PN.js → chunk-IDCDOE2L.js} +6 -3
- package/dist/chunk-IDCDOE2L.js.map +1 -0
- package/dist/{chunk-MXSQYVCK.js → chunk-IXQFZJSN.js} +7 -3
- package/dist/chunk-IXQFZJSN.js.map +1 -0
- package/dist/{chunk-76RSVRGB.cjs → chunk-KVJQIZSM.cjs} +10 -15
- package/dist/chunk-KVJQIZSM.cjs.map +1 -0
- package/dist/{chunk-TFP5RICB.cjs → chunk-L7JN7ED7.cjs} +37 -37
- package/dist/chunk-L7JN7ED7.cjs.map +1 -0
- package/dist/{chunk-JXW4XE2P.cjs → chunk-N57EZBPE.cjs} +10 -7
- package/dist/chunk-N57EZBPE.cjs.map +1 -0
- package/dist/chunk-NBXA42AW.cjs +534 -0
- package/dist/chunk-NBXA42AW.cjs.map +1 -0
- package/dist/chunk-NSMOT7GD.js +534 -0
- package/dist/chunk-NSMOT7GD.js.map +1 -0
- package/dist/{chunk-BXMTQGKV.cjs → chunk-OJS2B6U2.cjs} +7 -3
- package/dist/chunk-OJS2B6U2.cjs.map +1 -0
- package/dist/{chunk-5VMEEKZ5.cjs → chunk-SJGSBMMN.cjs} +7 -9
- package/dist/chunk-SJGSBMMN.cjs.map +1 -0
- package/dist/{chunk-C6K7FZNX.js → chunk-TEDFINZP.js} +2 -2
- package/dist/{chunk-DMWSWL4B.cjs → chunk-VCFKYOVH.cjs} +3 -3
- package/dist/{chunk-DMWSWL4B.cjs.map → chunk-VCFKYOVH.cjs.map} +1 -1
- package/dist/{chunk-Z57QBVUC.cjs → chunk-VXVOYZBN.cjs} +8 -5
- package/dist/chunk-VXVOYZBN.cjs.map +1 -0
- package/dist/{chunk-KVHOMD4T.js → chunk-YJDVFOVR.js} +40 -40
- package/dist/chunk-YJDVFOVR.js.map +1 -0
- package/dist/command.cjs +3 -3
- package/dist/command.cjs.map +1 -1
- package/dist/command.d.ts.map +1 -1
- package/dist/command.js +2 -2
- package/dist/command.js.map +1 -1
- package/dist/confirm-dialog.cjs +3 -2
- package/dist/confirm-dialog.cjs.map +1 -1
- package/dist/confirm-dialog.js +2 -1
- package/dist/confirm-dialog.js.map +1 -1
- package/dist/data-table.cjs +65 -46
- package/dist/data-table.cjs.map +1 -1
- package/dist/data-table.d.ts.map +1 -1
- package/dist/data-table.js +59 -40
- package/dist/data-table.js.map +1 -1
- package/dist/detail-panel.cjs +71 -63
- package/dist/detail-panel.cjs.map +1 -1
- package/dist/detail-panel.d.ts.map +1 -1
- package/dist/detail-panel.js +70 -62
- package/dist/detail-panel.js.map +1 -1
- package/dist/dropdown-menu.cjs +3 -2
- package/dist/dropdown-menu.cjs.map +1 -1
- package/dist/dropdown-menu.d.ts.map +1 -1
- package/dist/dropdown-menu.js +2 -1
- package/dist/financing-widget.cjs +4 -1
- package/dist/financing-widget.cjs.map +1 -1
- package/dist/financing-widget.d.ts.map +1 -1
- package/dist/financing-widget.js +4 -1
- package/dist/financing-widget.js.map +1 -1
- package/dist/form-field.cjs +3 -2
- package/dist/form-field.cjs.map +1 -1
- package/dist/form-field.d.ts.map +1 -1
- package/dist/form-field.js +2 -1
- package/dist/form-input.cjs +4 -3
- package/dist/form-input.cjs.map +1 -1
- package/dist/form-input.d.ts.map +1 -1
- package/dist/form-input.js +3 -2
- package/dist/form-select.cjs +5 -4
- package/dist/form-select.cjs.map +1 -1
- package/dist/form-select.js +4 -3
- package/dist/form-textarea.cjs +4 -3
- package/dist/form-textarea.cjs.map +1 -1
- package/dist/form-textarea.d.ts.map +1 -1
- package/dist/form-textarea.js +3 -2
- package/dist/gtm.cjs +3 -3
- package/dist/gtm.js +2 -2
- package/dist/pagination.cjs +3 -3
- package/dist/pagination.d.ts +1 -1
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +2 -2
- package/dist/payment-modal.cjs +52 -34
- package/dist/payment-modal.cjs.map +1 -1
- package/dist/payment-modal.d.ts +4 -4
- package/dist/payment-modal.d.ts.map +1 -1
- package/dist/payment-modal.js +52 -34
- package/dist/payment-modal.js.map +1 -1
- package/dist/popover.cjs +4 -4
- package/dist/popover.cjs.map +1 -1
- package/dist/popover.js +3 -3
- package/dist/popover.js.map +1 -1
- package/dist/price.cjs +2 -2
- package/dist/price.js +1 -1
- package/dist/provider.cjs +3 -3
- package/dist/provider.js +2 -2
- package/dist/quantity-input.cjs +125 -111
- package/dist/quantity-input.cjs.map +1 -1
- package/dist/quantity-input.d.ts +16 -5
- package/dist/quantity-input.d.ts.map +1 -1
- package/dist/quantity-input.js +127 -113
- package/dist/quantity-input.js.map +1 -1
- package/dist/resource-tabs.cjs +10 -5
- package/dist/resource-tabs.cjs.map +1 -1
- package/dist/resource-tabs.d.ts +1 -1
- package/dist/resource-tabs.d.ts.map +1 -1
- package/dist/resource-tabs.js +10 -5
- package/dist/resource-tabs.js.map +1 -1
- package/dist/rules.d.ts +315 -17
- package/dist/rules.d.ts.map +1 -1
- package/dist/select.cjs +3 -2
- package/dist/select.cjs.map +1 -1
- package/dist/select.d.ts.map +1 -1
- package/dist/select.js +2 -1
- package/dist/separator.cjs +8 -9
- package/dist/separator.cjs.map +1 -1
- package/dist/separator.d.ts.map +1 -1
- package/dist/separator.js +7 -8
- package/dist/separator.js.map +1 -1
- package/dist/session-replay.cjs +2 -2
- package/dist/session-replay.js +1 -1
- package/dist/spinner.cjs +3 -2
- package/dist/spinner.cjs.map +1 -1
- package/dist/spinner.d.ts +1 -1
- package/dist/spinner.d.ts.map +1 -1
- package/dist/spinner.js +2 -1
- package/dist/stock-label.cjs +28 -33
- package/dist/stock-label.cjs.map +1 -1
- package/dist/stock-label.d.ts.map +1 -1
- package/dist/stock-label.js +30 -35
- package/dist/stock-label.js.map +1 -1
- package/llms.txt +3 -2
- package/package.json +3 -1
- package/dist/chunk-32XB3REY.cjs.map +0 -1
- package/dist/chunk-5VMEEKZ5.cjs.map +0 -1
- package/dist/chunk-76RSVRGB.cjs.map +0 -1
- package/dist/chunk-BXMTQGKV.cjs.map +0 -1
- package/dist/chunk-IO77MGHW.js +0 -220
- package/dist/chunk-IO77MGHW.js.map +0 -1
- package/dist/chunk-JXW4XE2P.cjs.map +0 -1
- package/dist/chunk-KVHOMD4T.js.map +0 -1
- package/dist/chunk-MOC5N2N4.js.map +0 -1
- package/dist/chunk-MXSQYVCK.js.map +0 -1
- package/dist/chunk-QKWXJM4Q.cjs +0 -220
- package/dist/chunk-QKWXJM4Q.cjs.map +0 -1
- package/dist/chunk-RCUKSVMF.js.map +0 -1
- package/dist/chunk-RGJT67PN.js.map +0 -1
- package/dist/chunk-TFP5RICB.cjs.map +0 -1
- package/dist/chunk-UB7HYAAC.js.map +0 -1
- package/dist/chunk-UMNTUD2P.js.map +0 -1
- package/dist/chunk-Z57QBVUC.cjs.map +0 -1
- /package/dist/{chunk-WFMP6TZN.js.map → chunk-I6LMIYVF.js.map} +0 -0
- /package/dist/{chunk-C6K7FZNX.js.map → chunk-TEDFINZP.js.map} +0 -0
package/dist/stock-label.cjs
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
var _chunkQKWXJM4Qcjs = require('./chunk-QKWXJM4Q.cjs');
|
|
5
|
+
var _chunkNBXA42AWcjs = require('./chunk-NBXA42AW.cjs');
|
|
7
6
|
|
|
8
7
|
// src/stock-label.tsx
|
|
9
8
|
var _web = require('@simpleapps-com/augur-utils/web');
|
|
@@ -37,45 +36,41 @@ function createStockLabel(config = {}) {
|
|
|
37
36
|
return result;
|
|
38
37
|
}
|
|
39
38
|
function StockLabel(props) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
const loading = "loading" in props && props.loading === true;
|
|
40
|
+
const base = props;
|
|
41
|
+
const classes = mergeClassNames(props.classNames);
|
|
42
|
+
const show = _chunkNBXA42AWcjs.stockSlotsOf.call(void 0,
|
|
43
|
+
loading,
|
|
44
|
+
base.isInStock === true,
|
|
45
|
+
base.isLowStock === true,
|
|
46
|
+
base.displayQuantity != null
|
|
47
|
+
);
|
|
48
|
+
const quantity = show.quantity.map((slot) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "ml-1", classes.quantity), children: [
|
|
49
|
+
"(",
|
|
50
|
+
base.displayQuantity,
|
|
51
|
+
")"
|
|
52
|
+
] }, slot));
|
|
53
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
54
|
+
show.skeleton.map((slot) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
43
55
|
"span",
|
|
44
56
|
{
|
|
45
57
|
className: _web.cn.call(void 0,
|
|
46
58
|
"bg-muted inline-block h-4 w-16 animate-pulse rounded",
|
|
47
|
-
|
|
59
|
+
classes.skeleton,
|
|
48
60
|
props.className
|
|
49
61
|
)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
isLowStock = false,
|
|
56
|
-
displayQuantity,
|
|
57
|
-
className,
|
|
58
|
-
classNames: instanceClassNames
|
|
59
|
-
} = props;
|
|
60
|
-
const slots = mergeClassNames(instanceClassNames);
|
|
61
|
-
const view = _chunkQKWXJM4Qcjs.stockViewOf.call(void 0, false, isInStock, isLowStock);
|
|
62
|
-
if (view === "out-of-stock") {
|
|
63
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _web.cn.call(void 0, "text-red-600", slots.outOfStock, className), children: outOfStockLabel });
|
|
64
|
-
}
|
|
65
|
-
const quantity = _chunkQKWXJM4Qcjs.showStockQuantity.call(void 0, view, displayQuantity != null) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "ml-1", slots.quantity), children: [
|
|
66
|
-
"(",
|
|
67
|
-
displayQuantity,
|
|
68
|
-
")"
|
|
69
|
-
] });
|
|
70
|
-
if (view === "low-stock") {
|
|
71
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "text-orange-500", slots.lowStock, className), children: [
|
|
62
|
+
},
|
|
63
|
+
slot
|
|
64
|
+
)),
|
|
65
|
+
show.outOfStock.map((slot) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _web.cn.call(void 0, "text-red-600", classes.outOfStock, props.className), children: outOfStockLabel }, slot)),
|
|
66
|
+
show.lowStock.map((slot) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "text-orange-500", classes.lowStock, props.className), children: [
|
|
72
67
|
lowStockLabel,
|
|
73
68
|
quantity
|
|
74
|
-
] })
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
69
|
+
] }, slot)),
|
|
70
|
+
show.inStock.map((slot) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "text-green-600", classes.inStock, props.className), children: [
|
|
71
|
+
inStockLabel,
|
|
72
|
+
quantity
|
|
73
|
+
] }, slot))
|
|
79
74
|
] });
|
|
80
75
|
}
|
|
81
76
|
StockLabel.displayName = "StockLabel";
|
package/dist/stock-label.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/stock-label.cjs","../src/stock-label.tsx"],"names":[
|
|
1
|
+
{"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/stock-label.cjs","../src/stock-label.tsx"],"names":[],"mappings":"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","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/stock-label.cjs","sourcesContent":[null,"\"use client\";\n\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\nimport { stockSlotsOf } from \"./rules\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface StockLabelClassNames {\n /** In-stock text. */\n inStock?: string;\n /** Low-stock text. */\n lowStock?: string;\n /** Out-of-stock text. */\n outOfStock?: string;\n /** The loading skeleton. */\n skeleton?: string;\n /** The quantity parenthetical. */\n quantity?: string;\n}\n\nexport interface StockLabelConfig {\n /** Label for in-stock state. Default: `\"In stock\"`. */\n inStockLabel?: string;\n /** Label for low-stock state. Default: `\"Low stock\"`. */\n lowStockLabel?: string;\n /** Label for out-of-stock state. Default: `\"Out of stock\"`. */\n outOfStockLabel?: string;\n /** Default class names for sub-elements. */\n classNames?: StockLabelClassNames;\n}\n\ntype StockLabelPropsBase = {\n /** Whether the item is in stock. */\n isInStock: boolean;\n /** Whether the item has low stock. */\n isLowStock?: boolean;\n /** Quantity to display in parentheses (shown only when in stock or low stock). */\n displayQuantity?: number | null;\n /** Additional class names for the root element. */\n className?: string;\n /** Class names for sub-elements, merged with factory defaults. */\n classNames?: StockLabelClassNames;\n};\n\nexport type StockLabelProps =\n | (StockLabelPropsBase & { loading?: false })\n | { loading: true; className?: string; classNames?: StockLabelClassNames };\n\nexport interface CreateStockLabelResult {\n StockLabel: React.FC<StockLabelProps>;\n}\n\n// ---------------------------------------------------------------------------\n// Factory\n// ---------------------------------------------------------------------------\n\nconst defaults = {\n inStockLabel: \"In stock\",\n lowStockLabel: \"Low stock\",\n outOfStockLabel: \"Out of stock\",\n} as const;\n\nexport function createStockLabel(config: StockLabelConfig = {}): CreateStockLabelResult {\n const {\n inStockLabel,\n lowStockLabel,\n outOfStockLabel,\n classNames: factoryClassNames,\n } = { ...defaults, ...config };\n\n const slotKeys: (keyof StockLabelClassNames)[] = [\n \"inStock\",\n \"lowStock\",\n \"outOfStock\",\n \"skeleton\",\n \"quantity\",\n ];\n\n function mergeClassNames(instance?: StockLabelClassNames): StockLabelClassNames {\n if (!factoryClassNames && !instance) return {};\n const result: StockLabelClassNames = {};\n for (const key of slotKeys) {\n const merged = cn(factoryClassNames?.[key], instance?.[key]);\n if (merged) result[key] = merged;\n }\n return result;\n }\n\n function StockLabel(props: StockLabelProps) {\n // The loading variant carries no stock fields; read them as absent there.\n const loading = \"loading\" in props && props.loading === true;\n const base = props as StockLabelPropsBase;\n const classes = mergeClassNames(props.classNames);\n // Which view shows, and whether the quantity does, is the proved stockSlotsOf.\n const show = stockSlotsOf(\n loading,\n base.isInStock === true,\n base.isLowStock === true,\n base.displayQuantity != null,\n );\n const quantity = show.quantity.map((slot) => (\n <span key={slot} className={cn(\"ml-1\", classes.quantity)}>\n ({base.displayQuantity})\n </span>\n ));\n\n return (\n <>\n {show.skeleton.map((slot) => (\n <span\n key={slot}\n className={cn(\n \"bg-muted inline-block h-4 w-16 animate-pulse rounded\",\n classes.skeleton,\n props.className,\n )}\n />\n ))}\n {show.outOfStock.map((slot) => (\n <span key={slot} className={cn(\"text-red-600\", classes.outOfStock, props.className)}>\n {outOfStockLabel}\n </span>\n ))}\n {show.lowStock.map((slot) => (\n <span key={slot} className={cn(\"text-orange-500\", classes.lowStock, props.className)}>\n {lowStockLabel}\n {quantity}\n </span>\n ))}\n {show.inStock.map((slot) => (\n <span key={slot} className={cn(\"text-green-600\", classes.inStock, props.className)}>\n {inStockLabel}\n {quantity}\n </span>\n ))}\n </>\n );\n }\n\n StockLabel.displayName = \"StockLabel\";\n\n return { StockLabel };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stock-label.d.ts","sourceRoot":"","sources":["../src/stock-label.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED,KAAK,mBAAmB,GAAG;IACzB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,CAAC,mBAAmB,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,GAC3C;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAE7E,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;CACvC;AAYD,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,gBAAqB,GAAG,sBAAsB,
|
|
1
|
+
{"version":3,"file":"stock-label.d.ts","sourceRoot":"","sources":["../src/stock-label.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED,KAAK,mBAAmB,GAAG;IACzB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,CAAC,mBAAmB,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,GAC3C;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAE7E,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;CACvC;AAYD,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,gBAAqB,GAAG,sBAAsB,CAgFtF"}
|
package/dist/stock-label.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} from "./chunk-IO77MGHW.js";
|
|
4
|
+
stockSlotsOf
|
|
5
|
+
} from "./chunk-NSMOT7GD.js";
|
|
7
6
|
|
|
8
7
|
// src/stock-label.tsx
|
|
9
8
|
import { cn } from "@simpleapps-com/augur-utils/web";
|
|
10
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
10
|
var defaults = {
|
|
12
11
|
inStockLabel: "In stock",
|
|
13
12
|
lowStockLabel: "Low stock",
|
|
@@ -37,45 +36,41 @@ function createStockLabel(config = {}) {
|
|
|
37
36
|
return result;
|
|
38
37
|
}
|
|
39
38
|
function StockLabel(props) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
const loading = "loading" in props && props.loading === true;
|
|
40
|
+
const base = props;
|
|
41
|
+
const classes = mergeClassNames(props.classNames);
|
|
42
|
+
const show = stockSlotsOf(
|
|
43
|
+
loading,
|
|
44
|
+
base.isInStock === true,
|
|
45
|
+
base.isLowStock === true,
|
|
46
|
+
base.displayQuantity != null
|
|
47
|
+
);
|
|
48
|
+
const quantity = show.quantity.map((slot) => /* @__PURE__ */ jsxs("span", { className: cn("ml-1", classes.quantity), children: [
|
|
49
|
+
"(",
|
|
50
|
+
base.displayQuantity,
|
|
51
|
+
")"
|
|
52
|
+
] }, slot));
|
|
53
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
54
|
+
show.skeleton.map((slot) => /* @__PURE__ */ jsx(
|
|
43
55
|
"span",
|
|
44
56
|
{
|
|
45
57
|
className: cn(
|
|
46
58
|
"bg-muted inline-block h-4 w-16 animate-pulse rounded",
|
|
47
|
-
|
|
59
|
+
classes.skeleton,
|
|
48
60
|
props.className
|
|
49
61
|
)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
isLowStock = false,
|
|
56
|
-
displayQuantity,
|
|
57
|
-
className,
|
|
58
|
-
classNames: instanceClassNames
|
|
59
|
-
} = props;
|
|
60
|
-
const slots = mergeClassNames(instanceClassNames);
|
|
61
|
-
const view = stockViewOf(false, isInStock, isLowStock);
|
|
62
|
-
if (view === "out-of-stock") {
|
|
63
|
-
return /* @__PURE__ */ jsx("span", { className: cn("text-red-600", slots.outOfStock, className), children: outOfStockLabel });
|
|
64
|
-
}
|
|
65
|
-
const quantity = showStockQuantity(view, displayQuantity != null) && /* @__PURE__ */ jsxs("span", { className: cn("ml-1", slots.quantity), children: [
|
|
66
|
-
"(",
|
|
67
|
-
displayQuantity,
|
|
68
|
-
")"
|
|
69
|
-
] });
|
|
70
|
-
if (view === "low-stock") {
|
|
71
|
-
return /* @__PURE__ */ jsxs("span", { className: cn("text-orange-500", slots.lowStock, className), children: [
|
|
62
|
+
},
|
|
63
|
+
slot
|
|
64
|
+
)),
|
|
65
|
+
show.outOfStock.map((slot) => /* @__PURE__ */ jsx("span", { className: cn("text-red-600", classes.outOfStock, props.className), children: outOfStockLabel }, slot)),
|
|
66
|
+
show.lowStock.map((slot) => /* @__PURE__ */ jsxs("span", { className: cn("text-orange-500", classes.lowStock, props.className), children: [
|
|
72
67
|
lowStockLabel,
|
|
73
68
|
quantity
|
|
74
|
-
] })
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
69
|
+
] }, slot)),
|
|
70
|
+
show.inStock.map((slot) => /* @__PURE__ */ jsxs("span", { className: cn("text-green-600", classes.inStock, props.className), children: [
|
|
71
|
+
inStockLabel,
|
|
72
|
+
quantity
|
|
73
|
+
] }, slot))
|
|
79
74
|
] });
|
|
80
75
|
}
|
|
81
76
|
StockLabel.displayName = "StockLabel";
|
package/dist/stock-label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/stock-label.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/stock-label.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\nimport { stockSlotsOf } from \"./rules\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface StockLabelClassNames {\n /** In-stock text. */\n inStock?: string;\n /** Low-stock text. */\n lowStock?: string;\n /** Out-of-stock text. */\n outOfStock?: string;\n /** The loading skeleton. */\n skeleton?: string;\n /** The quantity parenthetical. */\n quantity?: string;\n}\n\nexport interface StockLabelConfig {\n /** Label for in-stock state. Default: `\"In stock\"`. */\n inStockLabel?: string;\n /** Label for low-stock state. Default: `\"Low stock\"`. */\n lowStockLabel?: string;\n /** Label for out-of-stock state. Default: `\"Out of stock\"`. */\n outOfStockLabel?: string;\n /** Default class names for sub-elements. */\n classNames?: StockLabelClassNames;\n}\n\ntype StockLabelPropsBase = {\n /** Whether the item is in stock. */\n isInStock: boolean;\n /** Whether the item has low stock. */\n isLowStock?: boolean;\n /** Quantity to display in parentheses (shown only when in stock or low stock). */\n displayQuantity?: number | null;\n /** Additional class names for the root element. */\n className?: string;\n /** Class names for sub-elements, merged with factory defaults. */\n classNames?: StockLabelClassNames;\n};\n\nexport type StockLabelProps =\n | (StockLabelPropsBase & { loading?: false })\n | { loading: true; className?: string; classNames?: StockLabelClassNames };\n\nexport interface CreateStockLabelResult {\n StockLabel: React.FC<StockLabelProps>;\n}\n\n// ---------------------------------------------------------------------------\n// Factory\n// ---------------------------------------------------------------------------\n\nconst defaults = {\n inStockLabel: \"In stock\",\n lowStockLabel: \"Low stock\",\n outOfStockLabel: \"Out of stock\",\n} as const;\n\nexport function createStockLabel(config: StockLabelConfig = {}): CreateStockLabelResult {\n const {\n inStockLabel,\n lowStockLabel,\n outOfStockLabel,\n classNames: factoryClassNames,\n } = { ...defaults, ...config };\n\n const slotKeys: (keyof StockLabelClassNames)[] = [\n \"inStock\",\n \"lowStock\",\n \"outOfStock\",\n \"skeleton\",\n \"quantity\",\n ];\n\n function mergeClassNames(instance?: StockLabelClassNames): StockLabelClassNames {\n if (!factoryClassNames && !instance) return {};\n const result: StockLabelClassNames = {};\n for (const key of slotKeys) {\n const merged = cn(factoryClassNames?.[key], instance?.[key]);\n if (merged) result[key] = merged;\n }\n return result;\n }\n\n function StockLabel(props: StockLabelProps) {\n // The loading variant carries no stock fields; read them as absent there.\n const loading = \"loading\" in props && props.loading === true;\n const base = props as StockLabelPropsBase;\n const classes = mergeClassNames(props.classNames);\n // Which view shows, and whether the quantity does, is the proved stockSlotsOf.\n const show = stockSlotsOf(\n loading,\n base.isInStock === true,\n base.isLowStock === true,\n base.displayQuantity != null,\n );\n const quantity = show.quantity.map((slot) => (\n <span key={slot} className={cn(\"ml-1\", classes.quantity)}>\n ({base.displayQuantity})\n </span>\n ));\n\n return (\n <>\n {show.skeleton.map((slot) => (\n <span\n key={slot}\n className={cn(\n \"bg-muted inline-block h-4 w-16 animate-pulse rounded\",\n classes.skeleton,\n props.className,\n )}\n />\n ))}\n {show.outOfStock.map((slot) => (\n <span key={slot} className={cn(\"text-red-600\", classes.outOfStock, props.className)}>\n {outOfStockLabel}\n </span>\n ))}\n {show.lowStock.map((slot) => (\n <span key={slot} className={cn(\"text-orange-500\", classes.lowStock, props.className)}>\n {lowStockLabel}\n {quantity}\n </span>\n ))}\n {show.inStock.map((slot) => (\n <span key={slot} className={cn(\"text-green-600\", classes.inStock, props.className)}>\n {inStockLabel}\n {quantity}\n </span>\n ))}\n </>\n );\n }\n\n StockLabel.displayName = \"StockLabel\";\n\n return { StockLabel };\n}\n"],"mappings":";;;;;;;AAEA,SAAS,UAAU;AAqGb,SAMA,UAEI,KARJ;AA7CN,IAAM,WAAW;AAAA,EACf,cAAc;AAAA,EACd,eAAe;AAAA,EACf,iBAAiB;AACnB;AAEO,SAAS,iBAAiB,SAA2B,CAAC,GAA2B;AACtF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd,IAAI,EAAE,GAAG,UAAU,GAAG,OAAO;AAE7B,QAAM,WAA2C;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,WAAS,gBAAgB,UAAuD;AAC9E,QAAI,CAAC,qBAAqB,CAAC,SAAU,QAAO,CAAC;AAC7C,UAAM,SAA+B,CAAC;AACtC,eAAW,OAAO,UAAU;AAC1B,YAAM,SAAS,GAAG,oBAAoB,GAAG,GAAG,WAAW,GAAG,CAAC;AAC3D,UAAI,OAAQ,QAAO,GAAG,IAAI;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AAEA,WAAS,WAAW,OAAwB;AAE1C,UAAM,UAAU,aAAa,SAAS,MAAM,YAAY;AACxD,UAAM,OAAO;AACb,UAAM,UAAU,gBAAgB,MAAM,UAAU;AAEhD,UAAM,OAAO;AAAA,MACX;AAAA,MACA,KAAK,cAAc;AAAA,MACnB,KAAK,eAAe;AAAA,MACpB,KAAK,mBAAmB;AAAA,IAC1B;AACA,UAAM,WAAW,KAAK,SAAS,IAAI,CAAC,SAClC,qBAAC,UAAgB,WAAW,GAAG,QAAQ,QAAQ,QAAQ,GAAG;AAAA;AAAA,MACtD,KAAK;AAAA,MAAgB;AAAA,SADd,IAEX,CACD;AAED,WACE,iCACG;AAAA,WAAK,SAAS,IAAI,CAAC,SAClB;AAAA,QAAC;AAAA;AAAA,UAEC,WAAW;AAAA,YACT;AAAA,YACA,QAAQ;AAAA,YACR,MAAM;AAAA,UACR;AAAA;AAAA,QALK;AAAA,MAMP,CACD;AAAA,MACA,KAAK,WAAW,IAAI,CAAC,SACpB,oBAAC,UAAgB,WAAW,GAAG,gBAAgB,QAAQ,YAAY,MAAM,SAAS,GAC/E,6BADQ,IAEX,CACD;AAAA,MACA,KAAK,SAAS,IAAI,CAAC,SAClB,qBAAC,UAAgB,WAAW,GAAG,mBAAmB,QAAQ,UAAU,MAAM,SAAS,GAChF;AAAA;AAAA,QACA;AAAA,WAFQ,IAGX,CACD;AAAA,MACA,KAAK,QAAQ,IAAI,CAAC,SACjB,qBAAC,UAAgB,WAAW,GAAG,kBAAkB,QAAQ,SAAS,MAAM,SAAS,GAC9E;AAAA;AAAA,QACA;AAAA,WAFQ,IAGX,CACD;AAAA,OACH;AAAA,EAEJ;AAEA,aAAW,cAAc;AAEzB,SAAO,EAAE,WAAW;AACtB;","names":[]}
|
package/llms.txt
CHANGED
|
@@ -182,7 +182,7 @@ ResourceTabs:
|
|
|
182
182
|
|
|
183
183
|
## @simpleapps-com/augur-web/spinner
|
|
184
184
|
|
|
185
|
-
- const: Spinner - Animated SVG loading spinner. Sizes: `sm` (12px), `md` (16px), `lg` (24px).
|
|
185
|
+
- const: Spinner - Animated SVG loading spinner. Sizes: `sm` (12px), `md` (16px, the default), `lg` (24px).
|
|
186
186
|
|
|
187
187
|
## @simpleapps-com/augur-web/table
|
|
188
188
|
|
|
@@ -421,7 +421,8 @@ FinancingWidget:
|
|
|
421
421
|
|
|
422
422
|
QuantityInput:
|
|
423
423
|
```tsx
|
|
424
|
-
<
|
|
424
|
+
<label htmlFor="qty">Quantity</label>
|
|
425
|
+
<QuantityInput id="qty" value={qty} onChange={setQty} min={1} step={1} />
|
|
425
426
|
```
|
|
426
427
|
|
|
427
428
|
## @simpleapps-com/augur-web/session-replay
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simpleapps-com/augur-web",
|
|
3
|
-
"version": "2026.11.
|
|
3
|
+
"version": "2026.11.3",
|
|
4
4
|
"description": "Shared React UI components for Augur ecommerce sites (Radix + Tailwind)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -286,6 +286,8 @@
|
|
|
286
286
|
"typescript": "~6.0.3",
|
|
287
287
|
"vitest": "~5.0.3",
|
|
288
288
|
"@atlas/eslint-config": "0.0.0",
|
|
289
|
+
"@atlas/foundation": "0.0.0",
|
|
290
|
+
"@atlas/json-values": "0.0.0",
|
|
289
291
|
"@atlas/tsconfig": "0.0.0",
|
|
290
292
|
"@atlas/tsup-config": "0.0.0",
|
|
291
293
|
"@atlas/utils": "0.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-32XB3REY.cjs","../src/form-input.tsx"],"names":[],"mappings":"AAAA,2cAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACNA,2EAAuB;AACvB,sDAAmB;AA+BX,+CAAA;AAZR,IAAM,UAAA,EAAkB,KAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,KAAA,EAAO,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,EAAA,EAAI,IAAA,EAAM,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AAC5E,IAAA,MAAM,QAAA,oCAAU,EAAA,UAAM,MAAA,UAAQ,IAAA;AAE9B,IAAA,uBACE,6BAAA;AAAA,MAAC,2BAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA,EAAW,qBAAA,QAAG,EAAU,SAAS,CAAA;AAAA,QAEjC,QAAA,kBAAA,6BAAA,uBAAC,EAAA,EAAM,GAAA,EAAU,EAAA,EAAI,OAAA,EAAS,IAAA,EAAa,GAAG,MAAA,CAAO;AAAA,MAAA;AAAA,IACvD,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,SAAA,CAAU,YAAA,EAAc,WAAA;ADVxB;AACA;AACE;AACF,8BAAC","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-32XB3REY.cjs","sourcesContent":[null,"\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\nimport { FormField } from \"./form-field\";\nimport { Input } from \"./input\";\n\nexport interface FormInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label: string;\n error?: string;\n required?: boolean;\n gridSpan?: string;\n}\n\n/**\n * Labeled text input with error display. Composes FormField + Input.\n *\n * @example\n * ```tsx\n * <FormInput label=\"Email\" name=\"email\" type=\"email\" required error={errors.email} />\n * ```\n */\nconst FormInput = React.forwardRef<HTMLInputElement, FormInputProps>(\n ({ label, error, required, gridSpan, className, id, name, ...props }, ref) => {\n const htmlFor = id ?? name ?? \"\";\n\n return (\n <FormField\n label={label}\n htmlFor={htmlFor}\n required={required}\n error={error}\n className={cn(gridSpan, className)}\n >\n <Input ref={ref} id={htmlFor} name={name} {...props} />\n </FormField>\n );\n },\n);\nFormInput.displayName = \"FormInput\";\n\nexport { FormInput };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-5VMEEKZ5.cjs","../src/spinner.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACA;ACFA,sDAAmB;AAgBf,+CAAA;AATJ,IAAM,YAAA,EAAc;AAAA,EAClB,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAGA,IAAM,QAAA,EAAU,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,KAAK,CAAA,EAAA,GAAoB;AAC5D,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,qBAAA,cAAG,EAAgB,WAAA,CAAY,IAAI,CAAA,EAAG,SAAS,CAAA;AAAA,MAC1D,KAAA,EAAM,4BAAA;AAAA,MACN,IAAA,EAAK,MAAA;AAAA,MACL,OAAA,EAAQ,WAAA;AAAA,MAER,QAAA,EAAA;AAAA,wBAAA,6BAAA,QAAC,EAAA,EAAO,SAAA,EAAU,YAAA,EAAa,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,MAAA,EAAO,cAAA,EAAe,WAAA,EAAY,IAAA,CAAI,CAAA;AAAA,wBAC5F,6BAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,YAAA;AAAA,YACV,IAAA,EAAK,cAAA;AAAA,YACL,CAAA,EAAE;AAAA,UAAA;AAAA,QACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAA;ADEA;AACA;AACE;AACF,0BAAC","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-5VMEEKZ5.cjs","sourcesContent":[null,"import { cn } from \"@simpleapps-com/augur-utils/web\";\n\ninterface SpinnerProps {\n className?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst sizeClasses = {\n sm: \"h-3 w-3\",\n md: \"h-4 w-4\",\n lg: \"h-6 w-6\",\n};\n\n/** Animated SVG loading spinner. Sizes: `sm` (12px), `md` (16px), `lg` (24px). */\nconst Spinner = ({ className, size = \"md\" }: SpinnerProps) => {\n return (\n <svg\n className={cn(\"animate-spin\", sizeClasses[size], className)}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"m4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n );\n};\n\nexport { Spinner };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-76RSVRGB.cjs","../src/select.tsx"],"names":[],"mappings":"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","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-76RSVRGB.cjs","sourcesContent":[null,"/** Styled wrapper around @radix-ui/react-select. See https://www.radix-ui.com/primitives/docs/components/select */\n\"use client\";\n\nimport * as React from \"react\";\nimport { LuChevronsUpDown, LuCheck, LuChevronDown, LuChevronUp } from \"react-icons/lu\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst Select = SelectPrimitive.Root;\nconst SelectGroup = SelectPrimitive.Group;\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm focus:outline-none focus:ring-1 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <LuChevronsUpDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <LuChevronUp />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <LuChevronDown />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <LuCheck className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"bg-muted -mx-1 my-1 h-px\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-BXMTQGKV.cjs","../src/form-field.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACA;ACHA,2EAAuB;AACvB,sDAAmB;AAiBX,+CAAA;AAJR,IAAM,UAAA,EAAkB,KAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,SAAA,EAAW,SAAS,CAAA,EAAG,GAAA,EAAA,GAAQ;AACjE,IAAA,uBACE,8BAAA,KAAC,EAAA,EAAI,GAAA,EAAU,SAAA,EAAW,qBAAA,WAAG,EAAa,SAAS,CAAA,EACjD,QAAA,EAAA;AAAA,sBAAA,8BAAA,uBAAC,EAAA,EAAM,OAAA,EACJ,QAAA,EAAA;AAAA,QAAA,KAAA;AAAA,QACA,SAAA,mBAAY,6BAAA,MAAC,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAmB,QAAA,EAAA,IAAA,CAAC;AAAA,MAAA,EAAA,CACnD,CAAA;AAAA,MACC,QAAA;AAAA,MACA,MAAA,mBAAS,6BAAA,GAAC,EAAA,EAAE,SAAA,EAAU,0BAAA,EAA4B,QAAA,EAAA,MAAA,CAAM;AAAA,IAAA,EAAA,CAC3D,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,SAAA,CAAU,YAAA,EAAc,WAAA;ADRxB;AACA;AACE;AACF,8BAAC","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-BXMTQGKV.cjs","sourcesContent":[null,"\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\nimport { Label } from \"./label\";\n\nexport interface FormFieldProps {\n label: string;\n htmlFor: string;\n required?: boolean;\n error?: string;\n className?: string;\n children: React.ReactNode;\n}\n\n/** Base form layout: label + children + optional error message. */\nconst FormField = React.forwardRef<HTMLDivElement, FormFieldProps>(\n ({ label, htmlFor, required, error, className, children }, ref) => {\n return (\n <div ref={ref} className={cn(\"space-y-2\", className)}>\n <Label htmlFor={htmlFor}>\n {label}\n {required && <span className=\"text-destructive\">*</span>}\n </Label>\n {children}\n {error && <p className=\"text-destructive text-sm\">{error}</p>}\n </div>\n );\n },\n);\nFormField.displayName = \"FormField\";\n\nexport { FormField };\n"]}
|
package/dist/chunk-IO77MGHW.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
// ../utils/src/strings.ts
|
|
4
|
-
function codeAt(s, i) {
|
|
5
|
-
return i >= 0 && i < s.length ? s.charCodeAt(i) : -1;
|
|
6
|
-
}
|
|
7
|
-
function indexOfCode(s, code, from) {
|
|
8
|
-
const c = codeAt(s, from);
|
|
9
|
-
if (c === code) return from;
|
|
10
|
-
if (c === -1) return -1;
|
|
11
|
-
return indexOfCode(s, code, from + 1);
|
|
12
|
-
}
|
|
13
|
-
function startsWithAt(s, x, pos) {
|
|
14
|
-
const at = Math.min(pos, s.length);
|
|
15
|
-
return s.slice(at, Math.min(at + x.length, s.length)) === x;
|
|
16
|
-
}
|
|
17
|
-
function untilCode(s, code) {
|
|
18
|
-
const k = indexOfCode(s, code, 0);
|
|
19
|
-
return k >= 0 ? s.slice(0, k) : s;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// ../utils/src/replace.ts
|
|
23
|
-
function codeIndex(codes, c, i) {
|
|
24
|
-
if (i === codes.length) return -1;
|
|
25
|
-
return codes[i] === c ? i : codeIndex(codes, c, i + 1);
|
|
26
|
-
}
|
|
27
|
-
function substitute(s, codes, texts) {
|
|
28
|
-
let out = "";
|
|
29
|
-
for (let i = 0; i !== s.length; i++) {
|
|
30
|
-
const k = codeIndex(codes, s.charCodeAt(i), 0);
|
|
31
|
-
out = k >= 0 && k < texts.length ? out + texts[k] : out + s.slice(i, i + 1);
|
|
32
|
-
}
|
|
33
|
-
return out;
|
|
34
|
-
}
|
|
35
|
-
function replaceCode(s, from, to) {
|
|
36
|
-
return substitute(s, [from], [to]);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// src/rules.ts
|
|
40
|
-
function pageRangeFrom(total, i) {
|
|
41
|
-
if (i >= total) return [];
|
|
42
|
-
return [{ kind: "page", n: i + 1 }, ...pageRangeFrom(total, i + 1)];
|
|
43
|
-
}
|
|
44
|
-
function pageNumbersOf(current, total) {
|
|
45
|
-
if (total <= 0) return [];
|
|
46
|
-
if (total === 1) return [{ kind: "page", n: 1 }];
|
|
47
|
-
const page = clampPage(current, total);
|
|
48
|
-
if (total <= 5) return pageRangeFrom(total, 0);
|
|
49
|
-
const first = { kind: "page", n: 1 };
|
|
50
|
-
const last = { kind: "page", n: total };
|
|
51
|
-
const gap = { kind: "ellipsis" };
|
|
52
|
-
if (page <= 3) {
|
|
53
|
-
return [
|
|
54
|
-
first,
|
|
55
|
-
{ kind: "page", n: 2 },
|
|
56
|
-
{ kind: "page", n: 3 },
|
|
57
|
-
{ kind: "page", n: 4 },
|
|
58
|
-
gap,
|
|
59
|
-
last
|
|
60
|
-
];
|
|
61
|
-
}
|
|
62
|
-
if (page >= total - 2) {
|
|
63
|
-
return [
|
|
64
|
-
first,
|
|
65
|
-
gap,
|
|
66
|
-
{ kind: "page", n: total - 3 },
|
|
67
|
-
{ kind: "page", n: total - 2 },
|
|
68
|
-
{ kind: "page", n: total - 1 },
|
|
69
|
-
last
|
|
70
|
-
];
|
|
71
|
-
}
|
|
72
|
-
return [
|
|
73
|
-
first,
|
|
74
|
-
gap,
|
|
75
|
-
{ kind: "page", n: page - 1 },
|
|
76
|
-
{ kind: "page", n: page },
|
|
77
|
-
{ kind: "page", n: page + 1 },
|
|
78
|
-
gap,
|
|
79
|
-
last
|
|
80
|
-
];
|
|
81
|
-
}
|
|
82
|
-
function clampPage(current, total) {
|
|
83
|
-
const capped = current > total ? total : current;
|
|
84
|
-
return capped < 1 ? 1 : capped;
|
|
85
|
-
}
|
|
86
|
-
function isFirstPage(page) {
|
|
87
|
-
return page <= 1;
|
|
88
|
-
}
|
|
89
|
-
function isLastPage(page, totalPages) {
|
|
90
|
-
return page >= totalPages;
|
|
91
|
-
}
|
|
92
|
-
function prevTarget(page) {
|
|
93
|
-
return isFirstPage(page) ? 1 : page - 1;
|
|
94
|
-
}
|
|
95
|
-
function nextTarget(page, totalPages) {
|
|
96
|
-
return isLastPage(page, totalPages) ? totalPages : page + 1;
|
|
97
|
-
}
|
|
98
|
-
function clampQuantity(value, min, max) {
|
|
99
|
-
const atLeast = value < min ? min : value;
|
|
100
|
-
if (max === void 0) return atLeast;
|
|
101
|
-
return atLeast > max ? max : atLeast;
|
|
102
|
-
}
|
|
103
|
-
function stepDown(value, step, min) {
|
|
104
|
-
return value - step > min ? value - step : min;
|
|
105
|
-
}
|
|
106
|
-
function stepUp(value, step, max) {
|
|
107
|
-
if (max === void 0) return value + step;
|
|
108
|
-
return value + step > max ? max : value + step;
|
|
109
|
-
}
|
|
110
|
-
function decreaseDisabled(disabled, value, min) {
|
|
111
|
-
return disabled || value <= min;
|
|
112
|
-
}
|
|
113
|
-
function increaseDisabled(disabled, value, max) {
|
|
114
|
-
if (max === void 0) return disabled;
|
|
115
|
-
return disabled || value >= max;
|
|
116
|
-
}
|
|
117
|
-
function digitKey(key) {
|
|
118
|
-
const c = codeAt(key, 0);
|
|
119
|
-
return c >= 48 && c <= 56 || key === "9";
|
|
120
|
-
}
|
|
121
|
-
function editingKey(key) {
|
|
122
|
-
return key === "Backspace" || key === "Delete" || key === "ArrowLeft" || key === "ArrowRight" || key === "Tab" || key === "Enter";
|
|
123
|
-
}
|
|
124
|
-
function keyAllowed(key, decimals, hasDot) {
|
|
125
|
-
return editingKey(key) || decimals > 0 && key === "." && !hasDot || digitKey(key);
|
|
126
|
-
}
|
|
127
|
-
function cleanQtyFrom(raw, allowDot, seenDot, i) {
|
|
128
|
-
if (i >= raw.length) return "";
|
|
129
|
-
const c = codeAt(raw, i);
|
|
130
|
-
if (c >= 48 && c <= 57) return raw.slice(i, i + 1) + cleanQtyFrom(raw, allowDot, seenDot, i + 1);
|
|
131
|
-
if (allowDot && c === 46 && !seenDot) return "." + cleanQtyFrom(raw, allowDot, true, i + 1);
|
|
132
|
-
return cleanQtyFrom(raw, allowDot, seenDot, i + 1);
|
|
133
|
-
}
|
|
134
|
-
function stockViewOf(loading, isInStock, isLowStock) {
|
|
135
|
-
if (loading) return "loading";
|
|
136
|
-
if (!isInStock) return "out-of-stock";
|
|
137
|
-
return isLowStock ? "low-stock" : "in-stock";
|
|
138
|
-
}
|
|
139
|
-
function showStockQuantity(view, hasQuantity) {
|
|
140
|
-
return hasQuantity && view !== "out-of-stock" && view !== "loading";
|
|
141
|
-
}
|
|
142
|
-
function priceViewOf(loading, valueIsZero, hasOriginal) {
|
|
143
|
-
if (loading) return "skeleton";
|
|
144
|
-
if (valueIsZero && !hasOriginal) return "zero-label";
|
|
145
|
-
return "amount";
|
|
146
|
-
}
|
|
147
|
-
function needsQuotes(s) {
|
|
148
|
-
return indexOfCode(s, 44, 0) >= 0 || indexOfCode(s, 34, 0) >= 0 || indexOfCode(s, 10, 0) >= 0;
|
|
149
|
-
}
|
|
150
|
-
function csvField(s) {
|
|
151
|
-
if (!needsQuotes(s)) return s;
|
|
152
|
-
return '"' + replaceCode(s, 34, '""') + '"';
|
|
153
|
-
}
|
|
154
|
-
function ariaSortOf(sortable, dir) {
|
|
155
|
-
if (!sortable) return void 0;
|
|
156
|
-
if (dir === "asc") return "ascending";
|
|
157
|
-
if (dir === "desc") return "descending";
|
|
158
|
-
return "none";
|
|
159
|
-
}
|
|
160
|
-
function alignClass(align) {
|
|
161
|
-
if (align === "left") return "text-left";
|
|
162
|
-
if (align === "center") return "text-center";
|
|
163
|
-
return align === "right" ? "text-right" : "";
|
|
164
|
-
}
|
|
165
|
-
function bodyViewOf(loading, rowCount) {
|
|
166
|
-
if (loading) return "loading";
|
|
167
|
-
return rowCount === 0 ? "empty" : "rows";
|
|
168
|
-
}
|
|
169
|
-
function gtmTiming(strategy, hasIdleCallback) {
|
|
170
|
-
if (strategy === "lazyOnload" && hasIdleCallback) return "idle";
|
|
171
|
-
return strategy === "afterInteractive" ? "next-tick" : "now";
|
|
172
|
-
}
|
|
173
|
-
function replaySampled(disabled, injected, rate, draw) {
|
|
174
|
-
return !disabled && !injected && !(rate < 1 && draw > rate);
|
|
175
|
-
}
|
|
176
|
-
function binMarkAt(s, k) {
|
|
177
|
-
const c = codeAt(s, k);
|
|
178
|
-
const v = codeAt(s, k + 5);
|
|
179
|
-
return (c === 63 || c === 38) && startsWithAt(s, "Bin=", k + 1) && v >= 0 && v !== 38;
|
|
180
|
-
}
|
|
181
|
-
function binAt(s, i) {
|
|
182
|
-
if (i + 6 > s.length) return -1;
|
|
183
|
-
if (binMarkAt(s, i)) return i;
|
|
184
|
-
return binAt(s, i + 1);
|
|
185
|
-
}
|
|
186
|
-
function binFromString(s) {
|
|
187
|
-
const k = binAt(s, 0);
|
|
188
|
-
if (k < 0) return void 0;
|
|
189
|
-
return untilCode(afterBinMark(s, k), 38);
|
|
190
|
-
}
|
|
191
|
-
function afterBinMark(s, k) {
|
|
192
|
-
if (k < 0 || k + 5 > s.length) return "";
|
|
193
|
-
return s.slice(k + 5);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
export {
|
|
197
|
-
pageNumbersOf,
|
|
198
|
-
isFirstPage,
|
|
199
|
-
isLastPage,
|
|
200
|
-
prevTarget,
|
|
201
|
-
nextTarget,
|
|
202
|
-
clampQuantity,
|
|
203
|
-
stepDown,
|
|
204
|
-
stepUp,
|
|
205
|
-
decreaseDisabled,
|
|
206
|
-
increaseDisabled,
|
|
207
|
-
keyAllowed,
|
|
208
|
-
cleanQtyFrom,
|
|
209
|
-
stockViewOf,
|
|
210
|
-
showStockQuantity,
|
|
211
|
-
priceViewOf,
|
|
212
|
-
csvField,
|
|
213
|
-
ariaSortOf,
|
|
214
|
-
alignClass,
|
|
215
|
-
bodyViewOf,
|
|
216
|
-
gtmTiming,
|
|
217
|
-
replaySampled,
|
|
218
|
-
binFromString
|
|
219
|
-
};
|
|
220
|
-
//# sourceMappingURL=chunk-IO77MGHW.js.map
|