From 3b0b38a4cf090c53455e3a2afabdea0bcd1ed2b4 Mon Sep 17 00:00:00 2001 From: Ronan Berder Date: Thu, 12 Jun 2025 10:37:19 +0800 Subject: [PATCH] PoC for new components, including select --- .eleventy.js | 1 + docs/css/styles.css | 8 - docs/src/_includes/layouts/base.njk | 18 +- docs/src/_includes/macros/code_preview.njk | 1 - docs/src/_includes/partials/header.njk | 12 +- .../partials/kitchen-sink/breadcrumb.njk | 20 +- .../partials/kitchen-sink/dropdown-menu.njk | 5 +- .../partials/kitchen-sink/popover.njk | 2 +- .../partials/kitchen-sink/select.njk | 85 +- .../partials/kitchen-sink/slider.njk | 30 +- docs/src/_includes/partials/sidebar.njk | 5 +- docs/src/assets/styles.css | 789 ++++++++---------- docs/src/components/alert-dialog.njk | 8 +- docs/src/components/dialog.njk | 6 +- docs/src/components/popover.njk | 7 +- docs/src/components/select.njk | 61 +- docs/src/components/test.njk | 17 + docs/src/components/toast.njk | 4 +- docs/src/index.njk | 17 +- src/css/basecoat.css | 84 +- src/css/components/dialog.css | 59 ++ src/css/components/popover.css | 155 ++++ src/js/{ => archived}/dialog.js | 0 src/js/archived/dropdown-menu.js | 91 ++ src/js/{ => archived}/popover.js | 0 src/js/archived/select.js | 156 ++++ src/js/archived/sidebar.js | 25 + src/js/archived/tabs.js | 64 ++ src/js/archived/toast.js | 75 ++ src/js/select.js | 231 ++--- src/js/sidebar.js | 85 +- src/js/tabs.js | 131 +-- src/nunjucks/dialog.njk | 119 ++- src/nunjucks/dropdown-menu.njk | 43 +- src/nunjucks/popover.njk | 58 +- src/nunjucks/select.njk | 98 ++- src/nunjucks/sidebar.njk | 7 +- src/nunjucks/tabs.njk | 15 +- 38 files changed, 1551 insertions(+), 1041 deletions(-) create mode 100644 docs/src/components/test.njk create mode 100644 src/css/components/dialog.css create mode 100644 src/css/components/popover.css rename src/js/{ => archived}/dialog.js (100%) create mode 100644 src/js/archived/dropdown-menu.js rename src/js/{ => archived}/popover.js (100%) create mode 100644 src/js/archived/select.js create mode 100644 src/js/archived/sidebar.js create mode 100644 src/js/archived/tabs.js create mode 100644 src/js/archived/toast.js diff --git a/.eleventy.js b/.eleventy.js index 9fe986e..70ea711 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -5,6 +5,7 @@ import fs from "fs"; import path from "path"; export default async function(eleventyConfig) { + eleventyConfig.addWatchTarget("src/nunjucks/"); eleventyConfig.setInputDirectory("./docs/src"); eleventyConfig.addPassthroughCopy({"docs/src/assets": "assets"}); eleventyConfig.addPassthroughCopy({ "src/js": "assets/js" }); diff --git a/docs/css/styles.css b/docs/css/styles.css index b478c73..3a80496 100644 --- a/docs/css/styles.css +++ b/docs/css/styles.css @@ -1,15 +1,7 @@ -@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap"); -@import url("https://fonts.googleapis.com/css2?family=Geist+Mono&display=swap"); - @import "tailwindcss"; @import "../../src/css/basecoat.css"; @import "./custom.css"; -@theme { - --font-sans: 'Geist'; - --font-mono: 'Geist Mono'; -} - @import "./themes/claude.css"; @import "./themes/doom-64.css"; @import "./themes/supabase.css"; \ No newline at end of file diff --git a/docs/src/_includes/layouts/base.njk b/docs/src/_includes/layouts/base.njk index 2440f99..08798ce 100644 --- a/docs/src/_includes/layouts/base.njk +++ b/docs/src/_includes/layouts/base.njk @@ -78,24 +78,12 @@ - - - + + - - + diff --git a/docs/src/_includes/macros/code_preview.njk b/docs/src/_includes/macros/code_preview.njk index 7090699..aaf33d9 100644 --- a/docs/src/_includes/macros/code_preview.njk +++ b/docs/src/_includes/macros/code_preview.njk @@ -19,7 +19,6 @@ ] %} {{ tabs( - id="code-block-{{ id }}", tabsets=tabsets, default_tab_index=(2 if default_code else 1), register_on=["alpine:init", "htmx:afterSwap"] diff --git a/docs/src/_includes/partials/header.njk b/docs/src/_includes/partials/header.njk index 6cf45bf..480e89e 100644 --- a/docs/src/_includes/partials/header.njk +++ b/docs/src/_includes/partials/header.njk @@ -1,18 +1,12 @@
diff --git a/docs/src/_includes/partials/kitchen-sink/breadcrumb.njk b/docs/src/_includes/partials/kitchen-sink/breadcrumb.njk index f927a02..1a385bd 100644 --- a/docs/src/_includes/partials/kitchen-sink/breadcrumb.njk +++ b/docs/src/_includes/partials/kitchen-sink/breadcrumb.njk @@ -1,4 +1,4 @@ -{% from "popover.njk" import popover %} +{% from "dropdown-menu.njk" import dropdown_menu %}
- {% if name is defined %} - - {% endif %} + {% endmacro %} @@ -118,10 +129,9 @@ @param items {array} - The array of items to render. @param parent_id_prefix {string} [optional] - The prefix for the item id. #} -{% macro render_select_items(items, parent_id_prefix="items") %} +{% macro render_select_items(items, selected, parent_id_prefix="items") %} {% for item in items %} {% set item_id = parent_id_prefix ~ "-" ~ loop.index %} - {% if item.type == "group" %} {% set group_label_id = item.id if item.id else "group-label-" + item_id %}
{{ item.label }}
- {{ render_select_items(item.items, item_id) if item.items }} + {{ render_select_items(item.items, selected, item_id) if item.items }}
{% elif item.type == "separator" %}
{% elif item.type == "item" or not item.type %} + {% endmacro %} {# diff --git a/src/nunjucks/tabs.njk b/src/nunjucks/tabs.njk index 1c8230c..2d59a6b 100644 --- a/src/nunjucks/tabs.njk +++ b/src/nunjucks/tabs.njk @@ -14,17 +14,17 @@ @param default_tab_index {number} [optional] [default=1] - The 1-based index of the tab to be active initially. #} {% macro tabs( - id, + id=None, tabsets=[], main_attrs=None, tablist_attrs=None, default_tab_index=1 ) %} +{% set id = id or ("tabs-" + (range(100000, 999999) | random | string)) %}