(ns auto-ap.ssr.components
  (:require
   [auto-ap.ssr.components.aside :as aside]
   [auto-ap.ssr.components.breadcrumbs :as breadcrumbs]
   [auto-ap.ssr.components.buttons :as buttons]
   [auto-ap.ssr.components.card :as card]
   [auto-ap.ssr.components.data-grid :as data-grid]
   [auto-ap.ssr.components.dialog :as dialog]
   [auto-ap.ssr.components.inputs :as inputs]
   [auto-ap.ssr.components.navbar :as navbar]
   [auto-ap.ssr.components.page :as page]
   [auto-ap.ssr.components.paginator :as paginator]
   [auto-ap.ssr.components.periods :as periods]
   [auto-ap.ssr.components.radio :as radio]
   [auto-ap.ssr.components.tabs :as tabs]
   [auto-ap.ssr.components.tags :as tags]))
;; potemkin can be used here
(def breadcrumbs  breadcrumbs/breadcrumbs-)
(def button buttons/button-)
(def validated-save-button buttons/validated-save-button-)
(def a-button buttons/a-button-)
(def button-icon buttons/button-icon-)
(def icon-button buttons/icon-button-)
(def a-icon-button buttons/a-icon-button-)
(def button-group buttons/group-)
(def button-group-button buttons/group-button-)
(def navigation-button-list buttons/navigation-button-list-)
(def navigation-button buttons/navigation-button-)
(def modal dialog/modal-)
(def modal-card dialog/modal-card-)
(def modal-card-advanced dialog/modal-card-advanced-)
(def modal-header dialog/modal-header-)
(def modal-header-attachment dialog/modal-header-attachment-)
(def modal-body dialog/modal-body-)
(def modal-footer dialog/modal-footer-)

(def tabs tabs/tabs-)
(def text-input inputs/text-input-)
(def text-area inputs/text-area-)

(def checkbox inputs/checkbox-)
(def money-input inputs/money-input-)
(def int-input inputs/int-input-)
(def date-input inputs/date-input-)
(def multi-calendar-input inputs/multi-calendar-input-)
(def calendar-input inputs/calendar-input-)
(def hidden inputs/hidden-)
(def select inputs/select-)
(def typeahead inputs/typeahead-)
(def multi-typeahead inputs/multi-typeahead-)
(def field-errors inputs/field-errors-)
(def field inputs/field-)
(def inline-field inputs/inline-field-)
(def validated-field inputs/validated-field-)
(def validated-inline-field inputs/validated-inline-field-)
(def errors inputs/errors-)
(def form-errors inputs/form-errors-)

(def left-aside aside/left-aside-)
(def company-aside-nav aside/company-aside-nav-)
(def admin-aside-nav aside/admin-aside-nav-)
(def main-aside-nav aside/main-aside-nav-)
(def content-card card/content-card-)
(def card card/card-)

(def navbar navbar/navbar-)
(def toggle inputs/toggle-)

(def page page/page-)
(def radio-card radio/radio-card-)
(def radio-list radio/radio-list-)

(def pill tags/pill-)
(def badge tags/badge-)

(def data-grid data-grid/data-grid-)
(def data-grid-header data-grid/header-)
(def data-grid-sort-header data-grid/sort-header-)
(def data-grid-row data-grid/row-)
(def data-grid-checkbox-header data-grid/checkbox-header-)
(def data-grid-cell data-grid/cell-)
(def data-grid-right-stack-cell data-grid/right-stack-cell-)
(def data-grid-new-row data-grid/new-row-)

(defn link [params & children]
  (into [:a (update params :class str " font-medium text-blue-600 dark:text-blue-500 hover:underline cursor-pointer")]
        children))

(def paginator paginator/paginator-)
(def data-grid-card data-grid/data-grid-card-)

(def periods-dropdown periods/periods-dropdown-)
(def dates-dropdown periods/dates-dropdown-)

