namirasoft-site-react 1.5.46 → 1.5.48

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 (478) hide show
  1. package/.dockerignore +86 -86
  2. package/.env.template +10 -10
  3. package/Dockerfile +18 -18
  4. package/SKILL.md +307 -307
  5. package/config-overrides.js +72 -72
  6. package/dist/App.css +33 -33
  7. package/dist/App.d.ts +2 -2
  8. package/dist/NSBoxBuilder.d.ts +25 -25
  9. package/dist/components/NSBanner.d.ts +1 -1
  10. package/dist/components/NSBanner.module.css +47 -47
  11. package/dist/components/NSBarAction.d.ts +1 -1
  12. package/dist/components/NSBarAction.module.css +91 -91
  13. package/dist/components/NSBarAlert.d.ts +1 -1
  14. package/dist/components/NSBarAlert.module.css +79 -79
  15. package/dist/components/NSBarNotification.d.ts +1 -1
  16. package/dist/components/NSBarNotification.module.css +34 -34
  17. package/dist/components/NSBarTitle.d.ts +1 -1
  18. package/dist/components/NSBarTitle.module.css +9 -9
  19. package/dist/components/NSBox.module.css +87 -87
  20. package/dist/components/NSBoxBaseCombo.d.ts +1 -1
  21. package/dist/components/NSBoxBaseCombo.module.css +24 -24
  22. package/dist/components/NSBoxBaseLayout.d.ts +1 -1
  23. package/dist/components/NSBoxBaseLayoutRecursive.d.ts +1 -1
  24. package/dist/components/NSBoxBoolean.d.ts +1 -1
  25. package/dist/components/NSBoxBoolean.module.css +73 -73
  26. package/dist/components/NSBoxBooleans.d.ts +1 -1
  27. package/dist/components/NSBoxColor.d.ts +1 -1
  28. package/dist/components/NSBoxCombo.d.ts +1 -1
  29. package/dist/components/NSBoxDate.d.ts +1 -1
  30. package/dist/components/NSBoxDate.module.css +4 -4
  31. package/dist/components/NSBoxDateRange.d.ts +1 -1
  32. package/dist/components/NSBoxDateRangeBase.d.ts +1 -1
  33. package/dist/components/NSBoxDateRangeBase.module.css +73 -73
  34. package/dist/components/NSBoxDateTime.d.ts +1 -1
  35. package/dist/components/NSBoxDateTime.module.css +4 -4
  36. package/dist/components/NSBoxDateTimeRange.d.ts +1 -1
  37. package/dist/components/NSBoxDouble.d.ts +1 -1
  38. package/dist/components/NSBoxDuration.d.ts +1 -1
  39. package/dist/components/NSBoxDuration.module.css +4 -4
  40. package/dist/components/NSBoxDynamic.d.ts +1 -1
  41. package/dist/components/NSBoxDynamics.d.ts +1 -1
  42. package/dist/components/NSBoxEmail.d.ts +1 -1
  43. package/dist/components/NSBoxEntity.d.ts +1 -1
  44. package/dist/components/NSBoxEnum.d.ts +1 -1
  45. package/dist/components/NSBoxFile.d.ts +1 -1
  46. package/dist/components/NSBoxFile.module.css +10 -10
  47. package/dist/components/NSBoxFilePath.d.ts +1 -1
  48. package/dist/components/NSBoxFont.d.ts +1 -1
  49. package/dist/components/NSBoxIPV4.d.ts +1 -1
  50. package/dist/components/NSBoxIPV4Range.d.ts +1 -1
  51. package/dist/components/NSBoxIPV6.d.ts +1 -1
  52. package/dist/components/NSBoxIPV6Range.d.ts +1 -1
  53. package/dist/components/NSBoxInteger.d.ts +1 -1
  54. package/dist/components/NSBoxInteger.module.css +16 -16
  55. package/dist/components/NSBoxMoney.d.ts +1 -1
  56. package/dist/components/NSBoxOptions.d.ts +1 -1
  57. package/dist/components/NSBoxOptions.module.css +53 -53
  58. package/dist/components/NSBoxPhone.d.ts +1 -1
  59. package/dist/components/NSBoxPhone.module.css +35 -35
  60. package/dist/components/NSBoxRadio.d.ts +1 -1
  61. package/dist/components/NSBoxRadio.module.css +33 -33
  62. package/dist/components/NSBoxSchemaBase.d.ts +1 -1
  63. package/dist/components/NSBoxSchemaBase.module.css +17 -17
  64. package/dist/components/NSBoxSchemaVariable.d.ts +1 -1
  65. package/dist/components/NSBoxSchemaVariable.module.css +16 -16
  66. package/dist/components/NSBoxSearch.d.ts +1 -1
  67. package/dist/components/NSBoxSensitive.d.ts +1 -1
  68. package/dist/components/NSBoxString.d.ts +4 -1
  69. package/dist/components/NSBoxString.js +40 -7
  70. package/dist/components/NSBoxString.js.map +1 -1
  71. package/dist/components/NSBoxTextArea.d.ts +1 -1
  72. package/dist/components/NSBoxTextArea.module.css +12 -12
  73. package/dist/components/NSBoxTime.d.ts +1 -1
  74. package/dist/components/NSBoxTime.module.css +4 -4
  75. package/dist/components/NSBoxTimeRange.d.ts +1 -1
  76. package/dist/components/NSBoxTimeZone.d.ts +1 -1
  77. package/dist/components/NSBoxURL.d.ts +1 -1
  78. package/dist/components/NSBoxVersion.d.ts +1 -1
  79. package/dist/components/NSButton.module.css +57 -57
  80. package/dist/components/NSButtonBlue.d.ts +1 -1
  81. package/dist/components/NSButtonBlue.module.css +4 -4
  82. package/dist/components/NSButtonGreen.d.ts +1 -1
  83. package/dist/components/NSButtonGreen.module.css +4 -4
  84. package/dist/components/NSButtonRed.d.ts +1 -1
  85. package/dist/components/NSButtonRed.module.css +4 -4
  86. package/dist/components/NSCard.d.ts +1 -1
  87. package/dist/components/NSCard.module.css +122 -122
  88. package/dist/components/NSCardScreenshot.d.ts +1 -1
  89. package/dist/components/NSCardScreenshot.module.css +41 -41
  90. package/dist/components/NSChartBar.d.ts +1 -1
  91. package/dist/components/NSChartDoughnut.d.ts +1 -1
  92. package/dist/components/NSChartLine.d.ts +1 -1
  93. package/dist/components/NSChartPie.d.ts +1 -1
  94. package/dist/components/NSChartRange.d.ts +1 -1
  95. package/dist/components/NSColumn.d.ts +1 -1
  96. package/dist/components/NSColumn.module.css +16 -16
  97. package/dist/components/NSCopy.d.ts +1 -1
  98. package/dist/components/NSCopyBox.d.ts +1 -1
  99. package/dist/components/NSCopyBox.module.css +39 -39
  100. package/dist/components/NSDialog.d.ts +1 -1
  101. package/dist/components/NSDialog.module.css +105 -105
  102. package/dist/components/NSDialogBox.d.ts +1 -1
  103. package/dist/components/NSDialogBoxDate.d.ts +1 -1
  104. package/dist/components/NSDialogBoxDateTime.d.ts +1 -1
  105. package/dist/components/NSDialogBoxPhone.d.ts +1 -1
  106. package/dist/components/NSDialogBoxString.d.ts +1 -1
  107. package/dist/components/NSDialogDelete.d.ts +1 -1
  108. package/dist/components/NSDialogInfo.d.ts +1 -1
  109. package/dist/components/NSDialogPageSelection.d.ts +2 -2
  110. package/dist/components/NSDialogPageSelection.module.css +103 -103
  111. package/dist/components/NSDownTimer.d.ts +1 -1
  112. package/dist/components/NSDownTimer.module.css +55 -55
  113. package/dist/components/NSDownload.d.ts +1 -1
  114. package/dist/components/NSDownload.module.css +46 -46
  115. package/dist/components/NSElectronicCard.d.ts +1 -1
  116. package/dist/components/NSElectronicCard.module.css +66 -66
  117. package/dist/components/NSEntityCardBackground.d.ts +1 -1
  118. package/dist/components/NSEntityCardBackground.module.css +27 -27
  119. package/dist/components/NSFilterBox.d.ts +2 -2
  120. package/dist/components/NSFilterBox.module.css +27 -27
  121. package/dist/components/NSFilterBoxItems.d.ts +1 -1
  122. package/dist/components/NSFilterBoxItems.module.css +15 -15
  123. package/dist/components/NSFilterItem.d.ts +1 -1
  124. package/dist/components/NSFilterItem.module.css +24 -24
  125. package/dist/components/NSFooter.d.ts +1 -1
  126. package/dist/components/NSFooter.module.css +140 -140
  127. package/dist/components/NSGauge.d.ts +1 -1
  128. package/dist/components/NSGauge.module.css +67 -67
  129. package/dist/components/NSGaugeDate.d.ts +1 -1
  130. package/dist/components/NSGaugeDate.module.css +57 -57
  131. package/dist/components/NSGaugeNumber.d.ts +1 -1
  132. package/dist/components/NSGaugeNumber.module.css +66 -66
  133. package/dist/components/NSHeader.d.ts +1 -1
  134. package/dist/components/NSHeader.module.css +355 -355
  135. package/dist/components/NSHeaderScreenshot.d.ts +1 -1
  136. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  137. package/dist/components/NSID.d.ts +1 -1
  138. package/dist/components/NSInfo.d.ts +1 -1
  139. package/dist/components/NSLabel.d.ts +1 -1
  140. package/dist/components/NSLabel.module.css +25 -25
  141. package/dist/components/NSLabelErrorNotifier.d.ts +1 -1
  142. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  143. package/dist/components/NSLabelSensitive.d.ts +1 -1
  144. package/dist/components/NSLabelSensitive.module.css +9 -9
  145. package/dist/components/NSLayout.d.ts +1 -1
  146. package/dist/components/NSLayout.module.css +22 -22
  147. package/dist/components/NSLine.d.ts +1 -1
  148. package/dist/components/NSLine.module.css +15 -15
  149. package/dist/components/NSLineText.d.ts +1 -1
  150. package/dist/components/NSLineText.module.css +38 -38
  151. package/dist/components/NSLink.d.ts +1 -1
  152. package/dist/components/NSLinkBlue.d.ts +1 -1
  153. package/dist/components/NSLinkGreen.d.ts +1 -1
  154. package/dist/components/NSLinkRed.d.ts +1 -1
  155. package/dist/components/NSListGrouped.d.ts +1 -1
  156. package/dist/components/NSListGrouped.module.css +69 -69
  157. package/dist/components/NSListProduct.d.ts +1 -1
  158. package/dist/components/NSLoading.d.ts +1 -1
  159. package/dist/components/NSLoading.module.css +10 -10
  160. package/dist/components/NSMarkdown.d.ts +1 -1
  161. package/dist/components/NSMegaMenu.d.ts +1 -1
  162. package/dist/components/NSMegaMenu.module.css +133 -133
  163. package/dist/components/NSMenuAction.d.ts +1 -1
  164. package/dist/components/NSMenuAction.module.css +88 -88
  165. package/dist/components/NSMenuButton.d.ts +1 -1
  166. package/dist/components/NSMenuButton.module.css +44 -44
  167. package/dist/components/NSNoData.d.ts +1 -1
  168. package/dist/components/NSNoData.module.css +11 -11
  169. package/dist/components/NSPagination.d.ts +1 -1
  170. package/dist/components/NSPagination.module.css +94 -94
  171. package/dist/components/NSPanel.d.ts +1 -1
  172. package/dist/components/NSPanel.module.css +28 -28
  173. package/dist/components/NSPanelAccordion.d.ts +1 -1
  174. package/dist/components/NSPanelAccordion.module.css +4 -4
  175. package/dist/components/NSProductSearch.d.ts +1 -1
  176. package/dist/components/NSProductSearch.module.css +73 -73
  177. package/dist/components/NSProgressBar.d.ts +1 -1
  178. package/dist/components/NSProgressBar.module.css +38 -38
  179. package/dist/components/NSRange.d.ts +1 -1
  180. package/dist/components/NSRange.module.css +66 -66
  181. package/dist/components/NSReorderDialog.d.ts +1 -1
  182. package/dist/components/NSReorderDialog.module.css +53 -53
  183. package/dist/components/NSRepeater.d.ts +1 -1
  184. package/dist/components/NSRepeaterNSBoxSchemaVariable.d.ts +1 -1
  185. package/dist/components/NSRepeaterNSTag.d.ts +1 -1
  186. package/dist/components/NSRow.d.ts +1 -1
  187. package/dist/components/NSRow.module.css +17 -17
  188. package/dist/components/NSSection.d.ts +1 -1
  189. package/dist/components/NSSection.module.css +4 -4
  190. package/dist/components/NSSectionCards.d.ts +1 -1
  191. package/dist/components/NSSectionCards.module.css +38 -38
  192. package/dist/components/NSSectionTiles.d.ts +1 -1
  193. package/dist/components/NSSectionTiles.module.css +10 -10
  194. package/dist/components/NSSectionTitle.d.ts +1 -1
  195. package/dist/components/NSSortDialog.d.ts +1 -1
  196. package/dist/components/NSSpace.d.ts +1 -1
  197. package/dist/components/NSSplitter.d.ts +1 -1
  198. package/dist/components/NSSplitter.module.css +59 -59
  199. package/dist/components/NSTabPage.d.ts +1 -1
  200. package/dist/components/NSTabPage.module.css +59 -59
  201. package/dist/components/NSTable.d.ts +1 -1
  202. package/dist/components/NSTable.js +23 -23
  203. package/dist/components/NSTable.module.css +376 -376
  204. package/dist/components/NSTableChart.d.ts +1 -1
  205. package/dist/components/NSTableChart.module.css +119 -119
  206. package/dist/components/NSTag.d.ts +1 -1
  207. package/dist/components/NSTile.d.ts +1 -1
  208. package/dist/components/NSTile.module.css +76 -76
  209. package/dist/components/NSTimelineMonthly.d.ts +1 -1
  210. package/dist/components/NSTimelineMonthly.module.css +71 -71
  211. package/dist/components/NSTitle.d.ts +1 -1
  212. package/dist/components/NSTitle.module.css +15 -15
  213. package/dist/pages/NSImplementing.d.ts +1 -1
  214. package/dist/pages/NSImplementing.module.css +35 -35
  215. package/dist/pages/NSNotFoundPage.d.ts +1 -1
  216. package/dist/pages/NSNotFoundPage.module.css +18 -18
  217. package/dist/pages/NSUpdating.d.ts +1 -1
  218. package/dist/pages/NSUpdating.module.css +35 -35
  219. package/package.json +86 -86
  220. package/public/index.html +38 -38
  221. package/src/App.css +33 -33
  222. package/src/App.tsx +926 -926
  223. package/src/BrowserDetector.ts +109 -109
  224. package/src/Color.tsx +10 -10
  225. package/src/CopyToClipboard.ts +6 -6
  226. package/src/EncryptionOperation.ts +98 -98
  227. package/src/KeyOperation.ts +113 -113
  228. package/src/LinkOperation.ts +101 -101
  229. package/src/NSBoxBuilder.tsx +923 -923
  230. package/src/ProductCacheService.ts +36 -36
  231. package/src/Validator.ts +199 -199
  232. package/src/components/INSBox.tsx +7 -7
  233. package/src/components/NSBanner.module.css +47 -47
  234. package/src/components/NSBanner.tsx +80 -80
  235. package/src/components/NSBarAction.module.css +91 -91
  236. package/src/components/NSBarAction.tsx +95 -95
  237. package/src/components/NSBarAlert.module.css +79 -79
  238. package/src/components/NSBarAlert.tsx +35 -35
  239. package/src/components/NSBarNotification.module.css +34 -34
  240. package/src/components/NSBarNotification.tsx +89 -89
  241. package/src/components/NSBarTitle.module.css +9 -9
  242. package/src/components/NSBarTitle.tsx +23 -23
  243. package/src/components/NSBox.module.css +87 -87
  244. package/src/components/NSBox.tsx +19 -19
  245. package/src/components/NSBoxBaseCombo.module.css +24 -24
  246. package/src/components/NSBoxBaseCombo.tsx +522 -522
  247. package/src/components/NSBoxBaseLayout.tsx +163 -163
  248. package/src/components/NSBoxBaseLayoutRecursive.tsx +59 -59
  249. package/src/components/NSBoxBoolean.module.css +73 -73
  250. package/src/components/NSBoxBoolean.tsx +152 -152
  251. package/src/components/NSBoxBooleans.tsx +181 -181
  252. package/src/components/NSBoxColor.tsx +107 -107
  253. package/src/components/NSBoxCombo.tsx +95 -95
  254. package/src/components/NSBoxDate.module.css +4 -4
  255. package/src/components/NSBoxDate.tsx +144 -144
  256. package/src/components/NSBoxDateRange.tsx +88 -88
  257. package/src/components/NSBoxDateRangeBase.module.css +73 -73
  258. package/src/components/NSBoxDateRangeBase.tsx +236 -236
  259. package/src/components/NSBoxDateTime.module.css +4 -4
  260. package/src/components/NSBoxDateTime.tsx +136 -136
  261. package/src/components/NSBoxDateTimeRange.tsx +66 -66
  262. package/src/components/NSBoxDouble.tsx +110 -110
  263. package/src/components/NSBoxDuration.module.css +4 -4
  264. package/src/components/NSBoxDuration.tsx +107 -107
  265. package/src/components/NSBoxDynamic.tsx +73 -73
  266. package/src/components/NSBoxDynamics.tsx +68 -68
  267. package/src/components/NSBoxEmail.tsx +117 -117
  268. package/src/components/NSBoxEntity.tsx +181 -181
  269. package/src/components/NSBoxEnum.tsx +113 -113
  270. package/src/components/NSBoxFile.module.css +10 -10
  271. package/src/components/NSBoxFile.tsx +106 -106
  272. package/src/components/NSBoxFilePath.tsx +106 -106
  273. package/src/components/NSBoxFont.tsx +107 -107
  274. package/src/components/NSBoxIPV4.tsx +107 -107
  275. package/src/components/NSBoxIPV4Range.tsx +107 -107
  276. package/src/components/NSBoxIPV6.tsx +104 -104
  277. package/src/components/NSBoxIPV6Range.tsx +107 -107
  278. package/src/components/NSBoxInteger.module.css +16 -16
  279. package/src/components/NSBoxInteger.tsx +126 -126
  280. package/src/components/NSBoxMoney.tsx +115 -115
  281. package/src/components/NSBoxOptions.module.css +53 -53
  282. package/src/components/NSBoxOptions.tsx +182 -182
  283. package/src/components/NSBoxPhone.module.css +35 -35
  284. package/src/components/NSBoxPhone.tsx +120 -120
  285. package/src/components/NSBoxRadio.module.css +33 -33
  286. package/src/components/NSBoxRadio.tsx +104 -104
  287. package/src/components/NSBoxSchemaBase.module.css +17 -17
  288. package/src/components/NSBoxSchemaBase.tsx +562 -562
  289. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  290. package/src/components/NSBoxSchemaVariable.tsx +262 -262
  291. package/src/components/NSBoxSearch.tsx +112 -112
  292. package/src/components/NSBoxSensitive.tsx +133 -133
  293. package/src/components/NSBoxString.tsx +169 -106
  294. package/src/components/NSBoxTextArea.module.css +12 -12
  295. package/src/components/NSBoxTextArea.tsx +136 -136
  296. package/src/components/NSBoxTime.module.css +4 -4
  297. package/src/components/NSBoxTime.tsx +106 -106
  298. package/src/components/NSBoxTimeRange.tsx +220 -220
  299. package/src/components/NSBoxTimeZone.tsx +122 -122
  300. package/src/components/NSBoxURL.tsx +117 -117
  301. package/src/components/NSBoxVersion.tsx +107 -107
  302. package/src/components/NSButton.module.css +57 -57
  303. package/src/components/NSButton.tsx +74 -74
  304. package/src/components/NSButtonBlue.module.css +4 -4
  305. package/src/components/NSButtonBlue.tsx +29 -29
  306. package/src/components/NSButtonGreen.module.css +4 -4
  307. package/src/components/NSButtonGreen.tsx +29 -29
  308. package/src/components/NSButtonRed.module.css +4 -4
  309. package/src/components/NSButtonRed.tsx +29 -29
  310. package/src/components/NSCard.module.css +122 -122
  311. package/src/components/NSCard.tsx +67 -67
  312. package/src/components/NSCardScreenshot.module.css +41 -41
  313. package/src/components/NSCardScreenshot.tsx +31 -31
  314. package/src/components/NSChartBar.tsx +134 -134
  315. package/src/components/NSChartDoughnut.tsx +114 -114
  316. package/src/components/NSChartLine.tsx +110 -110
  317. package/src/components/NSChartPie.tsx +105 -105
  318. package/src/components/NSChartRange.tsx +14 -14
  319. package/src/components/NSColumn.module.css +16 -16
  320. package/src/components/NSColumn.tsx +24 -24
  321. package/src/components/NSCopy.tsx +95 -95
  322. package/src/components/NSCopyBox.module.css +39 -39
  323. package/src/components/NSCopyBox.tsx +53 -53
  324. package/src/components/NSDialog.module.css +105 -105
  325. package/src/components/NSDialog.tsx +72 -72
  326. package/src/components/NSDialogBox.tsx +38 -38
  327. package/src/components/NSDialogBoxDate.tsx +28 -28
  328. package/src/components/NSDialogBoxDateTime.tsx +28 -28
  329. package/src/components/NSDialogBoxPhone.tsx +28 -28
  330. package/src/components/NSDialogBoxString.tsx +28 -28
  331. package/src/components/NSDialogDelete.tsx +36 -36
  332. package/src/components/NSDialogInfo.tsx +49 -49
  333. package/src/components/NSDialogPageSelection.module.css +103 -103
  334. package/src/components/NSDialogPageSelection.tsx +233 -233
  335. package/src/components/NSDownTimer.module.css +55 -55
  336. package/src/components/NSDownTimer.tsx +91 -91
  337. package/src/components/NSDownload.module.css +46 -46
  338. package/src/components/NSDownload.tsx +69 -69
  339. package/src/components/NSElectronicCard.module.css +66 -66
  340. package/src/components/NSElectronicCard.tsx +46 -46
  341. package/src/components/NSEntityCardBackground.module.css +27 -27
  342. package/src/components/NSEntityCardBackground.tsx +36 -36
  343. package/src/components/NSFilterBox.module.css +27 -27
  344. package/src/components/NSFilterBox.tsx +477 -477
  345. package/src/components/NSFilterBoxItems.module.css +15 -15
  346. package/src/components/NSFilterBoxItems.tsx +52 -52
  347. package/src/components/NSFilterItem.module.css +24 -24
  348. package/src/components/NSFilterItem.tsx +27 -27
  349. package/src/components/NSFooter.module.css +140 -140
  350. package/src/components/NSFooter.tsx +322 -322
  351. package/src/components/NSGauge.module.css +67 -67
  352. package/src/components/NSGauge.tsx +52 -52
  353. package/src/components/NSGaugeDate.module.css +57 -57
  354. package/src/components/NSGaugeDate.tsx +130 -130
  355. package/src/components/NSGaugeNumber.module.css +66 -66
  356. package/src/components/NSGaugeNumber.tsx +96 -96
  357. package/src/components/NSHeader.module.css +355 -355
  358. package/src/components/NSHeader.tsx +340 -340
  359. package/src/components/NSHeaderScreenshot.module.css +35 -35
  360. package/src/components/NSHeaderScreenshot.tsx +39 -39
  361. package/src/components/NSID.tsx +180 -180
  362. package/src/components/NSInfo.tsx +50 -50
  363. package/src/components/NSLabel.module.css +25 -25
  364. package/src/components/NSLabel.tsx +47 -47
  365. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  366. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  367. package/src/components/NSLabelSensitive.module.css +9 -9
  368. package/src/components/NSLabelSensitive.tsx +101 -101
  369. package/src/components/NSLayout.module.css +22 -22
  370. package/src/components/NSLayout.tsx +143 -143
  371. package/src/components/NSLine.module.css +15 -15
  372. package/src/components/NSLine.tsx +13 -13
  373. package/src/components/NSLineText.module.css +38 -38
  374. package/src/components/NSLineText.tsx +17 -17
  375. package/src/components/NSListGrouped.module.css +69 -69
  376. package/src/components/NSListGrouped.tsx +106 -106
  377. package/src/components/NSListProduct.tsx +79 -79
  378. package/src/components/NSLoading.module.css +10 -10
  379. package/src/components/NSLoading.tsx +43 -43
  380. package/src/components/NSMegaMenu.module.css +133 -133
  381. package/src/components/NSMegaMenu.tsx +190 -190
  382. package/src/components/NSMenuAction.module.css +88 -88
  383. package/src/components/NSMenuAction.tsx +106 -106
  384. package/src/components/NSMenuButton.module.css +44 -44
  385. package/src/components/NSMenuButton.tsx +198 -198
  386. package/src/components/NSNoData.module.css +11 -11
  387. package/src/components/NSNoData.tsx +24 -24
  388. package/src/components/NSPagination.module.css +94 -94
  389. package/src/components/NSPagination.tsx +182 -182
  390. package/src/components/NSPanel.module.css +28 -28
  391. package/src/components/NSPanel.tsx +26 -26
  392. package/src/components/NSPanelAccordion.module.css +4 -4
  393. package/src/components/NSPanelAccordion.tsx +51 -51
  394. package/src/components/NSProductSearch.module.css +73 -73
  395. package/src/components/NSProductSearch.tsx +193 -193
  396. package/src/components/NSProgressBar.module.css +38 -38
  397. package/src/components/NSProgressBar.tsx +29 -29
  398. package/src/components/NSRange.module.css +66 -66
  399. package/src/components/NSRange.tsx +83 -83
  400. package/src/components/NSReorderDialog.module.css +53 -53
  401. package/src/components/NSReorderDialog.tsx +203 -203
  402. package/src/components/NSRepeater.tsx +335 -335
  403. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +96 -96
  404. package/src/components/NSRepeaterNSTag.tsx +86 -86
  405. package/src/components/NSRow.module.css +17 -17
  406. package/src/components/NSRow.tsx +24 -24
  407. package/src/components/NSSection.module.css +4 -4
  408. package/src/components/NSSection.tsx +26 -26
  409. package/src/components/NSSectionCards.module.css +38 -38
  410. package/src/components/NSSectionCards.tsx +51 -51
  411. package/src/components/NSSectionTiles.module.css +10 -10
  412. package/src/components/NSSectionTiles.tsx +25 -25
  413. package/src/components/NSSectionTitle.tsx +19 -19
  414. package/src/components/NSSortDialog.tsx +124 -124
  415. package/src/components/NSSpace.tsx +28 -28
  416. package/src/components/NSSplitter.module.css +59 -59
  417. package/src/components/NSSplitter.tsx +244 -244
  418. package/src/components/NSTabPage.module.css +59 -59
  419. package/src/components/NSTabPage.tsx +122 -122
  420. package/src/components/NSTable.module.css +376 -376
  421. package/src/components/NSTable.tsx +1451 -1451
  422. package/src/components/NSTableChart.module.css +119 -119
  423. package/src/components/NSTableChart.tsx +760 -760
  424. package/src/components/NSTag.tsx +74 -74
  425. package/src/components/NSTile.module.css +76 -76
  426. package/src/components/NSTile.tsx +27 -27
  427. package/src/components/NSTimelineMonthly.module.css +71 -71
  428. package/src/components/NSTimelineMonthly.tsx +44 -44
  429. package/src/components/NSTitle.module.css +15 -15
  430. package/src/components/NSTitle.tsx +19 -19
  431. package/src/css.d.ts +13 -13
  432. package/src/formatter/BackColorFormatter.tsx +23 -23
  433. package/src/formatter/BaseColumnFormatter.ts +86 -86
  434. package/src/formatter/BaseURLImageFormatter.tsx +37 -37
  435. package/src/formatter/BooleanFormatter.ts +26 -26
  436. package/src/formatter/BytesFormatter.tsx +19 -19
  437. package/src/formatter/DateFormatter.ts +26 -26
  438. package/src/formatter/DateTimeFormatter.ts +26 -26
  439. package/src/formatter/DurationFormatter.ts +17 -17
  440. package/src/formatter/EmailFormatter.tsx +25 -25
  441. package/src/formatter/EnumFormatter.ts +17 -17
  442. package/src/formatter/FloatFormatter.ts +27 -27
  443. package/src/formatter/ForeColorFormatter.tsx +24 -24
  444. package/src/formatter/IDFormatter.tsx +58 -58
  445. package/src/formatter/IPFormatter.ts +39 -39
  446. package/src/formatter/IntegerFormatter.ts +27 -27
  447. package/src/formatter/JsonFormatter.tsx +75 -75
  448. package/src/formatter/MoneyFormatter.ts +52 -52
  449. package/src/formatter/PercentFormatter.tsx +43 -43
  450. package/src/formatter/PhoneFormatter.tsx +25 -25
  451. package/src/formatter/SensitiveFormatter.tsx +40 -40
  452. package/src/formatter/StringFormatter.tsx +49 -49
  453. package/src/formatter/TimeFormatter.ts +25 -25
  454. package/src/formatter/URLFormatter.tsx +28 -28
  455. package/src/formatter/UnknowFormatter.ts +22 -22
  456. package/src/index.tsx +7 -7
  457. package/src/main.ts +266 -266
  458. package/src/pages/NSImplementing.module.css +35 -35
  459. package/src/pages/NSImplementing.tsx +32 -32
  460. package/src/pages/NSNotFoundPage.module.css +18 -18
  461. package/src/pages/NSNotFoundPage.tsx +14 -14
  462. package/src/pages/NSUpdating.module.css +35 -35
  463. package/src/pages/NSUpdating.tsx +32 -32
  464. package/src/props/IBackgroundProps.ts +5 -5
  465. package/src/props/IBaseComponentProps.ts +8 -8
  466. package/src/props/IHeaderIconProps.ts +10 -10
  467. package/src/props/IHeaderLeftProps.ts +6 -6
  468. package/src/props/IHeaderRightProps.ts +8 -8
  469. package/src/props/IImageProps.ts +4 -4
  470. package/src/props/ILinkProps.ts +4 -4
  471. package/src/props/IValidationNumberProps.ts +4 -4
  472. package/src/props/IValidationPrecisionProps.ts +3 -3
  473. package/src/props/IValidationProps.ts +9 -9
  474. package/src/props/IValidationRegexProps.ts +4 -4
  475. package/src/props/IValidationStringProps.ts +4 -4
  476. package/src/routing/NSNotifier.ts +114 -114
  477. package/src/routing/NSRouterMaker.tsx +24 -24
  478. package/tsconfig.json +43 -43
package/src/App.tsx CHANGED
@@ -1,927 +1,927 @@
1
- import 'bootstrap/dist/css/bootstrap.min.css';
2
- import { TimeOperation } from 'namirasoft-core';
3
- import React, { Component, createRef } from 'react';
4
- import './App.css';
5
- import { NSLayout } from './components/NSLayout';
6
- import
7
- {
8
- DateTimeFormatter, IntegerFormatter, JsonFormatter, NSBoxCombo, NSBoxDate, NSBoxDateTime, NSButtonBlue, NSColumn, NSTable, PhoneFormatter, SensitiveFormatter, StringFormatter,
9
- NSBanner, NSBarAction, NSBarAlert, NSBarNotification, NSBarNotificationColor, NotificationType, NSBarTitle,
10
- NSBoxBoolean, NSBoxBooleans, NSBoxDateRange, NSBoxDateTimeRange, NSBoxDouble, NSBoxDuration, NSBoxDynamic, NSBoxDynamics,
11
- NSBoxEmail, NSBoxEntity, NSBoxEnum, NSBoxFile, NSBoxInteger, NSBoxIPV4, NSBoxIPV6, NSBoxMoney, NSBoxOptions, NSBoxPhone, NSBoxRadio,
12
- NSBoxSearch, NSBoxSensitive, NSBoxString, NSBoxTextArea, NSBoxTime, NSBoxTimeRange, NSBoxTimeZone, NSBoxURL, NSBoxVersion,
13
- NSButton, NSButtonGreen, NSButtonRed,
14
- NSCard, NSCardScreenshot,
15
- NSTableChart,
16
- NSCopy, NSCopyBox,
17
- NSDialog, NSDialogDelete, NSDialogInfo, NSDialogPageSelection, NSInfo,
18
- NSDialogBox, NSDialogBoxDate, NSDialogBoxDateTime, NSDialogBoxPhone, NSDialogBoxString,
19
- NSDownTimer,
20
- NSTile,
21
- NSFilterBox, NSFilterBoxItems, NSFilterItem,
22
- NSFooter,
23
- NSHeader,
24
- NSID,
25
- NSLabel, NSLabelErrorNotifier, NSLabelSensitive,
26
- NSLine, NSLineText,
27
- NSLink, NSLinkBlue, NSLinkGreen, NSLinkRed,
28
- NSListGrouped, NSListProduct,
29
- NSLoading,
30
- NSMenuAction, NSMenuButton,
31
- NSNoData,
32
- NSPagination,
33
- NSPanel, NSPanelAccordion,
34
- NSRepeater, NSRepeaterNSBoxSchemaVariable, NSRepeaterNSTag,
35
- NSRow,
36
- NSSection, NSSectionCards, NSSectionTiles, NSSectionTitle,
37
- NSSpace, NSSpaceSizeType,
38
- NSReorderDialog, NSSortDialog,
39
- NSTabPage,
40
- NSTag,
41
- NSTitle,
42
- NSGauge, NSGaugeDate, NSGaugeNumber,
43
- NSSplitter,
44
- NSBox,
45
- } from './main';
46
- import NSMegaMenu from './components/NSMegaMenu';
47
- import NSProgressBar from './components/NSProgressBar';
48
- import { NSDownload } from './components/NSDownload';
49
- import { NSElectronicCard } from './components/NSElectronicCard';
50
- import { NSEntityCardBackground } from './components/NSEntityCardBackground';
51
- import { NSHeaderScreenshot } from './components/NSHeaderScreenshot';
52
- import { NSProductSearch } from './components/NSProductSearch';
53
- import { NSRange } from './components/NSRange';
54
- import { NSTimelineMonthly } from './components/NSTimelineMonthly';
55
- import { NSBoxSchemaBase } from './components/NSBoxSchemaBase';
56
- import { NSBoxSchemaVariable } from './components/NSBoxSchemaVariable';
57
- import { NSBoxFilePath } from './components/NSBoxFilePath';
58
- import { NSBoxFont } from './components/NSBoxFont';
59
- import { NSBoxIPV4Range } from './components/NSBoxIPV4Range';
60
- import { NSBoxIPV6Range } from './components/NSBoxIPV6Range';
61
- import { NSBoxColor } from './components/NSBoxColor';
62
-
63
- type TableRow = {
64
- id: string,
65
- parent_id?: string,
66
- name: string,
67
- age: number,
68
- experience: number,
69
- salary: number,
70
- city: string,
71
- phone: string,
72
- json?: string,
73
- national_code: string,
74
- created_at: string,
75
- };
76
-
77
- interface AppProps { }
78
- interface AppState { openDialog: string | null }
79
-
80
- class DocErrorBoundary extends Component<{ name: string; children: React.ReactNode }, { error: string | null }>
81
- {
82
- constructor(props: { name: string; children: React.ReactNode })
83
- {
84
- super(props);
85
- this.state = { error: null };
86
- }
87
- static getDerivedStateFromError(error: Error) { return { error: error?.message ?? String(error) }; }
88
- override componentDidCatch(_error: Error) { }
89
- override render()
90
- {
91
- if (this.state.error !== null)
92
- return <div style={{ color: "#b00", fontSize: 12, padding: "0.25rem 0.5rem", border: "1px dashed #b00", borderRadius: 4 }}>
93
- {this.props.name} render error: {this.state.error}
94
- </div>;
95
- return this.props.children;
96
- }
97
- }
98
-
99
- export class App extends Component<AppProps, AppState>
100
- {
101
- private NSTableRef = createRef<NSTable<TableRow>>();
102
- private NSBoxDateRef = createRef<NSBoxDate>();
103
- private NSBoxDateTimeRef = createRef<NSBoxDateTime>();
104
-
105
- constructor(props: AppProps)
106
- {
107
- super(props);
108
- this.state = { openDialog: null }
109
- };
110
-
111
- private openDialog = (name: string) => this.setState({ openDialog: name });
112
- private closeDialog = () => this.setState({ openDialog: null });
113
-
114
- override render()
115
- {
116
- const gaugeColors = { low: "red", medium: "orange", high: "green" };
117
- return (
118
- <NSLayout
119
- header={{
120
- right: {
121
- icons: Array.from({ length: 6 }, (_, i) => ({
122
- onClicked: () => { },
123
- src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png",
124
- count: i + 1,
125
- tooltip: `Icon ${i + 1}`,
126
- })),
127
- },
128
- mega_menu: true,
129
- onCollapse: () => { },
130
- filters_postprocessor: (filters) =>
131
- {
132
- const now = new Date();
133
- const names = [
134
- "Model", "Load Balancer", "Failover", "Race", "Support",
135
- "Analytics", "Billing", "Reports", "Settings", "Integrations",
136
- "Users", "Teams", "Roles", "Audit Logs", "Notifications",
137
- "API Keys", "Webhooks"
138
- ];
139
- const mocks = names.map((name, i) => ({
140
- id: 100000 + i,
141
- parent_id: null,
142
- filter_id: 0,
143
- link_id: i,
144
- name,
145
- logo: null,
146
- order: i,
147
- created_at: now,
148
- updated_at: now,
149
- filter: {} as any,
150
- link: {
151
- id: i,
152
- category_id: 0,
153
- domain_id: 0,
154
- name,
155
- url: `https://example.com/mock/${i}`,
156
- logo: "",
157
- public: true,
158
- private: true,
159
- importance: 0,
160
- description: "",
161
- created_at: now,
162
- updated_at: now,
163
- category: {} as any,
164
- domain: {} as any,
165
- },
166
- }));
167
- return [...filters, ...mocks];
168
- },
169
- }}
170
- isLoggedIn={() => true}
171
- logo='https://static.namirasoft.com/image/namirasoft/access/logo/base.png'
172
- background={{ image: "https://static.namirasoft.com/image/namirasoft/access/background/base.svg" }}
173
- notifications={[]}
174
- notifier={{} as any}
175
- scope=''
176
- >
177
- <NSColumn style={{ gap: '1rem', padding: '1rem' }}>
178
- <NSLineText title="NSBanner" />
179
- <DocErrorBoundary name="NSBanner">
180
- <NSBanner imageLeft={null} imageRight={null} title={{ text: "Sample" }} />
181
- </DocErrorBoundary>
182
-
183
- <NSLineText title="NSBarAction" />
184
- <DocErrorBoundary name="NSBarAction">
185
- <NSBarAction title="Sample" />
186
- </DocErrorBoundary>
187
-
188
- <NSLineText title="NSBarAlert" />
189
- <DocErrorBoundary name="NSBarAlert">
190
- <NSBarAlert title={{ title: "Alert" }} isVisible={() => true} />
191
- </DocErrorBoundary>
192
-
193
- <NSLineText title="NSBarNotification" />
194
- <DocErrorBoundary name="NSBarNotification">
195
- {React.createElement(NSBarNotification as any, { id: "n1", text: "Hi", type: NotificationType.Information, color: NSBarNotificationColor.BLUE, onClose: () => { }, onChangeState: () => { } })}
196
- </DocErrorBoundary>
197
-
198
- <NSLineText title="NSBarTitle" />
199
- <DocErrorBoundary name="NSBarTitle">
200
- <NSBarTitle title="Sample" />
201
- </DocErrorBoundary>
202
-
203
- <NSLineText title="NSBoxBoolean" />
204
- <DocErrorBoundary name="NSBoxBoolean">
205
- <NSBoxBoolean title="Sample" required={false} />
206
- </DocErrorBoundary>
207
-
208
- <NSLineText title="NSBoxBooleans" />
209
- <DocErrorBoundary name="NSBoxBooleans">
210
- <NSBoxBooleans items={[{ value: "a", text: "A" }]} />
211
- </DocErrorBoundary>
212
-
213
- <NSLineText title="NSBoxColor" />
214
- <DocErrorBoundary name="NSBoxColor">
215
- <NSBoxColor title="Sample" required={false} />
216
- </DocErrorBoundary>
217
-
218
- <NSLineText title="NSBoxCombo" />
219
- <DocErrorBoundary name="NSBoxCombo">
220
- <NSBoxCombo title="Sample" required={false} multiple={false} getOptions={() => []} />
221
- </DocErrorBoundary>
222
-
223
- <NSLineText title="NSBoxDate" />
224
- <DocErrorBoundary name="NSBoxDate">
225
- <NSBoxDate title="Sample" required={false} />
226
- </DocErrorBoundary>
227
-
228
- <NSLineText title="NSBoxDateRange" />
229
- <DocErrorBoundary name="NSBoxDateRange">
230
- <NSBoxDateRange title="Sample" required={false} />
231
- </DocErrorBoundary>
232
-
233
- <NSLineText title="NSBoxDateTime" />
234
- <DocErrorBoundary name="NSBoxDateTime">
235
- <NSBoxDateTime title="Sample" required={false} />
236
- </DocErrorBoundary>
237
-
238
- <NSLineText title="NSBoxDateTimeRange" />
239
- <DocErrorBoundary name="NSBoxDateTimeRange">
240
- <NSBoxDateTimeRange title="Sample" required={false} />
241
- </DocErrorBoundary>
242
-
243
- <NSLineText title="NSBoxDouble" />
244
- <DocErrorBoundary name="NSBoxDouble">
245
- <NSBoxDouble title="Sample" required={false} />
246
- </DocErrorBoundary>
247
-
248
- <NSLineText title="NSBoxDuration" />
249
- <DocErrorBoundary name="NSBoxDuration">
250
- <NSBoxDuration title="Sample" required={false} />
251
- </DocErrorBoundary>
252
-
253
- <NSLineText title="NSBoxDynamic" />
254
- <DocErrorBoundary name="NSBoxDynamic">
255
- {React.createElement(NSBoxDynamic as any, { title: "Sample", name: "dyn", variable: {} })}
256
- </DocErrorBoundary>
257
-
258
- <NSLineText title="NSBoxDynamics" />
259
- <DocErrorBoundary name="NSBoxDynamics">
260
- <NSBoxDynamics name="sample" variables={[]} />
261
- </DocErrorBoundary>
262
-
263
- <NSLineText title="NSBoxEmail" />
264
- <DocErrorBoundary name="NSBoxEmail">
265
- <NSBoxEmail title="Sample" required={false} />
266
- </DocErrorBoundary>
267
-
268
- <NSLineText title="NSBoxEntity" />
269
- <DocErrorBoundary name="NSBoxEntity">
270
- {React.createElement(NSBoxEntity as any, { title: "Sample", required: false, multiple: false, getTitle: (x: any) => x, getValue: (x: any) => x, getSort: () => null, list: async () => ({ count: 0, rows: [] }), table_name: "sample" })}
271
- </DocErrorBoundary>
272
-
273
- <NSLineText title="NSBoxEnum" />
274
- <DocErrorBoundary name="NSBoxEnum">
275
- <NSBoxEnum title="Sample" required={false} multiple={false} getEnumObject={() => ({})} />
276
- </DocErrorBoundary>
277
-
278
- <NSLineText title="NSBoxFile" />
279
- <DocErrorBoundary name="NSBoxFile">
280
- <NSBoxFile title="Sample" required={false} />
281
- </DocErrorBoundary>
282
-
283
- <NSLineText title="NSBoxFilePath" />
284
- <DocErrorBoundary name="NSBoxFilePath">
285
- <NSBoxFilePath title="Sample" required={false} />
286
- </DocErrorBoundary>
287
-
288
- <NSLineText title="NSBoxFont" />
289
- <DocErrorBoundary name="NSBoxFont">
290
- <NSBoxFont title="Sample" required={false} />
291
- </DocErrorBoundary>
292
-
293
- <NSLineText title="NSBoxIPV4" />
294
- <DocErrorBoundary name="NSBoxIPV4">
295
- <NSBoxIPV4 title="Sample" required={false} />
296
- </DocErrorBoundary>
297
-
298
- <NSLineText title="NSBoxIPV4Range" />
299
- <DocErrorBoundary name="NSBoxIPV4Range">
300
- <NSBoxIPV4Range title="Sample" required={false} />
301
- </DocErrorBoundary>
302
-
303
- <NSLineText title="NSBoxIPV6" />
304
- <DocErrorBoundary name="NSBoxIPV6">
305
- <NSBoxIPV6 title="Sample" required={false} />
306
- </DocErrorBoundary>
307
-
308
- <NSLineText title="NSBoxIPV6Range" />
309
- <DocErrorBoundary name="NSBoxIPV6Range">
310
- <NSBoxIPV6Range title="Sample" required={false} />
311
- </DocErrorBoundary>
312
-
313
- <NSLineText title="NSBoxInteger" />
314
- <DocErrorBoundary name="NSBoxInteger">
315
- <NSBoxInteger title="Sample" required={false} />
316
- </DocErrorBoundary>
317
-
318
- <NSLineText title="NSBoxMoney" />
319
- <DocErrorBoundary name="NSBoxMoney">
320
- <NSBoxMoney title="Sample" required={false} />
321
- </DocErrorBoundary>
322
-
323
- <NSLineText title="NSBoxOptions" />
324
- <DocErrorBoundary name="NSBoxOptions">
325
- <NSBoxOptions title="Sample" required={false} multiple={false} options={[{ value: "a", title: "A" }]} />
326
- </DocErrorBoundary>
327
-
328
- <NSLineText title="NSBoxPhone" />
329
- <DocErrorBoundary name="NSBoxPhone">
330
- <NSBoxPhone title="Sample" required={false} />
331
- </DocErrorBoundary>
332
-
333
- <NSLineText title="NSBoxRadio" />
334
- <DocErrorBoundary name="NSBoxRadio">
335
- <NSBoxRadio title="Sample" required={false} />
336
- </DocErrorBoundary>
337
-
338
- <NSLineText title="NSBoxSchemaBase" />
339
- <DocErrorBoundary name="NSBoxSchemaBase">
340
- {React.createElement(NSBoxSchemaBase as any, { title: "Sample", name: "schema", required: false })}
341
- </DocErrorBoundary>
342
-
343
- <NSLineText title="NSBoxSchemaVariable" />
344
- <DocErrorBoundary name="NSBoxSchemaVariable">
345
- {React.createElement(NSBoxSchemaVariable as any, { title: "Sample", name: "schemavar", required: false })}
346
- </DocErrorBoundary>
347
-
348
- <NSLineText title="NSBoxSearch" />
349
- <DocErrorBoundary name="NSBoxSearch">
350
- <NSBoxSearch title="Sample" required={false} />
351
- </DocErrorBoundary>
352
-
353
- <NSLineText title="NSBoxSensitive" />
354
- <DocErrorBoundary name="NSBoxSensitive">
355
- <NSBoxSensitive title="Sample" required={false} />
356
- </DocErrorBoundary>
357
-
358
- <NSLineText title="NSBoxString" />
359
- <DocErrorBoundary name="NSBoxString">
360
- <NSBoxString title="Sample" required={false} />
361
- </DocErrorBoundary>
362
-
363
- <NSLineText title="NSBoxTextArea" />
364
- <DocErrorBoundary name="NSBoxTextArea">
365
- <NSBoxTextArea title="Sample" required={false} />
366
- </DocErrorBoundary>
367
-
368
- <NSLineText title="NSBoxTime" />
369
- <DocErrorBoundary name="NSBoxTime">
370
- <NSBoxTime title="Sample" required={false} />
371
- </DocErrorBoundary>
372
-
373
- <NSLineText title="NSBoxTimeRange" />
374
- <DocErrorBoundary name="NSBoxTimeRange">
375
- <NSBoxTimeRange title="Sample" required={false} />
376
- </DocErrorBoundary>
377
-
378
- <NSLineText title="NSBoxTimeZone" />
379
- <DocErrorBoundary name="NSBoxTimeZone">
380
- <NSBoxTimeZone title="Sample" required={false} />
381
- </DocErrorBoundary>
382
-
383
- <NSLineText title="NSBoxURL" />
384
- <DocErrorBoundary name="NSBoxURL">
385
- <NSBoxURL title="Sample" required={false} />
386
- </DocErrorBoundary>
387
-
388
- <NSLineText title="NSBoxVersion" />
389
- <DocErrorBoundary name="NSBoxVersion">
390
- <NSBoxVersion title="Sample" required={false} />
391
- </DocErrorBoundary>
392
-
393
- <NSLineText title="NSButton" />
394
- <DocErrorBoundary name="NSButton">
395
- <NSButton title="Sample" onClick={{ action: () => { }, showLoading: false }} />
396
- </DocErrorBoundary>
397
-
398
- <NSLineText title="NSButtonBlue" />
399
- <DocErrorBoundary name="NSButtonBlue">
400
- <NSButtonBlue title="Sample" onClick={{ action: () => { }, showLoading: false }} />
401
- </DocErrorBoundary>
402
-
403
- <NSLineText title="NSButtonGreen" />
404
- <DocErrorBoundary name="NSButtonGreen">
405
- <NSButtonGreen title="Sample" onClick={{ action: () => { }, showLoading: false }} />
406
- </DocErrorBoundary>
407
-
408
- <NSLineText title="NSButtonRed" />
409
- <DocErrorBoundary name="NSButtonRed">
410
- <NSButtonRed title="Sample" onClick={{ action: () => { }, showLoading: false }} />
411
- </DocErrorBoundary>
412
-
413
- <NSLineText title="NSCard" />
414
- <DocErrorBoundary name="NSCard">
415
- <NSColumn style={{ gap: "1.5rem" }}>
416
- <NSTitle title="Without CTA" />
417
- <div style={{ display: "flex", flexWrap: "wrap", gap: "1rem" }}>
418
- <NSCard title="Title only" link={{ href: "#" }} />
419
- <NSCard description="Description only — some sample text used to describe the card without any title or image." link={{ href: "#" }} />
420
- <NSCard image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
421
- <NSCard headline={{ text: "Headline only", color: "#0d6efd" }} link={{ href: "#" }} />
422
- <NSCard title="Title + Description" description="Short description text under the title." link={{ href: "#" }} />
423
- <NSCard title="Title + Image" image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
424
- <NSCard title="Title + Headline" headline={{ text: "Featured", color: "#28a745" }} link={{ href: "#" }} />
425
- <NSCard description="Description + Image with no title." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
426
- <NSCard description="Description + Headline." headline={{ text: "Info", color: "#17a2b8" }} link={{ href: "#" }} />
427
- <NSCard headline={{ text: "New", color: "#dc3545" }} image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
428
- <NSCard title="Title + Headline + Image" headline={{ text: "Popular", color: "#fd7e14" }} image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
429
- <NSCard title="Title + Description + Image" description="Full card with title, description and image." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
430
- <NSCard title="Title + Headline + Description" headline={{ text: "Trending", color: "#20c997" }} description="Card with headline, title and description but no image." link={{ href: "#" }} />
431
- <NSCard headline={{ text: "Alert", color: "#dc3545" }} description="Headline + Description + Image without a title." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
432
- <NSCard title="All fields" headline={{ text: "Premium", color: "#ffc107" }} description="Card with headline, title, description and image combined." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
433
- </div>
434
-
435
- <NSTitle title="With CTA" />
436
- <div style={{ display: "flex", flexWrap: "wrap", gap: "1rem" }}>
437
- <NSCard title="Title only" link={{ href: "#", children: "Open" }} />
438
- <NSCard description="Description only — some sample text used to describe the card without any title or image." link={{ href: "#", children: "Read more" }} />
439
- <NSCard image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "View image" }} />
440
- <NSCard headline={{ text: "Headline only", color: "#0d6efd" }} link={{ href: "#", children: "Explore" }} />
441
- <NSCard title="Title + Description" description="Short description text under the title." link={{ href: "#", children: "Learn more" }} />
442
- <NSCard title="Title + Image" image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "See details" }} />
443
- <NSCard title="Title + Headline" headline={{ text: "Featured", color: "#28a745" }} link={{ href: "#", children: "Discover" }} />
444
- <NSCard description="Description + Image with no title." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Preview" }} />
445
- <NSCard description="Description + Headline." headline={{ text: "Info", color: "#17a2b8" }} link={{ href: "#", children: "More info" }} />
446
- <NSCard headline={{ text: "New", color: "#dc3545" }} image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Check out" }} />
447
- <NSCard title="Title + Headline + Image" headline={{ text: "Popular", color: "#fd7e14" }} image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Browse" }} />
448
- <NSCard title="Title + Description + Image" description="Full card with title, description and image." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Continue" }} />
449
- <NSCard title="Title + Headline + Description" headline={{ text: "Trending", color: "#20c997" }} description="Card with headline, title and description but no image." link={{ href: "#", children: "Start now" }} />
450
- <NSCard headline={{ text: "Alert", color: "#dc3545" }} description="Headline + Description + Image without a title." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Take action" }} />
451
- <NSCard title="All fields" headline={{ text: "Premium", color: "#ffc107" }} description="Card with headline, title, description and image combined." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Get started" }} />
452
- </div>
453
- </NSColumn>
454
- </DocErrorBoundary>
455
-
456
- <NSLineText title="NSCardScreenshot" />
457
- <DocErrorBoundary name="NSCardScreenshot">
458
- {React.createElement(NSCardScreenshot as any, { key: 1, screenshot: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png", timeSpent: "1h", onDelete: () => { } })}
459
- </DocErrorBoundary>
460
-
461
- {/* <NSLineText title="NSChartBar" />
462
- <DocErrorBoundary name="NSChartBar">
463
- <NSChartBar labels={["A", "B"]} dataset={[{ label: "s", data: [1, 2] }]} range={{ min: 0, max: 10 }} />
464
- </DocErrorBoundary>
465
-
466
- <NSLineText title="NSChartDoughnut" />
467
- <DocErrorBoundary name="NSChartDoughnut">
468
- <NSChartDoughnut title="Sample" datas={[1, 2, 3]} labels={["A", "B", "C"]} />
469
- </DocErrorBoundary>
470
-
471
- <NSLineText title="NSChartLine" />
472
- <DocErrorBoundary name="NSChartLine">
473
- <NSChartLine labels={["A", "B"]} dataset={[{ label: "s", data: [1, 2] }]} range={{ min: 0, max: 10 }} />
474
- </DocErrorBoundary>
475
-
476
- <NSLineText title="NSChartPie" />
477
- <DocErrorBoundary name="NSChartPie">
478
- <NSChartPie datas={[1, 2, 3]} labels={["A", "B", "C"]} />
479
- </DocErrorBoundary>
480
-
481
- <NSLineText title="NSChartRange" />
482
- <DocErrorBoundary name="NSChartRange">
483
- <NSChartRange />
484
- </DocErrorBoundary> */}
485
-
486
- <NSLineText title="NSColumn" />
487
- <DocErrorBoundary name="NSColumn">
488
- <NSColumn>Sample</NSColumn>
489
- </DocErrorBoundary>
490
-
491
- <NSLineText title="NSCopy" />
492
- <DocErrorBoundary name="NSCopy">
493
- <NSCopy>Sample</NSCopy>
494
- </DocErrorBoundary>
495
-
496
- <NSLineText title="NSCopyBox" />
497
- <DocErrorBoundary name="NSCopyBox">
498
- <NSCopyBox value="Sample" />
499
- </DocErrorBoundary>
500
-
501
- <NSLineText title="NSDialog" />
502
- <DocErrorBoundary name="NSDialog">
503
- <NSButtonBlue title="Open NSDialog" onClick={{ action: () => this.openDialog("NSDialog"), showLoading: false }} />
504
- {this.state.openDialog === "NSDialog" && <NSDialog onClose={this.closeDialog}>Sample</NSDialog>}
505
- </DocErrorBoundary>
506
-
507
- <NSLineText title="NSDialogBox" />
508
- <DocErrorBoundary name="NSDialogBox">
509
- <NSButtonBlue title="Open NSDialogBox" onClick={{ action: () => this.openDialog("NSDialogBox"), showLoading: false }} />
510
- {this.state.openDialog === "NSDialogBox" && React.createElement(NSDialogBox as any, { onClose: this.closeDialog, children_ref: React.createRef<any>() })}
511
- </DocErrorBoundary>
512
-
513
- <NSLineText title="NSDialogBoxDate" />
514
- <DocErrorBoundary name="NSDialogBoxDate">
515
- <NSButtonBlue title="Open NSDialogBoxDate" onClick={{ action: () => this.openDialog("NSDialogBoxDate"), showLoading: false }} />
516
- {this.state.openDialog === "NSDialogBoxDate" && <NSDialogBoxDate onClose={this.closeDialog} box={{ title: "Sample", required: false }} />}
517
- </DocErrorBoundary>
518
-
519
- <NSLineText title="NSDialogBoxDateTime" />
520
- <DocErrorBoundary name="NSDialogBoxDateTime">
521
- <NSButtonBlue title="Open NSDialogBoxDateTime" onClick={{ action: () => this.openDialog("NSDialogBoxDateTime"), showLoading: false }} />
522
- {this.state.openDialog === "NSDialogBoxDateTime" && <NSDialogBoxDateTime onClose={this.closeDialog} box={{ title: "Sample", required: false }} />}
523
- </DocErrorBoundary>
524
-
525
- <NSLineText title="NSDialogBoxPhone" />
526
- <DocErrorBoundary name="NSDialogBoxPhone">
527
- <NSButtonBlue title="Open NSDialogBoxPhone" onClick={{ action: () => this.openDialog("NSDialogBoxPhone"), showLoading: false }} />
528
- {this.state.openDialog === "NSDialogBoxPhone" && <NSDialogBoxPhone onClose={this.closeDialog} box={{ title: "Sample", required: false }} />}
529
- </DocErrorBoundary>
530
-
531
- <NSLineText title="NSDialogBoxString" />
532
- <DocErrorBoundary name="NSDialogBoxString">
533
- <NSButtonBlue title="Open NSDialogBoxString" onClick={{ action: () => this.openDialog("NSDialogBoxString"), showLoading: false }} />
534
- {this.state.openDialog === "NSDialogBoxString" && <NSDialogBoxString onClose={this.closeDialog} box={{ title: "Sample", required: false }} />}
535
- </DocErrorBoundary>
536
-
537
- <NSLineText title="NSDialogDelete" />
538
- <DocErrorBoundary name="NSDialogDelete">
539
- <NSButtonBlue title="Open NSDialogDelete" onClick={{ action: () => this.openDialog("NSDialogDelete"), showLoading: false }} />
540
- {this.state.openDialog === "NSDialogDelete" && <NSDialogDelete onClose={this.closeDialog} onYes={{ action: () => { this.closeDialog(); }, showLoading: false }} onNo={{ action: () => { this.closeDialog(); }, showLoading: false }} show_as_code={false} />}
541
- </DocErrorBoundary>
542
-
543
- <NSLineText title="NSDialogInfo" />
544
- <DocErrorBoundary name="NSDialogInfo">
545
- <NSButtonBlue title="Open NSDialogInfo" onClick={{ action: () => this.openDialog("NSDialogInfo"), showLoading: false }} />
546
- {this.state.openDialog === "NSDialogInfo" && <NSDialogInfo onClose={this.closeDialog} show_as_code={false} />}
547
- </DocErrorBoundary>
548
-
549
- <NSLineText title="NSDialogPageSelection" />
550
- <DocErrorBoundary name="NSDialogPageSelection">
551
- <NSButtonBlue title="Open NSDialogPageSelection" onClick={{ action: () => this.openDialog("NSDialogPageSelection"), showLoading: false }} />
552
- {this.state.openDialog === "NSDialogPageSelection" && React.createElement(NSDialogPageSelection as any, { current_page: 1, current_size: 25, max_page: 10, onClose: this.closeDialog, getItems: async () => [], onFinish: async () => { this.closeDialog(); } })}
553
- </DocErrorBoundary>
554
-
555
- <NSLineText title="NSDownTimer" />
556
- <DocErrorBoundary name="NSDownTimer">
557
- <NSDownTimer date={new Date()} text="Sample" />
558
- </DocErrorBoundary>
559
-
560
- <NSLineText title="NSDownload" />
561
- <DocErrorBoundary name="NSDownload">
562
- <NSDownload releaseDate="2025-01-01" />
563
- </DocErrorBoundary>
564
-
565
- <NSLineText title="NSElectronicCard" />
566
- <DocErrorBoundary name="NSElectronicCard">
567
- <NSElectronicCard src="https://static.namirasoft.com/image/namirasoft/access/logo/base.png" title="Sample" cardNumber="0000000000000000" />
568
- </DocErrorBoundary>
569
-
570
- <NSLineText title="NSEntityCardBackground" />
571
- <DocErrorBoundary name="NSEntityCardBackground">
572
- <NSEntityCardBackground title="Sample" />
573
- </DocErrorBoundary>
574
-
575
- <NSLineText title="NSFilterBox" />
576
- <DocErrorBoundary name="NSFilterBox">
577
- <NSFilterBox getTables={() => []} getMoreTables={async () => []} getValues={null} />
578
- </DocErrorBoundary>
579
-
580
- <NSLineText title="NSFilterBoxItems" />
581
- <DocErrorBoundary name="NSFilterBoxItems">
582
- <NSFilterBoxItems filterItems={[]} onClearFilterItems={() => { }} onRemoveFilterItem={() => { }} />
583
- </DocErrorBoundary>
584
-
585
- <NSLineText title="NSFilterItem" />
586
- <DocErrorBoundary name="NSFilterItem">
587
- {React.createElement(NSFilterItem as any, { item: { toString: () => "Sample" }, removeSelected: () => { } })}
588
- </DocErrorBoundary>
589
-
590
- <NSLineText title="NSFooter" />
591
- <DocErrorBoundary name="NSFooter">
592
- <NSFooter scope="" name="sample" logo="https://static.namirasoft.com/image/namirasoft/access/logo/base.png" isLoggedIn={() => true} />
593
- </DocErrorBoundary>
594
-
595
- <NSLineText title="NSGauge" />
596
- <DocErrorBoundary name="NSGauge">
597
- <NSGauge total={100} current={50} showPercent colors={gaugeColors} />
598
- </DocErrorBoundary>
599
-
600
- <NSLineText title="NSGaugeDate" />
601
- <DocErrorBoundary name="NSGaugeDate">
602
- <NSGaugeDate title="Sample" from={TimeOperation.daysAgo(1, new Date())} to={TimeOperation.daysAgo(-1, new Date())} colors={gaugeColors} />
603
- </DocErrorBoundary>
604
-
605
- <NSLineText title="NSGaugeNumber" />
606
- <DocErrorBoundary name="NSGaugeNumber">
607
- <NSGaugeNumber title="Sample" total={100} current={50} colors={gaugeColors} />
608
- </DocErrorBoundary>
609
-
610
- <NSLineText title="NSHeader" />
611
- <DocErrorBoundary name="NSHeader">
612
- {React.createElement(NSHeader as any, { right: { icons: [] }, left: { scope: "", name: "sample", logo: "" }, isLoggedIn: () => true, notifier: {} })}
613
- </DocErrorBoundary>
614
-
615
- <NSLineText title="NSHeaderScreenshot" />
616
- <DocErrorBoundary name="NSHeaderScreenshot">
617
- <NSHeaderScreenshot project="P" task="T" time="1h" Countdown="00:00" />
618
- </DocErrorBoundary>
619
-
620
- <NSLineText title="NSID" />
621
- <DocErrorBoundary name="NSID">
622
- <NSID id="sample" map={null} storage={null} />
623
- </DocErrorBoundary>
624
-
625
- <NSLineText title="NSInfo" />
626
- <DocErrorBoundary name="NSInfo">
627
- <NSInfo text="Sample" />
628
- </DocErrorBoundary>
629
-
630
- <NSLineText title="NSLabel" />
631
- <DocErrorBoundary name="NSLabel">
632
- <NSLabel title="Sample" />
633
- </DocErrorBoundary>
634
-
635
- <NSLineText title="NSLabelErrorNotifier" />
636
- <DocErrorBoundary name="NSLabelErrorNotifier">
637
- <NSLabelErrorNotifier clearError={() => { }} />
638
- </DocErrorBoundary>
639
-
640
- <NSLineText title="NSLabelSensitive" />
641
- <DocErrorBoundary name="NSLabelSensitive">
642
- <NSLabelSensitive value="Sample" sensitive={false} />
643
- </DocErrorBoundary>
644
-
645
- <NSLineText title="NSLine" />
646
- <DocErrorBoundary name="NSLine">
647
- <NSLine />
648
- </DocErrorBoundary>
649
-
650
- <NSLineText title="NSLink" />
651
- <DocErrorBoundary name="NSLink">
652
- <NSLink href="#">Sample</NSLink>
653
- </DocErrorBoundary>
654
-
655
- <NSLineText title="NSLinkBlue" />
656
- <DocErrorBoundary name="NSLinkBlue">
657
- <NSLinkBlue href="#">Sample</NSLinkBlue>
658
- </DocErrorBoundary>
659
-
660
- <NSLineText title="NSLinkGreen" />
661
- <DocErrorBoundary name="NSLinkGreen">
662
- <NSLinkGreen href="#">Sample</NSLinkGreen>
663
- </DocErrorBoundary>
664
-
665
- <NSLineText title="NSLinkRed" />
666
- <DocErrorBoundary name="NSLinkRed">
667
- <NSLinkRed href="#">Sample</NSLinkRed>
668
- </DocErrorBoundary>
669
-
670
- <NSLineText title="NSListGrouped" />
671
- <DocErrorBoundary name="NSListGrouped">
672
- <NSListGrouped groups={[]} onClick={() => { }} onClose={() => { }} />
673
- </DocErrorBoundary>
674
-
675
- <NSLineText title="NSListProduct" />
676
- <DocErrorBoundary name="NSListProduct">
677
- <NSListProduct scope="" name="sample" />
678
- </DocErrorBoundary>
679
-
680
- <NSLineText title="NSLoading" />
681
- <DocErrorBoundary name="NSLoading">
682
- <NSLoading />
683
- </DocErrorBoundary>
684
-
685
- <NSLineText title="NSMegaMenu" />
686
- <DocErrorBoundary name="NSMegaMenu">
687
- {React.createElement(NSMegaMenu as any, { items: [], selected: { id: 0 } })}
688
- </DocErrorBoundary>
689
-
690
- <NSLineText title="NSMenuAction" />
691
- <DocErrorBoundary name="NSMenuAction">
692
- <NSMenuAction name="Sample" items={[]} />
693
- </DocErrorBoundary>
694
-
695
- <NSLineText title="NSMenuButton" />
696
- <DocErrorBoundary name="NSMenuButton">
697
- <NSMenuButton />
698
- </DocErrorBoundary>
699
-
700
- <NSLineText title="NSNoData" />
701
- <DocErrorBoundary name="NSNoData">
702
- <NSNoData lable="No Data" />
703
- </DocErrorBoundary>
704
-
705
- <NSLineText title="NSPagination" />
706
- <DocErrorBoundary name="NSPagination">
707
- <NSPagination totalItems={100} onPageChange={() => { }} />
708
- </DocErrorBoundary>
709
-
710
- <NSLineText title="NSPanel" />
711
- <DocErrorBoundary name="NSPanel">
712
- <NSPanel>Sample</NSPanel>
713
- </DocErrorBoundary>
714
-
715
- <NSLineText title="NSPanelAccordion" />
716
- <DocErrorBoundary name="NSPanelAccordion">
717
- <NSPanelAccordion getHeader={() => "Sample"}>Sample</NSPanelAccordion>
718
- </DocErrorBoundary>
719
-
720
- <NSLineText title="NSProductSearch" />
721
- <DocErrorBoundary name="NSProductSearch">
722
- <NSProductSearch search="sample" />
723
- </DocErrorBoundary>
724
-
725
- <NSLineText title="NSProgressBar" />
726
- <DocErrorBoundary name="NSProgressBar">
727
- {React.createElement(NSProgressBar as any, { progress: 50 })}
728
- </DocErrorBoundary>
729
-
730
- <NSLineText title="NSRange" />
731
- <DocErrorBoundary name="NSRange">
732
- <NSRange data={[]} />
733
- </DocErrorBoundary>
734
-
735
- <NSLineText title="NSReorderDialog" />
736
- <DocErrorBoundary name="NSReorderDialog">
737
- <NSButtonBlue title="Open NSReorderDialog" onClick={{ action: () => this.openDialog("NSReorderDialog"), showLoading: false }} />
738
- {this.state.openDialog === "NSReorderDialog" && <NSReorderDialog visibleColumnKeys={[]} getColumns={() => []} onCancel={this.closeDialog} onApply={() => { this.closeDialog(); }} />}
739
- </DocErrorBoundary>
740
-
741
- <NSLineText title="NSRepeater" />
742
- <DocErrorBoundary name="NSRepeater">
743
- {React.createElement(NSRepeater as any, { title: "Sample", required: false, createItem: () => null, getValue: () => null, setValue: () => { }, isEmpty: () => true })}
744
- </DocErrorBoundary>
745
-
746
- <NSLineText title="NSRepeaterNSBoxSchemaVariable" />
747
- <DocErrorBoundary name="NSRepeaterNSBoxSchemaVariable">
748
- <NSRepeaterNSBoxSchemaVariable name="sample" title="Sample" required={false} item_title="Item" />
749
- </DocErrorBoundary>
750
-
751
- <NSLineText title="NSRepeaterNSTag" />
752
- <DocErrorBoundary name="NSRepeaterNSTag">
753
- <NSRepeaterNSTag name="sample" title="Sample" required={false} />
754
- </DocErrorBoundary>
755
-
756
- <NSLineText title="NSRow" />
757
- <DocErrorBoundary name="NSRow">
758
- <NSRow>Sample</NSRow>
759
- </DocErrorBoundary>
760
-
761
- <NSLineText title="NSSection" />
762
- <DocErrorBoundary name="NSSection">
763
- <NSSection>Sample</NSSection>
764
- </DocErrorBoundary>
765
-
766
- <NSLineText title="NSSectionCards" />
767
- <DocErrorBoundary name="NSSectionCards">
768
- <NSSectionCards cards={[]} />
769
- </DocErrorBoundary>
770
-
771
- <NSLineText title="NSSectionTiles" />
772
- <DocErrorBoundary name="NSSectionTiles">
773
- <NSSectionTiles tiles={[]} />
774
- </DocErrorBoundary>
775
-
776
- <NSLineText title="NSSectionTitle" />
777
- <DocErrorBoundary name="NSSectionTitle">
778
- <NSSectionTitle title="Sample">Sample</NSSectionTitle>
779
- </DocErrorBoundary>
780
-
781
- <NSLineText title="NSSortDialog" />
782
- <DocErrorBoundary name="NSSortDialog">
783
- <NSButtonBlue title="Open NSSortDialog" onClick={{ action: () => this.openDialog("NSSortDialog"), showLoading: false }} />
784
- {this.state.openDialog === "NSSortDialog" && React.createElement(NSSortDialog as any, { sorts: [], getColumns: () => [], onCancel: this.closeDialog, onApply: () => { this.closeDialog(); } })}
785
- </DocErrorBoundary>
786
-
787
- <NSLineText title="NSSpace" />
788
- <DocErrorBoundary name="NSSpace">
789
- <NSSpace size={NSSpaceSizeType.SMALL} />
790
- </DocErrorBoundary>
791
-
792
- <NSLineText title="NSSplitter" />
793
- <DocErrorBoundary name="NSSplitter">
794
- <NSSplitter />
795
- </DocErrorBoundary>
796
-
797
- <NSLineText title="NSTabPage" />
798
- <DocErrorBoundary name="NSTabPage">
799
- <NSTabPage tabs={[]} />
800
- </DocErrorBoundary>
801
-
802
- <NSLineText title="NSTable" />
803
- <DocErrorBoundary name="NSTable">
804
- {React.createElement(NSTable as any, { name: "sample_docs", columns: [], getRowKey: (item: any) => item?.value?.id, getRows: async () => ({ count: 0, rows: [] }) })}
805
- </DocErrorBoundary>
806
-
807
- <NSLineText title="NSTableChart" />
808
- <DocErrorBoundary name="NSTableChart">
809
- {false && React.createElement(NSTableChart as any, { name: "sample", columns: [], rows: [], selectedRows: [], onClose: () => { } })}
810
- </DocErrorBoundary>
811
-
812
- <NSLineText title="NSTag" />
813
- <DocErrorBoundary name="NSTag">
814
- <NSTag />
815
- </DocErrorBoundary>
816
-
817
- <NSLineText title="NSTile" />
818
- <DocErrorBoundary name="NSTile">
819
- <NSTile title="Sample" description="Sample" image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} />
820
- </DocErrorBoundary>
821
-
822
- <NSLineText title="NSTimelineMonthly" />
823
- <DocErrorBoundary name="NSTimelineMonthly">
824
- <NSTimelineMonthly data={[]} />
825
- </DocErrorBoundary>
826
-
827
- <NSLineText title="NSTitle" />
828
- <DocErrorBoundary name="NSTitle">
829
- <NSTitle title="Sample" />
830
- </DocErrorBoundary>
831
- </NSColumn>
832
- <NSTable<TableRow>
833
- ref={this.NSTableRef}
834
- name={"table"}
835
- checkbox
836
- columns={[
837
- {
838
- table: { name: "table", text: "Table" },
839
- index: 0, type: "String", name: "id", text: "ID", formatter: new StringFormatter()
840
- },
841
- {
842
- table: { name: "table", text: "Table" },
843
- index: 1, type: "String", name: "name", text: "Name", formatter: new StringFormatter()
844
- },
845
- {
846
- table: { name: "table", text: "Table" },
847
- index: 2, type: "Number", name: "age", text: "Age", formatter: new IntegerFormatter()
848
- },
849
- {
850
- table: { name: "table", text: "Table" },
851
- index: 3, type: "Number", name: "experience", text: "Experience", formatter: new IntegerFormatter()
852
- },
853
- {
854
- table: { name: "table", text: "Table" },
855
- index: 4, type: "Number", name: "salary", text: "Salary", formatter: new IntegerFormatter()
856
- },
857
- {
858
- table: { name: "table", text: "Table" },
859
- index: 5, type: "String", name: "city", text: "City", formatter: new StringFormatter()
860
- },
861
- {
862
- table: { name: "table", text: "Table" },
863
- index: 6, type: "String", name: "phone", text: "Phone", formatter: new PhoneFormatter()
864
- },
865
- {
866
- table: { name: "table", text: "Table" },
867
- index: 7, type: "String", name: "national_code", text: "National Code", formatter: new SensitiveFormatter<TableRow>(
868
- async (value) =>
869
- {
870
- await new Promise(resolve => setTimeout(resolve, 1000));
871
- return value;
872
- },
873
- () => true
874
- )
875
- },
876
- {
877
- table: { name: "table", text: "Table" },
878
- index: 8, type: "DateTime", name: "created_at", text: "Created At", formatter: new DateTimeFormatter()
879
- },
880
- {
881
- table: { name: "table", text: "Table" },
882
- index: 9, type: "String", name: "json", text: "Json", formatter: new JsonFormatter()
883
- },
884
- ]}
885
- getRowKey={(item) => item.value.id}
886
- getRows={async () => ({
887
- count: 300,
888
- rows: [
889
- { id: "a1", name: "Amin Pasban", age: 28, experience: 6, salary: 12000, city: "Rasht", phone: "09117579093", national_code: "2670000001", json: JSON.stringify({ role: "Developer", skills: ["React", "TypeScript"], active: true, projects: { count: 3, latest: "Site Package" } }), created_at: TimeOperation.daysAgo(1, new Date()).toDateString() },
890
- { id: "c3", name: "Negar Sharifpour", age: 28, experience: 2, salary: 9000, city: "Rasht", phone: "09117579092", national_code: "2670000002", created_at: TimeOperation.daysAgo(2, new Date()).toDateString() },
891
- { id: "b2", name: "Milad Nazirzadeh", age: 28, experience: 6, salary: 18000, city: "Tehran", phone: "09127576063", national_code: "0070000003", created_at: TimeOperation.daysAgo(10, new Date()).toDateString() },
892
- { id: "d4", name: "Mohammad Nazirzadeh", age: 29, experience: 4, salary: 8000, city: "Tehran", phone: "09127576063", national_code: "0070000004", created_at: TimeOperation.daysAgo(20, new Date()).toDateString() },
893
- { id: "e5", name: "Hadiseh Pasban", age: 22, experience: 3, salary: 9500, city: "Rasht", phone: "09116463032", national_code: "2670000005", created_at: TimeOperation.daysAgo(100, new Date()).toDateString() },
894
- ]
895
- })}
896
- headerChildren={
897
- <NSBoxString
898
- required
899
- title={"Name"}
900
- hideHeader
901
- style={{ minWidth: NSBox.width.one }}
902
- />
903
- }
904
- />
905
- <NSColumn style={{ marginTop: "1.5rem", alignItems: "center" }}>
906
- <NSBoxSchemaVariable
907
- title={"Schema"}
908
- required={true}
909
- name='schema'
910
- style={{ width: NSBox.width.double }}
911
- />
912
- <NSButtonBlue
913
- title={"Log"}
914
- onClick={{
915
- showLoading: false,
916
- action: () =>
917
- {
918
- console.log("Date:", this.NSBoxDateRef.current?.getValueString(false));
919
- console.log("DateTime:", this.NSBoxDateTimeRef.current?.getValueString(false));
920
- }
921
- }}
922
- />
923
- </NSColumn>
924
- </NSLayout>
925
- );
926
- }
1
+ import 'bootstrap/dist/css/bootstrap.min.css';
2
+ import { TimeOperation } from 'namirasoft-core';
3
+ import React, { Component, createRef } from 'react';
4
+ import './App.css';
5
+ import { NSLayout } from './components/NSLayout';
6
+ import
7
+ {
8
+ DateTimeFormatter, IntegerFormatter, JsonFormatter, NSBoxCombo, NSBoxDate, NSBoxDateTime, NSButtonBlue, NSColumn, NSTable, PhoneFormatter, SensitiveFormatter, StringFormatter,
9
+ NSBanner, NSBarAction, NSBarAlert, NSBarNotification, NSBarNotificationColor, NotificationType, NSBarTitle,
10
+ NSBoxBoolean, NSBoxBooleans, NSBoxDateRange, NSBoxDateTimeRange, NSBoxDouble, NSBoxDuration, NSBoxDynamic, NSBoxDynamics,
11
+ NSBoxEmail, NSBoxEntity, NSBoxEnum, NSBoxFile, NSBoxInteger, NSBoxIPV4, NSBoxIPV6, NSBoxMoney, NSBoxOptions, NSBoxPhone, NSBoxRadio,
12
+ NSBoxSearch, NSBoxSensitive, NSBoxString, NSBoxTextArea, NSBoxTime, NSBoxTimeRange, NSBoxTimeZone, NSBoxURL, NSBoxVersion,
13
+ NSButton, NSButtonGreen, NSButtonRed,
14
+ NSCard, NSCardScreenshot,
15
+ NSTableChart,
16
+ NSCopy, NSCopyBox,
17
+ NSDialog, NSDialogDelete, NSDialogInfo, NSDialogPageSelection, NSInfo,
18
+ NSDialogBox, NSDialogBoxDate, NSDialogBoxDateTime, NSDialogBoxPhone, NSDialogBoxString,
19
+ NSDownTimer,
20
+ NSTile,
21
+ NSFilterBox, NSFilterBoxItems, NSFilterItem,
22
+ NSFooter,
23
+ NSHeader,
24
+ NSID,
25
+ NSLabel, NSLabelErrorNotifier, NSLabelSensitive,
26
+ NSLine, NSLineText,
27
+ NSLink, NSLinkBlue, NSLinkGreen, NSLinkRed,
28
+ NSListGrouped, NSListProduct,
29
+ NSLoading,
30
+ NSMenuAction, NSMenuButton,
31
+ NSNoData,
32
+ NSPagination,
33
+ NSPanel, NSPanelAccordion,
34
+ NSRepeater, NSRepeaterNSBoxSchemaVariable, NSRepeaterNSTag,
35
+ NSRow,
36
+ NSSection, NSSectionCards, NSSectionTiles, NSSectionTitle,
37
+ NSSpace, NSSpaceSizeType,
38
+ NSReorderDialog, NSSortDialog,
39
+ NSTabPage,
40
+ NSTag,
41
+ NSTitle,
42
+ NSGauge, NSGaugeDate, NSGaugeNumber,
43
+ NSSplitter,
44
+ NSBox,
45
+ } from './main';
46
+ import NSMegaMenu from './components/NSMegaMenu';
47
+ import NSProgressBar from './components/NSProgressBar';
48
+ import { NSDownload } from './components/NSDownload';
49
+ import { NSElectronicCard } from './components/NSElectronicCard';
50
+ import { NSEntityCardBackground } from './components/NSEntityCardBackground';
51
+ import { NSHeaderScreenshot } from './components/NSHeaderScreenshot';
52
+ import { NSProductSearch } from './components/NSProductSearch';
53
+ import { NSRange } from './components/NSRange';
54
+ import { NSTimelineMonthly } from './components/NSTimelineMonthly';
55
+ import { NSBoxSchemaBase } from './components/NSBoxSchemaBase';
56
+ import { NSBoxSchemaVariable } from './components/NSBoxSchemaVariable';
57
+ import { NSBoxFilePath } from './components/NSBoxFilePath';
58
+ import { NSBoxFont } from './components/NSBoxFont';
59
+ import { NSBoxIPV4Range } from './components/NSBoxIPV4Range';
60
+ import { NSBoxIPV6Range } from './components/NSBoxIPV6Range';
61
+ import { NSBoxColor } from './components/NSBoxColor';
62
+
63
+ type TableRow = {
64
+ id: string,
65
+ parent_id?: string,
66
+ name: string,
67
+ age: number,
68
+ experience: number,
69
+ salary: number,
70
+ city: string,
71
+ phone: string,
72
+ json?: string,
73
+ national_code: string,
74
+ created_at: string,
75
+ };
76
+
77
+ interface AppProps { }
78
+ interface AppState { openDialog: string | null }
79
+
80
+ class DocErrorBoundary extends Component<{ name: string; children: React.ReactNode }, { error: string | null }>
81
+ {
82
+ constructor(props: { name: string; children: React.ReactNode })
83
+ {
84
+ super(props);
85
+ this.state = { error: null };
86
+ }
87
+ static getDerivedStateFromError(error: Error) { return { error: error?.message ?? String(error) }; }
88
+ override componentDidCatch(_error: Error) { }
89
+ override render()
90
+ {
91
+ if (this.state.error !== null)
92
+ return <div style={{ color: "#b00", fontSize: 12, padding: "0.25rem 0.5rem", border: "1px dashed #b00", borderRadius: 4 }}>
93
+ {this.props.name} render error: {this.state.error}
94
+ </div>;
95
+ return this.props.children;
96
+ }
97
+ }
98
+
99
+ export class App extends Component<AppProps, AppState>
100
+ {
101
+ private NSTableRef = createRef<NSTable<TableRow>>();
102
+ private NSBoxDateRef = createRef<NSBoxDate>();
103
+ private NSBoxDateTimeRef = createRef<NSBoxDateTime>();
104
+
105
+ constructor(props: AppProps)
106
+ {
107
+ super(props);
108
+ this.state = { openDialog: null }
109
+ };
110
+
111
+ private openDialog = (name: string) => this.setState({ openDialog: name });
112
+ private closeDialog = () => this.setState({ openDialog: null });
113
+
114
+ override render()
115
+ {
116
+ const gaugeColors = { low: "red", medium: "orange", high: "green" };
117
+ return (
118
+ <NSLayout
119
+ header={{
120
+ right: {
121
+ icons: Array.from({ length: 6 }, (_, i) => ({
122
+ onClicked: () => { },
123
+ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png",
124
+ count: i + 1,
125
+ tooltip: `Icon ${i + 1}`,
126
+ })),
127
+ },
128
+ mega_menu: true,
129
+ onCollapse: () => { },
130
+ filters_postprocessor: (filters) =>
131
+ {
132
+ const now = new Date();
133
+ const names = [
134
+ "Model", "Load Balancer", "Failover", "Race", "Support",
135
+ "Analytics", "Billing", "Reports", "Settings", "Integrations",
136
+ "Users", "Teams", "Roles", "Audit Logs", "Notifications",
137
+ "API Keys", "Webhooks"
138
+ ];
139
+ const mocks = names.map((name, i) => ({
140
+ id: 100000 + i,
141
+ parent_id: null,
142
+ filter_id: 0,
143
+ link_id: i,
144
+ name,
145
+ logo: null,
146
+ order: i,
147
+ created_at: now,
148
+ updated_at: now,
149
+ filter: {} as any,
150
+ link: {
151
+ id: i,
152
+ category_id: 0,
153
+ domain_id: 0,
154
+ name,
155
+ url: `https://example.com/mock/${i}`,
156
+ logo: "",
157
+ public: true,
158
+ private: true,
159
+ importance: 0,
160
+ description: "",
161
+ created_at: now,
162
+ updated_at: now,
163
+ category: {} as any,
164
+ domain: {} as any,
165
+ },
166
+ }));
167
+ return [...filters, ...mocks];
168
+ },
169
+ }}
170
+ isLoggedIn={() => true}
171
+ logo='https://static.namirasoft.com/image/namirasoft/access/logo/base.png'
172
+ background={{ image: "https://static.namirasoft.com/image/namirasoft/access/background/base.svg" }}
173
+ notifications={[]}
174
+ notifier={{} as any}
175
+ scope=''
176
+ >
177
+ <NSColumn style={{ gap: '1rem', padding: '1rem' }}>
178
+ <NSLineText title="NSBanner" />
179
+ <DocErrorBoundary name="NSBanner">
180
+ <NSBanner imageLeft={null} imageRight={null} title={{ text: "Sample" }} />
181
+ </DocErrorBoundary>
182
+
183
+ <NSLineText title="NSBarAction" />
184
+ <DocErrorBoundary name="NSBarAction">
185
+ <NSBarAction title="Sample" />
186
+ </DocErrorBoundary>
187
+
188
+ <NSLineText title="NSBarAlert" />
189
+ <DocErrorBoundary name="NSBarAlert">
190
+ <NSBarAlert title={{ title: "Alert" }} isVisible={() => true} />
191
+ </DocErrorBoundary>
192
+
193
+ <NSLineText title="NSBarNotification" />
194
+ <DocErrorBoundary name="NSBarNotification">
195
+ {React.createElement(NSBarNotification as any, { id: "n1", text: "Hi", type: NotificationType.Information, color: NSBarNotificationColor.BLUE, onClose: () => { }, onChangeState: () => { } })}
196
+ </DocErrorBoundary>
197
+
198
+ <NSLineText title="NSBarTitle" />
199
+ <DocErrorBoundary name="NSBarTitle">
200
+ <NSBarTitle title="Sample" />
201
+ </DocErrorBoundary>
202
+
203
+ <NSLineText title="NSBoxBoolean" />
204
+ <DocErrorBoundary name="NSBoxBoolean">
205
+ <NSBoxBoolean title="Sample" required={false} />
206
+ </DocErrorBoundary>
207
+
208
+ <NSLineText title="NSBoxBooleans" />
209
+ <DocErrorBoundary name="NSBoxBooleans">
210
+ <NSBoxBooleans items={[{ value: "a", text: "A" }]} />
211
+ </DocErrorBoundary>
212
+
213
+ <NSLineText title="NSBoxColor" />
214
+ <DocErrorBoundary name="NSBoxColor">
215
+ <NSBoxColor title="Sample" required={false} />
216
+ </DocErrorBoundary>
217
+
218
+ <NSLineText title="NSBoxCombo" />
219
+ <DocErrorBoundary name="NSBoxCombo">
220
+ <NSBoxCombo title="Sample" required={false} multiple={false} getOptions={() => []} />
221
+ </DocErrorBoundary>
222
+
223
+ <NSLineText title="NSBoxDate" />
224
+ <DocErrorBoundary name="NSBoxDate">
225
+ <NSBoxDate title="Sample" required={false} />
226
+ </DocErrorBoundary>
227
+
228
+ <NSLineText title="NSBoxDateRange" />
229
+ <DocErrorBoundary name="NSBoxDateRange">
230
+ <NSBoxDateRange title="Sample" required={false} />
231
+ </DocErrorBoundary>
232
+
233
+ <NSLineText title="NSBoxDateTime" />
234
+ <DocErrorBoundary name="NSBoxDateTime">
235
+ <NSBoxDateTime title="Sample" required={false} />
236
+ </DocErrorBoundary>
237
+
238
+ <NSLineText title="NSBoxDateTimeRange" />
239
+ <DocErrorBoundary name="NSBoxDateTimeRange">
240
+ <NSBoxDateTimeRange title="Sample" required={false} />
241
+ </DocErrorBoundary>
242
+
243
+ <NSLineText title="NSBoxDouble" />
244
+ <DocErrorBoundary name="NSBoxDouble">
245
+ <NSBoxDouble title="Sample" required={false} />
246
+ </DocErrorBoundary>
247
+
248
+ <NSLineText title="NSBoxDuration" />
249
+ <DocErrorBoundary name="NSBoxDuration">
250
+ <NSBoxDuration title="Sample" required={false} />
251
+ </DocErrorBoundary>
252
+
253
+ <NSLineText title="NSBoxDynamic" />
254
+ <DocErrorBoundary name="NSBoxDynamic">
255
+ {React.createElement(NSBoxDynamic as any, { title: "Sample", name: "dyn", variable: {} })}
256
+ </DocErrorBoundary>
257
+
258
+ <NSLineText title="NSBoxDynamics" />
259
+ <DocErrorBoundary name="NSBoxDynamics">
260
+ <NSBoxDynamics name="sample" variables={[]} />
261
+ </DocErrorBoundary>
262
+
263
+ <NSLineText title="NSBoxEmail" />
264
+ <DocErrorBoundary name="NSBoxEmail">
265
+ <NSBoxEmail title="Sample" required={false} />
266
+ </DocErrorBoundary>
267
+
268
+ <NSLineText title="NSBoxEntity" />
269
+ <DocErrorBoundary name="NSBoxEntity">
270
+ {React.createElement(NSBoxEntity as any, { title: "Sample", required: false, multiple: false, getTitle: (x: any) => x, getValue: (x: any) => x, getSort: () => null, list: async () => ({ count: 0, rows: [] }), table_name: "sample" })}
271
+ </DocErrorBoundary>
272
+
273
+ <NSLineText title="NSBoxEnum" />
274
+ <DocErrorBoundary name="NSBoxEnum">
275
+ <NSBoxEnum title="Sample" required={false} multiple={false} getEnumObject={() => ({})} />
276
+ </DocErrorBoundary>
277
+
278
+ <NSLineText title="NSBoxFile" />
279
+ <DocErrorBoundary name="NSBoxFile">
280
+ <NSBoxFile title="Sample" required={false} />
281
+ </DocErrorBoundary>
282
+
283
+ <NSLineText title="NSBoxFilePath" />
284
+ <DocErrorBoundary name="NSBoxFilePath">
285
+ <NSBoxFilePath title="Sample" required={false} />
286
+ </DocErrorBoundary>
287
+
288
+ <NSLineText title="NSBoxFont" />
289
+ <DocErrorBoundary name="NSBoxFont">
290
+ <NSBoxFont title="Sample" required={false} />
291
+ </DocErrorBoundary>
292
+
293
+ <NSLineText title="NSBoxIPV4" />
294
+ <DocErrorBoundary name="NSBoxIPV4">
295
+ <NSBoxIPV4 title="Sample" required={false} />
296
+ </DocErrorBoundary>
297
+
298
+ <NSLineText title="NSBoxIPV4Range" />
299
+ <DocErrorBoundary name="NSBoxIPV4Range">
300
+ <NSBoxIPV4Range title="Sample" required={false} />
301
+ </DocErrorBoundary>
302
+
303
+ <NSLineText title="NSBoxIPV6" />
304
+ <DocErrorBoundary name="NSBoxIPV6">
305
+ <NSBoxIPV6 title="Sample" required={false} />
306
+ </DocErrorBoundary>
307
+
308
+ <NSLineText title="NSBoxIPV6Range" />
309
+ <DocErrorBoundary name="NSBoxIPV6Range">
310
+ <NSBoxIPV6Range title="Sample" required={false} />
311
+ </DocErrorBoundary>
312
+
313
+ <NSLineText title="NSBoxInteger" />
314
+ <DocErrorBoundary name="NSBoxInteger">
315
+ <NSBoxInteger title="Sample" required={false} />
316
+ </DocErrorBoundary>
317
+
318
+ <NSLineText title="NSBoxMoney" />
319
+ <DocErrorBoundary name="NSBoxMoney">
320
+ <NSBoxMoney title="Sample" required={false} />
321
+ </DocErrorBoundary>
322
+
323
+ <NSLineText title="NSBoxOptions" />
324
+ <DocErrorBoundary name="NSBoxOptions">
325
+ <NSBoxOptions title="Sample" required={false} multiple={false} options={[{ value: "a", title: "A" }]} />
326
+ </DocErrorBoundary>
327
+
328
+ <NSLineText title="NSBoxPhone" />
329
+ <DocErrorBoundary name="NSBoxPhone">
330
+ <NSBoxPhone title="Sample" required={false} />
331
+ </DocErrorBoundary>
332
+
333
+ <NSLineText title="NSBoxRadio" />
334
+ <DocErrorBoundary name="NSBoxRadio">
335
+ <NSBoxRadio title="Sample" required={false} />
336
+ </DocErrorBoundary>
337
+
338
+ <NSLineText title="NSBoxSchemaBase" />
339
+ <DocErrorBoundary name="NSBoxSchemaBase">
340
+ {React.createElement(NSBoxSchemaBase as any, { title: "Sample", name: "schema", required: false })}
341
+ </DocErrorBoundary>
342
+
343
+ <NSLineText title="NSBoxSchemaVariable" />
344
+ <DocErrorBoundary name="NSBoxSchemaVariable">
345
+ {React.createElement(NSBoxSchemaVariable as any, { title: "Sample", name: "schemavar", required: false })}
346
+ </DocErrorBoundary>
347
+
348
+ <NSLineText title="NSBoxSearch" />
349
+ <DocErrorBoundary name="NSBoxSearch">
350
+ <NSBoxSearch title="Sample" required={false} />
351
+ </DocErrorBoundary>
352
+
353
+ <NSLineText title="NSBoxSensitive" />
354
+ <DocErrorBoundary name="NSBoxSensitive">
355
+ <NSBoxSensitive title="Sample" required={false} />
356
+ </DocErrorBoundary>
357
+
358
+ <NSLineText title="NSBoxString" />
359
+ <DocErrorBoundary name="NSBoxString">
360
+ <NSBoxString title="Sample" required={false} />
361
+ </DocErrorBoundary>
362
+
363
+ <NSLineText title="NSBoxTextArea" />
364
+ <DocErrorBoundary name="NSBoxTextArea">
365
+ <NSBoxTextArea title="Sample" required={false} />
366
+ </DocErrorBoundary>
367
+
368
+ <NSLineText title="NSBoxTime" />
369
+ <DocErrorBoundary name="NSBoxTime">
370
+ <NSBoxTime title="Sample" required={false} />
371
+ </DocErrorBoundary>
372
+
373
+ <NSLineText title="NSBoxTimeRange" />
374
+ <DocErrorBoundary name="NSBoxTimeRange">
375
+ <NSBoxTimeRange title="Sample" required={false} />
376
+ </DocErrorBoundary>
377
+
378
+ <NSLineText title="NSBoxTimeZone" />
379
+ <DocErrorBoundary name="NSBoxTimeZone">
380
+ <NSBoxTimeZone title="Sample" required={false} />
381
+ </DocErrorBoundary>
382
+
383
+ <NSLineText title="NSBoxURL" />
384
+ <DocErrorBoundary name="NSBoxURL">
385
+ <NSBoxURL title="Sample" required={false} />
386
+ </DocErrorBoundary>
387
+
388
+ <NSLineText title="NSBoxVersion" />
389
+ <DocErrorBoundary name="NSBoxVersion">
390
+ <NSBoxVersion title="Sample" required={false} />
391
+ </DocErrorBoundary>
392
+
393
+ <NSLineText title="NSButton" />
394
+ <DocErrorBoundary name="NSButton">
395
+ <NSButton title="Sample" onClick={{ action: () => { }, showLoading: false }} />
396
+ </DocErrorBoundary>
397
+
398
+ <NSLineText title="NSButtonBlue" />
399
+ <DocErrorBoundary name="NSButtonBlue">
400
+ <NSButtonBlue title="Sample" onClick={{ action: () => { }, showLoading: false }} />
401
+ </DocErrorBoundary>
402
+
403
+ <NSLineText title="NSButtonGreen" />
404
+ <DocErrorBoundary name="NSButtonGreen">
405
+ <NSButtonGreen title="Sample" onClick={{ action: () => { }, showLoading: false }} />
406
+ </DocErrorBoundary>
407
+
408
+ <NSLineText title="NSButtonRed" />
409
+ <DocErrorBoundary name="NSButtonRed">
410
+ <NSButtonRed title="Sample" onClick={{ action: () => { }, showLoading: false }} />
411
+ </DocErrorBoundary>
412
+
413
+ <NSLineText title="NSCard" />
414
+ <DocErrorBoundary name="NSCard">
415
+ <NSColumn style={{ gap: "1.5rem" }}>
416
+ <NSTitle title="Without CTA" />
417
+ <div style={{ display: "flex", flexWrap: "wrap", gap: "1rem" }}>
418
+ <NSCard title="Title only" link={{ href: "#" }} />
419
+ <NSCard description="Description only — some sample text used to describe the card without any title or image." link={{ href: "#" }} />
420
+ <NSCard image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
421
+ <NSCard headline={{ text: "Headline only", color: "#0d6efd" }} link={{ href: "#" }} />
422
+ <NSCard title="Title + Description" description="Short description text under the title." link={{ href: "#" }} />
423
+ <NSCard title="Title + Image" image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
424
+ <NSCard title="Title + Headline" headline={{ text: "Featured", color: "#28a745" }} link={{ href: "#" }} />
425
+ <NSCard description="Description + Image with no title." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
426
+ <NSCard description="Description + Headline." headline={{ text: "Info", color: "#17a2b8" }} link={{ href: "#" }} />
427
+ <NSCard headline={{ text: "New", color: "#dc3545" }} image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
428
+ <NSCard title="Title + Headline + Image" headline={{ text: "Popular", color: "#fd7e14" }} image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
429
+ <NSCard title="Title + Description + Image" description="Full card with title, description and image." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
430
+ <NSCard title="Title + Headline + Description" headline={{ text: "Trending", color: "#20c997" }} description="Card with headline, title and description but no image." link={{ href: "#" }} />
431
+ <NSCard headline={{ text: "Alert", color: "#dc3545" }} description="Headline + Description + Image without a title." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
432
+ <NSCard title="All fields" headline={{ text: "Premium", color: "#ffc107" }} description="Card with headline, title, description and image combined." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#" }} />
433
+ </div>
434
+
435
+ <NSTitle title="With CTA" />
436
+ <div style={{ display: "flex", flexWrap: "wrap", gap: "1rem" }}>
437
+ <NSCard title="Title only" link={{ href: "#", children: "Open" }} />
438
+ <NSCard description="Description only — some sample text used to describe the card without any title or image." link={{ href: "#", children: "Read more" }} />
439
+ <NSCard image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "View image" }} />
440
+ <NSCard headline={{ text: "Headline only", color: "#0d6efd" }} link={{ href: "#", children: "Explore" }} />
441
+ <NSCard title="Title + Description" description="Short description text under the title." link={{ href: "#", children: "Learn more" }} />
442
+ <NSCard title="Title + Image" image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "See details" }} />
443
+ <NSCard title="Title + Headline" headline={{ text: "Featured", color: "#28a745" }} link={{ href: "#", children: "Discover" }} />
444
+ <NSCard description="Description + Image with no title." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Preview" }} />
445
+ <NSCard description="Description + Headline." headline={{ text: "Info", color: "#17a2b8" }} link={{ href: "#", children: "More info" }} />
446
+ <NSCard headline={{ text: "New", color: "#dc3545" }} image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Check out" }} />
447
+ <NSCard title="Title + Headline + Image" headline={{ text: "Popular", color: "#fd7e14" }} image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Browse" }} />
448
+ <NSCard title="Title + Description + Image" description="Full card with title, description and image." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Continue" }} />
449
+ <NSCard title="Title + Headline + Description" headline={{ text: "Trending", color: "#20c997" }} description="Card with headline, title and description but no image." link={{ href: "#", children: "Start now" }} />
450
+ <NSCard headline={{ text: "Alert", color: "#dc3545" }} description="Headline + Description + Image without a title." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Take action" }} />
451
+ <NSCard title="All fields" headline={{ text: "Premium", color: "#ffc107" }} description="Card with headline, title, description and image combined." image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} link={{ href: "#", children: "Get started" }} />
452
+ </div>
453
+ </NSColumn>
454
+ </DocErrorBoundary>
455
+
456
+ <NSLineText title="NSCardScreenshot" />
457
+ <DocErrorBoundary name="NSCardScreenshot">
458
+ {React.createElement(NSCardScreenshot as any, { key: 1, screenshot: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png", timeSpent: "1h", onDelete: () => { } })}
459
+ </DocErrorBoundary>
460
+
461
+ {/* <NSLineText title="NSChartBar" />
462
+ <DocErrorBoundary name="NSChartBar">
463
+ <NSChartBar labels={["A", "B"]} dataset={[{ label: "s", data: [1, 2] }]} range={{ min: 0, max: 10 }} />
464
+ </DocErrorBoundary>
465
+
466
+ <NSLineText title="NSChartDoughnut" />
467
+ <DocErrorBoundary name="NSChartDoughnut">
468
+ <NSChartDoughnut title="Sample" datas={[1, 2, 3]} labels={["A", "B", "C"]} />
469
+ </DocErrorBoundary>
470
+
471
+ <NSLineText title="NSChartLine" />
472
+ <DocErrorBoundary name="NSChartLine">
473
+ <NSChartLine labels={["A", "B"]} dataset={[{ label: "s", data: [1, 2] }]} range={{ min: 0, max: 10 }} />
474
+ </DocErrorBoundary>
475
+
476
+ <NSLineText title="NSChartPie" />
477
+ <DocErrorBoundary name="NSChartPie">
478
+ <NSChartPie datas={[1, 2, 3]} labels={["A", "B", "C"]} />
479
+ </DocErrorBoundary>
480
+
481
+ <NSLineText title="NSChartRange" />
482
+ <DocErrorBoundary name="NSChartRange">
483
+ <NSChartRange />
484
+ </DocErrorBoundary> */}
485
+
486
+ <NSLineText title="NSColumn" />
487
+ <DocErrorBoundary name="NSColumn">
488
+ <NSColumn>Sample</NSColumn>
489
+ </DocErrorBoundary>
490
+
491
+ <NSLineText title="NSCopy" />
492
+ <DocErrorBoundary name="NSCopy">
493
+ <NSCopy>Sample</NSCopy>
494
+ </DocErrorBoundary>
495
+
496
+ <NSLineText title="NSCopyBox" />
497
+ <DocErrorBoundary name="NSCopyBox">
498
+ <NSCopyBox value="Sample" />
499
+ </DocErrorBoundary>
500
+
501
+ <NSLineText title="NSDialog" />
502
+ <DocErrorBoundary name="NSDialog">
503
+ <NSButtonBlue title="Open NSDialog" onClick={{ action: () => this.openDialog("NSDialog"), showLoading: false }} />
504
+ {this.state.openDialog === "NSDialog" && <NSDialog onClose={this.closeDialog}>Sample</NSDialog>}
505
+ </DocErrorBoundary>
506
+
507
+ <NSLineText title="NSDialogBox" />
508
+ <DocErrorBoundary name="NSDialogBox">
509
+ <NSButtonBlue title="Open NSDialogBox" onClick={{ action: () => this.openDialog("NSDialogBox"), showLoading: false }} />
510
+ {this.state.openDialog === "NSDialogBox" && React.createElement(NSDialogBox as any, { onClose: this.closeDialog, children_ref: React.createRef<any>() })}
511
+ </DocErrorBoundary>
512
+
513
+ <NSLineText title="NSDialogBoxDate" />
514
+ <DocErrorBoundary name="NSDialogBoxDate">
515
+ <NSButtonBlue title="Open NSDialogBoxDate" onClick={{ action: () => this.openDialog("NSDialogBoxDate"), showLoading: false }} />
516
+ {this.state.openDialog === "NSDialogBoxDate" && <NSDialogBoxDate onClose={this.closeDialog} box={{ title: "Sample", required: false }} />}
517
+ </DocErrorBoundary>
518
+
519
+ <NSLineText title="NSDialogBoxDateTime" />
520
+ <DocErrorBoundary name="NSDialogBoxDateTime">
521
+ <NSButtonBlue title="Open NSDialogBoxDateTime" onClick={{ action: () => this.openDialog("NSDialogBoxDateTime"), showLoading: false }} />
522
+ {this.state.openDialog === "NSDialogBoxDateTime" && <NSDialogBoxDateTime onClose={this.closeDialog} box={{ title: "Sample", required: false }} />}
523
+ </DocErrorBoundary>
524
+
525
+ <NSLineText title="NSDialogBoxPhone" />
526
+ <DocErrorBoundary name="NSDialogBoxPhone">
527
+ <NSButtonBlue title="Open NSDialogBoxPhone" onClick={{ action: () => this.openDialog("NSDialogBoxPhone"), showLoading: false }} />
528
+ {this.state.openDialog === "NSDialogBoxPhone" && <NSDialogBoxPhone onClose={this.closeDialog} box={{ title: "Sample", required: false }} />}
529
+ </DocErrorBoundary>
530
+
531
+ <NSLineText title="NSDialogBoxString" />
532
+ <DocErrorBoundary name="NSDialogBoxString">
533
+ <NSButtonBlue title="Open NSDialogBoxString" onClick={{ action: () => this.openDialog("NSDialogBoxString"), showLoading: false }} />
534
+ {this.state.openDialog === "NSDialogBoxString" && <NSDialogBoxString onClose={this.closeDialog} box={{ title: "Sample", required: false }} />}
535
+ </DocErrorBoundary>
536
+
537
+ <NSLineText title="NSDialogDelete" />
538
+ <DocErrorBoundary name="NSDialogDelete">
539
+ <NSButtonBlue title="Open NSDialogDelete" onClick={{ action: () => this.openDialog("NSDialogDelete"), showLoading: false }} />
540
+ {this.state.openDialog === "NSDialogDelete" && <NSDialogDelete onClose={this.closeDialog} onYes={{ action: () => { this.closeDialog(); }, showLoading: false }} onNo={{ action: () => { this.closeDialog(); }, showLoading: false }} show_as_code={false} />}
541
+ </DocErrorBoundary>
542
+
543
+ <NSLineText title="NSDialogInfo" />
544
+ <DocErrorBoundary name="NSDialogInfo">
545
+ <NSButtonBlue title="Open NSDialogInfo" onClick={{ action: () => this.openDialog("NSDialogInfo"), showLoading: false }} />
546
+ {this.state.openDialog === "NSDialogInfo" && <NSDialogInfo onClose={this.closeDialog} show_as_code={false} />}
547
+ </DocErrorBoundary>
548
+
549
+ <NSLineText title="NSDialogPageSelection" />
550
+ <DocErrorBoundary name="NSDialogPageSelection">
551
+ <NSButtonBlue title="Open NSDialogPageSelection" onClick={{ action: () => this.openDialog("NSDialogPageSelection"), showLoading: false }} />
552
+ {this.state.openDialog === "NSDialogPageSelection" && React.createElement(NSDialogPageSelection as any, { current_page: 1, current_size: 25, max_page: 10, onClose: this.closeDialog, getItems: async () => [], onFinish: async () => { this.closeDialog(); } })}
553
+ </DocErrorBoundary>
554
+
555
+ <NSLineText title="NSDownTimer" />
556
+ <DocErrorBoundary name="NSDownTimer">
557
+ <NSDownTimer date={new Date()} text="Sample" />
558
+ </DocErrorBoundary>
559
+
560
+ <NSLineText title="NSDownload" />
561
+ <DocErrorBoundary name="NSDownload">
562
+ <NSDownload releaseDate="2025-01-01" />
563
+ </DocErrorBoundary>
564
+
565
+ <NSLineText title="NSElectronicCard" />
566
+ <DocErrorBoundary name="NSElectronicCard">
567
+ <NSElectronicCard src="https://static.namirasoft.com/image/namirasoft/access/logo/base.png" title="Sample" cardNumber="0000000000000000" />
568
+ </DocErrorBoundary>
569
+
570
+ <NSLineText title="NSEntityCardBackground" />
571
+ <DocErrorBoundary name="NSEntityCardBackground">
572
+ <NSEntityCardBackground title="Sample" />
573
+ </DocErrorBoundary>
574
+
575
+ <NSLineText title="NSFilterBox" />
576
+ <DocErrorBoundary name="NSFilterBox">
577
+ <NSFilterBox getTables={() => []} getMoreTables={async () => []} getValues={null} />
578
+ </DocErrorBoundary>
579
+
580
+ <NSLineText title="NSFilterBoxItems" />
581
+ <DocErrorBoundary name="NSFilterBoxItems">
582
+ <NSFilterBoxItems filterItems={[]} onClearFilterItems={() => { }} onRemoveFilterItem={() => { }} />
583
+ </DocErrorBoundary>
584
+
585
+ <NSLineText title="NSFilterItem" />
586
+ <DocErrorBoundary name="NSFilterItem">
587
+ {React.createElement(NSFilterItem as any, { item: { toString: () => "Sample" }, removeSelected: () => { } })}
588
+ </DocErrorBoundary>
589
+
590
+ <NSLineText title="NSFooter" />
591
+ <DocErrorBoundary name="NSFooter">
592
+ <NSFooter scope="" name="sample" logo="https://static.namirasoft.com/image/namirasoft/access/logo/base.png" isLoggedIn={() => true} />
593
+ </DocErrorBoundary>
594
+
595
+ <NSLineText title="NSGauge" />
596
+ <DocErrorBoundary name="NSGauge">
597
+ <NSGauge total={100} current={50} showPercent colors={gaugeColors} />
598
+ </DocErrorBoundary>
599
+
600
+ <NSLineText title="NSGaugeDate" />
601
+ <DocErrorBoundary name="NSGaugeDate">
602
+ <NSGaugeDate title="Sample" from={TimeOperation.daysAgo(1, new Date())} to={TimeOperation.daysAgo(-1, new Date())} colors={gaugeColors} />
603
+ </DocErrorBoundary>
604
+
605
+ <NSLineText title="NSGaugeNumber" />
606
+ <DocErrorBoundary name="NSGaugeNumber">
607
+ <NSGaugeNumber title="Sample" total={100} current={50} colors={gaugeColors} />
608
+ </DocErrorBoundary>
609
+
610
+ <NSLineText title="NSHeader" />
611
+ <DocErrorBoundary name="NSHeader">
612
+ {React.createElement(NSHeader as any, { right: { icons: [] }, left: { scope: "", name: "sample", logo: "" }, isLoggedIn: () => true, notifier: {} })}
613
+ </DocErrorBoundary>
614
+
615
+ <NSLineText title="NSHeaderScreenshot" />
616
+ <DocErrorBoundary name="NSHeaderScreenshot">
617
+ <NSHeaderScreenshot project="P" task="T" time="1h" Countdown="00:00" />
618
+ </DocErrorBoundary>
619
+
620
+ <NSLineText title="NSID" />
621
+ <DocErrorBoundary name="NSID">
622
+ <NSID id="sample" map={null} storage={null} />
623
+ </DocErrorBoundary>
624
+
625
+ <NSLineText title="NSInfo" />
626
+ <DocErrorBoundary name="NSInfo">
627
+ <NSInfo text="Sample" />
628
+ </DocErrorBoundary>
629
+
630
+ <NSLineText title="NSLabel" />
631
+ <DocErrorBoundary name="NSLabel">
632
+ <NSLabel title="Sample" />
633
+ </DocErrorBoundary>
634
+
635
+ <NSLineText title="NSLabelErrorNotifier" />
636
+ <DocErrorBoundary name="NSLabelErrorNotifier">
637
+ <NSLabelErrorNotifier clearError={() => { }} />
638
+ </DocErrorBoundary>
639
+
640
+ <NSLineText title="NSLabelSensitive" />
641
+ <DocErrorBoundary name="NSLabelSensitive">
642
+ <NSLabelSensitive value="Sample" sensitive={false} />
643
+ </DocErrorBoundary>
644
+
645
+ <NSLineText title="NSLine" />
646
+ <DocErrorBoundary name="NSLine">
647
+ <NSLine />
648
+ </DocErrorBoundary>
649
+
650
+ <NSLineText title="NSLink" />
651
+ <DocErrorBoundary name="NSLink">
652
+ <NSLink href="#">Sample</NSLink>
653
+ </DocErrorBoundary>
654
+
655
+ <NSLineText title="NSLinkBlue" />
656
+ <DocErrorBoundary name="NSLinkBlue">
657
+ <NSLinkBlue href="#">Sample</NSLinkBlue>
658
+ </DocErrorBoundary>
659
+
660
+ <NSLineText title="NSLinkGreen" />
661
+ <DocErrorBoundary name="NSLinkGreen">
662
+ <NSLinkGreen href="#">Sample</NSLinkGreen>
663
+ </DocErrorBoundary>
664
+
665
+ <NSLineText title="NSLinkRed" />
666
+ <DocErrorBoundary name="NSLinkRed">
667
+ <NSLinkRed href="#">Sample</NSLinkRed>
668
+ </DocErrorBoundary>
669
+
670
+ <NSLineText title="NSListGrouped" />
671
+ <DocErrorBoundary name="NSListGrouped">
672
+ <NSListGrouped groups={[]} onClick={() => { }} onClose={() => { }} />
673
+ </DocErrorBoundary>
674
+
675
+ <NSLineText title="NSListProduct" />
676
+ <DocErrorBoundary name="NSListProduct">
677
+ <NSListProduct scope="" name="sample" />
678
+ </DocErrorBoundary>
679
+
680
+ <NSLineText title="NSLoading" />
681
+ <DocErrorBoundary name="NSLoading">
682
+ <NSLoading />
683
+ </DocErrorBoundary>
684
+
685
+ <NSLineText title="NSMegaMenu" />
686
+ <DocErrorBoundary name="NSMegaMenu">
687
+ {React.createElement(NSMegaMenu as any, { items: [], selected: { id: 0 } })}
688
+ </DocErrorBoundary>
689
+
690
+ <NSLineText title="NSMenuAction" />
691
+ <DocErrorBoundary name="NSMenuAction">
692
+ <NSMenuAction name="Sample" items={[]} />
693
+ </DocErrorBoundary>
694
+
695
+ <NSLineText title="NSMenuButton" />
696
+ <DocErrorBoundary name="NSMenuButton">
697
+ <NSMenuButton />
698
+ </DocErrorBoundary>
699
+
700
+ <NSLineText title="NSNoData" />
701
+ <DocErrorBoundary name="NSNoData">
702
+ <NSNoData lable="No Data" />
703
+ </DocErrorBoundary>
704
+
705
+ <NSLineText title="NSPagination" />
706
+ <DocErrorBoundary name="NSPagination">
707
+ <NSPagination totalItems={100} onPageChange={() => { }} />
708
+ </DocErrorBoundary>
709
+
710
+ <NSLineText title="NSPanel" />
711
+ <DocErrorBoundary name="NSPanel">
712
+ <NSPanel>Sample</NSPanel>
713
+ </DocErrorBoundary>
714
+
715
+ <NSLineText title="NSPanelAccordion" />
716
+ <DocErrorBoundary name="NSPanelAccordion">
717
+ <NSPanelAccordion getHeader={() => "Sample"}>Sample</NSPanelAccordion>
718
+ </DocErrorBoundary>
719
+
720
+ <NSLineText title="NSProductSearch" />
721
+ <DocErrorBoundary name="NSProductSearch">
722
+ <NSProductSearch search="sample" />
723
+ </DocErrorBoundary>
724
+
725
+ <NSLineText title="NSProgressBar" />
726
+ <DocErrorBoundary name="NSProgressBar">
727
+ {React.createElement(NSProgressBar as any, { progress: 50 })}
728
+ </DocErrorBoundary>
729
+
730
+ <NSLineText title="NSRange" />
731
+ <DocErrorBoundary name="NSRange">
732
+ <NSRange data={[]} />
733
+ </DocErrorBoundary>
734
+
735
+ <NSLineText title="NSReorderDialog" />
736
+ <DocErrorBoundary name="NSReorderDialog">
737
+ <NSButtonBlue title="Open NSReorderDialog" onClick={{ action: () => this.openDialog("NSReorderDialog"), showLoading: false }} />
738
+ {this.state.openDialog === "NSReorderDialog" && <NSReorderDialog visibleColumnKeys={[]} getColumns={() => []} onCancel={this.closeDialog} onApply={() => { this.closeDialog(); }} />}
739
+ </DocErrorBoundary>
740
+
741
+ <NSLineText title="NSRepeater" />
742
+ <DocErrorBoundary name="NSRepeater">
743
+ {React.createElement(NSRepeater as any, { title: "Sample", required: false, createItem: () => null, getValue: () => null, setValue: () => { }, isEmpty: () => true })}
744
+ </DocErrorBoundary>
745
+
746
+ <NSLineText title="NSRepeaterNSBoxSchemaVariable" />
747
+ <DocErrorBoundary name="NSRepeaterNSBoxSchemaVariable">
748
+ <NSRepeaterNSBoxSchemaVariable name="sample" title="Sample" required={false} item_title="Item" />
749
+ </DocErrorBoundary>
750
+
751
+ <NSLineText title="NSRepeaterNSTag" />
752
+ <DocErrorBoundary name="NSRepeaterNSTag">
753
+ <NSRepeaterNSTag name="sample" title="Sample" required={false} />
754
+ </DocErrorBoundary>
755
+
756
+ <NSLineText title="NSRow" />
757
+ <DocErrorBoundary name="NSRow">
758
+ <NSRow>Sample</NSRow>
759
+ </DocErrorBoundary>
760
+
761
+ <NSLineText title="NSSection" />
762
+ <DocErrorBoundary name="NSSection">
763
+ <NSSection>Sample</NSSection>
764
+ </DocErrorBoundary>
765
+
766
+ <NSLineText title="NSSectionCards" />
767
+ <DocErrorBoundary name="NSSectionCards">
768
+ <NSSectionCards cards={[]} />
769
+ </DocErrorBoundary>
770
+
771
+ <NSLineText title="NSSectionTiles" />
772
+ <DocErrorBoundary name="NSSectionTiles">
773
+ <NSSectionTiles tiles={[]} />
774
+ </DocErrorBoundary>
775
+
776
+ <NSLineText title="NSSectionTitle" />
777
+ <DocErrorBoundary name="NSSectionTitle">
778
+ <NSSectionTitle title="Sample">Sample</NSSectionTitle>
779
+ </DocErrorBoundary>
780
+
781
+ <NSLineText title="NSSortDialog" />
782
+ <DocErrorBoundary name="NSSortDialog">
783
+ <NSButtonBlue title="Open NSSortDialog" onClick={{ action: () => this.openDialog("NSSortDialog"), showLoading: false }} />
784
+ {this.state.openDialog === "NSSortDialog" && React.createElement(NSSortDialog as any, { sorts: [], getColumns: () => [], onCancel: this.closeDialog, onApply: () => { this.closeDialog(); } })}
785
+ </DocErrorBoundary>
786
+
787
+ <NSLineText title="NSSpace" />
788
+ <DocErrorBoundary name="NSSpace">
789
+ <NSSpace size={NSSpaceSizeType.SMALL} />
790
+ </DocErrorBoundary>
791
+
792
+ <NSLineText title="NSSplitter" />
793
+ <DocErrorBoundary name="NSSplitter">
794
+ <NSSplitter />
795
+ </DocErrorBoundary>
796
+
797
+ <NSLineText title="NSTabPage" />
798
+ <DocErrorBoundary name="NSTabPage">
799
+ <NSTabPage tabs={[]} />
800
+ </DocErrorBoundary>
801
+
802
+ <NSLineText title="NSTable" />
803
+ <DocErrorBoundary name="NSTable">
804
+ {React.createElement(NSTable as any, { name: "sample_docs", columns: [], getRowKey: (item: any) => item?.value?.id, getRows: async () => ({ count: 0, rows: [] }) })}
805
+ </DocErrorBoundary>
806
+
807
+ <NSLineText title="NSTableChart" />
808
+ <DocErrorBoundary name="NSTableChart">
809
+ {false && React.createElement(NSTableChart as any, { name: "sample", columns: [], rows: [], selectedRows: [], onClose: () => { } })}
810
+ </DocErrorBoundary>
811
+
812
+ <NSLineText title="NSTag" />
813
+ <DocErrorBoundary name="NSTag">
814
+ <NSTag />
815
+ </DocErrorBoundary>
816
+
817
+ <NSLineText title="NSTile" />
818
+ <DocErrorBoundary name="NSTile">
819
+ <NSTile title="Sample" description="Sample" image={{ src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png" }} />
820
+ </DocErrorBoundary>
821
+
822
+ <NSLineText title="NSTimelineMonthly" />
823
+ <DocErrorBoundary name="NSTimelineMonthly">
824
+ <NSTimelineMonthly data={[]} />
825
+ </DocErrorBoundary>
826
+
827
+ <NSLineText title="NSTitle" />
828
+ <DocErrorBoundary name="NSTitle">
829
+ <NSTitle title="Sample" />
830
+ </DocErrorBoundary>
831
+ </NSColumn>
832
+ <NSTable<TableRow>
833
+ ref={this.NSTableRef}
834
+ name={"table"}
835
+ checkbox
836
+ columns={[
837
+ {
838
+ table: { name: "table", text: "Table" },
839
+ index: 0, type: "String", name: "id", text: "ID", formatter: new StringFormatter()
840
+ },
841
+ {
842
+ table: { name: "table", text: "Table" },
843
+ index: 1, type: "String", name: "name", text: "Name", formatter: new StringFormatter()
844
+ },
845
+ {
846
+ table: { name: "table", text: "Table" },
847
+ index: 2, type: "Number", name: "age", text: "Age", formatter: new IntegerFormatter()
848
+ },
849
+ {
850
+ table: { name: "table", text: "Table" },
851
+ index: 3, type: "Number", name: "experience", text: "Experience", formatter: new IntegerFormatter()
852
+ },
853
+ {
854
+ table: { name: "table", text: "Table" },
855
+ index: 4, type: "Number", name: "salary", text: "Salary", formatter: new IntegerFormatter()
856
+ },
857
+ {
858
+ table: { name: "table", text: "Table" },
859
+ index: 5, type: "String", name: "city", text: "City", formatter: new StringFormatter()
860
+ },
861
+ {
862
+ table: { name: "table", text: "Table" },
863
+ index: 6, type: "String", name: "phone", text: "Phone", formatter: new PhoneFormatter()
864
+ },
865
+ {
866
+ table: { name: "table", text: "Table" },
867
+ index: 7, type: "String", name: "national_code", text: "National Code", formatter: new SensitiveFormatter<TableRow>(
868
+ async (value) =>
869
+ {
870
+ await new Promise(resolve => setTimeout(resolve, 1000));
871
+ return value;
872
+ },
873
+ () => true
874
+ )
875
+ },
876
+ {
877
+ table: { name: "table", text: "Table" },
878
+ index: 8, type: "DateTime", name: "created_at", text: "Created At", formatter: new DateTimeFormatter()
879
+ },
880
+ {
881
+ table: { name: "table", text: "Table" },
882
+ index: 9, type: "String", name: "json", text: "Json", formatter: new JsonFormatter()
883
+ },
884
+ ]}
885
+ getRowKey={(item) => item.value.id}
886
+ getRows={async () => ({
887
+ count: 300,
888
+ rows: [
889
+ { id: "a1", name: "Amin Pasban", age: 28, experience: 6, salary: 12000, city: "Rasht", phone: "09117579093", national_code: "2670000001", json: JSON.stringify({ role: "Developer", skills: ["React", "TypeScript"], active: true, projects: { count: 3, latest: "Site Package" } }), created_at: TimeOperation.daysAgo(1, new Date()).toDateString() },
890
+ { id: "c3", name: "Negar Sharifpour", age: 28, experience: 2, salary: 9000, city: "Rasht", phone: "09117579092", national_code: "2670000002", created_at: TimeOperation.daysAgo(2, new Date()).toDateString() },
891
+ { id: "b2", name: "Milad Nazirzadeh", age: 28, experience: 6, salary: 18000, city: "Tehran", phone: "09127576063", national_code: "0070000003", created_at: TimeOperation.daysAgo(10, new Date()).toDateString() },
892
+ { id: "d4", name: "Mohammad Nazirzadeh", age: 29, experience: 4, salary: 8000, city: "Tehran", phone: "09127576063", national_code: "0070000004", created_at: TimeOperation.daysAgo(20, new Date()).toDateString() },
893
+ { id: "e5", name: "Hadiseh Pasban", age: 22, experience: 3, salary: 9500, city: "Rasht", phone: "09116463032", national_code: "2670000005", created_at: TimeOperation.daysAgo(100, new Date()).toDateString() },
894
+ ]
895
+ })}
896
+ headerChildren={
897
+ <NSBoxString
898
+ required
899
+ title={"Name"}
900
+ hideHeader
901
+ style={{ minWidth: NSBox.width.one }}
902
+ />
903
+ }
904
+ />
905
+ <NSColumn style={{ marginTop: "1.5rem", alignItems: "center" }}>
906
+ <NSBoxSchemaVariable
907
+ title={"Schema"}
908
+ required={true}
909
+ name='schema'
910
+ style={{ width: NSBox.width.double }}
911
+ />
912
+ <NSButtonBlue
913
+ title={"Log"}
914
+ onClick={{
915
+ showLoading: false,
916
+ action: () =>
917
+ {
918
+ console.log("Date:", this.NSBoxDateRef.current?.getValueString(false));
919
+ console.log("DateTime:", this.NSBoxDateTimeRef.current?.getValueString(false));
920
+ }
921
+ }}
922
+ />
923
+ </NSColumn>
924
+ </NSLayout>
925
+ );
926
+ }
927
927
  }