diff --git a/source/clog-element-common.lisp b/source/clog-element-common.lisp
index e1f0cd0..193c35c 100644
--- a/source/clog-element-common.lisp
+++ b/source/clog-element-common.lisp
@@ -238,7 +238,6 @@ firefox and does not work at all on IE."))
:html-id html-id
:auto-place auto-place))
-
;;;;;;;;;;;;;;;;;;
;; return-value ;;
;;;;;;;;;;;;;;;;;;
@@ -1370,3 +1369,90 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ"))
:clog-type 'clog-table-column-group-item
:html-id html-id
:auto-place auto-place))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Implementation - clog-details
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defclass clog-details (clog-element)()
+ (:documentation "CLOG Details Objects."))
+
+;;;;;;;;;;;;;;;;;;;;
+;; create-details ;;
+;;;;;;;;;;;;;;;;;;;;
+
+(defgeneric create-details (clog-obj &key content hidden class html-id auto-place)
+ (:documentation "Create a new CLOG-Details as child of CLOG-OBJ with :CONTENT
+(default \"\") and if :AUTO-PLACE (default t) place-inside-bottom-of
+CLOG-OBJ. If hidden is true visiblep is set to nil."))
+
+(defmethod create-details ((obj clog-obj) &key (content "")
+ (hidden nil)
+ (class nil)
+ (html-id nil)
+ (auto-place t))
+ (create-child obj (format nil "~A "
+ (if class
+ (format nil " class='~A'" (escape-string class))
+ "")
+ (if hidden
+ " style='visibility:hidden;'"
+ "")
+ (escape-string content))
+ :clog-type 'clog-details
+ :html-id html-id
+ :auto-place auto-place))
+
+;;;;;;;;;;;;;;;;;;;
+;; details-openp ;;
+;;;;;;;;;;;;;;;;;;;
+
+(defgeneric details-openp (clog-details)
+ (:documentation "Get/Setf details-openp. Will show details "))
+
+(defmethod details-openp ((obj clog-details))
+ (unless (equalp (attribute obj "open") "undefined")
+ t))
+
+(defgeneric set-details-openp (clog-details value)
+ (:documentation "Set details-openp VALUE for CLOG-DETAILS"))
+
+(defmethod set-details-openp ((obj clog-details) value)
+ (if value
+ (setf (attribute obj "open") t)
+ (remove-attribute obj "open")))
+(defsetf details-openp set-details-openp)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Implementation - clog-summary
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defclass clog-summary (clog-element)()
+ (:documentation "CLOG Summary Objects."))
+
+;;;;;;;;;;;;;;;;;;;;
+;; create-summary ;;
+;;;;;;;;;;;;;;;;;;;;
+
+(defgeneric create-summary (clog-obj &key content hidden class html-id auto-place)
+ (:documentation "Create a new CLOG-Summary as child of CLOG-OBJ with :CONTENT
+(default \"\") and if :AUTO-PLACE (default t) place-inside-bottom-of
+CLOG-OBJ. If hidden is true visiblep is set to nil. Use inside a CLOG-DETAILS
+object for drop reveal."))
+
+(defmethod create-summary ((obj clog-obj) &key (content "")
+ (hidden nil)
+ (class nil)
+ (html-id nil)
+ (auto-place t))
+ (create-child obj (format nil "~A"
+ (if class
+ (format nil " class='~A'" (escape-string class))
+ "")
+ (if hidden
+ " style='visibility:hidden;'"
+ "")
+ (escape-string content))
+ :clog-type 'clog-summary
+ :html-id html-id
+ :auto-place auto-place))
diff --git a/source/clog.lisp b/source/clog.lisp
index 38ab83a..9384c9a 100644
--- a/source/clog.lisp
+++ b/source/clog.lisp
@@ -370,6 +370,15 @@ embedded in a native template application.)"
(show-dialog generic-function)
(close-dialog generic-function)
+ "CLOG-Details - Class for CLOG Detail Blocks"
+ (clog-details class)
+ (create-details generic-function)
+ (detail-openp generic-function)
+
+ "CLOG-Summary - Class for CLOG Summary Blocks"
+ (clog-summary class)
+ (create-summary generic-function)
+
"CLOG-HR - Class for CLOG Hortizontal Rules"
(clog-HR class)
(create-HR generic-function)
diff --git a/tools/clog-builder-settings.lisp b/tools/clog-builder-settings.lisp
index 7a86240..98767ce 100644
--- a/tools/clog-builder-settings.lisp
+++ b/tools/clog-builder-settings.lisp
@@ -77,6 +77,10 @@
:control "dt")
'(:tag "dd"
:control "dd")
+ '(:tag "details"
+ :control "details")
+ '(:tag "summary"
+ :control "summary")
'(:tag "div"
:control "div")))
@@ -437,25 +441,6 @@
(:name "word wrap"
:prop "wrap")
,@*props-element*))
- `(:name "fieldset"
- :description "Fieldset"
- :clog-type clog:clog-fieldset
- :create clog:create-fieldset
- :create-type :base
- :properties (,@*props-base*))
- `(:name "legend"
- :description "Fieldset Legend"
- :clog-type clog:clog-legend
- :create clog:create-legend
- :create-content "Legend here"
- :create-type :element
- :properties (,@*props-element*))
- `(:name "datalist"
- :description "Data list"
- :clog-type clog:clog-data-list
- :create clog:create-data-list
- :create-type :base
- :properties (,@*props-base*))
`(:name "dropdown"
:description "Drop down select"
:clog-type clog:clog-select
@@ -527,24 +512,6 @@
(remove-attribute control "disabled"))
(property control "disabled")))
,@*props-element*))
- `(:name "span"
- :description "Span"
- :clog-type clog:clog-span
- :create clog:create-span
- :create-type :element
- :create-content "text here"
- :properties (,@*props-element*))
- `(:name "link"
- :description "Link"
- :clog-type clog:clog-a
- :create clog:create-a
- :create-type :element
- :create-content "HTML Link"
- :properties ((:name "href link"
- :prop "href")
- (:name "target"
- :prop "target")
- ,@*props-element*))
`(:name "image"
:description "Image"
:clog-type clog:clog-img
@@ -587,132 +554,6 @@
(:name "maximum"
:prop "max")
,@*props-base*))
- `(:name "ol"
- :description "Ordered List"
- :clog-type clog:clog-ordered-list
- :create clog:create-ordered-list
- :create-type :base
- :properties ((:name "list kind"
- :prop "list-style-type")
- (:name "list location"
- :prop "list-style-position")
- ,@*props-element*))
- `(:name "ul"
- :description "Unordered List"
- :clog-type clog:clog-unordered-list
- :create clog:create-unordered-list
- :create-type :base
- :properties ((:name "value"
- :prop "value")
- ,@*props-element*))
- `(:name "li"
- :description "List Item"
- :clog-type clog:clog-list-item
- :create clog:create-list-item
- :create-type :base
- :properties (,@*props-element*))
- `(:name "table"
- :description "Table"
- :clog-type clog:clog-table
- :create clog:create-table
- :create-type :base
- :properties (,@*props-base*))
- `(:name "tr"
- :description "Table Row"
- :clog-type clog:clog-table-row
- :create clog:create-table-row
- :create-type :base
- :properties (,@*props-base*))
- `(:name "td"
- :description "Table Column"
- :clog-type clog:clog-table-column
- :create clog:create-table-column
- :create-type :element
- :create-content "Column"
- :properties ((:name "column span"
- :attr "colspan")
- (:name "row span"
- :attr "rowspan")
- ,@*props-element*))
- `(:name "th"
- :description "Table Heading"
- :clog-type clog:clog-table-heading
- :create clog:create-table-heading
- :create-type :element
- :create-content "Heading"
- :properties ((:name "column span"
- :attr "colspan")
- (:name "row span"
- :attr "rowspan")
- (:name "abbreviated version"
- :attr "abbr")
- (:name "scope"
- :attr "rowspan")
- ,@*props-element*))
- `(:name "tcolgroup"
- :description "Table Column Group"
- :clog-type clog:clog-table-column-group
- :create clog:create-table-column-group
- :create-type :base
- :properties ((:name "span"
- :attr "span")
- ,@*props-base*))
- `(:name "tcol"
- :description "Table Column Group Item"
- :clog-type clog:clog-table-column-group-item
- :create clog:create-table-column-group-item
- :create-type :base
- :create-content "Column Group Item"
- :properties ((:name "span"
- :attr "span")
- ,@*props-base*))
- `(:name "thead"
- :description "Table Head"
- :clog-type clog:clog-table-head
- :create clog:create-table-head
- :create-type :base
- :properties (,@*props-base*))
- `(:name "tbody"
- :description "Table Body"
- :clog-type clog:clog-table-body
- :create clog:create-table-body
- :create-type :base
- :properties (,@*props-base*))
- `(:name "tfoot"
- :description "Table Footer"
- :clog-type clog:clog-table-footer
- :create clog:create-table-footer
- :create-type :base
- :properties (,@*props-base*))
- `(:name "tcaption"
- :description "Table Caption"
- :clog-type clog:clog-table-caption
- :create clog:create-table-caption
- :create-type :element
- :create-content "Caption"
- :properties ((:name "caption side"
- :style "caption-side")
- ,@*props-element*))
- `(:name "dl"
- :description "Definition List"
- :clog-type clog:clog-definition-list
- :create clog:create-definition-list
- :create-type :base
- :properties (,@*props-base*))
- `(:name "dt"
- :description "Definition Term"
- :clog-type clog:clog-term
- :create clog:create-term
- :create-type :element
- :create-content "Term"
- :properties (,@*props-element*))
- `(:name "dd"
- :description "Definition Description"
- :clog-type clog:clog-description
- :create clog:create-description
- :create-content "Description"
- :create-type :element
- :properties (,@*props-element*))
`(:name "form"
:description "Form"
:clog-type clog:clog-form
@@ -908,6 +749,173 @@
:create-param :week
:create-value ""
:properties (,@*props-form-element*))
+ `(:name "fieldset"
+ :description "Fieldset"
+ :clog-type clog:clog-fieldset
+ :create clog:create-fieldset
+ :create-type :base
+ :properties (,@*props-base*))
+ `(:name "legend"
+ :description "Fieldset Legend"
+ :clog-type clog:clog-legend
+ :create clog:create-legend
+ :create-content "Legend here"
+ :create-type :element
+ :properties (,@*props-element*))
+ `(:name "datalist"
+ :description "Data list"
+ :clog-type clog:clog-data-list
+ :create clog:create-data-list
+ :create-type :base
+ :properties (,@*props-base*))
+ `(:name "ol"
+ :description "Ordered List"
+ :clog-type clog:clog-ordered-list
+ :create clog:create-ordered-list
+ :create-type :base
+ :properties ((:name "list kind"
+ :prop "list-style-type")
+ (:name "list location"
+ :prop "list-style-position")
+ ,@*props-element*))
+ `(:name "ul"
+ :description "Unordered List"
+ :clog-type clog:clog-unordered-list
+ :create clog:create-unordered-list
+ :create-type :base
+ :properties ((:name "value"
+ :prop "value")
+ ,@*props-element*))
+ `(:name "li"
+ :description "List Item"
+ :clog-type clog:clog-list-item
+ :create clog:create-list-item
+ :create-type :base
+ :properties (,@*props-element*))
+ `(:name "table"
+ :description "Table"
+ :clog-type clog:clog-table
+ :create clog:create-table
+ :create-type :base
+ :properties (,@*props-base*))
+ `(:name "tr"
+ :description "Table Row"
+ :clog-type clog:clog-table-row
+ :create clog:create-table-row
+ :create-type :base
+ :properties (,@*props-base*))
+ `(:name "td"
+ :description "Table Column"
+ :clog-type clog:clog-table-column
+ :create clog:create-table-column
+ :create-type :element
+ :create-content "Column"
+ :properties ((:name "column span"
+ :attr "colspan")
+ (:name "row span"
+ :attr "rowspan")
+ ,@*props-element*))
+ `(:name "th"
+ :description "Table Heading"
+ :clog-type clog:clog-table-heading
+ :create clog:create-table-heading
+ :create-type :element
+ :create-content "Heading"
+ :properties ((:name "column span"
+ :attr "colspan")
+ (:name "row span"
+ :attr "rowspan")
+ (:name "abbreviated version"
+ :attr "abbr")
+ (:name "scope"
+ :attr "rowspan")
+ ,@*props-element*))
+ `(:name "tcolgroup"
+ :description "Table Column Group"
+ :clog-type clog:clog-table-column-group
+ :create clog:create-table-column-group
+ :create-type :base
+ :properties ((:name "span"
+ :attr "span")
+ ,@*props-base*))
+ `(:name "tcol"
+ :description "Table Column Group Item"
+ :clog-type clog:clog-table-column-group-item
+ :create clog:create-table-column-group-item
+ :create-type :base
+ :create-content "Column Group Item"
+ :properties ((:name "span"
+ :attr "span")
+ ,@*props-base*))
+ `(:name "thead"
+ :description "Table Head"
+ :clog-type clog:clog-table-head
+ :create clog:create-table-head
+ :create-type :base
+ :properties (,@*props-base*))
+ `(:name "tbody"
+ :description "Table Body"
+ :clog-type clog:clog-table-body
+ :create clog:create-table-body
+ :create-type :base
+ :properties (,@*props-base*))
+ `(:name "tfoot"
+ :description "Table Footer"
+ :clog-type clog:clog-table-footer
+ :create clog:create-table-footer
+ :create-type :base
+ :properties (,@*props-base*))
+ `(:name "tcaption"
+ :description "Table Caption"
+ :clog-type clog:clog-table-caption
+ :create clog:create-table-caption
+ :create-type :element
+ :create-content "Caption"
+ :properties ((:name "caption side"
+ :style "caption-side")
+ ,@*props-element*))
+ `(:name "dl"
+ :description "Definition List"
+ :clog-type clog:clog-definition-list
+ :create clog:create-definition-list
+ :create-type :base
+ :properties (,@*props-base*))
+ `(:name "dt"
+ :description "Definition Term"
+ :clog-type clog:clog-term
+ :create clog:create-term
+ :create-type :element
+ :create-content "Term"
+ :properties (,@*props-element*))
+ `(:name "dd"
+ :description "Definition Description"
+ :clog-type clog:clog-description
+ :create clog:create-description
+ :create-content "Description"
+ :create-type :element
+ :properties (,@*props-element*))
+ `(:name "details"
+ :description "Details Block"
+ :clog-type clog:clog-details
+ :create clog:create-details
+ :create-type :element
+ :create-content "Details"
+ :properties ((:name "open"
+ :get ,(lambda (control)
+ (property control "open"))
+ :set ,(lambda (control obj)
+ (if (or (equalp (text obj) "true") (equalp (text obj) "open"))
+ (setf (attribute control "open") t)
+ (remove-attribute control "open"))
+ (property control "open")))
+ ,@*props-element*))
+ `(:name "summary"
+ :description "Summary Block"
+ :clog-type clog:clog-summary
+ :create clog:create-summary
+ :create-content "Summary"
+ :create-type :element
+ :properties (,@*props-element*))
`(:name "audio"
:description "Audio Player"
:clog-type clog:clog-audio
@@ -971,6 +979,24 @@
(:name "return value"
:prop "returnValue")
,@*props-element*))
+ `(:name "span"
+ :description "Span"
+ :clog-type clog:clog-span
+ :create clog:create-span
+ :create-type :element
+ :create-content "text here"
+ :properties (,@*props-element*))
+ `(:name "link"
+ :description "Link"
+ :clog-type clog:clog-a
+ :create clog:create-a
+ :create-type :element
+ :create-content "HTML Link"
+ :properties ((:name "href link"
+ :prop "href")
+ (:name "target"
+ :prop "target")
+ ,@*props-element*))
`(:name "hr"
:description "Horizontal Rule"
:clog-type clog:clog-hr
@@ -991,7 +1017,7 @@
:create-type :element
:properties (,@*props-element*))
`(:name "style-block"
- :description "Style"
+ :description "Style Block"
:clog-type clog:clog-style-block
:create clog:create-style-block
:create-type :base