@fullstackunicorn/create-root 1.0.23 → 1.0.24

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 (120) hide show
  1. package/assets/root.fullstackunicorn.dev/assets/index.def.js +32 -4
  2. package/assets/root.fullstackunicorn.dev/assets/modules/sync.js +164 -302
  3. package/assets/root.fullstackunicorn.dev/assets/modules/sync.tools.js +39 -6
  4. package/assets/root.fullstackunicorn.dev/assets/package.md +9 -2
  5. package/assets/root.fullstackunicorn.dev/assets/webapp.runner.js +42 -1
  6. package/assets/root.fullstackunicorn.dev/frontend/base/account/AccountCard.js +1 -1
  7. package/assets/root.fullstackunicorn.dev/frontend/base/cookies/@use.js +5 -93
  8. package/assets/root.fullstackunicorn.dev/frontend/base/cookies/CookiesCard.js +1 -1
  9. package/assets/root.fullstackunicorn.dev/frontend/base/language/@use.js +4 -69
  10. package/assets/root.fullstackunicorn.dev/frontend/base/language/LanguageCard.js +1 -1
  11. package/assets/root.fullstackunicorn.dev/frontend/base/layout/Layout.pod.js +2 -2
  12. package/assets/root.fullstackunicorn.dev/frontend/base/legals/LegalCard.js +1 -1
  13. package/assets/root.fullstackunicorn.dev/frontend/base/legals/LegalsCard.js +1 -1
  14. package/assets/root.fullstackunicorn.dev/frontend/base/resources/@use.js +15 -0
  15. package/assets/root.fullstackunicorn.dev/frontend/base/router/@use.js +2 -1
  16. package/assets/root.fullstackunicorn.dev/frontend/base/theme/ThemeCard.js +1 -1
  17. package/assets/root.fullstackunicorn.dev/frontend/config.style.js +21 -9
  18. package/assets/root.fullstackunicorn.dev/frontend/features/legal/Legal.js +1 -1
  19. package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Root.js +4 -8
  20. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Scrollable.js +7 -2
  21. package/assets/root.fullstackunicorn.dev/frontend/imports/core/Viewport.js +29 -0
  22. package/assets/root.fullstackunicorn.dev/frontend/imports/head/Head.js +16 -26
  23. package/assets/root.fullstackunicorn.dev/frontend/modals/cookies/cookies.api.js +25 -0
  24. package/assets/root.fullstackunicorn.dev/frontend/modals/cookies/cookies.js +88 -0
  25. package/assets/root.fullstackunicorn.dev/frontend/modals/countries/countries.api.js +22 -0
  26. package/assets/root.fullstackunicorn.dev/frontend/modals/countries/countries.js +58 -37
  27. package/assets/root.fullstackunicorn.dev/frontend/modals/languages/languages.api.js +23 -0
  28. package/assets/root.fullstackunicorn.dev/frontend/modals/languages/languages.js +81 -0
  29. package/assets/root.fullstackunicorn.dev/frontend/modules/base/Bottom.js +10 -0
  30. package/assets/root.fullstackunicorn.dev/frontend/{panels/layout → modules/base}/Bottom.pod.js +1 -4
  31. package/assets/root.fullstackunicorn.dev/frontend/modules/base/ComingSoon.js +7 -0
  32. package/assets/root.fullstackunicorn.dev/frontend/modules/base/ComingSoon.pod.js +17 -0
  33. package/assets/root.fullstackunicorn.dev/frontend/{panels/error → modules/base}/ErrorPage.js +4 -4
  34. package/assets/root.fullstackunicorn.dev/frontend/{panels/error → modules/base}/ErrorPage.pod.js +7 -7
  35. package/assets/root.fullstackunicorn.dev/frontend/{panels/layout → modules/base}/PageTitle.js +1 -1
  36. package/assets/root.fullstackunicorn.dev/frontend/{panels/layout → modules/base}/PageTitle.pod.js +4 -6
  37. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Account.js +9 -8
  38. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Account.pod.js +28 -18
  39. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Launcher.js +4 -4
  40. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Launcher.pod.js +10 -11
  41. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Linker.js +4 -4
  42. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Linker.pod.js +11 -12
  43. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Slider.js +8 -7
  44. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Slider.pod.js +14 -14
  45. package/assets/root.fullstackunicorn.dev/frontend/{panels/wrapper/fixed → modules/layout}/Wrapper.js +2 -2
  46. package/assets/root.fullstackunicorn.dev/frontend/{panels/wrapper/fixed → modules/layout}/Wrapper.pod.js +1 -1
  47. package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors/actions → modules/modals/select}/Actions.js +1 -1
  48. package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors → modules/modals}/select/SelectPage.js +2 -2
  49. package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders → modules/modals}/slider/SliderPage.js +2 -2
  50. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/page/PageScrollable.js +1 -1
  51. package/assets/root.fullstackunicorn.dev/frontend/modules/page/PageScrollable.pod.js +23 -0
  52. package/assets/root.fullstackunicorn.dev/frontend/modules/prose/@runs.js +52 -0
  53. package/assets/root.fullstackunicorn.dev/frontend/modules/prose/Prose.js +56 -0
  54. package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/prose/Prose.pod.js +2 -14
  55. package/assets/root.fullstackunicorn.dev/frontend/pages/@use.js +26 -11
  56. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Callout.api.js +9 -25
  57. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Callout.js +1 -1
  58. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legal.api.js +16 -24
  59. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legal.js +2 -2
  60. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legals.api.js +14 -8
  61. package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legals.js +5 -5
  62. package/assets/root.fullstackunicorn.dev/frontend/pages/root/User.api.js +8 -11
  63. package/assets/root.fullstackunicorn.dev/frontend/pages/root/User.js +1 -1
  64. package/assets/root.fullstackunicorn.dev/frontend/pages/{app → scope}/Checkout.js +1 -1
  65. package/assets/root.fullstackunicorn.dev/frontend/pages/scope/Home.abs.js +18 -0
  66. package/assets/root.fullstackunicorn.dev/frontend/pages/scope/Home.api.js +15 -0
  67. package/assets/root.fullstackunicorn.dev/frontend/pages/scope/Home.js +24 -0
  68. package/assets/root.fullstackunicorn.dev/frontend/panels/{slider/Slider.js → slideshows/Slideshow.js} +34 -20
  69. package/assets/root.fullstackunicorn.dev/frontend/panels/slideshows/Slideshow.map.js +27 -0
  70. package/assets/root.fullstackunicorn.dev/frontend/panels/slideshows/Slideshow.md +90 -0
  71. package/assets/root.fullstackunicorn.dev/frontend/panels/{slider/Slider.pod.js → slideshows/Slideshow.pod.js} +14 -28
  72. package/assets/root.fullstackunicorn.dev/frontend/preloader/@use.js +4 -5
  73. package/assets/root.fullstackunicorn.dev/frontend/root/errors.root.js +1 -1
  74. package/assets/root.fullstackunicorn.dev/frontend/root/modals.root.js +8 -8
  75. package/assets/root.fullstackunicorn.dev/frontend/root/pages.scope.js +2 -2
  76. package/assets/root.fullstackunicorn.dev/frontend/root/preload.scope.js +1 -1
  77. package/assets/root.fullstackunicorn.dev/package.json +1 -1
  78. package/assets/root.fullstackunicorn.dev/workspace/config/tabulars_data_content/config/import.json +4 -26
  79. package/assets/root.fullstackunicorn.dev/workspace/config/tabulars_data_content/objs/A01.metadata.meta.json +72 -79
  80. package/assets/root.fullstackunicorn.dev/workspace/config/tabulars_data_content/objs/C01.home.data.json +25 -5
  81. package/assets/root.fullstackunicorn.dev/workspace/volume/data/lookups/cookies/en-US.json +3 -19
  82. package/assets/root.fullstackunicorn.dev/workspace/volume/data/lookups/cookies/it-IT.json +6 -22
  83. package/assets/root.fullstackunicorn.dev/workspace/volume/data/root/user/en-US.json +4 -6
  84. package/assets/root.fullstackunicorn.dev/workspace/volume/data/root/user/it-IT.json +5 -19
  85. package/package.json +1 -1
  86. package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.abs.js +0 -11
  87. package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.api.js +0 -18
  88. package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.js +0 -23
  89. package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookCard.js +0 -58
  90. package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookCard.pod.js +0 -37
  91. package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookProse.js +0 -22
  92. package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Grid.js +0 -115
  93. package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Grid.pod.js +0 -65
  94. package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Item.js +0 -3
  95. package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Item.pod.js +0 -50
  96. package/assets/root.fullstackunicorn.dev/frontend/panels/layout/Bottom.js +0 -12
  97. package/assets/root.fullstackunicorn.dev/frontend/panels/page/PageScrollable.pod.js +0 -85
  98. package/assets/root.fullstackunicorn.dev/frontend/panels/prose/@use.js +0 -21
  99. package/assets/root.fullstackunicorn.dev/frontend/panels/prose/Prose.js +0 -84
  100. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/popup/PopupModal.js +0 -54
  101. package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/select/SelectModal.js +0 -52
  102. package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Buy.js +0 -19
  103. package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Buy.pod.js +0 -17
  104. package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Shopper.js +0 -39
  105. package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Shopper.pod.js +0 -187
  106. package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/slider/SliderModal.js +0 -39
  107. /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors/actions → modules/modals/select}/Actions.pod.js +0 -0
  108. /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors → modules/modals}/select/SelectItem.js +0 -0
  109. /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors → modules/modals}/select/SelectItem.pod.js +0 -0
  110. /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors → modules/modals}/select/SelectPage.pod.js +0 -0
  111. /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors/actions → modules/modals/select}/SelectPicked.js +0 -0
  112. /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors/actions → modules/modals/select}/SelectPicked.pod.js +0 -0
  113. /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders/actions → modules/modals/slider}/Actions.js +0 -0
  114. /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders/actions → modules/modals/slider}/Actions.pod.js +0 -0
  115. /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders → modules/modals}/slider/SliderItem.js +0 -0
  116. /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders → modules/modals}/slider/SliderItem.pod.js +0 -0
  117. /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders → modules/modals}/slider/SliderPage.pod.js +0 -0
  118. /package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/prose/@formatter.js +0 -0
  119. /package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/prose/Basic.js +0 -0
  120. /package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/prose/Basic.pod.js +0 -0
@@ -1,85 +0,0 @@
1
- // // // import { useStyle } from '#@/style/@use.js'
2
- // // // import { Scrollable } from '#@/imports/core/Scrollable.js'
3
- // // // import { Fader } from '#@/imports/animated/Fader.js'
4
-
5
- // // // export const PageScrollablePod = ({ children, type, scrollable = {} }) => {
6
-
7
- // // // const { s, c, f, t, F, B, S, I, H } = useStyle()
8
-
9
- // // // S.scrollable = [s.col_cX, s.XYc]
10
-
11
- // // // return (
12
- // // // <Scrollable classes={S.scrollable} isPage {...scrollable}>
13
- // // // <Fader classes={t.page[type]}>
14
- // // // {children}
15
- // // // </Fader>
16
- // // // </Scrollable>
17
- // // // )
18
- // // // }
19
-
20
- // // import { useStyle } from '#@/style/@use.js'
21
- // // import { Scrollable } from '#@/imports/core/Scrollable.js'
22
- // // import { Fader } from '#@/imports/animated/Fader.js'
23
-
24
- // // export const PageScrollablePod = ({ children, type, scrollRef, onScroll }) => {
25
-
26
- // // const { s, c, f, t, F, B, S, I, H } = useStyle()
27
-
28
- // // S.scrollable = [s.col_cX, s.XYc]
29
-
30
- // // return (
31
- // // <Scrollable classes={S.scrollable} isPage scrollRef={scrollRef} onScroll={onScroll}>
32
- // // <Fader classes={t.page[type]}>
33
- // // {children}
34
- // // </Fader>
35
- // // </Scrollable>
36
- // // )
37
- // // }
38
-
39
- // import { useStyle } from '#@/style/@use.js'
40
- // import { Scrollable } from '#@/imports/core/Scrollable.js'
41
- // import { Fader } from '#@/imports/animated/Page.js'
42
-
43
- // export const PageScrollablePod = ({ children, type, scrollRef, onScroll }) => {
44
-
45
- // const { s, c, f, t, F, B, S, I, H } = useStyle()
46
-
47
- // S.scrollable = [s.col_cX, s.XYc]
48
-
49
- // return (
50
- // <Scrollable
51
- // classes={S.scrollable}
52
- // scrollRef={scrollRef}
53
- // onScroll={onScroll}
54
- // >
55
- // <Fader classes={t.page[type]}>
56
- // {children}
57
- // </Fader>
58
- // </Scrollable>
59
- // )
60
- // }
61
-
62
- import { useStyle } from '#@/style/@use.js'
63
- import { Scrollable } from '#@/imports/core/Scrollable.js'
64
- import { Fader } from '#@/imports/animated/Fader.js'
65
-
66
- export const PageScrollablePod = ({ children, type, scrollRef, onScroll }) => {
67
-
68
- const { s, t } = useStyle()
69
-
70
- const S = {}
71
- S.scrollable = [s.col_cX, s.XYc]
72
-
73
- return (
74
- <Scrollable
75
- classes={S.scrollable}
76
- isPage
77
- scrollRef={scrollRef}
78
- onScroll={onScroll}
79
- >
80
- <Fader classes={t.page[type]}>
81
- {children}
82
- </Fader>
83
- </Scrollable>
84
- )
85
- }
@@ -1,21 +0,0 @@
1
- import { makeId } from '#@/imports/npm'
2
- import { useModals } from '#@/base/modals/@use'
3
-
4
- export const useGlossary = (index, value, { language, attributes={} }) => {
5
-
6
- const [modals, setModals] = useModals()
7
- const attribute = attributes[index]
8
-
9
- if (!language || !value || !attribute) return null
10
-
11
- const data = {}
12
- data.language = attribute.lang || language
13
- data.value = value
14
- data.def = attribute.def
15
-
16
- const onPress = () => {
17
- const id = makeId()
18
- setModals([...modals, { id, name:'glossary', data }])
19
- }
20
- return onPress
21
- }
@@ -1,84 +0,0 @@
1
- import { useGetStatics } from '#@/base/statics/@use.js'
2
- // import { CodeInline } from '#@/panels/code/Code'
3
- import { formatter } from '#@/panels/prose/@formatter.js'
4
- import { useGlossary } from '#@/panels/prose/@use.js'
5
- import { Url, Link } from '#@/panels/prose/Basic.js'
6
- import { ProsePod, StylePod, SpanPod, TokenPod } from './Prose.pod.js'
7
-
8
- export const Token = ({ index, value, glossary }) => {
9
-
10
- const statics = useGetStatics()
11
- const lookup = { logic: statics.logic.lookup, verbal: statics.verbal.lookup }
12
- const data = formatter.render(value, lookup)
13
-
14
- const render = {}
15
- render.text = <SpanPod {...data} />
16
- render.phrase = <SpanPod {...data} />
17
- // render.code = <CodeInline {...data}/>
18
- render.url = <Url {...data} />
19
- render.link = <Link {...data} />
20
-
21
- const onPress = useGlossary(index, data.text, glossary)
22
-
23
- return (
24
- <TokenPod onPress={onPress}>
25
- {render[data.render]}
26
- </TokenPod>
27
- )
28
- }
29
-
30
- export const Tokens = ({ sliced, glossary }) => {
31
- return sliced.map((token, index) => {
32
- return (
33
- <Token
34
- key={index}
35
- index={index}
36
- value={token[0]}
37
- glossary={glossary}
38
- />
39
- )
40
- })
41
- }
42
-
43
- export const Style = ({ block = 'p', style = {}, tokens }) => {
44
- return (
45
- <StylePod
46
- block={block}
47
- style={style}
48
- tokens={tokens}
49
- />
50
- )
51
- }
52
-
53
- export const Styles = ({ block = 'p', spans = [], tokens = [], glossary }) => {
54
- return spans.map((span, index) => {
55
- const sliced = tokens.slice(span.start, span.end + 1)
56
- return (
57
- <Style
58
- key={index}
59
- block={block}
60
- style={F3.obj.safe(span.style)}
61
- tokens={<Tokens {...{ sliced, glossary }} />}
62
- />
63
- )
64
- })
65
- }
66
-
67
- export const Prose = ({ lang = {}, isGlossary }) => {
68
-
69
- const attributes = F3.obj.safe(lang.attributes)
70
- const style = F3.obj.safe(lang.style || attributes.style)
71
- const spansRaw = F3.arr.safe(lang.spans || attributes.spans)
72
- const language = lang.language
73
-
74
- const tokens = formatter.tokenize(lang.value)
75
- const spans = formatter.spans(tokens, spansRaw)
76
- const glossary = isGlossary ? { language, attributes } : {}
77
-
78
- return (
79
- <ProsePod
80
- style={style}
81
- styles={<Styles block={style.block} spans={spans} tokens={tokens} glossary={glossary} />}
82
- />
83
- )
84
- }
@@ -1,54 +0,0 @@
1
- import { useState } from 'react'
2
- import { useGetStatics } from '#@/base/statics/@use.js'
3
- import { useModalClose } from '#@/base/modals/@use.js'
4
- import { Modal } from '#@/base/modals/Modal.js'
5
- import { SelectPage } from '#@/panels/selectors/select/SelectPage.js'
6
- import { Actions } from '#@/panels/selectors/actions/Actions.js'
7
-
8
- const PopupModal = ({ id, data }) => {
9
-
10
- const { value: current, onSetValue, itemLogic, itemVerbal, itemVisual } = data
11
-
12
- const [value, setValue] = useState(current)
13
-
14
- const statics = useGetStatics()
15
-
16
- const isDisabled = value.slug === current.slug
17
-
18
- const modalClose = useModalClose()
19
-
20
- const onSave = async () => {
21
- await onSetValue(value)
22
- modalClose(id)
23
- }
24
-
25
- const onRestore = () => setValue(current)
26
-
27
- return (
28
- <Modal
29
- id={id}
30
- type='popup'
31
- title={itemVerbal.title}
32
- svg={statics.visual.svg.edit}
33
- actions={
34
- <Actions
35
- compact
36
- selected={value}
37
- onSave={onSave}
38
- onRestore={onRestore}
39
- isDisabled={isDisabled}
40
- />
41
- }
42
- >
43
- <SelectPage
44
- itemLogic={itemLogic}
45
- itemVerbal={itemVerbal}
46
- itemVisual={itemVisual}
47
- selected={value}
48
- setValue={setValue}
49
- />
50
- </Modal>
51
- )
52
- }
53
-
54
- export const popup = (modal = {}) => <PopupModal key={modal.id} {...modal} />
@@ -1,52 +0,0 @@
1
- import { useState } from 'react'
2
- import { useGetStatics } from '#@/base/statics/@use.js'
3
- import { useModalClose } from '#@/base/modals/@use.js'
4
- import { Modal } from '#@/base/modals/Modal.js'
5
- import { SelectPage } from '#@/panels/selectors/select/SelectPage.js'
6
- import { Actions } from '#@/panels/selectors/actions/Actions.js'
7
-
8
- const SelectModal = ({ id, data }) => {
9
-
10
- const { value:current, onSetValue, itemLogic, itemVerbal, itemVisual } = data
11
-
12
- const [value, setValue] = useState(current)
13
-
14
- const statics = useGetStatics()
15
-
16
- const isDisabled = value.slug === current.slug
17
-
18
- const modalClose = useModalClose()
19
-
20
- const onSave = async () => {
21
- await onSetValue(value)
22
- modalClose(id)
23
- }
24
-
25
- const onRestore = () => setValue(current)
26
-
27
- return (
28
- <Modal
29
- id={id}
30
- title={itemVerbal.title}
31
- svg={statics.visual.svg.edit}
32
- actions={
33
- <Actions
34
- selected={value}
35
- onSave={onSave}
36
- onRestore={onRestore}
37
- isDisabled={isDisabled}
38
- />
39
- }
40
- >
41
- <SelectPage
42
- itemLogic={itemLogic}
43
- itemVerbal={itemVerbal}
44
- itemVisual={itemVisual}
45
- selected={value}
46
- setValue={setValue}
47
- />
48
- </Modal>
49
- )
50
- }
51
-
52
- export const selects = (modal={}) => <SelectModal key={modal.id} {...modal}/>
@@ -1,19 +0,0 @@
1
- import { useCheckoutStart } from '#@/base/checkout/@use.js'
2
- import { BuyPod } from '#@/panels/shopper/bookstore/Buy.pod.js'
3
-
4
- export const Buy = ({ product = {}, seller = {}, text, classes = [] }) => {
5
-
6
- const checkoutStart = useCheckoutStart()
7
-
8
- const onPress = async () => {
9
- await checkoutStart({ product, seller })
10
- }
11
-
12
- return (
13
- <BuyPod
14
- text={text}
15
- classes={classes}
16
- onPress={onPress}
17
- />
18
- )
19
- }
@@ -1,17 +0,0 @@
1
- import { useStyle } from '#@/style/@use.js'
2
- import { Textline } from '#@/imports/core/Text.js'
3
- import { Pressable } from '#@/imports/core/Pressable.js'
4
-
5
- export const BuyPod = ({ text, onPress, classes = [] }) => {
6
-
7
- const { s, c, f, S } = useStyle()
8
-
9
- S.button = [s.row_cXcY, s.X, s.Y64, s.radius12, s.border1, c.base_CK, c.line_NN_B400, ...classes]
10
- S.text = [s.fs20, s.lh32, s.fw700, c.item_NN_B400]
11
-
12
- return (
13
- <Pressable classes={S.button} onPress={onPress}>
14
- <Textline classes={S.text} font={f.f1} text={text} />
15
- </Pressable>
16
- )
17
- }
@@ -1,39 +0,0 @@
1
- import { useGetStatics } from '#@/base/statics/@use.js'
2
- import { Buy } from '#@/panels/shopper/bookstore/Buy.js'
3
- import { ShopperPod } from '#@/panels/shopper/bookstore/Shopper.pod.js'
4
-
5
-
6
- export const Shopper = ({
7
- data = {},
8
- labels = {},
9
- settings = {},
10
- product = {},
11
- seller = {},
12
- onPressQuantity,
13
- onPressLanguage
14
- }) => {
15
-
16
- const statics = useGetStatics()
17
-
18
- const svg = {}
19
- svg.edit = statics.visual.svg.editInline
20
- svg.checkbox = statics.visual.svg.checkboxTrueInline
21
-
22
- return (
23
- <ShopperPod
24
- data={data}
25
- labels={labels}
26
- settings={settings}
27
- product={product}
28
- svg={svg}
29
- onPressQuantity={onPressQuantity}
30
- onPressLanguage={onPressLanguage}
31
- >
32
- <Buy
33
- text={labels.button}
34
- product={product}
35
- seller={seller}
36
- />
37
- </ShopperPod>
38
- )
39
- }
@@ -1,187 +0,0 @@
1
- import { useStyle } from '#@/style/@use.js'
2
- import { View } from '#@/imports/core/View.js'
3
- import { Text } from '#@/imports/core/Text.js'
4
- import { Img } from '#@/imports/core/Img.js'
5
- import { Icon } from '#@/modules/core/Icon.js'
6
- import { Pressable } from '#@/imports/core/Pressable.js'
7
-
8
- const PicturePod = ({ picture, settings = {} }) => {
9
-
10
- const { s, S, I } = useStyle()
11
-
12
- const maxWidth = settings.pictureMaxWidth ?? 250
13
-
14
- S.box = [s.radius12, s.overflowXYh]
15
- S.picture = [s.X]
16
-
17
- I.box = {
18
- width: '100%',
19
- maxWidth: `${maxWidth}px`,
20
- }
21
-
22
- return (
23
- <View classes={S.box} inline={I.box}>
24
- <Img classes={S.picture} picture={picture} />
25
- </View>
26
- )
27
- }
28
-
29
- const ShopperOptionPod = ({ label, value, svg, onPress }) => {
30
-
31
- const { s, c, f, t, F, B, S, I, H } = useStyle()
32
-
33
- F.label = [s.fs16, s.lh24, s.fw700, c.item_NN_B400]
34
- F.value = [s.fs16, s.lh24, s.fw500, c.item_NN_B400]
35
-
36
- S.block = [s.col, s.paddingY8]
37
- S.action = [s.row_sXcY, s.X]
38
- S.separator = [s.row_cY, s.Xr, s.paddingX8]
39
- S.line = [s.Y1, s.Xr, c.base_NN_W500]
40
- S.label = [...F.label]
41
- S.value = [...F.value, s.marginE8]
42
- S.icon = [s.XY14, c.item_NN_B400]
43
-
44
- return (
45
- <View classes={S.block}>
46
- <Pressable classes={S.action} onPress={onPress}>
47
- <Text classes={S.label} font={f.f1} text={label} />
48
- <View classes={S.separator}>
49
- <View classes={S.line}></View>
50
- </View>
51
- <Text classes={S.value} font={f.f1} text={value} />
52
- <Icon classes={S.icon} svg={svg} />
53
- </Pressable>
54
- </View>
55
- )
56
- }
57
-
58
- const ShopperShippingPod = ({ label, value, svg }) => {
59
-
60
- const { s, c, f, t, F, B, S, I, H } = useStyle()
61
-
62
- F.label = [s.fs16, s.lh24, s.fw700, c.item_C4_B200]
63
- F.value = [s.fs16, s.lh24, s.fw500, c.item_C4_B200]
64
-
65
- S.block = [s.col, s.paddingY8]
66
- S.action = [s.row_sXcY, s.X]
67
- S.separator = [s.row_cY, s.Xr, s.paddingX8]
68
- S.line = [s.Y1, s.Xr, c.base_NN_W500]
69
- S.label = [...F.label]
70
- S.value = [...F.value]
71
- S.icon = [s.XY14, c.item_C4_B200]
72
-
73
- return (
74
- <View classes={S.block}>
75
- <View classes={S.action}>
76
- <Text classes={S.label} font={f.f1} text={label} />
77
- <View classes={S.separator}>
78
- <View classes={S.line}></View>
79
- </View>
80
- <Text classes={S.value} font={f.f1} text={value} />
81
- {/* <Icon classes={S.icon} svg={svg} /> */}
82
- </View>
83
- </View>
84
- )
85
- }
86
-
87
- export const ShopperPod = ({
88
- data = {},
89
- labels = {},
90
- settings = {},
91
- product = {},
92
- svg = {},
93
- onPressQuantity,
94
- onPressLanguage,
95
- children
96
- }) => {
97
-
98
- const { s, c, f, t, F, B, S, I, H } = useStyle()
99
-
100
- F.price = [s.fs28, s.lh36, s.fw700, c.item_C1]
101
- F.currency = [s.fs28, s.lh36, s.fw700, c.item_NN_W400]
102
- F.priceInfo = [s.fs16, s.lh24, s.fw400, s.fdI, c.item_NN_B400]
103
-
104
- S.wrap = [s.X]
105
- S.box = [s.row_sXsY, s.X, s.padding24, s.radius24, s.overflowXYh, s.border1, c.base_WW, c.line_NN_W600]
106
- S.pictureWrap = [s.col_sXcY, s.XYr]
107
- // S.spacer = [s.X32]
108
- S.content = [s.col, s.XYr]
109
- S.buyBlock = [s.col_eX]
110
- S.buyRow = [s.row_eXeY]
111
- S.price = [...F.price]
112
- S.currency = [...F.currency, s.marginS8]
113
- S.priceInfo = [...F.priceInfo]
114
-
115
- S.separator = [s.X32, s.Yr]
116
-
117
- S.options = [s.col, s.marginY8]
118
- S.quantityBlock = [s.col]
119
- S.languageBlock = [s.col]
120
- S.shippingBlock = [s.col]
121
- S.stockBlock = [s.col]
122
- S.spacerY = [s.Yc]
123
-
124
- return (
125
- <View classes={S.wrap}>
126
- <View classes={S.box}>
127
- <View classes={S.pictureWrap}>
128
- <PicturePod picture={data.picture} settings={settings} />
129
- </View>
130
-
131
- <View classes={S.separator}>
132
- <View classes={S.line}></View>
133
- </View>
134
-
135
- <View classes={S.content}>
136
-
137
- <View classes={S.buyBlock}>
138
- <View classes={S.buyRow}>
139
- <Text classes={S.price} font={f.f1} text={product.price} />
140
- <Text classes={S.currency} font={f.f1} text={product.currency} />
141
- </View>
142
- <Text classes={S.priceInfo} font={f.f1} text={data.stockDescription} />
143
- </View>
144
-
145
- <View classes={S.options}>
146
- <View classes={S.quantityBlock}>
147
- <ShopperOptionPod
148
- label={labels.quantity}
149
- value={data.quantity}
150
- svg={svg.edit}
151
- onPress={onPressQuantity}
152
- />
153
- </View>
154
-
155
- <View classes={S.languageBlock}>
156
- <ShopperOptionPod
157
- label={labels.language}
158
- value={data.language}
159
- svg={svg.edit}
160
- onPress={onPressLanguage}
161
- />
162
- </View>
163
-
164
- <View classes={S.shippingBlock}>
165
- <ShopperShippingPod
166
- label='Shipping'
167
- value='Free'
168
- svg={svg.checkbox}
169
- />
170
- </View>
171
-
172
- <View classes={S.stockBlock}>
173
- <ShopperShippingPod
174
- label='Availability'
175
- value='In Stock'
176
- svg={svg.checkbox}
177
- />
178
- </View>
179
-
180
- </View>
181
- <View classes={S.spacerY}></View>
182
- {children}
183
- </View>
184
- </View>
185
- </View>
186
- )
187
- }
@@ -1,39 +0,0 @@
1
- import { Modal } from '#@/base/modals/Modal'
2
- import { TextButton } from '#@/modules/buttons/TextButton'
3
- import { SliderPage } from '#@/panels/sliders/slider/SliderPage'
4
- import { Actions } from '#@/panels/sliders/actions/Actions'
5
-
6
- const SliderModal = ({ id, data }) => {
7
-
8
- const { isCloseDisabled, isLanguageButton, svg, onSetValue=()=>{},
9
- formResult, itemVerbal, itemLogic, itemVisual } = data
10
-
11
- return (
12
- <Modal
13
- id={id}
14
- isCloseDisabled={isCloseDisabled}
15
- title={itemVerbal.title}
16
- svg={svg}
17
- actions={
18
- <Actions isLanguageButton={isLanguageButton}>
19
- <TextButton
20
- text={itemVerbal.action}
21
- type='fill'
22
- color='C1'
23
- onPress={onSetValue}
24
- />
25
- </Actions>
26
- }
27
- >
28
- <SliderPage
29
- formResult={formResult}
30
- sliderLogic={itemLogic}
31
- sliderVerbal={itemVerbal.data}
32
- sliderVisual={itemVisual}
33
- description={itemVerbal.description}
34
- />
35
- </Modal>
36
- )
37
- }
38
-
39
- export const sliders = (modal={}) => <SliderModal key={modal.id} {...modal}/>