@ezpg/app-ui 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +20 -0
  3. package/lib/module/blocks/brand-profile-card/brand-profile-card.js +90 -0
  4. package/lib/module/blocks/brand-profile-card/brand-profile-card.js.map +1 -0
  5. package/lib/module/blocks/brand-profile-card/index.js +4 -0
  6. package/lib/module/blocks/brand-profile-card/index.js.map +1 -0
  7. package/lib/module/blocks/claim-row/claim-row.js +107 -0
  8. package/lib/module/blocks/claim-row/claim-row.js.map +1 -0
  9. package/lib/module/blocks/claim-row/index.js +4 -0
  10. package/lib/module/blocks/claim-row/index.js.map +1 -0
  11. package/lib/module/blocks/color-swatch-picker/color-swatch-picker.js +124 -0
  12. package/lib/module/blocks/color-swatch-picker/color-swatch-picker.js.map +1 -0
  13. package/lib/module/blocks/color-swatch-picker/index.js +4 -0
  14. package/lib/module/blocks/color-swatch-picker/index.js.map +1 -0
  15. package/lib/module/blocks/copy-variant-picker/copy-variant-picker.js +142 -0
  16. package/lib/module/blocks/copy-variant-picker/copy-variant-picker.js.map +1 -0
  17. package/lib/module/blocks/copy-variant-picker/index.js +4 -0
  18. package/lib/module/blocks/copy-variant-picker/index.js.map +1 -0
  19. package/lib/module/blocks/credit-wallet/credit-wallet.js +123 -0
  20. package/lib/module/blocks/credit-wallet/credit-wallet.js.map +1 -0
  21. package/lib/module/blocks/credit-wallet/index.js +4 -0
  22. package/lib/module/blocks/credit-wallet/index.js.map +1 -0
  23. package/lib/module/blocks/image-grid/image-grid.js +273 -0
  24. package/lib/module/blocks/image-grid/image-grid.js.map +1 -0
  25. package/lib/module/blocks/image-grid/index.js +4 -0
  26. package/lib/module/blocks/image-grid/index.js.map +1 -0
  27. package/lib/module/blocks/index.js +22 -0
  28. package/lib/module/blocks/index.js.map +1 -0
  29. package/lib/module/blocks/internal/card.js +41 -0
  30. package/lib/module/blocks/internal/card.js.map +1 -0
  31. package/lib/module/blocks/internal/format.js +25 -0
  32. package/lib/module/blocks/internal/format.js.map +1 -0
  33. package/lib/module/blocks/invoice-row/index.js +4 -0
  34. package/lib/module/blocks/invoice-row/index.js.map +1 -0
  35. package/lib/module/blocks/invoice-row/invoice-row.js +101 -0
  36. package/lib/module/blocks/invoice-row/invoice-row.js.map +1 -0
  37. package/lib/module/blocks/logo-candidate-grid/index.js +4 -0
  38. package/lib/module/blocks/logo-candidate-grid/index.js.map +1 -0
  39. package/lib/module/blocks/logo-candidate-grid/logo-candidate-grid.js +117 -0
  40. package/lib/module/blocks/logo-candidate-grid/logo-candidate-grid.js.map +1 -0
  41. package/lib/module/blocks/oauth-buttons/index.js +4 -0
  42. package/lib/module/blocks/oauth-buttons/index.js.map +1 -0
  43. package/lib/module/blocks/oauth-buttons/oauth-buttons.js +102 -0
  44. package/lib/module/blocks/oauth-buttons/oauth-buttons.js.map +1 -0
  45. package/lib/module/blocks/option-editor/index.js +4 -0
  46. package/lib/module/blocks/option-editor/index.js.map +1 -0
  47. package/lib/module/blocks/option-editor/option-editor.js +133 -0
  48. package/lib/module/blocks/option-editor/option-editor.js.map +1 -0
  49. package/lib/module/blocks/order-card/index.js +4 -0
  50. package/lib/module/blocks/order-card/index.js.map +1 -0
  51. package/lib/module/blocks/order-card/order-card.js +156 -0
  52. package/lib/module/blocks/order-card/order-card.js.map +1 -0
  53. package/lib/module/blocks/plan-card/index.js +4 -0
  54. package/lib/module/blocks/plan-card/index.js.map +1 -0
  55. package/lib/module/blocks/plan-card/plan-card.js +134 -0
  56. package/lib/module/blocks/plan-card/plan-card.js.map +1 -0
  57. package/lib/module/blocks/product-list-empty/index.js +4 -0
  58. package/lib/module/blocks/product-list-empty/index.js.map +1 -0
  59. package/lib/module/blocks/product-list-empty/product-list-empty.js +155 -0
  60. package/lib/module/blocks/product-list-empty/product-list-empty.js.map +1 -0
  61. package/lib/module/blocks/review-row/index.js +4 -0
  62. package/lib/module/blocks/review-row/index.js.map +1 -0
  63. package/lib/module/blocks/review-row/review-row.js +284 -0
  64. package/lib/module/blocks/review-row/review-row.js.map +1 -0
  65. package/lib/module/blocks/sales-chart/index.js +4 -0
  66. package/lib/module/blocks/sales-chart/index.js.map +1 -0
  67. package/lib/module/blocks/sales-chart/sales-chart.js +126 -0
  68. package/lib/module/blocks/sales-chart/sales-chart.js.map +1 -0
  69. package/lib/module/blocks/service-state-banner/index.js +4 -0
  70. package/lib/module/blocks/service-state-banner/index.js.map +1 -0
  71. package/lib/module/blocks/service-state-banner/service-state-banner.js +64 -0
  72. package/lib/module/blocks/service-state-banner/service-state-banner.js.map +1 -0
  73. package/lib/module/blocks/shipping-tracking-row/index.js +4 -0
  74. package/lib/module/blocks/shipping-tracking-row/index.js.map +1 -0
  75. package/lib/module/blocks/shipping-tracking-row/shipping-tracking-row.js +116 -0
  76. package/lib/module/blocks/shipping-tracking-row/shipping-tracking-row.js.map +1 -0
  77. package/lib/module/blocks/site-preview-frame/index.js +4 -0
  78. package/lib/module/blocks/site-preview-frame/index.js.map +1 -0
  79. package/lib/module/blocks/site-preview-frame/site-preview-frame.js +111 -0
  80. package/lib/module/blocks/site-preview-frame/site-preview-frame.js.map +1 -0
  81. package/lib/module/blocks/stat-card/index.js +4 -0
  82. package/lib/module/blocks/stat-card/index.js.map +1 -0
  83. package/lib/module/blocks/stat-card/stat-card.js +71 -0
  84. package/lib/module/blocks/stat-card/stat-card.js.map +1 -0
  85. package/lib/module/blocks/step-screen/index.js +4 -0
  86. package/lib/module/blocks/step-screen/index.js.map +1 -0
  87. package/lib/module/blocks/step-screen/step-screen.js +134 -0
  88. package/lib/module/blocks/step-screen/step-screen.js.map +1 -0
  89. package/lib/module/blocks/supply-item-card/index.js +4 -0
  90. package/lib/module/blocks/supply-item-card/index.js.map +1 -0
  91. package/lib/module/blocks/supply-item-card/supply-item-card.js +151 -0
  92. package/lib/module/blocks/supply-item-card/supply-item-card.js.map +1 -0
  93. package/lib/module/charts/index.js +5 -0
  94. package/lib/module/charts/index.js.map +1 -0
  95. package/lib/module/charts/line-chart.js +115 -0
  96. package/lib/module/charts/line-chart.js.map +1 -0
  97. package/lib/module/charts/scale.js +45 -0
  98. package/lib/module/charts/scale.js.map +1 -0
  99. package/lib/module/charts/sparkline.js +50 -0
  100. package/lib/module/charts/sparkline.js.map +1 -0
  101. package/lib/module/charts/summary.js +11 -0
  102. package/lib/module/charts/summary.js.map +1 -0
  103. package/lib/module/charts.js +5 -0
  104. package/lib/module/charts.js.map +1 -0
  105. package/lib/module/components/button/button.js +122 -0
  106. package/lib/module/components/button/button.js.map +1 -0
  107. package/lib/module/components/button/index.js +4 -0
  108. package/lib/module/components/button/index.js.map +1 -0
  109. package/lib/module/components/checkbox/checkbox.js +72 -0
  110. package/lib/module/components/checkbox/checkbox.js.map +1 -0
  111. package/lib/module/components/checkbox/index.js +4 -0
  112. package/lib/module/components/checkbox/index.js.map +1 -0
  113. package/lib/module/components/chip/chip.js +68 -0
  114. package/lib/module/components/chip/chip.js.map +1 -0
  115. package/lib/module/components/chip/index.js +4 -0
  116. package/lib/module/components/chip/index.js.map +1 -0
  117. package/lib/module/components/chip-group/chip-group.js +55 -0
  118. package/lib/module/components/chip-group/chip-group.js.map +1 -0
  119. package/lib/module/components/chip-group/index.js +4 -0
  120. package/lib/module/components/chip-group/index.js.map +1 -0
  121. package/lib/module/components/dialog/dialog.js +118 -0
  122. package/lib/module/components/dialog/dialog.js.map +1 -0
  123. package/lib/module/components/dialog/index.js +4 -0
  124. package/lib/module/components/dialog/index.js.map +1 -0
  125. package/lib/module/components/divider/divider.js +21 -0
  126. package/lib/module/components/divider/divider.js.map +1 -0
  127. package/lib/module/components/divider/index.js +4 -0
  128. package/lib/module/components/divider/index.js.map +1 -0
  129. package/lib/module/components/empty-state/empty-state.js +126 -0
  130. package/lib/module/components/empty-state/empty-state.js.map +1 -0
  131. package/lib/module/components/empty-state/index.js +4 -0
  132. package/lib/module/components/empty-state/index.js.map +1 -0
  133. package/lib/module/components/field/field.js +123 -0
  134. package/lib/module/components/field/field.js.map +1 -0
  135. package/lib/module/components/field/index.js +4 -0
  136. package/lib/module/components/field/index.js.map +1 -0
  137. package/lib/module/components/list-row/index.js +4 -0
  138. package/lib/module/components/list-row/index.js.map +1 -0
  139. package/lib/module/components/list-row/list-row.js +97 -0
  140. package/lib/module/components/list-row/list-row.js.map +1 -0
  141. package/lib/module/components/photo/index.js +4 -0
  142. package/lib/module/components/photo/index.js.map +1 -0
  143. package/lib/module/components/photo/photo.js +68 -0
  144. package/lib/module/components/photo/photo.js.map +1 -0
  145. package/lib/module/components/price/index.js +4 -0
  146. package/lib/module/components/price/index.js.map +1 -0
  147. package/lib/module/components/price/price.js +72 -0
  148. package/lib/module/components/price/price.js.map +1 -0
  149. package/lib/module/components/search-field/index.js +4 -0
  150. package/lib/module/components/search-field/index.js.map +1 -0
  151. package/lib/module/components/search-field/search-field.js +35 -0
  152. package/lib/module/components/search-field/search-field.js.map +1 -0
  153. package/lib/module/components/segmented-tabs/index.js +4 -0
  154. package/lib/module/components/segmented-tabs/index.js.map +1 -0
  155. package/lib/module/components/segmented-tabs/segmented-tabs.js +74 -0
  156. package/lib/module/components/segmented-tabs/segmented-tabs.js.map +1 -0
  157. package/lib/module/components/sheet/index.js +4 -0
  158. package/lib/module/components/sheet/index.js.map +1 -0
  159. package/lib/module/components/sheet/sheet.js +97 -0
  160. package/lib/module/components/sheet/sheet.js.map +1 -0
  161. package/lib/module/components/skeleton/index.js +4 -0
  162. package/lib/module/components/skeleton/index.js.map +1 -0
  163. package/lib/module/components/skeleton/skeleton.js +49 -0
  164. package/lib/module/components/skeleton/skeleton.js.map +1 -0
  165. package/lib/module/components/status-badge/index.js +4 -0
  166. package/lib/module/components/status-badge/index.js.map +1 -0
  167. package/lib/module/components/status-badge/status-badge.js +48 -0
  168. package/lib/module/components/status-badge/status-badge.js.map +1 -0
  169. package/lib/module/components/switch/index.js +4 -0
  170. package/lib/module/components/switch/index.js.map +1 -0
  171. package/lib/module/components/switch/switch.js +26 -0
  172. package/lib/module/components/switch/switch.js.map +1 -0
  173. package/lib/module/components/text/index.js +4 -0
  174. package/lib/module/components/text/index.js.map +1 -0
  175. package/lib/module/components/text/text.js +56 -0
  176. package/lib/module/components/text/text.js.map +1 -0
  177. package/lib/module/components/toast/index.js +4 -0
  178. package/lib/module/components/toast/index.js.map +1 -0
  179. package/lib/module/components/toast/toast.js +203 -0
  180. package/lib/module/components/toast/toast.js.map +1 -0
  181. package/lib/module/components/wizard-steps/index.js +4 -0
  182. package/lib/module/components/wizard-steps/index.js.map +1 -0
  183. package/lib/module/components/wizard-steps/wizard-steps.js +69 -0
  184. package/lib/module/components/wizard-steps/wizard-steps.js.map +1 -0
  185. package/lib/module/index.js +31 -0
  186. package/lib/module/index.js.map +1 -0
  187. package/lib/module/internal/glyphs.js +200 -0
  188. package/lib/module/internal/glyphs.js.map +1 -0
  189. package/lib/module/internal/icon.js +8 -0
  190. package/lib/module/internal/icon.js.map +1 -0
  191. package/lib/module/internal/overlay.js +60 -0
  192. package/lib/module/internal/overlay.js.map +1 -0
  193. package/lib/module/internal/pressable-base.js +40 -0
  194. package/lib/module/internal/pressable-base.js.map +1 -0
  195. package/lib/module/internal/use-reduced-motion.js +31 -0
  196. package/lib/module/internal/use-reduced-motion.js.map +1 -0
  197. package/lib/module/package.json +1 -0
  198. package/lib/module/sortable/index.js +6 -0
  199. package/lib/module/sortable/index.js.map +1 -0
  200. package/lib/module/sortable/move.js +11 -0
  201. package/lib/module/sortable/move.js.map +1 -0
  202. package/lib/module/sortable/sortable-grid.js +86 -0
  203. package/lib/module/sortable/sortable-grid.js.map +1 -0
  204. package/lib/module/sortable/sortable-list.js +16 -0
  205. package/lib/module/sortable/sortable-list.js.map +1 -0
  206. package/lib/module/sortable.js +6 -0
  207. package/lib/module/sortable.js.map +1 -0
  208. package/lib/module/theme/create-theme.js +56 -0
  209. package/lib/module/theme/create-theme.js.map +1 -0
  210. package/lib/module/theme/theme-provider.js +26 -0
  211. package/lib/module/theme/theme-provider.js.map +1 -0
  212. package/lib/module/theme/tokens.js +123 -0
  213. package/lib/module/theme/tokens.js.map +1 -0
  214. package/lib/module/types/index.js +4 -0
  215. package/lib/module/types/index.js.map +1 -0
  216. package/lib/module/utils/color.js +30 -0
  217. package/lib/module/utils/color.js.map +1 -0
  218. package/lib/module/utils/styles.js +22 -0
  219. package/lib/module/utils/styles.js.map +1 -0
  220. package/lib/typescript/package.json +1 -0
  221. package/lib/typescript/src/blocks/brand-profile-card/brand-profile-card.d.ts +15 -0
  222. package/lib/typescript/src/blocks/brand-profile-card/brand-profile-card.d.ts.map +1 -0
  223. package/lib/typescript/src/blocks/brand-profile-card/index.d.ts +2 -0
  224. package/lib/typescript/src/blocks/brand-profile-card/index.d.ts.map +1 -0
  225. package/lib/typescript/src/blocks/claim-row/claim-row.d.ts +22 -0
  226. package/lib/typescript/src/blocks/claim-row/claim-row.d.ts.map +1 -0
  227. package/lib/typescript/src/blocks/claim-row/index.d.ts +2 -0
  228. package/lib/typescript/src/blocks/claim-row/index.d.ts.map +1 -0
  229. package/lib/typescript/src/blocks/color-swatch-picker/color-swatch-picker.d.ts +16 -0
  230. package/lib/typescript/src/blocks/color-swatch-picker/color-swatch-picker.d.ts.map +1 -0
  231. package/lib/typescript/src/blocks/color-swatch-picker/index.d.ts +2 -0
  232. package/lib/typescript/src/blocks/color-swatch-picker/index.d.ts.map +1 -0
  233. package/lib/typescript/src/blocks/copy-variant-picker/copy-variant-picker.d.ts +22 -0
  234. package/lib/typescript/src/blocks/copy-variant-picker/copy-variant-picker.d.ts.map +1 -0
  235. package/lib/typescript/src/blocks/copy-variant-picker/index.d.ts +2 -0
  236. package/lib/typescript/src/blocks/copy-variant-picker/index.d.ts.map +1 -0
  237. package/lib/typescript/src/blocks/credit-wallet/credit-wallet.d.ts +14 -0
  238. package/lib/typescript/src/blocks/credit-wallet/credit-wallet.d.ts.map +1 -0
  239. package/lib/typescript/src/blocks/credit-wallet/index.d.ts +2 -0
  240. package/lib/typescript/src/blocks/credit-wallet/index.d.ts.map +1 -0
  241. package/lib/typescript/src/blocks/image-grid/image-grid.d.ts +24 -0
  242. package/lib/typescript/src/blocks/image-grid/image-grid.d.ts.map +1 -0
  243. package/lib/typescript/src/blocks/image-grid/index.d.ts +2 -0
  244. package/lib/typescript/src/blocks/image-grid/index.d.ts.map +1 -0
  245. package/lib/typescript/src/blocks/index.d.ts +20 -0
  246. package/lib/typescript/src/blocks/index.d.ts.map +1 -0
  247. package/lib/typescript/src/blocks/internal/card.d.ts +10 -0
  248. package/lib/typescript/src/blocks/internal/card.d.ts.map +1 -0
  249. package/lib/typescript/src/blocks/internal/format.d.ts +7 -0
  250. package/lib/typescript/src/blocks/internal/format.d.ts.map +1 -0
  251. package/lib/typescript/src/blocks/invoice-row/index.d.ts +2 -0
  252. package/lib/typescript/src/blocks/invoice-row/index.d.ts.map +1 -0
  253. package/lib/typescript/src/blocks/invoice-row/invoice-row.d.ts +22 -0
  254. package/lib/typescript/src/blocks/invoice-row/invoice-row.d.ts.map +1 -0
  255. package/lib/typescript/src/blocks/logo-candidate-grid/index.d.ts +2 -0
  256. package/lib/typescript/src/blocks/logo-candidate-grid/index.d.ts.map +1 -0
  257. package/lib/typescript/src/blocks/logo-candidate-grid/logo-candidate-grid.d.ts +17 -0
  258. package/lib/typescript/src/blocks/logo-candidate-grid/logo-candidate-grid.d.ts.map +1 -0
  259. package/lib/typescript/src/blocks/oauth-buttons/index.d.ts +2 -0
  260. package/lib/typescript/src/blocks/oauth-buttons/index.d.ts.map +1 -0
  261. package/lib/typescript/src/blocks/oauth-buttons/oauth-buttons.d.ts +20 -0
  262. package/lib/typescript/src/blocks/oauth-buttons/oauth-buttons.d.ts.map +1 -0
  263. package/lib/typescript/src/blocks/option-editor/index.d.ts +2 -0
  264. package/lib/typescript/src/blocks/option-editor/index.d.ts.map +1 -0
  265. package/lib/typescript/src/blocks/option-editor/option-editor.d.ts +20 -0
  266. package/lib/typescript/src/blocks/option-editor/option-editor.d.ts.map +1 -0
  267. package/lib/typescript/src/blocks/order-card/index.d.ts +2 -0
  268. package/lib/typescript/src/blocks/order-card/index.d.ts.map +1 -0
  269. package/lib/typescript/src/blocks/order-card/order-card.d.ts +44 -0
  270. package/lib/typescript/src/blocks/order-card/order-card.d.ts.map +1 -0
  271. package/lib/typescript/src/blocks/plan-card/index.d.ts +2 -0
  272. package/lib/typescript/src/blocks/plan-card/index.d.ts.map +1 -0
  273. package/lib/typescript/src/blocks/plan-card/plan-card.d.ts +36 -0
  274. package/lib/typescript/src/blocks/plan-card/plan-card.d.ts.map +1 -0
  275. package/lib/typescript/src/blocks/product-list-empty/index.d.ts +2 -0
  276. package/lib/typescript/src/blocks/product-list-empty/index.d.ts.map +1 -0
  277. package/lib/typescript/src/blocks/product-list-empty/product-list-empty.d.ts +21 -0
  278. package/lib/typescript/src/blocks/product-list-empty/product-list-empty.d.ts.map +1 -0
  279. package/lib/typescript/src/blocks/review-row/index.d.ts +2 -0
  280. package/lib/typescript/src/blocks/review-row/index.d.ts.map +1 -0
  281. package/lib/typescript/src/blocks/review-row/review-row.d.ts +34 -0
  282. package/lib/typescript/src/blocks/review-row/review-row.d.ts.map +1 -0
  283. package/lib/typescript/src/blocks/sales-chart/index.d.ts +2 -0
  284. package/lib/typescript/src/blocks/sales-chart/index.d.ts.map +1 -0
  285. package/lib/typescript/src/blocks/sales-chart/sales-chart.d.ts +20 -0
  286. package/lib/typescript/src/blocks/sales-chart/sales-chart.d.ts.map +1 -0
  287. package/lib/typescript/src/blocks/service-state-banner/index.d.ts +2 -0
  288. package/lib/typescript/src/blocks/service-state-banner/index.d.ts.map +1 -0
  289. package/lib/typescript/src/blocks/service-state-banner/service-state-banner.d.ts +13 -0
  290. package/lib/typescript/src/blocks/service-state-banner/service-state-banner.d.ts.map +1 -0
  291. package/lib/typescript/src/blocks/shipping-tracking-row/index.d.ts +2 -0
  292. package/lib/typescript/src/blocks/shipping-tracking-row/index.d.ts.map +1 -0
  293. package/lib/typescript/src/blocks/shipping-tracking-row/shipping-tracking-row.d.ts +12 -0
  294. package/lib/typescript/src/blocks/shipping-tracking-row/shipping-tracking-row.d.ts.map +1 -0
  295. package/lib/typescript/src/blocks/site-preview-frame/index.d.ts +2 -0
  296. package/lib/typescript/src/blocks/site-preview-frame/index.d.ts.map +1 -0
  297. package/lib/typescript/src/blocks/site-preview-frame/site-preview-frame.d.ts +18 -0
  298. package/lib/typescript/src/blocks/site-preview-frame/site-preview-frame.d.ts.map +1 -0
  299. package/lib/typescript/src/blocks/stat-card/index.d.ts +2 -0
  300. package/lib/typescript/src/blocks/stat-card/index.d.ts.map +1 -0
  301. package/lib/typescript/src/blocks/stat-card/stat-card.d.ts +17 -0
  302. package/lib/typescript/src/blocks/stat-card/stat-card.d.ts.map +1 -0
  303. package/lib/typescript/src/blocks/step-screen/index.d.ts +2 -0
  304. package/lib/typescript/src/blocks/step-screen/index.d.ts.map +1 -0
  305. package/lib/typescript/src/blocks/step-screen/step-screen.d.ts +26 -0
  306. package/lib/typescript/src/blocks/step-screen/step-screen.d.ts.map +1 -0
  307. package/lib/typescript/src/blocks/supply-item-card/index.d.ts +2 -0
  308. package/lib/typescript/src/blocks/supply-item-card/index.d.ts.map +1 -0
  309. package/lib/typescript/src/blocks/supply-item-card/supply-item-card.d.ts +30 -0
  310. package/lib/typescript/src/blocks/supply-item-card/supply-item-card.d.ts.map +1 -0
  311. package/lib/typescript/src/charts/index.d.ts +3 -0
  312. package/lib/typescript/src/charts/index.d.ts.map +1 -0
  313. package/lib/typescript/src/charts/line-chart.d.ts +21 -0
  314. package/lib/typescript/src/charts/line-chart.d.ts.map +1 -0
  315. package/lib/typescript/src/charts/scale.d.ts +13 -0
  316. package/lib/typescript/src/charts/scale.d.ts.map +1 -0
  317. package/lib/typescript/src/charts/sparkline.d.ts +15 -0
  318. package/lib/typescript/src/charts/sparkline.d.ts.map +1 -0
  319. package/lib/typescript/src/charts/summary.d.ts +3 -0
  320. package/lib/typescript/src/charts/summary.d.ts.map +1 -0
  321. package/lib/typescript/src/charts.d.ts +3 -0
  322. package/lib/typescript/src/charts.d.ts.map +1 -0
  323. package/lib/typescript/src/components/button/button.d.ts +18 -0
  324. package/lib/typescript/src/components/button/button.d.ts.map +1 -0
  325. package/lib/typescript/src/components/button/index.d.ts +2 -0
  326. package/lib/typescript/src/components/button/index.d.ts.map +1 -0
  327. package/lib/typescript/src/components/checkbox/checkbox.d.ts +8 -0
  328. package/lib/typescript/src/components/checkbox/checkbox.d.ts.map +1 -0
  329. package/lib/typescript/src/components/checkbox/index.d.ts +2 -0
  330. package/lib/typescript/src/components/checkbox/index.d.ts.map +1 -0
  331. package/lib/typescript/src/components/chip/chip.d.ts +9 -0
  332. package/lib/typescript/src/components/chip/chip.d.ts.map +1 -0
  333. package/lib/typescript/src/components/chip/index.d.ts +2 -0
  334. package/lib/typescript/src/components/chip/index.d.ts.map +1 -0
  335. package/lib/typescript/src/components/chip-group/chip-group.d.ts +27 -0
  336. package/lib/typescript/src/components/chip-group/chip-group.d.ts.map +1 -0
  337. package/lib/typescript/src/components/chip-group/index.d.ts +2 -0
  338. package/lib/typescript/src/components/chip-group/index.d.ts.map +1 -0
  339. package/lib/typescript/src/components/dialog/dialog.d.ts +20 -0
  340. package/lib/typescript/src/components/dialog/dialog.d.ts.map +1 -0
  341. package/lib/typescript/src/components/dialog/index.d.ts +2 -0
  342. package/lib/typescript/src/components/dialog/index.d.ts.map +1 -0
  343. package/lib/typescript/src/components/divider/divider.d.ts +9 -0
  344. package/lib/typescript/src/components/divider/divider.d.ts.map +1 -0
  345. package/lib/typescript/src/components/divider/index.d.ts +2 -0
  346. package/lib/typescript/src/components/divider/index.d.ts.map +1 -0
  347. package/lib/typescript/src/components/empty-state/empty-state.d.ts +26 -0
  348. package/lib/typescript/src/components/empty-state/empty-state.d.ts.map +1 -0
  349. package/lib/typescript/src/components/empty-state/index.d.ts +2 -0
  350. package/lib/typescript/src/components/empty-state/index.d.ts.map +1 -0
  351. package/lib/typescript/src/components/field/field.d.ts +15 -0
  352. package/lib/typescript/src/components/field/field.d.ts.map +1 -0
  353. package/lib/typescript/src/components/field/index.d.ts +2 -0
  354. package/lib/typescript/src/components/field/index.d.ts.map +1 -0
  355. package/lib/typescript/src/components/list-row/index.d.ts +2 -0
  356. package/lib/typescript/src/components/list-row/index.d.ts.map +1 -0
  357. package/lib/typescript/src/components/list-row/list-row.d.ts +15 -0
  358. package/lib/typescript/src/components/list-row/list-row.d.ts.map +1 -0
  359. package/lib/typescript/src/components/photo/index.d.ts +2 -0
  360. package/lib/typescript/src/components/photo/index.d.ts.map +1 -0
  361. package/lib/typescript/src/components/photo/photo.d.ts +15 -0
  362. package/lib/typescript/src/components/photo/photo.d.ts.map +1 -0
  363. package/lib/typescript/src/components/price/index.d.ts +2 -0
  364. package/lib/typescript/src/components/price/index.d.ts.map +1 -0
  365. package/lib/typescript/src/components/price/price.d.ts +15 -0
  366. package/lib/typescript/src/components/price/price.d.ts.map +1 -0
  367. package/lib/typescript/src/components/search-field/index.d.ts +2 -0
  368. package/lib/typescript/src/components/search-field/index.d.ts.map +1 -0
  369. package/lib/typescript/src/components/search-field/search-field.d.ts +9 -0
  370. package/lib/typescript/src/components/search-field/search-field.d.ts.map +1 -0
  371. package/lib/typescript/src/components/segmented-tabs/index.d.ts +2 -0
  372. package/lib/typescript/src/components/segmented-tabs/index.d.ts.map +1 -0
  373. package/lib/typescript/src/components/segmented-tabs/segmented-tabs.d.ts +14 -0
  374. package/lib/typescript/src/components/segmented-tabs/segmented-tabs.d.ts.map +1 -0
  375. package/lib/typescript/src/components/sheet/index.d.ts +2 -0
  376. package/lib/typescript/src/components/sheet/index.d.ts.map +1 -0
  377. package/lib/typescript/src/components/sheet/sheet.d.ts +17 -0
  378. package/lib/typescript/src/components/sheet/sheet.d.ts.map +1 -0
  379. package/lib/typescript/src/components/skeleton/index.d.ts +2 -0
  380. package/lib/typescript/src/components/skeleton/index.d.ts.map +1 -0
  381. package/lib/typescript/src/components/skeleton/skeleton.d.ts +13 -0
  382. package/lib/typescript/src/components/skeleton/skeleton.d.ts.map +1 -0
  383. package/lib/typescript/src/components/status-badge/index.d.ts +2 -0
  384. package/lib/typescript/src/components/status-badge/index.d.ts.map +1 -0
  385. package/lib/typescript/src/components/status-badge/status-badge.d.ts +10 -0
  386. package/lib/typescript/src/components/status-badge/status-badge.d.ts.map +1 -0
  387. package/lib/typescript/src/components/switch/index.d.ts +2 -0
  388. package/lib/typescript/src/components/switch/index.d.ts.map +1 -0
  389. package/lib/typescript/src/components/switch/switch.d.ts +9 -0
  390. package/lib/typescript/src/components/switch/switch.d.ts.map +1 -0
  391. package/lib/typescript/src/components/text/index.d.ts +2 -0
  392. package/lib/typescript/src/components/text/index.d.ts.map +1 -0
  393. package/lib/typescript/src/components/text/text.d.ts +16 -0
  394. package/lib/typescript/src/components/text/text.d.ts.map +1 -0
  395. package/lib/typescript/src/components/toast/index.d.ts +2 -0
  396. package/lib/typescript/src/components/toast/index.d.ts.map +1 -0
  397. package/lib/typescript/src/components/toast/toast.d.ts +30 -0
  398. package/lib/typescript/src/components/toast/toast.d.ts.map +1 -0
  399. package/lib/typescript/src/components/wizard-steps/index.d.ts +2 -0
  400. package/lib/typescript/src/components/wizard-steps/index.d.ts.map +1 -0
  401. package/lib/typescript/src/components/wizard-steps/wizard-steps.d.ts +11 -0
  402. package/lib/typescript/src/components/wizard-steps/wizard-steps.d.ts.map +1 -0
  403. package/lib/typescript/src/index.d.ts +31 -0
  404. package/lib/typescript/src/index.d.ts.map +1 -0
  405. package/lib/typescript/src/internal/glyphs.d.ts +12 -0
  406. package/lib/typescript/src/internal/glyphs.d.ts.map +1 -0
  407. package/lib/typescript/src/internal/icon.d.ts +9 -0
  408. package/lib/typescript/src/internal/icon.d.ts.map +1 -0
  409. package/lib/typescript/src/internal/overlay.d.ts +16 -0
  410. package/lib/typescript/src/internal/overlay.d.ts.map +1 -0
  411. package/lib/typescript/src/internal/pressable-base.d.ts +13 -0
  412. package/lib/typescript/src/internal/pressable-base.d.ts.map +1 -0
  413. package/lib/typescript/src/internal/use-reduced-motion.d.ts +3 -0
  414. package/lib/typescript/src/internal/use-reduced-motion.d.ts.map +1 -0
  415. package/lib/typescript/src/sortable/index.d.ts +4 -0
  416. package/lib/typescript/src/sortable/index.d.ts.map +1 -0
  417. package/lib/typescript/src/sortable/move.d.ts +3 -0
  418. package/lib/typescript/src/sortable/move.d.ts.map +1 -0
  419. package/lib/typescript/src/sortable/sortable-grid.d.ts +37 -0
  420. package/lib/typescript/src/sortable/sortable-grid.d.ts.map +1 -0
  421. package/lib/typescript/src/sortable/sortable-list.d.ts +5 -0
  422. package/lib/typescript/src/sortable/sortable-list.d.ts.map +1 -0
  423. package/lib/typescript/src/sortable.d.ts +4 -0
  424. package/lib/typescript/src/sortable.d.ts.map +1 -0
  425. package/lib/typescript/src/theme/create-theme.d.ts +8 -0
  426. package/lib/typescript/src/theme/create-theme.d.ts.map +1 -0
  427. package/lib/typescript/src/theme/theme-provider.d.ts +13 -0
  428. package/lib/typescript/src/theme/theme-provider.d.ts.map +1 -0
  429. package/lib/typescript/src/theme/tokens.d.ts +4 -0
  430. package/lib/typescript/src/theme/tokens.d.ts.map +1 -0
  431. package/lib/typescript/src/types/index.d.ts +90 -0
  432. package/lib/typescript/src/types/index.d.ts.map +1 -0
  433. package/lib/typescript/src/utils/color.d.ts +5 -0
  434. package/lib/typescript/src/utils/color.d.ts.map +1 -0
  435. package/lib/typescript/src/utils/styles.d.ts +13 -0
  436. package/lib/typescript/src/utils/styles.d.ts.map +1 -0
  437. package/package.json +109 -3
  438. package/src/blocks/brand-profile-card/brand-profile-card.tsx +87 -0
  439. package/src/blocks/brand-profile-card/index.ts +4 -0
  440. package/src/blocks/claim-row/claim-row.tsx +112 -0
  441. package/src/blocks/claim-row/index.ts +6 -0
  442. package/src/blocks/color-swatch-picker/color-swatch-picker.tsx +119 -0
  443. package/src/blocks/color-swatch-picker/index.ts +5 -0
  444. package/src/blocks/copy-variant-picker/copy-variant-picker.tsx +140 -0
  445. package/src/blocks/copy-variant-picker/index.ts +5 -0
  446. package/src/blocks/credit-wallet/credit-wallet.tsx +105 -0
  447. package/src/blocks/credit-wallet/index.ts +1 -0
  448. package/src/blocks/image-grid/image-grid.tsx +279 -0
  449. package/src/blocks/image-grid/index.ts +1 -0
  450. package/src/blocks/index.tsx +19 -0
  451. package/src/blocks/internal/card.tsx +42 -0
  452. package/src/blocks/internal/format.ts +22 -0
  453. package/src/blocks/invoice-row/index.ts +5 -0
  454. package/src/blocks/invoice-row/invoice-row.tsx +122 -0
  455. package/src/blocks/logo-candidate-grid/index.ts +5 -0
  456. package/src/blocks/logo-candidate-grid/logo-candidate-grid.tsx +129 -0
  457. package/src/blocks/oauth-buttons/index.ts +5 -0
  458. package/src/blocks/oauth-buttons/oauth-buttons.tsx +109 -0
  459. package/src/blocks/option-editor/index.ts +5 -0
  460. package/src/blocks/option-editor/option-editor.tsx +135 -0
  461. package/src/blocks/order-card/index.ts +11 -0
  462. package/src/blocks/order-card/order-card.tsx +184 -0
  463. package/src/blocks/plan-card/index.ts +1 -0
  464. package/src/blocks/plan-card/plan-card.tsx +147 -0
  465. package/src/blocks/product-list-empty/index.ts +5 -0
  466. package/src/blocks/product-list-empty/product-list-empty.tsx +144 -0
  467. package/src/blocks/review-row/index.ts +8 -0
  468. package/src/blocks/review-row/review-row.tsx +256 -0
  469. package/src/blocks/sales-chart/index.ts +5 -0
  470. package/src/blocks/sales-chart/sales-chart.tsx +120 -0
  471. package/src/blocks/service-state-banner/index.ts +5 -0
  472. package/src/blocks/service-state-banner/service-state-banner.tsx +66 -0
  473. package/src/blocks/shipping-tracking-row/index.ts +5 -0
  474. package/src/blocks/shipping-tracking-row/shipping-tracking-row.tsx +93 -0
  475. package/src/blocks/site-preview-frame/index.ts +5 -0
  476. package/src/blocks/site-preview-frame/site-preview-frame.tsx +121 -0
  477. package/src/blocks/stat-card/index.ts +1 -0
  478. package/src/blocks/stat-card/stat-card.tsx +77 -0
  479. package/src/blocks/step-screen/index.ts +5 -0
  480. package/src/blocks/step-screen/step-screen.tsx +137 -0
  481. package/src/blocks/supply-item-card/index.ts +6 -0
  482. package/src/blocks/supply-item-card/supply-item-card.tsx +145 -0
  483. package/src/charts/index.ts +2 -0
  484. package/src/charts/line-chart.tsx +177 -0
  485. package/src/charts/scale.ts +49 -0
  486. package/src/charts/sparkline.tsx +64 -0
  487. package/src/charts/summary.ts +11 -0
  488. package/src/charts.tsx +2 -0
  489. package/src/components/button/button.tsx +119 -0
  490. package/src/components/button/index.ts +6 -0
  491. package/src/components/checkbox/checkbox.tsx +79 -0
  492. package/src/components/checkbox/index.ts +1 -0
  493. package/src/components/chip/chip.tsx +73 -0
  494. package/src/components/chip/index.ts +1 -0
  495. package/src/components/chip-group/chip-group.tsx +86 -0
  496. package/src/components/chip-group/index.ts +5 -0
  497. package/src/components/dialog/dialog.tsx +131 -0
  498. package/src/components/dialog/index.ts +1 -0
  499. package/src/components/divider/divider.tsx +26 -0
  500. package/src/components/divider/index.ts +1 -0
  501. package/src/components/empty-state/empty-state.tsx +152 -0
  502. package/src/components/empty-state/index.ts +5 -0
  503. package/src/components/field/field.tsx +151 -0
  504. package/src/components/field/index.ts +1 -0
  505. package/src/components/list-row/index.ts +1 -0
  506. package/src/components/list-row/list-row.tsx +115 -0
  507. package/src/components/photo/index.ts +1 -0
  508. package/src/components/photo/photo.tsx +87 -0
  509. package/src/components/price/index.ts +1 -0
  510. package/src/components/price/price.tsx +84 -0
  511. package/src/components/search-field/index.ts +1 -0
  512. package/src/components/search-field/search-field.tsx +46 -0
  513. package/src/components/segmented-tabs/index.ts +5 -0
  514. package/src/components/segmented-tabs/segmented-tabs.tsx +81 -0
  515. package/src/components/sheet/index.ts +1 -0
  516. package/src/components/sheet/sheet.tsx +121 -0
  517. package/src/components/skeleton/index.ts +1 -0
  518. package/src/components/skeleton/skeleton.tsx +73 -0
  519. package/src/components/status-badge/index.ts +5 -0
  520. package/src/components/status-badge/status-badge.tsx +54 -0
  521. package/src/components/switch/index.ts +1 -0
  522. package/src/components/switch/switch.tsx +26 -0
  523. package/src/components/text/index.ts +1 -0
  524. package/src/components/text/text.tsx +54 -0
  525. package/src/components/toast/index.ts +9 -0
  526. package/src/components/toast/toast.tsx +248 -0
  527. package/src/components/wizard-steps/index.ts +1 -0
  528. package/src/components/wizard-steps/wizard-steps.tsx +54 -0
  529. package/src/index.tsx +56 -0
  530. package/src/internal/glyphs.tsx +158 -0
  531. package/src/internal/icon.tsx +10 -0
  532. package/src/internal/overlay.tsx +59 -0
  533. package/src/internal/pressable-base.tsx +55 -0
  534. package/src/internal/use-reduced-motion.ts +32 -0
  535. package/src/sortable/index.ts +8 -0
  536. package/src/sortable/move.ts +19 -0
  537. package/src/sortable/sortable-grid.tsx +97 -0
  538. package/src/sortable/sortable-list.tsx +11 -0
  539. package/src/sortable.tsx +3 -0
  540. package/src/theme/create-theme.ts +67 -0
  541. package/src/theme/theme-provider.tsx +37 -0
  542. package/src/theme/tokens.ts +91 -0
  543. package/src/types/index.ts +80 -0
  544. package/src/utils/color.ts +47 -0
  545. package/src/utils/styles.ts +30 -0
  546. package/README.md +0 -3
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ import { KeyboardAvoidingView, ScrollView, View } from 'react-native';
4
+ import { Button } from "../../components/button/button.js";
5
+ import { Text } from "../../components/text/text.js";
6
+ import { ChevronGlyph } from "../../internal/glyphs.js";
7
+ import { PressableBase } from "../../internal/pressable-base.js";
8
+ import { useTheme } from "../../theme/theme-provider.js";
9
+ import { makeStyles } from "../../utils/styles.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const useStyles = makeStyles(t => ({
12
+ root: {
13
+ flex: 1,
14
+ backgroundColor: t.colors.background
15
+ },
16
+ header: {
17
+ height: 52,
18
+ flexDirection: 'row',
19
+ alignItems: 'center',
20
+ paddingHorizontal: t.space[1]
21
+ },
22
+ back: {
23
+ width: 44,
24
+ height: 44,
25
+ alignItems: 'center',
26
+ justifyContent: 'center'
27
+ },
28
+ backIcon: {
29
+ transform: [{
30
+ scaleX: -1
31
+ }]
32
+ },
33
+ track: {
34
+ height: 3,
35
+ backgroundColor: t.colors.muted
36
+ },
37
+ fill: {
38
+ height: 3,
39
+ backgroundColor: t.colors.primary
40
+ },
41
+ body: {
42
+ gap: t.space[5],
43
+ paddingTop: t.space[6],
44
+ paddingHorizontal: t.space[5],
45
+ paddingBottom: t.space[4]
46
+ },
47
+ title: {
48
+ fontSize: 24,
49
+ lineHeight: 32
50
+ },
51
+ footer: {
52
+ gap: t.space[2],
53
+ paddingHorizontal: t.space[5],
54
+ paddingTop: t.space[3],
55
+ backgroundColor: t.colors.background
56
+ }
57
+ }));
58
+
59
+ /** 온보딩 한 단계의 화면 틀: 이전 · 진행 막대 · 제목 · 내용 · 하단 버튼 */
60
+ export function StepScreen({
61
+ title,
62
+ total,
63
+ current = 0,
64
+ onBack,
65
+ backLabel = '이전',
66
+ primaryAction,
67
+ secondaryAction,
68
+ bottomInset = 0,
69
+ children
70
+ }) {
71
+ const t = useTheme();
72
+ const s = useStyles();
73
+ const step = total ? Math.min(total, Math.max(1, current + 1)) : 0;
74
+ return /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
75
+ behavior: "padding",
76
+ style: s.root,
77
+ children: [onBack ? /*#__PURE__*/_jsx(View, {
78
+ style: s.header,
79
+ children: /*#__PURE__*/_jsx(PressableBase, {
80
+ onPress: onBack,
81
+ accessibilityLabel: backLabel,
82
+ style: s.back,
83
+ children: /*#__PURE__*/_jsx(View, {
84
+ style: s.backIcon,
85
+ children: /*#__PURE__*/_jsx(ChevronGlyph, {
86
+ color: t.colors.foreground,
87
+ size: 24
88
+ })
89
+ })
90
+ })
91
+ }) : null, total ? /*#__PURE__*/_jsx(View, {
92
+ accessibilityRole: "progressbar",
93
+ accessibilityLabel: `${total}단계 중 ${step}단계`,
94
+ accessibilityValue: {
95
+ min: 1,
96
+ max: total,
97
+ now: step
98
+ },
99
+ style: s.track,
100
+ children: /*#__PURE__*/_jsx(View, {
101
+ style: [s.fill, {
102
+ width: `${step / total * 100}%`
103
+ }]
104
+ })
105
+ }) : null, /*#__PURE__*/_jsxs(ScrollView, {
106
+ contentContainerStyle: s.body,
107
+ keyboardShouldPersistTaps: "handled",
108
+ children: [/*#__PURE__*/_jsx(Text, {
109
+ weight: "bold",
110
+ accessibilityRole: "header",
111
+ style: s.title,
112
+ children: title
113
+ }), children]
114
+ }), /*#__PURE__*/_jsxs(View, {
115
+ style: [s.footer, {
116
+ paddingBottom: t.space[4] + bottomInset
117
+ }],
118
+ children: [/*#__PURE__*/_jsx(Button, {
119
+ size: "lg",
120
+ onPress: primaryAction.onPress,
121
+ disabled: primaryAction.disabled,
122
+ loading: primaryAction.loading,
123
+ children: primaryAction.label
124
+ }), secondaryAction ? /*#__PURE__*/_jsx(Button, {
125
+ variant: "ghost",
126
+ onPress: secondaryAction.onPress,
127
+ disabled: secondaryAction.disabled,
128
+ loading: secondaryAction.loading,
129
+ children: secondaryAction.label
130
+ }) : null]
131
+ })]
132
+ });
133
+ }
134
+ //# sourceMappingURL=step-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KeyboardAvoidingView","ScrollView","View","Button","Text","ChevronGlyph","PressableBase","useTheme","makeStyles","jsx","_jsx","jsxs","_jsxs","useStyles","t","root","flex","backgroundColor","colors","background","header","height","flexDirection","alignItems","paddingHorizontal","space","back","width","justifyContent","backIcon","transform","scaleX","track","muted","fill","primary","body","gap","paddingTop","paddingBottom","title","fontSize","lineHeight","footer","StepScreen","total","current","onBack","backLabel","primaryAction","secondaryAction","bottomInset","children","s","step","Math","min","max","behavior","style","onPress","accessibilityLabel","color","foreground","size","accessibilityRole","accessibilityValue","now","contentContainerStyle","keyboardShouldPersistTaps","weight","disabled","loading","label","variant"],"sourceRoot":"../../../../src","sources":["blocks/step-screen/step-screen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { SupplyItemCard } from "./supply-item-card.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SupplyItemCard"],"sourceRoot":"../../../../src","sources":["blocks/supply-item-card/index.ts"],"mappings":";;AAAA,SACEA,cAAc,QAIT,uBAAoB","ignoreList":[]}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ import { View } from 'react-native';
4
+ import { Button } from "../../components/button/button.js";
5
+ import { ChipGroup } from "../../components/chip-group/chip-group.js";
6
+ import { Photo } from "../../components/photo/photo.js";
7
+ import { formatPrice } from "../../components/price/price.js";
8
+ import { Text } from "../../components/text/text.js";
9
+ import { PressableBase } from "../../internal/pressable-base.js";
10
+ import { makeStyles } from "../../utils/styles.js";
11
+ import { Card } from "../internal/card.js";
12
+
13
+ /** 예) { id: 'm', label: '중 20×25cm' } */
14
+
15
+ /** 묶음 수량과 그 가격 */
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ const useStyles = makeStyles(t => ({
18
+ card: {
19
+ gap: t.space[4]
20
+ },
21
+ head: {
22
+ flexDirection: 'row',
23
+ alignItems: 'center',
24
+ gap: t.space[3]
25
+ },
26
+ image: {
27
+ width: 64
28
+ },
29
+ name: {
30
+ flex: 1
31
+ },
32
+ group: {
33
+ borderWidth: 1,
34
+ borderColor: t.colors.border,
35
+ borderRadius: 10,
36
+ overflow: 'hidden'
37
+ },
38
+ row: {
39
+ flexDirection: 'row',
40
+ alignItems: 'center',
41
+ gap: t.space[3],
42
+ minHeight: 52,
43
+ paddingHorizontal: 14
44
+ },
45
+ divided: {
46
+ borderTopWidth: 1,
47
+ borderTopColor: t.colors.border
48
+ },
49
+ pressed: {
50
+ backgroundColor: t.colors.muted
51
+ },
52
+ radio: {
53
+ width: 20,
54
+ height: 20,
55
+ borderRadius: 10,
56
+ borderWidth: 2,
57
+ borderColor: t.colors.input,
58
+ alignItems: 'center',
59
+ justifyContent: 'center'
60
+ },
61
+ radioOn: {
62
+ borderColor: t.colors.primary
63
+ },
64
+ radioDot: {
65
+ width: 10,
66
+ height: 10,
67
+ borderRadius: 5,
68
+ backgroundColor: t.colors.primary
69
+ },
70
+ quantity: {
71
+ flex: 1
72
+ }
73
+ }));
74
+
75
+ /** 로고를 넣어 주문하는 공급 품목. 사이즈 · 수량을 고르고 담는다 */
76
+ export function SupplyItemCard({
77
+ name,
78
+ image,
79
+ options = [],
80
+ selectedOptionId = null,
81
+ onSelectOption,
82
+ quantities,
83
+ selectedQuantity,
84
+ onSelectQuantity,
85
+ unit = '장',
86
+ onAdd,
87
+ style
88
+ }) {
89
+ const s = useStyles();
90
+ const selected = quantities.find(q => q.quantity === selectedQuantity);
91
+ return /*#__PURE__*/_jsxs(Card, {
92
+ style: [s.card, style],
93
+ children: [/*#__PURE__*/_jsxs(View, {
94
+ style: s.head,
95
+ children: [/*#__PURE__*/_jsx(View, {
96
+ style: s.image,
97
+ children: /*#__PURE__*/_jsx(Photo, {
98
+ source: image
99
+ })
100
+ }), /*#__PURE__*/_jsx(Text, {
101
+ variant: "bodyLg",
102
+ weight: "bold",
103
+ style: s.name,
104
+ children: name
105
+ })]
106
+ }), options.length > 1 ? /*#__PURE__*/_jsx(ChipGroup, {
107
+ items: options.map(o => ({
108
+ value: o.id,
109
+ label: o.label
110
+ })),
111
+ value: selectedOptionId,
112
+ onValueChange: id => id && onSelectOption?.(id)
113
+ }) : null, /*#__PURE__*/_jsx(View, {
114
+ accessibilityRole: "radiogroup",
115
+ style: s.group,
116
+ children: quantities.map((q, i) => {
117
+ const on = q.quantity === selectedQuantity;
118
+ const qty = `${formatPrice(q.quantity, '')}${unit}`;
119
+ return /*#__PURE__*/_jsxs(PressableBase, {
120
+ accessibilityRole: "radio",
121
+ accessibilityState: {
122
+ selected: on
123
+ },
124
+ accessibilityLabel: `${qty} ${formatPrice(q.price)}`,
125
+ pressedStyle: s.pressed,
126
+ onPress: () => onSelectQuantity(q.quantity),
127
+ style: [s.row, i > 0 && s.divided],
128
+ children: [/*#__PURE__*/_jsx(View, {
129
+ style: [s.radio, on && s.radioOn],
130
+ children: on ? /*#__PURE__*/_jsx(View, {
131
+ style: s.radioDot
132
+ }) : null
133
+ }), /*#__PURE__*/_jsx(Text, {
134
+ weight: on ? 'semibold' : undefined,
135
+ style: s.quantity,
136
+ children: qty
137
+ }), /*#__PURE__*/_jsx(Text, {
138
+ weight: on ? 'semibold' : undefined,
139
+ children: formatPrice(q.price)
140
+ })]
141
+ }, q.quantity);
142
+ })
143
+ }), onAdd ? /*#__PURE__*/_jsx(Button, {
144
+ size: "lg",
145
+ disabled: !selected,
146
+ onPress: onAdd,
147
+ children: selected ? `${formatPrice(selected.price)} 담기` : '담기'
148
+ }) : null]
149
+ });
150
+ }
151
+ //# sourceMappingURL=supply-item-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","Button","ChipGroup","Photo","formatPrice","Text","PressableBase","makeStyles","Card","jsx","_jsx","jsxs","_jsxs","useStyles","t","card","gap","space","head","flexDirection","alignItems","image","width","name","flex","group","borderWidth","borderColor","colors","border","borderRadius","overflow","row","minHeight","paddingHorizontal","divided","borderTopWidth","borderTopColor","pressed","backgroundColor","muted","radio","height","input","justifyContent","radioOn","primary","radioDot","quantity","SupplyItemCard","options","selectedOptionId","onSelectOption","quantities","selectedQuantity","onSelectQuantity","unit","onAdd","style","s","selected","find","q","children","source","variant","weight","length","items","map","o","value","id","label","onValueChange","accessibilityRole","i","on","qty","accessibilityState","accessibilityLabel","price","pressedStyle","onPress","undefined","size","disabled"],"sourceRoot":"../../../../src","sources":["blocks/supply-item-card/supply-item-card.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export { LineChart } from "./line-chart.js";
4
+ export { Sparkline } from "./sparkline.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LineChart","Sparkline"],"sourceRoot":"../../../src","sources":["charts/index.ts"],"mappings":";;AAAA,SAASA,SAAS,QAA8C,iBAAc;AAC9E,SAASC,SAAS,QAA6B,gBAAa","ignoreList":[]}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ import { useState } from 'react';
4
+ import { View } from 'react-native';
5
+ import Svg, { Circle, Line, Path, Rect, Text as SvgText } from 'react-native-svg';
6
+ import { formatPrice } from "../components/price/price.js";
7
+ import { useTheme } from "../theme/theme-provider.js";
8
+ import { areaPath, labelStep, linearScale, linePath, niceTicks } from "./scale.js";
9
+ import { summarize } from "./summary.js";
10
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const defaultFormat = v => formatPrice(v, '');
12
+ const PAD = {
13
+ top: 8,
14
+ right: 12,
15
+ bottom: 24,
16
+ gap: 8
17
+ };
18
+ const FONT_SIZE = 11;
19
+ export function LineChart({
20
+ data,
21
+ height = 200,
22
+ formatY = defaultFormat,
23
+ formatX = label => label,
24
+ onPointPress,
25
+ accessibilityLabel,
26
+ style
27
+ }) {
28
+ const t = useTheme();
29
+ const [width, setWidth] = useState(0);
30
+ const values = data.map(d => d.value);
31
+ const ticks = niceTicks(Math.min(0, ...values), Math.max(0, ...values));
32
+ const yLabels = ticks.map(formatY);
33
+ const left = Math.max(...yLabels.map(l => l.length)) * FONT_SIZE * 0.62 + PAD.gap;
34
+ const plot = {
35
+ x0: left,
36
+ x1: width - PAD.right,
37
+ y0: PAD.top,
38
+ y1: height - PAD.bottom
39
+ };
40
+ const y = linearScale([ticks[0], ticks[ticks.length - 1]], [plot.y1, plot.y0]);
41
+ const x = linearScale([0, Math.max(1, data.length - 1)], [plot.x0, plot.x1]);
42
+ const points = data.map((d, i) => ({
43
+ x: data.length === 1 ? (plot.x0 + plot.x1) / 2 : x(i),
44
+ y: y(d.value)
45
+ }));
46
+ const step = labelStep(data.length, Math.max(1, Math.floor((plot.x1 - plot.x0) / 56)));
47
+ const last = points[points.length - 1];
48
+ const slot = data.length > 1 ? (plot.x1 - plot.x0) / (data.length - 1) : plot.x1 - plot.x0;
49
+ return /*#__PURE__*/_jsx(View, {
50
+ accessible: true,
51
+ accessibilityRole: "image",
52
+ accessibilityLabel: accessibilityLabel ?? summarize(values, formatY),
53
+ onLayout: e => setWidth(e.nativeEvent.layout.width),
54
+ style: [{
55
+ height
56
+ }, style],
57
+ children: width > 0 ? /*#__PURE__*/_jsxs(Svg, {
58
+ width: width,
59
+ height: height,
60
+ children: [ticks.map((tick, i) => /*#__PURE__*/_jsx(Line, {
61
+ x1: plot.x0,
62
+ x2: plot.x1,
63
+ y1: y(tick),
64
+ y2: y(tick),
65
+ stroke: t.colors.border,
66
+ strokeWidth: 1,
67
+ strokeDasharray: i === 0 ? undefined : '3 4'
68
+ }, `g${tick}`)), ticks.map((tick, i) => /*#__PURE__*/_jsx(SvgText, {
69
+ x: plot.x0 - PAD.gap,
70
+ y: y(tick) + FONT_SIZE / 3,
71
+ fontSize: FONT_SIZE,
72
+ fontFamily: t.fontFamily,
73
+ fill: t.colors.mutedForeground,
74
+ textAnchor: "end",
75
+ children: yLabels[i]
76
+ }, `y${tick}`)), data.map((d, i) => i % step === 0 || i === data.length - 1 ? /*#__PURE__*/_jsx(SvgText, {
77
+ x: points[i].x,
78
+ y: height - 6,
79
+ fontSize: FONT_SIZE,
80
+ fontFamily: t.fontFamily,
81
+ fill: t.colors.mutedForeground,
82
+ textAnchor: i === 0 && data.length > 1 ? 'start' : i === data.length - 1 && data.length > 1 ? 'end' : 'middle',
83
+ children: formatX(d.label, i)
84
+ }, `x${i}`) : null), points.length > 1 ? /*#__PURE__*/_jsxs(_Fragment, {
85
+ children: [/*#__PURE__*/_jsx(Path, {
86
+ d: areaPath(points, plot.y1),
87
+ fill: t.colors.primary,
88
+ fillOpacity: 0.12
89
+ }), /*#__PURE__*/_jsx(Path, {
90
+ d: linePath(points),
91
+ fill: "none",
92
+ stroke: t.colors.primary,
93
+ strokeWidth: 2,
94
+ strokeLinejoin: "round",
95
+ strokeLinecap: "round"
96
+ })]
97
+ }) : null, last ? /*#__PURE__*/_jsx(Circle, {
98
+ cx: last.x,
99
+ cy: last.y,
100
+ r: 4,
101
+ fill: t.colors.primary,
102
+ stroke: t.colors.background,
103
+ strokeWidth: 2
104
+ }) : null, onPointPress ? data.map((d, i) => /*#__PURE__*/_jsx(Rect, {
105
+ x: points[i].x - slot / 2,
106
+ y: plot.y0,
107
+ width: slot,
108
+ height: plot.y1 - plot.y0,
109
+ fill: "transparent",
110
+ onPress: () => onPointPress(d, i)
111
+ }, `hit${i}`)) : null]
112
+ }) : null
113
+ });
114
+ }
115
+ //# sourceMappingURL=line-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","View","Svg","Circle","Line","Path","Rect","Text","SvgText","formatPrice","useTheme","areaPath","labelStep","linearScale","linePath","niceTicks","summarize","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","defaultFormat","v","PAD","top","right","bottom","gap","FONT_SIZE","LineChart","data","height","formatY","formatX","label","onPointPress","accessibilityLabel","style","t","width","setWidth","values","map","d","value","ticks","Math","min","max","yLabels","left","l","length","plot","x0","x1","y0","y1","y","x","points","i","step","floor","last","slot","accessible","accessibilityRole","onLayout","e","nativeEvent","layout","children","tick","x2","y2","stroke","colors","border","strokeWidth","strokeDasharray","undefined","fontSize","fontFamily","fill","mutedForeground","textAnchor","primary","fillOpacity","strokeLinejoin","strokeLinecap","cx","cy","r","background","onPress"],"sourceRoot":"../../../src","sources":["charts/line-chart.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ const STEPS = [1, 2, 2.5, 5, 10];
4
+
5
+ /** 보기 좋은 눈금. 값이 하나뿐이거나 모두 같아도 범위를 만든다 */
6
+ export function niceTicks(min, max, count = 4) {
7
+ let lo = Math.min(min, max);
8
+ let hi = Math.max(min, max);
9
+ if (!Number.isFinite(lo) || !Number.isFinite(hi)) return [0, 1];
10
+ if (lo === hi) {
11
+ if (hi === 0) hi = 1;else if (hi > 0) lo = 0;else hi = 0;
12
+ }
13
+ const raw = (hi - lo) / Math.max(1, count - 1);
14
+ const magnitude = 10 ** Math.floor(Math.log10(raw));
15
+ const step = (STEPS.find(s => s * magnitude >= raw) ?? 10) * magnitude;
16
+ const start = Math.floor(lo / step) * step;
17
+ const end = Math.ceil(hi / step) * step;
18
+ const ticks = [];
19
+ for (let v = start; v <= end + step / 2; v += step) {
20
+ ticks.push(Math.round(v / step) * step);
21
+ }
22
+ return ticks;
23
+ }
24
+
25
+ /** [d0, d1] → [r0, r1] 선형 변환. 범위 폭이 0이면 가운데로 */
26
+ export function linearScale(domain, range) {
27
+ const [d0, d1] = domain;
28
+ const [r0, r1] = range;
29
+ return v => d1 === d0 ? (r0 + r1) / 2 : r0 + (v - d0) / (d1 - d0) * (r1 - r0);
30
+ }
31
+ export function linePath(points) {
32
+ return points.map((p, i) => `${i === 0 ? 'M' : 'L'}${p.x},${p.y}`).join(' ');
33
+ }
34
+ export function areaPath(points, baseline) {
35
+ if (points.length === 0) return '';
36
+ const first = points[0];
37
+ const last = points[points.length - 1];
38
+ return `${linePath(points)} L${last.x},${baseline} L${first.x},${baseline} Z`;
39
+ }
40
+
41
+ /** 라벨이 겹치지 않게 최대 maxLabels개만 남길 간격 */
42
+ export function labelStep(count, maxLabels) {
43
+ return Math.max(1, Math.ceil(count / Math.max(1, maxLabels)));
44
+ }
45
+ //# sourceMappingURL=scale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["STEPS","niceTicks","min","max","count","lo","Math","hi","Number","isFinite","raw","magnitude","floor","log10","step","find","s","start","end","ceil","ticks","v","push","round","linearScale","domain","range","d0","d1","r0","r1","linePath","points","map","p","i","x","y","join","areaPath","baseline","length","first","last","labelStep","maxLabels"],"sourceRoot":"../../../src","sources":["charts/scale.ts"],"mappings":";;AAEA,MAAMA,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;;AAEhC;AACA,OAAO,SAASC,SAASA,CAACC,GAAW,EAAEC,GAAW,EAAEC,KAAK,GAAG,CAAC,EAAY;EACvE,IAAIC,EAAE,GAAGC,IAAI,CAACJ,GAAG,CAACA,GAAG,EAAEC,GAAG,CAAC;EAC3B,IAAII,EAAE,GAAGD,IAAI,CAACH,GAAG,CAACD,GAAG,EAAEC,GAAG,CAAC;EAC3B,IAAI,CAACK,MAAM,CAACC,QAAQ,CAACJ,EAAE,CAAC,IAAI,CAACG,MAAM,CAACC,QAAQ,CAACF,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;EAC/D,IAAIF,EAAE,KAAKE,EAAE,EAAE;IACb,IAAIA,EAAE,KAAK,CAAC,EAAEA,EAAE,GAAG,CAAC,CAAC,KAChB,IAAIA,EAAE,GAAG,CAAC,EAAEF,EAAE,GAAG,CAAC,CAAC,KACnBE,EAAE,GAAG,CAAC;EACb;EACA,MAAMG,GAAG,GAAG,CAACH,EAAE,GAAGF,EAAE,IAAIC,IAAI,CAACH,GAAG,CAAC,CAAC,EAAEC,KAAK,GAAG,CAAC,CAAC;EAC9C,MAAMO,SAAS,GAAG,EAAE,IAAIL,IAAI,CAACM,KAAK,CAACN,IAAI,CAACO,KAAK,CAACH,GAAG,CAAC,CAAC;EACnD,MAAMI,IAAI,GAAG,CAACd,KAAK,CAACe,IAAI,CAAEC,CAAC,IAAKA,CAAC,GAAGL,SAAS,IAAID,GAAG,CAAC,IAAI,EAAE,IAAIC,SAAS;EACxE,MAAMM,KAAK,GAAGX,IAAI,CAACM,KAAK,CAACP,EAAE,GAAGS,IAAI,CAAC,GAAGA,IAAI;EAC1C,MAAMI,GAAG,GAAGZ,IAAI,CAACa,IAAI,CAACZ,EAAE,GAAGO,IAAI,CAAC,GAAGA,IAAI;EACvC,MAAMM,KAAe,GAAG,EAAE;EAC1B,KAAK,IAAIC,CAAC,GAAGJ,KAAK,EAAEI,CAAC,IAAIH,GAAG,GAAGJ,IAAI,GAAG,CAAC,EAAEO,CAAC,IAAIP,IAAI,EAAE;IAClDM,KAAK,CAACE,IAAI,CAAChB,IAAI,CAACiB,KAAK,CAACF,CAAC,GAAGP,IAAI,CAAC,GAAGA,IAAI,CAAC;EACzC;EACA,OAAOM,KAAK;AACd;;AAEA;AACA,OAAO,SAASI,WAAWA,CAACC,MAAwB,EAAEC,KAAuB,EAAE;EAC7E,MAAM,CAACC,EAAE,EAAEC,EAAE,CAAC,GAAGH,MAAM;EACvB,MAAM,CAACI,EAAE,EAAEC,EAAE,CAAC,GAAGJ,KAAK;EACtB,OAAQL,CAAS,IACfO,EAAE,KAAKD,EAAE,GAAG,CAACE,EAAE,GAAGC,EAAE,IAAI,CAAC,GAAGD,EAAE,GAAI,CAACR,CAAC,GAAGM,EAAE,KAAKC,EAAE,GAAGD,EAAE,CAAC,IAAKG,EAAE,GAAGD,EAAE,CAAC;AACvE;AAEA,OAAO,SAASE,QAAQA,CAACC,MAAe,EAAU;EAChD,OAAOA,MAAM,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK,GAAGA,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAGD,CAAC,CAACE,CAAC,IAAIF,CAAC,CAACG,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AAC9E;AAEA,OAAO,SAASC,QAAQA,CAACP,MAAe,EAAEQ,QAAgB,EAAU;EAClE,IAAIR,MAAM,CAACS,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;EAClC,MAAMC,KAAK,GAAGV,MAAM,CAAC,CAAC,CAAE;EACxB,MAAMW,IAAI,GAAGX,MAAM,CAACA,MAAM,CAACS,MAAM,GAAG,CAAC,CAAE;EACvC,OAAO,GAAGV,QAAQ,CAACC,MAAM,CAAC,KAAKW,IAAI,CAACP,CAAC,IAAII,QAAQ,KAAKE,KAAK,CAACN,CAAC,IAAII,QAAQ,IAAI;AAC/E;;AAEA;AACA,OAAO,SAASI,SAASA,CAACxC,KAAa,EAAEyC,SAAiB,EAAU;EAClE,OAAOvC,IAAI,CAACH,GAAG,CAAC,CAAC,EAAEG,IAAI,CAACa,IAAI,CAACf,KAAK,GAAGE,IAAI,CAACH,GAAG,CAAC,CAAC,EAAE0C,SAAS,CAAC,CAAC,CAAC;AAC/D","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ import { View } from 'react-native';
4
+ import Svg, { Path } from 'react-native-svg';
5
+ import { formatPrice } from "../components/price/price.js";
6
+ import { useTheme } from "../theme/theme-provider.js";
7
+ import { linearScale, linePath } from "./scale.js";
8
+ import { summarize } from "./summary.js";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ /** 축 없는 작은 추세선 */
11
+ export function Sparkline({
12
+ data,
13
+ width = 80,
14
+ height = 24,
15
+ color,
16
+ accessibilityLabel,
17
+ style
18
+ }) {
19
+ const t = useTheme();
20
+ const values = [...data];
21
+ const stroke = 1.5;
22
+ const y = linearScale([Math.min(...values), Math.max(...values)], [height - stroke, stroke]);
23
+ const x = linearScale([0, Math.max(1, values.length - 1)], [stroke, width - stroke]);
24
+ const points = values.map((v, i) => ({
25
+ x: x(i),
26
+ y: y(v)
27
+ }));
28
+ return /*#__PURE__*/_jsx(View, {
29
+ accessible: true,
30
+ accessibilityRole: "image",
31
+ accessibilityLabel: accessibilityLabel ?? summarize(values, v => formatPrice(v, '')),
32
+ style: [{
33
+ width,
34
+ height
35
+ }, style],
36
+ children: points.length > 1 ? /*#__PURE__*/_jsx(Svg, {
37
+ width: width,
38
+ height: height,
39
+ children: /*#__PURE__*/_jsx(Path, {
40
+ d: linePath(points),
41
+ fill: "none",
42
+ stroke: color ?? t.colors.primary,
43
+ strokeWidth: stroke,
44
+ strokeLinejoin: "round",
45
+ strokeLinecap: "round"
46
+ })
47
+ }) : null
48
+ });
49
+ }
50
+ //# sourceMappingURL=sparkline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","Svg","Path","formatPrice","useTheme","linearScale","linePath","summarize","jsx","_jsx","Sparkline","data","width","height","color","accessibilityLabel","style","t","values","stroke","y","Math","min","max","x","length","points","map","v","i","accessible","accessibilityRole","children","d","fill","colors","primary","strokeWidth","strokeLinejoin","strokeLinecap"],"sourceRoot":"../../../src","sources":["charts/sparkline.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAwC,cAAc;AACnE,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAC5C,SAASC,WAAW,QAAQ,8BAA2B;AACvD,SAASC,QAAQ,QAAQ,4BAAyB;AAClD,SAASC,WAAW,EAAEC,QAAQ,QAAQ,YAAS;AAC/C,SAASC,SAAS,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AActC;AACA,OAAO,SAASC,SAASA,CAAC;EACxBC,IAAI;EACJC,KAAK,GAAG,EAAE;EACVC,MAAM,GAAG,EAAE;EACXC,KAAK;EACLC,kBAAkB;EAClBC;AACc,CAAC,EAAE;EACjB,MAAMC,CAAC,GAAGb,QAAQ,CAAC,CAAC;EACpB,MAAMc,MAAM,GAAG,CAAC,GAAGP,IAAI,CAAC;EACxB,MAAMQ,MAAM,GAAG,GAAG;EAClB,MAAMC,CAAC,GAAGf,WAAW,CACnB,CAACgB,IAAI,CAACC,GAAG,CAAC,GAAGJ,MAAM,CAAC,EAAEG,IAAI,CAACE,GAAG,CAAC,GAAGL,MAAM,CAAC,CAAC,EAC1C,CAACL,MAAM,GAAGM,MAAM,EAAEA,MAAM,CAC1B,CAAC;EACD,MAAMK,CAAC,GAAGnB,WAAW,CACnB,CAAC,CAAC,EAAEgB,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEL,MAAM,CAACO,MAAM,GAAG,CAAC,CAAC,CAAC,EACnC,CAACN,MAAM,EAAEP,KAAK,GAAGO,MAAM,CACzB,CAAC;EACD,MAAMO,MAAM,GAAGR,MAAM,CAACS,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,MAAM;IAAEL,CAAC,EAAEA,CAAC,CAACK,CAAC,CAAC;IAAET,CAAC,EAAEA,CAAC,CAACQ,CAAC;EAAE,CAAC,CAAC,CAAC;EAC3D,oBACEnB,IAAA,CAACT,IAAI;IACH8B,UAAU;IACVC,iBAAiB,EAAC,OAAO;IACzBhB,kBAAkB,EAChBA,kBAAkB,IAAIR,SAAS,CAACW,MAAM,EAAGU,CAAC,IAAKzB,WAAW,CAACyB,CAAC,EAAE,EAAE,CAAC,CAClE;IACDZ,KAAK,EAAE,CAAC;MAAEJ,KAAK;MAAEC;IAAO,CAAC,EAAEG,KAAK,CAAE;IAAAgB,QAAA,EAEjCN,MAAM,CAACD,MAAM,GAAG,CAAC,gBAChBhB,IAAA,CAACR,GAAG;MAACW,KAAK,EAAEA,KAAM;MAACC,MAAM,EAAEA,MAAO;MAAAmB,QAAA,eAChCvB,IAAA,CAACP,IAAI;QACH+B,CAAC,EAAE3B,QAAQ,CAACoB,MAAM,CAAE;QACpBQ,IAAI,EAAC,MAAM;QACXf,MAAM,EAAEL,KAAK,IAAIG,CAAC,CAACkB,MAAM,CAACC,OAAQ;QAClCC,WAAW,EAAElB,MAAO;QACpBmB,cAAc,EAAC,OAAO;QACtBC,aAAa,EAAC;MAAO,CACtB;IAAC,CACC,CAAC,GACJ;EAAI,CACJ,CAAC;AAEX","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ /** 차트 전체를 한 문장으로. 스크린 리더용 */
4
+ export function summarize(values, format) {
5
+ if (values.length === 0) return '데이터 없음';
6
+ const max = Math.max(...values);
7
+ const min = Math.min(...values);
8
+ const last = values[values.length - 1];
9
+ return `${values.length}개 구간, 최고 ${format(max)}, 최저 ${format(min)}, 마지막 ${format(last)}`;
10
+ }
11
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["summarize","values","format","length","max","Math","min","last"],"sourceRoot":"../../../src","sources":["charts/summary.ts"],"mappings":";;AAAA;AACA,OAAO,SAASA,SAASA,CACvBC,MAAgB,EAChBC,MAA6B,EACrB;EACR,IAAID,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,QAAQ;EACxC,MAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,GAAGH,MAAM,CAAC;EAC/B,MAAMK,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,GAAGL,MAAM,CAAC;EAC/B,MAAMM,IAAI,GAAGN,MAAM,CAACA,MAAM,CAACE,MAAM,GAAG,CAAC,CAAE;EACvC,OAAO,GAAGF,MAAM,CAACE,MAAM,YAAYD,MAAM,CAACE,GAAG,CAAC,QAAQF,MAAM,CAACI,GAAG,CAAC,SAASJ,MAAM,CAACK,IAAI,CAAC,EAAE;AAC1F","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./charts/index.js";
4
+ export * from "./blocks/sales-chart/index.js";
5
+ //# sourceMappingURL=charts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["charts.tsx"],"mappings":";;AAAA,cAAc,mBAAgB;AAC9B,cAAc,+BAA4B","ignoreList":[]}