@leviosa-ai/detail-page-editor 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 (190) hide show
  1. package/components/cardnews/color-input.tsx +380 -0
  2. package/components/detail-page/ai-generate-panel.tsx +763 -0
  3. package/components/detail-page/annotation-canvas.tsx +860 -0
  4. package/components/detail-page/annotation-dialog.tsx +397 -0
  5. package/components/detail-page/bubble-tail-overlay.tsx +209 -0
  6. package/components/detail-page/canvas-context-menu.tsx +234 -0
  7. package/components/detail-page/canvas-observer.tsx +68 -0
  8. package/components/detail-page/canvas-overlay-host.tsx +44 -0
  9. package/components/detail-page/canvas-store-facade.ts +51 -0
  10. package/components/detail-page/chart-inspector.tsx +531 -0
  11. package/components/detail-page/design-reference-picker.tsx +383 -0
  12. package/components/detail-page/detail-page-basic-shapes.tsx +180 -0
  13. package/components/detail-page/detail-page-brand-gifs-panel.tsx +261 -0
  14. package/components/detail-page/detail-page-brand-kit-panel.tsx +77 -0
  15. package/components/detail-page/detail-page-brand-panel-header.tsx +44 -0
  16. package/components/detail-page/detail-page-charts-panel.tsx +104 -0
  17. package/components/detail-page/detail-page-decorations-panel.tsx +125 -0
  18. package/components/detail-page/detail-page-download-dialog.tsx +524 -0
  19. package/components/detail-page/detail-page-editor.tsx +974 -0
  20. package/components/detail-page/detail-page-elements-panel.tsx +117 -0
  21. package/components/detail-page/detail-page-font-picker.tsx +231 -0
  22. package/components/detail-page/detail-page-history-buttons.tsx +87 -0
  23. package/components/detail-page/detail-page-host-context.tsx +465 -0
  24. package/components/detail-page/detail-page-icons-panel.tsx +251 -0
  25. package/components/detail-page/detail-page-konva-json-preview.tsx +474 -0
  26. package/components/detail-page/detail-page-layers-panel.tsx +618 -0
  27. package/components/detail-page/detail-page-my-images-panel.tsx +179 -0
  28. package/components/detail-page/detail-page-my-shapes-panel.tsx +174 -0
  29. package/components/detail-page/detail-page-page-toolbar.tsx +171 -0
  30. package/components/detail-page/detail-page-pages-panel.tsx +299 -0
  31. package/components/detail-page/detail-page-pages-timeline.tsx +79 -0
  32. package/components/detail-page/detail-page-photos-panel.tsx +257 -0
  33. package/components/detail-page/detail-page-properties-panel.tsx +2680 -0
  34. package/components/detail-page/detail-page-qr-panel.tsx +137 -0
  35. package/components/detail-page/detail-page-references-panel.tsx +166 -0
  36. package/components/detail-page/detail-page-selection.ts +44 -0
  37. package/components/detail-page/detail-page-shapes-panel.tsx +16 -0
  38. package/components/detail-page/detail-page-sidebar-sections.tsx +324 -0
  39. package/components/detail-page/detail-page-tables-panel.tsx +106 -0
  40. package/components/detail-page/detail-page-text-panel.tsx +179 -0
  41. package/components/detail-page/detail-page-thumbnail-bus.ts +42 -0
  42. package/components/detail-page/edit-quota-ui.tsx +150 -0
  43. package/components/detail-page/editor-history.ts +56 -0
  44. package/components/detail-page/editor-hotkeys.tsx +165 -0
  45. package/components/detail-page/element-recents-strip.tsx +105 -0
  46. package/components/detail-page/element-rects.ts +82 -0
  47. package/components/detail-page/fill-control.tsx +261 -0
  48. package/components/detail-page/find-replace-panel.tsx +252 -0
  49. package/components/detail-page/generation-progress-fill.tsx +57 -0
  50. package/components/detail-page/gif-animator.tsx +184 -0
  51. package/components/detail-page/gif-effect-picker.tsx +136 -0
  52. package/components/detail-page/group-drill-in.tsx +219 -0
  53. package/components/detail-page/group-prompt-edit-panel.tsx +154 -0
  54. package/components/detail-page/hover-highlight-overlay.tsx +111 -0
  55. package/components/detail-page/hovered-layer.ts +34 -0
  56. package/components/detail-page/inspector-controls.tsx +175 -0
  57. package/components/detail-page/leviosa-canvas-workspace.tsx +313 -0
  58. package/components/detail-page/nested-selection-overlay.tsx +364 -0
  59. package/components/detail-page/panel-search-input.tsx +49 -0
  60. package/components/detail-page/prompt-edit-panel.tsx +146 -0
  61. package/components/detail-page/section-height-handle.tsx +276 -0
  62. package/components/detail-page/section-reauthor-controller.tsx +210 -0
  63. package/components/detail-page/spec-prompt-edit-panel.tsx +178 -0
  64. package/components/detail-page/spec-resize-absorber.tsx +149 -0
  65. package/components/detail-page/svg-prompt-edit-panel.tsx +139 -0
  66. package/components/detail-page/table-canvas-overlay.tsx +707 -0
  67. package/components/detail-page/table-inspector.tsx +586 -0
  68. package/components/ui/button.tsx +64 -0
  69. package/components/ui/command.tsx +175 -0
  70. package/components/ui/dialog.tsx +167 -0
  71. package/components/ui/label.tsx +24 -0
  72. package/components/ui/select.tsx +190 -0
  73. package/components/ui/slider.tsx +63 -0
  74. package/components/ui/switch.tsx +35 -0
  75. package/components/ui/tooltip.tsx +57 -0
  76. package/config/detail-page-bundle-font-tags.json +39 -0
  77. package/config/detail-page-fonts.json +373 -0
  78. package/index.ts +24 -0
  79. package/lib/cardnews/font-loader.ts +306 -0
  80. package/lib/detail-page/animation-sniff.ts +101 -0
  81. package/lib/detail-page/asset-bytes-url.ts +70 -0
  82. package/lib/detail-page/basic-shapes.ts +603 -0
  83. package/lib/detail-page/canvas-menu.ts +182 -0
  84. package/lib/detail-page/chart/defaults.ts +283 -0
  85. package/lib/detail-page/chart/format.ts +66 -0
  86. package/lib/detail-page/chart/normalize.ts +149 -0
  87. package/lib/detail-page/chart/palette.ts +85 -0
  88. package/lib/detail-page/chart/paste.ts +82 -0
  89. package/lib/detail-page/chart/preview.ts +78 -0
  90. package/lib/detail-page/chart/render.ts +188 -0
  91. package/lib/detail-page/chart/renderers/bar-h.ts +103 -0
  92. package/lib/detail-page/chart/renderers/bar-v.ts +213 -0
  93. package/lib/detail-page/chart/renderers/donut.ts +186 -0
  94. package/lib/detail-page/chart/renderers/gauge.ts +96 -0
  95. package/lib/detail-page/chart/renderers/line.ts +143 -0
  96. package/lib/detail-page/chart/renderers/shared.ts +263 -0
  97. package/lib/detail-page/chart/renderers/stack.ts +121 -0
  98. package/lib/detail-page/chart/sync.ts +92 -0
  99. package/lib/detail-page/chart/types.ts +145 -0
  100. package/lib/detail-page/css-color.ts +34 -0
  101. package/lib/detail-page/data-gif-payload.ts +167 -0
  102. package/lib/detail-page/design-reference.ts +244 -0
  103. package/lib/detail-page/distribute.ts +89 -0
  104. package/lib/detail-page/editor-routes.ts +10 -0
  105. package/lib/detail-page/element-recents.ts +167 -0
  106. package/lib/detail-page/find-replace.ts +120 -0
  107. package/lib/detail-page/format-painter.ts +159 -0
  108. package/lib/detail-page/gif-frames.ts +216 -0
  109. package/lib/detail-page/gif-timeline.ts +65 -0
  110. package/lib/detail-page/group-action.ts +62 -0
  111. package/lib/detail-page/hangul-roman.ts +58 -0
  112. package/lib/detail-page/icon-curated.ts +290 -0
  113. package/lib/detail-page/icon-fuzzy.ts +250 -0
  114. package/lib/detail-page/icon-keywords.generated.ts +3766 -0
  115. package/lib/detail-page/icon-keywords.ko.ts +524 -0
  116. package/lib/detail-page/icon-search.ts +257 -0
  117. package/lib/detail-page/icons.ts +67 -0
  118. package/lib/detail-page/image-credit.ts +121 -0
  119. package/lib/detail-page/image-data-uri.ts +29 -0
  120. package/lib/detail-page/insert-image.ts +75 -0
  121. package/lib/detail-page/insert-shape.ts +49 -0
  122. package/lib/detail-page/korean-dictionary.ts +187 -0
  123. package/lib/detail-page/layer-move.ts +257 -0
  124. package/lib/detail-page/new-product-draft-store.ts +105 -0
  125. package/lib/detail-page/new-product-draft.ts +283 -0
  126. package/lib/detail-page/personal-images-refresh.ts +30 -0
  127. package/lib/detail-page/product-source.ts +587 -0
  128. package/lib/detail-page/qr-code.ts +214 -0
  129. package/lib/detail-page/reference-image.ts +103 -0
  130. package/lib/detail-page/reference-upload.ts +181 -0
  131. package/lib/detail-page/replace-page.ts +35 -0
  132. package/lib/detail-page/replace-with-gif.ts +251 -0
  133. package/lib/detail-page/section-height.ts +131 -0
  134. package/lib/detail-page/section-reauthor-bus.ts +61 -0
  135. package/lib/detail-page/shape-to-image.ts +219 -0
  136. package/lib/detail-page/spec-group/clipboard.ts +35 -0
  137. package/lib/detail-page/spec-group/sync.ts +377 -0
  138. package/lib/detail-page/spec-group/text-metrics.ts +48 -0
  139. package/lib/detail-page/stock-photos.ts +88 -0
  140. package/lib/detail-page/svg-colors.ts +74 -0
  141. package/lib/detail-page/table/defaults.ts +344 -0
  142. package/lib/detail-page/table/edit.ts +312 -0
  143. package/lib/detail-page/table/harvest.ts +103 -0
  144. package/lib/detail-page/table/normalize.ts +125 -0
  145. package/lib/detail-page/table/paste.ts +49 -0
  146. package/lib/detail-page/table/preview.ts +66 -0
  147. package/lib/detail-page/table/render.ts +388 -0
  148. package/lib/detail-page/table/sync.ts +107 -0
  149. package/lib/detail-page/table/types.ts +102 -0
  150. package/lib/detail-page/text-gif-layout.ts +245 -0
  151. package/lib/detail-page/text-gif-payload.ts +67 -0
  152. package/lib/detail-page/text-presets.ts +230 -0
  153. package/lib/detail-page/use-fake-progress.ts +67 -0
  154. package/lib/detail-page/z-order.ts +82 -0
  155. package/lib/detail-page-canvas/bubble-path.ts +190 -0
  156. package/lib/detail-page-canvas/canvas-key.ts +22 -0
  157. package/lib/detail-page-canvas/clip-rect.ts +65 -0
  158. package/lib/detail-page-canvas/custom-props-adapter.ts +219 -0
  159. package/lib/detail-page-canvas/editor-fonts.ts +161 -0
  160. package/lib/detail-page-canvas/export/ai.ts +413 -0
  161. package/lib/detail-page-canvas/export/color.ts +35 -0
  162. package/lib/detail-page-canvas/export/document-model.ts +78 -0
  163. package/lib/detail-page-canvas/export/export-files.ts +290 -0
  164. package/lib/detail-page-canvas/export/font-subset.ts +264 -0
  165. package/lib/detail-page-canvas/export/gif-export.ts +310 -0
  166. package/lib/detail-page-canvas/export/gif-plan.ts +95 -0
  167. package/lib/detail-page-canvas/export/mp4-encode.ts +158 -0
  168. package/lib/detail-page-canvas/export/mp4-support.ts +22 -0
  169. package/lib/detail-page-canvas/export/pdf/geometry.ts +309 -0
  170. package/lib/detail-page-canvas/export/pdf/inline-svg.ts +399 -0
  171. package/lib/detail-page-canvas/export/pdf/resources.ts +443 -0
  172. package/lib/detail-page-canvas/export/pdf/text-ops.ts +81 -0
  173. package/lib/detail-page-canvas/export/pdf/writer.ts +109 -0
  174. package/lib/detail-page-canvas/export/psd.ts +354 -0
  175. package/lib/detail-page-canvas/export/raster.ts +255 -0
  176. package/lib/detail-page-canvas/export/svg.ts +479 -0
  177. package/lib/detail-page-canvas/export/text-layout.ts +142 -0
  178. package/lib/detail-page-canvas/font-catalog.ts +177 -0
  179. package/lib/detail-page-canvas/font-tags.ts +47 -0
  180. package/lib/detail-page-canvas/gif-web-fonts.ts +90 -0
  181. package/lib/detail-page-canvas/konva-fallback.ts +477 -0
  182. package/lib/detail-page-canvas/text-background-plan.ts +124 -0
  183. package/lib/detail-page-canvas/text-highlight-bands.ts +127 -0
  184. package/lib/utils.ts +10 -0
  185. package/package.json +68 -0
  186. package/types/commerce.ts +171 -0
  187. package/types/detail-page-api.ts +200 -0
  188. package/types/detail-page-canvas.ts +20 -0
  189. package/types/fontkit.d.ts +42 -0
  190. package/types/gifenc.d.ts +51 -0
@@ -0,0 +1,57 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Tooltip as TooltipPrimitive } from "radix-ui"
5
+
6
+ import { cn } from "../../lib/utils"
7
+
8
+ function TooltipProvider({
9
+ delayDuration = 0,
10
+ ...props
11
+ }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {
12
+ return (
13
+ <TooltipPrimitive.Provider
14
+ data-slot="tooltip-provider"
15
+ delayDuration={delayDuration}
16
+ {...props}
17
+ />
18
+ )
19
+ }
20
+
21
+ function Tooltip({
22
+ ...props
23
+ }: React.ComponentProps<typeof TooltipPrimitive.Root>) {
24
+ return <TooltipPrimitive.Root data-slot="tooltip" {...props} />
25
+ }
26
+
27
+ function TooltipTrigger({
28
+ ...props
29
+ }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {
30
+ return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />
31
+ }
32
+
33
+ function TooltipContent({
34
+ className,
35
+ sideOffset = 0,
36
+ children,
37
+ ...props
38
+ }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
39
+ return (
40
+ <TooltipPrimitive.Portal>
41
+ <TooltipPrimitive.Content
42
+ data-slot="tooltip-content"
43
+ sideOffset={sideOffset}
44
+ className={cn(
45
+ "z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
46
+ className
47
+ )}
48
+ {...props}
49
+ >
50
+ {children}
51
+ <TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" />
52
+ </TooltipPrimitive.Content>
53
+ </TooltipPrimitive.Portal>
54
+ )
55
+ }
56
+
57
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
@@ -0,0 +1,39 @@
1
+ {
2
+ "pretendard": ["body", "gothic"],
3
+ "noto-sans-kr": ["body", "gothic"],
4
+ "gothic-a1": ["body", "gothic"],
5
+ "ibm-plex-sans-kr": ["body", "gothic"],
6
+ "nanum-gothic": ["body", "gothic"],
7
+ "gowun-dodum": ["body", "gothic", "rounded"],
8
+ "dongle": ["heading", "gothic", "rounded"],
9
+ "noto-serif-kr": ["body", "myeongjo"],
10
+ "nanum-myeongjo": ["body", "myeongjo"],
11
+ "hahmlet": ["heading", "myeongjo", "angular"],
12
+ "gowun-batang": ["body", "batang", "rounded"],
13
+ "song-myung": ["body", "myeongjo"],
14
+ "black-han-sans": ["heading", "gothic", "angular"],
15
+ "gasoek-one": ["heading", "angular"],
16
+ "do-hyeon": ["heading", "gothic"],
17
+ "jua": ["heading", "rounded"],
18
+ "bagel-fat-one": ["heading", "rounded"],
19
+ "yeon-sung": ["heading", "rounded"],
20
+ "moirai-one": ["heading", "outline", "angular"],
21
+ "kirang-haerang": ["heading", "rounded"],
22
+ "gugi": ["heading", "angular"],
23
+ "sunflower": ["body", "gothic"],
24
+ "nanum-pen-script": ["handwriting"],
25
+ "nanum-brush-script": ["handwriting"],
26
+ "gaegu": ["handwriting", "rounded"],
27
+ "gamja-flower": ["handwriting", "rounded"],
28
+ "hi-melody": ["handwriting", "rounded"],
29
+ "dokdo": ["handwriting"],
30
+ "east-sea-dokdo": ["handwriting"],
31
+ "suit": ["body", "gothic"],
32
+ "nanum-square-neo": ["heading", "body", "gothic", "angular"],
33
+ "nanum-square-round": ["body", "gothic", "rounded"],
34
+ "cafe24-decoline": ["heading", "outline"],
35
+ "samlip-hopang-outline": ["heading", "outline", "rounded"],
36
+ "paperlogy": ["heading", "body", "gothic", "angular"],
37
+ "freesentation": ["body", "gothic"],
38
+ "diphylleia": ["heading", "myeongjo"]
39
+ }
@@ -0,0 +1,373 @@
1
+ [
2
+ {
3
+ "id": "paperlogy",
4
+ "family": "Paperozi",
5
+ "label": "페이퍼로지",
6
+ "labelEn": "Paperlogy",
7
+ "tags": ["heading", "body", "gothic", "angular"],
8
+ "previewText": "페이퍼로지 Paperlogy",
9
+ "previewWeight": 600,
10
+ "licenseName": "SIL Open Font License 1.1",
11
+ "licenseUrl": "https://noonnu.cc/font_page/1456",
12
+ "styles": [
13
+ { "weight": 100, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-1Thin.woff2" },
14
+ { "weight": 200, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-2ExtraLight.woff2" },
15
+ { "weight": 300, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-3Light.woff2" },
16
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-4Regular.woff2" },
17
+ { "weight": 500, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-5Medium.woff2" },
18
+ { "weight": 600, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-6SemiBold.woff2" },
19
+ { "weight": 700, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-7Bold.woff2" },
20
+ { "weight": 800, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-8ExtraBold.woff2" },
21
+ { "weight": 900, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2408-3@1.0/Paperlogy-9Black.woff2" }
22
+ ]
23
+ },
24
+ {
25
+ "id": "escoredream",
26
+ "family": "Escoredream",
27
+ "label": "에스코어드림",
28
+ "labelEn": "S-Core Dream",
29
+ "tags": ["body", "gothic"],
30
+ "previewText": "에스코어드림 S-Core Dream",
31
+ "previewWeight": 500,
32
+ "licenseName": "에스코어드림 라이선스",
33
+ "licenseUrl": "https://noonnu.cc/font_page/223",
34
+ "licenseNoteKey": "noModificationOrSale",
35
+ "styles": [
36
+ { "weight": 100, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-1Thin.woff" },
37
+ { "weight": 200, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-2ExtraLight.woff" },
38
+ { "weight": 300, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-3Light.woff" },
39
+ { "weight": 400, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-4Regular.woff" },
40
+ { "weight": 500, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-5Medium.woff" },
41
+ { "weight": 600, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-6Bold.woff" },
42
+ { "weight": 700, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-7ExtraBold.woff" },
43
+ { "weight": 800, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-8Heavy.woff" },
44
+ { "weight": 900, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-9Black.woff" }
45
+ ]
46
+ },
47
+ {
48
+ "id": "freesentation",
49
+ "family": "Presentation",
50
+ "label": "프리젠테이션",
51
+ "labelEn": "Freesentation",
52
+ "tags": ["body", "gothic"],
53
+ "previewText": "프리젠테이션 Freesentation",
54
+ "previewWeight": 500,
55
+ "licenseName": "SIL Open Font License 1.1",
56
+ "licenseUrl": "https://freesentation.blog/freesentation",
57
+ "styles": [
58
+ { "weight": 100, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-1Thin.woff2" },
59
+ { "weight": 200, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-2ExtraLight.woff2" },
60
+ { "weight": 300, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-3Light.woff2" },
61
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-4Regular.woff2" },
62
+ { "weight": 500, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-5Medium.woff2" },
63
+ { "weight": 600, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-6SemiBold.woff2" },
64
+ { "weight": 700, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-7Bold.woff2" },
65
+ { "weight": 800, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-8ExtraBold.woff2" },
66
+ { "weight": 900, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2404@1.0/Freesentation-9Black.woff2" }
67
+ ]
68
+ },
69
+ {
70
+ "id": "wanted-sans",
71
+ "family": "WantedSans",
72
+ "label": "원티드 산스",
73
+ "labelEn": "Wanted Sans",
74
+ "tags": ["body", "gothic"],
75
+ "previewText": "원티드 산스 Wanted Sans",
76
+ "previewWeight": 500,
77
+ "licenseName": "SIL Open Font License 1.1",
78
+ "licenseUrl": "https://github.com/wanteddev/wanted-sans",
79
+ "styles": [
80
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/wanted-sans@1.0.3/fonts/webfonts/static/complete/woff2/WantedSans-Regular.woff2" },
81
+ { "weight": 500, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/wanted-sans@1.0.3/fonts/webfonts/static/complete/woff2/WantedSans-Medium.woff2" },
82
+ { "weight": 600, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/wanted-sans@1.0.3/fonts/webfonts/static/complete/woff2/WantedSans-SemiBold.woff2" },
83
+ { "weight": 700, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/wanted-sans@1.0.3/fonts/webfonts/static/complete/woff2/WantedSans-Bold.woff2" },
84
+ { "weight": 800, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/wanted-sans@1.0.3/fonts/webfonts/static/complete/woff2/WantedSans-ExtraBold.woff2" },
85
+ { "weight": 900, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/wanted-sans@1.0.3/fonts/webfonts/static/complete/woff2/WantedSans-Black.woff2" }
86
+ ]
87
+ },
88
+ {
89
+ "id": "aggro",
90
+ "family": "Aggravo",
91
+ "label": "에스비 어그로",
92
+ "labelEn": "SB Aggro",
93
+ "tags": ["heading", "gothic", "angular"],
94
+ "previewText": "에스비 어그로 SB Aggro",
95
+ "previewWeight": 500,
96
+ "licenseName": "SB Aggro font license",
97
+ "licenseUrl": "https://noonnu.cc/font_page/738",
98
+ "licenseNoteKey": "noRedistributionOrSale",
99
+ "styles": [
100
+ { "weight": 300, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2108@1.1/SBAggroL.woff" },
101
+ { "weight": 500, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2108@1.1/SBAggroM.woff" },
102
+ { "weight": 700, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2108@1.1/SBAggroB.woff" }
103
+ ]
104
+ },
105
+ {
106
+ "id": "cafe24-surround",
107
+ "family": "Cafe24Surround",
108
+ "label": "카페24 써라운드",
109
+ "labelEn": "Cafe24 Surround",
110
+ "tags": ["heading", "gothic", "angular"],
111
+ "previewText": "카페24 써라운드",
112
+ "previewWeight": 400,
113
+ "licenseName": "Cafe24 font license",
114
+ "licenseUrl": "https://fonts.cafe24.com/",
115
+ "styles": [
116
+ { "weight": 400, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2105_2@1.0/Cafe24Ssurround.woff" }
117
+ ]
118
+ },
119
+ {
120
+ "id": "a2z",
121
+ "family": "A2z",
122
+ "label": "에이투지체",
123
+ "labelEn": "A2Z",
124
+ "tags": ["body", "gothic"],
125
+ "previewText": "에이투지체 A2Z",
126
+ "previewWeight": 500,
127
+ "licenseName": "A2Z font license",
128
+ "licenseUrl": "https://noonnu.cc/font_page/1778",
129
+ "licenseNoteKey": "noFontSale",
130
+ "styles": [
131
+ { "weight": 100, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-1Thin.woff2" },
132
+ { "weight": 200, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-2ExtraLight.woff2" },
133
+ { "weight": 300, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-3Light.woff2" },
134
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-4Regular.woff2" },
135
+ { "weight": 500, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-5Medium.woff2" },
136
+ { "weight": 600, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-6SemiBold.woff2" },
137
+ { "weight": 700, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-7Bold.woff2" },
138
+ { "weight": 800, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-8ExtraBold.woff2" },
139
+ { "weight": 900, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-9Black.woff2" }
140
+ ]
141
+ },
142
+ {
143
+ "id": "mona12",
144
+ "family": "Mona12",
145
+ "label": "모나 12",
146
+ "labelEn": "Mona12",
147
+ "tags": ["pixel"],
148
+ "previewText": "모나 12 Mona12",
149
+ "previewWeight": 400,
150
+ "licenseName": "SIL Open Font License 1.1",
151
+ "licenseUrl": "https://github.com/MonadABXY/mona-font",
152
+ "styles": [
153
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/MonadABXY/mona-font/web/Mona12.woff2" },
154
+ { "weight": 700, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/MonadABXY/mona-font/web/Mona12-Bold.woff2" }
155
+ ]
156
+ },
157
+ {
158
+ "id": "kookmin-sunggok-serif",
159
+ "family": "KookminUniversitySunggokSerif",
160
+ "label": "국민대학교 성곡서체",
161
+ "labelEn": "KMU Sungkok Serif",
162
+ "tags": ["heading", "myeongjo"],
163
+ "previewText": "국민대학교 성곡서체",
164
+ "previewWeight": 400,
165
+ "licenseName": "Kookmin University Sungkok font license",
166
+ "licenseUrl": "https://noonnu.cc/font_page/1863",
167
+ "licenseNoteKey": "attributionNoModification",
168
+ "styles": [
169
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/Project-Noonnu/2607101542@kmu80sungkokserif/kmu80sungkokserif/KMU80SungkokSerif.woff2" }
170
+ ]
171
+ },
172
+ {
173
+ "id": "maruburi",
174
+ "family": "MaruBuri",
175
+ "label": "마루 부리",
176
+ "labelEn": "MaruBuri",
177
+ "tags": ["body", "batang"],
178
+ "previewText": "마루 부리 MaruBuri",
179
+ "previewWeight": 400,
180
+ "licenseName": "SIL Open Font License 1.1",
181
+ "licenseUrl": "https://hangeul.naver.com/font/maru-buri",
182
+ "styles": [
183
+ { "weight": 200, "style": "normal", "format": "woff2", "url": "https://hangeul.pstatic.net/hangeul_static/webfont/MaruBuri/MaruBuri-ExtraLight.woff2" },
184
+ { "weight": 300, "style": "normal", "format": "woff2", "url": "https://hangeul.pstatic.net/hangeul_static/webfont/MaruBuri/MaruBuri-Light.woff2" },
185
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://hangeul.pstatic.net/hangeul_static/webfont/MaruBuri/MaruBuri-Regular.woff2" },
186
+ { "weight": 600, "style": "normal", "format": "woff2", "url": "https://hangeul.pstatic.net/hangeul_static/webfont/MaruBuri/MaruBuri-SemiBold.woff2" },
187
+ { "weight": 700, "style": "normal", "format": "woff2", "url": "https://hangeul.pstatic.net/hangeul_static/webfont/MaruBuri/MaruBuri-Bold.woff2" }
188
+ ]
189
+ },
190
+ {
191
+ "id": "diphylleia",
192
+ "family": "Diphylleia",
193
+ "label": "산하엽",
194
+ "labelEn": "Diphylleia",
195
+ "tags": ["heading", "myeongjo"],
196
+ "previewText": "산하엽 Diphylleia",
197
+ "previewWeight": 400,
198
+ "licenseName": "SIL Open Font License 1.1",
199
+ "licenseUrl": "https://fonts.google.com/specimen/Diphylleia",
200
+ "styles": [
201
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/@fontsource/diphylleia@5.3.0/files/diphylleia-korean-400-normal.woff2" }
202
+ ]
203
+ },
204
+ {
205
+ "id": "im-fell-english-sc",
206
+ "family": "ImFellEnglishSC",
207
+ "label": "IM 펠 잉글리시 SC",
208
+ "labelEn": "IM Fell English SC",
209
+ "tags": ["heading", "myeongjo"],
210
+ "latinOnly": true,
211
+ "previewText": "IM Fell English SC",
212
+ "previewWeight": 400,
213
+ "licenseName": "SIL Open Font License 1.1",
214
+ "licenseUrl": "https://fonts.google.com/specimen/IM+Fell+English+SC",
215
+ "styles": [
216
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/@fontsource/im-fell-english-sc@5.3.0/files/im-fell-english-sc-latin-400-normal.woff2" }
217
+ ]
218
+ },
219
+ {
220
+ "id": "bodoni-moda",
221
+ "family": "BodoniModa",
222
+ "label": "보도니 모다",
223
+ "labelEn": "Bodoni Moda",
224
+ "tags": ["heading", "myeongjo"],
225
+ "latinOnly": true,
226
+ "previewText": "Bodoni Moda",
227
+ "previewWeight": 500,
228
+ "licenseName": "SIL Open Font License 1.1",
229
+ "licenseUrl": "https://fonts.google.com/specimen/Bodoni+Moda",
230
+ "styles": [
231
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/@fontsource/bodoni-moda@5.3.0/files/bodoni-moda-latin-400-normal.woff2" },
232
+ { "weight": 500, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/@fontsource/bodoni-moda@5.3.0/files/bodoni-moda-latin-500-normal.woff2" },
233
+ { "weight": 600, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/@fontsource/bodoni-moda@5.3.0/files/bodoni-moda-latin-600-normal.woff2" },
234
+ { "weight": 700, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/@fontsource/bodoni-moda@5.3.0/files/bodoni-moda-latin-700-normal.woff2" },
235
+ { "weight": 800, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/@fontsource/bodoni-moda@5.3.0/files/bodoni-moda-latin-800-normal.woff2" },
236
+ { "weight": 900, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/@fontsource/bodoni-moda@5.3.0/files/bodoni-moda-latin-900-normal.woff2" }
237
+ ]
238
+ },
239
+ {
240
+ "id": "rounded-fixedsys",
241
+ "family": "RoundedFixedsys",
242
+ "label": "둥근모꼴",
243
+ "labelEn": "Rounded Fixedsys",
244
+ "tags": ["pixel", "rounded"],
245
+ "previewText": "둥근모꼴 Rounded Fixedsys",
246
+ "previewWeight": 400,
247
+ "licenseName": "Public domain",
248
+ "licenseUrl": "https://noonnu.cc/font_page/250",
249
+ "styles": [
250
+ { "weight": 400, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/DungGeunMo.woff" }
251
+ ]
252
+ },
253
+ {
254
+ "id": "daegu-catholic-university",
255
+ "family": "DaeguCatholicUniversity",
256
+ "label": "대구가톨릭대학교체",
257
+ "labelEn": "Daegu Catholic University",
258
+ "tags": ["heading", "gothic", "angular"],
259
+ "previewText": "대구가톨릭대학교체",
260
+ "previewWeight": 400,
261
+ "licenseName": "Daegu Catholic University font license",
262
+ "licenseUrl": "https://noonnu.cc/font_page/1570",
263
+ "licenseNoteKey": "noModificationOrRedistribution",
264
+ "styles": [
265
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2503@1.0/DaeguCatholicUniversity.woff2" }
266
+ ]
267
+ },
268
+ {
269
+ "id": "nexon-maplestory",
270
+ "family": "NexonMaplestory",
271
+ "label": "넥슨 메이플스토리",
272
+ "labelEn": "NEXON MapleStory",
273
+ "tags": ["heading", "gothic", "rounded"],
274
+ "previewText": "넥슨 메이플스토리",
275
+ "previewWeight": 700,
276
+ "licenseName": "NEXON MapleStory font license",
277
+ "licenseUrl": "https://noonnu.cc/font_page/427",
278
+ "licenseNoteKey": "originalEmbeddingNotice",
279
+ "styles": [
280
+ { "weight": 300, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-04@2.1/MaplestoryOTFLight.woff" },
281
+ { "weight": 700, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-04@2.1/MaplestoryOTFBold.woff" }
282
+ ]
283
+ },
284
+ {
285
+ "id": "galmuri9",
286
+ "family": "Galmuri9",
287
+ "label": "갈무리9",
288
+ "labelEn": "Galmuri9",
289
+ "tags": ["pixel"],
290
+ "previewText": "갈무리9 Galmuri9",
291
+ "previewWeight": 400,
292
+ "licenseName": "SIL Open Font License 1.1",
293
+ "licenseUrl": "https://github.com/quiple/galmuri",
294
+ "styles": [
295
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/npm/galmuri@2.40.3/dist/Galmuri9.woff2" }
296
+ ]
297
+ },
298
+ {
299
+ "id": "dnf-bitbit",
300
+ "family": "DungeonFighterOnlineBeatBeat",
301
+ "label": "던파 비트비트체",
302
+ "labelEn": "DNF BitBit",
303
+ "tags": ["pixel"],
304
+ "previewText": "던파 비트비트체",
305
+ "previewWeight": 400,
306
+ "licenseName": "DNF BitBit font license",
307
+ "licenseUrl": "https://noonnu.cc/font_page/1043",
308
+ "licenseNoteKey": "noBrandIdentity",
309
+ "styles": [
310
+ { "weight": 400, "style": "normal", "format": "woff", "url": "https://cdn.df.nexon.com/img/common/font/DNFBitBit-Regular.woff" }
311
+ ]
312
+ },
313
+ {
314
+ "id": "d2coding",
315
+ "family": "D2Coding",
316
+ "label": "D2Coding",
317
+ "labelEn": "D2 Coding",
318
+ "tags": ["body", "gothic"],
319
+ "previewText": "D2Coding 코드 0123",
320
+ "previewWeight": 400,
321
+ "licenseName": "SIL Open Font License 1.1",
322
+ "licenseUrl": "https://github.com/naver/d2codingfont",
323
+ "styles": [
324
+ { "weight": 400, "style": "normal", "format": "woff", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_three@1.0/D2Coding.woff" }
325
+ ]
326
+ },
327
+ {
328
+ "id": "bookk-myungjo",
329
+ "family": "BookkMyungjo",
330
+ "label": "부크크 명조",
331
+ "labelEn": "Bookk Myungjo",
332
+ "tags": ["body", "myeongjo"],
333
+ "previewText": "부크크 명조 Bookk Myungjo",
334
+ "previewWeight": 400,
335
+ "licenseName": "부크크 명조 라이선스",
336
+ "licenseUrl": "https://noonnu.cc/font_page/1084",
337
+ "licenseNoteKey": "noRedistributionOrSale",
338
+ "styles": [
339
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302@1.0/BookkMyungjo-Lt.woff2" },
340
+ { "weight": 700, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2302@1.0/BookkMyungjo-Bd.woff2" }
341
+ ]
342
+ },
343
+ {
344
+ "id": "ownglyph-park-dahyun",
345
+ "family": "OngleipParkDahyeon",
346
+ "label": "온글잎 박다현체",
347
+ "labelEn": "Ownglyph ParkDaHyun",
348
+ "tags": ["handwriting"],
349
+ "previewText": "온글잎 박다현체",
350
+ "previewWeight": 400,
351
+ "licenseName": "온글잎 박다현체 라이선스",
352
+ "licenseUrl": "https://noonnu.cc/font_page/1541",
353
+ "licenseNoteKey": "noRedistributionOrSale",
354
+ "styles": [
355
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/2411-3@1.0/Ownglyph_ParkDaHyun.woff2" }
356
+ ]
357
+ },
358
+ {
359
+ "id": "87mm-ilsang-oblique",
360
+ "family": "PalchilmmDailyItalic",
361
+ "label": "팔칠엠엠 일상 기울임",
362
+ "labelEn": "87MM Ilsang Oblique",
363
+ "tags": ["heading", "gothic", "italic"],
364
+ "previewText": "팔칠엠엠 일상 기울임",
365
+ "previewWeight": 400,
366
+ "licenseName": "팔칠엠엠 라이선스",
367
+ "licenseUrl": "https://noonnu.cc/font_page/790",
368
+ "licenseNoteKey": "noPackagingOrBrandIdentity",
369
+ "styles": [
370
+ { "weight": 400, "style": "normal", "format": "woff2", "url": "https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2201@1.0/87MMILSANG-Oblique.woff2" }
371
+ ]
372
+ }
373
+ ]
package/index.ts ADDED
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 편집기 셸의 대문.
3
+ *
4
+ * 소비자가 실제로 잡는 것은 몇 개 안 된다 — 편집기, 호스트 계약, 그리고 문서를 다루는
5
+ * 몇 가지. 나머지는 깊은 경로(`exports` 맵)로 열어 둔다.
6
+ */
7
+
8
+ export {
9
+ DetailPageHostProvider,
10
+ useDetailPageHost,
11
+ } from "./components/detail-page/detail-page-host-context";
12
+ export type {
13
+ DetailPageHost,
14
+ DetailPageHostApi,
15
+ DetailPageHostBrand,
16
+ DetailPageHostProduct,
17
+ DetailPageHostQueryKeys,
18
+ DetailPageHostSlots,
19
+ DetailPageHostToast,
20
+ } from "./components/detail-page/detail-page-host-context";
21
+ export type * from "./types/detail-page-api";
22
+ export type * from "./types/commerce";
23
+
24
+ export { DetailPageEditor } from "./components/detail-page/detail-page-editor";