@thebase/ui 1.2.1 → 1.3.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 (119) hide show
  1. package/CHANGELOG.md +32 -269
  2. package/LICENSE +1 -1
  3. package/README.md +96 -105
  4. package/bin/{create-baseui-app.mjs → create-nodexui-app.mjs} +65 -65
  5. package/dist/{baseui.apidoc.esm.js → nodexui.apidoc.esm.js} +136 -136
  6. package/dist/{baseui.apidoc.min.js → nodexui.apidoc.min.js} +137 -137
  7. package/dist/nodexui.esm.js +58 -0
  8. package/dist/nodexui.icons.esm.js +1 -0
  9. package/dist/{baseui.min.css → nodexui.min.css} +1 -1
  10. package/dist/nodexui.min.js +77 -0
  11. package/dist/{baseui.pwa.esm.js → nodexui.pwa.esm.js} +5 -5
  12. package/dist/{baseui.registry.json → nodexui.registry.json} +162 -162
  13. package/dist/{baseui.templates.xml → nodexui.templates.xml} +573 -573
  14. package/dist/{baseui.vite.esm.js → nodexui.vite.esm.js} +6 -6
  15. package/dist/runtime/mermaid/mermaid.esm.min.mjs +2 -2
  16. package/dist/runtime/milkdown/milkdown-editor.js +1 -1
  17. package/dist/runtime/milkdown/milkdown-text-editor.js +1 -1
  18. package/dist/themes/{baseui-dark.css → nodexui-dark.css} +2 -2
  19. package/dist/themes/{baseui-light.css → nodexui-light.css} +2 -2
  20. package/dist/types/analytics.d.ts +12 -12
  21. package/dist/types/apidoc.d.ts +1 -1
  22. package/dist/types/i18n.d.ts +7 -7
  23. package/dist/types/index.d.ts +15 -15
  24. package/dist/types/vite.d.ts +2 -2
  25. package/docs/analytics.md +12 -12
  26. package/docs/base-ui-skill.md +4 -4
  27. package/docs/blocks.md +6 -6
  28. package/docs/components/accordion.md +4 -4
  29. package/docs/components/alert-dialog.md +2 -2
  30. package/docs/components/alert.md +5 -5
  31. package/docs/components/apidoc.md +14 -14
  32. package/docs/components/aspect-ratio.md +2 -2
  33. package/docs/components/attachment.md +5 -5
  34. package/docs/components/avatar.md +7 -7
  35. package/docs/components/badge.md +2 -2
  36. package/docs/components/block-viewer.md +8 -8
  37. package/docs/components/breadcrumb.md +3 -3
  38. package/docs/components/bubble.md +2 -2
  39. package/docs/components/button-group.md +2 -2
  40. package/docs/components/button.md +2 -2
  41. package/docs/components/calendar.md +7 -7
  42. package/docs/components/card.md +2 -2
  43. package/docs/components/carousel.md +9 -9
  44. package/docs/components/chart.md +7 -7
  45. package/docs/components/checkbox.md +2 -2
  46. package/docs/components/clipboard-button.md +7 -7
  47. package/docs/components/code-editor.md +1 -1
  48. package/docs/components/collapsible.md +4 -4
  49. package/docs/components/combobox.md +7 -7
  50. package/docs/components/command.md +7 -7
  51. package/docs/components/context-menu.md +7 -7
  52. package/docs/components/data-table.md +9 -9
  53. package/docs/components/date-picker.md +7 -7
  54. package/docs/components/dialog.md +5 -5
  55. package/docs/components/direction.md +2 -2
  56. package/docs/components/drawer.md +4 -4
  57. package/docs/components/dropdown-menu.md +3 -3
  58. package/docs/components/empty.md +3 -3
  59. package/docs/components/field.md +1 -1
  60. package/docs/components/form.md +3 -3
  61. package/docs/components/hover-card.md +2 -2
  62. package/docs/components/icon.md +3 -3
  63. package/docs/components/input-otp.md +7 -7
  64. package/docs/components/input.md +6 -6
  65. package/docs/components/item.md +3 -3
  66. package/docs/components/kbd.md +2 -2
  67. package/docs/components/label.md +2 -2
  68. package/docs/components/markdown.md +13 -13
  69. package/docs/components/marker.md +2 -2
  70. package/docs/components/menubar.md +2 -2
  71. package/docs/components/message-scroller.md +7 -7
  72. package/docs/components/message.md +7 -7
  73. package/docs/components/native-select.md +3 -3
  74. package/docs/components/navigation-menu.md +3 -3
  75. package/docs/components/pagination.md +3 -3
  76. package/docs/components/popover.md +10 -10
  77. package/docs/components/progress.md +2 -2
  78. package/docs/components/pwa.md +4 -4
  79. package/docs/components/questionnaire.md +7 -7
  80. package/docs/components/radio-group.md +2 -2
  81. package/docs/components/resizable.md +7 -7
  82. package/docs/components/scroll-area.md +7 -7
  83. package/docs/components/select.md +2 -2
  84. package/docs/components/separator.md +2 -2
  85. package/docs/components/sheet.md +3 -3
  86. package/docs/components/shell.md +7 -7
  87. package/docs/components/sidebar.md +3 -3
  88. package/docs/components/skeleton.md +2 -2
  89. package/docs/components/slider.md +2 -2
  90. package/docs/components/spinner.md +4 -4
  91. package/docs/components/switch.md +2 -2
  92. package/docs/components/table.md +2 -2
  93. package/docs/components/tabs.md +6 -6
  94. package/docs/components/text-editor.md +6 -6
  95. package/docs/components/textarea.md +3 -3
  96. package/docs/components/theme-button.md +6 -6
  97. package/docs/components/toast.md +6 -6
  98. package/docs/components/toggle-group.md +7 -7
  99. package/docs/components/toggle.md +7 -7
  100. package/docs/components/tooltip.md +9 -9
  101. package/docs/components/typography.md +9 -9
  102. package/docs/i18n.md +10 -10
  103. package/docs/icons.md +9 -9
  104. package/docs/installation.md +31 -33
  105. package/docs/owl-components.md +36 -38
  106. package/docs/registry.md +14 -14
  107. package/docs/runtime-api.md +12 -12
  108. package/docs/theming.md +15 -15
  109. package/docs/usage-guide.md +54 -56
  110. package/package.json +48 -39
  111. package/dist/baseui.esm.js +0 -58
  112. package/dist/baseui.icons.esm.js +0 -1
  113. package/dist/baseui.min.js +0 -77
  114. /package/dist/{baseui.analytics.esm.js → nodexui.analytics.esm.js} +0 -0
  115. /package/dist/{baseui.analytics.min.js → nodexui.analytics.min.js} +0 -0
  116. /package/dist/{baseui.i18n.esm.js → nodexui.i18n.esm.js} +0 -0
  117. /package/dist/{baseui.i18n.min.js → nodexui.i18n.min.js} +0 -0
  118. /package/dist/themes/{baseui-dark.min.css → nodexui-dark.min.css} +0 -0
  119. /package/dist/themes/{baseui-light.min.css → nodexui-light.min.css} +0 -0
@@ -1,21 +1,21 @@
1
- # Usage Guide — Integrating the Base UI Into a Project
1
+ # Usage Guide — Integrating Nodex UI Into a Project
2
2
 
3
- This is the single entry point for adding the Base UI to a consumer project (a static page, a Base HUB website page, a server-rendered app, or your own application). It sequences the existing reference docs into one path and gives copy-paste-ready examples — read the linked page for exhaustive detail on any step.
3
+ This is the single entry point for adding Nodex UI to a consumer project (a static page, a Base HUB website page, a server-rendered app, or your own application). It sequences the existing reference docs into one path and gives copy-paste-ready examples — read the linked page for exhaustive detail on any step.
4
4
 
5
- Audience: engineers and AI coding agents integrating `@thebase/ui` into a project that is **not** this repository.
5
+ Audience: engineers and AI coding agents integrating `nodexui` into a project that is **not** this repository.
6
6
 
7
7
  ## Quick start (copy-paste, works as-is)
8
8
 
9
- Save this as an `.html` file and open it — no build step, no server required. It installs the Base UI from the pinned CDN and renders a button, an input, and a card using the base static markup (`b-ui`) API (the zero-build alternative). If you're building an application, skip straight to the [pure Base install](#2-install-pure-owl-api--recommended) below — it's the recommended way to consume the Base UI.
9
+ Save this as an `.html` file and open it — no build step, no server required. It installs Nodex UI from the pinned CDN and renders a button, an input, and a card using the base static markup (`b-ui`) API (the zero-build alternative). If you're building an application, skip straight to the [pure Base install](#2-install-pure-owl-api--recommended) below — it's the recommended way to consume Nodex UI.
10
10
 
11
11
  ```html
12
12
  <!doctype html>
13
13
  <html lang="en">
14
14
  <head>
15
15
  <meta charset="utf-8">
16
- <title>BaseUI quick start</title>
17
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.min.css">
18
- <script src="https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.min.js" defer></script>
16
+ <title>NodexUI quick start</title>
17
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/nodexui@latest/dist/nodexui.min.css">
18
+ <script src="https://cdn.jsdelivr.net/npm/nodexui@latest/dist/nodexui.min.js" defer></script>
19
19
  </head>
20
20
  <body>
21
21
  <div b-ui="card" style="max-width: 24rem; margin: 2rem auto;">
@@ -32,7 +32,7 @@ Save this as an `.html` file and open it — no build step, no server required.
32
32
  </html>
33
33
  ```
34
34
 
35
- `https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/...` is the real jsDelivr URL for the published `@thebase/ui` npm package's `latest` tag, used here for a copy-paste-and-go quick start. Pin an exact version instead (e.g. `@1.2.1`, or `@1` to take only non-breaking updates) for production, so a new release can't change what your page loads. See [Installation](installation.md) for jsDelivr/unpkg/npm/self-hosted paths.
35
+ `https://cdn.jsdelivr.net/npm/nodexui@latest/dist/...` is the real jsDelivr URL for the published `nodexui` npm package's `latest` tag, used here for a copy-paste-and-go quick start. Pin an exact version instead (e.g. `@1.3.0`, or `@1` to take only non-breaking updates) for production, so a new release can't change what your page loads. See [Installation](installation.md) for jsDelivr/unpkg/npm/self-hosted paths.
36
36
 
37
37
  The static bundle calls `thebase.mountAll()` automatically on `DOMContentLoaded`, so initial `[b-ui]` and `[b-icon]` markup mounts without an extra script. Call `thebase.mountAll(root)` yourself only after injecting new markup or when mounting a specific fragment. If the consumer is itself an application, use [step 2](#2-install-pure-owl-api--recommended) instead — that's the recommended path.
38
38
 
@@ -40,37 +40,35 @@ The static bundle calls `thebase.mountAll()` automatically on `DOMContentLoaded`
40
40
 
41
41
  | You are building... | Use | Install | Full reference |
42
42
  | --- | --- | --- | --- |
43
- | Your own application that wants `<Button/>`, `<Card/>`, `<Dialog/>` as real component classes | The Base component API (recommended) | CSS + the same `baseui.min.js`/`baseui.esm.js` (via `@base/owl`/`@base/component` import-map keys or a plain npm import) + `dist/baseui.templates.xml` | [Base Components](owl-components.md) |
44
- | Static HTML, a server-rendered page, or a Base HUB website page with no Owl runtime | The base static markup (`b-ui`) API (alternative) | One CSS file + one `<script>` tag | [Installation](installation.md) |
43
+ | Your own application that wants `<Button/>`, `<Card/>`, `<Dialog/>` as real component classes | The Base component API (recommended) | CSS + the same `nodexui.min.js`/`nodexui.esm.js` (via `nodexui`/`nodexui` import-map keys or a plain npm import) + `dist/nodexui.templates.xml` | [Nodex UI Component](owl-components.md) |
44
+ | Static HTML, a server-rendered page, or a Base HUB website page with no Nodex runtime | The base static markup (`b-ui`) API (alternative) | One CSS file + one `<script>` tag | [Installation](installation.md) |
45
45
 
46
- Both APIs come from the same package and the same CSS file, and can be mixed on one page. Prefer the Base component API by default — real component classes, props, and slots compose more predictably than markup attributes. Reach for the static API only when the target page has no Owl runtime of its own (plain HTML, server-rendered templates, a Base HUB website page) and adding one isn't worthwhile just to use the Base UI.
46
+ Both APIs come from the same package and the same CSS file, and can be mixed on one page. Prefer the Base component API by default — real component classes, props, and slots compose more predictably than markup attributes. Reach for the static API only when the target page has no Nodex runtime of its own (plain HTML, server-rendered templates, a Base HUB website page) and adding one isn't worthwhile just to use Nodex UI.
47
47
 
48
- **[VERIFY]** Before choosing, confirm whether the target project already runs Owl (check for `@odoo/owl` or `@base/owl` in its `package.json`), or whether it's a plain page you'd rather not add a component-mount step to. Use the static API for the latter.
48
+ **[VERIFY]** Before choosing, confirm whether the target project already runs Nodex (check for `@odoo/owl` or `nodexui` in its `package.json`), or whether it's a plain page you'd rather not add a component-mount step to. Use the static API for the latter.
49
49
 
50
50
  ## 2. Install (pure Base API — recommended)
51
51
 
52
52
  ```html
53
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.min.css">
53
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/nodexui@latest/dist/nodexui.min.css">
54
54
  <script type="importmap">
55
55
  {
56
56
  "imports": {
57
- "@base/owl": "https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.esm.js",
58
- "@base/component": "https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.esm.js",
59
- "@base/theme": "https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.esm.js",
60
- "@base/templates": "https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.templates.xml"
57
+ "nodexui": "https://cdn.jsdelivr.net/npm/nodexui@latest/dist/nodexui.esm.js",
58
+ "nodexui/templates": "https://cdn.jsdelivr.net/npm/nodexui@latest/dist/nodexui.templates.xml"
61
59
  }
62
60
  }
63
61
  </script>
64
62
  ```
65
63
 
66
- `https://unpkg.com/@thebase/ui@latest/dist/...` mirrors the same files as an alternative CDN if jsDelivr is unreachable — swap the host in each URL above. Pin an exact version (e.g. `@1.2.1`, or `@1` to take only non-breaking updates) instead of `@latest` for production.
64
+ `https://unpkg.com/nodexui@latest/dist/...` mirrors the same files as an alternative CDN if jsDelivr is unreachable — swap the host in each URL above. Pin an exact version (e.g. `@1.3.0`, or `@1` to take only non-breaking updates) instead of `@latest` for production.
67
65
 
68
66
  ```html
69
67
  <script type="module">
70
- import { Component, mount, xml } from "@base/owl";
71
- import { Button, Card, CardBody, CardHeader, CardTitle } from "@base/component";
68
+ import { Component, mount, xml } from "nodexui";
69
+ import { Button, Card, CardBody, CardHeader, CardTitle } from "nodexui";
72
70
 
73
- const templates = await fetch(import.meta.resolve("@base/templates")).then((r) => r.text());
71
+ const templates = await fetch(import.meta.resolve("nodexui/templates")).then((r) => r.text());
74
72
 
75
73
  class Root extends Component {
76
74
  static components = { Button, Card, CardBody, CardHeader, CardTitle };
@@ -87,40 +85,40 @@ Both APIs come from the same package and the same CSS file, and can be mixed on
87
85
  </script>
88
86
  ```
89
87
 
90
- `@base/owl`, `@base/component`, and `@base/theme` all resolve to the exact same `dist/baseui.esm.js` — the one file this whole guide installs for the static API too. For npm/bundler usage, skip the import map entirely and import everything straight from `@thebase/ui` (plus `@thebase/ui/dist/baseui.templates.xml` as a fetch target) — see [Base Components](owl-components.md#npm--bundler-usage).
88
+ `nodexui` resolves to the `dist/nodexui.esm.js` — the one file this whole guide installs for the static API too. For npm/bundler usage, skip the import map entirely and import everything straight from `nodexui` (plus `nodexui/dist/nodexui.templates.xml` as a fetch target) — see [Nodex UI Component](owl-components.md#npm--bundler-usage).
91
89
 
92
- Two rules that account for most integration failures — see [Base Components](owl-components.md#common-mistakes) for the worked example:
90
+ Two rules that account for most integration failures — see [Nodex UI Component](owl-components.md#common-mistakes) for the worked example:
93
91
 
94
- 1. `dist/baseui.templates.xml` must be loaded and passed to `mount()` before any Base UI tag renders.
95
- 2. Import Owl itself from `@base/owl`, never `@odoo/owl` — otherwise the consumer's `Component` class and the Base UI's are different runtime identities and mounting throws.
92
+ 1. `dist/nodexui.templates.xml` must be loaded and passed to `mount()` before any Nodex UI tag renders.
93
+ 2. Import Nodex itself from `nodexui`, never `@odoo/owl` — otherwise the consumer's `Component` class and Nodex UI's are different runtime identities and mounting throws.
96
94
 
97
- ## 3. Install (static `b-ui` API — alternative, no Owl runtime needed)
95
+ ## 3. Install (static `b-ui` API — alternative, no Nodex runtime needed)
98
96
 
99
97
  **Option A — CDN (static HTML, no build step):**
100
98
 
101
99
  ```html
102
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.min.css">
103
- <script src="https://cdn.jsdelivr.net/npm/@thebase/ui@latest/dist/baseui.min.js" defer></script>
100
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/nodexui@latest/dist/nodexui.min.css">
101
+ <script src="https://cdn.jsdelivr.net/npm/nodexui@latest/dist/nodexui.min.js" defer></script>
104
102
  ```
105
103
 
106
- `https://unpkg.com/@thebase/ui@latest/dist/...` mirrors the same files as an alternative CDN if jsDelivr is unreachable. Pin an exact version (e.g. `@1.2.1`, or `@1` to take only non-breaking updates) instead of `@latest` for production.
104
+ `https://unpkg.com/nodexui@latest/dist/...` mirrors the same files as an alternative CDN if jsDelivr is unreachable. Pin an exact version (e.g. `@1.3.0`, or `@1` to take only non-breaking updates) instead of `@latest` for production.
107
105
 
108
106
  **Option B — npm (bundler-based apps: Vite, webpack, etc.):**
109
107
 
110
108
  ```sh
111
- npm install @thebase/ui
109
+ npm install nodexui
112
110
  ```
113
111
 
114
112
  ```js
115
- import "@thebase/ui/baseui.css";
116
- import "@thebase/ui"; // side-effect import: registers window.thebase and auto-mounts on DOMContentLoaded
113
+ import "nodexui/nodexui.css";
114
+ import "nodexui"; // side-effect import: registers window.thebase and auto-mounts on DOMContentLoaded
117
115
  ```
118
116
 
119
- `dist/baseui.min.js`/`baseui.esm.js` are fully self-contained — Bootstrap's JS bundle and the Owl runtime are embedded ahead of the Base UI's own code, in load order, inside this one file. No other script or import is needed for the static API.
117
+ `dist/nodexui.min.js`/`nodexui.esm.js` are fully self-contained — the JS bundle and the Nodex runtime are embedded ahead of Nodex UI's own code, in load order, inside this one file. No other script or import is needed for the static API.
120
118
 
121
119
  Rule that applies to both options:
122
120
 
123
- - Production pages must use a pinned version (e.g. `@thebase/ui@1.2.1` or `@thebase/ui@1`), never `@latest`.
121
+ - Production pages must use a pinned version (e.g. `nodexui@1.3.0` or `nodexui@1`), never `@latest`.
124
122
 
125
123
  Mount markup:
126
124
 
@@ -182,7 +180,7 @@ For a persisted toggle like the docs/examples use:
182
180
  Or control the same theme state from JavaScript:
183
181
 
184
182
  ```js
185
- import { createThemeController } from "@base/theme";
183
+ import { createThemeController } from "nodexui";
186
184
 
187
185
  const theme = createThemeController();
188
186
  theme.init();
@@ -198,18 +196,18 @@ Full token list and the shadcn-aligned default palette: [Theming](theming.md).
198
196
  </button>
199
197
  ```
200
198
 
201
- Icons ship with the normal the Base UI assets — no separate script tag, and every Lucide icon name is available by kebab-case (`panel-left`), camelCase, or snake_case. Sizing, color, accessibility rules, and self-hosting: [Built-in Icons](icons.md).
199
+ Icons ship with the normal Nodex UI assets — no separate script tag, and every Lucide icon name is available by kebab-case (`panel-left`), camelCase, or snake_case. Sizing, color, accessibility rules, and self-hosting: [Built-in Icons](icons.md).
202
200
 
203
201
  ## 5b. PWA toolkit (optional) — generate manifest.webmanifest + sw.js
204
202
 
205
- Any Base UI app can become an installable PWA without hand-writing a service worker. `@thebase/ui/pwa`
203
+ Any Nodex UI app can become an installable PWA without hand-writing a service worker. `nodexui/pwa`
206
204
  exports two pure functions, `buildManifest(config)` and `buildServiceWorker(config)`, that turn a
207
205
  config object into the exact manifest JSON and service-worker source a hand-written PWA needs
208
206
  (precache the app shell, network-first for same-origin requests, cache-first for the pinned CDN
209
207
  build). Define the variables once, regenerate the files whenever they change:
210
208
 
211
209
  ```js
212
- // baseui.pwa.config.js
210
+ // nodexui.pwa.config.js
213
211
  export default {
214
212
  manifest: {
215
213
  name: "My App",
@@ -219,14 +217,14 @@ export default {
219
217
  },
220
218
  serviceWorker: {
221
219
  cacheName: "my-app-cache-v1",
222
- cdnVersion: "1.2.1", // pin to match the importmap in index.html
220
+ cdnVersion: "1.3.0", // pin to match the importmap in index.html
223
221
  appFiles: ["/app.css", "/app.js", "/app.xml", "/favicon.svg", "/icons/icon-192.png", "/icons/icon-512.png"],
224
222
  },
225
223
  };
226
224
  ```
227
225
 
228
226
  ```sh
229
- npx create-baseui-app pwa . --config baseui.pwa.config.js
227
+ npx create-nodexui-app pwa . --config nodexui.pwa.config.js
230
228
  # writes ./manifest.webmanifest, ./sw.js, ./sw-register.js and ./version.json
231
229
  ```
232
230
 
@@ -247,13 +245,13 @@ files are kept, so your own icons win). Serving icons from another folder? Set `
247
245
  service worker) and `manifestUrl` (service worker) in the config. See
248
246
  `dist/types/pwa.d.ts` for the full config shape.
249
247
 
250
- **Default in every scaffolded project.** `create-baseui-app create|init` projects ship
251
- `plugins: [baseuiPwa({ name })]` (from `@thebase/ui/vite`) in `vite.config.js`. Each `vite build` then emits
248
+ **Default in every scaffolded project.** `create-nodexui-app create|init` projects ship
249
+ `plugins: [nodexuiPwa({ name })]` (from `nodexui/vite`) in `vite.config.js`. Each `vite build` then emits
252
250
  `manifest.webmanifest`, `sw.js`, `sw-register.js`, `version.json` (hash of the built bundle) and the default
253
251
  icons into `dist/`, and injects the manifest link, theme color and register script into every page — no
254
252
  config file, no extra command. Every deploy with changed code therefore reloads open pages automatically.
255
253
  `vite dev` is untouched. Options: `name`, `description`, `themeColor` and the other manifest fields, plus
256
- `cdnVersion` (only for apps that load BaseUI from the CDN). For an existing project, add the plugin to
254
+ `cdnVersion` (only for apps that load NodexUI from the CDN). For an existing project, add the plugin to
257
255
  `vite.config.js` (`convert` prints this hint). Remove the plugin to opt out.
258
256
 
259
257
  ## 6. Copy a block instead of assembling from primitives
@@ -262,33 +260,33 @@ For common layouts (dashboard shells, sidebars, login/signup forms, charts), cop
262
260
 
263
261
  ## 7. Verify the integration
264
262
 
265
- - [ ] Only `baseui.min.css` + `baseui.min.js` (or `baseui.esm.js`) are loaded — no separate `baseui.owl.*`/`bootstrap.bundle.min.js`/`baseui.components.esm.js` files needed, for either API.
263
+ - [ ] Only `nodexui.min.css` + `nodexui.min.js` (or `nodexui.esm.js`) are loaded — no separate `nodexui.owl.*`/`bootstrap.bundle.min.js`/`nodexui.components.esm.js` files needed, for either API.
266
264
  - [ ] `thebase.version` returns the expected pinned version in the browser console.
267
265
  - [ ] Initial static markup mounts without an extra call; injected markup mounts after `thebase.mountAll(root)`.
268
- - [ ] Base components render with no console errors (a missing-template error means step 2's `dist/baseui.templates.xml` load is missing or unawaited).
269
- - [ ] Toggling `b-theme` actually changes rendered colors (a no-op usually means CSS custom properties are being overridden by the consumer's own stylesheet loaded after `baseui.min.css`).
266
+ - [ ] Base components render with no console errors (a missing-template error means step 2's `dist/nodexui.templates.xml` load is missing or unawaited).
267
+ - [ ] Toggling `b-theme` actually changes rendered colors (a no-op usually means CSS custom properties are being overridden by the consumer's own stylesheet loaded after `nodexui.min.css`).
270
268
  - [ ] Look up the specific component in [`docs/components/`](components/) for its attributes, events, and accessibility notes before wiring it up.
271
269
 
272
270
  ## 8. Troubleshooting
273
271
 
274
272
  | Symptom | Likely cause | Fix |
275
273
  | --- | --- | --- |
276
- | `ReferenceError: BaseUI is not defined` | The bundle script hasn't run yet, or its `<script>` tag is missing/mistyped. | Confirm the `<script src=".../baseui.min.js" defer>` tag is present and the network tab shows it loading (200, not 404). |
277
- | Components render unstyled (plain HTML, no Bootstrap look) | `baseui.min.css` isn't loaded, or loaded after your own stylesheet overrides it. | Load `baseui.min.css` in `<head>`, before any of your own CSS that touches the same elements. |
278
- | `tabs` (or another Owl-backed static component) silently does nothing | `baseui.min.js` didn't finish loading. | Confirm `baseui.min.js` loads (network tab, 200 not 404). |
279
- | Pure Base mount throws `"X is not a Component. It must inherit from the Component class"` | Your app imports `@odoo/owl` directly somewhere instead of `@base/owl`. | Replace every `@odoo/owl` import with `@base/owl` in your own app code — both must resolve to the same `globalThis.owl` instance. |
280
- | Base component renders blank / throws a template-not-found error | `dist/baseui.templates.xml` was never fetched and passed to `mount()`. | Fetch the templates string and pass it as `{ templates }` to `mount()` (or `app.addTemplates(...)`) before rendering any Base UI tag. |
274
+ | `ReferenceError: NodexUI is not defined` | The bundle script hasn't run yet, or its `<script>` tag is missing/mistyped. | Confirm the `<script src=".../nodexui.min.js" defer>` tag is present and the network tab shows it loading (200, not 404). |
275
+ | Components render unstyled (plain HTML, no built-in look) | `nodexui.min.css` isn't loaded, or loaded after your own stylesheet overrides it. | Load `nodexui.min.css` in `<head>`, before any of your own CSS that touches the same elements. |
276
+ | `tabs` (or another runtime-backed static component) silently does nothing | `nodexui.min.js` didn't finish loading. | Confirm `nodexui.min.js` loads (network tab, 200 not 404). |
277
+ | Pure Base mount throws `"X is not a Component. It must inherit from the Component class"` | Your app imports `@odoo/owl` directly somewhere instead of `nodexui`. | Replace every `@odoo/owl` import with `nodexui` in your own app code — both must resolve to the same `globalThis.owl` instance. |
278
+ | Base component renders blank / throws a template-not-found error | `dist/nodexui.templates.xml` was never fetched and passed to `mount()`. | Fetch the templates string and pass it as `{ templates }` to `mount()` (or `app.addTemplates(...)`) before rendering any Nodex UI tag. |
281
279
  | New markup injected via AJAX/fetch doesn't turn into components | Auto-mount only covers markup present when the bundle initializes. | Call `thebase.mountAll(root)` after injecting new `[b-ui]` or `[b-icon]` markup — it's idempotent, safe to call repeatedly. |
282
- | `thebase.theme.set(...)` has no visible effect | A page stylesheet loaded after `baseui.min.css` re-hardcodes the same properties, or the element isn't a descendant of the themed root. | Load consumer CSS after the Base UI's, and confirm `b-theme` is set on `<html>` or an ancestor of the components you expect to change. |
280
+ | `thebase.theme.set(...)` has no visible effect | A page stylesheet loaded after `nodexui.min.css` re-hardcodes the same properties, or the element isn't a descendant of the themed root. | Load consumer CSS after Nodex UI's, and confirm `b-theme` is set on `<html>` or an ancestor of the components you expect to change. |
283
281
 
284
282
  ## 9. Common mistakes
285
283
 
286
- - Adding a `baseui.owl.min.js`/`bootstrap.bundle.min.js`/`baseui.components.esm.js` script tag "just in case" — none of those files are published anymore; `baseui.min.js`/`baseui.esm.js` embed everything.
284
+ - Adding a `nodexui.owl.min.js`/`bootstrap.bundle.min.js`/`nodexui.components.esm.js` script tag "just in case" — none of those files are published anymore; `nodexui.min.js`/`nodexui.esm.js` embed everything.
287
285
  - Using `/latest/` CDN paths in production instead of a pinned version.
288
286
  - Assuming auto-mount watches the DOM forever — it does not; call `thebase.mountAll(root)` after injecting new `[b-ui]` markup client-side (e.g. from a fetched partial).
289
- - Mixing `@odoo/owl` imports into a project that also imports `@thebase/ui` — always go through `@base/owl`.
290
- - Expecting `thebase.mountAll()` to pick up Owl component tags (`<Button/>`) — it only mounts static `[b-ui]` markers; Base components are registered and mounted through your own app's `static components` + `mount()`, per step 2.
287
+ - Mixing `@odoo/owl` imports into a project that also imports `nodexui` — always go through `nodexui`.
288
+ - Expecting `thebase.mountAll()` to pick up Nodex component tags (`<Button/>`) — it only mounts static `[b-ui]` markers; Base components are registered and mounted through your own app's `static components` + `mount()`, per step 2.
291
289
 
292
290
  ## Related docs
293
291
 
294
- [Installation](installation.md) · [Runtime API](runtime-api.md) · [Theming](theming.md) · [Built-in Icons](icons.md) · [Base Components](owl-components.md) · [Blocks](blocks.md) · [Component Authoring](component-authoring.md) (for contributing to the Base UI itself, not for consuming it) · [Registry](registry.md) · [Component Reference index](components/button.md) (per-component pages live under `docs/components/`)
292
+ [Installation](installation.md) · [Runtime API](runtime-api.md) · [Theming](theming.md) · [Built-in Icons](icons.md) · [Nodex UI Component](owl-components.md) · [Blocks](blocks.md) · [Component Authoring](component-authoring.md) (for contributing to Nodex UI itself, not for consuming it) · [Registry](registry.md) · [Component Reference index](components/button.md) (per-component pages live under `docs/components/`)
package/package.json CHANGED
@@ -1,69 +1,70 @@
1
1
  {
2
2
  "name": "@thebase/ui",
3
- "version": "1.2.1",
4
- "description": "CDN-installable Bootstrap 5 UI component library.",
3
+ "version": "1.3.0",
4
+ "description": "Nodex UI — an HTML-first, CDN-installable UI component library.",
5
5
  "type": "module",
6
- "main": "./dist/baseui.min.js",
6
+ "main": "./dist/nodexui.min.js",
7
7
  "bin": {
8
- "create-baseui-app": "./bin/create-baseui-app.mjs"
8
+ "create-nodexui-app": "./bin/create-nodexui-app.mjs"
9
9
  },
10
- "module": "./dist/baseui.esm.js",
11
- "style": "./dist/baseui.min.css",
10
+ "module": "./dist/nodexui.esm.js",
11
+ "style": "./dist/nodexui.min.css",
12
12
  "types": "./dist/types/index.d.ts",
13
13
  "exports": {
14
14
  ".": {
15
- "import": "./dist/baseui.esm.js",
16
- "default": "./dist/baseui.min.js"
15
+ "import": "./dist/nodexui.esm.js",
16
+ "default": "./dist/nodexui.min.js"
17
17
  },
18
- "./baseui.css": "./dist/baseui.min.css",
19
- "./registry": "./dist/baseui.registry.json",
18
+ "./nodexui.css": "./dist/nodexui.min.css",
19
+ "./registry": "./dist/nodexui.registry.json",
20
+ "./templates": "./dist/nodexui.templates.xml",
20
21
  "./icons": {
21
- "import": "./dist/baseui.icons.esm.js"
22
+ "import": "./dist/nodexui.icons.esm.js"
22
23
  },
23
24
  "./analytics": {
24
25
  "types": "./dist/types/analytics.d.ts",
25
- "import": "./dist/baseui.analytics.esm.js",
26
- "default": "./dist/baseui.analytics.min.js"
26
+ "import": "./dist/nodexui.analytics.esm.js",
27
+ "default": "./dist/nodexui.analytics.min.js"
27
28
  },
28
29
  "./i18n": {
29
30
  "types": "./dist/types/i18n.d.ts",
30
- "import": "./dist/baseui.i18n.esm.js",
31
- "default": "./dist/baseui.i18n.min.js"
31
+ "import": "./dist/nodexui.i18n.esm.js",
32
+ "default": "./dist/nodexui.i18n.min.js"
32
33
  },
33
34
  "./apidoc": {
34
35
  "types": "./dist/types/apidoc.d.ts",
35
- "import": "./dist/baseui.apidoc.esm.js",
36
- "default": "./dist/baseui.apidoc.min.js"
36
+ "import": "./dist/nodexui.apidoc.esm.js",
37
+ "default": "./dist/nodexui.apidoc.min.js"
37
38
  },
38
39
  "./pwa": {
39
40
  "types": "./dist/types/pwa.d.ts",
40
- "import": "./dist/baseui.pwa.esm.js"
41
+ "import": "./dist/nodexui.pwa.esm.js"
41
42
  },
42
43
  "./vite": {
43
44
  "types": "./dist/types/vite.d.ts",
44
- "import": "./dist/baseui.vite.esm.js"
45
+ "import": "./dist/nodexui.vite.esm.js"
45
46
  },
46
- "./dist/baseui.templates.xml": "./dist/baseui.templates.xml"
47
+ "./dist/nodexui.templates.xml": "./dist/nodexui.templates.xml"
47
48
  },
48
49
  "files": [
49
- "bin/create-baseui-app.mjs",
50
- "dist/baseui.min.css",
51
- "dist/baseui.esm.js",
52
- "dist/baseui.min.js",
53
- "dist/baseui.icons.esm.js",
54
- "dist/baseui.analytics.esm.js",
55
- "dist/baseui.analytics.min.js",
56
- "dist/baseui.i18n.esm.js",
57
- "dist/baseui.i18n.min.js",
58
- "dist/baseui.apidoc.esm.js",
59
- "dist/baseui.apidoc.min.js",
60
- "dist/baseui.pwa.esm.js",
61
- "dist/baseui.vite.esm.js",
62
- "dist/baseui.templates.xml",
50
+ "bin/create-nodexui-app.mjs",
51
+ "dist/nodexui.min.css",
52
+ "dist/nodexui.esm.js",
53
+ "dist/nodexui.min.js",
54
+ "dist/nodexui.icons.esm.js",
55
+ "dist/nodexui.analytics.esm.js",
56
+ "dist/nodexui.analytics.min.js",
57
+ "dist/nodexui.i18n.esm.js",
58
+ "dist/nodexui.i18n.min.js",
59
+ "dist/nodexui.apidoc.esm.js",
60
+ "dist/nodexui.apidoc.min.js",
61
+ "dist/nodexui.pwa.esm.js",
62
+ "dist/nodexui.vite.esm.js",
63
+ "dist/nodexui.templates.xml",
63
64
  "dist/icons",
64
65
  "dist/pwa-icons",
65
66
  "dist/apidoc",
66
- "dist/baseui.registry.json",
67
+ "dist/nodexui.registry.json",
67
68
  "dist/runtime",
68
69
  "dist/themes",
69
70
  "dist/types",
@@ -81,15 +82,23 @@
81
82
  "test": "vitest run",
82
83
  "generate:icons": "node scripts/generate-icon-components.mjs",
83
84
  "generate:docs-tree": "node scripts/generate-docs-tree.mjs docs/v2",
85
+ "publish:nodexui": "node scripts/publish-alias.mjs nodexui",
84
86
  "prepublishOnly": "npm run lint && npm run test && npm run build"
85
87
  },
86
88
  "keywords": [
87
- "baseui",
88
- "bootstrap",
89
- "owl",
89
+ "nodexui",
90
+ "nodex ui",
91
+ "ui components",
92
+ "html-first",
90
93
  "cdn",
91
- "components"
94
+ "components",
95
+ "static dom",
96
+ "vanilla javascript component",
97
+ "base component",
98
+ "cdn ui library",
99
+ "no-build ui library"
92
100
  ],
101
+ "homepage": "https://ui.thebase.vn",
93
102
  "license": "MIT",
94
103
  "publishConfig": {
95
104
  "access": "public"