on main help sign in
getting search scry basically working
04e487bJohn Hyde
README.md+1−1
@@ -36,7 +36,7 @@ Regardless of what you run to develop, Vite will hot-reload code changes as you
36 2. From the distribution ship's dojo: `:treaty|unpublish %astrolabe`
36 2. From the distribution ship's dojo: `:treaty|unpublish %astrolabe`
37 2. From middleman or distribution ship's dojo: `|commit %astrolabe`
37 2. From middleman or distribution ship's dojo: `|commit %astrolabe`
38 3. (if using a comet as a middleman) `|public %astrolabe`
38 3. (if using a comet as a middleman) `|public %astrolabe`
39− 4. (if using a comet as a middleman) from the actual distribution ship: `|install ~comet-name %astrolabe`
39+ 4. (if using a comet as a middleman) from the actual distribution ship: `|install ~comet-name %astrolabe` or `|resume %astrolabe`
40 5. (if using a comet as a middleman) from the actual distribution ship: `|pause %astrolabe`
40 5. (if using a comet as a middleman) from the actual distribution ship: `|pause %astrolabe`
414. Build the UI with `npm run build` in the `ui` directory which will bundle all the code and assets into the `dist/` folder.
414. Build the UI with `npm run build` in the `ui` directory which will bundle all the code and assets into the `dist/` folder.
425. Upload the `dist/` folder as a glob to your distribution ship. Example url: https://distribution.urbit-ship.com/docket/upload
425. Upload the `dist/` folder as a glob to your distribution ship. Example url: https://distribution.urbit-ship.com/docket/upload
desk/app/astrolabe.hoon+111−33
@@ -1,20 +1,25 @@
1/- *astrolabe
1/- *astrolabe
2−/+ naive, default-agent, dbug, agentio
2+/+ *astrolabe, naive, default-agent, dbug, agentio
3/$ udon-to-docu %udon %docu
3/$ udon-to-docu %udon %docu
4|%
4|%
5+$ versioned-state
5+$ versioned-state
6 $% state-0
6 $% state-0
7+ state-1
7 ==
8 ==
8−+$ state-0
9++$ state-0
9 $: %0
10 $: %0
10 spa=spawned
11 spa=spawned
11 ==
12 ==
13++$ state-1
14+ $: %1
15+ =opoints
16+ ==
12::
17::
13+$ spawned (jug ship ship)
18+$ spawned (jug ship ship)
14+$ card card:agent:gall
19+$ card card:agent:gall
15--
20--
16%- agent:dbug
21%- agent:dbug
17−=| state-0
22+=| state-1
18=* state -
23=* state -
19^- agent:gall
24^- agent:gall
20=<
25=<
@@ -26,16 +31,18 @@
26++ on-init
31++ on-init
27 ^- (quip card _this)
32 ^- (quip card _this)
28 :_ this
33 :_ this
29− [%pass /azimuth-events %agent [our.bowl %azimuth] %watch /event]~
34+ [az-events-card:hc]~
30::
35::
31++ on-save !>(state)
36++ on-save !>(state)
32++ on-load
37++ on-load
33 |= old-state=vase
38 |= old-state=vase
34 ^- (quip card _this)
39 ^- (quip card _this)
35 =/ old !<(versioned-state old-state)
40 =/ old !<(versioned-state old-state)
36− ?- -.old
41+ =^ cards-0 old
42+ ?. ?=(%0 -.old) `old
43+ (on-naive-state:hc get-nas:hc)
44+ ?> ?=(%1 -.old)
37− %0 `this(state old)
45+ [cards-0 this(state old)]
38− ==
39++ on-poke on-poke:def
46++ on-poke on-poke:def
40++ on-watch on-watch:def
47++ on-watch on-watch:def
41++ on-leave on-leave:def
48++ on-leave on-leave:def
@@ -46,15 +53,18 @@
46 ?+ path (on-peek:def path)
53 ?+ path (on-peek:def path)
47 [%x %point @ ~]
54 [%x %point @ ~]
48 ``astrolabe-point+!>((get-point:hc &3.path))
55 ``astrolabe-point+!>((get-point:hc &3.path))
56+ [%x %point @ %spawned ~]
57+ =/ =ship `@p`(slav %p &3.path)
58+ ``astrolabe-point-set+!>((get-spawned-points:hc ship))
59+ [%x %search @ ~]
60+ =/ =search-text (trip &3.path)
61+ ``astrolabe-point-set+!>((search-opoints:hc search-text))
49 [%x %doc ^]
62 [%x %doc ^]
50 =/ doc-path=^path t.t.path
63 =/ doc-path=^path t.t.path
51 =/ doc (read-doc:hc doc-path)
64 =/ doc (read-doc:hc doc-path)
52 ?~ doc
65 ?~ doc
53 `~
66 `~
54 ``json+!>(s+u.doc)
67 ``json+!>(s+u.doc)
55− [%x %spawned @ ~]
56− =/ =ship `@p`(slav %p &3.path)
57− ``astrolabe-point-set+!>((~(get ju spa) ship))
58 ==
68 ==
59++ on-agent
69++ on-agent
60 |= [=wire =sign:agent:gall]
70 |= [=wire =sign:agent:gall]
@@ -97,35 +107,34 @@
97++ on-fail on-fail:def
107++ on-fail on-fail:def
98--
108--
99::
109::
110+:: Helper Core
100|_ =bowl:gall
111|_ =bowl:gall
101++ scrio ~(scry agentio bowl)
112++ scrio ~(scry agentio bowl)
113+++ az-events-card [%pass /azimuth-events %agent [our.bowl %azimuth] %watch /event]
114+++ get-nas .^(^state:naive %gx (scrio %azimuth /nas/noun))
102−++ put-in-spa
115+++ put-in-opoints
103 |= =ship
116 |= =ship
104− ^- _spa
117+ ^- _opoints
105− =/ parent=^ship (^sein:title ship)
118+ (put:ors opoints (to-q ship) ~)
106− ?: =(parent ship)
107− spa
108− (~(put ju spa) parent ship)
109++ on-naive-state
119++ on-naive-state
110 |= nas=^state:naive
120 |= nas=^state:naive
111 ^- (quip card _state)
121 ^- (quip card _state)
112− =+ points=points.nas :: =points, eh?
122+ =+ points=points.nas :: =points, eh?
113− =. spa
123+ =. opoints
114 |-
124 |-
115− ^- _spa
125+ ^- _opoints
116− ?~ points spa
126+ ?~ points opoints
117 =/ =ship -.n.points
127 =/ =ship -.n.points
118− :: traverse tree of points and add @ps to spa with ^sein, you know
128+ :: traverse tree of points and add @ps to opoints with ^sein, you know
119− =. spa (put-in-spa ship)
129+ =. opoints (put-in-opoints ship)
120− $(points l.points, spa $(points r.points))
130+ $(points l.points, opoints $(points r.points))
121 `state
131 `state
122::
132::
123++ on-naive-diff
133++ on-naive-diff
124 |= =diff:naive
134 |= =diff:naive
125 ^- (quip card _state)
135 ^- (quip card _state)
126− :: =? spa (is-spawn-tx diff)
127− =? spa ?=([%tx [* * * %spawn ship *] *] diff)
136+ =? opoints ?=([%tx [* * * %spawn ship *] *] diff)
128− %- put-in-spa
137+ %- put-in-opoints
129 ship.tx.raw-tx.diff
138 ship.tx.raw-tx.diff
130 `state
139 `state
131::
140::
@@ -149,12 +158,81 @@
149 |= ship-name=term
158 |= ship-name=term
150 .^(unpoint %gx (scrio %azimuth /point/[ship-name]/noun))
159 .^(unpoint %gx (scrio %azimuth /point/[ship-name]/noun))
151::
160::
161+++ run-spawned-points
162+ |* [agg=mold targ=ship]
163+ |= f=$-([agg ship] agg)
164+ ^- agg
165+ =/ nas get-nas
166+ =+ points=points.nas
167+ =| agg=agg
168+ |-
169+ ^- _agg
170+ ?~ points
171+ agg
172+ =* n -.n.points
173+ =/ gt=? (por:naive targ n)
174+ ?: |(=(targ n) !gt)
175+ $(points r.points)
176+ =? agg =(targ (end (add 2 (xeb (met 3 targ))) n))
177+ $(points r.points)
178+ =? agg =(targ (^sein:title n))
179+ (f agg n)
180+ $(points l.points)
181+++ get-spawned-points
182+ |= targ=ship
183+ %- (run-spawned-points (list ship) targ)
184+ |= [agg=(list ship) spawn=ship]
185+ [spawn agg]
186+::
152++ spa-count
187++ spa-count
153− |= =ship
188+ |= targ=ship
154− ^- @ud
189+ %- (run-spawned-points @ud targ)
155− %~ wyt
190+ |= [agg=@ud spawn=ship]
156− in
191+ +(agg)
192+::
193+++ run-wildcard-search
194+ |* [agg=mold search=search-full =page-info]
195+ |= f=$-([agg @q] agg)
196+ ^- agg
197+ =/ s-syls search-syls.search
198+ ~& s-syls
199+ =/ s-opts search-opts.search
200+ =+ =agg
201+ =+ [llb=.~zod rrb=`@q`(sub (bex 32) 1)]
202+ =| agg-count=@
203+ |-
204+ ^- _agg
205+ ?~ opoints
206+ :: ~& "nothing here, going up"
207+ agg
208+ =* n=@q `@`-.n.opoints
209+ =/ lrb=@q ?: (gth n 0) (sub-d n 1) .~zod
210+ =/ rlb=@q (add-d n 1)
211+ =/ left-view (range-contains-search llb lrb s-opts)
212+ :: ~& "arrived at {<n>}"
213+ :: ~& "left side: {<?:(contains.left-view 'Y' 'N')>} {<llb>} - {<lrb>} contains {<s-opts>}"
214+ =/ right-view (range-contains-search rlb rrb s-opts)
215+ =? agg contains.left-view
216+ $(opoints l.opoints, rrb lrb, s-opts opts.left-view)
217+ =? agg (matches-search s-syls n)
218+ =/ fits (fits-on-page agg-count page-info)
219+ =. agg-count +(agg-count)
220+ ?: fits (f agg n) agg
221+ :: ~& "right side: {<?:(contains.right-view 'Y' 'N')>} {<rlb>} - {<rrb>} contains {<s-opts>}"
222+ =? agg contains.right-view
223+ $(opoints r.opoints, llb rlb, s-opts opts.right-view)
224+ agg
225+::
226+++ search-opoints
227+ |= =search-text
157− (~(get ju spa) ship)
228+ ^- (list ship)
229+ =/ =search-full (search-text-to-search-full search-text)
230+ =/ results
231+ %- (run-wildcard-search (list @q) search-full *page-info)
232+ |= [agg=(list @q) result=@q]
233+ [result agg]
234+ %- flop
235+ (turn results to-p)
158::
236::
159++ sponsor-chain
237++ sponsor-chain
160 |= =unpoint
238 |= =unpoint
@@ -162,14 +240,14 @@
162 ?~ unpoint ~
240 ?~ unpoint ~
163 =/ sponsor sponsor.net.u.unpoint
241 =/ sponsor sponsor.net.u.unpoint
164 ?. has.sponsor ~
242 ?. has.sponsor ~
165− [who.sponsor ~] :: todo: lookup parent
243+ [who.sponsor ~] :: todo: lookup parent
166::
244::
167++ probable-dominion
245++ probable-dominion
168 |= =unpoint
246 |= =unpoint
169 ^- dominion:naive
247 ^- dominion:naive
170 ?^ unpoint
248 ?^ unpoint
171 dominion.u.unpoint
249 dominion.u.unpoint
172− %l1 :: todo: lookup parent
250+ %l1 :: todo: lookup parent
173::
251::
174++ read-doc
252++ read-doc
175 |= =path
253 |= =path
desk/desk.docket-0+2−2
@@ -2,9 +2,9 @@
2 info+'Your guide to the Urbit constellations'
2 info+'Your guide to the Urbit constellations'
3 color+0x1f.243c
3 color+0x1f.243c
4 image+'https://raw.githubusercontent.com/johnhyde/astrolabe/main/ui/src/assets/astrolabe-tile.svg'
4 image+'https://raw.githubusercontent.com/johnhyde/astrolabe/main/ui/src/assets/astrolabe-tile.svg'
5− glob-ames+[~dister-midlev-mindyr 0v0]
5+ glob-ames+[~zod 0v0]
6 base+'astrolabe'
6 base+'astrolabe'
7− version+[0 0 2]
7+ version+[0 0 4]
8 website+'https://github.com/johnhyde/astrolabe'
8 website+'https://github.com/johnhyde/astrolabe'
9 license+'MIT'
9 license+'MIT'
10==
10==
desk/lib/astrolabe.hoon+185−4
@@ -2,6 +2,188 @@
2=< [sur .]
2=< [sur .]
3=, sur
3=, sur
4|%
4|%
5+++ search-text-chars "*abcdefghilmnoprstuvwxyz"
6+++ sanitize-search-text
7+ |= =search-text
8+ ^- tape
9+ %+ skim search-text
10+ |= a=@t
11+ !=(~ (find [a]~ search-text-chars))
12+++ to-q fein:ob
13+++ to-p fynd:ob
14+++ rev-q
15+ |= a=@
16+ (rev 3 4 a)
17+++ add-d
18+ |= [a=@ b=@]
19+ (rev-q (add (rev-q a) b))
20+++ sub-d
21+ |= [a=@ b=@]
22+ (rev-q (sub (rev-q a) b))
23+++ rev-f
24+ |* [f=$-([@ @] *) a=@ b=@]
25+ (f (rev-q a) (rev-q b))
26+++ rpor :: reversed parent order
27+ |= [a=@ b=@]
28+ ^- ?
29+ (rev-f lte a b)
30+::
31++$ opoints (tree [ship @]) :: ordered points
32+++ ors ((on ship @) rpor)
33++$ pfsf ?(%prefix %suffix)
34++$ syl [=tape =pfsf]
35++$ search-text tape
36++$ search-syls (list syl) :: in reverse order, e.g. ["net" "pal" "pel" "sam" ~]. length 1-4
37++$ search-syl-opts (list @q)
38++$ search-opts (list search-syl-opts) :: must have length 4
39++$ search-full
40+ $:
41+ =search-syls
42+ =search-opts
43+ ==
44++$ page-info [size=_100 page=_0]
45+++ fits-on-page
46+ |= [i=@ =page-info]
47+ ^- ?
48+ =, page-info
49+ ?: =(0 size) %.y
50+ =/ page-start (mul size page)
51+ =/ page-end (add page-start size)
52+ &((gte i page-start) (lth i page-end))
53+++ search-syl-to-search-syl-opts
54+ |= search=syl
55+ ^- search-syl-opts
56+ =/ syls=(list @t)
57+ %+ rip [0 24] :: jet doesn't support rip [3 3] which is equivalent
58+ ?: =(%prefix pfsf.search) sis:po dex:po
59+ ~! syls
60+ ~! search
61+ %+ murn syls
62+ |= cand=@t
63+ ?. (tape-matches tape.search (trip cand)) ~
64+ %- ?: =(%prefix pfsf.search) ins:po ind:po
65+ cand
66+++ search-text-to-search-syls
67+ |= search-text=tape
68+ ^- search-syls
69+ =. search-text (sanitize-search-text search-text)
70+ =/ syl-tapes
71+ %+ turn
72+ %- flop
73+ (rip [0 24] (crip search-text)) :: jet doesn't support rip [3 3] which is equivalent
74+ trip
75+ =| count=@
76+ |-
77+ ^- search-syls
78+ =/ =pfsf
79+ ?: =(0 (mod count 2)) %suffix %prefix
80+ ?~ syl-tapes ~
81+ :- [i.syl-tapes pfsf]
82+ $(syl-tapes t.syl-tapes, count +(count))
83+
84+++ search-syls-to-search-opts
85+ |= =search-syls
86+ ^- search-opts
87+ =/ opts
88+ %+ turn
89+ search-syls
90+ |= =syl
91+ (search-syl-to-search-syl-opts syl)
92+ |-
93+ ?: (gte (lent opts) 4)
94+ opts
95+ $(opts (snoc (search-opts opts) (search-syl-opts ~[.~zod])))
96+++ search-text-to-search-full
97+ |= search-text=tape
98+ ^- search-full
99+ =/ =search-syls (search-text-to-search-syls search-text)
100+ :- search-syls
101+ (search-syls-to-search-opts search-syls)
102+++ tape-matches
103+ |= [search=tape cand=tape]
104+ ^- ?
105+ |-
106+ ?~ search %.y
107+ ?~ cand %.n
108+ ?: |(=(i.search i.cand) =(i.search '*'))
109+ $(search t.search, cand t.cand)
110+ %.n
111+++ syl-matches
112+ |= [=syl cand=@]
113+ :: todo check cand < 256
114+ =/ tof ?: =(%prefix pfsf.syl) tos:po tod:po
115+ (tape-matches tape.syl (trip (tof cand)))
116+++ matches-search
117+ |= [search=search-syls cand-atom=@]
118+ =/ cand (rip 3 cand-atom)
119+ =? cand =(cand ~)
120+ (limo ~[0])
121+ |-
122+ ^- ?
123+ ?~ search =(~ cand)
124+ ?~ cand %.n
125+ ?: (syl-matches i.search i.cand)
126+ $(search t.search, cand t.cand)
127+ %.n
128+::
129+++ opts-in-range
130+ |= [lb=@ rb=@ opts=(list @)]
131+ ^- search-syl-opts
132+ %+ skim
133+ opts
134+ |= a=@
135+ &((lte lb a) (gte rb a))
136+::
137+++ range-contains-search
138+ |= [lb=@ rb=@ search=search-opts] :: includes lb and rb - [lb, rb]
139+ ^- [opts=search-opts contains=?]
140+ ?~ search `%.y
141+ =/ s-0 i.search
142+ ?~ s-0 `%.n
143+ =/ lb-0 (end 3 lb)
144+ =/ rb-0 (end 3 rb)
145+ =/ cand-0 (opts-in-range lb-0 rb-0 s-0)
146+ =/ cand-0-len (lent cand-0)
147+ :: ~& "lb: {<`@q`lb>} rb: {<`@q`rb>} cand-len: {<cand-0-len>}"
148+ ?: =(0 cand-0-len) `%.n
149+ =. i.search cand-0
150+ :_
151+ ?: (gte cand-0-len 3) %.y :: entire valid galaxy is bounded
152+ =/ lb-clean =(0 (rsh 3 lb)) :: lb is galaxy
153+ =/ rb-clean =(0 (rsh 3 (add-d rb 1))) :: rb is last planet in galaxy
154+ ?: &(=(2 cand-0-len) |(lb-clean rb-clean))
155+ %.y :: two galaxies, and one is right on the edge (fully bounded)
156+ |-
157+ ^- ?
158+ ?~ cand-0 %.n
159+ =/ crb (add .~fipfes-fipzod i.cand-0)
160+ =/ slb (rev-q (rev-f max lb i.cand-0))
161+ =/ srb (rev-q (rev-f min rb crb))
162+ =/ sub-contains +:^$(lb (rsh 3 slb), rb (rsh 3 srb), search t.search)
163+ ?: sub-contains %.y
164+ $(cand-0 t.cand-0)
165+ search
166+ :: check that first byte of lb and rb contain something that matches first of search
167+ :: if contains full matching galaxy, return true
168+ :: if contains no more than part of any galaxy, check those galaxies (1 or 2)
169+ ::
170+::
171+++ palor :: @p alphabetical order
172+ ~/ %por
173+ |= [a=@p b=@p]
174+ ^- ?
175+ ?: =(a b) &
176+ =| i=@
177+ |-
178+ ?: =(i 2)
179+ :: second two bytes
180+ (lte a b)
181+ :: first two bytes
182+ =+ [c=(end 3 a) d=(end 3 b)]
183+ ?: =(c d)
184+ $(a (rsh 3 a), b (rsh 3 b), i +(i))
185+ (lth c d)
186+::
5++ nu :: parse number as hex
187++ nu :: parse number as hex
6 |= jon=json
188 |= jon=json
7 ?> ?=([%s *] jon)
189 ?> ?=([%s *] jon)
@@ -11,13 +193,12 @@
11 =, enjs:format
193 =, enjs:format
12 |%
194 |%
13 ++ point-set
195 ++ point-set
14− |= points=(set ^ship)
196+ |= points=(list ^ship)
15 ^- json
197 ^- json
16− =+ point-list=~(tap in points)
17− %+ frond %spawned
198+ %+ frond %points
18 :- %a
199 :- %a
19 %+ turn
200 %+ turn
20− point-list
201+ points
21 |= who=^ship
202 |= who=^ship
22 (ship who)
203 (ship who)
23 ++ point
204 ++ point
desk/mar/astrolabe/point-set.hoon+2−2
@@ -1,8 +1,8 @@
1/+ *astrolabe
1/+ *astrolabe
2−|_ points=(set ship)
2+|_ points=(list ship)
3++ grab
3++ grab
4 |%
4 |%
5− ++ noun (set ship)
5+ ++ noun (list ship)
6 --
6 --
7++ grow
7++ grow
8 |%
8 |%
desk/sys.kelvin+1−1
@@ -1 +1 @@
1−[%zuse 419]
1+[%zuse 418]
ui/src/components/ShipView.svelte+3−3
@@ -93,7 +93,7 @@
93 $: {
93 $: {
94 rawSpawnedPoints = null;
94 rawSpawnedPoints = null;
95 if (canSpawnPoints) {
95 if (canSpawnPoints) {
96− rawSpawnedPointsPromise = api.scry<any>({ app: 'astrolabe', path: `/spawned/${patp}` });
96+ rawSpawnedPointsPromise = api.scry<any>({ app: 'astrolabe', path: `/point/${patp}/spawned` });
97 rawSpawnedPointsPromise.then((info) => {
97 rawSpawnedPointsPromise.then((info) => {
98 rawSpawnedPoints = info;
98 rawSpawnedPoints = info;
99 }).catch((error) => {
99 }).catch((error) => {
@@ -103,8 +103,8 @@
103 }
103 }
104 $: {
104 $: {
105 spawnedPoints = [];
105 spawnedPoints = [];
106− if (rawSpawnedPoints?.spawned) {
106+ if (rawSpawnedPoints?.points) {
107− spawnedPoints = rawSpawnedPoints?.spawned.map(patp => normalizeId(patp));
107+ spawnedPoints = rawSpawnedPoints?.points.map(patp => normalizeId(patp));
108 }
108 }
109 }
109 }
110 $: {
110 $: {
ui/src/styles/tailwind-output.css+26−26
@@ -537,15 +537,15 @@ Ensure the default browser behavior of the `hidden` attribute.
537.mt-3 {
537.mt-3 {
538 margin-top: 0.75rem;
538 margin-top: 0.75rem;
539}
539}
540−.-mt-0\.5 {
541− margin-top: -0.125rem;
542−}
543.mt-10 {
540.mt-10 {
544 margin-top: 2.5rem;
541 margin-top: 2.5rem;
545}
542}
546.mt-20 {
543.mt-20 {
547 margin-top: 5rem;
544 margin-top: 5rem;
548}
545}
546+.-mt-0\.5 {
547+ margin-top: -0.125rem;
548+}
549.block {
549.block {
550 display: block;
550 display: block;
551}
551}
@@ -618,6 +618,9 @@ Ensure the default browser behavior of the `hidden` attribute.
618.max-w-md {
618.max-w-md {
619 max-width: 28rem;
619 max-width: 28rem;
620}
620}
621+.max-w-xs {
622+ max-width: 20rem;
623+}
621.max-w-\[256px\] {
624.max-w-\[256px\] {
622 max-width: 256px;
625 max-width: 256px;
623}
626}
@@ -630,9 +633,6 @@ Ensure the default browser behavior of the `hidden` attribute.
630.max-w-2xl {
633.max-w-2xl {
631 max-width: 42rem;
634 max-width: 42rem;
632}
635}
633−.max-w-xs {
634− max-width: 20rem;
635−}
636.flex-shrink-0 {
636.flex-shrink-0 {
637 flex-shrink: 0;
637 flex-shrink: 0;
638}
638}
@@ -686,15 +686,15 @@ Ensure the default browser behavior of the `hidden` attribute.
686.justify-center {
686.justify-center {
687 justify-content: center;
687 justify-content: center;
688}
688}
689+.gap-5 {
690+ gap: 1.25rem;
691+}
689.gap-1\.5 {
692.gap-1\.5 {
690 gap: 0.375rem;
693 gap: 0.375rem;
691}
694}
692.gap-1 {
695.gap-1 {
693 gap: 0.25rem;
696 gap: 0.25rem;
694}
697}
695−.gap-5 {
696− gap: 1.25rem;
697−}
698.space-y-4 > :not([hidden]) ~ :not([hidden]) {
698.space-y-4 > :not([hidden]) ~ :not([hidden]) {
699 --tw-space-y-reverse: 0;
699 --tw-space-y-reverse: 0;
700 margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
700 margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
@@ -744,12 +744,12 @@ Ensure the default browser behavior of the `hidden` attribute.
744.rounded-md {
744.rounded-md {
745 border-radius: 0.375rem;
745 border-radius: 0.375rem;
746}
746}
747−.rounded-full {
748− border-radius: 9999px;
749−}
750.rounded-lg {
747.rounded-lg {
751 border-radius: 0.5rem;
748 border-radius: 0.5rem;
752}
749}
750+.rounded-full {
751+ border-radius: 9999px;
752+}
753.rounded {
753.rounded {
754 border-radius: 0.25rem;
754 border-radius: 0.25rem;
755}
755}
@@ -792,6 +792,10 @@ Ensure the default browser behavior of the `hidden` attribute.
792 --tw-bg-opacity: 1;
792 --tw-bg-opacity: 1;
793 background-color: rgb(31 36 60 / var(--tw-bg-opacity));
793 background-color: rgb(31 36 60 / var(--tw-bg-opacity));
794}
794}
795+.bg-white {
796+ --tw-bg-opacity: 1;
797+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
798+}
795.bg-black {
799.bg-black {
796 --tw-bg-opacity: 1;
800 --tw-bg-opacity: 1;
797 background-color: rgb(0 0 0 / var(--tw-bg-opacity));
801 background-color: rgb(0 0 0 / var(--tw-bg-opacity));
@@ -800,10 +804,6 @@ Ensure the default browser behavior of the `hidden` attribute.
800 --tw-bg-opacity: 1;
804 --tw-bg-opacity: 1;
801 background-color: rgb(209 213 219 / var(--tw-bg-opacity));
805 background-color: rgb(209 213 219 / var(--tw-bg-opacity));
802}
806}
803−.bg-white {
804− --tw-bg-opacity: 1;
805− background-color: rgb(255 255 255 / var(--tw-bg-opacity));
806−}
807.bg-orange-gold {
807.bg-orange-gold {
808 --tw-bg-opacity: 1;
808 --tw-bg-opacity: 1;
809 background-color: rgb(247 211 146 / var(--tw-bg-opacity));
809 background-color: rgb(247 211 146 / var(--tw-bg-opacity));
@@ -848,6 +848,9 @@ Ensure the default browser behavior of the `hidden` attribute.
848 --tw-bg-opacity: 1;
848 --tw-bg-opacity: 1;
849 background-color: rgb(229 231 235 / var(--tw-bg-opacity));
849 background-color: rgb(229 231 235 / var(--tw-bg-opacity));
850}
850}
851+.p-5 {
852+ padding: 1.25rem;
853+}
851.p-4 {
854.p-4 {
852 padding: 1rem;
855 padding: 1rem;
853}
856}
@@ -866,9 +869,6 @@ Ensure the default browser behavior of the `hidden` attribute.
866.p-1 {
869.p-1 {
867 padding: 0.25rem;
870 padding: 0.25rem;
868}
871}
869−.p-5 {
870− padding: 1.25rem;
871−}
872.py-0\.5 {
872.py-0\.5 {
873 padding-top: 0.125rem;
873 padding-top: 0.125rem;
874 padding-bottom: 0.125rem;
874 padding-bottom: 0.125rem;
@@ -909,6 +909,9 @@ Ensure the default browser behavior of the `hidden` attribute.
909 padding-left: 0.25rem;
909 padding-left: 0.25rem;
910 padding-right: 0.25rem;
910 padding-right: 0.25rem;
911}
911}
912+.pt-10 {
913+ padding-top: 2.5rem;
914+}
912.pb-8 {
915.pb-8 {
913 padding-bottom: 2rem;
916 padding-bottom: 2rem;
914}
917}
@@ -930,9 +933,6 @@ Ensure the default browser behavior of the `hidden` attribute.
930.pt-20 {
933.pt-20 {
931 padding-top: 5rem;
934 padding-top: 5rem;
932}
935}
933−.pt-10 {
934− padding-top: 2.5rem;
935−}
936.text-center {
936.text-center {
937 text-align: center;
937 text-align: center;
938}
938}
@@ -961,6 +961,10 @@ Ensure the default browser behavior of the `hidden` attribute.
961 font-size: 1.875rem;
961 font-size: 1.875rem;
962 line-height: 2.25rem;
962 line-height: 2.25rem;
963}
963}
964+.text-xl {
965+ font-size: 1.25rem;
966+ line-height: 1.75rem;
967+}
964.text-2xl {
968.text-2xl {
965 font-size: 1.5rem;
969 font-size: 1.5rem;
966 line-height: 2rem;
970 line-height: 2rem;
@@ -973,10 +977,6 @@ Ensure the default browser behavior of the `hidden` attribute.
973 font-size: 0.875rem;
977 font-size: 0.875rem;
974 line-height: 1.25rem;
978 line-height: 1.25rem;
975}
979}
976−.text-xl {
977− font-size: 1.25rem;
978− line-height: 1.75rem;
979−}
980.text-base {
980.text-base {
981 font-size: 1rem;
981 font-size: 1rem;
982 line-height: 1.5rem;
982 line-height: 1.5rem;