nexui 0.1.2__tar.gz

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 (36) hide show
  1. nexui-0.1.2/LICENSE +21 -0
  2. nexui-0.1.2/MANIFEST.in +5 -0
  3. nexui-0.1.2/PKG-INFO +176 -0
  4. nexui-0.1.2/README.md +155 -0
  5. nexui-0.1.2/nexui/__init__.py +0 -0
  6. nexui-0.1.2/nexui/asgi.py +16 -0
  7. nexui-0.1.2/nexui/settings.py +148 -0
  8. nexui-0.1.2/nexui/templates/base.html +11 -0
  9. nexui-0.1.2/nexui/templates/components/button.html +44 -0
  10. nexui-0.1.2/nexui/templates/components/button_old_1.html +80 -0
  11. nexui-0.1.2/nexui/templates/components/card.html +4 -0
  12. nexui-0.1.2/nexui/templates/components/modal.html +0 -0
  13. nexui-0.1.2/nexui/templates/components/tabs.html +0 -0
  14. nexui-0.1.2/nexui/templates/components/toast.html +0 -0
  15. nexui-0.1.2/nexui/templates/form.html +59 -0
  16. nexui-0.1.2/nexui/templates/index.html +90 -0
  17. nexui-0.1.2/nexui/templates/index_old_1.html +182 -0
  18. nexui-0.1.2/nexui/templates/result.html +2 -0
  19. nexui-0.1.2/nexui/templatetags/__init__.py +0 -0
  20. nexui-0.1.2/nexui/templatetags/__pycache__/__init__.cpython-313.pyc +0 -0
  21. nexui-0.1.2/nexui/templatetags/__pycache__/custom_filters.cpython-313.pyc +0 -0
  22. nexui-0.1.2/nexui/templatetags/__pycache__/custom_tags.cpython-313.pyc +0 -0
  23. nexui-0.1.2/nexui/templatetags/__pycache__/nexui_tags.cpython-313.pyc +0 -0
  24. nexui-0.1.2/nexui/templatetags/__pycache__/nexui_tags_old_1.cpython-313.pyc +0 -0
  25. nexui-0.1.2/nexui/templatetags/nexui_tags.py +102 -0
  26. nexui-0.1.2/nexui/templatetags/nexui_tags_old_1.py +58 -0
  27. nexui-0.1.2/nexui/urls.py +29 -0
  28. nexui-0.1.2/nexui/views.py +33 -0
  29. nexui-0.1.2/nexui/wsgi.py +16 -0
  30. nexui-0.1.2/nexui.egg-info/PKG-INFO +176 -0
  31. nexui-0.1.2/nexui.egg-info/SOURCES.txt +34 -0
  32. nexui-0.1.2/nexui.egg-info/dependency_links.txt +1 -0
  33. nexui-0.1.2/nexui.egg-info/requires.txt +5 -0
  34. nexui-0.1.2/nexui.egg-info/top_level.txt +1 -0
  35. nexui-0.1.2/pyproject.toml +36 -0
  36. nexui-0.1.2/setup.cfg +4 -0
nexui-0.1.2/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Hugues Codeur
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,5 @@
1
+ include LICENSE
2
+ include README.md
3
+ recursive-include nexui/templates *
4
+ recursive-include nexui/static *
5
+ recursive-include nexui/templatetags *
nexui-0.1.2/PKG-INFO ADDED
@@ -0,0 +1,176 @@
1
+ Metadata-Version: 2.2
2
+ Name: nexui
3
+ Version: 0.1.2
4
+ Summary: BibliothĂšque de composants UI modernes avec support HTMX optionnel
5
+ Author-email: Hugues Codeur <huguescodeur@gmail.com>
6
+ License: MIT
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: Framework :: Django
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.12
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: Django>=5.1
18
+ Requires-Dist: django-tailwind>=3.8.0
19
+ Provides-Extra: htmx
20
+ Requires-Dist: django-htmx>=1.17.2; extra == "htmx"
21
+
22
+ # 🚀 NexUI
23
+
24
+ NexUI est une bibliothĂšque de composants UI pour Django, optimisĂ©e pour HTMX et basĂ©e sur Tailwind CSS. Elle permet d'ajouter facilement des Ă©lĂ©ments interactifs Ă  vos applications Django tout en bĂ©nĂ©ficiant des avantages d'une intĂ©gration fluide avec HTMX pour la gestion des requĂȘtes AJAX.
25
+
26
+ ---
27
+
28
+ ## 📌 Installation
29
+
30
+ ### Installation de base
31
+ ```bash
32
+ pip install nexui
33
+ ```
34
+
35
+ ### Installation avec support HTMX
36
+ Si vous prévoyez d'utiliser HTMX avec vos composants :
37
+ ```bash
38
+ pip install nexui[htmx]
39
+ ```
40
+ Ou installez HTMX séparément plus tard :
41
+ ```bash
42
+ pip install django-htmx
43
+ ```
44
+ Ajoutez `nexui` à la liste des applications installées dans `settings.py` :
45
+ ```python
46
+ INSTALLED_APPS = [
47
+ ...
48
+ 'nexui',
49
+ ]
50
+ ```
51
+
52
+ ---
53
+
54
+ ## 🎹 FonctionnalitĂ©s
55
+
56
+ ✅ Composants UI rĂ©utilisables pour Django
57
+ đŸ”„ IntĂ©gration fluide avec HTMX
58
+ 🎹 BasĂ© sur Tailwind CSS pour un design moderne
59
+ 📩 Facile à installer et à utiliser
60
+
61
+ ---
62
+
63
+ ## 🚀 Utilisation
64
+
65
+ ### Charger les tags NexUI dans vos templates Django
66
+
67
+ ```django
68
+ {% load nexui_tags %}
69
+ ```
70
+
71
+ ---
72
+
73
+ ## 📖 Documentation
74
+
75
+ ### 🔘 Composant Button
76
+
77
+ Le composant `button` permet de créer des boutons personnalisables avec des icÎnes et des interactions HTMX.
78
+
79
+ #### **Options disponibles :**
80
+ - `label` : Texte du bouton
81
+ - `type` : Type du bouton (`button`, `submit`, `reset`)
82
+ - `class` : Classes CSS personnalisées
83
+ - `icon` : IcĂŽne (supporte Font Awesome et Unicode)
84
+ - `icon_type` : Type d'icĂŽne (`fa`, `unicode`, `emoji`)
85
+ - `icon_position` : Position de l'icĂŽne (`left`, `right`)
86
+ - `icon_size` : Taille de l'icĂŽne
87
+ - `icon_color` : Couleur de l'icĂŽne
88
+ - `disabled` : Désactive le bouton (`true`)
89
+ - `url_name` : Nom de l'URL Django
90
+ - `url_params` : ParamĂštres dynamiques pour l'URL Django
91
+ - `attrs` : Attributs HTML et HTMX supplémentaires (_hx-_*, id, style, data-\* etc.)
92
+
93
+ ### **Exemples d'utilisation :**
94
+
95
+ #### 1ïžâƒŁ Bouton simple
96
+ ```django
97
+ {% button label="Envoyer" %}
98
+ ```
99
+ #### 2ïžâƒŁ Bouton simple personnalisĂ©
100
+ ```django
101
+ {% button label="Envoyer" type="submit" class="bg-yellow-500 text-black" %}
102
+ ```
103
+
104
+ #### 3ïžâƒŁ Bouton avec HTMX
105
+ ```django
106
+ {% button label="Envoyer avec HTMX" type="submit" class="bg-green-500" attrs="hx-post='/submit' hx-target='#result' hx-swap='innerHTML'" %}
107
+ ```
108
+
109
+ #### 4ïžâƒŁ Bouton avec URL dynamique
110
+ ```django
111
+ {% button label="Dynamique URL Params" type="submit" class="bg-blue-500 text-white" url_name="update-user" url_params="2, tomate" attrs="hx-confirm='Êtes-vous sĂ»r ?' hx-target='#result' hx-swap='innerHTML'" %}
112
+ ```
113
+
114
+ #### 5ïžâƒŁ Bouton avec URL dynamique et un seul paramĂštres
115
+ ```django
116
+ {% button label="Dynamique URL Params" type="submit" class="bg-blue-500 text-white" url_name="update-user" url_params="1" attrs="hx-confirm='Êtes-vous sĂ»r ?' hx-target='#result' hx-swap='innerHTML'" %}
117
+ ```
118
+
119
+ #### 6ïžâƒŁ Bouton avec URL dynamique et plusieurs paramĂštres
120
+ ```django
121
+ {% button label="Dynamique URL Params" type="submit" class="bg-blue-500 text-white" url_name="update-user" url_params="1, developer" attrs="hx-confirm='Êtes-vous sĂ»r ?' hx-target='#result' hx-swap='innerHTML'" %}
122
+ ```
123
+
124
+
125
+ #### 7ïžâƒŁ Bouton avec Ă©mojis
126
+ ```django
127
+ {% button label="TĂ©lĂ©charger" class="bg-green-500" icon="âŹ‡ïž" icon_position="left" icon_size="lg" %}
128
+ ```
129
+
130
+ #### 8ïžâƒŁ Bouton dĂ©sactivĂ©
131
+ ```django
132
+ {% button label="Disabled" disabled="true" %}
133
+ ```
134
+
135
+ #### 9ïžâƒŁ Bouton avec Font Awesome
136
+ ```django
137
+ {% button label="Éditer" icon="fa-solid fa-pen" icon_type="fa" %}
138
+ ```
139
+
140
+ #### 🔟 Bouton avec code HTML
141
+ ```django
142
+ {% button label="Étoile" icon="9733" icon_type="unicode" %}
143
+ ```
144
+
145
+ ```django
146
+ {% button label="At Symbol" icon="&#64" icon_type="unicode" %}
147
+ ```
148
+
149
+ ---
150
+
151
+ ## 💡 Contribuer
152
+
153
+ Actuellement, le projet est en phase de test initial. Nous encourageons les utilisateurs intéressés à donner leur avis sur la bibliothÚque.
154
+
155
+ Si vous souhaitez participer à l'évolution de **NexUI** ou si vous avez des suggestions :
156
+
157
+ 1. **Forkez le projet** 📌
158
+ 2. **Testez les composants et apportez vos retours** đŸ› ïž
159
+ 3. **CrĂ©ez une issue** pour partager vos suggestions ou problĂšmes ✅
160
+
161
+ Nous ne pouvons pas accepter de contributions directes pour le moment, mais **vos retours sont essentiels** pour l'évolution de NexUI.
162
+
163
+ ---
164
+
165
+ ## 🔗 Liens utiles
166
+
167
+ - [DĂ©pĂŽt GitHub](#) đŸ–„ïž
168
+ - [Signaler un bug](#) 🐞
169
+ - [HTMX](https://htmx.org/) ⚡
170
+ - [Tailwind CSS](https://tailwindcss.com/) 🎹
171
+
172
+ ---
173
+
174
+ ## ⚖ Licence
175
+
176
+ Ce projet est sous licence **MIT**. Voir le fichier `LICENSE` pour plus de détails.
nexui-0.1.2/README.md ADDED
@@ -0,0 +1,155 @@
1
+ # 🚀 NexUI
2
+
3
+ NexUI est une bibliothĂšque de composants UI pour Django, optimisĂ©e pour HTMX et basĂ©e sur Tailwind CSS. Elle permet d'ajouter facilement des Ă©lĂ©ments interactifs Ă  vos applications Django tout en bĂ©nĂ©ficiant des avantages d'une intĂ©gration fluide avec HTMX pour la gestion des requĂȘtes AJAX.
4
+
5
+ ---
6
+
7
+ ## 📌 Installation
8
+
9
+ ### Installation de base
10
+ ```bash
11
+ pip install nexui
12
+ ```
13
+
14
+ ### Installation avec support HTMX
15
+ Si vous prévoyez d'utiliser HTMX avec vos composants :
16
+ ```bash
17
+ pip install nexui[htmx]
18
+ ```
19
+ Ou installez HTMX séparément plus tard :
20
+ ```bash
21
+ pip install django-htmx
22
+ ```
23
+ Ajoutez `nexui` à la liste des applications installées dans `settings.py` :
24
+ ```python
25
+ INSTALLED_APPS = [
26
+ ...
27
+ 'nexui',
28
+ ]
29
+ ```
30
+
31
+ ---
32
+
33
+ ## 🎹 FonctionnalitĂ©s
34
+
35
+ ✅ Composants UI rĂ©utilisables pour Django
36
+ đŸ”„ IntĂ©gration fluide avec HTMX
37
+ 🎹 BasĂ© sur Tailwind CSS pour un design moderne
38
+ 📩 Facile à installer et à utiliser
39
+
40
+ ---
41
+
42
+ ## 🚀 Utilisation
43
+
44
+ ### Charger les tags NexUI dans vos templates Django
45
+
46
+ ```django
47
+ {% load nexui_tags %}
48
+ ```
49
+
50
+ ---
51
+
52
+ ## 📖 Documentation
53
+
54
+ ### 🔘 Composant Button
55
+
56
+ Le composant `button` permet de créer des boutons personnalisables avec des icÎnes et des interactions HTMX.
57
+
58
+ #### **Options disponibles :**
59
+ - `label` : Texte du bouton
60
+ - `type` : Type du bouton (`button`, `submit`, `reset`)
61
+ - `class` : Classes CSS personnalisées
62
+ - `icon` : IcĂŽne (supporte Font Awesome et Unicode)
63
+ - `icon_type` : Type d'icĂŽne (`fa`, `unicode`, `emoji`)
64
+ - `icon_position` : Position de l'icĂŽne (`left`, `right`)
65
+ - `icon_size` : Taille de l'icĂŽne
66
+ - `icon_color` : Couleur de l'icĂŽne
67
+ - `disabled` : Désactive le bouton (`true`)
68
+ - `url_name` : Nom de l'URL Django
69
+ - `url_params` : ParamĂštres dynamiques pour l'URL Django
70
+ - `attrs` : Attributs HTML et HTMX supplémentaires (_hx-_*, id, style, data-\* etc.)
71
+
72
+ ### **Exemples d'utilisation :**
73
+
74
+ #### 1ïžâƒŁ Bouton simple
75
+ ```django
76
+ {% button label="Envoyer" %}
77
+ ```
78
+ #### 2ïžâƒŁ Bouton simple personnalisĂ©
79
+ ```django
80
+ {% button label="Envoyer" type="submit" class="bg-yellow-500 text-black" %}
81
+ ```
82
+
83
+ #### 3ïžâƒŁ Bouton avec HTMX
84
+ ```django
85
+ {% button label="Envoyer avec HTMX" type="submit" class="bg-green-500" attrs="hx-post='/submit' hx-target='#result' hx-swap='innerHTML'" %}
86
+ ```
87
+
88
+ #### 4ïžâƒŁ Bouton avec URL dynamique
89
+ ```django
90
+ {% button label="Dynamique URL Params" type="submit" class="bg-blue-500 text-white" url_name="update-user" url_params="2, tomate" attrs="hx-confirm='Êtes-vous sĂ»r ?' hx-target='#result' hx-swap='innerHTML'" %}
91
+ ```
92
+
93
+ #### 5ïžâƒŁ Bouton avec URL dynamique et un seul paramĂštres
94
+ ```django
95
+ {% button label="Dynamique URL Params" type="submit" class="bg-blue-500 text-white" url_name="update-user" url_params="1" attrs="hx-confirm='Êtes-vous sĂ»r ?' hx-target='#result' hx-swap='innerHTML'" %}
96
+ ```
97
+
98
+ #### 6ïžâƒŁ Bouton avec URL dynamique et plusieurs paramĂštres
99
+ ```django
100
+ {% button label="Dynamique URL Params" type="submit" class="bg-blue-500 text-white" url_name="update-user" url_params="1, developer" attrs="hx-confirm='Êtes-vous sĂ»r ?' hx-target='#result' hx-swap='innerHTML'" %}
101
+ ```
102
+
103
+
104
+ #### 7ïžâƒŁ Bouton avec Ă©mojis
105
+ ```django
106
+ {% button label="TĂ©lĂ©charger" class="bg-green-500" icon="âŹ‡ïž" icon_position="left" icon_size="lg" %}
107
+ ```
108
+
109
+ #### 8ïžâƒŁ Bouton dĂ©sactivĂ©
110
+ ```django
111
+ {% button label="Disabled" disabled="true" %}
112
+ ```
113
+
114
+ #### 9ïžâƒŁ Bouton avec Font Awesome
115
+ ```django
116
+ {% button label="Éditer" icon="fa-solid fa-pen" icon_type="fa" %}
117
+ ```
118
+
119
+ #### 🔟 Bouton avec code HTML
120
+ ```django
121
+ {% button label="Étoile" icon="9733" icon_type="unicode" %}
122
+ ```
123
+
124
+ ```django
125
+ {% button label="At Symbol" icon="&#64" icon_type="unicode" %}
126
+ ```
127
+
128
+ ---
129
+
130
+ ## 💡 Contribuer
131
+
132
+ Actuellement, le projet est en phase de test initial. Nous encourageons les utilisateurs intéressés à donner leur avis sur la bibliothÚque.
133
+
134
+ Si vous souhaitez participer à l'évolution de **NexUI** ou si vous avez des suggestions :
135
+
136
+ 1. **Forkez le projet** 📌
137
+ 2. **Testez les composants et apportez vos retours** đŸ› ïž
138
+ 3. **CrĂ©ez une issue** pour partager vos suggestions ou problĂšmes ✅
139
+
140
+ Nous ne pouvons pas accepter de contributions directes pour le moment, mais **vos retours sont essentiels** pour l'évolution de NexUI.
141
+
142
+ ---
143
+
144
+ ## 🔗 Liens utiles
145
+
146
+ - [DĂ©pĂŽt GitHub](#) đŸ–„ïž
147
+ - [Signaler un bug](#) 🐞
148
+ - [HTMX](https://htmx.org/) ⚡
149
+ - [Tailwind CSS](https://tailwindcss.com/) 🎹
150
+
151
+ ---
152
+
153
+ ## ⚖ Licence
154
+
155
+ Ce projet est sous licence **MIT**. Voir le fichier `LICENSE` pour plus de détails.
File without changes
@@ -0,0 +1,16 @@
1
+ """
2
+ ASGI config for nexui project.
3
+
4
+ It exposes the ASGI callable as a module-level variable named ``application``.
5
+
6
+ For more information on this file, see
7
+ https://docs.djangoproject.com/en/5.1/howto/deployment/asgi/
8
+ """
9
+
10
+ import os
11
+
12
+ from django.core.asgi import get_asgi_application
13
+
14
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'nexui.settings')
15
+
16
+ application = get_asgi_application()
@@ -0,0 +1,148 @@
1
+ """
2
+ Django settings for nexui project.
3
+
4
+ Generated by 'django-admin startproject' using Django 5.1.5.
5
+
6
+ For more information on this file, see
7
+ https://docs.djangoproject.com/en/5.1/topics/settings/
8
+
9
+ For the full list of settings and their values, see
10
+ https://docs.djangoproject.com/en/5.1/ref/settings/
11
+ """
12
+
13
+ import os
14
+ from pathlib import Path
15
+
16
+ # Build paths inside the project like this: BASE_DIR / 'subdir'.
17
+ BASE_DIR = Path(__file__).resolve().parent.parent
18
+
19
+
20
+ # Quick-start development settings - unsuitable for production
21
+ # See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/
22
+
23
+ # SECURITY WARNING: keep the secret key used in production secret!
24
+ SECRET_KEY = 'django-insecure-p)pmps#lul61h5nv-56@bym!_v+abj*3o%%+w^)t)mcwv9&zw9'
25
+
26
+ # SECURITY WARNING: don't run with debug turned on in production!
27
+ DEBUG = True
28
+
29
+ ALLOWED_HOSTS = []
30
+
31
+
32
+ # Application definition
33
+
34
+ INSTALLED_APPS = [
35
+ 'django.contrib.admin',
36
+ 'django.contrib.auth',
37
+ 'django.contrib.contenttypes',
38
+ 'django.contrib.sessions',
39
+ 'django.contrib.messages',
40
+ 'django.contrib.staticfiles',
41
+ 'tailwind',
42
+ 'theme',
43
+ 'django_browser_reload',
44
+ "django_htmx",
45
+ 'nexui',
46
+ ]
47
+
48
+ # ? Tailwind configuration
49
+ TAILWIND_APP_NAME = 'theme'
50
+
51
+ INTERNAL_IPS = [
52
+ "127.0.0.1",
53
+ ]
54
+
55
+ NPM_BIN_PATH = "C:/Program Files/nodejs/npm.cmd"
56
+
57
+
58
+
59
+ MIDDLEWARE = [
60
+ 'django.middleware.security.SecurityMiddleware',
61
+ 'django.contrib.sessions.middleware.SessionMiddleware',
62
+ 'django.middleware.common.CommonMiddleware',
63
+ "django_browser_reload.middleware.BrowserReloadMiddleware",
64
+ "django_htmx.middleware.HtmxMiddleware",
65
+ 'django.middleware.csrf.CsrfViewMiddleware',
66
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
67
+ 'django.contrib.messages.middleware.MessageMiddleware',
68
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
69
+ ]
70
+
71
+ ROOT_URLCONF = 'nexui.urls'
72
+
73
+ TEMPLATES = [
74
+ {
75
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
76
+ # 'DIRS': [],
77
+ 'DIRS': [BASE_DIR / 'templates'],
78
+ 'APP_DIRS': True,
79
+ 'OPTIONS': {
80
+ 'context_processors': [
81
+ 'django.template.context_processors.debug',
82
+ 'django.template.context_processors.request',
83
+ 'django.contrib.auth.context_processors.auth',
84
+ 'django.contrib.messages.context_processors.messages',
85
+ ],
86
+
87
+ },
88
+ },
89
+ ]
90
+
91
+ WSGI_APPLICATION = 'nexui.wsgi.application'
92
+
93
+
94
+ # Database
95
+ # https://docs.djangoproject.com/en/5.1/ref/settings/#databases
96
+
97
+ DATABASES = {
98
+ 'default': {
99
+ 'ENGINE': 'django.db.backends.sqlite3',
100
+ 'NAME': BASE_DIR / 'db.sqlite3',
101
+ }
102
+ }
103
+
104
+
105
+ # Password validation
106
+ # https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators
107
+
108
+ AUTH_PASSWORD_VALIDATORS = [
109
+ {
110
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
111
+ },
112
+ {
113
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
114
+ },
115
+ {
116
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
117
+ },
118
+ {
119
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
120
+ },
121
+ ]
122
+
123
+
124
+ # Internationalization
125
+ # https://docs.djangoproject.com/en/5.1/topics/i18n/
126
+
127
+ LANGUAGE_CODE = 'en-us'
128
+
129
+ TIME_ZONE = 'UTC'
130
+
131
+ USE_I18N = True
132
+
133
+ USE_TZ = True
134
+
135
+
136
+ # Static files (CSS, JavaScript, Images)
137
+ # https://docs.djangoproject.com/en/5.1/howto/static-files/
138
+
139
+ STATIC_URL = 'static/'
140
+ # STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
141
+
142
+ STATICFILES_DIRS = [BASE_DIR / "static"]
143
+
144
+
145
+ # Default primary key field type
146
+ # https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field
147
+
148
+ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
@@ -0,0 +1,11 @@
1
+ {% load static tailwind_tags %} {% load nexui_tags%}
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Title</title>
7
+ </head>
8
+ <body>
9
+
10
+ </body>
11
+ </html>
@@ -0,0 +1,44 @@
1
+ {# components/button.html #}
2
+ <button class="px-4 py-2 rounded bg-blue-500 text-white de hover:bg-blue-600 {{ class }}"
3
+ type="{{ type }}"
4
+ {% if disabled %}disabled{% endif %}
5
+ {{ attributes|safe }}
6
+ >
7
+ {% if icon %}
8
+ {% if icon_position == "left" %}
9
+ <span class="mr-2 text-{{ icon_size }}">
10
+ {% if icon_type == "fa" %}
11
+ <i class="{{ icon }}" {% if icon_color %} style="color: {{ icon_color }};"{% endif %}></i>
12
+ {% elif icon_type == "unicode" %}
13
+ {% if "&#" in icon %}
14
+ {{ icon|safe }}
15
+ {% else %}
16
+ &#{{ icon }};
17
+ {% endif %}
18
+ {% else %}
19
+ {{ icon }}
20
+ {% endif %}
21
+ </span>
22
+ {% endif %}
23
+ {% endif %}
24
+
25
+ {{ label }}
26
+
27
+ {% if icon %}
28
+ {% if icon_position == "right" %}
29
+ <span class="ml-2 text-{{ icon_size }}">
30
+ {% if icon_type == "fa" %}
31
+ <i class="{{ icon }}" {% if icon_color %}style="color: {{ icon_color }};"{% endif %}></i>
32
+ {% elif icon_type == "unicode" %}
33
+ {% if "&#" in icon %}
34
+ {{ icon|safe }}
35
+ {% else %}
36
+ &#{{ icon }};
37
+ {% endif %}
38
+ {% else %}
39
+ {{ icon }}
40
+ {% endif %}
41
+ </span>
42
+ {% endif %}
43
+ {% endif %}
44
+ </button>
@@ -0,0 +1,80 @@
1
+ <button class="px-4 py-2 rounded flex items-center {{ class }}" type="{{ type }}" {% if disabled %}disabled{% endif %}>
2
+ {% if icon %}
3
+ {% if icon_position == "left" %}
4
+ <span class="mr-2 text-{{ icon_size }}">
5
+ {% if icon_type == "fa" %}
6
+ <i class="{{ icon }}" {% if icon_color %}style="color: {{ icon_color }};" {% endif %}></i>
7
+ {% elif icon_type == "unicode" %}
8
+ {% if "&#" in icon %}
9
+ {{ icon|safe }}
10
+ {% else %}
11
+ &#{{ icon }};
12
+ {% endif %}
13
+ {% else %}
14
+ {{ icon }}
15
+ {% endif %}
16
+ </span>
17
+ {% endif %}
18
+ {% endif %}
19
+
20
+ {{ label }}
21
+
22
+ {% if icon %}
23
+ {% if icon_position == "right" %}
24
+ <span class="ml-2 text-{{ icon_size }}">
25
+ {% if icon_type == "fa" %}
26
+ <i class="{{ icon }}" {% if icon_color %}style="color: {{ icon_color }};" {% endif %}></i>
27
+ {% elif icon_type == "unicode" %}
28
+ {% if "&#" in icon %}
29
+ {{ icon|safe }}
30
+ {% else %}
31
+ &#{{ icon }};
32
+ {% endif %}
33
+ {% else %}
34
+ {{ icon }}
35
+ {% endif %}
36
+ </span>
37
+ {% endif %}
38
+ {% endif %}
39
+ </button>
40
+
41
+ <button class="px-4 py-2 rounded flex items-center {{ class }}" type="{{ type }}" {% if disabled %}disabled{% endif %}
42
+ {{ attributes }}>
43
+ {% if icon %}
44
+ {% if icon_position == "left" %}
45
+ <span class="mr-2 text-{{ icon_size }}">
46
+ {% if icon_type == "fa" %}
47
+ <i class="{{ icon }}" {% if icon_color %}style="color: {{ icon_color }};" {% endif %}></i>
48
+ {% elif icon_type == "unicode" %}
49
+ {% if "&#" in icon %}
50
+ {{ icon|safe }}
51
+ {% else %}
52
+ &#{{ icon }};
53
+ {% endif %}
54
+ {% else %}
55
+ {{ icon }}
56
+ {% endif %}
57
+ </span>
58
+ {% endif %}
59
+ {% endif %}
60
+
61
+ {{ label }}
62
+
63
+ {% if icon %}
64
+ {% if icon_position == "right" %}
65
+ <span class="ml-2 text-{{ icon_size }}">
66
+ {% if icon_type == "fa" %}
67
+ <i class="{{ icon }}" {% if icon_color %}style="color: {{ icon_color }};" {% endif %}></i>
68
+ {% elif icon_type == "unicode" %}
69
+ {% if "&#" in icon %}
70
+ {{ icon|safe }}
71
+ {% else %}
72
+ &#{{ icon }};
73
+ {% endif %}
74
+ {% else %}
75
+ {{ icon }}
76
+ {% endif %}
77
+ </span>
78
+ {% endif %}
79
+ {% endif %}
80
+ </button>
@@ -0,0 +1,4 @@
1
+ <div class="border rounded-lg p-4 shadow">
2
+ <h2 class="font-bold text-lg">{{ title }}</h2>
3
+ <p class="text-gray-600">{{ content }}</p>
4
+ </div>
File without changes
File without changes
File without changes