plutonium 0.15.4 → 0.15.6
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.
- checksums.yaml +4 -4
- data/app/assets/plutonium.css +1 -1
- data/app/assets/plutonium.ico +0 -0
- data/app/assets/plutonium.png +0 -0
- data/app/views/components/table_search_input/table_search_input_component.html.erb +3 -3
- data/app/views/resource/_resource_table.html.erb +0 -321
- data/docs/.vitepress/config.ts +61 -0
- data/docs/.vitepress/theme/custom.css +61 -0
- data/docs/.vitepress/theme/index.ts +4 -0
- data/docs/api-examples.md +49 -0
- data/docs/guide/getting-started/authorization.md +296 -0
- data/docs/guide/getting-started/core-concepts.md +432 -0
- data/docs/guide/getting-started/index.md +18 -0
- data/docs/guide/getting-started/installation.md +269 -0
- data/docs/guide/getting-started/resources.md +254 -0
- data/docs/guide/what-is-plutonium.md +211 -0
- data/docs/index.md +43 -0
- data/docs/markdown-examples.md +85 -0
- data/docs/public/android-chrome-192x192.png +0 -0
- data/docs/public/android-chrome-512x512.png +0 -0
- data/docs/public/apple-touch-icon.png +0 -0
- data/docs/public/favicon-16x16.png +0 -0
- data/docs/public/favicon-32x32.png +0 -0
- data/docs/public/favicon.ico +0 -0
- data/docs/public/plutonium.png +0 -0
- data/docs/public/site.webmanifest +1 -0
- data/docs/public/templates/plutonium.rb +21 -0
- data/lib/generators/pu/core/assets/assets_generator.rb +2 -3
- data/lib/generators/pu/core/assets/templates/tailwind.config.js +2 -2
- data/lib/generators/pu/core/install/install_generator.rb +9 -1
- data/lib/generators/pu/core/install/templates/config/initializers/plutonium.rb +0 -1
- data/lib/plutonium/core/controllers/authorizable.rb +1 -1
- data/lib/plutonium/definition/base.rb +8 -0
- data/lib/plutonium/definition/defineable_props.rb +1 -1
- data/lib/plutonium/definition/presentable.rb +71 -0
- data/lib/plutonium/interaction/README.md +1 -1
- data/lib/plutonium/interaction/base.rb +6 -6
- data/lib/plutonium/lib/deep_freezer.rb +31 -0
- data/lib/plutonium/query/adhoc_block.rb +19 -0
- data/lib/plutonium/query/base.rb +29 -0
- data/lib/plutonium/query/filter.rb +12 -0
- data/lib/plutonium/query/filters/text.rb +77 -0
- data/lib/plutonium/query/model_scope.rb +19 -0
- data/lib/plutonium/railtie.rb +0 -10
- data/lib/plutonium/resource/controller.rb +0 -3
- data/lib/plutonium/resource/controllers/crud_actions/index_action.rb +26 -0
- data/lib/plutonium/resource/controllers/crud_actions.rb +3 -6
- data/lib/plutonium/resource/controllers/defineable.rb +0 -2
- data/lib/plutonium/resource/controllers/queryable.rb +36 -20
- data/lib/plutonium/resource/policy.rb +5 -6
- data/lib/plutonium/resource/query_object.rb +61 -147
- data/lib/plutonium/resource/register.rb +3 -0
- data/lib/plutonium/{refinements/parameter_refinements.rb → support/parameters.rb} +5 -7
- data/lib/plutonium/ui/action_button.rb +34 -19
- data/lib/plutonium/ui/component/methods.rb +1 -1
- data/lib/plutonium/ui/display/resource.rb +19 -15
- data/lib/plutonium/ui/form/query.rb +171 -0
- data/lib/plutonium/ui/form/resource.rb +22 -17
- data/lib/plutonium/ui/table/components/scopes_bar.rb +1 -1
- data/lib/plutonium/ui/table/components/search_bar.rb +6 -139
- data/lib/plutonium/ui/table/resource.rb +10 -9
- data/lib/plutonium/version.rb +1 -1
- data/package-lock.json +5769 -1853
- data/package.json +11 -5
- data/src/js/core.js +0 -1
- data/tailwind.options.js +89 -11
- metadata +37 -13
- data/app/assets/plutonium-original.png +0 -0
- data/app/assets/plutonium-white.png +0 -0
- data/lib/plutonium/interaction/concerns/presentable.rb +0 -73
- data/public/plutonium-assets/fonts/bootstrap-icons.woff +0 -0
- data/public/plutonium-assets/fonts/bootstrap-icons.woff2 +0 -0
- /data/{templates → docs/public/templates}/base.rb +0 -0
@@ -1,322 +1 @@
|
|
1
1
|
<%= render build_collection %>
|
2
|
-
|
3
|
-
<%#
|
4
|
-
|
5
|
-
<div class="space-y-2 mb-4 mt-6">
|
6
|
-
<!-- Search Bar -->
|
7
|
-
<div class="p-4 bg-white border border-gray-200 rounded-lg dark:bg-gray-800 dark:border-gray-700 space-y-2">
|
8
|
-
<div class="relative">
|
9
|
-
<div class="absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none">
|
10
|
-
<svg class="w-5 h-5 text-gray-500 dark:text-gray-400" aria-hidden="true" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
11
|
-
<path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" clip-rule="evenodd"></path>
|
12
|
-
</svg>
|
13
|
-
</div>
|
14
|
-
<input type="text" id="table-search" class="block w-full p-2 pl-10 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder="Search for items" oninput="searchTable()">
|
15
|
-
</div>
|
16
|
-
<div class="flex flex-wrap items-center gap-4">
|
17
|
-
<span class="text-sm font-medium text-gray-900 dark:text-white">Filters:</span>
|
18
|
-
|
19
|
-
<select id="category-filter" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
|
20
|
-
<option selected value="">All Categories</option>
|
21
|
-
<option value="technology">Technology</option>
|
22
|
-
<option value="science">Science</option>
|
23
|
-
<option value="health">Health</option>
|
24
|
-
</select>
|
25
|
-
|
26
|
-
<div class="flex items-center space-x-2">
|
27
|
-
<input type="date" id="start-date" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
|
28
|
-
<span class="text-gray-500 dark:text-gray-400">to</span>
|
29
|
-
<input type="date" id="end-date" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
|
30
|
-
</div>
|
31
|
-
|
32
|
-
<select id="author-filter" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
|
33
|
-
<option selected value="">All Authors</option>
|
34
|
-
<option value="john-doe">John Doe</option>
|
35
|
-
<option value="jane-smith">Jane Smith</option>
|
36
|
-
</select>
|
37
|
-
|
38
|
-
<button onclick="applyFilters()" class="inline-flex items-center text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-none dark:focus:ring-blue-800">
|
39
|
-
<svg class="w-4 h-4 mr-2" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
40
|
-
<path fill-rule="evenodd" d="M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z" clip-rule="evenodd"></path>
|
41
|
-
</svg>
|
42
|
-
Apply Filters
|
43
|
-
</button>
|
44
|
-
|
45
|
-
<button onclick="clearFilters()" class="inline-flex items-center text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-4 focus:ring-gray-200 font-medium rounded-lg text-sm px-4 py-2 dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700">
|
46
|
-
<svg class="w-4 h-4 mr-2" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
47
|
-
<path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path>
|
48
|
-
</svg>
|
49
|
-
Clear Filters
|
50
|
-
</button>
|
51
|
-
</div>
|
52
|
-
</div>
|
53
|
-
|
54
|
-
<!-- Scopes and Bulk Actions -->
|
55
|
-
<div class="flex flex-wrap justify-between items-center gap-4 p-4 bg-white border border-gray-200 rounded-lg dark:bg-gray-800 dark:border-gray-700">
|
56
|
-
<!-- Scopes -->
|
57
|
-
<div class="flex flex-wrap items-center gap-2">
|
58
|
-
<button id="all-scope" onclick="filterTable('all')" class="px-4 py-2 text-sm font-medium text-gray-900 bg-gray-100 border border-gray-200 rounded-lg hover:bg-gray-200 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-700 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-600">
|
59
|
-
All
|
60
|
-
</button>
|
61
|
-
<button id="featured-scope" onclick="filterTable('featured')" class="px-4 py-2 text-sm font-medium text-gray-900 bg-gray-100 border border-gray-200 rounded-lg hover:bg-gray-200 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-700 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-600">
|
62
|
-
Featured
|
63
|
-
</button>
|
64
|
-
<button id="draft-scope" onclick="filterTable('draft')" class="px-4 py-2 text-sm font-medium text-gray-900 bg-gray-100 border border-gray-200 rounded-lg hover:bg-gray-200 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-700 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-600">
|
65
|
-
Draft <span class="ml-1 text-gray-500 dark:text-gray-400">(1)</span>
|
66
|
-
</button>
|
67
|
-
<button id="published-scope" onclick="filterTable('published')" class="px-4 py-2 text-sm font-medium text-gray-900 bg-gray-100 border border-gray-200 rounded-lg hover:bg-gray-200 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-700 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-600">
|
68
|
-
Published <span class="ml-1 text-gray-500 dark:text-gray-400">(2)</span>
|
69
|
-
</button>
|
70
|
-
</div>
|
71
|
-
|
72
|
-
<!-- Bulk Actions -->
|
73
|
-
<div class="flex flex-wrap items-center gap-2">
|
74
|
-
<button onclick="bulkAction('delete')" class="inline-flex items-center px-3 py-2 text-sm font-medium text-white bg-red-700 rounded-lg hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-800">
|
75
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
76
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path>
|
77
|
-
</svg>
|
78
|
-
Delete Selected
|
79
|
-
</button>
|
80
|
-
<button onclick="bulkAction('archive')" class="inline-flex items-center px-3 py-2 text-sm font-medium text-white bg-yellow-700 rounded-lg hover:bg-yellow-800 focus:ring-4 focus:outline-none focus:ring-yellow-300 dark:bg-yellow-600 dark:hover:bg-yellow-700 dark:focus:ring-yellow-800">
|
81
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
82
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"></path>
|
83
|
-
</svg>
|
84
|
-
Archive Selected
|
85
|
-
</button>
|
86
|
-
<button id="dropdownActionButton" data-dropdown-toggle="dropdownAction" class="inline-flex items-center text-gray-500 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-4 focus:ring-gray-200 font-medium rounded-lg text-sm px-3 py-2 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700" type="button">
|
87
|
-
<span class="sr-only">Action button</span>
|
88
|
-
More Actions
|
89
|
-
<svg class="w-2.5 h-2.5 ml-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
90
|
-
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
91
|
-
</svg>
|
92
|
-
</button>
|
93
|
-
</div>
|
94
|
-
</div>
|
95
|
-
</div>
|
96
|
-
|
97
|
-
<!-- Table -->
|
98
|
-
<div class="relative overflow-x-auto shadow-md sm:rounded-lg">
|
99
|
-
<table class="w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400">
|
100
|
-
<caption class="p-5 text-lg font-semibold text-left rtl:text-right text-gray-900 bg-white dark:text-white dark:bg-gray-800">
|
101
|
-
<div class="flex justify-between items-center">
|
102
|
-
<div>
|
103
|
-
Manage your blog posts
|
104
|
-
<p class="mt-1 text-sm font-normal text-gray-500 dark:text-gray-400">Manage your blog posts.</p>
|
105
|
-
</div>
|
106
|
-
<div class="flex space-x-2">
|
107
|
-
<button type="button" class="px-4 py-2 text-sm font-medium text-blue-700 hover:text-blue-800 focus:z-10 focus:outline-none focus:ring-2 focus:ring-blue-700 dark:text-blue-400 dark:hover:text-blue-500">
|
108
|
-
<span class="flex items-center">
|
109
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
110
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
|
111
|
-
</svg>
|
112
|
-
Select All
|
113
|
-
</span>
|
114
|
-
</button>
|
115
|
-
<button type="button" class="px-4 py-2 text-sm font-medium text-red-700 hover:text-red-800 focus:z-10 focus:outline-none focus:ring-2 focus:ring-red-700 dark:text-red-400 dark:hover:text-red-500">
|
116
|
-
<span class="flex items-center">
|
117
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
118
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
|
119
|
-
</svg>
|
120
|
-
Deselect All
|
121
|
-
</span>
|
122
|
-
</button>
|
123
|
-
</div>
|
124
|
-
</div>
|
125
|
-
</caption>
|
126
|
-
<thead class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
|
127
|
-
<tr>
|
128
|
-
<th scope="col" class="px-6 py-3">
|
129
|
-
<input type="checkbox" class="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600">
|
130
|
-
</th>
|
131
|
-
<th scope="col" class="px-6 py-3">Title</th>
|
132
|
-
<th scope="col" class="px-6 py-3">Slug</th>
|
133
|
-
<th scope="col" class="px-6 py-3">Is featured</th>
|
134
|
-
<th scope="col" class="px-6 py-3">Actions</th>
|
135
|
-
</tr>
|
136
|
-
</thead>
|
137
|
-
<tbody>
|
138
|
-
<tr class="bg-white border-b dark:bg-gray-800 dark:border-gray-700">
|
139
|
-
<td class="px-6 py-4">
|
140
|
-
<input type="checkbox" class="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600">
|
141
|
-
</td>
|
142
|
-
<th scope="row" class="px-6 py-4 font-medium text-gray-900 whitespace-nowrap dark:text-white">What is Plutonium?</th>
|
143
|
-
<td class="px-6 py-4">what-is-plutonium</td>
|
144
|
-
<td class="px-6 py-4"><span class="text-green-600 dark:text-green-400">✓</span></td>
|
145
|
-
<td class="px-6 py-4">
|
146
|
-
<div class="flex items-center space-x-2">
|
147
|
-
<button type="button" class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-3 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-none dark:focus:ring-blue-800 flex items-center">
|
148
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path></svg>
|
149
|
-
View
|
150
|
-
</button>
|
151
|
-
<button type="button" class="py-2 px-3 flex items-center text-sm font-medium text-center text-gray-900 focus:outline-none bg-white rounded-lg border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-700">
|
152
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"></path></svg>
|
153
|
-
Edit
|
154
|
-
</button>
|
155
|
-
<button type="button" class="py-2 px-3 flex items-center text-sm font-medium text-center text-gray-900 focus:outline-none bg-white rounded-lg border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-700">
|
156
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path></svg>
|
157
|
-
Delete
|
158
|
-
</button>
|
159
|
-
<button id="dropdownDefaultButton" data-dropdown-toggle="dropdown" class="text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-4 focus:ring-gray-200 font-medium rounded-lg text-sm px-3 py-2 text-center inline-flex items-center dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700" type="button">
|
160
|
-
More
|
161
|
-
<svg class="w-2.5 h-2.5 ml-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
162
|
-
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
163
|
-
</svg>
|
164
|
-
</button>
|
165
|
-
<div id="dropdown" class="z-10 hidden absolute bg-white divide-y divide-gray-100 rounded-lg shadow w-44 dark:bg-gray-700">
|
166
|
-
<ul class="py-2 text-sm text-gray-700 dark:text-gray-200" aria-labelledby="dropdownDefaultButton">
|
167
|
-
<li>
|
168
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Duplicate</a>
|
169
|
-
</li>
|
170
|
-
<li>
|
171
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Archive</a>
|
172
|
-
</li>
|
173
|
-
<li>
|
174
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Download</a>
|
175
|
-
</li>
|
176
|
-
</ul>
|
177
|
-
</div>
|
178
|
-
</div>
|
179
|
-
</td>
|
180
|
-
</tr>
|
181
|
-
<tr class="bg-white border-b dark:bg-gray-800 dark:border-gray-700">
|
182
|
-
<td class="px-6 py-4">
|
183
|
-
<input type="checkbox" class="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600">
|
184
|
-
</td>
|
185
|
-
<th scope="row" class="px-6 py-4 font-medium text-gray-900 whitespace-nowrap dark:text-white">Top 5 best features of Plutonium</th>
|
186
|
-
<td class="px-6 py-4">top-5-features</td>
|
187
|
-
<td class="px-6 py-4"><span class="text-green-600 dark:text-green-400">✓</span></td>
|
188
|
-
<td class="px-6 py-4">
|
189
|
-
<div class="flex items-center space-x-2">
|
190
|
-
<button type="button" class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-3 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-none dark:focus:ring-blue-800 flex items-center">
|
191
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path></svg>
|
192
|
-
View
|
193
|
-
</button>
|
194
|
-
<button type="button" class="py-2 px-3 flex items-center text-sm font-medium text-center text-gray-900 focus:outline-none bg-white rounded-lg border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-700">
|
195
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"></path></svg>
|
196
|
-
Edit
|
197
|
-
</button>
|
198
|
-
<button type="button" class="py-2 px-3 flex items-center text-sm font-medium text-center text-gray-900 focus:outline-none bg-white rounded-lg border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-700">
|
199
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path></svg>
|
200
|
-
Delete
|
201
|
-
</button>
|
202
|
-
<button id="dropdownDefaultButton" data-dropdown-toggle="dropdown" class="text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-4 focus:ring-gray-200 font-medium rounded-lg text-sm px-3 py-2 text-center inline-flex items-center dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700" type="button">
|
203
|
-
More
|
204
|
-
<svg class="w-2.5 h-2.5 ml-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
205
|
-
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
206
|
-
</svg>
|
207
|
-
</button>
|
208
|
-
<div id="dropdown" class="z-10 hidden absolute bg-white divide-y divide-gray-100 rounded-lg shadow w-44 dark:bg-gray-700">
|
209
|
-
<ul class="py-2 text-sm text-gray-700 dark:text-gray-200" aria-labelledby="dropdownDefaultButton">
|
210
|
-
<li>
|
211
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Duplicate</a>
|
212
|
-
</li>
|
213
|
-
<li>
|
214
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Archive</a>
|
215
|
-
</li>
|
216
|
-
<li>
|
217
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Download</a>
|
218
|
-
</li>
|
219
|
-
</ul>
|
220
|
-
</div>
|
221
|
-
</div>
|
222
|
-
</td>
|
223
|
-
</tr>
|
224
|
-
<tr class="bg-white border-b dark:bg-gray-800 dark:border-gray-700">
|
225
|
-
<td class="px-6 py-4">
|
226
|
-
<input type="checkbox" class="w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600">
|
227
|
-
</td>
|
228
|
-
<th scope="row" class="px-6 py-4 font-medium text-gray-900 whitespace-nowrap dark:text-white">Customizing Plutonium's UI with a theme</th>
|
229
|
-
<td class="px-6 py-4">theme-guide</td>
|
230
|
-
<td class="px-6 py-4"><span class="text-green-600 dark:text-green-400">✓</span></td>
|
231
|
-
<td class="px-6 py-4">
|
232
|
-
<div class="flex items-center space-x-2">
|
233
|
-
<button type="button" class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-3 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-none dark:focus:ring-blue-800 flex items-center">
|
234
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path></svg>
|
235
|
-
View
|
236
|
-
</button>
|
237
|
-
<button type="button" class="py-2 px-3 flex items-center text-sm font-medium text-center text-gray-900 focus:outline-none bg-white rounded-lg border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-700">
|
238
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"></path></svg>
|
239
|
-
Edit
|
240
|
-
</button>
|
241
|
-
<button type="button" class="py-2 px-3 flex items-center text-sm font-medium text-center text-gray-900 focus:outline-none bg-white rounded-lg border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-700">
|
242
|
-
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path></svg>
|
243
|
-
Delete
|
244
|
-
</button>
|
245
|
-
<button id="dropdownDefaultButton" data-dropdown-toggle="dropdown" class="text-gray-900 bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-4 focus:ring-gray-200 font-medium rounded-lg text-sm px-3 py-2 text-center inline-flex items-center dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700" type="button">
|
246
|
-
More
|
247
|
-
<svg class="w-2.5 h-2.5 ml-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
248
|
-
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
249
|
-
</svg>
|
250
|
-
</button>
|
251
|
-
<div id="dropdown" class="z-10 hidden absolute bg-white divide-y divide-gray-100 rounded-lg shadow w-44 dark:bg-gray-700">
|
252
|
-
<ul class="py-2 text-sm text-gray-700 dark:text-gray-200" aria-labelledby="dropdownDefaultButton">
|
253
|
-
<li>
|
254
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Duplicate</a>
|
255
|
-
</li>
|
256
|
-
<li>
|
257
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Archive</a>
|
258
|
-
</li>
|
259
|
-
<li>
|
260
|
-
<a href="#" class="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white">Download</a>
|
261
|
-
</li>
|
262
|
-
</ul>
|
263
|
-
</div>
|
264
|
-
</div>
|
265
|
-
</td>
|
266
|
-
</tr>
|
267
|
-
</tbody>
|
268
|
-
</table>
|
269
|
-
</div>
|
270
|
-
|
271
|
-
<!-- display control -->
|
272
|
-
<div class="flex flex-col md:flex-row justify-between items-center mt-4 text-sm text-gray-500 dark:text-gray-400">
|
273
|
-
<div>
|
274
|
-
Showing 1 to 5 of 50 results
|
275
|
-
</div>
|
276
|
-
<div class="flex items-center space-x-2 mt-2 md:mt-0">
|
277
|
-
<label for="perPage" class="mr-2">Per page</label>
|
278
|
-
<select id="perPage" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
|
279
|
-
<option selected>5</option>
|
280
|
-
<option>10</option>
|
281
|
-
<option>25</option>
|
282
|
-
<option>50</option>
|
283
|
-
</select>
|
284
|
-
</div>
|
285
|
-
</div>
|
286
|
-
|
287
|
-
<!-- pagination -->
|
288
|
-
<div class="flex justify-center mt-4">
|
289
|
-
<nav aria-label="Page navigation example">
|
290
|
-
<ul class="inline-flex -space-x-px text-sm">
|
291
|
-
<li>
|
292
|
-
<a href="#" class="flex items-center justify-center px-3 h-8 ms-0 leading-tight text-gray-500 bg-white border border-e-0 border-gray-300 rounded-s-lg hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">Previous</a>
|
293
|
-
</li>
|
294
|
-
<li>
|
295
|
-
<a href="#" aria-current="page" class="flex items-center justify-center px-3 h-8 text-blue-600 border border-gray-300 bg-blue-50 hover:bg-blue-100 hover:text-blue-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white">1</a>
|
296
|
-
</li>
|
297
|
-
<li>
|
298
|
-
<a href="#" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">2</a>
|
299
|
-
</li>
|
300
|
-
<li>
|
301
|
-
<a href="#" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">3</a>
|
302
|
-
</li>
|
303
|
-
<li>
|
304
|
-
<a href="#" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">4</a>
|
305
|
-
</li>
|
306
|
-
<li>
|
307
|
-
<a href="#" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">...</a>
|
308
|
-
</li>
|
309
|
-
<li>
|
310
|
-
<a href="#" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">9</a>
|
311
|
-
</li>
|
312
|
-
<li>
|
313
|
-
<a href="#" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">10</a>
|
314
|
-
</li>
|
315
|
-
<li>
|
316
|
-
<a href="#" class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 rounded-e-lg hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">Next</a>
|
317
|
-
</li>
|
318
|
-
</ul>
|
319
|
-
</nav>
|
320
|
-
</div>
|
321
|
-
|
322
|
-
%>
|
@@ -0,0 +1,61 @@
|
|
1
|
+
import { defineConfig } from "vitepress"
|
2
|
+
import { withMermaid } from "vitepress-plugin-mermaid";
|
3
|
+
|
4
|
+
const base = "/plutonium-core/"
|
5
|
+
|
6
|
+
// https://vitepress.dev/reference/site-config
|
7
|
+
export default defineConfig(withMermaid({
|
8
|
+
base: base,
|
9
|
+
title: "Plutonium",
|
10
|
+
description: "The Ultimate Rapid Application Development Toolkit (RADKit) for Rails",
|
11
|
+
head: [["link", { rel: "icon", href: `${base}favicon.ico` }]],
|
12
|
+
themeConfig: {
|
13
|
+
// https://vitepress.dev/reference/default-theme-config
|
14
|
+
logo: "/plutonium.png",
|
15
|
+
search: {
|
16
|
+
provider: 'local'
|
17
|
+
},
|
18
|
+
nav: [
|
19
|
+
{ text: "Home", link: "/" },
|
20
|
+
{ text: "Guide", link: "/guide/getting-started" }
|
21
|
+
],
|
22
|
+
sidebar: {
|
23
|
+
'/guide/': [
|
24
|
+
|
25
|
+
{
|
26
|
+
text: "Introduction",
|
27
|
+
items: [
|
28
|
+
{ text: "What is Plutonium?", link: "/guide/what-is-plutonium" },
|
29
|
+
]
|
30
|
+
},
|
31
|
+
{
|
32
|
+
text: "Getting Started",
|
33
|
+
items: [
|
34
|
+
{ text: "Overview", link: "/guide/getting-started/" },
|
35
|
+
{ text: "Installation", link: "/guide/getting-started/installation" },
|
36
|
+
{ text: "Core Concepts", link: "/guide/getting-started/core-concepts" },
|
37
|
+
{ text: "Resources", link: "/guide/getting-started/resources" },
|
38
|
+
{ text: "Authorization", link: "/guide/getting-started/authorization" },
|
39
|
+
]
|
40
|
+
},
|
41
|
+
// { text: "Quick Start", link: "/installation" },
|
42
|
+
|
43
|
+
// {
|
44
|
+
// text: "Examples",
|
45
|
+
// items: [
|
46
|
+
// { text: "Markdown Examples", link: "/installation" },
|
47
|
+
// { text: "Runtime API Examples", link: "/api-examples" }
|
48
|
+
// ]
|
49
|
+
// }
|
50
|
+
]
|
51
|
+
},
|
52
|
+
socialLinks: [
|
53
|
+
{ icon: "github", link: "https://github.com/radioactive-labs/plutonium-core" }
|
54
|
+
],
|
55
|
+
footer: {
|
56
|
+
message: 'Released under the MIT License.',
|
57
|
+
copyright: 'Copyright © 2024-present Stefan Froelich'
|
58
|
+
}
|
59
|
+
},
|
60
|
+
cleanUrls: true,
|
61
|
+
}))
|
@@ -0,0 +1,61 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
Primary Colors:
|
4
|
+
|
5
|
+
Coral/Orange Red: #FF4D4D (for main CTAs and primary elements)
|
6
|
+
Deep Turquoise: #00CED1 (for secondary elements)
|
7
|
+
Deep Blue: #1E3D59 (for text and accents)
|
8
|
+
|
9
|
+
Accent Colors:
|
10
|
+
|
11
|
+
Soft Pink: #FF9EAA (for highlights)
|
12
|
+
Light Blue: #B8E3E9 (for backgrounds)
|
13
|
+
White: #FFFFFF (for contrast and readability)
|
14
|
+
|
15
|
+
*/
|
16
|
+
|
17
|
+
:root {
|
18
|
+
/* Primary Brand Colors - Inspired by the vibrant gradient */
|
19
|
+
--vp-c-brand-1: #FF4D4D;
|
20
|
+
/* Vibrant coral red */
|
21
|
+
--vp-c-brand-2: #FF6B4A;
|
22
|
+
/* Lighter coral */
|
23
|
+
--vp-c-brand-3: #FF8347;
|
24
|
+
/* Soft orange */
|
25
|
+
--vp-c-brand-soft: rgba(255, 77, 77, 0.14);
|
26
|
+
|
27
|
+
/* Accent Colors */
|
28
|
+
--vp-c-accent-1: #00CED1;
|
29
|
+
/* Turquoise */
|
30
|
+
--vp-c-accent-2: #1E90FF;
|
31
|
+
/* Bright blue */
|
32
|
+
--vp-c-accent-3: #4169E1;
|
33
|
+
/* Royal blue */
|
34
|
+
--vp-c-accent-soft: rgba(0, 206, 209, 0.14);
|
35
|
+
|
36
|
+
/* Custom Background Gradients */
|
37
|
+
--vp-home-hero-name-background: linear-gradient(120deg,
|
38
|
+
#FF4D4D 30%,
|
39
|
+
#00CED1);
|
40
|
+
|
41
|
+
/* Updating existing color references */
|
42
|
+
--vp-c-tip-1: var(--vp-c-accent-1);
|
43
|
+
--vp-c-tip-2: var(--vp-c-accent-2);
|
44
|
+
--vp-c-tip-3: var(--vp-c-accent-3);
|
45
|
+
--vp-c-tip-soft: var(--vp-c-accent-soft);
|
46
|
+
}
|
47
|
+
|
48
|
+
.dark {
|
49
|
+
/* Dark mode adjustments */
|
50
|
+
--vp-c-brand-1: #FF6B4A;
|
51
|
+
/* Slightly lighter coral for dark mode */
|
52
|
+
--vp-c-brand-2: #FF4D4D;
|
53
|
+
--vp-c-brand-3: #FF3333;
|
54
|
+
--vp-c-brand-soft: rgba(255, 107, 74, 0.16);
|
55
|
+
|
56
|
+
--vp-c-accent-1: #40E0E3;
|
57
|
+
/* Brighter turquoise for dark mode */
|
58
|
+
--vp-c-accent-2: #45A3FF;
|
59
|
+
--vp-c-accent-3: #6182E3;
|
60
|
+
--vp-c-accent-soft: rgba(64, 224, 227, 0.16);
|
61
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
outline: deep
|
3
|
+
---
|
4
|
+
|
5
|
+
# Runtime API Examples
|
6
|
+
|
7
|
+
This page demonstrates usage of some of the runtime APIs provided by VitePress.
|
8
|
+
|
9
|
+
The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:
|
10
|
+
|
11
|
+
```md
|
12
|
+
<script setup>
|
13
|
+
import { useData } from 'vitepress'
|
14
|
+
|
15
|
+
const { theme, page, frontmatter } = useData()
|
16
|
+
</script>
|
17
|
+
|
18
|
+
## Results
|
19
|
+
|
20
|
+
### Theme Data
|
21
|
+
<pre>{{ theme }}</pre>
|
22
|
+
|
23
|
+
### Page Data
|
24
|
+
<pre>{{ page }}</pre>
|
25
|
+
|
26
|
+
### Page Frontmatter
|
27
|
+
<pre>{{ frontmatter }}</pre>
|
28
|
+
```
|
29
|
+
|
30
|
+
<script setup>
|
31
|
+
import { useData } from 'vitepress'
|
32
|
+
|
33
|
+
const { site, theme, page, frontmatter } = useData()
|
34
|
+
</script>
|
35
|
+
|
36
|
+
## Results
|
37
|
+
|
38
|
+
### Theme Data
|
39
|
+
<pre>{{ theme }}</pre>
|
40
|
+
|
41
|
+
### Page Data
|
42
|
+
<pre>{{ page }}</pre>
|
43
|
+
|
44
|
+
### Page Frontmatter
|
45
|
+
<pre>{{ frontmatter }}</pre>
|
46
|
+
|
47
|
+
## More
|
48
|
+
|
49
|
+
Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata).
|