@simpleapps-com/augur-web 2.4.0 → 2026.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/EXPORTS.md +18 -189
  2. package/README.md +18 -364
  3. package/dist/accordion.cjs.map +1 -1
  4. package/dist/accordion.d.ts +4 -5
  5. package/dist/accordion.d.ts.map +1 -0
  6. package/dist/add-to-cart-button.cjs.map +1 -1
  7. package/dist/add-to-cart-button.d.ts +5 -8
  8. package/dist/add-to-cart-button.d.ts.map +1 -0
  9. package/dist/breadcrumb.cjs.map +1 -1
  10. package/dist/breadcrumb.d.ts +5 -7
  11. package/dist/breadcrumb.d.ts.map +1 -0
  12. package/dist/breadcrumbs.cjs.map +1 -1
  13. package/dist/breadcrumbs.d.ts +4 -4
  14. package/dist/breadcrumbs.d.ts.map +1 -0
  15. package/dist/button.cjs.map +1 -1
  16. package/dist/button.d.ts +7 -9
  17. package/dist/button.d.ts.map +1 -0
  18. package/dist/card.cjs.map +1 -1
  19. package/dist/card.d.ts +3 -4
  20. package/dist/card.d.ts.map +1 -0
  21. package/dist/checkbox.cjs.map +1 -1
  22. package/dist/checkbox.d.ts +3 -4
  23. package/dist/checkbox.d.ts.map +1 -0
  24. package/dist/chunk-32XB3REY.cjs.map +1 -1
  25. package/dist/chunk-5VMEEKZ5.cjs.map +1 -1
  26. package/dist/chunk-5ZITWMV4.cjs.map +1 -1
  27. package/dist/chunk-76RSVRGB.cjs.map +1 -1
  28. package/dist/chunk-7EXXNELX.cjs.map +1 -1
  29. package/dist/chunk-BXMTQGKV.cjs.map +1 -1
  30. package/dist/{chunk-DCXYO3RB.js → chunk-C6K7FZNX.js} +7 -3
  31. package/dist/chunk-C6K7FZNX.js.map +1 -0
  32. package/dist/{chunk-AE4GLYJE.cjs → chunk-DMWSWL4B.cjs} +7 -3
  33. package/dist/chunk-DMWSWL4B.cjs.map +1 -0
  34. package/dist/chunk-GSR6SMQ2.cjs.map +1 -1
  35. package/dist/chunk-IO77MGHW.js +220 -0
  36. package/dist/chunk-IO77MGHW.js.map +1 -0
  37. package/dist/chunk-JXW4XE2P.cjs.map +1 -1
  38. package/dist/{chunk-OJ5G4BLS.js → chunk-KVHOMD4T.js} +15 -18
  39. package/dist/chunk-KVHOMD4T.js.map +1 -0
  40. package/dist/chunk-MAENILZP.cjs.map +1 -1
  41. package/dist/chunk-NEY26NNF.cjs.map +1 -1
  42. package/dist/chunk-QKWXJM4Q.cjs +220 -0
  43. package/dist/chunk-QKWXJM4Q.cjs.map +1 -0
  44. package/dist/chunk-T52J3SHP.cjs.map +1 -1
  45. package/dist/{chunk-I5NVZORX.cjs → chunk-TFP5RICB.cjs} +15 -18
  46. package/dist/chunk-TFP5RICB.cjs.map +1 -0
  47. package/dist/chunk-UFL6PVLI.cjs.map +1 -1
  48. package/dist/chunk-VL6L4GDA.cjs.map +1 -1
  49. package/dist/chunk-WJUDOEVB.cjs.map +1 -1
  50. package/dist/chunk-XGKBDPGD.cjs.map +1 -1
  51. package/dist/chunk-Z57QBVUC.cjs.map +1 -1
  52. package/dist/command.cjs +1 -0
  53. package/dist/command.cjs.map +1 -1
  54. package/dist/command.d.ts +13 -15
  55. package/dist/command.d.ts.map +1 -0
  56. package/dist/command.js +1 -0
  57. package/dist/command.js.map +1 -1
  58. package/dist/confirm-dialog.cjs.map +1 -1
  59. package/dist/confirm-dialog.d.ts +4 -6
  60. package/dist/confirm-dialog.d.ts.map +1 -0
  61. package/dist/data-table.cjs +35 -23
  62. package/dist/data-table.cjs.map +1 -1
  63. package/dist/data-table.d.ts +9 -11
  64. package/dist/data-table.d.ts.map +1 -0
  65. package/dist/data-table.js +34 -22
  66. package/dist/data-table.js.map +1 -1
  67. package/dist/detail-panel.cjs.map +1 -1
  68. package/dist/detail-panel.d.ts +6 -8
  69. package/dist/detail-panel.d.ts.map +1 -0
  70. package/dist/dialog.cjs.map +1 -1
  71. package/dist/dialog.d.ts +6 -8
  72. package/dist/dialog.d.ts.map +1 -0
  73. package/dist/dropdown-menu.cjs.map +1 -1
  74. package/dist/dropdown-menu.d.ts +5 -7
  75. package/dist/dropdown-menu.d.ts.map +1 -0
  76. package/dist/financing-widget.cjs +1 -3
  77. package/dist/financing-widget.cjs.map +1 -1
  78. package/dist/financing-widget.d.ts +5 -6
  79. package/dist/financing-widget.d.ts.map +1 -0
  80. package/dist/financing-widget.js +1 -3
  81. package/dist/financing-widget.js.map +1 -1
  82. package/dist/form-field.cjs.map +1 -1
  83. package/dist/form-field.d.ts +4 -5
  84. package/dist/form-field.d.ts.map +1 -0
  85. package/dist/form-input.cjs.map +1 -1
  86. package/dist/form-input.d.ts +4 -5
  87. package/dist/form-input.d.ts.map +1 -0
  88. package/dist/form-select.cjs.map +1 -1
  89. package/dist/form-select.d.ts +4 -5
  90. package/dist/form-select.d.ts.map +1 -0
  91. package/dist/form-textarea.cjs.map +1 -1
  92. package/dist/form-textarea.d.ts +4 -5
  93. package/dist/form-textarea.d.ts.map +1 -0
  94. package/dist/gtm.cjs +3 -2
  95. package/dist/gtm.cjs.map +1 -1
  96. package/dist/gtm.d.ts +12 -15
  97. package/dist/gtm.d.ts.map +1 -0
  98. package/dist/gtm.js +2 -1
  99. package/dist/input.cjs.map +1 -1
  100. package/dist/input.d.ts +4 -5
  101. package/dist/input.d.ts.map +1 -0
  102. package/dist/label.cjs.map +1 -1
  103. package/dist/label.d.ts +5 -7
  104. package/dist/label.d.ts.map +1 -0
  105. package/dist/list-view.cjs.map +1 -1
  106. package/dist/list-view.d.ts +5 -7
  107. package/dist/list-view.d.ts.map +1 -0
  108. package/dist/mdx-components.cjs +5 -2
  109. package/dist/mdx-components.cjs.map +1 -1
  110. package/dist/mdx-components.d.ts +11 -6
  111. package/dist/mdx-components.d.ts.map +1 -0
  112. package/dist/mdx-components.js +5 -2
  113. package/dist/mdx-components.js.map +1 -1
  114. package/dist/navigation-menu.cjs.map +1 -1
  115. package/dist/navigation-menu.d.ts +5 -7
  116. package/dist/navigation-menu.d.ts.map +1 -0
  117. package/dist/pagination.cjs +3 -2
  118. package/dist/pagination.cjs.map +1 -1
  119. package/dist/pagination.d.ts +10 -14
  120. package/dist/pagination.d.ts.map +1 -0
  121. package/dist/pagination.js +2 -1
  122. package/dist/payment-modal.cjs +20 -19
  123. package/dist/payment-modal.cjs.map +1 -1
  124. package/dist/payment-modal.d.ts +5 -7
  125. package/dist/payment-modal.d.ts.map +1 -0
  126. package/dist/payment-modal.js +19 -18
  127. package/dist/payment-modal.js.map +1 -1
  128. package/dist/popover.cjs.map +1 -1
  129. package/dist/popover.d.ts +4 -5
  130. package/dist/popover.d.ts.map +1 -0
  131. package/dist/price-format.cjs.map +1 -1
  132. package/dist/price-format.d.ts +4 -5
  133. package/dist/price-format.d.ts.map +1 -0
  134. package/dist/price.cjs +4 -1
  135. package/dist/price.cjs.map +1 -1
  136. package/dist/price.d.ts +8 -22
  137. package/dist/price.d.ts.map +1 -0
  138. package/dist/price.js +4 -1
  139. package/dist/price.js.map +1 -1
  140. package/dist/provider.cjs +4 -2
  141. package/dist/provider.cjs.map +1 -1
  142. package/dist/provider.d.ts +7 -10
  143. package/dist/provider.d.ts.map +1 -0
  144. package/dist/provider.js +3 -1
  145. package/dist/provider.js.map +1 -1
  146. package/dist/quantity-input.cjs +27 -40
  147. package/dist/quantity-input.cjs.map +1 -1
  148. package/dist/quantity-input.d.ts +4 -5
  149. package/dist/quantity-input.d.ts.map +1 -0
  150. package/dist/quantity-input.js +27 -40
  151. package/dist/quantity-input.js.map +1 -1
  152. package/dist/radio-group.cjs.map +1 -1
  153. package/dist/radio-group.d.ts +3 -4
  154. package/dist/radio-group.d.ts.map +1 -0
  155. package/dist/resource-tabs.cjs +1 -0
  156. package/dist/resource-tabs.cjs.map +1 -1
  157. package/dist/resource-tabs.d.ts +6 -8
  158. package/dist/resource-tabs.d.ts.map +1 -0
  159. package/dist/resource-tabs.js +1 -0
  160. package/dist/resource-tabs.js.map +1 -1
  161. package/dist/rules.d.ts +210 -0
  162. package/dist/rules.d.ts.map +1 -0
  163. package/dist/select.cjs.map +1 -1
  164. package/dist/select.d.ts +4 -5
  165. package/dist/select.d.ts.map +1 -0
  166. package/dist/separator.cjs.map +1 -1
  167. package/dist/separator.d.ts +3 -4
  168. package/dist/separator.d.ts.map +1 -0
  169. package/dist/session-replay.cjs +4 -2
  170. package/dist/session-replay.cjs.map +1 -1
  171. package/dist/session-replay.d.ts +4 -5
  172. package/dist/session-replay.d.ts.map +1 -0
  173. package/dist/session-replay.js +4 -2
  174. package/dist/session-replay.js.map +1 -1
  175. package/dist/skeleton.cjs.map +1 -1
  176. package/dist/skeleton.d.ts +2 -4
  177. package/dist/skeleton.d.ts.map +1 -0
  178. package/dist/spinner.cjs.map +1 -1
  179. package/dist/spinner.d.ts +2 -4
  180. package/dist/spinner.d.ts.map +1 -0
  181. package/dist/stock-label.cjs +14 -12
  182. package/dist/stock-label.cjs.map +1 -1
  183. package/dist/stock-label.d.ts +7 -7
  184. package/dist/stock-label.d.ts.map +1 -0
  185. package/dist/stock-label.js +14 -12
  186. package/dist/stock-label.js.map +1 -1
  187. package/dist/table.cjs.map +1 -1
  188. package/dist/table.d.ts +3 -4
  189. package/dist/table.d.ts.map +1 -0
  190. package/dist/tabs.cjs.map +1 -1
  191. package/dist/tabs.d.ts +4 -5
  192. package/dist/tabs.d.ts.map +1 -0
  193. package/dist/textarea.cjs.map +1 -1
  194. package/dist/textarea.d.ts +4 -5
  195. package/dist/textarea.d.ts.map +1 -0
  196. package/llms.txt +23 -38
  197. package/package.json +26 -17
  198. package/dist/accordion.d.cts +0 -9
  199. package/dist/add-to-cart-button.d.cts +0 -14
  200. package/dist/breadcrumb.d.cts +0 -22
  201. package/dist/breadcrumbs.d.cts +0 -31
  202. package/dist/button.d.cts +0 -27
  203. package/dist/card.d.cts +0 -10
  204. package/dist/checkbox.d.cts +0 -6
  205. package/dist/chunk-AE4GLYJE.cjs.map +0 -1
  206. package/dist/chunk-DCXYO3RB.js.map +0 -1
  207. package/dist/chunk-I5NVZORX.cjs.map +0 -1
  208. package/dist/chunk-OJ5G4BLS.js.map +0 -1
  209. package/dist/command.d.cts +0 -87
  210. package/dist/confirm-dialog.d.cts +0 -35
  211. package/dist/data-table.d.cts +0 -55
  212. package/dist/detail-panel.d.cts +0 -59
  213. package/dist/dialog.d.cts +0 -22
  214. package/dist/dropdown-menu.d.cts +0 -30
  215. package/dist/financing-widget.d.cts +0 -45
  216. package/dist/form-field.d.cts +0 -14
  217. package/dist/form-input.d.cts +0 -19
  218. package/dist/form-select.d.cts +0 -34
  219. package/dist/form-textarea.d.cts +0 -12
  220. package/dist/gtm.d.cts +0 -69
  221. package/dist/input.d.cts +0 -6
  222. package/dist/label.d.cts +0 -8
  223. package/dist/list-view.d.cts +0 -18
  224. package/dist/mdx-components.d.cts +0 -20
  225. package/dist/navigation-menu.d.cts +0 -15
  226. package/dist/pagination.d.cts +0 -50
  227. package/dist/payment-modal.d.cts +0 -30
  228. package/dist/popover.d.cts +0 -9
  229. package/dist/price-format.d.cts +0 -21
  230. package/dist/price.d.cts +0 -90
  231. package/dist/provider.d.cts +0 -47
  232. package/dist/quantity-input.d.cts +0 -33
  233. package/dist/radio-group.d.cts +0 -7
  234. package/dist/resource-tabs.d.cts +0 -33
  235. package/dist/select.d.cts +0 -15
  236. package/dist/separator.d.cts +0 -6
  237. package/dist/session-replay.d.cts +0 -44
  238. package/dist/skeleton.d.cts +0 -5
  239. package/dist/spinner.d.cts +0 -10
  240. package/dist/stock-label.d.cts +0 -47
  241. package/dist/table.d.cts +0 -12
  242. package/dist/tabs.d.cts +0 -9
  243. package/dist/textarea.d.cts +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../src/card.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,IAAI,6GAQT,CAAC;AAGF,QAAA,MAAM,UAAU,6GAIf,CAAC;AAGF,QAAA,MAAM,SAAS,uHAQd,CAAC;AAGF,QAAA,MAAM,eAAe,yHAKnB,CAAC;AAGH,QAAA,MAAM,WAAW,6GAIhB,CAAC;AAGF,QAAA,MAAM,UAAU,6GAIf,CAAC;AAGF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/checkbox.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,8CAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/checkbox.cjs"}
1
+ {"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/checkbox.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,8CAAC","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/checkbox.cjs"}
@@ -1,6 +1,5 @@
1
- import * as React from 'react';
2
- import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
-
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
4
3
  declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
5
-
6
4
  export { Checkbox };
5
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../src/checkbox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAI9D,QAAA,MAAM,QAAQ,iKAgBZ,CAAC;AAGH,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/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":"/home/runner/work/augur-packages/augur-packages/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
+ {"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 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/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":"/home/runner/work/augur-packages/augur-packages/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
+ {"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 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/chunk-5ZITWMV4.cjs","../src/textarea.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ;AACA;ACCA,2EAAuB;AACvB,sDAAmB;AAOb,+CAAA;AAHN,IAAM,SAAA,EAAiB,KAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AAChC,IAAA,uBACE,6BAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,qBAAA;AAAA,UACT,8PAAA;AAAA,UACA;AAAA,QACF,CAAA;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA,MAAA;AAAA,IACN,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,QAAA,CAAS,YAAA,EAAc,UAAA;ADAvB;AACA;AACE;AACF,4BAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/chunk-5ZITWMV4.cjs","sourcesContent":[null,"/** Styled textarea with focus ring and disabled state. */\n\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"]}
1
+ {"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-5ZITWMV4.cjs","../src/textarea.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ;AACA;ACCA,2EAAuB;AACvB,sDAAmB;AAOb,+CAAA;AAHN,IAAM,SAAA,EAAiB,KAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AAChC,IAAA,uBACE,6BAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,qBAAA;AAAA,UACT,8PAAA;AAAA,UACA;AAAA,QACF,CAAA;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA,MAAA;AAAA,IACN,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,QAAA,CAAS,YAAA,EAAc,UAAA;ADAvB;AACA;AACE;AACF,4BAAC","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-5ZITWMV4.cjs","sourcesContent":[null,"/** Styled textarea with focus ring and disabled state. */\n\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/chunk-76RSVRGB.cjs","../src/select.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/augur-packages/augur-packages/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
+ {"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 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/chunk-7EXXNELX.cjs","../src/input.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ;AACA;ACCA,2EAAuB;AACvB,sDAAmB;AAOb,+CAAA;AAHN,IAAM,MAAA,EAAc,KAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AACtC,IAAA,uBACE,6BAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,SAAA,EAAW,qBAAA;AAAA,UACT,uUAAA;AAAA,UACA;AAAA,QACF,CAAA;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA,MAAA;AAAA,IACN,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,KAAA,CAAM,YAAA,EAAc,OAAA;ADApB;AACA;AACE;AACF,sBAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/chunk-7EXXNELX.cjs","sourcesContent":[null,"/** Styled text input with focus ring and disabled state. */\n\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement>;\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n"]}
1
+ {"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-7EXXNELX.cjs","../src/input.tsx"],"names":[],"mappings":"AAAA,uWAAY;AACZ;AACA;ACCA,2EAAuB;AACvB,sDAAmB;AAOb,+CAAA;AAHN,IAAM,MAAA,EAAc,KAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AACtC,IAAA,uBACE,6BAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,SAAA,EAAW,qBAAA;AAAA,UACT,uUAAA;AAAA,UACA;AAAA,QACF,CAAA;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA,MAAA;AAAA,IACN,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,KAAA,CAAM,YAAA,EAAc,OAAA;ADApB;AACA;AACE;AACF,sBAAC","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-7EXXNELX.cjs","sourcesContent":[null,"/** Styled text input with focus ring and disabled state. */\n\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement>;\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/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":"/home/runner/work/augur-packages/augur-packages/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"]}
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"]}
@@ -1,4 +1,7 @@
1
1
  "use client";
2
+ import {
3
+ gtmTiming
4
+ } from "./chunk-IO77MGHW.js";
2
5
 
3
6
  // src/gtm.tsx
4
7
  import { createContext, useCallback, useContext, useMemo, useRef, useState } from "react";
@@ -38,12 +41,13 @@ function AnalyticsProvider({
38
41
  const loadGtm = useCallback(() => {
39
42
  if (injectedRef.current) return;
40
43
  injectedRef.current = true;
41
- if (strategy === "lazyOnload" && typeof requestIdleCallback === "function") {
44
+ const timing = gtmTiming(strategy, typeof requestIdleCallback === "function");
45
+ if (timing === "idle") {
42
46
  requestIdleCallback(() => {
43
47
  injectGtmScript(gtmId, strategy);
44
48
  setIsLoaded(true);
45
49
  });
46
- } else if (strategy === "afterInteractive") {
50
+ } else if (timing === "next-tick") {
47
51
  setTimeout(() => {
48
52
  injectGtmScript(gtmId, strategy);
49
53
  setIsLoaded(true);
@@ -122,4 +126,4 @@ export {
122
126
  useAnalytics,
123
127
  AnalyticsNoscript
124
128
  };
125
- //# sourceMappingURL=chunk-DCXYO3RB.js.map
129
+ //# sourceMappingURL=chunk-C6K7FZNX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gtm.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { gtmTiming } from \"./rules\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Script loading strategy. */\nexport type AnalyticsStrategy = \"default\" | \"afterInteractive\" | \"lazyOnload\";\n\n/** GA4 standard e-commerce event names. */\nexport type EcommerceEvent =\n | \"view_item\"\n | \"view_item_list\"\n | \"select_item\"\n | \"add_to_cart\"\n | \"remove_from_cart\"\n | \"view_cart\"\n | \"begin_checkout\"\n | \"add_shipping_info\"\n | \"add_payment_info\"\n | \"purchase\"\n | \"refund\";\n\n/** GA4 e-commerce item shape. */\nexport interface EcommerceItem {\n item_id: string;\n item_name?: string;\n item_brand?: string;\n item_category?: string;\n item_variant?: string;\n price?: number;\n quantity?: number;\n index?: number;\n [key: string]: unknown;\n}\n\n/** Parameters for e-commerce events. */\nexport interface EcommerceParams {\n currency?: string;\n value?: number;\n items?: EcommerceItem[];\n transaction_id?: string;\n shipping?: number;\n tax?: number;\n coupon?: string;\n [key: string]: unknown;\n}\n\nexport interface AnalyticsProviderProps {\n /** GTM container ID (e.g. \"GTM-XXXXX\"). */\n gtmId: string;\n /** Script loading strategy. Default: \"afterInteractive\". */\n strategy?: AnalyticsStrategy;\n /** Delay GTM loading until consent is granted. Default: false. */\n consentRequired?: boolean;\n /** Log dataLayer pushes to console. Default: false. */\n debug?: boolean;\n children: ReactNode;\n}\n\nexport interface AnalyticsContextValue {\n /** Push a custom event to the dataLayer. */\n trackEvent: (event: string, params?: Record<string, unknown>) => void;\n /** Push a GA4 e-commerce event to the dataLayer. */\n trackEcommerceEvent: (event: EcommerceEvent, params: EcommerceParams) => void;\n /** Grant consent — loads GTM if consentRequired was true. */\n grantConsent: () => void;\n /** Revoke consent. Does not unload GTM (scripts can't be unloaded). */\n revokeConsent: () => void;\n /** Whether consent has been granted. */\n hasConsent: boolean;\n /** Whether the GTM script has been injected. */\n isLoaded: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst AnalyticsContext = createContext<AnalyticsContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\ndeclare global {\n interface Window {\n dataLayer?: Record<string, unknown>[];\n }\n}\n\n// Analytics calls can come from callbacks and timers after the page has gone.\nfunction getDataLayer(): Record<string, unknown>[] {\n if (typeof window === \"undefined\") return [];\n if (!window.dataLayer) window.dataLayer = [];\n return window.dataLayer;\n}\n\nfunction injectGtmScript(gtmId: string, strategy: AnalyticsStrategy): void {\n if (typeof document === \"undefined\") return;\n\n // Prevent double-injection\n if (document.getElementById(\"gtm-script\")) return;\n\n const dataLayer = getDataLayer();\n dataLayer.push({ \"gtm.start\": new Date().getTime(), event: \"gtm.js\" });\n\n const script = document.createElement(\"script\");\n script.id = \"gtm-script\";\n script.src = `https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(gtmId)}`;\n\n if (strategy === \"lazyOnload\") {\n script.async = true;\n script.defer = true;\n } else {\n // \"default\" and \"afterInteractive\"\n script.async = true;\n }\n\n document.head.appendChild(script);\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\nexport function AnalyticsProvider({\n gtmId,\n strategy = \"afterInteractive\",\n consentRequired = false,\n debug = false,\n children,\n}: AnalyticsProviderProps) {\n const [hasConsent, setHasConsent] = useState(!consentRequired);\n const [isLoaded, setIsLoaded] = useState(false);\n const injectedRef = useRef(false);\n\n const loadGtm = useCallback(() => {\n if (injectedRef.current) return;\n injectedRef.current = true;\n\n const timing = gtmTiming(strategy, typeof requestIdleCallback === \"function\");\n if (timing === \"idle\") {\n requestIdleCallback(() => {\n injectGtmScript(gtmId, strategy);\n setIsLoaded(true);\n });\n } else if (timing === \"next-tick\") {\n // Defer to after hydration\n setTimeout(() => {\n injectGtmScript(gtmId, strategy);\n setIsLoaded(true);\n }, 0);\n } else {\n injectGtmScript(gtmId, strategy);\n setIsLoaded(true);\n }\n }, [gtmId, strategy]);\n\n // Auto-load when consent is not required or already granted (never while server-rendering)\n if (hasConsent && !injectedRef.current && typeof window !== \"undefined\") {\n loadGtm();\n }\n\n const trackEvent = useCallback(\n (event: string, params?: Record<string, unknown>) => {\n const entry = { event, ...params };\n if (debug) {\n console.log(\"[Analytics]\", entry);\n }\n getDataLayer().push(entry);\n },\n [debug],\n );\n\n const trackEcommerceEvent = useCallback(\n (event: EcommerceEvent, params: EcommerceParams) => {\n // Clear previous ecommerce data per GA4 best practices\n getDataLayer().push({ ecommerce: null });\n const entry = { event, ecommerce: params };\n if (debug) {\n console.log(\"[Analytics ecommerce]\", entry);\n }\n getDataLayer().push(entry);\n },\n [debug],\n );\n\n const grantConsent = useCallback(() => {\n setHasConsent(true);\n loadGtm();\n }, [loadGtm]);\n\n const revokeConsent = useCallback(() => {\n setHasConsent(false);\n }, []);\n\n const value = useMemo<AnalyticsContextValue>(\n () => ({\n trackEvent,\n trackEcommerceEvent,\n grantConsent,\n revokeConsent,\n hasConsent,\n isLoaded,\n }),\n [trackEvent, trackEcommerceEvent, grantConsent, revokeConsent, hasConsent, isLoaded],\n );\n\n return <AnalyticsContext.Provider value={value}>{children}</AnalyticsContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Hook\n// ---------------------------------------------------------------------------\n\nexport function useAnalytics(): AnalyticsContextValue {\n const context = useContext(AnalyticsContext);\n if (!context) {\n throw new Error(\"useAnalytics must be used within an <AnalyticsProvider>\");\n }\n return context;\n}\n\n// ---------------------------------------------------------------------------\n// Noscript\n// ---------------------------------------------------------------------------\n\nexport interface AnalyticsNoscriptProps {\n /** GTM container ID (must match AnalyticsProvider). */\n gtmId: string;\n}\n\nexport function AnalyticsNoscript({ gtmId }: AnalyticsNoscriptProps) {\n return (\n <noscript>\n <iframe\n src={`https://www.googletagmanager.com/ns.html?id=${encodeURIComponent(gtmId)}`}\n height=\"0\"\n width=\"0\"\n style={{ display: \"none\", visibility: \"hidden\" }}\n title=\"Google Tag Manager\"\n />\n </noscript>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,5 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
+
4
+ var _chunkQKWXJM4Qcjs = require('./chunk-QKWXJM4Q.cjs');
5
+
3
6
  // src/gtm.tsx
4
7
  var _react = require('react');
5
8
  var _jsxruntime = require('react/jsx-runtime');
@@ -38,12 +41,13 @@ function AnalyticsProvider({
38
41
  const loadGtm = _react.useCallback.call(void 0, () => {
39
42
  if (injectedRef.current) return;
40
43
  injectedRef.current = true;
41
- if (strategy === "lazyOnload" && typeof requestIdleCallback === "function") {
44
+ const timing = _chunkQKWXJM4Qcjs.gtmTiming.call(void 0, strategy, typeof requestIdleCallback === "function");
45
+ if (timing === "idle") {
42
46
  requestIdleCallback(() => {
43
47
  injectGtmScript(gtmId, strategy);
44
48
  setIsLoaded(true);
45
49
  });
46
- } else if (strategy === "afterInteractive") {
50
+ } else if (timing === "next-tick") {
47
51
  setTimeout(() => {
48
52
  injectGtmScript(gtmId, strategy);
49
53
  setIsLoaded(true);
@@ -122,4 +126,4 @@ function AnalyticsNoscript({ gtmId }) {
122
126
 
123
127
 
124
128
  exports.AnalyticsProvider = AnalyticsProvider; exports.useAnalytics = useAnalytics; exports.AnalyticsNoscript = AnalyticsNoscript;
125
- //# sourceMappingURL=chunk-AE4GLYJE.cjs.map
129
+ //# sourceMappingURL=chunk-DMWSWL4B.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-DMWSWL4B.cjs","../src/gtm.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACA;ACHA,8BAAkF;AAmNzE,+CAAA;AAlIT,IAAM,iBAAA,EAAmB,kCAAA,IAAgD,CAAA;AAazE,SAAS,YAAA,CAAA,EAA0C;AACjD,EAAA,GAAA,CAAI,OAAO,OAAA,IAAW,WAAA,EAAa,OAAO,CAAC,CAAA;AAC3C,EAAA,GAAA,CAAI,CAAC,MAAA,CAAO,SAAA,EAAW,MAAA,CAAO,UAAA,EAAY,CAAC,CAAA;AAC3C,EAAA,OAAO,MAAA,CAAO,SAAA;AAChB;AAEA,SAAS,eAAA,CAAgB,KAAA,EAAe,QAAA,EAAmC;AACzE,EAAA,GAAA,CAAI,OAAO,SAAA,IAAa,WAAA,EAAa,MAAA;AAGrC,EAAA,GAAA,CAAI,QAAA,CAAS,cAAA,CAAe,YAAY,CAAA,EAAG,MAAA;AAE3C,EAAA,MAAM,UAAA,EAAY,YAAA,CAAa,CAAA;AAC/B,EAAA,SAAA,CAAU,IAAA,CAAK,EAAE,WAAA,EAAA,iBAAa,IAAI,IAAA,CAAK,CAAA,CAAA,CAAE,OAAA,CAAQ,CAAA,EAAG,KAAA,EAAO,SAAS,CAAC,CAAA;AAErE,EAAA,MAAM,OAAA,EAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,EAAA,MAAA,CAAO,GAAA,EAAK,YAAA;AACZ,EAAA,MAAA,CAAO,IAAA,EAAM,CAAA,2CAAA,EAA8C,kBAAA,CAAmB,KAAK,CAAC,CAAA,CAAA;AAErD,EAAA;AACd,IAAA;AACA,IAAA;AACV,EAAA;AAEU,IAAA;AACjB,EAAA;AAEgC,EAAA;AAClC;AAMkC;AAChC,EAAA;AACW,EAAA;AACO,EAAA;AACV,EAAA;AACR,EAAA;AACyB;AACoC,EAAA;AACf,EAAA;AACd,EAAA;AAEE,EAAA;AACP,IAAA;AACH,IAAA;AAEsD,IAAA;AACrD,IAAA;AACK,MAAA;AACO,QAAA;AACf,QAAA;AACjB,MAAA;AACgC,IAAA;AAEhB,MAAA;AACgB,QAAA;AACf,QAAA;AACd,MAAA;AACC,IAAA;AAC0B,MAAA;AACf,MAAA;AAClB,IAAA;AACkB,EAAA;AAGqD,EAAA;AAC/D,IAAA;AACV,EAAA;AAEmB,EAAA;AACoC,IAAA;AAClB,MAAA;AACtB,MAAA;AACuB,QAAA;AAClC,MAAA;AACyB,MAAA;AAC3B,IAAA;AACM,IAAA;AACR,EAAA;AAE4B,EAAA;AAC0B,IAAA;AAEX,MAAA;AACE,MAAA;AAC9B,MAAA;AACiC,QAAA;AAC5C,MAAA;AACyB,MAAA;AAC3B,IAAA;AACM,IAAA;AACR,EAAA;AAEuC,EAAA;AACnB,IAAA;AACV,IAAA;AACE,EAAA;AAE4B,EAAA;AACnB,IAAA;AAChB,EAAA;AAES,EAAA;AACL,IAAA;AACL,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACmF,IAAA;AACrF,EAAA;AAE0D,EAAA;AAC5D;AAMsD;AACT,EAAA;AAC7B,EAAA;AAC6D,IAAA;AAC3E,EAAA;AACO,EAAA;AACT;AAWqE;AAG/D,EAAA;AAAC,IAAA;AAAA,IAAA;AAC8E,MAAA;AACtE,MAAA;AACD,MAAA;AACyC,MAAA;AACzC,MAAA;AAAA,IAAA;AAEV,EAAA;AAEJ;AD/HuF;AACA;AACA;AACA;AACA;AACA","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-DMWSWL4B.cjs","sourcesContent":[null,"\"use client\";\n\nimport { createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { gtmTiming } from \"./rules\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Script loading strategy. */\nexport type AnalyticsStrategy = \"default\" | \"afterInteractive\" | \"lazyOnload\";\n\n/** GA4 standard e-commerce event names. */\nexport type EcommerceEvent =\n | \"view_item\"\n | \"view_item_list\"\n | \"select_item\"\n | \"add_to_cart\"\n | \"remove_from_cart\"\n | \"view_cart\"\n | \"begin_checkout\"\n | \"add_shipping_info\"\n | \"add_payment_info\"\n | \"purchase\"\n | \"refund\";\n\n/** GA4 e-commerce item shape. */\nexport interface EcommerceItem {\n item_id: string;\n item_name?: string;\n item_brand?: string;\n item_category?: string;\n item_variant?: string;\n price?: number;\n quantity?: number;\n index?: number;\n [key: string]: unknown;\n}\n\n/** Parameters for e-commerce events. */\nexport interface EcommerceParams {\n currency?: string;\n value?: number;\n items?: EcommerceItem[];\n transaction_id?: string;\n shipping?: number;\n tax?: number;\n coupon?: string;\n [key: string]: unknown;\n}\n\nexport interface AnalyticsProviderProps {\n /** GTM container ID (e.g. \"GTM-XXXXX\"). */\n gtmId: string;\n /** Script loading strategy. Default: \"afterInteractive\". */\n strategy?: AnalyticsStrategy;\n /** Delay GTM loading until consent is granted. Default: false. */\n consentRequired?: boolean;\n /** Log dataLayer pushes to console. Default: false. */\n debug?: boolean;\n children: ReactNode;\n}\n\nexport interface AnalyticsContextValue {\n /** Push a custom event to the dataLayer. */\n trackEvent: (event: string, params?: Record<string, unknown>) => void;\n /** Push a GA4 e-commerce event to the dataLayer. */\n trackEcommerceEvent: (event: EcommerceEvent, params: EcommerceParams) => void;\n /** Grant consent — loads GTM if consentRequired was true. */\n grantConsent: () => void;\n /** Revoke consent. Does not unload GTM (scripts can't be unloaded). */\n revokeConsent: () => void;\n /** Whether consent has been granted. */\n hasConsent: boolean;\n /** Whether the GTM script has been injected. */\n isLoaded: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst AnalyticsContext = createContext<AnalyticsContextValue | null>(null);\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\ndeclare global {\n interface Window {\n dataLayer?: Record<string, unknown>[];\n }\n}\n\n// Analytics calls can come from callbacks and timers after the page has gone.\nfunction getDataLayer(): Record<string, unknown>[] {\n if (typeof window === \"undefined\") return [];\n if (!window.dataLayer) window.dataLayer = [];\n return window.dataLayer;\n}\n\nfunction injectGtmScript(gtmId: string, strategy: AnalyticsStrategy): void {\n if (typeof document === \"undefined\") return;\n\n // Prevent double-injection\n if (document.getElementById(\"gtm-script\")) return;\n\n const dataLayer = getDataLayer();\n dataLayer.push({ \"gtm.start\": new Date().getTime(), event: \"gtm.js\" });\n\n const script = document.createElement(\"script\");\n script.id = \"gtm-script\";\n script.src = `https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(gtmId)}`;\n\n if (strategy === \"lazyOnload\") {\n script.async = true;\n script.defer = true;\n } else {\n // \"default\" and \"afterInteractive\"\n script.async = true;\n }\n\n document.head.appendChild(script);\n}\n\n// ---------------------------------------------------------------------------\n// Provider\n// ---------------------------------------------------------------------------\n\nexport function AnalyticsProvider({\n gtmId,\n strategy = \"afterInteractive\",\n consentRequired = false,\n debug = false,\n children,\n}: AnalyticsProviderProps) {\n const [hasConsent, setHasConsent] = useState(!consentRequired);\n const [isLoaded, setIsLoaded] = useState(false);\n const injectedRef = useRef(false);\n\n const loadGtm = useCallback(() => {\n if (injectedRef.current) return;\n injectedRef.current = true;\n\n const timing = gtmTiming(strategy, typeof requestIdleCallback === \"function\");\n if (timing === \"idle\") {\n requestIdleCallback(() => {\n injectGtmScript(gtmId, strategy);\n setIsLoaded(true);\n });\n } else if (timing === \"next-tick\") {\n // Defer to after hydration\n setTimeout(() => {\n injectGtmScript(gtmId, strategy);\n setIsLoaded(true);\n }, 0);\n } else {\n injectGtmScript(gtmId, strategy);\n setIsLoaded(true);\n }\n }, [gtmId, strategy]);\n\n // Auto-load when consent is not required or already granted (never while server-rendering)\n if (hasConsent && !injectedRef.current && typeof window !== \"undefined\") {\n loadGtm();\n }\n\n const trackEvent = useCallback(\n (event: string, params?: Record<string, unknown>) => {\n const entry = { event, ...params };\n if (debug) {\n console.log(\"[Analytics]\", entry);\n }\n getDataLayer().push(entry);\n },\n [debug],\n );\n\n const trackEcommerceEvent = useCallback(\n (event: EcommerceEvent, params: EcommerceParams) => {\n // Clear previous ecommerce data per GA4 best practices\n getDataLayer().push({ ecommerce: null });\n const entry = { event, ecommerce: params };\n if (debug) {\n console.log(\"[Analytics ecommerce]\", entry);\n }\n getDataLayer().push(entry);\n },\n [debug],\n );\n\n const grantConsent = useCallback(() => {\n setHasConsent(true);\n loadGtm();\n }, [loadGtm]);\n\n const revokeConsent = useCallback(() => {\n setHasConsent(false);\n }, []);\n\n const value = useMemo<AnalyticsContextValue>(\n () => ({\n trackEvent,\n trackEcommerceEvent,\n grantConsent,\n revokeConsent,\n hasConsent,\n isLoaded,\n }),\n [trackEvent, trackEcommerceEvent, grantConsent, revokeConsent, hasConsent, isLoaded],\n );\n\n return <AnalyticsContext.Provider value={value}>{children}</AnalyticsContext.Provider>;\n}\n\n// ---------------------------------------------------------------------------\n// Hook\n// ---------------------------------------------------------------------------\n\nexport function useAnalytics(): AnalyticsContextValue {\n const context = useContext(AnalyticsContext);\n if (!context) {\n throw new Error(\"useAnalytics must be used within an <AnalyticsProvider>\");\n }\n return context;\n}\n\n// ---------------------------------------------------------------------------\n// Noscript\n// ---------------------------------------------------------------------------\n\nexport interface AnalyticsNoscriptProps {\n /** GTM container ID (must match AnalyticsProvider). */\n gtmId: string;\n}\n\nexport function AnalyticsNoscript({ gtmId }: AnalyticsNoscriptProps) {\n return (\n <noscript>\n <iframe\n src={`https://www.googletagmanager.com/ns.html?id=${encodeURIComponent(gtmId)}`}\n height=\"0\"\n width=\"0\"\n style={{ display: \"none\", visibility: \"hidden\" }}\n title=\"Google Tag Manager\"\n />\n </noscript>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/chunk-GSR6SMQ2.cjs","../src/breadcrumb.tsx"],"names":[],"mappings":"AAAA,2cAAY;AACZ;AACA;ACAA,2EAAuB;AACvB,oCAA2C;AAC3C,iDAAqB;AACrB,sDAAmB;AAOM,+CAAA;AALzB,IAAM,WAAA,EAAmB,KAAA,CAAA,UAAA,CAKvB,CAAC,EAAE,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,mBAAQ,6BAAA,KAAC,EAAA,EAAI,GAAA,EAAU,YAAA,EAAW,YAAA,EAAc,GAAG,MAAA,CAAO,CAAE,CAAA;AAC7E,UAAA,CAAW,YAAA,EAAc,YAAA;AAEzB,IAAM,eAAA,EAAuB,KAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,mBACxB,6BAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,qBAAA;AAAA,QACT,0FAAA;AAAA,QACA;AAAA,MACF,CAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN;AAEJ,CAAA;AACA,cAAA,CAAe,YAAA,EAAc,gBAAA;AAE7B,IAAM,eAAA,EAAuB,KAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,mBACxB,6BAAA,IAAC,EAAA,EAAG,GAAA,EAAU,SAAA,EAAW,qBAAA,kCAAG,EAAoC,SAAS,CAAA,EAAI,GAAG,MAAA,CAAO;AAE3F,CAAA;AACA,cAAA,CAAe,YAAA,EAAc,gBAAA;AAE7B,IAAM,eAAA,EAAuB,KAAA,CAAA,UAAA,CAK3B,CAAC,EAAE,OAAA,EAAS,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,GAAQ;AAC3C,EAAA,MAAM,KAAA,EAAO,QAAA,EAAU,gBAAA,EAAO,GAAA;AAC9B,EAAA,uBACE,6BAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,qBAAA,yCAAG,EAA2C,SAAS,CAAA;AAAA,MACjE,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ,CAAC,CAAA;AACD,cAAA,CAAe,YAAA,EAAc,gBAAA;AAE7B,IAAM,eAAA,EAAuB,KAAA,CAAA,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAA,mBACxB,6BAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,eAAA,EAAc,MAAA;AAAA,MACd,cAAA,EAAa,MAAA;AAAA,MACb,SAAA,EAAW,qBAAA,6BAAG,EAA+B,SAAS,CAAA;AAAA,MACrD,GAAG;AAAA,IAAA;AAAA,EACN;AAEJ,CAAA;AACA,cAAA,CAAe,YAAA,EAAc,gBAAA;AAE7B,IAAM,oBAAA,EAAsB,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,MAAM,CAAA,EAAA,mBAC3D,6BAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,cAAA;AAAA,IACL,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAW,qBAAA,kBAAG,EAAoB,SAAS,CAAA;AAAA,IAC1C,GAAG,KAAA;AAAA,IAEH,QAAA,mBAAA,QAAA,0BAAY,6BAAA,kBAAC,EAAA,CAAA,CAAe;AAAA,EAAA;AAC/B,CAAA;AAEF,mBAAA,CAAoB,YAAA,EAAc,qBAAA;AAElC,IAAM,mBAAA,EAAqB,CAAC,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAA,mBAChD,8BAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,cAAA;AAAA,IACL,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAW,qBAAA,0CAAG,EAA4C,SAAS,CAAA;AAAA,IAClE,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAA,6BAAA,cAAC,EAAA,EAAW,SAAA,EAAU,UAAA,CAAU,CAAA;AAAA,sBAChC,6BAAA,MAAC,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,OAAA,CAAI;AAAA,IAAA;AAAA,EAAA;AAChC,CAAA;AAEF,kBAAA,CAAmB,YAAA,EAAc,oBAAA;ADXjC;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wSAAC","file":"/home/runner/work/augur-packages/augur-packages/packages/augur-web/dist/chunk-GSR6SMQ2.cjs","sourcesContent":[null,"\"use client\";\n\nimport * as React from \"react\";\nimport { LuChevronRight, LuEllipsis } from \"react-icons/lu\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<\"ol\">>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n ),\n);\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<\"li\">>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"inline-flex items-center gap-1.5\", className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n return (\n <Comp\n ref={ref}\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<\"span\">>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <LuChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <LuEllipsis className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"]}
1
+ {"version":3,"sources":["/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-GSR6SMQ2.cjs","../src/breadcrumb.tsx"],"names":[],"mappings":"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","file":"/Users/stuartjackson/Projects/simpleapps/atlas/repo/packages/augur-web/dist/chunk-GSR6SMQ2.cjs","sourcesContent":[null,"\"use client\";\n\nimport * as React from \"react\";\nimport { LuChevronRight, LuEllipsis } from \"react-icons/lu\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@simpleapps-com/augur-utils/web\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<\"ol\">>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n ),\n);\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<\"li\">>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"inline-flex items-center gap-1.5\", className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n return (\n <Comp\n ref={ref}\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<\"span\">>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <LuChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <LuEllipsis className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"]}
@@ -0,0 +1,220 @@
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