% Copyright 2026 Open-Guji (https://github.com/open-guji)
%
% Licensed under the Apache License, Version 2.0 (the "License");
% you may not use this file except in compliance with the License.
% You may obtain a copy of the License at
%
%     http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS,
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
% See the License for the specific language governing permissions and
% limitations under the License.
% luatex-cn-guji-jiazhu.sty
% Jiazhu (夹注) support for vertical typesetting
% This is a subpackage of luatex_cn
%
\RequirePackage{expl3}
\RequirePackage{xparse}
\ProvidesExplPackage {guji/luatex-cn-guji-jiazhu} {2026/02/26} {0.3.1} {Jiazhu (Dual-column notes) support}

% Load the core textflow engine
\RequirePackage{core/luatex-cn-core-textflow}

% Global Jiazhu Parameters (moved from vertical.sty)
\tl_new:N \l__luatexcn_jiazhu_size_tl
\tl_new:N \l__luatexcn_jiazhu_font_tl
\tl_new:N \l__luatexcn_jiazhu_font_color_tl
\tl_new:N \l__luatexcn_jiazhu_align_tl

\keys_define:nn { luatexcn / jiazhu }
  {
    font-size .tl_set:N = \l__luatexcn_jiazhu_size_tl,
    font-size .initial:n = {},
    font .tl_set:N = \l__luatexcn_jiazhu_font_tl,
    font .initial:n = {},
    font-color .tl_set:N = \l__luatexcn_jiazhu_font_color_tl,
    font-color .initial:n = {},
    align .tl_set:N = \l__luatexcn_jiazhu_align_tl,
    align .initial:n = {outward},
  }

\NewDocumentCommand{\jiazhuSetup}{ m }
  {
    \keys_set:nn { luatexcn / jiazhu } { #1 }
    % Set core layer defaults (proper dependency direction: guji -> core)
    \tl_set_eq:NN \l__luatexcn_textflow_default_size_tl \l__luatexcn_jiazhu_size_tl
    \tl_set_eq:NN \l__luatexcn_textflow_default_font_tl \l__luatexcn_jiazhu_font_tl
    \tl_set_eq:NN \l__luatexcn_textflow_default_color_tl \l__luatexcn_jiazhu_font_color_tl
    \tl_set_eq:NN \l__luatexcn_textflow_default_align_tl \l__luatexcn_jiazhu_align_tl
  }

% Jiazhu Command (双行小注/夹注)
% We define \jiazhu as the primary command name here, delegating to \TextFlow
\NewDocumentCommand{\JiaZhu}{ O{} +m }
  {
    \TextFlow[#1]{#2}
  }

% Jiazhu Environment - Allows command expansion (e.g., \平抬)
% Same as \JiaZhu but uses environment form to allow content expansion
\NewDocumentEnvironment{JiaZhuEnv}{ O{} }
  {
    \TextFlowEnv[#1]
  }
  {
    \endTextFlowEnv
  }

\ExplSyntaxOff%

% ============================================================================
% CJK Aliases (中文别名)
% ============================================================================
% Simplified Chinese / 简体
\NewCommandCopy{\夹注}{\JiaZhu}
\NewCommandCopy{\夹注设置}{\jiazhuSetup}
\NewCommandCopy{\单行夹注}{\DanHangJiaZhu}
\NewEnvironmentCopy{夹注环境}{JiaZhuEnv}
% Traditional Chinese / 繁体
\NewCommandCopy{\夾注}{\JiaZhu}
\NewCommandCopy{\夾注設置}{\jiazhuSetup}
\NewEnvironmentCopy{夾注環境}{JiaZhuEnv}
\NewCommandCopy{\單行夾注}{\DanHangJiaZhu}

% ============================================================
% Chinese key aliases / 中文 Key 别名
% ============================================================
\ExplSyntaxOn
\keys_define:nn { luatexcn / jiazhu }
  {
    % 简体
    字号 .tl_set:N = \l__luatexcn_jiazhu_size_tl,
    字体 .tl_set:N = \l__luatexcn_jiazhu_font_tl,
    字体颜色 .tl_set:N = \l__luatexcn_jiazhu_font_color_tl,
    对齐 .tl_set:N = \l__luatexcn_jiazhu_align_tl,
    % 繁体（与简体不同形的）
    字號 .tl_set:N = \l__luatexcn_jiazhu_size_tl,
    字體 .tl_set:N = \l__luatexcn_jiazhu_font_tl,
    字體顏色 .tl_set:N = \l__luatexcn_jiazhu_font_color_tl,
    對齊 .tl_set:N = \l__luatexcn_jiazhu_align_tl,
  }
\ExplSyntaxOff

\endinput%
