ds-one 0.2.5-alpha.8 → 0.3.0-alpha.1

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 (213) hide show
  1. package/DS1/0-face/device.ts +138 -0
  2. package/DS1/0-face/i18n.ts +36 -89
  3. package/DS1/0-face/scaling.ts +152 -0
  4. package/DS1/1-root/fonts/Iosevka-Regular.woff2 +0 -0
  5. package/DS1/1-root/one.css +124 -77
  6. package/DS1/2-core/ds-banner.ts +120 -1
  7. package/DS1/2-core/ds-button.ts +16 -96
  8. package/DS1/2-core/ds-card.ts +137 -0
  9. package/DS1/2-core/ds-cycle.ts +82 -184
  10. package/DS1/2-core/ds-date.ts +3 -10
  11. package/DS1/2-core/ds-gap.ts +38 -0
  12. package/DS1/2-core/ds-icon.ts +6 -35
  13. package/DS1/2-core/ds-input.ts +306 -1
  14. package/DS1/2-core/ds-pagedots.ts +52 -0
  15. package/DS1/2-core/ds-text.ts +55 -28
  16. package/DS1/2-core/ds-tooltip.ts +14 -66
  17. package/DS1/2-core/styles/ds-banner.css +77 -0
  18. package/DS1/2-core/styles/ds-button.css +67 -0
  19. package/DS1/2-core/styles/ds-cycle.css +21 -0
  20. package/DS1/2-core/styles/ds-date.css +9 -0
  21. package/DS1/2-core/styles/ds-gap.css +93 -0
  22. package/DS1/2-core/styles/ds-icon.css +30 -0
  23. package/DS1/2-core/styles/ds-input.css +46 -0
  24. package/DS1/2-core/styles/ds-pagedots.css +31 -0
  25. package/DS1/2-core/styles/ds-text.css +29 -0
  26. package/DS1/2-core/styles/ds-tooltip.css +49 -0
  27. package/DS1/3-unit/ds-accordion.ts +95 -0
  28. package/DS1/3-unit/ds-form.ts +304 -0
  29. package/DS1/3-unit/ds-list.ts +5 -14
  30. package/DS1/3-unit/ds-row.ts +3 -19
  31. package/DS1/3-unit/ds-table.ts +3 -86
  32. package/DS1/3-unit/styles/ds-accordion.css +46 -0
  33. package/DS1/3-unit/styles/ds-list.css +9 -0
  34. package/DS1/3-unit/styles/ds-row.css +19 -0
  35. package/DS1/3-unit/styles/ds-table.css +80 -0
  36. package/DS1/4-page/ds-container.ts +28 -0
  37. package/DS1/4-page/ds-grid.ts +37 -50
  38. package/DS1/4-page/ds-layout.ts +652 -163
  39. package/DS1/4-page/styles/ds-container.css +35 -0
  40. package/DS1/4-page/styles/ds-grid.css +56 -0
  41. package/DS1/4-page/styles/ds-layout.css +246 -0
  42. package/DS1/index.ts +9 -1
  43. package/DS1/vite-env.d.ts +13 -0
  44. package/DS1/x-icon/2x.svg +4 -0
  45. package/DS1/x-icon/2xdots.svg +18 -0
  46. package/DS1/x-icon/2xgrid.svg +6 -0
  47. package/DS1/x-icon/2xlines.svg +6 -0
  48. package/DS1/x-icon/4x4.svg +18 -0
  49. package/DS1/x-icon/apple.svg +4 -0
  50. package/DS1/x-icon/avatar.svg +4 -0
  51. package/DS1/x-icon/big.svg +4 -0
  52. package/DS1/x-icon/blank.svg +3 -0
  53. package/DS1/x-icon/check.svg +3 -0
  54. package/DS1/x-icon/close.svg +3 -0
  55. package/DS1/x-icon/collapse.svg +3 -0
  56. package/DS1/x-icon/color.svg +4 -0
  57. package/DS1/x-icon/column.svg +5 -0
  58. package/DS1/x-icon/default.svg +3 -0
  59. package/DS1/x-icon/delete.svg +5 -0
  60. package/DS1/x-icon/dictate.svg +6 -0
  61. package/DS1/x-icon/do.svg +3 -0
  62. package/DS1/x-icon/down.svg +3 -0
  63. package/DS1/x-icon/duplicate.svg +4 -0
  64. package/DS1/x-icon/gallery.svg +5 -0
  65. package/DS1/x-icon/google.svg +6 -0
  66. package/DS1/x-icon/head.svg +5 -0
  67. package/DS1/x-icon/home.svg +3 -0
  68. package/DS1/x-icon/icon.svg +4 -0
  69. package/DS1/x-icon/in.svg +4 -0
  70. package/DS1/x-icon/lock.svg +5 -0
  71. package/DS1/x-icon/loop.svg +5 -0
  72. package/DS1/x-icon/mic.svg +5 -0
  73. package/DS1/x-icon/minimize.svg +3 -0
  74. package/DS1/x-icon/more.svg +5 -0
  75. package/DS1/x-icon/neutral.svg +6 -0
  76. package/DS1/x-icon/note.svg +6 -0
  77. package/DS1/x-icon/page.svg +4 -0
  78. package/DS1/x-icon/plus.svg +3 -0
  79. package/DS1/x-icon/rewind.svg +4 -0
  80. package/DS1/x-icon/row.svg +5 -0
  81. package/DS1/x-icon/sdown.svg +3 -0
  82. package/DS1/x-icon/search.svg +4 -0
  83. package/DS1/x-icon/see.svg +4 -0
  84. package/DS1/x-icon/ship.svg +5 -0
  85. package/DS1/x-icon/star.svg +3 -0
  86. package/DS1/x-icon/status.svg +4 -0
  87. package/DS1/x-icon/sup.svg +3 -0
  88. package/DS1/x-icon/title.svg +3 -0
  89. package/DS1/x-icon/undo.svg +3 -0
  90. package/DS1/x-icon/ungroup.svg +4 -0
  91. package/DS1/x-icon/unhead.svg +3 -0
  92. package/DS1/x-icon/unicon.svg +3 -0
  93. package/DS1/x-icon/unlock.svg +5 -0
  94. package/DS1/x-icon/unmic.svg +6 -0
  95. package/DS1/x-icon/unsee.svg +5 -0
  96. package/DS1/x-icon/unstar.svg +3 -0
  97. package/DS1/x-icon/untitle.svg +3 -0
  98. package/DS1/x-icon/up.svg +3 -0
  99. package/LICENSE +1 -1
  100. package/README.md +4 -4
  101. package/dist/0-face/device.d.ts +5 -0
  102. package/dist/0-face/device.d.ts.map +1 -1
  103. package/dist/0-face/device.js +111 -0
  104. package/dist/0-face/i18n.d.ts +0 -2
  105. package/dist/0-face/i18n.d.ts.map +1 -1
  106. package/dist/0-face/i18n.js +36 -73
  107. package/dist/0-face/scaling.d.ts +48 -0
  108. package/dist/0-face/scaling.d.ts.map +1 -0
  109. package/dist/0-face/scaling.js +114 -0
  110. package/dist/2-core/ds-banner.d.ts +67 -0
  111. package/dist/2-core/ds-banner.d.ts.map +1 -1
  112. package/dist/2-core/ds-banner.js +97 -1
  113. package/dist/2-core/ds-button.d.ts +4 -20
  114. package/dist/2-core/ds-button.d.ts.map +1 -1
  115. package/dist/2-core/ds-button.js +14 -88
  116. package/dist/2-core/ds-card.d.ts +39 -0
  117. package/dist/2-core/ds-card.d.ts.map +1 -0
  118. package/dist/2-core/ds-card.js +119 -0
  119. package/dist/2-core/ds-cycle.d.ts +1 -5
  120. package/dist/2-core/ds-cycle.d.ts.map +1 -1
  121. package/dist/2-core/ds-cycle.js +79 -166
  122. package/dist/2-core/ds-date.d.ts.map +1 -1
  123. package/dist/2-core/ds-date.js +3 -9
  124. package/dist/2-core/ds-gap.d.ts +28 -0
  125. package/dist/2-core/ds-gap.d.ts.map +1 -0
  126. package/dist/2-core/ds-gap.js +25 -0
  127. package/dist/2-core/ds-icon.d.ts.map +1 -1
  128. package/dist/2-core/ds-icon.js +6 -35
  129. package/dist/2-core/ds-input.d.ts +127 -0
  130. package/dist/2-core/ds-input.d.ts.map +1 -1
  131. package/dist/2-core/ds-input.js +252 -1
  132. package/dist/2-core/ds-pagedots.d.ts +32 -0
  133. package/dist/2-core/ds-pagedots.d.ts.map +1 -0
  134. package/dist/2-core/ds-pagedots.js +36 -0
  135. package/dist/2-core/ds-text.d.ts +5 -3
  136. package/dist/2-core/ds-text.d.ts.map +1 -1
  137. package/dist/2-core/ds-text.js +49 -27
  138. package/dist/2-core/ds-tooltip.d.ts +3 -3
  139. package/dist/2-core/ds-tooltip.d.ts.map +1 -1
  140. package/dist/2-core/ds-tooltip.js +13 -65
  141. package/dist/2-core/styles/ds-banner.css +77 -0
  142. package/dist/2-core/styles/ds-button.css +67 -0
  143. package/dist/2-core/styles/ds-cycle.css +21 -0
  144. package/dist/2-core/styles/ds-date.css +9 -0
  145. package/dist/2-core/styles/ds-gap.css +93 -0
  146. package/dist/2-core/styles/ds-icon.css +30 -0
  147. package/dist/2-core/styles/ds-input.css +46 -0
  148. package/dist/2-core/styles/ds-pagedots.css +26 -0
  149. package/dist/2-core/styles/ds-text.css +29 -0
  150. package/dist/2-core/styles/ds-tooltip.css +49 -0
  151. package/dist/3-unit/ds-accordion.d.ts +47 -0
  152. package/dist/3-unit/ds-accordion.d.ts.map +1 -0
  153. package/dist/3-unit/ds-accordion.js +75 -0
  154. package/dist/3-unit/ds-form.d.ts +70 -0
  155. package/dist/3-unit/ds-form.d.ts.map +1 -0
  156. package/dist/3-unit/ds-form.js +232 -0
  157. package/dist/3-unit/ds-list.d.ts.map +1 -1
  158. package/dist/3-unit/ds-list.js +5 -11
  159. package/dist/3-unit/ds-row.d.ts.map +1 -1
  160. package/dist/3-unit/ds-row.js +3 -19
  161. package/dist/3-unit/ds-table.d.ts.map +1 -1
  162. package/dist/3-unit/ds-table.js +3 -86
  163. package/dist/3-unit/styles/ds-accordion.css +46 -0
  164. package/dist/3-unit/styles/ds-list.css +9 -0
  165. package/dist/3-unit/styles/ds-row.css +19 -0
  166. package/dist/3-unit/styles/ds-table.css +80 -0
  167. package/dist/{3-unit/row-v1.d.ts → 4-page/ds-container.d.ts} +3 -11
  168. package/dist/4-page/ds-container.d.ts.map +1 -0
  169. package/dist/4-page/ds-container.js +11 -0
  170. package/dist/4-page/ds-grid.d.ts +5 -0
  171. package/dist/4-page/ds-grid.d.ts.map +1 -1
  172. package/dist/4-page/ds-grid.js +38 -56
  173. package/dist/4-page/ds-layout.d.ts +3 -3
  174. package/dist/4-page/ds-layout.d.ts.map +1 -1
  175. package/dist/4-page/ds-layout.js +651 -162
  176. package/dist/4-page/styles/ds-container.css +35 -0
  177. package/dist/4-page/styles/ds-grid.css +56 -0
  178. package/dist/4-page/styles/ds-layout.css +251 -0
  179. package/dist/ds-one.bundle.css +700 -0
  180. package/dist/ds-one.bundle.css.map +7 -0
  181. package/dist/ds-one.bundle.js +2728 -1597
  182. package/dist/ds-one.bundle.js.map +1 -7
  183. package/dist/ds-one.bundle.min.css +2 -0
  184. package/dist/ds-one.bundle.min.css.map +7 -0
  185. package/dist/ds-one.bundle.min.js +3850 -546
  186. package/dist/ds-one.bundle.min.js.map +1 -7
  187. package/dist/index.d.ts +9 -1
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/index.js +9 -1
  190. package/package.json +4 -3
  191. package/dist/3-unit/doublenav-v1.d.ts +0 -51
  192. package/dist/3-unit/doublenav-v1.d.ts.map +0 -1
  193. package/dist/3-unit/doublenav-v1.js +0 -88
  194. package/dist/3-unit/ds-portfolio-doublenav.d.ts +0 -51
  195. package/dist/3-unit/ds-portfolio-doublenav.d.ts.map +0 -1
  196. package/dist/3-unit/ds-portfolio-doublenav.js +0 -88
  197. package/dist/3-unit/ds-portfolio-panel.d.ts +0 -11
  198. package/dist/3-unit/ds-portfolio-panel.d.ts.map +0 -1
  199. package/dist/3-unit/ds-portfolio-panel.js +0 -16
  200. package/dist/3-unit/ds-portfolio-singlenav.d.ts +0 -32
  201. package/dist/3-unit/ds-portfolio-singlenav.d.ts.map +0 -1
  202. package/dist/3-unit/ds-portfolio-singlenav.js +0 -62
  203. package/dist/3-unit/list-v1.d.ts +0 -11
  204. package/dist/3-unit/list-v1.d.ts.map +0 -1
  205. package/dist/3-unit/list-v1.js +0 -15
  206. package/dist/3-unit/panel-v1.d.ts +0 -11
  207. package/dist/3-unit/panel-v1.d.ts.map +0 -1
  208. package/dist/3-unit/panel-v1.js +0 -16
  209. package/dist/3-unit/row-v1.d.ts.map +0 -1
  210. package/dist/3-unit/row-v1.js +0 -32
  211. package/dist/3-unit/singlenav-v1.d.ts +0 -32
  212. package/dist/3-unit/singlenav-v1.d.ts.map +0 -1
  213. package/dist/3-unit/singlenav-v1.js +0 -62
@@ -0,0 +1,4 @@
1
+ <svg width="10" height="12" viewBox="0 0 10 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 2C1 1.44772 1.44772 1 2 1H6L9 4V10C9 10.5523 8.55228 11 8 11H2C1.44772 11 1 10.5523 1 10V2Z" stroke="currentColor" stroke-width="1.2" fill="none"/>
3
+ <path d="M6 1V4H9" stroke="currentColor" stroke-width="1.2" fill="none"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 2V10M2 6H10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 1L1 5L6 9V1Z" fill="currentColor"/>
3
+ <path d="M12 1L7 5L12 9V1Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="11" height="3" stroke="currentColor" stroke-width="1" fill="none"/>
3
+ <rect x="0.5" y="4.5" width="11" height="3" stroke="currentColor" stroke-width="1" fill="none"/>
4
+ <rect x="0.5" y="8.5" width="11" height="3" stroke="currentColor" stroke-width="1" fill="none"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1L4 4L7 1" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="5" cy="5" r="4" stroke="currentColor" stroke-width="1.2" fill="none"/>
3
+ <line x1="8" y1="8" x2="11" y2="11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="14" height="10" viewBox="0 0 14 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7 1C3.5 1 1 5 1 5C1 5 3.5 9 7 9C10.5 9 13 5 13 5C13 5 10.5 1 7 1Z" stroke="currentColor" stroke-width="1.2" fill="none"/>
3
+ <circle cx="7" cy="5" r="2" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="14" height="12" viewBox="0 0 14 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M2 8L1 11H13L12 8" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
3
+ <path d="M3 8V4H6V1H8V4H11V8H3Z" fill="currentColor"/>
4
+ <rect x="5" y="5" width="4" height="2" fill="var(--surface-color, #fff)"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 1L7.5 4.5L11 5L8.5 7.5L9 11L6 9.5L3 11L3.5 7.5L1 5L4.5 4.5L6 1Z" stroke="currentColor" stroke-width="1.2" stroke-linejoin="round" fill="none"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="6" cy="6" r="5" stroke="currentColor" stroke-width="1.2" fill="none"/>
3
+ <circle cx="6" cy="6" r="2" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 4L4 1L7 4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1H11M6 1V9M3 9H9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 4L4 1M1 4L4 7M1 4H8C9.65685 4 11 5.34315 11 7V9" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="5" height="5" stroke="currentColor" stroke-width="1" stroke-dasharray="2 1" fill="none"/>
3
+ <rect x="6.5" y="6.5" width="5" height="5" stroke="currentColor" stroke-width="1" stroke-dasharray="2 1" fill="none"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1H11M1 1V10C1 10.5523 1.44772 11 2 11H10C10.5523 11 11 10.5523 11 10V1" stroke="currentColor" stroke-width="1.2" stroke-dasharray="2 1" fill="none"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="1" y="1" width="10" height="10" rx="2" stroke="currentColor" stroke-width="1.2" stroke-dasharray="2 1" fill="none"/>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="10" height="12" viewBox="0 0 10 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="1" y="5" width="8" height="6" rx="1" stroke="currentColor" stroke-width="1.2" fill="none"/>
3
+ <path d="M3 5V3C3 1.89543 3.89543 1 5 1C6.10457 1 7 1.89543 7 3" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" fill="none"/>
4
+ <circle cx="5" cy="8" r="1" fill="currentColor"/>
5
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="10" height="14" viewBox="0 0 10 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="2.5" y="1" width="5" height="7" rx="2.5" stroke="currentColor" stroke-width="1.2" fill="none"/>
3
+ <path d="M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6" stroke="currentColor" stroke-width="1.2" fill="none"/>
4
+ <line x1="5" y1="11" x2="5" y2="13" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
5
+ <line x1="1" y1="1" x2="9" y2="13" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
6
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="14" height="12" viewBox="0 0 14 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7 2C3.5 2 1 6 1 6C1 6 3.5 10 7 10C10.5 10 13 6 13 6C13 6 10.5 2 7 2Z" stroke="currentColor" stroke-width="1.2" fill="none"/>
3
+ <circle cx="7" cy="6" r="2" stroke="currentColor" stroke-width="1.2" fill="none"/>
4
+ <line x1="2" y1="1" x2="12" y2="11" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 1L7.5 4.5L11 5L8.5 7.5L9 11L6 9.5L3 11L3.5 7.5L1 5L4.5 4.5L6 1Z" stroke="currentColor" stroke-width="1.2" stroke-linejoin="round" stroke-dasharray="2 1" fill="none"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M1 1H11M6 1V9M3 9H9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-dasharray="2 1"/>
3
+ </svg>
package/DS1/x-icon/up.svg CHANGED
@@ -0,0 +1,3 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 10V2M6 2L2 6M6 2L10 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Jo4712
3
+ Copyright (c) 2025 0001
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # DS one (0.2.5-alpha.8)
1
+ # DS one (0.3.0-alpha.1)
2
2
 
3
3
  A plug and play design system
4
4
 
@@ -20,7 +20,7 @@ yarn add ds-one@alpha
20
20
 
21
21
  ```
22
22
 
23
- **Note**: Currently published as alpha version `0.2.5-alpha.8`
23
+ **Note**: Currently published as alpha version `0.3.0-alpha.1`
24
24
 
25
25
  ## Quick Start
26
26
 
@@ -41,8 +41,8 @@ yarn add ds-one@alpha
41
41
  </script>
42
42
  </head>
43
43
  <body>
44
- <ds-button variant="primary" key="getStarted"></ds-button>
45
- <ds-text key="welcome"></ds-text>
44
+ <ds-button variant="primary" text="Get Started"></ds-button>
45
+ <ds-text text="Welcome"></ds-text>
46
46
  </body>
47
47
  </html>
48
48
  ```
@@ -22,4 +22,9 @@ export declare function getDeviceInfo(): DeviceInfo;
22
22
  * Initialize device detection and log to console
23
23
  */
24
24
  export declare function initDeviceDetection(): DeviceInfo;
25
+ /**
26
+ * Disable double-tap to zoom in the browser (app-like behavior)
27
+ * Prevents all zoom gestures including double-tap and pinch-to-zoom
28
+ */
29
+ export declare function applike(): void;
25
30
  //# sourceMappingURL=device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../DS1/0-face/device.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CA0B5C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA6B1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,CAkDhD"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../DS1/0-face/device.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CA0B5C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA6B1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,CA0DhD;AAwBD;;;GAGG;AACH,wBAAgB,OAAO,IAAI,IAAI,CA4H9B"}
@@ -65,6 +65,9 @@ export function initDeviceDetection() {
65
65
  document.documentElement.style.setProperty("--sf", scalingFactor.toFixed(3));
66
66
  // Also set --sf for backwards compatibility
67
67
  document.documentElement.style.setProperty("--sf", scalingFactor.toFixed(3));
68
+ // Add .mobile class to html element for CSS targeting
69
+ document.documentElement.classList.add("mobile");
70
+ document.documentElement.classList.remove("desktop");
68
71
  console.log(`[DS one] Mobile device detected - ${deviceInfo.deviceType} (${deviceInfo.screenWidth}x${deviceInfo.screenHeight}), scaling factor: ${scalingFactor.toFixed(2)}`);
69
72
  }
70
73
  else {
@@ -73,6 +76,9 @@ export function initDeviceDetection() {
73
76
  document.documentElement.style.setProperty("--sf", "1");
74
77
  // Also set --sf for backwards compatibility
75
78
  document.documentElement.style.setProperty("--sf", "1");
79
+ // Add .desktop class and remove .mobile class
80
+ document.documentElement.classList.add("desktop");
81
+ document.documentElement.classList.remove("mobile");
76
82
  }
77
83
  console.log(`[DS one] Desktop device detected (${deviceInfo.screenWidth}x${deviceInfo.screenHeight})`);
78
84
  }
@@ -111,3 +117,108 @@ if (typeof window !== "undefined") {
111
117
  }, 100);
112
118
  });
113
119
  }
120
+ /**
121
+ * Disable double-tap to zoom in the browser (app-like behavior)
122
+ * Prevents all zoom gestures including double-tap and pinch-to-zoom
123
+ */
124
+ export function applike() {
125
+ if (typeof document === "undefined" || typeof window === "undefined") {
126
+ return;
127
+ }
128
+ // Set viewport meta tag to prevent zoom - this is the most important step
129
+ let viewport = document.querySelector('meta[name="viewport"]');
130
+ if (!viewport) {
131
+ viewport = document.createElement("meta");
132
+ viewport.setAttribute("name", "viewport");
133
+ document.head.appendChild(viewport);
134
+ }
135
+ viewport.setAttribute("content", "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no");
136
+ // Apply touch-action: pan-x pan-y globally to prevent zoom but allow panning
137
+ const style = document.createElement("style");
138
+ style.id = "ds-one-applike-style";
139
+ style.textContent = `
140
+ * {
141
+ touch-action: pan-x pan-y !important;
142
+ -ms-touch-action: pan-x pan-y !important;
143
+ }
144
+ html, body {
145
+ touch-action: pan-x pan-y !important;
146
+ -ms-touch-action: pan-x pan-y !important;
147
+ }
148
+ `;
149
+ // Remove existing style if present
150
+ const existingStyle = document.getElementById("ds-one-applike-style");
151
+ if (existingStyle) {
152
+ existingStyle.remove();
153
+ }
154
+ document.head.appendChild(style);
155
+ // Track touch events to prevent double-tap zoom
156
+ let lastTouchEnd = 0;
157
+ let touchStartTime = 0;
158
+ const preventZoom = (event) => {
159
+ // Prevent pinch zoom (two fingers)
160
+ if (event instanceof TouchEvent) {
161
+ if (event.touches.length > 1) {
162
+ event.preventDefault();
163
+ event.stopPropagation();
164
+ return;
165
+ }
166
+ const now = Date.now();
167
+ if (event.type === "touchstart") {
168
+ // If touchstart happens within 300ms of last touchend, it's likely a double-tap
169
+ if (now - lastTouchEnd < 300) {
170
+ event.preventDefault();
171
+ event.stopPropagation();
172
+ return;
173
+ }
174
+ touchStartTime = now;
175
+ }
176
+ else if (event.type === "touchend") {
177
+ const touchDuration = now - touchStartTime;
178
+ // If this is a quick tap (< 300ms) and happened soon after previous touchend, prevent it
179
+ if (touchDuration < 300 && now - lastTouchEnd < 300) {
180
+ event.preventDefault();
181
+ event.stopPropagation();
182
+ return;
183
+ }
184
+ lastTouchEnd = now;
185
+ }
186
+ else if (event.type === "touchmove") {
187
+ // Prevent any touchmove that might trigger zoom
188
+ if (event.touches.length > 1) {
189
+ event.preventDefault();
190
+ event.stopPropagation();
191
+ return;
192
+ }
193
+ }
194
+ }
195
+ // Prevent wheel zoom with ctrl/cmd key (common on trackpads)
196
+ if (event instanceof WheelEvent && (event.ctrlKey || event.metaKey)) {
197
+ event.preventDefault();
198
+ event.stopPropagation();
199
+ return;
200
+ }
201
+ };
202
+ // Use capture phase to catch events earlier
203
+ const options = { passive: false, capture: true };
204
+ // Prevent all zoom gestures - use capture phase
205
+ document.addEventListener("touchstart", preventZoom, options);
206
+ document.addEventListener("touchmove", preventZoom, options);
207
+ document.addEventListener("touchend", preventZoom, options);
208
+ document.addEventListener("touchcancel", preventZoom, options);
209
+ // Prevent wheel zoom
210
+ document.addEventListener("wheel", preventZoom, options);
211
+ // Prevent gesture events (iOS Safari) - use capture phase
212
+ document.addEventListener("gesturestart", (e) => {
213
+ e.preventDefault();
214
+ e.stopPropagation();
215
+ }, options);
216
+ document.addEventListener("gesturechange", (e) => {
217
+ e.preventDefault();
218
+ e.stopPropagation();
219
+ }, options);
220
+ document.addEventListener("gestureend", (e) => {
221
+ e.preventDefault();
222
+ e.stopPropagation();
223
+ }, options);
224
+ }
@@ -19,8 +19,6 @@ export declare const currentLanguage: {
19
19
  export declare function translate(key: string): string;
20
20
  export declare function hasTranslation(key: string, language?: LanguageCode): boolean;
21
21
  export declare function getText(key: string): string;
22
- export declare function getNotionText(key: string, language?: LanguageCode): Promise<string | null>;
23
- export declare function setNotionText(key: string, value: string, language?: LanguageCode): void;
24
22
  export declare function getAvailableLanguages(): Promise<LanguageCode[]>;
25
23
  export declare function getAvailableLanguagesSync(): LanguageCode[];
26
24
  export declare function loadTranslations(language: LanguageCode, translations: TranslationData): void;
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../DS1/0-face/i18n.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAGlC,KAAK,eAAe,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAyDF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACtD,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC;CACF;AAkSD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,MAAM,CA6CR;AAwDD,wBAAgB,kBAAkB,IAAI,YAAY,CAwBjD;AAWD,eAAO,MAAM,eAAe;;gBAGL,YAAY;CAWlC,CAAC;AAyDF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB7C;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,YAAoC,GAC7C,OAAO,CAmBT;AAGD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAGD,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,YAAoC,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBxB;AAGD,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,YAAoC,GAC7C,IAAI,CAKN;AAUD,wBAAgB,qBAAqB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAS/D;AAGD,wBAAgB,yBAAyB,IAAI,YAAY,EAAE,CAO1D;AAGD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,eAAe,GAC5B,IAAI,CAON;AAGD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAgBxD"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../DS1/0-face/i18n.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAGlC,KAAK,eAAe,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAyDF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACtD,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC;CACF;AA+RD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,MAAM,CA6CR;AAqDD,wBAAgB,kBAAkB,IAAI,YAAY,CAwBjD;AAWD,eAAO,MAAM,eAAe;;gBAGL,YAAY;CAWlC,CAAC;AAuDF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB7C;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,YAAoC,GAC7C,OAAO,CAmBT;AAGD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAGD,wBAAgB,qBAAqB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAS/D;AAGD,wBAAgB,yBAAyB,IAAI,YAAY,EAAE,CAO1D;AAGD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,eAAe,GAC5B,IAAI,CAON;AAGD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAgBxD"}
@@ -4,42 +4,42 @@ let translationKeys = {};
4
4
  // Primary language list – prioritise the 10 requested languages when cycling
5
5
  const LANGUAGE_PRIORITY_ORDER = [
6
6
  "da",
7
- "nb",
8
- "sv",
9
- "pt",
7
+ "de",
8
+ "en",
10
9
  "es",
11
- "zh",
12
- "ko",
10
+ "fr",
11
+ "it",
13
12
  "ja",
14
- "en",
15
- "de",
13
+ "pt",
14
+ "sv",
15
+ "zh",
16
16
  ];
17
17
  const LANGUAGE_PRIORITY_LOOKUP = new Map(LANGUAGE_PRIORITY_ORDER.map((code, index) => [code, index]));
18
18
  // Fallback language names if Intl.DisplayNames is not available
19
19
  const FALLBACK_LANGUAGE_NAMES = {
20
20
  da: "Danish",
21
21
  "da-dk": "Danish",
22
- nb: "Norwegian",
23
- "nb-no": "Norwegian",
24
- sv: "Swedish",
25
- "sv-se": "Swedish",
26
22
  de: "German",
27
23
  "de-de": "German",
28
24
  en: "English",
29
25
  "en-us": "English",
30
- pt: "Portuguese",
31
- "pt-pt": "Portuguese",
32
- "pt-br": "Portuguese (Brazil)",
33
26
  es: "Spanish",
34
27
  "es-es": "Spanish",
35
- "es-mx": "Spanish (Mexico)",
36
- zh: "Chinese",
37
- "zh-hans": "Chinese (Simplified)",
38
- "zh-hant": "Chinese (Traditional)",
28
+ fr: "French",
29
+ "fr-fr": "French",
30
+ it: "Italian",
31
+ "it-it": "Italian",
39
32
  ja: "Japanese",
40
33
  "ja-jp": "Japanese",
41
- ko: "Korean",
42
- "ko-kr": "Korean",
34
+ pt: "Portuguese",
35
+ "pt-pt": "Portuguese",
36
+ sv: "Swedish",
37
+ "sv-se": "Swedish",
38
+ zh: "Chinese",
39
+ "zh-cn": "Chinese",
40
+ "zh-tw": "Chinese",
41
+ "zh-hans": "Chinese",
42
+ "zh-hant": "Chinese",
43
43
  };
44
44
  const DISPLAY_NAME_CACHE = new Map();
45
45
  let displayNameFallbackWarningShown = false;
@@ -179,7 +179,6 @@ function getTranslationData() {
179
179
  }
180
180
  // Cached translation data - use getter to always get fresh data
181
181
  let translationData = getTranslationData();
182
- const notionStore = new Map();
183
182
  const defaultLanguage = "en";
184
183
  function extractPrimarySubtag(code) {
185
184
  if (!code) {
@@ -288,33 +287,30 @@ export function getLanguageDisplayName(code, options = {}) {
288
287
  const BROWSER_LANGUAGE_PREFERENCES = {
289
288
  da: "da",
290
289
  "da-dk": "da",
291
- no: "nb",
292
- nb: "nb",
293
- "nb-no": "nb",
294
- nn: "nn",
295
- "nn-no": "nn",
296
- sv: "sv",
297
- "sv-se": "sv",
298
- pt: "pt",
299
- "pt-pt": "pt",
300
- "pt-br": "pt",
290
+ de: "de",
291
+ "de-de": "de",
292
+ en: "en",
293
+ "en-us": "en",
294
+ "en-gb": "en",
301
295
  es: "es",
302
296
  "es-es": "es",
303
297
  "es-mx": "es",
298
+ fr: "fr",
299
+ "fr-fr": "fr",
300
+ it: "it",
301
+ "it-it": "it",
302
+ ja: "ja",
303
+ "ja-jp": "ja",
304
+ pt: "pt",
305
+ "pt-pt": "pt",
306
+ "pt-br": "pt",
307
+ sv: "sv",
308
+ "sv-se": "sv",
304
309
  zh: "zh",
305
310
  "zh-cn": "zh",
306
311
  "zh-hans": "zh",
307
312
  "zh-tw": "zh",
308
313
  "zh-hant": "zh",
309
- ko: "ko",
310
- "ko-kr": "ko",
311
- ja: "ja",
312
- "ja-jp": "ja",
313
- en: "en",
314
- "en-us": "en",
315
- "en-gb": "en",
316
- de: "de",
317
- "de-de": "de",
318
314
  };
319
315
  function resolvePreferredLanguage(languageTag) {
320
316
  if (!languageTag) {
@@ -391,7 +387,6 @@ if (typeof window !== "undefined") {
391
387
  translationData = getTranslationData();
392
388
  // Dispatch that translations are loaded
393
389
  window.dispatchEvent(new CustomEvent("translations-loaded"));
394
- window.notionDataLoaded = true;
395
390
  // Dispatch language-changed to update all components
396
391
  const currentLang = currentLanguage.value;
397
392
  window.dispatchEvent(new CustomEvent("language-changed", {
@@ -406,7 +401,6 @@ if (typeof window !== "undefined") {
406
401
  setTimeout(() => {
407
402
  // Since we directly imported the data, just dispatch the events
408
403
  window.dispatchEvent(new CustomEvent("translations-loaded"));
409
- window.notionDataLoaded = true;
410
404
  // Also dispatch language-changed with the current language
411
405
  const currentLang = currentLanguage.value;
412
406
  window.dispatchEvent(new CustomEvent("language-changed", {
@@ -448,37 +442,6 @@ export function hasTranslation(key, language = currentLanguage.value) {
448
442
  export function getText(key) {
449
443
  return translate(key);
450
444
  }
451
- // Get text from translation data (async for compatibility)
452
- export async function getNotionText(key, language = currentLanguage.value) {
453
- if (!key) {
454
- return null;
455
- }
456
- if (!translationData || !translationData[language]) {
457
- return null;
458
- }
459
- const text = translationData[language][key];
460
- if (text) {
461
- return text;
462
- }
463
- // Fallback to English
464
- if (language !== defaultLanguage && translationData[defaultLanguage]?.[key]) {
465
- return translationData[defaultLanguage][key];
466
- }
467
- return null;
468
- }
469
- // Store Notion text (for dynamic updates)
470
- export function setNotionText(key, value, language = currentLanguage.value) {
471
- if (!key)
472
- return;
473
- const bucket = getLanguageBucket(language);
474
- bucket.set(key, value);
475
- }
476
- function getLanguageBucket(language) {
477
- if (!notionStore.has(language)) {
478
- notionStore.set(language, new Map());
479
- }
480
- return notionStore.get(language);
481
- }
482
445
  // Get available languages - dynamically detect from loaded data
483
446
  export function getAvailableLanguages() {
484
447
  // Always get fresh translation data
@@ -0,0 +1,48 @@
1
+ export type ScalingMode = "auto" | "fixed" | "fluid";
2
+ export interface ScalingConfig {
3
+ mode: ScalingMode;
4
+ baseWidth: number;
5
+ minScale: number;
6
+ maxScale: number;
7
+ }
8
+ export declare const scalingFactor: import("@lit-labs/signals").Signal.State<number>;
9
+ export declare const scalingConfig: import("@lit-labs/signals").Signal.State<ScalingConfig>;
10
+ /**
11
+ * Calculate the scaling factor based on viewport width
12
+ * @param viewportWidth - Current viewport width in pixels
13
+ * @param config - Scaling configuration
14
+ * @returns The calculated scaling factor
15
+ */
16
+ export declare function calculateScalingFactor(viewportWidth: number, config?: ScalingConfig): number;
17
+ /**
18
+ * Set the scaling configuration
19
+ * @param config - Partial scaling configuration to apply
20
+ */
21
+ export declare function setScalingConfig(config: Partial<ScalingConfig>): void;
22
+ /**
23
+ * Update the scaling factor based on current viewport
24
+ */
25
+ export declare function updateScalingFactor(): void;
26
+ /**
27
+ * Get the current scaling factor
28
+ * @returns The current scaling factor
29
+ */
30
+ export declare function getScalingFactor(): number;
31
+ /**
32
+ * Convert a design pixel value to scaled pixels
33
+ * @param designPx - The design pixel value (based on 280px width)
34
+ * @returns The scaled pixel value
35
+ */
36
+ export declare function scale(designPx: number): number;
37
+ /**
38
+ * Convert a scaled pixel value back to design pixels
39
+ * @param scaledPx - The scaled pixel value
40
+ * @returns The design pixel value
41
+ */
42
+ export declare function unscale(scaledPx: number): number;
43
+ /**
44
+ * Initialize scaling system
45
+ * This is typically called automatically when the module loads
46
+ */
47
+ export declare function initScaling(): void;
48
+ //# sourceMappingURL=scaling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaling.d.ts","sourceRoot":"","sources":["../../DS1/0-face/scaling.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD,eAAO,MAAM,aAAa,kDAAoB,CAAC;AAG/C,eAAO,MAAM,aAAa,yDAAuC,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,aAAmC,GAC1C,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CASrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAoB1C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAqBlC"}