@blocklet/ui-react 3.4.14 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/lib/common/org-switch/use-org.d.ts +4 -4
  2. package/lib/common/ws.d.ts +22 -1
  3. package/package.json +10 -7
  4. package/.aigne/doc-smith/.local/afs-storage.sqlite3 +0 -0
  5. package/.aigne/doc-smith/config.yaml +0 -78
  6. package/.aigne/doc-smith/history.yaml +0 -14
  7. package/.aigne/doc-smith/media-description.yaml +0 -11
  8. package/.aigne/doc-smith/output/structure-plan.json +0 -255
  9. package/.aigne/doc-smith/translation-cache.yaml +0 -11
  10. package/.aigne/doc-smith/upload-cache.yaml +0 -528
  11. package/build.config.ts +0 -24
  12. package/docs/_sidebar.md +0 -19
  13. package/docs/assets/diagram/component-installer-diagram-0.ja.jpg +0 -0
  14. package/docs/assets/diagram/component-installer-diagram-0.jpg +0 -0
  15. package/docs/assets/diagram/component-installer-diagram-0.zh-TW.jpg +0 -0
  16. package/docs/assets/diagram/component-installer-diagram-0.zh.jpg +0 -0
  17. package/docs/assets/diagram/component-management-diagram-0.ja.jpg +0 -0
  18. package/docs/assets/diagram/component-management-diagram-0.jpg +0 -0
  19. package/docs/assets/diagram/component-management-diagram-0.zh-TW.jpg +0 -0
  20. package/docs/assets/diagram/component-management-diagram-0.zh.jpg +0 -0
  21. package/docs/assets/diagram/core-concepts-diagram-0.ja.jpg +0 -0
  22. package/docs/assets/diagram/core-concepts-diagram-0.jpg +0 -0
  23. package/docs/assets/diagram/core-concepts-diagram-0.zh-TW.jpg +0 -0
  24. package/docs/assets/diagram/core-concepts-diagram-0.zh.jpg +0 -0
  25. package/docs/assets/diagram/dashboard-diagram-0.ja.jpg +0 -0
  26. package/docs/assets/diagram/dashboard-diagram-0.jpg +0 -0
  27. package/docs/assets/diagram/dashboard-diagram-0.zh-TW.jpg +0 -0
  28. package/docs/assets/diagram/dashboard-diagram-0.zh.jpg +0 -0
  29. package/docs/assets/diagram/header-diagram-0.ja.jpg +0 -0
  30. package/docs/assets/diagram/header-diagram-0.jpg +0 -0
  31. package/docs/assets/diagram/header-diagram-0.zh-TW.jpg +0 -0
  32. package/docs/assets/diagram/header-diagram-0.zh.jpg +0 -0
  33. package/docs/assets/diagram/layout-diagram-0.ja.jpg +0 -0
  34. package/docs/assets/diagram/layout-diagram-0.jpg +0 -0
  35. package/docs/assets/diagram/layout-diagram-0.zh-TW.jpg +0 -0
  36. package/docs/assets/diagram/layout-diagram-0.zh.jpg +0 -0
  37. package/docs/assets/diagram/notifications-diagram-0.ja.jpg +0 -0
  38. package/docs/assets/diagram/notifications-diagram-0.jpg +0 -0
  39. package/docs/assets/diagram/notifications-diagram-0.zh-TW.jpg +0 -0
  40. package/docs/assets/diagram/notifications-diagram-0.zh.jpg +0 -0
  41. package/docs/assets/diagram/overview-diagram-0.ja.jpg +0 -0
  42. package/docs/assets/diagram/overview-diagram-0.jpg +0 -0
  43. package/docs/assets/diagram/overview-diagram-0.zh-TW.jpg +0 -0
  44. package/docs/assets/diagram/overview-diagram-0.zh.jpg +0 -0
  45. package/docs/assets/diagram/user-center-diagram-0.ja.jpg +0 -0
  46. package/docs/assets/diagram/user-center-diagram-0.jpg +0 -0
  47. package/docs/assets/diagram/user-center-diagram-0.zh-TW.jpg +0 -0
  48. package/docs/assets/diagram/user-center-diagram-0.zh.jpg +0 -0
  49. package/docs/assets/diagram/user-management-diagram-0.ja.jpg +0 -0
  50. package/docs/assets/diagram/user-management-diagram-0.jpg +0 -0
  51. package/docs/assets/diagram/user-management-diagram-0.zh-TW.jpg +0 -0
  52. package/docs/assets/diagram/user-management-diagram-0.zh.jpg +0 -0
  53. package/docs/assets/diagram/user-sessions-diagram-0.ja.jpg +0 -0
  54. package/docs/assets/diagram/user-sessions-diagram-0.jpg +0 -0
  55. package/docs/assets/diagram/user-sessions-diagram-0.zh-TW.jpg +0 -0
  56. package/docs/assets/diagram/user-sessions-diagram-0.zh.jpg +0 -0
  57. package/docs/components-component-management-blocklet-studio.ja.md +0 -194
  58. package/docs/components-component-management-blocklet-studio.md +0 -194
  59. package/docs/components-component-management-blocklet-studio.zh-TW.md +0 -194
  60. package/docs/components-component-management-blocklet-studio.zh.md +0 -194
  61. package/docs/components-component-management-component-installer.ja.md +0 -182
  62. package/docs/components-component-management-component-installer.md +0 -182
  63. package/docs/components-component-management-component-installer.zh-TW.md +0 -182
  64. package/docs/components-component-management-component-installer.zh.md +0 -182
  65. package/docs/components-component-management.ja.md +0 -30
  66. package/docs/components-component-management.md +0 -30
  67. package/docs/components-component-management.zh-TW.md +0 -30
  68. package/docs/components-component-management.zh.md +0 -30
  69. package/docs/components-layout-dashboard.ja.md +0 -185
  70. package/docs/components-layout-dashboard.md +0 -187
  71. package/docs/components-layout-dashboard.zh-TW.md +0 -185
  72. package/docs/components-layout-dashboard.zh.md +0 -185
  73. package/docs/components-layout-footer.ja.md +0 -165
  74. package/docs/components-layout-footer.md +0 -165
  75. package/docs/components-layout-footer.zh-TW.md +0 -165
  76. package/docs/components-layout-footer.zh.md +0 -165
  77. package/docs/components-layout-header.ja.md +0 -183
  78. package/docs/components-layout-header.md +0 -183
  79. package/docs/components-layout-header.zh-TW.md +0 -183
  80. package/docs/components-layout-header.zh.md +0 -183
  81. package/docs/components-layout.ja.md +0 -31
  82. package/docs/components-layout.md +0 -31
  83. package/docs/components-layout.zh-TW.md +0 -31
  84. package/docs/components-layout.zh.md +0 -31
  85. package/docs/components-notifications.ja.md +0 -125
  86. package/docs/components-notifications.md +0 -125
  87. package/docs/components-notifications.zh-TW.md +0 -125
  88. package/docs/components-notifications.zh.md +0 -125
  89. package/docs/components-user-management-user-center.ja.md +0 -148
  90. package/docs/components-user-management-user-center.md +0 -147
  91. package/docs/components-user-management-user-center.zh-TW.md +0 -148
  92. package/docs/components-user-management-user-center.zh.md +0 -148
  93. package/docs/components-user-management-user-sessions.ja.md +0 -121
  94. package/docs/components-user-management-user-sessions.md +0 -123
  95. package/docs/components-user-management-user-sessions.zh-TW.md +0 -121
  96. package/docs/components-user-management-user-sessions.zh.md +0 -121
  97. package/docs/components-user-management.ja.md +0 -49
  98. package/docs/components-user-management.md +0 -51
  99. package/docs/components-user-management.zh-TW.md +0 -49
  100. package/docs/components-user-management.zh.md +0 -49
  101. package/docs/components-utilities-icon.ja.md +0 -106
  102. package/docs/components-utilities-icon.md +0 -106
  103. package/docs/components-utilities-icon.zh-TW.md +0 -106
  104. package/docs/components-utilities-icon.zh.md +0 -106
  105. package/docs/components-utilities.ja.md +0 -136
  106. package/docs/components-utilities.md +0 -136
  107. package/docs/components-utilities.zh-TW.md +0 -136
  108. package/docs/components-utilities.zh.md +0 -136
  109. package/docs/components.ja.md +0 -27
  110. package/docs/components.md +0 -27
  111. package/docs/components.zh-TW.md +0 -27
  112. package/docs/components.zh.md +0 -27
  113. package/docs/core-concepts.ja.md +0 -134
  114. package/docs/core-concepts.md +0 -135
  115. package/docs/core-concepts.zh-TW.md +0 -134
  116. package/docs/core-concepts.zh.md +0 -134
  117. package/docs/getting-started.ja.md +0 -132
  118. package/docs/getting-started.md +0 -132
  119. package/docs/getting-started.zh-TW.md +0 -132
  120. package/docs/getting-started.zh.md +0 -132
  121. package/docs/hooks-api.ja.md +0 -214
  122. package/docs/hooks-api.md +0 -214
  123. package/docs/hooks-api.zh-TW.md +0 -214
  124. package/docs/hooks-api.zh.md +0 -214
  125. package/docs/how-to-guides.ja.md +0 -413
  126. package/docs/how-to-guides.md +0 -413
  127. package/docs/how-to-guides.zh-TW.md +0 -413
  128. package/docs/how-to-guides.zh.md +0 -413
  129. package/docs/overview.ja.md +0 -51
  130. package/docs/overview.md +0 -51
  131. package/docs/overview.zh-TW.md +0 -51
  132. package/docs/overview.zh.md +0 -51
  133. package/glossary.md +0 -12
  134. package/src/@types/index.ts +0 -230
  135. package/src/@types/shims.d.ts +0 -18
  136. package/src/BlockletStudio/README.md +0 -116
  137. package/src/BlockletStudio/index.tsx +0 -145
  138. package/src/ComponentInstaller/ComponentInstaller.stories.jsx +0 -16
  139. package/src/ComponentInstaller/index.jsx +0 -207
  140. package/src/ComponentInstaller/installer-item.jsx +0 -129
  141. package/src/ComponentInstaller/locales.js +0 -22
  142. package/src/ComponentInstaller/use-component-installed.js +0 -88
  143. package/src/ComponentManager/components/add-component.tsx +0 -136
  144. package/src/ComponentManager/components/check-component.tsx +0 -3
  145. package/src/ComponentManager/components/publish-component.tsx +0 -90
  146. package/src/ComponentManager/components/resource-dialog.tsx +0 -91
  147. package/src/ComponentManager/index.tsx +0 -3
  148. package/src/ComponentManager/libs/locales.ts +0 -15
  149. package/src/Dashboard/Dashboard.stories.jsx +0 -20
  150. package/src/Dashboard/app-shell/app-badge.stories.tsx +0 -64
  151. package/src/Dashboard/app-shell/app-badge.tsx +0 -94
  152. package/src/Dashboard/app-shell/app-header.tsx +0 -104
  153. package/src/Dashboard/app-shell/app-info-context.tsx +0 -182
  154. package/src/Dashboard/app-shell/badges/app-badge-default.tsx +0 -130
  155. package/src/Dashboard/app-shell/badges/app-badge-did.tsx +0 -28
  156. package/src/Dashboard/app-shell/badges/app-badge-state.tsx +0 -40
  157. package/src/Dashboard/app-shell/badges/app-badge-switch.tsx +0 -72
  158. package/src/Dashboard/app-shell/badges/app-badge-version.tsx +0 -60
  159. package/src/Dashboard/app-shell/index.ts +0 -5
  160. package/src/Dashboard/index.jsx +0 -184
  161. package/src/Footer/Footer.stories.jsx +0 -33
  162. package/src/Footer/brand.jsx +0 -81
  163. package/src/Footer/copyright.jsx +0 -22
  164. package/src/Footer/index.jsx +0 -111
  165. package/src/Footer/internal-footer.jsx +0 -139
  166. package/src/Footer/layout/plain.jsx +0 -55
  167. package/src/Footer/layout/row.jsx +0 -43
  168. package/src/Footer/layout/standard.jsx +0 -114
  169. package/src/Footer/links.jsx +0 -321
  170. package/src/Footer/social-media.jsx +0 -55
  171. package/src/Header/Header.stories.jsx +0 -30
  172. package/src/Header/index.tsx +0 -259
  173. package/src/Icon/Icon.stories.jsx +0 -12
  174. package/src/Icon/index.tsx +0 -87
  175. package/src/Notifications/Snackbar.tsx +0 -261
  176. package/src/Notifications/hooks/use-title.tsx +0 -254
  177. package/src/Notifications/hooks/use-width.tsx +0 -16
  178. package/src/Notifications/utils.ts +0 -246
  179. package/src/UserCenter/assets/banner.png +0 -0
  180. package/src/UserCenter/components/config-inviter.tsx +0 -48
  181. package/src/UserCenter/components/config-profile.tsx +0 -99
  182. package/src/UserCenter/components/danger-zone.tsx +0 -82
  183. package/src/UserCenter/components/editable-field.tsx +0 -273
  184. package/src/UserCenter/components/fallback.tsx +0 -57
  185. package/src/UserCenter/components/nft-preview.tsx +0 -84
  186. package/src/UserCenter/components/nft.tsx +0 -279
  187. package/src/UserCenter/components/notification.tsx +0 -319
  188. package/src/UserCenter/components/passport.tsx +0 -107
  189. package/src/UserCenter/components/privacy.tsx +0 -120
  190. package/src/UserCenter/components/settings.tsx +0 -170
  191. package/src/UserCenter/components/status-dialog/date-picker.tsx +0 -77
  192. package/src/UserCenter/components/status-dialog/index.tsx +0 -293
  193. package/src/UserCenter/components/status-selector/duration-menu.tsx +0 -90
  194. package/src/UserCenter/components/status-selector/index.tsx +0 -58
  195. package/src/UserCenter/components/status-selector/menu-item.tsx +0 -56
  196. package/src/UserCenter/components/storage/action.tsx +0 -49
  197. package/src/UserCenter/components/storage/connected.tsx +0 -61
  198. package/src/UserCenter/components/storage/delete.tsx +0 -72
  199. package/src/UserCenter/components/storage/disconnect.tsx +0 -40
  200. package/src/UserCenter/components/storage/icons/empty-spaces-nft.svg +0 -1
  201. package/src/UserCenter/components/storage/icons/long-arrow.svg +0 -5
  202. package/src/UserCenter/components/storage/icons/space-connected.svg +0 -3
  203. package/src/UserCenter/components/storage/icons/space-disconnect.svg +0 -3
  204. package/src/UserCenter/components/storage/index.tsx +0 -41
  205. package/src/UserCenter/components/storage/preview-nft.tsx +0 -72
  206. package/src/UserCenter/components/third-party-login/index.tsx +0 -199
  207. package/src/UserCenter/components/third-party-login/third-party-item.tsx +0 -296
  208. package/src/UserCenter/components/user-center.tsx +0 -787
  209. package/src/UserCenter/components/user-info/address.tsx +0 -143
  210. package/src/UserCenter/components/user-info/index.tsx +0 -4
  211. package/src/UserCenter/components/user-info/link-preview-input.tsx +0 -274
  212. package/src/UserCenter/components/user-info/metadata.tsx +0 -658
  213. package/src/UserCenter/components/user-info/social-actions/chat.tsx +0 -43
  214. package/src/UserCenter/components/user-info/social-actions/follow.tsx +0 -23
  215. package/src/UserCenter/components/user-info/social-actions/index.tsx +0 -17
  216. package/src/UserCenter/components/user-info/switch-role.tsx +0 -42
  217. package/src/UserCenter/components/user-info/timezone-select.tsx +0 -119
  218. package/src/UserCenter/components/user-info/user-basic-info.tsx +0 -292
  219. package/src/UserCenter/components/user-info/user-info-item.tsx +0 -54
  220. package/src/UserCenter/components/user-info/user-info.tsx +0 -91
  221. package/src/UserCenter/components/user-info/user-status.tsx +0 -234
  222. package/src/UserCenter/components/user-info/utils.ts +0 -320
  223. package/src/UserCenter/components/webhook-item.tsx +0 -248
  224. package/src/UserCenter/index.tsx +0 -1
  225. package/src/UserCenter/libs/locales.ts +0 -378
  226. package/src/UserCenter/libs/utils.ts +0 -30
  227. package/src/UserSessions/components/user-session-info.tsx +0 -78
  228. package/src/UserSessions/components/user-sessions.tsx +0 -545
  229. package/src/UserSessions/index.tsx +0 -1
  230. package/src/UserSessions/libs/locales.ts +0 -60
  231. package/src/UserSessions/libs/utils.ts +0 -82
  232. package/src/blocklets.js +0 -195
  233. package/src/common/domain-warning.jsx +0 -178
  234. package/src/common/header-addons.jsx +0 -119
  235. package/src/common/link-blocker.jsx +0 -20
  236. package/src/common/notification-addon.jsx +0 -135
  237. package/src/common/org-switch/avatar-uploader.jsx +0 -271
  238. package/src/common/org-switch/create.jsx +0 -267
  239. package/src/common/org-switch/index.jsx +0 -407
  240. package/src/common/org-switch/locales.js +0 -52
  241. package/src/common/org-switch/use-org.jsx +0 -79
  242. package/src/common/overridable-theme-provider.jsx +0 -17
  243. package/src/common/wallet-hidden-topbar.js +0 -14
  244. package/src/common/wizard-modal.jsx +0 -200
  245. package/src/common/ws.js +0 -68
  246. package/src/contexts/config-user-space.tsx +0 -88
  247. package/src/contexts/user-followers.tsx +0 -54
  248. package/src/hooks/use-follow.tsx +0 -75
  249. package/src/hooks/use-mobile.tsx +0 -6
  250. package/src/index.ts +0 -16
  251. package/src/libs/constant.ts +0 -1
  252. package/src/libs/spaces.tsx +0 -18
  253. package/src/libs/with-hide-when-embed.tsx +0 -24
  254. package/src/types.js +0 -45
  255. package/src/utils.js +0 -161
  256. package/vite.config.mjs +0 -34
@@ -1,183 +0,0 @@
1
- # Header
2
-
3
- The `Header` component provides a responsive and customizable header for a Blocklet application. It automatically populates navigation links, the application logo, and user session controls by reading metadata directly from the blocklet's configuration (`blocklet.yml`). This component is designed to create a consistent and feature-rich header with minimal configuration.
4
-
5
- ## Overview
6
-
7
- The `Header` component serves as a primary navigation and branding element. It is built on top of `@arcblock/ux` components, including `ResponsiveHeader` and `NavMenu`, and integrates seamlessly with the DID Connect session context for user authentication.
8
-
9
- Key features include:
10
- - **Automatic Configuration**: Populates the app logo, title, and navigation links from `blocklet.yml`.
11
- - **Responsive Design**: Adapts automatically to different screen sizes, providing a mobile-friendly navigation menu.
12
- - **Session Management**: Integrates with DID Connect to display user information, profile menus, and login/logout buttons.
13
- - **Customizable Addons**: Allows for the injection of custom components or modification of default elements like the theme toggle and locale selector.
14
- - **Organization Switching**: Automatically includes an organization switcher if the blocklet has organization support enabled.
15
- - **Domain Warnings**: Notifies administrators and users when accessing the application via a temporary domain to encourage custom domain configuration for better security.
16
-
17
- ### How It Works
18
-
19
- The diagram below illustrates the data flow and component composition of the `Header`. It reads configuration from the `blocklet.yml` file, processes it, and renders the appropriate UI elements, including the logo, navigation links, and user session controls.
20
-
21
- <!-- DIAGRAM_IMAGE_START:architecture:16:9:1765962229 -->
22
- ![Header](assets/diagram/header-diagram-0.jpg)
23
- <!-- DIAGRAM_IMAGE_END -->
24
-
25
- ## Basic Usage
26
-
27
- To use the `Header`, import it and place it in your application's layout. It requires the blocklet's metadata, which is typically available globally via `window.blocklet`.
28
-
29
- ```javascript "App.js" icon=logos:javascript
30
- import Header from '@blocklet/ui-react/lib/Header';
31
-
32
- function App() {
33
- // The meta object is usually sourced from window.blocklet
34
- const blockletMeta = window.blocklet || {};
35
-
36
- return (
37
- <div>
38
- <Header meta={blockletMeta} />
39
- <main>
40
- {/* Your application content */}
41
- </main>
42
- </div>
43
- );
44
- }
45
-
46
- export default App;
47
- ```
48
-
49
- ## Props
50
-
51
- The `Header` component accepts several props for customization.
52
-
53
- <x-field-group>
54
- <x-field data-name="meta" data-type="BlockletMetaProps" data-required="false">
55
- <x-field-desc markdown>The blocklet's metadata object, typically from `window.blocklet`. It contains information like `name`, `logo`, and `navigation` that the component uses for rendering.</x-field-desc>
56
- </x-field>
57
- <x-field data-name="addons" data-type="Function | React.ReactNode" data-required="false">
58
- <x-field-desc markdown>Custom elements to be added to the right side of the header. If a function is provided, it receives the built-in addons as an argument, allowing you to modify, reorder, or supplement them. If a node is provided, it replaces all built-in addons.</x-field-desc>
59
- </x-field>
60
- <x-field data-name="sessionManagerProps" data-type="SessionManagerProps" data-required="false" data-default='{ "showRole": true }'>
61
- <x-field-desc markdown>Props passed directly to the underlying `SessionUser` component to control the display of user session information, such as showing the user's role.</x-field-desc>
62
- </x-field>
63
- <x-field data-name="homeLink" data-type="string | Function" data-required="false" data-default="publicPath">
64
- <x-field-desc markdown>The URL for the home link, which is typically triggered by clicking the logo or brand name. It defaults to the blocklet's public path (`/`). Can also be a function that returns a JSX element.</x-field-desc>
65
- </x-field>
66
- <x-field data-name="theme" data-type="object" data-required="false">
67
- <x-field-desc markdown>A Material-UI theme object to merge with the default theme, allowing for deep customization of colors, typography, and other styles.</x-field-desc>
68
- </x-field>
69
- <x-field data-name="hideNavMenu" data-type="boolean" data-required="false" data-default="false">
70
- <x-field-desc markdown>If `true`, the navigation menu generated from `blocklet.yml` will be hidden, even if navigation data exists.</x-field-desc>
71
- </x-field>
72
- <x-field data-name="bordered" data-type="boolean" data-required="false" data-default="false">
73
- <x-field-desc markdown>If `true`, a bottom border will be applied to the header for visual separation.</x-field-desc>
74
- </x-field>
75
- <x-field data-name="logo" data-type="React.ReactNode" data-required="false">
76
- <x-field-desc markdown>A custom logo element to override the one from the blocklet metadata.</x-field-desc>
77
- </x-field>
78
- <x-field data-name="brand" data-type="React.ReactNode" data-required="false">
79
- <x-field-desc markdown>A custom brand element (e.g., text or an image) to display next to the logo.</x-field-desc>
80
- </x-field>
81
- <x-field data-name="showDomainWarningDialog" data-type="boolean" data-required="false" data-default="true">
82
- <x-field-desc markdown>If `false`, the dialog warning about temporary domains will not be shown.</x-field-desc>
83
- </x-field>
84
- </x-field-group>
85
-
86
- ## Features
87
-
88
- ### Automatic Navigation from Metadata
89
-
90
- The `Header` automatically generates its navigation menu from the `navigation` array in your `blocklet.yml` file. The component parses this configuration to create primary navigation links and nested dropdown menus.
91
-
92
- Here is an example of a `navigation` configuration in `blocklet.yml`:
93
-
94
- ```yaml "blocklet.yml" icon=mdi:code-braces
95
- navigation:
96
- - title: Features
97
- link: /features
98
- icon: 'mdi:star'
99
- - title: Docs
100
- link: /docs
101
- icon: 'mdi:book-open'
102
- - title: More
103
- items:
104
- - title: About Us
105
- link: /about
106
- description: Learn more about our mission.
107
- - title: Community
108
- link: https://community.example.com
109
- description: Join our community forum.
110
- ```
111
-
112
- The `parseNavigation` utility processes this structure, handles localization for `title` and `description`, and determines the active link based on the current URL path.
113
-
114
- ### Session Management and Addons
115
-
116
- The right side of the header contains "addons," which are a collection of controls for session management and application settings. By default, these include:
117
-
118
- - **Organization Switcher**: Appears if the blocklet has organization support enabled.
119
- - **Notification Center**: Appears if the blocklet includes a notifications page.
120
- - **Locale Selector**: Appears if multiple languages are configured.
121
- - **Theme Mode Toggle**: Switches between light and dark modes.
122
- - **Session Controls**: Displays the logged-in user's avatar and a menu with links for profile, settings, and logout. For guests, it shows a "Connect Wallet" button.
123
-
124
- #### Customizing Addons
125
-
126
- You can customize these addons using the `addons` prop.
127
-
128
- **Example: Appending a custom button**
129
-
130
- Provide a function to the `addons` prop. This function receives an array of the default addon elements, allowing you to add your own.
131
-
132
- ```javascript "HeaderWithCustomAddon.js" icon=logos:javascript
133
- import Header from '@blocklet/ui-react/lib/Header';
134
- import Button from '@mui/material/Button';
135
-
136
- function HeaderWithCustomAddon() {
137
- return (
138
- <Header
139
- meta={window.blocklet}
140
- addons={(builtInAddons) => (
141
- <>
142
- {builtInAddons}
143
- <Button variant="contained" color="primary" sx={{ ml: 1 }}>
144
- Upgrade
145
- </Button>
146
- </>
147
- )}
148
- />
149
- );
150
- }
151
- ```
152
-
153
- **Example: Replacing all addons**
154
-
155
- Provide a React node or an array of nodes to replace the default addons entirely.
156
-
157
- ```javascript "HeaderWithReplacedAddons.js" icon=logos:javascript
158
- import Header from '@blocklet/ui-react/lib/Header';
159
- import Button from '@mui/material/Button';
160
-
161
- function HeaderWithReplacedAddons() {
162
- return (
163
- <Header
164
- meta={window.blocklet}
165
- addons={[
166
- <Button key="feedback" variant="outlined" sx={{ ml: 1 }}>
167
- Feedback
168
- </Button>,
169
- ]}
170
- />
171
- );
172
- }
173
- ```
174
-
175
- ### Hiding in Embedded Mode
176
-
177
- The `Header` is wrapped with the `withHideWhenEmbed` higher-order component. It will automatically be hidden when the application is rendered in an embedded context (e.g., within an iframe where `sessionStorage` contains `EMBED_MODE_KEY: 1`). This is useful for providing a cleaner UI when your blocklet is integrated into another application.
178
-
179
- ## Summary
180
-
181
- The `Header` component is a powerful tool for establishing consistent branding and navigation across a Blocklet application. By leveraging blocklet metadata, it simplifies development while offering extensive customization through props.
182
-
183
- For related layout components, please see the documentation for the [Footer](./components-layout-footer.md).
@@ -1,183 +0,0 @@
1
- # Header
2
-
3
- `Header` 元件為 Blocklet 應用程式提供了一個響應式且可自訂的頁首。它透過直接從 blocklet 的設定檔(`blocklet.yml`)讀取元資料,自動填入導覽連結、應用程式標誌和使用者會話控制項。此元件旨在以最少的設定建立一個一致且功能豐富的頁首。
4
-
5
- ## 總覽
6
-
7
- `Header` 元件作為主要的導覽和品牌元素。它基於 `@arcblock/ux` 元件(包括 `ResponsiveHeader` 和 `NavMenu`)建構,並與 DID Connect 會話上下文無縫整合,以進行使用者身份驗證。
8
-
9
- 主要功能包括:
10
- - **自動設定**:從 `blocklet.yml` 填入應用程式標誌、標題和導覽連結。
11
- - **響應式設計**:自動適應不同螢幕尺寸,提供適合行動裝置的導覽選單。
12
- - **會話管理**:與 DID Connect 整合,顯示使用者資訊、個人資料選單以及登入/登出按鈕。
13
- - **可自訂的附加元件**:允許注入自訂元件或修改預設元素,如主題切換器和語系選擇器。
14
- - **組織切換**:如果 blocklet 啟用組織支援,則自動包含組織切換器。
15
- - **網域警告**:當管理員和使用者透過臨時網域存取應用程式時發出通知,以鼓勵設定自訂網域以提高安全性。
16
-
17
- ### 運作方式
18
-
19
- 下圖說明了 `Header` 的資料流和元件組成。它從 `blocklet.yml` 檔案中讀取設定,進行處理,並渲染相應的 UI 元素,包括標誌、導覽連結和使用者會話控制項。
20
-
21
- <!-- DIAGRAM_IMAGE_START:architecture:16:9:1765962229 -->
22
- ![Header](assets/diagram/header-diagram-0.zh-TW.jpg)
23
- <!-- DIAGRAM_IMAGE_END -->
24
-
25
- ## 基本用法
26
-
27
- 要使用 `Header`,請將其匯入並放置在您應用程式的佈局中。它需要 blocklet 的元資料,這通常可透過 `window.blocklet` 全域取得。
28
-
29
- ```javascript "App.js" icon=logos:javascript
30
- import Header from '@blocklet/ui-react/lib/Header';
31
-
32
- function App() {
33
- // meta 物件通常來自 window.blocklet
34
- const blockletMeta = window.blocklet || {};
35
-
36
- return (
37
- <div>
38
- <Header meta={blockletMeta} />
39
- <main>
40
- {/* 您的應用程式內容 */}
41
- </main>
42
- </div>
43
- );
44
- }
45
-
46
- export default App;
47
- ```
48
-
49
- ## 屬性
50
-
51
- `Header` 元件接受多個屬性以進行自訂。
52
-
53
- <x-field-group>
54
- <x-field data-name="meta" data-type="BlockletMetaProps" data-required="false">
55
- <x-field-desc markdown>blocklet 的元資料物件,通常來自 `window.blocklet`。它包含元件用於渲染的資訊,如 `name`、`logo` 和 `navigation`。</x-field-desc>
56
- </x-field>
57
- <x-field data-name="addons" data-type="Function | React.ReactNode" data-required="false">
58
- <x-field-desc markdown>要新增到頁首右側的自訂元素。如果提供一個函式,它會接收內建的附加元件作為參數,讓您可以修改、重新排序或補充它們。如果提供一個節點,它將取代所有內建的附加元件。</x-field-desc>
59
- </x-field>
60
- <x-field data-name="sessionManagerProps" data-type="SessionManagerProps" data-required="false" data-default='{ "showRole": true }'>
61
- <x-field-desc markdown>直接傳遞給底層 `SessionUser` 元件的屬性,用於控制使用者會話資訊的顯示,例如顯示使用者的角色。</x-field-desc>
62
- </x-field>
63
- <x-field data-name="homeLink" data-type="string | Function" data-required="false" data-default="publicPath">
64
- <x-field-desc markdown>首頁連結的 URL,通常透過點擊標誌或品牌名稱觸發。預設為 blocklet 的公開路徑(`/`)。也可以是一個回傳 JSX 元素的函式。</x-field-desc>
65
- </x-field>
66
- <x-field data-name="theme" data-type="object" data-required="false">
67
- <x-field-desc markdown>一個 Material-UI 主題物件,用於與預設主題合併,以實現對顏色、字體排印和其他樣式的深度自訂。</x-field-desc>
68
- </x-field>
69
- <x-field data-name="hideNavMenu" data-type="boolean" data-required="false" data-default="false">
70
- <x-field-desc markdown>如果為 `true`,即使存在導覽資料,從 `blocklet.yml` 產生的導覽選單也將被隱藏。</x-field-desc>
71
- </x-field>
72
- <x-field data-name="bordered" data-type="boolean" data-required="false" data-default="false">
73
- <x-field-desc markdown>如果為 `true`,頁首將應用底部邊框以進行視覺分隔。</x-field-desc>
74
- </x-field>
75
- <x-field data-name="logo" data-type="React.ReactNode" data-required="false">
76
- <x-field-desc markdown>一個自訂的標誌元素,用於覆蓋來自 blocklet 元資料的標誌。</x-field-desc>
77
- </x-field>
78
- <x-field data-name="brand" data-type="React.ReactNode" data-required="false">
79
- <x-field-desc markdown>一個自訂的品牌元素(例如文字或圖片),用於顯示在標誌旁邊。</x-field-desc>
80
- </x-field>
81
- <x-field data-name="showDomainWarningDialog" data-type="boolean" data-required="false" data-default="true">
82
- <x-field-desc markdown>如果為 `false`,則不會顯示關於臨時網域的警告對話方塊。</x-field-desc>
83
- </x-field>
84
- </x-field-group>
85
-
86
- ## 功能
87
-
88
- ### 從元資料自動產生導覽
89
-
90
- `Header` 會根據您 `blocklet.yml` 檔案中的 `navigation` 陣列自動產生其導覽選單。元件會解析此設定以建立主導覽連結和巢狀下拉選單。
91
-
92
- 以下是 `blocklet.yml` 中 `navigation` 設定的一個範例:
93
-
94
- ```yaml "blocklet.yml" icon=mdi:code-braces
95
- navigation:
96
- - title: Features
97
- link: /features
98
- icon: 'mdi:star'
99
- - title: Docs
100
- link: /docs
101
- icon: 'mdi:book-open'
102
- - title: More
103
- items:
104
- - title: About Us
105
- link: /about
106
- description: Learn more about our mission.
107
- - title: Community
108
- link: https://community.example.com
109
- description: Join our community forum.
110
- ```
111
-
112
- `parseNavigation` 工具程式會處理此結構,處理 `title` 和 `description` 的在地化,並根據目前的 URL 路徑確定作用中連結。
113
-
114
- ### 會話管理與附加元件
115
-
116
- 頁首右側包含「附加元件」,這是一組用於會話管理和應用程式設定的控制項。預設情況下,這些包括:
117
-
118
- - **組織切換器**:如果 blocklet 啟用組織支援,則會出現。
119
- - **通知中心**:如果 blocklet 包含通知頁面,則會出現。
120
- - **語系選擇器**:如果設定了多種語言,則會出現。
121
- - **主題模式切換器**:在亮色和暗色模式之間切換。
122
- - **會話控制項**:顯示已登入使用者的頭像以及一個包含個人資料、設定和登出連結的選單。對於訪客,則顯示「連接錢包」按鈕。
123
-
124
- #### 自訂附加元件
125
-
126
- 您可以使用 `addons` 屬性來自訂這些附加元件。
127
-
128
- **範例:附加一個自訂按鈕**
129
-
130
- 向 `addons` 屬性提供一個函式。此函式會接收一個包含預設附加元件元素的陣列,讓您可以新增自己的元素。
131
-
132
- ```javascript "HeaderWithCustomAddon.js" icon=logos:javascript
133
- import Header from '@blocklet/ui-react/lib/Header';
134
- import Button from '@mui/material/Button';
135
-
136
- function HeaderWithCustomAddon() {
137
- return (
138
- <Header
139
- meta={window.blocklet}
140
- addons={(builtInAddons) => (
141
- <>
142
- {builtInAddons}
143
- <Button variant="contained" color="primary" sx={{ ml: 1 }}>
144
- Upgrade
145
- </Button>
146
- </>
147
- )}
148
- />
149
- );
150
- }
151
- ```
152
-
153
- **範例:取代所有附加元件**
154
-
155
- 提供一個 React 節點或節點陣列以完全取代預設的附加元件。
156
-
157
- ```javascript "HeaderWithReplacedAddons.js" icon=logos:javascript
158
- import Header from '@blocklet/ui-react/lib/Header';
159
- import Button from '@mui/material/Button';
160
-
161
- function HeaderWithReplacedAddons() {
162
- return (
163
- <Header
164
- meta={window.blocklet}
165
- addons={[
166
- <Button key="feedback" variant="outlined" sx={{ ml: 1 }}>
167
- Feedback
168
- </Button>,
169
- ]}
170
- />
171
- );
172
- }
173
- ```
174
-
175
- ### 在嵌入模式中隱藏
176
-
177
- `Header` 被 `withHideWhenEmbed` 高階元件所包覆。當應用程式在嵌入式情境中渲染時(例如,在 `sessionStorage` 包含 `EMBED_MODE_KEY: 1` 的 iframe 中),它將自動隱藏。這在將您的 blocklet 整合到另一個應用程式中時,有助於提供更簡潔的 UI。
178
-
179
- ## 總結
180
-
181
- `Header` 元件是一個強大的工具,用於在 Blocklet 應用程式中建立一致的品牌和導覽。透過利用 blocklet 元資料,它簡化了開發過程,同時透過屬性提供了廣泛的自訂選項。
182
-
183
- 有關相關的佈局元件,請參閱 [Footer](./components-layout-footer.md) 的文件。
@@ -1,183 +0,0 @@
1
- # Header
2
-
3
- `Header` 组件为 Blocklet 应用提供了一个响应式且可定制的页眉。它通过直接从 blocklet 的配置(`blocklet.yml`)中读取元数据,自动填充导航链接、应用 logo 和用户会话控件。该组件旨在以最少的配置创建一个功能丰富且一致的页眉。
4
-
5
- ## 概述
6
-
7
- `Header` 组件是主要的导航和品牌元素。它构建于 `@arcblock/ux` 组件之上,包括 `ResponsiveHeader` 和 `NavMenu`,并与用于用户身份验证的 DID Connect 会话上下文无缝集成。
8
-
9
- 主要功能包括:
10
- - **自动配置**:从 `blocklet.yml` 中填充应用 logo、标题和导航链接。
11
- - **响应式设计**:自动适应不同的屏幕尺寸,提供移动设备友好的导航菜单。
12
- - **会话管理**:与 DID Connect 集成,以显示用户信息、个人资料菜单以及登录/登出按钮。
13
- - **可定制的插件**:允许注入自定义组件或修改默认元素,如主题切换器和语言选择器。
14
- - **组织切换**:如果 blocklet 启用了组织支持,则自动包含一个组织切换器。
15
- - **域名警告**:当管理员和用户通过临时域名访问应用时,通知他们配置自定义域名以提高安全性。
16
-
17
- ### 工作原理
18
-
19
- 下图说明了 `Header` 的数据流和组件构成。它从 `blocklet.yml` 文件中读取配置,进行处理,并渲染相应的 UI 元素,包括 logo、导航链接和用户会话控件。
20
-
21
- <!-- DIAGRAM_IMAGE_START:architecture:16:9:1765962229 -->
22
- ![Header](assets/diagram/header-diagram-0.zh.jpg)
23
- <!-- DIAGRAM_IMAGE_END -->
24
-
25
- ## 基本用法
26
-
27
- 要使用 `Header`,请将其导入并放置在应用的布局中。它需要 blocklet 的元数据,该元数据通常通过 `window.blocklet` 全局可用。
28
-
29
- ```javascript "App.js" icon=logos:javascript
30
- import Header from '@blocklet/ui-react/lib/Header';
31
-
32
- function App() {
33
- // meta 对象通常来源于 window.blocklet
34
- const blockletMeta = window.blocklet || {};
35
-
36
- return (
37
- <div>
38
- <Header meta={blockletMeta} />
39
- <main>
40
- {/* 你的应用内容 */}
41
- </main>
42
- </div>
43
- );
44
- }
45
-
46
- export default App;
47
- ```
48
-
49
- ## Props
50
-
51
- `Header` 组件接受多个 props 以进行自定义。
52
-
53
- <x-field-group>
54
- <x-field data-name="meta" data-type="BlockletMetaProps" data-required="false">
55
- <x-field-desc markdown="blocklet 的元数据对象,通常来自 `window.blocklet`。它包含组件用于渲染的信息,如 `name`、`logo` 和 `navigation`。"></x-field-desc>
56
- </x-field>
57
- <x-field data-name="addons" data-type="Function | React.ReactNode" data-required="false">
58
- <x-field-desc markdown="要添加到页眉右侧的自定义元素。如果提供一个函数,它会接收内置插件作为参数,允许您修改、重新排序或补充它们。如果提供一个节点,它将替换所有内置插件。"></x-field-desc>
59
- </x-field>
60
- <x-field data-name="sessionManagerProps" data-type="SessionManagerProps" data-required="false" data-default='{ "showRole": true }'>
61
- <x-field-desc markdown="直接传递给底层 `SessionUser` 组件的 props,用于控制用户会话信息的显示,例如显示用户角色。"></x-field-desc>
62
- </x-field>
63
- <x-field data-name="homeLink" data-type="string | Function" data-required="false" data-default="publicPath">
64
- <x-field-desc markdown="主页链接的 URL,通常通过点击 logo 或品牌名称触发。它默认为 blocklet 的公共路径(`/`)。也可以是一个返回 JSX 元素的函数。"></x-field-desc>
65
- </x-field>
66
- <x-field data-name="theme" data-type="object" data-required="false">
67
- <x-field-desc markdown="一个 Material-UI 主题对象,用于与默认主题合并,从而实现对颜色、排版和其他样式的深度自定义。"></x-field-desc>
68
- </x-field>
69
- <x-field data-name="hideNavMenu" data-type="boolean" data-required="false" data-default="false">
70
- <x-field-desc markdown="如果为 `true`,即使存在导航数据,从 `blocklet.yml` 生成的导航菜单也将被隐藏。"></x-field-desc>
71
- </x-field>
72
- <x-field data-name="bordered" data-type="boolean" data-required="false" data-default="false">
73
- <x-field-desc markdown="如果为 `true`,将在页眉底部应用一条边框以进行视觉分隔。"></x-field-desc>
74
- </x-field>
75
- <x-field data-name="logo" data-type="React.ReactNode" data-required="false">
76
- <x-field-desc markdown="一个自定义 logo 元素,用于覆盖来自 blocklet 元数据的 logo。"></x-field-desc>
77
- </x-field>
78
- <x-field data-name="brand" data-type="React.ReactNode" data-required="false">
79
- <x-field-desc markdown="一个自定义品牌元素(例如,文本或图像),显示在 logo 旁边。"></x-field-desc>
80
- </x-field>
81
- <x-field data-name="showDomainWarningDialog" data-type="boolean" data-required="false" data-default="true">
82
- <x-field-desc markdown="如果为 `false`,则不会显示关于临时域名的警告对话框。"></x-field-desc>
83
- </x-field>
84
- </x-field-group>
85
-
86
- ## 功能
87
-
88
- ### 从元数据自动生成导航
89
-
90
- `Header` 会根据 `blocklet.yml` 文件中的 `navigation` 数组自动生成其导航菜单。该组件解析此配置以创建主导航链接和嵌套的下拉菜单。
91
-
92
- 以下是 `blocklet.yml` 中 `navigation` 配置的示例:
93
-
94
- ```yaml "blocklet.yml" icon=mdi:code-braces
95
- navigation:
96
- - title: Features
97
- link: /features
98
- icon: 'mdi:star'
99
- - title: Docs
100
- link: /docs
101
- icon: 'mdi:book-open'
102
- - title: More
103
- items:
104
- - title: About Us
105
- link: /about
106
- description: Learn more about our mission.
107
- - title: Community
108
- link: https://community.example.com
109
- description: Join our community forum.
110
- ```
111
-
112
- `parseNavigation` 工具程序会处理此结构,处理 `title` 和 `description` 的本地化,并根据当前 URL 路径确定活动链接。
113
-
114
- ### 会话管理和插件
115
-
116
- 页眉的右侧包含“插件”,这是一组用于会话管理和应用设置的控件。默认情况下,这些插件包括:
117
-
118
- - **组织切换器**:如果 blocklet 启用了组织支持,则会出现。
119
- - **通知中心**:如果 blocklet 包含通知页面,则会出现。
120
- - **语言选择器**:如果配置了多种语言,则会出现。
121
- - **主题模式切换器**:在亮色和暗色模式之间切换。
122
- - **会话控件**:显示已登录用户的头像和一个包含个人资料、设置和登出链接的菜单。对于访客,它会显示一个“连接钱包”按钮。
123
-
124
- #### 自定义插件
125
-
126
- 您可以使用 `addons` prop 来自定义这些插件。
127
-
128
- **示例:追加一个自定义按钮**
129
-
130
- 向 `addons` prop 提供一个函数。此函数接收一个包含默认插件元素的数组,允许您添加自己的元素。
131
-
132
- ```javascript "HeaderWithCustomAddon.js" icon=logos:javascript
133
- import Header from '@blocklet/ui-react/lib/Header';
134
- import Button from '@mui/material/Button';
135
-
136
- function HeaderWithCustomAddon() {
137
- return (
138
- <Header
139
- meta={window.blocklet}
140
- addons={(builtInAddons) => (
141
- <>
142
- {builtInAddons}
143
- <Button variant="contained" color="primary" sx={{ ml: 1 }}>
144
- Upgrade
145
- </Button>
146
- </>
147
- )}
148
- />
149
- );
150
- }
151
- ```
152
-
153
- **示例:替换所有插件**
154
-
155
- 提供一个 React 节点或节点数组来完全替换默认插件。
156
-
157
- ```javascript "HeaderWithReplacedAddons.js" icon=logos:javascript
158
- import Header from '@blocklet/ui-react/lib/Header';
159
- import Button from '@mui/material/Button';
160
-
161
- function HeaderWithReplacedAddons() {
162
- return (
163
- <Header
164
- meta={window.blocklet}
165
- addons={[
166
- <Button key="feedback" variant="outlined" sx={{ ml: 1 }}>
167
- Feedback
168
- </Button>,
169
- ]}
170
- />
171
- );
172
- }
173
- ```
174
-
175
- ### 在嵌入模式下隐藏
176
-
177
- `Header` 被 `withHideWhenEmbed` 高阶组件包裹。当应用在嵌入式上下文(例如,在 `sessionStorage` 包含 `EMBED_MODE_KEY: 1` 的 iframe 中)渲染时,它将自动隐藏。当您的 blocklet 集成到另一个应用中时,这对于提供更简洁的 UI 非常有用。
178
-
179
- ## 总结
180
-
181
- `Header` 组件是在 Blocklet 应用中建立一致品牌和导航的强大工具。通过利用 blocklet 元数据,它简化了开发过程,同时通过 props 提供了广泛的自定义选项。
182
-
183
- 有关相关的布局组件,请参阅 [Footer](./components-layout-footer.md) 的文档。
@@ -1,31 +0,0 @@
1
- # レイアウト
2
-
3
- レイアウトコンポーネントは、blocklet アプリケーションのユーザーインターフェースを構築するための基礎となるビルディングブロックです。これらは、メインヘッダー、フッター、コンテンツエリアを含む、一貫性のある予測可能なフレームワークを提供します。これらのコンポーネントを活用することで、blocklet のメタデータに基づいて自動的に適応するため、アプリケーション全体でプロフェッショナルで統一感のあるユーザーエクスペリエンスを確保できます。
4
-
5
- これらのコンポーネントは、以下に示すように、アプリケーションの主要な視覚構造を形成します。
6
-
7
- <!-- DIAGRAM_IMAGE_START:architecture:4:3:1765962229 -->
8
- ![Layout](assets/diagram/layout-diagram-0.ja.jpg)
9
- <!-- DIAGRAM_IMAGE_END -->
10
-
11
- このセクションでは、利用可能な主要なレイアウトコンポーネントの概要を説明します。詳細な実装ガイドと API リファレンスについては、各コンポーネントの特定のドキュメントを参照してください。
12
-
13
- <x-cards data-columns="3">
14
- <x-card data-title="Header" data-icon="lucide:navigation" data-href="/components/layout/header">
15
- レスポンシブでカスタマイズ可能なヘッダーを提供し、blocklet のメタデータからナビゲーションリンクとユーザーセッションコントロールを自動的に入力します。
16
- </x-card>
17
- <x-card data-title="Footer" data-icon="lucide:book-down" data-href="/components/layout/footer">
18
- ブランディング、著作権情報、ソーシャルメディアリンク、追加のナビゲーションを含む、アプリケーションの一貫したフッターをレンダリングします。
19
- </x-card>
20
- <x-card data-title="Dashboard" data-icon="lucide:layout-dashboard" data-href="/components/layout/dashboard">
21
- サイドバー、ヘッダー、コンテンツエリアを備えたビルド済みのダッシュボードレイアウトで、管理者インターフェースやユーザー中心のビュー向けに設計されています。
22
- </x-card>
23
- </x-cards>
24
-
25
- ## 概要
26
-
27
- レイアウトコンポーネントは、blocklet のメタデータ(`blocklet.yml`)から直接設定を取得し、シームレスに連携するように設計されており、定型コードを最小限に抑え、開発を加速させます。
28
-
29
- 続けるには、各コンポーネントの詳細なドキュメントを参照して、それぞれのプロパティ、使用パターン、カスタマイズオプションを理解してください。
30
-
31
- - **次へ**: [Header コンポーネント](./components-layout-header.md)について学びます。
@@ -1,31 +0,0 @@
1
- # Layout
2
-
3
- Layout components are the foundational building blocks for structuring your blocklet application's user interface. They provide a consistent and predictable framework, including the main header, footer, and content areas. By leveraging these components, you can ensure a professional and cohesive user experience across your entire application, as they automatically adapt based on your blocklet's metadata.
4
-
5
- These components form the primary visual structure of an application, as illustrated below:
6
-
7
- <!-- DIAGRAM_IMAGE_START:architecture:4:3:1765962229 -->
8
- ![Layout](assets/diagram/layout-diagram-0.jpg)
9
- <!-- DIAGRAM_IMAGE_END -->
10
-
11
- This section provides an overview of the primary layout components available. For detailed implementation guides and API references, please refer to the specific documentation for each component.
12
-
13
- <x-cards data-columns="3">
14
- <x-card data-title="Header" data-icon="lucide:navigation" data-href="/components/layout/header">
15
- Provides a responsive and customizable header, automatically populated with navigation links and user session controls from the blocklet's metadata.
16
- </x-card>
17
- <x-card data-title="Footer" data-icon="lucide:book-down" data-href="/components/layout/footer">
18
- Renders a consistent footer for your application, including branding, copyright information, social media links, and additional navigation.
19
- </x-card>
20
- <x-card data-title="Dashboard" data-icon="lucide:layout-dashboard" data-href="/components/layout/dashboard">
21
- A pre-built dashboard layout with a sidebar, header, and content area, designed for admin interfaces and user-centric views.
22
- </x-card>
23
- </x-cards>
24
-
25
- ## Summary
26
-
27
- The layout components are designed to work together seamlessly, pulling configuration directly from your blocklet's metadata (`blocklet.yml`) to minimize boilerplate code and accelerate development.
28
-
29
- To continue, please explore the detailed documentation for each component to understand their specific props, usage patterns, and customization options.
30
-
31
- - **Next**: Learn about the [Header component](./components-layout-header.md).
@@ -1,31 +0,0 @@
1
- # 佈局
2
-
3
- 佈局元件是建構 blocklet 應用程式使用者介面的基礎建構模塊。它們提供了一致且可預測的框架,包括主要的 Header、Footer 和內容區域。透過利用這些元件,您可以確保在整個應用程式中提供專業且一致的使用者體驗,因為它們會根據您的 blocklet 元資料自動調整。
4
-
5
- 這些元件構成應用程式的主要視覺結構,如下圖所示:
6
-
7
- <!-- DIAGRAM_IMAGE_START:architecture:4:3:1765962229 -->
8
- ![Layout](assets/diagram/layout-diagram-0.zh-TW.jpg)
9
- <!-- DIAGRAM_IMAGE_END -->
10
-
11
- 本節概述了可用的主要佈局元件。有關詳細的實作指南和 API 參考,請參閱每個元件的具體文件。
12
-
13
- <x-cards data-columns="3">
14
- <x-card data-title="Header" data-icon="lucide:navigation" data-href="/components/layout/header">
15
- 提供一個響應式且可自訂的 Header,會自動從 blocklet 的元資料中填入導覽連結和使用者會話控制項。
16
- </x-card>
17
- <x-card data-title="Footer" data-icon="lucide:book-down" data-href="/components/layout/footer">
18
- 為您的應用程式呈現一個一致的 Footer,包含品牌、版權資訊、社交媒體連結及其他導覽。
19
- </x-card>
20
- <x-card data-title="Dashboard" data-icon="lucide:layout-dashboard" data-href="/components/layout/dashboard">
21
- 一個預先建置的 Dashboard 佈局,包含側邊欄、Header 和內容區域,專為管理員介面和以使用者為中心的視圖而設計。
22
- </x-card>
23
- </x-cards>
24
-
25
- ## 摘要
26
-
27
- 佈局元件旨在無縫協同工作,直接從您的 blocklet 元資料(`blocklet.yml`)中提取設定,以最大限度地減少樣板程式碼並加速開發。
28
-
29
- 若要繼續,請瀏覽每個元件的詳細文件,以了解其特定的 props、使用模式和自訂選項。
30
-
31
- - **下一步**:了解 [Header 元件](./components-layout-header.md)。