imba-localization 0.3.2 → 0.3.4

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.
package/README.md CHANGED
@@ -182,30 +182,39 @@ css
182
182
  bgc:light-dark(#000000/10, #FFFFFF/20)
183
183
  fw:500 fs:13px
184
184
  ead:$ease
185
+ bd:1px solid transparent
185
186
  .main-active
186
187
  bgc:light-dark(#000000/20, #FFFFFF/30)
188
+ bd:1px solid transparent
187
189
  .main-flag
188
190
  mr:10px rd:50% w:20px h:20px
191
+ bd:1px solid transparent
189
192
  .main-name
190
193
  mr:10px
194
+ bd:1px solid transparent
191
195
  .main-arrow
192
196
  w:16px h:16px ml:auto
193
197
  fill:light-dark(#000000,#FFFFFF)
198
+ bd:1px solid transparent
194
199
  transition: transform $ease ease
195
200
  scale-y:-1
196
201
  .main-arrow-active
202
+ bd:1px solid transparent
197
203
  scale-y:1
198
204
  .menu
199
205
  t:100% l:50% x:-50% mt:2px rd:8px rd:8px py:5px zi:999
200
206
  fw:500 fs:13px
201
207
  backdrop-filter:blur(20px)
208
+ bd:1px solid transparent
202
209
  bgc:light-dark(#000000/5, #FFFFFF/10)
203
210
  ead:$ease
204
211
  .menu-item
205
212
  cursor:pointer
213
+ bd:1px solid transparent
206
214
  d:hflex px:10px py:5px rd:8px m:5px
207
215
  bg@hover:light-dark(#000000/10, #FFFFFF/20)
208
216
  .menu-item-icon
217
+ bd:1px solid transparent
209
218
  h:20px w:20px mr:10px rd:50%
210
219
  .menu-item-text
211
220
  fs:13px
@@ -243,13 +252,13 @@ global css
243
252
  @not(#_) # is needed for higher precedence
244
253
  .main
245
254
  bgc: #992033
246
- bd: 1px solid #992033
255
+ bc: #992033
247
256
  .main-active
248
257
  bgc: blue2
249
- bd: 1px solid #992033
258
+ bc: #992033
250
259
  .menu
251
260
  bgc: #992033
252
- bd: 1px solid #992033
261
+ bc: #992033
253
262
  .menu-item
254
263
  bgc@hover: orange4
255
264
  c@hover: black
@@ -283,10 +292,7 @@ You can use any other collection you prefer, just change the actual country code
283
292
  You can use any arrow icon you prefer (or remove it though CSS) by passing a tag of the image to the LanguageSelector `arrow` attribute:
284
293
 
285
294
  ```imba
286
- const arrow =
287
- <svg viewBox="..." xmlns="http://www.w3.org/2000/svg">
288
- <path d="...">
289
-
295
+ const arrow = <path d="...">
290
296
 
291
297
  <language-selector arrow=arrow>
292
298
  ```
@@ -296,10 +302,12 @@ const arrow =
296
302
  The default arrow icon used in the LocalizationSelector component is available as a separate icon (in case for some reason you don't want to use [imba-phosphor-icons](https://www.npmjs.com/package/imba-phosphor-icons) package by Sindre).
297
303
 
298
304
  ```imba
299
- import {svg-arrow-down} from 'imba-localization'
305
+ import {path-arrow-down} from 'imba-localization'
300
306
 
301
307
  tag App
302
308
  <self>
303
- <{svg-arrow-down}>
304
- css w:20px h:20px stroke:red
309
+ <svg viewBox="0 0 256 256">
310
+ css w:20px h:20px stroke:red
311
+ <{svg-arrow-down}>
312
+
305
313
  ```
package/localization.imba CHANGED
@@ -51,33 +51,18 @@ export class Localization
51
51
  window.localStorage.setItem('imba-localization', name)
52
52
  onchange(name) if onchange isa Function
53
53
 
54
- export const svg-arrow-down =
55
- <svg viewBox="0 0 256 256">
56
- <path d="M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z">
54
+ export const path-arrow-down = <path d="M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z">
57
55
 
58
56
  tag language-selector
59
57
  state
60
58
  icons = "https://kapowaz.github.io/square-flags/flags/##.svg"
61
59
  #dropdown = false
62
- arrow = svg-arrow-down
60
+ arrow = path-arrow-down
63
61
 
64
62
  def onselect key
65
63
  #dropdown = false
66
64
  state.active = key
67
65
 
68
- css
69
- $ease: 0.5s
70
- .main rd:8px px:15px py:8px cursor:pointer bgc:light-dark(#000000/10, #FFFFFF/20) fw:500 fs:13px ead:$ease
71
- .main-active bgc:light-dark(#000000/20, #FFFFFF/30)
72
- .main-flag mr:10px rd:50% w:20px h:20px
73
- .main-name mr:10px
74
- .main-arrow w:16px h:16px fill:light-dark(#000000,#FFFFFF) ml:auto scale-y:-1
75
- .main-arrow-active scale-y:1
76
- .menu t:100% l:50% x:-50% zi:999 backdrop-filter:blur(20px) mt:2px rd:8px rd:8px py:5px bgc:light-dark(#000000/5, #FFFFFF/10) fw:500 fs:13px ead:$ease
77
- .menu-item d:hflex ai:center px:10px py:5px rd:8px cursor:pointer bg@hover:light-dark(#000000/10, #FFFFFF/20) m:5px
78
- .menu-item-icon h:20px w:20px mr:10px rd:50%
79
- .menu-item-text fs:13px
80
-
81
66
  def icon country
82
67
  return icons.replace('##',country)
83
68
 
@@ -87,11 +72,25 @@ tag language-selector
87
72
  const inside = e.clientY >= menu.bottom || e.clientY <= rect.top || (e.clientX <= rect.left and e.clientY <= rect.bottom) || (e.clientX <= menu.left and e.clientY >= menu.top) || (e.clientX >= rect.right and e.clientY <= rect.bottom) || (e.clientX >= menu.right and e.clientY >= menu.top)
88
73
  #dropdown = !inside
89
74
 
90
- <self [pos:rel] @mouseenter=(#dropdown = true) @mouseleave=mouseleave>
75
+ css
76
+ $ease: 0.5s
77
+ .main rd:8px px:15px py:8px cursor:pointer bgc:light-dark(#000000/10, #FFFFFF/20) fw:500 fs:13px ead:$ease bd:1px solid transparent
78
+ .main-active bgc:light-dark(#000000/20, #FFFFFF/30) bd:1px solid transparent
79
+ .main-flag mr:10px rd:50% w:20px h:20px bd:1px solid transparent
80
+ .main-name mr:10px bd:1px solid transparent
81
+ .main-arrow w:16px h:16px fill:light-dark(#000000,#FFFFFF) ml:auto scale-y:-1 bd:1px solid transparent
82
+ .main-arrow-active scale-y:1 bd:1px solid transparent
83
+ .menu t:100% l:50% x:-50% zi:999 backdrop-filter:blur(20px) mt:2px rd:8px rd:8px py:5px bgc:light-dark(#000000/5, #FFFFFF/10) fw:500 fs:13px ead:$ease bd:1px solid transparent
84
+ .menu-item d:hflex ai:center px:10px py:5px rd:8px cursor:pointer bg@hover:light-dark(#000000/10, #FFFFFF/20) m:5px bd:1px solid transparent
85
+ .menu-item-icon h:20px w:20px mr:10px rd:50% bd:1px solid transparent
86
+ .menu-item-text fs:13px bd:1px solid transparent
87
+
88
+ <self.language-selector [pos:rel] @mouseenter=(#dropdown = true) @mouseleave=mouseleave>
91
89
  <div.main [pos:rel d:hcc] .main-active=#dropdown>
92
90
  <img.main-flag src=icon(state[state.active].$.flag)>
93
91
  <div.main-name> state.$.name
94
- <{arrow}.main-arrow [ead:$ease] .main-arrow-active=#dropdown>
92
+ <svg.main-arrow [ead:$ease] .main-arrow-active=#dropdown viewBox="0 0 256 256">
93
+ <{arrow}>
95
94
 
96
95
  if #dropdown
97
96
  <div$menu.menu [pos:abs w:100% > max-content o@off:0] ease>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imba-localization",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/HeapVoid/imba-localization.git"