@simpleapps-com/augur-web 1.0.7 → 1.0.9
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/dist/accordion.cjs.map +1 -1
- package/dist/accordion.js.map +1 -1
- package/dist/add-to-cart-button.cjs +46 -0
- package/dist/add-to-cart-button.cjs.map +1 -0
- package/dist/add-to-cart-button.d.cts +14 -0
- package/dist/add-to-cart-button.d.ts +14 -0
- package/dist/add-to-cart-button.js +46 -0
- package/dist/add-to-cart-button.js.map +1 -0
- package/dist/breadcrumbs.cjs.map +1 -1
- package/dist/breadcrumbs.d.cts +14 -0
- package/dist/breadcrumbs.d.ts +14 -0
- package/dist/breadcrumbs.js.map +1 -1
- package/dist/button.cjs +2 -2
- package/dist/button.d.cts +14 -1
- package/dist/button.d.ts +14 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs.map +1 -1
- package/dist/card.js.map +1 -1
- package/dist/checkbox.cjs.map +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/{chunk-FHS7SJEQ.js → chunk-3FSJ76CI.js} +1 -1
- package/dist/chunk-3FSJ76CI.js.map +1 -0
- package/dist/{chunk-GPDD67CJ.js → chunk-6JHTOVHH.js} +2 -2
- package/dist/chunk-6JHTOVHH.js.map +1 -0
- package/dist/{chunk-SXJP4G5U.cjs → chunk-AMGUJSB4.cjs} +1 -1
- package/dist/chunk-AMGUJSB4.cjs.map +1 -0
- package/dist/{chunk-BYHOMRXR.js → chunk-BMQGSDHH.js} +1 -1
- package/dist/chunk-BMQGSDHH.js.map +1 -0
- package/dist/{chunk-ND6U4UQQ.js → chunk-C7E3ITLU.js} +1 -1
- package/dist/chunk-C7E3ITLU.js.map +1 -0
- package/dist/chunk-DONF5PIE.js +47 -0
- package/dist/chunk-DONF5PIE.js.map +1 -0
- package/dist/{chunk-NWGXDXRV.cjs → chunk-DQJDDXSH.cjs} +1 -1
- package/dist/chunk-DQJDDXSH.cjs.map +1 -0
- package/dist/chunk-ECNNL5MU.cjs +145 -0
- package/dist/chunk-ECNNL5MU.cjs.map +1 -0
- package/dist/chunk-ECZR6SW3.cjs +47 -0
- package/dist/chunk-ECZR6SW3.cjs.map +1 -0
- package/dist/{chunk-PTAWV5SA.js → chunk-FHUB6XI5.js} +1 -1
- package/dist/chunk-FHUB6XI5.js.map +1 -0
- package/dist/{chunk-VT4JLAIE.cjs → chunk-I4Q2GZZK.cjs} +1 -1
- package/dist/{chunk-VT4JLAIE.cjs.map → chunk-I4Q2GZZK.cjs.map} +1 -1
- package/dist/{chunk-DAU3SFHM.js → chunk-LCNFPBPV.js} +1 -1
- package/dist/chunk-LCNFPBPV.js.map +1 -0
- package/dist/{chunk-VMOQCPK5.cjs → chunk-LNMPVCIY.cjs} +3 -3
- package/dist/{chunk-VMOQCPK5.cjs.map → chunk-LNMPVCIY.cjs.map} +1 -1
- package/dist/{chunk-3RVGVJDI.cjs → chunk-MGOH4OFM.cjs} +1 -1
- package/dist/chunk-MGOH4OFM.cjs.map +1 -0
- package/dist/{chunk-N2TV6QZO.cjs → chunk-QLSIUW3X.cjs} +1 -1
- package/dist/chunk-QLSIUW3X.cjs.map +1 -0
- package/dist/{chunk-Q6H6D3AN.cjs → chunk-SHF52AZM.cjs} +1 -1
- package/dist/chunk-SHF52AZM.cjs.map +1 -0
- package/dist/{chunk-CK53LO3J.cjs → chunk-U35O67ZA.cjs} +1 -1
- package/dist/chunk-U35O67ZA.cjs.map +1 -0
- package/dist/{chunk-DZ6HBEMA.js → chunk-X5RKGEDZ.js} +1 -1
- package/dist/chunk-X5RKGEDZ.js.map +1 -0
- package/dist/{chunk-SVF5VSZ2.js → chunk-YKVFAVK5.js} +1 -1
- package/dist/chunk-YKVFAVK5.js.map +1 -0
- package/dist/chunk-YR2SJWTF.js +145 -0
- package/dist/chunk-YR2SJWTF.js.map +1 -0
- package/dist/command.cjs +2 -2
- package/dist/command.cjs.map +1 -1
- package/dist/command.d.cts +7 -7
- package/dist/command.d.ts +7 -7
- package/dist/command.js +1 -1
- package/dist/command.js.map +1 -1
- package/dist/dialog.cjs +2 -2
- package/dist/dialog.js +1 -1
- package/dist/dropdown-menu.cjs.map +1 -1
- package/dist/dropdown-menu.js.map +1 -1
- package/dist/form-field.cjs +3 -3
- package/dist/form-field.d.cts +1 -0
- package/dist/form-field.d.ts +1 -0
- package/dist/form-field.js +2 -2
- package/dist/form-input.cjs +5 -5
- package/dist/form-input.cjs.map +1 -1
- package/dist/form-input.d.cts +8 -0
- package/dist/form-input.d.ts +8 -0
- package/dist/form-input.js +3 -3
- package/dist/form-input.js.map +1 -1
- package/dist/form-select.cjs +7 -7
- package/dist/form-select.cjs.map +1 -1
- package/dist/form-select.d.cts +14 -0
- package/dist/form-select.d.ts +14 -0
- package/dist/form-select.js +3 -3
- package/dist/form-select.js.map +1 -1
- package/dist/form-textarea.cjs +5 -5
- package/dist/form-textarea.cjs.map +1 -1
- package/dist/form-textarea.d.cts +1 -0
- package/dist/form-textarea.d.ts +1 -0
- package/dist/form-textarea.js +3 -3
- package/dist/form-textarea.js.map +1 -1
- package/dist/gtm.cjs +2 -128
- package/dist/gtm.cjs.map +1 -1
- package/dist/gtm.js +7 -133
- package/dist/gtm.js.map +1 -1
- package/dist/input.cjs +2 -2
- package/dist/input.js +1 -1
- package/dist/label.cjs +2 -2
- package/dist/label.js +1 -1
- package/dist/list-view.cjs.map +1 -1
- package/dist/list-view.d.cts +8 -0
- package/dist/list-view.d.ts +8 -0
- package/dist/list-view.js.map +1 -1
- package/dist/navigation-menu.cjs.map +1 -1
- package/dist/navigation-menu.js.map +1 -1
- package/dist/pagination.cjs +2 -2
- package/dist/pagination.cjs.map +1 -1
- package/dist/pagination.js +1 -1
- package/dist/pagination.js.map +1 -1
- package/dist/popover.cjs.map +1 -1
- package/dist/popover.js.map +1 -1
- package/dist/price-format.cjs +2 -2
- package/dist/price-format.d.cts +4 -0
- package/dist/price-format.d.ts +4 -0
- package/dist/price-format.js +1 -1
- package/dist/price.cjs +2 -2
- package/dist/price.cjs.map +1 -1
- package/dist/price.d.cts +17 -0
- package/dist/price.d.ts +17 -0
- package/dist/price.js +1 -1
- package/dist/price.js.map +1 -1
- package/dist/provider.cjs +31 -0
- package/dist/provider.cjs.map +1 -0
- package/dist/provider.d.cts +50 -0
- package/dist/provider.d.ts +50 -0
- package/dist/provider.js +31 -0
- package/dist/provider.js.map +1 -0
- package/dist/quantity-input.cjs.map +1 -1
- package/dist/quantity-input.d.cts +15 -0
- package/dist/quantity-input.d.ts +15 -0
- package/dist/quantity-input.js.map +1 -1
- package/dist/radio-group.cjs.map +1 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/select.cjs +2 -2
- package/dist/select.js +1 -1
- package/dist/separator.cjs.map +1 -1
- package/dist/separator.js.map +1 -1
- package/dist/skeleton.cjs.map +1 -1
- package/dist/skeleton.js.map +1 -1
- package/dist/spinner.cjs +3 -41
- package/dist/spinner.cjs.map +1 -1
- package/dist/spinner.d.cts +1 -0
- package/dist/spinner.d.ts +1 -0
- package/dist/spinner.js +3 -41
- package/dist/spinner.js.map +1 -1
- package/dist/stock-label.cjs +85 -0
- package/dist/stock-label.cjs.map +1 -0
- package/dist/stock-label.d.cts +47 -0
- package/dist/stock-label.d.ts +47 -0
- package/dist/stock-label.js +85 -0
- package/dist/stock-label.js.map +1 -0
- package/dist/table.cjs.map +1 -1
- package/dist/table.js.map +1 -1
- package/dist/tabs.cjs.map +1 -1
- package/dist/tabs.js.map +1 -1
- package/dist/textarea.cjs +2 -2
- package/dist/textarea.js +1 -1
- package/package.json +24 -4
- package/dist/chunk-3RVGVJDI.cjs.map +0 -1
- package/dist/chunk-BYHOMRXR.js.map +0 -1
- package/dist/chunk-CK53LO3J.cjs.map +0 -1
- package/dist/chunk-DAU3SFHM.js.map +0 -1
- package/dist/chunk-DZ6HBEMA.js.map +0 -1
- package/dist/chunk-FHS7SJEQ.js.map +0 -1
- package/dist/chunk-GPDD67CJ.js.map +0 -1
- package/dist/chunk-N2TV6QZO.cjs.map +0 -1
- package/dist/chunk-ND6U4UQQ.js.map +0 -1
- package/dist/chunk-NWGXDXRV.cjs.map +0 -1
- package/dist/chunk-PTAWV5SA.js.map +0 -1
- package/dist/chunk-Q6H6D3AN.cjs.map +0 -1
- package/dist/chunk-SVF5VSZ2.js.map +0 -1
- package/dist/chunk-SXJP4G5U.cjs.map +0 -1
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
3
|
interface QuantityInputProps {
|
|
4
|
+
/** Current quantity value (controlled). */
|
|
4
5
|
value: number;
|
|
6
|
+
/** Called with the new quantity after validation and rounding. */
|
|
5
7
|
onChange: (value: number) => void;
|
|
8
|
+
/** Minimum allowed quantity. Default: `0`. */
|
|
6
9
|
min?: number;
|
|
10
|
+
/** Maximum allowed quantity. */
|
|
7
11
|
max?: number;
|
|
12
|
+
/** Increment/decrement step size. Values are rounded up to the nearest step. Default: `1`. */
|
|
8
13
|
step?: number;
|
|
14
|
+
/** Number of decimal places to display. Default: `0`. */
|
|
9
15
|
decimals?: number;
|
|
16
|
+
/** Show +/- stepper buttons. Default: `true`. */
|
|
10
17
|
showStepper?: boolean;
|
|
11
18
|
disabled?: boolean;
|
|
12
19
|
className?: string;
|
|
13
20
|
inputClassName?: string;
|
|
14
21
|
buttonClassName?: string;
|
|
15
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Numeric input with optional +/- stepper buttons for cart quantities.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <QuantityInput value={qty} onChange={setQty} min={1} step={1} />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
16
31
|
declare const QuantityInput: React.NamedExoticComponent<QuantityInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
17
32
|
|
|
18
33
|
export { QuantityInput, type QuantityInputProps };
|
package/dist/quantity-input.d.ts
CHANGED
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
3
|
interface QuantityInputProps {
|
|
4
|
+
/** Current quantity value (controlled). */
|
|
4
5
|
value: number;
|
|
6
|
+
/** Called with the new quantity after validation and rounding. */
|
|
5
7
|
onChange: (value: number) => void;
|
|
8
|
+
/** Minimum allowed quantity. Default: `0`. */
|
|
6
9
|
min?: number;
|
|
10
|
+
/** Maximum allowed quantity. */
|
|
7
11
|
max?: number;
|
|
12
|
+
/** Increment/decrement step size. Values are rounded up to the nearest step. Default: `1`. */
|
|
8
13
|
step?: number;
|
|
14
|
+
/** Number of decimal places to display. Default: `0`. */
|
|
9
15
|
decimals?: number;
|
|
16
|
+
/** Show +/- stepper buttons. Default: `true`. */
|
|
10
17
|
showStepper?: boolean;
|
|
11
18
|
disabled?: boolean;
|
|
12
19
|
className?: string;
|
|
13
20
|
inputClassName?: string;
|
|
14
21
|
buttonClassName?: string;
|
|
15
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Numeric input with optional +/- stepper buttons for cart quantities.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <QuantityInput value={qty} onChange={setQty} min={1} step={1} />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
16
31
|
declare const QuantityInput: React.NamedExoticComponent<QuantityInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
17
32
|
|
|
18
33
|
export { QuantityInput, type QuantityInputProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/quantity-input.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\nimport { LuMinus, LuPlus } from \"react-icons/lu\";\n\nexport interface QuantityInputProps {\n value: number;\n onChange: (value: number) => void;\n min?: number;\n max?: number;\n step?: number;\n decimals?: number;\n showStepper?: boolean;\n disabled?: boolean;\n className?: string;\n inputClassName?: string;\n buttonClassName?: string;\n}\n\nfunction roundToStep(value: number, step: number): number {\n if (step <= 1) return value;\n return Math.ceil(value / step) * step;\n}\n\nconst QuantityInput = React.memo(\n React.forwardRef<HTMLInputElement, QuantityInputProps>(\n (\n {\n value,\n onChange,\n min = 0,\n max,\n step = 1,\n decimals = 0,\n showStepper = true,\n disabled = false,\n className,\n inputClassName,\n buttonClassName,\n },\n ref,\n ) => {\n const [qtyStr, setQtyStr] = React.useState(() =>\n value.toFixed(decimals),\n );\n\n React.useEffect(() => {\n setQtyStr(value.toFixed(decimals));\n }, [value, decimals]);\n\n const commit = React.useCallback(\n (raw: string) => {\n if (raw.trim() === \"\") {\n setQtyStr(min.toFixed(decimals));\n onChange(min);\n return;\n }\n\n let parsed = parseFloat(raw);\n if (isNaN(parsed)) parsed = min;\n\n parsed = roundToStep(parsed, step);\n if (parsed < min) parsed = min;\n if (max !== undefined && parsed > max) parsed = max;\n\n const rounded = parseFloat(parsed.toFixed(decimals));\n setQtyStr(rounded.toFixed(decimals));\n onChange(rounded);\n },\n [min, max, step, decimals, onChange],\n );\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const allowed = [\n \"Backspace\",\n \"Delete\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Tab\",\n \"Enter\",\n ];\n if (allowed.includes(e.key)) {\n if (e.key === \"Enter\") {\n commit(qtyStr);\n }\n return;\n }\n\n if (decimals > 0 && e.key === \".\" && !qtyStr.includes(\".\")) {\n return;\n }\n\n if (e.key >= \"0\" && e.key <= \"9\") {\n return;\n }\n\n e.preventDefault();\n },\n [decimals, qtyStr, commit],\n );\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const pattern = decimals > 0 ? /[^0-9.]/g : /[^0-9]/g;\n let cleaned = e.target.value.replace(pattern, \"\");\n if (decimals > 0) {\n const parts = cleaned.split(\".\");\n if (parts.length > 2) {\n cleaned = parts[0] + \".\" + parts.slice(1).join(\"\");\n }\n }\n setQtyStr(cleaned);\n },\n [decimals],\n );\n\n const handleBlur = React.useCallback(() => {\n commit(qtyStr);\n }, [commit, qtyStr]);\n\n const handleDecrement = React.useCallback(() => {\n const next = Math.max(value - step, min);\n onChange(next);\n }, [value, step, min, onChange]);\n\n const handleIncrement = React.useCallback(() => {\n const next = value + step;\n onChange(max !== undefined ? Math.min(next, max) : next);\n }, [value, step, max, onChange]);\n\n const minDisabled = disabled || value <= min;\n const maxDisabled = disabled || (max !== undefined && value >= max);\n\n return (\n <div\n className={cn(\n \"inline-flex items-center border rounded-md bg-background\",\n className,\n )}\n >\n {showStepper && (\n <button\n type=\"button\"\n aria-label=\"Decrease quantity\"\n disabled={minDisabled}\n onClick={handleDecrement}\n className={cn(\n \"h-10 w-10 flex items-center justify-center hover:bg-accent disabled:opacity-50\",\n buttonClassName,\n )}\n >\n <LuMinus />\n </button>\n )}\n <input\n ref={ref}\n type=\"text\"\n inputMode={decimals > 0 ? \"decimal\" : \"numeric\"}\n value={qtyStr}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n onBlur={handleBlur}\n className={cn(\n \"h-10 w-16 text-center bg-transparent focus:outline-none\",\n inputClassName,\n )}\n />\n {showStepper && (\n <button\n type=\"button\"\n aria-label=\"Increase quantity\"\n disabled={maxDisabled}\n onClick={handleIncrement}\n className={cn(\n \"h-10 w-10 flex items-center justify-center hover:bg-accent disabled:opacity-50\",\n buttonClassName,\n )}\n >\n <LuPlus />\n </button>\n )}\n </div>\n );\n },\n ),\n);\nQuantityInput.displayName = \"QuantityInput\";\n\nexport { QuantityInput };\n"],"mappings":";;;;AAEA,YAAY,WAAW;AACvB,SAAS,UAAU;AACnB,SAAS,SAAS,cAAc;
|
|
1
|
+
{"version":3,"sources":["../src/quantity-input.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\nimport { LuMinus, LuPlus } from \"react-icons/lu\";\n\nexport interface QuantityInputProps {\n /** Current quantity value (controlled). */\n value: number;\n /** Called with the new quantity after validation and rounding. */\n onChange: (value: number) => void;\n /** Minimum allowed quantity. Default: `0`. */\n min?: number;\n /** Maximum allowed quantity. */\n max?: number;\n /** Increment/decrement step size. Values are rounded up to the nearest step. Default: `1`. */\n step?: number;\n /** Number of decimal places to display. Default: `0`. */\n decimals?: number;\n /** Show +/- stepper buttons. Default: `true`. */\n showStepper?: boolean;\n disabled?: boolean;\n className?: string;\n inputClassName?: string;\n buttonClassName?: string;\n}\n\nfunction roundToStep(value: number, step: number): number {\n if (step <= 1) return value;\n return Math.ceil(value / step) * step;\n}\n\n/**\n * Numeric input with optional +/- stepper buttons for cart quantities.\n *\n * @example\n * ```tsx\n * <QuantityInput value={qty} onChange={setQty} min={1} step={1} />\n * ```\n */\nconst QuantityInput = React.memo(\n React.forwardRef<HTMLInputElement, QuantityInputProps>(\n (\n {\n value,\n onChange,\n min = 0,\n max,\n step = 1,\n decimals = 0,\n showStepper = true,\n disabled = false,\n className,\n inputClassName,\n buttonClassName,\n },\n ref,\n ) => {\n const [qtyStr, setQtyStr] = React.useState(() =>\n value.toFixed(decimals),\n );\n\n React.useEffect(() => {\n setQtyStr(value.toFixed(decimals));\n }, [value, decimals]);\n\n const commit = React.useCallback(\n (raw: string) => {\n if (raw.trim() === \"\") {\n setQtyStr(min.toFixed(decimals));\n onChange(min);\n return;\n }\n\n let parsed = parseFloat(raw);\n if (isNaN(parsed)) parsed = min;\n\n parsed = roundToStep(parsed, step);\n if (parsed < min) parsed = min;\n if (max !== undefined && parsed > max) parsed = max;\n\n const rounded = parseFloat(parsed.toFixed(decimals));\n setQtyStr(rounded.toFixed(decimals));\n onChange(rounded);\n },\n [min, max, step, decimals, onChange],\n );\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const allowed = [\n \"Backspace\",\n \"Delete\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Tab\",\n \"Enter\",\n ];\n if (allowed.includes(e.key)) {\n if (e.key === \"Enter\") {\n commit(qtyStr);\n }\n return;\n }\n\n if (decimals > 0 && e.key === \".\" && !qtyStr.includes(\".\")) {\n return;\n }\n\n if (e.key >= \"0\" && e.key <= \"9\") {\n return;\n }\n\n e.preventDefault();\n },\n [decimals, qtyStr, commit],\n );\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const pattern = decimals > 0 ? /[^0-9.]/g : /[^0-9]/g;\n let cleaned = e.target.value.replace(pattern, \"\");\n if (decimals > 0) {\n const parts = cleaned.split(\".\");\n if (parts.length > 2) {\n cleaned = parts[0] + \".\" + parts.slice(1).join(\"\");\n }\n }\n setQtyStr(cleaned);\n },\n [decimals],\n );\n\n const handleBlur = React.useCallback(() => {\n commit(qtyStr);\n }, [commit, qtyStr]);\n\n const handleDecrement = React.useCallback(() => {\n const next = Math.max(value - step, min);\n onChange(next);\n }, [value, step, min, onChange]);\n\n const handleIncrement = React.useCallback(() => {\n const next = value + step;\n onChange(max !== undefined ? Math.min(next, max) : next);\n }, [value, step, max, onChange]);\n\n const minDisabled = disabled || value <= min;\n const maxDisabled = disabled || (max !== undefined && value >= max);\n\n return (\n <div\n className={cn(\n \"inline-flex items-center border rounded-md bg-background\",\n className,\n )}\n >\n {showStepper && (\n <button\n type=\"button\"\n aria-label=\"Decrease quantity\"\n disabled={minDisabled}\n onClick={handleDecrement}\n className={cn(\n \"h-10 w-10 flex items-center justify-center hover:bg-accent disabled:opacity-50\",\n buttonClassName,\n )}\n >\n <LuMinus />\n </button>\n )}\n <input\n ref={ref}\n type=\"text\"\n inputMode={decimals > 0 ? \"decimal\" : \"numeric\"}\n value={qtyStr}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n onBlur={handleBlur}\n className={cn(\n \"h-10 w-16 text-center bg-transparent focus:outline-none\",\n inputClassName,\n )}\n />\n {showStepper && (\n <button\n type=\"button\"\n aria-label=\"Increase quantity\"\n disabled={maxDisabled}\n onClick={handleIncrement}\n className={cn(\n \"h-10 w-10 flex items-center justify-center hover:bg-accent disabled:opacity-50\",\n buttonClassName,\n )}\n >\n <LuPlus />\n </button>\n )}\n </div>\n );\n },\n ),\n);\nQuantityInput.displayName = \"QuantityInput\";\n\nexport { QuantityInput };\n"],"mappings":"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","names":[]}
|
package/dist/radio-group.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/radio-group.cjs","../src/radio-group.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ,YAAY;AACZ;AACA;
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/radio-group.cjs","../src/radio-group.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ,YAAY;AACZ;AACA;ACAA,2EAAuB;AACvB,oCAAwB;AACxB,mIAAqC;AACrC,sDAAmB;AAOf,+CAAA;AALJ,IAAM,WAAA,EAAmB,KAAA,CAAA,UAAA,CAGvB,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AAClC,EAAA,uBACE,6BAAA;AAAA,IAAqB,mBAAA,CAAA,IAAA;AAAA,IAApB;AAAA,MACC,SAAA,EAAW,qBAAA,YAAG,EAAc,SAAS,CAAA;AAAA,MACpC,GAAG,KAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AACD,UAAA,CAAW,YAAA,EAAkC,mBAAA,CAAA,IAAA,CAAK,WAAA;AAElD,IAAM,eAAA,EAAuB,KAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AAClC,EAAA,uBACE,6BAAA;AAAA,IAAqB,mBAAA,CAAA,IAAA;AAAA,IAApB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,qBAAA;AAAA,QACT,8LAAA;AAAA,QACA;AAAA,MACF,CAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,6BAAA,mBAAqB,CAAA,SAAA,EAApB,EAA8B,SAAA,EAAU,kCAAA,EACvC,QAAA,kBAAA,6BAAA,WAAC,EAAA,EAAQ,SAAA,EAAU,2BAAA,CAA2B,EAAA,CAChD;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AACD,cAAA,CAAe,YAAA,EAAkC,mBAAA,CAAA,IAAA,CAAK,WAAA;ADNtD;AACE;AACA;AACF,yEAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/radio-group.cjs","sourcesContent":[null,"/** Styled wrapper around @radix-ui/react-radio-group. See https://www.radix-ui.com/primitives/docs/components/radio-group */\n\"use client\";\n\nimport * as React from \"react\";\nimport { LuCheck } from \"react-icons/lu\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <LuCheck className=\"h-3.5 w-3.5 fill-primary\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n"]}
|
package/dist/radio-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/radio-group.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { LuCheck } from \"react-icons/lu\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <LuCheck className=\"h-3.5 w-3.5 fill-primary\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n"],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../src/radio-group.tsx"],"sourcesContent":["/** Styled wrapper around @radix-ui/react-radio-group. See https://www.radix-ui.com/primitives/docs/components/radio-group */\n\"use client\";\n\nimport * as React from \"react\";\nimport { LuCheck } from \"react-icons/lu\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <LuCheck className=\"h-3.5 w-3.5 fill-primary\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n"],"mappings":";;;;AAGA,YAAY,WAAW;AACvB,SAAS,eAAe;AACxB,YAAY,yBAAyB;AACrC,SAAS,UAAU;AAOf;AALJ,IAAM,aAAmB,iBAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE;AAAA,IAAqB;AAAA,IAApB;AAAA,MACC,WAAW,GAAG,cAAc,SAAS;AAAA,MACpC,GAAG;AAAA,MACJ;AAAA;AAAA,EACF;AAEJ,CAAC;AACD,WAAW,cAAkC,yBAAK;AAElD,IAAM,iBAAuB,iBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,SACE;AAAA,IAAqB;AAAA,IAApB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,8BAAqB,+BAApB,EAA8B,WAAU,oCACvC,8BAAC,WAAQ,WAAU,4BAA2B,GAChD;AAAA;AAAA,EACF;AAEJ,CAAC;AACD,eAAe,cAAkC,yBAAK;","names":[]}
|
package/dist/select.cjs
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkSHF52AZMcjs = require('./chunk-SHF52AZM.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
@@ -23,5 +23,5 @@ var _chunkQ6H6D3ANcjs = require('./chunk-Q6H6D3AN.cjs');
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
exports.Select =
|
|
26
|
+
exports.Select = _chunkSHF52AZMcjs.Select; exports.SelectContent = _chunkSHF52AZMcjs.SelectContent; exports.SelectGroup = _chunkSHF52AZMcjs.SelectGroup; exports.SelectItem = _chunkSHF52AZMcjs.SelectItem; exports.SelectLabel = _chunkSHF52AZMcjs.SelectLabel; exports.SelectScrollDownButton = _chunkSHF52AZMcjs.SelectScrollDownButton; exports.SelectScrollUpButton = _chunkSHF52AZMcjs.SelectScrollUpButton; exports.SelectSeparator = _chunkSHF52AZMcjs.SelectSeparator; exports.SelectTrigger = _chunkSHF52AZMcjs.SelectTrigger; exports.SelectValue = _chunkSHF52AZMcjs.SelectValue;
|
|
27
27
|
//# sourceMappingURL=select.cjs.map
|
package/dist/select.js
CHANGED
package/dist/separator.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/separator.cjs","../src/separator.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ,YAAY;AACZ;AACA;
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/separator.cjs","../src/separator.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ,YAAY;AACZ;AACA;ACAA,2EAAuB;AACvB,8HAAoC;AACpC,sDAAmB;AAUf,+CAAA;AARJ,IAAM,UAAA,EAAkB,KAAA,CAAA,UAAA;AAAA,EAItB,CACE,EAAE,SAAA,EAAW,YAAA,EAAc,YAAA,EAAc,WAAA,EAAa,IAAA,EAAM,GAAG,MAAM,CAAA,EACrE,GAAA,EAAA,mBAEA,6BAAA;AAAA,IAAoB,kBAAA,CAAA,IAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA,EAAW,qBAAA;AAAA,QACT,oBAAA;AAAA,QACA,YAAA,IAAgB,aAAA,EAAe,iBAAA,EAAmB,gBAAA;AAAA,QAClD;AAAA,MACF,CAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN;AAEJ,CAAA;AACA,SAAA,CAAU,YAAA,EAAiC,kBAAA,CAAA,IAAA,CAAK,WAAA;ADHhD;AACE;AACF,8BAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/separator.cjs","sourcesContent":[null,"/** Styled wrapper around @radix-ui/react-separator. See https://www.radix-ui.com/primitives/docs/components/separator */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref,\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className,\n )}\n {...props}\n />\n ),\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"]}
|
package/dist/separator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/separator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref,\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className,\n )}\n {...props}\n />\n ),\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../src/separator.tsx"],"sourcesContent":["/** Styled wrapper around @radix-ui/react-separator. See https://www.radix-ui.com/primitives/docs/components/separator */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref,\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className,\n )}\n {...props}\n />\n ),\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"],"mappings":";;;;AAGA,YAAY,WAAW;AACvB,YAAY,wBAAwB;AACpC,SAAS,UAAU;AAUf;AARJ,IAAM,YAAkB;AAAA,EAItB,CACE,EAAE,WAAW,cAAc,cAAc,aAAa,MAAM,GAAG,MAAM,GACrE,QAEA;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eAAe,mBAAmB;AAAA,QAClD;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,UAAU,cAAiC,wBAAK;","names":[]}
|
package/dist/skeleton.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/skeleton.cjs","../src/skeleton.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACA;
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/skeleton.cjs","../src/skeleton.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACA;ACDA,sDAAmB;AAOf,+CAAA;AALJ,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyC;AACvC,EAAA,uBACE,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,qBAAA,mCAAG,EAAqC,SAAS,CAAA;AAAA,MAC3D,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;ADIA;AACE;AACF,4BAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/skeleton.cjs","sourcesContent":[null,"/** Animated placeholder for loading states. */\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"]}
|
package/dist/skeleton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/skeleton.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/skeleton.tsx"],"sourcesContent":["/** Animated placeholder for loading states. */\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"],"mappings":";;;AACA,SAAS,UAAU;AAOf;AALJ,SAAS,SAAS;AAAA,EAChB;AAAA,EACA,GAAG;AACL,GAAyC;AACvC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,qCAAqC,SAAS;AAAA,MAC3D,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
package/dist/spinner.cjs
CHANGED
|
@@ -1,46 +1,8 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
|
-
// src/spinner.tsx
|
|
4
|
-
var _web = require('@simpleapps-com/augur-utils/web');
|
|
5
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
6
|
-
var sizeClasses = {
|
|
7
|
-
sm: "h-3 w-3",
|
|
8
|
-
md: "h-4 w-4",
|
|
9
|
-
lg: "h-6 w-6"
|
|
10
|
-
};
|
|
11
|
-
var Spinner = ({ className, size = "md" }) => {
|
|
12
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13
|
-
"svg",
|
|
14
|
-
{
|
|
15
|
-
className: _web.cn.call(void 0, "animate-spin", sizeClasses[size], className),
|
|
16
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
17
|
-
fill: "none",
|
|
18
|
-
viewBox: "0 0 24 24",
|
|
19
|
-
children: [
|
|
20
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21
|
-
"circle",
|
|
22
|
-
{
|
|
23
|
-
className: "opacity-25",
|
|
24
|
-
cx: "12",
|
|
25
|
-
cy: "12",
|
|
26
|
-
r: "10",
|
|
27
|
-
stroke: "currentColor",
|
|
28
|
-
strokeWidth: "4"
|
|
29
|
-
}
|
|
30
|
-
),
|
|
31
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32
|
-
"path",
|
|
33
|
-
{
|
|
34
|
-
className: "opacity-75",
|
|
35
|
-
fill: "currentColor",
|
|
36
|
-
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"
|
|
37
|
-
}
|
|
38
|
-
)
|
|
39
|
-
]
|
|
40
|
-
}
|
|
41
|
-
);
|
|
42
|
-
};
|
|
43
3
|
|
|
4
|
+
var _chunkECZR6SW3cjs = require('./chunk-ECZR6SW3.cjs');
|
|
44
5
|
|
|
45
|
-
|
|
6
|
+
|
|
7
|
+
exports.Spinner = _chunkECZR6SW3cjs.Spinner;
|
|
46
8
|
//# sourceMappingURL=spinner.cjs.map
|
package/dist/spinner.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/spinner.cjs"
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/spinner.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,4CAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/spinner.cjs"}
|
package/dist/spinner.d.cts
CHANGED
|
@@ -4,6 +4,7 @@ interface SpinnerProps {
|
|
|
4
4
|
className?: string;
|
|
5
5
|
size?: "sm" | "md" | "lg";
|
|
6
6
|
}
|
|
7
|
+
/** Animated SVG loading spinner. Sizes: `sm` (12px), `md` (16px), `lg` (24px). */
|
|
7
8
|
declare const Spinner: ({ className, size }: SpinnerProps) => react_jsx_runtime.JSX.Element;
|
|
8
9
|
|
|
9
10
|
export { Spinner };
|
package/dist/spinner.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ interface SpinnerProps {
|
|
|
4
4
|
className?: string;
|
|
5
5
|
size?: "sm" | "md" | "lg";
|
|
6
6
|
}
|
|
7
|
+
/** Animated SVG loading spinner. Sizes: `sm` (12px), `md` (16px), `lg` (24px). */
|
|
7
8
|
declare const Spinner: ({ className, size }: SpinnerProps) => react_jsx_runtime.JSX.Element;
|
|
8
9
|
|
|
9
10
|
export { Spinner };
|
package/dist/spinner.js
CHANGED
|
@@ -1,45 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
var sizeClasses = {
|
|
7
|
-
sm: "h-3 w-3",
|
|
8
|
-
md: "h-4 w-4",
|
|
9
|
-
lg: "h-6 w-6"
|
|
10
|
-
};
|
|
11
|
-
var Spinner = ({ className, size = "md" }) => {
|
|
12
|
-
return /* @__PURE__ */ jsxs(
|
|
13
|
-
"svg",
|
|
14
|
-
{
|
|
15
|
-
className: cn("animate-spin", sizeClasses[size], className),
|
|
16
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
17
|
-
fill: "none",
|
|
18
|
-
viewBox: "0 0 24 24",
|
|
19
|
-
children: [
|
|
20
|
-
/* @__PURE__ */ jsx(
|
|
21
|
-
"circle",
|
|
22
|
-
{
|
|
23
|
-
className: "opacity-25",
|
|
24
|
-
cx: "12",
|
|
25
|
-
cy: "12",
|
|
26
|
-
r: "10",
|
|
27
|
-
stroke: "currentColor",
|
|
28
|
-
strokeWidth: "4"
|
|
29
|
-
}
|
|
30
|
-
),
|
|
31
|
-
/* @__PURE__ */ jsx(
|
|
32
|
-
"path",
|
|
33
|
-
{
|
|
34
|
-
className: "opacity-75",
|
|
35
|
-
fill: "currentColor",
|
|
36
|
-
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"
|
|
37
|
-
}
|
|
38
|
-
)
|
|
39
|
-
]
|
|
40
|
-
}
|
|
41
|
-
);
|
|
42
|
-
};
|
|
2
|
+
import {
|
|
3
|
+
Spinner
|
|
4
|
+
} from "./chunk-DONF5PIE.js";
|
|
43
5
|
export {
|
|
44
6
|
Spinner
|
|
45
7
|
};
|
package/dist/spinner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
// src/stock-label.tsx
|
|
5
|
+
var _web = require('@simpleapps-com/augur-utils/web');
|
|
6
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
7
|
+
var defaults = {
|
|
8
|
+
inStockLabel: "In stock",
|
|
9
|
+
lowStockLabel: "Low stock",
|
|
10
|
+
outOfStockLabel: "Out of stock"
|
|
11
|
+
};
|
|
12
|
+
function createStockLabel(config = {}) {
|
|
13
|
+
const {
|
|
14
|
+
inStockLabel,
|
|
15
|
+
lowStockLabel,
|
|
16
|
+
outOfStockLabel,
|
|
17
|
+
classNames: factoryClassNames
|
|
18
|
+
} = { ...defaults, ...config };
|
|
19
|
+
const slotKeys = [
|
|
20
|
+
"inStock",
|
|
21
|
+
"lowStock",
|
|
22
|
+
"outOfStock",
|
|
23
|
+
"skeleton",
|
|
24
|
+
"quantity"
|
|
25
|
+
];
|
|
26
|
+
function mergeClassNames(instance) {
|
|
27
|
+
if (!factoryClassNames && !instance) return {};
|
|
28
|
+
const result = {};
|
|
29
|
+
for (const key of slotKeys) {
|
|
30
|
+
const merged = _web.cn.call(void 0, _optionalChain([factoryClassNames, 'optionalAccess', _ => _[key]]), _optionalChain([instance, 'optionalAccess', _2 => _2[key]]));
|
|
31
|
+
if (merged) result[key] = merged;
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
function StockLabel(props) {
|
|
36
|
+
if ("loading" in props && props.loading) {
|
|
37
|
+
const slots2 = mergeClassNames(props.classNames);
|
|
38
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
39
|
+
"span",
|
|
40
|
+
{
|
|
41
|
+
className: _web.cn.call(void 0,
|
|
42
|
+
"inline-block h-4 w-16 animate-pulse rounded bg-muted",
|
|
43
|
+
slots2.skeleton,
|
|
44
|
+
props.className
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
const {
|
|
50
|
+
isInStock,
|
|
51
|
+
isLowStock = false,
|
|
52
|
+
displayQuantity,
|
|
53
|
+
className,
|
|
54
|
+
classNames: instanceClassNames
|
|
55
|
+
} = props;
|
|
56
|
+
const slots = mergeClassNames(instanceClassNames);
|
|
57
|
+
if (!isInStock) {
|
|
58
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _web.cn.call(void 0, "text-red-600", slots.outOfStock, className), children: outOfStockLabel });
|
|
59
|
+
}
|
|
60
|
+
if (isLowStock) {
|
|
61
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "text-orange-500", slots.lowStock, className), children: [
|
|
62
|
+
lowStockLabel,
|
|
63
|
+
displayQuantity != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "ml-1", slots.quantity), children: [
|
|
64
|
+
"(",
|
|
65
|
+
displayQuantity,
|
|
66
|
+
")"
|
|
67
|
+
] })
|
|
68
|
+
] });
|
|
69
|
+
}
|
|
70
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "text-green-600", slots.inStock, className), children: [
|
|
71
|
+
inStockLabel,
|
|
72
|
+
displayQuantity != null && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _web.cn.call(void 0, "ml-1", slots.quantity), children: [
|
|
73
|
+
"(",
|
|
74
|
+
displayQuantity,
|
|
75
|
+
")"
|
|
76
|
+
] })
|
|
77
|
+
] });
|
|
78
|
+
}
|
|
79
|
+
StockLabel.displayName = "StockLabel";
|
|
80
|
+
return { StockLabel };
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
exports.createStockLabel = createStockLabel;
|
|
85
|
+
//# sourceMappingURL=stock-label.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/stock-label.cjs","../src/stock-label.tsx"],"names":["slots"],"mappings":"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","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/stock-label.cjs","sourcesContent":[null,"\"use client\";\n\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\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\", \"lowStock\", \"outOfStock\", \"skeleton\", \"quantity\",\n ];\n\n function mergeClassNames(\n instance?: StockLabelClassNames,\n ): 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 if (\"loading\" in props && props.loading) {\n const slots = mergeClassNames(props.classNames);\n return (\n <span\n className={cn(\n \"inline-block h-4 w-16 animate-pulse rounded bg-muted\",\n slots.skeleton,\n props.className,\n )}\n />\n );\n }\n\n const {\n isInStock,\n isLowStock = false,\n displayQuantity,\n className,\n classNames: instanceClassNames,\n } = props as StockLabelPropsBase;\n\n const slots = mergeClassNames(instanceClassNames);\n\n if (!isInStock) {\n return (\n <span className={cn(\"text-red-600\", slots.outOfStock, className)}>\n {outOfStockLabel}\n </span>\n );\n }\n\n if (isLowStock) {\n return (\n <span className={cn(\"text-orange-500\", slots.lowStock, className)}>\n {lowStockLabel}\n {displayQuantity != null && (\n <span className={cn(\"ml-1\", slots.quantity)}>({displayQuantity})</span>\n )}\n </span>\n );\n }\n\n return (\n <span className={cn(\"text-green-600\", slots.inStock, className)}>\n {inStockLabel}\n {displayQuantity != null && (\n <span className={cn(\"ml-1\", slots.quantity)}>({displayQuantity})</span>\n )}\n </span>\n );\n }\n\n StockLabel.displayName = \"StockLabel\";\n\n return { StockLabel };\n}\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
interface StockLabelClassNames {
|
|
2
|
+
/** In-stock text. */
|
|
3
|
+
inStock?: string;
|
|
4
|
+
/** Low-stock text. */
|
|
5
|
+
lowStock?: string;
|
|
6
|
+
/** Out-of-stock text. */
|
|
7
|
+
outOfStock?: string;
|
|
8
|
+
/** The loading skeleton. */
|
|
9
|
+
skeleton?: string;
|
|
10
|
+
/** The quantity parenthetical. */
|
|
11
|
+
quantity?: string;
|
|
12
|
+
}
|
|
13
|
+
interface StockLabelConfig {
|
|
14
|
+
/** Label for in-stock state. Default: `"In stock"`. */
|
|
15
|
+
inStockLabel?: string;
|
|
16
|
+
/** Label for low-stock state. Default: `"Low stock"`. */
|
|
17
|
+
lowStockLabel?: string;
|
|
18
|
+
/** Label for out-of-stock state. Default: `"Out of stock"`. */
|
|
19
|
+
outOfStockLabel?: string;
|
|
20
|
+
/** Default class names for sub-elements. */
|
|
21
|
+
classNames?: StockLabelClassNames;
|
|
22
|
+
}
|
|
23
|
+
type StockLabelPropsBase = {
|
|
24
|
+
/** Whether the item is in stock. */
|
|
25
|
+
isInStock: boolean;
|
|
26
|
+
/** Whether the item has low stock. */
|
|
27
|
+
isLowStock?: boolean;
|
|
28
|
+
/** Quantity to display in parentheses (shown only when in stock or low stock). */
|
|
29
|
+
displayQuantity?: number | null;
|
|
30
|
+
/** Additional class names for the root element. */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** Class names for sub-elements, merged with factory defaults. */
|
|
33
|
+
classNames?: StockLabelClassNames;
|
|
34
|
+
};
|
|
35
|
+
type StockLabelProps = (StockLabelPropsBase & {
|
|
36
|
+
loading?: false;
|
|
37
|
+
}) | {
|
|
38
|
+
loading: true;
|
|
39
|
+
className?: string;
|
|
40
|
+
classNames?: StockLabelClassNames;
|
|
41
|
+
};
|
|
42
|
+
interface CreateStockLabelResult {
|
|
43
|
+
StockLabel: React.FC<StockLabelProps>;
|
|
44
|
+
}
|
|
45
|
+
declare function createStockLabel(config?: StockLabelConfig): CreateStockLabelResult;
|
|
46
|
+
|
|
47
|
+
export { type CreateStockLabelResult, type StockLabelClassNames, type StockLabelConfig, type StockLabelProps, createStockLabel };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
interface StockLabelClassNames {
|
|
2
|
+
/** In-stock text. */
|
|
3
|
+
inStock?: string;
|
|
4
|
+
/** Low-stock text. */
|
|
5
|
+
lowStock?: string;
|
|
6
|
+
/** Out-of-stock text. */
|
|
7
|
+
outOfStock?: string;
|
|
8
|
+
/** The loading skeleton. */
|
|
9
|
+
skeleton?: string;
|
|
10
|
+
/** The quantity parenthetical. */
|
|
11
|
+
quantity?: string;
|
|
12
|
+
}
|
|
13
|
+
interface StockLabelConfig {
|
|
14
|
+
/** Label for in-stock state. Default: `"In stock"`. */
|
|
15
|
+
inStockLabel?: string;
|
|
16
|
+
/** Label for low-stock state. Default: `"Low stock"`. */
|
|
17
|
+
lowStockLabel?: string;
|
|
18
|
+
/** Label for out-of-stock state. Default: `"Out of stock"`. */
|
|
19
|
+
outOfStockLabel?: string;
|
|
20
|
+
/** Default class names for sub-elements. */
|
|
21
|
+
classNames?: StockLabelClassNames;
|
|
22
|
+
}
|
|
23
|
+
type StockLabelPropsBase = {
|
|
24
|
+
/** Whether the item is in stock. */
|
|
25
|
+
isInStock: boolean;
|
|
26
|
+
/** Whether the item has low stock. */
|
|
27
|
+
isLowStock?: boolean;
|
|
28
|
+
/** Quantity to display in parentheses (shown only when in stock or low stock). */
|
|
29
|
+
displayQuantity?: number | null;
|
|
30
|
+
/** Additional class names for the root element. */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** Class names for sub-elements, merged with factory defaults. */
|
|
33
|
+
classNames?: StockLabelClassNames;
|
|
34
|
+
};
|
|
35
|
+
type StockLabelProps = (StockLabelPropsBase & {
|
|
36
|
+
loading?: false;
|
|
37
|
+
}) | {
|
|
38
|
+
loading: true;
|
|
39
|
+
className?: string;
|
|
40
|
+
classNames?: StockLabelClassNames;
|
|
41
|
+
};
|
|
42
|
+
interface CreateStockLabelResult {
|
|
43
|
+
StockLabel: React.FC<StockLabelProps>;
|
|
44
|
+
}
|
|
45
|
+
declare function createStockLabel(config?: StockLabelConfig): CreateStockLabelResult;
|
|
46
|
+
|
|
47
|
+
export { type CreateStockLabelResult, type StockLabelClassNames, type StockLabelConfig, type StockLabelProps, createStockLabel };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
// src/stock-label.tsx
|
|
5
|
+
import { cn } from "@simpleapps-com/augur-utils/web";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
var defaults = {
|
|
8
|
+
inStockLabel: "In stock",
|
|
9
|
+
lowStockLabel: "Low stock",
|
|
10
|
+
outOfStockLabel: "Out of stock"
|
|
11
|
+
};
|
|
12
|
+
function createStockLabel(config = {}) {
|
|
13
|
+
const {
|
|
14
|
+
inStockLabel,
|
|
15
|
+
lowStockLabel,
|
|
16
|
+
outOfStockLabel,
|
|
17
|
+
classNames: factoryClassNames
|
|
18
|
+
} = { ...defaults, ...config };
|
|
19
|
+
const slotKeys = [
|
|
20
|
+
"inStock",
|
|
21
|
+
"lowStock",
|
|
22
|
+
"outOfStock",
|
|
23
|
+
"skeleton",
|
|
24
|
+
"quantity"
|
|
25
|
+
];
|
|
26
|
+
function mergeClassNames(instance) {
|
|
27
|
+
if (!factoryClassNames && !instance) return {};
|
|
28
|
+
const result = {};
|
|
29
|
+
for (const key of slotKeys) {
|
|
30
|
+
const merged = cn(factoryClassNames?.[key], instance?.[key]);
|
|
31
|
+
if (merged) result[key] = merged;
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
function StockLabel(props) {
|
|
36
|
+
if ("loading" in props && props.loading) {
|
|
37
|
+
const slots2 = mergeClassNames(props.classNames);
|
|
38
|
+
return /* @__PURE__ */ jsx(
|
|
39
|
+
"span",
|
|
40
|
+
{
|
|
41
|
+
className: cn(
|
|
42
|
+
"inline-block h-4 w-16 animate-pulse rounded bg-muted",
|
|
43
|
+
slots2.skeleton,
|
|
44
|
+
props.className
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
const {
|
|
50
|
+
isInStock,
|
|
51
|
+
isLowStock = false,
|
|
52
|
+
displayQuantity,
|
|
53
|
+
className,
|
|
54
|
+
classNames: instanceClassNames
|
|
55
|
+
} = props;
|
|
56
|
+
const slots = mergeClassNames(instanceClassNames);
|
|
57
|
+
if (!isInStock) {
|
|
58
|
+
return /* @__PURE__ */ jsx("span", { className: cn("text-red-600", slots.outOfStock, className), children: outOfStockLabel });
|
|
59
|
+
}
|
|
60
|
+
if (isLowStock) {
|
|
61
|
+
return /* @__PURE__ */ jsxs("span", { className: cn("text-orange-500", slots.lowStock, className), children: [
|
|
62
|
+
lowStockLabel,
|
|
63
|
+
displayQuantity != null && /* @__PURE__ */ jsxs("span", { className: cn("ml-1", slots.quantity), children: [
|
|
64
|
+
"(",
|
|
65
|
+
displayQuantity,
|
|
66
|
+
")"
|
|
67
|
+
] })
|
|
68
|
+
] });
|
|
69
|
+
}
|
|
70
|
+
return /* @__PURE__ */ jsxs("span", { className: cn("text-green-600", slots.inStock, className), children: [
|
|
71
|
+
inStockLabel,
|
|
72
|
+
displayQuantity != null && /* @__PURE__ */ jsxs("span", { className: cn("ml-1", slots.quantity), children: [
|
|
73
|
+
"(",
|
|
74
|
+
displayQuantity,
|
|
75
|
+
")"
|
|
76
|
+
] })
|
|
77
|
+
] });
|
|
78
|
+
}
|
|
79
|
+
StockLabel.displayName = "StockLabel";
|
|
80
|
+
return { StockLabel };
|
|
81
|
+
}
|
|
82
|
+
export {
|
|
83
|
+
createStockLabel
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=stock-label.js.map
|