@kizmann/nano-ui 0.9.10 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/.github/workflows/compile-deploy-publish.yml +65 -0
  2. package/README.md +1 -1
  3. package/assets/nano-ui-dark.svg +19 -0
  4. package/assets/nano-ui-light.svg +19 -0
  5. package/assets/pico-js-dark.svg +19 -0
  6. package/assets/pico-js-light.svg +19 -0
  7. package/demos/form.html +462 -0
  8. package/demos/overview.html +97 -45
  9. package/docs/_sidebar.md +11 -10
  10. package/docs/files/form/button.md +10 -1
  11. package/docs/files/form/switch.md +6 -0
  12. package/docs/files/others/config.md +261 -8
  13. package/docs/files/others/drawer.md +32 -0
  14. package/docs/files/others/map.md +32 -0
  15. package/docs/index.template.html +76 -0
  16. package/docs/src/js/backup.js +128 -0
  17. package/docs/src/js/helper/item-helper.js +0 -0
  18. package/docs/src/js/index.js +21 -0
  19. package/docs/src/js/plugin/title-plugin.js +0 -0
  20. package/docs/src/js/plugin/vue-demo-plugin.js +97 -0
  21. package/docs/src/js/theme/basic.js +31 -0
  22. package/docs/src/js/theme/docsify.js +11 -0
  23. package/docs/src/scss/index-dark.scss +3 -0
  24. package/docs/src/scss/index-light.scss +3 -0
  25. package/docs/src/scss/index.scss +10 -443
  26. package/docs/src/scss/mixins/grid.scss +12 -11
  27. package/docs/src/scss/mixins/media.scss +2 -1
  28. package/docs/src/scss/root/vars-dark.scss +15 -0
  29. package/docs/src/scss/root/vars-light.scss +15 -0
  30. package/docs/src/scss/root/vars.scss +110 -0
  31. package/docs/src/scss/theme/default.scss +123 -0
  32. package/docs/src/scss/theme/header.scss +147 -0
  33. package/docs/src/scss/theme/layout.scss +186 -0
  34. package/docs/src/scss/theme/loader.scss +63 -0
  35. package/docs/src/scss/theme/markdown.scss +79 -0
  36. package/docs/src/scss/theme/navigation.scss +58 -0
  37. package/docs/src/scss/theme/progress.scss +9 -0
  38. package/docs/src/scss/theme/search.scss +119 -0
  39. package/docs/src/scss/{docsify → theme}/syntax.scss +18 -15
  40. package/docs/src/scss/theme/table.scss +63 -0
  41. package/favicon/apple-touch-icon.png +0 -0
  42. package/favicon/favicon-96x96.png +0 -0
  43. package/favicon/favicon.ico +0 -0
  44. package/favicon/favicon.svg +3 -0
  45. package/favicon/site.webmanifest +21 -0
  46. package/favicon/web-app-manifest-192x192.png +0 -0
  47. package/favicon/web-app-manifest-512x512.png +0 -0
  48. package/package.json +19 -12
  49. package/postcss.config.js +1 -1
  50. package/src/alert/src/alert/alert.scss +5 -4
  51. package/src/button/src/button/button.scss +5 -5
  52. package/src/button/src/button-group/button-group.scss +5 -4
  53. package/src/cascader/src/cascader/cascader.scss +5 -4
  54. package/src/cascader/src/cascader-panel/cascader-panel.scss +5 -4
  55. package/src/checkbox/src/checkbox/checkbox.scss +5 -4
  56. package/src/checkbox/src/checkbox-group/checkbox-group.scss +5 -4
  57. package/src/collapse/src/collapse/collapse.scss +5 -4
  58. package/src/collapse/src/collapse-item/collapse-item.scss +5 -4
  59. package/src/config/src/builder/builder.scss +17 -13
  60. package/src/config/src/reference-panel/reference-panel.scss +7 -4
  61. package/src/confirm/src/confirm/confirm.scss +5 -4
  62. package/src/datepicker/src/datepicker/datepicker.scss +5 -4
  63. package/src/datepicker/src/datepicker-panel/datepicker-panel.scss +5 -4
  64. package/src/datetimepicker/src/datetimepicker/datetimepicker.js +0 -4
  65. package/src/datetimepicker/src/datetimepicker/datetimepicker.scss +5 -4
  66. package/src/draggable/src/draggrid/draggrid.scss +5 -4
  67. package/src/draggable/src/draggrid-item/draggrid-item.scss +5 -4
  68. package/src/draggable/src/draglist/draglist.scss +5 -4
  69. package/src/draggable/src/draglist-item/draglist-item.scss +5 -4
  70. package/src/draggable/src/dropzone/dropzone.scss +5 -4
  71. package/src/drawer/index.js +5 -0
  72. package/src/drawer/index.scss +1 -0
  73. package/src/drawer/src/drawer/drawer.js +431 -0
  74. package/src/drawer/src/drawer/drawer.scss +136 -0
  75. package/src/durationpicker/src/durationpicker/durationpicker.scss +5 -4
  76. package/src/empty/src/empty-icon/empty-icon.scss +5 -4
  77. package/src/form/index.js +6 -0
  78. package/src/form/index.scss +2 -0
  79. package/src/form/src/form/form.js +11 -1
  80. package/src/form/src/form-frame/form-frame.js +42 -0
  81. package/src/form/src/form-frame/form-frame.scss +28 -0
  82. package/src/form/src/form-frame-item/form-frame-item.js +114 -0
  83. package/src/form/src/form-group/form-group.js +33 -1
  84. package/src/form/src/form-group/form-group.scss +5 -4
  85. package/src/form/src/form-item/form-item.scss +5 -4
  86. package/src/form/src/form-menu/form-menu.js +89 -0
  87. package/src/form/src/form-menu/form-menu.scss +9 -0
  88. package/src/index.js +1 -0
  89. package/src/index.scss +1 -0
  90. package/src/info/src/info/info.scss +5 -4
  91. package/src/info/src/info-column/info-column.scss +7 -4
  92. package/src/input/src/input/input.scss +5 -4
  93. package/src/input-number/src/input-number/input-number.scss +5 -4
  94. package/src/loader/src/loader/loader.scss +5 -4
  95. package/src/modal/src/modal/modal.scss +5 -4
  96. package/src/notification/src/notification/notification.scss +5 -4
  97. package/src/paginator/src/paginator/paginator.scss +5 -4
  98. package/src/popover/src/popover/popover.scss +5 -4
  99. package/src/radio/src/radio/radio.scss +5 -4
  100. package/src/radio/src/radio-group/radio-group.scss +5 -4
  101. package/src/rating/src/rating/rating.scss +5 -4
  102. package/src/root/vars.scss +84 -81
  103. package/src/select/src/select/select.scss +5 -4
  104. package/src/slider/src/slider/slider.scss +5 -4
  105. package/src/switch/src/switch/switch.scss +6 -4
  106. package/src/table/src/table/table.scss +15 -0
  107. package/src/table/src/table-cell/table-cell.scss +5 -4
  108. package/src/tabs/src/tabs/tabs.scss +5 -4
  109. package/src/tabs/src/tabs-item/tabs-item.scss +5 -4
  110. package/src/tags/src/tags-item/tags-item.scss +5 -4
  111. package/src/textarea/src/textarea/textarea.scss +5 -4
  112. package/src/timepicker/src/timepicker/timepicker.scss +5 -4
  113. package/src/timepicker/src/timepicker-panel/timepicker-panel.scss +5 -4
  114. package/src/transfer/src/transfer/transfer.scss +5 -4
  115. package/themes/macos/alert/src/alert/alert.scss +4 -3
  116. package/themes/macos/button/src/button/button.scss +8 -3
  117. package/themes/macos/cascader/src/cascader/cascader.scss +5 -4
  118. package/themes/macos/checkbox/src/checkbox/checkbox.scss +5 -4
  119. package/themes/macos/collapse/src/collapse/collapse.scss +4 -3
  120. package/themes/macos/collapse/src/collapse-item/collapse-item.scss +4 -3
  121. package/themes/macos/confirm/src/confirm/confirm.scss +4 -3
  122. package/themes/macos/datepicker/src/datepicker/datepicker.scss +5 -4
  123. package/themes/macos/datepicker/src/datepicker-panel/datepicker-panel.scss +4 -3
  124. package/themes/macos/datetimepicker/src/datetimepicker/datetimepicker.scss +14 -12
  125. package/themes/macos/draggable/src/draggrid/draggrid.scss +4 -3
  126. package/themes/macos/draggable/src/draggrid-item/draggrid-item.scss +4 -3
  127. package/themes/macos/draggable/src/draglist/draglist.scss +4 -3
  128. package/themes/macos/draggable/src/draglist-item/draglist-item.scss +6 -5
  129. package/themes/macos/draggable/src/dropzone/dropzone.scss +4 -3
  130. package/themes/macos/drawer/index.scss +1 -0
  131. package/themes/macos/drawer/src/drawer/drawer.scss +35 -0
  132. package/themes/macos/durationpicker/src/durationpicker/durationpicker.scss +5 -4
  133. package/themes/macos/file/src/file/file.scss +4 -3
  134. package/themes/macos/form/src/form-group/form-group.scss +4 -3
  135. package/themes/macos/index-dark.scss +1 -39
  136. package/themes/macos/index-light.scss +1 -39
  137. package/themes/macos/index.scss +1 -2
  138. package/themes/macos/input/src/input/input.scss +6 -5
  139. package/themes/macos/input-number/src/input-number/input-number.scss +6 -5
  140. package/themes/macos/loader/src/loader/loader.scss +4 -3
  141. package/themes/macos/modal/src/modal/modal.scss +6 -5
  142. package/themes/macos/notification/src/notification/notification.scss +4 -3
  143. package/themes/macos/popover/src/popover/popover.scss +9 -8
  144. package/themes/macos/radio/src/radio/radio.scss +5 -4
  145. package/themes/macos/rating/src/rating/rating.scss +4 -3
  146. package/themes/macos/root/vars-dark.scss +87 -74
  147. package/themes/macos/root/vars-light.scss +87 -74
  148. package/themes/macos/root/vars.scss +88 -74
  149. package/themes/macos/select/src/select/select.scss +5 -4
  150. package/themes/macos/switch/src/switch/switch.scss +6 -4
  151. package/themes/macos/table/src/table/table.scss +3 -3
  152. package/themes/macos/table/src/table-cell/table-cell.scss +5 -4
  153. package/themes/macos/tabs/src/tabs/tabs.scss +4 -3
  154. package/themes/macos/tabs/src/tabs-item/tabs-item.scss +4 -3
  155. package/themes/macos/tags/src/tags-item/tags-item.scss +6 -4
  156. package/themes/macos/textarea/src/textarea/textarea.scss +5 -4
  157. package/themes/macos/timepicker/src/timepicker/timepicker.scss +5 -4
  158. package/themes/macos/timepicker/src/timepicker-panel/timepicker-panel.scss +4 -3
  159. package/webpack.config.js +81 -13
  160. package/bun.lockb +0 -0
  161. package/dist/nano-ui.css +0 -2
  162. package/dist/nano-ui.js +0 -4
  163. package/dist/nano-ui.js.map +0 -1
  164. package/dist/themes/dark.css +0 -2
  165. package/dist/themes/light.css +0 -2
  166. package/docs/dist/docs.css +0 -2
  167. package/docs/index.html +0 -176
  168. package/docs/src/scss/docsify/basic/_coverpage.sass +0 -95
  169. package/docs/src/scss/docsify/basic/_layout.sass +0 -472
  170. package/docs/src/scss/docsify/vue.sass +0 -250
  171. package/nano.svg +0 -52
  172. package/themes/light/alert/index.scss +0 -1
  173. package/themes/light/alert/src/alert/alert.scss +0 -26
  174. package/themes/light/button/index.scss +0 -2
  175. package/themes/light/button/src/button/button.scss +0 -46
  176. package/themes/light/button/src/button-group/button-group.scss +0 -1
  177. package/themes/light/cascader/index.scss +0 -2
  178. package/themes/light/cascader/src/cascader/cascader.scss +0 -45
  179. package/themes/light/cascader/src/cascader-panel/cascader-panel.scss +0 -13
  180. package/themes/light/checkbox/index.scss +0 -2
  181. package/themes/light/checkbox/src/checkbox/checkbox.scss +0 -44
  182. package/themes/light/checkbox/src/checkbox-group/checkbox-group.scss +0 -1
  183. package/themes/light/collapse/index.scss +0 -2
  184. package/themes/light/collapse/src/collapse/collapse.scss +0 -21
  185. package/themes/light/collapse/src/collapse-item/collapse-item.scss +0 -21
  186. package/themes/light/confirm/index.scss +0 -1
  187. package/themes/light/confirm/src/confirm/confirm.scss +0 -13
  188. package/themes/light/datepicker/index.scss +0 -2
  189. package/themes/light/datepicker/src/datepicker/datepicker.scss +0 -49
  190. package/themes/light/datepicker/src/datepicker-panel/datepicker-panel.scss +0 -43
  191. package/themes/light/datetimepicker/index.scss +0 -1
  192. package/themes/light/datetimepicker/src/datetimepicker/datetimepicker.scss +0 -49
  193. package/themes/light/demo/index.scss +0 -1
  194. package/themes/light/demo/src/demo/demo.scss +0 -11
  195. package/themes/light/draggable/index.scss +0 -9
  196. package/themes/light/draggable/src/draggrid/draggrid.scss +0 -13
  197. package/themes/light/draggable/src/draggrid-item/draggrid-item.scss +0 -65
  198. package/themes/light/draggable/src/draghandler/draghandler.scss +0 -15
  199. package/themes/light/draggable/src/draglist/draglist.scss +0 -13
  200. package/themes/light/draggable/src/draglist-item/draglist-item.scss +0 -72
  201. package/themes/light/draggable/src/dropzone/dropzone.scss +0 -13
  202. package/themes/light/durationpicker/index.scss +0 -1
  203. package/themes/light/durationpicker/src/durationpicker/durationpicker.scss +0 -49
  204. package/themes/light/empty/index.scss +0 -1
  205. package/themes/light/empty/src/empty-icon/empty-icon.scss +0 -13
  206. package/themes/light/file/index.scss +0 -1
  207. package/themes/light/file/src/file/file.scss +0 -38
  208. package/themes/light/form/index.scss +0 -3
  209. package/themes/light/form/src/form/form.scss +0 -1
  210. package/themes/light/form/src/form-group/form-group.scss +0 -17
  211. package/themes/light/form/src/form-item/form-item.scss +0 -29
  212. package/themes/light/index.scss +0 -38
  213. package/themes/light/info/index.scss +0 -3
  214. package/themes/light/info/src/info/info.scss +0 -5
  215. package/themes/light/info/src/info-column/info-column.scss +0 -5
  216. package/themes/light/info/src/info-field/info-field.scss +0 -5
  217. package/themes/light/input/index.scss +0 -1
  218. package/themes/light/input/src/input/input.scss +0 -37
  219. package/themes/light/input-number/index.scss +0 -1
  220. package/themes/light/input-number/src/input-number/input-number.scss +0 -46
  221. package/themes/light/loader/index.scss +0 -1
  222. package/themes/light/loader/src/loader/loader.scss +0 -21
  223. package/themes/light/map/index.scss +0 -1
  224. package/themes/light/map/src/map/map.scss +0 -1
  225. package/themes/light/modal/index.scss +0 -1
  226. package/themes/light/modal/src/modal/modal.scss +0 -51
  227. package/themes/light/notification/index.scss +0 -1
  228. package/themes/light/notification/src/notification/notification.scss +0 -24
  229. package/themes/light/paginator/index.scss +0 -1
  230. package/themes/light/paginator/src/paginator/paginator.scss +0 -5
  231. package/themes/light/popover/index.scss +0 -1
  232. package/themes/light/popover/src/popover/popover.scss +0 -100
  233. package/themes/light/radio/index.scss +0 -2
  234. package/themes/light/radio/src/radio/radio.scss +0 -44
  235. package/themes/light/radio/src/radio-group/radio-group.scss +0 -1
  236. package/themes/light/rating/index.scss +0 -1
  237. package/themes/light/rating/src/rating/rating.scss +0 -18
  238. package/themes/light/resizer/index.scss +0 -1
  239. package/themes/light/resizer/src/resizer/resizer.scss +0 -5
  240. package/themes/light/root/vars.scss +0 -183
  241. package/themes/light/scrollbar/index.scss +0 -1
  242. package/themes/light/scrollbar/src/scrollbar/scrollbar.scss +0 -6
  243. package/themes/light/select/index.scss +0 -2
  244. package/themes/light/select/src/select/select.scss +0 -46
  245. package/themes/light/select/src/select-option/select-option.scss +0 -1
  246. package/themes/light/switch/index.scss +0 -1
  247. package/themes/light/switch/src/switch/switch.scss +0 -28
  248. package/themes/light/table/index.scss +0 -4
  249. package/themes/light/table/src/table/table.scss +0 -14
  250. package/themes/light/table/src/table-cell/table-cell.scss +0 -50
  251. package/themes/light/table/src/table-column/table-column.scss +0 -32
  252. package/themes/light/table/src/table-filter/table-filter.scss +0 -1
  253. package/themes/light/tabs/index.scss +0 -2
  254. package/themes/light/tabs/src/tabs/tabs.scss +0 -21
  255. package/themes/light/tabs/src/tabs-item/tabs-item.scss +0 -18
  256. package/themes/light/tags/index.scss +0 -2
  257. package/themes/light/tags/src/tags/tags.scss +0 -1
  258. package/themes/light/tags/src/tags-item/tags-item.scss +0 -28
  259. package/themes/light/textarea/index.scss +0 -1
  260. package/themes/light/textarea/src/textarea/textarea.scss +0 -29
  261. package/themes/light/timepicker/index.scss +0 -2
  262. package/themes/light/timepicker/src/timepicker/timepicker.scss +0 -49
  263. package/themes/light/timepicker/src/timepicker-panel/timepicker-panel.scss +0 -26
  264. package/themes/light/transfer/index.scss +0 -1
  265. package/themes/light/transfer/src/transfer/transfer.scss +0 -17
  266. package/themes/light/virtualscroller/index.scss +0 -1
  267. package/themes/light/virtualscroller/src/virtualscroller/virtualscroller.scss +0 -1
  268. /package/{themes/light → src}/root/image/empty-default.svg +0 -0
  269. /package/{themes/light → src}/root/image/empty-space.svg +0 -0
  270. /package/{themes/light → src}/root/image/star-default.svg +0 -0
@@ -0,0 +1,28 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-frame {
4
+ display: flex;
5
+ flex-direction: row;
6
+ align-items: stretch;
7
+ justify-content: stretch;
8
+ }
9
+
10
+ .n-frame-item {
11
+ position: relative;
12
+ }
13
+
14
+ .n-frame-item.is-resize {
15
+ flex: 0 0 auto;
16
+ }
17
+
18
+ .n-frame-item:not(.is-resize) {
19
+ flex: 1 1 auto;
20
+ }
21
+
22
+ .n-frame-item.is-scrollbar > .n-scrollbar {
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ width: 100%;
27
+ height: 100%;
28
+ }
@@ -0,0 +1,114 @@
1
+ import { Arr, Obj, Any, Dom, UUID, Locale } from "@kizmann/pico-js";
2
+
3
+ export default {
4
+
5
+ name: 'NFrameItem',
6
+
7
+ inject: {
8
+
9
+ NFrame: {
10
+ default: undefined
11
+ },
12
+
13
+ },
14
+
15
+ props: {
16
+
17
+ width: {
18
+ default()
19
+ {
20
+ return 0;
21
+ },
22
+ type: [Number]
23
+ },
24
+
25
+ resize: {
26
+ default() {
27
+ return null;
28
+ },
29
+ type: [Boolean]
30
+ },
31
+
32
+ scrollbar: {
33
+ default() {
34
+ return null;
35
+ },
36
+ type: [Boolean]
37
+ }
38
+
39
+ },
40
+
41
+ computed: {
42
+
43
+ itemResize() {
44
+ return Any.isNull(this.resize) ? this.NFrame.resize : this.resize;
45
+ },
46
+
47
+ itemScrollbar() {
48
+ return Any.isNull(this.scrollbar) ? this.NFrame.scrollbar : this.scrollbar;
49
+ }
50
+
51
+ },
52
+
53
+ renderContent()
54
+ {
55
+ if ( ! this.itemScrollbar ) {
56
+ return this.$slots.default && this.$slots.default();
57
+ }
58
+
59
+ return (
60
+ <NScrollbar>{this.$slots.default && this.$slots.default()}</NScrollbar>
61
+ );
62
+ },
63
+
64
+ renderDiv(classList)
65
+ {
66
+ let style = {
67
+ //
68
+ };
69
+
70
+ if ( this.width ) {
71
+ style.width = this.width + 'px';
72
+ }
73
+
74
+ return (
75
+ <div class={classList} style={style}>
76
+ {this.ctor('renderContent')()}
77
+ </div>
78
+ );
79
+ },
80
+
81
+ renderResizer(classList, style)
82
+ {
83
+ let props = {
84
+ width: this.width
85
+ };
86
+
87
+ return (
88
+ <NResizer class={classList} {...props}>
89
+ {this.ctor('renderContent')()}
90
+ </NResizer>
91
+ );
92
+ },
93
+
94
+ render()
95
+ {
96
+ let classList = [
97
+ 'n-frame-item'
98
+ ];
99
+
100
+ if ( this.itemResize ) {
101
+ classList.push('is-resize');
102
+ }
103
+
104
+ if ( this.itemScrollbar ) {
105
+ classList.push('is-scrollbar');
106
+ }
107
+
108
+ if ( this.itemResize ) {
109
+ return this.ctor('renderResizer')(classList);
110
+ }
111
+
112
+ return this.ctor('renderDiv')(classList);
113
+ }
114
+ }
@@ -1,3 +1,5 @@
1
+ import { UUID } from "@kizmann/pico-js";
2
+
1
3
  export default {
2
4
 
3
5
  name: 'NFormGroup',
@@ -20,6 +22,14 @@ export default {
20
22
  type: [Boolean]
21
23
  },
22
24
 
25
+ key: {
26
+ default()
27
+ {
28
+ return UUID();
29
+ },
30
+ type: [String]
31
+ },
32
+
23
33
  label: {
24
34
  default()
25
35
  {
@@ -43,6 +53,14 @@ export default {
43
53
  type: [String]
44
54
  },
45
55
 
56
+ kind: {
57
+ default()
58
+ {
59
+ return 'classic';
60
+ },
61
+ type: [String]
62
+ },
63
+
46
64
  type: {
47
65
  default()
48
66
  {
@@ -85,6 +103,20 @@ export default {
85
103
 
86
104
  },
87
105
 
106
+ mounted()
107
+ {
108
+ if ( this.NForm ) {
109
+ this.NForm.registerGroup(this);
110
+ }
111
+ },
112
+
113
+ unmounted()
114
+ {
115
+ if ( this.NForm ) {
116
+ this.NForm.unregisterGroup(this);
117
+ }
118
+ },
119
+
88
120
  data()
89
121
  {
90
122
  return {
@@ -227,7 +259,7 @@ export default {
227
259
  }
228
260
 
229
261
  return (
230
- <fieldset class={classList}>
262
+ <fieldset id={this.key} class={classList} data-group-key={this.key}>
231
263
  { this.ctor('renderLabel')() }
232
264
  { this.ctor('renderTooltip')() }
233
265
  { this.ctor('renderBody')() }
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-form-group__legend {
@@ -49,10 +50,10 @@
49
50
 
50
51
  @each $suffix, $values in $form {
51
52
 
52
- $-form-group-font: map-get($values, 'font');
53
- $-form-group-size: map-get($values, 'size');
54
- $-form-group-radius: map-get($values, 'radius');
55
- $-form-group-ratio: map-get($values, 'ratio');
53
+ $-form-group-font: map.get($values, 'font');
54
+ $-form-group-size: map.get($values, 'size');
55
+ $-form-group-radius: map.get($values, 'radius');
56
+ $-form-group-ratio: map.get($values, 'ratio');
56
57
 
57
58
  .n-form-group--#{$suffix} .n-form-group__legend {
58
59
  font-size: $-form-group-font;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-form-item {
@@ -49,10 +50,10 @@
49
50
 
50
51
  @each $suffix, $values in $form {
51
52
 
52
- $-form-item-font: map-get($values, 'font');
53
- $-form-item-size: map-get($values, 'size');
54
- $-form-item-radius: map-get($values, 'radius');
55
- $-form-item-ratio: map-get($values, 'ratio');
53
+ $-form-item-font: map.get($values, 'font');
54
+ $-form-item-size: map.get($values, 'size');
55
+ $-form-item-radius: map.get($values, 'radius');
56
+ $-form-item-ratio: map.get($values, 'ratio');
56
57
 
57
58
  .n-form-item--#{$suffix} {
58
59
  margin-bottom: $-form-item-size * $-form-item-ratio * 2.2;
@@ -0,0 +1,89 @@
1
+ import { Arr, Obj, Any, Dom, UUID, Locale } from "@kizmann/pico-js";
2
+
3
+ export default {
4
+
5
+ name: 'NFormMenu',
6
+
7
+ inject: {
8
+
9
+ NForm: {
10
+ default: undefined
11
+ },
12
+
13
+ },
14
+
15
+ props: {
16
+
17
+ size: {
18
+ default()
19
+ {
20
+ return '';
21
+ },
22
+ type: [String]
23
+ },
24
+
25
+ },
26
+
27
+ mounted()
28
+ {
29
+
30
+ Dom.find(document).on('scroll', Any.debounce(() => {
31
+
32
+ let loop = true;
33
+
34
+ Arr.each(this.NForm.groups, (item) => {
35
+ loop = loop && ! this.bindInviewEvent(item);
36
+ })
37
+ }));
38
+ },
39
+
40
+ methods: {
41
+
42
+ bindInviewEvent(item)
43
+ {
44
+ let [menu, group] = [
45
+ `[data-menu-key="${item.key}"]`,
46
+ `[data-group-key="${item.key}"]`
47
+ ];
48
+
49
+ let inview = Dom.find(group).inviewY(0.1);
50
+
51
+ Dom.find('[data-menu-key]')
52
+ .removeClass('is-visible');
53
+
54
+ if ( inview ) {
55
+ Dom.find(menu).addClass('is-visible');
56
+ }
57
+
58
+ return inview;
59
+ }
60
+
61
+ },
62
+
63
+ renderMenu(item)
64
+ {
65
+ return (
66
+ <div data-menu-key={item.key}>
67
+ <a href={'#' + item.key}>{item.label}</a>
68
+ </div>
69
+ );
70
+ },
71
+
72
+ renderMenus()
73
+ {
74
+ return Arr.each(this.NForm.groups, (item) => {
75
+ return this.ctor('renderMenu')(item);
76
+ })
77
+ },
78
+
79
+ render()
80
+ {
81
+ let classList = [
82
+ 'n-form-menu'
83
+ ];
84
+
85
+ return <div class={classList}>
86
+ {this.ctor('renderMenus')()}
87
+ </div>;
88
+ }
89
+ }
@@ -0,0 +1,9 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-form-menu [data-menu-key] a {
4
+ color: red;
5
+ }
6
+
7
+ .n-form-menu [data-menu-key].is-visible a {
8
+ color: green;
9
+ }
package/src/index.js CHANGED
@@ -93,6 +93,7 @@ export function Install(App, Icons = {}, Styles = {})
93
93
  require('./map/index').default(App);
94
94
  require('./file/index').default(App);
95
95
  require('./rating/index').default(App);
96
+ require('./drawer/index').default(App);
96
97
 
97
98
  // require('./chart/index'); // Ignore
98
99
  // require('./wysiwyg/index'); // Ignore
package/src/index.scss CHANGED
@@ -37,4 +37,5 @@
37
37
  @import "./preview/index";
38
38
  @import "./rating/index";
39
39
  @import "./config/index";
40
+ @import "./drawer/index";
40
41
 
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-info {
@@ -22,10 +23,10 @@
22
23
 
23
24
  @each $suffix, $values in $form {
24
25
 
25
- $-info-font: map-get($values, 'font');
26
- $-info-size: map-get($values, 'size');
27
- $-info-radius: map-get($values, 'radius');
28
- $-info-ratio: map-get($values, 'ratio');
26
+ $-info-font: map.get($values, 'font');
27
+ $-info-size: map.get($values, 'size');
28
+ $-info-radius: map.get($values, 'radius');
29
+ $-info-ratio: map.get($values, 'ratio');
29
30
 
30
31
  .n-info--#{$suffix} {
31
32
  font-size: $-info-font;
@@ -1,13 +1,16 @@
1
+ @use 'sass:map';
2
+ @import "../../../root/vars";
3
+
1
4
  .n-info-column {
2
5
  color: $color-gray-60;
3
6
  }
4
7
 
5
8
  @each $suffix, $values in $form {
6
9
 
7
- $-info-font: map-get($values, 'font');
8
- $-info-size: map-get($values, 'size');
9
- $-info-radius: map-get($values, 'radius');
10
- $-info-ratio: map-get($values, 'ratio');
10
+ $-info-font: map.get($values, 'font');
11
+ $-info-size: map.get($values, 'size');
12
+ $-info-radius: map.get($values, 'radius');
13
+ $-info-ratio: map.get($values, 'ratio');
11
14
 
12
15
  .n-info--#{$suffix} .n-info-column {
13
16
  font-size: $-info-font - 2;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-input {
@@ -46,10 +47,10 @@
46
47
 
47
48
  @each $suffix, $values in $form {
48
49
 
49
- $-input-font: map-get($values, 'font');
50
- $-input-size: map-get($values, 'size');
51
- $-input-radius: map-get($values, 'radius');
52
- $-input-ratio: map-get($values, 'ratio');
50
+ $-input-font: map.get($values, 'font');
51
+ $-input-size: map.get($values, 'size');
52
+ $-input-radius: map.get($values, 'radius');
53
+ $-input-ratio: map.get($values, 'ratio');
53
54
 
54
55
  .n-input--#{$suffix} {
55
56
  font-size: $-input-font;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-input-number {
@@ -65,10 +66,10 @@
65
66
 
66
67
  @each $suffix, $values in $form {
67
68
 
68
- $-input-number-font: map-get($values, 'font');
69
- $-input-number-size: map-get($values, 'size');
70
- $-input-number-radius: map-get($values, 'radius');
71
- $-input-number-ratio: map-get($values, 'ratio');
69
+ $-input-number-font: map.get($values, 'font');
70
+ $-input-number-size: map.get($values, 'size');
71
+ $-input-number-radius: map.get($values, 'radius');
72
+ $-input-number-ratio: map.get($values, 'ratio');
72
73
 
73
74
  .n-input-number--#{$suffix} {
74
75
  font-size: $-input-number-font;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-loader {
@@ -51,10 +52,10 @@
51
52
 
52
53
  @each $suffix, $values in $form {
53
54
 
54
- $-loader-font: map-get($values, 'font');
55
- $-loader-size: map-get($values, 'size');
56
- $-loader-radius: map-get($values, 'radius');
57
- $-loader-ratio: map-get($values, 'ratio');
55
+ $-loader-font: map.get($values, 'font');
56
+ $-loader-size: map.get($values, 'size');
57
+ $-loader-radius: map.get($values, 'radius');
58
+ $-loader-ratio: map.get($values, 'ratio');
58
59
 
59
60
  $-loader-calc: round(($-loader-size / 1px) * ($-loader-font / 2px) * 0.085);
60
61
 
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-modal {
@@ -145,10 +146,10 @@
145
146
 
146
147
  @each $suffix, $values in $form {
147
148
 
148
- $-modal-font: map-get($values, 'font');
149
- $-modal-size: map-get($values, 'size');
150
- $-modal-radius: map-get($values, 'radius');
151
- $-modal-ratio: map-get($values, 'ratio');
149
+ $-modal-font: map.get($values, 'font');
150
+ $-modal-size: map.get($values, 'size');
151
+ $-modal-radius: map.get($values, 'radius');
152
+ $-modal-ratio: map.get($values, 'ratio');
152
153
 
153
154
  .n-modal--#{$suffix} {
154
155
  font-size: $-modal-font;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-notification-frame {
@@ -81,10 +82,10 @@
81
82
 
82
83
  @each $suffix, $values in $form {
83
84
 
84
- $-notification-font: map-get($values, 'font');
85
- $-notification-size: map-get($values, 'size');
86
- $-notification-radius: map-get($values, 'radius');
87
- $-notification-ratio: map-get($values, 'ratio');
85
+ $-notification-font: map.get($values, 'font');
86
+ $-notification-size: map.get($values, 'size');
87
+ $-notification-radius: map.get($values, 'radius');
88
+ $-notification-ratio: map.get($values, 'ratio');
88
89
 
89
90
  $-notification-padding: $-notification-size * $-notification-ratio;
90
91
 
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-paginator {
@@ -36,10 +37,10 @@
36
37
 
37
38
  @each $suffix, $values in $form {
38
39
 
39
- $-paginator-font: map-get($values, 'font');
40
- $-paginator-size: map-get($values, 'size');
41
- $-paginator-radius: map-get($values, 'radius');
42
- $-paginator-ratio: map-get($values, 'ratio');
40
+ $-paginator-font: map.get($values, 'font');
41
+ $-paginator-size: map.get($values, 'size');
42
+ $-paginator-radius: map.get($values, 'radius');
43
+ $-paginator-ratio: map.get($values, 'ratio');
43
44
 
44
45
  .n-paginator--#{$suffix} .n-paginator__count {
45
46
  font-size: $-paginator-font;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-popover {
@@ -100,10 +101,10 @@
100
101
 
101
102
  @each $suffix, $values in $form {
102
103
 
103
- $-popover-font: map-get($values, 'font');
104
- $-popover-size: map-get($values, 'size');
105
- $-popover-radius: map-get($values, 'radius');
106
- $-popover-ratio: map-get($values, 'ratio');
104
+ $-popover-font: map.get($values, 'font');
105
+ $-popover-size: map.get($values, 'size');
106
+ $-popover-radius: map.get($values, 'radius');
107
+ $-popover-ratio: map.get($values, 'ratio');
107
108
 
108
109
  .n-popover--#{$suffix} {
109
110
  font-size: $-popover-font;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-radio {
@@ -38,10 +39,10 @@
38
39
 
39
40
  @each $suffix, $values in $form {
40
41
 
41
- $-radio-font: map-get($values, 'font');
42
- $-radio-size: map-get($values, 'size');
43
- $-radio-radius: map-get($values, 'radius');
44
- $-radio-ratio: map-get($values, 'ratio');
42
+ $-radio-font: map.get($values, 'font');
43
+ $-radio-size: map.get($values, 'size');
44
+ $-radio-radius: map.get($values, 'radius');
45
+ $-radio-ratio: map.get($values, 'ratio');
45
46
 
46
47
  .n-radio--#{$suffix} {
47
48
  min-height: $-radio-size;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-radio-group {
@@ -22,10 +23,10 @@
22
23
 
23
24
  @each $suffix, $values in $form {
24
25
 
25
- $-radio-group-font: map-get($values, 'font');
26
- $-radio-group-size: map-get($values, 'size');
27
- $-radio-group-radius: map-get($values, 'radius');
28
- $-radio-group-ratio: map-get($values, 'ratio');
26
+ $-radio-group-font: map.get($values, 'font');
27
+ $-radio-group-size: map.get($values, 'size');
28
+ $-radio-group-radius: map.get($values, 'radius');
29
+ $-radio-group-ratio: map.get($values, 'ratio');
29
30
 
30
31
  .n-radio-group--#{$suffix}.n-radio-group--horizontal .n-radio {
31
32
  $min-height: 0;
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @import "../../../root/vars";
2
3
 
3
4
  .n-rating {
@@ -66,10 +67,10 @@
66
67
 
67
68
  @each $suffix, $values in $form {
68
69
 
69
- $-rating-font: map-get($values, 'font');
70
- $-rating-size: map-get($values, 'size');
71
- $-rating-radius: map-get($values, 'radius');
72
- $-rating-ratio: map-get($values, 'ratio');
70
+ $-rating-font: map.get($values, 'font');
71
+ $-rating-size: map.get($values, 'size');
72
+ $-rating-radius: map.get($values, 'radius');
73
+ $-rating-ratio: map.get($values, 'ratio');
73
74
 
74
75
  $-rating-star: $-rating-size * $-rating-ratio * 1.2;
75
76